From 517a3206278b912b0394c6ff53bde05739ceaf4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E6=88=90?= Date: Mon, 29 Dec 2025 15:27:55 +0800 Subject: [PATCH] 1 --- admin/config/index.js | 8 +- admin/src/views/account/pla_account.vue | 95 ++++---------------- admin/src/views/account/pla_account_edit.vue | 9 +- admin/src/views/system/pricing_plans.vue | 23 +++-- 4 files changed, 40 insertions(+), 95 deletions(-) diff --git a/admin/config/index.js b/admin/config/index.js index 0bc5e47..34f2d94 100644 --- a/admin/config/index.js +++ b/admin/config/index.js @@ -26,11 +26,11 @@ const baseConfig = { // 开发环境配置 const developmentConfig = { ...baseConfig, - apiUrl: 'http://localhost:9097/admin_api/', - uploadUrl: 'http://localhost:9097/admin_api/upload', + // apiUrl: 'http://localhost:9097/admin_api/', + // uploadUrl: 'http://localhost:9097/admin_api/upload', - // apiUrl: 'https://work.light120.com/admin_api/', - // uploadUrl: 'https://work.light120.com/admin_api/upload', + apiUrl: 'https://work.light120.com/admin_api/', + uploadUrl: 'https://work.light120.com/admin_api/upload', // 开发环境显示更多调试信息 debug: true } diff --git a/admin/src/views/account/pla_account.vue b/admin/src/views/account/pla_account.vue index 26a2a09..c0c37be 100644 --- a/admin/src/views/account/pla_account.vue +++ b/admin/src/views/account/pla_account.vue @@ -349,12 +349,12 @@ export default { { title: '密码', key: 'pwd', com: 'Password', required: true }, ], listColumns: [ - { title: 'ID', key: 'id' }, - { title: '账户名', key: 'name' }, - { title: '设备SN码', key: 'sn_code'}, + { title: '账户名', key: 'name', minWidth: 120 }, + { title: '设备SN码', key: 'sn_code', minWidth: 150 }, { title: '平台', key: 'platform_type', + minWidth: 100, render: (h, params) => { const platformMap = { 'boss': { text: 'Boss直聘', color: 'blue' }, @@ -364,26 +364,10 @@ export default { return h('Tag', { props: { color: platform.color } }, platform.text) } }, - { title: '登录名', key: 'login_name'}, - { title: '搜索关键词', key: 'keyword' }, - { title: '用户地址', key: 'user_address' }, - { - title: '经纬度', - key: 'location', - - render: (h, params) => { - const lon = params.row.user_longitude; - const lat = params.row.user_latitude; - if (lon && lat) { - return h('span', `${lat}, ${lon}`) - } - return h('span', { style: { color: '#999' } }, '未设置') - } - }, { title: '在线状态', key: 'is_online', - + minWidth: 90, render: (h, params) => { return h('Tag', { props: { color: params.row.is_online ? 'success' : 'default' } @@ -393,12 +377,7 @@ export default { { title: '自动投递', key: 'auto_deliver', - com: "Radio", - - options: [ - { value: 1, label: '开启' }, - { value: 0, label: '关闭' } - ], + minWidth: 90, render: (h, params) => { return h('Tag', { props: { color: params.row.auto_deliver ? 'success' : 'default' } @@ -408,11 +387,7 @@ export default { { title: '自动沟通', key: 'auto_chat', - "com": "Radio", - options: [ - { value: 1, label: '开启' }, - { value: 0, label: '关闭' } - ], + minWidth: 90, render: (h, params) => { return h('Tag', { props: { color: params.row.auto_chat ? 'success' : 'default' } @@ -422,7 +397,7 @@ export default { { title: '剩余天数', key: 'remaining_days', - + minWidth: 100, render: (h, params) => { const remainingDays = params.row.remaining_days || 0 let color = 'success' @@ -436,52 +411,10 @@ export default { }, remainingDays > 0 ? `${remainingDays} 天` : '已过期') } }, - { - title: '授权日期', - key: 'authorization_date', - - render: (h, params) => { - if (!params.row.authorization_date) { - return h('span', { style: { color: '#999' } }, '未授权') - } - const date = new Date(params.row.authorization_date) - return h('span', this.formatDate(date)) - } - }, - { - title: '过期时间', - key: 'expire_date', - - render: (h, params) => { - if (!params.row.authorization_date || !params.row.authorization_days) { - return h('span', { style: { color: '#999' } }, '未授权') - } - const authDate = new Date(params.row.authorization_date) - const expireDate = new Date(authDate.getTime() + params.row.authorization_days * 24 * 60 * 60 * 1000) - const remainingDays = params.row.remaining_days || 0 - return h('span', { - style: { color: remainingDays <= 0 ? '#ed4014' : remainingDays <= 7 ? '#ff9900' : '#515a6e' } - }, this.formatDate(expireDate)) - } - }, - { - title: '自动活跃', - key: 'auto_active', - "com": "Radio", - options: [ - { value: 1, label: '开启' }, - { value: 0, label: '关闭' } - ], - - render: (h, params) => { - return h('Tag', { - props: { color: params.row.auto_active ? 'success' : 'default' } - }, params.row.auto_active ? '开启' : '关闭') - } - }, { title: '启用状态', key: 'is_enabled', + minWidth: 100, render: (h, params) => { return h('i-switch', { props: { @@ -496,7 +429,6 @@ export default { }) } }, - { title: '创建时间', key: 'create_time', }, { title: '操作', key: 'action', @@ -640,18 +572,21 @@ export default { } this.query(1) }, - async handleSaveSuccess({ data }) { + async handleSaveSuccess({ data, isEdit } = {}) { try { // 如果是新增(来自 editModal),data 只包含必填字段,直接保存 - if (data && !data.id) { + if (data && !data.id && !isEdit) { await plaAccountServer.add(data) this.$Message.success('保存成功!') } // 编辑时由 FloatPanel 组件(PlaAccountEdit)处理保存,这里只刷新列表 - this.query(this.gridOption.param.pageOption.page) + // 刷新列表,保持当前页码 + this.query(this.gridOption.param.pageOption.page || 1) } catch (error) { console.error('保存失败:', error) - this.$Message.error('保存失败:' + (error.message || '请稍后重试')) + // 优先从 error.response.data.message 获取,然后是 error.message + const errorMsg = error.response?.data?.message || error.message || '请稍后重试' + this.$Message.error('保存失败:' + errorMsg) } }, // 显示账号详情 diff --git a/admin/src/views/account/pla_account_edit.vue b/admin/src/views/account/pla_account_edit.vue index 0493fa5..3610813 100644 --- a/admin/src/views/account/pla_account_edit.vue +++ b/admin/src/views/account/pla_account_edit.vue @@ -23,8 +23,10 @@ @@ -545,7 +547,8 @@ export default { this.$Message.success('保存成功!') this.$refs.floatPanel.hide() - this.$emit('on-save') + // 触发保存成功事件,通知父组件刷新列表 + this.$emit('on-save', { isEdit: this.isEdit, data: saveData }) } catch (error) { console.error('保存失败:', error) this.$Message.error('保存失败:' + (error.message || '请稍后重试')) diff --git a/admin/src/views/system/pricing_plans.vue b/admin/src/views/system/pricing_plans.vue index e4b8985..47b55d6 100644 --- a/admin/src/views/system/pricing_plans.vue +++ b/admin/src/views/system/pricing_plans.vue @@ -28,7 +28,7 @@ - + @@ -41,7 +41,7 @@ export default { let rules = {} rules["name"] = [{ required: true, message: '请填写套餐名称', trigger: 'blur' }] rules["duration"] = [{ required: true, message: '请填写时长描述', trigger: 'blur' }] - rules["days"] = [{ required: true, message: '请填写天数', trigger: 'blur' }] + rules["days"] = [{ required: true, type: 'number', message: '请填写天数', trigger: 'blur' }] rules["price"] = [{ required: true, message: '请填写价格', trigger: 'blur' }] return { @@ -203,7 +203,7 @@ export default { { title: '是否推荐', key: 'featured', - type: 'radio', + com: 'Radio', required: true, options: [ { value: 1, label: '推荐' }, @@ -213,7 +213,7 @@ export default { { title: '是否启用', key: 'is_active', - type: 'radio', + com: 'Radio', required: true, options: [ { value: 1, label: '启用' }, @@ -221,7 +221,7 @@ export default { ] }, { - title: '排序顺序', + title: '排序', key: 'sort_order', type: 'number', required: false, @@ -276,7 +276,8 @@ export default { this.query(1) }, showAddWarp() { - this.$refs.editModal.show({ + + let editRow={ name: '', duration: '', days: 0, @@ -288,7 +289,8 @@ export default { featured: 0, is_active: 1, sort_order: 0 - }) + } + this.$refs.editModal.show(editRow) }, edit(row) { // 解析 JSON 字段 @@ -306,7 +308,7 @@ export default { features = JSON.stringify(features, null, 2) } - this.$refs.editModal.editShow({ + let editRow={ id: row.id, name: row.name, duration: row.duration || '', @@ -319,6 +321,11 @@ export default { featured: row.featured, is_active: row.is_active, sort_order: row.sort_order || 0 + } + this.$refs.editModal.editShow(editRow,(newRow)=>{ + debugger + this.handleSaveSuccess(newRow) + }) }, del(row) {