Browse Source

⚙️ 修改细节问题

快乐的梦鱼 1 month ago
parent
commit
5f9fa0a25b

+ 12 - 2
src/components/form/Field.vue

@@ -496,6 +496,11 @@ export interface FieldProps {
    * @default ','
    */
   tagJoinType?: string,
+  /**
+   * 是否自动更新表单值
+   * @default true
+   */
+  autoUpdateFormValue?: boolean;
 
   requireChildRef?: () => any,
 }
@@ -547,6 +552,7 @@ const props = withDefaults(defineProps<FieldProps>(), {
   autoHeight: false,
   maxLength: 100,
   modelValue: undefined,
+  autoUpdateFormValue: true,
   tags: false,
   tagJoinType: ',',
   errorIcon: () => propGetThemeVar('FieldErrorIcon', 'prompt'),
@@ -598,7 +604,10 @@ const formItemContext : FormItemContext = {
     emit('blur');
   },
   getFormModelValue: () => formContextProps?.getItemValue(formItemInternalContext),
-  onFieldChange: (newValue: unknown) => { formContextProps?.onFieldChange(formItemInternalContext, newValue); },
+  onFieldChange: (newValue: unknown) => { 
+    if (props.autoUpdateFormValue)
+      formContextProps?.onFieldChange(formItemInternalContext, newValue); 
+  },
   clearValidate: () => { formContextProps?.clearValidate(formItemInternalContext); },
   setOnClickListener(listener: (() => void)|undefined) {
     childOnClickListener.value = listener;
@@ -717,7 +726,8 @@ onMounted(() => {
 function emitChangeText(text: string) {
   emit('update:modelValue', text);
   inputValue.value = text;
-  formItemContext.onFieldChange(text);
+  if (props.autoUpdateFormValue)
+    formItemContext.onFieldChange(text);
 }
 function doFormatter(text: string) {
   switch (props.type) {

+ 2 - 0
src/components/form/Form.vue

@@ -315,6 +315,8 @@ function validate(name?: string|string[]) {
   //开始验证
   return new Promise<void>((resolve, reject) => {
     const validator = new Schema(filteredRules as Rules);
+    console.log(validator, nowValues);
+    
     validator.validate(nowValues, {}, (errors) => {
       if (errors) {
         //验证失败,把错误字段显示

+ 8 - 6
src/pages/collect/assessment/argeement-sign.vue

@@ -116,12 +116,12 @@ const formRules = computed<Rules>(() => {
   const rules: Rules = {
     partyB: [{ required: true, message: '请填写乙方(传承人)姓名' }],
     apprentice: [
-      { required: true, message: '请填写本年度带徒人数' },
-      { type: 'integer', min: 0, message: '须为不小于 0 的整数' },
+      { required: true, type: 'number', message: '请填写本年度带徒人数' },
+      { type: 'number', min: 0, max: 100, message: '须为不小于 0 的整数' },
     ],
     activity: [
-      { required: true, message: '请填写本年度宣传活动场次' },
-      { type: 'integer', min: 0, message: '须为不小于 0 的整数' },
+      { required: true, type: 'number', message: '请填写本年度宣传活动场次' },
+      { type: 'number', min: 0, max: 100, message: '须为不小于 0 的整数' },
     ],
     partyAMobile: [
       {
@@ -180,8 +180,8 @@ const formRules = computed<Rules>(() => {
     rules.partyA = [{ required: true, message: '请填写甲方单位全称' }];
   else
     rules.course = [
-      { required: true, message: '请填写本年度研修班场次' },
-      { type: 'integer', min: 0, message: '须为不小于 0 的整数' },
+      { required: true, type: 'number', message: '请填写本年度研修班场次' },
+      { type: 'number', min: 0, max: 100, message: '须为不小于 0 的整数' },
     ];
   return rules;
 });
@@ -248,6 +248,8 @@ function createAgreement() {
 }
 async function saveAgreement() {
   const detail = currentAgreement.value;
+  console.log(detail);
+  
   try {
     await formRef.value?.validate();
   } catch (error) {

+ 3 - 0
src/pages/collect/assessment/components/AgreementPrefillInline.vue

@@ -11,6 +11,7 @@
     :field-style="mergedFieldStyle"
     :input-style="mergedInputStyle"
     :input-flex="1"
+    :auto-update-form-value="false"
     @update:model-value="onUpdate"
   />
   {{ suffix }}
@@ -88,6 +89,8 @@ function onUpdate(raw: string) {
   if (props.numberMode) {
     const n = parseInt(raw.replace(/\D/g, ''), 10);
     emit('update:modelValue', Number.isFinite(n) ? n : 0);
+    console.log( Number.isFinite(n) ? n : 0);
+    
   } else {
     emit('update:modelValue', raw);
   }

+ 1 - 1
src/pages/collect/assessment/components/EvaluationFormBlock.vue

@@ -49,7 +49,7 @@
           <Text
             fontConfig="subText"
             color="text.second"
-            :text="readonly ? '佐证资料' : '佐证材料上传'"
+            :text="readonly ? '佐证资料' : '佐证材料上传,支持图片、视频、音频、文档(word、pdf、excel、ppt)等格式'"
           />
           <Text
             v-if="!currentForm.id"

+ 4 - 0
src/pages/collect/assessment/evaluation-form-review.vue

@@ -251,10 +251,14 @@ const loader = useSimpleDataLoader(async () => {
     return null;
   }
   const detail = await AssessmentContentApi.getSelfAssessmentDetail(id, uid);
+  await waitTimeOut(200);
   currentForm.value = detail;
   loadEditorContent(detail);
+  await waitTimeOut(200);
   await loadCheckItems(detail);
+  await waitTimeOut(200);
   applyPrefillFromDetail(detail);
+  await waitTimeOut(200);
   return detail;
 }, false);