Browse Source

核对字段

feature
mk 1 year ago
parent
commit
f5b6e68283
  1. 3
      package.json
  2. 3
      src/main.js
  3. 101
      src/views/modules/shequzhili/event/cpts/event-detail.vue
  4. 23
      src/views/modules/shequzhili/event/cpts/event-info.vue
  5. 42
      src/views/modules/shequzhili/event/cpts/process-form-assign.vue
  6. 174
      src/views/modules/shequzhili/event/cpts/process-form-complete.vue
  7. 61
      src/views/modules/shequzhili/event/cpts/process-form-contact.vue
  8. 46
      src/views/modules/shequzhili/event/cpts/process-form-process.vue
  9. 28
      src/views/modules/shequzhili/event/cpts/process-form.vue
  10. 2
      src/views/modules/shequzhili/event/eventList.vue

3
package.json

@ -62,7 +62,8 @@
"vue-quill-editor": "^3.0.6", "vue-quill-editor": "^3.0.6",
"vue-router": "^3.0.7", "vue-router": "^3.0.7",
"vuex": "^3.1.1", "vuex": "^3.1.1",
"xlsx": "^0.17.1" "xlsx": "^0.17.1",
"dayjs": "^1.11.7"
}, },
"devDependencies": { "devDependencies": {
"@antv/f2": "^3.8.10-beta.1", "@antv/f2": "^3.8.10-beta.1",

3
src/main.js

@ -48,6 +48,7 @@ import PopTips from "@/components/PopTips/index.vue";
import PopHomeTip from "@/components/PopHomeTip/index.vue"; import PopHomeTip from "@/components/PopHomeTip/index.vue";
import NameSplit from "@/components/NameSplit/index.vue"; import NameSplit from "@/components/NameSplit/index.vue";
import RelationGraph from "relation-graph"; import RelationGraph from "relation-graph";
import dayjs from 'dayjs'
// import AddNodeJw from "@/components/JwTree/addNode.vue"; // import AddNodeJw from "@/components/JwTree/addNode.vue";
//按钮 //按钮
@ -103,7 +104,7 @@ Vue.directive("fixed", {
// 挂载全局 // 挂载全局
Vue.prototype.$http = http; Vue.prototype.$http = http;
Vue.prototype.$sensitive = desensitization; Vue.prototype.$sensitive = desensitization;
Vue.prototype.$dayjs = dayjs
// el-uploader的header配置 // el-uploader的header配置
Vue.prototype.$getElUploadHeaders = () => ({ Vue.prototype.$getElUploadHeaders = () => ({
Authorization: localStorage.getItem("token") || "", Authorization: localStorage.getItem("token") || "",

101
src/views/modules/shequzhili/event/cpts/event-detail.vue

@ -10,73 +10,75 @@
<div class="flex"> <div class="flex">
<div class="item"> <div class="item">
<div class="label">受理员编号</div> <div class="label">受理员编号</div>
<div class="value">123456789</div> <div class="value">{{ info.clerkNumber || '--' }}</div>
<div class="label">办结时限</div> <div class="label">办结时限</div>
<div class="value border-right">2024-20-54</div> <div class="value border-right">{{ info.closeCaseTime || '--' }}</div>
</div> </div>
<div class="item"> <div class="item">
<div class="label">工单编号</div> <div class="label">工单编号</div>
<div class="value">{{eventDetailData.workOrderNum}}</div> <div class="value">{{ info.workOrderNum || '--' }}</div>
<div class="label">紧急程度</div> <div class="label">紧急程度</div>
<div class="value border-right">一版</div> <div class="value border-right">{{ info.exigency || '--' }}</div>
</div> </div>
<div class="item"> <div class="item">
<div class="label">来电类别</div> <div class="label">来电类别</div>
<div class="value">诉求</div> <div class="value">{{ info.callCategory || '--' }}</div>
<div class="label">信息来源</div> <div class="label">信息来源</div>
<div class="value border-right">{{eventDetailData.sourceTypeName}}</div> <div class="value border-right">{{ info.messageSource || '--' }}</div>
</div> </div>
<div class="item"> <div class="item">
<div class="label">是否回复</div> <div class="label">是否回复</div>
<div class="value"></div> <div class="value">{{ info.replayed === 0 ? '不回复' : info.replayed ===
1?'恢复':'--'}}</div>
<div class="label">是否保密</div> <div class="label">是否保密</div>
<div class="value border-right"></div> <div class="value border-right">{{ info.replayed ===
0 ? '不保密' :info.replayed === 1?'保密':'--'}}</div>
</div> </div>
<div class="item"> <div class="item">
<div class="label">联系人</div> <div class="label">联系人</div>
<div class="value">{{eventDetailData.name}}</div> <div class="value">{{ info.name || '--' }}</div>
<div class="label">联系电话</div> <div class="label">联系电话</div>
<div class="value border-right">{{eventDetailData.mobile || '--'}}</div> <div class="value border-right">{{ info.mobile || '--' }}</div>
</div> </div>
<div class="item"> <div class="item">
<div class="label">联系地址</div> <div class="label">联系地址</div>
<div class="value flex-1">{{eventDetailData.address}}</div> <div class="value flex-1">{{ info.address || '--'}}</div>
</div> </div>
<div class="item"> <div class="item">
<div class="label">回复备注</div> <div class="label">回复备注</div>
<div class="value flex-1"></div> <div class="value flex-1">{{ info.replayRemark || '--'}}</div>
</div> </div>
<div class="item"> <div class="item">
<div class="label">问题分类</div> <div class="label">问题分类</div>
<div class="value flex-1"></div> <div class="value flex-1">{{ info.categoryAllName ||'--'}}</div>
</div> </div>
<div class="item"> <div class="item">
<div class="label">问题描述</div> <div class="label">问题描述</div>
<div class="value flex-1"> <div class="value flex-1">
{{eventDetailData.eventContent}} {{ info.eventContent || '--'}}
</div> </div>
</div> </div>
<div class="item"> <div class="item">
<div class="label">指派部门</div> <div class="label">指派部门</div>
<div class="value flex-1"></div> <div class="value flex-1">{{ info.deptName || '--'}}</div>
</div> </div>
<div class="item"> <div class="item">
<div class="label">转办意见</div> <div class="label">转办意见</div>
<div class="value flex-1">{{ demandForm.content }}</div> <div class="value flex-1">{{ info.transferAdvice || '--'}}</div>
</div> </div>
<div class="item"> <div class="item">
<div class="label">办理要求</div> <div class="label">办理要求</div>
<div class="value flex-1">{{ demandForm.banliyaoqiu }}</div> <div class="value flex-1">{{ info.handlingReq || '--'}}</div>
</div> </div>
<div class="item"> <div class="item">
<div class="label">联系当事人时限</div> <div class="label">联系当事人时限</div>
<div class="value ">{{eventDetailData.contactTime}}</div> <div class="value ">{{ info.contactTime || '--'}}</div>
<div class="label">(部门)办结时限</div> <div class="label">(部门)办结时限</div>
<div class="value border-right">{{eventDetailData.timeLimit}}</div> <div class="value border-right">{{ info.timeLimit || '--'}}</div>
</div> </div>
<div class="item"> <div class="item">
<div class="label">办理结果</div> <div class="label">办理结果</div>
<div class="value flex-1"></div> <div class="value flex-1">--</div>
</div> </div>
</div> </div>
</div> </div>
@ -97,22 +99,6 @@ function iniData() {
info: {}, info: {},
eventDetailCopy: {}, eventDetailCopy: {},
showType: "", showType: "",
projectId: "",
demandForm: {
gridId: "",
categoryCode: "",
parentCode: "",
content: "",
reportType: "",
reportUserName: "",
reportUserMobile: "",
reportTime: "",
wantServiceTime: "",
demandUserId: "",
demandUserName: "",
demandUserMobile: "",
banliyaoqiu: ""
},
satisfyLevel: "", satisfyLevel: "",
// //
showSatisfy: false, showSatisfy: false,
@ -174,9 +160,9 @@ export default {
} }
this.$EventBus.$on('handelInputEventContent', ({ type, value }) => { this.$EventBus.$on('handelInputEventContent', ({ type, value }) => {
if (type === 'opinion') { if (type === 'opinion') {
this.demandForm.content = value this.info.transferAdvice = value;
} else if (type === 'banliyaoqiu') { } else if (type === 'handlingReq') {
this.demandForm.banliyaoqiu = value this.info.handlingReq = value;
} }
}) })
}, },
@ -193,44 +179,7 @@ export default {
handleCloseEvent() { handleCloseEvent() {
this.$emit("handleClose"); this.$emit("handleClose");
}, },
async getApiData() { }, async getApiData() { },
//
handleSatisfy() {
this.showSatisfy = true;
},
clickSatisfy(type) {
if (this.info.satisfactionName) {
return false;
}
this.satisfyLevel = type;
},
async handleComfirmSatisfy() {
if (!this.satisfyLevel) {
this.$message.info("请选择评价级别");
}
const url = "/governance/icEvent/comment";
let params = {
icEventId: this.eventId,
satisfaction: this.satisfyLevel,
};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.$message.success("评价成功");
this.info.satisfactionName =
this.satisfyLevel == "bad"
? "不满意"
: this.satisfyLevel == "good"
? "满意"
: "非常满意";
this.showSatisfy = false;
} else {
this.$message.error(msg);
}
},
}, },
}; };
</script> </script>

23
src/views/modules/shequzhili/event/cpts/event-info.vue

@ -320,7 +320,7 @@ export default {
async handleComfirm() { async handleComfirm() {
this.startLoading(); this.startLoading();
if (this.pageTypeCopy === "dispose" ||this.pageTypeCopy === "assign" ) { if (this.pageTypeCopy === "dispose" ||this.pageTypeCopy === "assign" || this.pageTypeCopy === "check" ) {
await this.handelDispose(); await this.handelDispose();
} }
this.endLoading(); this.endLoading();
@ -338,16 +338,17 @@ export default {
} }
}, },
async submitDispose(url, params) { async submitDispose(url, params) {
const { data, code, msg } = await requestPost(url, { console.log(params);
...params, // const { data, code, msg } = await requestPost(url, {
}); // ...params,
if (code === 0) { // });
this.$message.success("操作成功!"); // if (code === 0) {
// this.$message.success("");
this.$emit("handleOk");
} else { // this.$emit("handleOk");
this.$message.error(msg); // } else {
} // this.$message.error(msg);
// }
}, },
handleClose() { handleClose() {

42
src/views/modules/shequzhili/event/cpts/process-form-assign.vue

@ -14,10 +14,10 @@
<el-cascader class="cell-width-1" ref="agencyIdArray" v-model.trim="agencyIdArray" :options="orgOptions" <el-cascader class="cell-width-1" ref="agencyIdArray" v-model.trim="agencyIdArray" :options="orgOptions"
:props="orgOptionProps" :show-all-levels="false" @change="handleChangeAgency"></el-cascader> :props="orgOptionProps" :show-all-levels="false" @change="handleChangeAgency"></el-cascader>
</el-form-item> </el-form-item>
<el-form-item label="派件时间" prop="paijianshijian" label-width="150px" <el-form-item label="派件时间" prop="createdTime" label-width="150px"
:class="{ 'form-item': source === 'visiual' }" style="display: block"> :class="{ 'form-item': source === 'visiual' }" style="display: block">
<div :class="{ 'visiual-form': source === 'visiual' }"> <div :class="{ 'visiual-form': source === 'visiual' }">
<el-date-picker v-model.trim="formData.paijianshijian" class="cell-width-1" type="datetime" <el-date-picker v-model.trim="formData.createdTime" class="cell-width-1" type="datetime"
placeholder="办结时限" value-format="yyyy-MM-dd HH:mm:ss"> placeholder="办结时限" value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker> </el-date-picker>
</div> </div>
@ -38,20 +38,20 @@
</el-date-picker> </el-date-picker>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="转办意见" prop="content" label-width="150px" :class="{ 'form-item': source === 'visiual' }" <el-form-item label="转办意见" prop="transferAdvice" label-width="150px" :class="{ 'form-item': source === 'visiual' }"
style="display: block"> style="display: block">
<div :class="{ 'visiual-form': source === 'visiual' }"> <div :class="{ 'visiual-form': source === 'visiual' }">
<el-input class="cell-width-area" type="textarea" maxlength="500" show-word-limit :rows="5" <el-input class="cell-width-area" type="textarea" maxlength="500" show-word-limit :rows="5"
placeholder="请输入转办意见,不超过500字" v-model.trim="formData.content" placeholder="请输入转办意见,不超过500字" v-model.trim="formData.transferAdvice"
@input="handelInputContent"></el-input> @input="handelInputContent"></el-input>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="办理要求" prop="banliyaoqiu" label-width="150px" <el-form-item label="办理要求" prop="handlingReq" label-width="150px"
:class="{ 'form-item': source === 'visiual' }" style="display: block"> :class="{ 'form-item': source === 'visiual' }" style="display: block">
<div :class="{ 'visiual-form': source === 'visiual' }"> <div :class="{ 'visiual-form': source === 'visiual' }">
<el-input class="cell-width-area" type="textarea" maxlength="500" show-word-limit :rows="5" <el-input class="cell-width-area" type="textarea" maxlength="500" show-word-limit :rows="5"
placeholder="请输入办理要求,不超过500字" v-model.trim="formData.banliyaoqiu" placeholder="请输入办理要求,不超过500字" v-model.trim="formData.handlingReq"
@input="handelInputBanliyaoqiu"></el-input> @input="handelInputHandlingReq"></el-input>
</div> </div>
</el-form-item> </el-form-item>
@ -69,13 +69,13 @@ export default {
customerId: localStorage.getItem("customerId"), customerId: localStorage.getItem("customerId"),
formData: { formData: {
operationType: "5", //[0: 5 6] operationType: "5", //[0: 5 6]
content: "",// handlingReq:'',//
banliyaoqiu: "",// transferAdvice:'',//
paijianshijian: new Date(), createdTime: '',
contactTime: "", contactTime:'',
timeLimit: "",// timeLimit:'',//
deptId: "", // deptId:'', //
deptName: "", deptName:'',
}, },
orgOptions: [], orgOptions: [],
orgOptionProps: { orgOptionProps: {
@ -141,7 +141,7 @@ export default {
}, },
}, },
created() { created() {
this.formData.createdTime = this.$dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss');
}, },
async mounted() { async mounted() {
const { user } = this.$store.state; const { user } = this.$store.state;
@ -149,24 +149,18 @@ export default {
this.getOrgTreeList(); this.getOrgTreeList();
if (this.eventId) { if (this.eventId) {
this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData)); this.eventDetailCopy = JSON.parse(JSON.stringify(this.eventDetailData));
// eventDetailCopy
if (this.eventDetailCopy.parentCategoryId && this.eventDetailCopy.categoryId) {
this.selCategoryArray = this.eventDetailCopy.parentCategoryId.split(",");
this.selCategoryArray.push(this.eventDetailCopy.categoryId);
this.handleChangeCate(this.selCategoryArray)
}
} }
}, },
methods: { methods: {
handelInputContent(val) { handelInputContent(val) {
this.$EventBus.$emit('handelInputEventContent', { type: 'opinion', value: val }) this.$EventBus.$emit('handelInputEventContent', { type: 'opinion', value: val })
}, },
handelInputBanliyaoqiu(val) { handelInputHandlingReq(val) {
this.$EventBus.$emit('handelInputEventContent', { type: 'banliyaoqiu', value: val }) this.$EventBus.$emit('handelInputEventContent', { type: 'handlingReq', value: val })
}, },
// //
async getOrgTreeList() { async getOrgTreeList() {
const url = "/gov/org/customeragency/agencygridtree" const url = "/gov/org/customeragency/agencyGridDepttree"
let params = { let params = {
agencyId: this.agencyId, agencyId: this.agencyId,
purpose: "query" purpose: "query"

174
src/views/modules/shequzhili/event/cpts/process-form-complete.vue

@ -1,44 +1,49 @@
<template> <template>
<div class=""> <div class="">
<el-form ref="ref_form" :inline="false" :model="formData" :rules="dataRule" label-width="118px"> <el-form ref="ref_form" :inline="false" :model="formData" :rules="dataRule" label-width="118px">
<el-form-item label="办理情况" label-width="118px" :class="{ 'form-item': source === 'visiual' }" prop="content"> <el-form-item label="办理情况" label-width="118px" :class="{ 'form-item': source === 'visiual' }" prop="handlingReq">
<div :class="{ 'visiual-form': source === 'visiual' }"> <div :class="{ 'visiual-form': source === 'visiual' }">
<el-input type="textarea" class="cell-width-area" :rows="2" placeholder="请输入办理情况" <el-input type="textarea" class="cell-width-area" :rows="2" placeholder="请输入办理情况"
v-model.trim="formData.content"> v-model.trim="formData.handlingReq" :disabled="pageType === 'check'">
</el-input> </el-input>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="上传录音" label-width="118px" :class="{ 'form-item': source === 'visiual' }" > <el-form-item label="上传录音" label-width="118px" :class="{ 'form-item': source === 'visiual' }">
<el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUlr" <el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUlr" accept=".mp3"
:data="{ customerId: customerId }" :show-file-list="true" :on-success="handleAudioSuccess" :data="{ customerId: customerId }" :show-file-list="true" :on-success="handleAudioSuccess"
:on-remove="handleAudioRemove" :before-upload="beforeAudioUpload"> :on-remove="handleAudioRemove" :before-upload="beforeAudioUpload">
<i v-if="source === 'manage'" :class="['el-icon-plus']"></i> <el-button type="primary" :disabled="pageType === 'check'">上传音频<i
<img v-else style="width: 27px; height: 27px" src="@/assets/img/file-add.png" /> class="el-icon-upload el-icon--right"></i></el-button>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item label="上传图片" label-width="118px" :class="{ 'form-item': source === 'visiual' }" prop="files"> <el-form-item label="上传图片" label-width="118px" :class="{ 'form-item': source === 'visiual' }" prop="files">
<el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUlr" <el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUlr"
accept=".jpg,.png,.jpeg"
:data="{ customerId: customerId }" :show-file-list="true" :on-success="handleImgSuccess" :data="{ customerId: customerId }" :show-file-list="true" :on-success="handleImgSuccess"
:on-remove="handleImgRemove" :before-upload="beforeImgUpload"> :on-remove="handleImgRemove" :before-upload="beforeImgUpload">
<i v-if="source === 'manage'" :class="['el-icon-plus']"></i> <el-button type="primary" :disabled="pageType === 'check'">上传图片<i
<img v-else style="width: 27px; height: 27px" src="@/assets/img/file-add.png" /> class="el-icon-upload el-icon--right"></i></el-button>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-divider></el-divider> <el-divider></el-divider>
<div class="flex"> <div class="flex">
<div class="item"> <div class="item">
<el-form-item label="答复人" label-width="118px" :class="{ 'form-item': source === 'visiual' }" prop="respondent"> <el-form-item label="答复人" label-width="118px" :class="{ 'form-item': source === 'visiual' }"
prop="respondent">
<div :class="{ 'visiual-form': source === 'visiual' }"> <div :class="{ 'visiual-form': source === 'visiual' }">
<el-input type="input" class="item_width_4" :rows="2" placeholder="请输入" v-model.trim="formData.respondent"> <el-input type="input" class="item_width_4" :rows="2" placeholder="请输入"
v-model.trim="formData.respondent">
</el-input> </el-input>
</div> </div>
</el-form-item> </el-form-item>
</div> </div>
<div class="item"> <div class="item">
<el-form-item label="答复电话" label-width="118px" :class="{ 'form-item': source === 'visiual' }" prop="respondentPhone"> <el-form-item label="答复电话" label-width="118px" :class="{ 'form-item': source === 'visiual' }"
prop="respondentPhone">
<div :class="{ 'visiual-form': source === 'visiual' }"> <div :class="{ 'visiual-form': source === 'visiual' }">
<el-input type="input" class="item_width_4" :rows="2" placeholder="请输入" v-model.trim="formData.respondentPhone"> <el-input type="input" class="item_width_4" :rows="2" placeholder="请输入"
v-model.trim="formData.respondentPhone">
</el-input> </el-input>
</div> </div>
</el-form-item> </el-form-item>
@ -52,9 +57,11 @@
</el-form-item> </el-form-item>
</div> </div>
<div class="item"> <div class="item">
<el-form-item label="联系电话" label-width="118px" :class="{ 'form-item': source === 'visiual' }" prop="contactsPhone"> <el-form-item label="联系电话" label-width="118px" :class="{ 'form-item': source === 'visiual' }"
prop="contactsPhone">
<div :class="{ 'visiual-form': source === 'visiual' }"> <div :class="{ 'visiual-form': source === 'visiual' }">
<el-input type="input" class="item_width_4" :rows="2" placeholder="请输入" v-model.trim="formData.contactsPhone"> <el-input type="input" class="item_width_4" :rows="2" placeholder="请输入"
v-model.trim="formData.contactsPhone">
</el-input> </el-input>
</div> </div>
</el-form-item> </el-form-item>
@ -62,19 +69,20 @@
<div class="item"> <div class="item">
<el-form-item label-width="118px" label="填报不合规诉求"> <el-form-item label-width="118px" label="填报不合规诉求">
<el-select v-model.trim="formData.irregularity" clearable class="item_width_4"> <el-select v-model.trim="formData.irregularity" clearable class="item_width_4">
<el-option v-for="item in binaryOptionListReverse" :key="item.value" :label="item.label" :value="item.value"> <el-option v-for="item in binaryOptionListReverse" :key="item.value" :label="item.label"
:value="item.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </div>
<div class="item" v-if="formData.irregularity === 0"> <!-- <div class="item" v-if="formData.irregularity === 0">
<el-form-item label-width="118px" label="不合规诉求类型"> <el-form-item label-width="118px" label="不合规诉求类型">
<el-select v-model.trim="formData.irregularity" clearable class="item_width_4"> <el-select v-model.trim="formData.irregularity" clearable class="item_width_4">
<el-option v-for="item in nonComplianceType" :key="item.value" :label="item.label" :value="item.value"> <el-option v-for="item in nonComplianceType" :key="item.value" :label="item.label" :value="item.value">
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </div> -->
<div class="item"> <div class="item">
<el-form-item label="办理真实度" label-width="118px" :class="{ 'form-item': source === 'visiual' }" <el-form-item label="办理真实度" label-width="118px" :class="{ 'form-item': source === 'visiual' }"
prop="verified"> prop="verified">
@ -101,8 +109,8 @@
<el-form-item label="回访时间" prop="returnTime" label-width="118px" <el-form-item label="回访时间" prop="returnTime" label-width="118px"
:class="{ 'form-item': source === 'visiual' }" style="display: block"> :class="{ 'form-item': source === 'visiual' }" style="display: block">
<div :class="{ 'visiual-form': source === 'visiual' }"> <div :class="{ 'visiual-form': source === 'visiual' }">
<el-date-picker v-model.trim="formData.returnTime" class="cell-width-1" type="datetime" <el-date-picker v-model.trim="formData.returnTime" class="cell-width-1" type="datetime" placeholder="请选择"
placeholder="请选择" value-format="yyyy-MM-dd HH:mm:ss"> value-format="yyyy-MM-dd HH:mm:ss">
</el-date-picker> </el-date-picker>
</div> </div>
</el-form-item> </el-form-item>
@ -136,8 +144,7 @@
</el-form-item> </el-form-item>
</div> </div>
<div class="item"> <div class="item">
<el-form-item label="服务过程满意度" label-width="118px" :class="{ 'form-item': source === 'visiual' }" <el-form-item label="服务过程满意度" label-width="118px" :class="{ 'form-item': source === 'visiual' }" prop="nnn">
prop="nnn">
<div :class="{ 'visiual-form': source === 'visiual' }"> <div :class="{ 'visiual-form': source === 'visiual' }">
<el-select v-model.trim="formData.nnn" clearable class="item_width_4"> <el-select v-model.trim="formData.nnn" clearable class="item_width_4">
<el-option v-for="item in satisfactionType" :key="item.value" :label="item.label" :value="item.value" <el-option v-for="item in satisfactionType" :key="item.value" :label="item.label" :value="item.value"
@ -148,7 +155,8 @@
</el-form-item> </el-form-item>
</div> </div>
<div class="item"> <div class="item">
<el-form-item label="不满意原因" label-width="118px" :class="{ 'form-item': source === 'visiual' }" prop="dissatisfyReason"> <el-form-item label="不满意原因" label-width="118px" :class="{ 'form-item': source === 'visiual' }"
prop="dissatisfyReason">
<div :class="{ 'visiual-form': source === 'visiual' }"> <div :class="{ 'visiual-form': source === 'visiual' }">
<el-select v-model.trim="formData.dissatisfyReason" clearable class="item_width_4"> <el-select v-model.trim="formData.dissatisfyReason" clearable class="item_width_4">
<el-option v-for="item in noSatisfactionType" :key="item.value" :label="item.label" :value="item.value"> <el-option v-for="item in noSatisfactionType" :key="item.value" :label="item.label" :value="item.value">
@ -170,44 +178,46 @@
</div> </div>
</div> </div>
<el-divider></el-divider> <el-divider></el-divider>
<div :class="['process-title', { 'process-title-vis': source === 'visiual' },]" v-if="pageType === 'check'"> <section v-if="pageType === 'check'">
<img src="../../../../../assets/images/index/title-icon-chuli.png" width="30px" height="30px" alt=""> <div :class="['process-title', { 'process-title-vis': source === 'visiual' },]">
审核 <img src="../../../../../assets/images/index/title-icon-chuli.png" width="30px" height="30px" alt="">
</div> 审核
<div class="flex">
<div class="item">
<el-form-item label="审核结果" label-width="118px" :class="{ 'form-item': source === 'visiual' }" prop="examine">
<div :class="{ 'visiual-form': source === 'visiual' }">
<el-select v-model.trim="formData.examine" clearable class="item_width_4">
<el-option v-for="item in examineList" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</div>
</el-form-item>
</div>
<div class="item">
<el-form-item label="上传图片" label-width="118px" :class="{ 'form-item': source === 'visiual' }"
prop="files">
<el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUlr"
:data="{ customerId: customerId }" :show-file-list="true" :on-success="handleImgSuccess"
:on-remove="handleImgRemove" :before-upload="beforeImgUpload">
<i v-if="source === 'manage'" :class="['el-icon-plus']"></i>
<img v-else style="width: 27px; height: 27px" src="@/assets/img/file-add.png" />
</el-upload>
</el-form-item>
</div> </div>
<div :span="24"> <div class="flex">
<el-form-item label="审核结果说明" label-width="118px" :class="{ 'form-item': source === 'visiual' }" <div class="item">
prop="examineContent"> <el-form-item label="审核结果" label-width="118px" :class="{ 'form-item': source === 'visiual' }"
<div :class="{ 'visiual-form': source === 'visiual' }"> prop="examine">
<el-input type="textarea" class="cell-width-area" :rows="2" placeholder="请输入审核结果说明" <div :class="{ 'visiual-form': source === 'visiual' }">
v-model.trim="formData.examineContent">
</el-input> <el-select v-model.trim="formData.examine" clearable class="item_width_4">
</div> <el-option v-for="item in examineList" :key="item.value" :label="item.label" :value="item.value">
</el-form-item> </el-option>
</el-select>
</div>
</el-form-item>
</div>
<div class="item">
<el-form-item label="上传图片" label-width="118px" :class="{ 'form-item': source === 'visiual' }" prop="files">
<el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUlr"
:data="{ customerId: customerId }" :show-file-list="true" :on-success="handleImgSuccess"
:on-remove="handleImgRemove" :before-upload="beforeImgUpload">
<i v-if="source === 'manage'" :class="['el-icon-plus']"></i>
<img v-else style="width: 27px; height: 27px" src="@/assets/img/file-add.png" />
</el-upload>
</el-form-item>
</div>
<div :span="24">
<el-form-item label="审核结果说明" label-width="118px" :class="{ 'form-item': source === 'visiual' }"
prop="examineContent">
<div :class="{ 'visiual-form': source === 'visiual' }">
<el-input type="textarea" class="cell-width-area" :rows="2" placeholder="请输入审核结果说明"
v-model.trim="formData.examineContent">
</el-input>
</div>
</el-form-item>
</div>
</div> </div>
</div> </section>
</el-form> </el-form>
</div> </div>
</template> </template>
@ -215,31 +225,31 @@
<script> <script>
import { Loading } from "element-ui"; // Loading import { Loading } from "element-ui"; // Loading
import { requestPost } from "@/js/dai/request"; import { requestPost } from "@/js/dai/request";
import { binaryOptionList, nonComplianceType, satisfactionType, noSatisfactionType,binaryOptionListReverse } from "@/js/columns/constants"; import { binaryOptionList, nonComplianceType, satisfactionType, noSatisfactionType, binaryOptionListReverse } from "@/js/columns/constants";
let loading; // let loading; //
function iniFmData() { function iniFmData() {
return { return {
operationType: "11", //[11,10,9] operationType: "11", //[11,10,9]
eventId: '', eventId: '',
content:'',// handlingReq: '',//
files: [],// files: [],//
respondent:'',// respondent: '',//
respondentPhone:'',// respondentPhone: '',//
contacts:'',// contacts: '',//
contactsPhone:'',// contactsPhone: '',//
irregularity:'',// 0 1 irregularity: '',// 0 1
// //
verified: '', // 0 1 verified: '', // 0 1
returnVisitor: '',//访 returnVisitor: '',//访
returnTime: '',//访 returnTime: '',//访
loseContact: '',//0 1 loseContact: '',//0 1
putThrough:'',// 0 1 putThrough: '',// 0 1
mmm:'',//访0 1 mmm: '',//访0 1
nnn: '',//0 1 2 nnn: '',//0 1 2
dissatisfyReason: '',// dissatisfyReason: '',//
visitComments: '',//访 visitComments: '',//访
examine:null,// examine: null,//
examineContent:''// examineContent: ''//
}; };
} }
export default { export default {
@ -254,7 +264,7 @@ export default {
assistanceUnitList: [], // assistanceUnitList: [], //
formData: iniFmData(), formData: iniFmData(),
okflag: false, okflag: false,
uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadqrcodeV2", uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadvariedfile",
eventDetailCopy: {}, eventDetailCopy: {},
selectList: [{ label: '属实', value: 0 }, { label: '不属实', value: 1 }], selectList: [{ label: '属实', value: 0 }, { label: '不属实', value: 1 }],
contactList: [{ label: '已联系', value: 0 }, { label: '未联系', value: 1 }], contactList: [{ label: '已联系', value: 0 }, { label: '未联系', value: 1 }],
@ -262,7 +272,7 @@ export default {
coordinateList: [{ label: '配合', value: 0 }, { label: '未配合', value: 1 }], coordinateList: [{ label: '配合', value: 0 }, { label: '未配合', value: 1 }],
examineList: [{ label: '合格', value: 0 }, { label: '不合格', value: 1 }], examineList: [{ label: '合格', value: 0 }, { label: '不合格', value: 1 }],
dataRule: { dataRule: {
content: [ handlingReq: [
{ required: true, message: "办理情况不能为空", trigger: "blur" }, { required: true, message: "办理情况不能为空", trigger: "blur" },
], ],
verified: [ verified: [
@ -289,7 +299,9 @@ export default {
nnn: [ nnn: [
{ required: true, message: "请选择服务过程满意度", trigger: "blur" }, { required: true, message: "请选择服务过程满意度", trigger: "blur" },
], ],
} },
imgList: [],
audioList: []
}; };
}, },
components: {}, components: {},
@ -345,7 +357,7 @@ export default {
console.log("res.data.url", file); console.log("res.data.url", file);
if (res.code === 0 && res.msg === "success") { if (res.code === 0 && res.msg === "success") {
console.log("res.data.url", res.data.url); console.log("res.data.url", res.data.url);
this.formData.yinpin.push({ this.audioList.push({
format: file.name.split(".").pop(), format: file.name.split(".").pop(),
name: file.name, name: file.name,
size: file.size, size: file.size,
@ -359,11 +371,11 @@ export default {
}, },
handleAudioRemove(file) { handleAudioRemove(file) {
let index = this.formData.yinpin.findIndex( let index = this.audioList.findIndex(
(item) => item.url == file.response.data.url (item) => item.url == file.response.data.url
); );
this.formData.files.splice(index, 1); this.audioList.splice(index, 1);
console.log(this.formData.files); console.log(this.audioList);
}, },
beforeImgUpload(file) { beforeImgUpload(file) {
const isLt1M = file.size / 1024 / 1024 < 10; const isLt1M = file.size / 1024 / 1024 < 10;
@ -377,7 +389,7 @@ export default {
console.log("res.data.url", file); console.log("res.data.url", file);
if (res.code === 0 && res.msg === "success") { if (res.code === 0 && res.msg === "success") {
console.log("res.data.url", res.data.url); console.log("res.data.url", res.data.url);
this.formData.files.push({ this.imgList.push({
format: file.name.split(".").pop(), format: file.name.split(".").pop(),
name: file.name, name: file.name,
size: file.size, size: file.size,
@ -391,11 +403,11 @@ export default {
}, },
handleImgRemove(file) { handleImgRemove(file) {
let index = this.formData.files.findIndex( let index = this.imgList.findIndex(
(item) => item.url == file.response.data.url (item) => item.url == file.response.data.url
); );
this.formData.files.splice(index, 1); this.imgList.splice(index, 1);
console.log(this.formData.files); console.log(this.imgList);
}, },
async getReplayInfo() { async getReplayInfo() {
this.okflag = false; this.okflag = false;

61
src/views/modules/shequzhili/event/cpts/process-form-contact.vue

@ -2,28 +2,28 @@
<div class="search"> <div class="search">
<el-form ref="ref_form2" :inline="false" :model="formData" :rules="dataRule"> <el-form ref="ref_form2" :inline="false" :model="formData" :rules="dataRule">
<el-form-item label="办理情况" label-width="118px" :class="{ 'form-item': source === 'visiual' }" <el-form-item label="办理情况" label-width="118px" :class="{ 'form-item': source === 'visiual' }"
prop="internalRemark"> prop="handlingReq">
<div :class="{ 'visiual-form': source === 'visiual' }"> <div :class="{ 'visiual-form': source === 'visiual' }">
<el-input type="textarea" class="cell-width-area" :rows="2" placeholder="请输入回访意见" <el-input type="textarea" class="cell-width-area" :rows="2" placeholder="请输入"
v-model.trim="formData.internalRemark"> v-model.trim="formData.handlingReq">
</el-input> </el-input>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="上传录音" label-width="118px" :class="{ 'form-item': source === 'visiual' }" prop="luyin"> <el-form-item label="上传录音" label-width="118px" :class="{ 'form-item': source === 'visiual' }" prop="luyin">
<el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUlr" <el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUlr"
accept=".mp3"
:data="{ customerId: customerId }" :show-file-list="true" :on-success="handleAudioSuccess" :data="{ customerId: customerId }" :show-file-list="true" :on-success="handleAudioSuccess"
:on-remove="handleAudioRemove" :before-upload="beforeAudioUpload"> :on-remove="handleAudioRemove" :before-upload="beforeAudioUpload">
<i v-if="source === 'manage'" :class="['el-icon-plus']"></i> <el-button type="primary" >上传录音<i class="el-icon-upload el-icon--right"></i></el-button>
<img v-else style="width: 27px; height: 27px" src="@/assets/img/file-add.png" />
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item label="上传图片" label-width="118px" :class="{ 'form-item': source === 'visiual' }" <el-form-item label="上传图片" label-width="118px" :class="{ 'form-item': source === 'visiual' }"
prop="internalFile"> >
<el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUlr" <el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUlr"
accept=".jpg,.png,.jpeg"
:data="{ customerId: customerId }" :show-file-list="true" :on-success="handleImgSuccess" :data="{ customerId: customerId }" :show-file-list="true" :on-success="handleImgSuccess"
:on-remove="handleImgRemove" :before-upload="beforeImgUpload"> :on-remove="handleImgRemove" :before-upload="beforeImgUpload">
<i v-if="source === 'manage'" :class="['el-icon-plus']"></i> <el-button type="primary" >上传图片<i class="el-icon-upload el-icon--right"></i></el-button>
<img v-else style="width: 27px; height: 27px" src="@/assets/img/file-add.png" />
</el-upload> </el-upload>
</el-form-item> </el-form-item>
@ -33,7 +33,7 @@
<el-form-item label="答复人" label-width="118px" :class="{ 'form-item': source === 'visiual' }" <el-form-item label="答复人" label-width="118px" :class="{ 'form-item': source === 'visiual' }"
prop="respondent"> prop="respondent">
<div :class="{ 'visiual-form': source === 'visiual' }"> <div :class="{ 'visiual-form': source === 'visiual' }">
<el-input type="input" class="item_width_4" :rows="2" placeholder="请输入答复人" <el-input type="input" class="item_width_4" :rows="2" placeholder="请输入"
v-model.trim="formData.respondent"> v-model.trim="formData.respondent">
</el-input> </el-input>
</div> </div>
@ -43,7 +43,7 @@
<el-form-item label="答复电话" label-width="118px" :class="{ 'form-item': source === 'visiual' }" <el-form-item label="答复电话" label-width="118px" :class="{ 'form-item': source === 'visiual' }"
prop="respondentPhone"> prop="respondentPhone">
<div :class="{ 'visiual-form': source === 'visiual' }"> <div :class="{ 'visiual-form': source === 'visiual' }">
<el-input type="input" class="item_width_4" :rows="2" placeholder="请输入答复电话" <el-input type="input" class="item_width_4" :rows="2" placeholder="请输入"
v-model.trim="formData.respondentPhone"> v-model.trim="formData.respondentPhone">
</el-input> </el-input>
</div> </div>
@ -53,7 +53,7 @@
<el-form-item label="联系人" label-width="118px" :class="{ 'form-item': source === 'visiual' }" <el-form-item label="联系人" label-width="118px" :class="{ 'form-item': source === 'visiual' }"
prop="contacts"> prop="contacts">
<div :class="{ 'visiual-form': source === 'visiual' }"> <div :class="{ 'visiual-form': source === 'visiual' }">
<el-input type="input" class="item_width_4" :rows="2" placeholder="请输入联系人" <el-input type="input" class="item_width_4" :rows="2" placeholder="请输入"
v-model.trim="formData.contacts"> v-model.trim="formData.contacts">
</el-input> </el-input>
</div> </div>
@ -63,7 +63,7 @@
<el-form-item label="联系电话" label-width="118px" :class="{ 'form-item': source === 'visiual' }" <el-form-item label="联系电话" label-width="118px" :class="{ 'form-item': source === 'visiual' }"
prop="contactsPhone"> prop="contactsPhone">
<div :class="{ 'visiual-form': source === 'visiual' }"> <div :class="{ 'visiual-form': source === 'visiual' }">
<el-input type="input" class="item_width_4" :rows="2" placeholder="请输入联系电话" <el-input type="input" class="item_width_4" :rows="2" placeholder="请输入"
v-model.trim="formData.contactsPhone"> v-model.trim="formData.contactsPhone">
</el-input> </el-input>
</div> </div>
@ -78,7 +78,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </div>
<div class="item" v-if="formData.irregularity === 0"> <!-- <div class="item" v-if="formData.irregularity === 0">
<el-form-item label-width="118px" label="不合规诉求类型"> <el-form-item label-width="118px" label="不合规诉求类型">
<el-select v-model.trim="formData.irregularity" clearable class="item_width_4"> <el-select v-model.trim="formData.irregularity" clearable class="item_width_4">
<el-option v-for="item in nonComplianceType" :key="item.value" :label="item.label" <el-option v-for="item in nonComplianceType" :key="item.value" :label="item.label"
@ -86,7 +86,7 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </div> -->
<div class="item"> <div class="item">
<el-form-item label="办理真实度" label-width="118px" :class="{ 'form-item': source === 'visiual' }"> <el-form-item label="办理真实度" label-width="118px" :class="{ 'form-item': source === 'visiual' }">
<el-select v-model.trim="formData.verified" clearable class="item_width_4"> <el-select v-model.trim="formData.verified" clearable class="item_width_4">
@ -115,7 +115,7 @@ export default {
formData: { formData: {
operationType: '9', //[11,10,9] operationType: '9', //[11,10,9]
files: [], files: [],
content: '',// handlingReq: '',//
respondent: '',// respondent: '',//
respondentPhone: '',// respondentPhone: '',//
contacts: '',// contacts: '',//
@ -130,12 +130,14 @@ export default {
uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadvariedfile", uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadvariedfile",
selectList: [{ label: '属实', value: 0 }, { label: '不属实', value: 1 }], selectList: [{ label: '属实', value: 0 }, { label: '不属实', value: 1 }],
dataRule: { dataRule: {
content: [ handlingReq: [
{ required: true, message: '办理情况不能为空', trigger: 'blur' }, { required: true, message: '办理情况不能为空', trigger: 'blur' }
], ]
}, },
binaryOptionListReverse, binaryOptionListReverse,
nonComplianceType nonComplianceType,
imgList:[],
audioList:[]
}; };
}, },
components: {}, components: {},
@ -168,7 +170,7 @@ export default {
beforeAudioUpload(file) { beforeAudioUpload(file) {
const isLt1M = file.size / 1024 / 1024 < 10; const isLt1M = file.size / 1024 / 1024 < 10;
if (!isLt1M) { if (!isLt1M) {
this.$message.error("上传文件大小不能超过 10MB!"); this.$message.error("M上传文件大小不能超过 10B!");
} }
return isLt1M; return isLt1M;
}, },
@ -176,25 +178,23 @@ export default {
console.log("res.data.url", file); console.log("res.data.url", file);
if (res.code === 0 && res.msg === "success") { if (res.code === 0 && res.msg === "success") {
console.log("res.data.url", res.data.url); console.log("res.data.url", res.data.url);
this.formData.yinpin.push({ this.audioList.push({
format: file.name.split(".").pop(), format: file.name.split(".").pop(),
name: file.name, name: file.name,
size: file.size, size: file.size,
type: file.raw.type, type: file.raw.type,
url: res.data.url, url: res.data.url,
}); });
console.log(this.formData.internalFile);
} else { } else {
this.$message.error(res.msg); this.$message.error(res.msg);
} }
}, },
handleAudioRemove(file) { handleAudioRemove(file) {
let index = this.formData.yinpin.findIndex( let index = this.audioList.findIndex(
(item) => item.url == file.response.data.url (item) => item.url == file.response.data.url
); );
this.formData.internalFile.splice(index, 1); this.audioList.splice(index, 1);
console.log(this.formData.internalFile);
}, },
beforeImgUpload(file) { beforeImgUpload(file) {
const isLt1M = file.size / 1024 / 1024 < 10; const isLt1M = file.size / 1024 / 1024 < 10;
@ -208,25 +208,24 @@ export default {
console.log("res.data.url", file); console.log("res.data.url", file);
if (res.code === 0 && res.msg === "success") { if (res.code === 0 && res.msg === "success") {
console.log("res.data.url", res.data.url); console.log("res.data.url", res.data.url);
this.formData.internalFile.push({ this.imgList.push({
format: file.name.split(".").pop(), format: file.name.split(".").pop(),
name: file.name, name: file.name,
size: file.size, size: file.size,
type: file.raw.type, type: file.raw.type,
url: res.data.url, url: res.data.url,
}); });
console.log(this.formData.internalFile);
} else { } else {
this.$message.error(res.msg); this.$message.error(res.msg);
} }
}, },
handleImgRemove(file) { handleImgRemove(file) {
let index = this.formData.internalFile.findIndex( let index = this.imgList.findIndex(
(item) => item.url == file.response.data.url (item) => item.url == file.response.data.url
); );
this.formData.internalFile.splice(index, 1); this.imgList.splice(index, 1);
console.log(this.formData.internalFile); console.log(this.imgList);
}, },

46
src/views/modules/shequzhili/event/cpts/process-form-process.vue

@ -10,28 +10,26 @@
<div class="search"> <div class="search">
<el-form ref="ref_form2" :inline="false" :model="formData" :rules="dataRule"> <el-form ref="ref_form2" :inline="false" :model="formData" :rules="dataRule">
<el-form-item label="办理情况" label-width="118px" :class="{ 'form-item': source === 'visiual' }" <el-form-item label="办理情况" label-width="118px" :class="{ 'form-item': source === 'visiual' }"
prop="internalRemark"> prop="handlingReq">
<div :class="{ 'visiual-form': source === 'visiual' }"> <div :class="{ 'visiual-form': source === 'visiual' }">
<el-input type="textarea" class="cell-width-area" :rows="2" placeholder="请输入回访意见" <el-input type="textarea" class="cell-width-area" :rows="2" placeholder="请输入回访意见"
v-model.trim="formData.internalRemark"> v-model.trim="formData.handlingReq">
</el-input> </el-input>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="上传录音" label-width="118px" :class="{ 'form-item': source === 'visiual' }" prop="luyin"> <el-form-item label="上传录音" label-width="118px" :class="{ 'form-item': source === 'visiual' }" prop="luyin">
<el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUlr" <el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUlr"
:data="{ customerId: customerId }" :show-file-list="true" :on-success="handleAudioSuccess" :data="{ customerId: customerId }" :show-file-list="true" :on-success="handleAudioSuccess"
:on-remove="handleAudioRemove" :before-upload="beforeAudioUpload"> :on-remove="handleAudioRemove" :before-upload="beforeAudioUpload" accept=".mp3">
<i v-if="source === 'manage'" :class="['el-icon-plus']"></i> <el-button type="primary">上传录音<i class="el-icon-upload el-icon--right"></i></el-button>
<img v-else style="width: 27px; height: 27px" src="@/assets/img/file-add.png" />
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item label="上传图片" label-width="118px" :class="{ 'form-item': source === 'visiual' }" <el-form-item label="上传图片" label-width="118px" :class="{ 'form-item': source === 'visiual' }"
prop="internalFile"> prop="internalFile">
<el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUlr" <el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUlr"
:data="{ customerId: customerId }" :show-file-list="true" :on-success="handleImgSuccess" :data="{ customerId: customerId }" :show-file-list="true" :on-success="handleImgSuccess"
:on-remove="handleImgRemove" :before-upload="beforeImgUpload"> :on-remove="handleImgRemove" :before-upload="beforeImgUpload" accept=".jpg,.png,.jpeg">
<i v-if="source === 'manage'" :class="['el-icon-plus']"></i> <el-button type="primary">上传图片<i class="el-icon-upload el-icon--right"></i></el-button>
<img v-else style="width: 27px; height: 27px" src="@/assets/img/file-add.png" />
</el-upload> </el-upload>
</el-form-item> </el-form-item>
@ -86,7 +84,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </div>
<div class="item" v-if="formData.irregularity === 0"> <!-- <div class="item" v-if="formData.irregularity === 0">
<el-form-item label-width="118px" label="不合规诉求类型"> <el-form-item label-width="118px" label="不合规诉求类型">
<el-select v-model.trim="formData.irregularity" clearable class="item_width_4"> <el-select v-model.trim="formData.irregularity" clearable class="item_width_4">
<el-option v-for="item in nonComplianceType" :key="item.value" :label="item.label" <el-option v-for="item in nonComplianceType" :key="item.value" :label="item.label"
@ -94,7 +92,7 @@
</el-option> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</div> </div> -->
<div class="item"> <div class="item">
<el-form-item label="办理真实度" label-width="118px" :class="{ 'form-item': source === 'visiual' }"> <el-form-item label="办理真实度" label-width="118px" :class="{ 'form-item': source === 'visiual' }">
<el-select v-model.trim="formData.verified" clearable class="item_width_4"> <el-select v-model.trim="formData.verified" clearable class="item_width_4">
@ -122,8 +120,7 @@ export default {
nonComplianceType, nonComplianceType,
formData: { formData: {
operationType: "10", //[11,10,9] operationType: "10", //[11,10,9]
files: [], handlingReq: '',//
content: '',//
respondent: '',// respondent: '',//
respondentPhone: '',// respondentPhone: '',//
contacts: '',// contacts: '',//
@ -139,11 +136,13 @@ export default {
uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadvariedfile", uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadvariedfile",
dataRule: { dataRule: {
content: [ handlingReq: [
{ required: true, message: "办理情况不能为空", trigger: "blur" }, { required: true, message: "办理情况不能为空", trigger: "blur" },
], ],
}, },
selectList: [{ label: '属实', value: 1 }, { label: '不属实', value: 0 }], selectList: [{ label: '属实', value: 1 }, { label: '不属实', value: 0 }],
imgList: [],
audioList: []
}; };
}, },
components: {}, components: {},
@ -173,7 +172,6 @@ export default {
this.agencyId = user.agencyId; this.agencyId = user.agencyId;
}, },
methods: { methods: {
async getReplayInfo() { async getReplayInfo() {
this.okflag = false; this.okflag = false;
this.$refs["ref_form2"].validate((valid, messageObj) => { this.$refs["ref_form2"].validate((valid, messageObj) => {
@ -196,25 +194,25 @@ export default {
console.log("res.data.url", file); console.log("res.data.url", file);
if (res.code === 0 && res.msg === "success") { if (res.code === 0 && res.msg === "success") {
console.log("res.data.url", res.data.url); console.log("res.data.url", res.data.url);
this.formData.internalFile.push({ this.imgList.push({
format: file.name.split(".").pop(), format: file.name.split(".").pop(),
name: file.name, name: file.name,
size: file.size, size: file.size,
type: file.raw.type, type: file.raw.type,
url: res.data.url, url: res.data.url,
}); });
console.log(this.formData.internalFile); console.log(this.imgList);
} else { } else {
this.$message.error(res.msg); this.$message.error(res.msg);
} }
}, },
handleImgRemove(file) { handleImgRemove(file) {
let index = this.formData.internalFile.findIndex( let index = this.imgList.findIndex(
(item) => item.url == file.response.data.url (item) => item.url == file.response.data.url
); );
this.formData.internalFile.splice(index, 1); this.imgList.splice(index, 1);
console.log(this.formData.internalFile); console.log(this.imgList);
}, },
beforeAudioUpload(file) { beforeAudioUpload(file) {
const isLt1M = file.size / 1024 / 1024 < 10; const isLt1M = file.size / 1024 / 1024 < 10;
@ -227,24 +225,24 @@ export default {
console.log("res.data.url", file); console.log("res.data.url", file);
if (res.code === 0 && res.msg === "success") { if (res.code === 0 && res.msg === "success") {
console.log("res.data.url", res.data.url); console.log("res.data.url", res.data.url);
this.formData.yinpin.push({ this.audioList.push({
format: file.name.split(".").pop(), format: file.name.split(".").pop(),
name: file.name, name: file.name,
size: file.size, size: file.size,
type: file.raw.type, type: file.raw.type,
url: res.data.url, url: res.data.url,
}); });
console.log(this.formData.files); console.log(this.audioList);
} else { } else {
this.$message.error(res.msg); this.$message.error(res.msg);
} }
}, },
handleAudioRemove(file) { handleAudioRemove(file) {
let index = this.formData.yinpin.findIndex( let index = this.audioList.findIndex(
(item) => item.url == file.response.data.url (item) => item.url == file.response.data.url
); );
this.formData.files.splice(index, 1); this.audioList.splice(index, 1);
console.log(this.formData.files); console.log(this.formData.files);
}, },
beforeImgUpload(file) { beforeImgUpload(file) {
@ -259,7 +257,7 @@ export default {
console.log("res.data.url", file); console.log("res.data.url", file);
if (res.code === 0 && res.msg === "success") { if (res.code === 0 && res.msg === "success") {
console.log("res.data.url", res.data.url); console.log("res.data.url", res.data.url);
this.formData.files.push({ this.imgList.push({
format: file.name.split(".").pop(), format: file.name.split(".").pop(),
name: file.name, name: file.name,
size: file.size, size: file.size,

28
src/views/modules/shequzhili/event/cpts/process-form.vue

@ -4,7 +4,7 @@
<el-form ref="ref_form1" :inline="false" :rules="dataRule" class="form"> <el-form ref="ref_form1" :inline="false" :rules="dataRule" class="form">
<el-form-item label="办理状态" label-width="118px" :class="{ 'form-item': source === 'visiual' }" <el-form-item label="办理状态" label-width="118px" :class="{ 'form-item': source === 'visiual' }"
prop="operationType" v-if="pageType !== 'assign'"> prop="operationType" v-if="pageType !== 'assign'">
<el-select v-model="operationType" placeholder="请选择"> <el-select v-model="operationType" placeholder="请选择" :disabled="pageType === 'check'">
<el-option label="联系当事人" value="9"></el-option> <el-option label="联系当事人" value="9"></el-option>
<el-option label="办理中" value="10"></el-option> <el-option label="办理中" value="10"></el-option>
<el-option label="已办结" value="11"></el-option> <el-option label="已办结" value="11"></el-option>
@ -12,7 +12,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<div v-if="operationType === '9' && pageType !== 'assign'"> <div v-if="operationType === '9' && pageType !== 'assign'">
<process-form-contact ref="process_form_contact_yes" :source="source" :eventDetailData="eventDetailData" <process-form-contact ref="process_form_contact" :source="source" :eventDetailData="eventDetailData"
:eventId="eventId"></process-form-contact> :eventId="eventId"></process-form-contact>
</div> </div>
<div v-if="operationType === '10' && pageType !== 'assign'"> <div v-if="operationType === '10' && pageType !== 'assign'">
@ -138,7 +138,7 @@ export default {
// } // }
}, },
async getOrgTreeList() { async getOrgTreeList() {
const url = "/gov/org/customeragency/agencygridtree" const url = "/gov/org/customeragency/agencyGridDepttree"
let params = { let params = {
agencyId: this.agencyId, agencyId: this.agencyId,
purpose: "query" purpose: "query"
@ -157,22 +157,28 @@ export default {
async getProcessInfo() { async getProcessInfo() {
this.okflag = false this.okflag = false
if (this.operationType === '9') { if (this.operationType === '9') {
this.$refs.process_form_contact_yes.getReplayInfo() this.$refs.process_form_contact.getReplayInfo()
this.replayInfo = this.$refs.process_form_contact_yes.formData this.replayInfo = this.$refs.process_form_contact.formData;
if (this.$refs.process_form_contact_yes.okflag) { this.replayInfo.files = [...this.$refs.process_form_contact.imgList,...this.$refs.process_form_contact.audioList]
this.replayInfo = this.$refs.process_form_contact_yes.formData if (this.$refs.process_form_contact.okflag) {
this.replayInfo = this.$refs.process_form_contact.formData
this.okflag = true this.okflag = true
} }
} else if (this.operationType === '10') { } else if (this.operationType === '10') {
this.$refs.ref_process_form_process.getReplayInfo() this.$refs.ref_process_form_process.getReplayInfo()
this.replayInfo = this.$refs.ref_process_form_process.formData this.replayInfo = this.$refs.ref_process_form_process.formData;
this.replayInfo.files = [...this.$refs.ref_process_form_process.imgList,...this.$refs.ref_process_form_process.audioList]
if (this.$refs.ref_process_form_process.okflag) { if (this.$refs.ref_process_form_process.okflag) {
this.replayInfo = this.$refs.ref_process_form_process.formData this.replayInfo = this.$refs.ref_process_form_process.formData
this.okflag = true this.okflag = true
} }
} else if (this.operationType === '11') { } else if (this.operationType === '11' || this.pageType === 'check') {
this.$refs.ref_process_form_complete.getReplayInfo() this.$refs.ref_process_form_complete.getReplayInfo()
this.replayInfo = this.$refs.ref_process_form_complete.formData this.replayInfo = this.$refs.ref_process_form_complete.formData;
this.replayInfo.files = [...this.$refs.ref_process_form_complete.imgList,...this.$refs.ref_process_form_complete.audioList]
if(this.pageType === 'check'){
this.replayInfo.operationType = '12'
}
if (this.$refs.ref_process_form_complete.okflag) { if (this.$refs.ref_process_form_complete.okflag) {
this.replayInfo = this.$refs.ref_process_form_complete.formData this.replayInfo = this.$refs.ref_process_form_complete.formData
this.okflag = true this.okflag = true
@ -184,7 +190,7 @@ export default {
this.replayInfo = this.$refs.ref_process_form_assign.formData this.replayInfo = this.$refs.ref_process_form_assign.formData
this.okflag = true this.okflag = true
} }
} else { }else {
return false return false
} }
}, },

2
src/views/modules/shequzhili/event/eventList.vue

@ -526,7 +526,7 @@ export default {
// //
async handleDispose(row,type) { async handleDispose(row,type) {
this.eventId = row.icEventId; this.eventId = '1817808353882152962';
const url = "/governance/icEvent/detail"; const url = "/governance/icEvent/detail";
const { data, code, msg } = await requestPost(url, { const { data, code, msg } = await requestPost(url, {
icEventId: this.eventId, icEventId: this.eventId,

Loading…
Cancel
Save