From ce670d68c16e8fbad9ecac86f84ec3ad97e367cf Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期五, 19 九月 2025 17:24:37 +0800
Subject: [PATCH] 修改
---
src/views/work/marketingManagement/contractManagement/contractChange/index.vue | 73 ++---
public/contractChangeExample.docx | 0
public/contractReviewExample.docx | 0
src/views/work/marketingManagement/afterSales/components/editDialog.vue | 274 +++++++-------------
src/api/afterSales/index.js | 32 ++
public/afterSalesExample.docx | 0
src/views/work/marketingManagement/afterSales/index.vue | 47 ++-
src/api/contractChange/index.js | 32 ++
src/views/work/marketingManagement/contractManagement/contractChange/components/editDialog.vue | 316 ++++++++++++++----------
9 files changed, 410 insertions(+), 364 deletions(-)
diff --git a/public/afterSalesExample.docx b/public/afterSalesExample.docx
index 1b45996..da6585f 100644
--- a/public/afterSalesExample.docx
+++ b/public/afterSalesExample.docx
Binary files differ
diff --git a/public/contractChangeExample.docx b/public/contractChangeExample.docx
index fa1a2ed..bd91662 100644
--- a/public/contractChangeExample.docx
+++ b/public/contractChangeExample.docx
Binary files differ
diff --git a/public/contractReviewExample.docx b/public/contractReviewExample.docx
new file mode 100644
index 0000000..4893786
--- /dev/null
+++ b/public/contractReviewExample.docx
Binary files differ
diff --git a/src/api/afterSales/index.js b/src/api/afterSales/index.js
new file mode 100644
index 0000000..a8ba30d
--- /dev/null
+++ b/src/api/afterSales/index.js
@@ -0,0 +1,32 @@
+import request from "@/utils/request";
+
+export function getSales(params) {
+ return request({
+ url: '/market/sales/list',
+ method: 'get',
+ params: params
+ })
+}
+
+export function addSales(data) {
+ return request({
+ url: '/market/sales/insert',
+ method: 'post',
+ data: data
+ })
+}
+
+export function editSales(params) {
+ return request({
+ url: `/market/sales/update`,
+ method: 'post',
+ data: params
+ })
+}
+
+export function delSales(data) {
+ return request({
+ url: `/market/sales/deleted?salesId=${data}`,
+ method: 'get'
+ })
+}
diff --git a/src/api/contractChange/index.js b/src/api/contractChange/index.js
new file mode 100644
index 0000000..2def712
--- /dev/null
+++ b/src/api/contractChange/index.js
@@ -0,0 +1,32 @@
+import request from "@/utils/request";
+
+export function getContractReview(params) {
+ return request({
+ url: '/market/review/list',
+ method: 'get',
+ params: params
+ })
+}
+
+export function addContractReview(data) {
+ return request({
+ url: '/market/review/insert',
+ method: 'post',
+ data: data
+ })
+}
+
+export function editContractReview(params) {
+ return request({
+ url: `/market/review/update`,
+ method: 'post',
+ data: params
+ })
+}
+
+export function delContractReview(data) {
+ return request({
+ url: `/market/review/deleted?reviewId=${data}`,
+ method: 'get'
+ })
+}
diff --git a/src/views/work/marketingManagement/afterSales/components/editDialog.vue b/src/views/work/marketingManagement/afterSales/components/editDialog.vue
index 23e695e..7e1b026 100644
--- a/src/views/work/marketingManagement/afterSales/components/editDialog.vue
+++ b/src/views/work/marketingManagement/afterSales/components/editDialog.vue
@@ -25,26 +25,26 @@
</el-row>
<el-row :gutter="24">
<el-col :span="12">
- <el-form-item label="记录名称:" prop="year" >
- <el-input :disabled="title === '查看'" v-model="state.form.name" placeholder="记录名称"></el-input>
+ <el-form-item label="记录名称:" prop="recordName" >
+ <el-input :disabled="title === '查看'" v-model="state.form.recordName" placeholder="记录名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="编号:" prop="year" >
- <el-input :disabled="title === '查看'" v-model="state.form.name" placeholder="编号"></el-input>
+ <el-form-item label="编号:" prop="number" >
+ <el-input :disabled="title === '查看'" v-model="state.form.number" placeholder="编号"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12">
- <el-form-item label="客户名称:" prop="year" >
- <el-input :disabled="title === '查看'" v-model="state.form.name" placeholder="客户单位/姓名"></el-input>
+ <el-form-item label="客户名称:" prop="clientName" >
+ <el-input :disabled="title === '查看'" v-model="state.form.clientName" placeholder="客户名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="服务时间:" prop="year" >
+ <el-form-item label="服务时间:" prop="serverTime" >
<el-date-picker
- v-model="state.form.fictionTime"
+ v-model="state.form.serverTime"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择服务时间"
@@ -55,41 +55,41 @@
</el-row>
<el-row :gutter="24">
<el-col :span="24">
- <el-form-item label="地址:" prop="year" >
- <el-input :disabled="title === '查看'" type="textarea" v-model="state.form.name" placeholder="地址"></el-input>
+ <el-form-item label="地址:" prop="addr" >
+ <el-input :disabled="title === '查看'" type="textarea" v-model="state.form.addr" placeholder="地址"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12">
- <el-form-item label="联系人:" prop="year" >
- <el-input :disabled="title === '查看'" v-model="state.form.name" placeholder="联系人"></el-input>
+ <el-form-item label="联系人:" prop="person" >
+ <el-input :disabled="title === '查看'" v-model="state.form.person" placeholder="联系人"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="联系电话:" prop="year" >
- <el-input :disabled="title === '查看'" v-model="state.form.name" placeholder="联系电话"></el-input>
+ <el-form-item label="联系电话:" prop="phone" >
+ <el-input :disabled="title === '查看'" v-model="state.form.phone" placeholder="联系电话"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="24">
- <el-form-item label="本次服务内容:" prop="year" >
- <el-input :disabled="title === '查看'" type="textarea" :rows="4" v-model="state.form.name" placeholder=""></el-input>
+ <el-form-item label="本次服务内容:" prop="serverMess" >
+ <el-input :disabled="title === '查看'" type="textarea" :rows="4" v-model="state.form.serverMess" placeholder=""></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="24">
- <el-form-item label="对客户的使用建议:" prop="year" >
- <el-input :disabled="title === '查看'" type="textarea" :rows="4" v-model="state.form.name" placeholder=""></el-input>
+ <el-form-item label="对客户的使用建议:" prop="suggest" >
+ <el-input :disabled="title === '查看'" type="textarea" :rows="4" v-model="state.form.suggest" placeholder=""></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24" style="margin-top: 10px">
<el-col :span="12">
- <el-form-item label="服务人员:" prop="year" >
- <el-select clearable v-model="state.form.fictionId" :disabled="state.title =='查看'" filterable placeholder="" style="width: 100%">
+ <el-form-item label="服务人员:" prop="personId" >
+ <el-select clearable v-model="state.form.personId" :disabled="state.title =='查看'" filterable placeholder="" style="width: 100%">
<el-option
v-for="item in state.peopleList"
:key="item.id"
@@ -100,15 +100,15 @@
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="联系电话:" prop="year" >
- <el-input :disabled="title === '查看'" v-model="state.form.name" placeholder="联系电话"></el-input>
+ <el-form-item label="联系电话:" prop="serverPhone" >
+ <el-input :disabled="title === '查看'" v-model="state.form.serverPhone" placeholder="联系电话"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="24">
- <el-form-item label="您对本次服务的评价:" prop="year" >
- <el-radio-group v-model="state.form.type">
+ <el-form-item label="您对本次服务的评价:" prop="serverEvlauate" >
+ <el-radio-group v-model="state.form.serverEvlauate">
<el-radio :label="1">非常满意</el-radio>
<el-radio :label="2">满意</el-radio>
<el-radio :label="3">不满意</el-radio>
@@ -118,15 +118,15 @@
</el-row>
<el-row :gutter="24">
<el-col :span="24">
- <el-form-item label="您对本公司产品质量的意见:" prop="year" >
- <el-input :disabled="title === '查看'" type="textarea" :rows="4" v-model="state.form.name" placeholder=""></el-input>
+ <el-form-item label="您对本公司产品质量的意见:" prop="opinion" >
+ <el-input :disabled="title === '查看'" type="textarea" :rows="4" v-model="state.form.opinion" placeholder=""></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="24">
- <el-form-item label="客户:" prop="year" >
- <el-input :disabled="title === '查看'" v-model="state.form.name" placeholder=""></el-input>
+ <el-form-item label="客户:" prop="custom" >
+ <el-input :disabled="title === '查看'" v-model="state.form.custom" placeholder=""></el-input>
</el-form-item>
</el-col>
</el-row>
@@ -149,6 +149,8 @@
import {getDept, getObject, getObjectPage} from "@/api/qualityObjectives/object";
import {addTable, editTable, getTargetById} from "@/api/qualityObjectives/table";
import {addNeedDiscren, editNeedDiscren} from "@/api/need/need";
+import {addSales, editSales} from "@/api/afterSales";
+import {verifyPhone} from "@/utils/validate";
const dialogVisible = ref(false);
const title = ref("");
@@ -157,83 +159,56 @@
const selectPopperClass = "max-width-select";
const emit = defineEmits(["getList"]);
const dataRef = ref();
+const validatePhone = (rule, value, callback)=>{
+ if(value === ''){
+ callback(new Error('请输入手机号'))
+ }else{
+ if(!verifyPhone(value)){
+ callback(new Error('手机号格式有误'))
+ }else{
+ callback()
+ }
+ }
+}
const state = reactive({
form: {
id: '',
companyId: null,
- deptId: null,
- year: '',
- fictionId: null,
- checkId: null,
- ratifyId: null,
- fictionTime: null,
- frequency: '',
- expectContents:[],
+ recordName: "",
+ number: "",
+ clientName: "",
+ serverTime: "",
+ addr: "",
+ person: "",
+ phone: "",
+ serverMess: "",
+ suggest: "",
+ personId: null,
+ serverPhone: "",
+ serverEvlauate: null,
+ opinion: "",
+ custom: ""
},
rules: {
companyId: [{ required: true, message: '请选择企业', trigger: 'blur' }],
- deptId: [{ required: true, message: '请选择部门', trigger: 'blur' }],
- year: [{ required: true, message: '请选择年份', trigger: 'blur' }],
- fictionId: [{ required: true, message: '请选择编制人', trigger: 'blur' }],
- ratifyId: [{ required: true, message: '请选择批准人', trigger: 'blur' }],
- checkId: [{ required: true, message: '请选择审核人', trigger: 'blur' }],
- fictionTime: [{ required: true, message: '请选择日期', trigger: 'blur' }],
- frequency: [{ required: true, message: '请输入监测频率', trigger: 'blur' }],
- stakeholder: [{required: true, message: "", trigger: "blur"}],
- expectation: [{required: true, message: "", trigger: "blur"}],
- solutions: [{required: true, message: "", trigger: "blur"}],
- expectContents:[{ required: true, message: '请填写相关方期望或要求识别表', trigger: 'blur' }],
+ recordName: [{ required: true, message: '请输入记录名称', trigger: 'blur' }],
+ number: [{ required: true, message: '请输入编号', trigger: 'blur' }],
+ clientName: [{ required: true, message: '请输入客户名称', trigger: 'blur' }],
+ serverTime: [{ required: true, message: '请选择服务时间', trigger: 'blur' }],
+ addr: [{ required: true, message: '请输入地址', trigger: 'blur' }],
+ person: [{ required: true, message: '请输入联系人', trigger: 'blur' }],
+ phone: [{ required: true, validator: validatePhone, trigger: 'blur' }],
+ serverMess: [{ required: true, message: '请输入服务内容', trigger: 'blur' }],
+ suggest: [{ required: true, message: '请输入客户建议', trigger: 'blur' }],
+ personId: [{ required: true, message: '请选择服务人员', trigger: 'blur' }],
+ serverPhone: [{ required: true, validator: validatePhone, trigger: 'blur' }],
+ serverEvlauate: [{ required: true, message: '请选择服务评价', trigger: 'blur' }],
+ opinion: [{ required: true, message: '请输入意见', trigger: 'blur' }],
+ custom: [{ required: true, message: '请输客户入', trigger: 'blur' }],
},
peopleList: [],
isAdmin: false,
companyList: [],
- deptList: [],
- checkMethodList: [],
- methodsList: [
- {
- id: 1,
- name: '面谈'
- },
- {
- id: 2,
- name: '面谈'
- },
- {
- id: 3,
- name: '信函'
- },
- {
- id: 4,
- name: '邮件'
- },
- {
- id: 5,
- name: '其他:'
- },
- ],
- checkTypeList: [],
- typeList: [
- {
- id: 1,
- name: '建议'
- },
- {
- id: 2,
- name: '咨询'
- },
- {
- id: 3,
- name: '反馈'
- },
- {
- id: 4,
- name: '抱怨'
- },
- {
- id: 5,
- name: '其他:'
- },
- ]
})
onMounted(() => {
@@ -257,8 +232,8 @@
state.form.companyId = value.companyId
state.form.companyName = value.companyName
}
+ state.form.serverEvlauate = Number(state.form.serverEvlauate)
}
- await getDeptList()
await getPeopleList()
dialogVisible.value = true;
}
@@ -267,24 +242,24 @@
const valid = await busRef.value.validate();
if(valid){
if(title.value === '新增'){
- // console.log('sta',state.form)
- // const {id, ...data} = JSON.parse(JSON.stringify(state.form))
- // const res = await addNeedDiscren(data)
- // if(res.code === 200){
- // ElMessage({
- // type: 'success',
- // message: '新增成功'
- // });
- // }else{
- // ElMessage.warning(res.message)
- // }
- // emit("getList")
- // busRef.value.clearValidate();
- // reset();
- // dialogVisible.value = false;
+ console.log('sta',state.form)
+ const {id, ...data} = JSON.parse(JSON.stringify(state.form))
+ const res = await addSales(data)
+ if(res.code === 200){
+ ElMessage({
+ type: 'success',
+ message: '新增成功'
+ });
+ }else{
+ ElMessage.warning(res.message)
+ }
+ emit("getList")
+ busRef.value.clearValidate();
+ reset();
+ dialogVisible.value = false;
}else if(title.value === '编辑'){
const {...data} = JSON.parse(JSON.stringify(state.form))
- const res = await editNeedDiscren(data)
+ const res = await editSales(data)
if(res.code === 200){
ElMessage({
type: 'success',
@@ -300,20 +275,7 @@
}
}
}
-const getDeptList = async () => {
- if(state.isAdmin && (state.form.companyId == 0 || state.form.companyId == null)){
- return
- }
- const param = {
- pageNum: 1,
- pageSize: 999,
- companyId: state.form.companyId
- }
- const res = await getDept(param)
- if(res.code === 200){
- state.deptList = res.data
- }
-}
+
const getPeopleList = async ()=> {
if(state.isAdmin && (state.form.companyId == 0 || state.form.companyId == null)){
return
@@ -341,65 +303,33 @@
state.form = {
id: '',
companyId: null,
- deptId: null,
- year: '',
- fictionId: null,
- checkId: null,
- ratifyId: null,
- fictionTime: null,
- frequency: '',
- expectContents:[],
+ recordName: "",
+ number: "",
+ clientName: "",
+ serverTime: "",
+ addr: "",
+ person: "",
+ phone: "",
+ serverMess: "",
+ suggest: "",
+ personId: null,
+ serverPhone: "",
+ serverEvlauate: null,
+ opinion: "",
+ custom: ""
}
state.companyList = []
}
-
-const changeCheck = (type) => {
- switch (type) {
- case 'type': state.form.qualification = state.checkTypeList.join(','); if(!state.checkTypeList.includes(8))state.form.otherQualifi = '' ;break;
- case 'method': state.form.product = state.checkMethodList.join(',');if(!state.checkMethodList.includes(5))state.form.otherProduct = ''; break;
- }
-
-}
-
-
const selectValueCom = (val) => {
- state.form.fictionId = null
- state.form.checkId = null
- state.form.ratifyId = null
- state.form.deptId = null
+ state.form.personId = null
state.companyList.forEach(item => {
if(item.name === val){
state.form.companyId = item.id
}
})
- getDeptList()
getPeopleList()
}
-
-
-const addTableData = () => {
- state.form.expectContents.push({expectContentMesses: [{}]})
-}
-const addObject = (val,itemIndex) => {
- state.form.expectContents.forEach((item,index) => {
- if(index == itemIndex){
- item.expectContentMesses.push({})
- }
- })
-}
-const delObject = (val,itemIndex) => {
- state.form.expectContents.forEach((item,index) => {
- if(index == itemIndex){
- if(item.expectContentMesses.length == 1){
- state.form.expectContents.splice(index,1)
- }else {
- item.expectContentMesses.pop()
- }
- }
- })
-}
-
defineExpose({
openDialog
});
diff --git a/src/views/work/marketingManagement/afterSales/index.vue b/src/views/work/marketingManagement/afterSales/index.vue
index 11edf8a..08b500c 100644
--- a/src/views/work/marketingManagement/afterSales/index.vue
+++ b/src/views/work/marketingManagement/afterSales/index.vue
@@ -36,8 +36,7 @@
<el-table v-loading="loading" :data="dataList" :border="true" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" />
<el-table-column type="index" label="序号" width="80" align="center"></el-table-column>
- <el-table-column label="售后服务记录" prop="name" align="center">
- </el-table-column>
+ <el-table-column label="售后服务记录" prop="recordName" align="center"></el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="160">
<template #default="scope">
<el-button link type="primary" @click="openDialog('review',scope.row)" >查看</el-button>
@@ -71,6 +70,8 @@
import {generateWordDocument} from "@/utils/exportWord";
import {delTable, getTable} from "@/api/qualityObjectives/table";
import {delNeedDiscren, getNeedDiscren} from "@/api/need/need";
+import {delSales, getSales} from "@/api/afterSales";
+import moment from "moment";
const { proxy } = getCurrentInstance();
const loading = ref(false);
const noticeRef = ref();
@@ -109,16 +110,15 @@
}
});
const getList = async () => {
- // loading.value = true;
- // const res = await getNeedDiscren(data.queryParams);
- // if(res.code === 200){
- // dataList.value = res.data.list
- // total.value = res.data.total
- // }else{
- // ElMessage.warning(res.message)
- // }
- // loading.value = false;
- dataList.value = [{}]
+ loading.value = true;
+ const res = await getSales(data.queryParams);
+ if(res.code === 200){
+ dataList.value = res.data.list
+ total.value = res.data.total
+ }else{
+ ElMessage.warning(res.message)
+ }
+ loading.value = false;
}
const searchClick = () => {
@@ -186,9 +186,26 @@
const startGeneration = async () => {
const data = JSON.parse(JSON.stringify(choosedData.value))
data.forEach(item => {
+ const momentDate = moment(item.serverTime, "YYYY-M-D");
+ item.serverTime = momentDate.format("YYYY年MM月DD日")
+ item.typeList = [
+ {
+ id:1,
+ name: '非常满意',
+ checked: item.serverEvlauate == 1
+ },
+ {
+ id:2,
+ name: '满意',
+ checked: item.serverEvlauate == 2
+ },
+ {
+ id:3,
+ name: '不满意',
+ checked: item.serverEvlauate == 3
+ },
+ ]
-
- console.log('xxx',item.tableData)
try {
generateWordDocument(templatePath.value, item, item.companyName + `_售后服务卡.docx`);
} catch (error){
@@ -212,7 +229,7 @@
type: 'warning',
})
.then( async() => {
- const res = await delNeedDiscren(val.id);
+ const res = await delSales(val.id);
if(res.code === 200){
ElMessage({
type: 'success',
diff --git a/src/views/work/marketingManagement/contractManagement/contractChange/components/editDialog.vue b/src/views/work/marketingManagement/contractManagement/contractChange/components/editDialog.vue
index c2b5902..3cc94a0 100644
--- a/src/views/work/marketingManagement/contractManagement/contractChange/components/editDialog.vue
+++ b/src/views/work/marketingManagement/contractManagement/contractChange/components/editDialog.vue
@@ -25,7 +25,7 @@
</el-row>
<el-row :gutter="24">
<el-col :span="24">
- <el-form-item label="评审类型:" prop="year" >
+ <el-form-item label="评审类型:" prop="type" >
<el-select clearable v-model="state.form.type" :disabled="title =='查看'" filterable>
<el-option
v-for="item in state.typeList"
@@ -39,21 +39,22 @@
</el-row>
<el-row :gutter="24">
<el-col :span="8">
- <el-form-item label="合同:" prop="year" >
+ <el-form-item label="合同:" prop="contractId" >
<el-select clearable v-model="state.form.contractId" :disabled="title =='查看'" filterable>
<el-option
v-for="item in state.contractList"
:key="item.id"
- :label="item.name"
+ :label="item.contractName"
:value="item.id"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
- <el-form-item label="记录日期:" prop="year" >
+ <el-form-item label="记录日期:" prop="recordTime" >
<el-date-picker
- v-model="state.form.fictionTime"
+ :disabled="title =='查看'"
+ v-model="state.form.recordTime"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择记录日期"
@@ -61,8 +62,8 @@
</el-form-item>
</el-col>
<el-col :span="8">
- <el-form-item label="记录人:" prop="year">
- <el-select clearable v-model="state.form.personId" :disabled="title =='查看'" filterable style="width: 240px;margin-bottom: 5px">
+ <el-form-item label="记录人:" prop="registrantId">
+ <el-select clearable v-model="state.form.registrantId" :disabled="title =='查看'" filterable style="width: 240px;margin-bottom: 5px">
<el-option
v-for="item in state.peopleList"
:key="item.id"
@@ -80,24 +81,24 @@
</el-row>
<el-row :gutter="24">
<el-col :span="8">
- <el-form-item label="名称:" prop="year" >
- <el-input :disabled="title === '查看'" v-model="state.form.name" placeholder="名称"></el-input>
+ <el-form-item label="名称:" prop="customerName" >
+ <el-input :disabled="title === '查看'" v-model="state.form.customerName" placeholder="名称"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
- <el-form-item label="联系人:" prop="year" >
- <el-input :disabled="title === '查看'" v-model="state.form.name" placeholder="联系人"></el-input>
+ <el-form-item label="联系人:" prop="customerUser" >
+ <el-input :disabled="title === '查看'" v-model="state.form.customerUser" placeholder="联系人"></el-input>
</el-form-item>
</el-col>
<el-col :span="8">
- <el-form-item label="电话:" prop="year" >
- <el-input :disabled="title === '查看'" v-model="state.form.name" placeholder="电话"></el-input>
+ <el-form-item label="电话:" prop="costomerPhone" >
+ <el-input :disabled="title === '查看'" v-model="state.form.costomerPhone" placeholder="电话"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="24">
- <el-form-item label="顾客明示的要求及用途(订货产品信息):" prop="expectContents" >
+ <el-form-item label="顾客明示的要求及用途(订货产品信息):" prop="contractReviewRequires" >
<el-button
:disabled="title === '查看'"
type="primary"
@@ -105,40 +106,40 @@
style="margin-left: 10px;margin-bottom: 10px"
>新增</el-button>
<div style="display: flex;width: 100%;">
- <el-table :data="state.form.expectContents" :border="true" >
+ <el-table :data="state.form.contractReviewRequires" :border="true" >
<el-table-column type="index" label="序号" align="center"></el-table-column>
- <el-table-column label="产品名称" prop="name" align="center" width="150">
+ <el-table-column label="产品名称" prop="name" align="center" >
<template #default="{row,$index}">
- <el-form-item :prop="'expectContents.' + '[' + $index + ']' + 'name'" :rules="state.rules.name">
- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="2" v-model="row.name" placeholder="请输入"></el-input>
+ <el-form-item :prop="'contractReviewRequires.' + '[' + $index + ']' + 'productName'" :rules="state.rules.productName">
+ <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="2" v-model="row.productName" placeholder="请输入"></el-input>
</el-form-item>
</template>
</el-table-column>
- <el-table-column label="规格型号" prop="name" align="center" width="150">
+ <el-table-column label="规格型号" prop="specification" align="center" >
<template #default="{row,$index}">
- <el-form-item :prop="'expectContents.' + '[' + $index + ']' + 'name'" :rules="state.rules.name">
- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="2" v-model="row.name" placeholder="请输入"></el-input>
+ <el-form-item :prop="'contractReviewRequires.' + '[' + $index + ']' + 'specification'" :rules="state.rules.specification">
+ <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="2" v-model="row.specification" placeholder="请输入"></el-input>
</el-form-item>
</template>
</el-table-column>
- <el-table-column label="数量" prop="name" align="center" width="150">
+ <el-table-column label="数量" prop="amount" align="center" >
<template #default="{row,$index}">
- <el-form-item :prop="'expectContents.' + '[' + $index + ']' + 'name'" :rules="state.rules.name">
- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="2" v-model="row.name" placeholder="请输入"></el-input>
+ <el-form-item :prop="'contractReviewRequires.' + '[' + $index + ']' + 'amount'" :rules="state.rules.amount">
+ <el-input style="margin-top: 10px" :disabled="title === '查看'" @input="row.amount = row.amount.replace(/[^0-9]/g,'')" type="textarea" :rows="2" v-model="row.amount" placeholder="请输入"></el-input>
</el-form-item>
</template>
</el-table-column>
- <el-table-column label="单价" prop="name" align="center" width="150">
+ <el-table-column label="单价" prop="price" align="center" >
<template #default="{row,$index}">
- <el-form-item :prop="'expectContents.' + '[' + $index + ']' + 'name'" :rules="state.rules.name">
- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="2" v-model="row.name" placeholder="请输入"></el-input>
+ <el-form-item :prop="'contractReviewRequires.' + '[' + $index + ']' + 'price'" :rules="state.rules.price">
+ <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="2" @input="row.price= row.price.replace(/[^\d.]/g, '') .replace(/\.+/g, '.').replace(/^\./, '0.').replace(/^(\d*\.?\d{0,2}).*/, '$1')" v-model="row.price" placeholder="请输入"></el-input>
</el-form-item>
</template>
</el-table-column>
- <el-table-column label="其他" prop="name" align="center" width="150">
+ <el-table-column label="其他" prop="remark" align="center" >
<template #default="{row,$index}">
- <el-form-item :prop="'expectContents.' + '[' + $index + ']' + 'name'" :rules="state.rules.name">
- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="2" v-model="row.name" placeholder="请输入"></el-input>
+ <el-form-item :prop="'contractReviewRequires.' + '[' + $index + ']' + 'remark'" :rules="state.rules.remark">
+ <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="2" v-model="row.remark" placeholder="请输入"></el-input>
</el-form-item>
</template>
</el-table-column>
@@ -155,9 +156,10 @@
</el-row>
<el-row :gutter="24">
<el-col :span="12">
- <el-form-item label="交货期限:" prop="expectContents" >
+ <el-form-item label="交货期限:" prop="deliveryTime" >
<el-date-picker
- v-model="state.form.fictionTime"
+ :disabled="title =='查看'"
+ v-model="state.form.deliveryTime"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择记录日期"
@@ -165,40 +167,40 @@
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="交付方式:" prop="expectContents" >
- <el-input :disabled="title === '查看'" v-model="state.form.name" placeholder="交付方式"></el-input>
+ <el-form-item label="交付方式:" prop="deliveryType" >
+ <el-input :disabled="title === '查看'" v-model="state.form.deliveryType" placeholder="交付方式"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12">
- <el-form-item label="交货地址:" prop="expectContents" >
- <el-input :disabled="title === '查看'" v-model="state.form.name" placeholder="交货地址"></el-input>
+ <el-form-item label="交货地址:" prop="deliveryAddr" >
+ <el-input :disabled="title === '查看'" v-model="state.form.deliveryAddr" placeholder="交货地址"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="付款方式:" prop="expectContents" >
- <el-input :disabled="title === '查看'" v-model="state.form.name" placeholder="付款方式"></el-input>
+ <el-form-item label="付款方式:" prop="payType" >
+ <el-input :disabled="title === '查看'" v-model="state.form.payType" placeholder="付款方式"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="24">
- <el-form-item label="产品和服务要求及其他要求:(或变更内容):" prop="expectContents" >
- <el-input :disabled="title === '查看'" type="textarea" :rows="4" v-model="state.form.name" placeholder=""></el-input>
+ <el-form-item label="产品和服务要求及其他要求:(或变更内容):" prop="productMess" >
+ <el-input :disabled="title === '查看'" type="textarea" :rows="4" v-model="state.form.productMess" placeholder=""></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="24">
- <el-form-item label="风险识别:" prop="expectContents" >
- <el-input :disabled="title === '查看'" type="textarea" :rows="4" v-model="state.form.name" placeholder=""></el-input>
+ <el-form-item label="风险识别:" prop="riskMess" >
+ <el-input :disabled="title === '查看'" type="textarea" :rows="4" v-model="state.form.riskMess" placeholder=""></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="24">
- <el-form-item :label="state.form.type == 1 ? '评审内容' :'变更内容' " prop="expectContentsX" >
+ <el-form-item :label="state.form.type == 1 ? '评审内容' :state.form.type == 2?'变更内容':'内容' " prop="reviewMesses" >
<el-button
:disabled="title === '查看'"
type="primary"
@@ -206,38 +208,38 @@
style="margin-left: 10px;margin-bottom: 10px"
>新增</el-button>
<div style="display: flex;width: 100%;">
- <el-table :data="state.form.expectContentsX" :border="true" >
+ <el-table :data="state.form.reviewMesses" :border="true" >
<el-table-column type="index" label="序号" align="center"></el-table-column>
- <el-table-column :label="state.form.type == 1 ? '评审部门' :'变更部门' " prop="name" align="center" width="150">
+ <el-table-column :label="state.form.type == 1 ? '评审部门' :'变更部门' " prop="deptName" align="center" >
<template #default="{row,$index}">
- <el-form-item :prop="'expectContentsX.' + '[' + $index + ']' + 'name'" :rules="state.rules.name">
- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="4" v-model="row.name" placeholder="请输入"></el-input>
+ <el-form-item :prop="'reviewMesses.' + '[' + $index + ']' + 'deptName'" :rules="state.rules.deptName">
+ <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="4" v-model="row.deptName" placeholder="请输入"></el-input>
</el-form-item>
</template>
</el-table-column>
- <el-table-column :label="state.form.type == 1 ? '评审内容(含风险)' :'变更内容(含风险)' " prop="need" align="center" width="150">
+ <el-table-column :label="state.form.type == 1 ? '评审内容(含风险)' :'变更内容(含风险)' " prop="reviewMess" align="center" >
<template #default="{row,$index}">
- <div v-for="(i,index) in row.expectContentMessesX" :key="index">
- <el-form-item :prop="'expectContentsX.' + '[' + $index + '].' +'expectContentMessesX.' + '[' + index + ']' + '.need'" :rules="state.rules.need">
- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="4" v-model="i.need" placeholder="请输入"></el-input>
+ <div v-for="(i,index) in row.contractReviewMessbs" :key="index">
+ <el-form-item :prop="'reviewMesses.' + '[' + $index + '].' +'contractReviewMessbs.' + '[' + index + ']' + '.reviewMess'" :rules="state.rules.reviewMess">
+ <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="4" v-model="i.reviewMess" placeholder="请输入"></el-input>
</el-form-item>
</div>
</template>
</el-table-column>
- <el-table-column :label="state.form.type == 1 ? '评审意见' :'变更意见' " prop="need" align="center" width="150">
+ <el-table-column :label="state.form.type == 1 ? '评审意见' :'变更意见' " prop="reviewOpinion" align="center">
<template #default="{row,$index}">
- <div v-for="(i,index) in row.expectContentMessesX" :key="index">
- <el-form-item :prop="'expectContentsX.' + '[' + $index + '].' +'expectContentMessesX.' + '[' + index + ']' + '.need'" :rules="state.rules.need">
- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="4" v-model="i.need" placeholder="请输入"></el-input>
+ <div v-for="(i,index) in row.contractReviewMessbs" :key="index">
+ <el-form-item :prop="'reviewMesses.' + '[' + $index + '].' +'contractReviewMessbs.' + '[' + index + ']' + '.reviewOpinion'" :rules="state.rules.reviewOpinion">
+ <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="4" v-model="i.reviewOpinion" placeholder="请输入"></el-input>
</el-form-item>
</div>
</template>
</el-table-column>
- <el-table-column label="签字" prop="need" align="center" width="150">
+ <el-table-column label="签字" prop="reviewSign" align="center" >
<template #default="{row,$index}">
- <div v-for="(i,index) in row.expectContentMessesX" :key="index">
- <el-form-item :prop="'expectContentsX.' + '[' + $index + '].' +'expectContentMessesX.' + '[' + index + ']' + '.need'" :rules="state.rules.need">
- <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="4" v-model="i.need" placeholder="请输入"></el-input>
+ <div v-for="(i,index) in row.contractReviewMessbs" :key="index">
+ <el-form-item :prop="'reviewMesses.' + '[' + $index + '].' +'contractReviewMessbs.' + '[' + index + ']' + '.reviewSign'" :rules="state.rules.reviewSign">
+ <el-input style="margin-top: 10px" :disabled="title === '查看'" type="textarea" :rows="4" v-model="i.reviewSign" placeholder="请输入"></el-input>
</el-form-item>
</div>
</template>
@@ -256,15 +258,15 @@
</el-row>
<el-row :gutter="24">
<el-col :span="24">
- <el-form-item label="审批意见:" prop="expectContents" >
- <el-input :disabled="title === '查看'" type="textarea" :rows="4" v-model="state.form.name" placeholder=""></el-input>
+ <el-form-item label="审批意见:" prop="suggest" >
+ <el-input :disabled="title === '查看'" type="textarea" :rows="4" v-model="state.form.suggest" placeholder=""></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="12">
- <el-form-item label="法人/委托代理人签字:" prop="expectContents" >
- <el-select clearable v-model="state.form.personId" :disabled="title =='查看'" filterable style="width: 240px;margin-bottom: 5px">
+ <el-form-item label="法人/委托代理人签字:" prop="legalPerson" >
+ <el-select clearable v-model="state.form.legalPerson" :disabled="title =='查看'" filterable style="width: 240px;margin-bottom: 5px">
<el-option
v-for="item in state.peopleList"
:key="item.id"
@@ -275,9 +277,10 @@
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="日期:" prop="expectContents" >
+ <el-form-item label="日期:" prop="legalTime" >
<el-date-picker
- v-model="state.form.fictionTime"
+ :disabled="title =='查看'"
+ v-model="state.form.legalTime"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择记录日期"
@@ -304,6 +307,10 @@
import {getDept, getObject, getObjectPage} from "@/api/qualityObjectives/object";
import {addTable, editTable, getTargetById} from "@/api/qualityObjectives/table";
import {addNeedDiscren, editNeedDiscren} from "@/api/need/need";
+import {addContractReview, editContractReview} from "@/api/contractChange";
+import {getCustomer} from "@/api/customerList";
+import {getLedger} from "@/api/contractLedger";
+import {verifyPhone} from "@/utils/validate";
const dialogVisible = ref(false);
const title = ref("");
@@ -312,33 +319,69 @@
const selectPopperClass = "max-width-select";
const emit = defineEmits(["getList"]);
const dataRef = ref();
+const validatePhone = (rule, value, callback)=>{
+ if(value === ''){
+ callback(new Error('请输入手机号'))
+ }else{
+ if(!verifyPhone(value)){
+ callback(new Error('手机号格式有误'))
+ }else{
+ callback()
+ }
+ }
+}
const state = reactive({
form: {
id: '',
companyId: null,
- deptId: null,
- year: '',
- fictionId: null,
- checkId: null,
- ratifyId: null,
- fictionTime: null,
- frequency: '',
- expectContents:[],
- expectContentsX: []
+ type: null,
+ contractId: null,
+ recordTime: "",
+ registrantId: null,
+ customerName: "",
+ customerUser: "",
+ costomerPhone: "",
+ deliveryTime: "",
+ deliveryAddr: "",
+ deliveryType: "",
+ payType: "",
+ productMess: "",
+ riskMess: "",
+ legalPerson: null,
+ legalTime: "",
+ suggest: '',
+ contractReviewRequires: [],
+ reviewMesses: []
},
rules: {
companyId: [{ required: true, message: '请选择企业', trigger: 'blur' }],
- deptId: [{ required: true, message: '请选择部门', trigger: 'blur' }],
- year: [{ required: true, message: '请选择年份', trigger: 'blur' }],
- fictionId: [{ required: true, message: '请选择编制人', trigger: 'blur' }],
- ratifyId: [{ required: true, message: '请选择批准人', trigger: 'blur' }],
- checkId: [{ required: true, message: '请选择审核人', trigger: 'blur' }],
- fictionTime: [{ required: true, message: '请选择日期', trigger: 'blur' }],
- frequency: [{ required: true, message: '请输入监测频率', trigger: 'blur' }],
- stakeholder: [{required: true, message: "", trigger: "blur"}],
- expectation: [{required: true, message: "", trigger: "blur"}],
- solutions: [{required: true, message: "", trigger: "blur"}],
- expectContents:[{ required: true, message: '请填写相关方期望或要求识别表', trigger: 'blur' }],
+ type: [{ required: true, message: '请选择评审类型', trigger: 'blur' }],
+ contractId: [{ required: true, message: '请选择合同', trigger: 'blur' }],
+ recordTime: [{ required: true, message: '请选择记录日期', trigger: 'blur' }],
+ registrantId: [{ required: true, message: '请选择记录人', trigger: 'blur' }],
+ customerName: [{ required: true, message: '请输入顾客名称', trigger: 'blur' }],
+ customerUser: [{ required: true, message: '请输入联系人', trigger: 'blur' }],
+ costomerPhone: [{ required: true, validator: validatePhone, trigger: 'blur' }],
+ deliveryTime: [{ required: true, message: '请选择交货期限', trigger: 'blur' }],
+ deliveryAddr: [{ required: true, message: '请输入交货地址', trigger: 'blur' }],
+ deliveryType: [{ required: true, message: '请输入交付方式', trigger: 'blur' }],
+ payType: [{ required: true, message: '请输入付款方式', trigger: 'blur' }],
+ productMess: [{ required: true, message: '请输入产品和服务要求内容', trigger: 'blur' }],
+ riskMess: [{ required: true, message: '请输入风险识别', trigger: 'blur' }],
+ legalPerson: [{ required: true, message: '请选择法人', trigger: 'blur' }],
+ legalTime: [{ required: true, message: '请选择日期', trigger: 'blur' }],
+ suggest: [{ required: true, message: '请输入评审意见', trigger: 'blur' }],
+ productName: [{required: true, message: "", trigger: "blur"}],
+ pecification: [{required: true, message: "", trigger: "blur"}],
+ amount: [{required: true, message: "", trigger: "blur"}],
+ price: [{required: true, message: "", trigger: "blur"}],
+ // remark: [{required: true, message: "", trigger: "blur"}],
+ deptName:[{required: true, message: "", trigger: "blur"}],
+ reviewMess:[{required: true, message: "", trigger: "blur"}],
+ reviewOpinion:[{required: true, message: "", trigger: "blur"}],
+ reviewSign:[{required: true, message: "", trigger: "blur"}],
+ contractReviewRequires:[{ required: true, message: '请填写顾客明示的要求及用途表', trigger: 'blur' }],
+ reviewMesses:[{ required: true, message: '请填写评审/变更内容表', trigger: 'blur' }],
},
peopleList: [],
isAdmin: false,
@@ -379,33 +422,36 @@
state.form.companyName = value.companyName
}
}
- await getDeptList()
+ await getContractList()
await getPeopleList()
dialogVisible.value = true;
}
const onSubmit = async () => {
- console.log('state.form',state.form)
+
const valid = await busRef.value.validate();
if(valid){
if(title.value === '新增'){
- // console.log('sta',state.form)
- // const {id, ...data} = JSON.parse(JSON.stringify(state.form))
- // const res = await addNeedDiscren(data)
- // if(res.code === 200){
- // ElMessage({
- // type: 'success',
- // message: '新增成功'
- // });
- // }else{
- // ElMessage.warning(res.message)
- // }
- // emit("getList")
- // busRef.value.clearValidate();
- // reset();
- // dialogVisible.value = false;
+ console.log('sta',state.form)
+ const {id, ...data} = JSON.parse(JSON.stringify(state.form))
+ const res = await addContractReview(data)
+ if(res.code === 200){
+ ElMessage({
+ type: 'success',
+ message: '新增成功'
+ });
+ }else{
+ ElMessage.warning(res.message)
+ }
+ emit("getList")
+ busRef.value.clearValidate();
+ reset();
+ dialogVisible.value = false;
}else if(title.value === '编辑'){
const {...data} = JSON.parse(JSON.stringify(state.form))
- const res = await editNeedDiscren(data)
+ data.reviewMesses.forEach(item => {
+ item.reviewId = state.form.id
+ })
+ const res = await editContractReview(data)
if(res.code === 200){
ElMessage({
type: 'success',
@@ -421,7 +467,7 @@
}
}
}
-const getDeptList = async () => {
+const getContractList = async () => {
if(state.isAdmin && (state.form.companyId == 0 || state.form.companyId == null)){
return
}
@@ -430,9 +476,9 @@
pageSize: 999,
companyId: state.form.companyId
}
- const res = await getDept(param)
+ const res = await getLedger(param)
if(res.code === 200){
- state.deptList = res.data
+ state.contractList = res.data.list
}
}
const getPeopleList = async ()=> {
@@ -462,16 +508,27 @@
state.form = {
id: '',
companyId: null,
- deptId: null,
- year: '',
- fictionId: null,
- checkId: null,
- ratifyId: null,
- fictionTime: null,
- frequency: '',
- expectContents:[],
+ type: null,
+ contractId: null,
+ recordTime: "",
+ registrantId: null,
+ customerName: "",
+ customerUser: "",
+ costomerPhone: "",
+ deliveryTime: "",
+ deliveryAddr: "",
+ deliveryType: "",
+ payType: "",
+ productMess: "",
+ riskMess: "",
+ legalPerson: null,
+ legalTime: "",
+ suggest: '',
+ contractReviewRequires: [],
+ reviewMesses: []
}
state.companyList = []
+ state.contractList = []
}
@@ -479,51 +536,44 @@
const selectValueCom = (val) => {
- state.form.fictionId = null
- state.form.checkId = null
- state.form.ratifyId = null
- state.form.deptId = null
+ state.form.contractId = null
state.companyList.forEach(item => {
if(item.name === val){
state.form.companyId = item.id
}
})
- getDeptList()
+ getContractList()
getPeopleList()
}
const addProductTable = () => {
- state.form.expectContents.push({expectContentMesses: [{}]})
+ state.form.contractReviewRequires.push({})
}
const addContentTable = () => {
- state.form.expectContentsX.push({expectContentMessesX: [{}]})
+ state.form.reviewMesses.push({contractReviewMessbs: [{}]})
}
const addObject = (val,itemIndex) => {
- state.form.expectContentsX.forEach((item,index) => {
+ state.form.reviewMesses.forEach((item,index) => {
if(index == itemIndex){
- item.expectContentMessesX.push({})
+ item.contractReviewMessbs.push({})
}
})
}
const delProduct = (val,itemIndex) => {
- state.form.expectContents.forEach((item,index) => {
+ state.form.contractReviewRequires.forEach((item,index) => {
if(index == itemIndex){
- if(item.expectContentMesses.length == 1){
- state.form.expectContents.splice(index,1)
- }else {
- item.expectContentMesses.pop()
- }
+ state.form.contractReviewRequires.splice(index,1)
}
})
}
const delContent = (val,itemIndex) => {
- state.form.expectContentsX.forEach((item,index) => {
+ state.form.reviewMesses.forEach((item,index) => {
if(index == itemIndex){
- if(item.expectContentMessesX.length == 1){
- state.form.expectContentsX.splice(index,1)
+ if(item.contractReviewMessbs.length == 1){
+ state.form.reviewMesses.splice(index,1)
}else {
- item.expectContentMessesX.pop()
+ item.contractReviewMessbs.pop()
}
}
})
diff --git a/src/views/work/marketingManagement/contractManagement/contractChange/index.vue b/src/views/work/marketingManagement/contractManagement/contractChange/index.vue
index 76f4dc2..cefec20 100644
--- a/src/views/work/marketingManagement/contractManagement/contractChange/index.vue
+++ b/src/views/work/marketingManagement/contractManagement/contractChange/index.vue
@@ -36,12 +36,12 @@
<el-table v-loading="loading" :data="dataList" :border="true" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" />
<el-table-column type="index" label="序号" width="80" align="center" />
- <el-table-column label="合同编号" prop="num" align="center" />
- <el-table-column label="合同名称" prop="num" align="center" />
- <el-table-column label="签订日期" prop="num" align="center" />
- <el-table-column label="评审类型" prop="num" align="center" >
+ <el-table-column label="合同编号" prop="number" align="center" />
+ <el-table-column label="合同名称" prop="contractName" align="center" />
+ <el-table-column label="签订日期" prop="signDate" align="center" />
+ <el-table-column label="评审类型" prop="type" align="center" >
<template #default="scope">
-
+ <span>{{scope.row.type == 1 ?'评审':scope.row.type == 2 ?'变更':''}}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="160">
@@ -77,6 +77,7 @@
import {generateWordDocument} from "@/utils/exportWord";
import {delTable, getTable} from "@/api/qualityObjectives/table";
import {delNeedDiscren, getNeedDiscren} from "@/api/need/need";
+import {delContractReview, getContractReview} from "@/api/contractChange";
const { proxy } = getCurrentInstance();
const loading = ref(false);
const noticeRef = ref();
@@ -115,16 +116,15 @@
}
});
const getList = async () => {
- // loading.value = true;
- // const res = await getNeedDiscren(data.queryParams);
- // if(res.code === 200){
- // dataList.value = res.data.list
- // total.value = res.data.total
- // }else{
- // ElMessage.warning(res.message)
- // }
- // loading.value = false;
- dataList.value = [{}]
+ loading.value = true;
+ const res = await getContractReview(data.queryParams);
+ if(res.code === 200){
+ dataList.value = res.data.list
+ total.value = res.data.total
+ }else{
+ ElMessage.warning(res.message)
+ }
+ loading.value = false;
}
const searchClick = () => {
@@ -188,37 +188,16 @@
startGeneration()
}
}
-const templatePath = ref('/contractChangeExample.docx')
+const templatePath = ref()
const startGeneration = async () => {
const data = JSON.parse(JSON.stringify(choosedData.value))
data.forEach(item => {
- item.expectContents = [
- {
- name: '张三',
- expectContentMesses: [
- {
- need: 'xxx',
- personName: 'x',
- visit:true,
- network: true,
- other: false
-
- },
- {
- need: '22',
- personName: '2',
- visit:false,
- network: false,
- other: true
-
- },
- ]
- }
- ]
- item.tableData = item.expectContents.map((i,index) => {
+ const msg = item.type == 1 ? '评审' : '变更'
+ templatePath.value = item.type == 1 ? '/contractReviewExample.docx' : '/contractChangeExample.docx'
+ item.reviewMesses = item.reviewMesses.map((i,index) => {
return{
...i,
- expectContentMesses: i.expectContentMesses.map((q,qindex) => {
+ contractReviewMessbs: i.contractReviewMessbs.map((q,qindex) => {
return{
...q,
first: qindex == 0,
@@ -227,9 +206,15 @@
})
}
})
- console.log('xxx',item.tableData)
+ item.contractReviewRequires = item.contractReviewRequires.map((item,index) => {
+ return {
+ ...item,
+ num: index+1,
+ remark: item.remark ? item.remark : ' '
+ }
+ })
try {
- generateWordDocument(templatePath.value, item, item.companyName + `_合同评审变更表.docx`);
+ generateWordDocument(templatePath.value, item, item.contractName + `_合同${msg}表.docx`);
} catch (error){
ElMessage({
type: 'warning',
@@ -251,7 +236,7 @@
type: 'warning',
})
.then( async() => {
- const res = await delNeedDiscren(val.id);
+ const res = await delContractReview(val.id);
if(res.code === 200){
ElMessage({
type: 'success',
--
Gitblit v1.9.2