Commit 4252ecfb217d43a593e8b40d035d4839ffd520d6

Authored by 柏杨
1 parent ab2242a1

修改审核权限

src/views/project/approve/FieldPanel.vue
@@ -31,7 +31,12 @@ @@ -31,7 +31,12 @@
31 @ok="handleTrue" 31 @ok="handleTrue"
32 > 32 >
33 <BaseInfo :baseInfos="baseInfos" /> 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 <h2 className="mt-8">基本信息申请字段</h2> 40 <h2 className="mt-8">基本信息申请字段</h2>
36 <div>{{ fieldInfos.baseFields.join(' , ') }}</div> 41 <div>{{ fieldInfos.baseFields.join(' , ') }}</div>
37 </template> 42 </template>
@@ -40,7 +45,13 @@ @@ -40,7 +45,13 @@
40 <div> 45 <div>
41 {{ fieldInfos.profitFields.join(' , ') }} 46 {{ fieldInfos.profitFields.join(' , ') }}
42 </div> 47 </div>
43 - 48 + </template>
  49 + <template
  50 + v-if="
  51 + fieldInfos.auditRoleCodes.includes('business_user') ||
  52 + fieldInfos.auditRoleCodes.includes('admin')
  53 + "
  54 + >
44 <h2 className="mt-8">项目报告书申请字段</h2> 55 <h2 className="mt-8">项目报告书申请字段</h2>
45 <div> 56 <div>
46 <span>{{ fieldInfos.reportFields.join(' , ') }}</span> 57 <span>{{ fieldInfos.reportFields.join(' , ') }}</span>
@@ -125,7 +136,9 @@ @@ -125,7 +136,9 @@
125 width: 150, 136 width: 150,
126 customRender: (column) => { 137 customRender: (column) => {
127 const { record } = column || {}; 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,6 +113,7 @@
113 </a-list> --> 113 </a-list> -->
114 <template #appendFooter> 114 <template #appendFooter>
115 <a-button v-if="!isApproved && role === ROLE.ADMIN" @click="handleFalse"> 不通过</a-button> 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 <a-button @click="handleExport"> 导出</a-button> 117 <a-button @click="handleExport"> 导出</a-button>
117 </template> 118 </template>
118 </BasicModal> 119 </BasicModal>
@@ -392,7 +393,7 @@ @@ -392,7 +393,7 @@
392 // 创建一个链接元素用于下载 393 // 创建一个链接元素用于下载
393 const link = document.createElement('a'); 394 const link = document.createElement('a');
394 link.href = window.URL.createObjectURL(blob); 395 link.href = window.URL.createObjectURL(blob);
395 - link.download = `业务/研发净利润分析${date}.xlsx`; // 你可以为文件命名 396 + link.download = `付款单${date}.xlsx`; // 你可以为文件命名
396 document.body.appendChild(link); 397 document.body.appendChild(link);
397 link.click(); // 自动点击链接,触发下载 398 link.click(); // 自动点击链接,触发下载
398 console.log(link, 5656); 399 console.log(link, 5656);
src/views/project/approve/ReceivePanel.vue
@@ -106,6 +106,7 @@ @@ -106,6 +106,7 @@
106 </table> 106 </table>
107 <template #appendFooter> 107 <template #appendFooter>
108 <a-button v-if="!isApproved && role === ROLE.ADMIN" @click="handleFalse"> 不通过</a-button> 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 <a-button @click="handleExport"> 导出</a-button> 110 <a-button @click="handleExport"> 导出</a-button>
110 </template> 111 </template>
111 </BasicModal> 112 </BasicModal>
@@ -380,12 +381,12 @@ @@ -380,12 +381,12 @@
380 // 创建一个链接元素用来下载文件 381 // 创建一个链接元素用来下载文件
381 const link = document.createElement('a'); 382 const link = document.createElement('a');
382 link.href = window.URL.createObjectURL(blob); 383 link.href = window.URL.createObjectURL(blob);
383 - link.download = `款单_${date}.xlsx`; // 文件命名 384 + link.download = `款单_${date}.xlsx`; // 文件命名
384 document.body.appendChild(link); 385 document.body.appendChild(link);
385 link.click(); // 自动点击链接,触发下载 386 link.click(); // 自动点击链接,触发下载
386 document.body.removeChild(link); // 下载完成后移除链接 387 document.body.removeChild(link); // 下载完成后移除链接
387 } catch (error) { 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,7 +102,6 @@
102 const [register, { setDrawerProps, closeDrawer }] = useDrawerInner((data) => { 102 const [register, { setDrawerProps, closeDrawer }] = useDrawerInner((data) => {
103 // 方式1 103 // 方式1
104 checkNo.value = data.data.checkNo; 104 checkNo.value = data.data.checkNo;
105 - console.log(data, '56562vvsdfv');  
106 // checkDetail({ checkNo: checkNo.value }); 105 // checkDetail({ checkNo: checkNo.value });
107 }); 106 });
108 const params = ref({ 107 const params = ref({
@@ -111,7 +110,6 @@ @@ -111,7 +110,6 @@
111 const [registerTable] = useTable({ 110 const [registerTable] = useTable({
112 api: () => { 111 api: () => {
113 const res = checkDetail({ checkNo: checkNo.value }); 112 const res = checkDetail({ checkNo: checkNo.value });
114 - console.log(res, 56565555);  
115 return res; 113 return res;
116 }, 114 },
117 columns: columns, 115 columns: columns,
src/views/project/finance/pay/CheckSum.vue
@@ -43,7 +43,7 @@ @@ -43,7 +43,7 @@
43 width: 150, 43 width: 150,
44 customRender: (res) => { 44 customRender: (res) => {
45 // console.log(res, 56562); 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,7 +52,7 @@
52 width: 160, 52 width: 160,
53 customRender: (res) => { 53 customRender: (res) => {
54 // console.log(res, 56562); 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,8 +60,7 @@
60 dataIndex: 'calculateActualPayedAmount', 60 dataIndex: 'calculateActualPayedAmount',
61 width: 160, 61 width: 160,
62 customRender: (res) => { 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,7 +69,7 @@
70 width: 160, 69 width: 160,
71 customRender: (res) => { 70 customRender: (res) => {
72 // console.log(res, 56562); 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,7 +78,7 @@
79 width: 150, 78 width: 150,
80 customRender: (res) => { 79 customRender: (res) => {
81 // console.log(res, 56562); 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
@@ -128,7 +128,6 @@ @@ -128,7 +128,6 @@
128 ...toRaw(data.data), 128 ...toRaw(data.data),
129 }); 129 });
130 update.value = data; 130 update.value = data;
131 - console.log(data, '5656data');  
132 }); 131 });
133 //完成编辑 132 //完成编辑
134 async function handleSubmit() { 133 async function handleSubmit() {
src/views/project/finance/receive/InvoiceAnalysis.vue
@@ -33,7 +33,6 @@ @@ -33,7 +33,6 @@
33 dataIndex: 'actualPayedAmount', 33 dataIndex: 'actualPayedAmount',
34 width: 50, 34 width: 50,
35 customRender: (res) => { 35 customRender: (res) => {
36 - // console.log(res, 56562);  
37 return res.record.exportVOS[0].customerCode; 36 return res.record.exportVOS[0].customerCode;
38 }, 37 },
39 }, 38 },
@@ -42,8 +41,7 @@ @@ -42,8 +41,7 @@
42 dataIndex: 'customerTotalPrice', 41 dataIndex: 'customerTotalPrice',
43 width: 50, 42 width: 50,
44 customRender: (res) => { 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,39 +49,39 @@
51 dataIndex: 'deductAmount', 49 dataIndex: 'deductAmount',
52 width: 50, 50 width: 50,
53 customRender: (res) => { 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 title: '实际应收款$', 56 title: '实际应收款$',
59 - dataIndex: 'actualReceivableAmount', 57 + dataIndex: 'otherAmount',
60 width: 50, 58 width: 50,
61 customRender: (res) => { 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 title: '实际收款金额汇总$', 64 title: '实际收款金额汇总$',
67 - dataIndex: 'actualPayedAmount', 65 + dataIndex: 'actualReceivableAmount',
68 width: 50, 66 width: 50,
69 customRender: (res) => { 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 title: '其他费用金额汇总$', 72 title: '其他费用金额汇总$',
75 - dataIndex: 'otherAmount', 73 + dataIndex: 'otherTotalAmount',
76 width: 50, 74 width: 50,
77 customRender: (res) => { 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 title: '未收金额合计$', 80 title: '未收金额合计$',
83 - dataIndex: 'otherTotalAmount', 81 + dataIndex: 'actualPayedAmount',
84 width: 50, 82 width: 50,
85 customRender: (res) => { 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,8 +101,6 @@
103 const res = await invoiceAnalysis({ ids: ids.value }); 101 const res = await invoiceAnalysis({ ids: ids.value });
104 const arrayRes = ref([]); 102 const arrayRes = ref([]);
105 arrayRes.value.push(res); 103 arrayRes.value.push(res);
106 - console.log(res, 56561);  
107 - console.log(arrayRes.value, '56562');  
108 return res; 104 return res;
109 // return arrayRes.value; 105 // return arrayRes.value;
110 }, 106 },
@@ -150,7 +146,6 @@ @@ -150,7 +146,6 @@
150 link.download = `收款单分析${date}.xlsx`; // 你可以为文件命名 146 link.download = `收款单分析${date}.xlsx`; // 你可以为文件命名
151 document.body.appendChild(link); 147 document.body.appendChild(link);
152 link.click(); // 自动点击链接,触发下载 148 link.click(); // 自动点击链接,触发下载
153 - console.log(link, 5656);  
154 document.body.removeChild(link); // 下载完成后移除链接 149 document.body.removeChild(link); // 下载完成后移除链接
155 }) 150 })
156 .catch((error) => { 151 .catch((error) => {
src/views/project/finance/receive/ReUploadBgUrl.vue
@@ -6,6 +6,7 @@ @@ -6,6 +6,7 @@
6 width="500px" 6 width="500px"
7 :bodyStyle="{ height: '240px' }" 7 :bodyStyle="{ height: '240px' }"
8 @ok="handleOk" 8 @ok="handleOk"
  9 + @visible-change="handleShow"
9 > 10 >
10 <div>报关单(请上传PDF格式)</div 11 <div>报关单(请上传PDF格式)</div
11 ><a-space direction="vertical" style="width: 100%" size="large"> 12 ><a-space direction="vertical" style="width: 100%" size="large">
@@ -14,7 +15,7 @@ @@ -14,7 +15,7 @@
14 :beforeUpload="beforeUpload" 15 :beforeUpload="beforeUpload"
15 list-type="picture" 16 list-type="picture"
16 :max-count="1" 17 :max-count="1"
17 - :action="uploadUrl" 18 + :action="updateUrl"
18 @change="handleChange" 19 @change="handleChange"
19 > 20 >
20 <a-button> 上传报关单 </a-button> 21 <a-button> 上传报关单 </a-button>
@@ -32,26 +33,40 @@ @@ -32,26 +33,40 @@
32 const fileList = ref<UploadProps['fileList']>([]); 33 const fileList = ref<UploadProps['fileList']>([]);
33 const { createMessage } = useMessage(); 34 const { createMessage } = useMessage();
34 const { error } = createMessage; 35 const { error } = createMessage;
  36 + const emit = defineEmits(['success']);
35 37
36 const id = ref(); 38 const id = ref();
37 const uploadUrl = ref('http://47.104.8.35:8081/api/localStorage/upload_file_oss?name='); 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 const bgUrl = ref(); 41 const bgUrl = ref();
  42 + const urlOld = ref();
39 43
40 const [register, { closeModal }] = useModalInner(async (data) => { 44 const [register, { closeModal }] = useModalInner(async (data) => {
41 id.value = data.data.id; 45 id.value = data.data.id;
42 }); 46 });
43 function handleChange(info) { 47 function handleChange(info) {
44 if (info.file.status == 'done') { 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 function beforeUpload(info) { 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 async function handleOk() { 67 async function handleOk() {
53 - console.log(bgUrl.value, '5656bgUrl.value', uploadUrl.value);  
54 reUploadBgUrl({ id: id.value, bgUrl: bgUrl.value }); 68 reUploadBgUrl({ id: id.value, bgUrl: bgUrl.value });
  69 + emit('success');
55 closeModal(); 70 closeModal();
56 } 71 }
57 </script> 72 </script>
src/views/project/finance/receive/TrackEdit.vue
@@ -99,7 +99,6 @@ @@ -99,7 +99,6 @@
99 99
100 //完成编辑 100 //完成编辑
101 async function handleSubmit() { 101 async function handleSubmit() {
102 - console.log(input1.value, '5656', deductUrl.value);  
103 if (!input1.value) { 102 if (!input1.value) {
104 error('选项不能为空'); 103 error('选项不能为空');
105 } else { 104 } else {
src/views/project/finance/receive/index.vue
@@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
14 <InvoiceDetail @register="registerInvoiceDetail" /> 14 <InvoiceDetail @register="registerInvoiceDetail" />
15 <DeductShow @register="registerDeductShow" /> 15 <DeductShow @register="registerDeductShow" />
16 <Commit @register="registerCommit" @success="handleSuccess" /> 16 <Commit @register="registerCommit" @success="handleSuccess" />
17 - <ReUploadBgUrl @register="registerReUploadBgUrl" /> 17 + <ReUploadBgUrl @register="registerReUploadBgUrl" @success="handleSuccess" />
18 </template> 18 </template>
19 <template #bodyCell="{ column, record }"> 19 <template #bodyCell="{ column, record }">
20 <template v-if="column.key === 'action'"> 20 <template v-if="column.key === 'action'">
src/views/project/order/ProductProfit.vue
@@ -67,8 +67,8 @@ @@ -67,8 +67,8 @@
67 </tr> 67 </tr>
68 <tr> 68 <tr>
69 <td style="border: 1px solid black; width: 40%" colspan="2">生产科总价合计</td> 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 <td style="border: 1px solid black; width: 20%">{{ sumCount }}</td> 72 <td style="border: 1px solid black; width: 20%">{{ sumCount }}</td>
73 </tr> 73 </tr>
74 <tr> 74 <tr>
@@ -89,25 +89,25 @@ @@ -89,25 +89,25 @@
89 </tr> 89 </tr>
90 <tr> 90 <tr>
91 <td style="border: 1px solid black; width: 40%" colspan="2">内部生产毛利润</td> 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 <td style="border: 1px solid black; width: 20%"></td> 93 <td style="border: 1px solid black; width: 20%"></td>
94 <td style="border: 1px solid black; width: 20%"></td> 94 <td style="border: 1px solid black; width: 20%"></td>
95 </tr> 95 </tr>
96 <tr> 96 <tr>
97 <td style="border: 1px solid black; width: 40%" colspan="2">内部生产固定成本</td> 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 <td style="border: 1px solid black; width: 20%"></td> 99 <td style="border: 1px solid black; width: 20%"></td>
100 <td style="border: 1px solid black; width: 20%"></td> 100 <td style="border: 1px solid black; width: 20%"></td>
101 </tr> 101 </tr>
102 <tr> 102 <tr>
103 <td style="border: 1px solid black; width: 40%" colspan="2">内部生产提成</td> 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 <td style="border: 1px solid black; width: 20%"></td> 105 <td style="border: 1px solid black; width: 20%"></td>
106 <td style="border: 1px solid black; width: 20%"></td> 106 <td style="border: 1px solid black; width: 20%"></td>
107 </tr> 107 </tr>
108 <tr> 108 <tr>
109 <td style="border: 1px solid black; width: 40%" colspan="2">内部生产净利润</td> 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 <td style="border: 1px solid black; width: 20%"></td> 111 <td style="border: 1px solid black; width: 20%"></td>
112 <td style="border: 1px solid black; width: 20%"></td> 112 <td style="border: 1px solid black; width: 20%"></td>
113 </tr> 113 </tr>
@@ -159,6 +159,7 @@ @@ -159,6 +159,7 @@
159 sumMoney.value += item?.profitAnalysisInfo?.productionDepartmentTotalPrice; 159 sumMoney.value += item?.profitAnalysisInfo?.productionDepartmentTotalPrice;
160 sumCount.value += item.orderCount; 160 sumCount.value += item.orderCount;
161 }); 161 });
  162 + sumMoney.value = sumMoney.value.toFixed(2);
162 customerCode.value = data.customerCode[0][0]; 163 customerCode.value = data.customerCode[0][0];
163 const extractedValues = ref<string[]>(data.projectNo.map((item) => item[0])); 164 const extractedValues = ref<string[]>(data.projectNo.map((item) => item[0]));
164 projectNo.value = extractedValues.value.join(','); 165 projectNo.value = extractedValues.value.join(',');
@@ -239,10 +240,10 @@ @@ -239,10 +240,10 @@
239 Input2.value = null; // 输入框 2 240 Input2.value = null; // 输入框 2
240 res.value = null; // 结果 241 res.value = null; // 结果
241 customerCode.value = null; // 客户编码 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 predictRatio.value = ''; // 预算占比 247 predictRatio.value = ''; // 预算占比
247 predictRatioDeduct.value = ''; // 预算占比差 248 predictRatioDeduct.value = ''; // 预算占比差
248 productionDepartmentTotalPrice.value = 0; // 生产科总价合计 249 productionDepartmentTotalPrice.value = 0; // 生产科总价合计
@@ -269,15 +270,15 @@ @@ -269,15 +270,15 @@
269 productionActualPrice: productionActualPrice.value, 270 productionActualPrice: productionActualPrice.value,
270 }); 271 });
271 console.log(res, '5656resproductprofit'); 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 // predictRatio.value = res.predictRatio; 277 // predictRatio.value = res.predictRatio;
277 predictRatio.value = `${res.predictRatio}%`; 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 projectDays.value = res.projectDays; 282 projectDays.value = res.projectDays;
282 // predictRatioDeduct.value = res.predictAndActualRatio; 283 // predictRatioDeduct.value = res.predictAndActualRatio;
283 predictRatioDeduct.value = `${res.predictAndActualRatio}%`; 284 predictRatioDeduct.value = `${res.predictAndActualRatio}%`;
src/views/project/order/ServiceProfit.vue
@@ -72,23 +72,23 @@ @@ -72,23 +72,23 @@
72 </tr> 72 </tr>
73 <tr> 73 <tr>
74 <td style="border: 1px solid black" colspan="2">客户总金额合计</td> 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 <td style="border: 1px solid black"></td> 76 <td style="border: 1px solid black"></td>
77 </tr> 77 </tr>
78 <tr> 78 <tr>
79 <td style="border: 1px solid black" colspan="2">生产科总价合计</td> 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 <td style="border: 1px solid black"></td> 81 <td style="border: 1px solid black"></td>
82 </tr> 82 </tr>
83 <tr> 83 <tr>
84 <td style="border: 1px solid black" colspan="2">包装费用合计</td> 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 <td style="border: 1px solid black"></td> 86 <td style="border: 1px solid black"></td>
87 </tr> 87 </tr>
88 <tr> 88 <tr>
89 <td style="border: 1px solid black" colspan="2">研发开发费合计</td> 89 <td style="border: 1px solid black" colspan="2">研发开发费合计</td>
90 <td style="border: 1px solid black" 90 <td style="border: 1px solid black"
91 - ><a-input v-model:value="developTotalPrice" placeholder="请输入" 91 + >¥<a-input v-model:value="developTotalPrice" placeholder="请输入"
92 /></td> 92 /></td>
93 <td style="border: 1px solid black"></td> 93 <td style="border: 1px solid black"></td>
94 </tr> 94 </tr>
@@ -101,37 +101,37 @@ @@ -101,37 +101,37 @@
101 </tr> 101 </tr>
102 <tr> 102 <tr>
103 <td style="border: 1px solid black" colspan="2">固定成本</td> 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 <td style="border: 1px solid black"></td> 105 <td style="border: 1px solid black"></td>
106 </tr> 106 </tr>
107 <tr> 107 <tr>
108 <td style="border: 1px solid black" colspan="2">西班牙提成</td> 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 <td style="border: 1px solid black"></td> 110 <td style="border: 1px solid black"></td>
111 </tr> 111 </tr>
112 <tr> 112 <tr>
113 <td style="border: 1px solid black" colspan="2">中国团队提成</td> 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 <td style="border: 1px solid black"></td> 115 <td style="border: 1px solid black"></td>
116 </tr> 116 </tr>
117 <tr> 117 <tr>
118 <td style="border: 1px solid black" colspan="2">支出合计</td> 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 <td style="border: 1px solid black"></td> 120 <td style="border: 1px solid black"></td>
121 </tr> 121 </tr>
122 <tr> 122 <tr>
123 <td style="border: 1px solid black" colspan="2">毛利润</td> 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 <td style="border: 1px solid black"></td> 125 <td style="border: 1px solid black"></td>
126 </tr> 126 </tr>
127 <tr> 127 <tr>
128 <td style="border: 1px solid black" colspan="2">研发贸易净利润</td> 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 <td style="border: 1px solid black"></td> 130 <td style="border: 1px solid black"></td>
131 </tr> 131 </tr>
132 <tr> 132 <tr>
133 <td style="border: 1px solid black" colspan="2">包装费用合计金额</td> 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 <td style="border: 1px solid black"></td> 135 <td style="border: 1px solid black"></td>
136 </tr> 136 </tr>
137 <tr> 137 <tr>
@@ -155,17 +155,17 @@ @@ -155,17 +155,17 @@
155 </tr> --> 155 </tr> -->
156 <tr> 156 <tr>
157 <td style="border: 1px solid black" colspan="2">实际跟单单价=实际跟单费用/件数</td> 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 <td style="border: 1px solid black"></td> 159 <td style="border: 1px solid black"></td>
160 </tr> 160 </tr>
161 <tr> 161 <tr>
162 <td style="border: 1px solid black" colspan="2">实际跟单单价折算美金</td> 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 <td style="border: 1px solid black"></td> 164 <td style="border: 1px solid black"></td>
165 </tr> 165 </tr>
166 <tr> 166 <tr>
167 <td style="border: 1px solid black" colspan="2">包装费用收益</td> 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 <td style="border: 1px solid black"></td> 169 <td style="border: 1px solid black"></td>
170 </tr> 170 </tr>
171 <tr> 171 <tr>
@@ -177,12 +177,12 @@ @@ -177,12 +177,12 @@
177 </tr> 177 </tr>
178 <tr> 178 <tr>
179 <td style="border: 1px solid black" colspan="2">汇率收益</td> 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 <td style="border: 1px solid black"></td> 181 <td style="border: 1px solid black"></td>
182 </tr> 182 </tr>
183 <tr> 183 <tr>
184 <td style="border: 1px solid black" colspan="2">综合收益</td> 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 <td style="border: 1px solid black"></td> 186 <td style="border: 1px solid black"></td>
187 </tr> 187 </tr>
188 </tbody> 188 </tbody>
@@ -210,29 +210,29 @@ @@ -210,29 +210,29 @@
210 const orderList = ref(); 210 const orderList = ref();
211 const customerCode = ref(); 211 const customerCode = ref();
212 const projectNo = ref(); 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 const spainRatio = ref(0); 216 const spainRatio = ref(0);
217 const chinaRatio = ref(0); 217 const chinaRatio = ref(0);
218 const actualRmbPrice = ref(0); //实际跟单单价 218 const actualRmbPrice = ref(0); //实际跟单单价
219 const actualPrice = ref(0); //实际跟单单价折算美金 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 const orderCount = ref(0); //订单总数量 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 const ids = ref(); 236 const ids = ref();
237 237
238 // const orderRes = await getOrderList({}); 238 // const orderRes = await getOrderList({});
@@ -324,7 +324,7 @@ @@ -324,7 +324,7 @@
324 // } 324 // }
325 // } 325 // }
326 function handleShow(visible: boolean) { 326 function handleShow(visible: boolean) {
327 - if (visible) { 327 + if (!visible) {
328 projectStartTime.value = null; // 项目开发开始时间 328 projectStartTime.value = null; // 项目开发开始时间
329 projectEndTime.value = null; // 项目开发结束时间 329 projectEndTime.value = null; // 项目开发结束时间
330 produceStartTime.value = null; // 生产开始时间 330 produceStartTime.value = null; // 生产开始时间
@@ -348,19 +348,19 @@ @@ -348,19 +348,19 @@
348 chinaRatio.value = 0; // 中国比例 348 chinaRatio.value = 0; // 中国比例
349 actualRmbPrice.value = 0; // 实际跟单单价 349 actualRmbPrice.value = 0; // 实际跟单单价
350 actualPrice.value = 0; // 实际跟单单价折算美金 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,23 +444,27 @@
444 }); 444 });
445 console.log(res, '5656resservice'); 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 actualRatio.value = res.actualRatio; 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 orderCount.value = res.orderCount; //订单总数量 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 </script> 469 </script>
466 <style scoped> 470 <style scoped>