فهرست منبع

提交车险、非车結算生成月份結算表

hxl13994548489 2 سال پیش
والد
کامیت
7dba70e5b0

+ 9 - 0
src/http/moudules/finance/settlement.js

@@ -64,6 +64,15 @@ export const filesdownload = (data) => {
   })
 }
 
+// 根据保险公司id和任务id查询未结算的数据
+export const queryListByTaskIdAndCompanyId = (data) => {
+  return axios({
+    url: '/SettlementHandling/queryList',
+    method: 'post',
+    data
+  })
+}
+
 
 
 

+ 86 - 9
src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/InvoicingUnsettled.vue

@@ -134,14 +134,29 @@
     <el-dialog
       title="结算"
       :visible.sync="dialogVisiblebalance"
-      width="20%"
+      width="30%"
       :before-close="handleClosebalance"
     >
-      <el-form ref="form" :model="form" label-width="85px">
-        <el-form-item label="进账金额:">
+      <el-form ref="form" :model="form" label-width="200px">
+        <el-table
+          :data="form.insuranceHandlingList"
+          border
+          style="width: 600px;margin-bottom: 20px;"
+        >
+            <el-table-column prop="incomeSigningTime" label="月份"> </el-table-column>
+            <el-table-column prop="remainingAmount" label="未结算金额">
+            </el-table-column>
+            <el-table-column prop="settlementAmount" label="进账金额">
+              <template slot-scope="scope">
+                <el-input v-model="scope.row.settlementAmount"  @input='amountChange(scope.row)'></el-input>
+              </template>
+            </el-table-column>
+        </el-table>
+          <el-form-item label="进账总金额:">
           <el-input
-            v-model="form.settlementAmount"
+            v-model="total"
             style="width: 220px"
+            readonly
           ></el-input>
         </el-form-item>
         <el-form-item label="进账日期:">
@@ -153,7 +168,7 @@
           >
           </el-date-picker>
         </el-form-item>
-        <el-form-item label="上传凭证:">
+          <el-form-item label="上传凭证:">
           <el-upload
             action="#"
             class="upload-demo"
@@ -169,7 +184,7 @@
         </el-form-item>
       </el-form>
       <span slot="footer" class="dialog-footer">
-        <el-button size="small" @click="dialogVisiblebalance = false"
+        <el-button size="small" @click="cancelSumbit"
           >取消</el-button
         >
         <el-button type="primary" size="small" @click="balanceSumbit"
@@ -290,7 +305,11 @@ export default {
       ztreeNodes: [],
       fileList: [],
       dialogVisiblebalance: false,
-      form: {},
+      form: {
+        insuranceHandlingList:[],
+        settlementAmount:"",
+        settlementTime:"",
+      },
       formTableData: [],
       tableConfigDetail: {
         columns: [
@@ -491,7 +510,19 @@ export default {
       });
     this.findPage();
   },
+  computed: {
+    total() {
+      var amount = this.form.insuranceHandlingList.reduce((sum, item) => sum + parseFloat(item.settlementAmount ), 0);
+      return  Object.is(Number(amount), NaN)?0:amount;
+    }
+  },
   methods: {
+    //改变事件
+    amountChange(row){
+      if(row.settlementAmount>0 && row.settlementAmount>row.remainingAmount){
+         this.$message.error("进账金额不能大于未结算金额");
+      }
+    },
     // 记录
     findPageDetailrecord(data) {
       this.tableConfigDetailrecord.loading = true;
@@ -666,11 +697,41 @@ export default {
     handleClose() {
       this.dialogVisible = false;
     },
+    //取消结算
+    cancelSumbit(){
+      this.dialogVisiblebalance = false
+      //清空数据
+      this.form= {
+        insuranceHandlingList:[],
+        settlementAmount:"",
+        settlementTime:"",
+      }
+      this.batchData.id=null;
+    },
     balanceSumbit() {
-      if (!this.form.settlementAmount || this.form.settlementAmount <= 0) {
-        this.$message.error("请输入金额");
+      var flag=0;
+      var count=0;
+      if(this.form.insuranceHandlingList){
+        this.form.insuranceHandlingList.forEach(e => {  
+          if(e.settlementAmount>0 && e.settlementAmount>e.remainingAmount){
+            this.$message.error("进账金额不能大于未结算金额");
+            flag+=1;
+          }
+          if(e.settlementAmount>0){
+            count+=1;
+          }
+        })
+      }
+      if (count==0) {
+        this.$message.error("未填写金额!!");
         return;
       }
+      if (flag>0) {
+        this.$message.error("金额输入错误!!");
+        return;
+      }
+      
+      this.form.settlementAmount=this.total;
       this.$api.task
         .batchBxBalance({
           ...this.openBalanceDetail,
@@ -715,7 +776,23 @@ export default {
     balanceFun(row) {
       this.openBalanceDetail = row;
       this.fileList = [];
+      this.getSettlementList(row);
       this.dialogVisiblebalance = true;
+
+    },
+    //通过结算数据id查询需要结算的数据
+    getSettlementList(row){
+      this.$api.settlement.queryListByTaskIdAndCompanyId(
+        { 
+          taskId: row.taskId,
+          partnerCompaniesId:row.partnerCompaniesId,
+          isNotCar:"0",
+          isNotDocumentary:"0"
+        }).then((res) => {
+        if (res.code == 200) {
+           this.form.insuranceHandlingList =res.data; 
+        } 
+      }); 
     },
     tablePageChange(val) {
       this.pageData.pageSize = val;

+ 97 - 22
src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/InvoicingUnsettled.vue

@@ -32,24 +32,39 @@
                 <el-button size="small" @click="dialogVisible = false">取消</el-button>
             </span>
         </el-dialog>
-        <el-dialog title="结算" :visible.sync="dialogVisiblebalance" width="20%" :before-close="handleClosebalance">
-            <el-form ref="form" :model="form" label-width="85px">
-                <el-form-item label="进账金额:">
-                    <el-input v-model="form.settlementAmount" style="width:220px"></el-input>
-                </el-form-item>
-                <el-form-item label="进账日期:">
-                    <el-date-picker v-model="form.settlementTime" type="date" placeholder="选择日期" value-format="yyyy-MM-dd">
-                    </el-date-picker>
-                </el-form-item>
-                <el-form-item label="上传凭证:">
-                    <el-upload action="#" class="upload-demo" :limit="1" :auto-upload="false" :on-change="drivingupload"
-                        ref="upload3" accept=".png, .jpg, .jpeg" :file-list="fileList">
-                        <el-button size="small" type="primary">点击上传</el-button>
-                    </el-upload>
-                </el-form-item>
-            </el-form>
+        <el-dialog title="结算" :visible.sync="dialogVisiblebalance" width="30%" :before-close="handleClosebalance">
+            
+            <el-form ref="form" :model="form" label-width="200px">
+                <el-table
+                :data="form.insuranceHandlingList"
+                border
+                style="width: 600px;margin-bottom: 20px;"
+                >
+                    <el-table-column prop="incomeSigningTime" label="月份"> </el-table-column>
+                    <el-table-column prop="remainingAmount" label="未结算金额">
+                    </el-table-column>
+                    <el-table-column prop="settlementAmount" label="进账金额">
+                    <template slot-scope="scope">
+                        <el-input v-model="scope.row.settlementAmount"  @input='amountChange(scope.row)'></el-input>
+                    </template>
+                    </el-table-column>
+                </el-table>
+                    <el-form-item label="进账总金额:">
+                        <el-input v-model="total" style="width:220px"></el-input>
+                    </el-form-item>
+                    <el-form-item label="进账日期:">
+                        <el-date-picker v-model="form.settlementTime" type="date" placeholder="选择日期" value-format="yyyy-MM-dd">
+                        </el-date-picker>
+                    </el-form-item>
+                    <el-form-item label="上传凭证:">
+                        <el-upload action="#" class="upload-demo" :limit="1" :auto-upload="false" :on-change="drivingupload"
+                            ref="upload3" accept=".png, .jpg, .jpeg" :file-list="fileList">
+                            <el-button size="small" type="primary">点击上传</el-button>
+                        </el-upload>
+                    </el-form-item>
+                </el-form>
             <span slot="footer" class="dialog-footer">
-                <el-button size="small" @click="dialogVisiblebalance = false">取消</el-button>
+                <el-button size="small" @click="cancelSumbit">取消</el-button>
                 <el-button type="primary" size="small" @click="balanceSumbit">确定</el-button>
             </span>
         </el-dialog>
@@ -169,7 +184,11 @@ export default {
             ztreeNodes: [],
             fileList: [],
             dialogVisiblebalance: false,
-            form: {},
+            form: {
+                insuranceHandlingList:[],
+                settlementAmount:"",
+                settlementTime:null, 
+            },
             formTableData: [],
             dialogVisible: false,
             tableConfigDetail: {
@@ -352,7 +371,19 @@ export default {
         });
         this.findPage();
     },
+    computed: {
+        total() {
+            var amount = this.form.insuranceHandlingList.reduce((sum, item) => sum + parseFloat(item.settlementAmount ), 0);
+            return  Object.is(Number(amount), NaN)?0:amount;
+        }
+    },
     methods: {
+          //改变事件
+     amountChange(row){
+      if(row.settlementAmount>0 && row.settlementAmount>row.remainingAmount){
+         this.$message.error("进账金额不能大于未结算金额");
+      }
+     },
         // 明细
       findPageDetailrecord(data) {
             this.tableConfigDetailrecord.loading = true
@@ -529,12 +560,41 @@ export default {
         getList(data) {
             this.findPage(data)
         },
-
+        //取消结算
+        cancelSumbit(){
+        this.dialogVisiblebalance = false
+        //清空数据
+        this.form= {
+            insuranceHandlingList:[],
+            settlementAmount:"",
+            settlementTime:"",
+        }
+        this.batchData.id=null;
+        },
         balanceSumbit() {
-            if (!this.form.settlementAmount || this.form.settlementAmount <= 0) {
-                this.$message.error('请输入金额')
-                return
+        var flag=0;
+        var count=0;
+        if(this.form.insuranceHandlingList){
+            this.form.insuranceHandlingList.forEach(e => {  
+            if(e.settlementAmount>0 && e.settlementAmount>e.remainingAmount){
+                this.$message.error("进账金额不能大于未结算金额");
+                flag+=1;
+            }
+            if(e.settlementAmount>0){
+                count+=1;
             }
+            })
+        }
+        if (count==0) {
+            this.$message.error("未填写金额!!");
+            return;
+        }
+        if (flag>0) {
+            this.$message.error("金额输入错误!!");
+            return;
+        }
+      
+      this.form.settlementAmount=this.total;
             this.$api.task
                 // .batchBxBalance({
                 .noBatchBxBalance({
@@ -567,6 +627,7 @@ export default {
         // 结算
         balanceFun(row) {
             this.openBalanceDetail = row
+            this.getSettlementList(row);
             this.dialogVisiblebalance = true
             // this.$api.task
             //     .batchBxBalance({
@@ -590,6 +651,20 @@ export default {
             //             this.$message.error(res.msg)
             //         }
             //     });
+        },
+         //通过结算数据id查询需要结算的数据
+        getSettlementList(row){
+        this.$api.settlement.queryListByTaskIdAndCompanyId(
+            { 
+            taskId: row.taskId,
+            partnerCompaniesId:row.partnerCompaniesId,
+            isNotCar:"1",
+            isNotDocumentary:"0"
+            }).then((res) => {
+            if (res.code == 200) {
+            this.form.insuranceHandlingList =res.data; 
+            } 
+        }); 
         },
         tablePageChange(val) {
             this.pageData.pageSize = val;