fix(项目管理): 修复模板用例等级必选不可取消&自定义校验星号取消内部未填校验
This commit is contained in:
parent
b31568a240
commit
a8ad0300c9
|
@ -70,6 +70,7 @@
|
||||||
<span class="required">
|
<span class="required">
|
||||||
<a-checkbox
|
<a-checkbox
|
||||||
v-model="formItem.required"
|
v-model="formItem.required"
|
||||||
|
:disabled="formItem.internal && formItem.internalFieldKey === 'functional_priority'"
|
||||||
class="mr-1"
|
class="mr-1"
|
||||||
@change="(value) => changeState(value, formItem as DefinedFieldItem)"
|
@change="(value) => changeState(value, formItem as DefinedFieldItem)"
|
||||||
>
|
>
|
||||||
|
@ -126,6 +127,23 @@
|
||||||
}"
|
}"
|
||||||
@click="activeHandler(index)"
|
@click="activeHandler(index)"
|
||||||
>
|
>
|
||||||
|
<div class="mb-[8px] flex w-full items-center">
|
||||||
|
<a-tooltip
|
||||||
|
:content="formItem.formRules && formItem.formRules[0] ? formItem?.formRules[0]?.title : ''"
|
||||||
|
position="left"
|
||||||
|
>
|
||||||
|
<div class="one-line-text max-w-[calc(100%-200px)]">{{
|
||||||
|
formItem.formRules && formItem.formRules[0] ? formItem?.formRules[0]?.title : ''
|
||||||
|
}}</div>
|
||||||
|
</a-tooltip>
|
||||||
|
<div v-if="formItem.required" class="ml-[2px] flex items-center">
|
||||||
|
<svg-icon
|
||||||
|
width="6px"
|
||||||
|
height="18px"
|
||||||
|
name="form-star"
|
||||||
|
class="-mt-[2px] text-[12px] font-medium text-[rgb(var(--danger-6))]"
|
||||||
|
/></div>
|
||||||
|
</div>
|
||||||
<!-- 表单 -->
|
<!-- 表单 -->
|
||||||
<MsFormCreate
|
<MsFormCreate
|
||||||
v-model:api="formItem.fApi"
|
v-model:api="formItem.fApi"
|
||||||
|
@ -419,27 +437,12 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// 校验全部必选
|
|
||||||
function validateAll() {
|
|
||||||
const validationPromises = selectData.value.map((item) => {
|
|
||||||
if (item.fApi && typeof item.fApi.validate === 'function') {
|
|
||||||
return item.fApi.validate();
|
|
||||||
}
|
|
||||||
return Promise.resolve(false);
|
|
||||||
});
|
|
||||||
return validationPromises;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 保存
|
// 保存
|
||||||
function saveHandler(isContinue = false) {
|
function saveHandler(isContinue = false) {
|
||||||
isContinueFlag.value = isContinue;
|
isContinueFlag.value = isContinue;
|
||||||
formRef.value?.validate().then(async (res) => {
|
formRef.value?.validate().then(async (res) => {
|
||||||
if (!res) {
|
if (!res) {
|
||||||
const results = await Promise.all(validateAll());
|
return save();
|
||||||
const allValid = results.every((result) => result === true);
|
|
||||||
if (allValid) {
|
|
||||||
return save();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return scrollIntoView(document.querySelector('.arco-form-item-message'), { block: 'center' });
|
return scrollIntoView(document.querySelector('.arco-form-item-message'), { block: 'center' });
|
||||||
});
|
});
|
||||||
|
@ -544,9 +547,6 @@
|
||||||
|
|
||||||
function changeState(value: boolean | (string | number | boolean)[], formItem: DefinedFieldItem) {
|
function changeState(value: boolean | (string | number | boolean)[], formItem: DefinedFieldItem) {
|
||||||
formItem.required = !!value;
|
formItem.required = !!value;
|
||||||
if (formItem.formRules) {
|
|
||||||
formItem.formRules[0].effect.required = value;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const systemFieldData = ref<CustomField[]>([]);
|
const systemFieldData = ref<CustomField[]>([]);
|
||||||
|
@ -592,7 +592,7 @@
|
||||||
title: item.fieldName,
|
title: item.fieldName,
|
||||||
field: item.fieldId,
|
field: item.fieldId,
|
||||||
effect: {
|
effect: {
|
||||||
required: item.required,
|
required: false,
|
||||||
},
|
},
|
||||||
value: initValue,
|
value: initValue,
|
||||||
props: {
|
props: {
|
||||||
|
@ -707,6 +707,8 @@
|
||||||
'asterisk-position': 'end',
|
'asterisk-position': 'end',
|
||||||
'validate-trigger': ['change'],
|
'validate-trigger': ['change'],
|
||||||
'row-class': 'selfClass',
|
'row-class': 'selfClass',
|
||||||
|
'hide-asterisk': true,
|
||||||
|
'hide-label': true,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -284,7 +284,7 @@ export const getTotalFieldOptionList = (totalData: DefinedFieldItem[]) => {
|
||||||
title: item.name,
|
title: item.name,
|
||||||
field: item.id,
|
field: item.id,
|
||||||
effect: {
|
effect: {
|
||||||
required: item.internal,
|
required: false,
|
||||||
},
|
},
|
||||||
props: {
|
props: {
|
||||||
...currentFormRules.props,
|
...currentFormRules.props,
|
||||||
|
@ -294,7 +294,7 @@ export const getTotalFieldOptionList = (totalData: DefinedFieldItem[]) => {
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
fApi: null,
|
fApi: null,
|
||||||
required: item.internal,
|
required: item.internal && item.internalFieldKey === 'functional_priority',
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue