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 export enum MessageEnum { 1 export enum MessageEnum {
2 IS_SMS = 'PHONE_MESSAGE', 2 IS_SMS = 'PHONE_MESSAGE',
3 IS_EMAIL = 'EMAIL_MESSAGE', 3 IS_EMAIL = 'EMAIL_MESSAGE',
  4 + IS_DINGTALK = 'DING_TALK_MESSAGE',
4 } 5 }
@@ -74,6 +74,12 @@ @@ -74,6 +74,12 @@
74 username: values.username, 74 username: values.username,
75 password: values.password, 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 Reflect.set(values, 'config', config); 84 Reflect.set(values, 'config', config);
79 let saveMessage = '添加成功'; 85 let saveMessage = '添加成功';
@@ -79,6 +79,9 @@ export const isMessage = (type: string) => { @@ -79,6 +79,9 @@ export const isMessage = (type: string) => {
79 export const isEmail = (type: string) => { 79 export const isEmail = (type: string) => {
80 return type === MessageEnum.IS_EMAIL; 80 return type === MessageEnum.IS_EMAIL;
81 }; 81 };
  82 +export const isDingtalk = (type: string) => {
  83 + return type === MessageEnum.IS_DINGTALK;
  84 +};
82 export const messageTypeIsTencentCloud = (type: string) => { 85 export const messageTypeIsTencentCloud = (type: string) => {
83 return type === 'TENCENT_CLOUD'; 86 return type === 'TENCENT_CLOUD';
84 }; 87 };
@@ -114,7 +117,17 @@ export const formSchema: FormSchema[] = [ @@ -114,7 +117,17 @@ export const formSchema: FormSchema[] = [
114 required: true, 117 required: true,
115 component: 'ApiSelect', 118 component: 'ApiSelect',
116 componentProps: { 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 params: { 131 params: {
119 dictCode: 'platform_type', 132 dictCode: 'platform_type',
120 }, 133 },
@@ -124,6 +137,31 @@ export const formSchema: FormSchema[] = [ @@ -124,6 +137,31 @@ export const formSchema: FormSchema[] = [
124 ifShow: ({ values }) => isMessage(Reflect.get(values, 'messageType')), 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 field: 'appId', 165 field: 'appId',
128 label: 'appId', 166 label: 'appId',
129 required: true, 167 required: true,
@@ -251,6 +289,39 @@ export const formSchema: FormSchema[] = [ @@ -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 field: 'status', 325 field: 'status',
255 label: '状态', 326 label: '状态',
256 component: 'RadioButtonGroup', 327 component: 'RadioButtonGroup',