Explorar el Código

Merge branch 'dev' of http://www.baoxianzhanggui.com:8090/sxzgd/vue-insagent-pc into dev

lihongxiao hace 2 años
padre
commit
d1001060f4

+ 5 - 0
package-lock.json

@@ -1595,6 +1595,11 @@
       "integrity": "sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==",
       "dev": true
     },
+    "bignumber.js": {
+      "version": "9.1.2",
+      "resolved": "https://registry.npmmirror.com/bignumber.js/-/bignumber.js-9.1.2.tgz",
+      "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug=="
+    },
     "binary-extensions": {
       "version": "1.11.0",
       "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.11.0.tgz",

+ 1 - 0
package.json

@@ -18,6 +18,7 @@
     "@ztree/ztree_v3": "^3.5.46",
     "axios": "^0.18.1",
     "base-64": "^1.0.0",
+    "bignumber.js": "^9.1.2",
     "cross-env": "^7.0.3",
     "echarts": "^4.9.0",
     "element-china-area-data": "^6.1.0",

+ 18 - 2
src/http/moudules/expense.js

@@ -6,7 +6,15 @@ import axios from '../axios'
  * 
  */
 
-//获取账户信息列表
+//导出账户信息
+export const updateAccountExcel = (data) => {
+    return axios({
+        url: '/invAccount/accountExcel',
+        method: "post",
+        data
+    })
+}
+//导出费用支出明细
 export const updateUserExcel = (data) => {
     return axios({
         url: '/invAccount/excel',
@@ -261,7 +269,15 @@ export const addInvAccountIncoice = (data) => {
         data
     })
 }
-//修改开票
+//开票修改
+export const updateIncoice = (data) => {
+    return axios({
+        url: '/invAccountIncoice/updateIncoice',
+        method: "post",
+        data
+    })
+}
+//开票进账
 export const putInvAccountIncoice = (data) => {
     return axios({
         url: '/invAccountIncoice/update',

+ 17 - 0
src/http/moudules/insCompany.js

@@ -309,4 +309,21 @@ export const getPtlInsAttributionTemplate = (data) => {
     })
 }
 /** 归属模版模块 */
+//协议产品费用查询
+export const productCostQuery = (agreementId) => {
+  return axios({
+      url: '/plt/agreement/getProduct?agreementId='+agreementId,
+      method: "get",
+  })
+}
+//协议产品费用添加
+export const productCostSave = (data) => {
+  return axios({
+      url: '/plt/agreement/productSave',
+      method: "post",
+      data
+  })
+}
+
+
 

+ 179 - 9
src/views/AgreementManage/CarInsurance/AgreementEntry.vue

@@ -48,7 +48,6 @@
           </el-form>
           <el-table :size="overSize" :data="pageResult" height="690" border v-loading="loading" highlight-current-row
             stripe :header-cell-style="{ background: '#F2F7FC', fontWeight: '700', color: '#606266' }">
-
             <el-table-column prop="id" label="编号" width="130" align="center"></el-table-column>
             <el-table-column prop="agreementCode" label="协议代码" width="110" align="center"></el-table-column>
             <el-table-column prop="agreementName" label="协议名称" align="center" width="200"></el-table-column>
@@ -70,8 +69,11 @@
               </template>
             </el-table-column>
             <el-table-column prop="modifiedBy" label="修改人" align="center" width="130"></el-table-column>
-            <el-table-column label="操作" align="center" width="200" fixed="right">
+            <el-table-column label="操作" align="center" width="500" fixed="right">
               <template slot-scope="scope">
+                <el-button :size="overSize" type="warning" @click="productCost(scope.$index, scope.row)">产品费用</el-button>
+                <el-button :size="overSize" type="warning" @click="nonAutoProductCost(scope.$index, scope.row)">非车产品费用</el-button>
+                <el-button :size="overSize" type="warning" @click="underwritingRulesButton(scope.$index, scope.row)">承保规则</el-button>
                 <el-button :size="overSize" type="primary" @click="uplatequery(scope.$index, scope.row)">编辑</el-button>
                 <el-button :size="overSize" type="danger" @click="deletequery(scope.$index, scope.row)">删除</el-button>
               </template>
@@ -247,7 +249,7 @@
                 <div><span>{{ schemeitem.name }}费用</span></div>
               </div>
               <div>
-                <el-button type="warning " style="background-color: #52C578;border:#52C578 " :size="overSize"
+                <el-button type="warning " style="background-color: #52C578;border:#52C578;" :size="overSize"
                   @click="addproductCosts(schemeindex)">增加方案</el-button>
               </div>
               <div class="productCosts" v-for="(productCostsitem, productCostsindex) in schemeitem.productCosts"
@@ -815,6 +817,170 @@
       </el-checkbox-group>
       <div style="text-align: right"> <el-button type="primary" @click="cancelSyncAgreement('sync')">取消</el-button> <el-button type="primary" @click="selectSyncAgreement('sync')">确定</el-button></div>
     </el-dialog>
+    <el-dialog
+  title="产品录入"
+  :visible.sync="productCostVehicleFactorVisible"
+  width="30%"
+  :fullscreen="true"
+  :before-close="productCosthandleClose">
+  <div label="产品费用" name="scheme" style="padding: 20px;">
+          <div class="flex a-c">
+            <el-checkbox-group v-model="roductList1">
+              <el-checkbox v-for="item in productsTypeoptions" :label="item.dictValue" :key="item.dictValue"
+                @change="event => pruductChange(event, item)">{{ item.dictTag }}</el-checkbox>
+            </el-checkbox-group>
+          </div>
+          <div>
+            <el-collapse  accordion>
+            <div class="flex   f-c products" v-for="(schemeitem, schemeindex) in costform.scheme" :key="schemeindex">
+              <div class="productstitle flex j-s">
+                <div><span>{{ schemeitem.name }}费用</span></div>
+              </div>
+              <div>
+                <el-button type="warning " style="background-color: #52C578;border:#52C578 " :size="overSize"
+                  @click="addproductCosts(schemeindex)">增加方案</el-button>
+              </div>
+              <div class="productCosts" v-for="(productCostsitem, productCostsindex) in schemeitem.productCosts"
+                :key="productCostsindex">
+                <div class="flex j-s a-c">
+                  <span>方案{{ productCostsindex + 1 }}:</span>
+                  <div>
+                    <el-button type="warning" :size="overSize"
+                      @click="VehicleFactor(schemeindex, productCostsindex)">费用因子</el-button>
+
+                    <el-button v-if="productCostsindex != 0" type="danger" :size="overSize"
+                      @click="deleteproductCosts(schemeindex,productCostsindex)">删除方案</el-button>
+                  </div>
+                </div>
+                <el-form ref="costform" :model="productCostsitem" label-width="130px" :size="overSize"
+                  :rules="costformRules">
+                  <el-collapse-item   style="padding-top: 50px;">
+                    <template slot="title">
+                      <el-col :span="20" :offset="2" >
+                        <el-form-item label="费用描述">
+                          <el-input type="textarea" v-model="productCostsitem.costsDescription"
+                                    placeholder="输入费用描述内容"></el-input>
+                        </el-form-item>
+                      </el-col>
+                    </template>
+                  <el-row>
+                    <h4/>
+                    <el-col :span="10" :offset="2">
+                      <el-form-item label="费用起期" prop="costsStartDate">
+                        <el-date-picker style="width: 100%;" v-model="productCostsitem.costsStartDate" type="datetime"
+                                        placeholder="选择费用开始日期" value-format="yyyy-MM-dd HH:mm:ss" :picker-options="pickerOptions" @change="cleanEndDate(schemeindex,productCostsindex)">
+                        </el-date-picker>
+                      </el-form-item>
+                    </el-col>
+                    <el-col :span="10">
+                      <el-form-item label="费用止期" prop="costsEndDate">
+                        <el-date-picker style="width: 100%;" v-model="productCostsitem.costsEndDate" type="datetime"
+                                        placeholder="选择费用结束日期" value-format="yyyy-MM-dd HH:mm:ss" :picker-options="pickerOptions1" @focus="vm => timefocus(vm, schemeindex, productCostsindex)"  @change="checkStartDate(schemeindex,productCostsindex)">
+                        </el-date-picker>
+                      </el-form-item>
+                    </el-col>
+                    <el-col :span="10" :offset="2">
+                      <el-form-item label="优先级(值小优先)" prop="priorityLevel"  >
+                        <el-input style="width: 100%" v-model="productCostsitem.priorityLevel"   @change="vm=> changePriorityLevel(vm,schemeindex,productCostsindex)"   label="方案匹配优先级"></el-input>
+                      </el-form-item>
+                    </el-col>
+
+                  </el-row>
+                  <el-row v-if="['单交', '交三', '交商','兜底配置'].includes(schemeitem.name)">
+                    <h4 style="color: tomato;">交强险费用</h4>
+                    <el-col :span="10" :offset="2">
+                      <el-form-item label="溢出保费" prop="jqSpilloverPremiums">
+                        <el-input v-model="productCostsitem.jqSpilloverPremiums" placeholder="请输入溢出保费"></el-input>
+                      </el-form-item>
+                    </el-col>
+                    <el-col :span="10">
+                      <el-form-item label="溢出比例" prop="jqSpilloverProportion">
+                        <el-input v-model="productCostsitem.jqSpilloverProportion" placeholder="请输入溢出比例"></el-input>
+                      </el-form-item>
+                    </el-col>
+                    <el-col :span="10" :offset="2">
+                      <el-form-item label="新车费用比例" prop="jqNewCarCostsProportion">
+                        <el-input v-model="productCostsitem.jqNewCarCostsProportion" @blur="val => jqNewCarCostsProportioninput(val, schemeindex, productCostsindex)" placeholder="请输入新车费用比例"></el-input>
+                      </el-form-item>
+                    </el-col>
+                    <el-col :span="10">
+                      <el-form-item label="旧车费用比例" prop="jqOldCarCostsProportion">
+                        <el-input v-model="productCostsitem.jqOldCarCostsProportion" @blur="val => jqOldCarCostsProportioninput(val, schemeindex, productCostsindex)" placeholder="请输入旧车费用比例"></el-input>
+                      </el-form-item>
+                    </el-col>
+                    <el-col :span="10" :offset="2" v-if="permissions">
+                      <el-form-item label="新车其他费用比例">
+                        <el-input disabled v-model="productCostsitem.jqNewCarOtherCostsProportion"
+                                  placeholder="请输入新车其他费用比例"></el-input>
+                      </el-form-item>
+                    </el-col>
+                    <el-col :span="10" v-if="permissions">
+                      <el-form-item label="旧车其他费用比例">
+                        <el-input disabled v-model="productCostsitem.jqOldCarOtherCostsProportion"
+                                  placeholder="请输入旧车其他费用比例"></el-input>
+                      </el-form-item>
+                    </el-col>
+                    <el-col :span="10" :offset="2">
+                      <el-form-item label="总费用比例" prop="jqCostsProportion">
+                        <el-input v-model="productCostsitem.jqCostsProportion"
+                                  @blur="val => jqCostsProportioninput(val, schemeindex, productCostsindex)"
+                                  placeholder="请输入总费用比例"></el-input>
+                      </el-form-item>
+                    </el-col>
+                  </el-row>
+                  <el-row v-if="['单商', '单三', '交商', '交三','兜底配置'].includes(schemeitem.name)">
+                    <h4 style="color: tomato;">商业险费用</h4>
+                    <el-col :span="10" :offset="2">
+                      <el-form-item label="溢出保费" prop="sySpilloverPremiums">
+                        <el-input v-model="productCostsitem.sySpilloverPremiums" placeholder="请输入溢出保费"></el-input>
+                      </el-form-item>
+                    </el-col>
+                    <el-col :span="10">
+                      <el-form-item label="溢出比例" prop="sySpilloverProportion">
+                        <el-input v-model="productCostsitem.sySpilloverProportion" placeholder="请输入溢出比例"></el-input>
+                      </el-form-item>
+                    </el-col>
+                    <el-col :span="10" :offset="2">
+                      <el-form-item label="新车费用比例" prop="syNewCarCostsProportion">
+                        <el-input v-model="productCostsitem.syNewCarCostsProportion" @blur="val => syNewCarCostsProportioninput(val, schemeindex, productCostsindex)" placeholder="请输入新车费用比例"></el-input>
+                      </el-form-item>
+                    </el-col>
+                    <el-col :span="10">
+                      <el-form-item label="旧车费用比例" prop="syOldCarCostsProportion">
+                        <el-input v-model="productCostsitem.syOldCarCostsProportion" @blur="val => syOldCarCostsProportioninput(val, schemeindex, productCostsindex)" placeholder="请输入旧车费用比例"></el-input>
+                      </el-form-item>
+                    </el-col>
+                    <el-col :span="10" :offset="2" v-if="permissions">
+                      <el-form-item label="新车其他费用比例">
+                        <el-input v-model="productCostsitem.syNewCarOtherCostsProportion" placeholder="请输入新车其他费用比例"
+                          disabled></el-input>
+                      </el-form-item>
+                    </el-col>
+                    <el-col :span="10" v-if="permissions">
+                      <el-form-item label="旧车其他费用比例">
+                        <el-input v-model="productCostsitem.syOldCarOtherCostsProportion" placeholder="请输入旧车其他费用比例"
+                          disabled></el-input>
+                      </el-form-item>
+                    </el-col>
+                    <el-col :span="10" :offset="2">
+                      <el-form-item label="总费用比例" prop="syCostsProportion">
+                        <el-input v-model="productCostsitem.syCostsProportion" placeholder="请输入总费用比例"
+                                  @blur="val => syCostsProportioninput(val, schemeindex, productCostsindex)"></el-input>
+                      </el-form-item>
+                    </el-col>
+                  </el-row>
+                  </el-collapse-item>
+                </el-form>
+              </div>
+            </div>
+            </el-collapse>
+          </div>
+        </div>
+  <span slot="footer" class="dialog-footer">
+    <el-button size="small" @click="productCostVehicleFactorVisible = false">取 消</el-button>
+    <el-button size="small" type="primary" @click="productCostVehicleFactorVisible = false">确 定</el-button>
+  </span>
+</el-dialog>
   </div>
 </template>
 <script>
@@ -859,6 +1025,9 @@ export default {
       totalSize: null,
       agreementdialogVisible: false, //控制协议对话框显示
       VehicleFactorVisible: false,//费用车辆因子    显示/隐藏
+      productCostVehicleFactorVisible: false,//产品费用    显示/隐藏
+      nonAutoProductCostVehicleFactorVisible: false,//非车产品费用    显示/隐藏
+      underwritingRulesVehicleFactorVisible: false,//承保规则    显示/隐藏
       //产品list获取
       roductList1: ['车险'],//产品绑定list
       treedata: [],//授权结构树
@@ -1290,6 +1459,9 @@ export default {
     this.changeTreeWidth(250); // 初始化树的宽度
   },
   methods: {
+    productCost(index,row){
+      this.productCostVehicleFactorVisible=true;
+    },
     convertFactorForm(item){
       this.CostfactorForm.transfer=item.transfer;
       this.CostfactorForm.newEnergy=item.newEnergy;
@@ -1417,8 +1589,6 @@ export default {
         rulesType:"0",//默认拒保规则
       })
     },
-
-
     //改变方案优先级时,校验
     changePriorityLevel(val,schemeindex, productCostsindex){
       for(let tempScheme in this.costform.scheme[schemeindex].productCosts){
@@ -1752,7 +1922,7 @@ export default {
           this.$message({
             type: 'info',
             message: '已取消删除'
-          });          
+          });
         });
     },
     //删除产品方案
@@ -2430,9 +2600,9 @@ export default {
 
             let params = {
               agreement: this.agreement,
-              scheme: this.costform.scheme,
-              nonCarProductCosts: this.nonCarProductCosts,
-              underwritingRules: this.UnderwritingRules,
+              // scheme: this.costform.scheme,
+              // nonCarProductCosts: this.nonCarProductCosts,
+              // underwritingRules: this.UnderwritingRules,
               attribution: this.attributionform,
               dept: this.dept
             }

+ 39 - 3
src/views/Core/KtCommonTable.vue

@@ -12,6 +12,8 @@
       :element-loading-text="$t('action.loading')"
       :border="border"
       :stripe="stripe"
+      :show-summary="showSummary"
+      :summary-method="getSummaries"
       :show-overflow-tooltip="showOverflowTooltip"
       :height="tableHeight"
       :size="size"
@@ -26,8 +28,9 @@
     >
       <el-table-column
         type="selection"
-        width="40"
+        width="50"
         fixed
+        align="center"
         v-if="showBatchDelete || showBatchSettled || showBatchPrint"
       ></el-table-column>
       <el-table-column
@@ -250,6 +253,7 @@
 </template>
 <script>
 import KtButton from "@/views/Core/KtButton";
+import BigNumber from "bignumber.js";
 export default {
   name: "KtCommonTable",
   components: {
@@ -278,6 +282,11 @@ export default {
       type: Boolean,
       default: false,
     },
+    //显示合计
+    showSummary: {
+      type: Boolean,
+      default: false,
+    },
     button1Name: {
       type: String,
     },
@@ -345,6 +354,7 @@ export default {
       type: Boolean,
       default: true,
     },
+    showSummaryFieldList: Array,//自定义合计列配置
     keyName: String, //主键字段名
     columns: Array, // 表格列配置
     data: {}, // 表格分页数据
@@ -420,7 +430,33 @@ export default {
       }
       // return '';
     },
-
+    getSummaries(param) {
+      const { columns, data } = param;
+      const sums = [];
+      columns.forEach((column, index) => {
+        if (index === 0) {
+          sums[index] = "合计"; // 假设第一列显示文本'合计'
+          return;
+        }
+        if (this.showSummaryFieldList) {
+          // 如果当前列名不在需要计算的列名数组中,直接返回空值或其他标记
+          if (!this.showSummaryFieldList.includes(column.property)) {
+            sums[index] = "-";
+            return;
+          }
+        }
+        let sum = new BigNumber(0);
+        data.forEach((item) => {
+          let value = item[column.property];
+          let number = new BigNumber(value);
+          if (!number.isNaN()) {
+            sum = sum.plus(number);
+          }
+        });
+        sums[index] = sum.toFixed(); // 转换成字符串避免精度问题
+      });
+      return sums;
+    },
     // 分页查询
     findPage: function () {
       this.loading = true;
@@ -429,7 +465,7 @@ export default {
         //解决操作栏位置偏移问题
         this.$nextTick(() => {
           this.$refs.doLayout.doLayout();
-        },200);
+        }, 200);
       };
       this.$emit("findPage", {
         pageRequest: this.pageRequest,

+ 102 - 124
src/views/FinancialManagement/ExpenseManagement/ExpenseApplyFor.vue

@@ -58,6 +58,13 @@
       @click="showExpense"
       >资金使用申请单</el-button
     >
+    <el-button
+      @click="expendDataup"
+      type="primary"
+      size="medium"
+      :disabled="!this.expentList.length"
+      >批量导出</el-button
+    >
     <!-- 表格 -->
     <kt-common-table
       :operationWidth="operationWidth"
@@ -69,11 +76,13 @@
       editButtonName="编辑"
       button1Name="删除"
       :showBatchDelete="false"
+      :showBatchPrint="true"
       :showOperation="true"
       @findPage="findPage"
       :isshowpagination="true"
       @handleEdit="expendEdit"
       @handleButton1="expendDelete"
+      @selectionChange="selectionChange"
     ></kt-common-table>
     <!-- 申请资金弹框 -->
     <el-dialog
@@ -170,7 +179,7 @@
               <el-form-item label="资金用途" prop="fundUse">
                 <el-cascader
                   v-model="tableForm.fundUse"
-                  :show-all-levels="false"
+                  :show-all-levels="true"
                   :clearable="true"
                   :checkStrictly="true"
                   :emitPath="false"
@@ -270,27 +279,27 @@
               </el-form-item>
             </el-col>
           </el-row>
-          <el-row>
+          <el-row style="margin-bottom: 20px">
+            <el-col :span="12" style="text-align: center"
+              ><h3>收入方资金归属(%)</h3>
+              <span>(请输入资金归属百分比)</span></el-col
+            >
+            <el-col :span="12" style="text-align: center"
+              ><h3>支出方资金归属(%)</h3>
+              <span>(请输入资金归属百分比)</span></el-col
+            >
+          </el-row>
+          <el-row class="profit_box">
             <el-col :span="12">
-              <el-form-item label="收入方资金归属" prop="entProfit">
-                <el-select
-                  v-model="profitObj.entProfitName"
-                  filterable
-                  @change="profitChange($event, 1)"
-                  placeholder=""
-                >
-                  <el-option
-                    v-for="(item, index) in affiliationData"
-                    :key="item.profitId + 'ent' + index"
-                    :label="item.profitName"
-                    :value="item.profitEng"
-                  >
-                  </el-option>
-                </el-select>
+              <el-form-item
+                v-for="item in affiliationData"
+                :key="item.profitId + 'sr'"
+                :label="item.profitName"
+                prop="entProfit"
+              >
                 <el-input-number
-                  v-model="profitObj.entProfitValue"
+                  v-model="item.profit"
                   :min="0"
-                  @blur="profitBlur($event, 1)"
                   placeholder="请输入利润(%)"
                   :max="100"
                   label=""
@@ -298,25 +307,15 @@
               </el-form-item>
             </el-col>
             <el-col :span="12">
-              <el-form-item label="支出方资金归属" prop="outFlag">
-                <el-select
-                  v-model="profitObj.outProfitName"
-                  filterable
-                  @change="profitChange($event, 2)"
-                  placeholder=""
-                >
-                  <el-option
-                    v-for="(item, index) in affiliationData"
-                    :key="item.profitId + 'out' + index"
-                    :label="item.profitName"
-                    :value="item.profitEng"
-                  >
-                  </el-option>
-                </el-select>
+              <el-form-item
+                v-for="item in affiliationData2"
+                :key="item.profitId + 'zc'"
+                :label="item.profitName"
+                prop="entProfit"
+              >
                 <el-input-number
-                  v-model="profitObj.outProfitValue"
+                  v-model="item.profit"
                   :min="0"
-                  @blur="profitBlur($event, 2)"
                   placeholder="请输入利润(%)"
                   :max="100"
                   label=""
@@ -328,13 +327,6 @@
       </div>
       <div slot="footer" class="dialog-footer">
         <el-button @click="resetForm" size="small">取 消</el-button>
-        <el-button
-          v-if="expendDataId"
-          @click="expendDataup"
-          type="primary"
-          size="small"
-          >导 出</el-button
-        >
         <el-button type="primary" @click="submitForm" size="small">{{
           buttonValue
         }}</el-button>
@@ -382,6 +374,7 @@ export default {
       }
     };
     return {
+      expentList: [], //批量导出数据
       expenseaaa: true,
       expendTitle: "新增资金使用申请单", //弹框标题
       operationWidth: 200, //操作单元格宽度
@@ -534,6 +527,7 @@ export default {
       },
       payment_methodsData: [], //支付方式字典数据
       affiliationData: [], //归属字典数据
+      affiliationData2: [], //归属字典数据
       collectionData: [], //收款单位信息数据
       innerCollectionData: [], //内部账户单位信息数据
       account_qualityData: [], //账户性质字典
@@ -629,6 +623,12 @@ export default {
         this.tableForm.payMethod = [
           this.payment_methodsData.find((item) => item.value == 2).label,
         ];
+        this.affiliationData.forEach((item) => {
+          item.profit = 0;
+        });
+        this.affiliationData2.forEach((item) => {
+          item.profit = 0;
+        });
         this.expendDataId = "";
       }
     },
@@ -643,84 +643,49 @@ export default {
   },
   mounted() {},
   methods: {
-    //收入资金归属change事件
-    profitChange(e, num) {
-      if (num == 1) {
-        //收入
-        this.profitObj.entProfitName = e;
-        this.tableForm.entProfit = {
-          [this.profitObj.entProfitName]: this.profitObj.entProfitValue,
-        };
-      } else {
-        //支出
-        this.profitObj.outProfitName = e;
-        this.tableForm.outProfit = {
-          [this.profitObj.outProfitName]: this.profitObj.outProfitValue,
-        };
-      }
-    },
-    //收入资金归属利润事件
-    profitBlur(e, num) {
-      this.tableForm.entProfit = {
-        [this.profitObj.entProfitName]: this.profitObj.entProfitValue,
-      };
-      this.tableForm.outProfit = {
-        [this.profitObj.outProfitName]: this.profitObj.outProfitValue,
-      };
+    //表格多选事件
+    selectionChange(e) {
+      this.expentList = e.selections.map((item) => item.excelAccountOperateId);
     },
     //获取归属数据
     getAffiliationData() {
       this.$api.expense.getList().then((res) => {
         if (res.code == 200) {
-          this.affiliationData = res.data;
-          res.data.forEach((item) => {
-            this.columns.push({
-              prop: item.profitEng,
-              label: item.profitName,
-              minWidth: 60,
-              sortable: false,
-            });
+          res.data.map((item) => {
+            item.profit = 0;
+            return item;
           });
+          this.affiliationData = JSON.parse(JSON.stringify(res.data));
+          this.affiliationData2 = JSON.parse(JSON.stringify(res.data));
         } else {
           this.$message.error(res.msg);
         }
       });
     },
     //导出
-    expendDataup(idList) {
-      if (this.expendDataId) {
-        //编辑查看直接导出
-        let url = process.env.BASE_URL + "/upload/" + this.tableForm.uplodePath; // 3.创建一个临时的url指向blob对象
-        // 4.创建url之后可以模拟对此文件对象的一系列操作,例如:预览、下载
-        let a = document.createElement("a");
-        a.href = url;
-        a.download = "资金使用申请单.xlsx";
-        a.click();
-        // 5.释放这个临时的对象url
-        window.URL.revokeObjectURL(url);
-        this.resetForm();
-        this.findPage();
-      } else {
-        //新增并导出
-        this.$api.expense.excel(idList).then((response) => {
-          if (response.code == 200) {
-            response.data.forEach((data) => {
-              this.resetForm();
-              this.findPage();
-              let url = process.env.BASE_URL + "/upload/" + data.uplodePath; // 3.创建一个临时的url指向blob对象
-              // 4.创建url之后可以模拟对此文件对象的一系列操作,例如:预览、下载
-              let a = document.createElement("a");
-              a.href = url;
-              a.download = "资金使用申请单.xlsx";
-              a.click();
-              // 5.释放这个临时的对象url
-              window.URL.revokeObjectURL(url);
-            });
-          } else {
-            this.$message.error(response.msg);
+    expendDataup(e, idList) {
+      idList = idList || this.expentList;
+      this.$api.expense.excel(idList).then((response) => {
+        if (response.code == 200) {
+          if (response.data == null) {
+            this.$message.error("暂无导出数据,请重试!");
+            return;
           }
-        });
-      }
+          let url = process.env.BASE_URL + "/upload/" + response.data; // 3.创建一个临时的url指向blob对象
+          // 4.创建url之后可以模拟对此文件对象的一系列操作,例如:预览、下载
+          let a = document.createElement("a");
+          a.href = url;
+          a.click();
+          // 5.释放这个临时的对象url
+          window.URL.revokeObjectURL(url);
+          document.body.removeChild(a); //移除a标签
+          this.resetForm();
+          this.findPage();
+        } else {
+          this.$message.error(response.msg);
+        }
+      });
+      // }
     },
     //点击编辑按钮
     expendEdit(index) {
@@ -742,14 +707,22 @@ export default {
               this.tableForm.fundUse,
               this.tableForm.fundFen,
             ];
+            //转换资金归属
             for (let key in res.data.outProfit) {
-              this.profitObj.outProfitName = key;
-              this.profitObj.outProfitValue = res.data.outProfit[key];
+              this.affiliationData2.forEach((item) => {
+                if (item.profitEng == key) {
+                  item.profit = res.data.outProfit[key];
+                }
+              });
             }
             for (let key in res.data.entProfit) {
-              this.profitObj.entProfitName = key;
-              this.profitObj.entProfitValue = res.data.entProfit[key];
+              this.affiliationData.forEach((item) => {
+                if (item.profitEng == key) {
+                  item.profit = res.data.entProfit[key];
+                }
+              });
             }
+            //转换资金归属
           } else {
             this.$message.error(res.msg);
           }
@@ -819,12 +792,6 @@ export default {
         .getAccountExcel(obj)
         .then((res) => {
           res.data.records.forEach((element) => {
-            for (let key in element.outProfit) {
-              element[key] = element.outProfit[key];
-            }
-            for (let key in element.entProfit) {
-              element[key] = element.entProfit[key];
-            }
             element.transferFlagName =
               element.transferFlag == 0 ? "已转账" : "未转账";
           });
@@ -994,7 +961,7 @@ export default {
     //费用申请弹框
     showExpense() {
       this.expendTitle = "新增资金使用申请单";
-      this.buttonValue = "导 出";
+      this.buttonValue = "提 交";
       this.expenseDialog = true;
     },
     //取消隐藏弹框
@@ -1004,10 +971,6 @@ export default {
     //导出事件
     submitForm() {
       let params = JSON.parse(JSON.stringify(this.tableForm));
-      if( !this.profitObj.entProfitName||!this.profitObj.outProfitName){
-        this.$message.error('请选择资金归属!');
-        return
-      }
       this.$refs.tableForm.validate((valid) => {
         if (valid) {
           params.payMethod = this.toPayment(params.payMethod); //支付方式转换
@@ -1027,6 +990,16 @@ export default {
           params.fundFen =
             this.tableForm.fundUse[this.tableForm.fundUse.length - 1]; //资金用途分项
           params.fundFlow = params.company + "→" + params.collectionMessage; //资金流程
+          //转化资金归属
+          params.entProfit = {};
+          params.outProfit = {};
+          this.affiliationData.forEach((item) => {
+            params.entProfit[item.profitEng] = item.profit;
+          });
+          this.affiliationData2.forEach((item) => {
+            params.outProfit[item.profitEng] = item.profit;
+          });
+          //转化资金归属
           if (this.expendDataId) {
             //修改
             params.expendDataId = this.expendDataId;
@@ -1042,7 +1015,8 @@ export default {
             //新增+导出
             this.$api.expense.insert(params).then((res) => {
               if (res.code == 200) {
-                this.expendDataup([res.data]);
+                this.resetForm();
+                this.findPage();
               } else {
                 this.$message.error(res.msg);
               }
@@ -1177,4 +1151,8 @@ export default {
 .table_btnbox {
   position: relative;
 }
+.dialog-body {
+  overflow-y: auto;
+  height: 500px;
+}
 </style>

+ 23 - 23
src/views/FinancialManagement/ExpenseManagement/ExpenseComponent.vue

@@ -427,29 +427,29 @@ export default {
         accountName: [
           { required: true, message: "户名不能为空", trigger: "blur" },
         ],
-        businessQuality: [
-          { required: true, message: "请选择营业性质", trigger: "change" },
-        ],
-        owned: [
-          { required: true, message: "所属地不能为空", trigger: "change" },
-        ],
-        juridicalPerson: [
-          { required: true, message: "法人不能为空", trigger: "change" },
-        ],
-        establishTime: [
-          {
-            required: true,
-            message: "请选择成立日期",
-            trigger: "change",
-          },
-        ],
-        biller: [
-          {
-            required: true,
-            message: "开票员不能为空",
-            trigger: "blur",
-          },
-        ],
+        // businessQuality: [
+        //   { required: true, message: "请选择营业性质", trigger: "change" },
+        // ],
+        // owned: [
+        //   { required: true, message: "所属地不能为空", trigger: "change" },
+        // ],
+        // juridicalPerson: [
+        //   { required: true, message: "法人不能为空", trigger: "change" },
+        // ],
+        // establishTime: [
+        //   {
+        //     required: true,
+        //     message: "请选择成立日期",
+        //     trigger: "change",
+        //   },
+        // ],
+        // biller: [
+        //   {
+        //     required: true,
+        //     message: "开票员不能为空",
+        //     trigger: "blur",
+        //   },
+        // ],
       },
       interiorRules: {
         //卡表单规则

+ 48 - 12
src/views/FinancialManagement/ExpenseManagement/ExpenseManagement.vue

@@ -66,7 +66,15 @@
       plain
       size="medium"
       @click="expentData"
-      >导出</el-button
+      >费用支出明细导出</el-button
+    >
+    <el-button
+      class="operation"
+      type="primary"
+      plain
+      size="medium"
+      @click="userInfoExpentData"
+      >账户信息导出</el-button
     >
     <!-- 表格 -->
     <el-table
@@ -342,7 +350,7 @@
             <el-form-item label="资金用途" prop="fundUse">
               <el-cascader
                 v-model="inComeFormData.fundUse"
-                :show-all-levels="false"
+                :show-all-levels="true"
                 :clearable="true"
                 :checkStrictly="true"
                 :emitPath="false"
@@ -361,10 +369,12 @@
         </el-row>
         <el-row>
           <el-col :span="12" style="text-align: center"
-            ><h3>收入方资金归属</h3></el-col
+            ><h3>收入方资金归属(%)</h3>
+            <span>(请输入资金归属百分比)</span></el-col
           >
           <el-col :span="12" style="text-align: center"
-            ><h3>支出方资金归属</h3></el-col
+            ><h3>支出方资金归属(%)</h3>
+            <span>(请输入资金归属百分比)</span></el-col
           >
         </el-row>
         <el-row class="profit_box">
@@ -783,10 +793,35 @@ export default {
         }
       });
     },
-    //导出开票记录
+    //账户信息导出
+    userInfoExpentData() {
+      this.$api.expense.updateAccountExcel(this.queryFrom).then((res) => {
+        if (res.code == 200) {
+          if (res.data == null) {
+            this.$message.error("暂无导出数据,请重试!");
+            return;
+          }
+          let url = process.env.BASE_URL + "/upload/" + res.data; // 3.创建一个临时的url指向blob对象
+          // 4.创建url之后可以模拟对此文件对象的一系列操作,例如:预览、下载
+          let a = document.createElement("a");
+          a.href = url;
+          a.download = "导出订单.xlsx";
+          a.click();
+          // 5.释放这个临时的对象url
+          window.URL.revokeObjectURL(url);
+        } else {
+          this.$message.error(res.msg);
+        }
+      });
+    },
+    //费用支出明细导出
     expentData() {
       this.$api.expense.updateUserExcel(this.queryFrom).then((res) => {
         if (res.code == 200) {
+          if (res.data == null) {
+            this.$message.error("暂无导出数据,请重试!");
+            return;
+          }
           let url = process.env.BASE_URL + "/upload/" + res.data; // 3.创建一个临时的url指向blob对象
           // 4.创建url之后可以模拟对此文件对象的一系列操作,例如:预览、下载
           let a = document.createElement("a");
@@ -886,15 +921,16 @@ export default {
     },
     //选择收款单位change事件
     companyChange(val) {
-      const item = this.collectionData.find((item) => item.accountId === val);
+      const item = this.collectionData.find((item) => item.nameValue === val);
       this.companyItem = item;
     },
     //点击确认收入事件
     submitIncomeForm() {
       let obj = JSON.parse(JSON.stringify(this.inComeFormData));
-      obj.enterCardId = this.enterCardId;
-      obj.fundFlow = obj.company + "→" + obj.collectionMessage;
-      obj.payMethod = obj.payMethod.join(",");
+      obj.enterCardId = this.enterCardId; //收入银行卡号
+      obj.outCardId = this.companyItem.bankCardNum; //支出银行卡号
+      obj.fundFlow = obj.company + "→" + obj.collectionMessage; //资金流向
+      obj.payMethod = obj.payMethod.join(",");//支付方式
       obj.revenueOutlay = "0";
       obj.fundUse = obj.fundUse[obj.fundUse.length - 2]; //资金用途
       obj.fundFen = obj.fundUse[obj.fundUse.length - 1]; //资金用途分项
@@ -1214,7 +1250,7 @@ export default {
       this.type = 1; //账户类型
       this.formDataId = row.accountId;
       this.$api.expense
-        .getAccount({ accountId: this.formDataId,pageNo:1,pageSize:10 })
+        .getAccount({ accountId: this.formDataId, pageNo: 1, pageSize: 10 })
         .then((res) => {
           if (res.code == 200) {
             this.accountFormData = JSON.parse(
@@ -1406,8 +1442,8 @@ export default {
 }
 
 .expendDialog >>> .el-dialog__body {
-  overflow-y: hidden !important;
-  max-height: 500px;
+  overflow-y: auto;
+  height: 500px;
 }
 .collec >>> .el-form-item__content {
   display: flex;

+ 73 - 32
src/views/FinancialManagement/ExpenseManagement/PaymentManagement.vue

@@ -115,12 +115,15 @@
       :columns="columns"
       :showBatchDelete="false"
       :showOperation="true"
-      editButtonName="编辑"
+      editButtonName="进账"
       button3Name="撤销"
+      button2Name="编辑"
       button3Icon="fa fa-trash"
       button3Background="#f56c6c"
+      button2Background="#E6A23C"
       @handleButton3="handleTableDelete"
-      @handleEdit="handleDetail"
+      @handleButton2="handleDetail($event, 1)"
+      @handleEdit="handleDetail($event, 2)"
       @findPage="findPage"
       :isshowpagination="true"
     ></kt-common-table>
@@ -142,7 +145,7 @@
           size="small"
           :class="formDataId ? 'data_form' : 'frame data_form'"
         >
-          <div v-if="!formDataId">
+          <div v-if="!formDataId || (typeStatus == 1 && formDataId)">
             <el-row>
               <el-col :span="12">
                 <el-form-item label="开票方" prop="invoiceBy">
@@ -293,7 +296,7 @@
               </el-col>
             </el-row>
           </div>
-          <div v-else>
+          <div v-if="typeStatus == 2 && formDataId">
             <el-row>
               <el-col :span="12">
                 <el-form-item label="进账金额" prop="payoutMoney">
@@ -339,7 +342,7 @@
                 <el-form-item label="资金用途" prop="fundUse">
                   <el-cascader
                     v-model="formData.fundUse"
-                    :show-all-levels="false"
+                    :show-all-levels="true"
                     :clearable="true"
                     :checkStrictly="true"
                     :emitPath="false"
@@ -392,10 +395,12 @@
             </el-row> -->
             <el-row>
               <el-col :span="12" style="text-align: center"
-                ><h3>收入方资金归属</h3></el-col
+                ><h3>收入方资金归属(%)</h3>
+                <span>(请输入资金归属百分比)</span></el-col
               >
               <el-col :span="12" style="text-align: center"
-                ><h3>支出方资金归属</h3></el-col
+                ><h3>支出方资金归属(%)</h3>
+                <span>(请输入资金归属百分比)</span></el-col
               >
             </el-row>
             <el-row class="profit_box">
@@ -481,7 +486,7 @@ export default {
       title: "开票新增",
       loading: true,
       detailDialog: false,
-      operationWidth: 200, //操作列宽度
+      operationWidth: 220, //操作列宽度
       queryFrom: {
         //查询条件
       },
@@ -642,6 +647,7 @@ export default {
       allCollectionData: [], //所有账户信息列表
       formDataId: "", //编辑数据id
       profitObj: {},
+      typeStatus: "", //1是编辑 2是进账
     };
   },
   watch: {
@@ -663,11 +669,11 @@ export default {
           rate: 0, //税率
           payMethod: [], //支付方式
         };
-        this.affiliationData.forEach(item=>{
-          item.profit = 0
+        this.affiliationData.forEach((item) => {
+          item.profit = 0;
         });
-        this.affiliationData2.forEach(item=>{
-          item.profit = 0
+        this.affiliationData2.forEach((item) => {
+          item.profit = 0;
         });
         this.formDataId = "";
         this.$nextTick(() => {
@@ -690,9 +696,9 @@ export default {
     getAffiliationData() {
       this.$api.expense.getList().then((res) => {
         if (res.code == 200) {
-          res.data.forEach(item=>{
-            item.profit = 0
-          })
+          res.data.forEach((item) => {
+            item.profit = 0;
+          });
           this.affiliationData = JSON.parse(JSON.stringify(res.data));
           this.affiliationData2 = JSON.parse(JSON.stringify(res.data));
         } else {
@@ -709,6 +715,10 @@ export default {
       delete params.pageSize;
       this.$api.expense.invAccountExcel(params).then((res) => {
         if (res.code == 200) {
+          if (res.data == null) {
+            this.$message.error("暂无导出数据,请重试!");
+            return;
+          }
           let url = process.env.BASE_URL + "/upload/" + res.data; // 3.创建一个临时的url指向blob对象
           // 4.创建url之后可以模拟对此文件对象的一系列操作,例如:预览、下载
           let a = document.createElement("a");
@@ -725,21 +735,21 @@ export default {
     //获取资金用途树数据
     getTreeList() {
       this.$api.expense.getAccountExpensesTreeList().then((res) => {
-        if(res.code == 200){
+        if (res.code == 200) {
           this.fundFlowData = res.data;
-          this.fundFlowSet()
-        }else{
+          this.fundFlowSet();
+        } else {
           this.$message.error(res.msg);
         }
       });
     },
     //资金用途数据转换     如果最后一项child数组长度为0把值变为null
-    fundFlowSet(data){
-      data = data || this.fundFlowData
-      for(var i = 0; i <data.length;i++) {
-        if(data[i].child.length){
-          this.fundFlowSet(data[i].child)
-        }else{
+    fundFlowSet(data) {
+      data = data || this.fundFlowData;
+      for (var i = 0; i < data.length; i++) {
+        if (data[i].child.length) {
+          this.fundFlowSet(data[i].child);
+        } else {
           data[i].child = null;
         }
       }
@@ -827,11 +837,12 @@ export default {
       let params = JSON.parse(JSON.stringify(this.formData));
       this.$refs.formData.validate((valid) => {
         if (valid) {
-          if (this.formDataId) {
+          //进账
+          if (this.formDataId && this.typeStatus == 2) {
             //转化资金归属
             params.entProfit = {};
             params.outProfit = {};
-            this.affiliationData.forEach((item) => { 
+            this.affiliationData.forEach((item) => {
               params.entProfit[item.profitEng] = item.profit;
             });
             this.affiliationData2.forEach((item) => {
@@ -846,8 +857,8 @@ export default {
               fundUse: this.formData.fundUse[this.formData.fundUse.length - 2], //资金用途
               fundFen: this.formData.fundUse[this.formData.fundUse.length - 1], //资金用途分项
               payoutTime: params.payoutTime, //进账日期
-              entProfit:params.entProfit, //收入方资金归属
-              outProfit:params.outProfit, //支出方资金归属
+              entProfit: params.entProfit, //收入方资金归属
+              outProfit: params.outProfit, //支出方资金归属
             };
             this.$api.expense.putInvAccountIncoice(obj).then((res) => {
               if (res.code == 200) {
@@ -857,6 +868,25 @@ export default {
                 this.$message.error(res.msg);
               }
             });
+            //编辑
+          } else if (this.formDataId && this.typeStatus == 1) {
+            params.invoiceBy = this.formData.invoiceBy.nameValue; //开票方
+            params.bigApplyAmount = toChies(params.invoiceMoney); //大写金额
+            params.invoiceSubjects =
+              params.invoiceSubjects1 + "*" + params.invoiceSubjects2; //开票科目
+            params.otherUnit = params.otherUnit.nameValue; //对方单位名称
+            params.company = params.otherUnit; //单位
+            delete params.payMethod;
+            delete params.payoutTime;
+            this.$api.expense.updateIncoice(params).then((res) => {
+              if (res.code == 200) {
+                this.detailDialog = false;
+                this.findPage();
+              } else {
+                this.$message.error(res.msg);
+              }
+            });
+            //新增
           } else {
             params.invoiceBy = this.formData.invoiceBy.nameValue; //开票方
             params.bigApplyAmount = toChies(params.invoiceMoney); //大写金额
@@ -907,10 +937,11 @@ export default {
       this.detailParams.pageSize = 10;
     },
     //编辑按钮
-    handleDetail(index) {
+    handleDetail(index, type) {
+      this.typeStatus = type;
       let row = index.row;
       this.formDataId = row.invoiceId;
-      this.title = "开票编辑";
+      this.title = type == 1 ? "开票编辑" : "开票进账";
       this.getDetailData(row.invoiceId);
       this.detailDialog = true;
     },
@@ -919,12 +950,22 @@ export default {
       this.$api.expense.detailInvAccountIncoice(id).then((res) => {
         if (res.code == 200) {
           let obj = this.collectionData.find(
-            (item) => item.bankCardNum == res.data.bankCardNum
+            (item) => item.bankCardNum == res.data.revBankCardNum
+          );
+          let obj2 = this.collectionData.find(
+            (item) => item.bankCardNum == res.data.outBankCardNum
           );
           if (obj) {
             res.data.invoiceBy = obj;
           }
-          this.formData = res.data;
+          if (obj2) {
+            res.data.otherUnit = obj;
+          }
+          if (this.typeStatus == 1) {
+            res.data.invoiceSubjects1 = res.data.invoiceSubjects.split('*')[0]
+            res.data.invoiceSubjects2 = res.data.invoiceSubjects.split('*')[1]
+          }
+          this.formData = JSON.parse(JSON.stringify(res.data));
         } else {
           this.$message.error(res.msg);
         }

+ 4 - 0
src/views/FinancialManagement/ExpenseManagement/TransferRecord.vue

@@ -140,6 +140,10 @@ export default {
       delete params.pageSize;
       this.$api.expense.accountOperateExcel(params).then((res) => {
         if (res.code == 200) {
+          if (res.data == null) {
+            this.$message.error("暂无导出数据,请重试!");
+            return;
+          }
           let url = process.env.BASE_URL + "/upload/" + res.data; // 3.创建一个临时的url指向blob对象
           // 4.创建url之后可以模拟对此文件对象的一系列操作,例如:预览、下载
           let a = document.createElement("a");

+ 1 - 0
src/views/FinancialManagement/ReconciliationSystem/ReceivablePayableCollection/ReceivablePayableCollection.vue

@@ -119,6 +119,7 @@
               >
                 <el-option label="未结算" value="0"></el-option>
                 <el-option label="已结算" value="1"></el-option>
+                <el-option label="孤儿单" value="2"></el-option>
               </el-select>
             </el-form-item>
           </el-col>

+ 35 - 9
src/views/FinancialManagement/ReconciliationSystem/ReceivablePayableCollection/Source.vue

@@ -96,6 +96,19 @@
               </el-date-picker>
             </el-form-item>
           </el-col>
+          <el-col :span="6">
+            <el-form-item label="结算状态">
+              <el-select
+                v-model="pageRequest.clearingState"
+                placeholder="请选择状态"
+                class="widths"
+              >
+                <el-option label="未结算" value="0"></el-option>
+                <el-option label="已结算" value="1"></el-option>
+                <el-option label="孤儿单" value="2"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
           <el-col :span="6">
             <el-form-item label="保司结算状态">
               <el-select
@@ -171,6 +184,8 @@
         :SerialShow="false"
         :operationWidth="180"
         :showOperation="true"
+        :showSummary="true"
+        :showSummaryFieldList="['premium', 'nonCopying', 'receivable']"
         permsDelete="sys:user:delete"
         :showBatchDelete="true"
         :showBatchSettled="true"
@@ -197,7 +212,13 @@
       >
       </kt-common-table>
     </el-main>
-    <el-dialog title="信息修改" :visible.sync="dialogFormVisible" v-dialogDrag :close-on-click-modal="false" width="80%">
+    <el-dialog
+      title="信息修改"
+      :visible.sync="dialogFormVisible"
+      v-dialogDrag
+      :close-on-click-modal="false"
+      width="80%"
+    >
       <el-form
         :model="updateform"
         :inline="true"
@@ -273,7 +294,11 @@
             placeholder="请选择状态"
             class="widths"
           >
-            <el-option :disabled="insuranceClearingStatedisableStatus" label="未结算" value="0"></el-option>
+            <el-option
+              :disabled="insuranceClearingStatedisableStatus"
+              label="未结算"
+              value="0"
+            ></el-option>
             <el-option label="已结算" value="1"></el-option>
           </el-select>
         </el-form-item>
@@ -309,7 +334,8 @@
     <el-dialog
       title="新增数据"
       :visible.sync="createOrUpdateVisible"
-      v-dialogDrag :close-on-click-modal="false"
+      v-dialogDrag
+      :close-on-click-modal="false"
       width="90%"
     >
       <el-form
@@ -743,7 +769,7 @@ export default {
           minWidth: 140,
         },
       ],
-      insuranceClearingStatedisableStatus:false,
+      insuranceClearingStatedisableStatus: false,
     };
   },
   created() {
@@ -884,14 +910,14 @@ export default {
       this.findPage();
     },
     sourceUpdate({ row, column }) {
-      if(row.insuranceClearingState=='已结算'){
-        this.insuranceClearingStatedisableStatus=true;
-      }else{
-        this.insuranceClearingStatedisableStatus=false;
+      if (row.insuranceClearingState == "已结算") {
+        this.insuranceClearingStatedisableStatus = true;
+      } else {
+        this.insuranceClearingStatedisableStatus = false;
       }
       this.dialogFormVisible = true;
       const shallowCopy = Object.assign({}, row);
-      this.updateform =shallowCopy;
+      this.updateform = shallowCopy;
     },
     sourceDelete({ row, column }) {
       this.$confirm("是否确认删除?", "提示", {