Commit ce43e30143793d4bde04128b03610fcf405e398f

Authored by xp.Huang
2 parents 43058d19 8e0b14d4

Merge branch 'feat/alarm-add-dingtalk' into 'main_dev'

feat:告警联系人新增钉钉字段

See merge request yunteng/thingskit-front!1030
1 1 export enum MessageEnum {
2 2 IS_SMS = 'PHONE_MESSAGE',
3 3 IS_EMAIL = 'EMAIL_MESSAGE',
  4 + IS_DINGTALK = 'DING_TALK_MESSAGE',
4 5 }
... ...
... ... @@ -74,6 +74,12 @@
74 74 username: values.username,
75 75 password: values.password,
76 76 };
  77 + } else if (values.messageType === 'DING_TALK_MESSAGE') {
  78 + config = {
  79 + AgentId: values?.AgentId,
  80 + ClientID: values?.ClientID,
  81 + ClientSecret: values?.ClientSecret,
  82 + };
77 83 }
78 84 Reflect.set(values, 'config', config);
79 85 let saveMessage = '添加成功';
... ...
... ... @@ -79,6 +79,9 @@ export const isMessage = (type: string) => {
79 79 export const isEmail = (type: string) => {
80 80 return type === MessageEnum.IS_EMAIL;
81 81 };
  82 +export const isDingtalk = (type: string) => {
  83 + return type === MessageEnum.IS_DINGTALK;
  84 +};
82 85 export const messageTypeIsTencentCloud = (type: string) => {
83 86 return type === 'TENCENT_CLOUD';
84 87 };
... ... @@ -114,7 +117,17 @@ export const formSchema: FormSchema[] = [
114 117 required: true,
115 118 component: 'ApiSelect',
116 119 componentProps: {
117   - api: findDictItemByCode,
  120 + // api: findDictItemByCode,
  121 + api: async (params: Recordable) => {
  122 + try {
  123 + const result = await findDictItemByCode(params as any);
  124 + return result.filter((item) => item.itemValue !== 'DING_TALK');
  125 + } catch (e) {
  126 + // eslint-disable-next-line no-console
  127 + console.error(e);
  128 + return [];
  129 + }
  130 + },
118 131 params: {
119 132 dictCode: 'platform_type',
120 133 },
... ... @@ -124,6 +137,31 @@ export const formSchema: FormSchema[] = [
124 137 ifShow: ({ values }) => isMessage(Reflect.get(values, 'messageType')),
125 138 },
126 139 {
  140 + field: 'platformType',
  141 + label: '平台类型',
  142 + required: true,
  143 + component: 'ApiSelect',
  144 + componentProps: {
  145 + // api: findDictItemByCode,console.log(result
  146 + api: async (params: Recordable) => {
  147 + try {
  148 + const result = await findDictItemByCode(params as any);
  149 + return result.filter((item) => item.itemValue === 'DING_TALK');
  150 + } catch (e) {
  151 + // eslint-disable-next-line no-console
  152 + console.error(e);
  153 + return [];
  154 + }
  155 + },
  156 + params: {
  157 + dictCode: 'platform_type',
  158 + },
  159 + labelField: 'itemText',
  160 + valueField: 'itemValue',
  161 + },
  162 + ifShow: ({ values }) => isDingtalk(Reflect.get(values, 'messageType')),
  163 + },
  164 + {
127 165 field: 'appId',
128 166 label: 'appId',
129 167 required: true,
... ... @@ -251,6 +289,39 @@ export const formSchema: FormSchema[] = [
251 289 },
252 290 },
253 291 {
  292 + field: 'AgentId',
  293 + label: 'AgentId',
  294 + component: 'Input',
  295 + required: true,
  296 + ifShow: ({ values }) => isDingtalk(Reflect.get(values, 'messageType')),
  297 + componentProps: {
  298 + maxLength: 36,
  299 + placeholder: '请输入AgentId',
  300 + },
  301 + },
  302 + {
  303 + field: 'ClientID',
  304 + label: 'ClientID',
  305 + component: 'Input',
  306 + required: true,
  307 + ifShow: ({ values }) => isDingtalk(Reflect.get(values, 'messageType')),
  308 + componentProps: {
  309 + maxLength: 36,
  310 + placeholder: '请输入ClientID',
  311 + },
  312 + },
  313 + {
  314 + field: 'ClientSecret',
  315 + label: 'ClientSecret',
  316 + component: 'Input',
  317 + ifShow: ({ values }) => isDingtalk(Reflect.get(values, 'messageType')),
  318 + required: true,
  319 + componentProps: {
  320 + maxLength: 36,
  321 + placeholder: '请输入ClientSecret',
  322 + },
  323 + },
  324 + {
254 325 field: 'status',
255 326 label: '状态',
256 327 component: 'RadioButtonGroup',
... ...