Commit 4252ecfb217d43a593e8b40d035d4839ffd520d6
1 parent
ab2242a1
修改审核权限
Showing
12 changed files
with
141 additions
and
116 deletions
src/views/project/approve/FieldPanel.vue
... | ... | @@ -31,7 +31,12 @@ |
31 | 31 | @ok="handleTrue" |
32 | 32 | > |
33 | 33 | <BaseInfo :baseInfos="baseInfos" /> |
34 | - <template v-if="fieldInfos.auditRoleCodes.includes('business_user')"> | |
34 | + <template | |
35 | + v-if=" | |
36 | + fieldInfos.auditRoleCodes.includes('business_user') || | |
37 | + fieldInfos.auditRoleCodes.includes('admin') | |
38 | + " | |
39 | + > | |
35 | 40 | <h2 className="mt-8">基本信息申请字段</h2> |
36 | 41 | <div>{{ fieldInfos.baseFields.join(' , ') }}</div> |
37 | 42 | </template> |
... | ... | @@ -40,7 +45,13 @@ |
40 | 45 | <div> |
41 | 46 | {{ fieldInfos.profitFields.join(' , ') }} |
42 | 47 | </div> |
43 | - | |
48 | + </template> | |
49 | + <template | |
50 | + v-if=" | |
51 | + fieldInfos.auditRoleCodes.includes('business_user') || | |
52 | + fieldInfos.auditRoleCodes.includes('admin') | |
53 | + " | |
54 | + > | |
44 | 55 | <h2 className="mt-8">项目报告书申请字段</h2> |
45 | 56 | <div> |
46 | 57 | <span>{{ fieldInfos.reportFields.join(' , ') }}</span> |
... | ... | @@ -125,7 +136,9 @@ |
125 | 136 | width: 150, |
126 | 137 | customRender: (column) => { |
127 | 138 | const { record } = column || {}; |
128 | - return record?.auditRoleCodes.includes('business_user') ? '基本信息' : '其他模块'; | |
139 | + return record?.auditRoleCodes.includes('business_user') | |
140 | + ? '(基本/报告/跟单/质检)模块' | |
141 | + : '利润模块'; | |
129 | 142 | }, |
130 | 143 | }, |
131 | 144 | { | ... | ... |
src/views/project/approve/PayPanel.vue
... | ... | @@ -113,6 +113,7 @@ |
113 | 113 | </a-list> --> |
114 | 114 | <template #appendFooter> |
115 | 115 | <a-button v-if="!isApproved && role === ROLE.ADMIN" @click="handleFalse"> 不通过</a-button> |
116 | + <a-button v-if="isApproved && role === ROLE.ADMIN" @click="handleFalse"> 驳回重填</a-button> | |
116 | 117 | <a-button @click="handleExport"> 导出</a-button> |
117 | 118 | </template> |
118 | 119 | </BasicModal> |
... | ... | @@ -392,7 +393,7 @@ |
392 | 393 | // 创建一个链接元素用于下载 |
393 | 394 | const link = document.createElement('a'); |
394 | 395 | link.href = window.URL.createObjectURL(blob); |
395 | - link.download = `业务/研发净利润分析${date}.xlsx`; // 你可以为文件命名 | |
396 | + link.download = `付款单${date}.xlsx`; // 你可以为文件命名 | |
396 | 397 | document.body.appendChild(link); |
397 | 398 | link.click(); // 自动点击链接,触发下载 |
398 | 399 | console.log(link, 5656); | ... | ... |
src/views/project/approve/ReceivePanel.vue
... | ... | @@ -106,6 +106,7 @@ |
106 | 106 | </table> |
107 | 107 | <template #appendFooter> |
108 | 108 | <a-button v-if="!isApproved && role === ROLE.ADMIN" @click="handleFalse"> 不通过</a-button> |
109 | + <a-button v-if="isApproved && role === ROLE.ADMIN" @click="handleFalse"> 驳回重填</a-button> | |
109 | 110 | <a-button @click="handleExport"> 导出</a-button> |
110 | 111 | </template> |
111 | 112 | </BasicModal> |
... | ... | @@ -380,12 +381,12 @@ |
380 | 381 | // 创建一个链接元素用来下载文件 |
381 | 382 | const link = document.createElement('a'); |
382 | 383 | link.href = window.URL.createObjectURL(blob); |
383 | - link.download = `付款单_${date}.xlsx`; // 文件命名 | |
384 | + link.download = `收款单_${date}.xlsx`; // 文件命名 | |
384 | 385 | document.body.appendChild(link); |
385 | 386 | link.click(); // 自动点击链接,触发下载 |
386 | 387 | document.body.removeChild(link); // 下载完成后移除链接 |
387 | 388 | } catch (error) { |
388 | - console.error('获取付款单时出错:', error); | |
389 | + console.error('获取收款单时出错:', error); | |
389 | 390 | } |
390 | 391 | }; |
391 | 392 | ... | ... |
src/views/project/finance/pay/CheckDetail.vue
... | ... | @@ -102,7 +102,6 @@ |
102 | 102 | const [register, { setDrawerProps, closeDrawer }] = useDrawerInner((data) => { |
103 | 103 | // 方式1 |
104 | 104 | checkNo.value = data.data.checkNo; |
105 | - console.log(data, '56562vvsdfv'); | |
106 | 105 | // checkDetail({ checkNo: checkNo.value }); |
107 | 106 | }); |
108 | 107 | const params = ref({ |
... | ... | @@ -111,7 +110,6 @@ |
111 | 110 | const [registerTable] = useTable({ |
112 | 111 | api: () => { |
113 | 112 | const res = checkDetail({ checkNo: checkNo.value }); |
114 | - console.log(res, 56565555); | |
115 | 113 | return res; |
116 | 114 | }, |
117 | 115 | columns: columns, | ... | ... |
src/views/project/finance/pay/CheckSum.vue
... | ... | @@ -43,7 +43,7 @@ |
43 | 43 | width: 150, |
44 | 44 | customRender: (res) => { |
45 | 45 | // console.log(res, 56562); |
46 | - return res.record.exportVOS[0].productionDepartmentTotalPrice.toFixed(2); | |
46 | + return res.record.productionDepartmentTotalPrice.toFixed(2); | |
47 | 47 | }, |
48 | 48 | }, |
49 | 49 | { |
... | ... | @@ -52,7 +52,7 @@ |
52 | 52 | width: 160, |
53 | 53 | customRender: (res) => { |
54 | 54 | // console.log(res, 56562); |
55 | - return res.record.exportVOS[0].deductAmount.toFixed(2); | |
55 | + return res.record.deductAmount.toFixed(2); | |
56 | 56 | }, |
57 | 57 | }, |
58 | 58 | { |
... | ... | @@ -60,8 +60,7 @@ |
60 | 60 | dataIndex: 'calculateActualPayedAmount', |
61 | 61 | width: 160, |
62 | 62 | customRender: (res) => { |
63 | - // console.log(res, 56562); | |
64 | - return res.record.exportVOS[0].calculateActualPayedAmount.toFixed(2); | |
63 | + return res.record.calculateActualPayedAmount.toFixed(2); | |
65 | 64 | }, |
66 | 65 | }, |
67 | 66 | { |
... | ... | @@ -70,7 +69,7 @@ |
70 | 69 | width: 160, |
71 | 70 | customRender: (res) => { |
72 | 71 | // console.log(res, 56562); |
73 | - return res.record.exportVOS[0].actualPayedAmount.toFixed(2); | |
72 | + return res.record.actualPayedAmount.toFixed(2); | |
74 | 73 | }, |
75 | 74 | }, |
76 | 75 | { |
... | ... | @@ -79,7 +78,7 @@ |
79 | 78 | width: 150, |
80 | 79 | customRender: (res) => { |
81 | 80 | // console.log(res, 56562); |
82 | - return res.record.exportVOS[0].unPayedAmount.toFixed(2); | |
81 | + return res.record.unPayedAmount.toFixed(2); | |
83 | 82 | }, |
84 | 83 | }, |
85 | 84 | ]; | ... | ... |
src/views/project/finance/pay/FinanceEdit.vue
src/views/project/finance/receive/InvoiceAnalysis.vue
... | ... | @@ -33,7 +33,6 @@ |
33 | 33 | dataIndex: 'actualPayedAmount', |
34 | 34 | width: 50, |
35 | 35 | customRender: (res) => { |
36 | - // console.log(res, 56562); | |
37 | 36 | return res.record.exportVOS[0].customerCode; |
38 | 37 | }, |
39 | 38 | }, |
... | ... | @@ -42,8 +41,7 @@ |
42 | 41 | dataIndex: 'customerTotalPrice', |
43 | 42 | width: 50, |
44 | 43 | customRender: (res) => { |
45 | - console.log(res, '5656analres'); | |
46 | - return res.record.exportVOS[0].customerTotalPrice.toFixed(2); | |
44 | + return res.record.customerTotalPrice.toFixed(2); | |
47 | 45 | }, |
48 | 46 | }, |
49 | 47 | { |
... | ... | @@ -51,39 +49,39 @@ |
51 | 49 | dataIndex: 'deductAmount', |
52 | 50 | width: 50, |
53 | 51 | customRender: (res) => { |
54 | - return res.record.exportVOS[0].deductAmount.toFixed(2); | |
52 | + return res.record.deductAmount.toFixed(2); | |
55 | 53 | }, |
56 | 54 | }, |
57 | 55 | { |
58 | 56 | title: '实际应收款$', |
59 | - dataIndex: 'actualReceivableAmount', | |
57 | + dataIndex: 'otherAmount', | |
60 | 58 | width: 50, |
61 | 59 | customRender: (res) => { |
62 | - return res.record.exportVOS[0].actualReceivableAmount.toFixed(2); | |
60 | + return res.record.otherAmount.toFixed(2); | |
63 | 61 | }, |
64 | 62 | }, |
65 | 63 | { |
66 | 64 | title: '实际收款金额汇总$', |
67 | - dataIndex: 'actualPayedAmount', | |
65 | + dataIndex: 'actualReceivableAmount', | |
68 | 66 | width: 50, |
69 | 67 | customRender: (res) => { |
70 | - return res.record.exportVOS[0].actualPayedAmount.toFixed(2); | |
68 | + return res.record.actualReceivableAmount.toFixed(2); | |
71 | 69 | }, |
72 | 70 | }, |
73 | 71 | { |
74 | 72 | title: '其他费用金额汇总$', |
75 | - dataIndex: 'otherAmount', | |
73 | + dataIndex: 'otherTotalAmount', | |
76 | 74 | width: 50, |
77 | 75 | customRender: (res) => { |
78 | - return res.record.exportVOS[0].otherAmount.toFixed(2); | |
76 | + return res.record.otherTotalAmount.toFixed(2); | |
79 | 77 | }, |
80 | 78 | }, |
81 | 79 | { |
82 | 80 | title: '未收金额合计$', |
83 | - dataIndex: 'otherTotalAmount', | |
81 | + dataIndex: 'actualPayedAmount', | |
84 | 82 | width: 50, |
85 | 83 | customRender: (res) => { |
86 | - return res.record.exportVOS[0].otherTotalAmount.toFixed(2); | |
84 | + return res.record.actualPayedAmount.toFixed(2); | |
87 | 85 | }, |
88 | 86 | }, |
89 | 87 | ]; |
... | ... | @@ -103,8 +101,6 @@ |
103 | 101 | const res = await invoiceAnalysis({ ids: ids.value }); |
104 | 102 | const arrayRes = ref([]); |
105 | 103 | arrayRes.value.push(res); |
106 | - console.log(res, 56561); | |
107 | - console.log(arrayRes.value, '56562'); | |
108 | 104 | return res; |
109 | 105 | // return arrayRes.value; |
110 | 106 | }, |
... | ... | @@ -150,7 +146,6 @@ |
150 | 146 | link.download = `收款单分析${date}.xlsx`; // 你可以为文件命名 |
151 | 147 | document.body.appendChild(link); |
152 | 148 | link.click(); // 自动点击链接,触发下载 |
153 | - console.log(link, 5656); | |
154 | 149 | document.body.removeChild(link); // 下载完成后移除链接 |
155 | 150 | }) |
156 | 151 | .catch((error) => { | ... | ... |
src/views/project/finance/receive/ReUploadBgUrl.vue
... | ... | @@ -6,6 +6,7 @@ |
6 | 6 | width="500px" |
7 | 7 | :bodyStyle="{ height: '240px' }" |
8 | 8 | @ok="handleOk" |
9 | + @visible-change="handleShow" | |
9 | 10 | > |
10 | 11 | <div>报关单(请上传PDF格式)</div |
11 | 12 | ><a-space direction="vertical" style="width: 100%" size="large"> |
... | ... | @@ -14,7 +15,7 @@ |
14 | 15 | :beforeUpload="beforeUpload" |
15 | 16 | list-type="picture" |
16 | 17 | :max-count="1" |
17 | - :action="uploadUrl" | |
18 | + :action="updateUrl" | |
18 | 19 | @change="handleChange" |
19 | 20 | > |
20 | 21 | <a-button> 上传报关单 </a-button> |
... | ... | @@ -32,26 +33,40 @@ |
32 | 33 | const fileList = ref<UploadProps['fileList']>([]); |
33 | 34 | const { createMessage } = useMessage(); |
34 | 35 | const { error } = createMessage; |
36 | + const emit = defineEmits(['success']); | |
35 | 37 | |
36 | 38 | const id = ref(); |
37 | 39 | const uploadUrl = ref('http://47.104.8.35:8081/api/localStorage/upload_file_oss?name='); |
40 | + const updateUrl = ref('http://47.104.8.35:8081/api/localStorage/upload_file_oss?name='); | |
38 | 41 | const bgUrl = ref(); |
42 | + const urlOld = ref(); | |
39 | 43 | |
40 | 44 | const [register, { closeModal }] = useModalInner(async (data) => { |
41 | 45 | id.value = data.data.id; |
42 | 46 | }); |
43 | 47 | function handleChange(info) { |
44 | 48 | if (info.file.status == 'done') { |
45 | - bgUrl.value = info.file.response.data.fileUrl; | |
49 | + updateUrl.value = info.file.response.data.fileUrl; | |
50 | + bgUrl.value = updateUrl.value; | |
51 | + } | |
52 | + if (info.fileList.length == 0) { | |
53 | + info.file = null; | |
54 | + bgUrl.value = ''; | |
46 | 55 | } |
47 | 56 | } |
48 | 57 | function beforeUpload(info) { |
49 | - uploadUrl.value += info.name; | |
58 | + updateUrl.value += uploadUrl.value + info.name; | |
59 | + } | |
60 | + function handleShow(visible: boolean) { | |
61 | + if (!visible) { | |
62 | + updateUrl.value = ''; | |
63 | + fileList.value = null; | |
64 | + } | |
50 | 65 | } |
51 | 66 | |
52 | 67 | async function handleOk() { |
53 | - console.log(bgUrl.value, '5656bgUrl.value', uploadUrl.value); | |
54 | 68 | reUploadBgUrl({ id: id.value, bgUrl: bgUrl.value }); |
69 | + emit('success'); | |
55 | 70 | closeModal(); |
56 | 71 | } |
57 | 72 | </script> | ... | ... |
src/views/project/finance/receive/TrackEdit.vue
src/views/project/finance/receive/index.vue
... | ... | @@ -14,7 +14,7 @@ |
14 | 14 | <InvoiceDetail @register="registerInvoiceDetail" /> |
15 | 15 | <DeductShow @register="registerDeductShow" /> |
16 | 16 | <Commit @register="registerCommit" @success="handleSuccess" /> |
17 | - <ReUploadBgUrl @register="registerReUploadBgUrl" /> | |
17 | + <ReUploadBgUrl @register="registerReUploadBgUrl" @success="handleSuccess" /> | |
18 | 18 | </template> |
19 | 19 | <template #bodyCell="{ column, record }"> |
20 | 20 | <template v-if="column.key === 'action'"> | ... | ... |
src/views/project/order/ProductProfit.vue
... | ... | @@ -67,8 +67,8 @@ |
67 | 67 | </tr> |
68 | 68 | <tr> |
69 | 69 | <td style="border: 1px solid black; width: 40%" colspan="2">生产科总价合计</td> |
70 | - <td style="border: 1px solid black; width: 20%">{{ productionDepartmentTotalPrice }}</td> | |
71 | - <td style="border: 1px solid black; width: 20%">{{ sumMoney }}</td> | |
70 | + <td style="border: 1px solid black; width: 20%">¥{{ productionDepartmentTotalPrice }}</td> | |
71 | + <td style="border: 1px solid black; width: 20%">¥{{ sumMoney }}</td> | |
72 | 72 | <td style="border: 1px solid black; width: 20%">{{ sumCount }}</td> |
73 | 73 | </tr> |
74 | 74 | <tr> |
... | ... | @@ -89,25 +89,25 @@ |
89 | 89 | </tr> |
90 | 90 | <tr> |
91 | 91 | <td style="border: 1px solid black; width: 40%" colspan="2">内部生产毛利润</td> |
92 | - <td style="border: 1px solid black; width: 20%">{{ grossProfit }}</td> | |
92 | + <td style="border: 1px solid black; width: 20%">¥{{ grossProfit }}</td> | |
93 | 93 | <td style="border: 1px solid black; width: 20%"></td> |
94 | 94 | <td style="border: 1px solid black; width: 20%"></td> |
95 | 95 | </tr> |
96 | 96 | <tr> |
97 | 97 | <td style="border: 1px solid black; width: 40%" colspan="2">内部生产固定成本</td> |
98 | - <td style="border: 1px solid black; width: 20%">{{ innerProduceFixProfit }}</td> | |
98 | + <td style="border: 1px solid black; width: 20%">¥{{ innerProduceFixProfit }}</td> | |
99 | 99 | <td style="border: 1px solid black; width: 20%"></td> |
100 | 100 | <td style="border: 1px solid black; width: 20%"></td> |
101 | 101 | </tr> |
102 | 102 | <tr> |
103 | 103 | <td style="border: 1px solid black; width: 40%" colspan="2">内部生产提成</td> |
104 | - <td style="border: 1px solid black; width: 20%">{{ innerProduceTotalPrice }}</td> | |
104 | + <td style="border: 1px solid black; width: 20%">¥{{ innerProduceTotalPrice }}</td> | |
105 | 105 | <td style="border: 1px solid black; width: 20%"></td> |
106 | 106 | <td style="border: 1px solid black; width: 20%"></td> |
107 | 107 | </tr> |
108 | 108 | <tr> |
109 | 109 | <td style="border: 1px solid black; width: 40%" colspan="2">内部生产净利润</td> |
110 | - <td style="border: 1px solid black; width: 20%">{{ innerProduceTotalProfit }}</td> | |
110 | + <td style="border: 1px solid black; width: 20%">¥{{ innerProduceTotalProfit }}</td> | |
111 | 111 | <td style="border: 1px solid black; width: 20%"></td> |
112 | 112 | <td style="border: 1px solid black; width: 20%"></td> |
113 | 113 | </tr> |
... | ... | @@ -159,6 +159,7 @@ |
159 | 159 | sumMoney.value += item?.profitAnalysisInfo?.productionDepartmentTotalPrice; |
160 | 160 | sumCount.value += item.orderCount; |
161 | 161 | }); |
162 | + sumMoney.value = sumMoney.value.toFixed(2); | |
162 | 163 | customerCode.value = data.customerCode[0][0]; |
163 | 164 | const extractedValues = ref<string[]>(data.projectNo.map((item) => item[0])); |
164 | 165 | projectNo.value = extractedValues.value.join(','); |
... | ... | @@ -239,10 +240,10 @@ |
239 | 240 | Input2.value = null; // 输入框 2 |
240 | 241 | res.value = null; // 结果 |
241 | 242 | customerCode.value = null; // 客户编码 |
242 | - grossProfit.value = null; // 内部生产毛利润 | |
243 | - innerProduceFixProfit.value = null; // 内部生产固定成本 | |
244 | - innerProduceTotalPrice.value = null; // 内部生产提成 | |
245 | - innerProduceTotalProfit.value = null; // 内部生产净利润 | |
243 | + grossProfit.value = 0; // 内部生产毛利润 | |
244 | + innerProduceFixProfit.value = 0; // 内部生产固定成本 | |
245 | + innerProduceTotalPrice.value = 0; // 内部生产提成 | |
246 | + innerProduceTotalProfit.value = 0; // 内部生产净利润 | |
246 | 247 | predictRatio.value = ''; // 预算占比 |
247 | 248 | predictRatioDeduct.value = ''; // 预算占比差 |
248 | 249 | productionDepartmentTotalPrice.value = 0; // 生产科总价合计 |
... | ... | @@ -269,15 +270,15 @@ |
269 | 270 | productionActualPrice: productionActualPrice.value, |
270 | 271 | }); |
271 | 272 | console.log(res, '5656resproductprofit'); |
272 | - grossProfit.value = res.grossProfit; | |
273 | - innerProduceFixProfit.value = res.innerProduceFixProfit; | |
274 | - innerProduceTotalPrice.value = res.innerProduceTotalPrice; | |
275 | - innerProduceTotalProfit.value = res.innerProduceTotalProfit; | |
273 | + grossProfit.value = res.grossProfit.toFixed(2); | |
274 | + innerProduceFixProfit.value = res.innerProduceFixProfit.toFixed(2); | |
275 | + innerProduceTotalPrice.value = res.innerProduceTotalPrice.toFixed(2); | |
276 | + innerProduceTotalProfit.value = res.innerProduceTotalProfit.toFixed(2); | |
276 | 277 | // predictRatio.value = res.predictRatio; |
277 | 278 | predictRatio.value = `${res.predictRatio}%`; |
278 | - productionActualPrice.value = res.productionActualPrice; | |
279 | - productionDepartmentPredictPrice.value = res.productionDepartmentPredictPrice; | |
280 | - productionDepartmentTotalPrice.value = res.productionDepartmentTotalPrice; | |
279 | + productionActualPrice.value = res.productionActualPrice.toFixed(2); | |
280 | + productionDepartmentPredictPrice.value = res.productionDepartmentPredictPrice.toFixed(2); | |
281 | + productionDepartmentTotalPrice.value = res.productionDepartmentTotalPrice.toFixed(2); | |
281 | 282 | projectDays.value = res.projectDays; |
282 | 283 | // predictRatioDeduct.value = res.predictAndActualRatio; |
283 | 284 | predictRatioDeduct.value = `${res.predictAndActualRatio}%`; | ... | ... |
src/views/project/order/ServiceProfit.vue
... | ... | @@ -72,23 +72,23 @@ |
72 | 72 | </tr> |
73 | 73 | <tr> |
74 | 74 | <td style="border: 1px solid black" colspan="2">客户总金额合计</td> |
75 | - <td style="border: 1px solid black">{{ customerTotalPrice }}</td> | |
75 | + <td style="border: 1px solid black">¥{{ customerTotalPrice }}</td> | |
76 | 76 | <td style="border: 1px solid black"></td> |
77 | 77 | </tr> |
78 | 78 | <tr> |
79 | 79 | <td style="border: 1px solid black" colspan="2">生产科总价合计</td> |
80 | - <td style="border: 1px solid black">{{ productionDepartmentTotalPrice }}</td> | |
80 | + <td style="border: 1px solid black">¥{{ productionDepartmentTotalPrice }}</td> | |
81 | 81 | <td style="border: 1px solid black"></td> |
82 | 82 | </tr> |
83 | 83 | <tr> |
84 | 84 | <td style="border: 1px solid black" colspan="2">包装费用合计</td> |
85 | - <td style="border: 1px solid black">{{ packetTotalPrice }}</td> | |
85 | + <td style="border: 1px solid black">¥{{ packetTotalPrice }}</td> | |
86 | 86 | <td style="border: 1px solid black"></td> |
87 | 87 | </tr> |
88 | 88 | <tr> |
89 | 89 | <td style="border: 1px solid black" colspan="2">研发开发费合计</td> |
90 | 90 | <td style="border: 1px solid black" |
91 | - ><a-input v-model:value="developTotalPrice" placeholder="请输入" | |
91 | + >¥<a-input v-model:value="developTotalPrice" placeholder="请输入" | |
92 | 92 | /></td> |
93 | 93 | <td style="border: 1px solid black"></td> |
94 | 94 | </tr> |
... | ... | @@ -101,37 +101,37 @@ |
101 | 101 | </tr> |
102 | 102 | <tr> |
103 | 103 | <td style="border: 1px solid black" colspan="2">固定成本</td> |
104 | - <td style="border: 1px solid black">{{ fixCost }}</td> | |
104 | + <td style="border: 1px solid black">¥{{ fixCost }}</td> | |
105 | 105 | <td style="border: 1px solid black"></td> |
106 | 106 | </tr> |
107 | 107 | <tr> |
108 | 108 | <td style="border: 1px solid black" colspan="2">西班牙提成</td> |
109 | - <td style="border: 1px solid black">{{ spainRatioProfitPrice }}</td> | |
109 | + <td style="border: 1px solid black">¥{{ spainRatioProfitPrice }}</td> | |
110 | 110 | <td style="border: 1px solid black"></td> |
111 | 111 | </tr> |
112 | 112 | <tr> |
113 | 113 | <td style="border: 1px solid black" colspan="2">中国团队提成</td> |
114 | - <td style="border: 1px solid black">{{ chinaRatioProfitPrice }}</td> | |
114 | + <td style="border: 1px solid black">¥{{ chinaRatioProfitPrice }}</td> | |
115 | 115 | <td style="border: 1px solid black"></td> |
116 | 116 | </tr> |
117 | 117 | <tr> |
118 | 118 | <td style="border: 1px solid black" colspan="2">支出合计</td> |
119 | - <td style="border: 1px solid black">{{ outTotalPrice }}</td> | |
119 | + <td style="border: 1px solid black">¥{{ outTotalPrice }}</td> | |
120 | 120 | <td style="border: 1px solid black"></td> |
121 | 121 | </tr> |
122 | 122 | <tr> |
123 | 123 | <td style="border: 1px solid black" colspan="2">毛利润</td> |
124 | - <td style="border: 1px solid black">{{ grossProfit }}</td> | |
124 | + <td style="border: 1px solid black">¥{{ grossProfit }}</td> | |
125 | 125 | <td style="border: 1px solid black"></td> |
126 | 126 | </tr> |
127 | 127 | <tr> |
128 | 128 | <td style="border: 1px solid black" colspan="2">研发贸易净利润</td> |
129 | - <td style="border: 1px solid black">{{ developProfit }}</td> | |
129 | + <td style="border: 1px solid black">¥{{ developProfit }}</td> | |
130 | 130 | <td style="border: 1px solid black"></td> |
131 | 131 | </tr> |
132 | 132 | <tr> |
133 | 133 | <td style="border: 1px solid black" colspan="2">包装费用合计金额</td> |
134 | - <td style="border: 1px solid black">{{ packetTotalPrice }}</td> | |
134 | + <td style="border: 1px solid black">¥{{ packetTotalPrice }}</td> | |
135 | 135 | <td style="border: 1px solid black"></td> |
136 | 136 | </tr> |
137 | 137 | <tr> |
... | ... | @@ -155,17 +155,17 @@ |
155 | 155 | </tr> --> |
156 | 156 | <tr> |
157 | 157 | <td style="border: 1px solid black" colspan="2">实际跟单单价=实际跟单费用/件数</td> |
158 | - <td style="border: 1px solid black">{{ actualRmbPrice }}</td> | |
158 | + <td style="border: 1px solid black">¥{{ actualRmbPrice }}</td> | |
159 | 159 | <td style="border: 1px solid black"></td> |
160 | 160 | </tr> |
161 | 161 | <tr> |
162 | 162 | <td style="border: 1px solid black" colspan="2">实际跟单单价折算美金</td> |
163 | - <td style="border: 1px solid black">{{ actualPrice }}</td> | |
163 | + <td style="border: 1px solid black">${{ actualPrice }}</td> | |
164 | 164 | <td style="border: 1px solid black"></td> |
165 | 165 | </tr> |
166 | 166 | <tr> |
167 | 167 | <td style="border: 1px solid black" colspan="2">包装费用收益</td> |
168 | - <td style="border: 1px solid black">{{ packetProfitPrice }}</td> | |
168 | + <td style="border: 1px solid black">¥{{ packetProfitPrice }}</td> | |
169 | 169 | <td style="border: 1px solid black"></td> |
170 | 170 | </tr> |
171 | 171 | <tr> |
... | ... | @@ -177,12 +177,12 @@ |
177 | 177 | </tr> |
178 | 178 | <tr> |
179 | 179 | <td style="border: 1px solid black" colspan="2">汇率收益</td> |
180 | - <td style="border: 1px solid black">{{ actualRatioProfitPrice }}</td> | |
180 | + <td style="border: 1px solid black">¥{{ actualRatioProfitPrice }}</td> | |
181 | 181 | <td style="border: 1px solid black"></td> |
182 | 182 | </tr> |
183 | 183 | <tr> |
184 | 184 | <td style="border: 1px solid black" colspan="2">综合收益</td> |
185 | - <td style="border: 1px solid black">{{ totalProfitPrice }}</td> | |
185 | + <td style="border: 1px solid black">¥{{ totalProfitPrice }}</td> | |
186 | 186 | <td style="border: 1px solid black"></td> |
187 | 187 | </tr> |
188 | 188 | </tbody> |
... | ... | @@ -210,29 +210,29 @@ |
210 | 210 | const orderList = ref(); |
211 | 211 | const customerCode = ref(); |
212 | 212 | const projectNo = ref(); |
213 | - const developTotalPrice = ref(); | |
214 | - const copyTotalPrice = ref(); | |
215 | - const packetActualTotalPrice = ref(); | |
213 | + const developTotalPrice = ref(0); | |
214 | + const copyTotalPrice = ref(0); | |
215 | + const packetActualTotalPrice = ref(0); | |
216 | 216 | const spainRatio = ref(0); |
217 | 217 | const chinaRatio = ref(0); |
218 | 218 | const actualRmbPrice = ref(0); //实际跟单单价 |
219 | 219 | const actualPrice = ref(0); //实际跟单单价折算美金 |
220 | - const actualRatio = ref(); //实际汇率 | |
221 | - const customerTotalPrice = ref(); //客户总价合计 | |
222 | - const actualdocumentaryPrice = ref(); //实际跟单费用 | |
223 | - const actualRatioProfitPrice = ref(); //汇率收益 | |
224 | - const grossProfit = ref(); //毛利润合计 | |
225 | - const actualRatiactualRatioProfitPriceo = ref(); //汇率收益计算 | |
226 | - const chinaRatioProfitPrice = ref(); //中国团队提成比例 | |
227 | - const developProfit = ref(); //研发贸易利润 | |
228 | - const fixCost = ref(); // 固定成本 | |
220 | + const actualRatio = ref(0); //实际汇率 | |
221 | + const customerTotalPrice = ref(0); //客户总价合计 | |
222 | + const actualdocumentaryPrice = ref(0); //实际跟单费用 | |
223 | + const actualRatioProfitPrice = ref(0); //汇率收益 | |
224 | + const grossProfit = ref(0); //毛利润合计 | |
225 | + const actualRatiactualRatioProfitPriceo = ref(0); //汇率收益计算 | |
226 | + const chinaRatioProfitPrice = ref(0); //中国团队提成比例 | |
227 | + const developProfit = ref(0); //研发贸易利润 | |
228 | + const fixCost = ref(0); // 固定成本 | |
229 | 229 | const orderCount = ref(0); //订单总数量 |
230 | - const outTotalPrice = ref(); //支出合计计 | |
231 | - const packetProfitPrice = ref(); //包装费用收益计算 | |
232 | - const packetTotalPrice = ref(); //包装费用合计¥ | |
233 | - const productionDepartmentTotalPrice = ref(); //生成科总价¥ | |
234 | - const totalProfitPrice = ref(); //综合收益计算 | |
235 | - const spainRatioProfitPrice = ref(); //西班牙提成金额 | |
230 | + const outTotalPrice = ref(0); //支出合计计 | |
231 | + const packetProfitPrice = ref(0); //包装费用收益计算 | |
232 | + const packetTotalPrice = ref(0); //包装费用合计¥ | |
233 | + const productionDepartmentTotalPrice = ref(0); //生成科总价¥ | |
234 | + const totalProfitPrice = ref(0); //综合收益计算 | |
235 | + const spainRatioProfitPrice = ref(0); //西班牙提成金额 | |
236 | 236 | const ids = ref(); |
237 | 237 | |
238 | 238 | // const orderRes = await getOrderList({}); |
... | ... | @@ -324,7 +324,7 @@ |
324 | 324 | // } |
325 | 325 | // } |
326 | 326 | function handleShow(visible: boolean) { |
327 | - if (visible) { | |
327 | + if (!visible) { | |
328 | 328 | projectStartTime.value = null; // 项目开发开始时间 |
329 | 329 | projectEndTime.value = null; // 项目开发结束时间 |
330 | 330 | produceStartTime.value = null; // 生产开始时间 |
... | ... | @@ -348,19 +348,19 @@ |
348 | 348 | chinaRatio.value = 0; // 中国比例 |
349 | 349 | actualRmbPrice.value = 0; // 实际跟单单价 |
350 | 350 | actualPrice.value = 0; // 实际跟单单价折算美金 |
351 | - actualRatio.value = null; // 实际汇率 | |
352 | - customerTotalPrice.value = null; // 客户总价合计 | |
353 | - actualRatioProfitPrice.value = null; // 汇率收益 | |
354 | - grossProfit.value = null; // 毛利润合计 | |
355 | - chinaRatioProfitPrice.value = null; // 中国团队提成比例 | |
356 | - developProfit.value = null; // 研发贸易利润 | |
357 | - fixCost.value = null; // 固定成本 | |
358 | - outTotalPrice.value = null; // 支出合计 | |
359 | - packetProfitPrice.value = null; // 包装费用收益计算 | |
360 | - packetTotalPrice.value = null; // 包装费用合计 | |
361 | - productionDepartmentTotalPrice.value = null; // 生成科总价 | |
362 | - totalProfitPrice.value = null; // 综合收益计算 | |
363 | - spainRatioProfitPrice.value = null; // 西班牙提成金额 | |
351 | + actualRatio.value = 0; // 实际汇率 | |
352 | + customerTotalPrice.value = 0; // 客户总价合计 | |
353 | + actualRatioProfitPrice.value = 0; // 汇率收益 | |
354 | + grossProfit.value = 0; // 毛利润合计 | |
355 | + chinaRatioProfitPrice.value = 0; // 中国团队提成比例 | |
356 | + developProfit.value = 0; // 研发贸易利润 | |
357 | + fixCost.value = 0; // 固定成本 | |
358 | + outTotalPrice.value = 0; // 支出合计 | |
359 | + packetProfitPrice.value = 0; // 包装费用收益计算 | |
360 | + packetTotalPrice.value = 0; // 包装费用合计 | |
361 | + productionDepartmentTotalPrice.value = 0; // 生成科总价 | |
362 | + totalProfitPrice.value = 0; // 综合收益计算 | |
363 | + spainRatioProfitPrice.value = 0; // 西班牙提成金额 | |
364 | 364 | } |
365 | 365 | } |
366 | 366 | //提成接口 |
... | ... | @@ -444,23 +444,27 @@ |
444 | 444 | }); |
445 | 445 | console.log(res, '5656resservice'); |
446 | 446 | |
447 | - customerTotalPrice.value = res.customerTotalPrice; | |
448 | - grossProfit.value = res.grossProfit; | |
449 | - actualRatioProfitPrice.value = res.actualRatioProfitPrice; | |
450 | - actualRmbPrice.value = res.actualRmbPrice; | |
451 | - actualPrice.value = res.actualPrice; | |
447 | + customerTotalPrice.value = res.customerTotalPrice.toFixed(2); | |
448 | + grossProfit.value = res.grossProfit.toFixed(2); | |
449 | + actualRatioProfitPrice.value = res.actualRatioProfitPrice.toFixed(2); | |
450 | + actualRmbPrice.value = res.actualRmbPrice.toFixed(2); | |
451 | + actualPrice.value = res.actualPrice.toFixed(2); | |
452 | 452 | actualRatio.value = res.actualRatio; |
453 | - actualRatiactualRatioProfitPriceo.value = res.actualRatioProfitPrice; //汇率收益计算 | |
454 | - chinaRatioProfitPrice.value = res.chinaRatioProfitPrice; //中国团队提成比例 | |
455 | - developProfit.value = res.developProfit; //研发贸易利润 | |
456 | - fixCost.value = res.fixCost; // 固定成本 | |
453 | + actualRatiactualRatioProfitPriceo.value = res.actualRatioProfitPrice.toFixed(2); //汇率收益计算 | |
454 | + chinaRatioProfitPrice.value = res.chinaRatioProfitPrice.toFixed(2); //中国团队提成比例 | |
455 | + developProfit.value = res.developProfit.toFixed(2); //研发贸易利润 | |
456 | + developTotalPrice.value = res.developTotalPrice.toFixed(2); | |
457 | + copyTotalPrice.value = res.copyTotalPrice.toFixed(2); | |
458 | + packetActualTotalPrice.value = res.packetActualTotalPrice.toFixed(2); | |
459 | + actualRatio.value = res.actualRatio.toFixed(2); | |
460 | + fixCost.value = res.fixCost.toFixed(2); // 固定成本 | |
457 | 461 | orderCount.value = res.orderCount; //订单总数量 |
458 | - outTotalPrice.value = res.outTotalPrice; //支出合计 | |
459 | - packetProfitPrice.value = res.packetProfitPrice; //包装费用收益计算 | |
460 | - packetTotalPrice.value = res.packetTotalPrice; //包装费用合计 | |
461 | - productionDepartmentTotalPrice.value = res.productionDepartmentTotalPrice; //生成科总价 | |
462 | - totalProfitPrice.value = res.totalProfitPrice; //综合收益计算 | |
463 | - spainRatioProfitPrice.value = res.spainRatioProfitPrice; //西班牙提成金额 | |
462 | + outTotalPrice.value = res.outTotalPrice.toFixed(2); //支出合计 | |
463 | + packetProfitPrice.value = res.packetProfitPrice.toFixed(2); //包装费用收益计算 | |
464 | + packetTotalPrice.value = res.packetTotalPrice.toFixed(2); //包装费用合计 | |
465 | + productionDepartmentTotalPrice.value = res.productionDepartmentTotalPrice.toFixed(2); //生成科总价 | |
466 | + totalProfitPrice.value = res.totalProfitPrice.toFixed(2); //综合收益计算 | |
467 | + spainRatioProfitPrice.value = res.spainRatioProfitPrice.toFixed(2); //西班牙提成金额 | |
464 | 468 | } |
465 | 469 | </script> |
466 | 470 | <style scoped> | ... | ... |