Browse Source

fix:解决冲突

lazy 7 months ago
parent
commit
0e296d8b25

+ 1 - 1
package.json

@@ -18,7 +18,7 @@
     "axios": "0.18.1",
     "core-js": "^3.33.2",
     "docx-preview": "^0.3.0",
-    "element-ui": "2.13.2",
+    "element-ui": "2.15.14",
     "exceljs": "^4.4.0",
     "handsontable": "^14.1.0",
     "jquery": "^3.7.1",

+ 2 - 1
src/router/index.js

@@ -63,8 +63,9 @@ export const constantRoutes = [
   exemptionFollow,
   financialManagement,
   divideAccountsManage,
-  systemManage,
   refundManage,
+  systemManage,
+
   // 404 page must be placed at the end !!!
   { path: '*', redirect: '/404', hidden: true }
 ]

+ 1 - 0
src/store/modules/constant.js

@@ -35,6 +35,7 @@ export default {
       salesContractSettleCycleMethod: [], // 结算周期方式
       oaBillPaymentType: [], // 退款管理-付款类型
       principalPaymentMethod: [], // 授信决议 - 本金支付方式
+      projectInitiationStatus: [], // 融资管理 - 业务状态
     }
   },
   mutations: {

+ 11 - 0
src/utils/index.js

@@ -410,3 +410,14 @@ export function formatMoney(amount, decimalPlaces = 2) {
   }
   return amountNum.toLocaleString(undefined, options)
 }
+
+// 处理后端字段为null的情况
+export function replaceNull(obj) {
+  for (const key in obj) {
+    if (obj[key] === null) {
+      obj[key] = ''
+    } else if (typeof obj[key] === 'object') {
+      replaceNull(obj[key]) // 递归调用
+    }
+  }
+}

+ 50 - 3
src/views/divideAccountsManage/edit.vue

@@ -54,6 +54,18 @@
           :data="loanTableData"
           :count="0"
         />
+        <div class="calc-box">
+          <span>逾期利息合计:{{ handlerMoneyEmpty(getloanCalc.financingOverdueInterest) }}</span>
+          <span>融资利息合计:{{ handlerMoneyEmpty(getloanCalc.financingInterest) }}</span>
+          <span>融资管理费合计:{{ handlerMoneyEmpty(getloanCalc.financingManagementFee) }}</span>
+          <span>融资本金合计:{{ handlerMoneyEmpty(getloanCalc.financingPrincipal) }}</span>
+          <span>计提金额合计:{{ handlerMoneyEmpty(getloanCalc.accrualAmount) }}</span>
+          <span>平台利润合计:{{ handlerMoneyEmpty(getloanCalc.platformProfit) }}</span>
+          <span>质保金合计:{{ handlerMoneyEmpty(getloanCalc.guarantee) }}</span>
+          <span>实退金额合计:{{ handlerMoneyEmpty(getloanCalc.discountAmount) }}</span>
+          <span>应退利息合计:{{ handlerMoneyEmpty(getloanCalc.refundInterest) }}</span>
+          <span>应退管理费合计:{{ handlerMoneyEmpty(getloanCalc.refundManagementFee) }}</span>
+        </div>
       </el-form-item>
 
       <cy-info-title>
@@ -164,6 +176,33 @@ export default {
         return total * 1 + item.currentAssignAmount * 1
       }, 0) : '0.00'
     },
+    getloanCalc() {
+      const obj = {
+        financingOverdueInterest: 0,
+        financingInterest: 0,
+        financingManagementFee: 0,
+        financingPrincipal: 0,
+        accrualAmount: 0,
+        platformProfit: 0,
+        guarantee: 0,
+        discountAmount: 0,
+        refundInterest: 0,
+        refundManagementFee: 0
+      }
+      this.loanTableData.forEach(item => {
+        obj.financingOverdueInterest += Number(item.financingOverdueInterest)
+        obj.financingInterest += Number(item.financingInterest)
+        obj.financingManagementFee += Number(item.financingManagementFee)
+        obj.financingPrincipal += Number(item.financingPrincipal)
+        obj.accrualAmount += Number(item.accrualAmount)
+        obj.platformProfit += Number(item.platformProfit)
+        obj.guarantee += Number(item.guarantee)
+        obj.discountAmount += Number(item.discountAmount)
+        obj.refundInterest += Number(item.refundInterest)
+        obj.refundManagementFee += Number(item.refundManagementFee)
+      })
+      return obj
+    },
     loanColumns() {
       return [
         {
@@ -250,7 +289,7 @@ export default {
           }
         },
         {
-          label: '是否计提',
+          label: '是否计提(履约保证金)',
           prop: 'accrual',
           showTooltip: true,
           width: '80',
@@ -339,7 +378,7 @@ export default {
           }
         },
         {
-          label: '计提金额',
+          label: '履约保证金',
           prop: 'accrualAmount',
           showTooltip: true,
           show: this.oneCalcStatus,
@@ -608,7 +647,15 @@ export default {
     color: red;
     margin-left: 10px;
   }
-
+  .calc-box {
+    width: 100%;
+    padding: 5px 10px;
+    background: #F5F6F6;
+    // margin-top: 20px;
+    & > span {
+      margin-right: 10px;
+    }
+  }
 }
 </style>
 

+ 3 - 3
src/views/divideAccountsManage/index.vue

@@ -199,14 +199,14 @@ export default {
               {
                 msg: '处理',
                 icon: 'iconfont icon-xiugai',
-                power: 'projectNumber:delete',
+                power: 'editLedger',
                 rowPower: ['待处理'],
                 category: 'edit'
               },
               {
                 msg: '查看',
                 icon: 'iconfont icon-Magnifier',
-                power: 'projectNumber:delete',
+                power: 'viewLedger',
                 rowPower: ['已完成'],
                 category: 'see'
               }
@@ -214,7 +214,7 @@ export default {
             const options = btnList.map(item => {
               return (
                 this.tablePower({ item, row }) && <el-tooltip class='item' effect='dark' content={item.msg} placement='top' >
-                  <span class='table-icon-box'>
+                  <span class='table-icon-box' v-power={item.power}>
                     <i class={item.icon} onClick={() => { this.handlerOperate(item.category, row) }}></i>
                   </span>
                 </el-tooltip>

+ 8 - 5
src/views/financialManagement/index.vue

@@ -26,7 +26,7 @@
             <el-input v-model="search.fastSearch" style="width: 300px" placeholder="请输入项目名称/主企业名称/核心企业名称" clearable></el-input>
           </div>
           <div class="leftBtn">
-            <el-button type="primary" @click="fetchData">查询</el-button>
+            <el-button type="primary" @click="fetchData('search')">查询</el-button>
           </div>
         </div>
       </div>
@@ -72,13 +72,16 @@ export default {
   },
   methods: {
     fetchData(type) {
-      this.page = 1
-      this.size = 10
+      if (type === 'search') {
+        this.page = 1
+        this.size = 10
+      }
+
       this.loading = true
       const params = {
         ...this.search,
-        page: this.page,
-        rows: this.size
+        page: this.page || 1,
+        rows: this.size || 10
       }
       getList(params).then(response => {
         this.tableData = response.rows

+ 9 - 8
src/views/financingManage/index.vue

@@ -20,10 +20,10 @@
                   style="width: 100%"
                 >
                   <el-option
-                    v-for="item in getStatusList"
-                    :key="item.id"
+                    v-for="item in constant.projectInitiationStatus"
+                    :key="item.code"
                     :label="item.name"
-                    :value="item.id"
+                    :value="item.code"
                   >
                   </el-option>
                 </el-select>
@@ -43,6 +43,7 @@
           :columns="columns"
           :data="tableData"
           :count="total"
+          parent-component="FinancingManage"
         />
       </el-tabs>
     </template>
@@ -57,7 +58,7 @@ import { mapGetters } from 'vuex'
 import { getList, getAllList } from '@/api/financingManage'
 
 export default {
-  name: 'Demo',
+  name: 'FinancingManage',
   data() {
     return {
       total: 0,
@@ -180,9 +181,7 @@ export default {
     }
   },
   computed: {
-    ...mapGetters([
-      'name'
-    ]),
+    ...mapGetters(['constant']),
     tablePower() {
       return ({ item, tab, row }) => {
         const { tabPower, rowPower } = item
@@ -199,6 +198,7 @@ export default {
     }
   },
   mounted() {
+    this.$store.dispatch('getConstant', ['projectInitiationStatus'])
     this.fetchData()
   },
   methods: {
@@ -215,8 +215,9 @@ export default {
         ...this.search
       }
       if (this.activeName === 'all') {
-        getAllList(params).then(({ rows }) => {
+        getAllList(params).then(({ rows, records }) => {
           this.tableData = rows
+          this.total = records
         })
       } else {
         getList(params).then(({ rows }) => {

+ 6 - 2
src/views/financingManage/limitExpenditure/components/RevenueExpenditurePlan.vue

@@ -19,6 +19,7 @@
 
 <script>
 import { mapGetters } from 'vuex'
+import { replaceNull } from '@/utils'
 export default {
   props: {
     disabled: {
@@ -48,7 +49,7 @@ export default {
                 disabled={this.disabled}
                 type='date'
                 placeholder='选择日期'
-                value-format="yyyy-MM-dd"
+                value-format='yyyy-MM-dd'
                 onChange={() => this.$emit('getTrrData')}
               >
               </el-date-picker>
@@ -148,7 +149,9 @@ export default {
     detailsInfo: {
       handler(newV) {
         if (newV && Object.keys(newV).length) {
-          this.$set(this, 'tableData', JSON.parse(JSON.stringify(newV.incomeExpenditurePlanList)))
+          const list = JSON.parse(JSON.stringify(newV.incomeExpenditurePlanList))
+          replaceNull(list)
+          this.tableData = list
           this.ruleForm.planIrrStr = newV.planIrrStr
         }
       },
@@ -161,6 +164,7 @@ export default {
   },
   methods: {
     handlerOperate(type, row, index) {
+      console.log(type, index)
       if (type === 'add') {
         this.tableData.push({
           incomeExpenditureDate: '',

+ 27 - 27
src/views/financingManage/limitExpenditure/mainContent.vue

@@ -36,8 +36,8 @@
             :disabled="disabled"
             type="date"
             placeholder="请选择应收账款起始日"
-            @change="getEndDate"
             value-format="yyyy-MM-dd"
+            @change="getEndDate"
           >
           </el-date-picker>
         </el-form-item>
@@ -84,7 +84,7 @@
           incomeExpenditurePlanList: ruleForm.incomeExpenditurePlanList || [],
           planIrrStr: ruleForm.planIrrStr
         }"
-        :disabled="disabled"  
+        :disabled="disabled"
         @getTrrData="getTrrData"
       >
       </revenue-expenditure-plan>
@@ -103,7 +103,7 @@
 
 <script>
 import { getLimitExpenditureDatails, getExpenditurePlan, getTrr, reviewQuotaDisburseSubmit } from '@/api/financingManage'
-import { parseTime } from "@/utils";
+import { parseTime } from '@/utils'
 export default {
   components: {
     FinancingInfo: () => import('./components/FinancingInfo'),
@@ -199,7 +199,7 @@ export default {
       const { startDate, term } = this.ruleForm
       if (startDate && term) {
         const endDateGetTime = new Date(`${startDate} 00:00:00`).getTime() + (3600 * 1000 * 24 * term)
-        this.ruleForm.endDate = parseTime(endDateGetTime) 
+        this.ruleForm.endDate = parseTime(endDateGetTime)
       }
     },
     async automaticGeneration() {
@@ -223,18 +223,18 @@ export default {
       // const { id } = this.$route.params
       const { taskId } = this.$route.query
       var params = {
-        Loading: true,
+        Loading: true
       }
       if (this.ruleForm.approvalConclusion === 'pass') {
-        if(type === 'submit') {
+        if (type === 'submit') {
           const { startDate, endDate } = this.ruleForm
-          if(!startDate) {
+          if (!startDate) {
             this.$message.warning('请选择应收账款起始日')
-            return 
+            return
           }
-          if(!endDate) {
+          if (!endDate) {
             this.$message.warning('请选择应收账款结束日')
-            return 
+            return
           }
         }
         const financingInfo = await this.$refs.financingInfo.getParams(type)
@@ -254,11 +254,11 @@ export default {
           ...assignment,
           taskId
         }
-        if(!assignment.reviewTransferReceivable.confirm) {
+        if (!assignment.reviewTransferReceivable.confirm) {
           params.reviewBasicContractList = []
         }
-      }else {
-        const { approvalConclusion, approvalComments,financingBasicInfoId, id } = this.ruleForm
+      } else {
+        const { approvalConclusion, approvalComments, financingBasicInfoId, id } = this.ruleForm
         params = {
           ...params,
           approvalConclusion,
@@ -271,30 +271,30 @@ export default {
       return params
     },
     async submit(type) {
-      
-      if(type === 'temp') {
-        let data = await this.getParams(type)
+      if (type === 'temp') {
+        const data = await this.getParams(type)
         data.visible = type !== 'temp'
         reviewQuotaDisburseSubmit(data).then(() => {
           this.$message.warning('暂存成功')
           this.$router.go(-1)
         })
-      }else {
-        this.$refs.ruleForm.validate(async (valid) => {  
-          if(valid) {
-            let data = await this.getParams(type)
+      } else {
+        await this.automaticGeneration()
+        this.$refs.ruleForm.validate(async(valid) => {
+          if (valid) {
+            const data = await this.getParams(type)
             data.visible = type !== 'temp'
-            reviewQuotaDisburseSubmit(data).then(() => {
-              this.$message.warning('提交成功')
-              this.$router.go(-1)
-            })
-          }else {
+            setTimeout(() => {
+              reviewQuotaDisburseSubmit(data).then(() => {
+                this.$message.warning('提交成功')
+                this.$router.go(-1)
+              })
+            }, 500)
+          } else {
             return false
           }
-       
         })
       }
-  
     }
   }
 }

+ 3 - 2
src/views/purchaseContractManagement/components/PurchaseContractReviewContent.vue

@@ -193,7 +193,8 @@
           :rules="[
             { required: ruleForm.purchContractApproval.approvalConclusion == 'pass', message: '请选择合同签署方式', trigger: 'change' }
           ]">
-          <el-checkbox v-model="ruleForm.purchContractApproval.signMode" @change="createFile" :true-label="1" :false-label="0" :disabled="isView">线上电子签</el-checkbox>
+          <!-- <el-checkbox v-model="ruleForm.purchContractApproval.signMode" @change="createFile" :true-label="1" :false-label="0" :disabled="isView">线上电子签</el-checkbox> -->
+          <el-checkbox v-model="ruleForm.purchContractApproval.signMode" @change="createFile" :true-label="1" :false-label="''" :disabled="isView">线上电子签</el-checkbox>
         </el-form-item>
         <el-form-item label="贸易平台">
           <el-input v-model="ruleForm.purchContractApproval.platform.platformName" style="width: 100%;" disabled></el-input>
@@ -283,7 +284,7 @@
           <el-table-column prop="name" label="操作" width="200" v-if="!isView">
             <template slot-scope="scope">
               <el-button type="text" @click="ruleForm.purchContractApproval.uploadPurchContracts.push({contractName: '', fileId: '', fileStorages: [], id: '', personList: []})">增加</el-button>
-              <el-button v-if="scope.$index !== 0" type="text" @click="deleteContract(scope.$index)">删除</el-button>
+              <el-button v-if="ruleForm.purchContractApproval && ruleForm.purchContractApproval.uploadPurchContracts && ruleForm.purchContractApproval.uploadPurchContracts.length > 1" type="text" @click="deleteContract(scope.$index)">删除</el-button>
             </template>
           </el-table-column>
         </el-table>

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

@@ -156,6 +156,7 @@ export default {
         }).then(res => {
           exportFile(res)
         })
+        return
       }
       if (row.taskName === '采购合同审核') {
         this.$router.push({

+ 5 - 5
src/views/refundManage/components/refundApplyContent.vue

@@ -44,7 +44,7 @@
         />
       </div>
       <div v-for="(item, index) in ruleForm.refundsApplyDetails" :key="index + 1" style="width: 100%; display: flex; flex-wrap: wrap;">
-        <cy-info-title style="margin-top: 20px">{{ getApplyDetailsDesc(index) }}</cy-info-title>
+        <cy-info-title style="margin-top: 20px">{{ getApplyDetailsDesc(item) }}</cy-info-title>
         <el-form-item label="申请类型" class="form-required">
           <el-radio-group v-model="item.applyType">
             <el-radio :label="1" :disabled="disabled">退款</el-radio>
@@ -336,11 +336,11 @@ export default {
       // }
     },
     // 获取申请内容标题文案
-    getApplyDetailsDesc(index) {
-      if (index === 0) {
-        return '申请内容(第一组:履约保证金+质保金+收放款执行)'
+    getApplyDetailsDesc(row) {
+      if (row.paymentMatter === 'oaRefundMatter') {
+        return `申请内容(履约保证金+质保金+收放款执行)`
       }
-      return '申请内容(第二组:实退金额)'
+      return `申请内容(实退金额)`
     },
     // 重组基础信息数据
     groupBaseInfoData(targetData) {

File diff suppressed because it is too large
+ 5419 - 8498
yarn.lock