From 6cc12ae00d6b562be8d272602c7820e2d1579666 Mon Sep 17 00:00:00 2001
From: lshwy817 <lshwy817@163.com>
Date: Mon, 28 Nov 2022 13:05:16 +0800
Subject: [PATCH 1/7] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 WebSite/src/api/first.js                      |   2 +-
 WebSite/src/api/projectLibrary.js             |   2 +-
 .../yo-common/ProjectFundApply/index.vue      | 112 +++++++++++++-----
 .../SecondPeopleFundApply/components/List.vue |   2 +-
 4 files changed, 87 insertions(+), 31 deletions(-)

diff --git a/WebSite/src/api/first.js b/WebSite/src/api/first.js
index 54571f95..f63856e4 100644
--- a/WebSite/src/api/first.js
+++ b/WebSite/src/api/first.js
@@ -116,7 +116,7 @@ export default {
   },
   //鎾ゅ洖椤圭洰鐢虫姤涔�
   cancel(data) {
-    return request.post('/projectPlan/reCallProjectPlan', data);
+    return request.post('/projectPlan/reCallProjectPlan?id=' + data);
   },
 
   submitIncome(data) {
diff --git a/WebSite/src/api/projectLibrary.js b/WebSite/src/api/projectLibrary.js
index cd2279f6..fc1a26a1 100644
--- a/WebSite/src/api/projectLibrary.js
+++ b/WebSite/src/api/projectLibrary.js
@@ -317,7 +317,7 @@ class ProjectLibrary extends Base {
     return request.post('/projectLibrary/enterPublicProjectPlan', data);
   }
   static enterPersonProjectPlan(data) {
-    return request.post('/projectLibrary/enterPersonProjectPlan', data);
+    return request.post('/projectLibrary/enterPersonProjectPlan?year=' + data, );
   }
   // 鑾峰彇瀛愮骇鑿滃崟
   static listChildrenMenu(id) {
diff --git a/WebSite/src/views/yo-common/ProjectFundApply/index.vue b/WebSite/src/views/yo-common/ProjectFundApply/index.vue
index d6d44f7b..01011ae3 100644
--- a/WebSite/src/views/yo-common/ProjectFundApply/index.vue
+++ b/WebSite/src/views/yo-common/ProjectFundApply/index.vue
@@ -938,8 +938,21 @@
                 <el-form-item
                   prop="projectTargetCmd.subOtherArrayJson.three"
                   class="newForms"
-                  ><el-input v-model="scope.row.three"></el-input
-                ></el-form-item>
+                >
+                  <!-- <el-input v-model="scope.row.three"></el-input> -->
+                  <el-select
+                    v-model="scope.row.three"
+                    @change="threeChange(scope.row)"
+                    :disabled="!scope.row.three"
+                  >
+                    <el-option
+                      v-for="(item, index) in scope.row.threeList"
+                      :key="index"
+                      :label="item.targetName"
+                      :value="item.targetName"
+                    />
+                  </el-select>
+                </el-form-item>
               </template>
             </el-table-column>
             <el-table-column label="瀹炴柦鍛ㄦ湡鎸囨爣鍊�">
@@ -1019,6 +1032,7 @@
         </el-card>
         <el-card class="mt-20" :id="'opinion' + uid">
           <template #header> 瀹℃牳鎰忚</template>
+          <!-- {{ applyInfo.flowCanShowOut }} -->
           <!-- <el-form> -->
           <el-form-item
             label="缁╂晥瀹℃牳鎰忚"
@@ -1057,8 +1071,12 @@
           <el-form-item
             label="鍒嗙鏍¢瀵煎鏍告剰瑙�"
             prop=""
-            v-if="route == '/i/project-library/declaretwo'"
-            label-width="200px"
+            v-if="
+              route == '/i/project-library/declaretwo' ||
+                route == '/i/approval/project/SchoolLeaderApproval' ||
+                route == '/i/project-library/department' ||
+                route == '/i/project-library/inSchool'
+            "
           >
             <el-input
               v-model="applyInfo.summary.leaderOpinion"
@@ -1075,8 +1093,12 @@
           <el-form-item
             label="鍙戝睍瑙勫垝澶勫鏍告剰瑙�"
             prop=""
-            v-if="route == '/i/project-library/declaretwo'"
-            label-width="200px"
+            v-if="
+              route == '/i/project-library/declaretwo' ||
+                route == '/i/approval/project/RegulatoryApproval' ||
+                route == '/i/project-library/department' ||
+                route == '/i/project-library/inSchool'
+            "
           >
             <el-input
               v-model="applyInfo.summary.devPlanOpinion"
@@ -1093,8 +1115,14 @@
           <el-form-item
             label="璐㈠姟澶勫鏍告剰瑙�"
             prop=""
-            v-if="route == '/i/project-library/declaretwo'"
-            label-width="200px"
+            v-if="
+              route == '/i/project-library/declaretwo' ||
+                route == '/i/project-library/department' ||
+                route == '/i/project-library/inSchool' ||
+                route == '/i/approval/project/FinanceApproval' ||
+                route == '/i/approval/public/FinanceApproval' ||
+                route == '/i/approval/people/FinanceApproval'
+            "
           >
             <el-input
               v-model="applyInfo.summary.financialOpinion"
@@ -2105,11 +2133,25 @@ export default {
       // });
     };
     const onClickNode = (scope, node) => {
-      // scope.row.one = data.parent;
-      // scope.row.oneValue = data.parent;
-      // scope.row.twoValue = node.value;
-      scope.row.one = node.label;
+      console.log('11fds', scope, node);
+      scope.row.one = node.text;
       scope.row.two = node.label;
+      if (node.level == 4) {
+        scope.row.threeList = node.parent.children;
+        scope.row.threeList = node.parent.children.map(item => {
+          return {
+            targetName: item.value
+          };
+        });
+        scope.row.three = node.label;
+        scope.row.two = node.data.parentName;
+      } else {
+        // scope.row.threeList = [];
+        scope.row.three = '';
+      }
+    };
+    const threeChange = row => {
+      row.one = row.three;
     };
     const getMeritsTree = async id => {
       const res = await Api.queryProjectTargetTree({
@@ -2118,22 +2160,36 @@ export default {
       });
       meritsData.meritsTree = res.data;
       if (!data.applyInfo.id) {
-        setList(meritsData.meritsTree);
+        let sum = 0;
+        setList(meritsData.meritsTree, sum);
       }
     };
-    const setList = array => {
-      array.forEach(v => {
-        if (v.children) {
-          setList(v.children);
-        } else {
-          data.applyInfo.projectTargetCmd.subOtherArrayJson.push({
-            one: v.targetName,
-            two: v.targetName,
-            three: '',
-            yearTarget: ''
-          });
-        }
-      });
+    const setList = (array, sum) => {
+      if (sum <= 2) {
+        sum++;
+        array.forEach(v => {
+          if (v.children) {
+            setList(v.children, sum);
+          }
+          if (v.children && sum == 3) {
+            data.applyInfo.projectTargetCmd.subOtherArrayJson.push({
+              one: v.children[0].targetName,
+              two: v.targetName,
+              three: v.children[0].targetName,
+              threeList: v.children,
+              yearTarget: ''
+            });
+          } else if (!v.children && sum == 3) {
+            data.applyInfo.projectTargetCmd.subOtherArrayJson.push({
+              one: v.targetName,
+              two: v.targetName,
+              three: '',
+              threeList: [],
+              yearTarget: ''
+            });
+          }
+        });
+      }
     };
     //椤圭洰棰勭畻閫昏緫浠g爜
     const budgetData = reactive({
@@ -2566,7 +2622,6 @@ export default {
               name: applyInfo.departmentName
             });
           }
-
           data.applyInfo = applyInfo;
         } else {
           data.applyInfo = {
@@ -2838,7 +2893,8 @@ export default {
       seeView,
       handleCloses,
       onNewClear,
-      navToPrint
+      navToPrint,
+      threeChange
     };
   }
 };
diff --git a/WebSite/src/views/yo-dept-bz/second/SecondPeopleFundApply/components/List.vue b/WebSite/src/views/yo-dept-bz/second/SecondPeopleFundApply/components/List.vue
index e9ee72f7..08c31032 100644
--- a/WebSite/src/views/yo-dept-bz/second/SecondPeopleFundApply/components/List.vue
+++ b/WebSite/src/views/yo-dept-bz/second/SecondPeopleFundApply/components/List.vue
@@ -94,7 +94,7 @@ export default {
       primaryKey: 'id'
     });
        const connet = () => {
-      ProjectLibrary.enterPersonProjectPlan({}).then(res => {
+      ProjectLibrary.enterPersonProjectPlan(window.sessionStorage.getItem('year')).then(res => {
         console.log(res);
          getPersonList();
       });
-- 
GitLab


From 3d4ae4ad02859f6dd8fa80ec10708afa4e1f1a3b Mon Sep 17 00:00:00 2001
From: lshwy817 <lshwy817@163.com>
Date: Mon, 28 Nov 2022 16:36:28 +0800
Subject: [PATCH 2/7] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 WebSite/src/api/projectLibrary.js             |  19 ++++
 WebSite/src/assets/liucheng1.png              | Bin 0 -> 30416 bytes
 WebSite/src/components/Flow/index.vue         |  13 ++-
 WebSite/src/router/modules/base.js            |   5 ++
 .../views/main/basicSetting/match/index.vue   |  84 ++++++++++++++++++
 5 files changed, 119 insertions(+), 2 deletions(-)
 create mode 100644 WebSite/src/assets/liucheng1.png
 create mode 100644 WebSite/src/views/main/basicSetting/match/index.vue

diff --git a/WebSite/src/api/projectLibrary.js b/WebSite/src/api/projectLibrary.js
index fc1a26a1..892d22e9 100644
--- a/WebSite/src/api/projectLibrary.js
+++ b/WebSite/src/api/projectLibrary.js
@@ -1041,5 +1041,24 @@ class ProjectLibrary extends Base {
   static enterPiFuAllProjectPlan(data) {
     return request.post( `/projectLibrary/enterPiFuAllProjectPlan`, data)
   }
+  /**
+   * -----------------棰勬嫧鍖归厤----------------
+   */
+  // 鑾峰彇鎸囨爣妯℃澘鍒楄〃
+  static listBusinessTemplate(data) {
+    return request.post(`/fundTemplateLimit/listBusinessTemplate`, data);
+  }
+  // 鏍规嵁褰撳墠骞翠唤鏌ヨ缁忔祹绉戠洰淇℃伅
+  static queryFundByYear(data) {
+    return request.post(`/fundTemplateLimit/queryFundByYear`, data);
+  }
+  // 閫氳繃妯℃澘缂栧彿鏌ラ搴︿俊鎭�
+  static queryLimitByTemplateCode(data) {
+    return request.post(`/fundTemplateLimit/queryLimitByTemplateCode`, data);
+  }
+  // 淇濆瓨缁忔祹绉戠洰妯℃澘淇℃伅
+  static saveFundTemplate(data) {
+    return request.post(`/fundTemplateLimit/saveFundTemplate`, data);
+  }
 }
 export default ProjectLibrary;
diff --git a/WebSite/src/assets/liucheng1.png b/WebSite/src/assets/liucheng1.png
new file mode 100644
index 0000000000000000000000000000000000000000..3f63e7d79bb0d656fdbbb897f0aa86257425f835
GIT binary patch
literal 30416
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
aE(>tcnTkh_dn+REJ#$j)#0Qm2e*X`<vplr`

literal 0
HcmV?d00001

diff --git a/WebSite/src/components/Flow/index.vue b/WebSite/src/components/Flow/index.vue
index 7eb8e705..15c0599c 100644
--- a/WebSite/src/components/Flow/index.vue
+++ b/WebSite/src/components/Flow/index.vue
@@ -58,6 +58,12 @@
         >鍘嗗彶</el-button
       >
     </div>
+    <el-dialog v-model="dialogVisible" width="70%">
+      <img
+        src="@/assets/liucheng1.png"
+        style="width: 90%"
+      />
+    </el-dialog>
     <Submit
       v-if="dialogSubmit.visible"
       v-model:visible="dialogSubmit.visible"
@@ -114,7 +120,8 @@ export default {
       },
       dialogHistory: {
         visible: false
-      }
+      },
+      dialogVisible: false
     });
     const handleBack = () => {
       cxt.emit('handleBack');
@@ -137,7 +144,9 @@ export default {
     const handleCancel = () => {
       cxt.emit('handleCancel');
     };
-    const handleChart = () => {};
+    const handleChart = () => {
+      state.dialogVisible = true;
+    };
     const handleOpenHistoryDialog = () => {
       console.log('鐐瑰嚮浜�');
       state.dialogHistory.visible = true;
diff --git a/WebSite/src/router/modules/base.js b/WebSite/src/router/modules/base.js
index 34d2d04c..6174f935 100644
--- a/WebSite/src/router/modules/base.js
+++ b/WebSite/src/router/modules/base.js
@@ -38,6 +38,11 @@ const routes = [
     path: 'basicSetting/personnelExpenses',
     component: () => import('@/views/main/basicSetting/personnelExpenses'),
     name: 'PersonnelExpenses'
+  },
+  {
+    path: 'basicSetting/match',
+    component: () => import('@/views/main/basicSetting/match'),
+    name: 'Match'
   }
 ];
 
diff --git a/WebSite/src/views/main/basicSetting/match/index.vue b/WebSite/src/views/main/basicSetting/match/index.vue
new file mode 100644
index 00000000..a022437d
--- /dev/null
+++ b/WebSite/src/views/main/basicSetting/match/index.vue
@@ -0,0 +1,84 @@
+<template>
+    <div>
+      <el-card class="mtop20">
+        <el-table
+          stripe
+          :data="tableData"
+          style="width: 100%"
+          ref="multipleTable"
+          class="mtop20"
+          fit
+        >
+          <el-table-column label="妯℃澘缂栧彿" prop="templateCode" />
+          <el-table-column label="妯℃澘鍚嶇О" prop="templateName" />
+          <el-table-column label="鐘舵€�" prop="state" />
+          <el-table-column label="鎿嶄綔">
+            <template #default="scope">
+                <el-button type="text" @click="onEdit(scope.row)">
+                缂栬緫
+                </el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+        <Pagination
+          v-show="total > 0"
+          :total="total"
+          v-model:page="checkInfo.pageIndex"
+          v-model:limit="checkInfo.pageSize"
+          @pagination="queryList"
+        />
+      </el-card>
+    </div>
+  </template>
+  
+  <script>
+  import { reactive, toRefs, onMounted } from 'vue';
+  import ProjectLibrary from '@/api/projectLibrary';
+  export default {
+    setup() {
+      onMounted(() => {
+        queryList();
+        queryDeptPage();
+      });
+      const state = reactive({
+        deptList: [],
+        checkInfo: {
+          pageIndex: 1,
+          pageSize: 10
+        },
+        total: 0,
+        tableData: [],
+        bumenList: [],
+        changelist: []
+      });
+      const queryList = () => {
+        ProjectLibrary.listBusinessTemplate().then(res => {
+          state.tableData = res.data;
+          state.total = res.total;
+        });
+      };
+      const queryDeptPage = () => {
+        // ProjectLibrary.queryDeptPage({
+        //   pageIndex: 1,
+        //   pageSize: 999
+        // }).then((res) => {
+        //   state.bumenList = res.data;
+        //   queryList()
+        // })
+      }
+      const onEdit = (row) => {
+        console.log('orw', row);
+      }
+     
+      return {
+        ...toRefs(state),
+        queryList,
+        queryDeptPage,
+        onEdit
+      };
+    }
+  };
+  </script>
+  
+  <style></style>
+  
\ No newline at end of file
-- 
GitLab


From d8ac619c423ff403d67032ddfa129e5486a47104 Mon Sep 17 00:00:00 2001
From: lshwy817 <lshwy817@163.com>
Date: Tue, 29 Nov 2022 13:49:12 +0800
Subject: [PATCH 3/7] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../views/main/basicSetting/match/index.vue   | 207 +++++++++++-------
 .../yo-common/ProjectFundApply/index.vue      |   2 +-
 2 files changed, 127 insertions(+), 82 deletions(-)

diff --git a/WebSite/src/views/main/basicSetting/match/index.vue b/WebSite/src/views/main/basicSetting/match/index.vue
index a022437d..80555085 100644
--- a/WebSite/src/views/main/basicSetting/match/index.vue
+++ b/WebSite/src/views/main/basicSetting/match/index.vue
@@ -1,84 +1,129 @@
 <template>
-    <div>
-      <el-card class="mtop20">
-        <el-table
-          stripe
-          :data="tableData"
-          style="width: 100%"
-          ref="multipleTable"
-          class="mtop20"
-          fit
-        >
-          <el-table-column label="妯℃澘缂栧彿" prop="templateCode" />
-          <el-table-column label="妯℃澘鍚嶇О" prop="templateName" />
-          <el-table-column label="鐘舵€�" prop="state" />
-          <el-table-column label="鎿嶄綔">
-            <template #default="scope">
-                <el-button type="text" @click="onEdit(scope.row)">
-                缂栬緫
-                </el-button>
-            </template>
-          </el-table-column>
-        </el-table>
-        <Pagination
-          v-show="total > 0"
-          :total="total"
-          v-model:page="checkInfo.pageIndex"
-          v-model:limit="checkInfo.pageSize"
-          @pagination="queryList"
-        />
-      </el-card>
-    </div>
-  </template>
-  
-  <script>
-  import { reactive, toRefs, onMounted } from 'vue';
-  import ProjectLibrary from '@/api/projectLibrary';
-  export default {
-    setup() {
-      onMounted(() => {
-        queryList();
-        queryDeptPage();
+  <div>
+    <el-card class="mtop20">
+      <el-table
+        stripe
+        :data="tableData"
+        style="width: 100%"
+        ref="multipleTable"
+        class="mtop20"
+        fit
+      >
+        <el-table-column label="妯℃澘缂栧彿" prop="templateCode" />
+        <el-table-column label="妯℃澘鍚嶇О" prop="templateName" />
+        <el-table-column label="鐘舵€�" prop="state" />
+        <el-table-column label="鎿嶄綔">
+          <template #default="scope">
+            <el-button type="text" @click="onEdit(scope.row)">
+              缂栬緫
+            </el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <Pagination
+        v-show="total > 0"
+        :total="total"
+        v-model:page="checkInfo.pageIndex"
+        v-model:limit="checkInfo.pageSize"
+        @pagination="queryList"
+      />
+    </el-card>
+    <el-dialog v-model="dialogVisible" width="80%" :before-close="handleClose">
+      <el-row :gutter="20" class="newRow">
+        <el-col :span="6">妯℃澘缂栧彿锛�</el-col>
+        <el-col :span="6">妯℃澘鍚嶇О锛�</el-col>
+      </el-row>
+      <el-table :data="gridData">
+        <el-table-column label="缁忔祹绉戠洰缂栧彿" prop="fundCode" />
+        <el-table-column label="缁忔祹绉戠洰鍚嶇О" prop="fundName" />
+        <el-table-column label="棰濆害缂栧彿/鍚嶇О">
+          <el-select>
+            <el-option label="Zone No.1" value="shanghai" />
+          </el-select>
+        </el-table-column>
+      </el-table>
+      <template #footer>
+        <span class="dialog-footer">
+          <el-button @click="dialogVisible = false">鍙栨秷</el-button>
+          <el-button type="primary" @click="onSure">
+            纭
+          </el-button>
+        </span>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { reactive, toRefs, onMounted } from 'vue';
+import ProjectLibrary from '@/api/projectLibrary';
+import { ElMessage } from 'element-plus';
+export default {
+  setup() {
+    onMounted(() => {
+      queryList();
+      queryDeptPage();
+    });
+    const state = reactive({
+      deptList: [],
+      checkInfo: {
+        pageIndex: 1,
+        pageSize: 10
+      },
+      total: 0,
+      tableData: [],
+      gridData: [],
+      dialogVisible: false,
+      selectList: []
+    });
+    const queryList = () => {
+      ProjectLibrary.listBusinessTemplate().then(res => {
+        state.tableData = res.data;
+        state.total = res.total;
       });
-      const state = reactive({
-        deptList: [],
-        checkInfo: {
-          pageIndex: 1,
-          pageSize: 10
-        },
-        total: 0,
-        tableData: [],
-        bumenList: [],
-        changelist: []
-      });
-      const queryList = () => {
-        ProjectLibrary.listBusinessTemplate().then(res => {
-          state.tableData = res.data;
-          state.total = res.total;
-        });
-      };
-      const queryDeptPage = () => {
-        // ProjectLibrary.queryDeptPage({
-        //   pageIndex: 1,
-        //   pageSize: 999
-        // }).then((res) => {
-        //   state.bumenList = res.data;
-        //   queryList()
-        // })
-      }
-      const onEdit = (row) => {
-        console.log('orw', row);
-      }
-     
-      return {
-        ...toRefs(state),
-        queryList,
-        queryDeptPage,
-        onEdit
-      };
+    };
+    const queryDeptPage = () => {
+      // ProjectLibrary.queryDeptPage({
+      //   pageIndex: 1,
+      //   pageSize: 999
+      // }).then((res) => {
+      //   state.bumenList = res.data;
+      // year: sessionStorage.getItem('year')
+      //   queryList()
+      // })
+    };
+    const onEdit = row => {
+      console.log('orw', row);
+      state.dialogVisible = true;
+      ProjectLibrary.queryFundByYear({ templateCode: row.templateCode }).then(
+        res => {
+          state.gridData = res.data;
+        }
+      );
+      ProjectLibrary.queryLimitByTemplateCode({templateCode: row.templateCode}).then((res) => {
+        state.selectList = res.data
+      })
+    };
+    const onSure = () => {
+      state.dialogVisible = false;
+      ProjectLibrary.saveFundTemplate().then((res) => {
+        console.log('res', res);
+        ElMessage.success('淇濆瓨鎴愬姛');
+      })
     }
-  };
-  </script>
-  
-  <style></style>
-  
\ No newline at end of file
+    return {
+      ...toRefs(state),
+      queryList,
+      queryDeptPage,
+      onEdit,
+      onSure
+    };
+  }
+};
+</script>
+
+<style scoped>
+.newRow {
+  margin: 10px 0;
+}
+</style>
diff --git a/WebSite/src/views/yo-common/ProjectFundApply/index.vue b/WebSite/src/views/yo-common/ProjectFundApply/index.vue
index 01011ae3..ca38b695 100644
--- a/WebSite/src/views/yo-common/ProjectFundApply/index.vue
+++ b/WebSite/src/views/yo-common/ProjectFundApply/index.vue
@@ -1129,7 +1129,7 @@
               :readonly="
                 Boolean(
                   applyInfo.flowCanShowOut &&
-                    applyInfo.flowCanShowOut.state != '璐㈠姟澶勫鎵�'
+                    applyInfo.flowCanShowOut.state != '璧勯噾鍒嗛厤'
                 )
               "
               type="textarea"
-- 
GitLab


From bb733cace1bcc053f7a7c08999364eb639d095de Mon Sep 17 00:00:00 2001
From: lshwy817 <lshwy817@163.com>
Date: Wed, 30 Nov 2022 16:12:34 +0800
Subject: [PATCH 4/7] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 WebSite/src/api/projectLibrary.js             |   4 +-
 .../views/main/basicSetting/match/index.vue   | 103 ++++++++++++------
 .../projectLibrary/components/Detail.vue      |   8 +-
 .../department/components/List.vue            |  12 +-
 .../inSchool/components/List.vue              |   4 +-
 .../src/views/performance/declarationview.vue |   6 +-
 .../performance/declarationwatchview.vue      |   6 +-
 .../src/views/performance/evaluationview.vue  |   5 +
 .../views/performance/evaluationwatchview.vue |   5 +
 .../views/performance/rectificationview.vue   |   5 +
 .../performance/rectificationwatchview.vue    |   5 +
 .../yo-common/ProjectFundApply/index.vue      |   2 +-
 .../views/yo-common/PublicFundApply/index.vue |   1 +
 13 files changed, 118 insertions(+), 48 deletions(-)

diff --git a/WebSite/src/api/projectLibrary.js b/WebSite/src/api/projectLibrary.js
index 892d22e9..3d7019e2 100644
--- a/WebSite/src/api/projectLibrary.js
+++ b/WebSite/src/api/projectLibrary.js
@@ -1050,11 +1050,11 @@ class ProjectLibrary extends Base {
   }
   // 鏍规嵁褰撳墠骞翠唤鏌ヨ缁忔祹绉戠洰淇℃伅
   static queryFundByYear(data) {
-    return request.post(`/fundTemplateLimit/queryFundByYear`, data);
+    return request.post(`/fundTemplateLimit/queryFundByYear?templateCode=`+ data);
   }
   // 閫氳繃妯℃澘缂栧彿鏌ラ搴︿俊鎭�
   static queryLimitByTemplateCode(data) {
-    return request.post(`/fundTemplateLimit/queryLimitByTemplateCode`, data);
+    return request.post(`/fundTemplateLimit/queryLimitByTemplateCode?templateCode=`+ data);
   }
   // 淇濆瓨缁忔祹绉戠洰妯℃澘淇℃伅
   static saveFundTemplate(data) {
diff --git a/WebSite/src/views/main/basicSetting/match/index.vue b/WebSite/src/views/main/basicSetting/match/index.vue
index 80555085..3f402614 100644
--- a/WebSite/src/views/main/basicSetting/match/index.vue
+++ b/WebSite/src/views/main/basicSetting/match/index.vue
@@ -1,5 +1,19 @@
 <template>
   <div>
+    <el-card class="mtop20">
+      <el-row :gutter="20">
+        <el-col :span="6">
+          <el-input v-model="Search.templateCode" placeholder="璇疯緭鍏ユā鏉跨紪鍙�" clearable @clear="queryList" />
+        </el-col>
+        <el-col :span="6">
+          <el-input v-model="Search.templateName" placeholder="璇疯緭鍏ユā鏉垮悕绉�" clearable @clear="queryList" />
+        </el-col>
+        <el-col :span="6">
+          <el-button type="primary" plain @click="queryList">鏌ヨ</el-button>
+        </el-col>
+      </el-row>
+      
+    </el-card>
     <el-card class="mtop20">
       <el-table
         stripe
@@ -20,34 +34,41 @@
           </template>
         </el-table-column>
       </el-table>
-      <Pagination
+      <!-- <Pagination
         v-show="total > 0"
         :total="total"
         v-model:page="checkInfo.pageIndex"
         v-model:limit="checkInfo.pageSize"
         @pagination="queryList"
-      />
+      /> -->
     </el-card>
     <el-dialog v-model="dialogVisible" width="80%" :before-close="handleClose">
       <el-row :gutter="20" class="newRow">
-        <el-col :span="6">妯℃澘缂栧彿锛�</el-col>
-        <el-col :span="6">妯℃澘鍚嶇О锛�</el-col>
+        <el-col :span="6">
+          <h4>妯℃澘缂栧彿锛歿{ titleText.templateCode }}</h4>
+        </el-col>
+        <el-col :span="6">
+          <h4>妯℃澘鍚嶇О锛歿{ titleText.templateName }}</h4>
+        </el-col>
       </el-row>
       <el-table :data="gridData">
         <el-table-column label="缁忔祹绉戠洰缂栧彿" prop="fundCode" />
         <el-table-column label="缁忔祹绉戠洰鍚嶇О" prop="fundName" />
         <el-table-column label="棰濆害缂栧彿/鍚嶇О">
-          <el-select>
-            <el-option label="Zone No.1" value="shanghai" />
-          </el-select>
+          <template #default="scope">
+            <!-- {{scope.row}} -->
+            <el-select v-model="scope.row.limitCode" clearable @change="selectChange(scope.row)">
+              <el-option v-for="(item, index) in selectList" :label="item.controlsName" :value="item.controlsCode" :key="index"/>
+            </el-select>
+          </template>
         </el-table-column>
       </el-table>
       <template #footer>
         <span class="dialog-footer">
-          <el-button @click="dialogVisible = false">鍙栨秷</el-button>
-          <el-button type="primary" @click="onSure">
+          <el-button @click="dialogVisible = false">鍏抽棴</el-button>
+          <!-- <el-button type="primary" @click="onSure">
             纭
-          </el-button>
+          </el-button> -->
         </span>
       </template>
     </el-dialog>
@@ -62,10 +83,8 @@ export default {
   setup() {
     onMounted(() => {
       queryList();
-      queryDeptPage();
     });
     const state = reactive({
-      deptList: [],
       checkInfo: {
         pageIndex: 1,
         pageSize: 10
@@ -74,48 +93,66 @@ export default {
       tableData: [],
       gridData: [],
       dialogVisible: false,
-      selectList: []
+      selectList: [],
+      fundTemplateCmdList: [],
+      titleText: {},
+      Search: {
+        templateCode: '',
+        templateName: '', 
+      }
     });
     const queryList = () => {
-      ProjectLibrary.listBusinessTemplate().then(res => {
+      let newData = {};
+      if(state.Search.templateCode != '' || state.Search.templateName != '') {
+        newData = {
+          time: new Date(),
+          ...state.Search
+        }
+      } else {
+        newData.time = new Date()
+      }
+      ProjectLibrary.listBusinessTemplate(newData).then(res => {
         state.tableData = res.data;
         state.total = res.total;
       });
     };
-    const queryDeptPage = () => {
-      // ProjectLibrary.queryDeptPage({
-      //   pageIndex: 1,
-      //   pageSize: 999
-      // }).then((res) => {
-      //   state.bumenList = res.data;
-      // year: sessionStorage.getItem('year')
-      //   queryList()
-      // })
-    };
     const onEdit = row => {
-      console.log('orw', row);
+      state.titleText = row;
       state.dialogVisible = true;
-      ProjectLibrary.queryFundByYear({ templateCode: row.templateCode }).then(
+      ProjectLibrary.queryFundByYear( row.templateCode ).then(
         res => {
           state.gridData = res.data;
         }
       );
-      ProjectLibrary.queryLimitByTemplateCode({templateCode: row.templateCode}).then((res) => {
+      ProjectLibrary.queryLimitByTemplateCode( row.templateCode ).then((res) => {
         state.selectList = res.data
       })
     };
-    const onSure = () => {
-      state.dialogVisible = false;
-      ProjectLibrary.saveFundTemplate().then((res) => {
-        console.log('res', res);
+    const selectChange = (val) => {
+      let newList =  state.selectList.find(item => {
+        if (item.controlsCode == val.limitCode) {
+          return item
+        }
+      })
+      state.fundTemplateCmdList.push({
+        limitName: newList.controlsName,
+        templateCode: state.titleText.templateCode,
+        templateName: state.titleText.templateName,
+        ...val
+      })
+      ProjectLibrary.saveFundTemplate(state.fundTemplateCmdList).then(() => {
         ElMessage.success('淇濆瓨鎴愬姛');
+        queryList();
       })
+    };
+    const onSure = () => {
+      state.dialogVisible = false;
     }
     return {
       ...toRefs(state),
       queryList,
-      queryDeptPage,
       onEdit,
+      selectChange,
       onSure
     };
   }
@@ -124,6 +161,6 @@ export default {
 
 <style scoped>
 .newRow {
-  margin: 10px 0;
+  
 }
 </style>
diff --git a/WebSite/src/views/main/basicSetting/projectLibrary/components/Detail.vue b/WebSite/src/views/main/basicSetting/projectLibrary/components/Detail.vue
index e923016e..4fc3e67b 100644
--- a/WebSite/src/views/main/basicSetting/projectLibrary/components/Detail.vue
+++ b/WebSite/src/views/main/basicSetting/projectLibrary/components/Detail.vue
@@ -220,7 +220,7 @@ export default {
   setup(props, cxt) {
     onMounted(() => {
       queryUserPage();
-      queryTemplateInfo();
+      listBusinessTemplate();
       queryProjectTargetOneList();
       if (props.editInfo) {
         console.log('props.editInfo', props.editInfo);
@@ -355,8 +355,8 @@ export default {
         state.taoList = res.data;
       });
     };
-    const queryTemplateInfo = () => {
-      ProjectLibrary.queryTemplateInfo('').then(res => {
+    const listBusinessTemplate = () => {
+      ProjectLibrary.listBusinessTemplate({}).then(res => {
         state.options = res.data;
         console.log(state.options, 'test1');
       });
@@ -475,7 +475,7 @@ export default {
     return {
       handleBack,
       getList,
-      queryTemplateInfo,
+      listBusinessTemplate,
       queryUserPage,
       selectVisibleChange,
       handleSave,
diff --git a/WebSite/src/views/main/project-library/department/components/List.vue b/WebSite/src/views/main/project-library/department/components/List.vue
index e583058e..eca4d103 100644
--- a/WebSite/src/views/main/project-library/department/components/List.vue
+++ b/WebSite/src/views/main/project-library/department/components/List.vue
@@ -57,7 +57,7 @@
         <el-table-column label="椤圭洰搴�" prop="projectLibraryName">
           <template #default="scope">
             <el-button
-              @click="toDetail(scope.row)"
+              @click="toXmk(scope.row)"
               :type="scope.row.projectLibraryState == 2 ? 'text' : 'primary'"
               >{{ scope.row.projectLibraryName }}</el-button
             >
@@ -94,7 +94,7 @@
             >
           </template>
         </el-table-column>
-        <el-table-column label="鎵瑰" prop="replyName">
+        <!-- <el-table-column label="鎵瑰" prop="replyName">
           <template #default="scope">
             <el-button
               v-if="scope.row.replyState == 1"
@@ -109,7 +109,7 @@
               {{ scope.row.replyName }}
             </el-button>
           </template>
-        </el-table-column>
+        </el-table-column> -->
       </el-table>
       <Pagination
         v-show="departInfo.total > 0"
@@ -335,6 +335,9 @@ export default {
         getDepartPageInfo();
       });
     };
+    const toXmk = (row) => {
+      cxt.emit('switch-page', 'Detail', true, row.projectLibraryID);
+    }
     const toDetail = (row, index) => {
       console.log('row', row);
       if (row.replyState == 0) {
@@ -464,7 +467,8 @@ export default {
       handleSelectionProject,
       getDepartPageInfoFirst,
       handleSelectionChange,
-      getmoneyInfo
+      getmoneyInfo,
+      toXmk
       // toDetailNew
     };
   }
diff --git a/WebSite/src/views/main/project-library/inSchool/components/List.vue b/WebSite/src/views/main/project-library/inSchool/components/List.vue
index cb63432d..28d3579a 100644
--- a/WebSite/src/views/main/project-library/inSchool/components/List.vue
+++ b/WebSite/src/views/main/project-library/inSchool/components/List.vue
@@ -72,13 +72,13 @@
             }}</el-button>
           </template>
         </el-table-column>
-        <el-table-column label="鎵瑰" prop="replyName">
+        <!-- <el-table-column label="鎵瑰" prop="replyName">
           <template #default="scope">
             <el-button @click="toThree(scope.row)" type="text">{{
               scope.row.replyName
             }}</el-button>
           </template>
-        </el-table-column>
+        </el-table-column> -->
       </el-table>
       <Pagination
         v-show="departInfo.total > 0"
diff --git a/WebSite/src/views/performance/declarationview.vue b/WebSite/src/views/performance/declarationview.vue
index f164488b..a228de68 100644
--- a/WebSite/src/views/performance/declarationview.vue
+++ b/WebSite/src/views/performance/declarationview.vue
@@ -15,6 +15,7 @@
                     v-model="formData.year"
                     type="year"
                     placeholder="閫夋嫨骞�"
+                    @change="setYear"
                   >
                   </el-date-picker>
                 </el-form-item>
@@ -190,6 +191,7 @@
 import Api from '@/api';
 import ProjectLibrary from '@/api/projectLibrary';
 import { moneyFormat } from '@/utils';
+import Moment from 'moment';
 export default {
   name: 'search',
   data() {
@@ -313,7 +315,9 @@ export default {
         }
       });
     },
-
+    setYear() {
+      this.formData.year = Moment(this.formData.year).format('YYYY');
+    },
     //鍒嗛〉
     changePage(val) {
       this.formData.pageIndex = val.page;
diff --git a/WebSite/src/views/performance/declarationwatchview.vue b/WebSite/src/views/performance/declarationwatchview.vue
index 3e040768..ff590537 100644
--- a/WebSite/src/views/performance/declarationwatchview.vue
+++ b/WebSite/src/views/performance/declarationwatchview.vue
@@ -15,6 +15,7 @@
                     v-model="formData.year"
                     type="year"
                     placeholder="閫夋嫨骞�"
+                    @change="setYear"
                   >
                   </el-date-picker>
                 </el-form-item>
@@ -190,6 +191,7 @@
 import Api from '@/api';
 import ProjectLibrary from '@/api/projectLibrary';
 import { moneyFormat } from '@/utils';
+import Moment from 'moment';
 export default {
   name: 'search',
   data() {
@@ -311,7 +313,9 @@ export default {
         }
       });
     },
-
+    setYear() {
+      this.formData.year = Moment(this.formData.year).format('YYYY');
+    },
     //鍒嗛〉
     changePage(val) {
       this.formData.pageIndex = val.page;
diff --git a/WebSite/src/views/performance/evaluationview.vue b/WebSite/src/views/performance/evaluationview.vue
index 29601511..125776d5 100644
--- a/WebSite/src/views/performance/evaluationview.vue
+++ b/WebSite/src/views/performance/evaluationview.vue
@@ -15,6 +15,7 @@
                     v-model="formData.year"
                     type="year"
                     placeholder="閫夋嫨骞�"
+                    @change="setYear"
                   >
                   </el-date-picker>
                 </el-form-item>
@@ -191,6 +192,7 @@
 import Api from '@/api';
 import { moneyFormat } from '@/utils';
 import ProjectLibrary from '@/api/projectLibrary';
+import Moment from 'moment';
 export default {
   name: 'search',
   data() {
@@ -306,6 +308,9 @@ export default {
       this.formData.pageSize = val.limit;
       this.getselflist(this.formData);
     },
+    setYear() {
+      this.formData.year = Moment(this.formData.year).format('YYYY');
+    },
    
     //鑾峰彇鍏ㄩ儴椤圭洰
 
diff --git a/WebSite/src/views/performance/evaluationwatchview.vue b/WebSite/src/views/performance/evaluationwatchview.vue
index 431e121d..41ac8d5a 100644
--- a/WebSite/src/views/performance/evaluationwatchview.vue
+++ b/WebSite/src/views/performance/evaluationwatchview.vue
@@ -15,6 +15,7 @@
                     v-model="formData.year"
                     type="year"
                     placeholder="閫夋嫨骞�"
+                    @change="setYear"
                   >
                   </el-date-picker>
                 </el-form-item>
@@ -191,6 +192,7 @@
 import Api from '@/api';
 import { moneyFormat } from '@/utils';
 import ProjectLibrary from '@/api/projectLibrary';
+import Moment from 'moment';
 export default {
   name: 'search',
   data() {
@@ -280,6 +282,9 @@ export default {
       this.formData.pageIndex = 1;
       this.getselflist(this.formData);
     },
+    setYear() {
+      this.formData.year = Moment(this.formData.year).format('YYYY');
+    },
     //鍒犻櫎
     remove(row) {
       this.$router.push({
diff --git a/WebSite/src/views/performance/rectificationview.vue b/WebSite/src/views/performance/rectificationview.vue
index 042be5b2..5e448c2d 100644
--- a/WebSite/src/views/performance/rectificationview.vue
+++ b/WebSite/src/views/performance/rectificationview.vue
@@ -15,6 +15,7 @@
                     v-model="formData.year"
                     type="year"
                     placeholder="閫夋嫨骞�"
+                    @change="setYear"
                   >
                   </el-date-picker>
                 </el-form-item>
@@ -191,6 +192,7 @@
 import Api from '@/api';
 import ProjectLibrary from '@/api/projectLibrary';
 import { moneyFormat } from '@/utils';
+import Moment from 'moment';
 export default {
   name: 'search',
   data() {
@@ -286,6 +288,9 @@ export default {
     handleSelectionChange(val) {
       this.multipleSelection = val;
     },
+    setYear() {
+      this.formData.year = Moment(this.formData.year).format('YYYY');
+    },
     //鏌ヨ
     search() {
       this.formData.pageIndex = 1;
diff --git a/WebSite/src/views/performance/rectificationwatchview.vue b/WebSite/src/views/performance/rectificationwatchview.vue
index c729bb14..379902e9 100644
--- a/WebSite/src/views/performance/rectificationwatchview.vue
+++ b/WebSite/src/views/performance/rectificationwatchview.vue
@@ -15,6 +15,7 @@
                     v-model="formData.year"
                     type="year"
                     placeholder="閫夋嫨骞�"
+                    @change="setYear"
                   >
                   </el-date-picker>
                 </el-form-item>
@@ -191,6 +192,7 @@
 import Api from '@/api';
 import ProjectLibrary from '@/api/projectLibrary';
 import { moneyFormat } from '@/utils';
+import Moment from 'moment';
 export default {
   name: 'search',
   data() {
@@ -291,6 +293,9 @@ export default {
       this.formData.pageIndex = 1;
       this.getreformlist(this.formData);
     },
+    setYear() {
+      this.formData.year = Moment(this.formData.year).format('YYYY');
+    },
     //鍒犻櫎
 
     remove(row) {
diff --git a/WebSite/src/views/yo-common/ProjectFundApply/index.vue b/WebSite/src/views/yo-common/ProjectFundApply/index.vue
index ca38b695..d9e39d92 100644
--- a/WebSite/src/views/yo-common/ProjectFundApply/index.vue
+++ b/WebSite/src/views/yo-common/ProjectFundApply/index.vue
@@ -2277,7 +2277,7 @@ export default {
     const fundSubjectChhange = (value, row) => {
       const fund = budgetData.fundsList.find(item => item.name == value);
       row.subjectCode = fund.code;
-      row.subjectId = fund.id;
+      row.subjectId = fund.subjectId;
       row.otherJson.fundDescribe = fund.fundDescribe;
       row.number = 0;
       row.price = 0;
diff --git a/WebSite/src/views/yo-common/PublicFundApply/index.vue b/WebSite/src/views/yo-common/PublicFundApply/index.vue
index 92631282..7ad5eef3 100644
--- a/WebSite/src/views/yo-common/PublicFundApply/index.vue
+++ b/WebSite/src/views/yo-common/PublicFundApply/index.vue
@@ -1135,6 +1135,7 @@ export default {
     const fundSubjectChhange = (value, row) => {
       const fund = budgetData.fundsList.find(item => item.fundName == value);
       row.subjectCode = fund.fundCode;
+      row.subjectId = fund.id;
       row.otherJson.fundDescribe = fund.fundDescribe;
       row.number = 0;
       row.price = 0;
-- 
GitLab


From e6df0fb89386f6d929f3af6a0255ca343e3a28f2 Mon Sep 17 00:00:00 2001
From: lshwy817 <lshwy817@163.com>
Date: Fri, 2 Dec 2022 16:01:20 +0800
Subject: [PATCH 5/7] =?UTF-8?q?=E7=BB=A9=E6=95=88=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 WebSite/src/api/performance.js                |  14 +-
 WebSite/src/api/projectLibrary.js             |   3 +
 .../allocation/apply/components/Detail.vue    |   2 +-
 .../compLibrary/components/List.vue           |  72 ++-
 .../compLibrary/components/ListOld.vue        | 326 ++++++++++++++
 .../declare/components/List.vue               |  88 ++--
 .../declare/components/ListOld.vue            | 424 ++++++++++++++++++
 .../reserve/components/List.vue               |  67 +--
 .../reserve/components/ListOld.vue            | 330 ++++++++++++++
 WebSite/src/views/performance/declaration.vue |  88 +++-
 .../src/views/performance/declarationview.vue |  13 +-
 .../performance/declarationwatchview.vue      |   7 +-
 WebSite/src/views/performance/evaluation.vue  |  70 ++-
 .../src/views/performance/evaluationview.vue  |   7 +-
 .../views/performance/evaluationwatchview.vue |   7 +-
 .../src/views/performance/rectification.vue   |  38 +-
 .../views/performance/rectificationview.vue   |   7 +-
 .../performance/rectificationwatchview.vue    |   7 +-
 .../first/PeopleFundApply/components/List.vue |   2 +-
 .../SecondPeopleFundApply/components/List.vue |   2 +-
 20 files changed, 1386 insertions(+), 188 deletions(-)
 create mode 100644 WebSite/src/views/main/project-library/compLibrary/components/ListOld.vue
 create mode 100644 WebSite/src/views/main/project-library/declare/components/ListOld.vue
 create mode 100644 WebSite/src/views/main/project-library/reserve/components/ListOld.vue

diff --git a/WebSite/src/api/performance.js b/WebSite/src/api/performance.js
index a925d440..c4bc80ad 100644
--- a/WebSite/src/api/performance.js
+++ b/WebSite/src/api/performance.js
@@ -36,5 +36,17 @@ export default {
   //缁╂晥淇濆瓨
   saveTargetPlanReform(data) {
     return request.post('/target/saveTargetPlanReform', data);
-  }
+  },
+  // 鎻愪氦
+  submitTarget(data) {
+    return request.post('/target/submitTarget', data);
+  },
+  // 鍥為€€
+  rollBackTarget(data) {
+    return request.post('/target/rollBackTarget', data);
+  },
+  // 鍥炴挙
+  recallTarget(data) {
+    return request.post('/target/recallTarget', data);
+  },
 };
diff --git a/WebSite/src/api/projectLibrary.js b/WebSite/src/api/projectLibrary.js
index 3d7019e2..6723a9f1 100644
--- a/WebSite/src/api/projectLibrary.js
+++ b/WebSite/src/api/projectLibrary.js
@@ -11,6 +11,9 @@ class ProjectLibrary extends Base {
   static listProjectLibraryGzy(data) {
     return request.post('/projectLibrary/listProjectLibraryGzy', data);
   }
+  static listProjectLibraryGzyChange(data) {
+    return request.post('/projectLibrary/listProjectLibraryGzyChange', data);
+  }
   // 鐢虫姤鎺у埗鍒楄〃
   static queryBudgetDeptSwitchDetail(data) {
     return request.post('/baseConfig/queryBudgetDeptSwitchDetail', data);
diff --git a/WebSite/src/views/main/allocation/apply/components/Detail.vue b/WebSite/src/views/main/allocation/apply/components/Detail.vue
index 55810353..b015d48f 100644
--- a/WebSite/src/views/main/allocation/apply/components/Detail.vue
+++ b/WebSite/src/views/main/allocation/apply/components/Detail.vue
@@ -56,7 +56,7 @@
         fit
       >
         <el-table-column label="鏄庣粏鍐呭" prop="subjectContent" />
-        <el-table-column label="鏀嚭棰濆害" prop="limitName" />
+        <el-table-column label="鏀嚭棰濆害" prop="subjectName" />
         <el-table-column label="棰勭畻閲戦" prop="subtotal">
           <template #default="scope">
             {{ moneyFormat(scope.row.subtotal, 2, ',') }}
diff --git a/WebSite/src/views/main/project-library/compLibrary/components/List.vue b/WebSite/src/views/main/project-library/compLibrary/components/List.vue
index fa83c878..61d5ec0c 100644
--- a/WebSite/src/views/main/project-library/compLibrary/components/List.vue
+++ b/WebSite/src/views/main/project-library/compLibrary/components/List.vue
@@ -66,50 +66,36 @@
         class="mtop20"
         fit
         @selection-change="handleSelectionChange"
+        border
       >
-        <el-table-column type="selection" width="55" align="center" />
-        <el-table-column type="index" width="55" align="center" label="搴忓彿"  />
-        <el-table-column label="娴佺▼鐘舵€�" prop="state" />
-        <el-table-column label="椤圭洰绾у埆" prop="level" />
-        <el-table-column label="椤圭洰鍚嶇О" prop="projectName" />
-        <!-- <el-table-column label="椤圭洰绫诲瀷" prop="projectType" /> -->
-        <!-- <el-table-column label="閮ㄩ棬鍚嶇О" prop="departmentName" /> -->
-        <!-- <el-table-column label="閮ㄩ棬缂栧彿" prop="departmentCode" /> -->
-        <!-- <el-table-column label="璐熻矗浜虹紪鍙�" prop="projectLeaderCode" /> -->
-        <el-table-column label="璐熻矗浜哄鍚�" prop="projectLeaderName" />
-        <el-table-column label="鐢虫姤鍗曚綅" prop="departmentName" />
-        <el-table-column label="褰掑彛绠$悊閮ㄩ棬" prop="guiKouName" />
-        <el-table-column label="娴佺▼鎵€鍦ㄥ矖骞村害" prop="year" />
-        <el-table-column label="椤圭洰鐘舵€�" prop="projectState">
+        <el-table-column type="selection" width="55" align="center" :selectable="selectable"/>
+        <el-table-column width="55" align="center" label="搴忓彿" prop="num">
           <template #default="scope">
-            <span>{{ scope.row.projectState === 0 ? '-' : scope.row.projectState === 1 ? '鍦ㄥ缓' :  scope.row.projectState === 2 ? '涓' : '瀹岀粨'}}</span>
+            {{ scope.row.num == 0 ? '' : scope.row.num }}
           </template>
         </el-table-column>
-        <!-- <el-table-column label="鐢虫姤閲戦" prop="planMoney" align="right">
+        <el-table-column label="娴佺▼鐘舵€�" prop="state"  />
+        <el-table-column label="椤圭洰绾у埆" prop="levelName" v-if="checkInfo.identification == '1' ? false : true"  />
+        <el-table-column label="椤圭洰鍚嶇О" prop="name" width="280">
           <template #default="scope">
-            {{ moneyFormat(scope.row.planMoney, 2, ',') }}
+           <div v-if="(scope.row.projectIdentification == false)" style="font-weight: 600; color: #999999;">
+            {{ makeName(scope.row.name, scope.row.level) }}
+           </div>
+           <div v-if="scope.row.projectIdentification">
+            <a @click="seeView(scope.row)" style="color: #409EFF;">{{ makeName(scope.row.name, scope.row.level) }}</a>
+           </div>
           </template>
-        </el-table-column> -->
-        <el-table-column label="鎿嶄綔" width="260px" align="center">
+        </el-table-column>
+        <el-table-column label="璐熻矗浜哄鍚�" prop="projectLeaderName" />
+        <el-table-column label="鐢虫姤鍗曚綅" prop="departmentName" />
+        <el-table-column label="褰掑彛绠$悊閮ㄩ棬" prop="guiKouName"  />
+        <el-table-column label="娴佺▼鎵€鍦ㄥ矖骞村害" prop="year"  />
+        <el-table-column label="椤圭洰鐘舵€�" prop="projectState" >
           <template #default="scope">
-            <el-form>
-              <el-button type="primary" plain @click="seeView(scope.row)"
-                >鏌ョ湅</el-button
-              >
-              <!-- <el-button type="primary" plain @click="changeState(scope.row.id)"
-                >鍙栨秷杩涘叆瀹岀粨搴�</el-button
-              > -->
-            </el-form>
+            <span>{{ scope.row.projectState === 0 ? '-' : scope.row.projectState === 1 ? '鍦ㄥ缓' :  scope.row.projectState === 2 ? '涓' : '瀹岀粨'}}</span>
           </template>
         </el-table-column>
       </el-table>
-      <Pagination
-        v-show="departInfo.total > 0"
-        :total="departInfo.total"
-        v-model:page="checkInfo.pageIndex"
-        v-model:limit="checkInfo.pageSize"
-        @pagination="getDepartPageInfo"
-      />
     </el-card>
   </div>
 </template>
@@ -133,8 +119,6 @@ export default {
         year: sessionStorage.getItem('year'), //骞翠唤
         projectName: '', //椤圭洰鍚嶇О
         departmentCode: '', //椤圭洰搴�
-        pageIndex: 1,
-        pageSize: 10,
         declarationStateGzy: '2', //锛�0锛氱敵鎶ュ簱锛�1锛氬偍澶囧簱锛�2锛氬畬缁撳簱锛�
         projectState: [2,3],
         level: ''
@@ -203,7 +187,7 @@ export default {
       // }
     };
     const getDepartPageInfo = () => {
-      ProjectLibrary.listProjectLibraryGzy(state.checkInfo).then(res => {
+      ProjectLibrary.listProjectLibraryGzyChange(state.checkInfo).then(res => {
         state.departInfo.tableData = res.data;
         state.departInfo.total = res.total;
         //  console.log(state.departInfo,'1234')
@@ -299,6 +283,16 @@ export default {
         ElMessage.warning('璇疯嚦灏戦€夋嫨涓€涓」鐩紒');
       }
     };
+    const makeName = (name, level) => {
+      console.log('name', name, level);
+      for (let i = 1; i < level; i++) {
+        name = '\xa0\xa0\xa0\xa0' + name;
+      }
+      return name
+    };
+    const selectable = (row) => {
+      return row.projectIdentification
+    }
     return {
       ...toRefs(state),
       getDepartPageInfoFirst,
@@ -317,7 +311,9 @@ export default {
       onChushi,
       onZaijian,
       onZhongzhi,
-      onWanjie
+      onWanjie,
+      makeName,
+      selectable
     };
   }
 };
diff --git a/WebSite/src/views/main/project-library/compLibrary/components/ListOld.vue b/WebSite/src/views/main/project-library/compLibrary/components/ListOld.vue
new file mode 100644
index 00000000..fa83c878
--- /dev/null
+++ b/WebSite/src/views/main/project-library/compLibrary/components/ListOld.vue
@@ -0,0 +1,326 @@
+<template>
+  <div>
+    <el-card>
+      <el-row :gutter="20">
+        <el-col :span="6">
+          <el-date-picker
+            v-model="checkInfo.year"
+            :editable="false"
+            type="year"
+            @change="setTime"
+            placeholder="閫夋嫨骞�"
+          >
+          </el-date-picker>
+        </el-col>
+        <!-- <el-col :span="6">
+          <el-input
+            v-model="checkInfo.projectType"
+            placeholder="璇疯緭鍏ラ」鐩被鍨�"
+          ></el-input>
+        </el-col> -->
+        <el-col :span="6">
+          <el-input
+            v-model="checkInfo.projectName"
+            placeholder="璇疯緭鍏ラ」鐩悕绉�"
+          ></el-input>
+        </el-col>
+        <el-col :span="6">
+          <el-select
+            filterable
+            clearable
+            v-model="checkInfo.departmentCode"
+            placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�"
+          >
+            <el-option
+              v-for="(v, index) in deptList"
+              :key="index"
+              :label="v.name"
+              :value="v.code"
+            ></el-option>
+          </el-select>
+        </el-col>
+
+      </el-row>
+      <el-row class="mtop20" :gutter="20">
+        <el-col :span="6">
+          <el-select v-model="checkInfo.level"  placeholder="璇疯緭鍏ラ」鐩骇鍒�" clearable>
+            <el-option label="涓夌骇椤圭洰" value="3"></el-option>
+            <el-option label="鍥涚骇椤圭洰" value="4"></el-option>
+          </el-select>
+        </el-col>
+        <el-col :span="12">
+          <el-button plain @click="getDepartPageInfoFirst">鏌ヨ</el-button>
+          <el-button type="primary" plain @click="onChushi">鍒濆鍖栭」鐩姸鎬�</el-button>
+          <el-button type="primary" plain @click="onZaijian">鍦ㄥ缓椤圭洰</el-button>
+          <el-button type="primary" plain @click="onZhongzhi">涓椤圭洰</el-button>
+          <el-button type="primary" plain @click="onWanjie">瀹岀粨椤圭洰</el-button>
+        </el-col>
+      </el-row>
+    </el-card>
+    <el-card class="mtop20">
+      <el-table
+        stripe
+        :data="departInfo.tableData"
+        style="width: 100%"
+        ref="multipleTable"
+        class="mtop20"
+        fit
+        @selection-change="handleSelectionChange"
+      >
+        <el-table-column type="selection" width="55" align="center" />
+        <el-table-column type="index" width="55" align="center" label="搴忓彿"  />
+        <el-table-column label="娴佺▼鐘舵€�" prop="state" />
+        <el-table-column label="椤圭洰绾у埆" prop="level" />
+        <el-table-column label="椤圭洰鍚嶇О" prop="projectName" />
+        <!-- <el-table-column label="椤圭洰绫诲瀷" prop="projectType" /> -->
+        <!-- <el-table-column label="閮ㄩ棬鍚嶇О" prop="departmentName" /> -->
+        <!-- <el-table-column label="閮ㄩ棬缂栧彿" prop="departmentCode" /> -->
+        <!-- <el-table-column label="璐熻矗浜虹紪鍙�" prop="projectLeaderCode" /> -->
+        <el-table-column label="璐熻矗浜哄鍚�" prop="projectLeaderName" />
+        <el-table-column label="鐢虫姤鍗曚綅" prop="departmentName" />
+        <el-table-column label="褰掑彛绠$悊閮ㄩ棬" prop="guiKouName" />
+        <el-table-column label="娴佺▼鎵€鍦ㄥ矖骞村害" prop="year" />
+        <el-table-column label="椤圭洰鐘舵€�" prop="projectState">
+          <template #default="scope">
+            <span>{{ scope.row.projectState === 0 ? '-' : scope.row.projectState === 1 ? '鍦ㄥ缓' :  scope.row.projectState === 2 ? '涓' : '瀹岀粨'}}</span>
+          </template>
+        </el-table-column>
+        <!-- <el-table-column label="鐢虫姤閲戦" prop="planMoney" align="right">
+          <template #default="scope">
+            {{ moneyFormat(scope.row.planMoney, 2, ',') }}
+          </template>
+        </el-table-column> -->
+        <el-table-column label="鎿嶄綔" width="260px" align="center">
+          <template #default="scope">
+            <el-form>
+              <el-button type="primary" plain @click="seeView(scope.row)"
+                >鏌ョ湅</el-button
+              >
+              <!-- <el-button type="primary" plain @click="changeState(scope.row.id)"
+                >鍙栨秷杩涘叆瀹岀粨搴�</el-button
+              > -->
+            </el-form>
+          </template>
+        </el-table-column>
+      </el-table>
+      <Pagination
+        v-show="departInfo.total > 0"
+        :total="departInfo.total"
+        v-model:page="checkInfo.pageIndex"
+        v-model:limit="checkInfo.pageSize"
+        @pagination="getDepartPageInfo"
+      />
+    </el-card>
+  </div>
+</template>
+
+<script>
+import { reactive, toRefs, onMounted, ref } from 'vue';
+import ProjectLibrary from '@/api/projectLibrary';
+import Moment from 'moment';
+import { moneyFormat } from '@/utils';
+import { ElMessage } from 'element-plus';
+export default {
+  setup(props, cxt) {
+    onMounted(() => {
+      getDepartPageInfo();
+      getPlanTypeEnum();
+    });
+    const multipleTable = ref(null);
+    const state = reactive({
+      deptList: [],
+      checkInfo: {
+        year: sessionStorage.getItem('year'), //骞翠唤
+        projectName: '', //椤圭洰鍚嶇О
+        departmentCode: '', //椤圭洰搴�
+        pageIndex: 1,
+        pageSize: 10,
+        declarationStateGzy: '2', //锛�0锛氱敵鎶ュ簱锛�1锛氬偍澶囧簱锛�2锛氬畬缁撳簱锛�
+        projectState: [2,3],
+        level: ''
+      },
+      departInfo: {
+        total: 0,
+        tableData: []
+      },
+      planInfo: []
+    });
+    const getDepartPageInfoFirst = () => {
+      state.checkInfo.pageIndex = 1;
+      getDepartPageInfo();
+    };
+    const toDetail = row => {
+      cxt.emit('switch-page', 'Detail', true, row.id);
+    };
+    // 鍒楄〃
+    const queryDeptPage = () => {
+      ProjectLibrary.queryDeptPage({ pageIndex: 1, pageSize: 9999 }).then(
+        res => {
+          state.deptList = res.data;
+        }
+      );
+    };
+    const toOne = row => {
+      console.log('row', row);
+      //  0 杩涘叆 1 鍙栨秷 2 鏂囧瓧
+      // if (row.oneUPState === 0) {
+      //   ProjectLibrary.enterProjectPlanType1(row.id).then(res => {
+      //     console.log('resrow', res);
+      //     getDepartPageInfo();
+      //   });
+      // } else if (row.oneUPState === 1) {
+      //   if (index === 1) {
+      //     cxt.emit('switch-page', 'Detail', true, row.oneUPBookID);
+      //   } else {
+      //     ProjectLibrary.cancelEnterProjectPlanType1(row.id).then(res => {
+      //       console.log('res', res);
+      //       getDepartPageInfo();
+      //     });
+      //   }
+      // } else {
+      cxt.emit('switch-page', 'Detail', true, row.oneUPBookID);
+      // }
+    };
+    const toTwo = row => {
+      console.log('row', row);
+      //  0 杩涘叆 1 鍙栨秷 2 鏂囧瓧
+      // if (row.twoUPState === 0) {
+      //   ProjectLibrary.enterProjectPlanType2(row.id).then(res => {
+      //     console.log('resrow', res);
+      //     getDepartPageInfo();
+      //   });
+      // } else if (row.twoUPState === 1) {
+      //   if (index === 1) {
+      //     cxt.emit('switch-page', 'Detail', true, row.twoUPBookID);
+      //   } else {
+      //     ProjectLibrary.cancelEnterProjectPlanType2(row.id).then(res => {
+      //       console.log('res', res);
+      //       getDepartPageInfo();
+      //     });
+      //   }
+      // } else {
+      cxt.emit('switch-page', 'Detail', true, row.twoUPBookID);
+      // }
+    };
+    const getDepartPageInfo = () => {
+      ProjectLibrary.listProjectLibraryGzy(state.checkInfo).then(res => {
+        state.departInfo.tableData = res.data;
+        state.departInfo.total = res.total;
+        //  console.log(state.departInfo,'1234')
+      });
+    };
+    const getPlanTypeEnum = () => {
+      ProjectLibrary.getPlanTypeEnum({}).then(res => {
+        console.log('res', res);
+        state.planInfo = res.data;
+      });
+    };
+    const seeView = row => {
+      cxt.emit('switch-page', 'Detail', true, row.id);
+    };
+    const setTime = () => {
+      state.checkInfo.year = Moment(state.checkInfo.year).format('YYYY');
+    };
+    const changeState = id => {
+      ProjectLibrary.RepealChangeDeclarationStateById(id).then(() => {
+        ElMessage.success('鎾ゅ洖鎴愬姛');
+        getDepartPageInfo();
+      });
+    };
+    queryDeptPage();
+    const handleSelectionChange = (val) => {
+      state.selectList = val
+    }
+    // 鍒濆鍖栭」鐩姸鎬�
+    const onChushi = () => {
+      let idList = [];
+      if (state.selectList.length > 0) {
+        state.selectList.find(item => {
+          idList.push(item.id)
+        })
+        ProjectLibrary.projectStateInit(idList).then((res) => {
+          if (res) {
+            ElMessage.success('鍒濆鍖栭」鐩姸鎬佹垚鍔�');
+            getDepartPageInfo();
+          }
+        })
+      } else {
+        ElMessage.warning('璇疯嚦灏戦€夋嫨涓€涓」鐩紒');
+      }
+    };
+    // 鍦ㄥ缓椤圭洰
+    const onZaijian = () => {
+      let idList = [];
+      if (state.selectList.length > 0) {
+        state.selectList.find(item => {
+          idList.push(item.id)
+        })
+        ProjectLibrary.projectStateStart(idList).then((res) => {
+          if (res) {
+            ElMessage.success('鍦ㄥ缓椤圭洰鎴愬姛');
+            getDepartPageInfo();
+          }
+        })
+      } else {
+        ElMessage.warning('璇疯嚦灏戦€夋嫨涓€涓」鐩紒');
+      }
+    };
+    // 涓椤圭洰
+    const onZhongzhi = () => {
+      let idList = [];
+      if (state.selectList.length > 0) {
+        state.selectList.find(item => {
+          idList.push(item.id)
+        })
+        ProjectLibrary.projectStateBreak(idList).then((res) => {
+          if (res) {
+            ElMessage.success('涓椤圭洰鎴愬姛');
+            getDepartPageInfo();
+          }
+        })
+      } else {
+        ElMessage.warning('璇疯嚦灏戦€夋嫨涓€涓」鐩紒');
+      }
+    };
+    // 瀹岀粨椤圭洰
+    const onWanjie = () => {
+      let idList = [];
+      if (state.selectList.length > 0) {
+        state.selectList.find(item => {
+          idList.push(item.id)
+        })
+        ProjectLibrary.projectStateSuccess(idList).then((res) => {
+          if (res) {
+            ElMessage.success('瀹岀粨椤圭洰鎴愬姛');
+            getDepartPageInfo();
+          }
+        })
+      } else {
+        ElMessage.warning('璇疯嚦灏戦€夋嫨涓€涓」鐩紒');
+      }
+    };
+    return {
+      ...toRefs(state),
+      getDepartPageInfoFirst,
+      getPlanTypeEnum,
+      multipleTable,
+      seeView,
+      setTime,
+      getDepartPageInfo,
+      queryDeptPage,
+      moneyFormat,
+      toDetail,
+      toOne,
+      toTwo,
+      changeState,
+      handleSelectionChange,
+      onChushi,
+      onZaijian,
+      onZhongzhi,
+      onWanjie
+    };
+  }
+};
+</script>
+
+<style></style>
diff --git a/WebSite/src/views/main/project-library/declare/components/List.vue b/WebSite/src/views/main/project-library/declare/components/List.vue
index e10a9846..e57d10fe 100644
--- a/WebSite/src/views/main/project-library/declare/components/List.vue
+++ b/WebSite/src/views/main/project-library/declare/components/List.vue
@@ -24,7 +24,12 @@
           ></el-input>
         </el-col>
         <el-col :span="6">
-          <el-select v-model="checkInfo.level"  placeholder="璇疯緭鍏ラ」鐩骇鍒�" clearable v-if="checkInfo.identification == '1' ? false : true">
+          <el-select
+            v-model="checkInfo.level"
+            placeholder="璇疯緭鍏ラ」鐩骇鍒�"
+            clearable
+            v-if="checkInfo.identification == '1' ? false : true"
+          >
             <el-option label="涓夌骇椤圭洰" value="3"></el-option>
             <el-option label="鍥涚骇椤圭洰" value="4"></el-option>
           </el-select>
@@ -60,40 +65,48 @@
         class="mtop20"
         @selection-change="handleSelectionChange"
         fit
+        border
       >
-        <el-table-column type="selection" width="55" align="center" />
-        <el-table-column type="index" width="55" align="center" label="搴忓彿"  />
+        <el-table-column type="selection" width="55" align="center" :selectable="selectable" />
+        <el-table-column width="55" align="center" label="搴忓彿" prop="num">
+          <template #default="scope">
+            {{ scope.row.num == 0 ? '' : scope.row.num }}
+          </template>
+        </el-table-column>
         <!-- <el-table-column label="椤圭洰绫诲瀷" prop="projectType" /> -->
         <!-- <el-table-column label="璐熻矗浜虹紪鍙�" prop="projectLeaderCode" /> -->
         <el-table-column label="娴佺▼鐘舵€�" prop="state" />
-        <el-table-column label="椤圭洰绾у埆" prop="level" v-if="checkInfo.identification == '1' ? false : true" />
-        <el-table-column label="椤圭洰鍚嶇О" prop="projectName" />
+        <el-table-column
+          label="椤圭洰绾у埆"
+          prop="levelName"
+          v-if="checkInfo.identification == '1' ? false : true"
+        
+        />
+        <el-table-column label="椤圭洰鍚嶇О" prop="name" width="280">
+          <template #default="scope">
+           <div v-if="(scope.row.projectIdentification == false)" style="font-weight: 600; color: #999999;">
+            {{ makeName(scope.row.name, scope.row.level) }}
+           </div>
+           <div v-if="scope.row.projectIdentification">
+            <a @click="seeView(scope.row)" style="color: #409EFF;">{{ makeName(scope.row.name, scope.row.level) }}</a>
+           </div>
+          </template>
+        </el-table-column>
         <el-table-column label="璐熻矗浜�" prop="projectLeaderName" />
         <el-table-column label="鐢虫姤鍗曚綅" prop="departmentName" />
-        <el-table-column label="褰掑彛绠$悊閮ㄩ棬" prop="guiKouName" show-overflow-tooltip="true" />
+        <el-table-column
+          label="褰掑彛绠$悊閮ㄩ棬"
+          prop="guiKouName"
+          show-overflow-tooltip="true"
+        
+        />
         <el-table-column label="娴佺▼鎵€鍦ㄥ矖骞村害" prop="year" />
         <el-table-column label="鐢虫姤閲戦" prop="totalMoney" align="right">
           <template #default="scope">
             {{ moneyFormat(scope.row.totalMoney, 2, ',') }}
           </template>
         </el-table-column>
-        <el-table-column label="鎿嶄綔" width="200px" align="center">
-          <template #default="scope">
-            <el-form>
-              <el-button type="primary" plain @click="seeView(scope.row)"
-                >鏌ョ湅</el-button
-              >
-            </el-form>
-          </template>
-        </el-table-column>
       </el-table>
-      <Pagination
-        v-show="departInfo.total > 0"
-        :total="departInfo.total"
-        v-model:page="checkInfo.pageIndex"
-        v-model:limit="checkInfo.pageSize"
-        @pagination="getDepartPageInfo"
-      />
     </el-card>
     <el-dialog title="鎸戦€夐」鐩�" v-model="dialogVisible" width="800px">
       <div>
@@ -179,8 +192,6 @@ export default {
         projectName: '', //椤圭洰鍚嶇О
         departmentCode: '',
         typeList: '',
-        pageIndex: 1,
-        pageSize: 10,
         identification: route.path == '/i/project-library/declare' ? 0 : 1,
         level: ''
       },
@@ -213,7 +224,7 @@ export default {
     watch(
       () => route.path,
       val => {
-        console.log('route.path', val,val == '/i/project-library/declare');
+        console.log('route.path', val, val == '/i/project-library/declare');
         state.checkInfo.identification =
           val == '/i/project-library/declare' ? 0 : 1;
       }
@@ -248,14 +259,14 @@ export default {
       state.multipleSelection = val;
     };
     const getDepartPageInfoFirst = () => {
-      state.checkInfo.pageIndex = 1;
+      // state.checkInfo.pageIndex = 1;
       getDepartPageInfo();
     };
     // 鍒楄〃
     const getDepartPageInfo = () => {
       state.checkInfo.declarationStateGzy = '0';
-      state.checkInfo.year = Moment(state.checkInfo.year).format('YYYY')
-      ProjectLibrary.listProjectLibraryGzy(state.checkInfo).then(res => {
+      state.checkInfo.year = Moment(state.checkInfo.year).format('YYYY');
+      ProjectLibrary.listProjectLibraryGzyChange(state.checkInfo).then(res => {
         state.departInfo.tableData = res.data;
         state.departInfo.total = res.total;
       });
@@ -274,7 +285,9 @@ export default {
     };
     const queryHistoryProjectLibraryPageByCurrentUserDept = () => {
       state.loading = true;
-      state.projectCheckInfo.year = Moment(state.projectCheckInfo.year).format('YYYY')
+      state.projectCheckInfo.year = Moment(state.projectCheckInfo.year).format(
+        'YYYY'
+      );
       ProjectLibrary.queryHistoryProjectLibraryPageByCurrentUserDept(
         state.projectCheckInfo
       ).then(res => {
@@ -389,6 +402,16 @@ export default {
     const downloadImportTemplate = () => {
       ProjectLibrary.downLoadInfoTemplate();
     };
+    const makeName = (name, level) => {
+      console.log('name', name, level);
+      for (let i = 1; i < level; i++) {
+        name = '\xa0\xa0\xa0\xa0' + name;
+      }
+      return name
+    };
+    const selectable = (row) => {
+      return row.projectIdentification
+    }
     return {
       ...toRefs(state),
       handleAdd,
@@ -414,11 +437,12 @@ export default {
       handleSelectionProject,
       getDepartPageInfoFirst,
       handleSelectionChange,
-      getmoneyInfo
+      getmoneyInfo,
+      makeName,
+      selectable
     };
   }
 };
 </script>
 
-<style lang="scss" scoped>
-</style>
+<style lang="scss" scoped></style>
diff --git a/WebSite/src/views/main/project-library/declare/components/ListOld.vue b/WebSite/src/views/main/project-library/declare/components/ListOld.vue
new file mode 100644
index 00000000..e10a9846
--- /dev/null
+++ b/WebSite/src/views/main/project-library/declare/components/ListOld.vue
@@ -0,0 +1,424 @@
+<template>
+  <div>
+    <el-card>
+      <el-row :gutter="20">
+        <el-col :span="6">
+          <el-date-picker
+            :editable="false"
+            v-model="checkInfo.year"
+            type="year"
+            placeholder="閫夋嫨骞�"
+          >
+          </el-date-picker>
+        </el-col>
+        <!-- <el-col :span="6">
+          <el-input
+            v-model="checkInfo.projectType"
+            placeholder="璇疯緭鍏ラ」鐩被鍨�"
+          ></el-input>
+        </el-col> -->
+        <el-col :span="6">
+          <el-input
+            v-model="checkInfo.projectName"
+            placeholder="璇疯緭鍏ラ」鐩悕绉�"
+          ></el-input>
+        </el-col>
+        <el-col :span="6">
+          <el-select v-model="checkInfo.level"  placeholder="璇疯緭鍏ラ」鐩骇鍒�" clearable v-if="checkInfo.identification == '1' ? false : true">
+            <el-option label="涓夌骇椤圭洰" value="3"></el-option>
+            <el-option label="鍥涚骇椤圭洰" value="4"></el-option>
+          </el-select>
+        </el-col>
+      </el-row>
+      <el-row class="mtop20">
+        <el-button type="primary" plain @click="handleAdd">鏂板缓</el-button>
+        <el-button plain @click="getDepartPageInfoFirst">鏌ヨ</el-button>
+        <el-button type="danger" plain @click="handleDel">鍒犻櫎</el-button>
+        <el-button type="primary" plain @click="choiceProject"
+          >鎸戦€夊巻骞撮」鐩�</el-button
+        >
+        <!-- <div
+          style="position: absolute;right: 0px;height:28px;line-height:28px;color:red"
+        >
+          {{ money }}
+        </div> -->
+      </el-row>
+      <!-- <el-row class="mtop20">
+        <div
+          style="height: auto;line-height: 18px;color: red;font-size: 12px;border: 1px solid red;padding-top:3px;padding-bottom:3px;padding-left:3px;padding-right:3px;"
+        >
+          <div v-for="item in money" :key="item">{{ item }}</div>
+        </div>
+      </el-row> -->
+    </el-card>
+    <el-card class="mtop20">
+      <el-table
+        stripe
+        :data="departInfo.tableData"
+        style="width: 100%"
+        ref="multipleTable"
+        class="mtop20"
+        @selection-change="handleSelectionChange"
+        fit
+      >
+        <el-table-column type="selection" width="55" align="center" />
+        <el-table-column type="index" width="55" align="center" label="搴忓彿"  />
+        <!-- <el-table-column label="椤圭洰绫诲瀷" prop="projectType" /> -->
+        <!-- <el-table-column label="璐熻矗浜虹紪鍙�" prop="projectLeaderCode" /> -->
+        <el-table-column label="娴佺▼鐘舵€�" prop="state" />
+        <el-table-column label="椤圭洰绾у埆" prop="level" v-if="checkInfo.identification == '1' ? false : true" />
+        <el-table-column label="椤圭洰鍚嶇О" prop="projectName" />
+        <el-table-column label="璐熻矗浜�" prop="projectLeaderName" />
+        <el-table-column label="鐢虫姤鍗曚綅" prop="departmentName" />
+        <el-table-column label="褰掑彛绠$悊閮ㄩ棬" prop="guiKouName" show-overflow-tooltip="true" />
+        <el-table-column label="娴佺▼鎵€鍦ㄥ矖骞村害" prop="year" />
+        <el-table-column label="鐢虫姤閲戦" prop="totalMoney" align="right">
+          <template #default="scope">
+            {{ moneyFormat(scope.row.totalMoney, 2, ',') }}
+          </template>
+        </el-table-column>
+        <el-table-column label="鎿嶄綔" width="200px" align="center">
+          <template #default="scope">
+            <el-form>
+              <el-button type="primary" plain @click="seeView(scope.row)"
+                >鏌ョ湅</el-button
+              >
+            </el-form>
+          </template>
+        </el-table-column>
+      </el-table>
+      <Pagination
+        v-show="departInfo.total > 0"
+        :total="departInfo.total"
+        v-model:page="checkInfo.pageIndex"
+        v-model:limit="checkInfo.pageSize"
+        @pagination="getDepartPageInfo"
+      />
+    </el-card>
+    <el-dialog title="鎸戦€夐」鐩�" v-model="dialogVisible" width="800px">
+      <div>
+        <el-row :gutter="20">
+          <el-col :span="6">
+            <el-date-picker
+              :editable="false"
+              v-model="projectCheckInfo.year"
+              type="year"
+              placeholder="閫夋嫨骞�"
+            >
+            </el-date-picker>
+          </el-col>
+          <el-col :span="6">
+            <el-input
+              v-model="projectCheckInfo.projectName"
+              placeholder="璇疯緭鍏ラ」鐩悕绉�"
+            ></el-input>
+          </el-col>
+          <el-col :span="3">
+            <el-button plain @click="queryHistoryFirst">鏌ヨ</el-button>
+          </el-col>
+        </el-row>
+        <el-table
+          stripe
+          :data="projectInfo.tableData"
+          style="width: 100%"
+          ref="multipleTableP"
+          class="mtop20"
+          v-loading="loading"
+          fit
+          @selection-change="handleSelectionProject"
+        >
+          <el-table-column type="selection" width="55" align="center" />
+          <el-table-column label="骞翠唤" prop="year" />
+          <el-table-column label="椤圭洰缂栧彿" prop="departmentCode" />
+          <el-table-column label="椤圭洰鍚嶇О" prop="projectName" />
+          <el-table-column label="閲戦" prop="planMoney"> </el-table-column>
+          <el-table-column
+            label="鍒跺崟浜�"
+            prop="projectLeaderName"
+          ></el-table-column>
+        </el-table>
+        <Pagination
+          v-show="projectInfo.total > 0"
+          :total="projectInfo.total"
+          v-model:page="projectCheckInfo.pageIndex"
+          v-model:limit="projectCheckInfo.pageSize"
+          @pagination="queryHistoryProjectLibraryPageByCurrentUserDept"
+        />
+      </div>
+      <template #footer>
+        <span class="dialog-footer">
+          <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
+          <el-button type="primary" @click="handleOk">纭� 瀹�</el-button>
+        </span>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { reactive, toRefs, onMounted, ref, watch } from 'vue';
+import { ElMessage, ElMessageBox } from 'element-plus';
+import ProjectLibrary from '@/api/projectLibrary';
+import Moment from 'moment';
+import { Base } from '@/api/base/base';
+import { moneyFormat } from '@/utils';
+import { useRoute } from 'vue-router';
+export default {
+  setup(props, cxt) {
+    onMounted(() => {
+      getDepartPageInfo();
+      getmoneyInfo();
+      queryHistoryProjectLibraryPageByCurrentUserDept();
+    });
+    const multipleTable = ref(null);
+    const multipleTableP = ref(null);
+    const route = useRoute();
+    const state = reactive({
+      checkInfo: {
+        year: sessionStorage.getItem('year'), //骞翠唤
+        projectName: '', //椤圭洰鍚嶇О
+        departmentCode: '',
+        typeList: '',
+        pageIndex: 1,
+        pageSize: 10,
+        identification: route.path == '/i/project-library/declare' ? 0 : 1,
+        level: ''
+      },
+      money: [],
+
+      env: process.env.NAME,
+      uploadDialog: false,
+      loading: false,
+      projectCheckInfo: {
+        year: (Number(sessionStorage.getItem('year')) - 1).toString(), //骞翠唤
+        projectName: '', //椤圭洰鍚嶇О
+        departmentCode: '',
+        typeList: '',
+        pageIndex: 1,
+        pageSize: 10,
+        declarationStateGzy: '0' //锛�0锛氱敵鎶ュ簱锛�1锛氬偍澶囧簱锛�2锛氬畬缁撳簱锛�
+      },
+      projectInfo: {
+        total: 0,
+        tableData: []
+      },
+      dialogVisible: false,
+      departInfo: {
+        total: 0,
+        tableData: []
+      },
+      multipleSelection: [],
+      multipleSelectionProject: []
+    });
+    watch(
+      () => route.path,
+      val => {
+        console.log('route.path', val,val == '/i/project-library/declare');
+        state.checkInfo.identification =
+          val == '/i/project-library/declare' ? 0 : 1;
+      }
+    );
+    const seeView = row => {
+      cxt.emit('switch-page', 'Detail', true, row.id);
+    };
+    // 鍒犻櫎
+    const handleDel = () => {
+      if (state.multipleSelection.length === 0) {
+        ElMessage.warning('鍒犻櫎鏁版嵁涓嶈兘涓虹┖');
+        return false;
+      }
+      ElMessageBox.confirm('纭畾鍒犻櫎鎵€閫夌敤鎴峰悧?', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      })
+        .then(() => {
+          let idList = state.multipleSelection.map(v => v.projectLibraryID);
+          ProjectLibrary.removeProjectLibrary(idList).then(() => {
+            ElMessage.success('鍒犻櫎鎴愬姛');
+            getDepartPageInfo();
+          });
+        })
+        .catch(() => {
+          ElMessage.info('宸插彇娑堝垹闄�');
+          multipleTable.value.clearSelection();
+        });
+    };
+    const handleSelectionChange = val => {
+      state.multipleSelection = val;
+    };
+    const getDepartPageInfoFirst = () => {
+      state.checkInfo.pageIndex = 1;
+      getDepartPageInfo();
+    };
+    // 鍒楄〃
+    const getDepartPageInfo = () => {
+      state.checkInfo.declarationStateGzy = '0';
+      state.checkInfo.year = Moment(state.checkInfo.year).format('YYYY')
+      ProjectLibrary.listProjectLibraryGzy(state.checkInfo).then(res => {
+        state.departInfo.tableData = res.data;
+        state.departInfo.total = res.total;
+      });
+    };
+    const getmoneyInfo = () => {
+      ProjectLibrary.queryQuotaMoney(state.checkInfo.year).then(res => {
+        // state.money = res.data[0];
+        let arr = res.data[0].split('銆�');
+        console.log(arr, 'test1');
+        state.money = arr;
+      });
+    };
+    const queryHistoryFirst = () => {
+      state.projectCheckInfo.pageIndex = 1;
+      queryHistoryProjectLibraryPageByCurrentUserDept();
+    };
+    const queryHistoryProjectLibraryPageByCurrentUserDept = () => {
+      state.loading = true;
+      state.projectCheckInfo.year = Moment(state.projectCheckInfo.year).format('YYYY')
+      ProjectLibrary.queryHistoryProjectLibraryPageByCurrentUserDept(
+        state.projectCheckInfo
+      ).then(res => {
+        state.loading = false;
+        state.projectInfo.tableData = res.data;
+        state.projectInfo.total = res.total;
+      });
+    };
+    const choiceProject = async () => {
+      await getProjectInfo();
+      state.dialogVisible = true;
+    };
+    const getProjectInfoFirst = () => {
+      state.projectCheckInfo.pageIndex = 1;
+      getProjectInfo();
+    };
+    const getProjectInfo = () => {};
+    const getQueryProjectByPage = () => {
+      getProjectInfo();
+    };
+    const handleAdd = () => {
+      cxt.emit('switch-page', 'Detail', true);
+    };
+    const handleSelectionProject = val => {
+      state.multipleSelectionProject = val;
+    };
+    const handleOk = () => {
+      let idList = state.multipleSelectionProject.map(v => v.id);
+      ProjectLibrary.copyHistoryProjectLibrary(idList).then(res => {
+        console.log('res', res);
+        state.dialogVisible = false;
+        multipleTableP.value.clearSelection();
+        getDepartPageInfo();
+      });
+    };
+    const toDetail = row => {
+      cxt.emit('switch-page', 'Detail', true, row.id);
+    };
+    const toOne = (row, index) => {
+      //  0 杩涘叆 1 鍙栨秷 2 鏂囧瓧
+      if (row.oneUPState === 0) {
+        ProjectLibrary.enterProjectPlanType1(row.id).then(res => {
+          console.log('resrow', res);
+          getDepartPageInfo();
+        });
+      } else if (row.oneUPState === 1) {
+        if (index === 1) {
+          cxt.emit('switch-page', 'Detail', true, row.oneUPBookID);
+        } else {
+          ProjectLibrary.cancelEnterProjectPlanType1(row.id).then(res => {
+            console.log('res', res);
+            getDepartPageInfo();
+          });
+        }
+      } else {
+        cxt.emit('switch-page', 'Detail', true, row.oneUPBookID);
+      }
+    };
+    const toTwo = (row, index) => {
+      console.log('row', row);
+      //  0 杩涘叆 1 鍙栨秷 2 鏂囧瓧
+      if (row.twoUPState === 0) {
+        ProjectLibrary.enterProjectPlanType2(row.id).then(res => {
+          console.log('resrow', res);
+          getDepartPageInfo();
+        });
+      } else if (row.twoUPState === 1) {
+        if (index === 1) {
+          cxt.emit('switch-page', 'Detail', true, row.twoUPBookID);
+        } else {
+          ProjectLibrary.cancelEnterProjectPlanType2(row.id).then(res => {
+            console.log('res', res);
+            getDepartPageInfo();
+          });
+        }
+      } else {
+        cxt.emit('switch-page', 'Detail', true, row.twoUPBookID);
+      }
+    };
+    const setTime = () => {
+      state.checkInfo.year = Moment(state.checkInfo.year).format('YYYY');
+    };
+    const setTime2 = () => {
+      state.projectCheckInfo.year = Moment(state.projectCheckInfo.year).format(
+        'YYYY'
+      );
+    };
+    const uploadHandler = async fileList => {
+      const formData = new FormData();
+      fileList.forEach(file => {
+        formData.append('file', file.raw);
+      });
+      const res = await ProjectLibrary.importInfoPlan(formData);
+      console.log(res);
+      if (res.code === '00000') {
+        ElMessage.success('瀵煎叆鎴愬姛');
+        state.uploadDialog = false;
+        // getPageList();
+      } else {
+        if ('code' in res) {
+          //閿欒淇℃伅
+          ElMessage.warning(res.description);
+          state.uploadDialog = false;
+        } else {
+          //娴�
+          state.uploadDialog = false;
+          ElMessage.error('瀵煎叆澶辫触锛岃涓嬭浇鏂囦欢鏌ョ湅澶辫触鍘熷洜');
+          Base.downloadFile(res);
+        }
+      }
+    };
+    const downloadImportTemplate = () => {
+      ProjectLibrary.downLoadInfoTemplate();
+    };
+    return {
+      ...toRefs(state),
+      handleAdd,
+      toOne,
+      toTwo,
+      uploadHandler,
+      setTime,
+      setTime2,
+      seeView,
+      choiceProject,
+      moneyFormat,
+      downloadImportTemplate,
+      toDetail,
+      handleOk,
+      multipleTable,
+      multipleTableP,
+      getProjectInfoFirst,
+      queryHistoryFirst,
+      queryHistoryProjectLibraryPageByCurrentUserDept,
+      getQueryProjectByPage,
+      getDepartPageInfo,
+      handleDel,
+      handleSelectionProject,
+      getDepartPageInfoFirst,
+      handleSelectionChange,
+      getmoneyInfo
+    };
+  }
+};
+</script>
+
+<style lang="scss" scoped>
+</style>
diff --git a/WebSite/src/views/main/project-library/reserve/components/List.vue b/WebSite/src/views/main/project-library/reserve/components/List.vue
index 3ebdb3b8..2d5aa834 100644
--- a/WebSite/src/views/main/project-library/reserve/components/List.vue
+++ b/WebSite/src/views/main/project-library/reserve/components/List.vue
@@ -65,16 +65,26 @@
         class="mtop20"
         fit
         @selection-change="handleSelectionChange"
+        border
       >
-        <el-table-column type="selection" width="55" align="center" />
-        <el-table-column type="index" width="55" align="center" label="搴忓彿"  />
-        <el-table-column label="娴佺▼鐘舵€�" prop="state" />
-        <el-table-column label="椤圭洰绾у埆" prop="level" />
-        <el-table-column label="椤圭洰鍚嶇О" prop="projectName" />
-        <!-- <el-table-column label="椤圭洰绫诲瀷" prop="projectType" /> -->
-        <!-- <el-table-column label="閮ㄩ棬鍚嶇О" prop="departmentName" /> -->
-        <!-- <el-table-column label="閮ㄩ棬缂栧彿" prop="departmentCode" /> -->
-        <!-- <el-table-column label="璐熻矗浜虹紪鍙�" prop="projectLeaderCode" /> -->
+        <el-table-column type="selection" width="55" align="center" :selectable="selectable" />
+        <el-table-column width="55" align="center" label="搴忓彿" prop="num">
+          <template #default="scope">
+            {{ scope.row.num == 0 ? '' : scope.row.num }}
+          </template>
+        </el-table-column>
+        <el-table-column label="娴佺▼鐘舵€�" prop="state"/>
+        <el-table-column label="椤圭洰绾у埆" prop="levelName" v-if="checkInfo.identification == '1' ? false : true"/>
+        <el-table-column label="椤圭洰鍚嶇О" prop="name" width="280" >
+          <template #default="scope">
+           <div v-if="(scope.row.projectIdentification == false)" style="font-weight: 600; color: #999999;">
+            {{ makeName(scope.row.name, scope.row.level) }}
+           </div>
+           <div v-if="scope.row.projectIdentification">
+            <a @click="seeView(scope.row)" style="color: #409EFF;">{{ makeName(scope.row.name, scope.row.level) }}</a>
+           </div>
+          </template>
+        </el-table-column>
         <el-table-column label="璐熻矗浜哄鍚�" prop="projectLeaderName" />
         <el-table-column label="鐢虫姤鍗曚綅" prop="departmentName" />
         <el-table-column label="褰掑彛绠$悊閮ㄩ棬" prop="guiKouName" />
@@ -89,31 +99,12 @@
             {{ moneyFormat(scope.row.quotaMoney, 2, ',') }}
           </template>
         </el-table-column>
-        <el-table-column label="椤圭洰鐘舵€�" prop="projectState" >
+        <el-table-column label="椤圭洰鐘舵€�" prop="projectState">
           <template #default="scope">
             <span>{{ scope.row.projectState === 0 ? '-' : scope.row.projectState === 1 ? '鍦ㄥ缓' :  scope.row.projectState === 2 ? '涓' : '瀹岀粨'}}</span>
           </template>
         </el-table-column>
-        <el-table-column label="鎿嶄綔" width="200px" align="center">
-          <template #default="scope">
-            <el-form>
-              <el-button type="primary" plain @click="seeView(scope.row)"
-                >鏌ョ湅</el-button
-              >
-              <!-- <el-button type="primary" plain @click="changeState(scope.row.id)"
-                >杩涘叆瀹岀粨搴�</el-button
-              > -->
-            </el-form>
-          </template>
-        </el-table-column>
       </el-table>
-      <Pagination
-        v-show="departInfo.total > 0"
-        :total="departInfo.total"
-        v-model:page="checkInfo.pageIndex"
-        v-model:limit="checkInfo.pageSize"
-        @pagination="getDepartPageInfo"
-      />
     </el-card>
   </div>
 </template>
@@ -137,8 +128,6 @@ export default {
         year: sessionStorage.getItem('year'), //骞翠唤
         projectName: '', //椤圭洰鍚嶇О
         departmentCode: '', //椤圭洰搴�
-        pageIndex: 1,
-        pageSize: 10,
         declarationStateGzy: '1', //锛�0锛氱敵鎶ュ簱锛�1锛氬偍澶囧簱锛�2锛氬畬缁撳簱锛�
         projectState: [0,1],
         level: ''
@@ -208,7 +197,7 @@ export default {
       // }
     };
     const getDepartPageInfo = () => {
-      ProjectLibrary.listProjectLibraryGzy(state.checkInfo).then(res => {
+      ProjectLibrary.listProjectLibraryGzyChange(state.checkInfo).then(res => {
         state.departInfo.tableData = res.data;
         state.departInfo.total = res.total;
         //  console.log(state.departInfo,'1234')
@@ -303,6 +292,16 @@ export default {
         ElMessage.warning('璇疯嚦灏戦€夋嫨涓€涓」鐩紒');
       }
     };
+    const makeName = (name, level) => {
+      console.log('name', name, level);
+      for (let i = 1; i < level; i++) {
+        name = '\xa0\xa0\xa0\xa0' + name;
+      }
+      return name
+    };
+    const selectable = (row) => {
+      return row.projectIdentification
+    }
     return {
       ...toRefs(state),
       getDepartPageInfoFirst,
@@ -321,7 +320,9 @@ export default {
       onChushi,
       onZaijian,
       onZhongzhi,
-      onWanjie
+      onWanjie,
+      makeName,
+      selectable
     };
   }
 };
diff --git a/WebSite/src/views/main/project-library/reserve/components/ListOld.vue b/WebSite/src/views/main/project-library/reserve/components/ListOld.vue
new file mode 100644
index 00000000..3ebdb3b8
--- /dev/null
+++ b/WebSite/src/views/main/project-library/reserve/components/ListOld.vue
@@ -0,0 +1,330 @@
+<template>
+  <div>
+    <el-card>
+      <el-row :gutter="20">
+        <el-col :span="6">
+          <el-date-picker
+            v-model="checkInfo.year"
+            :editable="false"
+            type="year"
+            @change="setTime"
+            placeholder="閫夋嫨骞�"
+          >
+          </el-date-picker>
+        </el-col>
+        <!-- <el-col :span="6">
+          <el-input
+            v-model="checkInfo.projectType"
+            placeholder="璇疯緭鍏ラ」鐩被鍨�"
+          ></el-input>
+        </el-col> -->
+        <el-col :span="6">
+          <el-input
+            v-model="checkInfo.projectName"
+            placeholder="璇疯緭鍏ラ」鐩悕绉�"
+          ></el-input>
+        </el-col>
+        <el-col :span="6">
+          <el-select
+            filterable
+            clearable
+            v-model="checkInfo.departmentCode"
+            placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�"
+          >
+            <el-option
+              v-for="(v, index) in deptList"
+              :key="index"
+              :label="v.name"
+              :value="v.code"
+            ></el-option>
+          </el-select>
+        </el-col>
+      </el-row>
+      <el-row class="mtop20" :gutter="20">
+        <el-col :span="6">
+          <el-select v-model="checkInfo.level"  placeholder="璇疯緭鍏ラ」鐩骇鍒�" clearable>
+            <el-option label="涓夌骇椤圭洰" value="3"></el-option>
+            <el-option label="鍥涚骇椤圭洰" value="4"></el-option>
+          </el-select>
+        </el-col>
+        <el-col :span="12">
+          <el-button plain @click="getDepartPageInfoFirst">鏌ヨ</el-button>
+          <el-button type="primary" plain @click="onChushi">鍒濆鍖栭」鐩姸鎬�</el-button>
+          <el-button type="primary" plain @click="onZaijian">鍦ㄥ缓椤圭洰</el-button>
+          <el-button type="primary" plain @click="onZhongzhi">涓椤圭洰</el-button>
+          <el-button type="primary" plain @click="onWanjie">瀹岀粨椤圭洰</el-button>
+        </el-col>
+      </el-row>
+    </el-card>
+    <el-card class="mtop20">
+      <el-table
+        stripe
+        :data="departInfo.tableData"
+        style="width: 100%"
+        ref="multipleTable"
+        class="mtop20"
+        fit
+        @selection-change="handleSelectionChange"
+      >
+        <el-table-column type="selection" width="55" align="center" />
+        <el-table-column type="index" width="55" align="center" label="搴忓彿"  />
+        <el-table-column label="娴佺▼鐘舵€�" prop="state" />
+        <el-table-column label="椤圭洰绾у埆" prop="level" />
+        <el-table-column label="椤圭洰鍚嶇О" prop="projectName" />
+        <!-- <el-table-column label="椤圭洰绫诲瀷" prop="projectType" /> -->
+        <!-- <el-table-column label="閮ㄩ棬鍚嶇О" prop="departmentName" /> -->
+        <!-- <el-table-column label="閮ㄩ棬缂栧彿" prop="departmentCode" /> -->
+        <!-- <el-table-column label="璐熻矗浜虹紪鍙�" prop="projectLeaderCode" /> -->
+        <el-table-column label="璐熻矗浜哄鍚�" prop="projectLeaderName" />
+        <el-table-column label="鐢虫姤鍗曚綅" prop="departmentName" />
+        <el-table-column label="褰掑彛绠$悊閮ㄩ棬" prop="guiKouName" />
+        <el-table-column label="娴佺▼鎵€鍦ㄥ矖骞村害" prop="year" />
+        <el-table-column label="鐢虫姤閲戦" prop="totalMoney" align="right">
+          <template #default="scope">
+            {{ moneyFormat(scope.row.totalMoney, 2, ',') }}
+          </template>
+        </el-table-column>
+        <el-table-column label="涓嬭揪閲戦" prop="quotaMoney" align="right">
+          <template #default="scope">
+            {{ moneyFormat(scope.row.quotaMoney, 2, ',') }}
+          </template>
+        </el-table-column>
+        <el-table-column label="椤圭洰鐘舵€�" prop="projectState" >
+          <template #default="scope">
+            <span>{{ scope.row.projectState === 0 ? '-' : scope.row.projectState === 1 ? '鍦ㄥ缓' :  scope.row.projectState === 2 ? '涓' : '瀹岀粨'}}</span>
+          </template>
+        </el-table-column>
+        <el-table-column label="鎿嶄綔" width="200px" align="center">
+          <template #default="scope">
+            <el-form>
+              <el-button type="primary" plain @click="seeView(scope.row)"
+                >鏌ョ湅</el-button
+              >
+              <!-- <el-button type="primary" plain @click="changeState(scope.row.id)"
+                >杩涘叆瀹岀粨搴�</el-button
+              > -->
+            </el-form>
+          </template>
+        </el-table-column>
+      </el-table>
+      <Pagination
+        v-show="departInfo.total > 0"
+        :total="departInfo.total"
+        v-model:page="checkInfo.pageIndex"
+        v-model:limit="checkInfo.pageSize"
+        @pagination="getDepartPageInfo"
+      />
+    </el-card>
+  </div>
+</template>
+
+<script>
+import { reactive, toRefs, onMounted, ref } from 'vue';
+import ProjectLibrary from '@/api/projectLibrary';
+import Moment from 'moment';
+import { moneyFormat } from '@/utils';
+import { ElMessage } from 'element-plus';
+export default {
+  setup(props, cxt) {
+    onMounted(() => {
+      getDepartPageInfo();
+      getPlanTypeEnum();
+    });
+    const multipleTable = ref(null);
+    const state = reactive({
+      deptList: [],
+      checkInfo: {
+        year: sessionStorage.getItem('year'), //骞翠唤
+        projectName: '', //椤圭洰鍚嶇О
+        departmentCode: '', //椤圭洰搴�
+        pageIndex: 1,
+        pageSize: 10,
+        declarationStateGzy: '1', //锛�0锛氱敵鎶ュ簱锛�1锛氬偍澶囧簱锛�2锛氬畬缁撳簱锛�
+        projectState: [0,1],
+        level: ''
+      },
+      departInfo: {
+        total: 0,
+        tableData: []
+      },
+      planInfo: [],
+      selectList: []
+    });
+    const getDepartPageInfoFirst = () => {
+      state.checkInfo.pageIndex = 1;
+      getDepartPageInfo();
+    };
+    const toDetail = row => {
+      cxt.emit('switch-page', 'Detail', true, row.id);
+    };
+    // 鍒楄〃
+    const queryDeptPage = () => {
+      ProjectLibrary.queryDeptPage({ pageIndex: 1, pageSize: 9999 }).then(
+        res => {
+          state.deptList = res.data;
+        }
+      );
+    };
+    const toOne = row => {
+      console.log('row', row);
+      //  0 杩涘叆 1 鍙栨秷 2 鏂囧瓧
+      // if (row.oneUPState === 0) {
+      //   ProjectLibrary.enterProjectPlanType1(row.id).then(res => {
+      //     console.log('resrow', res);
+      //     getDepartPageInfo();
+      //   });
+      // } else if (row.oneUPState === 1) {
+      //   if (index === 1) {
+      //     cxt.emit('switch-page', 'Detail', true, row.oneUPBookID);
+      //   } else {
+      //     ProjectLibrary.cancelEnterProjectPlanType1(row.id).then(res => {
+      //       console.log('res', res);
+      //       getDepartPageInfo();
+      //     });
+      //   }
+      // } else {
+      cxt.emit('switch-page', 'Detail', true, row.oneUPBookID);
+      // }
+    };
+    const toTwo = row => {
+      console.log('row', row);
+      //  0 杩涘叆 1 鍙栨秷 2 鏂囧瓧
+      // if (row.twoUPState === 0) {
+      //   ProjectLibrary.enterProjectPlanType2(row.id).then(res => {
+      //     console.log('resrow', res);
+      //     getDepartPageInfo();
+      //   });
+      // } else if (row.twoUPState === 1) {
+      //   if (index === 1) {
+      //     cxt.emit('switch-page', 'Detail', true, row.twoUPBookID);
+      //   } else {
+      //     ProjectLibrary.cancelEnterProjectPlanType2(row.id).then(res => {
+      //       console.log('res', res);
+      //       getDepartPageInfo();
+      //     });
+      //   }
+      // } else {
+      cxt.emit('switch-page', 'Detail', true, row.twoUPBookID);
+      // }
+    };
+    const getDepartPageInfo = () => {
+      ProjectLibrary.listProjectLibraryGzy(state.checkInfo).then(res => {
+        state.departInfo.tableData = res.data;
+        state.departInfo.total = res.total;
+        //  console.log(state.departInfo,'1234')
+      });
+    };
+    const getPlanTypeEnum = () => {
+      ProjectLibrary.getPlanTypeEnum({}).then(res => {
+        state.planInfo = res.data;
+      });
+    };
+    const seeView = row => {
+      cxt.emit('switch-page', 'Detail', true, row.id);
+    };
+    const setTime = () => {
+      state.checkInfo.year = Moment(state.checkInfo.year).format('YYYY');
+    };
+    const changeState = id => {
+      ProjectLibrary.changeDeclarationStateById(id).then(() => {
+        ElMessage.success('杩涘叆瀹岀粨搴撴垚鍔�');
+        getDepartPageInfo();
+      });
+    };
+    queryDeptPage();
+    const handleSelectionChange = (val) => {
+      state.selectList = val
+    }
+    // 鍒濆鍖栭」鐩姸鎬�
+    const onChushi = () => {
+      let idList = [];
+      if (state.selectList.length > 0) {
+        state.selectList.find(item => {
+          idList.push(item.id)
+        })
+        ProjectLibrary.projectStateInit(idList).then((res) => {
+          if (res) {
+            ElMessage.success('鍒濆鍖栭」鐩姸鎬佹垚鍔�');
+            getDepartPageInfo();
+          }
+        })
+      } else {
+        ElMessage.warning('璇疯嚦灏戦€夋嫨涓€涓」鐩紒');
+      }
+    };
+    // 鍦ㄥ缓椤圭洰
+    const onZaijian = () => {
+      let idList = [];
+      if (state.selectList.length > 0) {
+        state.selectList.find(item => {
+          idList.push(item.id)
+        })
+        ProjectLibrary.projectStateStart(idList).then((res) => {
+          if (res) {
+            ElMessage.success('鍦ㄥ缓椤圭洰鎴愬姛');
+            getDepartPageInfo();
+          }
+        })
+      } else {
+        ElMessage.warning('璇疯嚦灏戦€夋嫨涓€涓」鐩紒');
+      }
+    };
+    // 涓椤圭洰
+    const onZhongzhi = () => {
+      let idList = [];
+      if (state.selectList.length > 0) {
+        state.selectList.find(item => {
+          idList.push(item.id)
+        })
+        ProjectLibrary.projectStateBreak(idList).then((res) => {
+          if (res) {
+            ElMessage.success('涓椤圭洰鎴愬姛');
+            getDepartPageInfo();
+          }
+        })
+      } else {
+        ElMessage.warning('璇疯嚦灏戦€夋嫨涓€涓」鐩紒');
+      }
+    };
+    // 瀹岀粨椤圭洰
+    const onWanjie = () => {
+      let idList = [];
+      if (state.selectList.length > 0) {
+        state.selectList.find(item => {
+          idList.push(item.id)
+        })
+        ProjectLibrary.projectStateSuccess(idList).then((res) => {
+          if (res) {
+            ElMessage.success('瀹岀粨椤圭洰鎴愬姛');
+            getDepartPageInfo();
+          }
+        })
+      } else {
+        ElMessage.warning('璇疯嚦灏戦€夋嫨涓€涓」鐩紒');
+      }
+    };
+    return {
+      ...toRefs(state),
+      getDepartPageInfoFirst,
+      getPlanTypeEnum,
+      multipleTable,
+      seeView,
+      setTime,
+      getDepartPageInfo,
+      queryDeptPage,
+      toDetail,
+      toOne,
+      moneyFormat,
+      toTwo,
+      changeState,
+      handleSelectionChange,
+      onChushi,
+      onZaijian,
+      onZhongzhi,
+      onWanjie
+    };
+  }
+};
+</script>
+
+<style></style>
diff --git a/WebSite/src/views/performance/declaration.vue b/WebSite/src/views/performance/declaration.vue
index ae891672..993f6ab7 100644
--- a/WebSite/src/views/performance/declaration.vue
+++ b/WebSite/src/views/performance/declaration.vue
@@ -6,6 +6,7 @@
         @handleSave="handleSave"
         @handleSubmit="handleSubmit"
         @handleReturn="handleReturn"
+        @handleCancel="handleCancel"
         :flowInfo="flowInfo"
       ></Flow>
     </el-card>
@@ -44,9 +45,9 @@
               <el-form-item>
                 <el-input
                   v-model="scope.row.amount1"
-                  v-if="!scope.row.amount1"
+                  onkeyup="value=value.replace(/[^0-9.]/gi,'').replace(/\.{2,}/g, '.')"
+                  @blur="changeInput(scope.row)"
                 ></el-input>
-                <div v-if="scope.row.amount1">{{ scope.row.amount1 }}</div>
               </el-form-item>
             </template>
           </el-table-column>
@@ -55,9 +56,9 @@
               <el-form-item>
                 <el-input
                   v-model="scope.row.amount2"
-                  v-if="!scope.row.amount2"
+                  onkeyup="value=value.replace(/[^0-9.]/gi,'').replace(/\.{2,}/g, '.')"
+                  @blur="changeInput(scope.row)"
                 ></el-input>
-                <div v-if="scope.row.amount2">{{ scope.row.amount2 }}</div>
               </el-form-item>
             </template>
           </el-table-column>
@@ -66,9 +67,9 @@
               <el-form-item>
                 <el-input
                   v-model="scope.row.amount3"
-                  v-if="!scope.row.amount3"
+                  onkeyup="value=value.replace(/[^0-9.]/gi,'').replace(/\.{2,}/g, '.')"
+                  @blur="changeInput(scope.row)"
                 ></el-input>
-                <div v-if="scope.row.amount3">{{ scope.row.amount3 }}</div>
               </el-form-item>
             </template>
           </el-table-column>
@@ -77,9 +78,9 @@
               <el-form-item>
                 <el-input
                   v-model="scope.row.amount4"
-                  v-if="!scope.row.amount4"
+                  onkeyup="value=value.replace(/[^0-9.]/gi,'').replace(/\.{2,}/g, '.')"
+                  @blur="changeInput(scope.row)"
                 ></el-input>
-                <div v-if="scope.row.amount4">{{ scope.row.amount4 }}</div>
               </el-form-item>
             </template>
           </el-table-column>
@@ -88,9 +89,9 @@
               <el-form-item>
                 <el-input
                   v-model="scope.row.amount5"
-                  v-if="!scope.row.amount5"
+                  onkeyup="value=value.replace(/[^0-9.]/gi,'').replace(/\.{2,}/g, '.')"
+                  @blur="changeInput(scope.row)"
                 ></el-input>
-                <div v-if="scope.row.amount5">{{ scope.row.amount5 }}</div>
               </el-form-item>
             </template>
           </el-table-column>
@@ -99,9 +100,7 @@
               <el-form-item>
                 <el-input
                   v-model="scope.row.amount6"
-                  v-if="!scope.row.amount6"
                 ></el-input>
-                <div v-if="scope.row.amount6">{{ scope.row.amount6 }}</div>
               </el-form-item>
             </template>
           </el-table-column>
@@ -297,6 +296,7 @@
 
 <script>
 import Api from '@/api';
+import { ElMessage } from 'element-plus';
 export default {
   components: {},
   props: {
@@ -444,7 +444,7 @@ export default {
       }
     };
   },
-  async created() {
+  created() {
     if (this.$route.query.type) {
       Api.queryTargetPlan(
         this.$route.query.parentId,
@@ -452,7 +452,7 @@ export default {
       ).then(res => {
         this.detail = res.data[0];
         this.detail.extendFieldList = JSON.parse(res.data[0].extendFieldList);
-      this.tableData =   this.detail.extendFieldList.achievementslist
+        this.tableData = this.detail.extendFieldList.achievementslist;
         this.flowInfo = res.data[0].flowCanShowOut;
       });
     }
@@ -460,15 +460,15 @@ export default {
       this.detail.fundsProjectName = this.$route.query.projectName;
       this.detail.schoolProjectName = this.$route.query.ownDeptName;
       this.detail.extendFieldList.schoolfundsdep = this.$route.query.ownDeptName;
-       this.getlist();
+      this.getlist();
     }
   },
 
   computed: {},
   methods: {
-     getlist() {
+    getlist() {
       Api.queryTargetByPlanId(this.$route.query.parentId).then(res => {
-        this.detail.extendFieldList.travelOnBusinessDetail = res.data
+        this.detail.extendFieldList.travelOnBusinessDetail = res.data;
       });
     },
     handleBack() {
@@ -496,6 +496,7 @@ export default {
       this.detail.extendFieldList = JSON.stringify(this.detail.extendFieldList);
       Api.saveTargetPlanOwn(this.detail).then(res => {
         console.log(res);
+        ElMessage.success('淇濆瓨鎴愬姛');
         this.getformlist();
       });
     },
@@ -506,14 +507,46 @@ export default {
         console.log(this.detail.extendFieldList, '99999');
       });
     },
-    handleSubmit() {
-      this.$emit('handleSubmit');
+    handleSubmit(flowOutput) {
+      console.log('flowOutput', flowOutput);
+      let data = {
+        id: this.$route.query.parentId,
+        type: '璺熻釜',
+        remake: flowOutput.remake,
+        nodeIds: [flowOutput.nodeIds]
+      };
+      Api.submitTarget(data).then(res => {
+        console.log('res', res);
+        ElMessage.success('鎻愪氦鎴愬姛');
+        this.getlist();
+        this.getformlist();
+      });
     },
-    handleReturn() {
-      this.$emit('handleReturn');
+    handleReturn(flowOutput) {
+      console.log('1');
+      Api.rollBackTarget({
+        id: this.$route.query.parentId,
+        type: '璺熻釜',
+        remake: flowOutput.remake,
+        nodeIds: [flowOutput.nodeIds]
+      }).then((res) => {
+        console.log('res', res);
+        ElMessage.success('鍥為€€鎴愬姛');
+        this.getlist();
+        this.getformlist();
+      })
     },
     handleCancel() {
-      this.$emit('handleCancel');
+      console.log('2');
+      Api.recallTarget({
+        id: this.$route.query.parentId,
+        type: '璺熻釜'
+      }).then((res) => {
+        console.log('res', res);
+        ElMessage.success('鍥炴挙鎴愬姛');
+        this.getlist();
+        this.getformlist();
+      })
     },
     addPeopleInfo() {
       this.detail.extendFieldList.travelOnBusinessDetail.push({});
@@ -552,6 +585,17 @@ export default {
     },
     deletePelpleRow(index) {
       this.detail.extendFieldList.travelOnBusinessDetail.splice(index, 1);
+    },
+    changeInput(row) {
+      console.log('riw', row);
+      // let regs = /^(0|([1-9]\d*))(\.\d{1,2})?$/;
+      let regs = /^\d*\.{0,1}\d{0,2}$/;
+      if (regs.test(row.amount1)) {
+        return row.amount1
+      } else {
+        // row.amount1 = Math.floor(row.amount1 * 100) /100
+        return row.amount1
+      }
     }
   }
 };
diff --git a/WebSite/src/views/performance/declarationview.vue b/WebSite/src/views/performance/declarationview.vue
index a228de68..f666b027 100644
--- a/WebSite/src/views/performance/declarationview.vue
+++ b/WebSite/src/views/performance/declarationview.vue
@@ -104,14 +104,9 @@
           prop="year"
           align="center"
         ></el-table-column>
-        <el-table-column
-          label="椤圭洰绫诲埆"
-          prop="projectType"
-          align="center"
-        ></el-table-column>
         <el-table-column
           label="椤圭洰绫诲瀷"
-          prop="projectTypes"
+          prop="projectType"
           align="center"
         ></el-table-column>
         <el-table-column label="椤圭洰鍚嶇О" prop="projectName" align="center">
@@ -295,13 +290,12 @@ export default {
       this.getfollowlist(this.formData);
     },
     //鍒犻櫎
-
     remove(row) {
       this.$router.push({
         path: '/i/performance/declaration',
         query: {
           parentId: row.id,
-          type: '鑷瘎'
+          type: '璺熻釜'
         }
       });
     },
@@ -311,7 +305,8 @@ export default {
         query: {
           parentId: row.id,
           projectName: row.projectName,
-          ownDeptName: row.ownDeptName
+          ownDeptName: row.ownDeptName,
+          type: '璺熻釜'
         }
       });
     },
diff --git a/WebSite/src/views/performance/declarationwatchview.vue b/WebSite/src/views/performance/declarationwatchview.vue
index ff590537..55dcefde 100644
--- a/WebSite/src/views/performance/declarationwatchview.vue
+++ b/WebSite/src/views/performance/declarationwatchview.vue
@@ -104,14 +104,9 @@
           prop="year"
           align="center"
         ></el-table-column>
-        <el-table-column
-          label="椤圭洰绫诲埆"
-          prop="projectType"
-          align="center"
-        ></el-table-column>
         <el-table-column
           label="椤圭洰绫诲瀷"
-          prop="projectTypes"
+          prop="projectType"
           align="center"
         ></el-table-column>
         <el-table-column label="椤圭洰鍚嶇О" prop="projectName" align="center">
diff --git a/WebSite/src/views/performance/evaluation.vue b/WebSite/src/views/performance/evaluation.vue
index a85f0d56..1a3f7154 100644
--- a/WebSite/src/views/performance/evaluation.vue
+++ b/WebSite/src/views/performance/evaluation.vue
@@ -6,6 +6,7 @@
         @handleSave="handleSave"
         @handleSubmit="handleSubmit"
         @handleReturn="handleReturn"
+        @handleCancel="handleCancel"
         :flowInfo="flowInfo"
       ></Flow>
     </el-card>
@@ -50,9 +51,9 @@
               <el-form-item>
                 <el-input
                   v-model="scope.row.amount1"
-                  v-if="!scope.row.amount1"
+                  onkeyup="value=value.replace(/[^0-9.]/gi,'').replace(/\.{2,}/g, '.')"
+                  @blur="changeInput(scope.row)"
                 ></el-input>
-                <div v-if="scope.row.amount1">{{ scope.row.amount1 }}</div>
               </el-form-item>
             </template>
           </el-table-column>
@@ -61,9 +62,9 @@
               <el-form-item>
                 <el-input
                   v-model="scope.row.amount2"
-                  v-if="!scope.row.amount2"
+                  onkeyup="value=value.replace(/[^0-9.]/gi,'').replace(/\.{2,}/g, '.')"
+                  @blur="changeInput(scope.row)"
                 ></el-input>
-                <div v-if="scope.row.amount2">{{ scope.row.amount2 }}</div>
               </el-form-item>
             </template>
           </el-table-column>
@@ -72,9 +73,9 @@
               <el-form-item>
                 <el-input
                   v-model="scope.row.amount3"
-                  v-if="!scope.row.amount3"
+                  onkeyup="value=value.replace(/[^0-9.]/gi,'').replace(/\.{2,}/g, '.')"
+                  @blur="changeInput(scope.row)"
                 ></el-input>
-                <div v-if="scope.row.amount3">{{ scope.row.amount3 }}</div>
               </el-form-item>
             </template>
           </el-table-column>
@@ -83,9 +84,9 @@
               <el-form-item>
                 <el-input
                   v-model="scope.row.amount4"
-                  v-if="!scope.row.amount4"
+                  onkeyup="value=value.replace(/[^0-9.]/gi,'').replace(/\.{2,}/g, '.')"
+                  @blur="changeInput(scope.row)"
                 ></el-input>
-                <div v-if="scope.row.amount4">{{ scope.row.amount4 }}</div>
               </el-form-item>
             </template>
           </el-table-column>
@@ -95,9 +96,7 @@
               <el-form-item>
                 <el-input
                   v-model="scope.row.amount5"
-                  v-if="!scope.row.amount5"
                 ></el-input>
-                <div v-if="scope.row.amount5">{{ scope.row.amount5 }}</div>
               </el-form-item>
             </template>
           </el-table-column>
@@ -251,6 +250,7 @@
 
 <script>
 import Api from '@/api';
+import { ElMessage } from 'element-plus';
 export default {
   components: {},
   props: {
@@ -455,14 +455,44 @@ export default {
         this.getformlist();
       });
     },
-    handleSubmit() {
-      this.$emit('handleSubmit');
+    handleSubmit(flowOutput) {
+      let data = {
+        id: this.$route.query.parentId,
+        type: '鑷瘎',
+        remake: flowOutput.remake,
+        nodeIds: [flowOutput.nodeIds]
+      };
+      // this.$emit('handleSubmit');
+      Api.submitTarget(data).then(res => {
+        console.log('res', res);
+        ElMessage.success('鎻愪氦鎴愬姛');
+        this.getlist();
+        this.getformlist();
+      });
     },
-    handleReturn() {
-      this.$emit('handleReturn');
+    handleReturn(flowOutput) {
+      Api.rollBackTarget({
+        id: this.$route.query.parentId,
+        type: '鑷瘎',
+        remake: flowOutput.remake,
+        nodeIds: [flowOutput.nodeIds]
+      }).then((res) => {
+        console.log('res', res);
+        ElMessage.success('鍥為€€鎴愬姛');
+        this.getlist();
+        this.getformlist();
+      })
     },
     handleCancel() {
-      this.$emit('handleCancel');
+      Api.recallTarget({
+        id: this.$route.query.parentId,
+        type: '鑷瘎'
+      }).then((res) => {
+        console.log('res', res);
+        ElMessage.success('鍥炴挙鎴愬姛');
+        this.getlist();
+        this.getformlist();
+      })
     },
     addPeopleInfo() {
       this.detail.extendFieldList.travelOnBusinessDetail.push({});
@@ -510,6 +540,16 @@ export default {
     },
     deletePelpleRow(index) {
       this.detail.extendFieldList.travelOnBusinessDetail.splice(index, 1);
+    },
+    changeInput(row) {
+      console.log('riw', row);
+      let regs = /^(0|([1-9]\d*))(\.\d{1,2})?$/;
+      if (regs.test(row.amount1)) {
+        return row.amount1
+      } else {
+        row.amount1 = Math.floor(row.amount1 * 100) /100
+        return row.amount1
+      }
     }
   }
 };
diff --git a/WebSite/src/views/performance/evaluationview.vue b/WebSite/src/views/performance/evaluationview.vue
index 125776d5..06be70e3 100644
--- a/WebSite/src/views/performance/evaluationview.vue
+++ b/WebSite/src/views/performance/evaluationview.vue
@@ -105,14 +105,9 @@
           prop="year"
           align="center"
         ></el-table-column>
-        <el-table-column
-          label="椤圭洰绫诲埆"
-          prop="projectType"
-          align="center"
-        ></el-table-column>
         <el-table-column
           label="椤圭洰绫诲瀷"
-          prop="projectTypes"
+          prop="projectType"
           align="center"
         ></el-table-column>
         <el-table-column label="椤圭洰鍚嶇О" prop="projectName" align="center">
diff --git a/WebSite/src/views/performance/evaluationwatchview.vue b/WebSite/src/views/performance/evaluationwatchview.vue
index 41ac8d5a..4b127674 100644
--- a/WebSite/src/views/performance/evaluationwatchview.vue
+++ b/WebSite/src/views/performance/evaluationwatchview.vue
@@ -105,14 +105,9 @@
           prop="year"
           align="center"
         ></el-table-column>
-        <el-table-column
-          label="椤圭洰绫诲埆"
-          prop="projectType"
-          align="center"
-        ></el-table-column>
         <el-table-column
           label="椤圭洰绫诲瀷"
-          prop="projectTypes"
+          prop="projectType"
           align="center"
         ></el-table-column>
         <el-table-column label="椤圭洰鍚嶇О" prop="projectName" align="center">
diff --git a/WebSite/src/views/performance/rectification.vue b/WebSite/src/views/performance/rectification.vue
index b7b0cf47..7c848c37 100644
--- a/WebSite/src/views/performance/rectification.vue
+++ b/WebSite/src/views/performance/rectification.vue
@@ -6,6 +6,7 @@
         @handleSave="handleSave"
         @handleSubmit="handleSubmit"
         @handleReturn="handleReturn"
+        @handleCancel="handleCancel"
         :flowInfo="flowInfo"
       ></Flow>
     </el-card>
@@ -106,6 +107,7 @@
 
 <script>
 import Api from '@/api';
+import { ElMessage } from 'element-plus';
 export default {
   components: {},
   props: {
@@ -324,14 +326,40 @@ export default {
         this.getformlist();
       });
     },
-    handleSubmit() {
-      this.$emit('handleSubmit');
+    handleSubmit(flowOutput) {
+      let data = {
+        id: this.$route.query.parentId,
+        type: '鏁存敼',
+        remake: flowOutput.remake,
+        nodeIds: [flowOutput.nodeIds]
+      };
+      Api.submitTarget(data).then(res => {
+        console.log('res', res);
+        ElMessage.success('鎻愪氦鎴愬姛');
+        this.getformlist();
+      });
     },
-    handleReturn() {
-      this.$emit('handleReturn');
+    handleReturn(flowOutput) {
+      Api.rollBackTarget({
+        id: this.$route.query.parentId,
+        type: '鏁存敼',
+        remake: flowOutput.remake,
+        nodeIds: [flowOutput.nodeIds]
+      }).then((res) => {
+        console.log('res', res);
+        ElMessage.success('鍥為€€鎴愬姛');
+        this.getformlist();
+      })
     },
     handleCancel() {
-      this.$emit('handleCancel');
+      Api.recallTarget({
+        id: this.$route.query.parentId,
+        type: '鏁存敼'
+      }).then((res) => {
+        console.log('res', res);
+        ElMessage.success('鍥炴挙鎴愬姛');
+        this.getformlist();
+      })
     },
     addPeopleInfo() {
       this.detail.extendFieldList.fundspeople = this.fundspeople;
diff --git a/WebSite/src/views/performance/rectificationview.vue b/WebSite/src/views/performance/rectificationview.vue
index 5e448c2d..883783a0 100644
--- a/WebSite/src/views/performance/rectificationview.vue
+++ b/WebSite/src/views/performance/rectificationview.vue
@@ -105,14 +105,9 @@
           prop="year"
           align="center"
         ></el-table-column>
-        <el-table-column
-          label="椤圭洰绫诲埆"
-          prop="projectType"
-          align="center"
-        ></el-table-column>
         <el-table-column
           label="椤圭洰绫诲瀷"
-          prop="projectTypes"
+          prop="projectType"
           align="center"
         ></el-table-column>
         <el-table-column label="椤圭洰鍚嶇О" prop="projectName" align="center">
diff --git a/WebSite/src/views/performance/rectificationwatchview.vue b/WebSite/src/views/performance/rectificationwatchview.vue
index 379902e9..ef4c6639 100644
--- a/WebSite/src/views/performance/rectificationwatchview.vue
+++ b/WebSite/src/views/performance/rectificationwatchview.vue
@@ -105,14 +105,9 @@
           prop="year"
           align="center"
         ></el-table-column>
-        <el-table-column
-          label="椤圭洰绫诲埆"
-          prop="projectType"
-          align="center"
-        ></el-table-column>
         <el-table-column
           label="椤圭洰绫诲瀷"
-          prop="projectTypes"
+          prop="projectType"
           align="center"
         ></el-table-column>
         <el-table-column label="椤圭洰鍚嶇О" prop="projectName" align="center">
diff --git a/WebSite/src/views/yo-dept-bz/first/PeopleFundApply/components/List.vue b/WebSite/src/views/yo-dept-bz/first/PeopleFundApply/components/List.vue
index 3f4f0b27..c60bff94 100644
--- a/WebSite/src/views/yo-dept-bz/first/PeopleFundApply/components/List.vue
+++ b/WebSite/src/views/yo-dept-bz/first/PeopleFundApply/components/List.vue
@@ -8,7 +8,7 @@
         </el-col>
         <el-col :span="6">
           <el-button @click="getPersonList" plain>鏌ヨ</el-button>
-          <el-button @click="onReport" plain>瀵煎嚭</el-button>
+          <!-- <el-button @click="onReport" plain>瀵煎嚭</el-button> -->
         </el-col>
       </el-row>
     </el-card>
diff --git a/WebSite/src/views/yo-dept-bz/second/SecondPeopleFundApply/components/List.vue b/WebSite/src/views/yo-dept-bz/second/SecondPeopleFundApply/components/List.vue
index 08c31032..bb6a7892 100644
--- a/WebSite/src/views/yo-dept-bz/second/SecondPeopleFundApply/components/List.vue
+++ b/WebSite/src/views/yo-dept-bz/second/SecondPeopleFundApply/components/List.vue
@@ -8,7 +8,7 @@
         </el-col>
         <el-col :span="6">
           <el-button @click="getPersonList" plain>鏌ヨ</el-button>
-          <el-button @click="onReport" plain>瀵煎嚭</el-button>
+          <!-- <el-button @click="onReport" plain>瀵煎嚭</el-button> -->
         </el-col>
       </el-row>
     </el-card>
-- 
GitLab


From 8421d3c602d0ae8b06c2e1c079c1b6ef21ded492 Mon Sep 17 00:00:00 2001
From: lshwy817 <lshwy817@163.com>
Date: Fri, 2 Dec 2022 20:00:20 +0800
Subject: [PATCH 6/7] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 WebSite/src/views/main/basicSetting/match/index.vue   |  7 ++++---
 .../main/project-library/declare/components/List.vue  |  1 -
 WebSite/src/views/performance/declaration.vue         |  6 +++---
 WebSite/src/views/performance/declarationview.vue     |  2 +-
 .../src/views/performance/declarationwatchview.vue    |  2 +-
 WebSite/src/views/performance/evaluation.vue          |  6 +++---
 WebSite/src/views/performance/evaluationview.vue      |  2 +-
 WebSite/src/views/performance/evaluationwatchview.vue |  2 +-
 WebSite/src/views/performance/rectification.vue       |  5 +++--
 WebSite/src/views/performance/rectificationview.vue   |  4 ++--
 .../src/views/performance/rectificationwatchview.vue  |  4 ++--
 .../src/views/yo-common/ProjectFundApply/index.vue    | 11 +++++++++++
 12 files changed, 32 insertions(+), 20 deletions(-)

diff --git a/WebSite/src/views/main/basicSetting/match/index.vue b/WebSite/src/views/main/basicSetting/match/index.vue
index 3f402614..5d52970c 100644
--- a/WebSite/src/views/main/basicSetting/match/index.vue
+++ b/WebSite/src/views/main/basicSetting/match/index.vue
@@ -134,13 +134,14 @@ export default {
           return item
         }
       })
-      state.fundTemplateCmdList.push({
-        limitName: newList.controlsName,
+      let fundTemplateCmdList = []
+      fundTemplateCmdList.push({
+        limitName: newList ? newList.controlsName : '',
         templateCode: state.titleText.templateCode,
         templateName: state.titleText.templateName,
         ...val
       })
-      ProjectLibrary.saveFundTemplate(state.fundTemplateCmdList).then(() => {
+      ProjectLibrary.saveFundTemplate(fundTemplateCmdList).then(() => {
         ElMessage.success('淇濆瓨鎴愬姛');
         queryList();
       })
diff --git a/WebSite/src/views/main/project-library/declare/components/List.vue b/WebSite/src/views/main/project-library/declare/components/List.vue
index e57d10fe..d1f35460 100644
--- a/WebSite/src/views/main/project-library/declare/components/List.vue
+++ b/WebSite/src/views/main/project-library/declare/components/List.vue
@@ -79,7 +79,6 @@
         <el-table-column
           label="椤圭洰绾у埆"
           prop="levelName"
-          v-if="checkInfo.identification == '1' ? false : true"
         
         />
         <el-table-column label="椤圭洰鍚嶇О" prop="name" width="280">
diff --git a/WebSite/src/views/performance/declaration.vue b/WebSite/src/views/performance/declaration.vue
index 993f6ab7..ac23d591 100644
--- a/WebSite/src/views/performance/declaration.vue
+++ b/WebSite/src/views/performance/declaration.vue
@@ -490,7 +490,7 @@ export default {
       }
       return false;
     },
-    handleSave() {
+    async handleSave() {
       this.detail.extendFieldList.achievementslist = this.tableData;
       this.detail.parentId = this.$route.query.parentId;
       this.detail.extendFieldList = JSON.stringify(this.detail.extendFieldList);
@@ -507,8 +507,8 @@ export default {
         console.log(this.detail.extendFieldList, '99999');
       });
     },
-    handleSubmit(flowOutput) {
-      console.log('flowOutput', flowOutput);
+    async handleSubmit(flowOutput) {
+      await this.handleSave();
       let data = {
         id: this.$route.query.parentId,
         type: '璺熻釜',
diff --git a/WebSite/src/views/performance/declarationview.vue b/WebSite/src/views/performance/declarationview.vue
index f666b027..d17693d0 100644
--- a/WebSite/src/views/performance/declarationview.vue
+++ b/WebSite/src/views/performance/declarationview.vue
@@ -195,7 +195,7 @@ export default {
       dialogVisible: false,
       isShowForm: true,
       formData: {
-        year: '2022',
+        year: '2023',
         deptName: '',
         // ownDeptName: '',
         projectName: '',
diff --git a/WebSite/src/views/performance/declarationwatchview.vue b/WebSite/src/views/performance/declarationwatchview.vue
index 55dcefde..e55dc47b 100644
--- a/WebSite/src/views/performance/declarationwatchview.vue
+++ b/WebSite/src/views/performance/declarationwatchview.vue
@@ -195,7 +195,7 @@ export default {
       dialogVisible: false,
       isShowForm: true,
       formData: {
-        year: '2022',
+        year: '2023',
         deptName: '',
         // ownDeptName: '',
         projectName: '',
diff --git a/WebSite/src/views/performance/evaluation.vue b/WebSite/src/views/performance/evaluation.vue
index 1a3f7154..6fd4904a 100644
--- a/WebSite/src/views/performance/evaluation.vue
+++ b/WebSite/src/views/performance/evaluation.vue
@@ -446,7 +446,7 @@ export default {
       }
       return false;
     },
-    handleSave() {
+    async handleSave() {
       this.detail.extendFieldList.achievementslist = this.tableData;
       this.detail.parentId = this.$route.query.parentId;
       this.detail.extendFieldList = JSON.stringify(this.detail.extendFieldList);
@@ -455,14 +455,14 @@ export default {
         this.getformlist();
       });
     },
-    handleSubmit(flowOutput) {
+    async handleSubmit(flowOutput) {
+      await this.handleSave();
       let data = {
         id: this.$route.query.parentId,
         type: '鑷瘎',
         remake: flowOutput.remake,
         nodeIds: [flowOutput.nodeIds]
       };
-      // this.$emit('handleSubmit');
       Api.submitTarget(data).then(res => {
         console.log('res', res);
         ElMessage.success('鎻愪氦鎴愬姛');
diff --git a/WebSite/src/views/performance/evaluationview.vue b/WebSite/src/views/performance/evaluationview.vue
index 06be70e3..ca07e592 100644
--- a/WebSite/src/views/performance/evaluationview.vue
+++ b/WebSite/src/views/performance/evaluationview.vue
@@ -196,7 +196,7 @@ export default {
       dialogVisible: false,
       isShowForm: true,
       formData: {
-        year: '2022',
+        year: '2023',
         deptName: '',
         ownDeptName: '',
         projectName: '',
diff --git a/WebSite/src/views/performance/evaluationwatchview.vue b/WebSite/src/views/performance/evaluationwatchview.vue
index 4b127674..c328f17f 100644
--- a/WebSite/src/views/performance/evaluationwatchview.vue
+++ b/WebSite/src/views/performance/evaluationwatchview.vue
@@ -196,7 +196,7 @@ export default {
       dialogVisible: false,
       isShowForm: true,
       formData: {
-        year: '2022',
+        year: '2023',
         deptName: '',
         ownDeptName: '',
         projectName: '',
diff --git a/WebSite/src/views/performance/rectification.vue b/WebSite/src/views/performance/rectification.vue
index 7c848c37..8336bddb 100644
--- a/WebSite/src/views/performance/rectification.vue
+++ b/WebSite/src/views/performance/rectification.vue
@@ -317,7 +317,7 @@ export default {
       }
       return false;
     },
-    handleSave() {
+    async handleSave() {
       this.detail.extendFieldList.achievementslist = this.tableData;
       this.detail.parentId = this.$route.query.parentId;
       this.detail.extendFieldList = JSON.stringify(this.detail.extendFieldList);
@@ -326,7 +326,8 @@ export default {
         this.getformlist();
       });
     },
-    handleSubmit(flowOutput) {
+    async handleSubmit(flowOutput) {
+      await this.handleSave()
       let data = {
         id: this.$route.query.parentId,
         type: '鏁存敼',
diff --git a/WebSite/src/views/performance/rectificationview.vue b/WebSite/src/views/performance/rectificationview.vue
index 883783a0..c50357eb 100644
--- a/WebSite/src/views/performance/rectificationview.vue
+++ b/WebSite/src/views/performance/rectificationview.vue
@@ -196,7 +196,7 @@ export default {
       dialogVisible: false,
       isShowForm: true,
       formData: {
-        year: '2022',
+        year: '2023',
         deptName: '',
         ownDeptName: '',
         projectName: '',
@@ -245,7 +245,7 @@ export default {
       dataCountProject: 0,
       multipleSelect: [],
       formSelect: {
-        year: '2022',
+        year: '2023',
         pageIndex: 1,
         pageSize: 10
       }
diff --git a/WebSite/src/views/performance/rectificationwatchview.vue b/WebSite/src/views/performance/rectificationwatchview.vue
index ef4c6639..4bcf0b84 100644
--- a/WebSite/src/views/performance/rectificationwatchview.vue
+++ b/WebSite/src/views/performance/rectificationwatchview.vue
@@ -196,7 +196,7 @@ export default {
       dialogVisible: false,
       isShowForm: true,
       formData: {
-        year: '2022',
+        year: '2023',
         deptName: '',
         ownDeptName: '',
         projectName: '',
@@ -245,7 +245,7 @@ export default {
       dataCountProject: 0,
       multipleSelect: [],
       formSelect: {
-        year: '2022',
+        year: '2023',
         pageIndex: 1,
         pageSize: 10
       }
diff --git a/WebSite/src/views/yo-common/ProjectFundApply/index.vue b/WebSite/src/views/yo-common/ProjectFundApply/index.vue
index d9e39d92..322c0215 100644
--- a/WebSite/src/views/yo-common/ProjectFundApply/index.vue
+++ b/WebSite/src/views/yo-common/ProjectFundApply/index.vue
@@ -361,6 +361,17 @@
           <template #header> 椤圭洰姒傝堪</template>
           <!-- 涓婃捣澶у -->
           <div class="formRef">
+            <el-form-item
+              label="1銆侀」鐩珛椤逛緷鎹�"
+              prop="summary.basis"
+              label-width="200px"
+              style="display: none;"
+            >
+              <el-input
+                v-model="applyInfo.summary.basis"
+                type="textarea"
+              ></el-input>
+            </el-form-item>
             <el-form-item
               label="1銆侀」鐩珛椤逛緷鎹�"
               prop="summary.basis"
-- 
GitLab


From ee42f64f42ad66cfd0bfdb9d84eff83473e81554 Mon Sep 17 00:00:00 2001
From: lshwy817 <lshwy817@163.com>
Date: Fri, 2 Dec 2022 22:12:45 +0800
Subject: [PATCH 7/7] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8F=90=E4=BA=A4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 WebSite/src/views/performance/declaration.vue | 50 +++++++++++--------
 .../src/views/performance/declarationview.vue |  1 -
 WebSite/src/views/performance/evaluation.vue  | 48 ++++++++++--------
 .../src/views/performance/rectification.vue   | 38 +++++++-------
 4 files changed, 75 insertions(+), 62 deletions(-)

diff --git a/WebSite/src/views/performance/declaration.vue b/WebSite/src/views/performance/declaration.vue
index ac23d591..07ae290c 100644
--- a/WebSite/src/views/performance/declaration.vue
+++ b/WebSite/src/views/performance/declaration.vue
@@ -322,8 +322,8 @@ export default {
             value: '绉戠爺澶勫鏍�'
           }
         ],
-        user: '绯荤粺绠$悊鍛�',
-        state: '璐熻矗浜鸿ˉ鍏�',
+        user: '',
+        state: '',
         flow: [
           {
             actionTime: '2020骞�9鏈�11鏃�',
@@ -356,13 +356,13 @@ export default {
         ],
         btnStates: {
           isShowSave: true,
-          isShowSubmit: true,
-          isShowReject: true,
+          isShowSubmit: this.$route.query.projectName ? false : true,
+          isShowReject: this.$route.query.projectName ? false : true,
           isShowRevoke: false,
-          isShowChart: true,
-          isShowHistory: true,
-          isShowUser: true,
-          isShowState: true,
+          isShowChart: false,
+          isShowHistory: false,
+          isShowUser: false,
+          isShowState: false,
           isShowCancel: false
         }
       },
@@ -467,8 +467,9 @@ export default {
   computed: {},
   methods: {
     getlist() {
+      const that = this;
       Api.queryTargetByPlanId(this.$route.query.parentId).then(res => {
-        this.detail.extendFieldList.travelOnBusinessDetail = res.data;
+        that.detail.extendFieldList.travelOnBusinessDetail = res.data;
       });
     },
     handleBack() {
@@ -494,20 +495,23 @@ export default {
       this.detail.extendFieldList.achievementslist = this.tableData;
       this.detail.parentId = this.$route.query.parentId;
       this.detail.extendFieldList = JSON.stringify(this.detail.extendFieldList);
-      Api.saveTargetPlanOwn(this.detail).then(res => {
-        console.log(res);
-        ElMessage.success('淇濆瓨鎴愬姛');
-        this.getformlist();
-      });
+      await Api.saveTargetPlanOwn(this.detail);
+      this.detail.extendFieldList = JSON.parse(this.detail.extendFieldList);
+      ElMessage.success('淇濆瓨鎴愬姛');
+      this.getlist();
+      this.getformlist();
     },
     getformlist() {
+      const that = this;
       Api.queryTargetPlan(this.$route.query.parentId, '璺熻釜').then(res => {
-        this.detail = res.data[0];
-        this.detail.extendFieldList = JSON.parse(res.data[0].extendFieldList);
+        that.detail = res.data[0];
+        that.detail.extendFieldList = JSON.parse(res.data[0].extendFieldList);
+        that.flowInfo = res.data[0].flowCanShowOut;
         console.log(this.detail.extendFieldList, '99999');
       });
     },
     async handleSubmit(flowOutput) {
+      const that = this;
       await this.handleSave();
       let data = {
         id: this.$route.query.parentId,
@@ -518,12 +522,13 @@ export default {
       Api.submitTarget(data).then(res => {
         console.log('res', res);
         ElMessage.success('鎻愪氦鎴愬姛');
-        this.getlist();
-        this.getformlist();
+        that.getlist();
+        that.getformlist();
       });
     },
     handleReturn(flowOutput) {
       console.log('1');
+      const that = this;
       Api.rollBackTarget({
         id: this.$route.query.parentId,
         type: '璺熻釜',
@@ -532,20 +537,21 @@ export default {
       }).then((res) => {
         console.log('res', res);
         ElMessage.success('鍥為€€鎴愬姛');
-        this.getlist();
-        this.getformlist();
+        that.getlist();
+        that.getformlist();
       })
     },
     handleCancel() {
       console.log('2');
+      const that = this;
       Api.recallTarget({
         id: this.$route.query.parentId,
         type: '璺熻釜'
       }).then((res) => {
         console.log('res', res);
         ElMessage.success('鍥炴挙鎴愬姛');
-        this.getlist();
-        this.getformlist();
+        that.getlist();
+        that.getformlist();
       })
     },
     addPeopleInfo() {
diff --git a/WebSite/src/views/performance/declarationview.vue b/WebSite/src/views/performance/declarationview.vue
index d17693d0..b615477e 100644
--- a/WebSite/src/views/performance/declarationview.vue
+++ b/WebSite/src/views/performance/declarationview.vue
@@ -306,7 +306,6 @@ export default {
           parentId: row.id,
           projectName: row.projectName,
           ownDeptName: row.ownDeptName,
-          type: '璺熻釜'
         }
       });
     },
diff --git a/WebSite/src/views/performance/evaluation.vue b/WebSite/src/views/performance/evaluation.vue
index 6fd4904a..82324af1 100644
--- a/WebSite/src/views/performance/evaluation.vue
+++ b/WebSite/src/views/performance/evaluation.vue
@@ -276,8 +276,8 @@ export default {
             value: '绉戠爺澶勫鏍�'
           }
         ],
-        user: '绯荤粺绠$悊鍛�',
-        state: '璐熻矗浜鸿ˉ鍏�',
+        user: '',
+        state: '',
         flow: [
           {
             actionTime: '2020骞�9鏈�11鏃�',
@@ -310,13 +310,13 @@ export default {
         ],
         btnStates: {
           isShowSave: true,
-          isShowSubmit: true,
-          isShowReject: true,
+          isShowSubmit: this.$route.query.projectName ? false : true,
+          isShowReject: this.$route.query.projectName ? false : true,
           isShowRevoke: false,
-          isShowChart: true,
-          isShowHistory: true,
-          isShowUser: true,
-          isShowState: true,
+          isShowChart: false,
+          isShowHistory: false,
+          isShowUser: false,
+          isShowState: false,
           isShowCancel: false
         }
       },
@@ -423,8 +423,9 @@ export default {
   computed: {},
   methods: {
     getlist() {
+      const that = this;
       Api.queryTargetByPlanId(this.$route.query.parentId).then(res => {
-        this.detail.extendFieldList.travelOnBusinessDetail = res.data;
+        that.detail.extendFieldList.travelOnBusinessDetail = res.data;
       });
     },
     handleBack() {
@@ -450,12 +451,12 @@ export default {
       this.detail.extendFieldList.achievementslist = this.tableData;
       this.detail.parentId = this.$route.query.parentId;
       this.detail.extendFieldList = JSON.stringify(this.detail.extendFieldList);
-      Api.saveTargetPlanSelf(this.detail).then(res => {
-        console.log(res.data, '9999');
-        this.getformlist();
-      });
+      await Api.saveTargetPlanSelf(this.detail);
+      ElMessage.success('淇濆瓨鎴愬姛');
+      this.getformlist();
     },
     async handleSubmit(flowOutput) {
+      const that = this;
       await this.handleSave();
       let data = {
         id: this.$route.query.parentId,
@@ -466,11 +467,12 @@ export default {
       Api.submitTarget(data).then(res => {
         console.log('res', res);
         ElMessage.success('鎻愪氦鎴愬姛');
-        this.getlist();
-        this.getformlist();
+        that.getlist();
+        that.getformlist();
       });
     },
     handleReturn(flowOutput) {
+      const that = this;
       Api.rollBackTarget({
         id: this.$route.query.parentId,
         type: '鑷瘎',
@@ -479,19 +481,20 @@ export default {
       }).then((res) => {
         console.log('res', res);
         ElMessage.success('鍥為€€鎴愬姛');
-        this.getlist();
-        this.getformlist();
+        that.getlist();
+        that.getformlist();
       })
     },
     handleCancel() {
+      const that = this;
       Api.recallTarget({
         id: this.$route.query.parentId,
         type: '鑷瘎'
       }).then((res) => {
         console.log('res', res);
         ElMessage.success('鍥炴挙鎴愬姛');
-        this.getlist();
-        this.getformlist();
+        that.getlist();
+        that.getformlist();
       })
     },
     addPeopleInfo() {
@@ -512,10 +515,11 @@ export default {
       // console.log('uploadFile');
     },
     getformlist() {
+      const that = this;
       Api.queryTargetPlan(this.$route.query.parentId, '鑷瘎').then(res => {
-        this.detail = res.data[0];
-        this.detail.extendFieldList = JSON.parse(res.data[0].extendFieldList);
-        this.flowInfo = res.data[0].flowCanShowOut;
+        that.detail = res.data[0];
+        that.detail.extendFieldList = JSON.parse(res.data[0].extendFieldList);
+        that.flowInfo = res.data[0].flowCanShowOut;
 
         console.log(this.detail.extendFieldList, '99999');
       });
diff --git a/WebSite/src/views/performance/rectification.vue b/WebSite/src/views/performance/rectification.vue
index 8336bddb..26c7801a 100644
--- a/WebSite/src/views/performance/rectification.vue
+++ b/WebSite/src/views/performance/rectification.vue
@@ -133,8 +133,8 @@ export default {
             value: '绉戠爺澶勫鏍�'
           }
         ],
-        user: '绯荤粺绠$悊鍛�',
-        state: '璐熻矗浜鸿ˉ鍏�',
+        user: '',
+        state: '',
         flow: [
           {
             actionTime: '2020骞�9鏈�11鏃�',
@@ -167,13 +167,13 @@ export default {
         ],
         btnStates: {
           isShowSave: true,
-          isShowSubmit: true,
-          isShowReject: true,
+          isShowSubmit: this.$route.query.projectName ? false : true,
+          isShowReject: this.$route.query.projectName ? false : true,
           isShowRevoke: false,
-          isShowChart: true,
-          isShowHistory: true,
-          isShowUser: true,
-          isShowState: true,
+          isShowChart: false,
+          isShowHistory: false,
+          isShowUser: false,
+          isShowState: false,
           isShowCancel: false
         }
       },
@@ -292,9 +292,11 @@ export default {
   computed: {},
   methods: {
     getformlist() {
+      const that = this;
       Api.queryTargetPlan(this.$route.query.parentId, '鏁存敼').then(res => {
-        this.detail = res.data[0];
-        this.detail.extendFieldList = JSON.parse(res.data[0].extendFieldList);
+        that.detail = res.data[0];
+        that.detail.extendFieldList = JSON.parse(res.data[0].extendFieldList);
+        that.flowInfo = res.data[0].flowCanShowOut;
         console.log(this.detail.extendFieldList, '99999');
       });
     },
@@ -321,12 +323,12 @@ export default {
       this.detail.extendFieldList.achievementslist = this.tableData;
       this.detail.parentId = this.$route.query.parentId;
       this.detail.extendFieldList = JSON.stringify(this.detail.extendFieldList);
-      Api.saveTargetPlanReform(this.detail).then(res => {
-        console.log(res.data, '9999');
-        this.getformlist();
-      });
+      await Api.saveTargetPlanReform(this.detail);
+      ElMessage.success('淇濆瓨鎴愬姛');
+      this.getformlist();
     },
     async handleSubmit(flowOutput) {
+      const that = this;
       await this.handleSave()
       let data = {
         id: this.$route.query.parentId,
@@ -337,10 +339,11 @@ export default {
       Api.submitTarget(data).then(res => {
         console.log('res', res);
         ElMessage.success('鎻愪氦鎴愬姛');
-        this.getformlist();
+        that.getformlist();
       });
     },
     handleReturn(flowOutput) {
+      const that = this;
       Api.rollBackTarget({
         id: this.$route.query.parentId,
         type: '鏁存敼',
@@ -349,17 +352,18 @@ export default {
       }).then((res) => {
         console.log('res', res);
         ElMessage.success('鍥為€€鎴愬姛');
-        this.getformlist();
+        that.getformlist();
       })
     },
     handleCancel() {
+      const that = this;
       Api.recallTarget({
         id: this.$route.query.parentId,
         type: '鏁存敼'
       }).then((res) => {
         console.log('res', res);
         ElMessage.success('鍥炴挙鎴愬姛');
-        this.getformlist();
+        that.getformlist();
       })
     },
     addPeopleInfo() {
-- 
GitLab