Commit 10234fd5e35a5b477cce83f9e00b2756d2572d7f

Authored by
1 parent de51894f

fix: 修改了业务研发净利润分析表

src/views/project/approve/ReceivePanel.vue
@@ -104,7 +104,7 @@ @@ -104,7 +104,7 @@
104 </tr> 104 </tr>
105 </tbody> 105 </tbody>
106 </table> 106 </table>
107 - <a v-if="showInvoice" @click="openPic(mockData.deductUrl)" rel="noopener noreferrer">{{ 107 + <a v-if="showInvoice" @click="openPic(mockData.deductUrl?mockData.deductUrl:mockData.bgUrl)" rel="noopener noreferrer">{{
108 mockData.invoiceName 108 mockData.invoiceName
109 }}</a> 109 }}</a>
110 <template #appendFooter> 110 <template #appendFooter>
@@ -212,7 +212,12 @@ @@ -212,7 +212,12 @@
212 width: 150, 212 width: 150,
213 customRender: (column) => { 213 customRender: (column) => {
214 const { record } = column || {}; 214 const { record } = column || {};
215 - return record?.fieldInfos?.checkBillOrderDO?.financePerson; 215 + if(record?.type === 31){
  216 + return record.createBy;
  217 + }else{
  218 + return record?.fieldInfos?.checkBillOrderDO?.financePerson;
  219 + }
  220 +
216 }, 221 },
217 }, 222 },
218 { 223 {
@@ -221,7 +226,7 @@ @@ -221,7 +226,7 @@
221 width: 150, 226 width: 150,
222 customRender: (column) => { 227 customRender: (column) => {
223 const { record } = column || {}; 228 const { record } = column || {};
224 - if(record?.type === 30){ 229 + if(record?.type === 30 || record?.type === 31){
225 return record?.fieldInfos?.invoiceFieldVO?.invoiceNo; 230 return record?.fieldInfos?.invoiceFieldVO?.invoiceNo;
226 }else if(record?.type === 60){ 231 }else if(record?.type === 60){
227 return record?.fieldInfos?.deductionUrlFieldVO?.invoiceNo; 232 return record?.fieldInfos?.deductionUrlFieldVO?.invoiceNo;
@@ -235,7 +240,7 @@ @@ -235,7 +240,7 @@
235 width: 150, 240 width: 150,
236 customRender: (column) => { 241 customRender: (column) => {
237 const { record } = column || {}; 242 const { record } = column || {};
238 - if(record?.type === 30){ 243 + if(record?.type === 30 || record?.type === 31){
239 const extractedValues = ref<string[]>( 244 const extractedValues = ref<string[]>(
240 record?.fieldInfos?.invoiceFieldVO?.innerNo?.map((item) => item), 245 record?.fieldInfos?.invoiceFieldVO?.innerNo?.map((item) => item),
241 ); 246 );
@@ -254,7 +259,9 @@ @@ -254,7 +259,9 @@
254 const { record } = column || {}; 259 const { record } = column || {};
255 if (record?.type === 30) { 260 if (record?.type === 30) {
256 return '应收账单申请'; 261 return '应收账单申请';
257 - } else if (record?.type == 60) { 262 + } else if (record?.type == 31) {
  263 + return `Invoice创建申请`;
  264 + }else if (record?.type == 60) {
258 return `Invoice扣款单申请${record?.fieldInfos?.deductionUrlFieldVO?.deductAmount ? `(¥${record?.fieldInfos?.deductionUrlFieldVO?.deductAmount?.toFixed(2)})` : ''}`; 265 return `Invoice扣款单申请${record?.fieldInfos?.deductionUrlFieldVO?.deductAmount ? `(¥${record?.fieldInfos?.deductionUrlFieldVO?.deductAmount?.toFixed(2)})` : ''}`;
259 } 266 }
260 }, 267 },
@@ -328,6 +335,7 @@ @@ -328,6 +335,7 @@
328 function handleProfitModal() {} 335 function handleProfitModal() {}
329 // 打开图片或 PDF 336 // 打开图片或 PDF
330 function openPic(url: string) { 337 function openPic(url: string) {
  338 + console.log(url,'测试11111111111');
331 const baseUrl = url.split('?')[0]; 339 const baseUrl = url.split('?')[0];
332 if (isImageUrl(baseUrl)) { 340 if (isImageUrl(baseUrl)) {
333 window.open('', '', '').document.write(`<!DOCTYPE html> 341 window.open('', '', '').document.write(`<!DOCTYPE html>
@@ -347,6 +355,9 @@ @@ -347,6 +355,9 @@
347 if(data.type == 60){ 355 if(data.type == 60){
348 showInvoice.value = true; 356 showInvoice.value = true;
349 mockData.value = data.fieldInfos.deductionUrlFieldVO; 357 mockData.value = data.fieldInfos.deductionUrlFieldVO;
  358 + }else if (data.type == 31){
  359 + showInvoice.value=true;
  360 + mockData.value=data.fieldInfos.invoiceFieldVO;
350 }else if(data.type == 30){ 361 }else if(data.type == 30){
351 showInvoice.value=false; 362 showInvoice.value=false;
352 mockData.value=data.fieldInfos.invoiceFieldVO; 363 mockData.value=data.fieldInfos.invoiceFieldVO;
@@ -365,13 +376,25 @@ @@ -365,13 +376,25 @@
365 otherAmount.value = mockData.value.otherAmount?.toFixed(2); 376 otherAmount.value = mockData.value.otherAmount?.toFixed(2);
366 invoiceNo.value = mockData.value.invoiceNo; 377 invoiceNo.value = mockData.value.invoiceNo;
367 payee.value = mockData.value.payee; 378 payee.value = mockData.value.payee;
  379 + if(mockData.value?.deductUrl){
368 const match = mockData.value?.deductUrl?.match(/aliyuncs\.com\/(.*?)\?/); 380 const match = mockData.value?.deductUrl?.match(/aliyuncs\.com\/(.*?)\?/);
369 if (match && match[1]) { 381 if (match && match[1]) {
370 // 对提取的部分进行解码 382 // 对提取的部分进行解码
  383 + console.log(match,'我是111');
371 mockData.value.invoiceName = decodeURIComponent(match[1]); 384 mockData.value.invoiceName = decodeURIComponent(match[1]);
372 } else { 385 } else {
373 mockData.value.invoiceName = mockData.value?.deductUrl; 386 mockData.value.invoiceName = mockData.value?.deductUrl;
374 } 387 }
  388 + }else if(mockData.value?.bgUrl){
  389 + const match = mockData.value?.bgUrl?.match(/aliyuncs\.com\/(.*?)\?/);
  390 + if (match && match[1]) {
  391 + // 对提取的部分进行解码
  392 + console.log(match,'我是222');
  393 + mockData.value.invoiceName = decodeURIComponent(match[1]);
  394 + } else {
  395 + mockData.value.invoiceName = mockData.value?.deductUrl;
  396 + }
  397 + }
375 } 398 }
376 399
377 async function handleTrue() { 400 async function handleTrue() {
src/views/project/finance/financeProfit/ServiceProfit/ServiceProfit/data.tsx
@@ -272,54 +272,54 @@ export const COLUMNS = [ @@ -272,54 +272,54 @@ export const COLUMNS = [
272 return column.record?.developmentProfitRate?.toFixed(2); 272 return column.record?.developmentProfitRate?.toFixed(2);
273 }, 273 },
274 }, 274 },
275 - {  
276 - title: '包装费用合计¥',  
277 - dataIndex: 'packetRmbTotalPrice',  
278 - width: 150,  
279 - customRender: (column) => {  
280 - return column.record?.packetRmbTotalPrice?.toFixed(2);  
281 - },  
282 - },  
283 - {  
284 - title: '包装费用实际金额¥',  
285 - dataIndex: 'packetActualRmbTotalPrice',  
286 - width: 160,  
287 - customRender: (column) => {  
288 - return column.record?.packetActualRmbTotalPrice?.toFixed(2);  
289 - },  
290 - },  
291 - {  
292 - title: '实际跟单单价¥',  
293 - dataIndex: 'actualOrderRmbPrice',  
294 - width: 160,  
295 - customRender: (column) => {  
296 - return column.record?.actualOrderRmbPrice?.toFixed(2);  
297 - },  
298 - },  
299 - {  
300 - title: '实际跟单单价折算美金¥',  
301 - dataIndex: 'actualOrderPrice',  
302 - width: 190,  
303 - customRender: (column) => {  
304 - return column.record?.actualOrderPrice?.toFixed(2);  
305 - },  
306 - },  
307 - {  
308 - title: '包装费用收益¥',  
309 - dataIndex: 'packetProfitRmbPrice',  
310 - width: 150,  
311 - customRender: (column) => {  
312 - return column.record?.packetProfitRmbPrice?.toFixed(2);  
313 - },  
314 - },  
315 - {  
316 - title: '综合收益¥',  
317 - dataIndex: 'comprehensiveProfit',  
318 - width: 120,  
319 - customRender: (column) => {  
320 - return column.record?.comprehensiveProfit?.toFixed(2);  
321 - },  
322 - }, 275 + // {
  276 + // title: '包装费用合计¥',
  277 + // dataIndex: 'packetRmbTotalPrice',
  278 + // width: 150,
  279 + // customRender: (column) => {
  280 + // return column.record?.packetRmbTotalPrice?.toFixed(2);
  281 + // },
  282 + // },
  283 + // {
  284 + // title: '包装费用实际金额¥',
  285 + // dataIndex: 'packetActualRmbTotalPrice',
  286 + // width: 160,
  287 + // customRender: (column) => {
  288 + // return column.record?.packetActualRmbTotalPrice?.toFixed(2);
  289 + // },
  290 + // },
  291 + // {
  292 + // title: '实际跟单单价¥',
  293 + // dataIndex: 'actualOrderRmbPrice',
  294 + // width: 160,
  295 + // customRender: (column) => {
  296 + // return column.record?.actualOrderRmbPrice?.toFixed(2);
  297 + // },
  298 + // },
  299 + // {
  300 + // title: '实际跟单单价折算美金¥',
  301 + // dataIndex: 'actualOrderPrice',
  302 + // width: 190,
  303 + // customRender: (column) => {
  304 + // return column.record?.actualOrderPrice?.toFixed(2);
  305 + // },
  306 + // },
  307 + // {
  308 + // title: '包装费用收益¥',
  309 + // dataIndex: 'packetProfitRmbPrice',
  310 + // width: 150,
  311 + // customRender: (column) => {
  312 + // return column.record?.packetProfitRmbPrice?.toFixed(2);
  313 + // },
  314 + // },
  315 + // {
  316 + // title: '综合收益¥',
  317 + // dataIndex: 'comprehensiveProfit',
  318 + // width: 120,
  319 + // customRender: (column) => {
  320 + // return column.record?.comprehensiveProfit?.toFixed(2);
  321 + // },
  322 + // },
323 { 323 {
324 title: '文件', 324 title: '文件',
325 dataIndex: 'fileUrl', 325 dataIndex: 'fileUrl',
src/views/project/order/InvoiceCreate.vue
@@ -9,10 +9,10 @@ @@ -9,10 +9,10 @@
9 @visible-change="handleShow" 9 @visible-change="handleShow"
10 > 10 >
11 <div> 11 <div>
12 - <div style="font-size: 15px">Invoice编号</div> 12 + <div style="font-size: 15px"><span style="color: red">*</span>Invoice编号</div>
13 <a-textarea v-model:value="Input1" placeholder="请输入" auto-size /> 13 <a-textarea v-model:value="Input1" placeholder="请输入" auto-size />
14 <div style="margin: 16px 0"></div> 14 <div style="margin: 16px 0"></div>
15 - <div>报关单(请上传PDF格式)</div 15 + <div><span style="color: red">*</span>报关单(请上传PDF格式)</div
16 ><a-space direction="vertical" style="width: 100%" size="large"> 16 ><a-space direction="vertical" style="width: 100%" size="large">
17 <a-upload 17 <a-upload
18 v-model:file-list="fileList" 18 v-model:file-list="fileList"
@@ -59,6 +59,17 @@ @@ -59,6 +59,17 @@
59 error('请勿连续点击生成按钮,需要等待三秒再点击生成'); 59 error('请勿连续点击生成按钮,需要等待三秒再点击生成');
60 return; 60 return;
61 } 61 }
  62 + // 校验必填项
  63 + if (!Input1.value.trim()) {
  64 + error('请填写Invoice编号');
  65 + isDisabled.value = false;
  66 + return;
  67 + }
  68 + if (!bgUrl.value) {
  69 + error('请上传报关单(PDF)');
  70 + isDisabled.value = false;
  71 + return;
  72 + }
62 isDisabled.value = true; 73 isDisabled.value = true;
63 setTimeout(() => { 74 setTimeout(() => {
64 isDisabled.value = false; 75 isDisabled.value = false;