From b22438134ced8ede7bc70da3cf05851f6756c45a Mon Sep 17 00:00:00 2001 From: zwz Date: Wed, 17 Jun 2026 16:56:03 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=96=E5=8F=B7=E6=9C=BA=E3=80=81=E5=8F=AB?= =?UTF-8?q?=E5=8F=B7=E6=9C=BA=E5=AF=B9=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/ticket.js | 179 +++++++ components/container/container.vue | 355 ++++++------- pages.json | 19 +- pages/callTicket/callTicket.vue | 783 +++++++++++++++++++++++++++++ pages/callTicket/chooseWindow.vue | 259 ++++++++++ pages/home/businessList.vue | 427 ++++++++-------- pages/home/chooseMachine.vue | 212 ++++++++ pages/home/dept.vue | 209 ++++---- pages/home/guide.vue | 241 +++++---- pages/home/home.vue | 180 +++---- pages/home/theme.vue | 210 ++++---- pages/home/ticket.vue | 81 +-- pages/login/login-account.vue | 2 +- pages/screen/index.vue | 514 ++++++++++--------- pages/takeTicket/index.vue | 262 ---------- 15 files changed, 2581 insertions(+), 1352 deletions(-) create mode 100644 pages/callTicket/callTicket.vue create mode 100644 pages/callTicket/chooseWindow.vue create mode 100644 pages/home/chooseMachine.vue delete mode 100644 pages/takeTicket/index.vue diff --git a/api/ticket.js b/api/ticket.js index d80e324..2fa50d1 100644 --- a/api/ticket.js +++ b/api/ticket.js @@ -1,5 +1,7 @@ import http from '@/http/api.js' +// ==================== 自助取号机接口 ==================== + /** * 主题取号列表 * @param {*} params @@ -56,4 +58,181 @@ export const takeNumber = data => { method: 'POST', data }); +}; + +/** + * 事项详情 + * @param {*} params { id } + * @returns + */ +export const getItemDetail = params => { + return http.request({ + url: 'api/blade-item/detail', + method: 'GET', + params + }); +}; + +// ==================== 叫号机窗口端接口 ==================== + +/** + * 获取可选窗口列表 + * @param {*} params { status, serviceStatus, current, size } + * @returns + */ +export const getWindowList = params => { + return http.request({ + url: '/api/blade-windows/list', + method: 'GET', + params: { + status: 1, + serviceStatus: 1, + current: 1, + size: 100, + ...params + } + }); +}; + +/** + * 选择窗口 + * @param {*} data { windowId } + * @returns + */ +export const selectWindow = data => { + return http.request({ + url: '/api/blade-windows/select-window', + method: 'POST', + data + }); +}; + +/** + * 窗口工作台(获取当前叫号和等候人数) + * @param {*} params { windowId } + * @returns + */ +export const getWindowWorkbench = params => { + return http.request({ + url: '/api/blade-queuerecord/queueRecord/window-workbench', + method: 'GET', + params + }); +}; + +/** + * 呼叫下一位 + * @param {*} data { windowId } + * @returns + */ +export const callNext = data => { + return http.request({ + url: '/api/blade-queuerecord/queueRecord/call-next', + method: 'POST', + data + }); +}; + +/** + * 重呼 + * @param {*} data { recordId, windowId } + * @returns + */ +export const recall = data => { + return http.request({ + url: '/api/blade-queuerecord/queueRecord/recall', + method: 'POST', + data + }); +}; + +/** + * 开始办理 + * @param {*} data { recordId, windowId } + * @returns + */ +export const startHandle = data => { + return http.request({ + url: '/api/blade-queuerecord/queueRecord/start-handle', + method: 'POST', + data + }); +}; + +/** + * 完成办理 + * @param {*} data { recordId, windowId } + * @returns + */ +export const finishHandle = data => { + return http.request({ + url: '/api/blade-queuerecord/queueRecord/finish', + method: 'POST', + data + }); +}; + +/** + * 过号 + * @param {*} data { recordId, windowId } + * @returns + */ +export const passRecord = data => { + return http.request({ + url: '/api/blade-queuerecord/queueRecord/pass', + method: 'POST', + data + }); +}; + +/** + * 转移窗口 + * @param {*} data { recordId, windowId, targetWindowId } + * @returns + */ +export const transferRecord = data => { + return http.request({ + url: '/api/blade-queuerecord/queueRecord/transfer', + method: 'POST', + data + }); +}; + +/** + * 挂起窗口 + * @param {*} data { windowId, reason } + * @returns + */ +export const suspendWindow = data => { + return http.request({ + url: '/api/blade-windows/suspend', + method: 'POST', + data + }); +}; + +/** + * 恢复窗口 + * @param {*} data { windowId } + * @returns + */ +export const resumeWindow = data => { + return http.request({ + url: '/api/blade-windows/resume', + method: 'POST', + data + }); +}; + +/** + * 窗口统计 + * @param {*} params { windowId, date } + * @returns + */ +export const getWindowStat = params => { + return http.request({ + url: '/api/blade-queuerecord/queueRecord/window-stat', + method: 'GET', + params + }); }; \ No newline at end of file diff --git a/components/container/container.vue b/components/container/container.vue index ae4665b..f8c269d 100644 --- a/components/container/container.vue +++ b/components/container/container.vue @@ -1,195 +1,196 @@ \ No newline at end of file +.footer-left, +.footer-right { + color: #fff; + font-size: 2vw; +} + diff --git a/pages.json b/pages.json index f1191ed..35106fe 100644 --- a/pages.json +++ b/pages.json @@ -4,7 +4,14 @@ "^wf-(.*)": "@/components/wf-ui/components/wf-$1/wf-$1.vue" }, "pages": [ //pages数组中第一项表示应用启动页,参考:https://uniapp.dcloud.io/collocation/pages - + { + "path": "pages/home/chooseMachine", + "style": { + "navigationBarTitleText": "选择机器类别", + "enablePullDownRefresh": false, + "navigationStyle": "custom" + } + }, { "path": "pages/home/home", "style": { @@ -54,7 +61,15 @@ } }, { - "path": "pages/takeTicket/index", + "path": "pages/callTicket/chooseWindow", + "style": { + "navigationBarTitleText": "选择叫号机窗口", + "enablePullDownRefresh": false, + "navigationStyle": "custom" + } + }, + { + "path": "pages/callTicket/callTicket", "style": { "navigationBarTitleText": "叫号机", "enablePullDownRefresh": false, diff --git a/pages/callTicket/callTicket.vue b/pages/callTicket/callTicket.vue new file mode 100644 index 0000000..a0eb9b3 --- /dev/null +++ b/pages/callTicket/callTicket.vue @@ -0,0 +1,783 @@ + + + + + diff --git a/pages/callTicket/chooseWindow.vue b/pages/callTicket/chooseWindow.vue new file mode 100644 index 0000000..eea2662 --- /dev/null +++ b/pages/callTicket/chooseWindow.vue @@ -0,0 +1,259 @@ + + + + + diff --git a/pages/home/businessList.vue b/pages/home/businessList.vue index dd0263c..cc1f4d6 100644 --- a/pages/home/businessList.vue +++ b/pages/home/businessList.vue @@ -1,241 +1,234 @@ diff --git a/pages/home/chooseMachine.vue b/pages/home/chooseMachine.vue new file mode 100644 index 0000000..119dd5c --- /dev/null +++ b/pages/home/chooseMachine.vue @@ -0,0 +1,212 @@ + + + + + diff --git a/pages/home/dept.vue b/pages/home/dept.vue index bf1a901..527fef8 100644 --- a/pages/home/dept.vue +++ b/pages/home/dept.vue @@ -1,119 +1,120 @@ diff --git a/pages/home/guide.vue b/pages/home/guide.vue index 8cd5716..c893d43 100644 --- a/pages/home/guide.vue +++ b/pages/home/guide.vue @@ -1,115 +1,154 @@ \ No newline at end of file +.desc-text { + font-size: 2vw; + color: rgba(51, 51, 51, 1); + line-height: 1.8; +} + diff --git a/pages/home/home.vue b/pages/home/home.vue index 5ebd393..2a04f1c 100644 --- a/pages/home/home.vue +++ b/pages/home/home.vue @@ -1,101 +1,101 @@ diff --git a/pages/home/theme.vue b/pages/home/theme.vue index 1460ffa..244ec2e 100644 --- a/pages/home/theme.vue +++ b/pages/home/theme.vue @@ -1,119 +1,121 @@ diff --git a/pages/home/ticket.vue b/pages/home/ticket.vue index f7c36b6..831833f 100644 --- a/pages/home/ticket.vue +++ b/pages/home/ticket.vue @@ -35,12 +35,13 @@ export default { }, data() { return { - recommendList: [], - idcard: '' + recommendList: [] } }, - onLoad(options) { - this.idcard = options.idcard || '' + computed: { + idcard() { + return uni.getStorageSync('idcard') || '' + } }, mounted() { this.fetchHotList() @@ -53,7 +54,7 @@ export default { hot: 1, status: 1, current: 1, - size: 6, + size: 12, descs: 'create_time,id' }) if (res.success && res.data) { @@ -74,25 +75,25 @@ export default { // 主题取号 goTheme() { uni.navigateTo({ - url: `/pages/home/theme?idcard=${this.idcard}` + url: '/pages/home/theme' }) }, // 部门取号 goDept() { uni.navigateTo({ - url: `/pages/home/dept?idcard=${this.idcard}` + url: '/pages/home/dept' }) }, // 历史取号 goHistory() { uni.navigateTo({ - url: `/pages/home/businessList?source=history&idcard=${this.idcard}&titleName=历史取号` + url: '/pages/home/businessList?source=history&titleName=历史取号' }) }, // 业务取号 goBusiness() { uni.navigateTo({ - url: `/pages/home/businessList?source=business&titleName=业务取号` + url: '/pages/home/businessList?source=business&titleName=业务取号' }) } } @@ -109,33 +110,42 @@ export default { height: 100%; display: flex; align-items: center; - justify-content: space-around; - padding: 0 5%; + justify-content: space-between; + padding: 0 4vw; box-sizing: border-box; } -/* 左侧按钮组 */ +/* 左侧四大功能按钮 - 2×2 网格 */ .btn-group { - /* width: 60%; */ - /* height: 85%; */ + padding-top: 2vw; display: flex; flex-wrap: wrap; - /* justify-content: space-between; */ - align-content: space-around; + align-content: center; + /* justify-content: center; */ + /* gap: 3vh 3vw; */ } .btn-item { - width: 500px; - height: 340px; + margin: 0 2vw 2vw 0; + width: 28vw; + height: 32vh; display: flex; flex-direction: column; align-items: center; justify-content: center; + background-size: 100% 100%; + background-repeat: no-repeat; + background-position: center; +} +.btn-item:nth-child(n + 3), +.btn-item:nth-child(n + 4) { + margin-bottom: 0; +} +.btn-item:nth-child(2n) { + margin-right: 0; } .btn-item.blue { - margin-right: 60px; - margin-bottom: 60px; background: url('../../static/images/ticket/theme_bg.png'); background-size: 100% 100%; } @@ -146,7 +156,6 @@ export default { } .btn-item.orange { - margin-right: 60px; background: url('../../static/images/ticket/history_bg.png'); background-size: 100% 100%; } @@ -158,28 +167,33 @@ export default { /* 右侧热门推荐 */ .hot-recommend { - width: 55%; - height: 740px; + margin-top: 2vw; + width: 54vw; + height: 68vh; background: #fff; - border-radius: 20px; - box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08); - padding: 40px 40px 16px; + border-radius: 1.5vw; + box-shadow: 0 0.5vh 1.5vh rgba(0, 0, 0, 0.08); + padding: 3vh 2vw 2vh; box-sizing: border-box; + display: flex; + flex-direction: column; } .recommend-title { - font-size: 40px; + font-size: 2.4vw; font-weight: bold; color: rgba(51, 51, 51, 1); text-align: center; - margin-bottom: 30px; + margin-bottom: 2.5vh; + flex-shrink: 0; } .recommend-list { display: flex; flex-direction: column; - justify-content: space-around; - height: 85%; + gap: 2.5vh; + flex: 1; + overflow-y: auto; } .recommend-item { @@ -190,12 +204,13 @@ export default { .dot { color: #4080ff; - font-size: 30px; - margin-right: 10px; + font-size: 1.8vw; + margin-right: 0.8vw; + flex-shrink: 0; } .text { - font-size: 30px; + font-size: 1.8vw; color: rgba(51, 51, 51, 1); } diff --git a/pages/login/login-account.vue b/pages/login/login-account.vue index 1e3717c..8daa8fa 100644 --- a/pages/login/login-account.vue +++ b/pages/login/login-account.vue @@ -47,7 +47,7 @@ username: '', password: '', disabled: false, - redirect: '/pages/home/home' + redirect: '/pages/home/chooseMachine' } }, methods: { diff --git a/pages/screen/index.vue b/pages/screen/index.vue index c9c6b7c..b9fac9b 100644 --- a/pages/screen/index.vue +++ b/pages/screen/index.vue @@ -1,284 +1,276 @@ \ No newline at end of file +.wait-row { + justify-content: space-around; +} + +.row-blue { + background: #e6f0ff; +} + +.row-no { + color: #0055ff; + font-weight: bold; + margin: 0 1.042vw; /* 20/1920*100 */ +} + diff --git a/pages/takeTicket/index.vue b/pages/takeTicket/index.vue deleted file mode 100644 index 20c25bf..0000000 --- a/pages/takeTicket/index.vue +++ /dev/null @@ -1,262 +0,0 @@ - - - - - \ No newline at end of file