From f8d09e0506fdacc4510d3e72d636e8ee51760a28 Mon Sep 17 00:00:00 2001
From: lshwy817 <lshwy817@163.com>
Date: Fri, 24 Mar 2023 14:45:19 +0800
Subject: [PATCH 1/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9sap?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../components/List/index.vue                 | 37 +++++++++++--------
 1 file changed, 21 insertions(+), 16 deletions(-)

diff --git a/WebSite/src/views/main/editor/administrationShu/components/List/index.vue b/WebSite/src/views/main/editor/administrationShu/components/List/index.vue
index aa09d6848..9ec518d0e 100644
--- a/WebSite/src/views/main/editor/administrationShu/components/List/index.vue
+++ b/WebSite/src/views/main/editor/administrationShu/components/List/index.vue
@@ -338,7 +338,7 @@
           <el-table :data="form.sonProjectOutList" border style="width: 90%" class="mtop20" @row-click="tableRowClick">
             <el-table-column prop="projectCode" label="椤圭洰缂栧彿"  />
             <el-table-column prop="projectName" label="椤圭洰鍚嶇О" />
-            <el-table-column prop="modelCode" label="闄勫姞棰勭畻缁撴瀯妯℃澘" />
+            <el-table-column prop="modelCode" label="闄勫姞棰勭畻妯℃澘" />
             <el-table-column prop="departmentCode" label="閮ㄩ棬">
               <template #default="scope">
                 {{ scope.row.departmentName }}
@@ -617,10 +617,10 @@
         </el-table-column>
         <el-table-column prop="departmentCode" label="閮ㄩ棬" >
           <template #default="scope">
-            <el-select v-model="scope.row.departmentCode" class="m-2" filterable clearable>
+            <el-select v-model="scope.row.departmentCode" class="m-2" filterable clearable @change="onDepartt(scope.row.departmentCode, scope.$index)">
               <el-option
-              v-for="item in deptInfo"
-              :key="item.code"
+              v-for="(item, index) in deptInfo"
+              :key="index"
               :label="item.name"
               :value="item.code"
               />
@@ -1839,7 +1839,7 @@ export default {
           project: state.form.project, //椤圭洰绫诲瀷
           departmentName: state.form.departmentName, //閮ㄩ棬鍚嶇О
           departmentCode: state.form.departmentCode //閮ㄩ棬缂栧彿
-      })
+        })
       }
       state.dialogVisibleThree = true;
     }
@@ -1854,6 +1854,7 @@ export default {
           return;
         }
       }
+      
       state.form.sonProjectOutList = state.dialogTable;
       state.dialogVisibleThree = false;
     }
@@ -1883,18 +1884,13 @@ export default {
     }
     // 缂栬緫
     const onbianji = () => {
-      state.dialogTable = [];
-      // for (let i = 0; i < state.form.sonProjectOutList.length; i++) {
-      //   if (state.form.sonProjectOutList[i].projectCode.indexOf('-') == -1) {
-      //     state.form.sonProjectOutList[i].projectCode = state.form.sonProjectOutList[i].projectCode + "-" + (i+1).toString().padStart(3, '0')
-      //   } 
-      // }
-      state.dialogTable = state.form.sonProjectOutList;
+      let newSonlist = JSON.parse(JSON.stringify(state.form.sonProjectOutList));
+      state.dialogTable = newSonlist;
       state.dialogVisibleThree = true;
     };
     // 澧炲姞
-    const onZenjia = () => {
-      state.dialogTable.push({})
+    const onZenjia = (scope) => {
+      state.dialogTable.splice(scope.$index + 1, 0, {})
     }
     // 鍒犻櫎
     const onDele = (scope) => {
@@ -1935,7 +1931,7 @@ export default {
       }
       LeftMethod();
       let xxx = [];
-      if (arr1[0].xxxs != false) {
+      if (arr1[0] && arr1[0].xxxs != false) {
         for (let k = 0; k < arr1.length; k++) {
           let obj = arr1[k];
           for (let j = 0; j < arr1.length; j++) {
@@ -2021,6 +2017,14 @@ export default {
           colspan: 1,
         }
       }
+    };
+    const onDepartt = (row, index) => {
+      let name = state.deptInfo.find(item => {
+        if (item.code == row) {
+          return item;
+        }
+      })
+      state.dialogTable[index].departmentName = name.name;
     }
     return {
       ...toRefs(state),
@@ -2079,7 +2083,8 @@ export default {
       onBlurtop1,
       bottomTableLeftMethod,
       LeftMethod,
-      bottomTableRightMethod
+      bottomTableRightMethod,
+      onDepartt
     };
   }
 };
-- 
GitLab


From 90ce11d5196c250c1d1015a67373b3635553e5de Mon Sep 17 00:00:00 2001
From: lshwy817 <lshwy817@163.com>
Date: Fri, 24 Mar 2023 17:29:38 +0800
Subject: [PATCH 2/8] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=BC=96sap?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../editor/administrationShu/components/List/index.vue | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/WebSite/src/views/main/editor/administrationShu/components/List/index.vue b/WebSite/src/views/main/editor/administrationShu/components/List/index.vue
index 9ec518d0e..276f1d6b9 100644
--- a/WebSite/src/views/main/editor/administrationShu/components/List/index.vue
+++ b/WebSite/src/views/main/editor/administrationShu/components/List/index.vue
@@ -535,6 +535,8 @@
               <el-table :data="bottomTableLeft" border style="width: 100%" :span-method="bottomTableLeftMethod" :default-sort="{ prop: 'controlCode', order: 'ascending' }">
                 <el-table-column prop="controlCode" label="SAP棰濆害缂栧彿"  />
                 <el-table-column prop="controlName" label="SAP棰濆害鍚嶇О" width="180" />
+                <el-table-column prop="sapCode" label="鎵胯椤圭洰缂栧彿"/>
+                <el-table-column prop="sapName" label="鎵胯椤圭洰鍚嶇О"/>
                 <el-table-column prop="totalMoney" label="閲戦" header-align="left" align="right">
                   <template #default="scope">
                   {{ moneyFormat(scope.row.totalMoney, 2, ',') }}
@@ -544,8 +546,10 @@
             </el-col>
             <el-col :span="12">
               <el-table :data="bottomTableRight" border style="width: 100%"  :span-method="bottomTableRightMethod" :default-sort="{ prop: 'controlCode', order: 'ascending' }">
-                <el-table-column prop="controlCode" label="SAP棰濆害缂栧彿" width="180" />
+                <el-table-column prop="controlCode" label="SAP棰濆害缂栧彿" />
                 <el-table-column prop="controlName" label="SAP棰濆害鍚嶇О" width="180" />
+                <el-table-column prop="sapCode" label="鎵胯椤圭洰缂栧彿"/>
+                <el-table-column prop="sapName" label="鎵胯椤圭洰鍚嶇О"/>
                 <el-table-column prop="totalMoney" label="閲戦" header-align="left" align="right">
                   <template #default="scope">
                   {{ moneyFormat(scope.row.totalMoney, 2, ',') }}
@@ -2002,7 +2006,7 @@ export default {
     };
     // 鍚堝苟鍗曞厓琛�
     const bottomTableLeftMethod = ({rowIndex, columnIndex}) => {
-      if (columnIndex == 0 || columnIndex == 1 || columnIndex == 2) {
+      if (columnIndex == 0 || columnIndex == 1 || columnIndex == 2 || columnIndex == 3 || columnIndex == 4) {
         return {
           rowspan: state.LeftMethodList[rowIndex],
           colspan: 1,
@@ -2011,7 +2015,7 @@ export default {
     };
     // 鍚堝苟鍗曞厓琛�
     const bottomTableRightMethod = ({rowIndex, columnIndex}) => {
-      if (columnIndex == 0 || columnIndex == 1 || columnIndex == 2) {
+      if (columnIndex == 0 || columnIndex == 1 || columnIndex == 2 || columnIndex == 3 || columnIndex == 4) {
         return {
           rowspan: state.RightMethodList[rowIndex],
           colspan: 1,
-- 
GitLab


From 2ffe7d76f25fbbd9128db4d237933ad1b63b17c7 Mon Sep 17 00:00:00 2001
From: lshwy817 <lshwy817@163.com>
Date: Wed, 29 Mar 2023 09:18:02 +0800
Subject: [PATCH 3/8] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=BB=8F=E8=B4=B9?=
 =?UTF-8?q?=E5=88=B0=E8=B4=A6=E9=A1=B5=E9=9D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 WebSite/src/api/projectLibrary.js             |  23 +
 WebSite/src/main.js                           |   2 +-
 WebSite/src/router/modules/base.js            |   5 +
 WebSite/src/store/path.js                     |  21 +
 .../main/basicSetting/fundsArrive/index.vue   | 416 ++++++++++++++++++
 5 files changed, 466 insertions(+), 1 deletion(-)
 create mode 100644 WebSite/src/views/main/basicSetting/fundsArrive/index.vue

diff --git a/WebSite/src/api/projectLibrary.js b/WebSite/src/api/projectLibrary.js
index 41a68113a..57811e82c 100644
--- a/WebSite/src/api/projectLibrary.js
+++ b/WebSite/src/api/projectLibrary.js
@@ -958,5 +958,28 @@ class ProjectLibrary extends Base {
   static saveProjectTypeModel(data) {
     return request.post(`/budgetInfo/saveProjectTypeModel`, data);
   }
+  /**
+   * 缁忚垂鍒拌处
+   */
+  // 鏍规嵁id鑾峰彇
+  static selectById(data) {
+    return request.post(`/bmbudget/fundArrived/selectById`, data);
+  }
+  // 鍒嗛〉
+  static page(data) {
+    return request.post(`/bmbudget/fundArrived/page`, data);
+  }
+  // 淇濆瓨
+  static saveFundArrived(data) {
+    return request.post(`/bmbudget/fundArrived/saveFundArrived`, data);
+  }
+  // 鍒犻櫎
+  static delete(data) {
+    return request.post(`/bmbudget/fundArrived/delete`, data);
+  }
+  // 淇濆瓨瀛愯〃
+  static saveFundArrivedHistory(data) {
+    return request.post(`/bmbudget/fundArrived/saveFundArrivedHistory`, data);
+  }
 }
 export default ProjectLibrary;
diff --git a/WebSite/src/main.js b/WebSite/src/main.js
index 1077078a8..027d3de7c 100644
--- a/WebSite/src/main.js
+++ b/WebSite/src/main.js
@@ -42,7 +42,7 @@ app.component('TableFlow', TableFlow);
 
 //娉ㄥ唽鍏ㄥ眬鎸囦护
 app.directive('loadmore', directives.loadmore);
-app.config.globalProperties.$env = 'sd';
+app.config.globalProperties.$env = 'lg';
 // development
 // mount instance
 app.mount('#app');
diff --git a/WebSite/src/router/modules/base.js b/WebSite/src/router/modules/base.js
index 06bfff750..0ba0201af 100644
--- a/WebSite/src/router/modules/base.js
+++ b/WebSite/src/router/modules/base.js
@@ -44,6 +44,11 @@ const routes = [
     path: 'basicSetting/match',
     component: () => import('@/views/main/basicSetting/match'),
     name: 'Match'
+  },
+  {
+    path: 'basicSetting/fundsArrive',
+    component: () => import('@/views/main/basicSetting/fundsArrive'),
+    name: 'fundsArrive'
   }
 ];
 
diff --git a/WebSite/src/store/path.js b/WebSite/src/store/path.js
index 0f5c42d99..7e94f3393 100644
--- a/WebSite/src/store/path.js
+++ b/WebSite/src/store/path.js
@@ -267,6 +267,27 @@ const base = [
         enabled: 'YES',
         authUser: ['1'],
         children: []
+      },
+      {
+        id: '13',
+        available: 'YES',
+        versionDate: '2023-03-27 13:33:00.000',
+        updator: '1',
+        creator: '1',
+        applicationId: '1',
+        menuNo: 'SBD_008',
+        name: '缁忚垂鍒拌处',
+        icon: 'fas fa-feather-alt',
+        parentId: '1',
+        routingUrl: 'basicSetting/fundsArrive',
+        redirectUrl: '',
+        urlParameter: '',
+        isNewWindow: 'NO',
+        isSystem: 'NO',
+        withUserId: 'NO',
+        enabled: 'YES',
+        authUser: ['1'],
+        children: []
       }
     ]
   }
diff --git a/WebSite/src/views/main/basicSetting/fundsArrive/index.vue b/WebSite/src/views/main/basicSetting/fundsArrive/index.vue
new file mode 100644
index 000000000..e597dd4a2
--- /dev/null
+++ b/WebSite/src/views/main/basicSetting/fundsArrive/index.vue
@@ -0,0 +1,416 @@
+<template>
+  <div>
+    <el-card class="mtop20">
+      <el-row :gutter="20">
+        <el-col :span="6">
+          <el-date-picker
+            v-model="checkInfo.year"
+            type="year"
+            placeholder="閫夋嫨骞�"
+          >
+          </el-date-picker>
+        </el-col>
+        
+        <el-col :span="6">
+          <el-button type="primary" plain @click="queryList">鏌ヨ</el-button>
+          <el-button type="primary" plain @click="onAdd">鏂板</el-button>
+        </el-col>
+      </el-row>
+    </el-card>
+    <el-card class="mtop20">
+      <el-table
+        stripe
+        :data="tableData"
+        style="width: 100%"
+        ref="multipleTable"
+        class="mtop20"
+        fit
+      >
+        <el-table-column label="骞翠唤" prop="year"></el-table-column>
+        <el-table-column label="缁忚垂缂栧彿" prop="fundCode"></el-table-column>
+        <el-table-column label="缁忚垂鍚嶇О" prop="fundName"></el-table-column>
+        <el-table-column label="璧勯噾鏉ユ簮" prop="fundSource"></el-table-column>
+        <el-table-column label="棰勭畻鎬婚噾棰�" prop="budgetTotalMoney">
+          <template #default="scope">
+            {{ moneyFormat(scope.row.budgetTotalMoney, 2, ',') }}
+          </template>
+        </el-table-column>
+        <el-table-column label="棰勭畻鍖归厤閲戦" prop="budgetMatchingMoney">
+          <template #default="scope">
+            {{ moneyFormat(scope.row.budgetMatchingMoney, 2, ',') }}
+          </template>
+        </el-table-column>
+        <el-table-column label="缁忚垂鍒拌处" prop="arriveTotalMoney">
+          <template #default="scope">
+            {{ moneyFormat(scope.row.arriveTotalMoney, 2, ',') }}
+          </template>
+        </el-table-column>
+        <el-table-column label="宸叉嫧閲戦" prop="currentAmountApproved">
+          <template #default="scope">
+            <el-button
+              type="text"
+              @click="onDialed(scope.row)"
+              >{{ moneyFormat(scope.row.currentAmountApproved, 2, ',') }}</el-button
+            >
+          </template>
+        </el-table-column>
+        <el-table-column label="鎿嶄綔" width="250">
+          <template #default="scope">
+            <el-button type="text" @click="onEdit(scope.row)">
+              缂栬緫
+            </el-button>
+            <el-button type="text" @click="onEnter(scope.row)">
+              鍒拌处褰曞叆
+            </el-button>
+            <el-button type="text" @click="onCheck(scope.row)">
+              褰曞叆鍑瘉鏌ョ湅
+            </el-button>
+            <el-button type="text" @click="onDelete(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-dialog v-model="dialogOne" width="50%" title="鍒拌处褰曞叆">
+        <el-row :gutter="20">
+          <el-col :span="6">缁忚垂缂栧彿锛歿{ fundCode }}</el-col>
+          <el-col :span="6">缁忚垂鍚嶇О锛歿{ fundName }}</el-col>
+        </el-row>
+        <el-form :model="formData" label-width="100px" label-position="left" class="mtop20">
+          <el-form-item label="鍒拌处鏃ユ湡锛�">
+            <el-date-picker
+              v-model="formData.arriveAmountDate"
+              type="datetime"
+              format="YYYY-MM-DD HH:mm:ss"
+              value-format="YYYY-MM-DD HH:mm:ss"
+              placeholder="閫夋嫨骞�/鏈�/鏃�/鍒�/绉�"
+            ></el-date-picker>
+          </el-form-item>
+          <el-form-item label="鍒拌处閲戦锛�">
+            <AmountInputBox
+            v-model="formData.arriveMoney"
+            placeholder="璇疯緭鍏ラ噾棰�"
+            @change="setpercentage"
+            :onValid="onValid"
+            :isNegativeAllow="true"
+          ></AmountInputBox>
+          </el-form-item>
+          <el-form-item label="鎽樿锛�">
+            <el-input v-model="formData.summary" type="textarea" />
+          </el-form-item>
+        </el-form>
+        <template #footer>
+          <span class="dialog-footer">
+            <el-button @click="dialogOne = false">杩斿洖</el-button>
+            <el-button @click="onSave">淇濆瓨</el-button>
+          </span>
+        </template>
+      </el-dialog>
+      <!-- 鏌ョ湅 -->
+      <el-dialog
+        v-model="dialogTwo"
+        width="50%"
+        :before-close="handleClose"
+        title="褰曞叆鍑瘉鏌ョ湅"
+      >
+        <el-table :data="diaTable" :summary-method="getSummaries" show-summary>
+          <el-table-column label="涓氬姟鍗曞彿" prop="businessOrderNumber"></el-table-column>
+          <el-table-column label="鍑瘉鏃ユ湡" prop="arriveAmountDate"></el-table-column>
+          <el-table-column label="鍒拌处閲戦" prop="arriveMoney">
+            <template #default="scope">
+            {{ moneyFormat(scope.row.arriveMoney, 2, ',') }}
+          </template>
+          </el-table-column>
+          <el-table-column label="鎽樿" prop="summary"></el-table-column>
+        </el-table>
+        <template #footer>
+          <span class="dialog-footer">
+            <el-button @click="dialogTwo = false">杩斿洖</el-button>
+          </span>
+        </template>
+      </el-dialog>
+      <!-- 宸叉嫧閲戦 -->
+      <el-dialog
+        v-model="dialogThree"
+        width="50%"
+        :before-close="handleClose"
+        show-summary
+        :summary-method="getSummariesTwo"
+        title="鏌ョ湅宸叉嫧閲戦"
+      >
+        <el-row :gutter="20">
+          <el-col :span="6">缁忚垂缂栧彿锛歿{ fundCode }}</el-col>
+          <el-col :span="6">缁忚垂鍚嶇О锛歿{ fundName }}</el-col>
+        </el-row>
+        <el-table
+          stripe
+          :data="linkTable"
+          style="width: 100%"
+          ref="multipleTable"
+          class="mtop20"
+          fit
+        >
+          <el-table-column prop="" label="閮ㄩ棬鍚嶇О" />
+          <el-table-column prop="" label="椤圭洰绫诲瀷" />
+          <el-table-column prop="" label="椤圭洰鍚嶇О" />
+          <el-table-column prop="" label="棰勭畻閲戦" />
+          <el-table-column prop="" label="宸叉嫧閲戦" />
+        </el-table>
+        <template #footer>
+          <span class="dialog-footer">
+            <el-button @click="dialogThree = false">杩斿洖</el-button>
+          </span>
+        </template>
+      </el-dialog>
+      <!-- 鏂板 -->
+      <el-dialog
+        v-model="dialogFour"
+        width="50%"
+        :title="title"
+        :before-close="handleClose"
+      >
+        <el-form :model="formDtable" label-width="100px" label-position="left" ref="formRef">
+          <el-form-item label="骞翠唤">
+            <el-date-picker
+              v-model="formDtable.year"
+              type="year"
+              placeholder="閫夋嫨骞�"
+            >
+            </el-date-picker>
+          </el-form-item>
+          <el-form-item label="缁忚垂缂栧彿">
+            <el-input v-model="formDtable.fundCode" placeholder="璇疯緭鍏�" />
+          </el-form-item>
+          <el-form-item label="缁忚垂鍚嶇О">
+            <el-input v-model="formDtable.fundName" placeholder="璇疯緭鍏�" />
+          </el-form-item>
+          <el-form-item label="璧勯噾鏉ユ簮">
+            <el-input v-model="formDtable.fundSource" placeholder="璇疯緭鍏�" />
+          </el-form-item>
+          <el-form-item label="棰勭畻鎬婚噾棰�">
+            <el-input v-model="formDtable.budgetTotalMoney" placeholder="璇疯緭鍏�" />
+          </el-form-item>
+        </el-form>
+        <template #footer>
+          <span class="dialog-footer">
+            <el-button @click="dialogFour = false">杩斿洖</el-button>
+            <el-button @click="onFourSave">淇濆瓨</el-button>
+          </span>
+        </template>
+      </el-dialog>
+    </el-card>
+  </div>
+</template>
+
+<script>
+import { reactive, toRefs, onMounted } from 'vue';
+import ProjectLibrary from '@/api/projectLibrary';
+import { ElMessage } from 'element-plus';
+import { formatTime, moneyFormat } from '@/utils';
+import Moment from 'moment';
+export default {
+  setup() {
+    onMounted(() => {
+      queryList();
+    });
+    const state = reactive({
+      checkInfo: {
+        pageIndex: 1,
+        pageSize: 10,
+        year: Moment(new Date()).format('YYYY'),
+        instanceId: 1
+      },
+      total: 0,
+      tableData: [],
+      dialogOne: false,
+      dialogTwo: false,
+      dialogThree: false,
+      dialogFour: false,
+      diaTable: [],
+      formData: {
+        arriveAmountDate: formatTime(new Date(), 'yyyy-MM-dd HH:mm:ss')
+      },
+      fundCode: '',
+      fundName: '',
+      linkTable: [],
+      luList: {},
+      formDtable: {
+        year: Moment(new Date()).format('YYYY'),
+        instanceId: 1,
+        fundArrivedHistoryCmdList: [],
+        fundCode: '',
+        fundName: '',
+        fundSource: '',
+        budgetTotalMoney: ''
+      },
+      title: ''
+    });
+    // 鏌ヨ
+    const queryList = () => {
+      state.checkInfo.year = Moment(state.checkInfo.year).format('YYYY')
+      ProjectLibrary.page(state.checkInfo).then(res => {
+        if (res && res.data) {
+          res.data.forEach(item => {
+            if (item) {
+              item.year = item.year.toString();
+            }
+          })
+          state.tableData = res.data;
+        }
+      })
+    };
+    // 鏂板
+    const onAdd = () => {
+      state.title = '鏂板';
+      state.formDtable = {};
+      state.dialogFour = true;
+    };
+    // 鏂板/缂栬緫淇濆瓨
+    const onFourSave = () => {
+      state.formDtable.year = Moment(state.formDtable.year).format('YYYY');
+      state.formDtable.instanceId = 1;
+      ProjectLibrary.saveFundArrived(state.formDtable).then(() => {
+        if (state.title == '鏂板') {
+          ElMessage.success('鏂板鎴愬姛锛�');
+        } else {
+          ElMessage.success('缂栬緫鎴愬姛锛�');
+        }
+        state.dialogFour = false;
+        queryList();
+      })
+    }
+    // 缂栬緫
+    const onEdit = (row) => {
+      state.title = '缂栬緫';
+      state.formDtable =  {};
+      state.dialogFour = true;
+      ProjectLibrary.selectById({id: row.fundId}).then((res) => {
+        res.data[0].year = res.data[0].year.toString();
+        state.formDtable = res.data[0];
+      })
+    };
+    // 鍒拌处褰曞叆
+    const onEnter = (row) => {
+      state.dialogOne = true;
+      state.fundCode = row.fundCode;
+      state.fundName = row.fundName;
+      state.luList = row;
+    };
+    // 褰曞叆鍑瘉鏌ョ湅
+    const onCheck = (row) => {
+      state.dialogTwo = true;
+      ProjectLibrary.selectById({id: row.fundId}).then((res) => {
+        console.log(res);
+        state.diaTable = res.data[0].fundArrivedHistoryOutList;
+      })
+    };
+    // 鍒犻櫎
+    const onDelete = (row) => {
+      ProjectLibrary.delete({idList: [row.fundId]}).then(() => {
+        ElMessage.success('鍒犻櫎鎴愬姛锛�');
+        queryList();
+      })
+    };
+    // 鍒拌处褰曞叆淇濆瓨
+    const onSave = () => {
+      state.formData.arriveAmountDate = formatTime(state.formData.arriveAmountDate, 'yyyy-MM-dd HH:mm:ss');
+      state.formData.parentId = state.luList.fundId;
+      state.formData.instanceId = state.luList.instanceId;
+      let data = {
+        ...state.formData
+      }
+      ProjectLibrary.saveFundArrivedHistory(data).then((res) => {
+        ElMessage.success('淇濆瓨鎴愬姛锛�');
+        state.dialogOne = false;
+        console.log(res);
+      })
+      console.log(state.formData, state.luList);
+    0};
+    // 宸叉嫧閲戦鏌ョ湅
+    const onDialed = (row) => {
+      state.fundCode = row.fundCode;
+      state.fundName = row.fundName;
+      state.dialogThree = true;
+    }
+    // 鍚堣
+    const getSummaries = (param) => {
+      const { columns, data } = param;
+      const sums = [];
+          columns.forEach((column, index) => {
+          if (index === 0) {
+            sums[index] = '鍚堣';
+            return;
+          }
+          if (index === 2) {
+            const values = data.map((item) => Number(item[column.property]));
+            if (!values.every((value) => Number.isNaN(value))) {
+              sums[index] = 0;
+              values.forEach(e => {
+                sums[index] += Math.floor(e * 100);
+              });
+              sums[index] = sums[index] / 100;
+              sums[index] = moneyFormat(sums[index], 2, ',');
+            }
+          } else {
+            sums[index] = '';
+          }
+        })
+        return sums;
+    };
+    // 宸叉嫧閲戦鐨勫悎璁�
+    const getSummariesTwo = (param) => {
+      const { columns, data } = param;
+      const sumss = [];
+          columns.forEach((column, index) => {
+          if (index === 0) {
+            sumss[index] = '鍚堣';
+            return;
+          }
+          if (index === 3) {
+            const values = data.map((item) => Number(item[column.property]));
+            if (!values.every((value) => Number.isNaN(value))) {
+              sumss[index] = 0;
+              values.forEach(e => {
+                sumss[index] += Math.floor(e * 100);
+              });
+              sumss[index] = sumss[index] / 100;
+              sumss[index] = moneyFormat(sumss[index], 2, ',');
+            }
+          } else {
+            sumss[index] = '';
+          }
+        })
+        return sumss;
+    };
+    
+    return {
+      ...toRefs(state),
+      moneyFormat,
+      queryList,
+      onAdd,
+      onEdit,
+      onEnter,
+      onCheck,
+      onDelete,
+      onSave,
+      onDialed,
+      getSummaries,
+      getSummariesTwo,
+      onFourSave
+    };
+  }
+};
+</script>
+
+<style scoped>
+.newRow {
+}
+</style>
-- 
GitLab


From 0a586f5289939647dac01d069129a15160910b64 Mon Sep 17 00:00:00 2001
From: lshwy817 <lshwy817@163.com>
Date: Thu, 30 Mar 2023 09:43:33 +0800
Subject: [PATCH 4/8] =?UTF-8?q?=E7=BB=8F=E8=B4=B9=E5=88=B0=E8=B4=A6?=
 =?UTF-8?q?=E9=A1=B5=E9=9D=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 WebSite/src/main.js                           |  2 +-
 .../main/basicSetting/fundsArrive/index.vue   | 75 +++++++++++++------
 2 files changed, 53 insertions(+), 24 deletions(-)

diff --git a/WebSite/src/main.js b/WebSite/src/main.js
index 027d3de7c..1077078a8 100644
--- a/WebSite/src/main.js
+++ b/WebSite/src/main.js
@@ -42,7 +42,7 @@ app.component('TableFlow', TableFlow);
 
 //娉ㄥ唽鍏ㄥ眬鎸囦护
 app.directive('loadmore', directives.loadmore);
-app.config.globalProperties.$env = 'lg';
+app.config.globalProperties.$env = 'sd';
 // development
 // mount instance
 app.mount('#app');
diff --git a/WebSite/src/views/main/basicSetting/fundsArrive/index.vue b/WebSite/src/views/main/basicSetting/fundsArrive/index.vue
index e597dd4a2..53673a91a 100644
--- a/WebSite/src/views/main/basicSetting/fundsArrive/index.vue
+++ b/WebSite/src/views/main/basicSetting/fundsArrive/index.vue
@@ -37,7 +37,11 @@
         </el-table-column>
         <el-table-column label="棰勭畻鍖归厤閲戦" prop="budgetMatchingMoney">
           <template #default="scope">
-            {{ moneyFormat(scope.row.budgetMatchingMoney, 2, ',') }}
+            <el-button
+              type="text"
+              @click="onDialed(scope.row, 1)"
+              >{{ moneyFormat(scope.row.budgetMatchingMoney, 2, ',') }}</el-button
+            >
           </template>
         </el-table-column>
         <el-table-column label="缁忚垂鍒拌处" prop="arriveTotalMoney">
@@ -45,11 +49,11 @@
             {{ moneyFormat(scope.row.arriveTotalMoney, 2, ',') }}
           </template>
         </el-table-column>
-        <el-table-column label="宸叉嫧閲戦" prop="currentAmountApproved">
+        <el-table-column label="宸叉嫧缁忚垂" prop="currentAmountApproved">
           <template #default="scope">
             <el-button
               type="text"
-              @click="onDialed(scope.row)"
+              @click="onDialed(scope.row, 2)"
               >{{ moneyFormat(scope.row.currentAmountApproved, 2, ',') }}</el-button
             >
           </template>
@@ -121,7 +125,7 @@
         :before-close="handleClose"
         title="褰曞叆鍑瘉鏌ョ湅"
       >
-        <el-table :data="diaTable" :summary-method="getSummaries" show-summary>
+        <el-table :data="diaTable" :summary-method="getSummaries" show-summary border>
           <el-table-column label="涓氬姟鍗曞彿" prop="businessOrderNumber"></el-table-column>
           <el-table-column label="鍑瘉鏃ユ湡" prop="arriveAmountDate"></el-table-column>
           <el-table-column label="鍒拌处閲戦" prop="arriveMoney">
@@ -137,14 +141,12 @@
           </span>
         </template>
       </el-dialog>
-      <!-- 宸叉嫧閲戦 -->
+      <!-- 宸叉嫧缁忚垂/棰勭畻鍖归厤閲戦 -->
       <el-dialog
         v-model="dialogThree"
         width="50%"
         :before-close="handleClose"
-        show-summary
-        :summary-method="getSummariesTwo"
-        title="鏌ョ湅宸叉嫧閲戦"
+        :title="newTitle"
       >
         <el-row :gutter="20">
           <el-col :span="6">缁忚垂缂栧彿锛歿{ fundCode }}</el-col>
@@ -157,12 +159,23 @@
           ref="multipleTable"
           class="mtop20"
           fit
+          border
+          show-summary
+          :summary-method="getSummariesTwo"
         >
-          <el-table-column prop="" label="閮ㄩ棬鍚嶇О" />
-          <el-table-column prop="" label="椤圭洰绫诲瀷" />
-          <el-table-column prop="" label="椤圭洰鍚嶇О" />
-          <el-table-column prop="" label="棰勭畻閲戦" />
-          <el-table-column prop="" label="宸叉嫧閲戦" />
+          <el-table-column prop="departmentName" label="閮ㄩ棬鍚嶇О" />
+          <el-table-column prop="projectType" label="椤圭洰绫诲瀷" />
+          <el-table-column prop="projectName" label="椤圭洰鍚嶇О" />
+          <el-table-column prop="totalMoney" label="棰勭畻閲戦" >
+            <template #default="scope">
+            {{ moneyFormat(scope.row.totalMoney, 2, ',') }}
+          </template>
+          </el-table-column>
+          <el-table-column prop="secondquotamoney" label="宸叉嫧缁忚垂" >
+            <template #default="scope">
+            {{ moneyFormat(scope.row.secondquotamoney, 2, ',') }}
+          </template>
+          </el-table-column>
         </el-table>
         <template #footer>
           <span class="dialog-footer">
@@ -251,7 +264,8 @@ export default {
         fundSource: '',
         budgetTotalMoney: ''
       },
-      title: ''
+      title: '',
+      newTitle: ''
     });
     // 鏌ヨ
     const queryList = () => {
@@ -299,6 +313,9 @@ export default {
     };
     // 鍒拌处褰曞叆
     const onEnter = (row) => {
+      state.formData = {
+        arriveAmountDate: formatTime(new Date(), 'yyyy-MM-dd HH:mm:ss'),
+      };
       state.dialogOne = true;
       state.fundCode = row.fundCode;
       state.fundName = row.fundName;
@@ -314,30 +331,42 @@ export default {
     };
     // 鍒犻櫎
     const onDelete = (row) => {
-      ProjectLibrary.delete({idList: [row.fundId]}).then(() => {
-        ElMessage.success('鍒犻櫎鎴愬姛锛�');
-        queryList();
-      })
+      if (!row.currentAmountApproved && !row.arriveTotalMoney) {
+        ProjectLibrary.delete({idList: [row.fundId]}).then(() => {
+          ElMessage.success('鍒犻櫎鎴愬姛锛�');
+          queryList();
+        })
+      } else {
+        ElMessage.warning('涓嶅彲鍒犻櫎锛�');
+      }
     };
     // 鍒拌处褰曞叆淇濆瓨
     const onSave = () => {
-      state.formData.arriveAmountDate = formatTime(state.formData.arriveAmountDate, 'yyyy-MM-dd HH:mm:ss');
+      state.formData.arriveAmountDate = formatTime(state.formData.arriveAmountDate, 'yyyy-MM-dd HH:mm:ss') + '.000';
       state.formData.parentId = state.luList.fundId;
       state.formData.instanceId = state.luList.instanceId;
       let data = {
         ...state.formData
       }
-      ProjectLibrary.saveFundArrivedHistory(data).then((res) => {
+      ProjectLibrary.saveFundArrivedHistory(data).then(() => {
         ElMessage.success('淇濆瓨鎴愬姛锛�');
         state.dialogOne = false;
-        console.log(res);
+        queryList();
       })
       console.log(state.formData, state.luList);
     0};
     // 宸叉嫧閲戦鏌ョ湅
-    const onDialed = (row) => {
+    const onDialed = (row, type) => {
+      if (type == 1) {
+        state.newTitle = '鏌ョ湅棰勭畻鍖归厤閲戦'
+      } else {
+        state.newTitle = '鏌ョ湅宸叉嫧閲戦'
+      }
       state.fundCode = row.fundCode;
       state.fundName = row.fundName;
+      ProjectLibrary.selectById({id: row.fundId}).then((res) => {
+        state.linkTable = res.data[0].yuBoOutList;
+      })
       state.dialogThree = true;
     }
     // 鍚堣
@@ -374,7 +403,7 @@ export default {
             sumss[index] = '鍚堣';
             return;
           }
-          if (index === 3) {
+          if (index === 3 || index === 4) {
             const values = data.map((item) => Number(item[column.property]));
             if (!values.every((value) => Number.isNaN(value))) {
               sumss[index] = 0;
-- 
GitLab


From a9c8f40cee1104551dd25172d511aa7f5e2579b2 Mon Sep 17 00:00:00 2001
From: lshwy817 <lshwy817@163.com>
Date: Thu, 30 Mar 2023 12:59:45 +0800
Subject: [PATCH 5/8] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AE=A1=E6=89=B9?=
 =?UTF-8?q?=E5=AF=BC=E5=87=BA=E6=8E=A5=E5=8F=A3?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 WebSite/src/api/projectLibrary.js             | 22 +++++++++++++++++++
 WebSite/src/main.js                           |  2 +-
 .../yo-common/ProjectApplyPageList/index.vue  |  4 ++++
 .../yo-common/PublicApplyPageList/index.vue   |  9 ++++----
 4 files changed, 32 insertions(+), 5 deletions(-)

diff --git a/WebSite/src/api/projectLibrary.js b/WebSite/src/api/projectLibrary.js
index 57811e82c..e011bb381 100644
--- a/WebSite/src/api/projectLibrary.js
+++ b/WebSite/src/api/projectLibrary.js
@@ -405,6 +405,28 @@ class ProjectLibrary extends Base {
       super.downloadFile(res);
     });
   }
+  // 閮ㄩ棬棰勭畻瀹℃壒-椤圭洰瀹℃壒鈥斺€斿綊鍙i儴闂細瀵煎嚭
+  static exportProjectInfoPlanPageByOwnCurrentUserDept(data) {
+    request({
+      url: `/projectPlan/exportProjectInfoPlanPageByOwnCurrentUserDept`,
+      method: 'post',
+      data,
+      responseType: 'blob'
+    }).then(res => {
+      super.downloadFile(res);
+    });
+  }
+  // 閮ㄩ棬棰勭畻瀹℃壒-椤圭洰瀹℃壒鈥斺€旈儴闂ㄩ瀵煎鍑�
+  static exportInfoProjectPlanByCurrentUserDept(data) {
+    request({
+      url: `/projectPlan/exportInfoProjectPlanByCurrentUserDept`,
+      method: 'post',
+      data,
+      responseType: 'blob'
+    }).then(res => {
+      super.downloadFile(res);
+    });
+  }
   // 鎵归噺瀵煎嚭椤圭洰缁忚垂鐢虫姤涔�
   static exportProjectDailyPlan(data) {
     request({
diff --git a/WebSite/src/main.js b/WebSite/src/main.js
index 1077078a8..06f52e47c 100644
--- a/WebSite/src/main.js
+++ b/WebSite/src/main.js
@@ -42,7 +42,7 @@ app.component('TableFlow', TableFlow);
 
 //娉ㄥ唽鍏ㄥ眬鎸囦护
 app.directive('loadmore', directives.loadmore);
-app.config.globalProperties.$env = 'sd';
+app.config.globalProperties.$env = 'jr';
 // development
 // mount instance
 app.mount('#app');
diff --git a/WebSite/src/views/yo-common/ProjectApplyPageList/index.vue b/WebSite/src/views/yo-common/ProjectApplyPageList/index.vue
index d1a921757..5b712439f 100644
--- a/WebSite/src/views/yo-common/ProjectApplyPageList/index.vue
+++ b/WebSite/src/views/yo-common/ProjectApplyPageList/index.vue
@@ -311,6 +311,10 @@ export default {
         route.path == '/i/financial-monitoring/maintenance'
       ) {
         ProjectLibrary.exportProjectInfoPlanPage(params);
+      } else if (route.path == '/i/approval/project/BackDeptApproval') {
+          ProjectLibrary.exportProjectInfoPlanPageByOwnCurrentUserDept(params);
+      } else if (route.path == '/i/approval/project/LeaderApproval') {
+          ProjectLibrary.exportInfoProjectPlanByCurrentUserDept(params);
       } else {
         ProjectLibrary.exportInfoProjectPlan(params);
       }
diff --git a/WebSite/src/views/yo-common/PublicApplyPageList/index.vue b/WebSite/src/views/yo-common/PublicApplyPageList/index.vue
index 83cd06c86..9f55e0c33 100644
--- a/WebSite/src/views/yo-common/PublicApplyPageList/index.vue
+++ b/WebSite/src/views/yo-common/PublicApplyPageList/index.vue
@@ -94,7 +94,7 @@
             <!-- <el-button plain type="primary" @click="openDialog"
               >鎵归噺淇敼澶勭悊浜�</el-button
             > -->
-            <el-button plain type="danger" @click="batchExportHandler"
+            <el-button plain type="danger" @click="batchExportHandler" v-if="route == '/i/approval/public/LeaderApproval' ? false : true"
               >瀵煎嚭</el-button
             >
           </div>
@@ -224,7 +224,8 @@ export default {
         { prop: 'state', label: '瀹℃牳鐘舵€�' }
       ],
       primaryKey: 'id',
-      deptListNew: []
+      deptListNew: [],
+      route: route.path
     });
     const yearChange = val => {
       const year = new Date(val).getFullYear().toString();
@@ -298,8 +299,8 @@ export default {
       };
       // ElMessage.success('瀵煎嚭鎴愬姛');
       if (
-        route.path == '/i/approval/public/FinanceApproval' ||
-        route.path == '/i/financial-monitoring/daily-public'
+        route == '/i/approval/public/FinanceApproval' ||
+        route == '/i/financial-monitoring/daily-public'
       ) {
         ProjectLibrary.exportProjectDailyPlan(params);
       } else {
-- 
GitLab


From 4779d465f359bd1933f0abd3e8c5bb50b8802618 Mon Sep 17 00:00:00 2001
From: lshwy817 <lshwy817@163.com>
Date: Fri, 31 Mar 2023 13:06:48 +0800
Subject: [PATCH 6/8] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AD=A6=E6=A0=A1?=
 =?UTF-8?q?=EF=BC=8C=E4=BF=AE=E6=94=B9bug?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 WebSite/.env.sd                               |  2 +-
 WebSite/.env.shnu                             |  2 +
 WebSite/package.json                          |  1 +
 WebSite/src/main.js                           |  2 +-
 .../src/views/login/components/SelectUser.vue |  1 +
 .../src/views/main/allocation/setUp/index.vue |  4 +-
 .../department/components/List.vue            | 37 +++++++++-
 .../main/project-library/fundCardNo/index.vue | 71 ++++++++++++-------
 8 files changed, 88 insertions(+), 32 deletions(-)
 create mode 100644 WebSite/.env.shnu

diff --git a/WebSite/.env.sd b/WebSite/.env.sd
index c517e5671..81dcba04b 100644
--- a/WebSite/.env.sd
+++ b/WebSite/.env.sd
@@ -1,2 +1,2 @@
 NODE_ENV = sd
-VUE_APP_BASE_API = '/projectplan'
\ No newline at end of file
+VUE_APP_BASE_API = '/projectplanshu'
\ No newline at end of file
diff --git a/WebSite/.env.shnu b/WebSite/.env.shnu
new file mode 100644
index 000000000..6710feed9
--- /dev/null
+++ b/WebSite/.env.shnu
@@ -0,0 +1,2 @@
+NODE_ENV = shnu
+VUE_APP_BASE_API = '/projectplan'
\ No newline at end of file
diff --git a/WebSite/package.json b/WebSite/package.json
index 704a98f1b..158611b51 100644
--- a/WebSite/package.json
+++ b/WebSite/package.json
@@ -16,6 +16,7 @@
     "build:xnzf": "vue-cli-service build --mode xnzf",
     "build:jsxy": "vue-cli-service build --mode jsxy",
     "build:sues": "vue-cli-service build --mode sues",
+    "build:shnu": "vue-cli-service build --mode shnu",
     "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/main.js b/WebSite/src/main.js
index 06f52e47c..027d3de7c 100644
--- a/WebSite/src/main.js
+++ b/WebSite/src/main.js
@@ -42,7 +42,7 @@ app.component('TableFlow', TableFlow);
 
 //娉ㄥ唽鍏ㄥ眬鎸囦护
 app.directive('loadmore', directives.loadmore);
-app.config.globalProperties.$env = 'jr';
+app.config.globalProperties.$env = 'lg';
 // development
 // mount instance
 app.mount('#app');
diff --git a/WebSite/src/views/login/components/SelectUser.vue b/WebSite/src/views/login/components/SelectUser.vue
index 7defc4abf..0a77bbb12 100644
--- a/WebSite/src/views/login/components/SelectUser.vue
+++ b/WebSite/src/views/login/components/SelectUser.vue
@@ -30,6 +30,7 @@
       <span class="big" v-if="env == 'ys'">涓婃捣鍑虹増鍗板埛楂樼瓑涓撶鎶€鏈鏍�</span>
       <span class="big" v-if="env == 'jsxy'">涓婃捣甯傛暀甯堟暀鑲插闄�</span>
       <span class="big" v-if="env == 'sues'">涓婃捣宸ョ▼鎶€鏈ぇ瀛�</span>
+      <span class="big" v-if="env == 'shnu'">涓婃捣甯堣寖澶у</span>
     </div>
     <div v-for="item in transitionList" :key="item.id">
       <transition name="fade-transform-bottom">
diff --git a/WebSite/src/views/main/allocation/setUp/index.vue b/WebSite/src/views/main/allocation/setUp/index.vue
index 8cbe72eff..02d21428d 100644
--- a/WebSite/src/views/main/allocation/setUp/index.vue
+++ b/WebSite/src/views/main/allocation/setUp/index.vue
@@ -483,7 +483,7 @@
               <el-table-column prop="projectName" label="椤圭洰鍚嶇О" />
               <el-table-column prop="projectCode" label="椤圭洰缂栧彿" />
               <el-table-column prop="departmentName" label="閮ㄩ棬鍚嶇О" />
-              <el-table-column prop="model" label="瀵瑰簲妯℃澘" />
+              <el-table-column prop="budgetModel" label="瀵瑰簲妯℃澘" />
               <el-table-column prop="state" label="瀹℃牳鐘舵€�" />
               <el-table-column
                 prop="totalMoney"
@@ -514,7 +514,7 @@
               <el-table-column prop="projectName" label="椤圭洰鍚嶇О" />
               <el-table-column prop="projectCode" label="椤圭洰缂栧彿" />
               <el-table-column prop="departmentName" label="閮ㄩ棬鍚嶇О" />
-              <el-table-column prop="model" label="瀵瑰簲妯℃澘" />
+              <el-table-column prop="budgetModel" label="瀵瑰簲妯℃澘" />
               <el-table-column prop="state" label="瀹℃牳鐘舵€�" />
               <el-table-column
                 prop="totalMoney"
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 b58640c21..3cc7e0159 100644
--- a/WebSite/src/views/main/project-library/department/components/List.vue
+++ b/WebSite/src/views/main/project-library/department/components/List.vue
@@ -157,6 +157,12 @@
               :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
+            >
           </template>
         </el-table-column>
         <el-table-column label="鎵瑰" prop="replyName">
@@ -241,6 +247,27 @@
         </span>
       </template>
     </el-dialog>
+    <el-dialog
+      v-model="dialogVisibleTwo"
+      width="30%"
+      :before-close="handleClose"
+    >
+      <el-row :gutter="20">
+        <el-col :span="10">璇烽€夋嫨鎷嗗垎椤圭洰鐨勪釜鏁帮細</el-col>
+        <el-col :span="8"
+          ><el-input-number
+            v-model="numberNum"
+            :min="1"
+            size="small"
+        /></el-col>
+      </el-row>
+      <template #footer>
+        <span class="dialog-footer">
+          <el-button @click="dialogVisibleTwo = false">鍙栨秷</el-button>
+          <el-button @click="onSure">纭畾</el-button>
+        </span>
+      </template>
+    </el-dialog>
     <UploadFile v-model="uploadDialog" @upload-handler="uploadHandler">
       <el-button
         @click.stop="downloadImportTemplate"
@@ -319,7 +346,9 @@ export default {
         tableData: []
       },
       multipleSelection: [],
-      multipleSelectionProject: []
+      multipleSelectionProject: [],
+      dialogVisibleTwo: false,
+      numberNum: 1,
     });
     // 鍒犻櫎
     const handleDel = () => {
@@ -500,6 +529,9 @@ export default {
         }
       }
     };
+    const toTwoCf = () => {
+
+    }
     // const setTime = () => {
     //   state.checkInfo.year = Moment(state.checkInfo.year).format('YYYY');
     // };
@@ -568,7 +600,8 @@ export default {
       getmoneyInfo,
       handleAddWork,
       onHzdy,
-      ctx
+      ctx,
+      toTwoCf
     };
   }
 };
diff --git a/WebSite/src/views/main/project-library/fundCardNo/index.vue b/WebSite/src/views/main/project-library/fundCardNo/index.vue
index bfe2b8da8..bb0f97fad 100644
--- a/WebSite/src/views/main/project-library/fundCardNo/index.vue
+++ b/WebSite/src/views/main/project-library/fundCardNo/index.vue
@@ -281,6 +281,29 @@
           prop="projectPlanTypeName"
           v-if="env == 'yy'"
         />
+        <el-table-column
+          label="缁忚垂鍗″彿"
+          prop="funCode"
+          width="200"
+          v-if="env == 'sd'"
+        >
+          <template #default="scope">
+            <el-select
+              filterable
+              clearable
+              v-model="scope.row.funCode"
+              placeholder="璇烽€夋嫨缁忚垂鍗″彿"
+              @change="onSave(scope.row)"
+            >
+              <el-option
+                v-for="item in jfkhList"
+                :key="item.fundCode"
+                :label="`${item.fundCode}[${item.fundName}]`"
+                :value="item.fundCode"
+              ></el-option>
+            </el-select>
+          </template>
+        </el-table-column>
         <!-- <el-table-column label="鎿嶄綔">
           <template #default="scope">
             <el-button type="primary" plain @click="onsave(scope)"
@@ -377,7 +400,8 @@ export default {
         }
       ],
       jfbhList: [],
-      codeList: []
+      codeList: [],
+      jfkhList: []
     });
     const queryList = () => {
       if (state.checkInfo.year) {
@@ -398,6 +422,16 @@ export default {
           state.deptList = res.data;
         }
       );
+      if (state.env == 'sd') {
+        ProjectLibrary.page({
+          pageIndex: 1,
+          pageSize: 10,
+          year: Moment(new Date()).format('YYYY'),
+          instanceId: 1
+        }).then((res) => {
+          state.jfkhList = res.data;
+        })
+      }
       if (state.env != 'sd') {
         ProjectLibrary.getFundCodeList().then(res => {
           state.jfbhList = res.data;
@@ -412,6 +446,7 @@ export default {
           projectPlanID: row.id,
           number: row.number,
           funCode: row.funCode,
+          fundCode: row.fundCode,
           budgetCode: row.budgetCode,
           budgetStructureCode: row.budgetStructureCode,
           project: row.project,
@@ -480,32 +515,16 @@ export default {
     };
     const onSaveModel = row => {
       console.log(row);
-      let objdata = {};
-      if (row.projectTypeId) {
-        objdata = {
-          year: row.year,
-          projectTypeId: row.projectTypeId,
-          projectPlanBookId: row.id,
-          model: row.model
-        };
-      } else {
-        objdata = {
-          // year: row.year,
-          // projectTypeId: row.projectTypeId,
-          projectPlanBookId: row.id,
-          model: row.model
-        };
-      }
-
-      ProjectLibrary.saveProjectTypeModel(objdata).then(res => {
+      let objdata = {
+        projectPlanID: row.id,
+        number: row.number,
+        funCode: row.funCode,
+        model: row.model
+      };
+      ProjectPlan.saveExpenseCardNumber(objdata).then(res => {
         console.log(res);
-        if (row.projectTypeId) {
-          ElMessage.success('淇濆瓨鎴愬姛');
-          queryList();
-        } else {
-          ElMessage.success('淇敼鎴愬姛');
-          queryList();
-        }
+        ElMessage.success('淇濆瓨鎴愬姛');
+        queryList();
       });
     };
     return {
-- 
GitLab


From 95a66e2abea78a795e12083b0a0347290ac2e728 Mon Sep 17 00:00:00 2001
From: lshwy817 <lshwy817@163.com>
Date: Fri, 31 Mar 2023 17:12:54 +0800
Subject: [PATCH 7/8] =?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

---
 .../src/components/SelectSubject/index.vue    | 27 +++++++----
 WebSite/src/main.js                           |  2 +-
 .../allocation/apply/components/Detail.vue    |  2 +-
 .../main/allocation/apply/components/List.vue |  5 +-
 .../main/basicSetting/fundsArrive/index.vue   | 47 +++++++++++++++++--
 .../projectLibrary/components/List.vue        |  3 +-
 .../basicSetting/projectLibrary/index.vue     |  2 +-
 WebSite/vue.config.js                         |  4 +-
 8 files changed, 70 insertions(+), 22 deletions(-)

diff --git a/WebSite/src/components/SelectSubject/index.vue b/WebSite/src/components/SelectSubject/index.vue
index 43aaf631a..f4091c4f3 100644
--- a/WebSite/src/components/SelectSubject/index.vue
+++ b/WebSite/src/components/SelectSubject/index.vue
@@ -79,7 +79,8 @@ export default {
     const tree = ref(null);
     const state = reactive({
       checkInfo: {
-        year: sessionStorage.getItem('year')
+        year: sessionStorage.getItem('year'),
+        time: new Date()
       },
       treeData: [],
       filterText: '',
@@ -116,15 +117,21 @@ export default {
       }
     });
     const getListDept = async () => {
+      const res = await ProjectLibrary.queryFundTree(state.checkInfo);
+      state.treeData = res.data;
+      sessionStorage.setItem('list', JSON.stringify(res.data));
       let list = sessionStorage.getItem('list');
-      if (list) {
-        state.treeData = JSON.parse(list);
-        state.nodeIds = deptSelectChild.value.map(v => v.id);
-      } else {
-        const res = await ProjectLibrary.queryFundTree(state.checkInfo);
-        state.treeData = res.data;
-        sessionStorage.setItem('list', JSON.stringify(res.data));
-      }
+      state.treeData = JSON.parse(list);
+      state.nodeIds = deptSelectChild.value.map(v => v.id);
+      // let list = sessionStorage.getItem('list');
+      // if (list) {
+      //   state.treeData = JSON.parse(list);
+      //   state.nodeIds = deptSelectChild.value.map(v => v.id);
+      // } else {
+      //   const res =  ProjectLibrary.queryFundTree(state.checkInfo);
+      //   state.treeData = res.data;
+      //   sessionStorage.setItem('list', JSON.stringify(res.data));
+      // }
     };
     const getData = () => {
       state.nodeInfos = tree.value.getCheckedNodes();
@@ -134,7 +141,7 @@ export default {
     };
     const handleClose = () => {
       dialogSelectDept.value = false;
-      clearSelcetUser();
+      // clearSelcetUser();
     };
     const clearSelcetUser = () => {
       deptSelectChild.value = [];
diff --git a/WebSite/src/main.js b/WebSite/src/main.js
index 027d3de7c..1077078a8 100644
--- a/WebSite/src/main.js
+++ b/WebSite/src/main.js
@@ -42,7 +42,7 @@ app.component('TableFlow', TableFlow);
 
 //娉ㄥ唽鍏ㄥ眬鎸囦护
 app.directive('loadmore', directives.loadmore);
-app.config.globalProperties.$env = 'lg';
+app.config.globalProperties.$env = 'sd';
 // development
 // mount instance
 app.mount('#app');
diff --git a/WebSite/src/views/main/allocation/apply/components/Detail.vue b/WebSite/src/views/main/allocation/apply/components/Detail.vue
index 0edc52ab4..5ecec829a 100644
--- a/WebSite/src/views/main/allocation/apply/components/Detail.vue
+++ b/WebSite/src/views/main/allocation/apply/components/Detail.vue
@@ -114,7 +114,7 @@ export default {
       if (props.detailData) {
         console.log('23', props.detailData);
         state.form = props.detailData;
-        state.form.projectDetiaOut = props.detailData.projectDetiaOut;
+        state.form.projectDetiaOut = props.detailData.planBookSubjectCommonOutList ? props.detailData.planBookSubjectCommonOutList : props.detailData.projectDetiaOut;
         jisuan();
         // state.form.balance = 1;
         console.log('form', state.form);
diff --git a/WebSite/src/views/main/allocation/apply/components/List.vue b/WebSite/src/views/main/allocation/apply/components/List.vue
index 134e50d91..00a1e4f3a 100644
--- a/WebSite/src/views/main/allocation/apply/components/List.vue
+++ b/WebSite/src/views/main/allocation/apply/components/List.vue
@@ -181,7 +181,7 @@ export default {
       state.checkInfo.year = Moment(state.checkInfo.year).format('YYYY');
     };
     const seeHis = row => {
-      state.projectCheckInfo.projectPlanBookId = row.projectPlanBookId;
+      state.projectCheckInfo.projectPlanBookId = row.id;
       // state.projectCheckInfo.projectCode = row.projectCode;
       queryYBHisInfoById();
     };
@@ -194,9 +194,10 @@ export default {
     };
     // 鍙戣捣鐢宠
     const apply = row => {
+      row.projectPlanBookId = row.id;
       sessionStorage.setItem('checkInfo6', JSON.stringify(state.checkInfo));
       Allocation.queryBYByIdNew(row.projectPlanBookId).then(res => {
-        res.data[0].projectPlanBookId = row.projectPlanBookId;
+        res.data[0].projectPlanBookId = row.id;
         cxt.emit('switch-page', 'Detail', false, res.data[0]);
       });
     };
diff --git a/WebSite/src/views/main/basicSetting/fundsArrive/index.vue b/WebSite/src/views/main/basicSetting/fundsArrive/index.vue
index 53673a91a..2c2c45a4e 100644
--- a/WebSite/src/views/main/basicSetting/fundsArrive/index.vue
+++ b/WebSite/src/views/main/basicSetting/fundsArrive/index.vue
@@ -152,6 +152,20 @@
           <el-col :span="6">缁忚垂缂栧彿锛歿{ fundCode }}</el-col>
           <el-col :span="6">缁忚垂鍚嶇О锛歿{ fundName }}</el-col>
         </el-row>
+        <el-row :gutter="20" class="mtop20">
+          <el-col :span="6">
+            <el-input v-model="checkInfoNew.departmentName" placeholder="璇疯緭鍏ラ儴闂ㄥ悕绉�" />
+          </el-col>
+          <el-col :span="6">
+            <el-input v-model="checkInfoNew.projectType" placeholder="璇疯緭鍏ラ」鐩被鍨�" />
+          </el-col>
+          <el-col :span="6">
+            <el-input v-model="checkInfoNew.projectName" placeholder="璇疯緭鍏ラ」鐩悕绉�" />
+          </el-col>
+          <el-col :span="6">
+          <el-button type="primary" plain @click="queryListNew">鏌ヨ</el-button>
+        </el-col>
+        </el-row>
         <el-table
           stripe
           :data="linkTable"
@@ -173,10 +187,22 @@
           </el-table-column>
           <el-table-column prop="secondquotamoney" label="宸叉嫧缁忚垂" >
             <template #default="scope">
-            {{ moneyFormat(scope.row.secondquotamoney, 2, ',') }}
-          </template>
+              {{ moneyFormat(scope.row.secondquotamoney, 2, ',') }}
+            </template>
+          </el-table-column>
+          <el-table-column prop="residueMoney" label="鍓╀綑閲戦" >
+            <template #default="scope">
+              {{ moneyFormat(scope.row.residueMoney, 2, ',') }}
+            </template>
           </el-table-column>
         </el-table>
+        <Pagination
+        v-show="totalNew > 0"
+        :total="totalNew"
+        v-model:page="checkInfoNew.pageIndex"
+        v-model:limit="checkInfoNew.pageSize"
+        @pagination="queryListNew"
+      />
         <template #footer>
           <span class="dialog-footer">
             <el-button @click="dialogThree = false">杩斿洖</el-button>
@@ -265,7 +291,15 @@ export default {
         budgetTotalMoney: ''
       },
       title: '',
-      newTitle: ''
+      newTitle: '',
+      totalNew: 0,
+      checkInfoNew: {
+        departmentName: '',
+        projectType: '',
+        projectName: '',
+        pageIndex: 1,
+        pageSize: 10,
+      }
     });
     // 鏌ヨ
     const queryList = () => {
@@ -281,6 +315,10 @@ export default {
         }
       })
     };
+    // 棰勭畻鍖归厤閲戦鏌ヨ
+    const queryListNew = () => {
+      
+    }
     // 鏂板
     const onAdd = () => {
       state.title = '鏂板';
@@ -433,7 +471,8 @@ export default {
       onDialed,
       getSummaries,
       getSummariesTwo,
-      onFourSave
+      onFourSave,
+      queryListNew
     };
   }
 };
diff --git a/WebSite/src/views/main/basicSetting/projectLibrary/components/List.vue b/WebSite/src/views/main/basicSetting/projectLibrary/components/List.vue
index 919ca9856..72a84df86 100644
--- a/WebSite/src/views/main/basicSetting/projectLibrary/components/List.vue
+++ b/WebSite/src/views/main/basicSetting/projectLibrary/components/List.vue
@@ -85,7 +85,8 @@ export default {
         pageIndex: 1,
         pageSize: 10,
         year: sessionStorage.getItem('year'),
-        parentBudgetId: ''
+        parentBudgetId: '',
+        time: new Date()
       },
       multipleSelection: []
     });
diff --git a/WebSite/src/views/main/basicSetting/projectLibrary/index.vue b/WebSite/src/views/main/basicSetting/projectLibrary/index.vue
index 372979cd4..002cdce1a 100644
--- a/WebSite/src/views/main/basicSetting/projectLibrary/index.vue
+++ b/WebSite/src/views/main/basicSetting/projectLibrary/index.vue
@@ -112,7 +112,7 @@ export default {
     };
     // 椤圭洰搴撴爲
     const queryBudgetInfoTree = async () => {
-      const res = await ProjectLibrary.queryBudgetInfoTree({});
+      const res = await ProjectLibrary.queryBudgetInfoTree({time: new Date()});
       state.treeData = res.data;
       // state.treeData[0].disabled = true;
       if (state.treeData && state.treeData.length > 0) {
diff --git a/WebSite/vue.config.js b/WebSite/vue.config.js
index 588940a8d..72dd5d403 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鐨�
-      // 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鐨�
+      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 f0482f3879221f9575d21904a7b8c847790fc473 Mon Sep 17 00:00:00 2001
From: lshwy817 <lshwy817@163.com>
Date: Fri, 31 Mar 2023 17:35:33 +0800
Subject: [PATCH 8/8] =?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 +++
 .../main/basicSetting/fundsArrive/index.vue   | 28 +++++++++++++++----
 WebSite/vue.config.js                         |  2 +-
 3 files changed, 28 insertions(+), 6 deletions(-)

diff --git a/WebSite/src/api/projectLibrary.js b/WebSite/src/api/projectLibrary.js
index e011bb381..d674c624f 100644
--- a/WebSite/src/api/projectLibrary.js
+++ b/WebSite/src/api/projectLibrary.js
@@ -1003,5 +1003,9 @@ class ProjectLibrary extends Base {
   static saveFundArrivedHistory(data) {
     return request.post(`/bmbudget/fundArrived/saveFundArrivedHistory`, data);
   }
+  // 鏌ヨ
+  static pageFundMatch(data) {
+    return request.post(`/bmbudget/fundArrived/pageFundMatch`, data);
+  }
 }
 export default ProjectLibrary;
diff --git a/WebSite/src/views/main/basicSetting/fundsArrive/index.vue b/WebSite/src/views/main/basicSetting/fundsArrive/index.vue
index 2c2c45a4e..a14782742 100644
--- a/WebSite/src/views/main/basicSetting/fundsArrive/index.vue
+++ b/WebSite/src/views/main/basicSetting/fundsArrive/index.vue
@@ -299,6 +299,8 @@ export default {
         projectName: '',
         pageIndex: 1,
         pageSize: 10,
+        year: Moment(new Date()).format('YYYY'),
+        fundCode: ''
       }
     });
     // 鏌ヨ
@@ -316,8 +318,26 @@ export default {
       })
     };
     // 棰勭畻鍖归厤閲戦鏌ヨ
-    const queryListNew = () => {
-      
+    const queryListNew = (row) => {
+      let data = {};
+      if (row.departmentName) {
+        data = {
+          departmentName: row.departmentName,
+          projectType: row.projectType,
+          projectName: row.projectName,
+          pageIndex: 1,
+          pageSize: 10,
+          year: row.year,
+          fundCode: row.fundCode
+        }
+      } else {
+        data = state.checkInfoNew
+      }
+      ProjectLibrary.pageFundMatch(data).then((res) => {
+        console.log(res);
+        state.linkTable = res.data;
+        state.totalNew = res.total;
+      })
     }
     // 鏂板
     const onAdd = () => {
@@ -402,9 +422,7 @@ export default {
       }
       state.fundCode = row.fundCode;
       state.fundName = row.fundName;
-      ProjectLibrary.selectById({id: row.fundId}).then((res) => {
-        state.linkTable = res.data[0].yuBoOutList;
-      })
+      queryListNew(row)
       state.dialogThree = true;
     }
     // 鍚堣
diff --git a/WebSite/vue.config.js b/WebSite/vue.config.js
index 72dd5d403..8ef724f7a 100644
--- a/WebSite/vue.config.js
+++ b/WebSite/vue.config.js
@@ -32,7 +32,7 @@ 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鐨�
+      //  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,
-- 
GitLab