提交代码

This commit is contained in:
wangchengming 2025-11-20 14:34:54 +08:00
parent 063312b5a6
commit 7ba3f01f4c
7 changed files with 407 additions and 464 deletions

View File

@ -26,7 +26,7 @@
<div class="bennian" style="margin-left: 10px;"> </div> <div class="bennian" style="margin-left: 10px;"> </div>
</div> </div>
<div class="flexEndCenter" style="margin-top: 11px;"> <div class="flexEndCenter" style="margin-top: 11px;">
<div class="shangyinianMoney" style="margin-left: 10px;">{{ formatValue(yingshouObj.lastReceivablesDate) }}</div> <div class="shangyinianMoney" style="margin-left: 10px;">{{ formatValue(yingshouObj.LastReceivablesDate) }}</div>
<div class="shangyinian" style="margin-left: 10px;">上一年</div> <div class="shangyinian" style="margin-left: 10px;">上一年</div>
</div> </div>
</div> </div>
@ -181,6 +181,7 @@ import { getAction } from '@/api/manage'
// //
async zongzhichu() { async zongzhichu() {
const res = await getAction(`/contract/bigscreen/expenditureSum`) const res = await getAction(`/contract/bigscreen/expenditureSum`)
console.log('总支出', res)
this.zongzhichuObj = res.data this.zongzhichuObj = res.data
}, },
// //

View File

@ -12,9 +12,9 @@ export const typeUrls = {
export const searchItems = [ export const searchItems = [
{ label: "", prop: "keyword", placeholder: "媒体位置/乙方名称/订单编号/项目名称/甲方名称", isExtend: false }, { label: "", prop: "keyword", placeholder: "媒体位置/乙方名称/订单编号/项目名称/甲方名称", isExtend: false },
{ label: "客户名称", prop: "clientId", placeholder: "请选择", type: 'selector', isExtend: true, available: false }, { label: "客户名称", prop: "clientId", placeholder: "请选择", type: 'selector', isExtend: true, available: false },
{ label: "媒体类型", prop: "mediaId", placeholder: "请选择", type: 'selector', isExtend: true, available: false}, { label: "媒体类型", prop: "mediaId", placeholder: "请选择", type: 'selector', isExtend: true, available: false },
{ label: "甲方", prop: "firstId", placeholder: "请选择", isExtend: true, available: false }, { label: "甲方", prop: "firstId", placeholder: "请选择", isExtend: true, available: false },
{ label: "城市", prop: "cityId", placeholder: "请选择", type: 'multiSelector', isExtend: true, available: false}, { label: "城市", prop: "cityId", placeholder: "请选择", type: 'multiSelector', isExtend: true, available: false },
{ label: "是否逾期", prop: "isOverdue", placeholder: "请选择", type: 'selector', isExtend: true, available: false }, { label: "是否逾期", prop: "isOverdue", placeholder: "请选择", type: 'selector', isExtend: true, available: false },
{ label: "是否比稿", prop: "isCompet", placeholder: "请选择", type: 'selector', isExtend: true, available: false }, { label: "是否比稿", prop: "isCompet", placeholder: "请选择", type: 'selector', isExtend: true, available: false },
{ label: "时间范围", prop: "timesRange", placeholder: "请选择", isExtend: true, available: false }, { label: "时间范围", prop: "timesRange", placeholder: "请选择", isExtend: true, available: false },
@ -236,7 +236,7 @@ export const tableColumns = [
width: [190, 210], width: [190, 210],
}, },
{ {
title: "其他返点", title: "其他返点1",
dataIndex: "otherReverPoit", dataIndex: "otherReverPoit",
dataIndexType: "media", dataIndexType: "media",
align: "right", align: "right",
@ -244,13 +244,29 @@ export const tableColumns = [
width: [102, 135], width: [102, 135],
}, },
{ {
title: "其他返点金额", title: "其他返点2",
dataIndex: "otherReverPoit2",
dataIndexType: "media",
align: "right",
isCheck: false,
width: [102, 135],
},
{
title: "其他返点金额1",
dataIndex: "otherReverMoney", dataIndex: "otherReverMoney",
dataIndexType: "media", dataIndexType: "media",
align: "right", align: "right",
isCheck: false, isCheck: false,
width: [190, 210], width: [190, 210],
}, },
{
title: "其他返点金额2",
dataIndex: "otherReverMoney2",
dataIndexType: "media",
align: "right",
isCheck: false,
width: [190, 210],
},
// { // {
// title: "合同盖章时间", // title: "合同盖章时间",
// dataIndex: "contrantSealTime", // dataIndex: "contrantSealTime",

View File

@ -138,7 +138,7 @@
</template> </template>
<!-- 比稿返点结束 --> <!-- 比稿返点结束 -->
<!-- 其他返点 --> <!-- 其他返点1 -->
<template #otherReverPoit="{ record, isEdit }"> <template #otherReverPoit="{ record, isEdit }">
<div <div
style=" style="
@ -153,7 +153,24 @@
></el-input> ></el-input>
</div> </div>
</template> </template>
<!-- 其他返点结束 --> <!-- 其他返点1结束 -->
<!-- 其他返点金额2 -->
<template #otherReverPoit2="{ record, isEdit }">
<div
style="
display: flex;
gap: 5px;
align-items: center;
text-align: right;
"
>
<el-input
v-model="record.otherReverPoit2"
></el-input>
</div>
</template>
<!-- 其他返点2结束 -->
</el-edit-table> </el-edit-table>
</template> </template>
<!-- 媒体信息结束 --> <!-- 媒体信息结束 -->
@ -463,7 +480,7 @@ export default {
const sums = []; const sums = [];
columns.forEach((column, index) => { columns.forEach((column, index) => {
let total = "N/A"; let total = "N/A";
if (![8, 11, 12, 15, 17].includes(index)) { if (![8, 11, 12, 15, 17, 19].includes(index)) {
return; return;
} }
const values = data.map((item) => Number(item[column.property])); const values = data.map((item) => Number(item[column.property]));

View File

@ -1,62 +1,37 @@
<template> <template>
<div class="procurement-contract"> <div class="procurement-contract">
<el-group-form <el-group-form ref="formRef" :rules="AEform.rules" :formModel="AEform.formModel" :formGroup="formGroup">
ref="formRef"
:rules="AEform.rules"
:formModel="AEform.formModel"
:formGroup="formGroup"
>
<!-- 发票类型开始 --> <!-- 发票类型开始 -->
<template #invoiceId> <template #invoiceId>
<el-custom-select <el-custom-select v-model="AEform.formModel.invoiceId" :dataSource="getinvoiceList"
v-model="AEform.formModel.invoiceId" :remoteAdd="handleAddInvoice" @change="(v, t) => (AEform.formModel.invoiceName = t)" />
:dataSource="getinvoiceList"
:remoteAdd="handleAddInvoice"
@change="(v, t) => (AEform.formModel.invoiceName = t)"
/>
<!-- {{ AEform.formModel.invoiceId }} --> <!-- {{ AEform.formModel.invoiceId }} -->
</template> </template>
<!-- 发票类型结束 --> <!-- 发票类型结束 -->
<!-- 媒介部门开始 --> <!-- 媒介部门开始 -->
<template #mediaDeptId> <template #mediaDeptId>
<el-custom-select <el-custom-select v-model="AEform.formModel.mediaDeptId" :dataSource="getMediaDepartment"
v-model="AEform.formModel.mediaDeptId" :remoteAdd="handleAddMediaDepartment" @change="(v, t) => (AEform.formModel.mediaDeptName = t)" />
:dataSource="getMediaDepartment"
:remoteAdd="handleAddMediaDepartment"
@change="(v, t) => (AEform.formModel.mediaDeptName = t)"
/>
</template> </template>
<!-- 媒介部门结束 --> <!-- 媒介部门结束 -->
<!-- 客户名称开始 --> <!-- 客户名称开始 -->
<template #clientId> <template #clientId>
<el-custom-select <el-custom-select v-model="AEform.formModel.clientId" :dataSource="getclientList" :remoteAdd="handleAddClient"
v-model="AEform.formModel.clientId" @change="(v, t) => (AEform.formModel.clientName = t)" />
:dataSource="getclientList"
:remoteAdd="handleAddClient"
@change="(v, t) => (AEform.formModel.clientName = t)"
/>
</template> </template>
<!-- 客户名称结束 --> <!-- 客户名称结束 -->
<!-- 甲方名称开始 --> <!-- 甲方名称开始 -->
<template #firstId> <template #firstId>
<el-custom-select <el-custom-select v-model="AEform.formModel.firstId" :dataSource="getFirstPartyList"
v-model="AEform.formModel.firstId" :remoteAdd="handleAddFirstParty" @change="(v, t) => (AEform.formModel.firstName = t)" />
:dataSource="getFirstPartyList"
:remoteAdd="handleAddFirstParty"
@change="(v, t) => (AEform.formModel.firstName = t)"
/>
</template> </template>
<!-- 甲方名称结束 --> <!-- 甲方名称结束 -->
<!-- 签订时间开始 --> <!-- 签订时间开始 -->
<template #signTime> <template #signTime>
<el-date-picker <el-date-picker v-model="AEform.formModel.signTime" value-format="yyyy-MM-dd" style="width: 100%" />
v-model="AEform.formModel.signTime"
value-format="yyyy-MM-dd"
style="width: 100%"
/>
</template> </template>
<!-- 签订时间结束 --> <!-- 签订时间结束 -->
@ -68,48 +43,31 @@
<!-- 媒体信息开始 --> <!-- 媒体信息开始 -->
<template #purchaseMediaBoList> <template #purchaseMediaBoList>
<el-edit-table <el-edit-table :columns="mediaListColumns" v-model="AEform.formModel.purchaseMediaBoList" show-summary
:columns="mediaListColumns" :summary-method="mediaTypeSummary" @update-items="updateItemsPurchaseMediaBoList">
v-model="AEform.formModel.purchaseMediaBoList"
show-summary
:summary-method="mediaTypeSummary"
@update-items="updateItemsPurchaseMediaBoList"
>
<!-- 城市选择开始 --> <!-- 城市选择开始 -->
<template #cityId="{ record, isEdit }"> <template #cityId="{ record, isEdit }">
<el-custom-cascader v-model="record.cityIds" :dataSource="cityList" :cascaderStyle="{ width: '100%' }" @change="(v, t) => (record.cityId = v, record.cityName = t)" /> <el-custom-cascader v-model="record.cityIds" :dataSource="cityList" :cascaderStyle="{ width: '100%' }"
@change="(v, t) => (record.cityId = v, record.cityName = t)" />
</template> </template>
<!-- 城市选择结束 --> <!-- 城市选择结束 -->
<!-- 媒体类型开始 --> <!-- 媒体类型开始 -->
<template #mediaId="{ record, isEdit }"> <template #mediaId="{ record, isEdit }">
<el-custom-select <el-custom-select v-model="record.mediaId" :dataSource="mediaTypeList" :remoteAdd="handleAddMediaTypeParty"
v-model="record.mediaId" @change="(v, t) => (record.mediaName = t)" />
:dataSource="mediaTypeList"
:remoteAdd="handleAddMediaTypeParty"
@change="(v, t) => (record.mediaName = t)"
/>
</template> </template>
<!-- 媒体类型结束 --> <!-- 媒体类型结束 -->
<!-- 上刊时间开始 --> <!-- 上刊时间开始 -->
<template #upTime="{ record, isEdit }"> <template #upTime="{ record, isEdit }">
<el-date-picker <el-date-picker v-model="record.upTime" value-format="yyyy-MM-dd" style="width: 100%" />
v-model="record.upTime"
value-format="yyyy-MM-dd"
style="width: 100%"
/>
</template> </template>
<!-- 上刊时间结束 --> <!-- 上刊时间结束 -->
<!-- 下刊时间开始 --> <!-- 下刊时间开始 -->
<template #downTime="{ record, isEdit }"> <template #downTime="{ record, isEdit }">
<el-date-picker <el-date-picker v-model="record.downTime" value-format="yyyy-MM-dd" style="width: 100%" />
v-model="record.downTime"
value-format="yyyy-MM-dd"
style="width: 100%"
/>
</template> </template>
<!-- 下刊时间结束 --> <!-- 下刊时间结束 -->
@ -122,10 +80,7 @@
<!-- 折扣开始 --> <!-- 折扣开始 -->
<template #discount="{ record, isEdit }"> <template #discount="{ record, isEdit }">
<div class="flexRowCenter"> <div class="flexRowCenter">
<el-input <el-input v-model="record.discount" @change="handleNumberChange(record.discount, $event)"></el-input>
v-model="record.discount"
@change="handleNumberChange(record.discount, $event)"
></el-input>
</div> </div>
</template> </template>
<!-- 折扣结束 --> <!-- 折扣结束 -->
@ -135,13 +90,8 @@
<!-- 付款管理开始 --> <!-- 付款管理开始 -->
<template #purchasePaymentBoList> <template #purchasePaymentBoList>
<el-edit-table <el-edit-table :columns="contranctPayListColumns" v-model="AEform.formModel.purchasePaymentBoList" show-summary
:columns="contranctPayListColumns" :summary-method="paymentSummary" @update-items="updateItemsPurchasePaymentBoList">
v-model="AEform.formModel.purchasePaymentBoList"
show-summary
:summary-method="paymentSummary"
@update-items="updateItemsPurchasePaymentBoList"
>
<!-- 笔数开始 --> <!-- 笔数开始 -->
<template #transactionsNumber="{ record, isEdit }"> <template #transactionsNumber="{ record, isEdit }">
<el-select v-model="record.transactionsNumber" style="width: 100%;"> <el-select v-model="record.transactionsNumber" style="width: 100%;">
@ -155,21 +105,13 @@
<!-- 笔数结束 --> <!-- 笔数结束 -->
<!-- 约定付款时间开始 --> <!-- 约定付款时间开始 -->
<template #payTime="{ record, isEdit }"> <template #payTime="{ record, isEdit }">
<el-date-picker <el-date-picker v-model="record.payTime" value-format="yyyy-MM-dd" style="width: 100%" />
v-model="record.payTime"
value-format="yyyy-MM-dd"
style="width: 100%"
/>
</template> </template>
<!-- 约定付款时间结束 --> <!-- 约定付款时间结束 -->
<!-- 实际付款时间开始 --> <!-- 实际付款时间开始 -->
<template #arrivalTime="{ record, isEdit }"> <template #arrivalTime="{ record, isEdit }">
<el-date-picker <el-date-picker v-model="record.arrivalTime" value-format="yyyy-MM-dd" style="width: 100%" />
v-model="record.arrivalTime"
value-format="yyyy-MM-dd"
style="width: 100%"
/>
</template> </template>
<!-- 实际付款时间结束 --> <!-- 实际付款时间结束 -->
@ -203,6 +145,12 @@
</template> </template>
<!-- 合同附件结束 --> <!-- 合同附件结束 -->
<!-- 检测照片开始 -->
<template #detectPicAttr>
<el-file-upload ref="detectPicAttr" />
</template>
<!-- 检测照片结束 -->
<!-- 监测报告附件开始 --> <!-- 监测报告附件开始 -->
<template #reportAttachment> <template #reportAttachment>
<div class="report-attachment"> <div class="report-attachment">
@ -298,24 +246,24 @@ export default {
const list = this.AEform.formModel.purchaseMediaBoList; const list = this.AEform.formModel.purchaseMediaBoList;
return list return list
? list.reduce( ? list.reduce(
(prev, { mediaFee, productFee }) => (prev, { mediaFee, productFee }) =>
new BigNumber(prev).plus(mediaFee).plus(productFee).toNumber(), new BigNumber(prev).plus(mediaFee).plus(productFee).toNumber(),
0 0
) )
: 0; : 0;
}, },
}, },
methods: { methods: {
// //
async getDetailData () { async getDetailData() {
const res = await getAction(`/system/purchase/${this.$route.query.id}`) const res = await getAction(`/system/purchase/${this.$route.query.id}`)
console.log('%c [ res ]-213', 'font-size:13px; background:pink; color:#bf2c9f;', res) console.log('采购合同详情', res)
if (res.data.purchaseMediaVoList) { if (res.data.purchaseMediaVoList) {
res.data.purchaseMediaBoList = res.data.purchaseMediaVoList res.data.purchaseMediaBoList = res.data.purchaseMediaVoList
console.log(this.cityList, 'this.cityList') console.log(this.cityList, 'this.cityList')
// cityIds // cityIds
res.data.purchaseMediaBoList = res.data.purchaseMediaBoList.map(item => { res.data.purchaseMediaBoList = res.data.purchaseMediaBoList.map(item => {
return { ...item, cityIds: item.cityIds ? item.cityIds.split(',').map((item) => Number(item)) : item.cityIds }; return { ...item, cityIds: item.cityIds ? item.cityIds.split(',').map((item) => Number(item)) : item.cityIds };
}); });
} }
if (res.data.conPurchasePaymentVo) { if (res.data.conPurchasePaymentVo) {
@ -325,6 +273,9 @@ export default {
if (res.data.contractAccessList) { if (res.data.contractAccessList) {
this.$refs.contractAccess.setFileList(res.data.contractAccessList) this.$refs.contractAccess.setFileList(res.data.contractAccessList)
} }
if (res.data.detectPicAttrList) {
this.$refs.detectPicAttr.setFileList(res.data.detectPicAttrList)
}
if (res.data.upPrintList) { if (res.data.upPrintList) {
this.$refs.upPrint.setFileList(res.data.upPrintList) this.$refs.upPrint.setFileList(res.data.upPrintList)
} }
@ -353,7 +304,7 @@ export default {
this.AEform.formModel.purchaseMediaBoList = newItems this.AEform.formModel.purchaseMediaBoList = newItems
}, },
updateItemsPurchasePaymentBoList (newItems) { updateItemsPurchasePaymentBoList(newItems) {
this.AEform.formModel.purchasePaymentBoList = newItems this.AEform.formModel.purchasePaymentBoList = newItems
}, },
@ -540,7 +491,7 @@ export default {
const sums = []; const sums = [];
columns.forEach((column, index) => { columns.forEach((column, index) => {
let total = "N/A"; let total = "N/A";
if (![11,12].includes(index)) { if (![11, 12].includes(index)) {
return; return;
} }
const values = data.map((item) => Number(item[column.property])); const values = data.map((item) => Number(item[column.property]));
@ -574,7 +525,7 @@ export default {
const sums = []; const sums = [];
columns.forEach((column, index) => { columns.forEach((column, index) => {
let total = "N/A"; let total = "N/A";
if (![2,4].includes(index)) { if (![2, 4].includes(index)) {
return; return;
} }
const values = data.map((item) => Number(item[column.property])); const values = data.map((item) => Number(item[column.property]));
@ -603,18 +554,18 @@ export default {
return sums; return sums;
}, },
formatNumber(num) { formatNumber(num) {
if (num) { if (num) {
// //
let [integer, decimal] = num.toFixed(2).split("."); let [integer, decimal] = num.toFixed(2).split(".");
// //
integer = integer.replace(/\B(?=(\d{3})+(?!\d))/g, ","); integer = integer.replace(/\B(?=(\d{3})+(?!\d))/g, ",");
return `${integer}.${decimal}`; return `${integer}.${decimal}`;
} else { } else {
return '0.00' return '0.00'
} }
}, },
// //
delayDate(record) { delayDate(record) {
@ -633,101 +584,117 @@ export default {
return ""; return "";
} }
const diff = dayjs(downTime || new Date()).diff(upTime, "d"); const diff = dayjs(downTime || new Date()).diff(upTime, "d");
return diff <= 0 ? "" : diff + 1 + "天"; return diff <= 0 ? "" : diff + 1 + "天";
}, },
// //
removeLeadingAndTrailingCommas(str) { removeLeadingAndTrailingCommas(str) {
// //
if (str.charAt(0) === ',') { if (str.charAt(0) === ',') {
str = str.substring(1); str = str.substring(1);
} }
// //
if (str.charAt(str.length - 1) === ',') { if (str.charAt(str.length - 1) === ',') {
str = str.substring(0, str.length - 1); str = str.substring(0, str.length - 1);
} }
return str; return str;
}, },
// //
annexFunc() { annexFunc() {
// //
var contractAccess = [] var contractAccess = []
for (const i in this.$refs.contractAccess.getFileList()) { for (const i in this.$refs.contractAccess.getFileList()) {
contractAccess.push(this.$refs.contractAccess.getFileList()[i].md5) contractAccess.push(this.$refs.contractAccess.getFileList()[i].md5)
}
var contractAccess2 = []
if (this.AEform.formModel.contractAccessList && this.AEform.formModel.contractAccessList.length) {
for (const i in this.AEform.formModel.contractAccessList) {
contractAccess2.push(this.AEform.formModel.contractAccessList[i].identifier)
} }
var contractAccess2 = [] }
if (this.AEform.formModel.contractAccessList && this.AEform.formModel.contractAccessList.length) { var contractAccess3 = [...contractAccess, ...contractAccess2]
for (const i in this.AEform.formModel.contractAccessList) { contractAccess3 = Array.from(new Set(contractAccess3))
contractAccess2.push(this.AEform.formModel.contractAccessList[i].identifier) this.AEform.formModel.contractAccess = contractAccess3.toString()
} this.AEform.formModel.contractAccess = this.removeLeadingAndTrailingCommas(this.AEform.formModel.contractAccess)
}
var contractAccess3 = [...contractAccess, ...contractAccess2]
contractAccess3 = Array.from(new Set(contractAccess3))
this.AEform.formModel.contractAccess = contractAccess3.toString()
this.AEform.formModel.contractAccess = this.removeLeadingAndTrailingCommas(this.AEform.formModel.contractAccess)
// //
var upPrint = [] var detectPicAttr = []
for (const i in this.$refs.upPrint.getFileList()) { for (const i in this.$refs.detectPicAttr.getFileList()) {
upPrint.push(this.$refs.upPrint.getFileList()[i].md5) detectPicAttr.push(this.$refs.detectPicAttr.getFileList()[i].md5)
}
var detectPicAttr2 = []
if (this.AEform.formModel.detectPicAttrList && this.AEform.formModel.detectPicAttrList.length) {
for (const i in this.AEform.formModel.detectPicAttrList) {
detectPicAttr2.push(this.AEform.formModel.detectPicAttrList[i].identifier)
} }
var upPrint2 = [] }
if (this.AEform.formModel.upPrintList && this.AEform.formModel.upPrintList.length) { var detectPicAttr3 = [...detectPicAttr, ...detectPicAttr2]
for (const i in this.AEform.formModel.upPrintList) { detectPicAttr3 = Array.from(new Set(detectPicAttr3))
upPrint2.push(this.AEform.formModel.upPrintList[i].identifier) this.AEform.formModel.detectPicAttr = detectPicAttr3.toString()
} this.AEform.formModel.detectPicAttr = this.removeLeadingAndTrailingCommas(this.AEform.formModel.detectPicAttr)
//
var upPrint = []
for (const i in this.$refs.upPrint.getFileList()) {
upPrint.push(this.$refs.upPrint.getFileList()[i].md5)
}
var upPrint2 = []
if (this.AEform.formModel.upPrintList && this.AEform.formModel.upPrintList.length) {
for (const i in this.AEform.formModel.upPrintList) {
upPrint2.push(this.AEform.formModel.upPrintList[i].identifier)
} }
var upPrint3 = [...upPrint, ...upPrint2] }
upPrint3 = Array.from(new Set(upPrint3)) var upPrint3 = [...upPrint, ...upPrint2]
this.AEform.formModel.upPrint = upPrint3.toString() upPrint3 = Array.from(new Set(upPrint3))
this.AEform.formModel.upPrint = this.removeLeadingAndTrailingCommas(this.AEform.formModel.upPrint) this.AEform.formModel.upPrint = upPrint3.toString()
// this.AEform.formModel.upPrint = this.removeLeadingAndTrailingCommas(this.AEform.formModel.upPrint)
var nextPrint = [] //
for (const i in this.$refs.nextPrint.getFileList()) { var nextPrint = []
nextPrint.push(this.$refs.nextPrint.getFileList()[i].md5) for (const i in this.$refs.nextPrint.getFileList()) {
nextPrint.push(this.$refs.nextPrint.getFileList()[i].md5)
}
var nextPrint2 = []
if (this.AEform.formModel.nextPrintList && this.AEform.formModel.nextPrintList.length) {
for (const i in this.AEform.formModel.nextPrintList) {
nextPrint2.push(this.AEform.formModel.nextPrintList[i].identifier)
} }
var nextPrint2 = [] }
if (this.AEform.formModel.nextPrintList && this.AEform.formModel.nextPrintList.length) { var nextPrint3 = [...nextPrint, ...nextPrint2]
for (const i in this.AEform.formModel.nextPrintList) { nextPrint3 = Array.from(new Set(nextPrint3))
nextPrint2.push(this.AEform.formModel.nextPrintList[i].identifier) this.AEform.formModel.nextPrint = nextPrint3.toString()
} this.AEform.formModel.nextPrint = this.removeLeadingAndTrailingCommas(this.AEform.formModel.nextPrint)
//
var exchangePrint = []
for (const i in this.$refs.exchangePrint.getFileList()) {
exchangePrint.push(this.$refs.exchangePrint.getFileList()[i].md5)
}
var exchangePrint2 = []
if (this.AEform.formModel.exchangePrintList && this.AEform.formModel.exchangePrintList.length) {
for (const i in this.AEform.formModel.exchangePrintList) {
exchangePrint2.push(this.AEform.formModel.exchangePrintList[i].identifier)
} }
var nextPrint3 = [...nextPrint, ...nextPrint2] }
nextPrint3 = Array.from(new Set(nextPrint3)) var exchangePrint3 = [...exchangePrint, ...exchangePrint2]
this.AEform.formModel.nextPrint = nextPrint3.toString() exchangePrint3 = Array.from(new Set(exchangePrint3))
this.AEform.formModel.nextPrint = this.removeLeadingAndTrailingCommas(this.AEform.formModel.nextPrint) this.AEform.formModel.exchangePrint = exchangePrint3.toString()
// this.AEform.formModel.exchangePrint = this.removeLeadingAndTrailingCommas(this.AEform.formModel.exchangePrint)
var exchangePrint = [] //
for (const i in this.$refs.exchangePrint.getFileList()) { var mediaLink = []
exchangePrint.push(this.$refs.exchangePrint.getFileList()[i].md5) for (const i in this.$refs.mediaLink.getFileList()) {
mediaLink.push(this.$refs.mediaLink.getFileList()[i].md5)
}
var mediaLink2 = []
if (this.AEform.formModel.mediaLinkList && this.AEform.formModel.mediaLinkList.length) {
for (const i in this.AEform.formModel.mediaLinkList) {
mediaLink2.push(this.AEform.formModel.mediaLinkList[i].identifier)
} }
var exchangePrint2 = [] }
if (this.AEform.formModel.exchangePrintList && this.AEform.formModel.exchangePrintList.length) { var mediaLink3 = [...mediaLink, ...mediaLink2]
for (const i in this.AEform.formModel.exchangePrintList) { mediaLink3 = Array.from(new Set(mediaLink3))
exchangePrint2.push(this.AEform.formModel.exchangePrintList[i].identifier) this.AEform.formModel.mediaLink = mediaLink3.toString()
} this.AEform.formModel.mediaLink = this.removeLeadingAndTrailingCommas(this.AEform.formModel.mediaLink)
}
var exchangePrint3 = [...exchangePrint, ...exchangePrint2]
exchangePrint3 = Array.from(new Set(exchangePrint3))
this.AEform.formModel.exchangePrint = exchangePrint3.toString()
this.AEform.formModel.exchangePrint = this.removeLeadingAndTrailingCommas(this.AEform.formModel.exchangePrint)
//
var mediaLink = []
for (const i in this.$refs.mediaLink.getFileList()) {
mediaLink.push(this.$refs.mediaLink.getFileList()[i].md5)
}
var mediaLink2 = []
if (this.AEform.formModel.mediaLinkList && this.AEform.formModel.mediaLinkList.length) {
for (const i in this.AEform.formModel.mediaLinkList) {
mediaLink2.push(this.AEform.formModel.mediaLinkList[i].identifier)
}
}
var mediaLink3 = [...mediaLink, ...mediaLink2]
mediaLink3 = Array.from(new Set(mediaLink3))
this.AEform.formModel.mediaLink = mediaLink3.toString()
this.AEform.formModel.mediaLink = this.removeLeadingAndTrailingCommas(this.AEform.formModel.mediaLink)
}, },
verification(tableList, columns) { verification(tableList, columns) {
@ -783,6 +750,7 @@ export default {
}); });
} }
await this.$refs.formRef.validate(); await this.$refs.formRef.validate();
console.log('this.AEform.formModel', this.AEform.formModel)
if (this.AEform.formModel.id) { if (this.AEform.formModel.id) {
const res = await putAction(`/system/purchase/edit`, { ...this.AEform.formModel }) const res = await putAction(`/system/purchase/edit`, { ...this.AEform.formModel })
console.log('%c [ res ]-361', 'font-size:13px; background:pink; color:#bf2c9f;', res) console.log('%c [ res ]-361', 'font-size:13px; background:pink; color:#bf2c9f;', res)
@ -829,7 +797,8 @@ export default {
.el-group-form { .el-group-form {
::v-deep { ::v-deep {
> .el-card { >.el-card {
&:nth-child(3), &:nth-child(3),
&:nth-child(4) { &:nth-child(4) {
.el-card__body { .el-card__body {
@ -847,6 +816,7 @@ export default {
::v-deep { ::v-deep {
.media-summary { .media-summary {
&-title, &-title,
&-value { &-value {
font-family: Microsoft YaHei; font-family: Microsoft YaHei;

View File

@ -35,13 +35,17 @@ export const formGroup = [
title: "合同附件", title: "合同附件",
items: [{ slot: true, prop: "contractAccess", span: 24 }], items: [{ slot: true, prop: "contractAccess", span: 24 }],
}, },
{
title: "检测照片",
items: [{ slot: true, prop: "detectPicAttr", span: 25 }],
},
{ {
title: "监测报告附件", title: "监测报告附件",
items: [{ slot: true, prop: "reportAttachment", span: 24 }], items: [{ slot: true, prop: "reportAttachment", span: 26 }],
}, },
{ {
title: "媒体链条附件", title: "媒体链条附件",
items: [{ slot: true, prop: "mediaLink", span: 24 }], items: [{ slot: true, prop: "mediaLink", span: 27 }],
}, },
]; ];
// 采购合同媒体信息表格配置 // 采购合同媒体信息表格配置
@ -421,7 +425,7 @@ export const SalesContractMediaColumns = [
required: true, required: true,
}, },
{ {
title: "其他返点", title: "其他返点1",
dataIndex: "otherReverPoit", dataIndex: "otherReverPoit",
width: 120, width: 120,
attrs: { min: 0 }, attrs: { min: 0 },
@ -429,7 +433,7 @@ export const SalesContractMediaColumns = [
required: true, required: true,
}, },
{ {
title: "其他返点金额", title: "其他返点金额1",
dataIndex: "otherReverMoney", dataIndex: "otherReverMoney",
width: 220, width: 220,
attrs: { min: 0 }, attrs: { min: 0 },
@ -437,6 +441,23 @@ export const SalesContractMediaColumns = [
type: "number", type: "number",
required: true, required: true,
}, },
{
title: "其他返点2",
dataIndex: "otherReverPoit2",
width: 120,
attrs: { min: 0 },
align: "center",
required: true,
},
{
title: "其他返点金额2",
dataIndex: "otherReverMoney2",
width: 220,
attrs: { min: 0 },
align: "right",
type: "number",
required: true,
},
{ {
title: "备注", title: "备注",
dataIndex: "remark", dataIndex: "remark",

View File

@ -1,33 +1,16 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<ElQueryTable <ElQueryTable ref="tableRef" :searchItems="searchItems" :tableConfig="tableConfig" :isExtendAction="false"
ref="tableRef" :selectedRowKeys.sync="selectedRowKeys" :isRowCheck="showColumnBtn" :showCheckFlag="showCheckFlag"
:searchItems="searchItems" @showExtendAction="showExtendAction" @hiddenExtendActionColumn="hiddenExtendActionColumn"
:tableConfig="tableConfig" @returnTableColumn="returnTableColumn" @update:selectedRowKeys="updateSelectedRowKeys"
:isExtendAction="false" @search="handleCancelExport" @reset="handleCancelExport" autoresize
:selectedRowKeys.sync="selectedRowKeys" :class="showCheckFlag ? 'is-check-flag-show' : ''">
:isRowCheck="showColumnBtn"
:showCheckFlag="showCheckFlag"
@showExtendAction="showExtendAction"
@hiddenExtendActionColumn="hiddenExtendActionColumn"
@returnTableColumn="returnTableColumn"
@update:selectedRowKeys="updateSelectedRowKeys"
@search="handleCancelExport"
@reset="handleCancelExport"
autoresize
:class="showCheckFlag? 'is-check-flag-show': ''"
>
<!-- keyword --> <!-- keyword -->
<template #query-keyword="{ queryParams }"> <template #query-keyword="{ queryParams }">
<div style="width: 1200px"> <div style="width: 1200px">
<el-input <el-input v-model="queryParams.keyword" type="search" clearable placeholder="媒体位置/乙方姓名/项目编号/项目名称"
v-model="queryParams.keyword" style="width: 547px" @change="handleSearch">
type="search"
clearable
placeholder="媒体位置/乙方姓名/项目编号/项目名称"
style="width: 547px"
@change="handleSearch"
>
<i slot="prefix" class="el-input__icon el-icon-search"></i> <i slot="prefix" class="el-input__icon el-icon-search"></i>
</el-input> </el-input>
</div> </div>
@ -35,110 +18,70 @@
<!-- 客户名称 --> <!-- 客户名称 -->
<template #query-clientId="{ queryParams }"> <template #query-clientId="{ queryParams }">
<el-select <el-select v-model="queryParams.clientId" style="width: 200px" placeholder="请选择" clearable
v-model="queryParams.clientId" @change="handleSearch">
style="width: 200px" <el-option v-for="item in clientList" :key="item.id" :label="item.clientName" :value="item.id">
placeholder="请选择"
clearable
@change="handleSearch"
>
<el-option
v-for="item in clientList"
:key="item.id"
:label="item.clientName"
:value="item.id"
>
</el-option> </el-option>
<template #prefix> <template #prefix>
<span style="position: absolute;left: 150px;color: #3B588A;cursor: pointer;" v-if="queryParams.clientId" <span style="position: absolute;left: 150px;color: #3B588A;cursor: pointer;" v-if="queryParams.clientId"
@click="() => $refs.tableRef.queryParams.clientId = undefined"></span> @click="() => $refs.tableRef.queryParams.clientId = undefined"></span>
</template> </template>
</el-select> </el-select>
</template> </template>
<!-- 媒体类型 --> <!-- 媒体类型 -->
<template #query-mediaId="{ queryParams }"> <template #query-mediaId="{ queryParams }">
<el-select <el-select v-model="queryParams.mediaId" style="width: 200px" placeholder="请选择" clearable
v-model="queryParams.mediaId" @change="handleSearch">
style="width: 200px" <el-option v-for="item in mediaTypeList" :key="item.id" :label="item.mediaType" :value="item.id">
placeholder="请选择"
clearable
@change="handleSearch"
>
<el-option
v-for="item in mediaTypeList"
:key="item.id"
:label="item.mediaType"
:value="item.id"
>
</el-option> </el-option>
<template #prefix> <template #prefix>
<span style="position: absolute;left: 150px;color: #3B588A;cursor: pointer;" v-if="queryParams.mediaId" <span style="position: absolute;left: 150px;color: #3B588A;cursor: pointer;" v-if="queryParams.mediaId"
@click="() => $refs.tableRef.queryParams.mediaId = undefined"></span> @click="() => $refs.tableRef.queryParams.mediaId = undefined"></span>
</template> </template>
</el-select> </el-select>
</template> </template>
<!-- 城市 --> <!-- 城市 -->
<template #query-cityId="{ queryParams }"> <template #query-cityId="{ queryParams }">
<el-custom-cascader v-model="queryParams.cityIds" :cascaderStyle="{ width: '200px' }" :dataSource="cityList" <el-custom-cascader v-model="queryParams.cityIds" :cascaderStyle="{ width: '200px' }" :dataSource="cityList"
@click="() => $refs.tableRef.queryParams.cityIds = undefined"/> @click="() => $refs.tableRef.queryParams.cityIds = undefined" />
</template> </template>
<!-- 时间段 --> <!-- 时间段 -->
<template #query-timesRange="{ queryParams }"> <template #query-timesRange="{ queryParams }">
<el-custom-date-range-picker v-model="queryParams.timesRange" @change="handleSearch" style="width: 421px"/> <el-custom-date-range-picker v-model="queryParams.timesRange" @change="handleSearch" style="width: 421px" />
</template> </template>
<!-- 甲方 乙方 --> <!-- 甲方 乙方 -->
<template #query-firstId="{ queryParams }"> <template #query-firstId="{ queryParams }">
<el-select <el-select v-model="queryParams.firstId" style="width: 200px" placeholder="请选择" clearable
v-model="queryParams.firstId" @change="handleSearch">
style="width: 200px" <el-option v-for="item in firstList" :key="item.id" :label="item.firstName" :value="item.id">
placeholder="请选择"
clearable
@change="handleSearch"
>
<el-option
v-for="item in firstList"
:key="item.id"
:label="item.firstName"
:value="item.id"
>
</el-option> </el-option>
<template #prefix> <template #prefix>
<span style="position: absolute;left: 150px;color: #3B588A;cursor: pointer;" v-if="queryParams.firstId" <span style="position: absolute;left: 150px;color: #3B588A;cursor: pointer;" v-if="queryParams.firstId"
@click="() => $refs.tableRef.queryParams.firstId = undefined"></span> @click="() => $refs.tableRef.queryParams.firstId = undefined"></span>
</template> </template>
</el-select> </el-select>
</template> </template>
<!-- 是否逾期 --> <!-- 是否逾期 -->
<template #query-isOverdue="{ queryParams }"> <template #query-isOverdue="{ queryParams }">
<el-select v-model="queryParams.isOverdue" placeholder="请选择" style="width: 200px" clearable <el-select v-model="queryParams.isOverdue" placeholder="请选择" style="width: 200px" clearable
@change="handleSearch"> @change="handleSearch">
<el-option <el-option v-for="item in isOverdueList" :key="item.id" :label="item.label" :value="item.id">
v-for="item in isOverdueList"
:key="item.id"
:label="item.label"
:value="item.id"
>
</el-option> </el-option>
<template #prefix> <template #prefix>
<span style="position: absolute;left: 150px;color: #3B588A;cursor: pointer;" v-if="queryParams.isOverdue" <span style="position: absolute;left: 150px;color: #3B588A;cursor: pointer;" v-if="queryParams.isOverdue"
@click="() => $refs.tableRef.queryParams.isOverdue = undefined"></span> @click="() => $refs.tableRef.queryParams.isOverdue = undefined"></span>
</template> </template>
</el-select> </el-select>
</template> </template>
<!-- 是否比稿 --> <!-- 是否比稿 -->
<template #query-isCompet="{ queryParams }"> <template #query-isCompet="{ queryParams }">
<el-select v-model="queryParams.isCompet" placeholder="请选择" style="width: 200px" clearable <el-select v-model="queryParams.isCompet" placeholder="请选择" style="width: 200px" clearable
@change="handleSearch"> @change="handleSearch">
<el-option <el-option v-for="item in isCompetList" :key="item.id" :label="item.label" :value="item.id">
v-for="item in isCompetList"
:key="item.id"
:label="item.label"
:value="item.id"
>
</el-option> </el-option>
<template #prefix> <template #prefix>
<span style="position: absolute;left: 150px;color: #3B588A;cursor: pointer;" v-if="queryParams.isCompet" <span style="position: absolute;left: 150px;color: #3B588A;cursor: pointer;" v-if="queryParams.isCompet"
@click="() => $refs.tableRef.queryParams.isCompet = undefined"></span> @click="() => $refs.tableRef.queryParams.isCompet = undefined"></span>
</template> </template>
</el-select> </el-select>
</template> </template>
@ -162,19 +105,14 @@
</el-col> --> </el-col> -->
<el-col :span="1.5"> <el-col :span="1.5">
<div class="flexRowCenter"> <div class="flexRowCenter">
<el-upload <el-upload class="flexCenterCenter pubBtn" :action="importUrl" :headers="importHeaders"
class="flexCenterCenter pubBtn" :on-success="handleUploadSuccess" :show-file-list="false" :file-list="fileList">
:action="importUrl"
:headers="importHeaders"
:on-success="handleUploadSuccess"
:show-file-list="false"
:file-list="fileList">
<el-button size="small" style="font-size: 16px" type="primary">导入</el-button> <el-button size="small" style="font-size: 16px" type="primary">导入</el-button>
</el-upload> </el-upload>
<div class="flexCenterCenter pubBtn" style="width:120px;" @click="downloadTemplate">下载导入模板</div> <div class="flexCenterCenter pubBtn" style="width:120px;" @click="downloadTemplate">下载导入模板</div>
<div class="flexCenterCenter pubBtn" @click="handleExport" v-if="!showColumnBtn">导出</div> <div class="flexCenterCenter pubBtn" @click="handleExport" v-if="!showColumnBtn">导出</div>
<div class="flexCenterCenter pubBtn" style="margin-right: 10px;" @click="handleCancelExport" <div class="flexCenterCenter pubBtn" style="margin-right: 10px;" @click="handleCancelExport"
v-if="showColumnBtn">取消 v-if="showColumnBtn">取消
</div> </div>
<div class="flexCenterCenter pubBtn" @click="handleSureExport" v-if="showColumnBtn">确认导出</div> <div class="flexCenterCenter pubBtn" @click="handleSureExport" v-if="showColumnBtn">确认导出</div>
<div class="flexCenterCenter pubBtn" @click="handleShowDownList">下载记录</div> <div class="flexCenterCenter pubBtn" @click="handleShowDownList">下载记录</div>
@ -187,22 +125,13 @@
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="tableConfig.query"></right-toolbar> --> <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="tableConfig.query"></right-toolbar> -->
</template> </template>
<template #extendSearch> <template #extendSearch>
<div <div v-if="!tableConfig.showExtendSearch" @click="ocClickShowExtendSearch(true)">
v-if="!tableConfig.showExtendSearch"
@click="ocClickShowExtendSearch(true)"
>
展开 展开
<i <i class="el-icon-arrow-down" style="color: #00a026; margin-left: 10px" />
class="el-icon-arrow-down"
style="color: #00a026; margin-left: 10px"
/>
</div> </div>
<div v-else @click="ocClickShowExtendSearch(false)"> <div v-else @click="ocClickShowExtendSearch(false)">
折叠 折叠
<i <i class="el-icon-arrow-up" style="color: #00a026; margin-left: 10px" />
class="el-icon-arrow-up"
style="color: #00a026; margin-left: 10px"
/>
</div> </div>
</template> </template>
@ -234,7 +163,7 @@
<template #table-cityId="{ text, record, index, align }"> <template #table-cityId="{ text, record, index, align }">
<div class="table-column-child"> <div class="table-column-child">
<div v-for="item in record.conSaleMediaVoList" :key="index + item.id" <div v-for="item in record.conSaleMediaVoList" :key="index + item.id"
:style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''"> :style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''">
<span :title="item.cityName">{{ item.cityName }}</span> <span :title="item.cityName">{{ item.cityName }}</span>
</div> </div>
</div> </div>
@ -242,27 +171,21 @@
<template #table-mediaId="{ text, record, index, align }"> <template #table-mediaId="{ text, record, index, align }">
<div class="table-column-child"> <div class="table-column-child">
<div v-for="item in record.conSaleMediaVoList" :key="index + item.id" <div v-for="item in record.conSaleMediaVoList" :key="index + item.id"
:style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''"> :style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''">
<span :title="item.mediaName">{{ item.mediaName }}</span> <span :title="item.mediaName">{{ item.mediaName }}</span>
</div> </div>
</div> </div>
</template> </template>
<template #table-mediaPosition="{ text, record, index, align }"> <template #table-mediaPosition="{ text, record, index, align }">
<div class="table-column-child"> <div class="table-column-child">
<div <div v-for="item in record.conSaleMediaVoList" :key="index + item.id" :style="align == 'right'
v-for="item in record.conSaleMediaVoList" ? 'text-align: right;'
:key="index + item.id" : align == 'left'
:style="
align == 'right'
? 'text-align: right;'
: align == 'left'
? 'text-align: left;' ? 'text-align: left;'
: align == 'center' : align == 'center'
? 'text-align: center;' ? 'text-align: center;'
: '' : ''
" " :title="item.mediaPosition">
:title="item.mediaPosition"
>
{{ item.mediaPosition }} {{ item.mediaPosition }}
</div> </div>
</div> </div>
@ -272,8 +195,8 @@
<template v-if="record.serial != '合计'"> <template v-if="record.serial != '合计'">
<div class="table-column-child"> <div class="table-column-child">
<div v-for="item in record.conSaleMediaVoList" :key="index + item.id" <div v-for="item in record.conSaleMediaVoList" :key="index + item.id"
:style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''" :style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''"
:title="item.accountNumber"> :title="item.accountNumber">
{{ item.accountNumber }} {{ item.accountNumber }}
</div> </div>
</div> </div>
@ -286,8 +209,8 @@
<template v-if="record.serial != '合计'"> <template v-if="record.serial != '合计'">
<div class="table-column-child"> <div class="table-column-child">
<div v-for="item in record.conSaleMediaVoList" :key="index + item.id" <div v-for="item in record.conSaleMediaVoList" :key="index + item.id"
:style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''" :style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''"
:title="item.releaseFrequency"> :title="item.releaseFrequency">
{{ item.releaseFrequency }} {{ item.releaseFrequency }}
</div> </div>
</div> </div>
@ -302,8 +225,8 @@
<template v-if="record.serial != '合计'"> <template v-if="record.serial != '合计'">
<div class="table-column-child"> <div class="table-column-child">
<div v-for="item in record.conSaleMediaVoList" :key="index + item.id" <div v-for="item in record.conSaleMediaVoList" :key="index + item.id"
:style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''" :style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''"
:title="item.releaseFrequency"> :title="item.releaseFrequency">
<!-- {{ item.compet }} --> <!-- {{ item.compet }} -->
<span v-if="item.compet == 1" title="是"></span> <span v-if="item.compet == 1" title="是"></span>
<span v-if="item.compet == 2" title="否"></span> <span v-if="item.compet == 2" title="否"></span>
@ -324,8 +247,8 @@
<template v-if="record.serial != '合计'"> <template v-if="record.serial != '合计'">
<div class="table-column-child"> <div class="table-column-child">
<div v-for="item in record.conSaleMediaVoList" :key="index + item.id" <div v-for="item in record.conSaleMediaVoList" :key="index + item.id"
:style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''" :style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''"
:title="item.releaseFrequency"> :title="item.releaseFrequency">
{{ item.competReverPoit }} {{ item.competReverPoit }}
</div> </div>
</div> </div>
@ -341,8 +264,8 @@
<template v-if="record.serial != '合计'"> <template v-if="record.serial != '合计'">
<div class="table-column-child"> <div class="table-column-child">
<div v-for="item in record.conSaleMediaVoList" :key="index + item.id" <div v-for="item in record.conSaleMediaVoList" :key="index + item.id"
:style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''" :style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''"
:title="item.releaseFrequency"> :title="item.releaseFrequency">
{{ formatNumber(item.competReverMoney) }} {{ formatNumber(item.competReverMoney) }}
</div> </div>
</div> </div>
@ -354,13 +277,13 @@
<!-- 比稿返点金额结束 --> <!-- 比稿返点金额结束 -->
<!-- 其他返点开始 --> <!-- 其他返点开始1 -->
<template #table-otherReverPoit="{ text, record, index, align }"> <template #table-otherReverPoit="{ text, record, index, align }">
<template v-if="record.serial != '合计'"> <template v-if="record.serial != '合计'">
<div class="table-column-child"> <div class="table-column-child">
<div v-for="item in record.conSaleMediaVoList" :key="index + item.id" <div v-for="item in record.conSaleMediaVoList" :key="index + item.id"
:style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''" :style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''"
:title="item.releaseFrequency"> :title="item.releaseFrequency">
{{ item.otherReverPoit }} {{ item.otherReverPoit }}
</div> </div>
</div> </div>
@ -369,15 +292,15 @@
<span :title="record.otherReverPoit">{{ record.otherReverPoit }}</span> <span :title="record.otherReverPoit">{{ record.otherReverPoit }}</span>
</template> </template>
</template> </template>
<!-- 其他返点结束 --> <!-- 其他返点结束1 -->
<!-- 其他返点金额开始 --> <!-- 其他返点金额开始1 -->
<template #table-otherReverMoney="{ text, record, index, align }"> <template #table-otherReverMoney="{ text, record, index, align }">
<template v-if="record.serial != '合计'"> <template v-if="record.serial != '合计'">
<div class="table-column-child"> <div class="table-column-child">
<div v-for="item in record.conSaleMediaVoList" :key="index + item.id" <div v-for="item in record.conSaleMediaVoList" :key="index + item.id"
:style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''" :style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''"
:title="item.releaseFrequency"> :title="item.releaseFrequency">
{{ formatNumber(item.otherReverMoney) }} {{ formatNumber(item.otherReverMoney) }}
</div> </div>
</div> </div>
@ -386,63 +309,80 @@
<span :title="record.otherReverMoney">{{ record.otherReverMoney }}</span> <span :title="record.otherReverMoney">{{ record.otherReverMoney }}</span>
</template> </template>
</template> </template>
<!-- 其他返点金额结束 --> <!-- 其他返点金额结束1 -->
<!-- 其他返点开始2 -->
<template #table-otherReverPoit2="{ text, record, index, align }">
<template v-if="record.serial != '合计'">
<div class="table-column-child">
<div v-for="item in record.conSaleMediaVoList" :key="index + item.id"
:style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''"
:title="item.releaseFrequency">
{{ item.otherReverPoit2 }}
</div>
</div>
</template>
<template v-else>
<span :title="record.otherReverPoit2">{{ record.otherReverPoit2 }}</span>
</template>
</template>
<!-- 其他返点结束2 -->
<!-- 其他返点金额开始2 -->
<template #table-otherReverMoney2="{ text, record, index, align }">
<template v-if="record.serial != '合计'">
<div class="table-column-child">
<div v-for="item in record.conSaleMediaVoList" :key="index + item.id"
:style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''"
:title="item.releaseFrequency">
{{ formatNumber(item.otherReverMoney2) }}
</div>
</div>
</template>
<template v-else>
<span :title="record.otherReverMoney2">{{ record.otherReverMoney2 }}</span>
</template>
</template>
<!-- 其他返点金额结束2 -->
<template #table-upTime="{ text, record, index, align }"> <template #table-upTime="{ text, record, index, align }">
<div class="table-column-child"> <div class="table-column-child">
<div <div v-for="item in record.conSaleMediaVoList" :key="index + item.id" :style="align == 'right'
v-for="item in record.conSaleMediaVoList" ? 'text-align: right;'
:key="index + item.id" : align == 'left'
:style="
align == 'right'
? 'text-align: right;'
: align == 'left'
? 'text-align: left;' ? 'text-align: left;'
: align == 'center' : align == 'center'
? 'text-align: center;' ? 'text-align: center;'
: '' : ''
" " :title="item.upTime">
:title="item.upTime"
>
{{ item.upTime }} {{ item.upTime }}
</div> </div>
</div> </div>
</template> </template>
<template #table-downTime="{ text, record, index, align }"> <template #table-downTime="{ text, record, index, align }">
<div class="table-column-child"> <div class="table-column-child">
<div <div v-for="item in record.conSaleMediaVoList" :key="index + item.id" :style="align == 'right'
v-for="item in record.conSaleMediaVoList" ? 'text-align: right;'
:key="index + item.id" : align == 'left'
:style="
align == 'right'
? 'text-align: right;'
: align == 'left'
? 'text-align: left;' ? 'text-align: left;'
: align == 'center' : align == 'center'
? 'text-align: center;' ? 'text-align: center;'
: '' : ''
" " :title="item.downTime">
:title="item.downTime"
>
{{ item.downTime }} {{ item.downTime }}
</div> </div>
</div> </div>
</template> </template>
<template #table-period="{ text, record, index, align }"> <template #table-period="{ text, record, index, align }">
<div class="table-column-child"> <div class="table-column-child">
<div <div v-for="item in record.conSaleMediaVoList" :key="index + item.id" :style="align == 'right'
v-for="item in record.conSaleMediaVoList" ? 'text-align: right;'
:key="index + item.id" : align == 'left'
:style="
align == 'right'
? 'text-align: right;'
: align == 'left'
? 'text-align: left;' ? 'text-align: left;'
: align == 'center' : align == 'center'
? 'text-align: center;' ? 'text-align: center;'
: '' : ''
" " :title="item.period">
:title="item.period"
>
{{ item.period }} {{ item.period }}
</div> </div>
</div> </div>
@ -450,7 +390,7 @@
<template #table-printPrice="{ text, record, index, align }"> <template #table-printPrice="{ text, record, index, align }">
<div class="table-column-child"> <div class="table-column-child">
<div v-for="item in record.conSaleMediaVoList" :key="index + item.id" :title="formatNumber(item.mediaFee)" <div v-for="item in record.conSaleMediaVoList" :key="index + item.id" :title="formatNumber(item.mediaFee)"
:style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''"> :style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''">
{{ formatNumber(item.printPrice) }} {{ formatNumber(item.printPrice) }}
</div> </div>
</div> </div>
@ -458,20 +398,14 @@
<template #table-discount="{ text, record, index, align }"> <template #table-discount="{ text, record, index, align }">
<template v-if="record.serial != '合计'"> <template v-if="record.serial != '合计'">
<div class="table-column-child"> <div class="table-column-child">
<div <div v-for="item in record.conSaleMediaVoList" :key="index + item.id" :style="align == 'right'
v-for="item in record.conSaleMediaVoList" ? 'text-align: right;'
:key="index + item.id" : align == 'left'
:style="
align == 'right'
? 'text-align: right;'
: align == 'left'
? 'text-align: left;' ? 'text-align: left;'
: align == 'center' : align == 'center'
? 'text-align: center;' ? 'text-align: center;'
: '' : ''
" " :title="item.discount">
:title="item.discount"
>
{{ {{
item.discount item.discount
}} }}
@ -485,19 +419,14 @@
<template #table-mediaFee="{ text, record, index, align }"> <template #table-mediaFee="{ text, record, index, align }">
<template v-if="record.serial != '合计'"> <template v-if="record.serial != '合计'">
<div class="table-column-child"> <div class="table-column-child">
<div <div v-for="item in record.conSaleMediaVoList" :key="index + item.id" :style="align == 'right'
v-for="item in record.conSaleMediaVoList" ? 'text-align: right;'
:key="index + item.id" : align == 'left'
:style="
align == 'right'
? 'text-align: right;'
: align == 'left'
? 'text-align: left;' ? 'text-align: left;'
: align == 'center' : align == 'center'
? 'text-align: center;' ? 'text-align: center;'
: '' : ''
" " :title="formatNumber(item.mediaFee)">
:title="formatNumber(item.mediaFee)">
{{ formatNumber(item.mediaFee) }} {{ formatNumber(item.mediaFee) }}
</div> </div>
</div> </div>
@ -509,19 +438,14 @@
<template #table-productFee="{ text, record, index, align }"> <template #table-productFee="{ text, record, index, align }">
<template v-if="record.serial != '合计'"> <template v-if="record.serial != '合计'">
<div class="table-column-child"> <div class="table-column-child">
<div <div v-for="item in record.conSaleMediaVoList" :key="index + item.id" :style="align == 'right'
v-for="item in record.conSaleMediaVoList" ? 'text-align: right;'
:key="index + item.id" : align == 'left'
:style="
align == 'right'
? 'text-align: right;'
: align == 'left'
? 'text-align: left;' ? 'text-align: left;'
: align == 'center' : align == 'center'
? 'text-align: center;' ? 'text-align: center;'
: '' : ''
" " :title="formatNumber(item.productFee)">
:title="formatNumber(item.productFee)">
{{ formatNumber(item.productFee) }} {{ formatNumber(item.productFee) }}
</div> </div>
</div> </div>
@ -538,41 +462,41 @@
<template #table-contractAccess="{ text, record, index, align }"> <template #table-contractAccess="{ text, record, index, align }">
<template v-if="record.serial != '合计'"> <template v-if="record.serial != '合计'">
<img src="@/assets/images/file-type/file2.png" alt="" <img src="@/assets/images/file-type/file2.png" alt=""
:title="record.contractAccessList.map(item => item.realName).join('\n')" :title="record.contractAccessList.map(item => item.realName).join('\n')"
v-if="record.contractAccessList && record.contractAccessList.length > 0" @click="handleDown(record)" v-if="record.contractAccessList && record.contractAccessList.length > 0" @click="handleDown(record)"
style="width: 22px; height: 27px;"/> style="width: 22px; height: 27px;" />
</template> </template>
</template> </template>
<template #table-upPrint="{ text, record, index, align }"> <template #table-upPrint="{ text, record, index, align }">
<template v-if="record.serial != '合计'"> <template v-if="record.serial != '合计'">
<img src="@/assets/images/file-type/file2.png" alt="" <img src="@/assets/images/file-type/file2.png" alt=""
:title="record.upPrintList.map(item => item.realName).join('\n')" :title="record.upPrintList.map(item => item.realName).join('\n')"
v-if="record.upPrintList && record.upPrintList.length > 0" @click="handleDown(record)" v-if="record.upPrintList && record.upPrintList.length > 0" @click="handleDown(record)"
style="width: 22px; height: 27px;"/> style="width: 22px; height: 27px;" />
</template> </template>
</template> </template>
<template #table-exchangePrint="{ text, record, index, align }"> <template #table-exchangePrint="{ text, record, index, align }">
<template v-if="record.serial != '合计'"> <template v-if="record.serial != '合计'">
<img src="@/assets/images/file-type/file2.png" alt="" <img src="@/assets/images/file-type/file2.png" alt=""
:title="record.exchangePrintList.map(item => item.realName).join('\n')" :title="record.exchangePrintList.map(item => item.realName).join('\n')"
v-if="record.exchangePrintList && record.exchangePrintList.length > 0" @click="handleDown(record)" v-if="record.exchangePrintList && record.exchangePrintList.length > 0" @click="handleDown(record)"
style="width: 22px; height: 27px;"/> style="width: 22px; height: 27px;" />
</template> </template>
</template> </template>
<template #table-nextPrint="{ text, record, index, align }"> <template #table-nextPrint="{ text, record, index, align }">
<template v-if="record.serial != '合计'"> <template v-if="record.serial != '合计'">
<img src="@/assets/images/file-type/file2.png" alt="" <img src="@/assets/images/file-type/file2.png" alt=""
:title="record.nextPrintList.map(item => item.realName).join('\n')" :title="record.nextPrintList.map(item => item.realName).join('\n')"
v-if="record.nextPrintList && record.nextPrintList.length > 0" @click="handleDown(record)" v-if="record.nextPrintList && record.nextPrintList.length > 0" @click="handleDown(record)"
style="width: 22px; height: 27px;"/> style="width: 22px; height: 27px;" />
</template> </template>
</template> </template>
<template #table-mediaLink="{ text, record, index, align }"> <template #table-mediaLink="{ text, record, index, align }">
<template v-if="record.serial != '合计'"> <template v-if="record.serial != '合计'">
<img src="@/assets/images/file-type/file2.png" alt="" <img src="@/assets/images/file-type/file2.png" alt=""
:title="record.mediaLinkList.map(item => item.realName).join('\n')" :title="record.mediaLinkList.map(item => item.realName).join('\n')"
v-if="record.mediaLinkList && record.mediaLinkList.length > 0" @click="handleDown(record)" v-if="record.mediaLinkList && record.mediaLinkList.length > 0" @click="handleDown(record)"
style="width: 22px; height: 27px;"/> style="width: 22px; height: 27px;" />
</template> </template>
</template> </template>
<!-- 附件止 --> <!-- 附件止 -->
@ -583,18 +507,12 @@
</template> </template>
<template #table-action="{ record }"> <template #table-action="{ record }">
<template v-if="!tableConfig.isExtendAction"> <template v-if="!tableConfig.isExtendAction">
<img <img src="@/assets/images/icon-option.png" alt="" style="width: 18px; height: 18px"
src="@/assets/images/icon-option.png" @click="showOrCloseActionExtend(true)" />
alt=""
style="width: 18px; height: 18px"
@click="showOrCloseActionExtend(true)"
/>
</template> </template>
<template v-else> <template v-else>
<template v-if="record.serial != '合计'"> <template v-if="record.serial != '合计'">
<div <div style="white-space: nowrap; vertical-align: middle; color: #00a026">
style="white-space: nowrap; vertical-align: middle; color: #00a026"
>
<template v-if="record.state != 2"> <template v-if="record.state != 2">
<a @click="handleView(record)">查看</a> <a @click="handleView(record)">查看</a>
<span style="margin-left: 5px; margin-right: 5px">|</span> <span style="margin-left: 5px; margin-right: 5px">|</span>
@ -603,11 +521,7 @@
<a @click="handleCollectManage(record)">回款管理</a> <a @click="handleCollectManage(record)">回款管理</a>
<span style="margin-left: 5px; margin-right: 5px">|</span> <span style="margin-left: 5px; margin-right: 5px">|</span>
<a @click="handleDown(record)">下载</a> <a @click="handleDown(record)">下载</a>
<span <span style="margin-left: 5px; margin-right: 5px" v-if="record.state == 1 || record.state == 2">|</span>
style="margin-left: 5px; margin-right: 5px"
v-if="record.state == 1 || record.state == 2"
>|</span
>
</template> </template>
<a @click="handleNullify(record)" v-if="record.state == 1">作废</a> <a @click="handleNullify(record)" v-if="record.state == 1">作废</a>
<a @click="handleRecovery(record)" v-if="record.state == 2">恢复</a> <a @click="handleRecovery(record)" v-if="record.state == 2">恢复</a>
@ -619,20 +533,16 @@
<!-- 下载附件的弹窗 --> <!-- 下载附件的弹窗 -->
<el-dialog-copy <el-dialog-copy class="el-custom-form" :visible.sync="enclosureObj.visible" title="附件下载" @close="closeModal">
class="el-custom-form"
:visible.sync="enclosureObj.visible"
title="附件下载"
@close="closeModal"
>
<template #bo> <template #bo>
<div class="flexEndCenter" style="margin-bottom: 10px;"> <div class="flexEndCenter" style="margin-bottom: 10px;">
<div class="pubBtn flexCenterCenter" @click="downloadAll">全部下载</div> <div class="pubBtn flexCenterCenter" @click="downloadAll">全部下载</div>
</div> </div>
<Enclosure :fileList="enclosureObj.formModel.contractAccessList" title="合同附件" <Enclosure :fileList="enclosureObj.formModel.contractAccessList" title="合同附件"
v-if="enclosureObj.formModel.contractAccessList && enclosureObj.formModel.contractAccessList.length"></Enclosure> v-if="enclosureObj.formModel.contractAccessList && enclosureObj.formModel.contractAccessList.length">
</Enclosure>
<Enclosure :fileList="enclosureObj.formModel.mediaLinkList" title="其他附件" <Enclosure :fileList="enclosureObj.formModel.mediaLinkList" title="其他附件"
v-if="enclosureObj.formModel.mediaLinkList && enclosureObj.formModel.mediaLinkList.length"></Enclosure> v-if="enclosureObj.formModel.mediaLinkList && enclosureObj.formModel.mediaLinkList.length"></Enclosure>
</template> </template>
</el-dialog-copy> </el-dialog-copy>
<DownloadList ref="downloadList"></DownloadList> <DownloadList ref="downloadList"></DownloadList>
@ -642,7 +552,7 @@
</template> </template>
<script> <script>
import {getAction, exportAction, postAction, exportAction2} from "@/api/manage"; import { getAction, exportAction, postAction, exportAction2 } from "@/api/manage";
import moment from "moment"; import moment from "moment";
import { mapMutations } from 'vuex'; import { mapMutations } from 'vuex';
import { cityDataCache } from "@/utils/cityDataCache"; import { cityDataCache } from "@/utils/cityDataCache";
@ -661,7 +571,7 @@ import ElCustomDateRangePicker from '@/components/ElForm/ElCustomDateRangePicker
import ChildRows from '@/components/ElTable/ChildRows.vue' import ChildRows from '@/components/ElTable/ChildRows.vue'
import DownloadList from '@/components/ElTable/DownloadList.vue'; import DownloadList from '@/components/ElTable/DownloadList.vue';
import store from '@/store' import store from '@/store'
import {getToken} from "@/utils/auth"; import { getToken } from "@/utils/auth";
import ImportList from "@/components/ElTable/ImportList.vue"; import ImportList from "@/components/ElTable/ImportList.vue";
export default { export default {
@ -669,9 +579,9 @@ export default {
data() { data() {
return { return {
importData: [], importData: [],
importUrl: process.env.VUE_APP_BASE_API+'/contract/sale/import', importUrl: process.env.VUE_APP_BASE_API + '/contract/sale/import',
fileList: [], fileList: [],
importHeaders: {Authorization: "Bearer " + getToken()}, importHeaders: { Authorization: "Bearer " + getToken() },
searchItems, searchItems,
selectedRowKeys: [], selectedRowKeys: [],
showColumnBtn: false, showColumnBtn: false,
@ -708,12 +618,12 @@ export default {
firstList: [], firstList: [],
secondList: [], secondList: [],
isOverdueList: [ isOverdueList: [
{id: 1, label: '是'}, { id: 1, label: '是' },
{id: 0, label: '否'}, { id: 0, label: '否' },
], ],
isCompetList: [ isCompetList: [
{id: 1, label: '是'}, { id: 1, label: '是' },
{id: 2, label: '否'}, { id: 2, label: '否' },
], ],
AEModal: { AEModal: {
visible: false, visible: false,
@ -798,7 +708,7 @@ export default {
}, },
async costSummarizing() { async costSummarizing() {
this.selectedRowKeys = this.selectedRowKeys.filter(element => element !== undefined); this.selectedRowKeys = this.selectedRowKeys.filter(element => element !== undefined);
const {code, data, msg} = await postAction(`/contract/sale/getSaleTatol`, { const { code, data, msg } = await postAction(`/contract/sale/getSaleTatol`, {
...this.$refs.tableRef.queryParams, ...this.$refs.tableRef.queryParams,
...this.$refs.tableRef.pageParams, ...this.$refs.tableRef.pageParams,
signTimeStar: this.$refs.tableRef.queryParams.timesRange && this.$refs.tableRef.queryParams.timesRange.length ? moment(this.$refs.tableRef.queryParams.timesRange[0]).format('YYYY-MM-DD') : undefined, signTimeStar: this.$refs.tableRef.queryParams.timesRange && this.$refs.tableRef.queryParams.timesRange.length ? moment(this.$refs.tableRef.queryParams.timesRange[0]).format('YYYY-MM-DD') : undefined,
@ -811,6 +721,7 @@ export default {
}) })
if (code == 200) { if (code == 200) {
this.summarys = data this.summarys = data
console.log('summarys', this.summarys)
} else { } else {
this.$message.error(msg) this.$message.error(msg)
} }
@ -830,7 +741,8 @@ export default {
productFeeTotal, // productFeeTotal, //
contractMoneyTotal, // contractMoneyTotal, //
competReverMoneySum, // 稿 competReverMoneySum, // 稿
otherReverMoneySum, // otherReverMoneySum, // 1
otherReverMoneySum2, // 2
} = this.summarys } = this.summarys
const totalEle = this.getSummaryElement('总计', total, '条') const totalEle = this.getSummaryElement('总计', total, '条')
@ -839,7 +751,8 @@ export default {
const productFeeEle = this.getSummaryElement('制作费金额', productFeeTotal, '元', '¥') const productFeeEle = this.getSummaryElement('制作费金额', productFeeTotal, '元', '¥')
const contractMoneySumEle = this.getSummaryElement('合同总金额', contractMoneyTotal, '元', '¥') const contractMoneySumEle = this.getSummaryElement('合同总金额', contractMoneyTotal, '元', '¥')
const competReverMoneySumEle = this.getSummaryElement('比稿返点金额', competReverMoneySum, '元', '¥') const competReverMoneySumEle = this.getSummaryElement('比稿返点金额', competReverMoneySum, '元', '¥')
const otherReverMoneySumEle = this.getSummaryElement('其他返点金额', otherReverMoneySum, '元', '¥') const otherReverMoneySumEle = this.getSummaryElement('其他返点金额1', otherReverMoneySum, '元', '¥')
const otherReverMoneySumEle2 = this.getSummaryElement('其他返点金额2', otherReverMoneySum2, '元', '¥')
// //
if (this.showCheckFlag) { if (this.showCheckFlag) {
@ -851,6 +764,7 @@ export default {
sums[18] = contractMoneySumEle sums[18] = contractMoneySumEle
sums[21] = competReverMoneySumEle sums[21] = competReverMoneySumEle
sums[23] = otherReverMoneySumEle sums[23] = otherReverMoneySumEle
sums[25] = otherReverMoneySumEle2
} else { } else {
sums[0] = '合计' sums[0] = '合计'
sums[1] = totalEle sums[1] = totalEle
@ -860,6 +774,7 @@ export default {
sums[17] = contractMoneySumEle sums[17] = contractMoneySumEle
sums[20] = competReverMoneySumEle sums[20] = competReverMoneySumEle
sums[22] = otherReverMoneySumEle sums[22] = otherReverMoneySumEle
sums[24] = otherReverMoneySumEle2
} }
return sums; return sums;
@ -925,16 +840,16 @@ export default {
handleAdd() { handleAdd() {
this.showColumnBtn = false this.showColumnBtn = false
this.showCheckFlag = false this.showCheckFlag = false
this.$router.push({path: `/contract/sale/AddSalesContract`}) this.$router.push({ path: `/contract/sale/AddSalesContract` })
}, },
// //
handleUpdate(record) { handleUpdate(record) {
console.log('%c [ record ]-475', 'font-size:13px; background:pink; color:#bf2c9f;', record) console.log('%c [ record ]-475', 'font-size:13px; background:pink; color:#bf2c9f;', record)
this.$router.push({path: `/contract/sale/EditSalesContract`, query: {id: record.id}}) this.$router.push({ path: `/contract/sale/EditSalesContract`, query: { id: record.id } })
}, },
// //
handleCollectManage(record) { handleCollectManage(record) {
this.$router.push({path: `/contract/sale/SalesCollectManageList`, query: {id: record.id}}) this.$router.push({ path: `/contract/sale/SalesCollectManageList`, query: { id: record.id } })
}, },
// //
handleDown(record) { handleDown(record) {
@ -980,10 +895,10 @@ export default {
this.handleShowDownList() this.handleShowDownList()
for (const item of this.downTaskList) { for (const item of this.downTaskList) {
try { try {
this.updateDownloadTask({id: item.taskId, status: 'downloading'}); this.updateDownloadTask({ id: item.taskId, status: 'downloading' });
await exportAction2(`/fileupload/api/download/${item.identifier}/${item.name}`); await exportAction2(`/fileupload/api/download/${item.identifier}/${item.name}`);
this.updateDownloadTask({id: item.taskId, status: 'complete'}); this.updateDownloadTask({ id: item.taskId, status: 'complete' });
this.$notification.success({message: '下载成功'}) this.$notification.success({ message: '下载成功' })
} catch (error) { } catch (error) {
console.log(`全部下载:${error}`) console.log(`全部下载:${error}`)
} }
@ -998,11 +913,11 @@ export default {
}, },
// //
handleView(record) { handleView(record) {
this.$router.push({path: `/contract/sale/DetailSalesContract`, query: {id: record.id}}) this.$router.push({ path: `/contract/sale/DetailSalesContract`, query: { id: record.id } })
}, },
// //
handleNullify(record) { handleNullify(record) {
this.$confirm('确定作废吗?', '提示', {type: 'warning'}).then(async (result) => { this.$confirm('确定作废吗?', '提示', { type: 'warning' }).then(async (result) => {
const res = await getAction(`/contract/sale/editAblish/${record.id}`) const res = await getAction(`/contract/sale/editAblish/${record.id}`)
if (res.code == 200) { if (res.code == 200) {
this.$message.success('作废成功') this.$message.success('作废成功')
@ -1012,7 +927,7 @@ export default {
}, },
// //
handleRecovery(record) { handleRecovery(record) {
this.$confirm('确定恢复吗?', '提示', {type: 'warning'}).then(async (result) => { this.$confirm('确定恢复吗?', '提示', { type: 'warning' }).then(async (result) => {
const res = await getAction(`/contract/sale/editRenew/${record.id}`) const res = await getAction(`/contract/sale/editRenew/${record.id}`)
if (res.code == 200) { if (res.code == 200) {
this.$message.success('恢复成功') this.$message.success('恢复成功')
@ -1065,7 +980,7 @@ export default {
return false return false
} }
const res = await exportAction(`/contract/sale/dynamicexport`, params) const res = await exportAction(`/contract/sale/dynamicexport`, params)
this.$notification.success({message: '下载成功'}) this.$notification.success({ message: '下载成功' })
} catch (error) { } catch (error) {
console.error('Error downloading the file:', error) console.error('Error downloading the file:', error)
} }
@ -1141,9 +1056,13 @@ export default {
line-height: 45px; line-height: 45px;
text-align: center; text-align: center;
border-bottom: 1px solid #e8e8e8; border-bottom: 1px solid #e8e8e8;
white-space: nowrap; /* 确保文本在一行内显示 */ white-space: nowrap;
overflow: hidden; /* 超出容器部分隐藏 */ /* 确保文本在一行内显示 */
text-overflow: ellipsis; /* 超出部分显示为... */ overflow: hidden;
/* 超出容器部分隐藏 */
text-overflow: ellipsis;
/* 超出部分显示为... */
&:last-child { &:last-child {
border-bottom: none; border-bottom: none;
} }
@ -1210,7 +1129,7 @@ export default {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
> div { >div {
flex: 1; flex: 1;
&:first-child { &:first-child {
@ -1256,4 +1175,3 @@ export default {
} }
} }
</style> </style>

View File

@ -35,7 +35,7 @@ module.exports = {
proxy: { proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy // detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: { [process.env.VUE_APP_BASE_API]: {
target: `http://192.168.1.17:9077`, target: `http://43.143.229.145:9077`,
// target: `http://182.40.36.180:9077`, // target: `http://182.40.36.180:9077`,
changeOrigin: true, changeOrigin: true,
pathRewrite: { pathRewrite: {