From 440522ea896377c45ffd80f4b70927d27e701c64 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期一, 25 十二月 2023 17:30:30 +0800
Subject: [PATCH] 编写评估任务模块逻辑,未完成
---
src/components/form/FYForm.vue | 77 +++++++++++++++++++++++++++++++-------
1 files changed, 63 insertions(+), 14 deletions(-)
diff --git a/src/components/form/FYForm.vue b/src/components/form/FYForm.vue
index 42cf198..a305bde 100644
--- a/src/components/form/FYForm.vue
+++ b/src/components/form/FYForm.vue
@@ -3,7 +3,7 @@
:inline="false"
:model="formObj"
ref="formRef"
- :rules="rules"
+ :rules="allRules"
label-position="right"
label-width="150px"
>
@@ -26,7 +26,7 @@
* 鍙紶鍏ュ垵濮嬭〃鍗曟暟鎹甪ormInfo锛岃〃鍗曟牎楠岃鍒檙ules
* 瀹炵幇submit鍜宑ancel瑙﹀彂鍑芥暟
*/
-import { defineProps, defineEmits, reactive, ref, watch } from 'vue';
+import { defineProps, defineEmits, reactive, ref, watch, computed, defineExpose } from 'vue';
import { useFormConfirm } from '@/composables/formConfirm';
const props = defineProps({
@@ -43,7 +43,7 @@
//閲嶇疆鎸夐挳鏄惁鍙敤
useReset: Boolean,
//瑙﹀彂閲嶇疆
- reset: Boolean,
+ doClear: Boolean,
//閫氱煡缂栬緫鐘舵��
isEdit: Boolean
});
@@ -51,8 +51,46 @@
//瑙﹀彂鍑芥暟锛屾彁浜ゅ拰鍙栨秷
const emit = defineEmits(['submit', 'cancel', 'update:isEdit']);
+const baseRules = reactive({
+ _usertype: [
+ {
+ required: true,
+ message: '鐢ㄦ埛绫诲瀷涓嶈兘涓虹┖',
+ trigger: 'change'
+ }
+ ],
+ _locations: [
+ {
+ required: true,
+ message: '琛屾斂鍖哄垝涓嶈兘涓虹┖',
+ trigger: 'change',
+ // validator: (rule, value, callback) => {
+ // if (!value) {
+ // callback(new Error('Please input the age'));
+ // } else {
+ // callback()
+ // }
+ // }
+ }
+ ],
+ _scenetype: [
+ {
+ required: true,
+ message: '鍦烘櫙绫诲瀷涓嶈兘涓虹┖',
+ trigger: 'change',
+ // validator: (rule, value, callback) => {
+ // if (!value) {
+ // callback(new Error('Please input the age'));
+ // } else {
+ // callback()
+ // }
+ // }
+ }
+ ]
+});
+
//琛ㄥ崟鎿嶄綔鍑芥暟
-const { formObj, formRef, edit, onSubmit, onCancel, onReset, formProps } = useFormConfirm({
+const { formObj, formRef, edit, onSubmit, onCancel, onReset, clear } = useFormConfirm({
submit: {
do: submit
},
@@ -68,13 +106,18 @@
function submit() {
loading.value = true;
return new Promise((resolve, reject) => {
- emit('submit', formObj, () => {
- loading.value = false;
- resolve();
- },(err)=>{
- loading.value = false;
- reject(err);
- });
+ emit(
+ 'submit',
+ formObj,
+ () => {
+ loading.value = false;
+ resolve();
+ },
+ (err) => {
+ loading.value = false;
+ reject(err);
+ }
+ );
});
}
@@ -83,21 +126,25 @@
emit('cancel');
}
+const allRules = computed(() => {
+ return { ...baseRules, ...props.rules };
+});
+
//鐩戝惉琛ㄥ崟鍒濆鏁版嵁浼犲叆
watch(
() => props.formInfo,
(nValue) => {
formObj.value = nValue;
},
- { deep: false, immediate: false }
+ { deep: true, immediate: true }
);
//鐩戝惉琛ㄥ崟閲嶇疆鍔熻兘瑙﹀彂
watch(
- () => props.reset,
+ () => props.doClear,
(nValue) => {
if (nValue) {
- onReset();
+ clear();
}
}
);
@@ -106,6 +153,8 @@
watch(edit, (nValue) => {
emit('update:isEdit', nValue);
});
+
+defineExpose({ formObj, onSubmit, onCancel, onReset });
</script>
<style scoped></style>
--
Gitblit v1.9.3