| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360 |
- import type { SmartColumn, SmartSearchFormSchema } from '@/components/SmartTable';
- import type { FormSchema } from '@/components/Form';
- import { getMessageTypeEnum, getMessagePriorityEnum } from '../../SmartMessageConstants';
- export const getMessageSendStatusEnum = (t: Function) => {
- return [
- {
- label: t('smart.message.systemMessage.form.sendStatus.NO_SEND'),
- value: 'NO_SEND',
- },
- {
- label: t('smart.message.systemMessage.form.sendStatus.SEND'),
- value: 'SEND',
- },
- {
- label: t('smart.message.systemMessage.form.sendStatus.CANCEL'),
- value: 'CANCEL',
- },
- ];
- };
- export const getReceiveUserTypeEnum = (t: Function) => {
- return [
- {
- label: t('smart.message.systemMessage.form.receiveUserType.ALL_USER'),
- value: 'ALL_USER',
- },
- {
- label: t('smart.message.systemMessage.form.receiveUserType.SPECIFY_USER'),
- value: 'SPECIFY_USER',
- },
- {
- label: t('smart.message.systemMessage.form.receiveUserType.BUSINESS_USER'),
- value: 'BUSINESS_USER',
- },
- ];
- };
- /**
- * 表格列表
- */
- export const getTableColumns = (t: Function): SmartColumn[] => {
- const messageTypeEnum = getMessageTypeEnum(t);
- const sendStatusEnum = getMessageSendStatusEnum(t);
- const messagePriorityEnum = getMessagePriorityEnum(t);
- const receiveUserTypeEnum = getReceiveUserTypeEnum(t);
- return [
- {
- type: 'checkbox',
- width: 60,
- align: 'center',
- fixed: 'left',
- },
- {
- field: 'title',
- title: '{smart.message.systemMessage.title.title}',
- width: 200,
- fixed: 'left',
- },
- {
- field: 'abstractContent',
- title: '{smart.message.systemMessage.title.abstract}',
- width: 120,
- },
- {
- field: 'messageType',
- title: '{smart.message.systemMessage.title.messageType}',
- width: 120,
- dynamicClass: ({ row }) => {
- const messageType = row.messageType;
- if (!messageType) {
- return '';
- }
- return messageType === 'ANNOUNCEMENT'
- ? 'text-color--success-bold'
- : 'text-color--link-bold';
- },
- formatter: ({ row }) => {
- const messageType = row.messageType;
- if (!messageType) {
- return '';
- }
- const enumList = messageTypeEnum.filter((item) => item.value === row.messageType);
- if (enumList.length === 0) {
- return '';
- }
- const data = enumList[0];
- return data.label;
- },
- },
- {
- field: 'sendStatus',
- title: '{smart.message.systemMessage.title.sendStatus}',
- width: 120,
- slots: {
- default: ({ row }) => {
- if (!row.sendStatus) {
- return '';
- }
- const enumList = sendStatusEnum.filter((item) => item.value === row.sendStatus);
- if (enumList.length === 0) {
- return '';
- }
- const data = enumList[0];
- let color = 'pink';
- if (data.value === 'SEND') {
- color = 'green';
- } else if (data.value === 'CANCEL') {
- color = 'grey';
- }
- return <a-tag color={color}>{data.label}</a-tag>;
- },
- },
- },
- {
- field: 'priority',
- title: '{smart.message.systemMessage.title.priority}',
- width: 120,
- slots: {
- default: ({ row }) => {
- if (!row.priority) {
- return '';
- }
- const enumList = messagePriorityEnum.filter((item) => item.value === row.priority);
- if (enumList.length === 0) {
- return '';
- }
- const data = enumList[0];
- let color = 'pink';
- if (data.value === 'MIDDLE') {
- color = 'orange';
- } else if (data.value === 'LOW') {
- color = 'green';
- }
- return <a-tag color={color}>{data.label}</a-tag>;
- },
- },
- },
- {
- field: 'receiveUserType',
- title: '{smart.message.systemMessage.title.receiveUserType}',
- width: 120,
- slots: {
- default: ({ row }) => {
- if (!row.receiveUserType) {
- return '';
- }
- const enumList = receiveUserTypeEnum.filter((item) => item.value === row.receiveUserType);
- if (enumList.length === 0) {
- return '';
- }
- const data = enumList[0];
- let color = '#2db7f5';
- if (data.value === 'SPECIFY_USER') {
- color = '#87d068';
- } else if (data.value === 'BUSINESS_USER') {
- color = '#108ee9';
- }
- return <a-tag color={color}>{data.label}</a-tag>;
- },
- },
- },
- {
- field: 'sendTime',
- title: '{smart.message.systemMessage.title.sendTime}',
- width: 165,
- sortable: true,
- },
- {
- field: 'cancelTime',
- title: '{smart.message.systemMessage.title.cancelTime}',
- width: 165,
- sortable: true,
- },
- {
- field: 'useYn',
- component: 'booleanTag',
- title: '{common.table.useYn}',
- width: 120,
- },
- {
- field: 'createTime',
- title: '{common.table.createTime}',
- width: 170,
- sortable: true,
- },
- {
- field: 'createBy',
- title: '{common.table.createUser}',
- width: 120,
- },
- {
- field: 'updateTime',
- title: '{common.table.updateTime}',
- width: 170,
- sortable: true,
- },
- {
- field: 'updateBy',
- title: '{common.table.updateUser}',
- width: 120,
- },
- {
- title: '{common.table.operation}',
- field: 'operation',
- width: 120,
- fixed: 'right',
- slots: {
- default: 'table-operation',
- },
- },
- ];
- };
- /**
- * 添加修改表单
- */
- export const getFormSchemas = (t: Function): FormSchema[] => {
- return [
- {
- field: 'id',
- show: false,
- label: t('smart.message.systemMessage.title.id'),
- component: 'Input',
- componentProps: {},
- },
- {
- field: 'messageType',
- label: t('smart.message.systemMessage.title.messageType'),
- component: 'RadioGroup',
- componentProps: {
- options: getMessageTypeEnum(t),
- },
- defaultValue: 'ANNOUNCEMENT',
- },
- {
- field: 'title',
- label: t('smart.message.systemMessage.title.title'),
- component: 'Input',
- componentProps: {},
- required: true,
- },
- {
- field: 'abstractContent',
- label: t('smart.message.systemMessage.title.abstract'),
- component: 'InputTextArea',
- componentProps: {},
- required: true,
- },
- {
- field: 'priority',
- label: t('smart.message.systemMessage.title.priority'),
- component: 'RadioGroup',
- componentProps: {
- options: getMessagePriorityEnum(t),
- },
- defaultValue: 'H',
- },
- {
- field: 'receiveUserType',
- label: t('smart.message.systemMessage.title.receiveUserType'),
- component: 'RadioGroup',
- componentProps: {
- options: getReceiveUserTypeEnum(t),
- },
- defaultValue: 'ALL_USER',
- },
- {
- field: 'userIds',
- label: t('smart.message.systemMessage.title.userIds'),
- component: 'SmartUserTableSelect',
- show: ({ model }) => {
- return model.receiveUserType !== 'ALL_USER';
- },
- required: ({ model }) => {
- return model.receiveUserType !== 'ALL_USER';
- },
- },
- {
- field: 'useYn',
- label: t('common.table.useYn'),
- component: 'Switch',
- defaultValue: true,
- componentProps: {},
- },
- {
- field: 'content',
- label: t('smart.message.systemMessage.title.content'),
- slot: 'addEdit-content',
- },
- ];
- };
- export const getSearchFormSchemas = (t: Function): SmartSearchFormSchema[] => {
- return [
- {
- field: 'title',
- label: t('smart.message.systemMessage.title.title'),
- component: 'Input',
- searchSymbol: 'like',
- },
- {
- field: 'messageType',
- label: t('smart.message.systemMessage.title.messageType'),
- component: 'Select',
- searchSymbol: '=',
- componentProps: {
- options: getMessageTypeEnum(t),
- style: {
- width: '140px',
- },
- },
- },
- {
- field: 'sendStatus',
- label: t('smart.message.systemMessage.title.sendStatus'),
- component: 'Select',
- searchSymbol: '=',
- componentProps: {
- options: getMessageSendStatusEnum(t),
- style: {
- width: '140px',
- },
- },
- },
- {
- field: 'priority',
- label: t('smart.message.systemMessage.title.priority'),
- component: 'Select',
- searchSymbol: '=',
- componentProps: {
- options: getMessagePriorityEnum(t),
- style: {
- width: '125px',
- },
- },
- },
- {
- field: 'receiveUserType',
- label: t('smart.message.systemMessage.title.receiveUserType'),
- component: 'Select',
- searchSymbol: '=',
- componentProps: {
- options: getReceiveUserTypeEnum(t),
- style: {
- width: '140px',
- },
- },
- },
- ];
- };
- export enum Auth {
- delete = 'smart:message:systemMessage:delete',
- update = 'smart:message:systemMessage:update',
- save = 'smart:message:systemMessage:save',
- publish = 'smart:message:systemMessage:publish',
- cancel = 'smart:message:systemMessage:cancel',
- }
|