Commit d65b22f3 authored by “yiyousong”'s avatar “yiyousong”

feat:添加预约报表

parent e8d4690e
...@@ -28,10 +28,9 @@ export function getWorkerInfo(params) { ...@@ -28,10 +28,9 @@ export function getWorkerInfo(params) {
return http.get(`${baseURL}/base/workman/info`, params); return http.get(`${baseURL}/base/workman/info`, params);
} }
//评价选项 //评价选项
export function getOptonList(params){ export function getOptonList(params) {
return http.post(`${BASEURL}/bkb/bkbset/optionlist`,params) return http.post(`${BASEURL}/bkb/bkbset/optionlist`, params);
} }
//评价数据列表 //评价数据列表
export function getEvaList(params) { export function getEvaList(params) {
...@@ -96,3 +95,37 @@ export function getCalllist(params) { ...@@ -96,3 +95,37 @@ export function getCalllist(params) {
export function getCallQueList(params) { export function getCallQueList(params) {
return http.post(`${BASEURL}/inter/reportform/callQueList`, params); return http.post(`${BASEURL}/inter/reportform/callQueList`, params);
} }
/**
* 预约报表
*/
// 获取列表
export function getOrderList(params) {
return http.post(`${BASEURL}/wechat/order_data/orderList`, params);
}
// 查看详情
export function getOrderinfo(params) {
return http.get(`${BASEURL}/wechat/order_data/orderinfo`, params);
}
/**
* 取件记录报表
*/
// 获取取件柜列表
export function getSitePickupDevice(params) {
return http.get(`${BASEURL}/pickup/reportform/siteDevice`, params);
}
// 获取取件记录报表
export function getPickupList(params) {
return http.post(`${BASEURL}/pickup/reportform/pickuplist`, params);
}
// 获取存件记录报表
export function getStorageList(params) {
return http.post(`${BASEURL}/pickup/reportform/storagelist`, params);
}
// 获取其他记录操作记录
export function getOtherList(params) {
return http.post(`${BASEURL}/pickup/reportform/otherlist`, params);
}
...@@ -20,6 +20,9 @@ import * as directives from "@/directive"; ...@@ -20,6 +20,9 @@ import * as directives from "@/directive";
Object.keys(directives).forEach((name) => Object.keys(directives).forEach((name) =>
Vue.directive(name, directives[name]) Vue.directive(name, directives[name])
); );
// 引入lodash
import lodash from "lodash";
Vue.prototype.$_ = lodash;
// moment 时间处理 // moment 时间处理
import moment from "moment"; import moment from "moment";
Vue.prototype.$moment = moment; Vue.prototype.$moment = moment;
...@@ -29,8 +32,8 @@ Object.keys(filters).forEach((key) => { ...@@ -29,8 +32,8 @@ Object.keys(filters).forEach((key) => {
Vue.filter(key, filters[key]); Vue.filter(key, filters[key]);
}); });
//引入字典 //引入字典
import codeMap from "@/utils/codeMap" import codeMap from "@/utils/codeMap";
Vue.prototype.$codeMap = codeMap Vue.prototype.$codeMap = codeMap;
Vue.prototype.$bus = new Vue(); Vue.prototype.$bus = new Vue();
......
...@@ -410,7 +410,9 @@ export default { ...@@ -410,7 +410,9 @@ export default {
6: "一体化评价", 6: "一体化评价",
}; };
if (this.tableSelectedKeys.length && this.tableSelectedRows.length) { if (this.tableSelectedKeys.length && this.tableSelectedRows.length) {
this.tableSelectedRows.forEach((item) => { // 深度克隆避免影响页面表格展示
let data = this.$_.cloneDeep(this.tableSelectedRows);
data.forEach((item) => {
Object.keys(obj).forEach((keys) => { Object.keys(obj).forEach((keys) => {
if (item.pjxt == keys) { if (item.pjxt == keys) {
item.pjxt = obj[keys]; item.pjxt = obj[keys];
...@@ -420,14 +422,16 @@ export default { ...@@ -420,14 +422,16 @@ export default {
export2Excel( export2Excel(
this.tHeader, this.tHeader,
this.filterVal, this.filterVal,
this.tableSelectedRows, data,
"办事部门评价记录报表" + this.$moment().format("YYYYMMDDHHmmss") "办事部门评价记录报表" + this.$moment().format("YYYYMMDDHHmmss")
); );
} else { } else {
let data = await this.togetevalist({ let data = this.$_.cloneDeep(
await this.togetevalist({
page: 1, page: 1,
size: -1, size: -1,
}); })
);
if (!data.length) return; if (!data.length) return;
for (let item of data) { for (let item of data) {
Object.keys(obj).forEach((key) => { Object.keys(obj).forEach((key) => {
......
...@@ -413,7 +413,9 @@ export default { ...@@ -413,7 +413,9 @@ export default {
6: "一体化评价", 6: "一体化评价",
}; };
if (this.tableSelectedKeys.length && this.tableSelectedRows.length) { if (this.tableSelectedKeys.length && this.tableSelectedRows.length) {
this.tableSelectedRows.forEach((item) => { // 深度克隆避免影响页面表格展示
let data = this.$_.cloneDeep(this.tableSelectedRows);
data.forEach((item) => {
Object.keys(obj).forEach((keys) => { Object.keys(obj).forEach((keys) => {
if (item.pjxt == keys) { if (item.pjxt == keys) {
item.pjxt = obj[keys]; item.pjxt = obj[keys];
...@@ -423,14 +425,16 @@ export default { ...@@ -423,14 +425,16 @@ export default {
export2Excel( export2Excel(
this.tHeader, this.tHeader,
this.filterVal, this.filterVal,
this.tableSelectedRows, data,
"办理事项评价记录报表" + this.$moment().format("YYYYMMDDHHmmss") "办理事项评价记录报表" + this.$moment().format("YYYYMMDDHHmmss")
); );
} else { } else {
let data = await this.togetevalist({ let data = this.$_.cloneDeep(
await this.togetevalist({
page: 1, page: 1,
size: -1, size: -1,
}); })
);
if (!data.length) return; if (!data.length) return;
for (let item of data) { for (let item of data) {
Object.keys(obj).forEach((key) => { Object.keys(obj).forEach((key) => {
......
...@@ -416,7 +416,9 @@ export default { ...@@ -416,7 +416,9 @@ export default {
6: "一体化评价", 6: "一体化评价",
}; };
if (this.tableSelectedKeys.length && this.tableSelectedRows.length) { if (this.tableSelectedKeys.length && this.tableSelectedRows.length) {
this.tableSelectedRows.forEach((item) => { // 深度克隆避免影响页面表格展示
let data = this.$_.cloneDeep(this.tableSelectedRows);
data.forEach((item) => {
Object.keys(obj).forEach((keys) => { Object.keys(obj).forEach((keys) => {
if (item.pjxt == keys) { if (item.pjxt == keys) {
item.pjxt = obj[keys]; item.pjxt = obj[keys];
...@@ -426,14 +428,16 @@ export default { ...@@ -426,14 +428,16 @@ export default {
export2Excel( export2Excel(
this.tHeader, this.tHeader,
this.filterVal, this.filterVal,
this.tableSelectedRows, data,
"窗口服务评价记录报表" + this.$moment().format("YYYYMMDDHHmmss") "窗口服务评价记录报表" + this.$moment().format("YYYYMMDDHHmmss")
); );
} else { } else {
let data = await this.togetevalist({ let data = this.$_.cloneDeep(
await this.togetevalist({
page: 1, page: 1,
size: -1, size: -1,
}); })
);
if (!data.length) return; if (!data.length) return;
for (let item of data) { for (let item of data) {
Object.keys(obj).forEach((key) => { Object.keys(obj).forEach((key) => {
......
...@@ -302,7 +302,9 @@ export default { ...@@ -302,7 +302,9 @@ export default {
2: "在线提交", 2: "在线提交",
}; };
if (this.tableSelectedKeys.length && this.tableSelectedRows.length) { if (this.tableSelectedKeys.length && this.tableSelectedRows.length) {
this.tableSelectedRows.forEach((item) => { // 深度克隆避免影响页面表格展示
let data = this.$_.cloneDeep(this.tableSelectedRows);
data.forEach((item) => {
Object.keys(obj).forEach((keys) => { Object.keys(obj).forEach((keys) => {
if (item.type == keys) { if (item.type == keys) {
item.type = obj[keys]; item.type = obj[keys];
...@@ -312,11 +314,13 @@ export default { ...@@ -312,11 +314,13 @@ export default {
export2Excel( export2Excel(
this.tHeader, this.tHeader,
this.filterVal, this.filterVal,
this.tableSelectedRows, data,
"填单记录报表" + this.$moment().format("YYYYMMDDHHmmss") "填单记录报表" + this.$moment().format("YYYYMMDDHHmmss")
); );
} else { } else {
let data = await this.togetPrintList({ page: 1, size: -1 }); let data = this.$_.cloneDeep(
await this.togetPrintList({ page: 1, size: -1 })
);
if (!data.length) return; if (!data.length) return;
for (let item of data) { for (let item of data) {
Object.keys(obj).forEach((key) => { Object.keys(obj).forEach((key) => {
......
...@@ -2,39 +2,45 @@ ...@@ -2,39 +2,45 @@
<div class="PoliticsShow-Container"> <div class="PoliticsShow-Container">
<div class="header_box"> <div class="header_box">
<div> <div>
<a-button type="success" @click="exportTable"> <a-button
:loading="btnLoading"
type="success"
@click="handleExportTable"
>
<span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span> <span>{{ tableSelectedRows.length ? "导出" : "导出全部" }}</span>
</a-button> </a-button>
</div> </div>
<span> <span>
<a-space>
<a-input <a-input
allowClear allowClear
v-model="searchName" style="width: 300px"
placeholder="请输入预约人姓名/事项名称搜索" v-model="searchForm.title"
placeholder="请输入预约人姓名/业务名称搜索"
@pressEnter="handleSearch"
> >
<a-icon slot="prefix" type="search" /> <a-icon slot="prefix" type="search" />
</a-input> </a-input>
<a-range-picker <a-range-picker
format="YYYY年MM月DD日" style="width: 200px"
class="range_picker_style" format="YYYY-MM-DD"
@change="rangePickerChange" valueFormat="YYYY-MM-DD"
v-model="BegindAndEndTime" v-model="searchForm.time"
> >
</a-range-picker> </a-range-picker>
<a-select default-value="001"> <a-select v-model="searchForm.status">
<!-- <a-select-option <a-select-option value=""> 全部 </a-select-option>
v-for="(item, index) of selectOptions" <a-select-option
:key="index" v-for="(v, key) in statusItem"
:value="item.value" :key="key"
:value="Number(key)"
> >
{{ item.label }} {{ v }}
</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-button type="primary" @click="handleSearch">搜索</a-button>
<a-button type="primary">搜索</a-button> <a-button @click="handleReset">重置</a-button>
</a-space>
</span> </span>
</div> </div>
<div class="main"> <div class="main">
...@@ -47,14 +53,55 @@ ...@@ -47,14 +53,55 @@
onChange: onSelectChange, onChange: onSelectChange,
}" }"
:scroll="{ y: 590 }" :scroll="{ y: 590 }"
:pagination="tablePagination" :pagination="{
@change="pagTableChange" showTotal: (total) => `共 ${total} 条`,
current: current,
total: total,
pageSize: size,
showSizeChanger: true,
showQuickJumper: true,
pageSizeOptions: pageSizeOptions,
onChange: changePage,
onShowSizeChange: changSize,
}"
:loading="tableLoading" :loading="tableLoading"
:columns="tableHeaders" :columns="tableHeaders"
:dataSource="tableSourceData" :dataSource="tableSourceData"
> >
<template slot="状态" slot-scope="text, record, index"> <!-- 序号 -->
<a-button type="link" @click="openDetails">{{ text }}</a-button> <span slot="index" slot-scope="text, record, index">{{
(current - 1) * size + index + 1
}}</span>
<!-- 状态 -->
<template slot="status" slot-scope="text">
<a-tag
@click="openDetails(text.id)"
v-if="text.status == 0"
color="#108ee9"
>
未签到
</a-tag>
<a-tag
@click="openDetails(text.id)"
v-else-if="text.status == 1"
color="#2db7f5"
>
排队中
</a-tag>
<a-tag
@click="openDetails(text.id)"
v-else-if="text.status == 2"
color="#f50"
>
超时未取号
</a-tag>
<a-tag
@click="openDetails(text.id)"
v-else-if="text.status == 3"
color="red"
>
已取消
</a-tag>
</template> </template>
</a-table> </a-table>
</div> </div>
...@@ -62,135 +109,277 @@ ...@@ -62,135 +109,277 @@
</template> </template>
<script> <script>
import table from "@/mixins/table"; import { getOrderList } from "@/api/dataAdmin";
import { export2Excel } from "@/utils/js/exportExcel";
let tHeader = [
// 导出的表头名信息
"预约人姓名",
"电话",
"身份证",
"办理地点",
"预约编号",
"预约时间",
"签到时间",
"取消时间",
"创建时间",
"状态",
];
let filterVal = [
// 导出的表头字段名,需要导出表格字段名
"idcard_Name",
"phone",
"idcard_IDCardNo",
"address",
"number",
"starttime",
"taketime",
"canceltime",
"create_time",
"status",
];
let statusItem = {
0: "预约中",
1: "成功取号",
2: "超时未取号",
3: "预约取消",
};
export default { export default {
mixins: [table],
name: "PortalAdminVueMakeRecordReport", name: "PortalAdminVueMakeRecordReport",
data() { data() {
return { let tableHeaders = [
BegindAndEndTime: [],
tableHeaders: [
{ {
title: "序号", title: "序号",
dataIndex: "index", dataIndex: "index",
width: "60px", width: "60px",
key: "index",
align: "center", align: "center",
customRender: (text, record, index) => `${index + 1}`, scopedSlots: {
customRender: "index",
},
}, },
{ {
title: "预约人姓名", title: "预约人姓名",
align: "center", align: "center",
dataIndex: "预约人姓名", customRender: (text) => {
return text.people.idcard_Name || "--";
},
}, },
{ {
title: "电话", title: "电话",
align: "center", align: "center",
dataIndex: "电话", customRender: (text) => {
return text.people.phone || "--";
},
}, },
{ {
title: "身份证", title: "身份证",
align: "center", align: "center",
dataIndex: "身份证", customRender: (text) => {
width: "180px", return text.people.idcard_IDCardNo || "--";
}, },
{
title: "事项主题名称",
align: "center",
dataIndex: "事项主题名称",
}, },
// {
// title: "事项主题名称",
// align: "center",
// dataIndex: "事项主题名称",
// },
{ {
title: "办理地点", title: "办理地点",
align: "center", align: "center",
dataIndex: "办理地点", dataIndex: "address",
}, },
{ {
title: "预约编号", title: "预约编号",
align: "center", align: "center",
dataIndex: "预约编号", dataIndex: "number",
}, },
{ {
title: "预约时间", title: "预约时间",
align: "center", align: "center",
dataIndex: "预约时间", dataIndex: "starttime",
}, },
{ {
title: "签到时间", title: "签到时间",
align: "center", align: "center",
dataIndex: "签到时间", customRender: (text) => {
return text.taketime || "--";
},
}, },
{ {
title: "取消时间", title: "取消时间",
align: "center", align: "center",
dataIndex: "取消时间", customRender: (text) => {
return text.canceltime || "--";
},
}, },
{ {
title: "创建时间", title: "创建时间",
align: "center", align: "center",
dataIndex: "创建时间", dataIndex: "create_time",
}, },
{ {
title: "状态", title: "状态",
align: "center", align: "center",
dataIndex: "状态",
scopedSlots: { scopedSlots: {
customRender: "状态", customRender: "status",
}, },
}, },
];
return {
tableLoading: false,
tHeader,
filterVal,
tableHeaders,
statusItem,
btnLoading: false,
searchForm: {
status: "",
title: "",
time: [
this.$moment(new Date()).format("YYYY-MM-DD"),
this.$moment(new Date()).format("YYYY-MM-DD"),
], ],
searchName: undefined, },
current: 1,
size: 10,
total: 0,
pageSizeOptions: ["10", "20", "30", "40", "50", "100", "200"],
tableSelectedKeys: [],
tableSelectedRows: [],
tableSourceData: [],
}; };
}, },
components: {}, created() {
mounted() { this.getOrderList();
this.setMoment(); },
for (let key = 0; key < 20; key++) { methods: {
this.tableSourceData.push({ // 获取报表数据
id: `00${key + 1}`, async getOrderList(search = {}) {
预约人姓名: `戴校庆${key + 1}`, let res = await getOrderList({
电话: `13880888834`, page: this.current,
身份证: `512111198802301988`, size: this.size,
事项主题名称: `生育证办理${key + 1}`, ...this.searchForm,
办理地点: `高新政务服务中心${key + 1}`, ...search,
预约编号: `UMII9876${key + 1}`, });
预约时间: `2021-01-03 09:00:00~18:00:00`, if (res.code == 1) {
签到时间: `2022-01-03 09:00:00`, let { data, total } = res.data;
取消时间: `2022-01-03 18:00:00`, if (!data.length && this.current > 1) {
创建时间: `2021-01-03 09:00:00`, this.current -= 1;
状态: `未办理${key + 1}`, this.getOrderList();
}
this.tableSourceData = data.map((v) => {
delete v.people.id;
return { ...v, ...v.people };
}); });
this.total = total;
return this.tableSourceData;
} }
}, },
methods: { // 翻页
rangePickerChange(val) { changePage(cur) {
console.log(val); this.current = cur;
this.getOrderList();
}, },
// 改变每页显示数量
QueueState(type) { changSize(cur, size) {
switch (type) { this.current = cur;
case 0: this.size = size;
return "type1"; this.getOrderList();
case 1: },
return "type2"; // 搜索
handleSearch() {
default: this.current = 1;
return "type0"; this.tableSelectedKeys = [];
} this.tableSelectedRows = [];
this.getOrderList();
}, },
openDetails() { // 重置搜索
handleReset() {
this.current = 1;
this.tableSelectedKeys = [];
this.tableSelectedRows = [];
this.searchForm = {
status: "",
title: "",
time: [
this.$moment(new Date()).format("YYYY-MM-DD"),
this.$moment(new Date()).format("YYYY-MM-DD"),
],
};
this.getOrderList();
},
// 选中
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);
});
},
openDetails(id) {
// 跳转详情 // 跳转详情
this.$router.push({ path: "/home/dataManagement/recordReportdetails" }); this.$router.push({
path: "/home/dataManagement/recordReportdetails",
query: {
id,
},
});
},
// 导出
async handleExportTable() {
this.btnLoading = true;
if (this.tableSelectedKeys.length && this.tableSelectedRows.length) {
// 深度克隆避免影响页面表格展示
let data = this.$_.cloneDeep(this.tableSelectedRows);
for (let item of data) {
Object.keys(this.statusItem).forEach((key) => {
if (item.status == key) {
item.status = this.statusItem[key];
}
});
}
export2Excel(
this.tHeader,
this.filterVal,
data,
"预约记录报表" + this.$moment().format("YYYYMMDDHHmmss")
);
} else {
let data = this.$_.cloneDeep(
await this.getOrderList({ page: 1, size: -1 })
);
if (!data.length) return;
for (let item of data) {
Object.keys(this.statusItem).forEach((key) => {
if (item.status == key) {
item.status = this.statusItem[key];
}
});
}
export2Excel(
this.tHeader,
this.filterVal,
data,
"预约记录报表" + this.$moment().format("YYYYMMDDHHmmss")
);
}
this.btnLoading = false;
}, },
}, },
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
/deep/.ant-spin-container { /deep/.ant-spin-container {
display: block; display: block;
} }
/deep/.ant-tag {
cursor: pointer;
}
</style> </style>
...@@ -8,50 +8,108 @@ ...@@ -8,50 +8,108 @@
<div class="top"> <div class="top">
<div class="info"> <div class="info">
<h1>预约信息</h1> <h1>预约信息</h1>
<p><span>预约编号:</span>A051511051332</p> <p><span>预约编号:</span>{{ orderInfo.number || "--" }}</p>
<p><span>预约人:</span>*黎</p> <p>
<p><span>手机号:</span>13080888888</p> <span>预约人:</span
<p><span>证件号码:</span>**********2112</p> >{{ (orderInfo.people && orderInfo.people.idcard_Name) || "--" }}
<p><span>预约时段:</span>2022-03-02 09:00:00</p> </p>
<p>
<span>手机号:</span
>{{ (orderInfo.people && orderInfo.people.phone) || "--" }}
</p>
<p>
<span>证件号码:</span
>{{
(orderInfo.people && orderInfo.people.idcard_IDCardNo) || "--"
}}
</p>
<p>
<span>预约时段:</span>{{ orderInfo.starttime }}~{{
orderInfo.endtime
}}
</p>
</div> </div>
<div class="qrcode"> <div class="qrcode">
<img src="~@/assets/images/logo.png" alt="" /> <!-- <img src="~@/assets/images/logo.png" alt="" />
<p>预约信息二维码</p> <p>预约信息二维码</p> -->
</div> </div>
</div> </div>
<ul class="bottom"> <ul class="bottom">
<li v-for="item of 4"> <li v-for="(v, key) of orderStatus" :key="key">
<p>0{{ item }}</p> <p>0{{ key }}</p>
<p>预约状态</p> <p>{{ v }}</p>
</li> </li>
</ul> </ul>
</div> </div>
<div class="right_"> <div class="right_">
<div class="box1"> <div class="box1">
<div class="left_"> <div class="left_">
<h1>生育业务</h1> <h1>{{ orderInfo.business || "--" }}</h1>
<p v-for="item of 3">事项1:生育证津贴办理</p> <!-- <p v-for="item of 3">事项1:生育证津贴办理</p> -->
</div> </div>
<div class="right_"> <div class="right_">
<span>未签到</span> <span class="status1" v-if="orderInfo.status != 1">未签到</span>
<span class="status2" v-else>排队中</span>
</div> </div>
</div> </div>
<div class="box2"> <div class="box2">
<h1>办理地点</h1> <h1>办理地点</h1>
<h2><span v-for="item of 3">办理地点:xxx政务服务中心</span></h2> <h2>
<h2><span v-for="item of 3">办理地点:xxx政务服务中心</span></h2> <span
>办理地点:{{
orderInfo.siteinfo && orderInfo.siteinfo.siteName
}}</span
>
<span
>办理窗口:{{
(orderInfo.window && orderInfo.window.join(",")) || "--"
}}</span
>
<span
>服务热线:{{
orderInfo.siteinfo && orderInfo.siteinfo.siteTel
}}</span
>
</h2>
<h2>
<span
>办理时间:{{
orderInfo.siteinfo &&
Number(orderInfo.siteinfo.amWorkStartTime) | times
}}
~
{{
orderInfo.siteinfo &&
Number(orderInfo.siteinfo.pmWorkEndTime) | times
}}</span
>
<span
>办理地址:{{
orderInfo.siteinfo && orderInfo.siteinfo.detailAddress
}}</span
>
</h2>
</div> </div>
<div class="box3"> <div class="box3">
<h1>签到信息</h1> <h1>签到信息</h1>
<h2><span v-for="item of 2">签到时间:2022-08-03 09:00:00</span></h2> <h2>
<span>签到时间:{{ orderInfo.taketime || "--" }}</span>
</h2>
<h2>
<span
>签到地址:{{
orderInfo.siteinfo && orderInfo.siteinfo.detailAddress
}}</span
>
</h2>
</div> </div>
</div> </div>
</div> </div>
<div class="footer"> <div class="footer">
<h1>操作信息</h1> <h1>操作信息</h1>
<h2> <h2>
<span>操作时间:2021-08-02 16:00:00</span> <span>操作时间:{{ orderInfo.create_time }}</span>
<span>预约方式:手机端预约系统 </span> <span>预约方式:-- </span>
<span>操作站点:-- </span> <span>操作站点:-- </span>
</h2> </h2>
</div> </div>
...@@ -59,16 +117,41 @@ ...@@ -59,16 +117,41 @@
</template> </template>
<script> <script>
import { getOrderinfo } from "@/api/dataAdmin";
let orderStatus = {
1: "预约成功",
2: "签到成功",
3: "办理中",
4: "完成",
};
let statusItem = {
0: "预约中",
1: "成功取号",
2: "超时未取号",
3: "预约取消",
};
export default { export default {
name: "PortalAdminVueRecordReportdetails", name: "PortalAdminVueRecordReportdetails",
data() { data() {
return {}; return {
orderStatus,
statusItem,
orderInfo: {}, // 预约信息
};
}, },
mounted() {}, created() {
this.getOrderinfo();
},
methods: {}, methods: {
async getOrderinfo() {
let id = this.$route.query.id;
let res = await getOrderinfo({ id });
this.orderInfo = res.data;
console.log(res.data);
},
},
}; };
</script> </script>
...@@ -236,13 +319,23 @@ export default { ...@@ -236,13 +319,23 @@ export default {
width: 100px; width: 100px;
line-height: 100px; line-height: 100px;
text-align: center; text-align: center;
border: 1px solid #fe8625;
border-radius: 50%; border-radius: 50%;
color: #fe8625;
font-weight: bold; font-weight: bold;
-webkit-transform: rotate(45deg); -webkit-transform: rotate(45deg);
transform: rotate(45deg); transform: rotate(45deg);
} }
.status1 {
color: #fe8625;
border: 1px solid #fe8625;
}
.status2 {
color: #1890ff;
border: 1px solid #1890ff;
}
.status3 {
color: #03d76f;
border: 1px solid #03d76f;
}
} }
} }
.box2 { .box2 {
......
...@@ -458,7 +458,9 @@ export default { ...@@ -458,7 +458,9 @@ export default {
4: "办理完成", 4: "办理完成",
}; };
if (this.tableSelectedKeys.length && this.tableSelectedRows.length) { if (this.tableSelectedKeys.length && this.tableSelectedRows.length) {
this.tableSelectedRows.forEach((item) => { // 深度克隆避免影响页面表格展示
let data = this.$_.cloneDeep(this.tableSelectedRows);
data.forEach((item) => {
Object.keys(obj).forEach((keys) => { Object.keys(obj).forEach((keys) => {
if (item.style == keys) { if (item.style == keys) {
item.style = obj[keys]; item.style = obj[keys];
...@@ -468,14 +470,16 @@ export default { ...@@ -468,14 +470,16 @@ export default {
export2Excel( export2Excel(
this.tHeader, this.tHeader,
this.filterVal, this.filterVal,
this.tableSelectedRows, data,
"呼叫记录报表" + this.$moment().format("YYYYMMDDHHmmss") "呼叫记录报表" + this.$moment().format("YYYYMMDDHHmmss")
); );
} else { } else {
let data = await this.getCallQueListArr({ let data = this.$_.cloneDeep(
await this.getCallQueListArr({
page: 1, page: 1,
size: -1, size: -1,
}); })
);
if (!data.length) return; if (!data.length) return;
for (let item of data) { for (let item of data) {
Object.keys(obj).forEach((key) => { Object.keys(obj).forEach((key) => {
......
...@@ -452,7 +452,9 @@ export default { ...@@ -452,7 +452,9 @@ export default {
4: "办理完成", 4: "办理完成",
}; };
if (this.tableSelectedKeys.length && this.tableSelectedRows.length) { if (this.tableSelectedKeys.length && this.tableSelectedRows.length) {
this.tableSelectedRows.forEach((item) => { // 深度克隆避免影响页面表格展示
let data = this.$_.cloneDeep(this.tableSelectedRows);
data.forEach((item) => {
Object.keys(obj).forEach((keys) => { Object.keys(obj).forEach((keys) => {
if (item.style == keys) { if (item.style == keys) {
item.style = obj[keys]; item.style = obj[keys];
...@@ -462,11 +464,13 @@ export default { ...@@ -462,11 +464,13 @@ export default {
export2Excel( export2Excel(
this.tHeader, this.tHeader,
this.filterVal, this.filterVal,
this.tableSelectedRows, data,
"排队记录报表" + this.$moment().format("YYYYMMDDHHmmss") "排队记录报表" + this.$moment().format("YYYYMMDDHHmmss")
); );
} else { } else {
let data = await this.getQueueDataArr({ page: 1, size: -1 }); let data = this.$_.cloneDeep(
await this.getQueueDataArr({ page: 1, size: -1 })
);
if (!data.length) return; if (!data.length) return;
for (let item of data) { for (let item of data) {
Object.keys(obj).forEach((key) => { Object.keys(obj).forEach((key) => {
......
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