|
|
@ -1,44 +1,49 @@ |
|
|
|
<template> |
|
|
|
<div class=""> |
|
|
|
<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' }"> |
|
|
|
<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> |
|
|
|
</div> |
|
|
|
</el-form-item> |
|
|
|
|
|
|
|
<el-form-item label="上传录音" label-width="118px" :class="{ 'form-item': source === 'visiual' }" > |
|
|
|
<el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUlr" |
|
|
|
<el-form-item label="上传录音" label-width="118px" :class="{ 'form-item': source === 'visiual' }"> |
|
|
|
<el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUlr" accept=".mp3" |
|
|
|
:data="{ customerId: customerId }" :show-file-list="true" :on-success="handleAudioSuccess" |
|
|
|
:on-remove="handleAudioRemove" :before-upload="beforeAudioUpload"> |
|
|
|
<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-button type="primary" :disabled="pageType === 'check'">上传音频<i |
|
|
|
class="el-icon-upload el-icon--right"></i></el-button> |
|
|
|
</el-upload> |
|
|
|
</el-form-item> |
|
|
|
<el-form-item label="上传图片" label-width="118px" :class="{ 'form-item': source === 'visiual' }" prop="files"> |
|
|
|
<el-upload :headers="$getElUploadHeaders()" class="avatar-uploader" :action="uploadUlr" |
|
|
|
accept=".jpg,.png,.jpeg" |
|
|
|
: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-button type="primary" :disabled="pageType === 'check'">上传图片<i |
|
|
|
class="el-icon-upload el-icon--right"></i></el-button> |
|
|
|
</el-upload> |
|
|
|
</el-form-item> |
|
|
|
<el-divider></el-divider> |
|
|
|
<div class="flex"> |
|
|
|
<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' }"> |
|
|
|
<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> |
|
|
|
</div> |
|
|
|
</el-form-item> |
|
|
|
</div> |
|
|
|
<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' }"> |
|
|
|
<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> |
|
|
|
</div> |
|
|
|
</el-form-item> |
|
|
@ -52,9 +57,11 @@ |
|
|
|
</el-form-item> |
|
|
|
</div> |
|
|
|
<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' }"> |
|
|
|
<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> |
|
|
|
</div> |
|
|
|
</el-form-item> |
|
|
@ -62,19 +69,20 @@ |
|
|
|
<div class="item"> |
|
|
|
<el-form-item label-width="118px" label="填报不合规诉求"> |
|
|
|
<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-select> |
|
|
|
</el-form-item> |
|
|
|
</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-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> |
|
|
|
</el-select> |
|
|
|
</el-form-item> |
|
|
|
</div> |
|
|
|
</div> --> |
|
|
|
<div class="item"> |
|
|
|
<el-form-item label="办理真实度" label-width="118px" :class="{ 'form-item': source === 'visiual' }" |
|
|
|
prop="verified"> |
|
|
@ -101,8 +109,8 @@ |
|
|
|
<el-form-item label="回访时间" prop="returnTime" label-width="118px" |
|
|
|
:class="{ 'form-item': source === 'visiual' }" style="display: block"> |
|
|
|
<div :class="{ 'visiual-form': source === 'visiual' }"> |
|
|
|
<el-date-picker v-model.trim="formData.returnTime" class="cell-width-1" type="datetime" |
|
|
|
placeholder="请选择" value-format="yyyy-MM-dd HH:mm:ss"> |
|
|
|
<el-date-picker v-model.trim="formData.returnTime" class="cell-width-1" type="datetime" placeholder="请选择" |
|
|
|
value-format="yyyy-MM-dd HH:mm:ss"> |
|
|
|
</el-date-picker> |
|
|
|
</div> |
|
|
|
</el-form-item> |
|
|
@ -136,8 +144,7 @@ |
|
|
|
</el-form-item> |
|
|
|
</div> |
|
|
|
<div class="item"> |
|
|
|
<el-form-item label="服务过程满意度" label-width="118px" :class="{ 'form-item': source === 'visiual' }" |
|
|
|
prop="nnn"> |
|
|
|
<el-form-item label="服务过程满意度" label-width="118px" :class="{ 'form-item': source === 'visiual' }" prop="nnn"> |
|
|
|
<div :class="{ 'visiual-form': source === 'visiual' }"> |
|
|
|
<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" |
|
|
@ -148,7 +155,8 @@ |
|
|
|
</el-form-item> |
|
|
|
</div> |
|
|
|
<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' }"> |
|
|
|
<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"> |
|
|
@ -170,44 +178,46 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<el-divider></el-divider> |
|
|
|
<div :class="['process-title', { 'process-title-vis': source === 'visiual' },]" v-if="pageType === 'check'"> |
|
|
|
<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> |
|
|
|
<section v-if="pageType === 'check'"> |
|
|
|
<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="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 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 :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> |
|
|
|
</section> |
|
|
|
</el-form> |
|
|
|
</div> |
|
|
|
</template> |
|
|
@ -215,31 +225,31 @@ |
|
|
|
<script> |
|
|
|
import { Loading } from "element-ui"; // 引入Loading服务 |
|
|
|
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; // 加载动画 |
|
|
|
function iniFmData() { |
|
|
|
return { |
|
|
|
operationType: "11", //处理方式[11已办结,10办理中,9联系当事人] |
|
|
|
eventId: '', |
|
|
|
content:'',//办理情况 |
|
|
|
handlingReq: '',//办理情况 |
|
|
|
files: [],//附件 |
|
|
|
respondent:'',//答复人 |
|
|
|
respondentPhone:'',//答复人电话 |
|
|
|
contacts:'',//联系人 |
|
|
|
contactsPhone:'',//联系人电话 |
|
|
|
irregularity:'',//填报不合规诉求 0:是 1:否 |
|
|
|
//不合规诉求类型 |
|
|
|
respondent: '',//答复人 |
|
|
|
respondentPhone: '',//答复人电话 |
|
|
|
contacts: '',//联系人 |
|
|
|
contactsPhone: '',//联系人电话 |
|
|
|
irregularity: '',//填报不合规诉求 0:是 1:否 |
|
|
|
//不合规诉求类型 |
|
|
|
verified: '', //办理真实度是否属实 0:属实 1:不属实 |
|
|
|
returnVisitor: '',//回访人 |
|
|
|
returnTime: '',//回访时间 |
|
|
|
loseContact: '',//当事人联系不上0:已联系 1:未取得联系 |
|
|
|
putThrough:'',//接通电话 0:接通 1:未接通 |
|
|
|
mmm:'',//是否配合回访0:配合 1:不配合 |
|
|
|
putThrough: '',//接通电话 0:接通 1:未接通 |
|
|
|
mmm: '',//是否配合回访0:配合 1:不配合 |
|
|
|
nnn: '',//0:满意 1:非常满意 2:不满意 |
|
|
|
dissatisfyReason: '',//不满意原因 |
|
|
|
visitComments: '',//回访意见 |
|
|
|
examine:null,//审核结果 |
|
|
|
examineContent:''//审核说明 |
|
|
|
examine: null,//审核结果 |
|
|
|
examineContent: ''//审核说明 |
|
|
|
}; |
|
|
|
} |
|
|
|
export default { |
|
|
@ -254,7 +264,7 @@ export default { |
|
|
|
assistanceUnitList: [], //协办单位数组 |
|
|
|
formData: iniFmData(), |
|
|
|
okflag: false, |
|
|
|
uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadqrcodeV2", |
|
|
|
uploadUlr: window.SITE_CONFIG["apiURL"] + "/oss/file/uploadvariedfile", |
|
|
|
eventDetailCopy: {}, |
|
|
|
selectList: [{ 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 }], |
|
|
|
examineList: [{ label: '合格', value: 0 }, { label: '不合格', value: 1 }], |
|
|
|
dataRule: { |
|
|
|
content: [ |
|
|
|
handlingReq: [ |
|
|
|
{ required: true, message: "办理情况不能为空", trigger: "blur" }, |
|
|
|
], |
|
|
|
verified: [ |
|
|
@ -289,7 +299,9 @@ export default { |
|
|
|
nnn: [ |
|
|
|
{ required: true, message: "请选择服务过程满意度", trigger: "blur" }, |
|
|
|
], |
|
|
|
} |
|
|
|
}, |
|
|
|
imgList: [], |
|
|
|
audioList: [] |
|
|
|
}; |
|
|
|
}, |
|
|
|
components: {}, |
|
|
@ -333,7 +345,7 @@ export default { |
|
|
|
this.$delete(this.dataRule, 'dissatisfyReason'); |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
beforeAudioUpload(file) { |
|
|
|
const isLt1M = file.size / 1024 / 1024 < 10; |
|
|
|
if (!isLt1M) { |
|
|
@ -345,7 +357,7 @@ export default { |
|
|
|
console.log("res.data.url", file); |
|
|
|
if (res.code === 0 && res.msg === "success") { |
|
|
|
console.log("res.data.url", res.data.url); |
|
|
|
this.formData.yinpin.push({ |
|
|
|
this.audioList.push({ |
|
|
|
format: file.name.split(".").pop(), |
|
|
|
name: file.name, |
|
|
|
size: file.size, |
|
|
@ -359,11 +371,11 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
handleAudioRemove(file) { |
|
|
|
let index = this.formData.yinpin.findIndex( |
|
|
|
let index = this.audioList.findIndex( |
|
|
|
(item) => item.url == file.response.data.url |
|
|
|
); |
|
|
|
this.formData.files.splice(index, 1); |
|
|
|
console.log(this.formData.files); |
|
|
|
this.audioList.splice(index, 1); |
|
|
|
console.log(this.audioList); |
|
|
|
}, |
|
|
|
beforeImgUpload(file) { |
|
|
|
const isLt1M = file.size / 1024 / 1024 < 10; |
|
|
@ -377,7 +389,7 @@ export default { |
|
|
|
console.log("res.data.url", file); |
|
|
|
if (res.code === 0 && res.msg === "success") { |
|
|
|
console.log("res.data.url", res.data.url); |
|
|
|
this.formData.files.push({ |
|
|
|
this.imgList.push({ |
|
|
|
format: file.name.split(".").pop(), |
|
|
|
name: file.name, |
|
|
|
size: file.size, |
|
|
@ -391,11 +403,11 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
handleImgRemove(file) { |
|
|
|
let index = this.formData.files.findIndex( |
|
|
|
let index = this.imgList.findIndex( |
|
|
|
(item) => item.url == file.response.data.url |
|
|
|
); |
|
|
|
this.formData.files.splice(index, 1); |
|
|
|
console.log(this.formData.files); |
|
|
|
this.imgList.splice(index, 1); |
|
|
|
console.log(this.imgList); |
|
|
|
}, |
|
|
|
async getReplayInfo() { |
|
|
|
this.okflag = false; |
|
|
|