Commit 0b36eb6d authored by “yiyousong”'s avatar “yiyousong”

pref:修改填单报表

parent 8fdb0447
<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>
<b>填单次数:<i>{{tablePagination.total}}</i></b> <b
<sub>统计时间段:{{BegindAndEndTime[0]}}~{{BegindAndEndTime[1]}}</sub> >填单次数:<i>{{ tablePagination.total }}</i></b
</div> >
<span> <sub
<a-space> >统计时间段:{{ BegindAndEndTime[0] }}~{{ BegindAndEndTime[1] }}</sub
<!-- <a-input-group compact> --> >
<a-select :default-value="1" style="width:25%" @change="changeSearchType"> </div>
<a-select-option :value="1"> <span>
按事项 <a-space>
</a-select-option> <!-- <a-input-group compact> -->
<a-select-option :value="2"> <a-select
按材料 :default-value="1"
</a-select-option> style="width: 25%"
</a-select> @change="changeSearchType"
<a-input style="width:73%" v-model="searchName" placeholder="请输入评价人姓名或窗口编号搜索"> >
<a-icon slot="prefix" type="search" /> <a-select-option :value="1"> 按事项 </a-select-option>
</a-input> <a-select-option :value="2"> 按材料 </a-select-option>
<!-- </a-input-group> --> </a-select>
<a-range-picker format="YYYY年MM月DD日" class="range_picker_style" @change="rangePickerChange"> <a-select placeholder="全部状态" @change="changeStatu">
</a-range-picker> <a-select-option :value="0"> 全部类型 </a-select-option>
<a-select placeholder="全部状态" @change="changeStatu"> <a-select-option :value="1"> 本地打印 </a-select-option>
<a-select-option :value="0"> 全部类型 </a-select-option> <a-select-option :value="2"> 在线提交 </a-select-option>
<a-select-option :value="1"> 打印 </a-select-option> </a-select>
<a-select-option :value="2"> 在线提交 </a-select-option> <a-input v-model="searchName" placeholder="请输入名称搜索">
</a-select> <a-icon slot="prefix" type="search" />
<a-button type="primary" @click="togetPrintList">搜索</a-button> </a-input>
</a-space> <!-- </a-input-group> -->
</span> <a-range-picker
</div> format="YYYY年MM月DD日"
<div class="main"> class="range_picker_style"
<a-table size="small" bordered :row-key="(record) => record.id" :row-selection="{ v-model="BegindAndEndTime"
selectedRowKeys: tableSelectedKeys, @change="rangePickerChange"
onChange: onSelectChange, >
}" :scroll="{ y: 590 }" :pagination="tablePagination" @change="pagTableChange" :loading="tableLoading" </a-range-picker>
:columns="tableHeaders" :dataSource="tableSourceData">
<template slot="事项名称" slot-scope="text, record, index"> <a-button type="primary" @click="togetPrintList">搜索</a-button>
<div> <a-button @click="handleReset">重置</a-button>
{{record.matterName?record.matterName:'--'}} </a-space>
</div> </span>
<div class="tabFont"> </div>
事项全称:{{record.matterFullName?record.matterFullName:"--"}} <div class="main">
</div> <a-table
</template> size="small"
<template slot="材料名称" slot-scope="text, record, index"> bordered
<div> :row-key="(record) => record.id"
{{record.materialName?record.materialName:'--'}} :row-selection="{
</div> selectedRowKeys: tableSelectedKeys,
<div class="tabFont"> onChange: onSelectChange,
样表全称:{{record.materialFullName?record.materialFullName:"--"}} }"
</div> :scroll="{ y: 590 }"
</template> :pagination="tablePagination"
</a-table> @change="pagTableChange"
</div> :loading="tableLoading"
:columns="tableHeaders"
:dataSource="tableSourceData"
>
<!-- 序号 -->
<span slot="index" slot-scope="text, record, index">{{
(tablePagination.current - 1) * tablePagination.pageSize + index + 1
}}</span>
<template slot="事项名称" slot-scope="text, record, index">
<div>
{{ record.matterName ? record.matterName : "--" }}
</div>
<div class="tabFont">
事项全称:{{ record.matterFullName ? record.matterFullName : "--" }}
</div>
</template>
<template slot="材料名称" slot-scope="text, record, index">
<div>
{{ record.materialName ? record.materialName : "--" }}
</div>
<div class="tabFont">
样表全称:{{
record.materialFullName ? record.materialFullName : "--"
}}
</div>
</template>
</a-table>
</div> </div>
</div>
</template> </template>
<script> <script>
import table from "@/mixins/table"; import table from "@/mixins/table";
import { getPrintList } from "@/api/dataAdmin"; import { getPrintList } from "@/api/dataAdmin";
import { export2Excel } from "@/utils/js/exportExcel";
export default { export default {
mixins: [table], mixins: [table],
name: "fillForm", name: "fillForm",
data() { data() {
return { return {
tableHeaders: [ tableHeaders: [
{ {
title: "序号", title: "序号",
dataIndex: "index", width: "60px",
width: "60px", align: "center",
key: "index", scopedSlots: {
align: "center", customRender: "index",
customRender: (text, record, index) => `${index + 1}`, },
}, },
{ {
title: "事项名称", title: "事项名称",
align: "center", align: "center",
dataIndex: "事项名称", dataIndex: "事项名称",
width: 300, width: 300,
scopedSlots: { scopedSlots: {
customRender: "事项名称", customRender: "事项名称",
}, },
}, },
{ {
title: "材料名称", title: "材料名称",
align: "center", align: "center",
dataIndex: "materialName", dataIndex: "materialName",
width: 300, width: 300,
scopedSlots: { scopedSlots: {
customRender: "材料名称", customRender: "材料名称",
}, },
}, },
{ {
title: "用户姓名", title: "用户姓名",
align: "center", align: "center",
dataIndex: "idName", customRender: (text) => {
}, return text.idName ? text.idName : "--";
{ },
title: "身份证号", },
align: "center", {
dataIndex: "idCard", title: "身份证号",
}, align: "center",
{ customRender: (text) => {
title: "手机号码", return text.idCard ? text.idCard : "--";
align: "center", },
dataIndex: "mobile", },
}, {
{ title: "手机号码",
title: "设备名称", align: "center",
align: "center", customRender: (text) => {
dataIndex: "deviceName", return text.mobile ? text.mobile : "--";
}, },
{ },
title: "结果类型", {
align: "center", title: "设备名称",
dataIndex: "type", align: "center",
customRender: (text, record, index) => { customRender: (text) => {
return text==1?'本地打印':'在线打印' return text.deviceName ? text.deviceName : "--";
}, },
}, },
{ {
title: "操作时间", title: "结果类型",
align: "center", align: "center",
dataIndex: "createTime", customRender: (text, record, index) => {
}, return text == 1 ? "本地打印" : "在线提交";
// { },
// title: "累计耗时", },
// align: "center", {
// dataIndex: "累计耗时", title: "操作时间",
// }, align: "center",
], dataIndex: "createTime",
BegindAndEndTime: [], },
searchName: undefined, // {
searchType:1, // title: "累计耗时",
siteId:undefined, // align: "center",
statu:undefined // dataIndex: "累计耗时",
// },
],
BegindAndEndTime: [
this.$moment(new Date()).format("YYYY-MM-DD"),
this.$moment(new Date()).format("YYYY-MM-DD"),
],
searchName: undefined,
searchType: 1,
siteId: JSON.parse(localStorage.getItem("siteId")),
statu: undefined,
tableSelectedKeys: [],
tableSelectedRows: [],
tHeader: [
// 导出的表头名信息
"事项简称",
"事项全称",
"材料简称",
"材料全称",
"用户姓名",
"身份证号码",
"手机号码",
"设备名称",
"结果类型",
"操作时间",
],
filterVal: [
// 导出的表头字段名,需要导出表格字段名
"matterName",
"matterFullName",
"materialName",
"materiaFullName",
"idName",
"idCard",
"mobile",
"deviceName",
"type",
"createTime",
],
};
},
components: {},
mounted() {
this.setMoment();
this.togetPrintList();
},
watch: {
tablePagination() {
this.togetPrintList();
},
},
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);
}
}, },
components: { changeStatu(val) {
this.statu = val;
}, },
mounted() { changeSearchType(val) {
this.setMoment(); this.searchType = val;
this.BegindAndEndTime=[this.$moment(new Date()).format("YYYY-MM-DD"),this.$moment(new Date()).format("YYYY-MM-DD")]
this.siteId = JSON.parse(localStorage.getItem('siteId'))
this.togetPrintList()
}, },
watch:{ togetPrintList() {
tablePagination(){ let pramse = {
this.togetPrintList() 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) {
this.tableSourceData = data.data;
this.tablePagination.total = data.total;
} }
});
}, },
methods: { rangePickerChange(val) {
//导出 this.BegindAndEndTime = [
toexportTable() { this.$moment(val[0]).format("YYYY-MM-DD"),
let tableData = []; this.$moment(val[1]).format("YYYY-MM-DD"),
if (this.tableSelectedRows.length == 0) { ];
let pramse = { },
page:this.tablePagination.current, // 重置
size:this.tablePagination.pageSize, handleReset() {
siteId:this.siteId, this.BegindAndEndTime = [
matterName:"%%", this.$moment(new Date()).format("YYYY-MM-DD"),
materialName:"%%", this.$moment(new Date()).format("YYYY-MM-DD"),
createTimeStart:this.BegindAndEndTime[0], ];
createTimeEnd:this.BegindAndEndTime[1], this.searchName = undefined;
} this.searchType = 1;
if(this.statu && this.statu!=0){ this.statu = undefined;
pramse.type=this.statu this.tablePagination.current = 1;
} this.togetPrintList();
if(this.searchType==1 && this.searchName){ },
pramse.matterName = '%'+this.searchName+'%' QueueState(type) {
}else if(this.searchName){ switch (type) {
pramse.materialName='%'+this.searchName+'%' case 0:
} return "type1";
getPrintList(pramse).then((res)=>{ case 1:
const{code,data} = res; return "type2";
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 { default:
tableData = JSON.parse(JSON.stringify(this.tableSelectedRows)); return "type0";
tableData.forEach(item => { }
item.type = item.type==1?"本地打印":"在线打印" },
}); // 选中
let tableColumns = JSON.parse(JSON.stringify(this.tableHeaders)); onSelectChange(keys, rows) {
let newTableData = tableData.map(item => { this.tableSelectedKeys = keys;
let obj = {}; const res = new Map();
for (let key in item) { this.tableSelectedRows = [...this.tableSelectedRows, ...rows]
obj[key] = item[key]; .filter((v) => {
} return !res.has(v.id) && res.set(v.id, 1);
return obj; })
}) .filter((v) => {
let exprotExcelName = `${this.nowDay} / ${this.nowTime} / ${this.$route['meta']['title'] || '报表信息统计'}`; return this.tableSelectedKeys.some((val) => v.id == val);
this.exportExcel(tableColumns, newTableData, exprotExcelName); });
} },
}, // 导出
changeStatu(val){ handleExportTable() {
this.statu = val this.btnLoading = true;
}, let obj = {
changeSearchType(val){ 1: "本地打印",
this.searchType = val 2: "在线提交",
}, };
togetPrintList(){ if (this.tableSelectedKeys.length && this.tableSelectedRows.length) {
let pramse = { this.tableSelectedRows.forEach((item) => {
page:this.tablePagination.current, Object.keys(obj).forEach((keys) => {
size:this.tablePagination.pageSize, if (item.type == keys) {
siteId:this.siteId, item.type = obj[keys];
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){ export2Excel(
console.log(res); this.tHeader,
this.tableSourceData = data.data this.filterVal,
this.tablePagination.total = data.total this.tableSelectedRows,
"填单记录报表" + this.$moment().format("YYYYMMDDHHmmss")
);
} else {
let pramse = {
page: 1,
size: -1,
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) {
if (!data.data.length) return;
for (let item of data.data) {
Object.keys(obj).forEach((key) => {
if (item.type == key) {
item.type = obj[key];
} }
}) });
},
rangePickerChange(val) {
this.BegindAndEndTime=[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";
} }
}, export2Excel(
this.tHeader,
this.filterVal,
data.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;
} }
.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 { i {
font-style: normal; color: #0595fd;
font-weight: unset; font-style: normal;
font-size: 16px; }
margin-left: 20px; }
i {
color: #0595fd;
font-style: normal;
}
}
sub { sub {
font-size: 14px; font-size: 14px;
font-style: normal; font-style: normal;
bottom: unset; bottom: unset;
margin-left: 20px; margin-left: 20px;
}
} }
}
} }
.tabFont { .tabFont {
font-size: 12px; font-size: 12px;
font-weight: 300; font-weight: 300;
} }
</style> </style>
......
...@@ -477,6 +477,7 @@ export default { ...@@ -477,6 +477,7 @@ export default {
...this.searchForm, ...this.searchForm,
}).then((res) => { }).then((res) => {
let { data } = res.data; let { data } = res.data;
if (!data.length) return;
for (let item of data) { for (let item of data) {
Object.keys(obj).forEach((key) => { Object.keys(obj).forEach((key) => {
if (item.style == key) { if (item.style == key) {
......
...@@ -464,6 +464,7 @@ export default { ...@@ -464,6 +464,7 @@ export default {
...this.searchForm, ...this.searchForm,
}).then((res) => { }).then((res) => {
let { data } = res.data; let { data } = res.data;
if (!data.length) return;
for (let item of data) { for (let item of data) {
Object.keys(obj).forEach((key) => { Object.keys(obj).forEach((key) => {
if (item.style == key) { if (item.style == 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