Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
B
bill-manager-ui
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
赵啸非
bill-manager-ui
Commits
ad19301f
Commit
ad19301f
authored
Jul 03, 2024
by
“yiyousong”
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
perf: 优化排号报表
parent
7b0f0f59
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
216 additions
and
101 deletions
+216
-101
admin_2/src/api/engine.js
admin_2/src/api/engine.js
+19
-0
admin_2/src/api/market.js
admin_2/src/api/market.js
+0
-1
admin_2/src/components/autoRegister/Pagination.vue
admin_2/src/components/autoRegister/Pagination.vue
+1
-1
admin_2/src/pages/engine/Engine.vue
admin_2/src/pages/engine/Engine.vue
+11
-41
admin_2/src/pages/engine/QueueUpSystem.vue
admin_2/src/pages/engine/QueueUpSystem.vue
+136
-11
admin_2/src/pages/engine/components/DoubleTable.vue
admin_2/src/pages/engine/components/DoubleTable.vue
+0
-9
admin_2/src/pages/market/EvaluateReport.vue
admin_2/src/pages/market/EvaluateReport.vue
+39
-11
admin_2/src/pages/market/QueueUpReport.vue
admin_2/src/pages/market/QueueUpReport.vue
+4
-4
admin_2/src/pages/market/components/EvaluateDetails.vue
admin_2/src/pages/market/components/EvaluateDetails.vue
+6
-23
No files found.
admin_2/src/api/engine.js
0 → 100644
View file @
ad19301f
import
request
from
"
@/utils/request
"
;
// 获取排队系统数据
export
const
getQueueSystemList
=
(
data
)
=>
{
return
request
({
url
:
`/bill/ph/queue/stat/list`
,
method
:
"
post
"
,
data
,
});
};
// 获取评价系统数据
export
const
getEvaSystemList
=
(
data
)
=>
{
return
request
({
url
:
`/bill/pj/evaluate/stat/list`
,
method
:
"
post
"
,
data
,
});
};
admin_2/src/api/market.js
View file @
ad19301f
// 系统api
import
request
from
"
@/utils/request
"
;
import
request
from
"
@/utils/request
"
;
/**
/**
* 排队数据报表
* 排队数据报表
...
...
admin_2/src/components/autoRegister/Pagination.vue
View file @
ad19301f
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
<div
class=
"pagination"
v-if=
"total"
>
<div
class=
"pagination"
v-if=
"total"
>
<el-pagination
<el-pagination
background
background
layout=
"total,prev,pager,next,sizes,jumper
"
:layout=
"layout
"
:pager-count=
"5"
:pager-count=
"5"
:total=
"total"
:total=
"total"
:current-page=
"page"
:current-page=
"page"
...
...
admin_2/src/pages/engine/Engine.vue
View file @
ad19301f
...
@@ -20,21 +20,17 @@
...
@@ -20,21 +20,17 @@
<div
class=
"text-[14px] text-[#395EBF]"
>
<div
class=
"text-[14px] text-[#395EBF]"
>
统计时段:
{{
time
[
0
]
}}
~
{{
time
[
1
]
}}
统计时段:
{{
time
[
0
]
}}
~
{{
time
[
1
]
}}
</div>
</div>
<el-date-picker
<y-date-picker
size=
"small"
v-model=
"time"
v-model=
"time"
value-format=
"yyyy-MM-dd"
type=
"daterange"
align=
"right"
align=
"right"
unlink-panels
range-separator=
"至"
range-separator=
"至"
start-placeholder=
"开始日期"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
end-placeholder=
"结束日期"
:picker-options=
"pickerOptions"
:clearable=
"false"
>
>
</el-date-picker>
</y-date-picker>
<el-button
size=
"small"
type=
"primary"
>
搜索
</el-button>
<el-button
size=
"small"
type=
"primary"
@
click=
"handleDate"
>
搜索
</el-button
>
</div>
</div>
<div
<div
class=
"engine-btn top-radius"
class=
"engine-btn top-radius"
...
@@ -46,7 +42,7 @@
...
@@ -46,7 +42,7 @@
</div>
</div>
</div>
</div>
<div
class=
"main w-full flex-1 overflow-auto"
>
<div
class=
"main w-full flex-1 overflow-auto"
>
<router-view></router-view>
<router-view
ref=
"Page"
></router-view>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
...
@@ -55,43 +51,17 @@
...
@@ -55,43 +51,17 @@
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
pickerOptions
:
{
shortcuts
:
[
{
text
:
"
最近一周
"
,
onClick
(
picker
)
{
const
end
=
new
Date
();
const
start
=
new
Date
();
start
.
setTime
(
start
.
getTime
()
-
3600
*
1000
*
24
*
7
);
picker
.
$emit
(
"
pick
"
,
[
start
,
end
]);
},
},
{
text
:
"
最近一个月
"
,
onClick
(
picker
)
{
const
end
=
new
Date
();
const
start
=
new
Date
();
start
.
setTime
(
start
.
getTime
()
-
3600
*
1000
*
24
*
30
);
picker
.
$emit
(
"
pick
"
,
[
start
,
end
]);
},
},
{
text
:
"
最近三个月
"
,
onClick
(
picker
)
{
const
end
=
new
Date
();
const
start
=
new
Date
();
start
.
setTime
(
start
.
getTime
()
-
3600
*
1000
*
24
*
90
);
picker
.
$emit
(
"
pick
"
,
[
start
,
end
]);
},
},
],
},
time
:
[
time
:
[
this
.
$moment
().
format
(
"
YYYY-MM-DD
"
),
this
.
$moment
().
format
(
"
YYYY-MM-DD
"
),
this
.
$moment
().
format
(
"
YYYY-MM-DD
"
),
this
.
$moment
().
format
(
"
YYYY-MM-DD
"
),
],
],
};
};
},
},
methods
:
{
handleDate
()
{
this
.
$refs
.
Page
.
getDate
(
this
.
time
);
},
},
};
};
</
script
>
</
script
>
...
...
admin_2/src/pages/engine/QueueUpSystem.vue
View file @
ad19301f
<
template
>
<
template
>
<div
class=
"grid h-full w-full grid-cols-2 gap-[20px]"
>
<div
class=
"grid h-full w-full grid-cols-2 gap-[20px]"
>
<div
class=
"table-item"
>
<div
class=
"table-item"
>
<DoubleTable
<div>
title=
"大厅取号量统计"
<DoubleTable
border
title=
"大厅取号量统计"
:column=
"column"
border
:data=
"tableData"
:column=
"hallColumn"
></DoubleTable>
:data=
"tableData"
></DoubleTable>
</div>
<Pagination
:total=
"hallSearch.total"
:current.sync=
"hallSearch.current"
:size.sync=
"hallSearch.size"
layout=
"total,prev,pager,next,jumper"
></Pagination>
</div>
</div>
<div
class=
"table-item"
>
<div
class=
"table-item"
>
<DoubleTable
<DoubleTable
title=
"业务取号量统计"
title=
"业务取号量统计"
border
border
:column=
"
c
olumn"
:column=
"
businessC
olumn"
:data=
"tableData"
:data=
"tableData"
></DoubleTable>
></DoubleTable>
</div>
</div>
...
@@ -20,7 +28,7 @@
...
@@ -20,7 +28,7 @@
<DoubleTable
<DoubleTable
title=
"部门取号量统计"
title=
"部门取号量统计"
border
border
:column=
"
c
olumn"
:column=
"
deptC
olumn"
:data=
"tableData"
:data=
"tableData"
></DoubleTable>
></DoubleTable>
</div>
</div>
...
@@ -28,7 +36,7 @@
...
@@ -28,7 +36,7 @@
<DoubleTable
<DoubleTable
title=
"个人取号量统计"
title=
"个人取号量统计"
border
border
:column=
"
c
olumn"
:column=
"
peopleC
olumn"
:data=
"tableData"
:data=
"tableData"
></DoubleTable>
></DoubleTable>
</div>
</div>
...
@@ -37,13 +45,53 @@
...
@@ -37,13 +45,53 @@
<
script
>
<
script
>
import
DoubleTable
from
"
./components/DoubleTable.vue
"
;
import
DoubleTable
from
"
./components/DoubleTable.vue
"
;
import
{
getQueueSystemList
}
from
"
@/api/engine
"
;
import
storage
from
"
@/utils/storage
"
;
export
default
{
export
default
{
components
:
{
components
:
{
DoubleTable
,
DoubleTable
,
},
},
data
()
{
data
()
{
return
{
return
{
column
:
[
dateForm
:
{
timeStart
:
this
.
$moment
().
format
(
"
YYYY-MM-DD
"
),
timeEnd
:
this
.
$moment
().
format
(
"
YYYY-MM-DD
"
),
},
siteId
:
storage
.
get
(
2
,
"
siteId
"
),
hallSearch
:
{
total
:
100
,
current
:
1
,
size
:
10
,
keyword
:
""
,
},
hallColumn
:
[
{
label
:
"
排序
"
,
type
:
"
index
"
,
align
:
"
center
"
,
},
{
label
:
"
大厅名称
"
,
prop
:
"
hallName
"
,
align
:
"
center
"
,
formatter
:
(
row
,
column
,
cellValue
)
=>
{
if
(
cellValue
)
{
return
<
span
>
{
cellValue
}
<
/span>
;
}
},
},
{
label
:
"
排队数量
"
,
prop
:
"
total
"
,
align
:
"
center
"
,
formatter
:
(
row
,
column
,
cellValue
)
=>
{
if
(
cellValue
)
{
return
<
span
class
=
"
table-num
"
>
{
cellValue
}
<
/span>
;
}
},
},
],
businessColumn
:
[
{
{
label
:
"
排序
"
,
label
:
"
排序
"
,
type
:
"
index
"
,
type
:
"
index
"
,
...
@@ -51,7 +99,7 @@ export default {
...
@@ -51,7 +99,7 @@ export default {
},
},
{
{
label
:
"
业务名称
"
,
label
:
"
业务名称
"
,
prop
:
"
yewu
"
,
prop
:
"
business
"
,
align
:
"
center
"
,
align
:
"
center
"
,
formatter
:
(
row
,
column
,
cellValue
)
=>
{
formatter
:
(
row
,
column
,
cellValue
)
=>
{
if
(
cellValue
)
{
if
(
cellValue
)
{
...
@@ -70,6 +118,61 @@ export default {
...
@@ -70,6 +118,61 @@ export default {
},
},
},
},
],
],
deptColumn
:
[
{
label
:
"
排序
"
,
type
:
"
index
"
,
align
:
"
center
"
,
},
{
label
:
"
部门名称
"
,
prop
:
"
sectionName
"
,
align
:
"
center
"
,
formatter
:
(
row
,
column
,
cellValue
)
=>
{
if
(
cellValue
)
{
return
<
span
>
{
cellValue
}
<
/span>
;
}
},
},
{
label
:
"
排队数量
"
,
prop
:
"
total
"
,
align
:
"
center
"
,
formatter
:
(
row
,
column
,
cellValue
)
=>
{
if
(
cellValue
)
{
return
<
span
class
=
"
table-num
"
>
{
cellValue
}
<
/span>
;
}
},
},
],
peopleColumn
:
[
{
label
:
"
排序
"
,
type
:
"
index
"
,
align
:
"
center
"
,
},
{
label
:
"
个人姓名
"
,
prop
:
"
peopleName
"
,
align
:
"
center
"
,
formatter
:
(
row
,
column
,
cellValue
)
=>
{
if
(
cellValue
)
{
return
<
span
>
{
cellValue
}
<
/span>
;
}
},
},
{
label
:
"
排队数量
"
,
prop
:
"
total
"
,
align
:
"
center
"
,
formatter
:
(
row
,
column
,
cellValue
)
=>
{
if
(
cellValue
)
{
return
<
span
class
=
"
table-num
"
>
{
cellValue
}
<
/span>
;
}
},
},
],
tableData
:
[
tableData
:
[
{
{
yewu
:
"
排队系统
"
,
yewu
:
"
排队系统
"
,
...
@@ -102,6 +205,28 @@ export default {
...
@@ -102,6 +205,28 @@ export default {
],
],
};
};
},
},
created
()
{
this
.
getQueueSystemList
();
},
methods
:
{
// 获取日期
getDate
(
dateArr
)
{
this
.
dateForm
.
timeStart
=
dateArr
[
0
];
this
.
dateForm
.
timeEnd
=
dateArr
[
1
];
this
.
getQueueSystemList
();
},
// 获取数据
async
getQueueSystemList
()
{
const
res
=
await
getQueueSystemList
({
siteId
:
this
.
siteId
,
...
this
.
hallSearch
,
...
this
.
dateForm
,
hallNameList
:
[
"
不动产登记中心
"
],
});
console
.
log
(
res
.
data
);
// this.hallSearch.total = res.data.total
},
},
};
};
</
script
>
</
script
>
...
...
admin_2/src/pages/engine/components/DoubleTable.vue
View file @
ad19301f
...
@@ -31,15 +31,6 @@
...
@@ -31,15 +31,6 @@
:data=
"rightTableData"
:data=
"rightTableData"
></y-table>
></y-table>
</div>
</div>
<div
class=
"flex justify-end"
>
<el-pagination
:pager-count=
"5"
background
layout=
"total,prev, pager, next"
:total=
"1000"
>
</el-pagination>
</div>
</div>
</div>
</
template
>
</
template
>
...
...
admin_2/src/pages/market/EvaluateReport.vue
View file @
ad19301f
...
@@ -67,9 +67,9 @@
...
@@ -67,9 +67,9 @@
placeholder=
"请选择评价选项"
placeholder=
"请选择评价选项"
>
>
<el-option
<el-option
v-for=
"(v,
i) in
pjOption"
v-for=
"(v,
key) in dict.
pjOption"
:key=
"
i
"
:key=
"
key
"
:label=
"
v
"
:label=
"
key
"
:value=
"v"
:value=
"v"
></el-option>
></el-option>
</el-select>
</el-select>
...
@@ -106,6 +106,36 @@
...
@@ -106,6 +106,36 @@
></el-option>
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item>
<el-select
style=
"width: 150px"
v-model=
"searchForm2.pjSource"
clearable
placeholder=
"请选择评价来源"
>
<el-option
v-for=
"(v, key) in dict.pjSource"
:key=
"key"
:label=
"key"
:value=
"v"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-select
style=
"width: 150px"
v-model=
"searchForm2.pjType"
clearable
placeholder=
"请选择评价指向"
>
<el-option
v-for=
"(v, key) in dict.pjType"
:key=
"key"
:label=
"key"
:value=
"v"
></el-option>
</el-select>
</el-form-item>
<el-form-item>
<el-form-item>
<el-button
type=
"primary"
@
click=
"handleSearch"
>
搜索
</el-button>
<el-button
type=
"primary"
@
click=
"handleSearch"
>
搜索
</el-button>
...
@@ -156,7 +186,6 @@ let searchType = {
...
@@ -156,7 +186,6 @@ let searchType = {
2
:
"
按群众姓名
"
,
2
:
"
按群众姓名
"
,
3
:
"
按群众手机号
"
,
3
:
"
按群众手机号
"
,
};
};
let
pjOption
=
[
"
非常满意
"
,
"
满意
"
,
"
基本满意
"
,
"
不满意
"
,
"
非常不满意
"
];
export
default
{
export
default
{
components
:
{
components
:
{
EvaluateDetails
,
EvaluateDetails
,
...
@@ -167,7 +196,6 @@ export default {
...
@@ -167,7 +196,6 @@ export default {
loading
:
false
,
loading
:
false
,
exportLoading
:
false
,
exportLoading
:
false
,
searchType
,
searchType
,
pjOption
,
size
:
10
,
size
:
10
,
current
:
1
,
current
:
1
,
total
:
0
,
total
:
0
,
...
@@ -184,12 +212,11 @@ export default {
...
@@ -184,12 +212,11 @@ export default {
pjOption
:
""
,
// 评价选项
pjOption
:
""
,
// 评价选项
sectionName
:
""
,
// 部门名称
sectionName
:
""
,
// 部门名称
hallName
:
""
,
// 大厅名称
hallName
:
""
,
// 大厅名称
pjSource
:
""
,
// 评价来源
pjType
:
""
,
// 评价指向
},
},
tableData
:
[
tableData
:
[],
{
dict
:
{},
name
:
"
测试
"
,
},
],
selectionRows
:
[],
selectionRows
:
[],
detailsInfo
:
{},
detailsInfo
:
{},
deptList
:
[],
// 部门列表
deptList
:
[],
// 部门列表
...
@@ -413,12 +440,13 @@ export default {
...
@@ -413,12 +440,13 @@ export default {
// 获取表格数据
// 获取表格数据
async
getEvaluateList
(
form
=
{})
{
async
getEvaluateList
(
form
=
{})
{
this
.
loading
=
true
;
this
.
loading
=
true
;
let
{
data
,
total
}
=
await
this
.
getData
(
form
);
let
{
data
,
total
,
dict
}
=
await
this
.
getData
(
form
);
data
.
forEach
((
v
)
=>
{
data
.
forEach
((
v
)
=>
{
v
.
pjTime
=
this
.
$moment
(
v
.
pjTime
).
format
(
"
YYYY-MM-DD HH:mm:ss
"
);
v
.
pjTime
=
this
.
$moment
(
v
.
pjTime
).
format
(
"
YYYY-MM-DD HH:mm:ss
"
);
});
});
this
.
tableData
=
data
;
this
.
tableData
=
data
;
this
.
total
=
total
;
this
.
total
=
total
;
this
.
dict
=
dict
;
this
.
loading
=
false
;
this
.
loading
=
false
;
},
},
...
...
admin_2/src/pages/market/QueueUpReport.vue
View file @
ad19301f
...
@@ -427,8 +427,8 @@ export default {
...
@@ -427,8 +427,8 @@ export default {
v
.
endtime
&&
this
.
$moment
(
v
.
endtime
).
format
(
"
YYYY-MM-DD HH:mm:ss
"
);
v
.
endtime
&&
this
.
$moment
(
v
.
endtime
).
format
(
"
YYYY-MM-DD HH:mm:ss
"
);
v
.
calltime
=
v
.
calltime
=
v
.
calltime
&&
this
.
$moment
(
v
.
calltime
).
format
(
"
YYYY-MM-DD HH:mm:ss
"
);
v
.
calltime
&&
this
.
$moment
(
v
.
calltime
).
format
(
"
YYYY-MM-DD HH:mm:ss
"
);
v
.
waitTime
=
v
.
waitTime
&&
formatSeconds
(
v
.
waitTime
)
;
v
.
waitTime
=
v
.
waitTime
?
formatSeconds
(
v
.
waitTime
)
:
""
;
v
.
handleTime
=
v
.
handleTime
&&
formatSeconds
(
v
.
handleTime
)
;
v
.
handleTime
=
v
.
handleTime
?
formatSeconds
(
v
.
handleTime
)
:
""
;
});
});
this
.
tableData
=
data
;
this
.
tableData
=
data
;
this
.
total
=
total
;
this
.
total
=
total
;
...
@@ -504,8 +504,8 @@ export default {
...
@@ -504,8 +504,8 @@ export default {
v
.
calltime
=
v
.
calltime
=
v
.
calltime
&&
v
.
calltime
&&
this
.
$moment
(
v
.
calltime
).
format
(
"
YYYY-MM-DD HH:mm:ss
"
);
this
.
$moment
(
v
.
calltime
).
format
(
"
YYYY-MM-DD HH:mm:ss
"
);
v
.
waitTime
=
v
.
waitTime
&&
formatSeconds
(
v
.
waitTime
)
;
v
.
waitTime
=
v
.
waitTime
?
formatSeconds
(
v
.
waitTime
)
:
""
;
v
.
handleTime
=
v
.
handleTime
&&
formatSeconds
(
v
.
handleTime
)
;
v
.
handleTime
=
v
.
handleTime
?
formatSeconds
(
v
.
handleTime
)
:
""
;
});
});
export2Excel
(
export2Excel
(
tHeader
,
tHeader
,
...
...
admin_2/src/pages/market/components/EvaluateDetails.vue
View file @
ad19301f
...
@@ -20,11 +20,12 @@
...
@@ -20,11 +20,12 @@
:key=
"i"
:key=
"i"
:label=
"v.title"
:label=
"v.title"
>
>
<
img
<
el-image
class=
"w-[50px] cursor-pointer
"
style=
"width: 50px
"
:src=
"v.content"
:src=
"v.content"
@
click=
"handlePreview(v.content)"
:preview-src-list=
"[v.content]"
/>
>
</el-image>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
v-else
:key=
"i"
:label=
"v.title"
>
<el-descriptions-item
v-else
:key=
"i"
:label=
"v.title"
>
{{
v
.
content
}}
{{
v
.
content
}}
...
@@ -32,17 +33,6 @@
...
@@ -32,17 +33,6 @@
</
template
>
</
template
>
</el-descriptions>
</el-descriptions>
</div>
</div>
<!-- 图片查看 -->
<el-image-viewer
v-if=
"preview"
:appendToBody=
"false"
:on-close=
"
() => {
(preview = false), (filepaths = []);
}
"
:url-list=
"filepaths"
/>
</el-drawer>
</el-drawer>
</template>
</template>
...
@@ -61,8 +51,6 @@ export default {
...
@@ -61,8 +51,6 @@ export default {
},
},
data
()
{
data
()
{
return
{
return
{
preview
:
false
,
filepaths
:
[],
detailsList
:
[
detailsList
:
[
{
{
title
:
"
身份证号
"
,
title
:
"
身份证号
"
,
...
@@ -233,12 +221,7 @@ export default {
...
@@ -233,12 +221,7 @@ export default {
return
this
.
detailsList
;
return
this
.
detailsList
;
},
},
},
},
methods
:
{
methods
:
{},
handlePreview
(
url
)
{
this
.
filepaths
=
[
url
];
this
.
preview
=
true
;
},
},
};
};
</
script
>
</
script
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment