feat(sj_1.0.0): 优化通知人列表和查询
This commit is contained in:
parent
75a12598ae
commit
d7eae71827
@ -12,6 +12,13 @@ export const enableStatusRecord: Record<Api.Common.EnableStatus, App.I18n.I18nKe
|
|||||||
|
|
||||||
export const enableStatusOptions = transformRecordToOption(enableStatusRecord);
|
export const enableStatusOptions = transformRecordToOption(enableStatusRecord);
|
||||||
|
|
||||||
|
export const enableStatus01Record: Record<Api.Common.EnableStatus01, App.I18n.I18nKey> = {
|
||||||
|
'0': 'page.manage.common.status.enable',
|
||||||
|
'1': 'page.manage.common.status.disable'
|
||||||
|
};
|
||||||
|
|
||||||
|
export const enableStatus01Options = transformRecordToOption(enableStatus01Record);
|
||||||
|
|
||||||
export const userGenderRecord: Record<Api.SystemManage.UserGender, App.I18n.I18nKey> = {
|
export const userGenderRecord: Record<Api.SystemManage.UserGender, App.I18n.I18nKey> = {
|
||||||
'1': 'page.manage.user.gender.male',
|
'1': 'page.manage.user.gender.male',
|
||||||
'2': 'page.manage.user.gender.female'
|
'2': 'page.manage.user.gender.female'
|
||||||
@ -50,3 +57,26 @@ export const alarmTypeRecord: Record<Api.NotifyRecipient.AlarmType, App.I18n.I18
|
|||||||
4: 'page.notifyRecipient.lark'
|
4: 'page.notifyRecipient.lark'
|
||||||
};
|
};
|
||||||
export const alarmTypeRecordOptions = transformRecordToOption(alarmTypeRecord);
|
export const alarmTypeRecordOptions = transformRecordToOption(alarmTypeRecord);
|
||||||
|
|
||||||
|
export const systemTaskType: Record<Api.NotifyConfig.SystemTaskType, App.I18n.I18nKey> = {
|
||||||
|
'1': 'common.systemTaskType.retry',
|
||||||
|
// '2': 'common.systemTaskType.callback',
|
||||||
|
'3': 'common.systemTaskType.job',
|
||||||
|
'4': 'common.systemTaskType.workflow'
|
||||||
|
};
|
||||||
|
export const systemTaskTypeOptions = transformRecordToOption(systemTaskType);
|
||||||
|
|
||||||
|
export const retryNotifyScene: Record<Api.NotifyConfig.RetryNotifyScene, App.I18n.I18nKey> = {
|
||||||
|
'1': 'page.notifyConfig.retryNotifyScene.maxRetry',
|
||||||
|
'2': 'page.notifyConfig.retryNotifyScene.maxRetryError',
|
||||||
|
'3': 'page.notifyConfig.retryNotifyScene.clientReportError',
|
||||||
|
'4': 'page.notifyConfig.retryNotifyScene.clientComponentError',
|
||||||
|
'5': 'page.notifyConfig.retryNotifyScene.retryTaskReachThreshold',
|
||||||
|
'6': 'page.notifyConfig.retryNotifyScene.retryTaskEnterDeadLetter'
|
||||||
|
};
|
||||||
|
export const retryNotifySceneOptions = transformRecordToOption(retryNotifyScene);
|
||||||
|
|
||||||
|
export const jobNotifyScene: Record<Api.NotifyConfig.JobNotifyScene, App.I18n.I18nKey> = {
|
||||||
|
'1': 'page.notifyConfig.jobNotifyScene.jobTaskError'
|
||||||
|
};
|
||||||
|
export const jobNotifySceneOptions = transformRecordToOption(jobNotifyScene);
|
||||||
|
@ -46,6 +46,12 @@ const local: App.I18n.Schema = {
|
|||||||
yesOrNo: {
|
yesOrNo: {
|
||||||
yes: 'Yes',
|
yes: 'Yes',
|
||||||
no: 'No'
|
no: 'No'
|
||||||
|
},
|
||||||
|
systemTaskType: {
|
||||||
|
retry: '重试任务',
|
||||||
|
callback: '回调任务',
|
||||||
|
job: '定时任务',
|
||||||
|
workflow: '工作流'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
request: {
|
request: {
|
||||||
@ -542,10 +548,23 @@ const local: App.I18n.Schema = {
|
|||||||
notifyScene: 'Please select Notification scene',
|
notifyScene: 'Please select Notification scene',
|
||||||
groupName: 'Please select Group name',
|
groupName: 'Please select Group name',
|
||||||
notifyThreshold: 'Please enter Notification threshold',
|
notifyThreshold: 'Please enter Notification threshold',
|
||||||
notifyStatus: 'Please select State'
|
notifyStatus: 'Please select State',
|
||||||
|
systemTaskType: '请选择任务类型'
|
||||||
},
|
},
|
||||||
addNotifyConfig: 'Add Alarm notification',
|
addNotifyConfig: 'Add Alarm notification',
|
||||||
editNotifyConfig: 'Add Alarm notification'
|
editNotifyConfig: 'Add Alarm notification',
|
||||||
|
systemTaskType: '任务类型',
|
||||||
|
retryNotifyScene: {
|
||||||
|
maxRetry: '场景重试数量超过阈值',
|
||||||
|
maxRetryError: '场景重试失败数量超过阈值',
|
||||||
|
clientReportError: '客户端上报失败',
|
||||||
|
clientComponentError: '客户端组件异常',
|
||||||
|
retryTaskReachThreshold: '任务重试失败数量超过阈值',
|
||||||
|
retryTaskEnterDeadLetter: '任务重试失败进入死信队列'
|
||||||
|
},
|
||||||
|
jobNotifyScene: {
|
||||||
|
jobTaskError: '任务执行失败'
|
||||||
|
}
|
||||||
},
|
},
|
||||||
notifyRecipient: {
|
notifyRecipient: {
|
||||||
title: 'Notify Recipient List',
|
title: 'Notify Recipient List',
|
||||||
|
@ -46,6 +46,12 @@ const local: App.I18n.Schema = {
|
|||||||
yesOrNo: {
|
yesOrNo: {
|
||||||
yes: '是',
|
yes: '是',
|
||||||
no: '否'
|
no: '否'
|
||||||
|
},
|
||||||
|
systemTaskType: {
|
||||||
|
retry: '重试任务',
|
||||||
|
callback: '回调任务',
|
||||||
|
job: '定时任务',
|
||||||
|
workflow: '工作流'
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
request: {
|
request: {
|
||||||
@ -538,10 +544,23 @@ const local: App.I18n.Schema = {
|
|||||||
notifyScene: '请选择通知场景',
|
notifyScene: '请选择通知场景',
|
||||||
groupName: '请选择组名称',
|
groupName: '请选择组名称',
|
||||||
notifyThreshold: '请输入通知阈值',
|
notifyThreshold: '请输入通知阈值',
|
||||||
notifyStatus: '请选择状态'
|
notifyStatus: '请选择状态',
|
||||||
|
systemTaskType: '请选择任务类型'
|
||||||
},
|
},
|
||||||
addNotifyConfig: '新增告警通知',
|
addNotifyConfig: '新增告警通知',
|
||||||
editNotifyConfig: '编辑告警通知'
|
editNotifyConfig: '编辑告警通知',
|
||||||
|
systemTaskType: '任务类型',
|
||||||
|
retryNotifyScene: {
|
||||||
|
maxRetry: '场景重试数量超过阈值',
|
||||||
|
maxRetryError: '场景重试失败数量超过阈值',
|
||||||
|
clientReportError: '客户端上报失败',
|
||||||
|
clientComponentError: '客户端组件异常',
|
||||||
|
retryTaskReachThreshold: '任务重试失败数量超过阈值',
|
||||||
|
retryTaskEnterDeadLetter: '任务重试失败进入死信队列'
|
||||||
|
},
|
||||||
|
jobNotifyScene: {
|
||||||
|
jobTaskError: '任务执行失败'
|
||||||
|
}
|
||||||
},
|
},
|
||||||
notifyRecipient: {
|
notifyRecipient: {
|
||||||
title: '通知人列表',
|
title: '通知人列表',
|
||||||
|
32
src/typings/api.d.ts
vendored
32
src/typings/api.d.ts
vendored
@ -38,6 +38,14 @@ declare namespace Api {
|
|||||||
*/
|
*/
|
||||||
type EnableStatus = '1' | '2';
|
type EnableStatus = '1' | '2';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* enable status
|
||||||
|
*
|
||||||
|
* - "0": enabled
|
||||||
|
* - "1": disabled
|
||||||
|
*/
|
||||||
|
type EnableStatus01 = '0' | '1';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* yes/no status
|
* yes/no status
|
||||||
*
|
*
|
||||||
@ -508,14 +516,12 @@ declare namespace Api {
|
|||||||
groupName: string;
|
groupName: string;
|
||||||
/** 业务ID */
|
/** 业务ID */
|
||||||
businessId: string;
|
businessId: string;
|
||||||
|
/** 任务类型 1、重试任务 2、回调任务、3、JOB任务 4、WORKFLOW任务 */
|
||||||
|
systemTaskType: SystemTaskType;
|
||||||
/** 业务名称 */
|
/** 业务名称 */
|
||||||
businessName?: string;
|
businessName?: string;
|
||||||
/** 状态 */
|
/** 状态 */
|
||||||
notifyStatus: string;
|
notifyStatus: string;
|
||||||
/** 通知类型 */
|
|
||||||
notifyType: string;
|
|
||||||
/** 通知属性 */
|
|
||||||
notifyAttribute: string;
|
|
||||||
/** 通知场景 */
|
/** 通知场景 */
|
||||||
notifyScene: string;
|
notifyScene: string;
|
||||||
/** 通知阈值 */
|
/** 通知阈值 */
|
||||||
@ -528,20 +534,22 @@ declare namespace Api {
|
|||||||
type NotifySearchParams = CommonType.RecordNullable<
|
type NotifySearchParams = CommonType.RecordNullable<
|
||||||
Pick<
|
Pick<
|
||||||
Api.NotifyConfig.NotifyConfig,
|
Api.NotifyConfig.NotifyConfig,
|
||||||
| 'groupName'
|
'groupName' | 'businessId' | 'systemTaskType' | 'notifyStatus' | 'notifyScene'
|
||||||
| 'businessId'
|
|
||||||
| 'notifyStatus'
|
|
||||||
| 'notifyType'
|
|
||||||
| 'notifyAttribute'
|
|
||||||
| 'notifyScene'
|
|
||||||
| 'notifyThreshold'
|
|
||||||
| 'description'
|
|
||||||
> &
|
> &
|
||||||
CommonSearchParams
|
CommonSearchParams
|
||||||
>;
|
>;
|
||||||
|
|
||||||
/** notify-config list */
|
/** notify-config list */
|
||||||
type NotifyConfigList = Common.PaginatingQueryRecord<NotifyConfig>;
|
type NotifyConfigList = Common.PaginatingQueryRecord<NotifyConfig>;
|
||||||
|
|
||||||
|
/** 任务类型 1、重试任务 2、回调任务、 3、JOB任务 4、WORKFLOW任务 */
|
||||||
|
type SystemTaskType = '1' | '3' | '4';
|
||||||
|
|
||||||
|
/** 1、场景重试数量超过阈值 2、场景重试失败数量超过阈值 3、客户端上报失败 4、客户端组件异常 5、任务重试失败数量超过阈值 6、任务重试失败进入死信队列 */
|
||||||
|
type RetryNotifyScene = '1' | '2' | '3' | '4' | '5' | '6';
|
||||||
|
|
||||||
|
/** 1、任务执行失败 */
|
||||||
|
type JobNotifyScene = '1';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
19
src/typings/app.d.ts
vendored
19
src/typings/app.d.ts
vendored
@ -293,6 +293,12 @@ declare namespace App {
|
|||||||
yes: string;
|
yes: string;
|
||||||
no: string;
|
no: string;
|
||||||
};
|
};
|
||||||
|
systemTaskType: {
|
||||||
|
retry: string;
|
||||||
|
callback: string;
|
||||||
|
job: string;
|
||||||
|
workflow: string;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
request: {
|
request: {
|
||||||
logout: string;
|
logout: string;
|
||||||
@ -714,9 +720,22 @@ declare namespace App {
|
|||||||
groupName: string;
|
groupName: string;
|
||||||
notifyThreshold: string;
|
notifyThreshold: string;
|
||||||
notifyStatus: string;
|
notifyStatus: string;
|
||||||
|
systemTaskType: string;
|
||||||
};
|
};
|
||||||
addNotifyConfig: string;
|
addNotifyConfig: string;
|
||||||
editNotifyConfig: string;
|
editNotifyConfig: string;
|
||||||
|
systemTaskType: string;
|
||||||
|
retryNotifyScene: {
|
||||||
|
maxRetry: string;
|
||||||
|
maxRetryError: string;
|
||||||
|
clientReportError: string;
|
||||||
|
clientComponentError: string;
|
||||||
|
retryTaskReachThreshold: string;
|
||||||
|
retryTaskEnterDeadLetter: string;
|
||||||
|
};
|
||||||
|
jobNotifyScene: {
|
||||||
|
jobTaskError: string;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
notifyRecipient: {
|
notifyRecipient: {
|
||||||
title: string;
|
title: string;
|
||||||
|
@ -18,9 +18,7 @@ const { columns, columnChecks, data, getData, loading, mobilePagination, searchP
|
|||||||
// the value can not be undefined, otherwise the property in Form will not be reactive
|
// the value can not be undefined, otherwise the property in Form will not be reactive
|
||||||
groupName: null,
|
groupName: null,
|
||||||
notifyStatus: null,
|
notifyStatus: null,
|
||||||
notifyScene: null,
|
notifyScene: null
|
||||||
notifyThreshold: null,
|
|
||||||
description: null
|
|
||||||
},
|
},
|
||||||
columns: () => [
|
columns: () => [
|
||||||
{
|
{
|
||||||
@ -52,12 +50,6 @@ const { columns, columnChecks, data, getData, loading, mobilePagination, searchP
|
|||||||
align: 'left',
|
align: 'left',
|
||||||
width: 120
|
width: 120
|
||||||
},
|
},
|
||||||
{
|
|
||||||
key: 'notifyType',
|
|
||||||
title: $t('page.notifyConfig.notifyType'),
|
|
||||||
align: 'left',
|
|
||||||
width: 120
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
key: 'notifyScene',
|
key: 'notifyScene',
|
||||||
title: $t('page.notifyConfig.notifyScene'),
|
title: $t('page.notifyConfig.notifyScene'),
|
||||||
|
@ -4,6 +4,8 @@ import { useFormRules, useNaiveForm } from '@/hooks/common/form';
|
|||||||
import OperateDrawer from '@/components/common/operate-drawer.vue';
|
import OperateDrawer from '@/components/common/operate-drawer.vue';
|
||||||
import { $t } from '@/locales';
|
import { $t } from '@/locales';
|
||||||
import { fetchAddNotify, fetchEditNotify } from '@/service/api';
|
import { fetchAddNotify, fetchEditNotify } from '@/service/api';
|
||||||
|
import { enableStatus01Options, retryNotifySceneOptions, systemTaskTypeOptions } from '@/constants/business';
|
||||||
|
import { translateOptions } from '@/utils/common';
|
||||||
|
|
||||||
defineOptions({
|
defineOptions({
|
||||||
name: 'NotifyConfigOperateDrawer'
|
name: 'NotifyConfigOperateDrawer'
|
||||||
@ -44,9 +46,8 @@ type Model = Pick<
|
|||||||
| 'id'
|
| 'id'
|
||||||
| 'groupName'
|
| 'groupName'
|
||||||
| 'businessId'
|
| 'businessId'
|
||||||
|
| 'systemTaskType'
|
||||||
| 'notifyStatus'
|
| 'notifyStatus'
|
||||||
| 'notifyType'
|
|
||||||
| 'notifyAttribute'
|
|
||||||
| 'notifyScene'
|
| 'notifyScene'
|
||||||
| 'notifyThreshold'
|
| 'notifyThreshold'
|
||||||
| 'description'
|
| 'description'
|
||||||
@ -58,28 +59,21 @@ function createDefaultModel(): Model {
|
|||||||
return {
|
return {
|
||||||
groupName: '',
|
groupName: '',
|
||||||
businessId: '',
|
businessId: '',
|
||||||
|
systemTaskType: '1',
|
||||||
notifyStatus: '',
|
notifyStatus: '',
|
||||||
notifyType: '',
|
|
||||||
notifyScene: '',
|
notifyScene: '',
|
||||||
notifyThreshold: 0,
|
notifyThreshold: 0,
|
||||||
notifyAttribute: '',
|
|
||||||
description: ''
|
description: ''
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
type RuleKey = Extract<
|
type RuleKey = Extract<keyof Model, 'groupName' | 'businessId' | 'notifyStatus' | 'notifyScene'>;
|
||||||
keyof Model,
|
|
||||||
'groupName' | 'businessId' | 'notifyStatus' | 'notifyType' | 'notifyScene' | 'notifyThreshold' | 'description'
|
|
||||||
>;
|
|
||||||
|
|
||||||
const rules: Record<RuleKey, App.Global.FormRule> = {
|
const rules: Record<RuleKey, App.Global.FormRule> = {
|
||||||
groupName: defaultRequiredRule,
|
groupName: defaultRequiredRule,
|
||||||
businessId: defaultRequiredRule,
|
businessId: defaultRequiredRule,
|
||||||
notifyStatus: defaultRequiredRule,
|
notifyStatus: defaultRequiredRule,
|
||||||
notifyType: defaultRequiredRule,
|
notifyScene: defaultRequiredRule
|
||||||
notifyScene: defaultRequiredRule,
|
|
||||||
notifyThreshold: defaultRequiredRule,
|
|
||||||
description: defaultRequiredRule
|
|
||||||
};
|
};
|
||||||
|
|
||||||
function handleUpdateModelWhenEdit() {
|
function handleUpdateModelWhenEdit() {
|
||||||
@ -104,9 +98,8 @@ async function handleSubmit() {
|
|||||||
const {
|
const {
|
||||||
groupName,
|
groupName,
|
||||||
businessId,
|
businessId,
|
||||||
|
systemTaskType,
|
||||||
notifyStatus,
|
notifyStatus,
|
||||||
notifyType,
|
|
||||||
notifyAttribute,
|
|
||||||
notifyScene,
|
notifyScene,
|
||||||
notifyThreshold,
|
notifyThreshold,
|
||||||
description
|
description
|
||||||
@ -114,9 +107,8 @@ async function handleSubmit() {
|
|||||||
const { error } = await fetchAddNotify({
|
const { error } = await fetchAddNotify({
|
||||||
groupName,
|
groupName,
|
||||||
businessId,
|
businessId,
|
||||||
|
systemTaskType,
|
||||||
notifyStatus,
|
notifyStatus,
|
||||||
notifyType,
|
|
||||||
notifyAttribute,
|
|
||||||
notifyScene,
|
notifyScene,
|
||||||
notifyThreshold,
|
notifyThreshold,
|
||||||
description
|
description
|
||||||
@ -130,8 +122,7 @@ async function handleSubmit() {
|
|||||||
groupName,
|
groupName,
|
||||||
businessId,
|
businessId,
|
||||||
notifyStatus,
|
notifyStatus,
|
||||||
notifyType,
|
systemTaskType,
|
||||||
notifyAttribute,
|
|
||||||
notifyScene,
|
notifyScene,
|
||||||
notifyThreshold,
|
notifyThreshold,
|
||||||
description
|
description
|
||||||
@ -140,9 +131,8 @@ async function handleSubmit() {
|
|||||||
id,
|
id,
|
||||||
groupName,
|
groupName,
|
||||||
businessId,
|
businessId,
|
||||||
|
systemTaskType,
|
||||||
notifyStatus,
|
notifyStatus,
|
||||||
notifyType,
|
|
||||||
notifyAttribute,
|
|
||||||
notifyScene,
|
notifyScene,
|
||||||
notifyThreshold,
|
notifyThreshold,
|
||||||
description
|
description
|
||||||
@ -165,18 +155,41 @@ watch(visible, () => {
|
|||||||
<template>
|
<template>
|
||||||
<OperateDrawer v-model="visible" :title="title" @handle-submit="handleSubmit">
|
<OperateDrawer v-model="visible" :title="title" @handle-submit="handleSubmit">
|
||||||
<NForm ref="formRef" :model="model" :rules="rules">
|
<NForm ref="formRef" :model="model" :rules="rules">
|
||||||
<NGrid x-gap="12" :cols="6" item-responsive responsive="screen">
|
<NFormItem :label="$t('page.notifyConfig.groupName')" path="name">
|
||||||
<NGi span="m:6 l:4">
|
<NSelect v-model:value="model.groupName" :placeholder="$t('page.notifyConfig.form.groupName')" clearable />
|
||||||
<NFormItem :label="$t('page.notifyConfig.notifyScene')" path="name">
|
</NFormItem>
|
||||||
<NSelect
|
<NFormItem :label="$t('page.notifyConfig.notifyStatus')" path="notifyStatus">
|
||||||
v-model:value="model.notifyScene"
|
<NRadioGroup v-model:value="model.notifyStatus" name="notifyStatus">
|
||||||
:placeholder="$t('page.notifyConfig.page.notifyScene')"
|
<NSpace>
|
||||||
clearable
|
<NRadio
|
||||||
|
v-for="item in enableStatus01Options"
|
||||||
|
:key="item.value"
|
||||||
|
:value="item.value"
|
||||||
|
:label="$t(item.label)"
|
||||||
/>
|
/>
|
||||||
</NFormItem>
|
</NSpace>
|
||||||
</NGi>
|
</NRadioGroup>
|
||||||
|
</NFormItem>
|
||||||
|
<NFormItem :label="$t('page.notifyConfig.systemTaskType')" path="systemTaskType">
|
||||||
|
<NSelect
|
||||||
|
v-model:value="model.systemTaskType"
|
||||||
|
:placeholder="$t('page.notifyConfig.form.systemTaskType')"
|
||||||
|
:options="translateOptions(systemTaskTypeOptions)"
|
||||||
|
clearable
|
||||||
|
/>
|
||||||
|
</NFormItem>
|
||||||
|
<NFormItem :label="$t('page.notifyConfig.notifyScene')" path="notifyScene">
|
||||||
|
<NSelect
|
||||||
|
v-model:value="model.notifyScene"
|
||||||
|
:placeholder="$t('page.notifyConfig.form.notifyScene')"
|
||||||
|
:options="translateOptions(retryNotifySceneOptions)"
|
||||||
|
clearable
|
||||||
|
/>
|
||||||
|
</NFormItem>
|
||||||
|
<NGrid x-gap="12" :cols="6" item-responsive responsive="screen">
|
||||||
|
<NGi span="m:6 l:6"></NGi>
|
||||||
<NGi span="m:6 l:2">
|
<NGi span="m:6 l:2">
|
||||||
<NFormItem :label="$t('page.notifyConfig.notifyThreshold')" path="name">
|
<NFormItem :label="$t('page.notifyConfig.notifyThreshold')" path="notifyThreshold">
|
||||||
<NInputNumber
|
<NInputNumber
|
||||||
v-model:value="model.notifyThreshold"
|
v-model:value="model.notifyThreshold"
|
||||||
:placeholder="$t('page.notifyConfig.form.notifyThreshold')"
|
:placeholder="$t('page.notifyConfig.form.notifyThreshold')"
|
||||||
@ -184,44 +197,12 @@ watch(visible, () => {
|
|||||||
</NFormItem>
|
</NFormItem>
|
||||||
</NGi>
|
</NGi>
|
||||||
</NGrid>
|
</NGrid>
|
||||||
<NGrid x-gap="12" :cols="6" item-responsive responsive="screen">
|
|
||||||
<NGi span="m:6 l:4">
|
|
||||||
<NFormItem :label="$t('page.notifyConfig.groupName')" path="name">
|
|
||||||
<NSelect v-model:value="model.groupName" :placeholder="$t('page.notifyConfig.form.groupName')" clearable />
|
|
||||||
</NFormItem>
|
|
||||||
</NGi>
|
|
||||||
<NGi span="m:6 l:2">
|
|
||||||
<NFormItem :label="$t('page.notifyConfig.notifyStatus')" path="name">
|
|
||||||
<NSelect
|
|
||||||
v-model:value="model.notifyStatus"
|
|
||||||
:placeholder="$t('page.notifyConfig.form.notifyStatus')"
|
|
||||||
clearable
|
|
||||||
/>
|
|
||||||
</NFormItem>
|
|
||||||
</NGi>
|
|
||||||
</NGrid>
|
|
||||||
<NGrid x-gap="12" :cols="6" item-responsive responsive="screen">
|
|
||||||
<NGi span="m:6 l:4">
|
|
||||||
<NFormItem :label="$t('page.notifyConfig.notifyType')" path="name">
|
|
||||||
<NSelect
|
|
||||||
v-model:value="model.notifyType"
|
|
||||||
:placeholder="$t('page.notifyConfig.form.notifyType')"
|
|
||||||
clearable
|
|
||||||
/>
|
|
||||||
</NFormItem>
|
|
||||||
</NGi>
|
|
||||||
<NGi span="m:6 l:2">
|
|
||||||
<NFormItem :label="$t('page.notifyConfig.notifyAttribute')" path="name">
|
|
||||||
<NSelect
|
|
||||||
v-model:value="model.notifyAttribute"
|
|
||||||
:placeholder="$t('page.notifyConfig.form.notifyAttribute')"
|
|
||||||
clearable
|
|
||||||
/>
|
|
||||||
</NFormItem>
|
|
||||||
</NGi>
|
|
||||||
</NGrid>
|
|
||||||
<NFormItem :label="$t('page.notifyConfig.description')" path="description">
|
<NFormItem :label="$t('page.notifyConfig.description')" path="description">
|
||||||
<NInput v-model:value="model.description" :placeholder="$t('page.notifyConfig.form.description')" />
|
<NInput
|
||||||
|
v-model:value="model.description"
|
||||||
|
type="textarea"
|
||||||
|
:placeholder="$t('page.notifyConfig.form.description')"
|
||||||
|
/>
|
||||||
</NFormItem>
|
</NFormItem>
|
||||||
</NForm>
|
</NForm>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
|
Loading…
Reference in New Issue
Block a user