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 @@
+
+
+
+
+
+
+
+
+
+ 当前叫号
+ {{ currentCallNo }}
+
+
+ 当前等候
+ {{ waitingCount }}人
+
+
+
+
+
+ 窗口已挂起,无法进行叫号操作
+
+
+
+
+
+
+ 呼叫
+
+
+
+ 重呼
+
+
+
+ 转移
+
+
+
+ 过号
+
+
+
+ 挂起
+
+
+
+ 恢复
+
+
+
+
+
+
+ 请选择目标窗口
+
+
+ {{ win.windowName }}
+
+
+ 暂无可转移的窗口
+
+
+
+ 取消
+
+
+
+
+
+
+
+ 请输入挂起原因
+
+
+
+ 取消
+
+
+ 确认挂起
+
+
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+ 请选择窗口
+ 选择您当前所在的窗口工位
+
+
+
+
+ {{ item.windowName }}
+
+
+
+
+
+
+
+ 暂无可选窗口
+ 请联系管理员检查窗口配置
+
+
+
+
+ 正在加载窗口列表...
+
+
+
+
+
+
+
+
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 @@
-
-
-
-
-
- {{ titleName }}
-
-
- ◆
- {{ item.itemName }}
-
-
- 办事指南
- 取号
-
-
-
- 暂无事项
-
-
-
-
-
+
+
+
+
+
+
+
+ ◆
+ {{ item.itemName }}
+
+
+ 办事指南
+ 取号
+
+
+ 暂无事项
+
+
+
+
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 @@
-
-
-
-
- 部门取号
-
-
- {{ item.deptName }}
-
-
-
-
-
-
+
+
+
+
+ 部门取号
+
+
+ {{ item.deptName }}
+
+
+
+
+
+
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 @@
-
-
-
-
-
-
- {{ info.title }}
- 立即取号
-
-
- 部门:{{ info.dept }}
-
- {{ info.content }}
-
-
-
-
+
+
+
+
+
+
+ {{ info.title }}
+ 立即取号
+
+
+ 部门:{{ info.dept }}
+
+ {{ info.content }}
+
+
+
+
\ 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 @@
-
-
-
-
- 主题取号
-
-
- {{ item.subjectName }}
-
-
-
-
-
-
+
+
+
+
+ 主题取号
+
+
+ {{ item.subjectName }}
+
+
+
+
+
+
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 @@
-
-
-
-
-
- 请
- {{currCallNo}}
- 到
- {{currWinNo}}号窗口
-
-
-
-
-
-
- 当前呼叫
- (过号需重新取号)
-
-
- 请
- {{item.no}}
- 到
- {{item.win}}号窗口
-
-
-
-
- 等候办理
-
- {{item}}
-
-
-
-
+
+
+
+
+
+ 请
+ {{ currCallNo }}
+ 到
+ {{ currWinNo }}号窗口
+
+
+
+
+
+
+ 当前呼叫
+ (过号需重新取号)
+
+
+
+ 请
+ {{ item.no }}
+ 到
+ {{ item.win }}号窗口
+
+
+
+
+
+ 等候办理
+
+
+ {{ item }}
+
+
+
+
+
\ 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 @@
-
-
-
-
-
-
-
-
-
- 当前叫号
- A0001
-
-
- 当前等候
- 10人
-
-
-
-
-
-
-
- 呼叫
-
-
-
- 重呼
-
-
-
- 转移
-
-
-
- 过号
-
-
-
- 挂起
-
-
-
-
-
-
-
-
\ No newline at end of file