From 7cfb609630ae0ea7db1f65488231efea6abee85a Mon Sep 17 00:00:00 2001 From: weizong song Date: Wed, 12 Aug 2026 14:52:09 +0800 Subject: [PATCH 1/3] up --- src/api/user.js | 8 ++++---- src/store/modules/user.js | 12 +++++++----- src/views/login/index.vue | 16 ++++++++++++---- vue.config.js | 2 +- 4 files changed, 24 insertions(+), 14 deletions(-) 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/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/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 传递选项 From 3e817b4e2c158feabb79f718ada14f47ae2770e6 Mon Sep 17 00:00:00 2001 From: weizong song Date: Sat, 15 Aug 2026 01:03:18 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BC=81=E6=9F=A5=E6=9F=A5=E4=BC=81?= =?UTF-8?q?=E4=B8=9A=E6=88=B7=E8=AE=BE=E7=BD=AE=E9=9D=99=E6=80=81=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=E5=8D=A0=E4=BD=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/book/index.js | 7 +- src/api/qccEnterpriseAccount/index.js | 46 ++++++ src/views/book/components/checkBook.vue | 47 ++++-- src/views/qccEnterpriseAccount/index.vue | 174 +++++++++++++++++++++++ 4 files changed, 256 insertions(+), 18 deletions(-) create mode 100644 src/api/qccEnterpriseAccount/index.js create mode 100644 src/views/qccEnterpriseAccount/index.vue 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..ee291e2 --- /dev/null +++ b/src/api/qccEnterpriseAccount/index.js @@ -0,0 +1,46 @@ +import request from '@/utils/request' + +/** + * 企查查企业户准入模块。 + * + * 后端接口尚未实现时,此文件即为前后端联调契约: + * - candidates: 可发起准入的企业库候选项 + * - enrollments: 准入单列表/状态筛选 + * - submit: 创建并提交准入单 + * - reconcile: 向元禾/企查查查询单条真实状态 + */ +export function candidates(params, isLoading = false) { + return request({ + method: 'get', + url: '/api/admin/qcc-enterprise-enrollments/candidates', + params, + isLoading + }) +} + +export function index(params, isLoading = false) { + return request({ + method: 'get', + url: '/api/admin/qcc-enterprise-enrollments/index', + params, + isLoading + }) +} + +export function submit(data) { + return request({ + method: 'post', + url: '/api/admin/qcc-enterprise-enrollments/submit', + data, + isLoading: true + }) +} + +export function reconcile(data) { + return request({ + method: 'post', + url: '/api/admin/qcc-enterprise-enrollments/reconcile', + data, + isLoading: true + }) +} 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/qccEnterpriseAccount/index.vue b/src/views/qccEnterpriseAccount/index.vue new file mode 100644 index 0000000..65271d9 --- /dev/null +++ b/src/views/qccEnterpriseAccount/index.vue @@ -0,0 +1,174 @@ + + + + + From 9ed17302046117c839146fa0592c7045ef57d79e Mon Sep 17 00:00:00 2001 From: weizong song Date: Sun, 23 Aug 2026 00:02:51 +0800 Subject: [PATCH 3/3] =?UTF-8?q?feat:=20=E5=AE=8C=E5=96=84=E4=BC=81?= =?UTF-8?q?=E6=9F=A5=E6=9F=A5=E4=BC=81=E4=B8=9A=E6=88=B7=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/qccEnterpriseAccount/index.js | 45 +---- .../components/AccountList.vue | 45 +++++ src/views/qccEnterpriseAccount/index.vue | 181 ++++-------------- 3 files changed, 93 insertions(+), 178 deletions(-) create mode 100644 src/views/qccEnterpriseAccount/components/AccountList.vue diff --git a/src/api/qccEnterpriseAccount/index.js b/src/api/qccEnterpriseAccount/index.js index ee291e2..15d5c7d 100644 --- a/src/api/qccEnterpriseAccount/index.js +++ b/src/api/qccEnterpriseAccount/index.js @@ -1,46 +1,21 @@ import request from '@/utils/request' -/** - * 企查查企业户准入模块。 - * - * 后端接口尚未实现时,此文件即为前后端联调契约: - * - candidates: 可发起准入的企业库候选项 - * - enrollments: 准入单列表/状态筛选 - * - submit: 创建并提交准入单 - * - reconcile: 向元禾/企查查查询单条真实状态 - */ export function candidates(params, isLoading = false) { - return request({ - method: 'get', - url: '/api/admin/qcc-enterprise-enrollments/candidates', - params, - isLoading - }) + 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-enrollments/index', - params, - isLoading - }) + return request({ method: 'get', url: '/api/admin/qcc-enterprise-accounts/index', params, isLoading }) } -export function submit(data) { - return request({ - method: 'post', - url: '/api/admin/qcc-enterprise-enrollments/submit', - data, - isLoading: true - }) +export function select(data) { + return request({ method: 'post', url: '/api/admin/qcc-enterprise-accounts/select', data, isLoading: true }) } -export function reconcile(data) { - return request({ - method: 'post', - url: '/api/admin/qcc-enterprise-enrollments/reconcile', - 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/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 index 65271d9..da0b232 100644 --- a/src/views/qccEnterpriseAccount/index.vue +++ b/src/views/qccEnterpriseAccount/index.vue @@ -1,168 +1,63 @@