From 4288763d891c5bad5f5033be045fc0598881049a Mon Sep 17 00:00:00 2001
From: lshwy817 <lshwy817@163.com>
Date: Fri, 7 Apr 2023 08:52:31 +0800
Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug=E5=B9=B6=E6=96=B0?=
 =?UTF-8?q?=E5=A2=9E=E6=96=B0=E7=9A=84=E9=A1=B5=E9=9D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 WebSite/.env.gxzzzy                           |    2 +
 WebSite/.env.sd                               |    2 +-
 WebSite/package.json                          |    1 +
 WebSite/src/api/deptSP.js                     |    6 +
 WebSite/src/api/projectLibrary.js             |   11 +
 WebSite/src/main.js                           |    3 +-
 WebSite/src/router/modules/deptSP.js          |    6 +
 .../src/views/login/components/SelectUser.vue |    1 +
 .../allocation/apply/components/Detail.vue    |    1 +
 .../main/basicSetting/fundsArrive/index.vue   |   13 +-
 .../projectLibrary/components/Detail.vue      |    6 +-
 .../subjectsSetting/components/Detail.vue     |    2 +-
 .../basicSetting/subjectsSetting/index.vue    |    2 +-
 .../department/components/List.vue            |  201 ++-
 .../main/project-library/fundCardNo/index.vue |    2 +-
 .../inSchool/components/List.vue              |   75 +-
 .../yo-common/ProjectFundApply/index.vue      |    4 +-
 .../Personnel/components/List.vue             |   83 ++
 .../Personnel/components/workDetail.vue       | 1142 +++++++++++++++++
 .../project-fund-approval/Personnel/index.vue |   46 +
 WebSite/vue.config.js                         |    4 +-
 21 files changed, 1549 insertions(+), 64 deletions(-)
 create mode 100644 WebSite/.env.gxzzzy
 create mode 100644 WebSite/src/views/yo-dept-sp/project-fund-approval/Personnel/components/List.vue
 create mode 100644 WebSite/src/views/yo-dept-sp/project-fund-approval/Personnel/components/workDetail.vue
 create mode 100644 WebSite/src/views/yo-dept-sp/project-fund-approval/Personnel/index.vue

diff --git a/WebSite/.env.gxzzzy b/WebSite/.env.gxzzzy
new file mode 100644
index 000000000..5a087f2b6
--- /dev/null
+++ b/WebSite/.env.gxzzzy
@@ -0,0 +1,2 @@
+NODE_ENV = gxzzzy
+VUE_APP_BASE_API = '/projectplan'
\ No newline at end of file
diff --git a/WebSite/.env.sd b/WebSite/.env.sd
index 81dcba04b..c517e5671 100644
--- a/WebSite/.env.sd
+++ b/WebSite/.env.sd
@@ -1,2 +1,2 @@
 NODE_ENV = sd
-VUE_APP_BASE_API = '/projectplanshu'
\ No newline at end of file
+VUE_APP_BASE_API = '/projectplan'
\ No newline at end of file
diff --git a/WebSite/package.json b/WebSite/package.json
index 158611b51..326543902 100644
--- a/WebSite/package.json
+++ b/WebSite/package.json
@@ -17,6 +17,7 @@
     "build:jsxy": "vue-cli-service build --mode jsxy",
     "build:sues": "vue-cli-service build --mode sues",
     "build:shnu": "vue-cli-service build --mode shnu",
+    "build:gxzzzy": "vue-cli-service build --mode gxzzzy",
     "lint": "vue-cli-service lint",
     "config:dev": "vue-cli-service inspect --mode development >> webpack.config.development.js",
     "config:prod": "vue-cli-service inspect --mode production >> webpack.config.production.js"
diff --git a/WebSite/src/api/deptSP.js b/WebSite/src/api/deptSP.js
index 3e27390e5..2f1ea7b98 100644
--- a/WebSite/src/api/deptSP.js
+++ b/WebSite/src/api/deptSP.js
@@ -27,6 +27,12 @@ export default {
       model
     );
   },
+  queryAllProjectInfoPlanPage(model) {
+    return request.post(
+      'projectPlan/queryAllProjectInfoPlanPage',
+      model
+    );
+  },
 
   queryProjectInfoPlanPageByCurrentUserRelevantDept(model) {
     return request.post(
diff --git a/WebSite/src/api/projectLibrary.js b/WebSite/src/api/projectLibrary.js
index d674c624f..26a99fa75 100644
--- a/WebSite/src/api/projectLibrary.js
+++ b/WebSite/src/api/projectLibrary.js
@@ -237,6 +237,10 @@ class ProjectLibrary extends Base {
   static removeProjectLibrary(data) {
     return request.post(`/projectLibrary/removeProjectLibrary`, data);
   }
+  // 
+  static removeProjectInfoPlan(data) {
+    return request.post(`/projectPlan/removeProjectInfoPlan`, data);
+  }
   // 鎷疯礉鍘嗗彶椤圭洰浣滀负鏈勾椤圭洰搴撲俊鎭�
   static copyHistoryProjectLibrary(data) {
     return request.post(`/projectLibrary/copyHistoryProjectLibrary`, data);
@@ -1007,5 +1011,12 @@ class ProjectLibrary extends Base {
   static pageFundMatch(data) {
     return request.post(`/bmbudget/fundArrived/pageFundMatch`, data);
   }
+  /**
+   * 鏈儴闂ㄩ」鐩簱鎷嗗垎
+   */
+  // 鎷嗗垎鎸夐挳璋冪敤鎺ュ彛
+  static splitProject(id, num) {
+    return request.post(`/projectPlan/splitProject?projectPlanBookId=${id}&quantity=${num}`);
+  }
 }
 export default ProjectLibrary;
diff --git a/WebSite/src/main.js b/WebSite/src/main.js
index 1077078a8..0f29a95b0 100644
--- a/WebSite/src/main.js
+++ b/WebSite/src/main.js
@@ -42,7 +42,8 @@ app.component('TableFlow', TableFlow);
 
 //娉ㄥ唽鍏ㄥ眬鎸囦护
 app.directive('loadmore', directives.loadmore);
-app.config.globalProperties.$env = 'sd';
+app.config.globalProperties.$env = 'lg';
+app.config.globalProperties.instanceId = 1;
 // development
 // mount instance
 app.mount('#app');
diff --git a/WebSite/src/router/modules/deptSP.js b/WebSite/src/router/modules/deptSP.js
index ec01dafe5..32400e463 100644
--- a/WebSite/src/router/modules/deptSP.js
+++ b/WebSite/src/router/modules/deptSP.js
@@ -30,6 +30,12 @@ const routes = [
       import('@/views/yo-dept-sp/project-fund-approval/SchoolApproval'),
     name: 'SchoolApproval'
   },
+  {
+    path: 'approval/project/Personnel',
+    component: () =>
+      import('@/views/yo-dept-sp/project-fund-approval/Personnel'),
+    name: 'Personnel'
+  },
 
   //鍏敤缁忚垂瀹℃壒
   {
diff --git a/WebSite/src/views/login/components/SelectUser.vue b/WebSite/src/views/login/components/SelectUser.vue
index 0a77bbb12..ce8fa3198 100644
--- a/WebSite/src/views/login/components/SelectUser.vue
+++ b/WebSite/src/views/login/components/SelectUser.vue
@@ -31,6 +31,7 @@
       <span class="big" v-if="env == 'jsxy'">涓婃捣甯傛暀甯堟暀鑲插闄�</span>
       <span class="big" v-if="env == 'sues'">涓婃捣宸ョ▼鎶€鏈ぇ瀛�</span>
       <span class="big" v-if="env == 'shnu'">涓婃捣甯堣寖澶у</span>
+      <span class="big" v-if="env == 'gxzzzy'">骞胯タ鍒堕€犲伐绋嬭亴涓氭妧鏈闄�</span>
     </div>
     <div v-for="item in transitionList" :key="item.id">
       <transition name="fade-transform-bottom">
diff --git a/WebSite/src/views/main/allocation/apply/components/Detail.vue b/WebSite/src/views/main/allocation/apply/components/Detail.vue
index 5ecec829a..fe5b0aff8 100644
--- a/WebSite/src/views/main/allocation/apply/components/Detail.vue
+++ b/WebSite/src/views/main/allocation/apply/components/Detail.vue
@@ -163,6 +163,7 @@ export default {
     };
     const handleSave = () => {
       console.log('state.form', state.form);
+      state.form.id = '';
       if (!state.form.currentAmountApproved) {
         return false;
       } else if (state.env == 'sd') {
diff --git a/WebSite/src/views/main/basicSetting/fundsArrive/index.vue b/WebSite/src/views/main/basicSetting/fundsArrive/index.vue
index a14782742..b9b50d53d 100644
--- a/WebSite/src/views/main/basicSetting/fundsArrive/index.vue
+++ b/WebSite/src/views/main/basicSetting/fundsArrive/index.vue
@@ -250,7 +250,7 @@
 </template>
 
 <script>
-import { reactive, toRefs, onMounted } from 'vue';
+import { reactive, toRefs, onMounted, getCurrentInstance } from 'vue';
 import ProjectLibrary from '@/api/projectLibrary';
 import { ElMessage } from 'element-plus';
 import { formatTime, moneyFormat } from '@/utils';
@@ -260,12 +260,13 @@ export default {
     onMounted(() => {
       queryList();
     });
+    const { ctx } = getCurrentInstance();
     const state = reactive({
       checkInfo: {
         pageIndex: 1,
         pageSize: 10,
         year: Moment(new Date()).format('YYYY'),
-        instanceId: 1
+        instanceId: ctx.instanceId
       },
       total: 0,
       tableData: [],
@@ -283,7 +284,7 @@ export default {
       luList: {},
       formDtable: {
         year: Moment(new Date()).format('YYYY'),
-        instanceId: 1,
+        instanceId: ctx.instanceId,
         fundArrivedHistoryCmdList: [],
         fundCode: '',
         fundName: '',
@@ -348,7 +349,8 @@ export default {
     // 鏂板/缂栬緫淇濆瓨
     const onFourSave = () => {
       state.formDtable.year = Moment(state.formDtable.year).format('YYYY');
-      state.formDtable.instanceId = 1;
+      state.formDtable.instanceId = ctx.instanceId;
+;
       ProjectLibrary.saveFundArrived(state.formDtable).then(() => {
         if (state.title == '鏂板') {
           ElMessage.success('鏂板鎴愬姛锛�');
@@ -490,7 +492,8 @@ export default {
       getSummaries,
       getSummariesTwo,
       onFourSave,
-      queryListNew
+      queryListNew,
+      ctx
     };
   }
 };
diff --git a/WebSite/src/views/main/basicSetting/projectLibrary/components/Detail.vue b/WebSite/src/views/main/basicSetting/projectLibrary/components/Detail.vue
index 7a09fc89a..9ae5090bc 100644
--- a/WebSite/src/views/main/basicSetting/projectLibrary/components/Detail.vue
+++ b/WebSite/src/views/main/basicSetting/projectLibrary/components/Detail.vue
@@ -385,17 +385,17 @@ export default {
     const handleSave = () => {
       ruleFormS.value.validate(valid => {
         if (valid) {
-          if (state.deptSelect.length === 0) {
+          if (state.deptSelect && state.deptSelect.length === 0) {
             state.ruleForm.canUseDeptJson = '';
           } else {
             state.ruleForm.canUseDeptJson = JSON.stringify(state.deptSelect);
           }
-          if (state.deptSelectG.length === 0) {
+          if (state.deptSelectG && state.deptSelectG.length === 0) {
             state.ruleForm.functionDeptJson = '';
           } else {
             state.ruleForm.functionDeptJson = JSON.stringify(state.deptSelectG);
           }
-          if (state.deptSelectS.length === 0) {
+          if (state.deptSelectS && state.deptSelectS.length === 0) {
             state.ruleForm.canUseFundJson = '';
           } else {
             state.ruleForm.canUseFundJson = JSON.stringify(state.deptSelectS);
diff --git a/WebSite/src/views/main/basicSetting/subjectsSetting/components/Detail.vue b/WebSite/src/views/main/basicSetting/subjectsSetting/components/Detail.vue
index ff1baeda6..4ba96091d 100644
--- a/WebSite/src/views/main/basicSetting/subjectsSetting/components/Detail.vue
+++ b/WebSite/src/views/main/basicSetting/subjectsSetting/components/Detail.vue
@@ -169,7 +169,7 @@ export default {
       state.deptSelect.splice(index, 1);
     };
     const handleSave = () => {
-      if (state.deptSelect.length === 0) {
+      if (state.deptSelect && state.deptSelect.length === 0) {
         state.ruleForm.functionDeptJson = '';
       } else {
         state.ruleForm.functionDeptJson = JSON.stringify(state.deptSelect);
diff --git a/WebSite/src/views/main/basicSetting/subjectsSetting/index.vue b/WebSite/src/views/main/basicSetting/subjectsSetting/index.vue
index 21cb1053d..3494654b2 100644
--- a/WebSite/src/views/main/basicSetting/subjectsSetting/index.vue
+++ b/WebSite/src/views/main/basicSetting/subjectsSetting/index.vue
@@ -97,7 +97,7 @@ export default {
       }
     };
     const queryFundTree = () => {
-      ProjectLibrary.queryFundTree({}).then(res => {
+      ProjectLibrary.queryFundTree({time: new Date()}).then(res => {
         state.treeData = res.data;
         if (state.treeData && state.treeData.length > 0) {
           if (state.oId) {
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 3cc7e0159..a9e3cc034 100644
--- a/WebSite/src/views/main/project-library/department/components/List.vue
+++ b/WebSite/src/views/main/project-library/department/components/List.vue
@@ -119,7 +119,7 @@
           v-if="$env == 'lg'"
         />
         <el-table-column label="椤圭洰鍚嶇О" prop="projectName" />
-        <el-table-column label="椤圭洰搴�" prop="projectLibraryName">
+        <el-table-column label="椤圭洰搴�" prop="projectLibraryName" width="100">
           <template #default="scope">
             <el-button
               @click="toDetail(scope.row)"
@@ -128,8 +128,12 @@
             >
           </template>
         </el-table-column>
-        <!-- <el-table-column label="椤圭洰搴撳鏍哥姸鎬�" prop="projectLibraryState" /> -->
-        <el-table-column label="涓€涓�" prop="oneUPName">
+        <!-- <el-table-column label="" prop="projectLibraryTotalMoney" width="100">
+          <template #default="scope">
+            <span  v-if="$env == 'lg'">{{ moneyFormat(scope.row.projectLibraryTotalMoney, 2, ',') }}</span>
+          </template>
+        </el-table-column> -->
+        <el-table-column label="涓€涓�" prop="oneUPName" width="180">
           <template #default="scope">
             <el-button
               v-if="scope.row.oneUPState == 1"
@@ -144,25 +148,64 @@
             >
           </template>
         </el-table-column>
-        <el-table-column label="浜屼笂" prop="twoUPName">
+        <!-- <el-table-column label="" prop="oneUPName" width="100">
           <template #default="scope">
-            <el-button
-              v-if="scope.row.twoUPState == 1"
-              @click="toTwo(scope.row, 1)"
-              type="primary"
-              >缂栬緫</el-button
-            >
-            <el-button
-              @click="toTwo(scope.row)"
-              :type="scope.row.twoUPState == 2 ? 'text' : 'primary'"
-              >{{ scope.row.twoUPName }}</el-button
-            >
-            <el-button
-              v-if="$env == 'sd'"
-              @click="toTwoCf(scope.row)"
-              type="primary"
-              >鎷嗗垎</el-button
-            >
+            <span  v-if="$env == 'lg' && scope.row.oneUPName != ''">{{ moneyFormat(scope.row.oneUPTotalMoney, 2, ',') }}</span>
+          </template>
+        </el-table-column> -->
+        <el-table-column label="浜屼笂" prop="twoUPName" width="420">
+          <template #default="scope">
+            <div v-if="$env != 'lg'">
+              <el-button
+                v-if="scope.row.twoUPState == 1"
+                @click="toTwo(scope.row, 1)"
+                type="primary"
+                >缂栬緫</el-button
+              >
+              <el-button
+                @click="toTwo(scope.row)"
+                :type="scope.row.twoUPState == 2 ? 'text' : 'primary'"
+                >{{ scope.row.twoUPName }}</el-button
+              >
+            </div>
+            <div class="newBorder" v-if="$env == 'lg' && scope.row.oneUPName == '瀹℃牳瀹屾垚'" >
+              <el-table :data="scope.row.splitList" style="width: 100%" fit 
+                :show-header="false" row-class-name="tablecolor" 
+                @selection-change="splitChange" v-if="scope.row.isTableShow">
+                <el-table-column prop="splitProjectName"  />
+                <!-- <el-table-column prop="splitTotalMoney">
+                  <template #default="scope1">
+                    <div v-if="scope1.row.splitTotalMoney != ''">{{ moneyFormat(scope1.row.splitTotalMoney, 2, ',') }}</div>
+                  </template>
+                </el-table-column> -->
+                <el-table-column prop="twoUPName">
+                  <template #default="scope1">
+                    <el-button
+                    v-if="scope1.row.twoUPState == 1"
+                    @click="toTwo(scope1.row, 1)"
+                    type="primary"
+                    >缂栬緫</el-button >
+                  </template>
+                </el-table-column>
+                <el-table-column prop="twoUPName">
+                  <template #default="scope1">
+                    <el-button
+                    @click="toTwo(scope1.row)"
+                    type="text"
+                    >{{ scope1.row.twoUPName }}</el-button>
+                  </template>
+                </el-table-column>
+                <el-table-column prop="">
+                  <template #default="scope1">
+                    <el-button
+                    v-if="scope1.row.twoUPState != 0"
+                    @click="toTwoCf(scope1.row, scope1.$index)"
+                    type="primary"
+                    >鎷嗗垎</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
           </template>
         </el-table-column>
         <el-table-column label="鎵瑰" prop="replyName">
@@ -247,13 +290,14 @@
         </span>
       </template>
     </el-dialog>
+    <!-- 鎷嗗垎寮瑰嚭妗� -->
     <el-dialog
       v-model="dialogVisibleTwo"
-      width="30%"
+      width="40%"
       :before-close="handleClose"
     >
-      <el-row :gutter="20">
-        <el-col :span="10">璇烽€夋嫨鎷嗗垎椤圭洰鐨勪釜鏁帮細</el-col>
+      <el-row :gutter="10">
+        <el-col :span="8">璇烽€夋嫨鎷嗗垎椤圭洰鐨勪釜鏁帮細</el-col>
         <el-col :span="8"
           ><el-input-number
             v-model="numberNum"
@@ -285,6 +329,7 @@ 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';
 export default {
   setup(props, cxt) {
     const { ctx } = getCurrentInstance();
@@ -314,7 +359,7 @@ export default {
       switch2: true,
       projectPlanTypeList: [],
       checkInfo: {
-        year: sessionStorage.getItem('year'), //骞翠唤
+        year: sessionStorage.getItem('year') ? sessionStorage.getItem('year') : Moment(new Date()).format('YYYY'), //骞翠唤
         projectName: '', //椤圭洰鍚嶇О
         departmentCode: '',
         typeList: '',
@@ -349,6 +394,11 @@ export default {
       multipleSelectionProject: [],
       dialogVisibleTwo: false,
       numberNum: 1,
+      splitList: [],
+      toTwoCfId: '',
+      newRow: {},
+      newIndex: '',
+      newDeleChange: null,
     });
     // 鍒犻櫎
     const handleDel = () => {
@@ -363,10 +413,10 @@ export default {
       })
         .then(() => {
           let idList = state.multipleSelection.map(v => v.id);
-          ProjectLibrary.removeProjectLibrary(idList).then(() => {
-            ElMessage.success('鍒犻櫎鎴愬姛');
-            getDepartPageInfo();
-          });
+            ProjectLibrary.removeProjectLibrary(idList).then(() => {
+              ElMessage.success('鍒犻櫎鎴愬姛');
+              getDepartPageInfo();
+            });
         })
         .catch(() => {
           ElMessage.info('宸插彇娑堝垹闄�');
@@ -388,6 +438,13 @@ export default {
       ProjectLibrary.queryProjectLibraryPageByCurrentUserDept(
         state.checkInfo
       ).then(res => {
+        res.data.forEach(item => {
+          if (item.splitList && item.splitList.length > 0) {
+            item.isTableShow = true;
+          } else {
+            item.isTableShow = false;
+          }
+        })
         state.departInfo.tableData = res.data;
         state.departInfo.total = res.total;
       });
@@ -457,7 +514,6 @@ export default {
       }
     };
     const getProjectPlanTypeList = () => {
-      console.log('4544');
       if (ctx.$env == 'dx' || ctx.$env == 'czzx') return;
       if (ctx.$env == 'yy' || ctx.$env == 'xnzf') {
         ProjectLibrary.queryProjectPlanType().then(res => {
@@ -465,6 +521,7 @@ export default {
         });
       }
     };
+    // 涓€涓�
     const toOne = (row, index) => {
       sessionStorage.setItem('checkInfo1', JSON.stringify(state.checkInfo));
       //  0 杩涘叆 1 鍙栨秷 2 鏂囧瓧
@@ -498,11 +555,12 @@ export default {
         }
       }
     };
+    // 浜屼笂
     const toTwo = (row, index) => {
       sessionStorage.setItem('checkInfo1', JSON.stringify(state.checkInfo));
       //  0 杩涘叆 1 鍙栨秷 2 鏂囧瓧
       if (row.twoUPState === 0) {
-        ProjectLibrary.enterProjectPlanType2(row.id).then(() => {
+        ProjectLibrary.enterProjectPlanType2(row.id ? row.id : row.twoUPBookID).then(() => {
           getDepartPageInfo();
         });
       } else if (row.twoUPState === 1) {
@@ -515,9 +573,15 @@ export default {
             cxt.emit('switch-page', 'Detail', true, row.twoUPBookID);
           }
         } else {
-          ProjectLibrary.cancelEnterProjectPlanType2(row.id).then(() => {
-            getDepartPageInfo();
-          });
+          if (ctx.$env == 'lg') {
+            ProjectLibrary.removeProjectInfoPlan([row.twoUPBookID]).then(() => {
+              getDepartPageInfo();
+            })
+          } else {
+            ProjectLibrary.cancelEnterProjectPlanType2(row.id).then(() => {
+              getDepartPageInfo();
+            });
+          }
         }
       } else {
         if (row.projectPlanType == 'weichi' && ctx.$env == 'yy') {
@@ -529,8 +593,44 @@ export default {
         }
       }
     };
-    const toTwoCf = () => {
-
+    // 鎷嗗垎
+    const toTwoCf = (row, index) => {
+      state.dialogVisibleTwo = true;
+      state.toTwoCfId = row.twoUPBookID;
+      state.newRow = row;
+      state.newIndex = index;
+      state.splitList = row.splitList ? row.splitList : [row];
+    };
+    // 鎷嗗垎纭畾
+    const onSure = () => {
+      state.dialogVisibleTwo = false;
+      ProjectLibrary.splitProject(state.toTwoCfId, state.numberNum).then(res => {
+        console.log(res);
+        for (let n = 0; n < res.data.length; n++) {
+          for (let i = 0; i < state.departInfo.tableData.length; i++) {
+            for (let num = 1; num <= state.numberNum; num++) {
+              if (state.departInfo.tableData[i].splitList[state.newIndex] == state.newRow) {
+                state.departInfo.tableData[i].splitList.push({
+                  splitProjectName: '',
+                  splitTotalMoney: '',
+                  splitName: '鎷嗗垎',
+                  twoUPName: '',
+                  twoUPBookID: res.data[n]
+                })
+              }
+            } 
+          }
+          console.log(state.departInfo.tableData);
+          getDepartPageInfo();
+          return;
+        }
+      })
+    }
+    // 
+    const splitChange = (row) => {
+      console.log(1111, row);
+      row.isDele = true;
+      state.newDeleChange = row;
     }
     // const setTime = () => {
     //   state.checkInfo.year = Moment(state.checkInfo.year).format('YYYY');
@@ -601,10 +701,35 @@ export default {
       handleAddWork,
       onHzdy,
       ctx,
-      toTwoCf
+      toTwoCf,
+      onSure,
+      moneyFormat,
+      splitChange
     };
   }
 };
 </script>
 
-<style></style>
+<style lang="scss" scoped>
+.listyle {
+  list-style: none;
+  padding: 0px;
+}
+.licss {
+  display: flex;
+  align-items: center;
+}
+.lidiv {
+  margin-left: 5px;
+}
+::v-deep .el-table__row.tablecolor{
+   td {
+    border: none !important;
+  }
+}
+.newBorder {
+  ::v-deep .el-table::before {
+    height: 0 !important;
+  }
+}
+</style>
diff --git a/WebSite/src/views/main/project-library/fundCardNo/index.vue b/WebSite/src/views/main/project-library/fundCardNo/index.vue
index bb0f97fad..7b12015d9 100644
--- a/WebSite/src/views/main/project-library/fundCardNo/index.vue
+++ b/WebSite/src/views/main/project-library/fundCardNo/index.vue
@@ -192,7 +192,7 @@
           label="鏍哥畻妯℃澘缂栧彿"
           prop="model"
           width="200"
-          v-if="env != 'sd'"
+          v-if="env != 'sd' && env != 'jr'"
         >
           <template #default="scope">
             <el-select
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 bb51a6318..eb2c6d7af 100644
--- a/WebSite/src/views/main/project-library/inSchool/components/List.vue
+++ b/WebSite/src/views/main/project-library/inSchool/components/List.vue
@@ -78,25 +78,56 @@
           prop="departmentName"
           sortable="custom"
         />
-        <el-table-column label="椤圭洰搴�" prop="projectLibraryName">
+        <el-table-column label="椤圭洰搴�" prop="projectLibraryName" width="150">
           <template #default="scope">
             <el-button @click="toDetail(scope.row)" type="text">{{
               scope.row.projectLibraryName
             }}</el-button>
+            <span class="lidiv">{{ moneyFormat(scope.row.projectLibraryTotalMoney, 2, ',') }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="涓€涓�" prop="oneUPName">
+        <el-table-column label="涓€涓�" prop="oneUPName" width="150">
           <template #default="scope">
             <el-button @click="toOne(scope.row)" type="text">{{
               scope.row.oneUPName
             }}</el-button>
+            <span class="lidiv">{{ moneyFormat(scope.row.oneUPTotalMoney, 2, ',') }}</span>
           </template>
         </el-table-column>
-        <el-table-column label="浜屼笂" prop="twoUPName">
+        <el-table-column label="浜屼笂" prop="twoUPName" width="350">
           <template #default="scope">
-            <el-button @click="toTwo(scope.row)" type="text">{{
-              scope.row.twoUPName
-            }}</el-button>
+            <div v-if="scope.row.isShows">
+              <el-button @click="toTwo(scope.row)" type="text">{{
+                scope.row.twoUPName
+              }}</el-button>
+              <span class="lidiv">{{ moneyFormat(scope.row.splitTotalMoney, 2, ',') }}</span>
+            </div>
+            <div class="newBorder">
+              <el-table :data="scope.row.splitList" style="width: 100%" fit 
+                :show-header="false" row-class-name="tablecolor" v-if="scope.row.isTableShow"
+                @selection-change="splitChange" >
+                <el-table-column prop="twoUPName"  />
+                <el-table-column prop="splitTotalMoney">
+                  {{ moneyFormat(scope.row.splitTotalMoney, 2, ',') }}
+                </el-table-column>
+                <el-table-column prop="twoUPName">
+                  <template #default="scope">
+                    <el-button
+                    @click="toTwo(scope.row)"
+                    type="text"
+                    >{{ scope.row.twoUPName }}</el-button>
+                  </template>
+                </el-table-column>
+                <!-- <el-table-column prop="splitName">
+                  <template #default="scope">
+                    <el-button
+                    @click="toTwoCf(scope.row)"
+                    type="primary"
+                    >{{ scope.row.splitName }}</el-button>
+                  </template>
+                </el-table-column> -->
+              </el-table>
+            </div>
           </template>
         </el-table-column>
         <el-table-column label="鎵瑰" prop="replyName"> </el-table-column>
@@ -121,6 +152,7 @@
 import { reactive, toRefs, onMounted, ref, getCurrentInstance } from 'vue';
 import ProjectLibrary from '@/api/projectLibrary';
 import Moment from 'moment';
+import { moneyFormat } from '@/utils';
 export default {
   setup(props, cxt) {
     const { ctx } = getCurrentInstance();
@@ -149,7 +181,8 @@ export default {
       },
       planInfo: [],
       env: ctx.$env,
-      projectPlanTypeList: []
+      projectPlanTypeList: [],
+      splitList: []
     });
     const getDepartPageInfoFirst = () => {
       if (state.checkInfo.year) {
@@ -234,6 +267,15 @@ export default {
       //   state.checkInfo.deptSort = 1;
       // }
       ProjectLibrary.queryProjectLibraryPage(state.checkInfo).then(res => {
+        res.data.forEach(item => {
+          if (item.splitList && item.splitList.length > 0) {
+            item.isShows = false;
+            item.isTableShow = true;
+          } else {
+            item.isShows = true;
+            item.isTableShow = false;
+          }
+        })
         state.departInfo.tableData = res.data;
         state.departInfo.total = res.total;
         //  console.log(state.departInfo,'1234')
@@ -293,10 +335,25 @@ export default {
       toTwo,
       getProjectPlanTypeList,
       sortChange,
-      ctx
+      ctx,
+      moneyFormat
     };
   }
 };
 </script>
 
-<style></style>
+<style lang="scss" scoped>
+.lidiv {
+  margin-left: 5px;
+}
+::v-deep .el-table__row.tablecolor{
+   td {
+    border: none !important;
+  }
+}
+.newBorder {
+  ::v-deep .el-table::before {
+    height: 0 !important;
+  }
+}
+</style>
diff --git a/WebSite/src/views/yo-common/ProjectFundApply/index.vue b/WebSite/src/views/yo-common/ProjectFundApply/index.vue
index a2688ad79..e0f4939b9 100644
--- a/WebSite/src/views/yo-common/ProjectFundApply/index.vue
+++ b/WebSite/src/views/yo-common/ProjectFundApply/index.vue
@@ -1351,7 +1351,8 @@ export default {
               isShowCancel: false,
               isShowChart: false,
               isShowHistory: false
-            }
+            },
+            functionDeptJson: ''
           }
         };
       }
@@ -2259,7 +2260,6 @@ export default {
             });
           }
           data.applyInfo = applyInfo;
-          
           data.applyInfo.flowCanShowOut.functionDeptJson =
             props.row.functionDeptJson;
           console.log('data.applyInfo', data.applyInfo);
diff --git a/WebSite/src/views/yo-dept-sp/project-fund-approval/Personnel/components/List.vue b/WebSite/src/views/yo-dept-sp/project-fund-approval/Personnel/components/List.vue
new file mode 100644
index 000000000..92772a9e8
--- /dev/null
+++ b/WebSite/src/views/yo-dept-sp/project-fund-approval/Personnel/components/List.vue
@@ -0,0 +1,83 @@
+<template>
+  <div class="app-container">
+    <el-tabs
+      v-model="activeTab"
+      type="border-card"
+      stretch
+      @tab-click="handleClick"
+    >
+      <el-tab-pane label="椤圭洰搴�" name="XIANGMUKU" lazy>
+        <page-list
+          :planType="activeTab"
+          @switch-page="navToDetail"
+          :showDepartment="false"
+          @get-page-list="getPageList"
+        ></page-list>
+      </el-tab-pane>
+      <el-tab-pane label="涓€涓�" name="YISHANG" lazy>
+        <page-list
+          :planType="activeTab"
+          @switch-page="navToDetail"
+          :showDepartment="false"
+          @get-page-list="getPageList"
+        ></page-list>
+      </el-tab-pane>
+      <el-tab-pane label="浜屼笂" name="ERSHANG" lazy>
+        <page-list
+          :planType="activeTab"
+          @switch-page="navToDetail"
+          :showDepartment="false"
+          @get-page-list="getPageList"
+        ></page-list>
+      </el-tab-pane>
+    </el-tabs>
+  </div>
+</template>
+
+<script>
+import { reactive, toRefs, onMounted } from 'vue';
+import PageList from '@/views/yo-common/ProjectApplyPageList';
+import Api from '@/api';
+export default {
+  components: {
+    PageList
+  },
+  emits: ['switch-page'],
+  setup(props, context) {
+    onMounted(() => {
+      if (sessionStorage.getItem('activeTab2')) {
+        data.activeTab = sessionStorage.getItem('activeTab2');
+      }
+    });
+    const data = reactive({
+      activeTab:
+        process.env.NODE_ENV == 'yy' || process.env.NODE_ENV == 'lg'
+          ? 'XIANGMUKU'
+          : 'ERSHANG'
+    });
+    const navToDetail = row => {
+      sessionStorage.setItem('activeTab2', data.activeTab);
+      if (row.projectPlanType == 'yunzhuan') {
+        context.emit('switch-page', 'workDetail', false, row);
+      } else {
+        context.emit('switch-page', 'Detail', false, row);
+      }
+    };
+    const getPageList = async (params, callback) => {
+      const res = await Api.queryAllProjectInfoPlanPage(params);
+      callback(res);
+    };
+    const handleClick = () => {
+      console.error('aaa', data.activeTab); 
+    };
+    return {
+      ...toRefs(data),
+      navToDetail,
+      handleClick,
+      getPageList
+    };
+  }
+};
+</script>
+
+<style></style>
diff --git a/WebSite/src/views/yo-dept-sp/project-fund-approval/Personnel/components/workDetail.vue b/WebSite/src/views/yo-dept-sp/project-fund-approval/Personnel/components/workDetail.vue
new file mode 100644
index 000000000..a3d6e6f88
--- /dev/null
+++ b/WebSite/src/views/yo-dept-sp/project-fund-approval/Personnel/components/workDetail.vue
@@ -0,0 +1,1142 @@
+<template>
+  <div>
+    <div
+      class="step-wrap"
+      id="step"
+      style="position: absolute;
+      left: 20px;
+      top: 300px;"
+    >
+      <el-steps direction="vertical" :space="40" :active="activeStep">
+        <el-step
+          title="鍩烘湰淇℃伅"
+          class="cp"
+          @click="scrollToView('baseInfo')"
+        ></el-step>
+        <el-step
+          title="椤圭洰淇℃伅"
+          class="cp"
+          @click="scrollToView('projectMessage')"
+        ></el-step>
+        <el-step
+          title="椤圭洰姒傝堪"
+          class="cp"
+          @click="scrollToView('projectData')"
+        ></el-step>
+        <el-step
+          v-show="overTen"
+          title="椤圭洰缁╂晥"
+          class="cp"
+          @click="scrollToView('projectAchieve')"
+        ></el-step>
+        <el-step
+          title="涓婁紶闄勪欢"
+          class="cp"
+          @click="scrollToView('fileData')"
+        ></el-step>
+      </el-steps>
+    </div>
+    <div
+      id="flowWrap"
+      style="position: absolute;
+      left: 0px;
+      top: 0px; width: 100%; z-index: 300;"
+    >
+      <el-card>
+        <Flow
+          :flowInfo="applyInfo.flowCanShowOut"
+          @handleBack="handleBack"
+          @handleSave="handleSave"
+          @handleSubmit="handleSubmit"
+          @handleReturn="handleReturn"
+          @handleCancel="handleCancel"
+        ></Flow>
+      </el-card>
+    </div>
+    <div class="apply-table-wrap">
+      <el-button
+        style="position: absolute;top:86px"
+        v-if="applyInfo.id && env == 'yy'"
+        @click="navToPrint(applyInfo)"
+        >鎵撳嵃</el-button
+      >
+      <h2>{{ applyInfo.year }}骞撮」鐩敵鎶ヨ〃</h2>
+      <el-form :disabled="!canEdit">
+        <el-card id="baseInfo" class="mt-20">
+          <template #header>
+            鍩烘湰淇℃伅
+          </template>
+          <el-row class="form-item-override" :gutter="20">
+            <el-col :xs="8" :sm="8" :md="8" :lg="8">
+              <el-form-item label="鐢虫姤閮ㄩ棬锛�">
+                <el-select
+                  @change="selectDeptChange"
+                  v-model="applyInfo.departmentCode"
+                  placeholder="璇烽€夋嫨鐢虫姤閮ㄩ棬"
+                >
+                  <el-option
+                    v-for="item in applyDept"
+                    :key="item.id"
+                    :label="item.name"
+                    :value="item.code"
+                  ></el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="8" :sm="8" :md="8" :lg="8">
+              <el-form-item label="椤圭洰鍚嶇О锛�">
+                <el-input
+                  v-model="applyInfo.projectName"
+                  placeholder="璇疯緭鍏ラ」鐩悕绉�"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :xs="8" :sm="8" :md="8" :lg="8">
+              <el-form-item label="璐熻矗浜猴細">
+                <el-select
+                  @change="selectLeaderChange"
+                  v-model="applyInfo.projectLeaderId"
+                  filterable
+                  remote
+                  popper-class="select-user"
+                  :loading="selectUserLoading"
+                  :remote-method="getLeaderByValue"
+                  @visible-change="selectVisibleChange"
+                  placeholder="璇烽€夋嫨璐熻矗浜�"
+                >
+                  <el-option
+                    v-for="user in userList"
+                    :key="user.id"
+                    :label="user.name"
+                    :value="user.id"
+                  ></el-option>
+                </el-select>
+                <!-- <el-input
+                  v-model="applyInfo.projectLeaderName"
+                  disabled
+                ></el-input> -->
+              </el-form-item>
+            </el-col>
+            <el-col :xs="8" :sm="8" :md="8" :lg="8" v-if="env == 'yy'">
+              <el-form-item label="鏄惁璺ㄥ勾椤圭洰锛�">
+                <el-radio-group
+                v-model="applyInfo.stepYear"
+              >
+                <el-radio label="YES">鏄�</el-radio>
+                <el-radio label="NO">鍚�</el-radio>
+              </el-radio-group>
+              </el-form-item>
+            </el-col>
+          </el-row>
+        </el-card>
+        <el-card id="projectMessage" class="mt-20">
+          <template #header>
+            椤圭洰淇℃伅<el-button @click="addProject" style="margin-left:10px"
+              >鏂板</el-button
+            >
+          </template>
+          <el-table
+            border
+            :data="projectTable"
+            show-summary
+            :summary-method="getSummary"
+          >
+            <el-table-column label="椤圭洰鍚嶇О" prop="projectName">
+              <template #default="scope">
+                <el-select
+                  v-model="scope.row.projectName"
+                  filterable
+                  allow-create
+                  default-first-option
+                >
+                  <el-option
+                    v-for="item in projectList"
+                    :key="item"
+                    :label="item"
+                    :value="item"
+                  ></el-option>
+                </el-select>
+              </template>
+            </el-table-column>
+            <el-table-column label="鍗曚环" prop="price">
+              <template #default="scope">
+                <InputNumber v-model="scope.row.price"> </InputNumber></template
+            ></el-table-column>
+            <el-table-column label="鏁伴噺" prop="count"
+              ><template #default="scope"
+                ><el-input v-model.number="scope.row.count"> </el-input
+              ></template>
+            </el-table-column>
+            <el-table-column
+              label="棰勭畻閲戦"
+              prop="money"
+              align="right"
+              header-align="left"
+            >
+              <template #default="scope">
+                <InputNumber v-model="scope.row.money" :disabled="true">
+                </InputNumber>
+              </template>
+            </el-table-column>
+            <el-table-column label="澶囨敞" prop="">
+              <template #default="scope">
+                <el-input v-model="scope.row.remark"> </el-input>
+              </template>
+            </el-table-column>
+            <el-table-column label="鎿嶄綔" prop="">
+              <template #default="scope">
+                <el-button @click="deleteProject(scope)">鍒犻櫎</el-button>
+              </template>
+            </el-table-column>
+          </el-table>
+        </el-card>
+        <el-card class="mt-20" id="projectData">
+          <template #header>
+            椤圭洰姒傝堪
+          </template>
+          <el-form
+            :disabled="!canEdit"
+            :model="applyInfo.summaryJson"
+            :rules="isRequired ? rules : []"
+            ref="formRef"
+          >
+            <div>
+              <el-form-item label="1銆侀」鐩唴瀹规杩板強鍏蜂綋瀹炴柦鍐呭:" prop="basis">
+                <el-input
+                  v-model="applyInfo.summaryJson.basis"
+                  type="textarea"
+                ></el-input>
+              </el-form-item>
+              <el-form-item
+                prop="terminfo"
+                label="2銆侀」鐩珛椤逛緷鎹紙瑙勫垝璁″垝銆侀儴闂ㄨ亴璐c€佹斂绛栨硶瑙勭瓑锛�:"
+              >
+                <el-input
+                  v-model="applyInfo.summaryJson.terminfo"
+                  type="textarea"
+                ></el-input>
+              </el-form-item>
+              <el-form-item
+                prop="plan"
+                label="3銆侀」鐩珛椤圭殑蹇呰鎬у強鍙鎬э紙椤圭洰鍩虹鏉′欢鍙婂墠鏈熷伐浣溿€佺鐞嗗埗搴︿笌淇濋殰鎺柦绛夛級:"
+              >
+                <el-input
+                  v-model="applyInfo.summaryJson.plan"
+                  type="textarea"
+                ></el-input>
+              </el-form-item>
+              <el-form-item
+                label="4銆侀」鐩墽琛屽強璧勯噾浣跨敤璁″垝锛堢粏鍖栧埌鏈堜唤锛�:"
+                prop="budget"
+              >
+                <el-input
+                  v-model="applyInfo.summaryJson.budget"
+                  type="textarea"
+                ></el-input>
+              </el-form-item>
+            </div>
+          </el-form>
+        </el-card>
+        <el-card class="mt-20" id="projectAchieve" v-show="overTen">
+          <template #header>
+            椤圭洰缁╂晥
+          </template>
+          <el-form-item
+            label="椤圭洰绫诲埆锛�"
+            style="display: flex; align-items: center;"
+          >
+            <el-radio-group
+              v-model="applyInfo.projectTargetCmd.summaryJson.projectType"
+            >
+              <!-- <el-radio :label="1">涓撻」璧勯噾</el-radio> -->
+              <el-radio :label="2">缁忓父鎬ч」鐩�</el-radio>
+              <el-radio :label="3">涓€娆℃€ч」鐩�</el-radio>
+            </el-radio-group>
+          </el-form-item>
+          <el-form-item label="鎬荤哗鏁堢洰鏍囧強鍒嗗勾搴︾哗鏁堢洰鏍�">
+            <el-input
+              v-model="applyInfo.projectTargetCmd.summaryJson.yearGoal"
+              type="textarea"
+            ></el-input>
+          </el-form-item>
+          <el-form-item label="椤圭洰鎬荤洰鏍囷紙璺ㄥ勾椤圭洰锛夛細">
+            <el-input
+              v-model="applyInfo.projectTargetCmd.summaryJson.projectGoal"
+              type="textarea"
+            ></el-input>
+          </el-form-item>
+          <el-table
+            border
+            stripe
+            :data="applyInfo.projectTargetCmd.subOtherArrayJson"
+            ref="subOtherTable"
+          >
+            <el-table-column label="涓€绾ф寚鏍�">
+              <template #default="scope">
+                <div class="one-quota">
+                  <el-popover
+                    v-if="scope.row.content && scope.row.content != ''"
+                    effect="light"
+                    trigger="hover"
+                    placement="top"
+                    :content="scope.row.content"
+                  >
+                    <template #reference>
+                      <div>
+                        <el-cascader
+                          popper-class="cascader-cus"
+                          @change="
+                            val => {
+                              cascaderChange(scope, val);
+                            }
+                          "
+                          :disabled="scope.row.flag == 'N'"
+                          ref="cascaderRef"
+                          v-model="scope.row.one"
+                          :options="meritsTree"
+                          :props="meritsTreeProps"
+                          style="width: 100%;"
+                        >
+                          <template #default="{node, data}">
+                            <div v-if="data.children">{{ node.label }}</div>
+                            <div v-else @click="onClickNode(scope, node, data)">
+                              {{ node.label }}
+                            </div>
+                          </template>
+                        </el-cascader>
+                      </div>
+                    </template>
+                  </el-popover>
+                  <div v-if="!scope.row.content || scope.row.content == ''">
+                    <el-cascader
+                      popper-class="cascader-cus"
+                      @change="
+                        val => {
+                          cascaderChange(scope, val);
+                        }
+                      "
+                      ref="cascaderRef"
+                      :disabled="scope.row.flag == 'N'"
+                      v-model="scope.row.one"
+                      :options="meritsTree"
+                      :props="meritsTreeProps"
+                      style="width: 100%;"
+                    >
+                      <template #default="{node, data}">
+                        <div v-if="data.children">{{ node.label }}</div>
+                        <div v-else @click="onClickNode(scope, node, data)">
+                          {{ node.label }}
+                        </div>
+                      </template>
+                    </el-cascader>
+                  </div>
+                  <div class="icon-wrap">
+                    <el-button
+                      plain
+                      type="primary"
+                      icon="el-icon-circle-plus-outline"
+                      circle
+                      @click="addQuota(scope)"
+                    ></el-button>
+                    <el-button
+                      plain
+                      style="margin: 0;"
+                      type="danger"
+                      icon="el-icon-circle-close"
+                      :disabled="scope.row.flag == 'N'"
+                      circle
+                      @click="deleteQuota(scope)"
+                    ></el-button>
+                  </div>
+                </div>
+              </template>
+            </el-table-column>
+            <el-table-column label="浜岀骇鎸囨爣">
+              <template #default="scope">
+                <el-input disabled v-model="scope.row.two"></el-input>
+              </template>
+            </el-table-column>
+            <el-table-column label="涓夌骇鎸囨爣">
+              <template #default="scope">
+                <el-input
+                  v-model="scope.row.three"
+                  v-if="env == 'dx' || env == 'czzx'"
+                ></el-input>
+                <el-select
+                  v-model="scope.row.three"
+                  v-if="env != 'dx' && env != 'yy' && env != 'czzx'"
+                  allow-create
+                  filterable
+                >
+                  <el-option
+                    v-for="item in scope.row.threeProject"
+                    :key="item"
+                    :label="item"
+                    :value="item"
+                  ></el-option>
+                </el-select>
+                <el-select
+                  v-model="scope.row.three"
+                  v-if="env == 'yy'"
+                  allow-create
+                  filterable
+                >
+                  <el-option
+                    v-for="item in scope.row.threeProject"
+                    :key="item"
+                    :label="item"
+                    :value="item"
+                  ></el-option>
+                </el-select>
+              </template>
+            </el-table-column>
+            <el-table-column label="骞村害鎸囨爣鍊�">
+              <template #default="scope">
+                <el-input v-model="scope.row.yearTarget"></el-input>
+              </template>
+            </el-table-column>
+          </el-table>
+        </el-card>
+        <el-card class="mt-20" id="fileData">
+          <template #header>
+            涓婁紶闄勪欢
+          </template>
+          <el-button type="primary" plain @click="uploadDialog = true"
+            >涓婁紶闄勪欢</el-button
+          >
+          <div class="fileBox">
+            <el-tag
+              v-for="(item, index) in applyInfo.attachmentInfoOutList"
+              :key="item.id"
+              :closable="canEdit"
+              @click="downloadFile(item.id)"
+              @close="deleteFile(index)"
+              >{{ item.fileName }}</el-tag
+            >
+          </div>
+        </el-card>
+      </el-form>
+    </div>
+    <UploadFile
+      v-model="uploadDialog"
+      @upload-handler="uploadHandler"
+    ></UploadFile>
+  </div>
+</template>
+
+<script>
+import { reactive, ref, toRefs, watch, getCurrentInstance } from 'vue';
+// import { ElMessage } from 'element-plus';
+// import UploadFile from '@/components/UploadFile';
+import { absNum, debounce, isEmpty, throttle } from '@/utils';
+import InputNumber from '@/components/AmountInputBox';
+import ProjectLibrary from '@/api/projectLibrary';
+import Api from '@/api';
+import { useStore } from 'vuex';
+import { navToPrint } from '@/utils/navToPrint';
+import { ElMessage } from 'element-plus';
+import { moneyFormatter } from '@/utils/formatter';
+export default {
+  components: { InputNumber },
+  props: {
+    canEdit: {
+      type: Boolean,
+      required: true
+    },
+    row: {
+      type: Object
+    },
+    projectPlanType: {
+      type: String
+    }
+  },
+  setup(props, context) {
+    const { ctx } = getCurrentInstance();
+    const subOtherTable = ref(null);
+    const store = useStore();
+    const data = reactive({
+      applyInfo: {
+        projectPlanType: props.projectPlanType,
+        year: sessionStorage.getItem('year'),
+        projectName: '杩愯浆鎬ч」鐩�',
+        summaryJson: {},
+        projectTargetCmd: {
+          subOtherArrayJson: [{}],
+          summaryJson: {}
+        },
+        xinghaiProjectJson: [],
+        attachmentInfoOutList: [],
+        flowCanShowOut: {
+          btnStates: {
+            isShowSave: true,
+            isShowSubmit: false,
+            isShowReject: false,
+            isShowCancel: false,
+            isShowChart: false,
+            isShowHistory: false
+          }
+        }
+      },
+      isRequired: false,
+      env: ctx.$env,
+      meritsTree: [],
+      meritsTreeProps: {
+        label: 'targetName',
+        value: 'id',
+        expandTrigger: 'hover'
+        // checkStrictly: true
+      },
+      applyDept: [],
+      activeStep: 1,
+      formRef: null,
+      projectTable: [],
+      userList: [],
+      userQuery: {
+        pageIndex: 1,
+        pageSize: 10,
+        total: 0
+      },
+      uploadDialog: false,
+      overTen: false,
+      threeProject: [],
+      projectList: [
+        '缁煎悎涓氬姟璐�',
+        '鍔炲叕璐�',
+        '瀛︽牎鎷涘緟璐�',
+        '鍏姟杞︺€佷笟鍔$敤杞﹀強杩愯缁存姢璐�',
+        '鏂板啝鐤儏闃叉帶璐�',
+        '琛屾斂宸梾璐�',
+        '閭數璐�',
+        '绉熻溅璐�',
+        '鍏氬缓缁煎悎涓氬姟璐�',
+        '鍏氭牎',
+        '骞查儴鍩硅涓撻」缁忚垂',
+        '缁熸垬涓氬姟璐�',
+        '鍔炴缁忚垂',
+        '娈嬮殰灏变笟淇濋殰',
+        '浜岃疆鑱樼敤',
+        '鍏紑鎷涜仒璐�',
+        '鑱岃瘎鑱岃仒',
+        '闊虫暀绯绘暀瀛﹀疄涔�',
+        '浼氳涓氬姟璐�',
+        '璐㈠姟璁惧缁存姢璐�',
+        '灏变笟鎸囧涓績缁忚垂',
+        '鎬濇斂绉戠粡璐�',
+        '鎻愬彇瀛︾敓濂栧姪鍩洪噾',
+        '蹇冪悊鍜ㄨ涓績缁忚垂',
+        '瀛︾敓绠$悊绉戠粡璐�',
+        '瀛︽牎鏄撶彮缃戝缓璁惧強鎻愬崌',
+        '璧勫姪涓績缁忚垂',
+        '缁煎悎涓氬姟璐�',
+        '鏍¤€冩嫑鐢熻垂',
+        '姝﹁閮ㄤ笟鍔¤垂',
+        '瀛︾敓鍐涜璐�',
+        '鐩戞帶銆佹秷闃层€佷氦閫氱鐞嗙郴缁熺淮鎶よ垂',
+        '澶у鍩庢牎鍖哄喎姘旇垂',
+        '澶у鍩庢牎鍖虹墿涓氱鐞嗚垂',
+        '鍚庡嫟璁炬柦缁翠繚璐�',
+        '绌虹疆鍏鎴跨閲戙€佺墿涓氱鐞嗚垂鍙婃按鐢电瓑锛堝惈鍛ㄨ浆鎴跨瓑锛�',
+        '绂婚€€浼戝尰鐤楃粡璐�',
+        '鍚庡嫟缁翠慨璐�',
+        '缁垮寲璐�',
+        '缁胯壊瀛︽牎鍒涘缓鈥斺€斾紶鏌撶梾闃叉帶涓撻」缁忚垂',
+        '缁胯壊瀛︽牎鍒涘缓鈥斺€斾袱鏍″尯鑺傝兘绠$悊璐�',
+        '娌欐渤鏍″尯鐗╀笟绠$悊璐�',
+        '姘寸數璐�',
+        '鍗敓璐�',
+        '瀛︾敓鍏瘬绠$悊璐�',
+        '鍦ㄨ亴浜哄憳鍖荤枟缁忚垂',
+        '绋庨噾鍙婇檮鍔犺垂鐢�',
+        '鈥滃叚涓€鈥濆効绔ユ叞闂垂',
+        '鈥滀笁鍏€濇椿鍔ㄨ垂',
+        '鈥滀簲鍥涒€濇椿鍔ㄨ垂',
+        '2022骞寸浜屽崄鍥涘眾杩愬姩浼氭暀 鑱屽伐杩愬姩鏈嶈璐瑰拰濂栭噾',
+        '绔崍鑺傛叞闂搧',
+        '宸ヤ細缁忚垂',
+        '鏁欏笀鑺傛叞闂噾',
+        '鏁欒亴宸ョ粨濠氥€佹暀鑱屽伐鐢熺梾浣忛櫌銆佸コ鏁欒亴宸ョ敓灏忓鎱伴棶閲�',
+        '鏁欒亴宸ョ敓鏃ヨ泲绯曞埜',
+        '鍥伴毦鏁欒亴宸ヨˉ鍔�',
+        '娣卞寲鎷撳睍娑堣垂甯壎',
+        '閫€浼戠邯蹇靛搧',
+        '鍏冩棪鏄ヨ妭鎱伴棶鍝�',
+        '鑱屽伐鍖荤枟鐢�',
+        '涓鍥藉簡鑺傛叞闂搧',
+        '浣忛櫌鍖荤枟缁煎悎锛堜簩娆″尰淇濓級',
+        '绂婚€€浼戝叕鐢ㄧ粡璐�',
+        '閲囬璐�',
+        '瀛︾敓娲诲姩璐�',
+        '缁煎悎涓氬姟璐�',
+        '閲囬',
+        '瀛︾敓娲诲姩璐�',
+        '鍥介檯鏈鈥�2+2鈥�',
+        '鍥介檯鏈鈥�3+2鈥�',
+        '椤圭洰鎴愭湰-鏁欒偛閮ㄧ暀瀛︽湇鍔′腑蹇冪鐞嗚垂鍙婂悎浣滄柟鍒嗘垚',
+        '骞夸笢鐪佸ぇ瀛︾敓杩愬姩浼�',
+        '浣撹偛缁存寔璐圭骇姣旇禌缁忚垂',
+        '瀛︾敓浣撹川娴嬭瘯',
+        '瀛﹂櫌杩愬姩浼�',
+        '瀛︾敓姣曚笟鑱氶娲诲姩琛ヨ创',
+        '瀛︾敓娲诲姩璐�',
+        '鐮旂┒鐢熸嫑鐢熻垂',
+        '缁ф暀闄㈤」鐩垚鏈�',
+        '椤圭洰鎴愭湰-杩涗慨鐝�',
+        '鏁欒偛缃�200M甯﹀绉熻祦璐�',
+        '淇℃伅缃戠粶绯荤粺缁存姢璐�',
+        '鏅烘収鏍″洯骞冲彴缁翠繚鏈嶅姟椤圭洰',
+        '涓浗鐢典俊500M甯﹀绉熻祦',
+        '涓浗鑱旈€�500M甯﹀绉熻祦',
+        '涓浗绉诲姩1G甯﹀绉熻祦'
+      ],
+      rules: {
+        basis: [
+          {
+            required: true,
+            message: '璇疯緭鍏ラ」鐩唴瀹规杩板強鍏蜂綋瀹炴柦鍐呭',
+            trigger: 'blur'
+          }
+        ],
+        budget: [
+          {
+            required: true,
+            message: '璇疯緭鍏ラ」鐩墽琛屽強璧勯噾浣跨敤璁″垝',
+            trigger: 'blur'
+          }
+        ],
+        terminfo: [
+          {
+            required: true,
+            message: '璇疯緭鍏ラ」鐩珛椤逛緷鎹�',
+            trigger: 'blur'
+          }
+        ],
+        plan: [
+          {
+            required: true,
+            message: '璇疯緭鍏ラ」鐩珛椤圭殑蹇呰鎬у強鍙鎬�',
+            trigger: 'blur'
+          }
+        ]
+      }
+    });
+    watch(
+      () => data.projectTable,
+      val => {
+        data.overTen = false;
+        if (val && val.length > 0) {
+          val.forEach(item => {
+            item.money =
+              (item.price ? item.price : 0) * (item.count ? item.count : 0);
+            if (item.money && item.money >= 100000) {
+              data.overTen = true;
+            }
+          });
+        }
+      },
+      { deep: true }
+    );
+    //璁$畻楂樺害锛屽浐瀹氭楠ゆ爮
+    const caculateHeight = () => {
+      const step = document.querySelector('#step');
+      const flowWrap = document.querySelector('#flowWrap');
+      const scrollWrap = document.querySelector('.app-main');
+      step.style.top = 300 + scrollWrap.scrollTop + 'px';
+      if (scrollWrap.scrollTop >= 20) {
+        flowWrap.style.top = scrollWrap.scrollTop - 20 + 'px';
+      } else {
+        flowWrap.style.top = 0 + 'px';
+      }
+    };
+    const onClickNode = (scope, node) => {
+      // scope.row.one = data.parent;
+      scope.row.oneValue = node.pathLabels[0];
+      scope.row.twoValue = node.pathLabels[1];
+      scope.row.two = node.label;
+      if (data.env == 'yy') {
+        getThreeData(node.pathLabels[0], scope.row.two, scope.$index);
+      }
+    };
+    const caculateActiveStep = () => {
+      var windowH =
+        window.innerHeight ||
+        document.documentElement.clientHeight ||
+        document.body.clientHeight;
+      const baseInfo = document.getElementById('baseInfo');
+      const projectMessage = document.getElementById('projectMessage');
+      const projectData = document.getElementById('projectData');
+      const projectAchieve = document.getElementById('projectAchieve');
+      const fileData = document.getElementById('fileData');
+      if (
+        baseInfo.getBoundingClientRect().top > 0 &&
+        baseInfo.getBoundingClientRect().top < windowH / 2
+      ) {
+        data.activeStep = 1;
+      }
+      if (
+        projectMessage.getBoundingClientRect().top > 0 &&
+        projectMessage.getBoundingClientRect().top < windowH / 2
+      ) {
+        data.activeStep = 2;
+      }
+      if (
+        projectData.getBoundingClientRect().top > 0 &&
+        projectData.getBoundingClientRect().top < windowH / 2
+      ) {
+        data.activeStep = 3;
+      }
+      if (
+        projectAchieve.getBoundingClientRect().top > 0 &&
+        projectAchieve.getBoundingClientRect().top < windowH / 2
+      ) {
+        data.activeStep = 4;
+      }
+      if (
+        fileData.getBoundingClientRect().top > 0 &&
+        fileData.getBoundingClientRect().top < windowH / 2
+      ) {
+        data.activeStep = 5;
+      }
+    };
+    const debonceCaculate = throttle(caculateHeight, 10);
+    const debonceCaculateStep = debounce(caculateActiveStep, 10);
+    document.querySelector('.app-main').onscroll = () => {
+      debonceCaculate();
+      // fixFlowWrap();
+      debonceCaculateStep();
+    };
+    //鐐瑰嚮step婊氬姩鍒拌閲庡唴
+    const scrollToView = id => {
+      const dom = document.getElementById(`${id}`);
+      dom.scrollIntoView({ behavior: 'smooth', block: 'center' });
+    };
+    //璐熻矗浜轰笅鎷夋杈撳叆妯$硦鏌ヨ
+    const getLeaderByValue = name => {
+      data.userQuery.pageIndex = 1;
+      selectLoadmore(name);
+    };
+    //涓嬫媺妗嗚Е搴曡Е椤跺姞杞�
+    const selectVisibleChange = visible => {
+      if (visible) {
+        // const SELECTWRAP_LIST = document.querySelectorAll('.el-dropdown__popper.el-popper.is-light.is-pure');
+        // const domList = Array.from(SELECTWRAP_LIST);
+        // console.log(domList);
+        // const SELECTWRAP_ITEM = domList.find(item => {
+        //   console.log(item.getAttribute('aria-hidden'));
+        //   return !item.getAttribute('aria-hidden') || item.getAttribute('aria-hidden') == 'false'
+        // })
+        // console.error(SELECTWRAP_ITEM);
+        const SELECTWRAP_DOM = document.querySelector(
+          '.select-user .el-select-dropdown__wrap.el-scrollbar__wrap'
+        );
+        const totalPage = Math.ceil(
+          absNum(data.userQuery.total, data.userQuery.pageSize, '/')
+        );
+        SELECTWRAP_DOM &&
+          SELECTWRAP_DOM.addEventListener('scroll', () => {
+            // console.log(SELECTWRAP_DOM.scrollHeight, SELECTWRAP_DOM.scrollTop, SELECTWRAP_DOM.clientHeight);
+            const down =
+              SELECTWRAP_DOM.scrollHeight - SELECTWRAP_DOM.scrollTop - 1 <=
+              SELECTWRAP_DOM.clientHeight;
+            const up = SELECTWRAP_DOM.scrollTop <= 0;
+            if (down) {
+              if (data.userQuery.pageIndex >= totalPage) {
+                //鏈€鍚庝竴椤�
+                return;
+              }
+              data.userQuery.pageIndex++; //涓嬩竴椤�
+              SELECTWRAP_DOM.scrollTop = 1;
+              selectLoadmore();
+            }
+            if (up) {
+              if (data.userQuery.pageIndex <= 1) {
+                //绗竴椤�
+                return;
+              }
+              data.userQuery.pageIndex--; //涓嬩竴椤�
+              SELECTWRAP_DOM.scrollTop = 1;
+              selectLoadmore();
+            }
+          });
+      }
+    };
+    //娣诲姞缁╂晥
+    const addQuota = scope => {
+      data.applyInfo.projectTargetCmd.subOtherArrayJson.splice(
+        scope.$index + 1,
+        0,
+        { content: '', three: '' }
+      );
+    };
+    //鍒犻櫎缁╂晥
+    const deleteQuota = scope => {
+      if (data.applyInfo.projectTargetCmd.subOtherArrayJson.length <= 1) {
+        data.applyInfo.projectTargetCmd.subOtherArrayJson.forEach(item => {
+          for (const key in item) {
+            item[key] = '';
+          }
+        });
+        return ElMessage.warning('鑷冲皯淇濈暀涓€琛屾暟鎹�');
+      }
+      data.applyInfo.projectTargetCmd.subOtherArrayJson.splice(scope.$index, 1);
+    };
+    const cascaderChange = scope => {
+      if (data.env == 'jk') {
+        if (scope.row.two == '鏁伴噺鎸囨爣') {
+          scope.row.content =
+            '璁″垝瀹屾垚鐨勪骇鍝佹垨鏈嶅姟鐨勬暟閲忥紝搴斾笌椤圭洰鍐呭鍜岄绠楁瀯鎴愮浉鍖归厤';
+        }
+        if (scope.row.two == '璐ㄩ噺鎸囨爣') {
+          scope.row.content = '浜у搧鎴栨湇鍔¤揪鍒扮殑鏍囧噯鍜屾按骞�';
+        }
+        if (scope.row.two == '鏃舵晥鎸囨爣') {
+          scope.row.content = '瀹屾垚鏃堕棿鎴栧強鏃剁▼搴�';
+        }
+        if (scope.row.two == '绀句細鏁堢泭鎸囨爣') {
+          scope.row.content = '鍙嶆槧绔嬮」鐩殑銆侀鏈熷姛鑳姐€佺敤閫旀垨褰卞搷';
+        }
+        if (scope.row.two == '鏈嶅姟瀵硅薄婊℃剰搴︽寚鏍�') {
+          scope.row.content = '鏈嶅姟瀵硅薄銆佺ぞ浼氬叕浼楁垨鍏朵粬鍒╃泭鐩稿叧鑰呯殑婊℃剰绋嬪害';
+        }
+      }
+
+      // scope.row.one = val[0];
+      // scope.row.two = val[1];
+      // nextTick(() => {
+      // });
+    };
+    const selectLeaderChange = leaderId => {
+      const leader = data.userList.find(item => item.id == leaderId);
+      data.applyInfo.projectLeaderName = leader.name;
+      data.applyInfo.projectLeaderCode = leader.code;
+      data.applyInfo.projectLeaderId = leader.id;
+    };
+    //璐熻矗浜轰笅鎷夋鑾峰彇鏁版嵁
+    const selectLoadmore = async name => {
+      data.selectUserLoading = true;
+      const params = {
+        pageIndex: data.userQuery.pageIndex,
+        pageSize: data.userQuery.pageSize
+      };
+      if (name) {
+        params.name = name;
+      }
+      try {
+        const res = await Api.projectFundQueryUserList(params);
+        data.userList = res.data;
+        data.userQuery.total = res.total;
+        data.selectUserLoading = false;
+      } catch (_) {
+        data.selectUserLoading = false;
+      }
+    };
+    //娴佺▼閫昏緫浠g爜
+    const handleBack = () => {
+      context.emit('switch-page', 'List');
+    };
+    const handleSave = async resolve => {
+      data.applyInfo.planType = 'XIANGMUKU';
+      if (data.projectTable.length == 0) {
+        ElMessage.warning('璇疯緭鍏ラ」鐩俊鎭�');
+        return false;
+      }
+      const applyInfo = JSON.parse(JSON.stringify(data.applyInfo));
+      const dept = data.applyDept.find(
+        item => item.code == applyInfo.departmentCode
+      );
+      applyInfo.departmentName = dept.name;
+      applyInfo.xinghaiProjectJson = [];
+      applyInfo.xinghaiProjectJson = data.projectTable;
+      applyInfo.summaryJson = JSON.stringify(applyInfo.summaryJson);
+      applyInfo.projectTargetCmd.summaryJson = JSON.stringify(
+        applyInfo.projectTargetCmd.summaryJson
+      );
+      applyInfo.projectTargetCmd.subOtherArrayJson = JSON.stringify(
+        applyInfo.projectTargetCmd.subOtherArrayJson
+      );
+      applyInfo.xinghaiProjectJson = JSON.stringify(
+        applyInfo.xinghaiProjectJson
+      );
+      applyInfo.attachmentInfoOutList = applyInfo.attachmentInfoOutList.map(
+        item => {
+          return item.id;
+        }
+      );
+      const resData = await ProjectLibrary.saveXingHaiProjectInfoPlan(
+        applyInfo
+      );
+      const res = await ProjectLibrary.queryProjectInfoPlanById(
+        resData.data[0]
+      );
+      if (!resolve) {
+        ElMessage.success('淇濆瓨鎴愬姛');
+      }
+      res.data[0].projectTargetCmd.subOtherArrayJson = JSON.parse(
+        res.data[0].projectTargetCmd.subOtherArrayJson
+      );
+      res.data[0].projectTargetCmd.summaryJson = JSON.parse(
+        res.data[0].projectTargetCmd.summaryJson
+      );
+      res.data[0].summaryJson = JSON.parse(res.data[0].summaryJson);
+      console.log(data.applyInfo.xinghaiProjectJson);
+      data.projectTable = JSON.parse(applyInfo.xinghaiProjectJson);
+      data.applyInfo = res.data[0];
+      data.planId = res.data[0].id;
+      return true;
+    };
+    const handleSubmit = async flowOutput => {
+      data.formRef.validate(valid => {
+        if (!valid) return ElMessage.warning('璇峰皢淇℃伅琛ュ厖瀹屾暣');
+        let { nodeIds, remake } = flowOutput;
+        let nodeIdArr = [];
+        nodeIdArr.push(nodeIds);
+        let actionFlowCmd = {
+          id: data.planId,
+          nodeIds: nodeIdArr,
+          remake
+        };
+        const newApplyInfo = JSON.parse(JSON.stringify(data.applyInfo));
+        newApplyInfo.summaryJson = JSON.stringify(newApplyInfo.summaryJson);
+        newApplyInfo.projectTargetCmd.subOtherArrayJson = JSON.stringify(
+          newApplyInfo.projectTargetCmd.subOtherArrayJson
+        );
+        newApplyInfo.projectTargetCmd.summaryJson = JSON.stringify(
+          newApplyInfo.projectTargetCmd.summaryJson
+        );
+        if (
+          newApplyInfo.attachmentInfoOutList &&
+          newApplyInfo.attachmentInfoOutList.length > 0
+        ) {
+          newApplyInfo.attachmentInfoOutList = newApplyInfo.attachmentInfoOutList.map(
+            v => v.id
+          );
+        }
+        newApplyInfo.planSubjectList.forEach(item => {
+          item.otherJson = JSON.stringify(item.otherJson);
+          if (item.subjectDetailList.length <= 0) {
+            item.subjectDetailList = null;
+          } else {
+            item.subjectDetailList.forEach(jtem => {
+              jtem.otherJson = JSON.stringify(jtem.otherJson);
+            });
+          }
+        });
+
+        newApplyInfo.planType = 'XIANGMUKU';
+        new Promise((resolve, reject) => {
+          handleSave(1).then(res => {
+            if (res) {
+              resolve();
+            } else {
+              reject();
+            }
+          });
+        })
+          .then(() => {
+            ProjectLibrary.submitProjectPlan(actionFlowCmd).then(() => {
+              ElMessage.success('鎻愪氦鎴愬姛');
+              handleBack();
+            });
+          })
+          .catch(() => {
+            ElMessage.success('鎻愪氦澶辫触');
+          });
+      });
+    };
+    const handleReturn = flowOutput => {
+      let { nodeIds, remake } = flowOutput;
+      let nodeIdArr = [];
+      nodeIdArr.push(nodeIds);
+      let actionFlowCmd = {
+        id: data.planId,
+        nodeIds: nodeIdArr,
+        remake
+      };
+      // this.formLine.actionFlowCmd = actionFlowCmd;
+      ProjectLibrary.rollBackProjectPlan(actionFlowCmd).then(() => {
+        ElMessage.success('鍥為€€鎴愬姛');
+        handleBack();
+      });
+    };
+    const handleCancel = () => {
+      ProjectLibrary.reCallProjectPlan(props.oId).then(() => {
+        ElMessage.success('鍥炴挙鎴愬姛');
+        if (props.oId) {
+          init();
+        }
+      });
+    };
+    const selectDeptChange = val => {
+      const dept = data.applyDept.find(item => item.code == val);
+      data.applyInfo.departmentName = dept.name;
+    };
+    const getThreeData = (oneName, twoName, index) => {
+      ProjectLibrary.queryTargetAllFundList({
+        oneName: oneName,
+        twoName: twoName
+      }).then(res => {
+        data.applyInfo.projectTargetCmd.subOtherArrayJson[index].threeProject =
+          res.data;
+      });
+    };
+    const init = () => {
+      const leader = store.state.subject.leader;
+      data.applyInfo.projectLeaderId = leader.id;
+      data.applyInfo.projectLeaderName = leader.name;
+      data.applyInfo.projectLeaderCode = leader.code;
+      selectLoadmore(data.applyInfo.projectLeaderName);
+      getApplyDept();
+      getMeritsTree();
+      console.log(props);
+      if (props.row.id) {
+        ProjectLibrary.queryProjectInfoPlanById(props.row.id).then(res => {
+          res.data[0].projectTargetCmd.subOtherArrayJson = JSON.parse(
+            res.data[0].projectTargetCmd.subOtherArrayJson
+          );
+          res.data[0].projectTargetCmd.summaryJson = JSON.parse(
+            res.data[0].projectTargetCmd.summaryJson
+          );
+          res.data[0].summaryJson = JSON.parse(res.data[0].summaryJson);
+
+          data.applyInfo = res.data[0];
+          data.projectTable = JSON.parse(data.applyInfo.xinghaiProjectJson);
+          data.planId = res.data[0].id;
+          data.applyInfo.stepYear = data.applyInfo.stepYear ?  res.data[0].stepYear : 'NO';
+        });
+      }
+    };
+    const getApplyDept = async () => {
+      const res = await Api.pfApplyDept();
+      data.applyDept = res.data;
+      if (res.data && res.data.length > 0) {
+        data.applyInfo.departmentCode = data.applyDept[0].code;
+      }
+    };
+    const getMeritsTree = async () => {
+      const res = await Api.projectFundTargetTree({
+        year: sessionStorage.getItem('year')
+        // year: "2022"
+      });
+      data.meritsTree = res.data;
+    };
+    //涓婁紶鏂囦欢
+    const uploadHandler = fileList => {
+      const formData = new FormData();
+      fileList.forEach(file => {
+        formData.append('files', file.raw);
+      });
+      ProjectLibrary.uploadAttachmentList(formData).then(res => {
+        data.applyInfo.attachmentInfoOutList = data.applyInfo.attachmentInfoOutList.concat(
+          res.data
+        );
+        data.uploadDialog = false;
+      });
+    };
+    const addProject = () => {
+      data.projectTable.push({ money: 0 });
+    };
+    const deleteProject = scope => {
+      data.projectTable.splice(scope.$index, 1);
+    };
+    const downloadFile = id => {
+      ProjectLibrary.downloadTempImport({ id: id });
+    };
+    const deleteFile = index => {
+      data.applyInfo.attachmentInfoOutList.splice(index, 1);
+    };
+    const getSummary = () => {
+      let moneyData = 0;
+      data.projectTable.map(item => {
+        moneyData = absNum(moneyData, Number(item.money), '+');
+      });
+      if (moneyData > 200000) {
+        data.isRequired = true;
+      } else {
+        data.isRequired = false;
+      }
+      return ['鍚堣', '', '', moneyFormatter(moneyData, 2, ',')];
+    };
+    init();
+    return {
+      ...toRefs(data),
+      //鍩烘湰淇℃伅鍜屾杩�
+      navToPrint,
+      store,
+      isEmpty,
+      scrollToView,
+      onClickNode,
+      addQuota,
+      deleteQuota,
+      selectLeaderChange,
+      handleBack,
+      handleSave,
+      handleSubmit,
+      handleReturn,
+      handleCancel,
+      selectDeptChange,
+      getLeaderByValue,
+      selectVisibleChange,
+      uploadHandler,
+      cascaderChange,
+      addProject,
+      deleteProject,
+      downloadFile,
+      deleteFile,
+      subOtherTable,
+      getSummary,
+      ctx
+    };
+  }
+};
+</script>
+
+<style scoped lang="scss">
+.color {
+  color: #409eff;
+}
+h2 {
+  text-align: center;
+}
+.step-wrap {
+  // position: absolute;
+  // left: 30px;
+  // top: 75vh;
+  /* bottom: 0; */
+}
+.apply-table-wrap {
+  padding: 68px 150px 0;
+}
+.one-quota {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  .icon-wrap {
+    font-size: 16px;
+    margin-left: 4px;
+    display: flex;
+    flex-direction: column;
+    i {
+      display: block;
+    }
+    .add-icon {
+      cursor: pointer;
+      color: #409eff;
+    }
+    .delete-icon {
+      cursor: pointer;
+      color: #f56c6c;
+    }
+    .el-button--mini.is-circle {
+      padding: 5px;
+    }
+    .el-button--mini {
+      min-height: 20px;
+    }
+  }
+}
+.fileBox {
+  margin-top: 10px;
+  .el-tag {
+    margin: 0 10px;
+  }
+}
+</style>
diff --git a/WebSite/src/views/yo-dept-sp/project-fund-approval/Personnel/index.vue b/WebSite/src/views/yo-dept-sp/project-fund-approval/Personnel/index.vue
new file mode 100644
index 000000000..9182f7d70
--- /dev/null
+++ b/WebSite/src/views/yo-dept-sp/project-fund-approval/Personnel/index.vue
@@ -0,0 +1,46 @@
+<template>
+  <div class="app-container">
+    <transition name="fade-transform" mode="out-in">
+      <component
+        :is="currentComponent"
+        @switch-page="switchPage"
+        :canEdit="canEdit"
+        :row="info"
+      ></component>
+    </transition>
+  </div>
+</template>
+
+<script>
+import List from '@/views/yo-dept-sp/project-fund-approval/Personnel/components/List';
+import workDetail from '@/views/yo-dept-sp/project-fund-approval/Personnel/components/workDetail';
+import Detail from '@/views/yo-common/ProjectApplyPageList/detail.vue';
+import { reactive, toRefs } from 'vue';
+export default {
+  name: 'Personnel',
+  components: {
+    List,
+    Detail,
+    workDetail
+  },
+  setup() {
+    const data = reactive({
+      currentComponent: 'List',
+      info: {},
+      canEdit: false
+    });
+
+    const switchPage = (page, canEdit, row) => {
+      data.currentComponent = page;
+      data.canEdit = canEdit;
+      data.info = row;
+    };
+    return {
+      ...toRefs(data),
+      switchPage
+    };
+  }
+};
+</script>
+
+<style></style>
diff --git a/WebSite/vue.config.js b/WebSite/vue.config.js
index 8ef724f7a..5a2caa172 100644
--- a/WebSite/vue.config.js
+++ b/WebSite/vue.config.js
@@ -32,8 +32,8 @@ if (process.env.NODE_ENV === 'mock') {
     // detail: https://cli.vuejs.org/config/#devserver-proxy
     [process.env.VUE_APP_BASE_API]: {
     // target: 'http://192.168.2.10/projectplan',
-      //  target: 'http://192.168.1.80/projectplan', //闄や笂澶у鎵€鏈夊叾浠栧鏍¢兘浣跨敤杩欎釜锛屼笂澶х敤涓嬫柟甯hu鐨�(涓婂ぇ鎵撳寘姝e紡鐜璇风敤杩欎釜锛屽苟涓旀鏌�.env.sd鏂囦欢閲岀殑VUE_APP_BASE_API = '/projectplan'鏄惁甯︿笉甯hu)
-      target: 'http://192.168.1.80/projectplanshu', //涓婂ぇ(濡傛灉鎵撳寘涓婂ぇ鍒版祴璇曠幆澧冪殑璇濓紝璇锋妸.env.sd鏂囦欢閲岀殑VUE_APP_BASE_API = '/projectplan'鏀规垚VUE_APP_BASE_API = '/projectplanshu')
+       target: 'http://192.168.1.80/projectplan', //闄や笂澶у鎵€鏈夊叾浠栧鏍¢兘浣跨敤杩欎釜锛屼笂澶х敤涓嬫柟甯hu鐨�(涓婂ぇ鎵撳寘姝e紡鐜璇风敤杩欎釜锛屽苟涓旀鏌�.env.sd鏂囦欢閲岀殑VUE_APP_BASE_API = '/projectplan'鏄惁甯︿笉甯hu)
+      // target: 'http://192.168.1.80/projectplanshu', //涓婂ぇ(濡傛灉鎵撳寘涓婂ぇ鍒版祴璇曠幆澧冪殑璇濓紝璇锋妸.env.sd鏂囦欢閲岀殑VUE_APP_BASE_API = '/projectplan'鏀规垚VUE_APP_BASE_API = '/projectplanshu')
       // target: 'http://172.28.12.50/',
       changeOrigin: true,
       pathRewrite: {
-- 
GitLab


From bdc25fe33dee486748734c0107903ed48a37f50c Mon Sep 17 00:00:00 2001
From: lshwy817 <lshwy817@163.com>
Date: Fri, 7 Apr 2023 17:28:32 +0800
Subject: [PATCH 2/2] =?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/assets/images/tupian3.png         | Bin 0 -> 37265 bytes
 WebSite/src/components/Flow/index.vue         |  15 ++++----
 .../department/components/List.vue            |  29 +++++++--------
 .../inSchool/components/List.vue              |  33 +++++++-----------
 .../Personnel/components/List.vue             |   1 +
 5 files changed, 37 insertions(+), 41 deletions(-)
 create mode 100644 WebSite/src/assets/images/tupian3.png

diff --git a/WebSite/src/assets/images/tupian3.png b/WebSite/src/assets/images/tupian3.png
new file mode 100644
index 0000000000000000000000000000000000000000..3869e39324a0769f072852128559839b7abc81ff
GIT binary patch
literal 37265
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
TKkna!v`<Y*>o)G@qZj`l>*lp!

literal 0
HcmV?d00001

diff --git a/WebSite/src/components/Flow/index.vue b/WebSite/src/components/Flow/index.vue
index 6b21b1413..0523bbb2c 100644
--- a/WebSite/src/components/Flow/index.vue
+++ b/WebSite/src/components/Flow/index.vue
@@ -60,12 +60,12 @@
     </div>
     <el-dialog v-model="dialogVisible" width="70%" v-if="env == 'lg'">
       <div style="display: none">{{ flowInfo }}</div>
-      <img
+      <!-- <img
         src="@/assets/images/tupian.png"
         style="width: 90%"
         v-if="flowInfo.functionDeptJson != ''"
-      />
-      <img src="@/assets/images/tupian2.png" style="width: 90%" v-else />
+      /> -->
+      <img src="@/assets/images/tupian3.png" style="width: 90%" />
     </el-dialog>
     <Submit
       v-if="dialogSubmit.visible"
@@ -89,7 +89,7 @@
 </template>
 
 <script>
-import { reactive, toRefs } from 'vue';
+import { reactive, toRefs, getCurrentInstance } from 'vue';
 import Submit from './conpoments/Submit';
 import Return from './conpoments/Return';
 import History from './conpoments/History';
@@ -115,6 +115,7 @@ export default {
   components: { History, Submit, Return },
   setup(props, cxt) {
     console.log('prop', props.flowInfo);
+    const { ctx } = getCurrentInstance();
     const state = reactive({
       dialogSubmit: {
         visible: false
@@ -126,7 +127,7 @@ export default {
         visible: false
       },
       dialogVisible: false,
-      env: process.env.NODE_ENV
+      env: ctx.$env
       // env: 'lg'
     });
     const handleBack = () => {
@@ -152,6 +153,7 @@ export default {
       cxt.emit('handleCancel');
     };
     const handleChart = () => {
+      console.log('232');
       if (state.env == 'lg') {
         state.dialogVisible = true;
       }
@@ -172,7 +174,8 @@ export default {
       handleSubmit,
       handleOpenSubmitDialog,
       handleOpenReturnDialog,
-      handleOpenHistoryDialog
+      handleOpenHistoryDialog,
+      ctx
     };
   }
 };
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 a9e3cc034..cf1d820aa 100644
--- a/WebSite/src/views/main/project-library/department/components/List.vue
+++ b/WebSite/src/views/main/project-library/department/components/List.vue
@@ -111,6 +111,7 @@
         class="mtop20"
         @selection-change="handleSelectionChange"
         fit
+        border
       >
         <el-table-column type="selection" width="55" align="center" />
         <el-table-column
@@ -119,7 +120,7 @@
           v-if="$env == 'lg'"
         />
         <el-table-column label="椤圭洰鍚嶇О" prop="projectName" />
-        <el-table-column label="椤圭洰搴�" prop="projectLibraryName" width="100">
+        <el-table-column label="椤圭洰搴�" prop="projectLibraryName" >
           <template #default="scope">
             <el-button
               @click="toDetail(scope.row)"
@@ -133,7 +134,7 @@
             <span  v-if="$env == 'lg'">{{ moneyFormat(scope.row.projectLibraryTotalMoney, 2, ',') }}</span>
           </template>
         </el-table-column> -->
-        <el-table-column label="涓€涓�" prop="oneUPName" width="180">
+        <el-table-column label="涓€涓�" prop="oneUPName" >
           <template #default="scope">
             <el-button
               v-if="scope.row.oneUPState == 1"
@@ -153,7 +154,7 @@
             <span  v-if="$env == 'lg' && scope.row.oneUPName != ''">{{ moneyFormat(scope.row.oneUPTotalMoney, 2, ',') }}</span>
           </template>
         </el-table-column> -->
-        <el-table-column label="浜屼笂" prop="twoUPName" width="420">
+        <el-table-column label="浜屼笂" prop="twoUPName" width="380" header-align="center">
           <template #default="scope">
             <div v-if="$env != 'lg'">
               <el-button
@@ -169,16 +170,16 @@
               >
             </div>
             <div class="newBorder" v-if="$env == 'lg' && scope.row.oneUPName == '瀹℃牳瀹屾垚'" >
-              <el-table :data="scope.row.splitList" style="width: 100%" fit 
+              <el-table :data="scope.row.splitList" style="width: 100%" fit
                 :show-header="false" row-class-name="tablecolor" 
-                @selection-change="splitChange" v-if="scope.row.isTableShow">
-                <el-table-column prop="splitProjectName"  />
+                @selection-change="splitChange" v-if="scope.row.isTableShow" >
+                <el-table-column prop="splitProjectName" width="100"  />
                 <!-- <el-table-column prop="splitTotalMoney">
                   <template #default="scope1">
                     <div v-if="scope1.row.splitTotalMoney != ''">{{ moneyFormat(scope1.row.splitTotalMoney, 2, ',') }}</div>
                   </template>
                 </el-table-column> -->
-                <el-table-column prop="twoUPName">
+                <el-table-column prop="twoUPName" >
                   <template #default="scope1">
                     <el-button
                     v-if="scope1.row.twoUPState == 1"
@@ -187,7 +188,7 @@
                     >缂栬緫</el-button >
                   </template>
                 </el-table-column>
-                <el-table-column prop="twoUPName">
+                <el-table-column prop="twoUPName" width="80">
                   <template #default="scope1">
                     <el-button
                     @click="toTwo(scope1.row)"
@@ -724,12 +725,12 @@ export default {
 }
 ::v-deep .el-table__row.tablecolor{
    td {
-    border: none !important;
-  }
-}
-.newBorder {
-  ::v-deep .el-table::before {
-    height: 0 !important;
+    border-right: none !important;
   }
 }
+// .newBorder {
+//   ::v-deep .el-table::before {
+//     height: 0 !important;
+//   }
+// }
 </style>
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 eb2c6d7af..42f5eb2f0 100644
--- a/WebSite/src/views/main/project-library/inSchool/components/List.vue
+++ b/WebSite/src/views/main/project-library/inSchool/components/List.vue
@@ -63,6 +63,7 @@
         class="mtop20"
         fit
         @sort-change="sortChange"
+        border
       >
         <el-table-column label="骞翠唤" prop="year" />
         <el-table-column
@@ -78,38 +79,38 @@
           prop="departmentName"
           sortable="custom"
         />
-        <el-table-column label="椤圭洰搴�" prop="projectLibraryName" width="150">
+        <el-table-column label="椤圭洰搴�" prop="projectLibraryName" >
           <template #default="scope">
             <el-button @click="toDetail(scope.row)" type="text">{{
               scope.row.projectLibraryName
             }}</el-button>
-            <span class="lidiv">{{ moneyFormat(scope.row.projectLibraryTotalMoney, 2, ',') }}</span>
+            <!-- <span class="lidiv">{{ moneyFormat(scope.row.projectLibraryTotalMoney, 2, ',') }}</span> -->
           </template>
         </el-table-column>
-        <el-table-column label="涓€涓�" prop="oneUPName" width="150">
+        <el-table-column label="涓€涓�" prop="oneUPName" >
           <template #default="scope">
             <el-button @click="toOne(scope.row)" type="text">{{
               scope.row.oneUPName
             }}</el-button>
-            <span class="lidiv">{{ moneyFormat(scope.row.oneUPTotalMoney, 2, ',') }}</span>
+            <!-- <span class="lidiv">{{ moneyFormat(scope.row.oneUPTotalMoney, 2, ',') }}</span> -->
           </template>
         </el-table-column>
-        <el-table-column label="浜屼笂" prop="twoUPName" width="350">
+        <el-table-column label="浜屼笂" prop="twoUPName" width="250" header-align="center">
           <template #default="scope">
-            <div v-if="scope.row.isShows">
+            <div v-if="env != 'lg'">
               <el-button @click="toTwo(scope.row)" type="text">{{
                 scope.row.twoUPName
               }}</el-button>
-              <span class="lidiv">{{ moneyFormat(scope.row.splitTotalMoney, 2, ',') }}</span>
+              <!-- <span class="lidiv">{{ moneyFormat(scope.row.splitTotalMoney, 2, ',') }}</span> -->
             </div>
-            <div class="newBorder">
+            <div class="newBorder" v-if="env == 'lg' && scope.row.oneUPName == '瀹℃牳瀹屾垚'">
               <el-table :data="scope.row.splitList" style="width: 100%" fit 
                 :show-header="false" row-class-name="tablecolor" v-if="scope.row.isTableShow"
                 @selection-change="splitChange" >
-                <el-table-column prop="twoUPName"  />
-                <el-table-column prop="splitTotalMoney">
+                <el-table-column prop="splitProjectName"  />
+                <!-- <el-table-column prop="splitTotalMoney">
                   {{ moneyFormat(scope.row.splitTotalMoney, 2, ',') }}
-                </el-table-column>
+                </el-table-column> -->
                 <el-table-column prop="twoUPName">
                   <template #default="scope">
                     <el-button
@@ -118,14 +119,6 @@
                     >{{ scope.row.twoUPName }}</el-button>
                   </template>
                 </el-table-column>
-                <!-- <el-table-column prop="splitName">
-                  <template #default="scope">
-                    <el-button
-                    @click="toTwoCf(scope.row)"
-                    type="primary"
-                    >{{ scope.row.splitName }}</el-button>
-                  </template>
-                </el-table-column> -->
               </el-table>
             </div>
           </template>
@@ -269,10 +262,8 @@ export default {
       ProjectLibrary.queryProjectLibraryPage(state.checkInfo).then(res => {
         res.data.forEach(item => {
           if (item.splitList && item.splitList.length > 0) {
-            item.isShows = false;
             item.isTableShow = true;
           } else {
-            item.isShows = true;
             item.isTableShow = false;
           }
         })
diff --git a/WebSite/src/views/yo-dept-sp/project-fund-approval/Personnel/components/List.vue b/WebSite/src/views/yo-dept-sp/project-fund-approval/Personnel/components/List.vue
index 92772a9e8..fd7319088 100644
--- a/WebSite/src/views/yo-dept-sp/project-fund-approval/Personnel/components/List.vue
+++ b/WebSite/src/views/yo-dept-sp/project-fund-approval/Personnel/components/List.vue
@@ -64,6 +64,7 @@ export default {
       }
     };
     const getPageList = async (params, callback) => {
+      params.state = '浜轰簨澶勫鎵�';
       const res = await Api.queryAllProjectInfoPlanPage(params);
       callback(res);
     };
-- 
GitLab