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