Kaynağa Gözat

feat(表单): 添加表单提交错误处理逻辑

yz 1 hafta önce
ebeveyn
işleme
553513aa7c

+ 8 - 2
src/components/forecast-form/forecast-form-mixin.js

@@ -98,6 +98,8 @@ export const FORECAST_FORM_EVENTS = {
   RESET: 'reset',
   /** 表单提交事件 */
   SUBMIT: 'submit',
+  /** 表单提交失败事件 */
+  SUBMIT_ERROR: 'submit-error',
   /** 更新可见性事件 */
   UPDATE_VISIBLE: 'update:visible'
 }
@@ -965,11 +967,15 @@ export default {
           this.$emit && this.$emit(FORECAST_FORM_EVENTS.SUBMIT_SUCCESS, res.data)
         } else {
           const msg = (res && res.data && (res.data.msg || res.data.message)) || '提交失败'
-          this.$message && this.$message.error(msg)
+        //   this.$message && this.$message.error(msg)
+          // 通知父组件:提交失败(业务失败)
+          this.$emit && this.$emit(FORECAST_FORM_EVENTS.SUBMIT_ERROR, { message: msg, response: res })
         }
       } catch (error) {
         console.error('提交表单失败:', error)
-        this.$message && this.$message.error(error && error.message ? error.message : '操作失败,请重试')
+        // this.$message && this.$message.error(error && error.message ? error.message : '操作失败,请重试')
+        // 通知父组件:提交失败(异常)
+        this.$emit && this.$emit(FORECAST_FORM_EVENTS.SUBMIT_ERROR, error)
       }
     },
 

+ 1 - 1
src/views/forecast-audit/auditIndex.js

@@ -82,7 +82,7 @@ export default {
         expandRowKeys: [],
         defaultExpandAll: false,
         column: [
-          { label: 'ID', prop: 'id', width: 140, overHidden: false },
+          { label: 'ID', prop: 'id', width: 200, overHidden: false },
           { label: '序号', prop: 'seq', width: 70, align: 'center', slot: true },
           {
             label: '年份',

+ 1 - 1
src/views/forecast-summary/summaryIndex.js

@@ -102,7 +102,7 @@ import { mapGetters } from 'vuex'
            {
              label: 'ID',
              prop: 'id',
-             width: 140,
+             width: 200,
              overHidden: false,
              sortable: true,
              // 兼容 idBigint/id 的展示

+ 13 - 1
src/views/forecast/forecastIndex.js

@@ -109,7 +109,7 @@ export default {
         expandRowKeys: [],
         defaultExpandAll: false,
         column: [
-          { label: 'ID', prop: 'id', width: 160, overHidden: false },
+          { label: 'ID', prop: 'id', width: 200, overHidden: false },
           {
             label: '年份',
             prop: 'year',
@@ -761,6 +761,18 @@ export default {
     },
 
     /**
+     *
+     * @param {*} error
+     * @this {ForecastComponent & Vue}
+     */
+    handleFormError(error) {
+      console.error('表单提交失败', error)
+      this.saveLoading = false
+      const msg = (error && (error.message || error.msg)) || '提交失败,请稍后重试'
+      this.$message && this.$message.error(msg)
+    },
+
+    /**
      * 处理表单关闭
      * @this {Vue & {saveLoading: boolean, handleBackToList: () => void}}
      * @returns {void}

+ 1 - 0
src/views/forecast/index.vue

@@ -158,6 +158,7 @@
         :edit-data="form"
         @close="handleFormClose"
         @submit="handleFormSubmit"
+        @submit-error="handleFormError"
       />
     </div>
   </basic-container>