From 9eacf20189b5ced478a8f5f9d2685243cbe5d58a Mon Sep 17 00:00:00 2001
From: liujunjian <liujunjian@seaskysh.com>
Date: Thu, 8 Jul 2021 14:27:06 +0800
Subject: [PATCH] =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=94=B3=E6=8A=A5=E4=B9=A6?=
 =?UTF-8?q?=E5=86=85=E5=AE=B9=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../yo-common/ProjectFundApply/index.vue      | 121 +++++++++++-------
 1 file changed, 74 insertions(+), 47 deletions(-)

diff --git a/WebSite/src/views/yo-common/ProjectFundApply/index.vue b/WebSite/src/views/yo-common/ProjectFundApply/index.vue
index 373a0c3ec..3ac6f9953 100644
--- a/WebSite/src/views/yo-common/ProjectFundApply/index.vue
+++ b/WebSite/src/views/yo-common/ProjectFundApply/index.vue
@@ -49,7 +49,12 @@
     <div class="apply-table-wrap">
       <h2>{{ applyInfo.year }}骞撮」鐩敵鎶ヨ〃</h2>
 
-      <el-form :disabled="!canEdit">
+      <el-form
+        :disabled="!canEdit"
+        :model="applyInfo"
+        :rules="rules"
+        ref="formRef"
+      >
         <el-card id="baseInfo" class="mt-20">
           <template #header>
             鍩烘湰淇℃伅
@@ -127,54 +132,55 @@
             椤圭洰姒傝堪
           </template>
           <el-form-item
-            label="1銆侀」鐩緷鎹�(瑕佸啓鏄庨」鐩簬闇€瑕佹墽琛岀殑鏀跨瓥鎴栨枃浠跺強棰勭畻缂栧埗渚濇嵁):"
+            label="1銆侀」鐩珛椤逛緷鎹強鍐呭锛堣缁撳悎瀛︽牎鈥滃崄鍥涗簲鈥濊鍒掞紝鍐欐槑椤圭洰渚濇嵁鏀跨瓥鏂囦欢绛夛級:"
+            prop="basis"
           >
             <el-input
               v-model="applyInfo.summaryJson.basis"
               type="textarea"
             ></el-input>
           </el-form-item>
-          <el-form-item
+          <!-- <el-form-item
             label="2銆侀」鐩熀鏈儏鍐�(瑕佸啓鏄庡叿浣撳疄鏂界殑宸ヤ綔鍐呭锛屽苟涓庡叾棰勭畻鐩稿搴�):"
           >
             <el-input
               v-model="applyInfo.summaryJson.baseinfo"
               type="textarea"
             ></el-input>
-          </el-form-item>
-          <el-form-item label="3銆侀」鐩熀纭€鏉′欢鍙婂墠鏈熷伐浣�:">
+          </el-form-item> -->
+          <el-form-item label="2銆侀」鐩熀纭€鏉′欢鍙婂墠鏈熷伐浣�:">
             <el-input
               v-model="applyInfo.summaryJson.terminfo"
               type="textarea"
             ></el-input>
           </el-form-item>
-          <el-form-item label="4銆侀」鐩墽琛岃鍒�(鍚伐浣滆繘搴︺€佽祫閲戞墽琛岃繘搴�):">
+          <el-form-item label="3銆侀」鐩墽琛岃鍒�(鍚伐浣滆繘搴﹀強璧勯噾鎵ц杩涘害):">
             <el-input
               v-model="applyInfo.summaryJson.plan"
               type="textarea"
             ></el-input>
           </el-form-item>
-          <el-form-item label="5銆侀」鐩繚闅滄帾鏂�:">
+          <!-- <el-form-item label="5銆侀」鐩繚闅滄帾鏂�:">
             <el-input
               v-model="applyInfo.summaryJson.ensure"
               type="textarea"
             ></el-input>
-          </el-form-item>
-          <el-form-item label="6銆佹姇鍏ユ儏鍐�:">
+          </el-form-item> -->
+          <!-- <el-form-item label="6銆佹姇鍏ユ儏鍐�:">
             <el-input
               v-model="applyInfo.summaryJson.inport"
               type="textarea"
             ></el-input>
-          </el-form-item>
-          <el-form-item
+          </el-form-item> -->
+          <!-- <el-form-item
             label="7銆侀」鐩敵璇风悊鐢�(缁撳悎瀛︽牎鈥滃崄涓変簲鈥濊鍒掋€佲€滃崄涓変簲鈥濊鍔ㄨ鍒掋€侀儴闂ㄥ伐浣滆鍒掔瓑闃愯堪):"
           >
             <el-input
               v-model="applyInfo.summaryJson.applyReason"
               type="textarea"
             ></el-input>
-          </el-form-item>
-          <el-form-item label="8銆侀」鐩疄鏂藉唴瀹瑰強棰勭畻:">
+          </el-form-item> -->
+          <el-form-item label="4銆侀」鐩叿浣撳疄鏂藉唴瀹瑰強棰勭畻:" prop="budget">
             <el-input
               v-model="applyInfo.summaryJson.budget"
               type="textarea"
@@ -192,12 +198,12 @@
             <el-radio-group
               v-model="applyInfo.projectTargetCmd.summaryJson.projectType"
             >
-              <el-radio :label="1">涓撻」璧勯噾</el-radio>
+              <!-- <el-radio :label="1">涓撻」璧勯噾</el-radio> -->
               <el-radio :label="2">缁忓父鎬ч」鐩�</el-radio>
               <el-radio :label="3">涓€娆℃€ч」鐩�</el-radio>
             </el-radio-group>
           </el-form-item>
-          <el-form-item label="璁″垝寮€濮嬫棩鏈燂細">
+          <!-- <el-form-item label="璁″垝寮€濮嬫棩鏈燂細">
             <el-date-picker
               v-model="applyInfo.projectTargetCmd.summaryJson.startDate"
               type="date"
@@ -218,8 +224,8 @@
               v-model="applyInfo.projectTargetCmd.summaryJson.projectGoal"
               type="textarea"
             ></el-input>
-          </el-form-item>
-          <el-form-item label="骞村害鎬讳綋鐩爣锛�">
+          </el-form-item> -->
+          <el-form-item label="骞村害鐩爣锛�">
             <el-input
               v-model="applyInfo.projectTargetCmd.summaryJson.yearGoal"
               type="textarea"
@@ -332,6 +338,7 @@
               <template #default="scope">
                 <el-select
                   @change="value => fundSubjectChhange(value, scope.row)"
+                  filterable
                   v-model="scope.row.subjectName"
                   placeholder="璇疯緭鍏�..."
                 >
@@ -533,7 +540,24 @@ export default {
     const store = useStore();
     const data = reactive({
       applyInfo: JSON.parse(JSON.stringify(props.row)),
-      activeStep: 1
+      activeStep: 1,
+      formRef: null,
+      rules: {
+        basis: [
+          {
+            required: true,
+            message: '璇疯緭鍏ラ」鐩珛椤逛緷鎹強鍐呭',
+            trigger: 'blur'
+          }
+        ],
+        budget: [
+          {
+            required: true,
+            message: '璇疯緭鍏ラ」鐩叿浣撳疄鏂藉唴瀹瑰強棰勭畻',
+            trigger: 'blur'
+          }
+        ]
+      }
     });
 
     //娴佺▼閫昏緫浠g爜
@@ -541,39 +565,42 @@ export default {
       context.emit('handleBack');
     };
     const handleSave = () => {
-      if (!data.applyInfo.departmentName) {
-        const dept = baseinfoData.applyDept.find(
-          item => item.code == data.applyInfo.departmentCode
+      data.formRef.validate(valid => {
+        if (!valid) return ElMessage.warning('璇峰皢淇℃伅琛ュ厖瀹屾暣');
+        if (!data.applyInfo.departmentName) {
+          const dept = baseinfoData.applyDept.find(
+            item => item.code == data.applyInfo.departmentCode
+          );
+          data.applyInfo.departmentName = dept.name;
+        }
+        const applyInfo = JSON.parse(JSON.stringify(data.applyInfo));
+        applyInfo.summaryJson = JSON.stringify(applyInfo.summaryJson);
+        applyInfo.projectTargetCmd.subOtherArrayJson = JSON.stringify(
+          applyInfo.projectTargetCmd.subOtherArrayJson
         );
-        data.applyInfo.departmentName = dept.name;
-      }
-      const applyInfo = JSON.parse(JSON.stringify(data.applyInfo));
-      applyInfo.summaryJson = JSON.stringify(applyInfo.summaryJson);
-      applyInfo.projectTargetCmd.subOtherArrayJson = JSON.stringify(
-        applyInfo.projectTargetCmd.subOtherArrayJson
-      );
-      applyInfo.projectTargetCmd.summaryJson = JSON.stringify(
-        applyInfo.projectTargetCmd.summaryJson
-      );
-      if (
-        applyInfo.attachmentInfoOutList &&
-        applyInfo.attachmentInfoOutList.length > 0
-      ) {
-        applyInfo.attachmentInfoOutList = applyInfo.attachmentInfoOutList.map(
-          v => v.id
+        applyInfo.projectTargetCmd.summaryJson = JSON.stringify(
+          applyInfo.projectTargetCmd.summaryJson
         );
-      }
-      applyInfo.planSubjectList.forEach(item => {
-        item.otherJson = JSON.stringify(item.otherJson);
-        if (item.subjectDetailList.length <= 0) {
-          item.subjectDetailList = null;
-        } else {
-          item.subjectDetailList.forEach(jtem => {
-            jtem.otherJson = JSON.stringify(jtem.otherJson);
-          });
+        if (
+          applyInfo.attachmentInfoOutList &&
+          applyInfo.attachmentInfoOutList.length > 0
+        ) {
+          applyInfo.attachmentInfoOutList = applyInfo.attachmentInfoOutList.map(
+            v => v.id
+          );
         }
+        applyInfo.planSubjectList.forEach(item => {
+          item.otherJson = JSON.stringify(item.otherJson);
+          if (item.subjectDetailList.length <= 0) {
+            item.subjectDetailList = null;
+          } else {
+            item.subjectDetailList.forEach(jtem => {
+              jtem.otherJson = JSON.stringify(jtem.otherJson);
+            });
+          }
+        });
+        context.emit('handleSave', applyInfo);
       });
-      context.emit('handleSave', applyInfo);
     };
     const handleSubmit = flowOutput => {
       context.emit('handleSubmit', flowOutput, data.applyInfo);
-- 
GitLab