规范气站客服工单枚举
This commit is contained in:
@@ -69,6 +69,26 @@ for (const option of [
|
||||
}
|
||||
if (!fieldFormSource.includes(':disabled="option.disabled"'))
|
||||
throw new Error('未开通的提现渠道必须在下拉框中禁用');
|
||||
if (!source.includes("unknownValueLabel: '未知工单分类'"))
|
||||
throw new Error('客服工单分类必须保留历史未知值提示');
|
||||
if (!source.includes("unknownValueLabel: '未知优先级'"))
|
||||
throw new Error('客服工单优先级必须保留历史未知值提示');
|
||||
if (!source.includes("defaultValue: 'normal'"))
|
||||
throw new Error('客服工单优先级必须默认选择普通');
|
||||
for (const option of [
|
||||
"{ label: '配送', value: 'delivery' }",
|
||||
"{ label: '安装', value: 'installation' }",
|
||||
"{ label: '维修', value: 'repair' }",
|
||||
"{ label: '安检', value: 'inspection' }",
|
||||
"{ label: '复检', value: 'reinspection' }",
|
||||
"{ label: '客服咨询', value: 'customer_service' }",
|
||||
"{ label: '低', value: 'low' }",
|
||||
"{ label: '普通', value: 'normal' }",
|
||||
"{ label: '高', value: 'high' }",
|
||||
"{ label: '紧急', value: 'urgent' }",
|
||||
]) {
|
||||
if (!source.includes(option)) throw new Error(`客服工单枚举缺失:${option}`);
|
||||
}
|
||||
|
||||
const forbidden = [
|
||||
'/platform/platform_', '/gas/gas_', '/delivery/delivery_', '/staff/',
|
||||
|
||||
@@ -400,6 +400,35 @@ function define(
|
||||
|
||||
const reason = [f('reason', { required: true })];
|
||||
|
||||
/** 客服工单分类沿用平台统一编码,分类必须由创建人主动判断。 */
|
||||
const ticketCategoryField = f('category', {
|
||||
required: true,
|
||||
type: 'select',
|
||||
unknownValueLabel: '未知工单分类',
|
||||
options: [
|
||||
{ label: '配送', value: 'delivery' },
|
||||
{ label: '安装', value: 'installation' },
|
||||
{ label: '维修', value: 'repair' },
|
||||
{ label: '安检', value: 'inspection' },
|
||||
{ label: '复检', value: 'reinspection' },
|
||||
{ label: '客服咨询', value: 'customer_service' },
|
||||
],
|
||||
});
|
||||
|
||||
/** 客服工单优先级默认普通,仍允许创建人按实际情况调整。 */
|
||||
const ticketPriorityField = f('priority', {
|
||||
required: true,
|
||||
type: 'select',
|
||||
defaultValue: 'normal',
|
||||
unknownValueLabel: '未知优先级',
|
||||
options: [
|
||||
{ label: '低', value: 'low' },
|
||||
{ label: '普通', value: 'normal' },
|
||||
{ label: '高', value: 'high' },
|
||||
{ label: '紧急', value: 'urgent' },
|
||||
],
|
||||
});
|
||||
|
||||
/** 提现渠道保留未来选项,但当前仅开放银行卡提现。 */
|
||||
const withdrawalChannelField = f('channel', {
|
||||
required: true,
|
||||
@@ -509,7 +538,7 @@ const platformResources: ResourceUiDefinition[] = [
|
||||
define('fin_settlement', '财务结算', 'writable', [f('settlement_no', { required: true }), f('subject_type', { required: true }), f('subject_identity', { required: true }), f('period_start', { required: true }), f('period_end', { required: true })]),
|
||||
define('fin_reconciliation', '财务对账', 'readonly', []),
|
||||
define('cms_content', '内容', 'writable', [f('content_type', { required: true }), f('title', { required: true }), f('body', { required: true }), f('version_no'), f('publish_status')]),
|
||||
define('cs_ticket', '客服工单', 'writable', [relation('user_account_identity', '/user_account', true), f('ticket_no', { required: true }), f('category', { required: true }), f('priority', { required: true })]),
|
||||
define('cs_ticket', '客服工单', 'writable', [relation('user_account_identity', '/user_account', true), f('ticket_no', { required: true }), ticketCategoryField, ticketPriorityField]),
|
||||
define('platform_account', '平台账户', 'writable', [f('username', { required: true }), f('password', { required: true }), f('display_name'), f('avatar'), f('platform_role_code', { required: true }), f('phone')]),
|
||||
define('platform_role', '平台角色', 'writable', [f('role_code', { required: true }), f('name', { required: true }), f('location_scope', { required: true, type: 'select', options: [{ label: '脱敏坐标', value: 'standard' }, { label: '精确坐标', value: 'precise' }] })], 'list', [
|
||||
{ name: '分配菜单', resource: '/platform_role/:identity/menu', method: 'PUT', fields: [f('menu_identities', { type: 'identity-list', relation: '/platform_menu' })] },
|
||||
@@ -556,7 +585,7 @@ const gasOverrides: ResourceUiDefinition[] = [
|
||||
define('wallet_apply_cash', '提现申请', 'append_only', [relation('wallet_bank_identity', '/wallet_bank'), f('request_no', { required: true }), f('amount', { required: true }), withdrawalChannelField, f('remark')]),
|
||||
define('fin_settlement', '财务结算', 'readonly', []),
|
||||
define('fin_reconciliation', '财务对账', 'readonly', []),
|
||||
define('cs_ticket', '客服工单', 'writable', [relation('user_account_identity', '/user_account', true), f('ticket_no', { required: true }), f('category', { required: true }), f('priority', { required: true })]),
|
||||
define('cs_ticket', '客服工单', 'writable', [relation('user_account_identity', '/user_account', true), f('ticket_no', { required: true }), ticketCategoryField, ticketPriorityField]),
|
||||
];
|
||||
|
||||
const gasResourceNames = new Set(gasOverrides.map((item) => item.name));
|
||||
|
||||
Reference in New Issue
Block a user