Commit 7b31b9fc authored by 赵啸非's avatar 赵啸非

Merge remote-tracking branch 'origin/master'

parents 24e6b80e 7a9c690c
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
cancel-text="取消" cancel-text="取消"
width="820px" width="820px"
:maskClosable="false" :maskClosable="false"
destroyOnClose
> >
<a-form-model <a-form-model
:model="form" :model="form"
...@@ -53,31 +54,14 @@ ...@@ -53,31 +54,14 @@
{{ v.name }}</a-select-option {{ v.name }}</a-select-option
> >
</a-select> </a-select>
<!-- <a-select
v-model="form.deptId"
@change="handleDeptSelect"
placeholder="请选择部门"
>
<a-select-option
v-for="v in diptData"
:key="v.id"
:value="v.id"
>{{ v.name }}</a-select-option
>
</a-select> -->
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="星级" prop="starlevel"> <a-form-model-item label="经办人Id" prop="operatorId">
<a-select v-model="form.starlevel" placeholder="请选择星级"> <a-input v-model="form.operatorId" placeholder="请输入经办人Id" />
<a-select-option :value="5">5星</a-select-option>
<a-select-option :value="4">4星</a-select-option>
<a-select-option :value="3">3星</a-select-option>
<a-select-option :value="2">2星</a-select-option>
<a-select-option :value="1">1星</a-select-option>
</a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<!-- <a-col :span="12"> <!-- <a-col :span="12">
<a-form-model-item label="所属窗口" prop="windowId"> <a-form-model-item label="所属窗口" prop="windowId">
<a-select <a-select
...@@ -96,18 +80,33 @@ ...@@ -96,18 +80,33 @@
</a-col> --> </a-col> -->
</a-row> </a-row>
<a-row> <a-row>
<a-col :span="12">
<a-form-model-item label="星级" prop="starlevel">
<a-select
allowClear
v-model="form.starlevel"
placeholder="请选择星级"
>
<a-select-option :value="5">5星</a-select-option>
<a-select-option :value="4">4星</a-select-option>
<a-select-option :value="3">3星</a-select-option>
<a-select-option :value="2">2星</a-select-option>
<a-select-option :value="1">1星</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="职务" prop="userpost"> <a-form-model-item label="职务" prop="userpost">
<a-input v-model="form.userpost" placeholder="请输入职务" /> <a-input v-model="form.userpost" placeholder="请输入职务" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row>
<a-row>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="职称" prop="posttitle"> <a-form-model-item label="职称" prop="posttitle">
<a-input v-model="form.posttitle" placeholder="请输入职称" /> <a-input v-model="form.posttitle" placeholder="请输入职称" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row>
<a-row>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="政治面貌" prop="politicalstatus"> <a-form-model-item label="政治面貌" prop="politicalstatus">
<a-select <a-select
...@@ -140,9 +139,14 @@ ...@@ -140,9 +139,14 @@
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="12">
<a-form-model-item label="电话" prop="phone">
<a-input v-model="form.phone" placeholder="请输入电话" />
</a-form-model-item>
</a-col>
</a-row> </a-row>
<a-row v-if="form.dangyuan === 99"> <a-row v-if="form.dangyuan === 99">
<a-col :span="12"> </a-col> <!-- <a-col :span="12"> </a-col> -->
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="其他称号" prop="dangyuanext"> <a-form-model-item label="其他称号" prop="dangyuanext">
<a-input v-model="form.dangyuanext" placeholder="请输入称号" /> <a-input v-model="form.dangyuanext" placeholder="请输入称号" />
...@@ -150,18 +154,11 @@ ...@@ -150,18 +154,11 @@
</a-col> </a-col>
</a-row> </a-row>
<a-row> <a-row>
<a-col :span="12">
<a-form-model-item label="电话" prop="phone">
<a-input v-model="form.phone" placeholder="请输入电话" />
</a-form-model-item>
</a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="手机" prop="mobile"> <a-form-model-item label="手机" prop="mobile">
<a-input v-model="form.mobile" placeholder="请输入手机" /> <a-input v-model="form.mobile" placeholder="请输入手机" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row>
<a-row>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="身份证" prop="idCard"> <a-form-model-item label="身份证" prop="idCard">
<a-input v-model="form.idCard" placeholder="请输入身份证号码" /> <a-input v-model="form.idCard" placeholder="请输入身份证号码" />
...@@ -428,6 +425,7 @@ export default { ...@@ -428,6 +425,7 @@ export default {
duty: "", // 岗位职责 duty: "", // 岗位职责
promise: "", // 服务承诺 promise: "", // 服务承诺
business: "", // 办理事项 business: "", // 办理事项
operatorId: "", // 经办人id
// modelIds: [], // 模块 // modelIds: [], // 模块
}, },
rules: { rules: {
...@@ -529,7 +527,7 @@ export default { ...@@ -529,7 +527,7 @@ export default {
}, },
// 关闭对话框 // 关闭对话框
handleClose() { handleClose() {
this.$refs.formData.resetFields(); // this.$refs.formData.resetFields();
this.loading = false; this.loading = false;
this.Visible = false; this.Visible = false;
}, },
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
cancel-text="重置" cancel-text="重置"
width="820px" width="820px"
:maskClosable="false" :maskClosable="false"
destroyOnClose
> >
<a-form-model <a-form-model
:model="form" :model="form"
...@@ -53,37 +54,14 @@ ...@@ -53,37 +54,14 @@
{{ v.name }}</a-select-option {{ v.name }}</a-select-option
> >
</a-select> </a-select>
<!-- <a-select
v-model="form.deptId"
@change="handleDeptSelect"
allowClear
placeholder="请选择部门"
>
<a-select-option
v-for="v in diptData"
:key="v.id"
:value="v.id"
>{{ v.name }}</a-select-option
>
</a-select> -->
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="星级" prop="starlevel"> <a-form-model-item label="经办人Id" prop="operatorId">
<a-select <a-input v-model="form.operatorId" placeholder="请输入经办人Id" />
allowClear
v-model="form.starlevel"
placeholder="请选择星级"
>
<a-select-option :value="5">5星</a-select-option>
<a-select-option :value="4">4星</a-select-option>
<a-select-option :value="3">3星</a-select-option>
<a-select-option :value="2">2星</a-select-option>
<a-select-option :value="1">1星</a-select-option>
</a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<!-- <a-col :span="12"> <!-- <a-col :span="12">
<a-form-model-item label="所属窗口" prop="windowId"> <a-form-model-item label="所属窗口" prop="windowId">
<a-select <a-select
...@@ -102,18 +80,33 @@ ...@@ -102,18 +80,33 @@
</a-col> --> </a-col> -->
</a-row> </a-row>
<a-row> <a-row>
<a-col :span="12">
<a-form-model-item label="星级" prop="starlevel">
<a-select
allowClear
v-model="form.starlevel"
placeholder="请选择星级"
>
<a-select-option :value="5">5星</a-select-option>
<a-select-option :value="4">4星</a-select-option>
<a-select-option :value="3">3星</a-select-option>
<a-select-option :value="2">2星</a-select-option>
<a-select-option :value="1">1星</a-select-option>
</a-select>
</a-form-model-item>
</a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="职务" prop="userpost"> <a-form-model-item label="职务" prop="userpost">
<a-input v-model="form.userpost" placeholder="请输入职务" /> <a-input v-model="form.userpost" placeholder="请输入职务" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row>
<a-row>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="职称" prop="posttitle"> <a-form-model-item label="职称" prop="posttitle">
<a-input v-model="form.posttitle" placeholder="请输入职称" /> <a-input v-model="form.posttitle" placeholder="请输入职称" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row>
<a-row>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="政治面貌" prop="politicalstatus"> <a-form-model-item label="政治面貌" prop="politicalstatus">
<a-select <a-select
...@@ -146,9 +139,14 @@ ...@@ -146,9 +139,14 @@
</a-select> </a-select>
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
<a-col :span="12">
<a-form-model-item label="电话" prop="phone">
<a-input v-model="form.phone" placeholder="请输入电话" />
</a-form-model-item>
</a-col>
</a-row> </a-row>
<a-row v-if="form.dangyuan === 99"> <a-row v-if="form.dangyuan === 99">
<a-col :span="12"> </a-col> <!-- <a-col :span="12"> </a-col> -->
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="其他称号" prop="dangyuanext"> <a-form-model-item label="其他称号" prop="dangyuanext">
<a-input v-model="form.dangyuanext" placeholder="请输入称号" /> <a-input v-model="form.dangyuanext" placeholder="请输入称号" />
...@@ -156,18 +154,11 @@ ...@@ -156,18 +154,11 @@
</a-col> </a-col>
</a-row> </a-row>
<a-row> <a-row>
<a-col :span="12">
<a-form-model-item label="电话" prop="phone">
<a-input v-model="form.phone" placeholder="请输入电话" />
</a-form-model-item>
</a-col>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="手机" prop="mobile"> <a-form-model-item label="手机" prop="mobile">
<a-input v-model="form.mobile" placeholder="请输入手机" /> <a-input v-model="form.mobile" placeholder="请输入手机" />
</a-form-model-item> </a-form-model-item>
</a-col> </a-col>
</a-row>
<a-row>
<a-col :span="12"> <a-col :span="12">
<a-form-model-item label="身份证" prop="idCard"> <a-form-model-item label="身份证" prop="idCard">
<a-input v-model="form.idCard" placeholder="请输入身份证号码" /> <a-input v-model="form.idCard" placeholder="请输入身份证号码" />
...@@ -470,6 +461,7 @@ export default { ...@@ -470,6 +461,7 @@ export default {
duty: "", // 岗位职责 duty: "", // 岗位职责
promise: "", // 服务承诺 promise: "", // 服务承诺
business: "", // 办理事项 business: "", // 办理事项
operatorId: "", // 经办人id
// modelIds: [], // 模块 // modelIds: [], // 模块
}, },
rules: { rules: {
...@@ -582,7 +574,7 @@ export default { ...@@ -582,7 +574,7 @@ export default {
}, },
// 关闭对话框 // 关闭对话框
handleClose() { handleClose() {
this.$refs.formData.resetFields(); // this.$refs.formData.resetFields();
this.loading = false; this.loading = false;
this.Visible = false; this.Visible = false;
}, },
......
...@@ -199,7 +199,7 @@ ...@@ -199,7 +199,7 @@
onChange: handlePagination, onChange: handlePagination,
onShowSizeChange: showSizeChange, onShowSizeChange: showSizeChange,
}" }"
:scroll="{ y: 450 }" :scroll="{ y: 530 }"
:loading="loading" :loading="loading"
:columns="columns" :columns="columns"
:data-source="WorkmanData" :data-source="WorkmanData"
......
This source diff could not be displayed because it is too large. You can view the blob instead.
...@@ -28,6 +28,11 @@ export function getWorkerInfo(params) { ...@@ -28,6 +28,11 @@ export function getWorkerInfo(params) {
return http.get(`${baseURL}/base/workman/info`, params); return http.get(`${baseURL}/base/workman/info`, params);
} }
//评价选项
export function getOptonList(params){
return http.post(`${BASEURL}/bkb/bkbset/optionlist`,params)
}
//评价数据列表 //评价数据列表
export function getEvaList(params) { export function getEvaList(params) {
return http.post(`${BASEURL}/bkb/evaluate/evaluatelist`, params); return http.post(`${BASEURL}/bkb/evaluate/evaluatelist`, params);
......
...@@ -11,14 +11,14 @@ ...@@ -11,14 +11,14 @@
<div v-if="modalInfo.show==1"> <div v-if="modalInfo.show==1">
<div class="headerInfo"> <div class="headerInfo">
<p> <p>
<span>总耗时:{{queEvaData.alltime}}<i class="fa fa-long-arrow-down"></i></span> <span>总耗时:{{queEvaData.alltime?queEvaData.alltime:'--'}}<i class="fa fa-long-arrow-down"></i></span>
<span>等待时间:{{queEvaData.waittime}}<i class="fa fa-long-arrow-down"></i></span> <span>等待时间:{{queEvaData.waittime?queEvaData.waittime:'--'}}<i class="fa fa-long-arrow-down"></i></span>
<span>办理时间:{{queEvaData.bltime}}<i class="fa fa-long-arrow-down"></i></span> <span>办理时间:{{queEvaData.bltime?queEvaData.bltime:'--'}}<i class="fa fa-long-arrow-down"></i></span>
</p> </p>
<p> <p>
<span>平均耗时:{{queEvaData.p_alltime}}</span> <span>平均耗时:{{queEvaData.p_alltime?queEvaData.p_alltime:'--'}}</span>
<span>平均等待时间:{{queEvaData.p_waittime}}</span> <span>平均等待时间:{{queEvaData.p_waittime?queEvaData.p_waittime:'--'}}</span>
<span>平均办理时间:{{queEvaData.p_bltime}}</span> <span>平均办理时间:{{queEvaData.p_bltime?queEvaData.p_bltime:'--'}}</span>
</p> </p>
</div> </div>
<div class="state" v-if="queEvaData.style==0">未办理</div> <div class="state" v-if="queEvaData.style==0">未办理</div>
...@@ -45,12 +45,12 @@ ...@@ -45,12 +45,12 @@
slot="description" slot="description"
> >
<div class="details"> <div class="details">
<span><i class="lable">申报人:</i>{{queEvaData.people_name}}</span> <span><i class="lable">申报人:</i>{{queEvaData.people_name?queEvaData.people_name:'--'}}</span>
<span><i class="lable">取号时间:</i>{{queEvaData.taketime}}</span> <span><i class="lable">取号时间:</i>{{queEvaData.taketime?queEvaData.taketime:'--'}}</span>
<span><i class="lable">排队编码:</i>{{queEvaData.flownum}}</span> <span><i class="lable">排队编码:</i>{{queEvaData.flownum?queEvaData.flownum:'--'}}</span>
<span><i class="lable">取号方式:</i>{{queEvaData.wy_signin>0?'在线取号':'现场取号'}}</span> <span><i class="lable">取号方式:</i>{{queEvaData.wy_signin==''?'--':queEvaData.wy_signin>0?'在线取号':'现场取号'}}</span>
<span><i class="lable">注册方式:</i>--</span> <span><i class="lable">注册方式:</i>--</span>
<span><i class="lable">取号设备:</i>{{queEvaData.take_name}}</span> <span><i class="lable">取号设备:</i>{{queEvaData.take_name?queEvaData.take_name:'--'}}</span>
</div> </div>
</div> </div>
</a-step> </a-step>
...@@ -69,10 +69,10 @@ ...@@ -69,10 +69,10 @@
slot="description" slot="description"
> >
<div class="details"> <div class="details">
<span><i class="lable">办理窗口:</i>{{queEvaData.window_name}}</span> <span><i class="lable">办理窗口:</i>{{queEvaData.window_name?queEvaData.window_name:'--'}}</span>
<span><i class="lable">办理开始时间:</i>{{queEvaData.bltime}}</span> <span><i class="lable">办理开始时间:</i>{{queEvaData.bltime?queEvaData.bltime:'--'}}</span>
<span><i class="lable">工作人员:</i>{{queEvaData.workman_name}}</span> <span><i class="lable">工作人员:</i>{{queEvaData.workman_name?queEvaData.workman_name:'--'}}</span>
<span><i class="lable">叫号设备:</i>{{queEvaData.calltime}}</span> <span><i class="lable">叫号设备:</i>{{queEvaData.call_name}}</span>
</div> </div>
</div> </div>
</a-step> </a-step>
...@@ -92,17 +92,18 @@ ...@@ -92,17 +92,18 @@
slot="description" slot="description"
> >
<div class="details"> <div class="details">
<span><i class="lable">办理结束时间:</i>{{queEvaData.endtime}}</span> <span><i class="lable">办理结束时间:</i>{{queEvaData.endtime?queEvaData.endtime:'--'}}</span>
<span><i class="lable">评价选项:</i>{{queEvaData.option_id}}</span> <span><i class="lable">评价选项:</i>{{queEvaData.option_id?queEvaData.option_id:'--'}}</span>
<span><i class="lable">评价时间:</i>{{queEvaData.pj_time}}</span> <span><i class="lable">评价时间:</i>{{queEvaData.pj_time?queEvaData.pj_time:'--'}}</span>
<span style="width:100%"><i class="lable">评价指标:</i> <span style="width:100%"><i class="lable">评价指标:</i>
<i class="pjzb" v-for="(item,index) in queEvaData.content" :key="index">{{item}}</i> <i class="pjzb" v-for="(item,index) in queEvaData.content" :key="index">{{item}}</i>
<!-- <span v-if="queEvaData.content.length==0">--</span> -->
</span> </span>
<span><i class="lable">评价来源:</i>{{queEvaData.source}}</span> <span><i class="lable">评价来源:</i>{{queEvaData.source?queEvaData.source:'--'}}</span>
<span><i class="lable">评价设备:</i>{{queEvaData.pj_name}}</span> <span><i class="lable">评价设备:</i>{{queEvaData.pj_name?queEvaData.pj_name:'--'}}</span>
<span><i class="lable">评价人照片:</i> <span><i class="lable">评价人照片:</i>
<a-avatar v-if="!queEvaData.idcardData_PhotoFileName" shape="square" :size="40" icon="user" /> <a-avatar v-if="!queEvaData.picture || !baseurl" shape="square" :size="40" icon="user" />
<img v-else :src="process.env.VUE_APP_API_BASE_URL+text" alt="" srcset=""> <img v-else :src="baseurl+'/'+queEvaData.picture" alt="" srcset="" style="max-width: 100px; max-height: 100px;">
</span> </span>
</div> </div>
</div> </div>
...@@ -132,21 +133,22 @@ ...@@ -132,21 +133,22 @@
slot="description" slot="description"
> >
<div class="details"> <div class="details">
<span><i class="lable">评价人:</i>{{queEvaData.idcard_Name}}</span> <span><i class="lable">评价人:</i>{{queEvaData.idcard_Name?queEvaData.idcard_Name:'--'}}</span>
<span><i class="lable">手机号:</i>{{queEvaData.phone}}</span> <span><i class="lable">手机号:</i>{{queEvaData.phone?queEvaData.phone:'--'}}</span>
<span><i class="lable">身份证号:</i>{{queEvaData.idcard_IDCardNo}}</span> <span><i class="lable">身份证号:</i>{{queEvaData.idcard_IDCardNo?queEvaData.idcard_IDCardNo:'--'}}</span>
<span><i class="lable">窗口编号:</i>{{queEvaData.window_fronum}}</span> <span><i class="lable">窗口编号:</i>{{queEvaData.window_fronum?queEvaData.window_fronum:'--'}}</span>
<span><i class="lable">评价选项:</i>{{queEvaData.option_id}}</span> <span><i class="lable">评价选项:</i>{{queEvaData.option_id?queEvaData.option_id:'--'}}</span>
<span><i class="lable">评价时间:</i>{{queEvaData.create_time}}</span> <span><i class="lable">评价时间:</i>{{queEvaData.create_time?queEvaData.create_time:'--'}}</span>
<span style="width:100%"><i class="lable">评价指标:</i> <span style="width:100%"><i class="lable">评价指标:</i>
<i class="pjzb" v-for="(item,index) in queEvaData.content" :key="index">{{item}}</i> <i class="pjzb" v-for="(item,index) in queEvaData.content" :key="index">{{item}}</i>
<!-- <span v-if="queEvaData.content.length==0">--</span> -->
</span> </span>
<span><i class="lable">评价来源:</i>{{queEvaData.source}}</span> <span><i class="lable">评价来源:</i>{{queEvaData.source?queEvaData.source:'--'}}</span>
<span><i class="lable">评价设备:</i>--</span> <span><i class="lable">评价设备:</i>--</span>
<span> <span>
<i class="lable">评价人照片:</i> <i class="lable">评价人照片:</i>
<a-avatar v-if="!queEvaData.idcardData_PhotoFileName" shape="square" :size="40" icon="user" /> <a-avatar v-if="!queEvaData.picture" shape="square" :size="40" icon="user" />
<img v-else :src="process.env.VUE_APP_API_BASE_URL+text" alt="" srcset=""> <img v-else :src="process.env.VUE_APP_API_BASE_URL+'/'+queEvaData.picture" alt="" srcset="" style="max-width: 100px; max-height: 100px;">
</span> </span>
</div> </div>
</div> </div>
...@@ -166,7 +168,8 @@ export default { ...@@ -166,7 +168,8 @@ export default {
data() { data() {
return { return {
queEvaData:{} queEvaData:{},
baseurl:'',
}; };
}, },
filters: { filters: {
...@@ -195,7 +198,9 @@ export default { ...@@ -195,7 +198,9 @@ export default {
}, },
mounted() {}, mounted() {},
methods: {}, created(){
this.baseurl = process.env.VUE_APP_API_PHP_URL
}
}; };
</script> </script>
......
<template> <template>
<div class="callRecord-Container"> <div class="callRecord-Container">
<div class="header_box"> <div class="header_box">
<div> <div>
<a-button <a-button type="success" @click="toexportTable">
:loading="btnLoading" <span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span>
type="success" </a-button>
@click="handleExportTable" <a-button type="danger" @click="delTable">
> <span>批量删除</span>
<span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span> </a-button>
</a-button> <b>评价次数:<i>{{evaCount}}</i></b>
<a-button type="danger" @click="delTable"> <sub>统计时间段:{{evaDates[0]}}~{{evaDates[1]}}</sub>
<span>批量删除</span> </div>
</a-button> <span>
<b <a-space>
>评价次数:<i>{{ evaCount }}</i></b <a-select v-model="evaChoose" placeholder="全部评价" @change="changeEvaChoose" mode="multiple" style="max-width:140px">
> <a-select-option v-for="item in optonList" :key="item.id" :value="item.id">{{item.name}}</a-select-option>
<sub </a-select>
>统计时间段:{{ BegindAndEndTime[0] }}~{{ BegindAndEndTime[1] }}</sub <a-select v-model="evaFrom" placeholder="全部来源" @change="changeEvaFrom" mode="multiple" style="max-width:160px">
> <a-select-option value="1"> 窗口评价 </a-select-option>
</div> <a-select-option value="2"> 自助服务终端 </a-select-option>
<span> <a-select-option value="3"> 背靠背评价 </a-select-option>
<a-space> <a-select-option value="4"> 微官网 </a-select-option>
<a-select <a-select-option value="5"> 好差评 </a-select-option>
placeholder="全部评价" <a-select-option value="6"> 一体化评价 </a-select-option>
@change="changeEvaChoose" </a-select>
mode="multiple"
>
<a-select-option value="非常满意"> 非常满意 </a-select-option>
<a-select-option value="基本满意"> 基本满意 </a-select-option>
<a-select-option value="满意"> 满意 </a-select-option>
<a-select-option value="不满意"> 不满意 </a-select-option>
<a-select-option value="非常不满意"> 非常不满意 </a-select-option>
</a-select>
<a-select
placeholder="全部来源"
@change="changeEvaFrom"
mode="multiple"
>
<a-select-option value="1"> 窗口评价 </a-select-option>
<a-select-option value="2"> 自助服务终端 </a-select-option>
<a-select-option value="3"> 背靠背评价 </a-select-option>
<a-select-option value="4"> 微官网 </a-select-option>
<a-select-option value="5"> 好差评 </a-select-option>
<a-select-option value="6"> 一体化评价 </a-select-option>
</a-select>
<a-range-picker <a-range-picker :allowClear="false" format="YYYY年MM月DD日" class="range_picker_style" @change="rangePickerChange"
:allowClear="false" v-model="BegindAndEndTime">
format="YYYY-MM-DD" </a-range-picker>
class="range_picker_style"
valueFormat="YYYY-MM-DD"
v-model="BegindAndEndTime"
>
</a-range-picker>
<a-input v-model="searchName" placeholder="请输入内容搜索搜索"> <a-input v-model="searchName" placeholder="请输入评价人姓名或窗口编号搜索">
<a-icon slot="prefix" type="search" /> <a-icon slot="prefix" type="search" />
</a-input> </a-input>
<a-button type="primary" @click="handleSearch">搜索</a-button> <a-button type="primary" @click="togetevalist()">搜索</a-button>
<a-button @click="resetBtn">重置</a-button> <a-button @click="clearnAllChoose()">重置</a-button>
</a-space> </a-space>
</span> </span>
</div>
<div class="main">
<a-table size="small" bordered :row-key="(record) => record.id" :row-selection="{
selectedRowKeys: tableSelectedKeys,
onChange: onSelectChange,
}" :scroll="{ y: 590 }" :pagination="tablePagination" @change="pagTableChange" :loading="tableLoading"
:columns="tableHeaders" :dataSource="tableSourceData">
<template slot="评价人照片" slot-scope="text, record, index">
<a-avatar v-if="!text || !baseurl" shape="square" :size="40" icon="user" />
<img v-else :src="baseurl+'/'+text" alt="" srcset="" style="max-width: 100px; max-height: 100px;">
</template>
<template slot="操作" slot-scope="text, record, index">
<a-button type="link" style="color:#FF7370;">删除</a-button>
<a-button type="link" @click="openHandlingDetails(record)">详情</a-button>
</template>
</a-table>
<HandlingDetails ref="HandlingDetails"/>
<a-modal v-model="visible" title="系统提示" @ok="togetEvaDetil()">
{{content}}
</a-modal>
</div>
</div> </div>
<div class="main">
<a-table
size="small"
bordered
:row-key="(record) => record.id"
:row-selection="{
selectedRowKeys: tableSelectedKeys,
onChange: onSelectChange,
}"
:scroll="{ y: 590 }"
:pagination="tablePagination"
@change="pagTableChange"
:loading="tableLoading"
:columns="tableHeaders"
:dataSource="tableSourceData"
>
<!-- 序号 -->
<span slot="index" slot-scope="text, record, index">{{
(tablePagination.current - 1) * tablePagination.pageSize + index + 1
}}</span>
<template slot="评价人照片" slot-scope="text">
<a-avatar v-if="!text" shape="square" :size="40" icon="user" />
<img
v-else
:src="process.env.VUE_APP_API_BASE_URL + text"
alt=""
srcset=""
/>
</template>
<template slot="操作" slot-scope="text, record">
<a-button type="link" style="color: #ff7370">删除</a-button>
<a-button type="link" @click="openHandlingDetails(record)"
>详情</a-button
>
</template>
</a-table>
<HandlingDetails ref="HandlingDetails" />
<a-modal v-model="visible" title="系统提示" @ok="togetEvaDetil()">
{{ content }}
</a-modal>
</div>
</div>
</template> </template>
<script> <script>
import table from "@/mixins/table"; import table from "@/mixins/table";
import HandlingDetails from "./components/HandlingDetails.vue"; import HandlingDetails from "./components/HandlingDetails.vue";
import { import { getOptonList, getEvaList, getEvaData, getEvaDetil, getQueEvaData } from "@/api/dataAdmin";
getEvaList,
getEvaData,
getEvaDetil,
getQueEvaData,
} from "@/api/dataAdmin";
export default { export default {
mixins: [table], mixins: [table],
name: "departmentEvaluation", name: "departmentEvaluation",
data() { data() {
return { return {
btnLoading: false, tableHeaders: [
tableHeaders: [ {
{ title: "序号",
title: "序号", dataIndex: "index",
width: "60px", width: "60px",
align: "center", key: "index",
scopedSlots: { align: "center",
customRender: "index", customRender: (text, record, index) => `${index + 1}`,
}, },
{
title: "部门名称",
align: "center",
dataIndex: "section",
customRender: (text)=>{return text?text:'--'}
},
{
title: "评价选项",
align: "center",
dataIndex: "option_id",
customRender: (text)=>{return text?text:'--'}
},
{
title: "评价人",
align: "center",
dataIndex: "idcard_Name",
customRender: (text)=>{return text?text:'--'}
},
{
title: "身份证号",
align: "center",
dataIndex: "idcard_IDCardNo",
customRender: (text)=>{return text?text:'--'}
},
{
title: "手机号",
align: "center",
dataIndex: "phone",
customRender: (text)=>{return text?text:'--'}
},
{
title: "评价时间",
align: "center",
dataIndex: "create_time",
customRender: (text)=>{return text?text:'--'}
},
{
title: "评价来源",
align: "center",
dataIndex: "pjxt",
customRender: (text, record, index) => {
if(text == 1){
return '窗口评价'
}else if(text == 2){
return '自助服务终端'
}else if(text == 3){
return '背靠背评价'
}else if(text == 4){
return '微官网'
}else if(text == 5){
return '好差评'
}else if(text == 6){
return '一体化评价'
}else{
return '--'
}
},
},
{
title: "评价设备",
align: "center",
dataIndex: "source",
customRender: (text, record, index) => {
if(text == 1){
return '安卓'
}else if(text == 2){
return '导视机'
}else if(text == 3){
return '微信'
}else{
return '--'
}
},
},
{
title: "评价人照片",
align: "center",
dataIndex: "picture",
scopedSlots: {
customRender: "评价人照片",
},
},
{
title: "操作",
align: "center",
dataIndex: "操作",
scopedSlots: {
customRender: "操作",
},
},
],
BegindAndEndTime: [],
searchName: undefined,
//删除窗口判断
visible: false,
tableSourceData:[],
evaCount:0,//评价次数
evaChoose:[],//评价选项
evaFrom:[],// 评价来源
evaDates:[],// 评价日期
content:'此操作将删除该评价信息,是否继续?',
delId:null,//当前删除id
baseurl:'',
optonList:[]
};
},
components: {
HandlingDetails
},
mounted() {
this.setMoment();
// 设置默认时间为今天
this.evaDates=[this.$moment(new Date()).format("YYYY-MM-DD"),this.$moment(new Date()).format("YYYY-MM-DD")]
this.togetevalist()
getOptonList().then(res=>{
console.log(res);
if(res.code==1){
this.optonList = res.data
}
})
},
methods: {
clearnAllChoose(){
this.evaChoose = []
this.evaFrom = []
this.searchName = ''
}, },
{ //导出
title: "部门名称", toexportTable() {
align: "center", let tableData = [];
customRender: (text) => { // 拼接评价选项
return text.section ? text.section : "--"; let chooseStr = this.evaChoose.join(',')
}, // 要先拼接评价来源
let fromString = this.evaFrom.join(',')
if (this.tableSelectedRows.length == 0) {
getEvaList({
page:1,
size:-1,
type:'bmpj',
option_id:chooseStr,
pjxt:fromString,//传0代表全部
time:this.evaDates,
info:this.searchName
}).then((res)=>{
const{code,data} = res;
if(code == 1){
tableData = JSON.parse(JSON.stringify(data.data.data));
tableData.forEach((item)=>{
item.pjxt = item.pjxt == 1?'窗口评价':item.pjxt == 2?'自助服务终端':item.pjxt == 3?'背靠背评价':item.pjxt == 4?'微官网':item.pjxt == 5?'好差评':'一体化评价'
item.source = item.source == 1?'安卓': item.source == 2?'导视机':'微信'
})
let tableColumns = JSON.parse(JSON.stringify(this.tableHeaders));
let newTableData = tableData.map(item => {
let obj = {};
for (let key in item) {
obj[key] = item[key];
}
return obj;
})
let exprotExcelName = `${this.nowDay} / ${this.nowTime} / ${this.$route['meta']['title'] || '报表信息统计'}`;
this.exportExcel(tableColumns, newTableData, exprotExcelName);
}
})
} else {
tableData = JSON.parse(JSON.stringify(this.tableSelectedRows));
tableData.forEach((item)=>{
item.pjxt = item.pjxt == 1?'窗口评价':item.pjxt == 2?'自助服务终端':item.pjxt == 3?'背靠背评价':item.pjxt == 4?'微官网':item.pjxt == 5?'好差评':'一体化评价'
item.source = item.source == 1?'安卓': item.source == 2?'导视机':'微信'
})
let tableColumns = JSON.parse(JSON.stringify(this.tableHeaders));
let newTableData = tableData.map(item => {
let obj = {};
for (let key in item) {
obj[key] = item[key];
}
return obj;
})
let exprotExcelName = `${this.nowDay} / ${this.nowTime} / ${this.$route['meta']['title'] || '报表信息统计'}`;
this.exportExcel(tableColumns, newTableData, exprotExcelName);
}
}, },
{ delTable(){
title: "评价选项", // console.log(this.tableSelectedRows);
align: "center", this.visible = true;
dataIndex: "option_id", if(!this.tableSelectedRows.length){
this.content = '一条评论都没有选中'
}else{
this.content = '此操作将删除这些评价信息,是否继续?'
let arr = []
this.tableSelectedRows.forEach(item => {
arr.push(item.id)
});
this.delId = arr
}
}, },
{ togetEvaDetil(){
title: "评价人", getEvaDetil({
align: "center", id:this.delId
customRender: (text) => { }).then(res=>{
return text.idcard_Name ? text.idcard_Name : "--"; {
}, this.delId=null
this.visible = false;
// 要刷新页面
this.togetevalist()
}
})
}, },
{ togetQueEvaData(record){
title: "身份证号", getQueEvaData({
align: "center", id:record.id
customRender: (text) => { }).then(res=>{
return text.idcard_IDCardNo ? text.idcard_IDCardNo : "--"; console.log(res);
}, const {code,data} = res
if(code==1){
this.$refs.HandlingDetails.queEvaData = data
}
})
}, },
{ togetEvaData(id){
title: "手机号", getEvaData({
align: "center", id:id
customRender: (text) => { }).then(res=>{
return text.phone ? text.phone : "--"; console.log(res);
}, const {code,data} = res
if(code==1){
this.$refs.HandlingDetails.queEvaData = data
}
})
}, },
{ togetevalist(){
title: "评价时间", // 拼接评价选项
align: "center", let chooseStr = this.evaChoose.join(',')
dataIndex: "create_time", // 要先拼接评价来源
let fromString = this.evaFrom.join(',')
getEvaList({
page:this.tablePagination.current,
size:this.tablePagination.pageSize,
type:'bmpj',
option_id:chooseStr,
pjxt:fromString,//传0代表全部
time:this.evaDates,
info:this.searchName
}).then((res)=>{
console.log(11111,res);
const{code,data} = res;
if(code == 1){
this.tableSourceData = data.data.data
this.evaCount = data.count
this.tablePagination.total = data.count
}
})
}, },
{ changeEvaFrom(val){
title: "评价来源", if(val.length){
align: "center", this.evaFrom = val;
dataIndex: "pjxt", }else{
customRender: (text, record, index) => { this.evaFrom = [0]
if (text == 1) {
return "窗口评价";
} else if (text == 2) {
return "自助服务终端";
} else if (text == 3) {
return "背靠背评价";
} else if (text == 4) {
return "微官网";
} else if (text == 5) {
return "好差评";
} else {
return "一体化评价";
} }
},
}, },
{ changeEvaChoose(val){
title: "评价设备", this.evaChoose = val
align: "center", },
dataIndex: "source", rangePickerChange(val) {
customRender: (text, record, index) => { this.evaDates = [this.$moment(val[0]).format("YYYY-MM-DD"),this.$moment(val[1]).format("YYYY-MM-DD")]
if (text == 1) { },
return "安卓"; QueueState(type) {
} else if (text == 2) { switch (type) {
return "导视机"; case 0:
} else { return "type1";
return "微信"; case 1:
return "type2";
default:
return "type0";
} }
},
}, },
{ //详情模块
title: "评价人照片", openHandlingDetails(record) {
align: "center", // 判断为窗口屏或者其他状况,调用不同接口
dataIndex: "picture", // if(record.pjxt==1){
scopedSlots: { // this.$refs.HandlingDetails.modalInfo.title = "办理明细";
customRender: "评价人照片", // this.$refs.HandlingDetails.modalInfo.show = 1;
}, // this.togetQueEvaData(record)
// }else{
this.$refs.HandlingDetails.modalInfo.title = "评价详情";
this.$refs.HandlingDetails.modalInfo.show = 2;
this.togetEvaData(record.id)
// }
this.$refs.HandlingDetails.modalInfo.visible = true;
}, },
{ //删除模态框
title: "操作", showModal(record) {
align: "center", this.visible = true;
dataIndex: "操作", this.delId = record.id
scopedSlots: {
customRender: "操作",
},
}, },
],
BegindAndEndTime: [
this.$moment(new Date()).format("YYYY-MM-DD"),
this.$moment(new Date()).format("YYYY-MM-DD"),
],
searchName: undefined,
//删除窗口判断
visible: false,
tableSourceData: [],
evaCount: 0, //评价次数
evaChoose: [], //评价选项
evaFrom: [0], // 评价来源
evaDates: [
this.$moment(new Date()).format("YYYY-MM-DD"),
this.$moment(new Date()).format("YYYY-MM-DD"),
], // 评价日期
content: "此操作将删除该评价信息,是否继续?",
delId: null, //当前删除id
tHeader: [
// 导出的表头名信息
"部门名称",
"评价选项",
"评价人",
"身份证号码",
"手机号",
"评价时间",
"评价来源",
"评价设备",
],
filterVal: [
// 导出的表头字段名,需要导出表格字段名
"section",
"option_id",
"idcard_Name",
"idcard_IDCardNo",
"phone",
"create_time",
"pjxt",
"source",
],
tableSelectedKeys: [],
tableSelectedRows: [],
};
},
components: {
HandlingDetails,
},
mounted() {
this.setMoment();
this.togetevalist();
},
methods: {
delTable() {
// console.log(this.tableSelectedRows);
this.visible = true;
if (!this.tableSelectedRows.length) {
this.content = "一条评论都没有选中";
} else {
this.content = "此操作将删除这些评价信息,是否继续?";
let arr = [];
this.tableSelectedRows.forEach((item) => {
arr.push(item.id);
});
this.delId = arr;
}
},
togetEvaDetil() {
getEvaDetil({
id: this.delId,
}).then((res) => {
{
this.delId = null;
this.visible = false;
// 要刷新页面
this.togetevalist();
}
});
}, },
togetQueEvaData(record) { watch:{
getQueEvaData({ tablePagination(){
id: record.id, this.togetevalist()
}).then((res) => {
console.log(res);
const { code, data } = res;
if (code == 1) {
this.$refs.HandlingDetails.queEvaData = data;
} }
});
},
togetEvaData(id) {
getEvaData({
id: id,
}).then((res) => {
const { code, data } = res;
if (code == 1) {
this.$refs.HandlingDetails.queEvaData = data;
}
});
},
// 搜索
handleSearch() {
this.tablePagination.current = 1;
this.tableSelectedKeys = [];
this.tableSelectedRows = [];
this.togetevalist();
}, },
//重置按钮 created(){
resetBtn() { this.baseurl = process.env.VUE_APP_API_PHP_URL
this.tablePagination.current = 1; }
this.tableSelectedKeys = [];
this.tableSelectedRows = [];
this.BegindAndEndTime = [
this.$moment(new Date()).format("YYYY-MM-DD"),
this.$moment(new Date()).format("YYYY-MM-DD"),
];
this.searchName = "";
this.togetevalist();
},
togetevalist() {
// 拼接评价选项
let chooseStr = this.evaChoose.join(",");
// 要先拼接评价来源
let fromString = this.evaFrom.join(",");
getEvaList({
page: this.tablePagination.current,
size: this.tablePagination.pageSize,
type: "bmpj",
option_id: chooseStr,
pjxt: fromString, //传0代表全部
time: this.BegindAndEndTime,
info: this.searchName,
}).then((res) => {
const { code, data } = res;
if (code == 1) {
this.tableSourceData = data.data.data;
this.evaCount = data.count;
this.tablePagination.total = data.count;
}
});
},
changeEvaFrom(val) {
if (val.length) {
this.evaFrom = val;
} else {
this.evaFrom = [0];
}
},
changeEvaChoose(val) {
this.evaChoose = val;
},
rangePickerChange(val) {
this.evaDates = [
this.$moment(val[0]).format("YYYY-MM-DD"),
this.$moment(val[1]).format("YYYY-MM-DD"),
];
},
QueueState(type) {
switch (type) {
case 0:
return "type1";
case 1:
return "type2";
default:
return "type0";
}
},
//详情模块
openHandlingDetails(record) {
// 判断为窗口屏或者其他状况,调用不同接口
// if(record.pjxt==1){
// this.$refs.HandlingDetails.modalInfo.title = "办理明细";
// this.$refs.HandlingDetails.modalInfo.show = 1;
// this.togetQueEvaData(record)
// }else{
this.$refs.HandlingDetails.modalInfo.title = "评价详情";
this.$refs.HandlingDetails.modalInfo.show = 2;
this.togetEvaData(record.id);
// }
this.$refs.HandlingDetails.modalInfo.visible = true;
},
//删除模态框
showModal(record) {
this.visible = true;
this.delId = record.id;
},
// 选中
onSelectChange(keys, rows) {
this.tableSelectedKeys = keys;
const res = new Map();
this.tableSelectedRows = [...this.tableSelectedRows, ...rows]
.filter((v) => {
return !res.has(v.id) && res.set(v.id, 1);
})
.filter((v) => {
return this.tableSelectedKeys.some((val) => v.id == val);
});
},
// 导出
async handleExportTable() {
this.btnLoading = true;
let obj = {
1: "窗口评价",
2: "自助服务终端",
3: "背靠背评价",
4: "微官网",
5: "好差评",
6: "一体化评价",
};
if (this.tableSelectedKeys.length && this.tableSelectedRows.length) {
this.tableSelectedRows.forEach((item) => {
Object.keys(obj).forEach((keys) => {
if (item.pjxt == keys) {
item.pjxt = obj[keys];
}
});
});
export2Excel(
this.tHeader,
this.filterVal,
this.tableSelectedRows,
"办事部门评价记录报表" + this.$moment().format("YYYYMMDDHHmmss")
);
} else {
// 拼接评价选项
let chooseStr = this.evaChoose.join(",");
// 要先拼接评价来源
let fromString = this.evaFrom.join(",");
getEvaList({
page: 1,
size: -1,
type: "bmpj",
option_id: chooseStr,
pjxt: fromString, //传0代表全部
time: this.BegindAndEndTime,
info: this.searchName,
}).then((res) => {
const { code, data } = res;
if (code == 1) {
if (!data.data.data.length) return;
for (let item of data.data.data) {
Object.keys(obj).forEach((key) => {
if (item.pjxt == key) {
item.pjxt = obj[key];
}
});
}
export2Excel(
this.tHeader,
this.filterVal,
data.data.data,
"办事部门评价记录报表" + this.$moment().format("YYYYMMDDHHmmss")
);
}
});
}
this.btnLoading = false;
},
},
watch: {
tablePagination() {
this.togetevalist();
},
},
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
/deep/.ant-spin-container { /deep/.ant-spin-container {
display: block; display: block;
} }
.header_box { .header_box {
padding-bottom: 1rem; padding-bottom: 1rem;
display: flex;
justify-content: space-between;
align-items: center;
& > div {
display: flex; display: flex;
justify-content: flex-start; justify-content: space-between;
align-items: center; align-items: center;
b { &>div {
font-style: normal; display: flex;
font-weight: unset; justify-content: flex-start;
font-size: 16px; align-items: center;
margin-left: 20px;
i { b {
color: #0595fd; font-style: normal;
font-style: normal; font-weight: unset;
} font-size: 16px;
} margin-left: 20px;
i {
color: #0595fd;
font-style: normal;
}
}
sub { sub {
font-size: 14px; font-size: 14px;
font-style: normal; font-style: normal;
bottom: unset; bottom: unset;
margin-left: 20px; margin-left: 20px;
}
} }
}
} }
</style> </style>
......
<template> <template>
<div class="callRecord-Container"> <div class="callRecord-Container">
<div class="header_box"> <div class="header_box">
<div> <div>
<a-button <a-button type="success" @click="toexportTable">
:loading="btnLoading" <span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span>
type="success" </a-button>
@click="handleExportTable" <a-button type="danger" @click="delTable">
> <span>批量删除</span>
<span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span> </a-button>
</a-button> <b>评价次数:<i>{{evaCount}}</i></b>
<a-button type="danger" @click="delTable"> <sub>统计时间段:{{evaDates[0]}}~{{evaDates[1]}}</sub>
<span>批量删除</span> </div>
</a-button> <span>
<b <a-space>
>评价次数:<i>{{ evaCount }}</i></b <a-select v-model="evaChoose" placeholder="全部评价" @change="changeEvaChoose" mode="multiple" style="max-width:140px">
> <a-select-option v-for="item in optonList" :key="item.id" :value="item.id">{{item.name}}</a-select-option>
<sub </a-select>
>统计时间段:{{ BegindAndEndTime[0] }}~{{ BegindAndEndTime[1] }}</sub <a-select v-model="evaFrom" placeholder="全部来源" @change="changeEvaFrom" mode="multiple" style="max-width:160px">
> <a-select-option value="1"> 窗口评价 </a-select-option>
</div> <a-select-option value="2"> 自助服务终端 </a-select-option>
<span> <a-select-option value="3"> 背靠背评价 </a-select-option>
<a-space> <a-select-option value="4"> 微官网 </a-select-option>
<a-select <a-select-option value="5"> 好差评 </a-select-option>
placeholder="全部评价" <a-select-option value="6"> 一体化评价 </a-select-option>
@change="changeEvaChoose" </a-select>
mode="multiple"
>
<a-select-option value="非常满意"> 非常满意 </a-select-option>
<a-select-option value="基本满意"> 基本满意 </a-select-option>
<a-select-option value="满意"> 满意 </a-select-option>
<a-select-option value="不满意"> 不满意 </a-select-option>
<a-select-option value="非常不满意"> 非常不满意 </a-select-option>
</a-select>
<a-select
placeholder="全部来源"
@change="changeEvaFrom"
mode="multiple"
>
<a-select-option value="1"> 窗口评价 </a-select-option>
<a-select-option value="2"> 自助服务终端 </a-select-option>
<a-select-option value="3"> 背靠背评价 </a-select-option>
<a-select-option value="4"> 微官网 </a-select-option>
<a-select-option value="5"> 好差评 </a-select-option>
<a-select-option value="6"> 一体化评价 </a-select-option>
</a-select>
<a-range-picker <a-range-picker :allowClear="false" format="YYYY年MM月DD日" class="range_picker_style" @change="rangePickerChange"
allowClear v-model="BegindAndEndTime">
format="YYYY-MM-DD" </a-range-picker>
valueFormat="YYYY-MM-DD"
class="range_picker_style"
v-model="BegindAndEndTime"
>
</a-range-picker>
<a-input v-model="searchName" placeholder="请输入内容搜索搜索"> <a-input v-model="searchName" placeholder="请输入评价人姓名或窗口编号搜索">
<a-icon slot="prefix" type="search" /> <a-icon slot="prefix" type="search" />
</a-input> </a-input>
<a-button type="primary" @click="handleSearch">搜索</a-button> <a-button type="primary" @click="togetevalist()">搜索</a-button>
<a-button @click="resetBtn">重置</a-button> <a-button @click="clearnAllChoose()">重置</a-button>
</a-space> </a-space>
</span> </span>
</div>
<div class="main">
<a-table size="small" bordered :row-key="(record) => record.id" :row-selection="{
selectedRowKeys: tableSelectedKeys,
onChange: onSelectChange,
}" :scroll="{ y: 590 }" :pagination="tablePagination" @change="pagTableChange" :loading="tableLoading"
:columns="tableHeaders" :dataSource="tableSourceData">
<template slot="评价人照片" slot-scope="text, record, index">
<a-avatar v-if="!text || !baseurl" shape="square" :size="40" icon="user" />
<img v-else :src="baseurl+'/'+text" alt="" srcset="" style="max-width: 100px; max-height: 100px;">
</template>
<template slot="操作" slot-scope="text, record, index">
<a-button type="link" style="color:#FF7370;" @click="showModal(record)">删除</a-button>
<a-button type="link" @click="openHandlingDetails(record)">详情</a-button>
</template>
</a-table>
<HandlingDetails ref="HandlingDetails" />
<a-modal v-model="visible" title="系统提示" @ok="togetEvaDetil()">
{{content}}
</a-modal>
</div>
</div> </div>
<div class="main">
<a-table
size="small"
bordered
:row-key="(record) => record.id"
:row-selection="{
selectedRowKeys: tableSelectedKeys,
onChange: onSelectChange,
}"
:scroll="{ y: 590 }"
:pagination="tablePagination"
@change="pagTableChange"
:loading="tableLoading"
:columns="tableHeaders"
:dataSource="tableSourceData"
>
<!-- 序号 -->
<span slot="index" slot-scope="text, record, index">{{
(tablePagination.current - 1) * tablePagination.pageSize + index + 1
}}</span>
<template slot="评价人照片" slot-scope="text">
<a-avatar v-if="!text" shape="square" :size="40" icon="user" />
<img
v-else
:src="process.env.VUE_APP_API_BASE_URL + text"
alt=""
srcset=""
/>
</template>
<template slot="操作" slot-scope="text, record">
<a-button
type="link"
style="color: #ff7370"
@click="showModal(record)"
>删除</a-button
>
<a-button type="link" @click="openHandlingDetails(record)"
>详情</a-button
>
</template>
</a-table>
<HandlingDetails ref="HandlingDetails" />
<a-modal v-model="visible" title="系统提示" @ok="togetEvaDetil()">
{{ content }}
</a-modal>
</div>
</div>
</template> </template>
<script> <script>
import table from "@/mixins/table"; import table from "@/mixins/table";
import { export2Excel } from "@/utils/js/exportExcel";
import HandlingDetails from "./components/HandlingDetails.vue"; import HandlingDetails from "./components/HandlingDetails.vue";
import { import { getOptonList, getEvaList, getEvaData, getEvaDetil, getQueEvaData } from "@/api/dataAdmin";
getEvaList,
getEvaData,
getEvaDetil,
getQueEvaData,
} from "@/api/dataAdmin";
export default { export default {
mixins: [table], mixins: [table],
name: "matterEvaluation", name: "matterEvaluation",
data() { data() {
return { return {
btnLoading: false, tableHeaders: [
tableHeaders: [ {
{ title: "序号",
title: "序号", dataIndex: "index",
width: "60px", width: "60px",
align: "center", key: "index",
scopedSlots: { align: "center",
customRender: "index", customRender: (text, record, index) => `${index + 1}`,
}, },
}, {
{ title: "排队编号",
title: "排队编号", align: "center",
align: "center", dataIndex: "flounum",
customRender: (text) => { customRender: (text)=>{return text?text:'--'}
return text.flounum ? text.flounum : "--"; },
}, {
title: "评价选项",
align: "center",
dataIndex: "option_id",
customRender: (text)=>{return text?text:'--'}
},
{
title: "评价人",
align: "center",
dataIndex: "idcard_Name",
customRender: (text)=>{return text?text:'--'}
},
{
title: "身份证号",
align: "center",
dataIndex: "idcard_IDCardNo",
customRender: (text)=>{return text?text:'--'}
},
{
title: "手机号",
align: "center",
dataIndex: "phone",
customRender: (text)=>{return text?text:'--'}
},
{
title: "评价时间",
align: "center",
dataIndex: "create_time",
customRender: (text)=>{return text?text:'--'}
},
{
title: "评价来源",
align: "center",
dataIndex: "pjxt",
customRender: (text, record, index) => {
if(text == 1){
return '窗口评价'
}else if(text == 2){
return '自助服务终端'
}else if(text == 3){
return '背靠背评价'
}else if(text == 4){
return '微官网'
}else if(text == 5){
return '好差评'
}else if(text ==6 ){
return '一体化评价'
}else{
return '--'
}
},
},
{
title: "评价设备",
align: "center",
dataIndex: "source",
customRender: (text, record, index) => {
if(text == 1){
return '安卓'
}else if(text == 2){
return '导视机'
}else if(text == 3){
return '微信'
}else{
return '--'
}
},
},
{
title: "评价人照片",
align: "center",
dataIndex: "picture",
scopedSlots: {
customRender: "评价人照片",
},
},
{
title: "操作",
align: "center",
dataIndex: "操作",
scopedSlots: {
customRender: "操作",
},
},
],
BegindAndEndTime: [],
searchName: undefined,
//删除窗口判断
visible: false,
tableSourceData:[],
evaCount:0,//评价次数
evaChoose:[],//评价选项
evaFrom:[],// 评价来源
evaDates:[],// 评价日期
content:'此操作将删除该评价信息,是否继续?',
delId:null,//当前删除id
baseurl:'',
optonList:[]
};
},
components: {
HandlingDetails
},
mounted() {
this.setMoment();
// 设置默认时间为今天
this.evaDates=[this.$moment(new Date()).format("YYYY-MM-DD"),this.$moment(new Date()).format("YYYY-MM-DD")]
this.togetevalist()
getOptonList().then(res=>{
console.log(res);
if(res.code==1){
this.optonList = res.data
}
})
},
methods: {
clearnAllChoose(){
this.evaChoose = []
this.evaFrom = []
this.searchName = ''
}, },
{ //导出
title: "评价选项", toexportTable() {
align: "center", let tableData = [];
dataIndex: "option_id", // 拼接评价选项
let chooseStr = this.evaChoose.join(',')
// 要先拼接评价来源
let fromString = this.evaFrom.join(',')
if (this.tableSelectedRows.length == 0) {
getEvaList({
page:1,
size:-1,
type:'phpj',
option_id:chooseStr,
pjxt:fromString,//传0代表全部
time:this.evaDates,
info:this.searchName
}).then((res)=>{
const{code,data} = res;
if(code == 1){
tableData = JSON.parse(JSON.stringify(data.data.data));
tableData.forEach((item)=>{
item.pjxt = item.pjxt == 1?'窗口评价':item.pjxt == 2?'自助服务终端':item.pjxt == 3?'背靠背评价':item.pjxt == 4?'微官网':item.pjxt == 5?'好差评':'一体化评价'
item.source = item.source == 1?'安卓': item.source == 2?'导视机':'微信'
})
let tableColumns = JSON.parse(JSON.stringify(this.tableHeaders));
let newTableData = tableData.map(item => {
let obj = {};
for (let key in item) {
obj[key] = item[key];
}
return obj;
})
let exprotExcelName = `${this.nowDay} / ${this.nowTime} / ${this.$route['meta']['title'] || '报表信息统计'}`;
this.exportExcel(tableColumns, newTableData, exprotExcelName);
}
})
} else {
tableData = JSON.parse(JSON.stringify(this.tableSelectedRows));
tableData.forEach((item)=>{
item.pjxt = item.pjxt == 1?'窗口评价':item.pjxt == 2?'自助服务终端':item.pjxt == 3?'背靠背评价':item.pjxt == 4?'微官网':item.pjxt == 5?'好差评':'一体化评价'
item.source = item.source == 1?'安卓': item.source == 2?'导视机':'微信'
})
let tableColumns = JSON.parse(JSON.stringify(this.tableHeaders));
let newTableData = tableData.map(item => {
let obj = {};
for (let key in item) {
obj[key] = item[key];
}
return obj;
})
let exprotExcelName = `${this.nowDay} / ${this.nowTime} / ${this.$route['meta']['title'] || '报表信息统计'}`;
this.exportExcel(tableColumns, newTableData, exprotExcelName);
}
}, },
{ delTable(){
title: "评价人", this.visible = true;
align: "center", if(!this.tableSelectedRows.length){
customRender: (text) => { this.content = '一条评论都没有选中'
return text.idcard_Name ? text.idcard_Name : "--"; }else{
}, this.content = '此操作将删除这些评价信息,是否继续?'
let arr = []
this.tableSelectedRows.forEach(item => {
arr.push(item.id)
});
this.delId = arr
}
}, },
{ togetEvaDetil(){
title: "身份证号", getEvaDetil({
align: "center", id:this.delId
customRender: (text) => { }).then(res=>{
return text.idcard_IDCardNo ? text.idcard_IDCardNo : "--"; {
}, this.delId=null
this.visible = false;
// 要刷新页面
this.togetevalist()
}
})
}, },
{ togetQueEvaData(record){
title: "手机号", getQueEvaData({
align: "center", id:record.id
customRender: (text) => { }).then(res=>{
return text.phone ? text.phone : "--"; console.log(res);
}, const {code,data} = res
if(code==1){
this.$refs.HandlingDetails.queEvaData = data
}
})
}, },
{ togetEvaData(id){
title: "评价时间", getEvaData({
align: "center", id:id
dataIndex: "create_time", }).then(res=>{
console.log(res);
const {code,data} = res
if(code==1){
this.$refs.HandlingDetails.queEvaData = data
}
})
}, },
{ togetevalist(){
title: "评价来源", // 拼接评价选项
align: "center", let chooseStr = this.evaChoose.join(',')
dataIndex: "pjxt", // 要先拼接评价来源
customRender: (text, record, index) => { let fromString = this.evaFrom.join(',')
if (text == 1) { getEvaList({
return "窗口评价"; page:this.tablePagination.current,
} else if (text == 2) { size:this.tablePagination.pageSize,
return "自助服务终端"; type:'phpj',
} else if (text == 3) { option_id:chooseStr,
return "背靠背评价"; pjxt:fromString,//传0代表全部
} else if (text == 4) { time:this.evaDates,
return "微官网"; info:this.searchName
} else if (text == 5) { }).then((res)=>{
return "好差评"; console.log(11111,res);
} else { const{code,data} = res;
return "一体化评价"; if(code == 1){
} this.tableSourceData = data.data.data
}, this.evaCount = data.count
this.tablePagination.total = data.count
}
})
}, },
{ changeEvaFrom(val){
title: "评价设备", if(val.length){
align: "center", this.evaFrom = val;
dataIndex: "source", }else{
customRender: (text, record, index) => { this.evaFrom = [0]
if (text == 1) {
return "安卓";
} else if (text == 2) {
return "导视机";
} else {
return "微信";
} }
},
}, },
{ changeEvaChoose(val){
title: "评价人照片", this.evaChoose = val
align: "center",
dataIndex: "picture",
scopedSlots: {
customRender: "评价人照片",
},
}, },
{ rangePickerChange(val) {
title: "操作", this.evaDates = [this.$moment(val[0]).format("YYYY-MM-DD"),this.$moment(val[1]).format("YYYY-MM-DD")]
align: "center",
dataIndex: "操作",
scopedSlots: {
customRender: "操作",
},
}, },
],
BegindAndEndTime: [
this.$moment(new Date()).format("YYYY-MM-DD"),
this.$moment(new Date()).format("YYYY-MM-DD"),
],
searchName: undefined,
//删除窗口判断
visible: false,
tableSourceData: [],
evaCount: 0, //评价次数
evaChoose: [], //评价选项
evaFrom: [0], // 评价来源
evaDates: [], // 评价日期
content: "此操作将删除该评价信息,是否继续?",
delId: null, //当前删除id
tHeader: [
// 导出的表头名信息
"排队编号",
"评价选项",
"评价人",
"身份证号码",
"手机号",
"评价时间",
"评价来源",
"评价设备",
],
filterVal: [
// 导出的表头字段名,需要导出表格字段名
"flounum",
"option_id",
"idcard_Name",
"idcard_IDCardNo",
"phone",
"create_time",
"pjxt",
"source",
],
tableSelectedKeys: [],
tableSelectedRows: [],
};
},
components: {
HandlingDetails,
},
mounted() {
this.setMoment();
this.togetevalist();
},
methods: {
delTable() {
this.visible = true;
if (!this.tableSelectedRows.length) {
this.content = "一条评论都没有选中";
} else {
this.content = "此操作将删除这些评价信息,是否继续?";
let arr = [];
this.tableSelectedRows.forEach((item) => {
arr.push(item.id);
});
this.delId = arr;
}
},
togetEvaDetil() {
getEvaDetil({
id: this.delId,
}).then((res) => {
{
this.delId = null;
this.visible = false;
// 要刷新页面
this.togetevalist();
}
});
},
togetQueEvaData(record) {
getQueEvaData({
id: record.id,
}).then((res) => {
console.log(res);
const { code, data } = res;
if (code == 1) {
this.$refs.HandlingDetails.queEvaData = data;
}
});
},
togetEvaData(id) {
getEvaData({
id: id,
}).then((res) => {
const { code, data } = res;
if (code == 1) {
this.$refs.HandlingDetails.queEvaData = data;
}
});
},
// 搜索
handleSearch() {
this.tablePagination.current = 1;
this.tableSelectedKeys = [];
this.tableSelectedRows = [];
this.togetevalist();
},
//重置按钮
resetBtn() {
this.tablePagination.current = 1;
this.tableSelectedKeys = [];
this.tableSelectedRows = [];
this.BegindAndEndTime = [
this.$moment(new Date()).format("YYYY-MM-DD"),
this.$moment(new Date()).format("YYYY-MM-DD"),
];
this.searchName = "";
this.togetevalist();
},
togetevalist() {
// 拼接评价选项
let chooseStr = this.evaChoose.join(",");
// 要先拼接评价来源
let fromString = this.evaFrom.join(",");
getEvaList({
page: this.tablePagination.current,
size: this.tablePagination.pageSize,
type: "phpj",
option_id: chooseStr,
pjxt: fromString, //传0代表全部
time: this.BegindAndEndTime,
info: this.searchName,
}).then((res) => {
const { code, data } = res;
if (code == 1) {
this.tableSourceData = data.data.data;
this.evaCount = data.count;
this.tablePagination.total = data.count;
}
});
},
changeEvaFrom(val) {
if (val.length) {
this.evaFrom = val;
} else {
this.evaFrom = [0];
}
},
changeEvaChoose(val) {
this.evaChoose = val;
},
QueueState(type) {
switch (type) {
case 0:
return "type1";
case 1:
return "type2";
default: QueueState(type) {
return "type0"; switch (type) {
} case 0:
}, return "type1";
//详情模块 case 1:
openHandlingDetails(record) { return "type2";
// 判断为窗口屏或者其他状况,调用不同接口
// if(record.pjxt==1){
this.$refs.HandlingDetails.modalInfo.title = "办理明细";
this.$refs.HandlingDetails.modalInfo.show = 1;
this.togetQueEvaData(record);
// }else{
// this.$refs.HandlingDetails.modalInfo.title = "评价详情";
// this.$refs.HandlingDetails.modalInfo.show = 2;
// this.togetEvaData(record.id)
// }
this.$refs.HandlingDetails.modalInfo.visible = true; default:
}, return "type0";
//删除模态框
showModal(record) {
this.visible = true;
this.delId = record.id;
},
// 选中
onSelectChange(keys, rows) {
this.tableSelectedKeys = keys;
const res = new Map();
this.tableSelectedRows = [...this.tableSelectedRows, ...rows]
.filter((v) => {
return !res.has(v.id) && res.set(v.id, 1);
})
.filter((v) => {
return this.tableSelectedKeys.some((val) => v.id == val);
});
},
// 导出
async handleExportTable() {
this.btnLoading = true;
let obj = {
1: "窗口评价",
2: "自助服务终端",
3: "背靠背评价",
4: "微官网",
5: "好差评",
6: "一体化评价",
};
if (this.tableSelectedKeys.length && this.tableSelectedRows.length) {
this.tableSelectedRows.forEach((item) => {
Object.keys(obj).forEach((keys) => {
if (item.pjxt == keys) {
item.pjxt = obj[keys];
} }
}); },
}); //详情模块
export2Excel( openHandlingDetails(record) {
this.tHeader, // 判断为窗口屏或者其他状况,调用不同接口
this.filterVal, // if(record.pjxt==1){
this.tableSelectedRows, this.$refs.HandlingDetails.modalInfo.title = "办理明细";
"办理事项评价评价记录报表" + this.$moment().format("YYYYMMDDHHmmss") this.$refs.HandlingDetails.modalInfo.show = 1;
); this.togetQueEvaData(record)
} else { // }else{
// 拼接评价选项 // this.$refs.HandlingDetails.modalInfo.title = "评价详情";
let chooseStr = this.evaChoose.join(","); // this.$refs.HandlingDetails.modalInfo.show = 2;
// 要先拼接评价来源 // this.togetEvaData(record.id)
let fromString = this.evaFrom.join(","); // }
getEvaList({
page: 1, this.$refs.HandlingDetails.modalInfo.visible = true;
size: -1, },
type: "phpj", //删除模态框
option_id: chooseStr, showModal(record) {
pjxt: fromString, //传0代表全部 this.visible = true;
time: this.BegindAndEndTime, this.delId = record.id
info: this.searchName, },
}).then((res) => {
const { code, data } = res;
if (code == 1) {
if (!data.data.data.length) return;
for (let item of data.data.data) {
Object.keys(obj).forEach((key) => {
if (item.pjxt == key) {
item.pjxt = obj[key];
}
});
}
export2Excel(
this.tHeader,
this.filterVal,
data.data.data,
"办理事项评价评价记录报表" +
this.$moment().format("YYYYMMDDHHmmss")
);
}
});
}
this.btnLoading = false;
}, },
}, watch:{
watch: { tablePagination(){
tablePagination() { this.togetevalist()
this.togetevalist(); }
}, },
}, created(){
this.baseurl = process.env.VUE_APP_API_PHP_URL
}
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
/deep/.ant-spin-container { /deep/.ant-spin-container {
display: block; display: block;
} }
.header_box { .header_box {
padding-bottom: 1rem; padding-bottom: 1rem;
display: flex;
justify-content: space-between;
align-items: center;
& > div {
display: flex; display: flex;
justify-content: flex-start; justify-content: space-between;
align-items: center; align-items: center;
b { &>div {
font-style: normal; display: flex;
font-weight: unset; justify-content: flex-start;
font-size: 16px; align-items: center;
margin-left: 20px;
i { b {
color: #0595fd; font-style: normal;
font-style: normal; font-weight: unset;
} font-size: 16px;
} margin-left: 20px;
i {
color: #0595fd;
font-style: normal;
}
}
sub { sub {
font-size: 14px; font-size: 14px;
font-style: normal; font-style: normal;
bottom: unset; bottom: unset;
margin-left: 20px; margin-left: 20px;
}
} }
}
} }
</style> </style>
......
<template> <template>
<div class="callRecord-Container"> <div class="callRecord-Container">
<div class="header_box"> <div class="header_box">
<div> <div>
<a-button <a-button type="success" @click="toexportTable">
type="success" <span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span>
:loading="btnLoading" </a-button>
@click="handleExportTable" <a-button type="danger" @click="delTable">
> <span>批量删除</span>
<span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span> </a-button>
</a-button> <b>评价次数:<i>{{evaCount}}</i></b>
<a-button type="danger" @click="delTable"> <sub>统计时间段:{{evaDates[0]}}~{{evaDates[1]}}</sub>
<span>批量删除</span> </div>
</a-button> <span>
<b <a-space>
>评价次数:<i>{{ evaCount }}</i></b <a-select v-model="evaChoose" placeholder="全部评价" @change="changeEvaChoose" mode="multiple" style="max-width:140px">
> <a-select-option v-for="item in optonList" :key="item.id" :value="item.id">{{item.name}}</a-select-option>
<sub </a-select>
>统计时间段:{{ BegindAndEndTime[0] }}~{{ BegindAndEndTime[1] }}</sub <a-select v-model="evaFrom" placeholder="全部来源" @change="changeEvaFrom" mode="multiple" style="max-width:160px">
> <a-select-option value="1"> 窗口评价 </a-select-option>
</div> <a-select-option value="2"> 自助服务终端 </a-select-option>
<span> <a-select-option value="3"> 背靠背评价 </a-select-option>
<a-space> <a-select-option value="4"> 微官网 </a-select-option>
<a-select <a-select-option value="5"> 好差评 </a-select-option>
placeholder="全部评价" <a-select-option value="6"> 一体化评价 </a-select-option>
@change="changeEvaChoose" </a-select>
mode="multiple"
>
<a-select-option value="非常满意"> 非常满意 </a-select-option>
<a-select-option value="基本满意"> 基本满意 </a-select-option>
<a-select-option value="满意"> 满意 </a-select-option>
<a-select-option value="不满意"> 不满意 </a-select-option>
<a-select-option value="非常不满意"> 非常不满意 </a-select-option>
</a-select>
<a-select
placeholder="全部来源"
@change="changeEvaFrom"
mode="multiple"
>
<a-select-option value="1"> 窗口评价 </a-select-option>
<a-select-option value="2"> 自助服务终端 </a-select-option>
<a-select-option value="3"> 背靠背评价 </a-select-option>
<a-select-option value="4"> 微官网 </a-select-option>
<a-select-option value="5"> 好差评 </a-select-option>
<a-select-option value="6"> 一体化评价 </a-select-option>
</a-select>
<a-range-picker <a-range-picker :allowClear="false" format="YYYY年MM月DD日" class="range_picker_style" @change="rangePickerChange"
format="YYYY-MM-DD" v-model="BegindAndEndTime">
valueFormat="YYYY-MM-DD" </a-range-picker>
class="range_picker_style"
v-model="BegindAndEndTime"
>
</a-range-picker>
<a-input v-model="searchName" placeholder="请输入内容搜索搜索"> <a-input v-model="searchName" placeholder="请输入评价人姓名或窗口编号搜索">
<a-icon slot="prefix" type="search" /> <a-icon slot="prefix" type="search" />
</a-input> </a-input>
<a-button type="primary" @click="handleSearch">搜索</a-button> <a-button type="primary" @click="togetevalist()">搜索</a-button>
<a-button @click="resetBtn">重置</a-button> <a-button @click="clearnAllChoose()">重置</a-button>
</a-space> </a-space>
</span> </span>
</div>
<div class="main">
<a-table size="small" bordered :row-key="(record) => record.id" :row-selection="{
selectedRowKeys: tableSelectedKeys,
onChange: onSelectChange,
}" :scroll="{ y: 590 }" :pagination="tablePagination" @change="pagTableChange" :loading="tableLoading"
:columns="tableHeaders" :dataSource="tableSourceData">
<template slot="评价人照片" slot-scope="text, record, index">
<a-avatar v-if="!text || !baseurl" shape="square" :size="40" icon="user" />
<img v-else :src="baseurl+'/'+text" alt="" srcset="" style="max-width: 100px; max-height: 100px;">
</template>
<template slot="操作" slot-scope="text, record, index">
<a-button type="link" style="color:#FF7370;" @click="showModal(record)">删除</a-button>
<a-button type="link" @click="openHandlingDetails(record)">详情</a-button>
</template>
</a-table>
<HandlingDetails ref="HandlingDetails" />
<a-modal v-model="visible" title="系统提示" @ok="togetEvaDetil()">
{{content}}
</a-modal>
</div>
</div> </div>
<div class="main">
<a-table
size="small"
bordered
:row-key="(record) => record.id"
:row-selection="{
selectedRowKeys: tableSelectedKeys,
onChange: onSelectChange,
}"
:scroll="{ y: 590 }"
:pagination="tablePagination"
@change="pagTableChange"
:loading="tableLoading"
:columns="tableHeaders"
:dataSource="tableSourceData"
>
<!-- 序号 -->
<span slot="index" slot-scope="text, record, index">{{
(tablePagination.current - 1) * tablePagination.pageSize + index + 1
}}</span>
<template slot="评价人照片" slot-scope="text">
<a-avatar v-if="!text" shape="square" :size="40" icon="user" />
<img
v-else
:src="process.env.VUE_APP_API_BASE_URL + text"
alt=""
srcset=""
/>
</template>
<template slot="操作" slot-scope="text, record">
<a-button
type="link"
style="color: #ff7370"
@click="showModal(record)"
>删除</a-button
>
<a-button type="link" @click="openHandlingDetails(record)"
>详情</a-button
>
</template>
</a-table>
<HandlingDetails ref="HandlingDetails" />
<a-modal v-model="visible" title="系统提示" @ok="togetEvaDetil()">
{{ content }}
</a-modal>
</div>
</div>
</template> </template>
<script> <script>
import table from "@/mixins/table"; import table from "@/mixins/table";
import { export2Excel } from "@/utils/js/exportExcel";
import HandlingDetails from "./components/HandlingDetails.vue"; import HandlingDetails from "./components/HandlingDetails.vue";
import { import { getOptonList, getEvaList, getEvaData, getEvaDetil, getQueEvaData } from "@/api/dataAdmin";
getEvaList,
getEvaData,
getEvaDetil,
getQueEvaData,
} from "@/api/dataAdmin";
export default { export default {
mixins: [table], mixins: [table],
name: "windowsEvaluation", name: "windowsEvaluation",
data() { data() {
return { return {
btnLoading: false, tableHeaders: [
tableHeaders: [ {
{ title: "序号",
title: "序号", dataIndex: "index",
width: "60px", width: "60px",
align: "center", key: "index",
scopedSlots: { align: "center",
customRender: "index", customRender: (text, record, index) => `${index + 1}`,
}, },
}, {
{ title: "窗口编号",
title: "窗口编号", align: "center",
align: "center", dataIndex: "window",
dataIndex: "flounum", customRender: (text)=>{return text?text:'--'}
},
{
title: "评价选项",
align: "center",
dataIndex: "option_id",
customRender: (text)=>{return text?text:'--'}
},
{
title: "评价人",
align: "center",
dataIndex: "idcard_Name",
customRender: (text)=>{return text?text:'--'}
},
{
title: "身份证号",
align: "center",
dataIndex: "idcard_IDCardNo",
customRender: (text)=>{return text?text:'--'}
},
{
title: "手机号",
align: "center",
dataIndex: "phone",
customRender: (text)=>{return text?text:'--'}
},
{
title: "评价时间",
align: "center",
dataIndex: "create_time",
customRender: (text)=>{return text?text:'--'}
},
{
title: "评价来源",
align: "center",
dataIndex: "pjxt",
customRender: (text, record, index) => {
if(text == 1){
return '窗口评价'
}else if(text == 2){
return '自助服务终端'
}else if(text == 3){
return '背靠背评价'
}else if(text == 4){
return '微官网'
}else if(text == 5){
return '好差评'
}else if(text == 6){
return '一体化评价'
}else{
return '--'
}
},
},
{
title: "评价设备",
align: "center",
dataIndex: "source",
customRender: (text, record, index) => {
if(text == 1){
return '安卓'
}else if(text == 2){
return '导视机'
}else if(text == 3){
return '微信'
}else{
return '--'
}
},
},
{
title: "评价人照片",
align: "center",
dataIndex: "picture",
scopedSlots: {
customRender: "评价人照片",
},
},
{
title: "操作",
align: "center",
dataIndex: "操作",
scopedSlots: {
customRender: "操作",
},
},
],
BegindAndEndTime: [],
searchName: undefined,// 搜索内容
//删除窗口判断
visible: false,
tableSourceData:[],
evaCount:0,//评价次数
evaChoose:[],//评价选项
evaFrom:[],// 评价来源
evaDates:[],// 评价日期
content:'此操作将删除该评价信息,是否继续?',
delId:null,//当前删除id
baseurl:'',
optonList:[]
};
},
components: {
HandlingDetails
},
mounted() {
this.setMoment();
// 设置默认时间为今天
this.evaDates=[this.$moment(new Date()).format("YYYY-MM-DD"),this.$moment(new Date()).format("YYYY-MM-DD")]
this.togetevalist()
getOptonList().then(res=>{
if(res.code==1){
this.optonList = res.data
}
})
},
methods: {
clearnAllChoose(){
this.evaChoose = []
this.evaFrom = []
this.searchName = ''
}, },
{ //导出
title: "评价选项", toexportTable() {
align: "center", let tableData = [];
dataIndex: "option_id", // 拼接评价选项
let chooseStr = this.evaChoose.join(',')
// 要先拼接评价来源
let fromString = this.evaFrom.join(',')
if (this.tableSelectedRows.length == 0) {
getEvaList({
page:1,
size:-1,
type:'ckpj',
option_id:chooseStr,
pjxt:fromString,//传0代表全部
time:this.evaDates,
info:this.searchName
}).then((res)=>{
const{code,data} = res;
if(code == 1){
tableData = JSON.parse(JSON.stringify(data.data.data));
tableData.forEach((item)=>{
item.pjxt = item.pjxt == 1?'窗口评价':item.pjxt == 2?'自助服务终端':item.pjxt == 3?'背靠背评价':item.pjxt == 4?'微官网':item.pjxt == 5?'好差评':'一体化评价'
item.source = item.source == 1?'安卓': item.source == 2?'导视机':'微信'
})
let tableColumns = JSON.parse(JSON.stringify(this.tableHeaders));
let newTableData = tableData.map(item => {
let obj = {};
for (let key in item) {
obj[key] = item[key];
}
return obj;
})
let exprotExcelName = `${this.nowDay} / ${this.nowTime} / ${this.$route['meta']['title'] || '报表信息统计'}`;
this.exportExcel(tableColumns, newTableData, exprotExcelName);
}
})
} else {
tableData = JSON.parse(JSON.stringify(this.tableSelectedRows));
tableData.forEach((item)=>{
item.pjxt = item.pjxt == 1?'窗口评价':item.pjxt == 2?'自助服务终端':item.pjxt == 3?'背靠背评价':item.pjxt == 4?'微官网':item.pjxt == 5?'好差评':'一体化评价'
item.source = item.source == 1?'安卓': item.source == 2?'导视机':'微信'
})
let tableColumns = JSON.parse(JSON.stringify(this.tableHeaders));
let newTableData = tableData.map(item => {
let obj = {};
for (let key in item) {
obj[key] = item[key];
}
return obj;
})
let exprotExcelName = `${this.nowDay} / ${this.nowTime} / ${this.$route['meta']['title'] || '报表信息统计'}`;
this.exportExcel(tableColumns, newTableData, exprotExcelName);
}
}, },
{ delTable(){
title: "评价人", this.visible = true;
align: "center", if(!this.tableSelectedRows.length){
customRender: (text) => { this.content = '一条评论都没有选中'
return text.idcard_Name ? text.idcard_Name : "--"; }else{
}, this.content = '此操作将删除这些评价信息,是否继续?'
let arr = []
this.tableSelectedRows.forEach(item => {
arr.push(item.id)
});
this.delId = arr
}
}, },
{ togetEvaDetil(){
title: "身份证号", getEvaDetil({
align: "center", id:this.delId
customRender: (text) => { }).then(res=>{
return text.idcard_IDCardNo ? text.idcard_IDCardNo : "--"; {
}, this.delId=null
this.visible = false;
// 要刷新页面
this.togetevalist()
}
})
}, },
{ togetQueEvaData(record){
title: "手机号", getQueEvaData({
align: "center", id:record.id
customRender: (text) => { }).then(res=>{
return text.phone ? text.phone : "--"; const {code,data} = res
}, if(code==1){
this.$refs.HandlingDetails.queEvaData = data
}
})
}, },
{ togetEvaData(id){
title: "评价时间", getEvaData({
align: "center", id:id
dataIndex: "create_time", }).then(res=>{
const {code,data} = res
if(code==1){
this.$refs.HandlingDetails.queEvaData = data
}
})
}, },
{ togetevalist(){
title: "评价来源", // 拼接评价选项
align: "center", let chooseStr = this.evaChoose.join(',')
dataIndex: "pjxt", // 要先拼接评价来源
customRender: (text, record, index) => { let fromString = this.evaFrom.join(',')
if (text == 1) { getEvaList({
return "窗口评价"; page:this.tablePagination.current,
} else if (text == 2) { size:this.tablePagination.pageSize,
return "自助服务终端"; type:'ckpj',
} else if (text == 3) { option_id:chooseStr,
return "背靠背评价"; pjxt:fromString,//传0代表全部
} else if (text == 4) { time:this.evaDates,
return "微官网"; info:this.searchName
} else if (text == 5) { }).then((res)=>{
return "好差评"; const{code,data} = res;
} else { if(code == 1){
return "一体化评价"; this.tableSourceData = data.data.data
} this.evaCount = data.count
}, this.tablePagination.total = data.count
}
})
}, },
{ changeEvaFrom(val){
title: "评价设备", if(val.length){
align: "center", this.evaFrom = val;
dataIndex: "source", }else{
customRender: (text, record, index) => { this.evaFrom = [0]
if (text == 1) {
return "安卓";
} else if (text == 2) {
return "导视机";
} else {
return "微信";
} }
},
}, },
{ changeEvaChoose(val){
title: "评价人照片", this.evaChoose = val
align: "center",
dataIndex: "picture",
scopedSlots: {
customRender: "评价人照片",
},
}, },
{ rangePickerChange(val) {
title: "操作", this.evaDates = [this.$moment(val[0]).format("YYYY-MM-DD"),this.$moment(val[1]).format("YYYY-MM-DD")]
align: "center",
dataIndex: "操作",
scopedSlots: {
customRender: "操作",
},
}, },
],
BegindAndEndTime: [
this.$moment(new Date()).format("YYYY-MM-DD"),
this.$moment(new Date()).format("YYYY-MM-DD"),
], // 评价日期
searchName: undefined, // 搜索内容
//删除窗口判断
visible: false,
tableSourceData: [],
evaCount: 0, //评价次数
evaChoose: [], //评价选项
evaFrom: [0], // 评价来源
// evaDates: [], // 评价日期
content: "此操作将删除该评价信息,是否继续?",
delId: null, //当前删除id
tableSelectedKeys: [],
tableSelectedRows: [],
tHeader: [
// 导出的表头名信息
"窗口编号",
"评价选项",
"评价人",
"身份证号码",
"手机号",
"评价时间",
"评价来源",
"评价设备",
],
filterVal: [
// 导出的表头字段名,需要导出表格字段名
"flounum",
"option_id",
"idcard_Name",
"idcard_IDCardNo",
"phone",
"create_time",
"pjxt",
"source",
],
};
},
components: {
HandlingDetails,
},
mounted() {
this.setMoment();
this.togetevalist();
},
methods: {
delTable() {
this.visible = true;
if (!this.tableSelectedRows.length) {
this.content = "一条评论都没有选中";
} else {
this.content = "此操作将删除这些评价信息,是否继续?";
let arr = [];
this.tableSelectedRows.forEach((item) => {
arr.push(item.id);
});
this.delId = arr;
}
},
togetEvaDetil() {
getEvaDetil({
id: this.delId,
}).then((res) => {
{
this.delId = null;
this.visible = false;
// 要刷新页面
this.togetevalist();
}
});
},
togetQueEvaData(record) {
getQueEvaData({
id: record.id,
}).then((res) => {
const { code, data } = res;
if (code == 1) {
this.$refs.HandlingDetails.queEvaData = data;
}
});
},
togetEvaData(id) {
getEvaData({
id: id,
}).then((res) => {
const { code, data } = res;
if (code == 1) {
this.$refs.HandlingDetails.queEvaData = data;
}
});
},
// 搜索
handleSearch() {
this.tablePagination.current = 1;
this.tableSelectedKeys = [];
this.tableSelectedRows = [];
this.togetevalist();
},
//重置按钮
resetBtn() {
this.tablePagination.current = 1;
this.tableSelectedKeys = [];
this.tableSelectedRows = [];
this.BegindAndEndTime = [
this.$moment(new Date()).format("YYYY-MM-DD"),
this.$moment(new Date()).format("YYYY-MM-DD"),
];
this.searchName = "";
this.togetevalist();
},
togetevalist() {
// 拼接评价选项
let chooseStr = this.evaChoose.join(",");
// 要先拼接评价来源
let fromString = this.evaFrom.join(",");
getEvaList({
page: this.tablePagination.current,
size: this.tablePagination.pageSize,
type: "ckpj",
option_id: chooseStr,
pjxt: fromString, //传0代表全部
time: this.BegindAndEndTime,
info: this.searchName,
}).then((res) => {
const { code, data } = res;
if (code == 1) {
this.tableSourceData = data.data.data;
this.evaCount = data.count;
this.tablePagination.total = data.count;
}
});
},
changeEvaFrom(val) {
if (val.length) {
this.evaFrom = val;
} else {
this.evaFrom = [0];
}
},
changeEvaChoose(val) {
this.evaChoose = val;
},
QueueState(type) {
switch (type) {
case 0:
return "type1";
case 1:
return "type2";
default: QueueState(type) {
return "type0"; switch (type) {
} case 0:
}, return "type1";
//详情模块 case 1:
openHandlingDetails(record) { return "type2";
// 判断为窗口屏或者其他状况,调用不同接口
if (record.pjxt == 1) {
this.$refs.HandlingDetails.modalInfo.title = "办理明细";
this.$refs.HandlingDetails.modalInfo.show = 1;
this.togetQueEvaData(record);
} else {
this.$refs.HandlingDetails.modalInfo.title = "评价详情";
this.$refs.HandlingDetails.modalInfo.show = 2;
this.togetEvaData(record.id);
}
this.$refs.HandlingDetails.modalInfo.visible = true; default:
}, return "type0";
//删除模态框
showModal(record) {
this.visible = true;
this.delId = record.id;
},
// 选中
onSelectChange(keys, rows) {
this.tableSelectedKeys = keys;
const res = new Map();
this.tableSelectedRows = [...this.tableSelectedRows, ...rows]
.filter((v) => {
return !res.has(v.id) && res.set(v.id, 1);
})
.filter((v) => {
return this.tableSelectedKeys.some((val) => v.id == val);
});
},
// 导出
async handleExportTable() {
this.btnLoading = true;
let obj = {
1: "窗口评价",
2: "自助服务终端",
3: "背靠背评价",
4: "微官网",
5: "好差评",
6: "一体化评价",
};
if (this.tableSelectedKeys.length && this.tableSelectedRows.length) {
this.tableSelectedRows.forEach((item) => {
Object.keys(obj).forEach((keys) => {
if (item.pjxt == keys) {
item.pjxt = obj[keys];
} }
}); },
}); //详情模块
export2Excel( openHandlingDetails(record) {
this.tHeader, // 判断为窗口屏或者其他状况,调用不同接口
this.filterVal, if(record.pjxt==1){
this.tableSelectedRows, this.$refs.HandlingDetails.modalInfo.title = "办理明细";
"窗口服务评价记录报表" + this.$moment().format("YYYYMMDDHHmmss") this.$refs.HandlingDetails.modalInfo.show = 1;
); this.togetQueEvaData(record)
} else { }else{
// 拼接评价选项 this.$refs.HandlingDetails.modalInfo.title = "评价详情";
let chooseStr = this.evaChoose.join(","); this.$refs.HandlingDetails.modalInfo.show = 2;
// 要先拼接评价来源 this.togetEvaData(record.id)
let fromString = this.evaFrom.join(",");
getEvaList({
page: 1,
size: -1,
type: "ckpj",
option_id: chooseStr,
pjxt: fromString, //传0代表全部
time: this.BegindAndEndTime,
info: this.searchName,
}).then((res) => {
const { code, data } = res;
if (code == 1) {
if (!data.data.data.length) return;
for (let item of data.data.data) {
Object.keys(obj).forEach((key) => {
if (item.pjxt == key) {
item.pjxt = obj[key];
}
});
} }
export2Excel(
this.tHeader, this.$refs.HandlingDetails.modalInfo.visible = true;
this.filterVal, },
data.data.data, //删除模态框
"窗口服务评价记录报表" + this.$moment().format("YYYYMMDDHHmmss") showModal(record) {
); this.visible = true;
} this.delId = record.id
}); },
}
this.btnLoading = false;
}, },
}, watch:{
watch: { tablePagination(){
tablePagination() { this.togetevalist()
this.togetevalist(); }
}, },
}, created(){
this.baseurl = process.env.VUE_APP_API_PHP_URL
}
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
/deep/.ant-spin-container { /deep/.ant-spin-container {
display: block; display: block;
} }
.header_box { .header_box {
padding-bottom: 1rem; padding-bottom: 1rem;
display: flex;
justify-content: space-between;
align-items: center;
& > div {
display: flex; display: flex;
justify-content: flex-start; justify-content: space-between;
align-items: center; align-items: center;
b { &>div {
font-style: normal; display: flex;
font-weight: unset; justify-content: flex-start;
font-size: 16px; align-items: center;
margin-left: 20px;
i {
color: #0595fd;
font-style: normal;
}
}
sub {
font-size: 14px;
font-style: normal;
bottom: unset;
margin-left: 20px;
} }
}
} }
</style> </style>
......
...@@ -264,10 +264,6 @@ export default { ...@@ -264,10 +264,6 @@ export default {
}, },
//状态 //状态
style: [ style: [
{
key: 0,
name: "排队中",
},
{ {
key: 1, key: 1,
name: "办理中", name: "办理中",
...@@ -280,7 +276,6 @@ export default { ...@@ -280,7 +276,6 @@ export default {
//Form数据列表 //Form数据列表
tableList: [], tableList: [],
obj: { obj: {
0: "排队中",
1: "办理中", 1: "办理中",
4: "办理完成", 4: "办理完成",
}, },
...@@ -380,6 +375,7 @@ export default { ...@@ -380,6 +375,7 @@ export default {
//用户模态框 //用户模态框
async openDeclarant(item) { async openDeclarant(item) {
await getPeopleanalyse({ await getPeopleanalyse({
idcard: item.people_idcard,
peopleid: item.peopleid, peopleid: item.peopleid,
time: this.searchForm.time, time: this.searchForm.time,
}).then((res) => { }).then((res) => {
......
...@@ -107,7 +107,7 @@ ...@@ -107,7 +107,7 @@
> >
<span <span
><i class="lable">叫号设备:</i ><i class="lable">叫号设备:</i
>{{ dataList.window_fromnum || "--" }}</span >{{ dataList.call_name || "--" }}</span
> >
</div> </div>
</div> </div>
......
<template> <template>
<div class="businessModal" ref="businessModal"> <div class="businessModal" ref="businessModal">
<a-modal :title="modalInfo.title" width="400px" :visible="modalInfo.visible" <a-modal :title="modalInfo.title" :visible="modalInfo.visible" :confirmLoading="modalInfo.confirmLoading"
:confirmLoading="modalInfo.confirmLoading" @cancel="modalClose" :centered="true" :destroyOnClose="true" @cancel="modalClose" :centered="true" :destroyOnClose="true" :getContainer="() => $refs.businessModal">
:getContainer="() => $refs.businessModal">
<div class="content"> <div class="content">
<h1>{{ title }}</h1> <h1>{{ title }}</h1>
<em v-if="dataList.matterlist">关联事项({{ dataList.matterlist.length }}</em> <em v-if="dataList.matterlist">关联事项({{ dataList.matterlist.length }}</em>
<p> <p>
<template v-for="item in dataList.matterlist"> <template v-for="item in dataList.matterlist">
<p>{{ item }}</p> <p>* {{ item }}</p>
</template> </template>
</p> </p>
<h4> <h4>
<span>受理次数<br /><i>{{ dataList.slcount }}</i></span> <span>受理次数<br /><i>{{ dataList.slcount }}</i></span>
<span>办结次数<br /><i>{{ dataList.bjcount }}</i></span> <span>办结次数<br /><i>{{ dataList.bjcount }}</i></span>
<span>好评率<br /><i>{{ dataList.hplv }}</i></span> <span>好评率<br /><i>{{ dataList.hplv }}%</i></span>
</h4> </h4>
</div> </div>
<template slot="footer"> <template slot="footer">
...@@ -50,7 +49,7 @@ export default { ...@@ -50,7 +49,7 @@ export default {
h1 { h1 {
font-size: 17px; font-size: 17px;
color: #139bfd; color: #139bfd;
padding: 20px; padding: 0 20px 20px 20px;
} }
em { em {
...@@ -64,10 +63,12 @@ export default { ...@@ -64,10 +63,12 @@ export default {
p { p {
padding: 3px 20px; padding: 3px 20px;
font-size: 16px; font-size: 16px;
width: 500px; width: 100%;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
} }
h4 { h4 {
......
<template> <template>
<div class="userModal" ref="userModal"> <div class="userModal" ref="userModal">
<a-modal <a-modal :title="modalInfo.title" :width="modalInfo.width" :visible="modalInfo.visible"
:title="modalInfo.title" :confirmLoading="modalInfo.confirmLoading" @cancel="modalClose" :centered="true" :destroyOnClose="true"
:width="modalInfo.width" :getContainer="() => $refs.userModal">
:visible="modalInfo.visible"
:confirmLoading="modalInfo.confirmLoading"
@cancel="modalClose"
:centered="true"
:destroyOnClose="true"
:getContainer="() => $refs.userModal"
>
<div class="content"> <div class="content">
<h1>{{ dataList.people_name}}</h1> <h1>{{ dataList.people_name }}</h1>
<p> <p>
<span>{{ dataList.people_sex }}</span> <span>{{ dataList.people_sex }}</span>
<span>{{ dataList.age }}</span> <span>{{ dataList.age }}</span>
<span>{{ dataList.people_phone }}</span> <span>{{ dataList.people_phone }}</span>
</p> </p>
<h2> <h2>
<span <span>预约次数<br /><i>{{ dataList.ordernum }}</i></span>
>预约次数<br /><i>{{ dataList.ordernum }}</i></span <span>排队次数<br /><i>{{ dataList.quenum }}</i></span>
> <span>关联业务<br /><i>{{ dataList.bus_num }}</i></span>
<span
>排队次数<br /><i>{{ dataList.quenum }}</i></span
>
<span
>关联业务<br /><i>{{ dataList.bus_num}}</i></span
>
</h2> </h2>
</div> </div>
<template slot="footer"> <template slot="footer">
<a-button type="primary" ghost @click="openBlockchain">查看TA的数据画像</a-button> <a-button type="primary" ghost @click="openBlockchain">查看TA的数据画像</a-button>
<a-button type="primary" ghost @click="openBlockchain" <a-button type="primary" ghost @click="openBlockchain">区块链信息</a-button>
>区块链信息</a-button
>
</template> </template>
</a-modal> </a-modal>
<Blockchain ref="Blockchain" /> <Blockchain ref="Blockchain" />
...@@ -48,14 +33,14 @@ export default { ...@@ -48,14 +33,14 @@ export default {
name: "PortalAdminVueUserInfo", name: "PortalAdminVueUserInfo",
data() { data() {
return { return {
dataList:[], dataList: [],
}; };
}, },
components: { components: {
Blockchain, Blockchain,
}, },
mounted() {}, mounted() { },
methods: { methods: {
openBlockchain() { openBlockchain() {
// this.$refs.Blockchain.modalInfo.visible = true; // this.$refs.Blockchain.modalInfo.visible = true;
...@@ -69,30 +54,35 @@ export default { ...@@ -69,30 +54,35 @@ export default {
.userModal { .userModal {
.content { .content {
h1 { h1 {
padding: 20px; padding: 0 20px;
color: #3bacfd; color: #3bacfd;
font-size: 18px; font-size: 18px;
} }
p { p {
padding: 20px; padding: 20px;
display: flex; display: flex;
justify-content: flex-start; justify-content: flex-start;
align-items: center; align-items: center;
span { span {
& + span { &+span {
margin-left: 30px; margin-left: 30px;
} }
} }
} }
h2 { h2 {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
padding: 20px; padding: 20px;
background: #f3faff; background: #f3faff;
span { span {
font-size: 16px; font-size: 16px;
text-align: center; text-align: center;
i { i {
color: #3bacfd; color: #3bacfd;
font-style: normal; font-style: normal;
...@@ -100,6 +90,7 @@ export default { ...@@ -100,6 +90,7 @@ export default {
} }
} }
} }
.ant-modal-body { .ant-modal-body {
padding: 0 !important; padding: 0 !important;
min-height: 300px !important; min-height: 300px !important;
......
<template> <template>
<div class="workPeopleModal" ref="workPeopleModal"> <div class="workPeopleModal" ref="workPeopleModal">
<a-modal :title="modalInfo.title" width="500px" :visible="modalInfo.visible" <a-modal :title="modalInfo.title" :visible="modalInfo.visible" :confirmLoading="modalInfo.confirmLoading"
:confirmLoading="modalInfo.confirmLoading" @cancel="modalClose" :centered="true" :destroyOnClose="true" @cancel="modalClose" :centered="true" :destroyOnClose="true" :getContainer="() => $refs.workPeopleModal">
:getContainer="() => $refs.workPeopleModal">
<div class="content"> <div class="content">
<div class="workInfo"> <div class="workInfo">
<div class="left"> <div class="left">
...@@ -15,14 +14,14 @@ ...@@ -15,14 +14,14 @@
<span><i class="lable">所属部门:</i>{{ infoData.deptName || "--" }}</span> <span><i class="lable">所属部门:</i>{{ infoData.deptName || "--" }}</span>
<span><i class="lable">政治面貌:</i>{{ $codeMap.politicalStatus[infoData.politicalstatus] || "--" }}</span> <span><i class="lable">政治面貌:</i>{{ $codeMap.politicalStatus[infoData.politicalstatus] || "--" }}</span>
<span><i class="lable">电话:</i>{{ infoData.mobile || "--" }}</span> <span><i class="lable">电话:</i>{{ infoData.mobile || "--" }}</span>
<span><i class="lable">星级:</i>{{ infoData.starlevel +'' || "--" }} </span> <span v-show="infoData.starlevel"><i class="lable">星级:</i>{{ infoData.starlevel + '' || "--" }} </span>
</div> </div>
</div> </div>
</div> </div>
<h2> <h2>
<span>受理业务<br /><i>{{ infoData.slbusiness || "0" }}</i></span> <span>受理业务<br /><i>{{ infoData.slbusiness || "0" }}</i></span>
<span>评价次数<br /><i>{{ infoData.pjnum || "0" }}</i></span> <span>评价次数<br /><i>{{ infoData.pjnum || "0" }}</i></span>
<span>好评率<br /><i>{{ infoData.hplv || "0" }}</i></span> <span>好评率<br /><i>{{ infoData.hplv + '%' || "--" }}</i></span>
</h2> </h2>
</div> </div>
<template slot="footer"> <template slot="footer">
...@@ -72,6 +71,7 @@ export default { ...@@ -72,6 +71,7 @@ export default {
width: 100px; width: 100px;
padding: 0 10px; padding: 0 10px;
img { img {
max-height: 120px; max-height: 120px;
width: 100%; width: 100%;
...@@ -94,6 +94,9 @@ export default { ...@@ -94,6 +94,9 @@ export default {
display: inline-block; display: inline-block;
width: 49%; width: 49%;
padding: 2px 0; padding: 2px 0;
overflow: hidden; // 溢出部分隐藏
white-space: nowrap; // 文字不换行
text-overflow: ellipsis; // 显示省略号
.lable { .lable {
display: inline-block; display: inline-block;
......
...@@ -2,27 +2,17 @@ ...@@ -2,27 +2,17 @@
<div class="queueRecord-Container"> <div class="queueRecord-Container">
<div class="header_box"> <div class="header_box">
<div> <div>
<a-button <a-button :loading="btnLoading" type="success" @click="handleExportTable">
:loading="btnLoading"
type="success"
@click="handleExportTable"
>
<span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span> <span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span>
</a-button> </a-button>
<b <b>取号次数:<i>{{ tablePagination.total }}</i></b>
>叫号次数:<i>{{ tablePagination.total }}</i></b
>
<sub>统计时间段:{{ searchForm.time[0] }}~{{ searchForm.time[1] }}</sub> <sub>统计时间段:{{ searchForm.time[0] }}~{{ searchForm.time[1] }}</sub>
</div> </div>
<span> <span>
<a-space> <a-space>
<a-select v-model="searchForm.id" style="width: 120px"> <a-select v-model="searchForm.id" style="width: 120px">
<a-select-option value=""> 全部设备 </a-select-option> <a-select-option value=""> 全部设备 </a-select-option>
<a-select-option <a-select-option v-for="item in deviceData" :key="item.id" :value="item.id">
v-for="item in deviceData"
:key="item.id"
:value="item.id"
>
{{ item.name }} {{ item.name }}
</a-select-option> </a-select-option>
</a-select> </a-select>
...@@ -34,10 +24,7 @@ ...@@ -34,10 +24,7 @@
</a-select> </a-select>
<a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time"> <a-range-picker valueFormat="YYYY-MM-DD" v-model="searchForm.time">
</a-range-picker> </a-range-picker>
<a-input <a-input v-model="searchForm.flownum" placeholder="请输入排队编号搜索">
v-model="searchForm.flownum"
placeholder="请输入排队编号搜索"
>
<a-icon slot="prefix" type="search" /> <a-icon slot="prefix" type="search" />
</a-input> </a-input>
<a-button type="primary" @click="handleSearch">搜索</a-button> <a-button type="primary" @click="handleSearch">搜索</a-button>
...@@ -46,21 +33,11 @@ ...@@ -46,21 +33,11 @@
</span> </span>
</div> </div>
<div class="main"> <div class="main">
<a-table <a-table size="small" bordered :row-key="(record) => record.id" :row-selection="{
size="small" selectedRowKeys: tableSelectedKeys,
bordered onChange: onSelectChange,
:row-key="(record) => record.id" }" :scroll="{ y: 590 }" :pagination="tablePagination" @change="changeTablePage" :loading="tableLoading"
:row-selection="{ :columns="tableHeaders" :dataSource="tableList">
selectedRowKeys: tableSelectedKeys,
onChange: onSelectChange,
}"
:scroll="{ y: 590 }"
:pagination="tablePagination"
@change="changeTablePage"
:loading="tableLoading"
:columns="tableHeaders"
:dataSource="tableList"
>
<!-- 序号 --> <!-- 序号 -->
<span slot="num" slot-scope="text, record, index">{{ <span slot="num" slot-scope="text, record, index">{{
(tablePagination.current - 1) * tablePagination.pageSize + index + 1 (tablePagination.current - 1) * tablePagination.pageSize + index + 1
...@@ -82,11 +59,7 @@ ...@@ -82,11 +59,7 @@
</template> </template>
<!-- 办理业务 --> <!-- 办理业务 -->
<template slot="business" slot-scope="text"> <template slot="business" slot-scope="text">
<a <a v-if="text.business" @click="openBusiness(text.business, text.businessid)">{{ text.business }}</a>
v-if="text.business"
@click="openBusiness(text.business, text.businessid)"
>{{ text.business }}</a
>
<span v-else>--</span> <span v-else>--</span>
</template> </template>
<!-- 办理开始时间 --> <!-- 办理开始时间 -->
...@@ -97,8 +70,8 @@ ...@@ -97,8 +70,8 @@
<template slot="window_name" slot-scope="text"> <template slot="window_name" slot-scope="text">
{{ {{
text.window_name text.window_name
? text.window_name + "-" + text.window_fromnum ? text.window_name + "-" + text.window_fromnum
: "--" : "--"
}} }}
</template> </template>
<!-- 工作人员 --> <!-- 工作人员 -->
...@@ -118,13 +91,11 @@ ...@@ -118,13 +91,11 @@
</template> </template>
<!-- 状态 --> <!-- 状态 -->
<template slot="style" slot-scope="text"> <template slot="style" slot-scope="text">
<span <span :class="{
:class="{ 'stand-line': text.style === 0,
'stand-line': text.style === 0, 'on-transact': text.style === 1,
'on-transact': text.style === 1, 'on-end': text.style === 4,
'on-end': text.style === 4, }">
}"
>
{{ $codeMap.queueState[text.style] }} {{ $codeMap.queueState[text.style] }}
</span> </span>
</template> </template>
...@@ -381,6 +352,7 @@ export default { ...@@ -381,6 +352,7 @@ export default {
//用户模态框 //用户模态框
async openDeclarant(item) { async openDeclarant(item) {
await getPeopleanalyse({ await getPeopleanalyse({
idcard: item.people_idcard,
peopleid: item.peopleid, peopleid: item.peopleid,
time: this.searchForm.time, time: this.searchForm.time,
}).then((res) => { }).then((res) => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment