diff --git a/mock-server/data/channels.js b/mock-server/data/channels.js new file mode 100644 index 0000000..11728be --- /dev/null +++ b/mock-server/data/channels.js @@ -0,0 +1,19 @@ +// 核心企业(渠道)数据以扁平列表存储;orgId 关联本系统机构树(所属机构),其余字段均为自由文本 +export const channels = [ + { + id: 'channel001', + name: '示例核心企业A', + channelCode: 'CH0001', + appCode: 'APP0001', + motherAccountBank: '中国工商银行示例支行', + orgId: 'org002', + createdAt: '2026-01-05 00:00:00' + } +] + +let seq = channels.length + +export function nextChannelId() { + seq += 1 + return `channel${String(seq).padStart(3, '0')}` +} diff --git a/mock-server/data/managers.js b/mock-server/data/managers.js new file mode 100644 index 0000000..c2d19d4 --- /dev/null +++ b/mock-server/data/managers.js @@ -0,0 +1,18 @@ +// 客户经理数据以扁平列表存储;机构号/机构名称为自由文本,不关联本系统机构树;工号全局唯一 +export const managers = [ + { + id: 'manager001', + orgCode: 'ORG0001', + orgName: '示例网点', + jobNumber: 'JOB0001', + name: '示例经理', + createdAt: '2026-01-06 00:00:00' + } +] + +let seq = managers.length + +export function nextManagerId() { + seq += 1 + return `manager${String(seq).padStart(3, '0')}` +} diff --git a/mock-server/data/menu.js b/mock-server/data/menu.js index 7dba21c..0a460f6 100644 --- a/mock-server/data/menu.js +++ b/mock-server/data/menu.js @@ -47,6 +47,39 @@ export const menuTree = [ ] } ] + }, + { + id: 'base_config', + name: '基础配置', + path: '/base-config', + icon: 'AppstoreOutlined', + type: 'menu', + children: [ + { + id: 'base_channel', + name: '核心企业管理', + path: '/base-config/channel', + component: 'base-config/channel/ChannelList', + type: 'menu', + buttons: [ + { code: 'channel:add', name: '新增' }, + { code: 'channel:edit', name: '修改' }, + { code: 'channel:delete', name: '删除' } + ] + }, + { + id: 'base_manager', + name: '客户经理管理', + path: '/base-config/manager', + component: 'base-config/manager/ManagerList', + type: 'menu', + buttons: [ + { code: 'manager:add', name: '新增' }, + { code: 'manager:edit', name: '修改' }, + { code: 'manager:delete', name: '删除' } + ] + } + ] } ] diff --git a/mock-server/data/roles.js b/mock-server/data/roles.js index 4727ab9..3dab7cc 100644 --- a/mock-server/data/roles.js +++ b/mock-server/data/roles.js @@ -8,7 +8,7 @@ export const roles = [ orgId: 'org001', builtin: true, status: 'enabled', - menuIds: ['system', 'sys_user', 'sys_role', 'sys_org'], + menuIds: ['system', 'sys_user', 'sys_role', 'sys_org', 'base_config', 'base_channel', 'base_manager'], buttonCodes: flattenButtons(menuTree), dataScope: 'all', createdAt: '2026-01-01 00:00:00' diff --git a/src/components/OrgTreeSelect.vue b/src/components/OrgTreeSelect.vue index d88974d..1bf3618 100644 --- a/src/components/OrgTreeSelect.vue +++ b/src/components/OrgTreeSelect.vue @@ -5,7 +5,7 @@ :field-names="{ label: 'title', value: 'value', children: 'children' }" show-search tree-node-filter-prop="title" - placeholder="请选择上级机构" + :placeholder="placeholder" allow-clear :loading="loading" @update:value="$emit('update:modelValue', $event)" @@ -18,7 +18,8 @@ import { fetchOrgListApi } from '@/api/system' const props = defineProps({ modelValue: { type: String, default: undefined }, - excludeId: { type: String, default: '' } + excludeId: { type: String, default: '' }, + placeholder: { type: String, default: '请选择上级机构' } }) defineEmits(['update:modelValue'])