提交代码

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

@ -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">
@ -309,7 +257,7 @@ export default {
// //
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')
@ -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)
} }
@ -668,6 +619,22 @@ export default {
this.AEform.formModel.contractAccess = contractAccess3.toString() this.AEform.formModel.contractAccess = contractAccess3.toString()
this.AEform.formModel.contractAccess = this.removeLeadingAndTrailingCommas(this.AEform.formModel.contractAccess) this.AEform.formModel.contractAccess = this.removeLeadingAndTrailingCommas(this.AEform.formModel.contractAccess)
//
var detectPicAttr = []
for (const i in this.$refs.detectPicAttr.getFileList()) {
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 detectPicAttr3 = [...detectPicAttr, ...detectPicAttr2]
detectPicAttr3 = Array.from(new Set(detectPicAttr3))
this.AEform.formModel.detectPicAttr = detectPicAttr3.toString()
this.AEform.formModel.detectPicAttr = this.removeLeadingAndTrailingCommas(this.AEform.formModel.detectPicAttr)
// //
var upPrint = [] var upPrint = []
for (const i in this.$refs.upPrint.getFileList()) { for (const i in this.$refs.upPrint.getFileList()) {
@ -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)
@ -830,6 +798,7 @@ 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,19 +18,9 @@
<!-- 客户名称 --> <!-- 客户名称 -->
<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"
@ -57,19 +30,9 @@
</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"
@ -88,19 +51,9 @@
</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"
@ -112,12 +65,7 @@
<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"
@ -129,12 +77,7 @@
<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"
@ -162,13 +105,8 @@
</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>
@ -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>
@ -249,20 +178,14 @@
</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"
:key="index + item.id"
:style="
align == 'right'
? 'text-align: right;' ? 'text-align: right;'
: align == 'left' : 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>
@ -354,7 +277,7 @@
<!-- 比稿返点金额结束 --> <!-- 比稿返点金额结束 -->
<!-- 其他返点开始 --> <!-- 其他返点开始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">
@ -369,9 +292,9 @@
<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">
@ -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"
:key="index + item.id"
:style="
align == 'right'
? 'text-align: right;' ? 'text-align: right;'
: align == 'left' : 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"
:key="index + item.id"
:style="
align == 'right'
? 'text-align: right;' ? 'text-align: right;'
: align == 'left' : 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"
:key="index + item.id"
:style="
align == 'right'
? 'text-align: right;' ? 'text-align: right;'
: align == 'left' : 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>
@ -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"
:key="index + item.id"
:style="
align == 'right'
? 'text-align: right;' ? 'text-align: right;'
: align == 'left' : 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"
:key="index + item.id"
:style="
align == 'right'
? 'text-align: right;' ? 'text-align: right;'
: align == 'left' : 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"
:key="index + item.id"
:style="
align == 'right'
? 'text-align: right;' ? 'text-align: right;'
: align == 'left' : 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>
@ -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,18 +533,14 @@
<!-- 下载附件的弹窗 --> <!-- 下载附件的弹窗 -->
<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>
@ -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;
@ -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;
} }
@ -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: {