1
This commit is contained in:
parent
e4a2b5373f
commit
75d5066b62
@ -872,7 +872,7 @@ onBeforeUnmount(() => {
|
|||||||
<AlertDialogContent class="fixed left-1/2 top-1/2 z-[70] w-[92vw] max-w-md -translate-x-1/2 -translate-y-1/2 rounded-lg border bg-background p-5 shadow-xl">
|
<AlertDialogContent class="fixed left-1/2 top-1/2 z-[70] w-[92vw] max-w-md -translate-x-1/2 -translate-y-1/2 rounded-lg border bg-background p-5 shadow-xl">
|
||||||
<AlertDialogTitle class="text-base font-semibold">确认删除服务</AlertDialogTitle>
|
<AlertDialogTitle class="text-base font-semibold">确认删除服务</AlertDialogTitle>
|
||||||
<AlertDialogDescription class="mt-2 text-sm text-muted-foreground">
|
<AlertDialogDescription class="mt-2 text-sm text-muted-foreground">
|
||||||
将删除“{{ pendingDeleteServiceName }}”是否继续?
|
将逻辑删除“{{ pendingDeleteServiceName }}”,已填写的数据不会清楚,重新勾选后会恢复,是否继续?
|
||||||
</AlertDialogDescription>
|
</AlertDialogDescription>
|
||||||
<div class="mt-4 flex items-center justify-end gap-2">
|
<div class="mt-4 flex items-center justify-end gap-2">
|
||||||
<AlertDialogCancel as-child>
|
<AlertDialogCancel as-child>
|
||||||
|
|||||||
304
src/sql.ts
304
src/sql.ts
@ -9,7 +9,6 @@ const toFiniteNumber = (value: unknown) => {
|
|||||||
const num = Number(value)
|
const num = Number(value)
|
||||||
return Number.isFinite(num) ? num : 0
|
return Number.isFinite(num) ? num : 0
|
||||||
}
|
}
|
||||||
hideInIndustrySelector: true
|
|
||||||
export const majorList = {
|
export const majorList = {
|
||||||
0: { code: 'E1', name: '交通运输工程通用专业',hideInIndustrySelector: true , maxCoe: null, minCoe: null, defCoe: null, desc: '', isRoad: true, isRailway: true, isWaterway: true, order: 1, hasCost: false, hasArea: false },
|
0: { code: 'E1', name: '交通运输工程通用专业',hideInIndustrySelector: true , maxCoe: null, minCoe: null, defCoe: null, desc: '', isRoad: true, isRailway: true, isWaterway: true, order: 1, hasCost: false, hasArea: false },
|
||||||
1: { code: 'E1-1', name: '征地(用海)补偿', maxCoe: null, minCoe: null, defCoe: 1, desc: '适用于交通建设项目征地(用海)补偿的施工图预算、招标工程量清单及清单预算(或最高投标限价)、清理概算(仅限铁路工程)、合同(工程)结算和造价鉴定、计算工程量、工程变更费用咨询、工程成本测(核)算', isRoad: true, isRailway: true, isWaterway: true, order: 2, hasCost: true, hasArea: true },
|
1: { code: 'E1-1', name: '征地(用海)补偿', maxCoe: null, minCoe: null, defCoe: 1, desc: '适用于交通建设项目征地(用海)补偿的施工图预算、招标工程量清单及清单预算(或最高投标限价)、清理概算(仅限铁路工程)、合同(工程)结算和造价鉴定、计算工程量、工程变更费用咨询、工程成本测(核)算', isRoad: true, isRailway: true, isWaterway: true, order: 2, hasCost: true, hasArea: true },
|
||||||
@ -326,6 +325,303 @@ export function getBasicFeeFromScale(scaleValue: unknown, scaleType: 'cost' | 'a
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//demo
|
||||||
|
let data1 = {
|
||||||
|
name: 'test001',
|
||||||
|
writer: '张三',// 编制人
|
||||||
|
reviewer: '李四',// 复核人
|
||||||
|
date: '2021-09-24',// 编制日期
|
||||||
|
industry: 0,// 0为公路工程,1为铁路工程,2为水运工程
|
||||||
|
fee: 10000,
|
||||||
|
scaleCost: 100000,// scale的cost的合计数
|
||||||
|
scale: [// 规模信息
|
||||||
|
{
|
||||||
|
major: 0,
|
||||||
|
cost: 100000,
|
||||||
|
area: 200,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
major: 1,
|
||||||
|
cost: 100000,
|
||||||
|
area: 200,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
serviceCoes: [// 项目咨询分类系数
|
||||||
|
{
|
||||||
|
serviceid: 0,
|
||||||
|
coe: 1.1,
|
||||||
|
remark: '',// 用户输入的说明
|
||||||
|
},
|
||||||
|
{
|
||||||
|
serviceid: 1,
|
||||||
|
coe: 1.2,
|
||||||
|
remark: '',// 用户输入的说明
|
||||||
|
},
|
||||||
|
],
|
||||||
|
majorCoes: [// 项目工程专业系数
|
||||||
|
{
|
||||||
|
majorid: 0,
|
||||||
|
coe: 1.1,
|
||||||
|
remark: '',// 用户输入的说明
|
||||||
|
},
|
||||||
|
{
|
||||||
|
majorid: 1,
|
||||||
|
coe: 1.2,
|
||||||
|
remark: '',// 用户输入的说明
|
||||||
|
},
|
||||||
|
],
|
||||||
|
contracts: [// 合同段信息
|
||||||
|
{
|
||||||
|
name: 'A合同段',
|
||||||
|
serviceFee: 100000,
|
||||||
|
addtionalFee: 0,
|
||||||
|
reserveFee: 0,
|
||||||
|
fee: 10000,
|
||||||
|
scale: [
|
||||||
|
{
|
||||||
|
major: 0,
|
||||||
|
cost: 100000,
|
||||||
|
area: 200,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
major: 1,
|
||||||
|
cost: 100000,
|
||||||
|
area: 200,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
serviceCoes: [// 合同段咨询分类系数
|
||||||
|
{
|
||||||
|
serviceid: 0,
|
||||||
|
coe: 1.1,
|
||||||
|
remark: '',// 用户输入的说明
|
||||||
|
},
|
||||||
|
{
|
||||||
|
serviceid: 1,
|
||||||
|
coe: 1.2,
|
||||||
|
remark: '',// 用户输入的说明
|
||||||
|
},
|
||||||
|
],
|
||||||
|
majorCoes: [// 合同段工程专业系数
|
||||||
|
{
|
||||||
|
majorid: 0,
|
||||||
|
coe: 1.1,
|
||||||
|
remark: '',// 用户输入的说明
|
||||||
|
},
|
||||||
|
{
|
||||||
|
majorid: 1,
|
||||||
|
coe: 1.2,
|
||||||
|
remark: '',// 用户输入的说明
|
||||||
|
},
|
||||||
|
],
|
||||||
|
services: [
|
||||||
|
{
|
||||||
|
id: 0,
|
||||||
|
fee: 100000,
|
||||||
|
process: 0,// 工作环节,0为编制,1为审核
|
||||||
|
method1: { // 投资规模法
|
||||||
|
cost: 100000,
|
||||||
|
basicFee: 200,
|
||||||
|
basicFee_basic: 200,
|
||||||
|
basicFee_optional: 0,
|
||||||
|
fee: 250000,
|
||||||
|
det: [
|
||||||
|
{
|
||||||
|
major: 0,
|
||||||
|
cost: 100000,
|
||||||
|
basicFee: 200,
|
||||||
|
basicFormula: '856,000+(1,000,000,000-500,000,000)×1‰',
|
||||||
|
basicFee_basic: 200,
|
||||||
|
optionalFormula: '171,200+(1,000,000,000-500,000,000)×0.2‰',
|
||||||
|
basicFee_optional: 0,
|
||||||
|
serviceCoe: 1.1,
|
||||||
|
majorCoe: 1.2,
|
||||||
|
processCoe: 1,// 工作环节系数(编审系数)
|
||||||
|
proportion: 0.5,// 工作占比
|
||||||
|
fee: 100000,
|
||||||
|
remark: '',// 用户输入的说明
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
method2: { // 用地规模法
|
||||||
|
area: 1200,
|
||||||
|
basicFee: 200,
|
||||||
|
basicFee_basic: 200,
|
||||||
|
basicFee_optional: 0,
|
||||||
|
fee: 250000,
|
||||||
|
det: [
|
||||||
|
{
|
||||||
|
major: 0,
|
||||||
|
area: 1200,
|
||||||
|
basicFee: 200,
|
||||||
|
basicFormula: '106,000+(1,200-1,000)×60',
|
||||||
|
basicFee_basic: 200,
|
||||||
|
optionalFormula: '21,200+(1,200-1,000)×12',
|
||||||
|
basicFee_optional: 0,
|
||||||
|
serviceCoe: 1.1,
|
||||||
|
majorCoe: 1.2,
|
||||||
|
processCoe: 1,// 工作环节系数(编审系数)
|
||||||
|
proportion: 0.5,// 工作占比
|
||||||
|
fee: 100000,
|
||||||
|
remark: '',// 用户输入的说明
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
method3: { // 工作量法
|
||||||
|
basicFee: 200,
|
||||||
|
fee: 250000,
|
||||||
|
det: [
|
||||||
|
{
|
||||||
|
task: 0,
|
||||||
|
price: 100000,
|
||||||
|
amount: 10,
|
||||||
|
basicFee: 200,
|
||||||
|
serviceCoe: 1.1,
|
||||||
|
fee: 100000,
|
||||||
|
remark: '',// 用户输入的说明
|
||||||
|
},
|
||||||
|
{
|
||||||
|
task: 1,
|
||||||
|
price: 100000,
|
||||||
|
amount: 10,
|
||||||
|
basicFee: 200,
|
||||||
|
serviceCoe: 1.1,
|
||||||
|
fee: 100000,
|
||||||
|
remark: '',// 用户输入的说明
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
method4: { // 工时法
|
||||||
|
person_num: 10,
|
||||||
|
work_day: 10,
|
||||||
|
fee: 250000,
|
||||||
|
det: [
|
||||||
|
{
|
||||||
|
expert: 0,
|
||||||
|
price: 100000,
|
||||||
|
person_num: 10,
|
||||||
|
work_day: 3,
|
||||||
|
fee: 100000,
|
||||||
|
remark: '',// 用户输入的说明
|
||||||
|
},
|
||||||
|
{
|
||||||
|
expert: 1,
|
||||||
|
price: 100000,
|
||||||
|
person_num: 10,
|
||||||
|
work_day: 3,
|
||||||
|
fee: 100000,
|
||||||
|
remark: '',// 用户输入的说明
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
addtional: [// 附加工作费
|
||||||
|
{
|
||||||
|
type: 0,// 0为费率计取,1为工时法,2为数量单价
|
||||||
|
coe: 0.03,
|
||||||
|
fee: 10000,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 1,// 0为费率计取,1为工时法,2为数量单价
|
||||||
|
fee: 10000,
|
||||||
|
det: [
|
||||||
|
{
|
||||||
|
expert: 0,
|
||||||
|
price: 100000,
|
||||||
|
person_num: 10,
|
||||||
|
work_day: 3,
|
||||||
|
fee: 100000,
|
||||||
|
remark: '',// 用户输入的说明
|
||||||
|
},
|
||||||
|
{
|
||||||
|
expert: 1,
|
||||||
|
price: 100000,
|
||||||
|
person_num: 10,
|
||||||
|
work_day: 3,
|
||||||
|
fee: 100000,
|
||||||
|
remark: '',// 用户输入的说明
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 2,// 0为费率计取,1为工时法,2为数量单价
|
||||||
|
fee: 10000,
|
||||||
|
det: [
|
||||||
|
{
|
||||||
|
name: '×××项',
|
||||||
|
unit: '项',
|
||||||
|
amount: 10,
|
||||||
|
price: 100000,
|
||||||
|
fee: 100000,
|
||||||
|
remark: '',// 用户输入的说明
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '×××项',
|
||||||
|
unit: '项',
|
||||||
|
amount: 10,
|
||||||
|
price: 100000,
|
||||||
|
fee: 100000,
|
||||||
|
remark: '',// 用户输入的说明
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
],
|
||||||
|
reserve: [// 预留费
|
||||||
|
{
|
||||||
|
type: 0,// 0为费率计取,1为工时法,2为数量单价
|
||||||
|
coe: 0.03,
|
||||||
|
fee: 10000,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 1,// 0为费率计取,1为工时法,2为数量单价
|
||||||
|
fee: 10000,
|
||||||
|
det: [
|
||||||
|
{
|
||||||
|
expert: 0,
|
||||||
|
price: 100000,
|
||||||
|
person_num: 10,
|
||||||
|
work_day: 3,
|
||||||
|
fee: 100000,
|
||||||
|
remark: '',// 用户输入的说明
|
||||||
|
},
|
||||||
|
{
|
||||||
|
expert: 1,
|
||||||
|
price: 100000,
|
||||||
|
person_num: 10,
|
||||||
|
work_day: 3,
|
||||||
|
fee: 100000,
|
||||||
|
remark: '',// 用户输入的说明
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
type: 2,// 0为费率计取,1为工时法,2为数量单价
|
||||||
|
fee: 10000,
|
||||||
|
det: [
|
||||||
|
{
|
||||||
|
name: '×××项',
|
||||||
|
unit: '项',
|
||||||
|
amount: 10,
|
||||||
|
price: 100000,
|
||||||
|
fee: 100000,
|
||||||
|
remark: '',// 用户输入的说明
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: '×××项',
|
||||||
|
unit: '项',
|
||||||
|
amount: 10,
|
||||||
|
price: 100000,
|
||||||
|
fee: 100000,
|
||||||
|
remark: '',// 用户输入的说明
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
export async function exportFile(fileName, data) {
|
export async function exportFile(fileName, data) {
|
||||||
if (window.showSaveFilePicker) {
|
if (window.showSaveFilePicker) {
|
||||||
@ -369,11 +665,11 @@ export async function exportFile(fileName, data) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
async function generateTemplate(data) {
|
async function generateTemplate(data) {
|
||||||
try {
|
try {
|
||||||
|
|
||||||
|
|
||||||
console.log(data)
|
|
||||||
// 获取模板
|
// 获取模板
|
||||||
let templateExcel = 'template20260226001test010';
|
let templateExcel = 'template20260226001test010';
|
||||||
let templateUrl = `https://oa.zwgczx.com/myExcelTemplate/${templateExcel}.xlsx`;
|
let templateUrl = `https://oa.zwgczx.com/myExcelTemplate/${templateExcel}.xlsx`;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user