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

perf:优化

parent 60bebea3
// 系统api
import request from "@/utils/request";
/**
* 排队数据报表
*/
// 获取列表
export const getQueueList = (data) => {
return request({
url: `/bill/ph/queue/list`,
method: "post",
data,
});
};
// 获取排号详情
export const getQueueInfo = (params) => {
return request({
url: `/bill/ph/queue/info`,
method: "get",
params,
});
};
/**
* 评价数据报表
*/
// 获取列表
export const getEvaluateList = (data) => {
return request({
url: `/bill/pj/evaluate/list`,
method: "post",
data,
});
};
// 获取评价详情
export const getEvaluateInfo = (params) => {
return request({
url: `/bill/pj/evaluate/info`,
method: "get",
params,
});
};
...@@ -5,10 +5,10 @@ ...@@ -5,10 +5,10 @@
:props="defaultProps" :props="defaultProps"
node-key="id" node-key="id"
highlight-current highlight-current
:current-node-key="curKey" :current-node-key="siteId"
accordion accordion
:expand-on-click-node="false" :expand-on-click-node="false"
:default-expanded-keys="[curKey]" :default-expanded-keys="[siteId]"
@node-click="handleNodeClick" @node-click="handleNodeClick"
> >
<div slot-scope="{ node }"> <div slot-scope="{ node }">
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
<script> <script>
import { mapState } from "vuex"; import { mapState } from "vuex";
import storage from "@/utils/storage";
export default { export default {
name: "AreaTree", name: "AreaTree",
data() { data() {
...@@ -30,7 +31,7 @@ export default { ...@@ -30,7 +31,7 @@ export default {
children: "children", children: "children",
label: "label", label: "label",
}, },
curKey: "1", siteId: storage.get(2, "siteId"),
}; };
}, },
computed: { computed: {
...@@ -49,10 +50,8 @@ export default { ...@@ -49,10 +50,8 @@ export default {
created() {}, created() {},
methods: { methods: {
handleNodeClick(data) { handleNodeClick(data) {
if (data.type != "site") { let type = data.type;
return; this.$emit("change", type, data.id);
}
console.log(data);
}, },
}, },
}; };
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
<script> <script>
export default { export default {
name: "Pagination",
props: { props: {
total: { total: {
required: true, required: true,
......
...@@ -18,11 +18,12 @@ ...@@ -18,11 +18,12 @@
<div class="flex gap-5"> <div class="flex gap-5">
<div class="search-box top-radius flex h-full items-center gap-5"> <div class="search-box top-radius flex h-full items-center gap-5">
<div class="text-[14px] text-[#395EBF]"> <div class="text-[14px] text-[#395EBF]">
统计时段:2023.08.01~2023.08.17 统计时段:{{ time[0] }}~{{ time[1] }}
</div> </div>
<el-date-picker <el-date-picker
size="small" size="small"
v-model="value2" v-model="time"
value-format="yyyy-MM-dd"
type="daterange" type="daterange"
align="right" align="right"
unlink-panels unlink-panels
...@@ -30,6 +31,7 @@ ...@@ -30,6 +31,7 @@
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
:picker-options="pickerOptions" :picker-options="pickerOptions"
:clearable="false"
> >
</el-date-picker> </el-date-picker>
<el-button size="small" type="primary">搜索</el-button> <el-button size="small" type="primary">搜索</el-button>
...@@ -84,8 +86,10 @@ export default { ...@@ -84,8 +86,10 @@ export default {
}, },
], ],
}, },
value2: "", time: [
active: 1, this.$moment().format("YYYY-MM-DD"),
this.$moment().format("YYYY-MM-DD"),
],
}; };
}, },
}; };
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
> >
<TabHeader icon="el-icon-notebook-2" label="组织架构"></TabHeader> <TabHeader icon="el-icon-notebook-2" label="组织架构"></TabHeader>
<div class="w-full flex-1 overflow-auto p-[20px]"> <div class="w-full flex-1 overflow-auto p-[20px]">
<AreaTree></AreaTree> <AreaTree @change="changeSite"></AreaTree>
</div> </div>
</div> </div>
<div class="flex h-full flex-1 flex-col bg-white"> <div class="flex h-full flex-1 flex-col bg-white">
...@@ -55,6 +55,10 @@ export default { ...@@ -55,6 +55,10 @@ export default {
(v) => !v.meta.hidden (v) => !v.meta.hidden
); );
}, },
// 改变站点选择
changeSite(type, siteId) {
console.log(type, siteId);
},
}, },
}; };
</script> </script>
......
...@@ -5,38 +5,48 @@ ...@@ -5,38 +5,48 @@
<div class="flex items-center gap-4"> <div class="flex items-center gap-4">
<el-button type="primary" size="small">导出</el-button> <el-button type="primary" size="small">导出</el-button>
<div class="text-[#909399]"> <div class="text-[#909399]">
取号次数:<span class="take-total-num">223</span> 取号次数:<span class="take-total-num">{{ total }}</span>
</div> </div>
<div class="text-[14px] text-[#909399]"> <div class="text-[14px] text-[#909399]">
统计时间段:2024-12-12 ~ 2024-12-12 统计时间段:{{ searchForm.time[0] }} ~ {{ searchForm.time[1] }}
</div> </div>
</div> </div>
<div class="flex items-center"> <div class="flex items-center">
<el-form ref="form" inline size="small" :model="form"> <el-form ref="searchForm" inline size="small" :model="searchForm">
<el-form-item> <el-form-item>
<el-select v-model="form.region" placeholder="请选择活动区域"> <el-select style="width: 130px" v-model="searchForm.type">
<el-option label="区域一" value="shanghai"></el-option> <el-option
<el-option label="区域二" value="beijing"></el-option> v-for="(v, key) in searchType"
:key="key"
:label="v"
:value="Number(key)"
></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-input v-model="form.name"></el-input> <el-input
v-model="searchForm.keyword"
placeholder="请输入关键字"
@keyup.native.enter="generalSearch"
></el-input>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-date-picker <el-date-picker
v-model="form.value" v-model="searchForm.time"
type="daterange" type="daterange"
value-format="yyyy-MM-dd"
align="right" align="right"
unlink-panels unlink-panels
range-separator="至" range-separator="至"
start-placeholder="开始日期" start-placeholder="开始日期"
end-placeholder="结束日期" end-placeholder="结束日期"
:picker-options="pickerOptions" :picker-options="pickerOptions"
:clearable="false"
> >
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary">搜索</el-button> <el-button type="primary" @click="generalSearch">搜索</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
...@@ -46,27 +56,36 @@ ...@@ -46,27 +56,36 @@
popper-class="search-popover" popper-class="search-popover"
> >
<div class="w-full"> <div class="w-full">
<el-form ref="form2" inline size="small" :model="form2"> <el-form ref="searchForm2" inline size="small" :model="searchForm2">
<el-form-item> <el-form-item>
<el-checkbox-group v-model="form2.type"> <el-checkbox-group v-model="searchForm2.type">
<el-checkbox label="预约业务" name="type"></el-checkbox> <el-checkbox label="预约业务" name="type"></el-checkbox>
<el-checkbox label="呼叫业务" name="type"></el-checkbox> <el-checkbox label="呼叫业务" name="type"></el-checkbox>
</el-checkbox-group> </el-checkbox-group>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-select v-model="form2.region" placeholder="请选择活动区域"> <el-select
v-model="searchForm2.region"
placeholder="请选择活动区域"
>
<el-option label="区域一" value="shanghai"></el-option> <el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option> <el-option label="区域二" value="beijing"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-select v-model="form2.region" placeholder="请选择活动区域"> <el-select
v-model="searchForm2.region"
placeholder="请选择活动区域"
>
<el-option label="区域一" value="shanghai"></el-option> <el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option> <el-option label="区域二" value="beijing"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-select v-model="form2.region" placeholder="请选择活动区域"> <el-select
v-model="searchForm2.region"
placeholder="请选择活动区域"
>
<el-option label="区域一" value="shanghai"></el-option> <el-option label="区域一" value="shanghai"></el-option>
<el-option label="区域二" value="beijing"></el-option> <el-option label="区域二" value="beijing"></el-option>
</el-select> </el-select>
...@@ -94,6 +113,12 @@ ...@@ -94,6 +113,12 @@
:row-key="(row) => row.id" :row-key="(row) => row.id"
@selection-change="handleSelectionChange" @selection-change="handleSelectionChange"
></y-table> ></y-table>
<Pagination
:total="total"
:current.sync="current"
:size.sync="size"
@get="getQueueList"
></Pagination>
</div> </div>
<!-- 详情 --> <!-- 详情 -->
<QueueUpDetails :show.sync="show"></QueueUpDetails> <QueueUpDetails :show.sync="show"></QueueUpDetails>
...@@ -102,14 +127,27 @@ ...@@ -102,14 +127,27 @@
<script> <script>
import QueueUpDetails from "./components/QueueUpDetails.vue"; import QueueUpDetails from "./components/QueueUpDetails.vue";
let searchType = {
1: "按业务",
2: "按窗口编号",
3: "按群众姓名",
4: "按群众手机号",
};
import { getQueueList } from "@/api/market";
import storage from "@/utils/storage";
export default { export default {
components: { components: {
QueueUpDetails, QueueUpDetails,
}, },
data() { data() {
return { return {
searchType,
show: false, show: false,
loading: false, loading: false,
total: 0,
size: 10,
current: 1,
dict: {},
selectionRow: [], selectionRow: [],
pickerOptions: { pickerOptions: {
shortcuts: [ shortcuts: [
...@@ -142,15 +180,19 @@ export default { ...@@ -142,15 +180,19 @@ export default {
}, },
], ],
}, },
form: {}, searchForm: {
form2: { type: 1,
type: [], keyword: "",
time: [
this.$moment().format("YYYY-MM-DD"),
this.$moment().format("YYYY-MM-DD"),
],
siteId: storage.get(2, "siteId"),
}, },
tableData: [ searchForm2: {
{ type: [],
name: "高县",
}, },
], tableData: [],
column: [ column: [
{ {
type: "selection", type: "selection",
...@@ -169,112 +211,134 @@ export default { ...@@ -169,112 +211,134 @@ export default {
label: "站点名称", label: "站点名称",
align: "center", align: "center",
width: "150", width: "150",
prop: "name", prop: "siteName",
}, },
{ {
label: "业务名称", label: "业务名称",
align: "center", align: "center",
width: "150", width: "150",
prop: "business",
}, },
{ {
label: "预约编码", label: "预约编码",
align: "center", align: "center",
width: "150", width: "150",
prop: "ordernumber",
}, },
{ {
label: "叫号状态", label: "叫号状态",
align: "center", align: "center",
width: "150", width: "150",
prop: "style",
}, },
{ {
label: "窗口名", label: "窗口名",
align: "center", align: "center",
width: "150", width: "150",
prop: "windowName",
}, },
{ {
label: "窗口编号", label: "窗口编号",
align: "center", align: "center",
width: "150", width: "150",
prop: "windowFromnum",
}, },
{ {
label: "流水号", label: "流水号",
align: "center", align: "center",
width: "150", width: "150",
prop: "flownum",
}, },
{ {
label: "呼叫转移", label: "呼叫转移",
align: "center", align: "center",
width: "150", width: "150",
prop: "formernum",
}, },
{ {
label: "身份证号", label: "身份证号",
align: "center", align: "center",
width: "150", width: "150",
prop: "peopleIdcard",
}, },
{ {
label: "姓名", label: "姓名",
align: "center", align: "center",
width: "150", width: "150",
prop: "peopleName",
}, },
{ {
label: "手机号", label: "手机号",
align: "center", align: "center",
width: "150", width: "150",
prop: "peoplePhone",
}, },
{ {
label: "工作人员", label: "工作人员",
align: "center", align: "center",
width: "150", width: "150",
prop: "workmanName",
}, },
{ {
label: "工号", label: "工号",
align: "center", align: "center",
width: "150", width: "150",
prop: "workmanNumber",
}, },
{ {
label: "取号方式", label: "取号方式",
align: "center", align: "center",
width: "150", width: "150",
prop: "wySignin",
}, },
{ {
label: "部门名称", label: "部门名称",
align: "center", align: "center",
width: "150", width: "150",
prop: "sectionName",
}, },
{ {
label: "大厅名称", label: "大厅名称",
align: "center", align: "center",
width: "150", width: "150",
prop: "hallName",
}, },
{ {
label: "取号时间", label: "取号时间",
align: "center", align: "center",
width: "150", width: "150",
prop: "taketime",
}, },
{ {
label: "叫号时间", label: "叫号时间",
align: "center", align: "center",
width: "150", width: "150",
prop: "calltime",
}, },
{ {
label: "结束时间", label: "结束时间",
align: "center", align: "center",
width: "150", width: "150",
prop: "endtime",
}, },
{ {
label: "等待时间", label: "等待时间",
align: "center", align: "center",
width: "150", width: "150",
prop: "waitTime",
}, },
{ {
label: "办理时间", label: "办理时间",
align: "center", align: "center",
width: "150", width: "150",
prop: "handleTime",
}, },
{ {
label: "扩展编号", label: "扩展编号",
align: "center", align: "center",
width: "150", width: "150",
prop: "extNum",
}, },
{ {
label: "操作", label: "操作",
...@@ -297,7 +361,54 @@ export default { ...@@ -297,7 +361,54 @@ export default {
], ],
}; };
}, },
created() {
this.getQueueList();
},
methods: { methods: {
// 获取列表
async getQueueList(form = {}) {
this.loading = true;
let obj = {
page: this.current,
size: this.size,
taketimeStart: this.searchForm.time[0],
taketimeEnd: this.searchForm.time[1],
siteId: this.searchForm.siteId,
};
let val = `%${this.searchForm.keyword}%`;
switch (this.searchForm.type) {
case 1:
obj.business = val;
break;
case 2:
obj.windowFromnum = val;
break;
case 3:
obj.peopleName = val;
break;
case 4:
obj.peoplePhone = val;
break;
}
this.loading = false;
let res = await getQueueList({
...obj,
...form,
});
if (res.data.code == 1) {
let { data, total, dict } = res.data.data;
this.tableData = data;
this.total = total;
this.dict = dict;
}
},
// 普通搜索
generalSearch() {
this.current = 1;
this.$clearSelection("MyTable");
this.getQueueList();
},
checkDetails(row) { checkDetails(row) {
console.log(row); console.log(row);
this.show = true; this.show = true;
......
...@@ -76,13 +76,11 @@ ...@@ -76,13 +76,11 @@
<script> <script>
import TableHeader from "@/components/TableHeader.vue"; import TableHeader from "@/components/TableHeader.vue";
import AddParameter from "./components/AddParameter.vue"; import AddParameter from "./components/AddParameter.vue";
import Pagination from "@/components/Pagination.vue";
import { getParamList, delParam } from "@/api/system"; import { getParamList, delParam } from "@/api/system";
export default { export default {
components: { components: {
TableHeader, TableHeader,
AddParameter, AddParameter,
Pagination,
}, },
data() { data() {
return { return {
......
...@@ -79,13 +79,11 @@ ...@@ -79,13 +79,11 @@
<script> <script>
import TableHeader from "@/components/TableHeader.vue"; import TableHeader from "@/components/TableHeader.vue";
import Pagination from "@/components/Pagination.vue";
import { getResourceList, deleteResource } from "@/api/system"; import { getResourceList, deleteResource } from "@/api/system";
import AddResource from "./components/AddResource.vue"; import AddResource from "./components/AddResource.vue";
export default { export default {
components: { components: {
TableHeader, TableHeader,
Pagination,
AddResource, AddResource,
}, },
data() { data() {
......
...@@ -40,12 +40,10 @@ ...@@ -40,12 +40,10 @@
<script> <script>
import TableHeader from "@/components/TableHeader.vue"; import TableHeader from "@/components/TableHeader.vue";
import Pagination from "@/components/Pagination.vue";
import { getlogsList } from "@/api/system"; import { getlogsList } from "@/api/system";
export default { export default {
components: { components: {
TableHeader, TableHeader,
Pagination,
}, },
data() { data() {
return { return {
......
...@@ -58,13 +58,11 @@ ...@@ -58,13 +58,11 @@
<script> <script>
import TableHeader from "@/components/TableHeader.vue"; import TableHeader from "@/components/TableHeader.vue";
import AddTask from "./components/AddTask.vue"; import AddTask from "./components/AddTask.vue";
import Pagination from "@/components/Pagination.vue";
import { getTaskList, delTask } from "@/api/system"; import { getTaskList, delTask } from "@/api/system";
export default { export default {
components: { components: {
TableHeader, TableHeader,
AddTask, AddTask,
Pagination,
}, },
data() { data() {
return { return {
......
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