diff --git a/src/api/book/index.js b/src/api/book/index.js index 3e90588..3981a9d 100644 --- a/src/api/book/index.js +++ b/src/api/book/index.js @@ -55,13 +55,14 @@ export function destroy(params) { }) } -export function retry(params) { +export function retry(params, config = {}) { return request({ method: "get", url: "/api/admin/appointments/retry-appointment", - params + params, + headers: config.headers, + isLoading: config.isLoading }) } - diff --git a/src/api/qccEnterpriseAccount/index.js b/src/api/qccEnterpriseAccount/index.js new file mode 100644 index 0000000..15d5c7d --- /dev/null +++ b/src/api/qccEnterpriseAccount/index.js @@ -0,0 +1,21 @@ +import request from '@/utils/request' + +export function candidates(params, isLoading = false) { + return request({ method: 'get', url: '/api/admin/qcc-enterprise-accounts/candidates', params, isLoading }) +} + +export function index(params, isLoading = false) { + return request({ method: 'get', url: '/api/admin/qcc-enterprise-accounts/index', params, isLoading }) +} + +export function select(data) { + return request({ method: 'post', url: '/api/admin/qcc-enterprise-accounts/select', data, isLoading: true }) +} + +export function cancel(data) { + return request({ method: 'post', url: '/api/admin/qcc-enterprise-accounts/cancel', data, isLoading: true }) +} + +export function unknownConfirm(data) { + return request({ method: 'post', url: '/api/admin/qcc-enterprise-accounts/unknown-confirm', data, isLoading: true }) +} diff --git a/src/api/user.js b/src/api/user.js index f3f71f5..22aafa0 100644 --- a/src/api/user.js +++ b/src/api/user.js @@ -37,8 +37,8 @@ export function getAuthMenu(token) { export function getMsg(param) { return request({ url: '/api/admin/auth/send-sms', - method: 'get', - params:param, + method: 'post', + data: param, isLoading: false }) } @@ -46,8 +46,8 @@ export function getMsg(param) { export function loginMsg(param) { return request({ url: '/api/admin/auth/sms-login', - method: 'get', - params:param, + method: 'post', + data: param, isLoading: false }) } diff --git a/src/store/modules/user.js b/src/store/modules/user.js index d269186..b91e85b 100644 --- a/src/store/modules/user.js +++ b/src/store/modules/user.js @@ -76,14 +76,16 @@ const actions = { loginMsg({ commit }, userInfo) { - const { - mobile, - code + const { + mobile, + code, + challenge_id } = userInfo return new Promise((resolve, reject) => { loginMsg({ - mobile: mobile, - code: code + mobile: mobile, + code: code, + challenge_id: challenge_id }).then(response => { console.log(response) const { diff --git a/src/views/book/components/checkBook.vue b/src/views/book/components/checkBook.vue index b2808af..ff822a4 100644 --- a/src/views/book/components/checkBook.vue +++ b/src/views/book/components/checkBook.vue @@ -80,7 +80,7 @@
第三方记录
- 重新预约 + 重新预约
@@ -174,9 +174,10 @@ data() { return { isShow: false, - type: 'show', - id: '', - submitObj: {}, + type: 'show', + id: '', + retrying: false, + submitObj: {}, thirdArr: [], baseUrl: `${process.env.VUE_APP_BASE_API}`, form: { @@ -220,16 +221,31 @@ this.$emit('refresh') }) }, - sendBook(id) { - retry({ - id: id - }).then(res => { - this.$message({ - type: 'success', - message: '重新发送预约成功' - }) - this.getDetail() - }) + async sendBook(id) { + const traceId = `retry-${id}-${Date.now()}-${Math.random().toString(36).slice(2, 8)}` + this.retrying = true + try { + await retry({ + id: id + }, { + headers: { + 'X-Retry-Trace-Id': traceId + }, + isLoading: true + }) + this.$message({ + type: 'success', + message: `已提交重新预约(追踪号:${traceId})` + }) + await this.getDetail() + } catch (error) { + const message = error.response && error.response.data && error.response.data.errmsg + ? error.response.data.errmsg + : (error.message || '请求未收到响应') + this.$message.error(`重新预约失败:${message}(追踪号:${traceId})`) + } finally { + this.retrying = false + } }, formatHH(val) { if (val) { @@ -253,7 +269,8 @@ if (newVal) { this.getDetail() } else { - this.id = '' + this.id = '' + this.retrying = false this.submitObj = {} this.$refs['dialog'].reset() } diff --git a/src/views/login/index.vue b/src/views/login/index.vue index a17ec28..74d590c 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -96,9 +96,12 @@ hasSend: false, count: 60, sendTimer: null, - loginForm: { - username: '', - password: '' + loginForm: { + username: '', + password: '', + mobile: '', + code: '', + challenge_id: '' }, loginRules: { username: [{ @@ -168,7 +171,8 @@ getMsg({ mobile: this.loginForm.mobile }).then(res => { - this.base.showMessage("发送成功",'success') + this.base.showMessage("发送成功",'success') + this.loginForm.challenge_id = res.challenge_id // this.$Message.success('发送成功') // 短信发送后 60s this.hasSend = true @@ -194,6 +198,10 @@ this.base.showMessage("请输入验证码",'error') return } + if (this.base.isNull(this.loginForm.challenge_id)) { + this.base.showMessage("请先获取验证码",'error') + return + } this.loading = true let that = this this.$store.dispatch('user/loginMsg', this.loginForm).then(() => { diff --git a/src/views/qccEnterpriseAccount/components/AccountList.vue b/src/views/qccEnterpriseAccount/components/AccountList.vue new file mode 100644 index 0000000..5e4734f --- /dev/null +++ b/src/views/qccEnterpriseAccount/components/AccountList.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/src/views/qccEnterpriseAccount/index.vue b/src/views/qccEnterpriseAccount/index.vue new file mode 100644 index 0000000..da0b232 --- /dev/null +++ b/src/views/qccEnterpriseAccount/index.vue @@ -0,0 +1,69 @@ + + + + + diff --git a/vue.config.js b/vue.config.js index 04f5077..c6d3ff5 100644 --- a/vue.config.js +++ b/vue.config.js @@ -32,7 +32,7 @@ module.exports = { // outputDir: '/Users/mac/Documents/朗业/2024/s-苏州科技商学院/wx.sstbc.com/public/admin', // 测试 // outputDir: '/Users/mac/Documents/朗业/2025/s-苏州科技商学院/wx.sstbc.com/public/admin', - outputDir: '/Users/mac/Documents/朗业/2026/s-苏州科技商学院/code/wx.sstbc.com/public/admin', + outputDir: '../backend/public/admin', assetsDir: 'static', css: { loaderOptions: { // 向 CSS 相关的 loader 传递选项