fix: bug#10618、10608

This commit is contained in:
JiangQiming 2023-03-21 14:11:52 +08:00
parent 5abfe399e2
commit 7c42ebc587
3 changed files with 69 additions and 30 deletions

View File

@ -52,34 +52,50 @@
<template v-else>
<j-form-item
:name="['templateDetailTable', index, 'value']"
:rules="{
required: record.required,
message: '该字段为必填字段',
}"
:rules="[
{
required: record.required,
message: '该字段为必填字段',
},
...record.otherRules,
]"
>
<ToUser
v-if="record.type === 'user'"
v-model:toUser="record.value"
:type="data.type"
:config-id="data.id"
/>
<ToOrg
v-else-if="record.type === 'org'"
:type="data.type"
:config-id="data.id"
v-model:toParty="record.value"
/>
<ToTag
v-else-if="record.type === 'tag'"
:type="data.type"
:config-id="data.id"
v-model:toTag="record.value"
/>
<ValueItem
v-else
v-model:modelValue="record.value"
:itemType="record.type"
/>
<template
v-if="
data.type === 'dingTalk' ||
data.type === 'weixin'
"
>
<ToUser
v-if="record.type === 'user'"
v-model:toUser="record.value"
:type="data.type"
:config-id="data.id"
/>
<ToOrg
v-else-if="record.type === 'org'"
:type="data.type"
:config-id="data.id"
v-model:toParty="record.value"
/>
<ToTag
v-else-if="record.type === 'tag'"
:type="data.type"
:config-id="data.id"
v-model:toTag="record.value"
/>
<ValueItem
v-else
v-model:modelValue="record.value"
:itemType="record.type"
/>
</template>
<template v-else>
<ValueItem
v-model:modelValue="record.value"
:itemType="record.type"
/>
</template>
</j-form-item>
</template>
</template>
@ -101,6 +117,8 @@ import { message } from 'jetlinks-ui-components';
import ToUser from '@/views/notice/Template/Detail/components/ToUser.vue';
import ToOrg from '@/views/notice/Template/Detail/components/ToOrg.vue';
import ToTag from '@/views/notice/Template/Detail/components/ToTag.vue';
import type { Rule } from 'ant-design-vue/es/form';
import { phoneRegEx } from '@/utils/validate';
type Emits = {
(e: 'update:visible', data: boolean): void;
@ -134,7 +152,7 @@ const getTemplateList = async () => {
const { result } = await ConfigApi.getTemplate(params, props.data.id);
templateList.value = result;
formData.value.templateId = result[0]?.id as string;
getTemplateDetail()
getTemplateDetail();
};
watch(
@ -155,7 +173,27 @@ const getTemplateDetail = async () => {
(m: any) => ({
...m,
type: m.expands ? m.expands.businessType : m.type,
value: undefined,
value: undefined,
//
otherRules:
m.id === 'calledNumber' || m.id === 'phoneNumber'
? [
{
max: 64,
message: '最多可输入64个字符',
trigger: 'change',
},
{
trigger: 'change',
validator(_rule: Rule, value: string) {
if (!value) return Promise.resolve();
if (!phoneRegEx(value))
return Promise.reject('请输入有效号码');
return Promise.resolve();
},
},
]
: [],
}),
);
};

View File

@ -209,6 +209,7 @@ watch(
const onTreeSelect = (keys: any) => {
deptId.value = keys[0];
pageSize.value = 5;
current.value = 1;
};
//

View File

@ -194,7 +194,7 @@ const getTemplateDetail = async () => {
},
},
]
: '',
: [],
}),
);
};