1
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
},
|
||||
// 显示账号详情
|
||||
|
||||
@@ -23,8 +23,10 @@
|
||||
</FormItem>
|
||||
<FormItem label="平台" prop="platform_type">
|
||||
<Select v-model="formData.platform_type" placeholder="请选择平台">
|
||||
<Option value="1">Boss直聘</Option>
|
||||
<Option value="2">猎聘</Option>
|
||||
<Option value="boss">Boss直聘</Option>
|
||||
<Option value="liepin">猎聘</Option>
|
||||
<Option value="zhipin">智联招聘</Option>
|
||||
<Option value="58">58同城</Option>
|
||||
</Select>
|
||||
</FormItem>
|
||||
<FormItem label="登录名" prop="login_name">
|
||||
@@ -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 || '请稍后重试'))
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
<tables :columns="listColumns" :value="gridOption.data" :pageOption="gridOption.param.pageOption"
|
||||
@changePage="query"></tables>
|
||||
</div>
|
||||
<editModal ref="editModal" :columns="editColumns" :rules="gridOption.rules" @on-save="handleSaveSuccess">
|
||||
<editModal ref="editModal" :columns="editColumns" :rules="gridOption.rules" >
|
||||
</editModal>
|
||||
</div>
|
||||
</template>
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user