添加采购、销售合同模板,对接导入接口
This commit is contained in:
parent
ddc973fed0
commit
f81e56e167
BIN
public/template/采购合同导入模板.xlsx
Normal file
BIN
public/template/采购合同导入模板.xlsx
Normal file
Binary file not shown.
Binary file not shown.
|
|
@ -1,226 +1,112 @@
|
|||
<template>
|
||||
<el-drawer
|
||||
title="导入失败列表"
|
||||
:visible.sync="drawerVisible"
|
||||
direction="rtl"
|
||||
size="90%"
|
||||
append-to-body>
|
||||
<el-table
|
||||
:data="importData"
|
||||
style="width: 100%"
|
||||
height="250">
|
||||
<el-drawer title="导入失败列表" :visible.sync="drawerVisible" direction="rtl" size="90%" append-to-body>
|
||||
<el-table :data="importData" style="width: 100%" height="250">
|
||||
|
||||
<el-table-column
|
||||
prop="projectExecutor"
|
||||
label="项目执行人"
|
||||
width="150">
|
||||
<el-table-column prop="projectExecutor" label="项目执行人" width="150">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="department"
|
||||
label="部门"
|
||||
width="150">
|
||||
<el-table-column prop="department" label="部门" width="150">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="projectCode"
|
||||
label="项目编号"
|
||||
width="150">
|
||||
<el-table-column prop="projectCode" label="项目编号" width="150">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="orderCode"
|
||||
label="订单编号"
|
||||
width="150">
|
||||
<el-table-column prop="orderCode" label="订单编号" width="150">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="projectName"
|
||||
label="项目名称"
|
||||
width="150">
|
||||
<el-table-column prop="projectName" label="项目名称" width="150">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="clientName"
|
||||
label="客户名称"
|
||||
width="150">
|
||||
<el-table-column prop="clientName" label="客户名称" width="150">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="city"
|
||||
label="城市"
|
||||
width="120">
|
||||
<el-table-column prop="city" label="城市" width="120">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="publishStartDate"
|
||||
label="上刊时间"
|
||||
width="180">
|
||||
<el-table-column prop="publishStartDate" label="上刊时间" width="180">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="publishEndDate"
|
||||
label="下刊时间"
|
||||
width="180">
|
||||
<el-table-column prop="publishEndDate" label="下刊时间" width="180">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="mediaType"
|
||||
label="媒体类型"
|
||||
width="120">
|
||||
<el-table-column prop="mediaType" label="媒体类型" width="120">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="mediaPosition"
|
||||
label="媒体位置"
|
||||
width="150">
|
||||
<el-table-column prop="mediaPosition" label="媒体位置" width="150">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="quantity"
|
||||
label="数量"
|
||||
width="100">
|
||||
<el-table-column prop="quantity" label="数量" width="100">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="frequency"
|
||||
label="频次"
|
||||
width="100">
|
||||
<el-table-column prop="frequency" label="频次" width="100">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="listPrice"
|
||||
label="刊例价"
|
||||
width="120">
|
||||
<el-table-column prop="listPrice" label="刊例价" width="120">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="listPriceUnit"
|
||||
label="刊例单位"
|
||||
width="120">
|
||||
<el-table-column prop="listPriceUnit" label="刊例单位" width="120">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="discount"
|
||||
label="折扣"
|
||||
width="100">
|
||||
<el-table-column prop="discount" label="折扣" width="100">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="mediaCost"
|
||||
label="媒体费"
|
||||
width="120">
|
||||
<el-table-column prop="mediaCost" label="媒体费" width="120">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="productionCost"
|
||||
label="制作费"
|
||||
width="120">
|
||||
<el-table-column prop="productionCost" label="制作费" width="120">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="isBid"
|
||||
label="是否比稿"
|
||||
width="120">
|
||||
<el-table-column prop="isBid" label="是否比稿" width="120">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="bidRebate"
|
||||
label="比稿返点"
|
||||
width="120">
|
||||
<el-table-column prop="bidRebate" label="比稿返点" width="120">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="bidAmount"
|
||||
label="比稿金额"
|
||||
width="120">
|
||||
<el-table-column prop="bidAmount" label="比稿金额" width="120">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="ykToQunYiRebateRate"
|
||||
label="YK给群邑返点比例"
|
||||
width="180">
|
||||
<el-table-column prop="ykToQunYiRebateRate" label="YK给群邑返点比例" width="180">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="yuKeRebateToQunYi"
|
||||
label="优客返点给群邑"
|
||||
width="180">
|
||||
<el-table-column prop="yuKeRebateToQunYi" label="优客返点给群邑" width="180">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="ykToYYXRebateRate"
|
||||
label="YK给YYX返点比例"
|
||||
width="180">
|
||||
<el-table-column prop="ykToYYXRebateRate" label="YK给YYX返点比例" width="180">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="yuKeRebateToYYX"
|
||||
label="优客返点给YYX"
|
||||
width="180">
|
||||
<el-table-column prop="yuKeRebateToYYX" label="优客返点给YYX" width="180">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="orderAmountPerTransaction"
|
||||
label="每笔订单金额"
|
||||
width="180">
|
||||
<el-table-column prop="orderAmountPerTransaction" label="每笔订单金额" width="180">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="contractSignDate"
|
||||
label="合同签订日期"
|
||||
width="180">
|
||||
<el-table-column prop="contractSignDate" label="合同签订日期" width="180">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="actualInvoiceDate"
|
||||
label="实际开票日期"
|
||||
width="180">
|
||||
<el-table-column prop="actualInvoiceDate" label="实际开票日期" width="180">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="agreedPaymentDate"
|
||||
label="约定回款日期"
|
||||
width="180">
|
||||
<el-table-column prop="agreedPaymentDate" label="约定回款日期" width="180">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="actualPaymentDate"
|
||||
label="实际回款日期"
|
||||
width="180">
|
||||
<el-table-column prop="actualPaymentDate" label="实际回款日期" width="180">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="additionalNotes"
|
||||
label="补充说明"
|
||||
width="200">
|
||||
<el-table-column prop="additionalNotes" label="补充说明" width="200">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="partyA"
|
||||
label="甲方"
|
||||
width="150">
|
||||
<el-table-column prop="partyA" label="甲方" width="150">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="partyB"
|
||||
label="乙方"
|
||||
width="150">
|
||||
<el-table-column prop="partyB" label="乙方" width="150">
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="status"
|
||||
label="状态"
|
||||
width="100">
|
||||
<el-table-column prop="status" label="状态" width="100">
|
||||
|
||||
<div style="color:red;">导入失败</div>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column
|
||||
prop="notes"
|
||||
label="备注"
|
||||
width="200"
|
||||
>
|
||||
<el-table-column prop="notes" label="备注" width="200">
|
||||
<template slot-scope="scope">
|
||||
<span style="color: red;">{{ scope.row.notes }}</span>
|
||||
</template>
|
||||
|
|
@ -235,7 +121,10 @@ import { mapGetters } from 'vuex';
|
|||
|
||||
export default {
|
||||
props: {
|
||||
importData: [],
|
||||
importData: {
|
||||
type: Array, // 确保这里定义的是 Array
|
||||
default: () => []
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
|
|
|
|||
|
|
@ -13,8 +13,8 @@ export const searchItems = [
|
|||
{ label: "", prop: "keyword", placeholder: "媒体位置/乙方姓名/项目编号/项目名称", isExtend: false },
|
||||
{ label: "客户名称", prop: "clientId", placeholder: "请选择", type: 'selector', isExtend: true, available: false },
|
||||
{ label: "媒介部门", prop: "mediaDeptId", placeholder: "请选择", type: 'selector', isExtend: true, available: false },
|
||||
{ label: "城市", prop: "cityId", placeholder: "请选择", type: 'multiSelector', isExtend: true, available: false},
|
||||
{ label: "媒体类型", prop: "mediaId", placeholder: "请选择", type: 'selector', isExtend: true, available: false},
|
||||
{ label: "城市", prop: "cityId", placeholder: "请选择", type: 'multiSelector', isExtend: true, available: false },
|
||||
{ label: "媒体类型", prop: "mediaId", placeholder: "请选择", type: 'selector', isExtend: true, available: false },
|
||||
{ label: "时间范围", prop: "timesRange", placeholder: "请选择", isExtend: true, available: false },
|
||||
{ label: "甲方", prop: "firstId", placeholder: "请选择", isExtend: true, available: false },
|
||||
// { label: "乙方", prop: "secondName", placeholder: "请选择", isExtend: true, available: false },
|
||||
|
|
@ -278,6 +278,14 @@ export const tableColumns = [
|
|||
isCheck: false,
|
||||
width: [78, 102],
|
||||
},
|
||||
{
|
||||
title: "检测照片",
|
||||
dataIndex: "detectPicAttr",
|
||||
dataIndexType: "ordinary",
|
||||
align: "center",
|
||||
isCheck: false,
|
||||
width: [78, 102],
|
||||
},
|
||||
{
|
||||
title: "上刊",
|
||||
dataIndex: "upPrint",
|
||||
|
|
|
|||
|
|
@ -1,34 +1,15 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<ElQueryTable
|
||||
ref="tableRef"
|
||||
:searchItems="searchItems"
|
||||
:tableConfig="tableConfig"
|
||||
:isExtendAction="false"
|
||||
:selectedRowKeys.sync="selectedRowKeys"
|
||||
:isRowCheck="showColumnBtn"
|
||||
:showCheckFlag="showCheckFlag"
|
||||
autoresize
|
||||
@showExtendAction="showExtendAction"
|
||||
@hiddenExtendActionColumn="hiddenExtendActionColumn"
|
||||
@returnTableColumn="returnTableColumn"
|
||||
@update:selectedRowKeys="updateSelectedRowKeys"
|
||||
@search="handleCancelExport"
|
||||
@reset="handleCancelExport"
|
||||
:class="showCheckFlag? 'is-check-flag-show': ''"
|
||||
>
|
||||
<ElQueryTable ref="tableRef" :searchItems="searchItems" :tableConfig="tableConfig" :isExtendAction="false"
|
||||
:selectedRowKeys.sync="selectedRowKeys" :isRowCheck="showColumnBtn" :showCheckFlag="showCheckFlag" autoresize
|
||||
@showExtendAction="showExtendAction" @hiddenExtendActionColumn="hiddenExtendActionColumn"
|
||||
@returnTableColumn="returnTableColumn" @update:selectedRowKeys="updateSelectedRowKeys"
|
||||
@search="handleCancelExport" @reset="handleCancelExport" :class="showCheckFlag ? 'is-check-flag-show' : ''">
|
||||
<!-- keyword -->
|
||||
<template #query-keyword="{ queryParams }">
|
||||
<div style="width:1200px;">
|
||||
<el-input
|
||||
v-model="queryParams.keyword"
|
||||
type="search"
|
||||
clearable
|
||||
placeholder="媒体位置/乙方姓名/项目编号/项目名称/合同编号"
|
||||
style="width: 547px;"
|
||||
@change="handleSearch"
|
||||
@keydown.enter.prevent
|
||||
>
|
||||
<el-input v-model="queryParams.keyword" type="search" clearable placeholder="媒体位置/乙方姓名/项目编号/项目名称/合同编号"
|
||||
style="width: 547px;" @change="handleSearch" @keydown.enter.prevent>
|
||||
<i slot="prefix" class="el-input__icon el-icon-search"></i>
|
||||
</el-input>
|
||||
</div>
|
||||
|
|
@ -36,49 +17,44 @@
|
|||
|
||||
<!-- 客户名称 -->
|
||||
<template #query-clientId="{ queryParams }">
|
||||
<el-select v-model="queryParams.clientId" style="width: 200px;" placeholder="请选择" :clearable="false" @change="handleSearch">
|
||||
<el-option
|
||||
v-for="item in clientList"
|
||||
:key="item.id"
|
||||
:label="item.clientName"
|
||||
:value="item.id">
|
||||
<el-select v-model="queryParams.clientId" style="width: 200px;" placeholder="请选择" :clearable="false"
|
||||
@change="handleSearch">
|
||||
<el-option v-for="item in clientList" :key="item.id" :label="item.clientName" :value="item.id">
|
||||
</el-option>
|
||||
<template #prefix>
|
||||
<span style="position: absolute;left: 150px;color: #3B588A;cursor: pointer;" v-if="queryParams.clientId" @click="() => $refs.tableRef.queryParams.clientId = undefined">✖</span>
|
||||
<span style="position: absolute;left: 150px;color: #3B588A;cursor: pointer;" v-if="queryParams.clientId"
|
||||
@click="() => $refs.tableRef.queryParams.clientId = undefined">✖</span>
|
||||
</template>
|
||||
</el-select>
|
||||
</template>
|
||||
<!-- 媒介部门 -->
|
||||
<template #query-mediaDeptId="{ queryParams }">
|
||||
<el-select v-model="queryParams.mediaDeptId" style="width: 200px;" placeholder="请选择" clearable @change="handleSearch">
|
||||
<el-option
|
||||
v-for="item in mediaDeptList"
|
||||
:key="item.id"
|
||||
:label="item.mediaDeptName"
|
||||
:value="item.id">
|
||||
<el-select v-model="queryParams.mediaDeptId" style="width: 200px;" placeholder="请选择" clearable
|
||||
@change="handleSearch">
|
||||
<el-option v-for="item in mediaDeptList" :key="item.id" :label="item.mediaDeptName" :value="item.id">
|
||||
</el-option>
|
||||
<template #prefix>
|
||||
<span style="position: absolute;left: 150px;color: #3B588A;cursor: pointer;" v-if="queryParams.mediaDeptId" @click="() => $refs.tableRef.queryParams.mediaDeptId = undefined">✖</span>
|
||||
<span style="position: absolute;left: 150px;color: #3B588A;cursor: pointer;" v-if="queryParams.mediaDeptId"
|
||||
@click="() => $refs.tableRef.queryParams.mediaDeptId = undefined">✖</span>
|
||||
</template>
|
||||
</el-select>
|
||||
</template>
|
||||
<!-- 媒体类型 -->
|
||||
<template #query-mediaId="{ queryParams }">
|
||||
<el-select v-model="queryParams.mediaId" style="width: 200px;" placeholder="请选择" clearable @change="handleSearch">
|
||||
<el-option
|
||||
v-for="item in mediaTypeList"
|
||||
:key="item.id"
|
||||
:label="item.mediaType"
|
||||
:value="item.id">
|
||||
<el-select v-model="queryParams.mediaId" style="width: 200px;" placeholder="请选择" clearable
|
||||
@change="handleSearch">
|
||||
<el-option v-for="item in mediaTypeList" :key="item.id" :label="item.mediaType" :value="item.id">
|
||||
</el-option>
|
||||
<template #prefix>
|
||||
<span style="position: absolute;left: 150px;color: #3B588A;cursor: pointer;" v-if="queryParams.mediaId" @click="() => $refs.tableRef.queryParams.mediaId = undefined">✖</span>
|
||||
<span style="position: absolute;left: 150px;color: #3B588A;cursor: pointer;" v-if="queryParams.mediaId"
|
||||
@click="() => $refs.tableRef.queryParams.mediaId = undefined">✖</span>
|
||||
</template>
|
||||
</el-select>
|
||||
</template>
|
||||
<!-- 城市 -->
|
||||
<template #query-cityId="{ queryParams }">
|
||||
<el-custom-cascader v-model="queryParams.cityIds" :cascaderStyle="{ width: '200px' }" :dataSource="cityList" @click="() => $refs.tableRef.queryParams.cityIds = undefined" />
|
||||
<el-custom-cascader v-model="queryParams.cityIds" :cascaderStyle="{ width: '200px' }" :dataSource="cityList"
|
||||
@click="() => $refs.tableRef.queryParams.cityIds = undefined" />
|
||||
</template>
|
||||
<!-- 时间段 -->
|
||||
<template #query-timesRange="{ queryParams }">
|
||||
|
|
@ -86,15 +62,13 @@
|
|||
</template>
|
||||
<!-- 甲方 乙方 -->
|
||||
<template #query-firstId="{ queryParams }">
|
||||
<el-select v-model="queryParams.firstId" style="width: 200px;" placeholder="请选择" clearable @change="handleSearch">
|
||||
<el-option
|
||||
v-for="item in firstList"
|
||||
:key="item.id"
|
||||
:label="item.firstName"
|
||||
:value="item.id">
|
||||
<el-select v-model="queryParams.firstId" style="width: 200px;" placeholder="请选择" clearable
|
||||
@change="handleSearch">
|
||||
<el-option v-for="item in firstList" :key="item.id" :label="item.firstName" :value="item.id">
|
||||
</el-option>
|
||||
<template #prefix>
|
||||
<span style="position: absolute;left: 150px;color: #3B588A;cursor: pointer;" v-if="queryParams.firstId" @click="() => $refs.tableRef.queryParams.firstId = undefined">✖</span>
|
||||
<span style="position: absolute;left: 150px;color: #3B588A;cursor: pointer;" v-if="queryParams.firstId"
|
||||
@click="() => $refs.tableRef.queryParams.firstId = undefined">✖</span>
|
||||
</template>
|
||||
</el-select>
|
||||
</template>
|
||||
|
|
@ -103,15 +77,13 @@
|
|||
</template> -->
|
||||
<!-- 是否逾期 -->
|
||||
<template #query-isOverdue="{ queryParams }">
|
||||
<el-select v-model="queryParams.isOverdue" placeholder="请选择" style="width: 200px;" clearable @change="handleSearch">
|
||||
<el-option
|
||||
v-for="item in isOverdueList"
|
||||
:key="item.id"
|
||||
:label="item.label"
|
||||
:value="item.id">
|
||||
<el-select v-model="queryParams.isOverdue" placeholder="请选择" style="width: 200px;" clearable
|
||||
@change="handleSearch">
|
||||
<el-option v-for="item in isOverdueList" :key="item.id" :label="item.label" :value="item.id">
|
||||
</el-option>
|
||||
<template #prefix>
|
||||
<span style="position: absolute;left: 150px;color: #3B588A;cursor: pointer;" v-if="queryParams.isOverdue" @click="() => $refs.tableRef.queryParams.isOverdue = undefined">✖</span>
|
||||
<span style="position: absolute;left: 150px;color: #3B588A;cursor: pointer;" v-if="queryParams.isOverdue"
|
||||
@click="() => $refs.tableRef.queryParams.isOverdue = undefined">✖</span>
|
||||
</template>
|
||||
</el-select>
|
||||
</template>
|
||||
|
|
@ -135,8 +107,14 @@
|
|||
</el-col> -->
|
||||
<el-col :span="1.5">
|
||||
<div class="flexRowCenter">
|
||||
<el-upload class="flexCenterCenter pubBtn" :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-upload>
|
||||
<div class="flexCenterCenter pubBtn" style="width:120px;" @click="downloadTemplate">下载导入模板</div>
|
||||
<div class="flexCenterCenter pubBtn" @click="handleExport" v-if="!showColumnBtn">导出</div>
|
||||
<div class="flexCenterCenter pubBtn" style="margin-right: 10px;" @click="handleCancelExport" v-if="showColumnBtn">取消</div>
|
||||
<div class="flexCenterCenter pubBtn" style="margin-right: 10px;" @click="handleCancelExport"
|
||||
v-if="showColumnBtn">取消</div>
|
||||
<div class="flexCenterCenter pubBtn" @click="handleSureExport" v-if="showColumnBtn">确认导出</div>
|
||||
<div class="flexCenterCenter pubBtn" @click="handleShowDownList">下载记录</div>
|
||||
</div>
|
||||
|
|
@ -189,21 +167,25 @@
|
|||
<!-- 需要分行的字段:VoList始 -->
|
||||
<template #table-cityId="{ text, record, index, align }">
|
||||
<div class="table-column-child">
|
||||
<div v-for="item in record.purchaseMediaVoList" :key="index + item.id" :style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''">
|
||||
<div v-for="item in record.purchaseMediaVoList" :key="index + item.id"
|
||||
:style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''">
|
||||
<span :title="item.cityName">{{ item.cityName }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<template #table-mediaId="{ text, record, index, align }">
|
||||
<div class="table-column-child">
|
||||
<div v-for="item in record.purchaseMediaVoList" :key="index + item.id" :style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''">
|
||||
<div v-for="item in record.purchaseMediaVoList" :key="index + item.id"
|
||||
:style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''">
|
||||
<span :title="item.mediaName">{{ item.mediaName }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<template #table-mediaPosition="{ text, record, index, align }">
|
||||
<div class="table-column-child">
|
||||
<div v-for="item in record.purchaseMediaVoList" :key="index + item.id" :style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''" :title="item.mediaPosition">
|
||||
<div v-for="item in record.purchaseMediaVoList" :key="index + item.id"
|
||||
:style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''"
|
||||
:title="item.mediaPosition">
|
||||
{{ item.mediaPosition }}
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -212,7 +194,9 @@
|
|||
<template #table-accountNumber="{ text, record, index, align }">
|
||||
<template v-if="record.serial != '合计'">
|
||||
<div class="table-column-child">
|
||||
<div v-for="item in record.purchaseMediaVoList" :key="index + item.id" :style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''" :title="item.accountNumber">
|
||||
<div v-for="item in record.purchaseMediaVoList" :key="index + item.id"
|
||||
:style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''"
|
||||
:title="item.accountNumber">
|
||||
{{ item.accountNumber }}
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -224,7 +208,9 @@
|
|||
<template #table-releaseFrequency="{ text, record, index, align }">
|
||||
<template v-if="record.serial != '合计'">
|
||||
<div class="table-column-child">
|
||||
<div v-for="item in record.purchaseMediaVoList" :key="index + item.id" :style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''" :title="item.releaseFrequency">
|
||||
<div v-for="item in record.purchaseMediaVoList" :key="index + item.id"
|
||||
:style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''"
|
||||
:title="item.releaseFrequency">
|
||||
{{ item.releaseFrequency }}
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -235,35 +221,42 @@
|
|||
</template>
|
||||
<template #table-upTime="{ text, record, index, align }">
|
||||
<div class="table-column-child">
|
||||
<div v-for="item in record.purchaseMediaVoList" :key="index + item.id" :style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''" :title="item.upTime">
|
||||
<div v-for="item in record.purchaseMediaVoList" :key="index + item.id"
|
||||
:style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''"
|
||||
:title="item.upTime">
|
||||
{{ item.upTime }}
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<template #table-downTime="{ text, record, index, align }">
|
||||
<div class="table-column-child">
|
||||
<div v-for="item in record.purchaseMediaVoList" :key="index + item.id" :style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''" :title="item.downTime">
|
||||
<div v-for="item in record.purchaseMediaVoList" :key="index + item.id"
|
||||
:style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''"
|
||||
:title="item.downTime">
|
||||
{{ item.downTime }}
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<template #table-period="{ text, record, index, align }">
|
||||
<div class="table-column-child">
|
||||
<div v-for="item in record.purchaseMediaVoList" :key="index + item.id" :title="item.period" :style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''">
|
||||
<div v-for="item in record.purchaseMediaVoList" :key="index + item.id" :title="item.period"
|
||||
:style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''">
|
||||
{{ item.period }}
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<template #table-printPrice="{ text, record, index, align }">
|
||||
<div class="table-column-child">
|
||||
<div v-for="item in record.purchaseMediaVoList" :key="index + item.id" :title="formatNumber(item.printPrice)" :style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''">
|
||||
<div v-for="item in record.purchaseMediaVoList" :key="index + item.id" :title="formatNumber(item.printPrice)"
|
||||
:style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''">
|
||||
{{ formatNumber(item.printPrice) }}
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<template #table-discount="{ text, record, index, align }">
|
||||
<div class="table-column-child">
|
||||
<div v-for="item in record.purchaseMediaVoList" :key="index + item.id" :title="item.discount" :style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''">
|
||||
<div v-for="item in record.purchaseMediaVoList" :key="index + item.id" :title="item.discount"
|
||||
:style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''">
|
||||
{{
|
||||
item.discount
|
||||
}}
|
||||
|
|
@ -273,7 +266,8 @@
|
|||
<template #table-mediaFee="{ text, record, index, align }">
|
||||
<template v-if="record.serial != '合计'">
|
||||
<div class="table-column-child">
|
||||
<div v-for="item in record.purchaseMediaVoList" :key="index + item.id" :title="formatNumber(item.mediaFee)" :style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''">
|
||||
<div v-for="item in record.purchaseMediaVoList" :key="index + item.id" :title="formatNumber(item.mediaFee)"
|
||||
:style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''">
|
||||
{{ formatNumber(item.mediaFee) }}
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -285,7 +279,9 @@
|
|||
<template #table-productFee="{ text, record, index, align }">
|
||||
<template v-if="record.serial != '合计'">
|
||||
<div class="table-column-child">
|
||||
<div v-for="item in record.purchaseMediaVoList" :key="index + item.id" :title="formatNumber(item.productFee)" :style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''">
|
||||
<div v-for="item in record.purchaseMediaVoList" :key="index + item.id"
|
||||
:title="formatNumber(item.productFee)"
|
||||
:style="align == 'right' ? 'text-align: right;' : align == 'left' ? 'text-align: left;' : align == 'center' ? 'text-align: center;' : ''">
|
||||
{{ formatNumber(item.productFee) }}
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -303,27 +299,50 @@
|
|||
<!-- 附件始 -->
|
||||
<template #table-contractAccess="{ text, record, index, align }">
|
||||
<template v-if="record.serial != '合计'">
|
||||
<img src="@/assets/images/file-type/file2.png" alt="" :title="record.contractAccessList.map(item => item.realName).join('\n')" v-if="record.contractAccessList && record.contractAccessList.length > 0" @click="handleDown(record)" style="width: 22px; height: 27px;" />
|
||||
<img src="@/assets/images/file-type/file2.png" alt=""
|
||||
:title="record.contractAccessList.map(item => item.realName).join('\n')"
|
||||
v-if="record.contractAccessList && record.contractAccessList.length > 0" @click="handleDown(record)"
|
||||
style="width: 22px; height: 27px;" />
|
||||
</template>
|
||||
</template>
|
||||
<template #table-detectPicAttr="{ text, record, index, align }">
|
||||
<template v-if="record.serial != '合计'">
|
||||
<img src="@/assets/images/file-type/file2.png" alt=""
|
||||
:title="record.detectPicAttrList.map(item => item.realName).join('\n')"
|
||||
v-if="record.detectPicAttrList && record.detectPicAttrList.length > 0" @click="handleDown(record)"
|
||||
style="width: 22px; height: 27px;" />
|
||||
</template>
|
||||
</template>
|
||||
<template #table-upPrint="{ text, record, index, align }">
|
||||
<template v-if="record.serial != '合计'">
|
||||
<img src="@/assets/images/file-type/file2.png" alt="" :title="record.upPrintList.map(item => item.realName).join('\n')" v-if="record.upPrintList && record.upPrintList.length > 0" @click="handleDown(record)" style="width: 22px; height: 27px;" />
|
||||
<img src="@/assets/images/file-type/file2.png" alt=""
|
||||
:title="record.upPrintList.map(item => item.realName).join('\n')"
|
||||
v-if="record.upPrintList && record.upPrintList.length > 0" @click="handleDown(record)"
|
||||
style="width: 22px; height: 27px;" />
|
||||
</template>
|
||||
</template>
|
||||
<template #table-exchangePrint="{ text, record, index, align }">
|
||||
<template v-if="record.serial != '合计'">
|
||||
<img src="@/assets/images/file-type/file2.png" alt="" :title="record.exchangePrintList.map(item => item.realName).join('\n')" v-if="record.exchangePrintList && record.exchangePrintList.length > 0" @click="handleDown(record)" style="width: 22px; height: 27px;" />
|
||||
<img src="@/assets/images/file-type/file2.png" alt=""
|
||||
:title="record.exchangePrintList.map(item => item.realName).join('\n')"
|
||||
v-if="record.exchangePrintList && record.exchangePrintList.length > 0" @click="handleDown(record)"
|
||||
style="width: 22px; height: 27px;" />
|
||||
</template>
|
||||
</template>
|
||||
<template #table-nextPrint="{ text, record, index, align }">
|
||||
<template v-if="record.serial != '合计'">
|
||||
<img src="@/assets/images/file-type/file2.png" alt="" :title="record.nextPrintList.map(item => item.realName).join('\n')" v-if="record.nextPrintList && record.nextPrintList.length > 0" @click="handleDown(record)" style="width: 22px; height: 27px;" />
|
||||
<img src="@/assets/images/file-type/file2.png" alt=""
|
||||
:title="record.nextPrintList.map(item => item.realName).join('\n')"
|
||||
v-if="record.nextPrintList && record.nextPrintList.length > 0" @click="handleDown(record)"
|
||||
style="width: 22px; height: 27px;" />
|
||||
</template>
|
||||
</template>
|
||||
<template #table-mediaLink="{ text, record, index, align }">
|
||||
<template v-if="record.serial != '合计'">
|
||||
<img src="@/assets/images/file-type/file2.png" alt="" :title="record.mediaLinkList.map(item => item.realName).join('\n')" v-if="record.mediaLinkList && record.mediaLinkList.length > 0" @click="handleDown(record)" style="width: 22px; height: 27px;" />
|
||||
<img src="@/assets/images/file-type/file2.png" alt=""
|
||||
:title="record.mediaLinkList.map(item => item.realName).join('\n')"
|
||||
v-if="record.mediaLinkList && record.mediaLinkList.length > 0" @click="handleDown(record)"
|
||||
style="width: 22px; height: 27px;" />
|
||||
</template>
|
||||
</template>
|
||||
|
||||
|
|
@ -335,7 +354,8 @@
|
|||
</template>
|
||||
<template #table-action="{ record }">
|
||||
<template v-if="!tableConfig.isExtendAction">
|
||||
<img src="@/assets/images/icon-option.png" alt="" style="width: 18px; height: 18px;" @click="showOrCloseActionExtend(true)">
|
||||
<img src="@/assets/images/icon-option.png" alt="" style="width: 18px; height: 18px;"
|
||||
@click="showOrCloseActionExtend(true)">
|
||||
</template>
|
||||
<template v-else>
|
||||
<template v-if="record.serial != '合计'">
|
||||
|
|
@ -358,47 +378,60 @@
|
|||
</template>
|
||||
</ElQueryTable>
|
||||
<!-- 下载附件的弹窗 -->
|
||||
<el-dialog-copy
|
||||
class="el-custom-form"
|
||||
:visible.sync="enclosureObj.visible"
|
||||
title="附件下载"
|
||||
@close="closeModal"
|
||||
>
|
||||
<el-dialog-copy class="el-custom-form" :visible.sync="enclosureObj.visible" title="附件下载" @close="closeModal">
|
||||
<template #bo>
|
||||
<div class="flexEndCenter" style="margin-bottom: 10px;">
|
||||
<div class="pubBtn flexCenterCenter" @click="downloadAll">全部下载</div>
|
||||
</div>
|
||||
<Enclosure :fileList="enclosureObj.formModel.contractAccessList" title="合同附件" v-if="enclosureObj.formModel.contractAccessList && enclosureObj.formModel.contractAccessList.length"></Enclosure>
|
||||
<Enclosure :fileList="enclosureObj.formModel.upPrintList" title="上刊附件" v-if="enclosureObj.formModel.upPrintList && enclosureObj.formModel.upPrintList.length"></Enclosure>
|
||||
<Enclosure :fileList="enclosureObj.formModel.exchangePrintList" title="换刊附件" v-if="enclosureObj.formModel.exchangePrintList && enclosureObj.formModel.exchangePrintList.length"></Enclosure>
|
||||
<Enclosure :fileList="enclosureObj.formModel.nextPrintList" title="下刊附件" v-if="enclosureObj.formModel.nextPrintList && enclosureObj.formModel.nextPrintList.length"></Enclosure>
|
||||
<Enclosure :fileList="enclosureObj.formModel.mediaLinkList" title="媒体链条附件" v-if="enclosureObj.formModel.mediaLinkList && enclosureObj.formModel.mediaLinkList.length"></Enclosure>
|
||||
<Enclosure :fileList="enclosureObj.formModel.contractAccessList" title="合同附件"
|
||||
v-if="enclosureObj.formModel.contractAccessList && enclosureObj.formModel.contractAccessList.length">
|
||||
</Enclosure>
|
||||
<Enclosure :fileList="enclosureObj.formModel.detectPicAttrList" title="检测照片"
|
||||
v-if="enclosureObj.formModel.detectPicAttrList && enclosureObj.formModel.detectPicAttrList.length">
|
||||
</Enclosure>
|
||||
<Enclosure :fileList="enclosureObj.formModel.upPrintList" title="上刊附件"
|
||||
v-if="enclosureObj.formModel.upPrintList && enclosureObj.formModel.upPrintList.length"></Enclosure>
|
||||
<Enclosure :fileList="enclosureObj.formModel.exchangePrintList" title="换刊附件"
|
||||
v-if="enclosureObj.formModel.exchangePrintList && enclosureObj.formModel.exchangePrintList.length">
|
||||
</Enclosure>
|
||||
<Enclosure :fileList="enclosureObj.formModel.nextPrintList" title="下刊附件"
|
||||
v-if="enclosureObj.formModel.nextPrintList && enclosureObj.formModel.nextPrintList.length"></Enclosure>
|
||||
<Enclosure :fileList="enclosureObj.formModel.mediaLinkList" title="媒体链条附件"
|
||||
v-if="enclosureObj.formModel.mediaLinkList && enclosureObj.formModel.mediaLinkList.length"></Enclosure>
|
||||
</template>
|
||||
</el-dialog-copy>
|
||||
<DownloadList ref="downloadList"></DownloadList>
|
||||
|
||||
<ImportList ref="importList" :importData="importData"></ImportList>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { mapMutations } from 'vuex';
|
||||
import { cityDataCache } from "@/utils/cityDataCache";
|
||||
import { getAction, postAction, exportAction, exportAction2 } from '@/api/manage'
|
||||
import moment from 'moment'
|
||||
import { tableColumns, searchItems, tableFormItems, tableFormRules } from './config/procurementContract.js'
|
||||
import ElQueryTable from '@/components/ElTable/ElQueryTable.vue'
|
||||
import Enclosure from '@/components/ElTable/Enclosure.vue'
|
||||
import ElCustomForm from '@/components/ElForm/ElCustomForm.vue'
|
||||
import ElDialogCopy from "@/components/ElForm/ElDialogCopy.vue";
|
||||
import ElCustomCascader from "@/components/ElForm/ElCustomCascader.vue";
|
||||
import ElCustomDateRangePicker from '@/components/ElForm/ElCustomDateRangePicker.vue'
|
||||
import store from '@/store'
|
||||
import ChildRows from '@/components/ElTable/ChildRows.vue'
|
||||
import DownloadList from '@/components/ElTable/DownloadList.vue';
|
||||
import { mapMutations } from 'vuex';
|
||||
import { cityDataCache } from "@/utils/cityDataCache";
|
||||
import { getAction, postAction, exportAction, exportAction2 } from '@/api/manage'
|
||||
import moment from 'moment'
|
||||
import { tableColumns, searchItems, tableFormItems, tableFormRules } from './config/procurementContract.js'
|
||||
import ElQueryTable from '@/components/ElTable/ElQueryTable.vue'
|
||||
import Enclosure from '@/components/ElTable/Enclosure.vue'
|
||||
import ElCustomForm from '@/components/ElForm/ElCustomForm.vue'
|
||||
import ElDialogCopy from "@/components/ElForm/ElDialogCopy.vue";
|
||||
import ElCustomCascader from "@/components/ElForm/ElCustomCascader.vue";
|
||||
import ElCustomDateRangePicker from '@/components/ElForm/ElCustomDateRangePicker.vue'
|
||||
import store from '@/store'
|
||||
import ChildRows from '@/components/ElTable/ChildRows.vue'
|
||||
import DownloadList from '@/components/ElTable/DownloadList.vue';
|
||||
import { getToken } from "@/utils/auth";
|
||||
import ImportList from "@/components/ElTable/ImportList.vue";
|
||||
|
||||
export default {
|
||||
export default {
|
||||
name: 'ProcurementContract',
|
||||
data () {
|
||||
data() {
|
||||
return {
|
||||
importData: [],
|
||||
importUrl: process.env.VUE_APP_BASE_API + '/system/purchase/importData',
|
||||
fileList: [],
|
||||
importHeaders: { Authorization: "Bearer " + getToken() },
|
||||
searchItems,
|
||||
selectedRowKeys: [],
|
||||
showColumnBtn: false,
|
||||
|
|
@ -464,13 +497,14 @@
|
|||
ElCustomCascader,
|
||||
ElCustomDateRangePicker,
|
||||
ChildRows,
|
||||
DownloadList
|
||||
DownloadList,
|
||||
ImportList,
|
||||
},
|
||||
async created() {
|
||||
const rawData = await cityDataCache.getCityData();
|
||||
this.cityList = Object.freeze(rawData); // 或者直接使用
|
||||
},
|
||||
mounted () {
|
||||
mounted() {
|
||||
this.getClientList()
|
||||
this.getMediaDeptListList()
|
||||
this.getMediaTypeList()
|
||||
|
|
@ -480,7 +514,7 @@
|
|||
methods: {
|
||||
...mapMutations(['addDownloadTask', 'updateDownloadTask']),
|
||||
// 隐藏Check
|
||||
initHideCheck () {
|
||||
initHideCheck() {
|
||||
this.showCheckFlag = false
|
||||
},
|
||||
// 获取客户信息列表
|
||||
|
|
@ -503,17 +537,43 @@
|
|||
const res = await getAction(`/contract/first/list?pageNum=1&&pageSize=10000`)
|
||||
this.firstList = res.rows
|
||||
},
|
||||
handleSearch () {
|
||||
handleSearch() {
|
||||
this.$refs.tableRef.pageParams.pageNum = 1
|
||||
this.$refs.tableRef.commitAction('query')
|
||||
this.updateSelectedRowKeys()
|
||||
},
|
||||
|
||||
// 下载导出模板
|
||||
downloadTemplate() {
|
||||
// 文件路径:注意,这个路径是基于 public 目录
|
||||
const fileUrl = '/template/采购合同导入模板.xlsx';
|
||||
|
||||
// 创建一个 <a> 标签来触发下载
|
||||
const link = document.createElement('a');
|
||||
link.href = fileUrl; // 设置文件的 URL
|
||||
link.download = '采购合同导入模板.xlsx'; // 设置下载时的文件名
|
||||
|
||||
// 触发点击事件,开始下载
|
||||
link.click();
|
||||
},
|
||||
handleUploadSuccess(res, file) {
|
||||
if (res.code === 500) {
|
||||
this.importData = res.data
|
||||
this.$refs.importList.drawerVisible = true
|
||||
} else {
|
||||
this.handleSearch()
|
||||
this.$message.success('导入成功')
|
||||
}
|
||||
|
||||
|
||||
console.log("123", res)
|
||||
},
|
||||
// 导出
|
||||
handleExport() {
|
||||
this.showColumnBtn = true
|
||||
this.showCheckFlag = true
|
||||
},
|
||||
updateSelectedRowKeys () {
|
||||
updateSelectedRowKeys() {
|
||||
this.selectedRowKeys = this.selectedRowKeys.flat()
|
||||
this.costSummarizing()
|
||||
},
|
||||
|
|
@ -538,7 +598,7 @@
|
|||
const contractMoneySumEle = this.getSummaryElement('合同总金额', contractMoneySum, '元', '¥')
|
||||
|
||||
// 如果显示了多选按钮
|
||||
if(this.showCheckFlag) {
|
||||
if (this.showCheckFlag) {
|
||||
sums[1] = '合计'
|
||||
sums[5] = totalEle
|
||||
sums[10] = mediaNumEle
|
||||
|
|
@ -580,7 +640,7 @@
|
|||
<div class="media-summary-container">
|
||||
<div class="media-summary-title">{title}</div>
|
||||
<div class="media-summary-value" title={count}>
|
||||
{ prefix? <span class="media-summary-prefix">{prefix}</span>: '' }
|
||||
{prefix ? <span class="media-summary-prefix">{prefix}</span> : ''}
|
||||
<span>{count}</span>
|
||||
{unit}
|
||||
</div>
|
||||
|
|
@ -589,7 +649,7 @@
|
|||
);
|
||||
},
|
||||
|
||||
async costSummarizing () {
|
||||
async costSummarizing() {
|
||||
this.selectedRowKeys = this.selectedRowKeys.filter(element => element !== undefined);
|
||||
const res2 = await postAction(`/system/purchase/costSummarizing`, {
|
||||
...this.$refs.tableRef.queryParams,
|
||||
|
|
@ -600,17 +660,18 @@
|
|||
cityIds: undefined,
|
||||
cityName: undefined,
|
||||
timesRange: undefined,
|
||||
ids: this.selectedRowKeys.length ? this.selectedRowKeys : undefined })
|
||||
ids: this.selectedRowKeys.length ? this.selectedRowKeys : undefined
|
||||
})
|
||||
|
||||
this.summarys = res2
|
||||
},
|
||||
// 添加
|
||||
handleAdd () {
|
||||
handleAdd() {
|
||||
this.handleCancelExport()
|
||||
this.$router.push({ path: `/contract/procurement/AddProcurementContract` })
|
||||
},
|
||||
// 修改
|
||||
handleUpdate (record) {
|
||||
handleUpdate(record) {
|
||||
console.log('%c [ record ]-475', 'font-size:13px; background:pink; color:#bf2c9f;', record)
|
||||
this.$router.push({ path: `/contract/procurement/EditProcurementContract`, query: { id: record.id } })
|
||||
},
|
||||
|
|
@ -624,9 +685,9 @@
|
|||
this.enclosureObj.formModel = record
|
||||
},
|
||||
// 下载全部
|
||||
async downloadAll () {
|
||||
async downloadAll() {
|
||||
// 添加下载任务
|
||||
var list1 = ['contractAccessList', 'upPrintList', 'exchangePrintList', 'nextPrintList', 'mediaLinkList']
|
||||
var list1 = ['contractAccessList', 'detectPicAttrList', 'upPrintList', 'exchangePrintList', 'nextPrintList', 'mediaLinkList']
|
||||
for (const listStr of list1) {
|
||||
if (JSON.stringify(this.enclosureObj.formModel) != '{}' && this.enclosureObj.formModel[listStr] && this.enclosureObj.formModel[listStr].length > 0) {
|
||||
for (const item of this.enclosureObj.formModel[listStr]) {
|
||||
|
|
@ -637,7 +698,7 @@
|
|||
name: `文件名称:${item.realName}`,
|
||||
status: 'pending'
|
||||
});
|
||||
this.downTaskList.push({identifier: item.identifier, name: item.name, realName: item.realName, taskId: taskId, a: listStr})
|
||||
this.downTaskList.push({ identifier: item.identifier, name: item.name, realName: item.realName, taskId: taskId, a: listStr })
|
||||
// 根据参考数组中的顺序进行排序
|
||||
if (this.downTaskList && this.downTaskList.length) {
|
||||
this.downTaskList = this.downTaskList.sort((x, y) => {
|
||||
|
|
@ -665,17 +726,17 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
handleShowDownList () {
|
||||
handleShowDownList() {
|
||||
this.$refs.downloadList.drawerVisible = true
|
||||
},
|
||||
handleDelete (id) {},
|
||||
handleCommand () {},
|
||||
handleDelete(id) { },
|
||||
handleCommand() { },
|
||||
// 查看
|
||||
handleView (record) {
|
||||
handleView(record) {
|
||||
this.$router.push({ path: `/contract/procurement/DetailProcurementContract`, query: { id: record.id } })
|
||||
},
|
||||
// 作废
|
||||
handleNullify (record) {
|
||||
handleNullify(record) {
|
||||
this.$confirm('确定作废吗?', '提示', { type: 'warning' }).then(async (result) => {
|
||||
const res = await getAction(`/system/purchase/updatePurchaseAblish/${record.id}`)
|
||||
if (res.code == 200) {
|
||||
|
|
@ -685,7 +746,7 @@
|
|||
});
|
||||
},
|
||||
// 恢复
|
||||
handleRecovery (record) {
|
||||
handleRecovery(record) {
|
||||
this.$confirm('确定恢复吗?', '提示', { type: 'warning' }).then(async (result) => {
|
||||
const res = await getAction(`/system/purchase/updatePurchaseRenew/${record.id}`)
|
||||
if (res.code == 200) {
|
||||
|
|
@ -699,7 +760,7 @@
|
|||
this.tableConfig.columns = columns
|
||||
},
|
||||
// 确认导出
|
||||
async handleSureExport () {
|
||||
async handleSureExport() {
|
||||
try {
|
||||
var columnArray = []
|
||||
var mediaColumnArray = []
|
||||
|
|
@ -738,7 +799,7 @@
|
|||
calculateTotalRows() {
|
||||
this.$refs.tableRef.commitAction('query')
|
||||
},
|
||||
ocClickShowExtendSearch (flag) {
|
||||
ocClickShowExtendSearch(flag) {
|
||||
this.tableConfig.showExtendSearch = flag
|
||||
for (const i in this.searchItems) {
|
||||
if (this.searchItems[i].isExtend) {
|
||||
|
|
@ -750,16 +811,16 @@
|
|||
this.$refs.tableRef.setMaxHeight()
|
||||
})
|
||||
},
|
||||
showOrCloseActionExtend (flag) {
|
||||
showOrCloseActionExtend(flag) {
|
||||
this.tableConfig.isExtendAction = flag
|
||||
},
|
||||
showExtendAction() {
|
||||
this.showOrCloseActionExtend(true)
|
||||
},
|
||||
hiddenExtendActionColumn () {
|
||||
hiddenExtendActionColumn() {
|
||||
this.tableConfig.isExtendAction = false
|
||||
},
|
||||
toggleExpandAll () {
|
||||
toggleExpandAll() {
|
||||
|
||||
},
|
||||
closeModal() {
|
||||
|
|
@ -768,10 +829,10 @@
|
|||
},
|
||||
activated() {
|
||||
const flag = this.$route.meta.flag
|
||||
if(flag == 'edit') {
|
||||
if (flag == 'edit') {
|
||||
this.$refs.tableRef.commitAction('query')
|
||||
}
|
||||
if(flag == 'add') {
|
||||
if (flag == 'add') {
|
||||
this.$refs.tableRef.commitAction('gofirst')
|
||||
}
|
||||
},
|
||||
|
|
@ -782,34 +843,41 @@
|
|||
},
|
||||
|
||||
beforeRouteLeave(to, from, next) {
|
||||
if(!['AddProcurementContract', 'DetailProcurementContract', 'EditProcurementContract'].includes(to.name)) {
|
||||
if (!['AddProcurementContract', 'DetailProcurementContract', 'EditProcurementContract'].includes(to.name)) {
|
||||
store.dispatch('tagsView/delCachedView', this.$route)
|
||||
}
|
||||
from.meta.flag = undefined
|
||||
next()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.table-column-child {
|
||||
.table-column-child {
|
||||
margin: -16px -16px;
|
||||
|
||||
div {
|
||||
padding: 0 16px;
|
||||
height: 45px;
|
||||
line-height: 45px;
|
||||
text-align: center;
|
||||
border-bottom: 1px solid #e8e8e8;
|
||||
white-space: nowrap; /* 确保文本在一行内显示 */
|
||||
overflow: hidden; /* 超出容器部分隐藏 */
|
||||
text-overflow: ellipsis; /* 超出部分显示为... */
|
||||
white-space: nowrap;
|
||||
/* 确保文本在一行内显示 */
|
||||
overflow: hidden;
|
||||
/* 超出容器部分隐藏 */
|
||||
text-overflow: ellipsis;
|
||||
|
||||
/* 超出部分显示为... */
|
||||
&:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
.table-column-child1 {
|
||||
}
|
||||
|
||||
.table-column-child1 {
|
||||
margin: -16px -16px;
|
||||
|
||||
div {
|
||||
padding: 0 16px;
|
||||
// height: 45px;
|
||||
|
|
@ -818,13 +886,14 @@
|
|||
white-space: normal;
|
||||
word-break: break-word;
|
||||
border-bottom: 1px solid #e8e8e8;
|
||||
|
||||
&:last-child {
|
||||
border-bottom: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.el-query-table {
|
||||
.el-query-table {
|
||||
::v-deep {
|
||||
.media-summary {
|
||||
display: flex;
|
||||
|
|
@ -866,7 +935,7 @@
|
|||
display: flex;
|
||||
flex-direction: column;
|
||||
|
||||
> div {
|
||||
>div {
|
||||
flex: 1;
|
||||
|
||||
&:first-child {
|
||||
|
|
@ -910,5 +979,5 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -579,7 +579,7 @@ export default {
|
|||
data() {
|
||||
return {
|
||||
importData: [],
|
||||
importUrl: process.env.VUE_APP_BASE_API + '/contract/sale/import',
|
||||
importUrl: process.env.VUE_APP_BASE_API + '/contract/sale/importData',
|
||||
fileList: [],
|
||||
importHeaders: { Authorization: "Bearer " + getToken() },
|
||||
searchItems,
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user