Commit f3123d9a authored by 赵啸非's avatar 赵啸非

Merge remote-tracking branch 'origin/master'

parents 5d3e2dc4 f0054910
...@@ -192,7 +192,6 @@ export default { ...@@ -192,7 +192,6 @@ export default {
let res = await getAppInfo({ id: this.appId }); let res = await getAppInfo({ id: this.appId });
if (res.data.code === 1) { if (res.data.code === 1) {
this.appInfo = res.data.data; this.appInfo = res.data.data;
console.log(this.appInfo);
} }
}, },
// 获取历史版本 // 获取历史版本
......
...@@ -152,7 +152,9 @@ export default { ...@@ -152,7 +152,9 @@ export default {
this.current -= 1; this.current -= 1;
this.getTempleteList(); this.getTempleteList();
} }
this.tableData = data; this.tableData = data.sort((a, b) => {
return a.fieldOrderNo - b.fieldOrderNo;
});
this.SET_appTemplate(data); this.SET_appTemplate(data);
this.total = total; this.total = total;
} }
......
...@@ -111,7 +111,7 @@ export default { ...@@ -111,7 +111,7 @@ export default {
fieldLen: 128, //数据长度,默认128 fieldLen: 128, //数据长度,默认128
fieldNull: "", //是否允许为空,(0.否,1.是) fieldNull: "", //是否允许为空,(0.否,1.是)
isList: "", //字段是否列表显示(0.否,1.是) isList: "", //字段是否列表显示(0.否,1.是)
fieldOrderNo: "", // 排序号 fieldOrderNo: 99, // 排序号
remark: "", // remark: "", //
}, },
rules: { rules: {
...@@ -166,7 +166,6 @@ export default { ...@@ -166,7 +166,6 @@ export default {
Object.assign(this.form, this.$options.data().form); Object.assign(this.form, this.$options.data().form);
this.form.appId = this.$route.query.id; this.form.appId = this.$route.query.id;
this.form.id && this.$delete(this.form, "id"); this.form.id && this.$delete(this.form, "id");
console.log(this.form);
}, },
// 编辑 // 编辑
onEdit(data) { onEdit(data) {
......
...@@ -11,11 +11,5 @@ ...@@ -11,11 +11,5 @@
// overflow-y: auto; // overflow-y: auto;
// overflow-x: hidden; // overflow-x: hidden;
box-sizing: border-box !important; box-sizing: border-box !important;
background-image: linear-gradient(
to top,
#fad0c4 0%,
#fad0c4 1%,
#ffd1ff 100%
) !important;
} }
</style> </style>
...@@ -48,7 +48,7 @@ ...@@ -48,7 +48,7 @@
<span><i class="lable">申报人:</i>{{queEvaData.people_name?queEvaData.people_name:'--'}}</span> <span><i class="lable">申报人:</i>{{queEvaData.people_name?queEvaData.people_name:'--'}}</span>
<span><i class="lable">取号时间:</i>{{queEvaData.taketime?queEvaData.taketime:'--'}}</span> <span><i class="lable">取号时间:</i>{{queEvaData.taketime?queEvaData.taketime:'--'}}</span>
<span><i class="lable">排队编码:</i>{{queEvaData.flownum?queEvaData.flownum:'--'}}</span> <span><i class="lable">排队编码:</i>{{queEvaData.flownum?queEvaData.flownum:'--'}}</span>
<span><i class="lable">取号方式:</i>{{queEvaData.wy_signin==''?'--':queEvaData.wy_signin>0?'在线取号':'现场取号'}}</span> <span><i class="lable">取号方式:</i>{{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?queEvaData.take_name:'--'}}</span> <span><i class="lable">取号设备:</i>{{queEvaData.take_name?queEvaData.take_name:'--'}}</span>
</div> </div>
...@@ -70,7 +70,7 @@ ...@@ -70,7 +70,7 @@
> >
<div class="details"> <div class="details">
<span><i class="lable">办理窗口:</i>{{queEvaData.window_name?queEvaData.window_name:'--'}}</span> <span><i class="lable">办理窗口:</i>{{queEvaData.window_name?queEvaData.window_name:'--'}}</span>
<span><i class="lable">办理开始时间:</i>{{queEvaData.bltime?queEvaData.bltime:'--'}}</span> <span><i class="lable">办理开始时间:</i>{{queEvaData.calltime?queEvaData.calltime:'--'}}</span>
<span><i class="lable">工作人员:</i>{{queEvaData.workman_name?queEvaData.workman_name:'--'}}</span> <span><i class="lable">工作人员:</i>{{queEvaData.workman_name?queEvaData.workman_name:'--'}}</span>
<span><i class="lable">叫号设备:</i>{{queEvaData.call_name}}</span> <span><i class="lable">叫号设备:</i>{{queEvaData.call_name}}</span>
</div> </div>
......
<template> <template>
<div class="callRecord-Container"> <div class="callRecord-Container">
<div class="header_box"> <div class="header_box">
<div> <div>
<a-button type="success" @click="toexportTable"> <a-button type="success" @click="handleExportTable">
<span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span> <span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span>
</a-button> </a-button>
<a-button type="danger" @click="delTable"> <a-button type="danger" @click="delTable">
<span>批量删除</span> <span>批量删除</span>
</a-button> </a-button>
<b>评价次数:<i>{{evaCount}}</i></b> <b
<sub>统计时间段:{{evaDates[0]}}~{{evaDates[1]}}</sub> >评价次数:<i>{{ evaCount }}</i></b
</div> >
<span> <sub
<a-space> >统计时间段:{{ BegindAndEndTime[0] }}~{{ BegindAndEndTime[1] }}</sub
<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> </div>
</a-select> <span>
<a-select v-model="evaFrom" placeholder="全部来源" @change="changeEvaFrom" mode="multiple" style="max-width:160px"> <a-space>
<a-select-option value="1"> 窗口评价 </a-select-option> <a-select
<a-select-option value="2"> 自助服务终端 </a-select-option> v-model="evaChoose"
<a-select-option value="3"> 背靠背评价 </a-select-option> placeholder="全部评价"
<a-select-option value="4"> 微官网 </a-select-option> @change="changeEvaChoose"
<a-select-option value="5"> 好差评 </a-select-option> mode="multiple"
<a-select-option value="6"> 一体化评价 </a-select-option> style="max-width: 140px"
</a-select> >
<a-select-option
v-for="item in optonList"
:key="item.id"
:value="item.id"
>{{ item.name }}</a-select-option
>
</a-select>
<a-select
v-model="evaFrom"
placeholder="全部来源"
@change="changeEvaFrom"
mode="multiple"
style="max-width: 160px"
>
<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 :allowClear="false" format="YYYY年MM月DD日" class="range_picker_style" @change="rangePickerChange" <a-range-picker
v-model="BegindAndEndTime"> :allowClear="false"
</a-range-picker> valueFormat="YYYY-MM-DD"
style="width: 200px"
class="range_picker_style"
v-model="BegindAndEndTime"
>
</a-range-picker>
<a-input v-model="searchName" placeholder="请输入评价人姓名或窗口编号搜索"> <a-input
<a-icon slot="prefix" type="search" /> style="width: 280px"
</a-input> v-model="searchName"
<a-button type="primary" @click="togetevalist()">搜索</a-button> placeholder="请输入评价人姓名或部门名称搜索"
<a-button @click="clearnAllChoose()">重置</a-button> >
</a-space> <a-icon slot="prefix" type="search" />
</span> </a-input>
</div> <a-button type="primary" @click="togetevalist()">搜索</a-button>
<div class="main"> <a-button @click="clearnAllChoose()">重置</a-button>
<a-table size="small" bordered :row-key="(record) => record.id" :row-selection="{ </a-space>
selectedRowKeys: tableSelectedKeys, </span>
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"
>
<template slot="评价人照片" slot-scope="text">
<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">
<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 { export2Excel } from "@/utils/js/exportExcel";
import HandlingDetails from "./components/HandlingDetails.vue"; import HandlingDetails from "./components/HandlingDetails.vue";
import { getOptonList, getEvaList, getEvaData, getEvaDetil, getQueEvaData } from "@/api/dataAdmin"; import {
getOptonList,
getEvaList,
getEvaData,
getEvaDetil,
getQueEvaData,
} from "@/api/dataAdmin";
export default { export default {
mixins: [table], mixins: [table],
name: "departmentEvaluation", name: "departmentEvaluation",
data() { data() {
return { return {
tableHeaders: [ tableHeaders: [
{ {
title: "序号", title: "序号",
dataIndex: "index", dataIndex: "index",
width: "60px", width: "60px",
key: "index", key: "index",
align: "center", align: "center",
customRender: (text, record, index) => `${index + 1}`, 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 = ''
}, },
//导出 {
toexportTable() { title: "部门名称",
let tableData = []; align: "center",
// 拼接评价选项 dataIndex: "section",
let chooseStr = this.evaChoose.join(',') customRender: (text) => {
// 要先拼接评价来源 return text ? text : "--";
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); title: "评价选项",
this.visible = true; align: "center",
if(!this.tableSelectedRows.length){ dataIndex: "option_id",
this.content = '一条评论都没有选中' customRender: (text) => {
}else{ return text ? text : "--";
this.content = '此操作将删除这些评价信息,是否继续?' },
let arr = []
this.tableSelectedRows.forEach(item => {
arr.push(item.id)
});
this.delId = arr
}
}, },
togetEvaDetil(){ {
getEvaDetil({ title: "评价人",
id:this.delId align: "center",
}).then(res=>{ dataIndex: "idcard_Name",
{ customRender: (text) => {
this.delId=null return text ? text : "--";
this.visible = false; },
// 要刷新页面
this.togetevalist()
}
})
}, },
togetQueEvaData(record){ {
getQueEvaData({ title: "身份证号",
id:record.id align: "center",
}).then(res=>{ dataIndex: "idcard_IDCardNo",
console.log(res); customRender: (text) => {
const {code,data} = res return text ? text : "--";
if(code==1){ },
this.$refs.HandlingDetails.queEvaData = data
}
})
}, },
togetEvaData(id){ {
getEvaData({ title: "手机号",
id:id align: "center",
}).then(res=>{ dataIndex: "phone",
console.log(res); customRender: (text) => {
const {code,data} = res return text ? text : "--";
if(code==1){ },
this.$refs.HandlingDetails.queEvaData = data
}
})
}, },
togetevalist(){ {
// 拼接评价选项 title: "评价时间",
let chooseStr = this.evaChoose.join(',') align: "center",
// 要先拼接评价来源 dataIndex: "create_time",
let fromString = this.evaFrom.join(',') customRender: (text) => {
getEvaList({ return text ? text : "--";
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){ title: "评价来源",
this.evaFrom = val; align: "center",
}else{ dataIndex: "pjxt",
this.evaFrom = [0] 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 "--";
} }
},
}, },
changeEvaChoose(val){ {
this.evaChoose = val title: "评价设备",
}, align: "center",
rangePickerChange(val) { dataIndex: "pj_name",
this.evaDates = [this.$moment(val[0]).format("YYYY-MM-DD"),this.$moment(val[1]).format("YYYY-MM-DD")] customRender: (text) => {
}, return text ? text : "--";
QueueState(type) { },
switch (type) {
case 0:
return "type1";
case 1:
return "type2";
default:
return "type0";
}
}, },
//详情模块 {
openHandlingDetails(record) { title: "评价人照片",
// 判断为窗口屏或者其他状况,调用不同接口 align: "center",
// if(record.pjxt==1){ dataIndex: "picture",
// this.$refs.HandlingDetails.modalInfo.title = "办理明细"; scopedSlots: {
// this.$refs.HandlingDetails.modalInfo.show = 1; customRender: "评价人照片",
// 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) { title: "操作",
this.visible = true; align: "center",
this.delId = record.id 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: [], // 评价来源
evaDates: [], // 评价日期
content: "此操作将删除该评价信息,是否继续?",
delId: null, //当前删除id
baseurl: "",
optonList: [],
tableSelectedKeys: [],
tableSelectedRows: [],
tHeader: [
// 导出的表头名信息
"部门名称",
"评价选项",
"评价人",
"身份证号",
"手机号",
"评价时间",
"评价来源",
"评价设备",
],
filterVal: [
// 导出的表头字段名,需要导出表格字段名
"section",
"option_id",
"idcard_Name",
"idcard_IDCardNo",
"phone",
"create_time",
"pjxt",
"pj_name",
],
};
},
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 = "";
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.togetevalist();
},
// 搜索
handleSearch() {
this.tablePagination.current = 1;
this.tableSelectedKeys = [];
this.tableSelectedRows = [];
this.togetevalist();
}, },
watch:{ delTable() {
tablePagination(){ // console.log(this.tableSelectedRows);
this.togetevalist() 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();
} }
});
}, },
created(){ togetQueEvaData(record) {
this.baseurl = process.env.VUE_APP_API_PHP_URL 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) => {
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.BegindAndEndTime,
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;
},
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: this.tablePagination.current,
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();
},
},
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: space-between; justify-content: flex-start;
align-items: center; align-items: center;
&>div { b {
display: flex; font-style: normal;
justify-content: flex-start; font-weight: unset;
align-items: center; font-size: 16px;
margin-left: 20px;
b {
font-style: normal;
font-weight: unset;
font-size: 16px;
margin-left: 20px;
i { i {
color: #0595fd; color: #0595fd;
font-style: normal; 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 type="success" @click="toexportTable"> <a-button type="success" @click="handleExportTable">
<span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span> <span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span>
</a-button> </a-button>
<a-button type="danger" @click="delTable"> <a-button type="danger" @click="delTable">
<span>批量删除</span> <span>批量删除</span>
</a-button> </a-button>
<b>评价次数:<i>{{evaCount}}</i></b> <b
<sub>统计时间段:{{evaDates[0]}}~{{evaDates[1]}}</sub> >评价次数:<i>{{ evaCount }}</i></b
</div> >
<span> <sub
<a-space> >统计时间段:{{ BegindAndEndTime[0] }}~{{ BegindAndEndTime[1] }}</sub
<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> </div>
</a-select> <span>
<a-select v-model="evaFrom" placeholder="全部来源" @change="changeEvaFrom" mode="multiple" style="max-width:160px"> <a-space>
<a-select-option value="1"> 窗口评价 </a-select-option> <a-select
<a-select-option value="2"> 自助服务终端 </a-select-option> v-model="evaChoose"
<a-select-option value="3"> 背靠背评价 </a-select-option> placeholder="全部评价"
<a-select-option value="4"> 微官网 </a-select-option> @change="changeEvaChoose"
<a-select-option value="5"> 好差评 </a-select-option> mode="multiple"
<a-select-option value="6"> 一体化评价 </a-select-option> style="max-width: 140px"
</a-select> >
<a-select-option
v-for="item in optonList"
:key="item.id"
:value="item.id"
>{{ item.name }}</a-select-option
>
</a-select>
<a-select
v-model="evaFrom"
placeholder="全部来源"
@change="changeEvaFrom"
mode="multiple"
style="max-width: 160px"
>
<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 :allowClear="false" format="YYYY年MM月DD日" class="range_picker_style" @change="rangePickerChange" <a-range-picker
v-model="BegindAndEndTime"> :allowClear="false"
</a-range-picker> valueFormat="YYYY-MM-DD"
style="width: 200px"
class="range_picker_style"
v-model="BegindAndEndTime"
>
</a-range-picker>
<a-input v-model="searchName" placeholder="请输入评价人姓名或窗口编号搜索"> <a-input
<a-icon slot="prefix" type="search" /> style="width: 280px"
</a-input> v-model="searchName"
<a-button type="primary" @click="togetevalist()">搜索</a-button> placeholder="请输入评价人姓名或排号编号搜索"
<a-button @click="clearnAllChoose()">重置</a-button> >
</a-space> <a-icon slot="prefix" type="search" />
</span> </a-input>
</div> <a-button type="primary" @click="togetevalist()">搜索</a-button>
<div class="main"> <a-button @click="clearnAllChoose()">重置</a-button>
<a-table size="small" bordered :row-key="(record) => record.id" :row-selection="{ </a-space>
selectedRowKeys: tableSelectedKeys, </span>
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"
>
<template slot="评价人照片" slot-scope="text">
<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">
<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 { export2Excel } from "@/utils/js/exportExcel";
import table from "@/mixins/table"; import table from "@/mixins/table";
import HandlingDetails from "./components/HandlingDetails.vue"; import HandlingDetails from "./components/HandlingDetails.vue";
import { getOptonList, getEvaList, getEvaData, getEvaDetil, getQueEvaData } from "@/api/dataAdmin"; import {
getOptonList,
getEvaList,
getEvaData,
getEvaDetil,
getQueEvaData,
} from "@/api/dataAdmin";
export default { export default {
mixins: [table], mixins: [table],
name: "matterEvaluation", name: "matterEvaluation",
data() { data() {
return { return {
tableHeaders: [ tableHeaders: [
{ {
title: "序号", title: "序号",
dataIndex: "index", dataIndex: "index",
width: "60px", width: "60px",
key: "index", key: "index",
align: "center", align: "center",
customRender: (text, record, index) => `${index + 1}`, customRender: (text, record, index) => `${index + 1}`,
},
{
title: "排队编号",
align: "center",
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=>{
console.log(res);
if(res.code==1){
this.optonList = res.data
}
})
},
methods: {
clearnAllChoose(){
this.evaChoose = []
this.evaFrom = []
this.searchName = ''
}, },
//导出 {
toexportTable() { title: "排队编号",
let tableData = []; align: "center",
// 拼接评价选项 dataIndex: "flounum",
let chooseStr = this.evaChoose.join(',') customRender: (text) => {
// 要先拼接评价来源 return text ? text : "--";
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; title: "评价选项",
if(!this.tableSelectedRows.length){ align: "center",
this.content = '一条评论都没有选中' dataIndex: "option_id",
}else{ customRender: (text) => {
this.content = '此操作将删除这些评价信息,是否继续?' return text ? text : "--";
let arr = [] },
this.tableSelectedRows.forEach(item => {
arr.push(item.id)
});
this.delId = arr
}
}, },
togetEvaDetil(){ {
getEvaDetil({ title: "评价人",
id:this.delId align: "center",
}).then(res=>{ dataIndex: "idcard_Name",
{ customRender: (text) => {
this.delId=null return text ? text : "--";
this.visible = false; },
// 要刷新页面
this.togetevalist()
}
})
}, },
togetQueEvaData(record){ {
getQueEvaData({ title: "身份证号",
id:record.id align: "center",
}).then(res=>{ dataIndex: "idcard_IDCardNo",
console.log(res); customRender: (text) => {
const {code,data} = res return text ? text : "--";
if(code==1){ },
this.$refs.HandlingDetails.queEvaData = data
}
})
}, },
togetEvaData(id){ {
getEvaData({ title: "手机号",
id:id align: "center",
}).then(res=>{ dataIndex: "phone",
console.log(res); customRender: (text) => {
const {code,data} = res return text ? text : "--";
if(code==1){ },
this.$refs.HandlingDetails.queEvaData = data
}
})
}, },
togetevalist(){ {
// 拼接评价选项 title: "评价时间",
let chooseStr = this.evaChoose.join(',') align: "center",
// 要先拼接评价来源 dataIndex: "create_time",
let fromString = this.evaFrom.join(',') customRender: (text) => {
getEvaList({ return text ? text : "--";
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){ title: "评价来源",
this.evaFrom = val; align: "center",
}else{ dataIndex: "pjxt",
this.evaFrom = [0] 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 "--";
} }
},
}, },
changeEvaChoose(val){ {
this.evaChoose = val title: "评价设备",
align: "center",
dataIndex: "pj_name",
customRender: (text) => {
return text ? text : "--";
},
}, },
rangePickerChange(val) { {
this.evaDates = [this.$moment(val[0]).format("YYYY-MM-DD"),this.$moment(val[1]).format("YYYY-MM-DD")] title: "评价人照片",
align: "center",
dataIndex: "picture",
scopedSlots: {
customRender: "评价人照片",
},
}, },
{
title: "操作",
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: [], // 评价来源
evaDates: [], // 评价日期
content: "此操作将删除该评价信息,是否继续?",
delId: null, //当前删除id
baseurl: "",
optonList: [],
tableSelectedKeys: [],
tableSelectedRows: [],
tHeader: [
// 导出的表头名信息
"排队编号",
"评价选项",
"评价人",
"身份证号",
"手机号",
"评价时间",
"评价来源",
"评价设备",
],
filterVal: [
// 导出的表头字段名,需要导出表格字段名
"flounum",
"option_id",
"idcard_Name",
"idcard_IDCardNo",
"phone",
"create_time",
"pjxt",
"pj_name",
],
};
},
components: {
HandlingDetails,
},
mounted() {
this.setMoment();
// 设置默认时间为今天
// this.evaDates = [
// this.$moment(new Date()).format("YYYY-MM-DD"),
// this.$moment(new Date()).format("YYYY-MM-DD"),
// ];
QueueState(type) { this.togetevalist();
switch (type) {
case 0:
return "type1";
case 1:
return "type2";
default: getOptonList().then((res) => {
return "type0"; console.log(res);
} if (res.code == 1) {
}, this.optonList = res.data;
//详情模块 }
openHandlingDetails(record) { });
// 判断为窗口屏或者其他状况,调用不同接口 },
// if(record.pjxt==1){ methods: {
this.$refs.HandlingDetails.modalInfo.title = "办理明细"; clearnAllChoose() {
this.$refs.HandlingDetails.modalInfo.show = 1; this.evaChoose = [];
this.togetQueEvaData(record) this.evaFrom = [];
// }else{ this.searchName = "";
// this.$refs.HandlingDetails.modalInfo.title = "评价详情"; this.tablePagination.current = 1;
// this.$refs.HandlingDetails.modalInfo.show = 2; this.tableSelectedKeys = [];
// this.togetEvaData(record.id) this.tableSelectedRows = [];
// } this.BegindAndEndTime = [
this.$moment(new Date()).format("YYYY-MM-DD"),
this.$refs.HandlingDetails.modalInfo.visible = true; this.$moment(new Date()).format("YYYY-MM-DD"),
}, ];
//删除模态框 this.togetevalist();
showModal(record) { },
this.visible = true;
this.delId = record.id 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;
}
}, },
watch:{ togetEvaDetil() {
tablePagination(){ getEvaDetil({
this.togetevalist() id: this.delId,
}).then((res) => {
{
this.delId = null;
this.visible = false;
// 要刷新页面
this.togetevalist();
} }
});
}, },
created(){ togetQueEvaData(record) {
this.baseurl = process.env.VUE_APP_API_PHP_URL 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) => {
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: this.tablePagination.current,
size: -1,
type: "phpj",
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();
},
},
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: space-between; justify-content: flex-start;
align-items: center; align-items: center;
&>div { b {
display: flex; font-style: normal;
justify-content: flex-start; font-weight: unset;
align-items: center; font-size: 16px;
margin-left: 20px;
b {
font-style: normal;
font-weight: unset;
font-size: 16px;
margin-left: 20px;
i { i {
color: #0595fd; color: #0595fd;
font-style: normal; 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 type="success" @click="toexportTable"> <a-button type="success" @click="handleExportTable">
<span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span> <span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span>
</a-button> </a-button>
<a-button type="danger" @click="delTable"> <a-button type="danger" @click="delTable">
<span>批量删除</span> <span>批量删除</span>
</a-button> </a-button>
<b>评价次数:<i>{{evaCount}}</i></b> <b
<sub>统计时间段:{{evaDates[0]}}~{{evaDates[1]}}</sub> >评价次数:<i>{{ evaCount }}</i></b
</div> >
<span> <sub
<a-space> >统计时间段:{{ BegindAndEndTime[0] }}~{{ BegindAndEndTime[1] }}</sub
<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> </div>
</a-select> <span>
<a-select v-model="evaFrom" placeholder="全部来源" @change="changeEvaFrom" mode="multiple" style="max-width:160px"> <a-space>
<a-select-option value="1"> 窗口评价 </a-select-option> <a-select
<a-select-option value="2"> 自助服务终端 </a-select-option> v-model="evaChoose"
<a-select-option value="3"> 背靠背评价 </a-select-option> placeholder="全部评价"
<a-select-option value="4"> 微官网 </a-select-option> @change="changeEvaChoose"
<a-select-option value="5"> 好差评 </a-select-option> mode="multiple"
<a-select-option value="6"> 一体化评价 </a-select-option> style="max-width: 140px"
</a-select> >
<a-select-option
v-for="item in optonList"
:key="item.id"
:value="item.id"
>{{ item.name }}</a-select-option
>
</a-select>
<a-select
v-model="evaFrom"
placeholder="全部来源"
@change="changeEvaFrom"
mode="multiple"
style="max-width: 160px"
>
<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 :allowClear="false" format="YYYY年MM月DD日" class="range_picker_style" @change="rangePickerChange" <a-range-picker
v-model="BegindAndEndTime"> style="width: 200px"
</a-range-picker> :allowClear="false"
valueFormat="YYYY-MM-DD"
class="range_picker_style"
v-model="BegindAndEndTime"
>
</a-range-picker>
<a-input v-model="searchName" placeholder="请输入评价人姓名或窗口编号搜索"> <a-input
<a-icon slot="prefix" type="search" /> style="width: 280px"
</a-input> v-model="searchName"
<a-button type="primary" @click="togetevalist()">搜索</a-button> placeholder="请输入评价人姓名或窗口编号搜索"
<a-button @click="clearnAllChoose()">重置</a-button> >
</a-space> <a-icon slot="prefix" type="search" />
</span> </a-input>
</div> <a-button type="primary" @click="handleSearch">搜索</a-button>
<div class="main"> <a-button @click="clearnAllChoose">重置</a-button>
<a-table size="small" bordered :row-key="(record) => record.id" :row-selection="{ </a-space>
selectedRowKeys: tableSelectedKeys, </span>
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"
>
<template slot="评价人照片" slot-scope="text">
<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">
<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 { getOptonList, getEvaList, getEvaData, getEvaDetil, getQueEvaData } from "@/api/dataAdmin"; import {
getOptonList,
getEvaList,
getEvaData,
getEvaDetil,
getQueEvaData,
} from "@/api/dataAdmin";
export default { export default {
mixins: [table], mixins: [table],
name: "windowsEvaluation", name: "windowsEvaluation",
data() { data() {
return { return {
tableHeaders: [ tableHeaders: [
{ {
title: "序号", title: "序号",
dataIndex: "index", dataIndex: "index",
width: "60px", width: "60px",
key: "index", key: "index",
align: "center", align: "center",
customRender: (text, record, index) => `${index + 1}`, customRender: (text, record, index) => `${index + 1}`,
},
{
title: "窗口编号",
align: "center",
dataIndex: "window",
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 = ''
}, },
//导出 {
toexportTable() { title: "窗口编号",
let tableData = []; align: "center",
// 拼接评价选项 dataIndex: "window",
let chooseStr = this.evaChoose.join(',') customRender: (text) => {
// 要先拼接评价来源 return text ? text : "--";
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; title: "评价选项",
if(!this.tableSelectedRows.length){ align: "center",
this.content = '一条评论都没有选中' dataIndex: "option_id",
}else{ customRender: (text) => {
this.content = '此操作将删除这些评价信息,是否继续?' return text ? text : "--";
let arr = [] },
this.tableSelectedRows.forEach(item => {
arr.push(item.id)
});
this.delId = arr
}
}, },
togetEvaDetil(){ {
getEvaDetil({ title: "评价人",
id:this.delId align: "center",
}).then(res=>{ dataIndex: "idcard_Name",
{ customRender: (text) => {
this.delId=null return text ? text : "--";
this.visible = false; },
// 要刷新页面
this.togetevalist()
}
})
}, },
togetQueEvaData(record){ {
getQueEvaData({ title: "身份证号",
id:record.id align: "center",
}).then(res=>{ dataIndex: "idcard_IDCardNo",
const {code,data} = res customRender: (text) => {
if(code==1){ return text ? text : "--";
this.$refs.HandlingDetails.queEvaData = data },
}
})
}, },
togetEvaData(id){ {
getEvaData({ title: "手机号",
id:id align: "center",
}).then(res=>{ dataIndex: "phone",
const {code,data} = res customRender: (text) => {
if(code==1){ return text ? text : "--";
this.$refs.HandlingDetails.queEvaData = data },
}
})
}, },
togetevalist(){ {
// 拼接评价选项 title: "评价时间",
let chooseStr = this.evaChoose.join(',') align: "center",
// 要先拼接评价来源 dataIndex: "create_time",
let fromString = this.evaFrom.join(',') customRender: (text) => {
getEvaList({ return text ? text : "--";
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){ title: "评价来源",
this.evaFrom = val; align: "center",
}else{ dataIndex: "pjxt",
this.evaFrom = [0] 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: "pj_name",
customRender: (text) => {
return text ? text : "--";
},
}, },
changeEvaChoose(val){ {
this.evaChoose = val title: "评价人照片",
align: "center",
dataIndex: "picture",
scopedSlots: {
customRender: "评价人照片",
},
}, },
rangePickerChange(val) { {
this.evaDates = [this.$moment(val[0]).format("YYYY-MM-DD"),this.$moment(val[1]).format("YYYY-MM-DD")] title: "操作",
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: [], // 评价来源
evaDates: [], // 评价日期
content: "此操作将删除该评价信息,是否继续?",
delId: null, //当前删除id
baseurl: "",
optonList: [],
tableSelectedKeys: [],
tableSelectedRows: [],
tHeader: [
// 导出的表头名信息
"窗口编号",
"评价选项",
"评价人",
"身份证号",
"手机号",
"评价时间",
"评价来源",
"评价设备",
],
filterVal: [
// 导出的表头字段名,需要导出表格字段名
"window",
"option_id",
"idcard_Name",
"idcard_IDCardNo",
"phone",
"create_time",
"pjxt",
"pj_name",
],
};
},
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 = "";
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.togetevalist();
},
// 搜索
handleSearch() {
this.tablePagination.current = 1;
this.tableSelectedKeys = [];
this.tableSelectedRows = [];
this.togetevalist();
},
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.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";
QueueState(type) { default:
switch (type) { return "type0";
case 0: }
return "type1"; },
case 1: //详情模块
return "type2"; 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);
}
default: this.$refs.HandlingDetails.modalInfo.visible = true;
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];
} }
}, });
//详情模块 });
openHandlingDetails(record) { export2Excel(
// 判断为窗口屏或者其他状况,调用不同接口 this.tHeader,
if(record.pjxt==1){ this.filterVal,
this.$refs.HandlingDetails.modalInfo.title = "办理明细"; this.tableSelectedRows,
this.$refs.HandlingDetails.modalInfo.show = 1; "窗口服务评价记录报表" + this.$moment().format("YYYYMMDDHHmmss")
this.togetQueEvaData(record) );
}else{ } else {
this.$refs.HandlingDetails.modalInfo.title = "评价详情"; // 拼接评价选项
this.$refs.HandlingDetails.modalInfo.show = 2; let chooseStr = this.evaChoose.join(",");
this.togetEvaData(record.id) // 要先拼接评价来源
let fromString = this.evaFrom.join(",");
getEvaList({
page: this.tablePagination.current,
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.$refs.HandlingDetails.modalInfo.visible = true; this.tHeader,
}, this.filterVal,
//删除模态框 data.data.data,
showModal(record) { "窗口服务评价记录报表" + this.$moment().format("YYYYMMDDHHmmss")
this.visible = true; );
this.delId = record.id }
}, });
}
this.btnLoading = false;
}, },
watch:{ },
tablePagination(){ watch: {
this.togetevalist() tablePagination() {
} this.togetevalist();
}, },
created(){ },
this.baseurl = process.env.VUE_APP_API_PHP_URL 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: space-between; justify-content: flex-start;
align-items: center; align-items: center;
}
&>div {
display: flex;
justify-content: flex-start;
align-items: center;
}
} }
</style> </style>
......
...@@ -2,17 +2,27 @@ ...@@ -2,17 +2,27 @@
<div class="queueRecord-Container"> <div class="queueRecord-Container">
<div class="header_box"> <div class="header_box">
<div> <div>
<a-button :loading="btnLoading" type="success" @click="handleExportTable"> <a-button
:loading="btnLoading"
type="success"
@click="handleExportTable"
>
<span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span> <span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span>
</a-button> </a-button>
<b>取号次数:<i>{{ tablePagination.total }}</i></b> <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 v-for="item in deviceData" :key="item.id" :value="item.id"> <a-select-option
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>
...@@ -24,7 +34,10 @@ ...@@ -24,7 +34,10 @@
</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 v-model="searchForm.flownum" placeholder="请输入排队编号搜索"> <a-input
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>
...@@ -33,11 +46,21 @@ ...@@ -33,11 +46,21 @@
</span> </span>
</div> </div>
<div class="main"> <div class="main">
<a-table size="small" bordered :row-key="(record) => record.id" :row-selection="{ <a-table
selectedRowKeys: tableSelectedKeys, size="small"
onChange: onSelectChange, bordered
}" :scroll="{ y: 590 }" :pagination="tablePagination" @change="changeTablePage" :loading="tableLoading" :row-key="(record) => record.id"
:columns="tableHeaders" :dataSource="tableList"> :row-selection="{
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
...@@ -59,7 +82,11 @@ ...@@ -59,7 +82,11 @@
</template> </template>
<!-- 办理业务 --> <!-- 办理业务 -->
<template slot="business" slot-scope="text"> <template slot="business" slot-scope="text">
<a v-if="text.business" @click="openBusiness(text.business, text.businessid)">{{ text.business }}</a> <a
v-if="text.business"
@click="openBusiness(text.business, text.businessid)"
>{{ text.business }}</a
>
<span v-else>--</span> <span v-else>--</span>
</template> </template>
<!-- 办理开始时间 --> <!-- 办理开始时间 -->
...@@ -70,8 +97,8 @@ ...@@ -70,8 +97,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>
<!-- 工作人员 --> <!-- 工作人员 -->
...@@ -91,11 +118,13 @@ ...@@ -91,11 +118,13 @@
</template> </template>
<!-- 状态 --> <!-- 状态 -->
<template slot="style" slot-scope="text"> <template slot="style" slot-scope="text">
<span :class="{ <span
'stand-line': text.style === 0, :class="{
'on-transact': text.style === 1, 'stand-line': text.style === 0,
'on-end': text.style === 4, 'on-transact': text.style === 1,
}"> 'on-end': text.style === 4,
}"
>
{{ $codeMap.queueState[text.style] }} {{ $codeMap.queueState[text.style] }}
</span> </span>
</template> </template>
......
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