Преглед изворни кода

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

lihongxiao пре 2 година
родитељ
комит
58cf1a33b3

+ 49 - 0
src/http/moudules/task.js

@@ -901,6 +901,24 @@ export const batchBalance = (data) => {
     data
   })
 }
+
+export const batchSumBalance = (data) => {
+  return axios({
+    url: "/fnc/plyFee/batchSumBalance",
+    method: "put",
+    data
+  })
+}
+
+
+export const fncSettlementSumFees = (data) => {
+  return axios({
+    url: "/fnc/SettlementFees/query",
+    method: "post",
+    data
+  })
+}
+
 // 保险公司结算-非跟单结算页面单行结算保存
 export const documentarySettle = (data) => {
   return axios({
@@ -1052,6 +1070,15 @@ export const plyFeeQuery = (data) => {
     data
   })
 }
+
+// 新增
+export const queryPagePtInsert = (data) => {
+  return axios({
+    url: "/fnc/plyFee/ptInsert",
+    method: "post",
+    data
+  })
+}
 // 保险公司结算-跟单费接口列表
 export const NonSettlementQuery = (data) => {
   return axios({
@@ -1267,6 +1294,28 @@ export const otherSettldetail = (data) => {
     data
   })
 }
+export const fncSettlementFeesQuery = (data) => {
+  return axios({
+    url: "/fnc/SettlementFees/query",
+    method: "post",
+    data
+  })
+}
+export const settlementSumFeesVoidInvoicing = (data) => {
+  return axios({
+    url: "/fnc/SettlementSumFees/voidInvoicing",
+    method: "put",
+    data
+  })
+}
+
+export const settlementSumFeesQuery = (data) => {
+  return axios({
+    url: "/fnc/SettlementSumFees/query",
+    method: "post",
+    data
+  })
+}
 export const bxImportNoData = (data) => {
   return axios({
     url: "/fnc/plyFee/bxImportNoData",

+ 312 - 23
src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/DocumentaryUnsettled.vue

@@ -16,19 +16,58 @@
         }' clearable filterable></el-cascader>
       </template>
     </templateTable>
+
+    <!-- 新详情 -->
     <el-dialog
       title="详情"
-      :visible.sync="dialogVisible"
+      :visible.sync="dialogVisibleNewDetail"
       width="80%"
+      :before-close="handleCloseNew">
+        <templateTable ref="templateTable" :formList="formList1" @handleSearchList="handleSearchList1" :tableConfig="tableConfigDetailNew" :data="formTableDataNew"
+        @findPage="findPageNewDetail" >
+        </templateTable>
+        <span slot="footer" class="dialog-footer">
+        <el-button  size="small" @click="handleCloseNew">取消</el-button>
+      </span>
+    </el-dialog>
+
+    <el-dialog
+      title="结算"
+      :visible.sync="dialogVisible"
+      width="70%"
       :before-close="handleClose">
-      <templateTable ref="templateTable"   :tableConfig="tableConfigDetail" :data="formTableData"
-      @findPage="findPageDetail" >
-    </templateTable>
+
+      <!-- 上传凭证 -->
+      <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>
+
+      <templateTable ref="templateTable" :tableConfig="tableConfigDetail" :data="formTableData" @findPage="findPageDetail" >
+        <template slot="settlementAmount" slot-scope="scope">
+          <el-input v-model="scope.row.invoicCommissionFeevalue" style="width:120px" size="mini"></el-input>
+        </template>
+      </templateTable>
       <span slot="footer" class="dialog-footer">
+      <el-button  size="small" @click="submitBalance" type="primary">结算</el-button>
       <el-button  size="small" @click="dialogVisible = false">取消</el-button>
     </span>
   </el-dialog>
-  <el-dialog
+
+    <el-dialog title="记录" :visible.sync="dialogVisiblerecord" width="30%" :before-close="handleCloserecord">
+      <templateTable ref="templateTable1" @getList="getListrecord"
+        :tableConfig="tableConfigDetailrecord" :data="formTableDatarecord" @findPage="findPageDetailrecord">
+        <template slot="imageUrl" slot-scope="scope">
+          <img v-if="scope.row.imageUrl" :src="`${process + scope.row.imageUrl}`" class="imageclass" @click.stop="showViewer=true; ProViewImg=process + scope.row.imageUrl" />
+        </template>
+      </templateTable>
+      <span slot="footer" class="dialog-footer">
+        <el-button size="small" @click="dialogVisiblerecord = false">取消</el-button>
+      </span>
+    </el-dialog>
+
+
+  <!-- <el-dialog
       title="结算"
       :visible.sync="dialogVisiblebalance"
       width="20%"
@@ -57,7 +96,7 @@
       <el-button  size="small" @click="dialogVisiblebalance = false">取消</el-button>
       <el-button type="primary" size="small" @click="balanceSumbit">确实</el-button>
     </span>
-  </el-dialog>
+  </el-dialog> -->
   </div>
 </template>
 <script>
@@ -77,6 +116,7 @@ export default {
   },
   data() {
     return {
+      process:process.env.BASE_URL,
       fileList:[],
       batchData:{},
       ztreeNodes:[],
@@ -139,7 +179,8 @@ export default {
           {
               type: 'primary',
               label: '详情',
-              click: (row, index) => { return this.haldDetail(row) },
+              // click: (row, index) => { return this.haldDetail(row) },
+              click: (row, index) => { return this.haldNewDetail(row) },
           }
         ]
       },
@@ -175,7 +216,7 @@ export default {
             }]
           },
           {
-            prop: "invoicCommissionFeevalue",
+            prop: "totalAmount",
             label: "开票金额",
             type: "text"
           },
@@ -185,29 +226,177 @@ export default {
             type: "text"
           },
           {
-            prop: "invoicTime",
+            prop: "createTime",
             label: "开票时间",
             type: "text"
           },
-         
+          {
+            prop: "invoicedSettledAmount",
+            label: "开票已结算金额",
+            type: "text"
+          },
+          {
+            prop: "invoicedNotSettledAmount",
+            label: "开票未结算金额",
+            type: "text"
+          },
+          {
+            name: "settlementAmount",
+            label: "结算金额",
+            type: "slot"
+          },
+
+        ],
+        loading: true,
+        // optBtns:[
+        //   {
+        //     type:'primary',
+        //     label:'结算',
+        //     hide:(row)=>{
+        //       return row.invoicCommissionFeevalue?true:false
+        //     },
+        //     click:(row, index) => {return this.openBalanceFun(row)},
+        // },
+        // {
+        //     type:'primary',
+        //     label:'作废',
+        //     click:(row, index) => {return this.handVoid(row)},
+        // },
+      // ]
+      },
+      // 新详情
+      dialogVisibleNewDetail: false,
+      formList1: [
+        {
+          label: "结算状态",
+          prop: "settlementStatus",
+          type: "select",
+          options: [
+            {
+              label: '开票未结算',
+              value: '0'
+            },
+            {
+              label: '开票已结算',
+              value: '1'
+            },
+            {
+              label: '开票结算清',
+              value: '2'
+            },
+          ]
+        },
+      ],
+      findPageDetailListNew: {},
+      tableConfigDetailNew: {
+        columns: [
+          {
+            prop: "invoicId",
+            label: "开票号",
+            type: "text"
+          },
+          {
+            prop: "invoicingMethod",
+            label: "开票方式",
+            type: "statMap",
+            options:[{
+              label: "保司开票",
+              value: "0",
+            }, {
+              label: "掌柜开票",
+              value: "1",
+            }]
+          },
+          {
+            prop: "totalAmount",
+            label: "开票金额",
+            type: "text"
+          },
+          {
+            prop: "invoicedSettledAmount",
+            label: "开票已结算金额",
+            type: "text"
+          },
+          {
+            prop: "invoicedNotSettledAmount",
+            label: "开票未结算金额",
+            type: "text"
+          },
+          {
+            prop: "completionStatus",
+            label: "结算状态",
+            type: "statMap",
+            options:[{
+              label: "开票未结算",
+              value: "0",
+            }, {
+              label: "开票已结算",
+              value: "1",
+            }, {
+              label: "开票结算清",
+              value: "2",
+            }]
+          },
         ],
         loading: true,
+        isShowIndex: true,
+        operationWidth: '130',
         optBtns:[
           {
             type:'primary',
             label:'结算',
-            hide:(row)=>{
-              return row.invoicCommissionFeevalue?true:false
+            hide:(row) => {
+                return row.completionStatus != '2'
             },
-            click:(row, index) => {return this.openBalanceFun(row)},
-        },
-        {
+            // click:(row, index) => {return this.openBalanceFun(row)},
+            click:(row, index) => {return this.haldDetail(row)},
+          },
+          {
+            type:'primary',
+            label:'记录',
+            hide:(row) => {
+                return row.completionStatus != '0'
+            },
+            click:(row, index) => {return this.haldRecord(row)},
+          },
+          {
             type:'primary',
             label:'作废',
-            click:(row, index) => {return this.handVoid(row)},
-        },
+            hide:(row) => {
+                return row.completionStatus == '0'
+            },
+            click:(row, index) => {return this.haldDelete(row)},
+          }
       ]
       },
+      formTableDataNew: [],
+      settlementSumId: '',
+      // 记录
+      dialogVisiblerecord: false,
+      tableConfigDetailrecord: {
+        columns: [
+          {
+            prop: "settlementTime",
+            label: "进账日期",
+            type: "text"
+          },
+          {
+            prop: "settlementAmount",
+            label: "进帐金额",
+            type: "text"
+          },
+          {
+            name: "imageUrl",
+            label: "进帐截图",
+            type: "slot"
+          },
+
+        ],
+        loading: true,
+        isPaginationShow: true
+      },
+      formTableDatarecord: [],
+
     };
   },
   created() {
@@ -220,6 +409,100 @@ export default {
     this.findPage();
   },
   methods: {
+    // 作废
+    haldDelete(row) {
+      this.$api.task.settlementSumFeesVoidInvoicing({
+        id: row.id
+      }).then(res => {
+        if (res.code == 200) {
+          this.handleCloseNew()
+          this.findPage()
+        } else {
+          this.$message.error(res.msg)
+        }
+      })
+    },
+    // 记录
+    haldRecord(row) {
+      this.settlementSumId = row.id
+      this.dialogVisiblerecord = true
+      this.findPageDetailrecord(row)
+    },
+    handleCloserecord() {
+      this.dialogVisiblerecord = false
+    },
+    getListrecord(data) {
+      this.findPageDetailrecord({...data})
+    },
+    findPageDetailrecord(data) {
+      this.tableConfigDetailrecord.loading = true
+      this.$api.task.fncSettlementSumFees({
+        settlementSumId: this.settlementSumId,
+        settlementStatus: '2',
+      })
+      .then(res => {
+        if (res.code == 200) {
+          this.formTableDatarecord = res.data.content
+          this.tableConfigDetailrecord.loading = false
+        } else {
+          this.$message.error(res.msg)
+          this.tableConfigDetailrecord = false
+        }
+      })
+    },
+    // 结算提交按钮
+    submitBalance() {
+      let subData = {
+        multipleSelection: this.formTableData,
+        settlementSumId: this.settlementSumId,
+        settlementImageId: this.batchData.id
+      }
+       subData.multipleSelection.forEach(val => {
+        val.createTime = null
+       })
+      this.$api.task.batchSumBalance(subData).then(res => {
+        // console.log(res)
+        if (res.code == 200) {
+          this.$message.success('操作成功')
+          this.handleClose()
+          this.handleCloseNew()
+          this.findPage();
+        } else {
+          this.$message.error(res.msg)
+        }
+      })
+    },
+    // 新详情
+    findPageNewDetail(data) {
+      this.$api.task.settlementSumFeesQuery({
+          settlementStatus: '1',
+          completionStatus: data.settlementStatus || '0',
+          partnerCompaniesId: data.partnerCompaniesId,
+          isNotCar: '1',
+        })
+        .then(res => {
+          if (res.code==200) {
+            this.formTableDataNew = res.data.content;
+            this.tableConfigDetailNew.loading = false;
+          }
+          else{
+            this.tableConfigDetailNew.loading = false;
+            this.$message.error(res.msg)
+          }
+        });
+    },
+    handleSearchList1(data) {
+      console.log(data, '1111111111111111111')
+      this.findPageNewDetail({...this.findPageDetailListNew, ...data})
+    },
+    haldNewDetail(row) {
+      this.dialogVisibleNewDetail= true
+      this.findPageDetailListNew = row
+      this.findPageNewDetail(row)
+    },
+    handleCloseNew() {
+      this.dialogVisibleNewDetail= false
+    },
     handVoid(row){
       this.$api.task
         .yaidlnvoicing({id:row.id})
@@ -327,20 +610,27 @@ export default {
     haldDetail(row){
       this.dialogVisible=true
       this.findPageDetailList=row
+      this.settlementSumId = row.id
       this.findPageDetail(row)
     },
     findPageDetail(data) {
       this.tableConfigDetail.loading=true
       this.$api.task
-        .otherSettldetail({
+        // .otherSettldetail({
+        .fncSettlementFeesQuery({
           // incomeIds:data.incomeIds,
           partnerCompaniesId:data.partnerCompaniesId,
           handlingFeesStatus:'1',
-          isNotCar:1
+          isNotCar:1,
+          settlementSumId: data.id
         })
         .then(res => {
           if (res.code==200) {
-            this.formTableData = res.data;
+            res.data.content.forEach(ele => {
+              ele.invoicCommissionFeevalue = 0
+            });
+            this.formTableData = res.data.content;
+            console.log(this.formTableData)
             this.tableConfigDetail.loading = false;
           }
           else{
@@ -351,7 +641,7 @@ export default {
     },
     handleClose(){
       this.dialogVisible=false
-    }, 
+    },
     tablePageChange(val) {
       this.pageData.pageSize = val;
       this.findPage();
@@ -360,7 +650,7 @@ export default {
       this.pageData.pageNum = val;
       this.findPage();
     },
-   
+
   }
 };
 </script>
@@ -370,4 +660,3 @@ export default {
     height: auto !important;
   }
 </style>
-    

+ 234 - 1
src/views/FinancialManagement/CarInsurance/PlatformSettlement/NonVehicleBalance.vue

@@ -198,6 +198,129 @@
     <el-button size="small" @click="submitImport">确定</el-button>
   </span>
 </el-dialog>
+
+<!-- 新增 -->
+  <el-dialog
+    title="新增"
+    :visible.sync="dialogVisibleAdd"
+    width="55%"
+    :before-close="handleCloseAdd">
+    <el-form ref="formDataListAdd" :model="formDataListAdd" label-width="130px" :rules="rulesAdd">
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="签单日期" prop="signdate">
+              <el-date-picker
+                v-model="formDataListAdd.signdate"
+                type="date"
+                placeholder="选择日期"
+                size="small"
+                value-format="yyyy-MM-dd">
+              </el-date-picker>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="车牌号" prop="licenseno">
+              <el-input v-model="formDataListAdd.licenseno" class="inputType" size="small"></el-input>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="被保险人">
+              <el-input v-model="formDataListAdd.userId" class="inputType" size="small"></el-input>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="险种">
+            <el-select v-model="formDataListAdd.riskcode"  placeholder="选择险种" size="small">
+              <el-option v-for="item in riskcodeList" :key="item.dictValue" :label="item.dictTag"
+                :value="item.dictValue"></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="保司机构">
+            <el-cascader ref="partnerCompaniesCascader" @change="partnerCompaniesFun" v-model="formDataListAdd.partnerCompaniesId" size="small" :show-all-levels="false" ize="small"
+            :options="ztreeNodes" :props="optionProps" clearable filterable></el-cascader>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="保险公司" prop="companyId">
+            <el-select v-model="formDataListAdd.companyId"  placeholder="选择保险公司" size="small">
+              <el-option v-for="(item, index) in InsCompanyList" :key="index" :label="item.name"
+                :value="item.id"></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="协议选择">
+            <el-select size="small" v-model="formDataListAdd.agreementId" placeholder="请选择协议类型" style="width: 100%">
+              <el-option v-for="item in agreementTypeoptions" :key="item.dictValue" :label="item.agreementName"
+              :value="item.id"></el-option>
+            </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="交强保单号" prop="policyno">
+              <el-input v-model="formDataListAdd.policyno" class="inputType" size="small"></el-input>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="商业保单号" prop="syPolicyno">
+              <el-input v-model="formDataListAdd.syPolicyno" class="inputType" size="small"></el-input>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="非车保单号" prop="noPolicyno">
+              <el-input v-model="formDataListAdd.noPolicyno" class="inputType" size="small"></el-input>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="交强保费">
+            <el-input v-model="formDataListAdd.jqPremium" class="inputType" size="small"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="商业保费">
+            <el-input v-model="formDataListAdd.syPremium" class="inputType" size="small"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="车船税">
+            <el-input v-model="formDataListAdd.taxamount" class="inputType" size="small"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="非车保费">
+            <el-input v-model="formDataListAdd.noPremium" class="inputType" size="small"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="交强应收比例">
+            <el-input v-model="formDataListAdd.jqReceivableProportion" class="inputType" size="small"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="商业应收比例">
+            <el-input v-model="formDataListAdd.syReceivableProportion" class="inputType" size="small"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="非车应收比例">
+            <el-input v-model="formDataListAdd.noReceivableProportion" class="inputType" size="small"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="应收金额" prop="receivableAmount">
+            <el-input v-model="formDataListAdd.receivableAmount" class="inputType" size="small"></el-input>
+          </el-form-item>
+        </el-col>
+      </el-row> 
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+      <el-button size="small" @click="handleCloseAdd">取消</el-button>
+      <el-button size="small" type="primary" @click="submitAdd('formDataListAdd')">添加</el-button>
+    </span>
+  </el-dialog>
+
   </div>
 </template>
   <script>
@@ -315,6 +438,10 @@ export default {
         },
         click:(row, index) => {return this.balanceFunPro()},
       },
+      {
+        name:'新增',
+        click:(row, index) => {return this.handAdd()},
+      },
       {
         name:'模板下载',
         click:(row, index) => {return this.templateDownload()},
@@ -621,7 +748,44 @@ export default {
       dataValue:'',
       selectionOption:[],
       selectionList:[],
-      dockingPersonOption:[]
+      dockingPersonOption:[],
+      // 新增
+      dialogVisibleAdd: false,
+      formDataListAdd: {},
+      riskcodeList: [],
+      InsCompanyList: [],
+      ztreeNodes: [],
+      optionProps: {
+        //公司下拉列表配置
+        checkStrictly: true,
+        value: "id",
+        label: "name",
+        children: "children",
+      },
+      agreementTypeoptions: [],
+      rulesAdd: {
+        signdate: [
+          { required: true, message: '请输入签单日期', trigger: ['change', 'blur'] },
+        ],
+        licenseno: [
+          { required: true, message: '请输入车牌号', trigger: 'blur' },
+        ],
+        companyId: [
+          { required: true, message: '请选择保险公司', trigger: 'change' },
+        ],
+        policyno: [
+          { required: true, message: '请输入交强保单号', trigger: 'blur' },
+        ],
+        syPolicyno: [
+          { required: true, message: '请输入商业保单号', trigger: 'blur' },
+        ],
+        noPolicyno: [
+          { required: true, message: '请输入非车保单号', trigger: 'blur' },
+        ],
+        receivableAmount: [
+          { required: true, message: '请输入应收金额', trigger: 'blur' },
+        ],
+      },
     };
   },
  
@@ -642,14 +806,82 @@ export default {
         this.formList.forEach(filed => {
         if (filed.prop == "riskcode") {
           res.data.ddList.forEach(e=>e.value=e.dictTag)
+          this.riskcodeList = res.data.ddList
           filed.options = res.data.ddList;
         }
       })
       }
     });
+    this.$api.cost.gainTopList({ type: 1 }).then(res => {
+      if (res.data) {
+        this.InsCompanyList = res.data;
+      }
+    });
+    let params = {
+      classname: "",
+      type: '1',
+    };
+    this.$api.insCompany.findLeftInsTree(params).then((res) => {
+      this.ztreeNodes = res.data;
+    });
+    this.agrmentlist();
+
+
+
   },
   
   methods: {
+    // 新增
+    handAdd() {
+      this.dialogVisibleAdd = true
+    },
+    submitAdd(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          console.log(this.formDataListAdd)
+          this.$api.task.queryPagePtInsert({ 
+            ...this.formDataListAdd, 
+            companyName: this.formDataListAdd.companyId ? this.InsCompanyList.find(val => val.id == this.formDataListAdd.companyId).name : ''
+          })
+          .then(res => {
+            if (res.code == 200) {
+                this.$message({
+                  message: '新增成功' || res.msg,
+                  type: 'success'
+                })
+                this.findPage()
+                this.dialogVisibleAdd = false
+                // this.formDataListAdd = {}
+              }
+              else {
+                this.$message.error(res.msg)
+              }
+          })
+
+        } else {
+          return false;
+        }
+      })
+    },
+    handleCloseAdd() {
+      this.dialogVisibleAdd = false
+    },
+    
+    agrmentlist() {
+      this.$api.task.findPtlAgreementList().then((res) => {
+        this.agreementTypeoptions = res.data
+      });
+    },
+    partnerCompaniesFun(val){
+      if(val && val.length>0){
+        this.formDataListAdd.partnerCompaniesId=val[val.length-1]
+        this.formDataListAdd.partnerCompaniesName=this.$refs.partnerCompaniesCascader.getCheckedNodes()[0].label
+      }
+      else{
+        this.formDataListAdd.partnerCompaniesId=''
+        this.formDataListAdd.partnerCompaniesName=''
+      }
+    },
     getYearData(val){
       this.formData.year=val
     },
@@ -865,6 +1097,7 @@ export default {
           })
     },
     onSubmit(){
+      this.formDataList.createTime = null
       this.$api.task.plyFeeUpdate({...this.formDataList,id:this.formDataId})
           .then(res => {
           if (res.code==200) {