Commit 740f55b45efeac9c8095989423f10b72eafcc8b5
Merge branch 'zwl-develop' into 'develop'
fix: 修改了业务研发净利润分析表 See merge request !12
Showing
3 changed files
with
89 additions
and
55 deletions
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; |