Commit 9bd6458a authored by 王晓旭's avatar 王晓旭

评价、短信、填单、样表、网络理政

parent 698b1537
...@@ -26,4 +26,49 @@ export function getBusinessEvent(params){ ...@@ -26,4 +26,49 @@ export function getBusinessEvent(params){
//查询业务人员信息 //查询业务人员信息
export function getWorkerInfo(params){ export function getWorkerInfo(params){
return http.get(`${baseURL}/basics_api/base/workman/info`,params) return http.get(`${baseURL}/basics_api/base/workman/info`,params)
}
//评价数据列表
export function getEvaList(params){
return http.post(`${BASEURL}/bkb/evaluate/evaluatelist`,params)
}
// 评价数据详情
export function getEvaData(params){
return http.get(`${BASEURL}/bkb/evaluate/evaluatinfo`,params)
}
// 评价数据删除
export function getEvaDetil(params){
return http.get(`${BASEURL}/bkb/evaluate/evaluatedl`,params)
}
// 排号评价详情
export function getQueEvaData(params){
return http.get(`${BASEURL}/bkb/evaluate/queEvaluateInfo`,params)
}
// 短信月度账单
export function getSMSList(params){
return http.get(`${BASEURL}/inter/Recharge/smsMonthList`,params)
}
// 网络理政列表
export function getWLLZList(params){
return http.get(`${BASEURL}/wllz/index/list`,params)
}
// 网络理政统计
export function getWLLZCount(params){
return http.post(`${BASEURL}/wllz/complainapi/statisticsComplain`,params)
}
// 网络理政详情
export function getWLLZInfo(params){
return http.get(`${BASEURL}/wllz/index/complainInfo`,params)
}
// 样表列表
export function getBillList(params) {
return http.post(`${baseURL}/sampleform/sample/bill/list`, params);
}
// 填单列表
export function getPrintList(params) {
return http.post(`${baseURL}/fm/matter/datum/print/list`, params);
} }
\ No newline at end of file
...@@ -2,25 +2,19 @@ ...@@ -2,25 +2,19 @@
<div class="callRecord-Container"> <div class="callRecord-Container">
<div class="header_box"> <div class="header_box">
<div> <div>
<a-button type="success" @click="exportTable"> <a-button type="success" @click="toexportTable">
<span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span> <span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span>
</a-button> </a-button>
<b>累计发送短信量:<i>589726</i></b> <b>累计发送短信量:<i>{{allCount}}</i></b>
</div> </div>
<span> <span>
<a-select default-value="001"> <a-space>
<!-- <a-select-option <a-select :value="nowSite" @change="changeSite">
v-for="(item, index) of selectOptions" <a-select-option v-for="item in siteList" :key="item.value" :value="item.value"> {{item.label}} </a-select-option>
:key="index" </a-select>
:value="item.value"
>
{{ item.label }}
</a-select-option> -->
<a-select-option value="001"> 船山行政审批局 </a-select-option> <a-button type="primary" @click="togetSMSList()">搜索</a-button>
</a-select> </a-space>
<a-button type="primary">搜索</a-button>
</span> </span>
</div> </div>
<div class="main"> <div class="main">
...@@ -40,7 +34,7 @@ ...@@ -40,7 +34,7 @@
:dataSource="tableSourceData" :dataSource="tableSourceData"
> >
<template slot="operation" slot-scope="text, record, index"> <template slot="operation" slot-scope="text, record, index">
<a-button type="link">查看明细</a-button> <a-button type="link" @click="gotoSMSSystem()">查看明细</a-button>
</template> </template>
</a-table> </a-table>
</div> </div>
...@@ -49,6 +43,7 @@ ...@@ -49,6 +43,7 @@
<script> <script>
import table from "@/mixins/table"; import table from "@/mixins/table";
import {getSMSList} from "@/api/dataAdmin"
export default { export default {
mixins: [table], mixins: [table],
name: "PortalAdminVuePickUpRecord", name: "PortalAdminVuePickUpRecord",
...@@ -66,18 +61,18 @@ export default { ...@@ -66,18 +61,18 @@ export default {
{ {
title: "月度时间", title: "月度时间",
align: "center", align: "center",
dataIndex: "月度时间", dataIndex: "month",
}, },
{ {
title: "发送量", title: "发送量",
align: "center", align: "center",
dataIndex: "发送量", dataIndex: "send_num",
}, },
{ {
title: "账单生成时间", title: "账单生成时间",
align: "center", align: "center",
dataIndex: "账单生成时间", dataIndex: "update_time",
}, },
{ {
...@@ -91,21 +86,99 @@ export default { ...@@ -91,21 +86,99 @@ export default {
}, },
], ],
searchName: undefined, searchName: undefined,
nowSite:null,
siteList:[],
allCount:0
}; };
}, },
components: {}, components: {},
mounted() { mounted() {
this.setMoment(); this.setMoment();
for (let key = 0; key < 20; key++) { this.getSiteData()
this.tableSourceData.push({ this.togetSMSList()
id: `00${key + 1}`, },
月度时间: `2022-0${key + 1}`, methods: {
发送量: `585${key + 1}`, //导出
账单生成时间: `2022-07-01 09:09:09`, toexportTable() {
let tableData = [];
if (this.tableSelectedRows.length == 0) {
// 获取表信息
getSMSList({
siteid:this.nowSite,
page:1,
size:-1,
}).then((res)=>{
const {code,data} = res
if(code==1){
tableData = JSON.parse(JSON.stringify(data.list.data));
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));
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);
}
},
gotoSMSSystem(){
window.location.href="http://sms.wx3.com.cn/admin"
},
changeSite(e){
this.nowSite = e
},
// 获取当前站点和站点列表
getSiteData(){
this.nowSite = JSON.parse(localStorage.getItem('siteId'))
this.siteList = []
JSON.parse(localStorage.getItem('siteList')).forEach(item => {
this.siteList.push({
label:item.siteName,
value:item.id
})
}); });
},
togetSMSList(){
// 获取表信息
getSMSList({
siteid:this.nowSite,
page:this.tablePagination.current,
size:this.tablePagination.pageSize,
}).then((res)=>{
const {code,data} = res
if(code==1){
console.log(res);
this.tableSourceData = data.list.data
this.allCount=data.all_num
this.tablePagination.total = data.list.total
}
})
} }
}, },
methods: {}, watch:{
tablePagination(){
this.togetSMSList()
}
}
}; };
</script> </script>
......
...@@ -3,74 +3,157 @@ ...@@ -3,74 +3,157 @@
<a-drawer <a-drawer
:destroyOnClose="true" :destroyOnClose="true"
:title="modalInfo.title" :title="modalInfo.title"
:width="modalInfo.width" width="40%"
:visible="modalInfo.visible" :visible="modalInfo.visible"
@close="modalClose" @close="modalClose"
@getContainer="() => $refs.handling" @getContainer="() => $refs.handling"
> >
<div class="headerInfo"> <div v-if="modalInfo.show==1">
<p> <div class="headerInfo">
<span v-for="item of 3" <p>
>总耗时:13分15秒<i class="fa fa-long-arrow-down"></i <span>总耗时:{{queEvaData.alltime}}<i class="fa fa-long-arrow-down"></i></span>
></span> <span>等待时间:{{queEvaData.waittime}}<i class="fa fa-long-arrow-down"></i></span>
</p> <span>办理时间:{{queEvaData.bltime}}<i class="fa fa-long-arrow-down"></i></span>
<p><span v-for="item of 3">平均耗时:14分0秒</span></p> </p>
</div> <p>
<div class="state">接件结束</div> <span>平均耗时:{{queEvaData.p_alltime}}</span>
<a-steps <span>平均等待时间:{{queEvaData.p_waittime}}</span>
direction="vertical" <span>平均办理时间:{{queEvaData.p_bltime}}</span>
size="small" </p>
:current="approveLs.length" </div>
class="steps_box" <div class="state" v-if="queEvaData.style==0">未办理</div>
> <div class="state" v-if="queEvaData.style==1">办理中</div>
<a-step <div class="state" v-if="queEvaData.style==4">办理完成</div>
v-for="(item, index) of approveLs" <a-steps
:key="item.id" direction="vertical"
:disabled="true" size="small"
@click.stop="drawerchange(item.id)" :current="3"
class="step_box" class="steps_box"
> >
<div class="icon_box" slot="icon"></div> <!-- 排队中 -->
<div class="title_box" slot="title"> <a-step
<span class="title_name">{{ :disabled="true"
item.status == 1 class="step_box"
? "办理中" v-if="queEvaData.style>=0"
: item.status == 2
? "接件结束"
: "排队中"
}}</span>
</div>
<div
class="description_box"
slot="description"
v-if="item.status == 0"
> >
<div class="details"> <div class="icon_box" slot="icon"></div>
<span v-for="item of 8"><i class="lable">申报人:</i>张三</span> <div class="title_box" slot="title">
<span class="title_name">排队中</span>
</div>
<div
class="description_box"
slot="description"
>
<div class="details">
<span><i class="lable">申报人:</i>{{queEvaData.people_name}}</span>
<span><i class="lable">取号时间:</i>{{queEvaData.taketime}}</span>
<span><i class="lable">排队编码:</i>{{queEvaData.flownum}}</span>
<span><i class="lable">取号方式:</i>{{queEvaData.wy_signin>0?'在线取号':'现场取号'}}</span>
<span><i class="lable">注册方式:</i>--</span>
<span><i class="lable">取号设备:</i>{{queEvaData.take_name}}</span>
</div>
</div> </div>
</div> </a-step>
<div <!-- 办理中 -->
class="description_box" <a-step
slot="description" :disabled="true"
v-else-if="item.status == 1" class="step_box"
v-if="queEvaData.style>=1"
> >
<div class="details"> <div class="icon_box" slot="icon"></div>
<span v-for="item of 6"><i class="lable">办理窗口:</i>s003</span> <div class="title_box" slot="title">
<span class="title_name">办理中</span>
</div>
<div
class="description_box"
slot="description"
>
<div class="details">
<span><i class="lable">办理窗口:</i>{{queEvaData.window_name}}</span>
<span><i class="lable">办理开始时间:</i>{{queEvaData.bltime}}</span>
<span><i class="lable">工作人员:</i>{{queEvaData.workman_name}}</span>
<span><i class="lable">叫号设备:</i>{{queEvaData.calltime}}</span>
</div>
</div> </div>
</div> </a-step>
<div
class="description_box" <!-- 接件结束 -->
slot="description" <a-step
v-else-if="item.status == 2" :disabled="true"
class="step_box"
v-if="queEvaData.style>=1"
> >
<div class="details"> <div class="icon_box" slot="icon"></div>
<span v-for="item of 2" <div class="title_box" slot="title">
><i class="lable">办理结束时间:</i>2021-01-15 12:00:00</span <span class="title_name">接件结束</span>
> </div>
<div
class="description_box"
slot="description"
>
<div class="details">
<span><i class="lable">办理结束时间:</i>{{queEvaData.endtime}}</span>
<span><i class="lable">评价选项:</i>{{queEvaData.option_id}}</span>
<span><i class="lable">评价时间:</i>{{queEvaData.pj_time}}</span>
<span style="width:100%"><i class="lable">评价指标:</i>
<i class="pjzb" v-for="(item,index) in queEvaData.content" :key="index">{{item}}</i>
</span>
<span><i class="lable">评价来源:</i>{{queEvaData.source}}</span>
<span><i class="lable">评价设备:</i>{{queEvaData.pj_name}}</span>
<span><i class="lable">评价人照片:</i>
<a-avatar v-if="!queEvaData.idcardData_PhotoFileName" shape="square" :size="40" icon="user" />
<img v-else :src="process.env.VUE_APP_API_BASE_URL+text" alt="" srcset="">
</span>
</div>
</div> </div>
</div> </a-step>
</a-step>
</a-steps> </a-steps>
</div>
<div v-else>
<a-steps
direction="vertical"
size="small"
:current="3"
class="steps_box"
>
<!-- 评价 -->
<a-step
:disabled="true"
class="step_box"
>
<div class="icon_box" slot="icon"></div>
<div class="title_box" slot="title">
<span class="title_name">评价</span>
</div>
<div
class="description_box"
slot="description"
>
<div class="details">
<span><i class="lable">评价人:</i>{{queEvaData.idcard_Name}}</span>
<span><i class="lable">手机号:</i>{{queEvaData.phone}}</span>
<span><i class="lable">身份证号:</i>{{queEvaData.idcard_IDCardNo}}</span>
<span><i class="lable">窗口编号:</i>{{queEvaData.window_fronum}}</span>
<span><i class="lable">评价选项:</i>{{queEvaData.option_id}}</span>
<span><i class="lable">评价时间:</i>{{queEvaData.create_time}}</span>
<span style="width:100%"><i class="lable">评价指标:</i>
<i class="pjzb" v-for="(item,index) in queEvaData.content" :key="index">{{item}}</i>
</span>
<span><i class="lable">评价来源:</i>{{queEvaData.source}}</span>
<span><i class="lable">评价设备:</i>--</span>
<span>
<i class="lable">评价人照片:</i>
<a-avatar v-if="!queEvaData.idcardData_PhotoFileName" shape="square" :size="40" icon="user" />
<img v-else :src="process.env.VUE_APP_API_BASE_URL+text" alt="" srcset="">
</span>
</div>
</div>
</a-step>
</a-steps>
</div>
</a-drawer> </a-drawer>
</div> </div>
</template> </template>
...@@ -83,20 +166,7 @@ export default { ...@@ -83,20 +166,7 @@ export default {
data() { data() {
return { return {
approveLs: [ queEvaData:{}
{
id: "001",
status: 0,
},
{
id: "002",
status: 1,
},
{
id: "003",
status: 2,
},
],
}; };
}, },
filters: { filters: {
...@@ -130,6 +200,20 @@ export default { ...@@ -130,6 +200,20 @@ export default {
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.pjzb{
background: rgba(5, 149, 253, 0.1);
color: #0595FD;
border: 1px solid rgba(5, 149, 253, 1);
border-radius: 4px;
height: 24px;
line-height: 24px;
display: inline-block;
padding: 0 10px;
margin: 0 5px;
font-size: 12px;
text-align: center;
}
/deep/.ant-steps-icon { /deep/.ant-steps-icon {
top: -4px !important; top: -4px !important;
} }
......
...@@ -2,50 +2,42 @@ ...@@ -2,50 +2,42 @@
<div class="callRecord-Container"> <div class="callRecord-Container">
<div class="header_box"> <div class="header_box">
<div> <div>
<a-button type="success" @click="exportTable"> <a-button type="success" @click="toexportTable">
<span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span> <span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span>
</a-button> </a-button>
<a-button type="danger" @click="exportTable"> <a-button type="danger" @click="delTable">
<span>{{ tableSelectedRows.length ? "删除" : "删除全部" }}</span> <span>批量删除</span>
</a-button> </a-button>
<b>评价次数:<i>233</i></b> <b>评价次数:<i>{{evaCount}}</i></b>
<sub>统计时间段:2020.09.09~2021.09.09</sub> <sub>统计时间段:{{evaDates[0]}}~{{evaDates[1]}}</sub>
</div> </div>
<span> <span>
<a-select placeholder="全部评价"> <a-space>
<!-- <a-select-option <a-select placeholder="全部评价" @change="changeEvaChoose" mode="multiple">
v-for="(item, index) of selectOptions" <a-select-option value="非常满意"> 非常满意 </a-select-option>
:key="index" <a-select-option value="基本满意"> 基本满意 </a-select-option>
:value="item.value" <a-select-option value="满意"> 满意 </a-select-option>
> <a-select-option value="不满意"> 不满意 </a-select-option>
{{ item.label }} <a-select-option value="非常不满意"> 非常不满意 </a-select-option>
</a-select-option> -->
<a-select-option value="001"> 满意 </a-select-option>
<a-select-option value="002"> 非常满意 </a-select-option>
<a-select-option value="003"> 不满意 </a-select-option>
</a-select> </a-select>
<a-select placeholder="全部来源"> <a-select placeholder="全部来源" @change="changeEvaFrom" mode="multiple">
<!-- <a-select-option <a-select-option value="1"> 窗口评价 </a-select-option>
v-for="(item, index) of selectOptions" <a-select-option value="2"> 自助服务终端 </a-select-option>
:key="index" <a-select-option value="3"> 背靠背评价 </a-select-option>
:value="item.value" <a-select-option value="4"> 微官网 </a-select-option>
> <a-select-option value="5"> 好差评 </a-select-option>
{{ item.label }} <a-select-option value="6"> 一体化评价 </a-select-option>
</a-select-option> -->
<a-select-option value="001"> 设备001 </a-select-option>
<a-select-option value="002"> 设备002 </a-select-option>
</a-select> </a-select>
<a-range-picker format="YYYY年MM月DD日" class="range_picker_style" @change="rangePickerChange" <a-range-picker :allowClear="false" format="YYYY年MM月DD日" class="range_picker_style" @change="rangePickerChange"
v-model="BegindAndEndTime"> v-model="BegindAndEndTime">
</a-range-picker> </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">搜索</a-button> <a-button type="primary" @click="togetevalist()">搜索</a-button>
</a-space>
</span> </span>
</div> </div>
<div class="main"> <div class="main">
...@@ -55,14 +47,18 @@ ...@@ -55,14 +47,18 @@
}" :scroll="{ y: 590 }" :pagination="tablePagination" @change="pagTableChange" :loading="tableLoading" }" :scroll="{ y: 590 }" :pagination="tablePagination" @change="pagTableChange" :loading="tableLoading"
:columns="tableHeaders" :dataSource="tableSourceData"> :columns="tableHeaders" :dataSource="tableSourceData">
<template slot="评价人照片" slot-scope="text, record, index"> <template slot="评价人照片" slot-scope="text, record, index">
<a-avatar shape="square" :size="40" icon="user" /> <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>
<template slot="操作" slot-scope="text, record, index"> <template slot="操作" slot-scope="text, record, index">
<a-button type="link" style="color:#FF7370;">删除</a-button> <a-button type="link" style="color:#FF7370;">删除</a-button>
<a-button type="link" @click="openHandlingDetails">详情</a-button> <a-button type="link" @click="openHandlingDetails(record)">详情</a-button>
</template> </template>
</a-table> </a-table>
<HandlingDetails ref="HandlingDetails"/> <HandlingDetails ref="HandlingDetails"/>
<a-modal v-model="visible" title="系统提示" @ok="togetEvaDetil()">
{{content}}
</a-modal>
</div> </div>
</div> </div>
</template> </template>
...@@ -70,6 +66,8 @@ ...@@ -70,6 +66,8 @@
<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 { getEvaList, getEvaData, getEvaDetil, getQueEvaData } from "@/api/dataAdmin";
export default { export default {
mixins: [table], mixins: [table],
name: "departmentEvaluation", name: "departmentEvaluation",
...@@ -87,47 +85,71 @@ export default { ...@@ -87,47 +85,71 @@ export default {
{ {
title: "部门名称", title: "部门名称",
align: "center", align: "center",
dataIndex: "部门名称", dataIndex: "section",
}, },
{ {
title: "评价选项", title: "评价选项",
align: "center", align: "center",
dataIndex: "评价选项", dataIndex: "option_id",
}, },
{ {
title: "评价人", title: "评价人",
align: "center", align: "center",
dataIndex: "评价人", dataIndex: "idcard_Name",
}, },
{ {
title: "身份证号", title: "身份证号",
align: "center", align: "center",
dataIndex: "身份证号", dataIndex: "idcard_IDCardNo",
}, },
{ {
title: "手机号", title: "手机号",
align: "center", align: "center",
dataIndex: "手机号", dataIndex: "phone",
}, },
{ {
title: "评价时间", title: "评价时间",
align: "center", align: "center",
dataIndex: "评价时间", dataIndex: "create_time",
}, },
{ {
title: "评价来源", title: "评价来源",
align: "center", align: "center",
dataIndex: "评价来源", 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{
return '一体化评价'
}
},
}, },
{ {
title: "评价设备", title: "评价设备",
align: "center", align: "center",
dataIndex: "评价设备", dataIndex: "source",
customRender: (text, record, index) => {
if(text == 1){
return '安卓'
}else if(text == 2){
return '导视机'
}else{
return '微信'
}
},
}, },
{ {
title: "评价人照片", title: "评价人照片",
align: "center", align: "center",
dataIndex: "评价人照片", dataIndex: "picture",
scopedSlots: { scopedSlots: {
customRender: "评价人照片", customRender: "评价人照片",
}, },
...@@ -142,7 +164,16 @@ export default { ...@@ -142,7 +164,16 @@ export default {
}, },
], ],
BegindAndEndTime: [], BegindAndEndTime: [],
searchName: undefined, searchName: undefined,
//删除窗口判断
visible: false,
tableSourceData:[],
evaCount:0,//评价次数
evaChoose:[],//评价选项
evaFrom:[0],// 评价来源
evaDates:[],// 评价日期
content:'此操作将删除该评价信息,是否继续?',
delId:null,//当前删除id
}; };
}, },
components: { components: {
...@@ -150,25 +181,151 @@ export default { ...@@ -150,25 +181,151 @@ export default {
}, },
mounted() { mounted() {
this.setMoment(); this.setMoment();
for (let key = 0; key < 20; key++) { // 设置默认时间为今天
this.tableSourceData.push({ this.evaDates=[this.$moment(new Date()).format("YYYY-MM-DD"),this.$moment(new Date()).format("YYYY-MM-DD")]
id: `00${key + 1}`,
部门名称: `财政局`, this.togetevalist()
评价选项: `非常满意`,
评价人: `唐三`,
身份证号: `510311199909099999`,
手机号: `138888888888`,
联系电话: `138808888${key + 1}`,
评价时间: `2021-09-09 09:09:09${key + 1}`,
评价来源: `背靠背评价器`,
评价设备: `1楼背靠背评价器`,
// 评价人照片: `111`,
});
}
}, },
methods: { methods: {
//导出
toexportTable() {
let tableData = [];
// 拼接评价选项
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(){
// 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){
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=>{
console.log(res);
const {code,data} = res
if(code==1){
this.$refs.HandlingDetails.queEvaData = data
}
})
},
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.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){
if(val.length){
this.evaFrom = val;
}else{
this.evaFrom = [0]
}
},
changeEvaChoose(val){
this.evaChoose = val
},
rangePickerChange(val) { rangePickerChange(val) {
console.log(val); this.evaDates = [this.$moment(val[0]).format("YYYY-MM-DD"),this.$moment(val[1]).format("YYYY-MM-DD")]
}, },
QueueState(type) { QueueState(type) {
switch (type) { switch (type) {
...@@ -182,11 +339,31 @@ export default { ...@@ -182,11 +339,31 @@ export default {
} }
}, },
//详情模块 //详情模块
openHandlingDetails() { openHandlingDetails(record) {
this.$refs.HandlingDetails.modalInfo.title = "办理明细"; // 判断为窗口屏或者其他状况,调用不同接口
// 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; this.$refs.HandlingDetails.modalInfo.visible = true;
}, },
//删除模态框
showModal(record) {
this.visible = true;
this.delId = record.id
},
}, },
watch:{
tablePagination(){
this.togetevalist()
}
}
}; };
</script> </script>
......
...@@ -2,50 +2,42 @@ ...@@ -2,50 +2,42 @@
<div class="callRecord-Container"> <div class="callRecord-Container">
<div class="header_box"> <div class="header_box">
<div> <div>
<a-button type="success" @click="exportTable"> <a-button type="success" @click="toexportTable">
<span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span> <span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span>
</a-button> </a-button>
<a-button type="danger" @click="exportTable"> <a-button type="danger" @click="delTable">
<span>{{ tableSelectedRows.length ? "删除" : "删除全部" }}</span> <span>批量删除</span>
</a-button> </a-button>
<b>评价次数:<i>233</i></b> <b>评价次数:<i>{{evaCount}}</i></b>
<sub>统计时间段:2020.09.09~2021.09.09</sub> <sub>统计时间段:{{evaDates[0]}}~{{evaDates[1]}}</sub>
</div> </div>
<span> <span>
<a-select placeholder="全部评价"> <a-space>
<!-- <a-select-option <a-select placeholder="全部评价" @change="changeEvaChoose" mode="multiple">
v-for="(item, index) of selectOptions" <a-select-option value="非常满意"> 非常满意 </a-select-option>
:key="index" <a-select-option value="基本满意"> 基本满意 </a-select-option>
:value="item.value" <a-select-option value="满意"> 满意 </a-select-option>
> <a-select-option value="不满意"> 不满意 </a-select-option>
{{ item.label }} <a-select-option value="非常不满意"> 非常不满意 </a-select-option>
</a-select-option> -->
<a-select-option value="001"> 满意 </a-select-option>
<a-select-option value="002"> 非常满意 </a-select-option>
<a-select-option value="003"> 不满意 </a-select-option>
</a-select> </a-select>
<a-select placeholder="全部来源"> <a-select placeholder="全部来源" @change="changeEvaFrom" mode="multiple">
<!-- <a-select-option <a-select-option value="1"> 窗口评价 </a-select-option>
v-for="(item, index) of selectOptions" <a-select-option value="2"> 自助服务终端 </a-select-option>
:key="index" <a-select-option value="3"> 背靠背评价 </a-select-option>
:value="item.value" <a-select-option value="4"> 微官网 </a-select-option>
> <a-select-option value="5"> 好差评 </a-select-option>
{{ item.label }} <a-select-option value="6"> 一体化评价 </a-select-option>
</a-select-option> -->
<a-select-option value="001"> 设备001 </a-select-option>
<a-select-option value="002"> 设备002 </a-select-option>
</a-select> </a-select>
<a-range-picker format="YYYY年MM月DD日" class="range_picker_style" @change="rangePickerChange" <a-range-picker :allowClear="false" format="YYYY年MM月DD日" class="range_picker_style" @change="rangePickerChange"
v-model="BegindAndEndTime"> v-model="BegindAndEndTime">
</a-range-picker> </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">搜索</a-button> <a-button type="primary" @click="togetevalist()">搜索</a-button>
</a-space>
</span> </span>
</div> </div>
<div class="main"> <div class="main">
...@@ -55,16 +47,17 @@ ...@@ -55,16 +47,17 @@
}" :scroll="{ y: 590 }" :pagination="tablePagination" @change="pagTableChange" :loading="tableLoading" }" :scroll="{ y: 590 }" :pagination="tablePagination" @change="pagTableChange" :loading="tableLoading"
:columns="tableHeaders" :dataSource="tableSourceData"> :columns="tableHeaders" :dataSource="tableSourceData">
<template slot="评价人照片" slot-scope="text, record, index"> <template slot="评价人照片" slot-scope="text, record, index">
<a-avatar shape="square" :size="40" icon="user" /> <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>
<template slot="操作" slot-scope="text, record, index"> <template slot="操作" slot-scope="text, record, index">
<a-button type="link" style="color:#FF7370;" @click="showModal(record)">删除</a-button> <a-button type="link" style="color:#FF7370;" @click="showModal(record)">删除</a-button>
<a-button type="link" @click="openHandlingDetails">详情</a-button> <a-button type="link" @click="openHandlingDetails(record)">详情</a-button>
</template> </template>
</a-table> </a-table>
<HandlingDetails ref="HandlingDetails" /> <HandlingDetails ref="HandlingDetails" />
<a-modal v-model="visible" title="系统提示" @ok="handleOk"> <a-modal v-model="visible" title="系统提示" @ok="togetEvaDetil()">
此操作将删除该评价信息,是否继续? {{content}}
</a-modal> </a-modal>
</div> </div>
</div> </div>
...@@ -73,6 +66,8 @@ ...@@ -73,6 +66,8 @@
<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 { getEvaList, getEvaData, getEvaDetil, getQueEvaData } from "@/api/dataAdmin";
export default { export default {
mixins: [table], mixins: [table],
name: "matterEvaluation", name: "matterEvaluation",
...@@ -90,47 +85,71 @@ export default { ...@@ -90,47 +85,71 @@ export default {
{ {
title: "排队编号", title: "排队编号",
align: "center", align: "center",
dataIndex: "排队编号", dataIndex: "flounum",
}, },
{ {
title: "评价选项", title: "评价选项",
align: "center", align: "center",
dataIndex: "评价选项", dataIndex: "option_id",
}, },
{ {
title: "评价人", title: "评价人",
align: "center", align: "center",
dataIndex: "评价人", dataIndex: "idcard_Name",
}, },
{ {
title: "身份证号", title: "身份证号",
align: "center", align: "center",
dataIndex: "身份证号", dataIndex: "idcard_IDCardNo",
}, },
{ {
title: "手机号", title: "手机号",
align: "center", align: "center",
dataIndex: "手机号", dataIndex: "phone",
}, },
{ {
title: "评价时间", title: "评价时间",
align: "center", align: "center",
dataIndex: "评价时间", dataIndex: "create_time",
}, },
{ {
title: "评价来源", title: "评价来源",
align: "center", align: "center",
dataIndex: "评价来源", 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{
return '一体化评价'
}
},
}, },
{ {
title: "评价设备", title: "评价设备",
align: "center", align: "center",
dataIndex: "评价设备", dataIndex: "source",
customRender: (text, record, index) => {
if(text == 1){
return '安卓'
}else if(text == 2){
return '导视机'
}else{
return '微信'
}
},
}, },
{ {
title: "评价人照片", title: "评价人照片",
align: "center", align: "center",
dataIndex: "评价人照片", dataIndex: "picture",
scopedSlots: { scopedSlots: {
customRender: "评价人照片", customRender: "评价人照片",
}, },
...@@ -148,6 +167,13 @@ export default { ...@@ -148,6 +167,13 @@ export default {
searchName: undefined, searchName: undefined,
//删除窗口判断 //删除窗口判断
visible: false, visible: false,
tableSourceData:[],
evaCount:0,//评价次数
evaChoose:[],//评价选项
evaFrom:[0],// 评价来源
evaDates:[],// 评价日期
content:'此操作将删除该评价信息,是否继续?',
delId:null,//当前删除id
}; };
}, },
components: { components: {
...@@ -155,25 +181,150 @@ export default { ...@@ -155,25 +181,150 @@ export default {
}, },
mounted() { mounted() {
this.setMoment(); this.setMoment();
for (let key = 0; key < 20; key++) { // 设置默认时间为今天
this.tableSourceData.push({ this.evaDates=[this.$moment(new Date()).format("YYYY-MM-DD"),this.$moment(new Date()).format("YYYY-MM-DD")]
id: `00${key + 1}`,
排队编号: `V00${key + 1}`, this.togetevalist()
评价选项: `非常满意`,
评价人: `唐三`,
身份证号: `510311199909099999`,
手机号: `138888888888`,
联系电话: `138808888${key + 1}`,
评价时间: `2021-09-09 09:09:09${key + 1}`,
评价来源: `自助服务终端`,
评价设备: `1楼自助服务终端`,
// 评价人照片: `111`,
});
}
}, },
methods: { methods: {
//导出
toexportTable() {
let tableData = [];
// 拼接评价选项
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(){
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=>{
console.log(res);
const {code,data} = res
if(code==1){
this.$refs.HandlingDetails.queEvaData = data
}
})
},
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.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){
if(val.length){
this.evaFrom = val;
}else{
this.evaFrom = [0]
}
},
changeEvaChoose(val){
this.evaChoose = val
},
rangePickerChange(val) { rangePickerChange(val) {
console.log(val); this.evaDates = [this.$moment(val[0]).format("YYYY-MM-DD"),this.$moment(val[1]).format("YYYY-MM-DD")]
}, },
QueueState(type) { QueueState(type) {
...@@ -188,21 +339,31 @@ export default { ...@@ -188,21 +339,31 @@ export default {
} }
}, },
//详情模块 //详情模块
openHandlingDetails() { openHandlingDetails(record) {
this.$refs.HandlingDetails.modalInfo.title = "办理明细"; // 判断为窗口屏或者其他状况,调用不同接口
// 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; this.$refs.HandlingDetails.modalInfo.visible = true;
}, },
//删除模态框 //删除模态框
showModal(record) { showModal(record) {
console.log(record)
this.visible = true; this.visible = true;
}, this.delId = record.id
//
handleOk(e) {
console.log(e);
this.visible = false;
}, },
}, },
watch:{
tablePagination(){
this.togetevalist()
}
}
}; };
</script> </script>
......
...@@ -2,50 +2,42 @@ ...@@ -2,50 +2,42 @@
<div class="callRecord-Container"> <div class="callRecord-Container">
<div class="header_box"> <div class="header_box">
<div> <div>
<a-button type="success" @click="exportTable"> <a-button type="success" @click="toexportTable">
<span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span> <span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span>
</a-button> </a-button>
<a-button type="danger" @click="exportTable"> <a-button type="danger" @click="delTable">
<span>{{ tableSelectedRows.length ? "删除" : "删除全部" }}</span> <span>批量删除</span>
</a-button> </a-button>
<b>评价次数:<i>233</i></b> <b>评价次数:<i>{{evaCount}}</i></b>
<sub>统计时间段:2020.09.09~2021.09.09</sub> <sub>统计时间段:{{evaDates[0]}}~{{evaDates[1]}}</sub>
</div> </div>
<span> <span>
<a-select placeholder="全部评价"> <a-space>
<!-- <a-select-option <a-select placeholder="全部评价" @change="changeEvaChoose" mode="multiple">
v-for="(item, index) of selectOptions" <a-select-option value="非常满意"> 非常满意 </a-select-option>
:key="index" <a-select-option value="基本满意"> 基本满意 </a-select-option>
:value="item.value" <a-select-option value="满意"> 满意 </a-select-option>
> <a-select-option value="不满意"> 不满意 </a-select-option>
{{ item.label }} <a-select-option value="非常不满意"> 非常不满意 </a-select-option>
</a-select-option> -->
<a-select-option value="001"> 满意 </a-select-option>
<a-select-option value="002"> 非常满意 </a-select-option>
<a-select-option value="003"> 不满意 </a-select-option>
</a-select> </a-select>
<a-select placeholder="全部来源"> <a-select placeholder="全部来源" @change="changeEvaFrom" mode="multiple">
<!-- <a-select-option <a-select-option value="1"> 窗口评价 </a-select-option>
v-for="(item, index) of selectOptions" <a-select-option value="2"> 自助服务终端 </a-select-option>
:key="index" <a-select-option value="3"> 背靠背评价 </a-select-option>
:value="item.value" <a-select-option value="4"> 微官网 </a-select-option>
> <a-select-option value="5"> 好差评 </a-select-option>
{{ item.label }} <a-select-option value="6"> 一体化评价 </a-select-option>
</a-select-option> -->
<a-select-option value="001"> 设备001 </a-select-option>
<a-select-option value="002"> 设备002 </a-select-option>
</a-select> </a-select>
<a-range-picker format="YYYY年MM月DD日" class="range_picker_style" @change="rangePickerChange" <a-range-picker :allowClear="false" format="YYYY年MM月DD日" class="range_picker_style" @change="rangePickerChange"
v-model="BegindAndEndTime"> v-model="BegindAndEndTime">
</a-range-picker> </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">搜索</a-button> <a-button type="primary" @click="togetevalist()">搜索</a-button>
</a-space>
</span> </span>
</div> </div>
<div class="main"> <div class="main">
...@@ -55,16 +47,17 @@ ...@@ -55,16 +47,17 @@
}" :scroll="{ y: 590 }" :pagination="tablePagination" @change="pagTableChange" :loading="tableLoading" }" :scroll="{ y: 590 }" :pagination="tablePagination" @change="pagTableChange" :loading="tableLoading"
:columns="tableHeaders" :dataSource="tableSourceData"> :columns="tableHeaders" :dataSource="tableSourceData">
<template slot="评价人照片" slot-scope="text, record, index"> <template slot="评价人照片" slot-scope="text, record, index">
<a-avatar shape="square" :size="40" icon="user" /> <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>
<template slot="操作" slot-scope="text, record, index"> <template slot="操作" slot-scope="text, record, index">
<a-button type="link" style="color:#FF7370;" @click="showModal(record)">删除</a-button> <a-button type="link" style="color:#FF7370;" @click="showModal(record)">删除</a-button>
<a-button type="link" @click="openHandlingDetails">详情</a-button> <a-button type="link" @click="openHandlingDetails(record)">详情</a-button>
</template> </template>
</a-table> </a-table>
<HandlingDetails ref="HandlingDetails" /> <HandlingDetails ref="HandlingDetails" />
<a-modal v-model="visible" title="系统提示" @ok="handleOk"> <a-modal v-model="visible" title="系统提示" @ok="togetEvaDetil()">
此操作将删除该评价信息,是否继续? {{content}}
</a-modal> </a-modal>
</div> </div>
</div> </div>
...@@ -73,6 +66,8 @@ ...@@ -73,6 +66,8 @@
<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 { getEvaList, getEvaData, getEvaDetil, getQueEvaData } from "@/api/dataAdmin";
export default { export default {
mixins: [table], mixins: [table],
name: "windowsEvaluation", name: "windowsEvaluation",
...@@ -90,47 +85,71 @@ export default { ...@@ -90,47 +85,71 @@ export default {
{ {
title: "窗口编号", title: "窗口编号",
align: "center", align: "center",
dataIndex: "窗口编号", dataIndex: "window",
}, },
{ {
title: "评价选项", title: "评价选项",
align: "center", align: "center",
dataIndex: "评价选项", dataIndex: "option_id",
}, },
{ {
title: "评价人", title: "评价人",
align: "center", align: "center",
dataIndex: "评价人", dataIndex: "idcard_Name",
}, },
{ {
title: "身份证号", title: "身份证号",
align: "center", align: "center",
dataIndex: "身份证号", dataIndex: "idcard_IDCardNo",
}, },
{ {
title: "手机号", title: "手机号",
align: "center", align: "center",
dataIndex: "手机号", dataIndex: "phone",
}, },
{ {
title: "评价时间", title: "评价时间",
align: "center", align: "center",
dataIndex: "评价时间", dataIndex: "create_time",
}, },
{ {
title: "评价来源", title: "评价来源",
align: "center", align: "center",
dataIndex: "评价来源", 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{
return '一体化评价'
}
},
}, },
{ {
title: "评价设备", title: "评价设备",
align: "center", align: "center",
dataIndex: "评价设备", dataIndex: "source",
customRender: (text, record, index) => {
if(text == 1){
return '安卓'
}else if(text == 2){
return '导视机'
}else{
return '微信'
}
},
}, },
{ {
title: "评价人照片", title: "评价人照片",
align: "center", align: "center",
dataIndex: "评价人照片", dataIndex: "picture",
scopedSlots: { scopedSlots: {
customRender: "评价人照片", customRender: "评价人照片",
}, },
...@@ -145,9 +164,16 @@ export default { ...@@ -145,9 +164,16 @@ export default {
}, },
], ],
BegindAndEndTime: [], BegindAndEndTime: [],
searchName: undefined, searchName: undefined,// 搜索内容
//删除窗口判断 //删除窗口判断
visible: false, visible: false,
tableSourceData:[],
evaCount:0,//评价次数
evaChoose:[],//评价选项
evaFrom:[0],// 评价来源
evaDates:[],// 评价日期
content:'此操作将删除该评价信息,是否继续?',
delId:null,//当前删除id
}; };
}, },
components: { components: {
...@@ -155,25 +181,147 @@ export default { ...@@ -155,25 +181,147 @@ export default {
}, },
mounted() { mounted() {
this.setMoment(); this.setMoment();
for (let key = 0; key < 20; key++) { // 设置默认时间为今天
this.tableSourceData.push({ this.evaDates=[this.$moment(new Date()).format("YYYY-MM-DD"),this.$moment(new Date()).format("YYYY-MM-DD")]
id: `00${key + 1}`,
窗口编号: `A000${key + 1}`, this.togetevalist()
评价选项: `非常满意`,
评价人: `唐三`,
身份证号: `510311199909099999`,
手机号: `138888888888`,
联系电话: `138808888${key + 1}`,
评价时间: `2021-09-09 09:09:09${key + 1}`,
评价来源: `窗口评价器`,
评价设备: `1楼0${key + 1}号窗口评价器`,
// 评价人照片: `111`,
});
}
}, },
methods: { methods: {
//导出
toexportTable() {
let tableData = [];
// 拼接评价选项
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(){
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
}
})
},
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.evaDates,
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) { rangePickerChange(val) {
console.log(val); this.evaDates = [this.$moment(val[0]).format("YYYY-MM-DD"),this.$moment(val[1]).format("YYYY-MM-DD")]
}, },
QueueState(type) { QueueState(type) {
...@@ -188,21 +336,31 @@ export default { ...@@ -188,21 +336,31 @@ export default {
} }
}, },
//详情模块 //详情模块
openHandlingDetails() { openHandlingDetails(record) {
this.$refs.HandlingDetails.modalInfo.title = "办理明细"; // 判断为窗口屏或者其他状况,调用不同接口
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; this.$refs.HandlingDetails.modalInfo.visible = true;
}, },
//删除模态框 //删除模态框
showModal(record) { showModal(record) {
console.log(record)
this.visible = true; this.visible = true;
}, this.delId = record.id
//
handleOk(e) {
console.log(e);
this.visible = false;
}, },
}, },
watch:{
tablePagination(){
this.togetevalist()
}
}
}; };
</script> </script>
......
...@@ -2,34 +2,36 @@ ...@@ -2,34 +2,36 @@
<div class="callRecord-Container"> <div class="callRecord-Container">
<div class="header_box"> <div class="header_box">
<div> <div>
<a-button type="success" @click="exportTable"> <a-button type="success" @click="toexportTable">
<span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span> <span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span>
</a-button> </a-button>
<b>填单次数:<i>233</i></b> <b>填单次数:<i>{{tablePagination.total}}</i></b>
<sub>统计时间段:2020.09.09~2021.09.09</sub> <sub>统计时间段:{{BegindAndEndTime[0]}}~{{BegindAndEndTime[1]}}</sub>
</div> </div>
<span> <span>
<a-input-group compact> <a-space>
<a-select default-value="Zhejiang" style="width:25%"> <!-- <a-input-group compact> -->
<a-select-option value="Zhejiang"> <a-select :default-value="1" style="width:25%" @change="changeSearchType">
<a-select-option :value="1">
按事项 按事项
</a-select-option> </a-select-option>
<a-select-option value="Jiangsu"> <a-select-option :value="2">
按材料 按材料
</a-select-option> </a-select-option>
</a-select> </a-select>
<a-input style="width:74.3%" v-model="searchName" placeholder="请输入评价人姓名或窗口编号搜索"> <a-input style="width:74.3%" v-model="searchName" placeholder="请输入评价人姓名或窗口编号搜索">
<a-icon slot="prefix" type="search" /> <a-icon slot="prefix" type="search" />
</a-input> </a-input>
</a-input-group> <!-- </a-input-group> -->
<a-range-picker format="YYYY年MM月DD日" class="range_picker_style" @change="rangePickerChange" <a-range-picker format="YYYY年MM月DD日" class="range_picker_style" @change="rangePickerChange">
v-model="BegindAndEndTime">
</a-range-picker> </a-range-picker>
<a-select placeholder="全部状态"> <a-select placeholder="全部状态" @change="changeStatu">
<a-select-option value="001"> 打印 </a-select-option> <a-select-option :value="0"> 全部类型 </a-select-option>
<a-select-option value="002"> 在线提交 </a-select-option> <a-select-option :value="1"> 打印 </a-select-option>
<a-select-option :value="2"> 在线提交 </a-select-option>
</a-select> </a-select>
<a-button type="primary">搜索</a-button> <a-button type="primary" @click="togetPrintList">搜索</a-button>
</a-space>
</span> </span>
</div> </div>
<div class="main"> <div class="main">
...@@ -40,18 +42,18 @@ ...@@ -40,18 +42,18 @@
:columns="tableHeaders" :dataSource="tableSourceData"> :columns="tableHeaders" :dataSource="tableSourceData">
<template slot="事项名称" slot-scope="text, record, index"> <template slot="事项名称" slot-scope="text, record, index">
<div> <div>
机动车登记证、行驶证核发 {{record.matterName?record.matterName:'--'}}
</div> </div>
<div class="tabFont"> <div class="tabFont">
事项全称:机动车登记证、行驶证审查、办理、核发 事项全称:{{record.matterFullName?record.matterFullName:"--"}}
</div> </div>
</template> </template>
<template slot="材料名称" slot-scope="text, record, index"> <template slot="材料名称" slot-scope="text, record, index">
<div> <div>
分公司登记申请书 {{record.materialName?record.materialName:'--'}}
</div> </div>
<div class="tabFont"> <div class="tabFont">
样表全称:分公司登记、变更、注销一张表申请书 样表全称:{{record.materialFullName?record.materialFullName:"--"}}
</div> </div>
</template> </template>
</a-table> </a-table>
...@@ -61,6 +63,8 @@ ...@@ -61,6 +63,8 @@
<script> <script>
import table from "@/mixins/table"; import table from "@/mixins/table";
import { getPrintList } from "@/api/dataAdmin";
export default { export default {
mixins: [table], mixins: [table],
...@@ -78,7 +82,7 @@ export default { ...@@ -78,7 +82,7 @@ export default {
}, },
{ {
title: "事项名称", title: "事项名称",
// align: "center", align: "center",
dataIndex: "事项名称", dataIndex: "事项名称",
width: 300, width: 300,
scopedSlots: { scopedSlots: {
...@@ -87,8 +91,8 @@ export default { ...@@ -87,8 +91,8 @@ export default {
}, },
{ {
title: "材料名称", title: "材料名称",
// align: "center", align: "center",
dataIndex: "材料名称", dataIndex: "materialName",
width: 300, width: 300,
scopedSlots: { scopedSlots: {
customRender: "材料名称", customRender: "材料名称",
...@@ -97,41 +101,47 @@ export default { ...@@ -97,41 +101,47 @@ export default {
{ {
title: "用户姓名", title: "用户姓名",
align: "center", align: "center",
dataIndex: "用户姓名", dataIndex: "idName",
}, },
{ {
title: "身份证号", title: "身份证号",
align: "center", align: "center",
dataIndex: "身份证号", dataIndex: "idCard",
}, },
{ {
title: "手机号码", title: "手机号码",
align: "center", align: "center",
dataIndex: "手机号码", dataIndex: "mobile",
}, },
{ {
title: "设备名称", title: "设备名称",
align: "center", align: "center",
dataIndex: "设备名称", dataIndex: "deviceName",
}, },
{ {
title: "结果类型", title: "结果类型",
align: "center", align: "center",
dataIndex: "结果类型", dataIndex: "type",
customRender: (text, record, index) => {
return text==1?'本地打印':'在线打印'
},
}, },
{ {
title: "操作时间", title: "操作时间",
align: "center", align: "center",
dataIndex: "操作时间", dataIndex: "createTime",
},
{
title: "累计耗时",
align: "center",
dataIndex: "累计耗时",
}, },
// {
// title: "累计耗时",
// align: "center",
// dataIndex: "累计耗时",
// },
], ],
BegindAndEndTime: [], BegindAndEndTime: [],
searchName: undefined, searchName: undefined,
searchType:1,
siteId:undefined,
statu:undefined
}; };
}, },
components: { components: {
...@@ -139,22 +149,109 @@ export default { ...@@ -139,22 +149,109 @@ export default {
}, },
mounted() { mounted() {
this.setMoment(); this.setMoment();
for (let key = 0; key < 20; key++) { this.BegindAndEndTime=[this.$moment(new Date()).format("YYYY-MM-DD"),this.$moment(new Date()).format("YYYY-MM-DD")]
this.tableSourceData.push({ this.siteId = JSON.parse(localStorage.getItem('siteId'))
id: `00${key + 1}`, this.togetPrintList()
用户姓名: `唐${key + 1}`, },
身份证号: `510311199909093333`, watch:{
手机号码: `13888888888`, tablePagination(){
设备名称: `一楼数字填单机`, this.togetPrintList()
结果类型: `打印`,
操作时间: `2021-09-09 09:09:0${key + 1}`,
累计耗时: `10分20秒`,
});
} }
}, },
methods: { methods: {
//导出
toexportTable() {
let tableData = [];
if (this.tableSelectedRows.length == 0) {
let pramse = {
page:this.tablePagination.current,
size:this.tablePagination.pageSize,
siteId:this.siteId,
matterName:"%%",
materialName:"%%",
createTimeStart:this.BegindAndEndTime[0],
createTimeEnd:this.BegindAndEndTime[1],
}
if(this.statu && this.statu!=0){
pramse.type=this.statu
}
if(this.searchType==1 && this.searchName){
pramse.matterName = '%'+this.searchName+'%'
}else if(this.searchName){
pramse.materialName='%'+this.searchName+'%'
}
getPrintList(pramse).then((res)=>{
const{code,data} = res;
if(code == 1){
tableData = JSON.parse(JSON.stringify(data.data));
tableData.forEach(item => {
item.type = item.type==1?"本地打印":"在线打印"
});
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.type = item.type==1?"本地打印":"在线打印"
});
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);
}
},
changeStatu(val){
this.statu = val
},
changeSearchType(val){
this.searchType = val
},
togetPrintList(){
let pramse = {
page:this.tablePagination.current,
size:this.tablePagination.pageSize,
siteId:this.siteId,
matterName:"%%",
materialName:"%%",
createTimeStart:this.BegindAndEndTime[0],
createTimeEnd:this.BegindAndEndTime[1],
}
if(this.statu && this.statu!=0){
pramse.type=this.statu
}
if(this.searchType==1 && this.searchName){
pramse.matterName = '%'+this.searchName+'%'
}else if(this.searchName){
pramse.materialName='%'+this.searchName+'%'
}
getPrintList(pramse).then((res)=>{
const{code,data} = res;
if(code==1){
console.log(res);
this.tableSourceData = data.data
this.tablePagination.total = data.total
}
})
},
rangePickerChange(val) { rangePickerChange(val) {
console.log(val); this.BegindAndEndTime=[this.$moment(val[0]).format("YYYY-MM-DD"),this.$moment(val[1]).format("YYYY-MM-DD")]
}, },
QueueState(type) { QueueState(type) {
......
...@@ -10,61 +10,57 @@ ...@@ -10,61 +10,57 @@
</div> </div>
<div class="card"> <div class="card">
<div class="cardTitle">纠错标题 </div> <div class="cardTitle">纠错标题 </div>
<div class="cardContent">关于《四川省2022年公共卫生特别服务岗项目实施方案》(川卫发〔2022〕7号)的问题</div> <div class="cardContent">{{fromData.title}}</div>
</div> </div>
<div class="infoDetail"> <div class="infoDetail">
<div class="card"> <div class="card">
<div class="cardTitle">建议类型 </div> <div class="cardTitle">建议类型 </div>
<div class="cardContent">部门建议</div> <div class="cardContent">{{fromData.type==1?'部门建议':fromData.type==2?'办事建议':fromData.type==3?'网站建议':fromData.type==4?'我要就错':fromData.type==5?'我要投诉':'我要咨询'}}</div>
</div> </div>
<div class="card"> <div class="card">
<div class="cardTitle">真实姓名</div> <div class="cardTitle">真实姓名</div>
<div class="cardContent">刘昊然 </div> <div class="cardContent">{{fromData.upname}} </div>
</div> </div>
<div class="card"> <div class="card">
<div class="cardTitle"> 身份证号 </div> <div class="cardTitle"> 身份证号 </div>
<div class="cardContent"> 513821196302302154</div> <div class="cardContent">{{fromData.idcard}}</div>
</div> </div>
<div class="card"> <div class="card">
<div class="cardTitle"> 电子邮箱 </div> <div class="cardTitle"> 电子邮箱 </div>
<div class="cardContent">1512685492@qq.com</div> <div class="cardContent">{{fromData.upmail}}</div>
</div> </div>
</div> </div>
<div class="card"> <div class="card">
<div class="cardTitle"> 联系地址 </div> <div class="cardTitle"> 联系地址 </div>
<div class="cardContent">四川省成都市高新区天益街1号理想中心1708号</div> <div class="cardContent">{{fromData.address}}</div>
</div> </div>
<div class="card"> <div class="card">
<div class="cardTitle"> 事件发生地 </div> <div class="cardTitle"> 事件发生地 </div>
<div class="cardContent">四川省武侯区市武侯一路大地世纪6栋631号</div> <div class="cardContent">{{fromData.thing_address}}</div>
</div> </div>
<div class="card"> <div class="card">
<div class="cardTitle"> 具体内容 </div> <div class="cardTitle"> 具体内容 </div>
<div class="cardContent">《四川省2022年新冠肺炎疫情防控应急岗位招募实施方案》(川卫人教函〔2022〕84号)有关规定,(二)就业支持政策其中:7. <div class="cardContent">{{fromData.content}}</div>
享受应届毕业生相关政策。参加公卫特别岗项目前无工作经历的人员服务满3周年且年度考核合格的,两年内参加机关和企事业单位招录(聘)、自主创业、落户等方面可同等享受应届毕业生相关政策。问题:无工作经历的人员是指从大学毕业到考上本次岗位之间没有交社保为准吗?比如我毕业后找了份工作,而且有交社保一个月再辞职,然后考上本岗位是否能享受后面的应届毕业生身份?
</div>
</div> </div>
<div class="card"> <div class="card">
<div class="cardTitle"> 附件 </div> <div class="cardTitle"> 附件 </div>
<div class="cardContent"> <div class="cardContent" v-if="fromData.url">
<img src="@/assets/images/logo.png" alt=""> <img v-for="(item,index) in fromData.url" :key="index"
<img src="@/assets/images/logo.png" alt=""> :src="process.env.VUE_APP_API_BASE_URL+item">
<img src="@/assets/images/logo.png" alt="">
<img src="@/assets/images/logo.png" alt="">
</div> </div>
</div> </div>
<div class="infoDetail"> <div class="infoDetail">
<div class="card"> <div class="card">
<div class="cardTitle"> 是否公开 </div> <div class="cardTitle"> 是否公开 </div>
<div class="cardContent"></div> <div class="cardContent">{{fromData.valid==1?'':''}}</div>
</div> </div>
<div class="card"> <div class="card">
<div class="cardTitle"> 是否保密 </div> <div class="cardTitle"> 是否保密 </div>
<div class="cardContent"></div> <div class="cardContent">{{fromData.secrecy==1?'':''}}</div>
</div> </div>
<div class="card"> <div class="card">
<div class="cardTitle"> 提交日期 </div> <div class="cardTitle"> 提交日期 </div>
<div class="cardContent">2022-09-01 11:30:00 </div> <div class="cardContent">{{fromData.create_time}}</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -78,17 +74,14 @@ ...@@ -78,17 +74,14 @@
所属部门<span>(非必选)</span> 所属部门<span>(非必选)</span>
</div> </div>
<div class="cardContent"> <div class="cardContent">
市税务局 {{fromData.deptName?fromData.deptName:"--"}}
</div> </div>
</div> </div>
<div class="card"> <div class="card">
<div class="cardTitle"> <div class="cardTitle">
回复内容<span>(必填)</span> 回复内容<span>(必填)</span>
</div> </div>
<div class="cardContent"> <div class="cardContent"></div>
《四川省2022年新冠肺炎疫情防控应急岗位招募实施方案》(川卫人教函〔2022〕84号)有关规定,(二)就业支持政策其中:7.
享受应届毕业生相关政策。参加公卫特别岗项目前无工作经历的人员服务满3周年且年度考核合格的,两年内参加机关和企事业单位招录(聘)、自主创业、落户等方面可同等享受应届毕业生相关政策。问题:无工作经历的人员是指从大学毕业到考上本次岗位之间没有交社保为准吗?比如我毕业后找了份工作,而且有交社保一个月再辞职,然后考上本岗位是否能享受后面的应届毕业生身份?
</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -116,6 +109,7 @@ export default { ...@@ -116,6 +109,7 @@ export default {
}, },
data() { data() {
return { return {
fromData:{}
}; };
}, },
methods: { methods: {
......
...@@ -2,33 +2,41 @@ ...@@ -2,33 +2,41 @@
<div class="callRecord-Container"> <div class="callRecord-Container">
<div class="header_box"> <div class="header_box">
<div> <div>
<a-button type="success" @click="exportTable"> <a-button type="success" @click="toexportTable">
<span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span> <span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span>
</a-button> </a-button>
<b>建议次数:<i>233</i></b> <b>建议次数:<i>{{JYCount}}</i></b>
<b>回复次数:<i>233</i></b> <b>回复次数:<i>{{HFCount}}</i></b>
<sub>统计时间段:2020.09.09~2021.09.09</sub> <sub>统计时间段:{{this.timeList[0]}}~{{this.timeList[1]}}</sub>
</div> </div>
<span> <span>
<a-checkbox> <a-space>
<a-checkbox @change="changeReply">
只看未回复 只看未回复
</a-checkbox> </a-checkbox>
<a-select placeholder="全部类型"> <a-select placeholder="全部类型" @change="changeType">
<a-select-option value="001"> 打印 </a-select-option> <a-select-option value="1"> 部门建议 </a-select-option>
<a-select-option value="002"> 在线提交 </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> </a-select>
<a-select placeholder="全部来源"> <a-select placeholder="全部来源" @change="changeDevice">
<a-select-option value="001"> 打印 </a-select-option> <a-select-option value="1"> 评价系统 </a-select-option>
<a-select-option value="002"> 在线提交 </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> </a-select>
<a-range-picker style="width:250px;" format="YYYY年MM月DD日" class="range_picker_style" <a-range-picker style="width:250px;" format="YYYY年MM月DD日" class="range_picker_style"
@change="rangePickerChange" v-model="BegindAndEndTime"> @change="rangePickerChange">
</a-range-picker> </a-range-picker>
<a-input style="width:250px;" v-model="searchName" placeholder="请输入标题或姓名关键字搜索"> <a-input style="width:250px;" v-model="searchName" placeholder="请输入标题或姓名关键字搜索">
<a-icon slot="prefix" type="search" /> <a-icon slot="prefix" type="search" />
</a-input> </a-input>
<a-button type="primary">搜索</a-button> <a-button type="primary" @click="togetWLLZCount">搜索</a-button>
</a-space>
</span> </span>
</div> </div>
<div class="main"> <div class="main">
...@@ -38,17 +46,18 @@ ...@@ -38,17 +46,18 @@
}" :scroll="{ y: 590 }" :pagination="tablePagination" @change="pagTableChange" :loading="tableLoading" }" :scroll="{ y: 590 }" :pagination="tablePagination" @change="pagTableChange" :loading="tableLoading"
:columns="tableHeaders" :dataSource="tableSourceData"> :columns="tableHeaders" :dataSource="tableSourceData">
<template slot="操作" slot-scope="text, record, index"> <template slot="操作" slot-scope="text, record, index">
<a-button type="link" @click="showDrawer">详情</a-button> <a-button type="link" @click="showDrawer(record)">详情</a-button>
</template> </template>
</a-table> </a-table>
</div> </div>
<FormDetails @onClose="onClose" @showDrawer="showDrawer" :visible="visible"/> <FormDetails ref="FormDetails" @onClose="onClose" @showDrawer="showDrawer" :visible="visible"/>
</div> </div>
</template> </template>
<script> <script>
import table from "@/mixins/table"; import table from "@/mixins/table";
import FormDetails from "./components/FormDetails.vue"; import FormDetails from "./components/FormDetails.vue";
import {getWLLZList,getWLLZCount,getWLLZInfo} from "@/api/dataAdmin"
export default { export default {
mixins: [table], mixins: [table],
name: "networkForm", name: "networkForm",
...@@ -65,59 +74,71 @@ export default { ...@@ -65,59 +74,71 @@ export default {
}, },
{ {
title: "建议标题", title: "建议标题",
// align: "center", align: "center",
dataIndex: "建议标题", dataIndex: "title",
width: "300px" width: "300px"
}, },
{ {
title: "建议类型", title: "建议类型",
align: "center", align: "center",
dataIndex: "建议类型", dataIndex: "type",
customRender: (text, record, index) => {
return text==1?'部门建议':text==2?'办事建议':text==3?'网站建议':text==4?'我要就错':text==5?'我要投诉':'我要咨询'
},
}, },
{ {
title: "真实姓名", title: "真实姓名",
align: "center", align: "center",
dataIndex: "真实姓名", dataIndex: "upname",
}, },
{ {
title: "联系电话", title: "联系电话",
align: "center", align: "center",
dataIndex: "联系电话", dataIndex: "upphone",
}, },
{ {
title: "是否公开", title: "是否公开",
align: "center", align: "center",
dataIndex: "是否公开", dataIndex: "valid",
customRender: (text, record, index) => {
return text==1?'':''
},
}, },
{ {
title: "是否保密", title: "是否保密",
align: "center", align: "center",
dataIndex: "是否保密", dataIndex: "secrecy",
customRender: (text, record, index) => {
return text==1?'':''
},
}, },
{ {
title: "提交日期", title: "提交日期",
align: "center", align: "center",
dataIndex: "提交日期", dataIndex: "create_time",
}, },
{ {
title: "是否回复", title: "是否回复",
align: "center", align: "center",
dataIndex: "是否回复", dataIndex: "status",
customRender: (text, record, index) => {
return text==1?'':''
},
}, },
{ {
title: "回复人", title: "回复人",
align: "center", align: "center",
dataIndex: "回复人", dataIndex: "reply_name",
}, },
{ {
title: "回复时间", title: "回复时间",
align: "center", align: "center",
dataIndex: "回复时间", dataIndex: "update_time",
}, },
{ {
title: "所属部门", title: "所属部门",
align: "center", align: "center",
dataIndex: "所属部门", dataIndex: "dateName",
}, },
{ {
title: "操作", title: "操作",
...@@ -128,9 +149,15 @@ export default { ...@@ -128,9 +149,15 @@ export default {
}, },
}, },
], ],
BegindAndEndTime: [],
searchName: undefined, searchName: undefined,
visible: false, visible: false,
nowSite:null,//当前站点
isReply:false,//是否回复
nowType:null,//当前类型
nowDevice:null,// 来源
timeList:[],// 时间
JYCount:0,//建议次数
HFCount:0,//回复次数
}; };
}, },
components: { components: {
...@@ -138,41 +165,141 @@ export default { ...@@ -138,41 +165,141 @@ export default {
}, },
mounted() { mounted() {
this.setMoment(); this.setMoment();
for (let key = 0; key < 20; key++) { // 设置默认时间为今天
this.tableSourceData.push({ this.timeList=[this.$moment(new Date()).format("YYYY-MM-DD"),this.$moment(new Date()).format("YYYY-MM-DD")]
id: `00${key + 1}`, this.nowSite = localStorage.getItem('siteId');
建议标题: `关于《四川省2022年公共卫生特别服务岗项目实施方案》(川卫发〔2022〕7号)的问题`, this.togetWLLZCount()
建议类型: `部门建议`, },
真实姓名: `刘德发`, watch:{
联系电话: `1388888888888`, tablePagination(){
是否公开: `是`, this.togetWLLZCount()
是否保密: `否`,
提交日期: `2022-09-26 11:00:00`,
是否回复: `是`,
回复人: `刘德华`,
回复时间: `2022-09-26 11:00:00`,
所属部门: `防疫指挥部`,
});
} }
}, },
methods: { methods: {
rangePickerChange(val) { // 重写导出
console.log(val); toexportTable() {
let tableData = [];
if (this.tableSelectedRows.length == 0) {
getWLLZList({
page:1,
size:-1,
status:this.isReply?0:"",
type:this.nowType,
device:this.nowDevice,
keyword:this.searchName,
time:this.timeList,
}).then((res)=>{
const {code,data} = res;
if(code==1){
// 改变输出内容
data.data.forEach(item => {
item.type = item.type==1?'部门建议':item.type==2?'办事建议':item.type==3?'网站建议':item.type==4?'我要就错':item.type==5?'我要投诉':'我要咨询';
item.valid = item.valid==1?'':'';
item.secrecy = item.secrecy==1?'':'';
item.status = item.status==1?'':'';
});
tableData = JSON.parse(JSON.stringify(data.data));
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.type = item.type==1?'部门建议':item.type==2?'办事建议':item.type==3?'网站建议':item.type==4?'我要就错':item.type==5?'我要投诉':'我要咨询';
item.valid = item.valid==1?'':'';
item.secrecy = item.secrecy==1?'':'';
item.status = item.status==1?'':'';
});
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);
}
},
changeReply(e){
this.isReply = e.target.checked
},
changeType(e){
this.nowType = e
},
changeDevice(e){
this.nowDevice=e
}, },
togetWLLZInfo(id){
getWLLZInfo({
id:id
}).then((res)=>{
console.log(res);
const{code,data}=res;
if(code==1){
this.$refs.FormDetails.fromData=data
}
})
},
togetWLLZCount(){
let option = {
siteid:this.nowSite,
time:this.timeList,
keyword:this.searchName,
type:this.nowType,
device:this.nowDevice,
status:this.isReply?0:"",//0处理,空为不处理
}
getWLLZCount(option).then((res)=>{
const {code,data} = res;
if(code==1){
this.JYCount = data.all_count,
this.HFCount = data.hf_count
}
})
QueueState(type) { let params = {
switch (type) { page:this.tablePagination.current,
case 0: size:this.tablePagination.pageSize,
return "type1"; status:this.isReply?0:"",
case 1: type:this.nowType,
return "type2"; device:this.nowDevice,
default: keyword:this.searchName,
return "type0"; time:this.timeList,
} }
getWLLZList(params).then((res)=>{
console.log(res);
const {code,data} = res;
if(code==1){
this.tableSourceData = data.data
this.tablePagination.total = data.total
}
})
},
rangePickerChange(val) {
this.timeList = [this.$moment(val[0]).format("YYYY-MM-DD"),this.$moment(val[1]).format("YYYY-MM-DD")]
}, },
showDrawer() { showDrawer(record) {
this.visible = true; this.visible = true;
this.togetWLLZInfo(record.id)
}, },
onClose() { onClose() {
this.visible = false; this.visible = false;
......
...@@ -2,31 +2,31 @@ ...@@ -2,31 +2,31 @@
<div class="callRecord-Container"> <div class="callRecord-Container">
<div class="header_box"> <div class="header_box">
<div> <div>
<a-button type="success" @click="exportTable"> <a-button type="success" @click="toexportTable">
<span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span> <span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span>
</a-button> </a-button>
<b>查看样表次数:<i>233次</i></b> <b>查看样表次数:<i>{{tablePagination.total}}</i></b>
<sub>统计时间段:2020.09.09~2021.09.09</sub> <sub>统计时间段:{{BegindAndEndTime[0]}}~{{BegindAndEndTime[1]}}
</sub>
</div> </div>
<span> <span>
<a-input-group compact> <!-- <a-input-group compact> -->
<a-select default-value="Zhejiang" style="width:25%"> <a-select :default-value="1" style="width:25%" @change="changeSearchType">
<a-select-option value="Zhejiang"> <a-select-option :value="1">
按事项 按事项
</a-select-option> </a-select-option>
<a-select-option value="Jiangsu"> <a-select-option :value="2">
按材料 按材料
</a-select-option> </a-select-option>
</a-select> </a-select>
<a-input style="width:74.2%" v-model="searchName" placeholder="请输入评价人姓名或窗口编号搜索"> <a-input style="width:74.2%" v-model="searchName" placeholder="请输入评价人姓名或窗口编号搜索">
<a-icon slot="prefix" type="search" /> <a-icon slot="prefix" type="search" />
</a-input> </a-input>
</a-input-group> <!-- </a-input-group> -->
<a-range-picker format="YYYY年MM月DD日" class="range_picker_style" @change="rangePickerChange" <a-range-picker format="YYYY年MM月DD日" class="range_picker_style" @change="rangePickerChange">
v-model="BegindAndEndTime">
</a-range-picker> </a-range-picker>
<a-button type="primary">搜索</a-button> <a-button type="primary" @click="togetBillList">搜索</a-button>
</span> </span>
</div> </div>
<div class="main"> <div class="main">
...@@ -37,18 +37,18 @@ ...@@ -37,18 +37,18 @@
:columns="tableHeaders" :dataSource="tableSourceData"> :columns="tableHeaders" :dataSource="tableSourceData">
<template slot="事项名称" slot-scope="text, record, index"> <template slot="事项名称" slot-scope="text, record, index">
<div> <div>
机动车登记证、行驶证核发 {{record.matterName}}
</div> </div>
<div class="tabFont"> <div class="tabFont">
事项全称:机动车登记证、行驶证审查、办理、核发 事项全称:{{record.matterFullName}}
</div> </div>
</template> </template>
<template slot="材料名称" slot-scope="text, record, index"> <template slot="材料名称" slot-scope="text, record, index">
<div> <div>
分公司登记申请书 {{record.materialName}}
</div> </div>
<div class="tabFont"> <div class="tabFont">
样表全称:分公司登记、变更、注销一张表申请书 样表全称:{{record.materialFullName}}
</div> </div>
</template> </template>
</a-table> </a-table>
...@@ -58,6 +58,8 @@ ...@@ -58,6 +58,8 @@
<script> <script>
import table from "@/mixins/table"; import table from "@/mixins/table";
import { getBillList } from "@/api/dataAdmin";
export default { export default {
mixins: [table], mixins: [table],
...@@ -75,16 +77,16 @@ export default { ...@@ -75,16 +77,16 @@ export default {
}, },
{ {
title: "事项名称", title: "事项名称",
// align: "center", align: "center",
dataIndex: "事项名称", dataIndex: "matterName",
scopedSlots: { scopedSlots: {
customRender: "事项名称", customRender: "事项名称",
}, },
}, },
{ {
title: "材料名称", title: "材料名称",
// align: "center", align: "center",
dataIndex: "材料名称", dataIndex: "materialName",
scopedSlots: { scopedSlots: {
customRender: "材料名称", customRender: "材料名称",
}, },
...@@ -92,12 +94,12 @@ export default { ...@@ -92,12 +94,12 @@ export default {
{ {
title: "设备名称", title: "设备名称",
align: "center", align: "center",
dataIndex: "设备名称", dataIndex: "deviceName",
}, },
{ {
title: "操作时间", title: "操作时间",
align: "center", align: "center",
dataIndex: "操作时间", dataIndex: "operTime",
}, },
{ {
title: "查看时间", title: "查看时间",
...@@ -105,8 +107,10 @@ export default { ...@@ -105,8 +107,10 @@ export default {
dataIndex: "查看时间", dataIndex: "查看时间",
}, },
], ],
BegindAndEndTime: [], BegindAndEndTime: [],//时间段
searchName: undefined, searchName: undefined,
searchType:1,
siteId:undefined,
}; };
}, },
components: { components: {
...@@ -114,18 +118,90 @@ export default { ...@@ -114,18 +118,90 @@ export default {
}, },
mounted() { mounted() {
this.setMoment(); this.setMoment();
for (let key = 0; key < 20; key++) { this.BegindAndEndTime=[this.$moment(new Date()).format("YYYY-MM-DD"),this.$moment(new Date()).format("YYYY-MM-DD")]
this.tableSourceData.push({ this.siteId = localStorage.getItem('siteId')
id: `00${key + 1}`, this.togetBillList()
设备名称: `一楼样表填单机`,
操作时间: `2021-09-09 09:09:09${key + 1}`,
查看时间: `10分20秒`,
});
}
}, },
methods: { methods: {
//导出
toexportTable() {
let tableData = [];
if (this.tableSelectedRows.length == 0) {
let pramse = {
page:1,
size:-1,
siteId:this.siteId,
matterName:"%%",
materialName:"%%",
operTimeStart:this.BegindAndEndTime[0],
operTimeEnd:this.BegindAndEndTime[1]
}
if(this.searchType==1 && this.searchName){
pramse.matterName = '%'+this.searchName+'%'
}else if(this.searchName){
pramse.materialName='%'+this.searchName+'%'
}
getBillList(pramse).then((res)=>{
const{code,data} = res;
if(code == 1){
tableData = JSON.parse(JSON.stringify(data.data));
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));
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);
}
},
togetBillList(){
let pramse = {
page:this.tablePagination.current,
size:this.tablePagination.pageSize,
siteId:this.siteId,
matterName:"%%",
materialName:"%%",
operTimeStart:this.BegindAndEndTime[0],
operTimeEnd:this.BegindAndEndTime[1]
}
if(this.searchType==1 && this.searchName){
pramse.matterName = '%'+this.searchName+'%'
}else if(this.searchName){
pramse.materialName='%'+this.searchName+'%'
}
getBillList(pramse).then((res)=>{
const{code,data} = res;
if(code==1){
this.tableSourceData = data.data
this.tablePagination.total = data.total
}
})
},
changeSearchType(val){
this.searchType = val
},
rangePickerChange(val) { rangePickerChange(val) {
console.log(val); this.BegindAndEndTime=[this.$moment(val[0]).format("YYYY-MM-DD"),this.$moment(val[1]).format("YYYY-MM-DD")]
}, },
QueueState(type) { QueueState(type) {
......
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