Browse Source

结算需求

lihongxiao 2 years ago
parent
commit
96a06ba77a

+ 2 - 2
src/components/TemplateTable/index.vue

@@ -31,8 +31,8 @@
           </template>
           <template v-else-if="f.type === 'datePicker'">
             <!-- 日期区间 -->
-            <el-date-picker type="daterange" size="small" v-model="searchDataClone[f.prop]" align="right" unlink-panels
-              range-separator="" start-placeholder="开始时间" end-placeholder="结束时间" value-format="yyyy-MM-dd HH:mm:ss"
+            <el-date-picker style="width: 215px;" type="daterange" size="small" v-model="searchDataClone[f.prop]" align="right" unlink-panels
+              range-separator="-" start-placeholder="开始时间" end-placeholder="结束时间" value-format="yyyy-MM-dd HH:mm:ss"
               :default-time="['00:00:00', '23:59:59']" :clearable="true"></el-date-picker>
           </template>
           <template v-else-if="f.type === 'date'">

+ 29 - 7
src/http/moudules/task.js

@@ -1058,13 +1058,6 @@ export const NonSettldetail = (data) => {
     data
   })
 }
-export const plyFeeInsert = (data) => {
-  return axios({
-    url: "/fnc/plyFee/insert",
-    method: "post",
-    data
-  })
-}
 export const plyFeeDelete = (data) => {
   return axios({
     url: "/fnc/plyFee/delete",
@@ -1299,3 +1292,32 @@ export const yaidlnvoicing = (data) => {
     data
   })
 }
+export const singleInvoic = (data) => {
+  return axios({
+    url: "/fnc/plyFee/singleInvoic",
+    method: "put",
+    data
+  })
+}
+
+export const fncplyFeeQuery = (data) => {
+  return axios({
+    url: "/fnc/plyFee/query",
+    method: "post",
+    data
+  })
+}
+export const fncplyFeeInsert = (data) => {
+  return axios({
+    url: "/fnc/plyFee/insert",
+    method: "post",
+    data
+  })
+}
+export const queryPageBatchUpdate = (data) => {
+  return axios({
+    url: "/fnc/plyFee/batchUpdate",
+    method: "put",
+    data
+  })
+}

+ 199 - 12
src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/DocumentaryFeesDetail.vue

@@ -2,7 +2,14 @@
   <!--布局容器-->
   <div class="container" style="width: 99%; margin-top: 0px">
     <templateTable ref="templateTable" :formList="formList"  :btnGroup="btnGroup" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
-      @findPage="findPage" @getList="findPage" @handleSearchList="handleSearchList" :pagination="pageData">
+      @findPage="findPage" @getList="findPage" @selectionChange="selectionChange" @handleSearchList="handleSearchList" :pagination="pageData">
+    <template slot="批量修改">
+      <el-upload style="display: inline-block;" action="#" :show-file-list="false" class="upload-demo"  :limit="1" :auto-upload="false"
+        :on-change="drivingupload"  ref="upload3"  accept=".png, .jpg, .jpeg" >
+        <el-button size="small" type="primary" :disabled="selectionList.length==0">批量修改</el-button>
+      </el-upload>
+    </template>
+    
     </templateTable>
     <el-dialog
     title="编辑"
@@ -33,6 +40,64 @@
     <el-button   size="small" type="primary" @click="onSubmit">保存</el-button>
   </span>
 </el-dialog>
+<el-dialog
+    title="新增"
+    :visible.sync="dialogVisibleAdd"
+    width="55%"
+    :before-close="handleCloseadd">
+    <el-form ref="form" :model="formDataAdd" label-width="130px">
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="手续费比例">
+              <el-input v-model="formDataAdd.commissionFeevalue" size="small"></el-input>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="保险公司">
+            <el-select size="small" clearable v-model="formDataAdd.companyId"  filterable >
+              <el-option v-for="(s, i) in InsCompanyList" :key="i" :label="s.name" :value="s.id"></el-option>
+            </el-select>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="合作公司">
+            <el-select size="small" clearable v-model="formDataAdd.partnerCompaniesId"  filterable >
+              <el-option v-for="(s, i) in InsCompanyList" :key="i" :label="s.name" :value="s.id"></el-option>
+            </el-select>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="协议类型" prop="agreementType">
+            <el-select size="small"  v-model="formDataAdd.agreementType" placeholder="请选择协议类型"
+              style="width: 100%" >
+              <el-option v-for="item in agreementTypeoptions" :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-input v-model="formDataAdd.remarks" size="small"></el-input>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="签单日期">
+            <el-date-picker
+               size="small"
+                v-model="formDataAdd.signdate"
+                type="date"
+                placeholder="选择日期"
+                value-format="yyyy-MM-dd">
+              </el-date-picker>
+            </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+    <el-button size="small" @click="dialogVisibleAdd = false">取消</el-button>
+    <el-button   size="small" type="primary" @click="onSubmitAdd">保存</el-button>
+  </span>
+  </el-dialog>
   </div>
 </template>
 <script>
@@ -52,7 +117,12 @@ export default {
   },
   data() {
     return {
+      dialogVisibleAdd:false,
+      agreementTypeoptions: [], //协议类型
+      formDataAdd:{},
+      InsCompanyList: [],
       year: '',
+      selectionList:[],
       dialogVisible:false,
       formDataId:'',
       formDataList:{},
@@ -95,9 +165,18 @@ export default {
           prop: "syPolicyno",
           type: "input",
         }, {
-          label: "非车保单号:",
-          prop: "noPolicyno",
-          type: "input",
+          label: "结算状态",
+          prop: "settleOtherStatus",
+          type: "select",
+          options:[
+            {
+              label:'已结算',
+              value:'1'
+            },{
+              label:'未结算',
+              value:'0'
+            },
+          ],
         },
         {
           label: "结算日期",
@@ -113,12 +192,29 @@ export default {
           label: "签单日期",
           prop: "signDate",
           type: "datePicker",
+        },{
+          label: "交强起保日期",
+          prop: "jqDate",
+          type: "datePicker",
+        },{
+          label: "商业起保日期",
+          prop: "syDate",
+          type: "datePicker",
         },
     ],
       btnGroup:[
+        {
+        name:'新增',
+        click:(row, index) => {return this.newAdd()},
+      },
       {
         name:'导出',
         click:(row, index) => {return this.handExport()},
+      },
+      {
+        name:'批量修改',
+        slot:true,
+        // click:(row, index) => {return this.handBatch()},
       }
     ],
       tableData: [],
@@ -225,6 +321,7 @@ export default {
         ],
         isPaginationShow:true,
         loading: true,
+        isCheckBox:true,
         optBtns:[
           {
             type:'primary',
@@ -237,8 +334,78 @@ export default {
   },
   created() {
     this.findPage();
+    this.$api.cost.gainTopList({ type: 1 }).then(res => {
+      if (res.data) {
+        this.InsCompanyList = res.data;
+      }
+    });
+    this.$api.insCompany.dicType('agreementType').then((res) => {
+        if (res.code == 200) {
+          this.agreementTypeoptions = res.data.ddList;
+        }
+      });
   },
   methods: {
+    newAdd(){
+      this.dialogVisibleAdd=true
+    },
+    handleCloseadd(){
+      this.dialogVisibleAdd=false
+    },
+    onSubmitAdd(){
+      let data={
+        isNotCar:0,
+        isNotDocumentary:1,
+        companyName:this.InsCompanyList.find(val=>val.id==this.formDataAdd.companyId).name,
+        partnerCompaniesName:this.InsCompanyList.find(val=>val.id==this.formDataAdd.partnerCompaniesId).name,
+      }
+      this.$api.task.fncplyFeeInsert({...this.formDataAdd,...data})
+          .then(res => {
+            if (res.code==200) {
+              this.$message({
+                    message: '新增成功' || res.msg,
+                    type: 'success'
+                })
+                this.findPage()
+                this.dialogVisibleAdd=false
+            }
+            else{
+              this.$message.error(res.msg)
+            }
+          });
+    },
+    selectionChange(val){
+      this.selectionList=val
+    },
+    drivingupload(file, fileList){
+      this.fileList=[]
+      const params = new FormData(); // 声明formData数据类型
+      params.append("multipartFile", file.raw);
+      params.append("type", "image");
+      this.$api.letter.uploadFile(params).then(res => {
+        if (res.code == "200") {
+            this.$api.task.queryPageBatchUpdate({contractFileId:res.data.id,selectIds:this.selectionList.map(val=>val.id)})
+            .then(res => {
+            if (res.code==200) {
+              this.$message({
+                    message:  res.msg || '保存成功',
+                    type: 'success'
+                })
+                this.findPage()
+                this.selectionList=[]
+                this.dialogVisible=false
+            }
+            else{
+              this.$message.error(res.msg)
+            }
+          });
+        }
+        else{
+          this.$message.error(res.msg)
+        }
+      });
+    },
+    // handBatch
     // 查询
     handleSearchList(data) {
       this.findPage(data);
@@ -252,8 +419,7 @@ export default {
                     type: 'success'
                 })
                 this.findPage()
-      this.dialogVisible=false
-
+                this.dialogVisible=false
             }
             else{
               this.$message.error(res.msg)
@@ -279,18 +445,38 @@ export default {
     //列表数据
     findPage(data) {
       let signDateStart=''
-        let signDateEnd=''
-      if(data&& data.signDate){
-          signDateStart=data.signDate[0]
-          signDateEnd=data.signDate[1]
+      let signDateEnd=''
+      let jqStartDate=''
+      let jqEndDate=''
+      let syStartDate=''
+      let syEndDate=''
+      if(data && data.signDate && data.signDate.length>0){
+        signDateStart=data.signDate[0]
+        signDateEnd=data.signDate[1]
       }
       else{
         signDateStart=''
         signDateEnd=''
-    }
+      }
+      if(data && data.jqDate && data.jqDate.length>0){
+        jqStartDate=data.jqDate[0]
+        jqEndDate=data.jqDate[1]
+      }
+      else{
+        jqStartDate=''
+        jqEndDate=''
+      }
+      if(data && data.syDate && data.syDate.length>0){
+        syStartDate=data.syDate[0]
+        syEndDate=data.syDate[1]
+      }
+      else{
+        syStartDate=''
+        syEndDate=''
+      }
       this.tableConfig.loading = true;
       this.$api.task
-        .plyFeequery({...this.pageData,...data,signDateStart,signDateEnd})
+        .plyFeequery({...this.pageData,...data,signDateStart,signDateEnd,jqStartDate,jqEndDate,syStartDate,syEndDate})
         .then(res => {
           if (res.code==200) {
             this.tableData = res.data.content?res.data.content:[]
@@ -301,6 +487,7 @@ export default {
           }
           else{
             this.$message.error(res.msg)
+            this.tableConfig.loading = false;
           }
         });
     },

+ 114 - 2
src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/DocumentaryFeesSettled.vue

@@ -1,7 +1,7 @@
 <template>
   <!--布局容器-->
-  <div class="invoiceAnd" style="width: 99%; margin-top: 0px">
-    <templateTable :formList="formList" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
+  <div style="width: 99%; margin-top: 0px">
+    <templateTable class="invoiceAnd"  :formList="formList" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
       @findPage="findPage" @handleSearchList="handleSearchList" :pagination="pageData">
       <template slot="data">
         <yearMonthYay ref="yearMonthYay" @getYearData="getYearData" @getMonthData="getMonthData" @getDayData="getDayData">
@@ -16,6 +16,14 @@
         <el-button size="small" @click="dialogVisiblerecord = false">取消</el-button>
       </span>
     </el-dialog>
+    <el-dialog title="明细" :visible.sync="dialogVisiblerecordDetail" width="50%" :before-close="handleCloserecorddetail">
+            <templateTable ref="templateTable1"   :pagination="pageDatarecorddetail" @getList="getListrecorddetail"
+                :tableConfig="tableConfigDetailrecorddetail" :data="recordDetailData" @findPage="findPageDetailrecorddatail">
+            </templateTable>
+            <span slot="footer" class="dialog-footer">
+                <el-button size="small" @click="dialogVisiblerecordDetail = false">取消</el-button>
+            </span>
+        </el-dialog>
   </div>
 </template>
 <script>
@@ -35,7 +43,70 @@ export default {
   },
   data() {
     return {
+      recordDetailData:[],
+      pageDatarecorddetail: {
+                pageNum: 1,
+                pageSize: 20,
+                totalSize:0
+            },
+      dialogVisiblerecordDetail: false,
       dialogVisiblerecord: false,
+      recorddetailids:'',
+      tableConfigDetailrecorddetail: {
+                columns: [
+                    {
+                        prop: "syPolicyno",
+                        label: "商业保单号",
+                        type: "text"
+                    },
+                    {
+                        prop: "jqPolicyno",
+                        label: "交强保单号",
+                        type: "text"
+                    },
+                    {
+                        prop: "licenseno",
+                        label: "车牌号",
+                        type: "text"
+                    },
+                    {
+                        prop: "insuredName",
+                        label: "被保人",
+                        type: "text"
+                    },
+                    {
+                        prop: "jqPremium",
+                        label: "交强保费",
+                        type: "text"
+                    },
+                    {
+                        prop: "syPremium",
+                        label: "商业保费",
+                        type: "text"
+                    },
+                    {
+                        prop: "jqOtherCostsProportion",
+                        label: "交强跟单比例",
+                        type: "text"
+                    },
+                    {
+                        prop: "jqOtherCostsPremium",
+                        label: "交强跟单金额",
+                        type: "text"
+                    }, {
+                        prop: "syOtherCostsProportion",
+                        label: "商业跟单比例",
+                        type: "text"
+                    },
+                    {
+                        prop: "syOtherCostsPremium",
+                        label: "商业跟单金额",
+                        type: "text"
+                    },
+                ],
+                loading: true,
+                isPaginationShow:true
+            },
       formTableDatarecord: [],
       tableConfigDetailrecord: {
         columns: [
@@ -105,6 +176,16 @@ export default {
             label: "已开票已结算",
             type: "text"
           },
+          {
+            prop: "expendAmount",
+            label: "实收金额 ",
+            type: "text"
+          },
+          {
+            prop: "taxesFees",
+            label: "税费",
+            type: "text"
+          },
           {
             prop: "invoicCommissionFeevalue",
             label: "已开票未结算",
@@ -130,6 +211,11 @@ export default {
             type: 'primary',
             label: '记录',
             click: (row, index) => { return this.haldRecord(row) },
+          },
+          {
+              type: 'primary',
+              label: '明细',
+              click: (row, index) => { return this.haldRecordDetail(row) },
           }
         ]
       },
@@ -148,6 +234,32 @@ export default {
     this.findPage();
   },
   methods: {
+    handleCloserecorddetail() {
+            this.dialogVisiblerecordDetail = false
+        },
+    haldRecordDetail(row) {
+            this.dialogVisiblerecordDetail = true
+            this.getListrecorddetail()
+            this.recorddetailids = row.ids
+        },
+        getListrecorddetail(data) {
+            this.findPageDetailrecorddatail(data)
+        },
+        findPageDetailrecorddatail(data) {
+            this.tableConfigDetailrecorddetail.loading = true;
+            this.$api.task
+                .fncplyFeeQuery({ ...data,ids:this.recorddetailids })
+                .then(res => {
+                    if (res.code == 200) {
+                        this.tableConfigDetailrecorddetail.loading = false;
+                        this.recordDetailData = res.data.content ? res.data.content : []
+                    }
+                    else {
+                        this.tableConfigDetailrecorddetail.loading = false;
+                        this.$message.error(res.msg)
+                    }
+                });
+        },
     haldRecord(row) {
       this.findPageDetailrecord(row)
       this.dialogVisiblerecord = true

+ 191 - 13
src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/HandlingFees.vue

@@ -14,6 +14,17 @@
       :pagination="pageData"
       @getList="getList"
     >
+    <template slot="内部机构">
+      <el-select v-model="labelData" placeholder="请选择" :popper-append-to-body="false" style="width: 100%" size="small">
+            <el-option :value="selectTree" class="deptOption" disabled>
+          <el-tree :data="treedata" :props="defaultProps" ref="tree" :highlight-current="true" @node-click="handleNodeClick" default-expand-all></el-tree>
+        </el-option>
+      </el-select>
+  </template>
+  <template slot="保司机构">
+      <el-cascader  v-model="pageData.partnerCompaniesId" size="small" :show-all-levels="false" ize="small" 
+          :options="ztreeNodes" :props="optionProps"  clearable filterable></el-cascader>
+  </template>
     <template slot="dockingPerson">
       <el-select v-model="pageData.dockingPerson" filterable clearable  placeholder="请选择" size="small">
       <el-option
@@ -145,6 +156,64 @@
     <el-button size="small" type="primary" @click="handleSumbit()">确 定</el-button>
   </span>
 </el-dialog>
+<el-dialog
+    title="新增"
+    :visible.sync="dialogVisibleAdd"
+    width="55%"
+    :before-close="handleCloseadd">
+    <el-form ref="form" :model="formDataAdd" label-width="130px">
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="手续费比例">
+              <el-input v-model="formDataAdd.commissionFeevalue" size="small"></el-input>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="保险公司">
+            <el-select size="small" clearable v-model="formDataAdd.companyId"  filterable >
+              <el-option v-for="(s, i) in InsCompanyList" :key="i" :label="s.name" :value="s.id"></el-option>
+            </el-select>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="合作公司">
+            <el-select size="small" clearable v-model="formDataAdd.partnerCompaniesId"  filterable >
+              <el-option v-for="(s, i) in InsCompanyList" :key="i" :label="s.name" :value="s.id"></el-option>
+            </el-select>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="协议类型" prop="agreementType">
+            <el-select size="small"  v-model="formDataAdd.agreementType" placeholder="请选择协议类型"
+              style="width: 100%" >
+              <el-option v-for="item in agreementTypeoptions" :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-input v-model="formDataAdd.remarks" size="small"></el-input>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="签单日期">
+            <el-date-picker
+               size="small"
+                v-model="formDataAdd.signdate"
+                type="date"
+                placeholder="选择日期"
+                value-format="yyyy-MM-dd">
+              </el-date-picker>
+            </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+    <el-button size="small" @click="dialogVisibleAdd = false">取消</el-button>
+    <el-button   size="small" type="primary" @click="onSubmitAdd">保存</el-button>
+  </span>
+  </el-dialog>
   </div>
 </template>
   <script>
@@ -164,6 +233,26 @@ export default {
   },
   data() {
     return {
+      ztreeNodes:[],
+      optionProps: {
+        //公司下拉列表配置
+        checkStrictly: true,
+        value: "id",
+        label: "name",
+        children: "children",
+      },
+      defaultProps: {
+        //自定义参数
+        children: "children",
+        label: "name",
+      },
+      labelData:'',
+      selectTree: [],
+      treedata:[],
+      agreementTypeoptions: [], //协议类型
+      formDataAdd:{},
+      InsCompanyList: [],
+      dialogVisibleAdd: false,
       dialogVisibleBatch:false,
       InvoicingData:{},
       options:[{
@@ -181,6 +270,16 @@ export default {
       moneyList:{},
       searchData:{},
       formList:[
+        {
+          label: "内部机构",
+          name: "内部机构",
+          type: "slot",
+        },
+        {
+          label: "保司机构",
+          name: "保司机构",
+          type: "slot",
+        },
        {
           label: "车牌号",
           prop: "licenseno",
@@ -254,7 +353,16 @@ export default {
           label: "签单日期",
           prop: "signDate",
           type: "datePicker",
+        },{
+          label: "交强起保日期",
+          prop: "jqDate",
+          type: "datePicker",
+        },{
+          label: "商业起保日期",
+          prop: "syDate",
+          type: "datePicker",
         },
+        
     ],
     tableConfig:{
         columns: [
@@ -400,6 +508,10 @@ export default {
         ]
     },
     btnGroup:[
+      {
+        name:'新增',
+        click:(row, index) => {return this.newAdd()},
+      },
       {
         name:'批量开票',
         click:(row, index) => {return this.balanceFunPro()},
@@ -439,7 +551,17 @@ export default {
     };
   },
   created(){
+    this.$api.dept.findDeptTree("9", "").then((res) => {
+      this.treedata = res.data;
+    });
     this.findPage();
+    let params = {
+        classname: "",
+        type: '1',
+      };
+    this.$api.insCompany.findLeftInsTree(params).then((res) => {
+        this.ztreeNodes = res.data;
+      });
     this.$api.task
         .getDockingPersonList()
         .then(res => {
@@ -450,8 +572,53 @@ export default {
             this.$message.error(res.msg)
           }
         });
+        this.$api.cost.gainTopList({ type: 1 }).then(res => {
+      if (res.data) {
+        this.InsCompanyList = res.data;
+      }
+    });
+    this.$api.insCompany.dicType('agreementType').then((res) => {
+        if (res.code == 200) {
+          this.agreementTypeoptions = res.data.ddList;
+        }
+      });
   },
   methods: {
+    prodhandleChange(value) {
+      this.pageData.partnerCompaniesId= value[value.length - 1];
+    },
+    handleNodeClick(data, self, child) {
+      this.labelData = data.name;//展示部分
+      this.pageData.deptId= data.id
+    },
+    newAdd(){
+      this.dialogVisibleAdd=true
+    },
+    handleCloseadd(){
+      this.dialogVisibleAdd=false
+    },
+    onSubmitAdd(){
+      let data={
+        isNotCar:0,
+        isNotDocumentary:0,
+        companyName:this.InsCompanyList.find(val=>val.id==this.formDataAdd.companyId).name,
+        partnerCompaniesName:this.InsCompanyList.find(val=>val.id==this.formDataAdd.partnerCompaniesId).name,
+      }
+      this.$api.task.fncplyFeeInsert({...this.formDataAdd,...data})
+          .then(res => {
+            if (res.code==200) {
+              this.$message({
+                    message: '新增成功' || res.msg,
+                    type: 'success'
+                })
+                this.findPage()
+                this.dialogVisibleAdd=false
+            }
+            else{
+              this.$message.error(res.msg)
+            }
+          });
+    },
     drivingupload(file, fileList){
       this.fileList=[]
       const params = new FormData(); // 声明formData数据类型
@@ -502,6 +669,10 @@ export default {
     handleSearchList(data) {
       let signDateStart=''
       let signDateEnd=''
+      let jqStartDate=''
+      let jqEndDate=''
+      let syStartDate=''
+      let syEndDate=''
       if(data && data.signDate && data.signDate.length>0){
         signDateStart=data.signDate[0]
         signDateEnd=data.signDate[1]
@@ -510,8 +681,24 @@ export default {
         signDateStart=''
         signDateEnd=''
       }
+      if(data && data.jqDate && data.jqDate.length>0){
+        jqStartDate=data.jqDate[0]
+        jqEndDate=data.jqDate[1]
+      }
+      else{
+        jqStartDate=''
+        jqEndDate=''
+      }
+      if(data && data.syDate && data.syDate.length>0){
+        syStartDate=data.syDate[0]
+        syEndDate=data.syDate[1]
+      }
+      else{
+        syStartDate=''
+        syEndDate=''
+      }
       this.$api.task
-          .bxTotalAmount({...this.pageData,...data,signDateStart,signDateEnd})
+          .bxTotalAmount({...this.pageData,...data,signDateStart,signDateEnd,jqStartDate,jqEndDate,syStartDate,syEndDate})
           .then(res => {
             if (res.code==200) {
                 this.moneyList=res.data?res.data:[]
@@ -520,23 +707,14 @@ export default {
               this.$message.error(res.msg)
             }
           });
-      this.findPage(data);
+      this.findPage({...data,signDateStart,signDateEnd,jqStartDate,jqEndDate,syStartDate,syEndDate});
+
     },
     //列表数据
     findPage(data) {
-      let signDateStart=''
-      let signDateEnd=''
-      if(data && data.signDate && data.signDate.length>0){
-        signDateStart=data.signDate[0]
-        signDateEnd=data.signDate[1]
-      }
-      else{
-        signDateStart=''
-        signDateEnd=''
-      }
       this.tableConfig.loading = true;
       this.$api.task
-        .plyFeeQuery({...this.pageData,...data,signDateStart,signDateEnd})
+        .plyFeeQuery({...this.pageData,...data})
         .then(res => {
           if (res.code==200) {
             this.tableData = res.data.content?res.data.content:[]

+ 135 - 5
src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/InvoicedAndSettled.vue

@@ -1,7 +1,7 @@
 <template>
     <!--布局容器-->
-    <div class="invoiceAnd" style="width: 99%; margin-top: 0px">
-        <templateTable :formList="formList"  :tableConfig="tableConfig" :data="tableData"
+    <div  style="width: 99%; margin-top: 0px">
+        <templateTable class="invoiceAnd" :formList="formList"  :tableConfig="tableConfig" :data="tableData"
             @findPage="findPage" @handleSearchList="handleSearchList" :pagination="pageData" @getList="getList">
             <template slot="data">
                 <yearMonthYay ref="yearMonthYay" @getYearData="getYearData" @getMonthData="getMonthData"
@@ -19,11 +19,25 @@
         <el-dialog title="记录" :visible.sync="dialogVisiblerecord" width="30%" :before-close="handleCloserecord">
             <templateTable ref="templateTable1"   :pagination="pageDatarecord" @getList="getListrecord"
                 :tableConfig="tableConfigDetailrecord" :data="formTableDatarecord" @findPage="findPageDetailrecord">
+                <template slot="imageUrl" slot-scope="scope">
+                    <img :src='scope.row.imageUrl' class="imageclass"  @click.stop="showViewer=true;ProViewImg=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="dialogVisiblerecordDetail" width="50%" :before-close="handleCloserecorddetail">
+            <templateTable ref="templateTable1"   :pagination="pageDatarecorddetail" @getList="getListrecorddetail"
+                :tableConfig="tableConfigDetailrecorddetail" :data="recordDetailData" @findPage="findPageDetailrecorddatail">
+            </templateTable>
+               
+            <span slot="footer" class="dialog-footer">
+                <el-button size="small" @click="dialogVisiblerecordDetail = false">取消</el-button>
+            </span>
+        </el-dialog>
+        
+        <el-image-viewer v-if="showViewer"  :on-close="closeViewer"  :z-index="9999" :url-list="[ProViewImg]" />
     </div>
 </template>
 <script>
@@ -34,7 +48,10 @@ import yearMonthYay from '../../PlatformSettlement/yearMonthYay.vue'
 
 export default {
     name: "baosi",
-    components: { KtCommonTable, templateTable, yearMonthYay },
+    components: { KtCommonTable, templateTable, yearMonthYay,
+        "el-image-viewer": () =>
+      import("element-ui/packages/image/src/image-viewer")
+     },
     created() {
     },
     computed: {
@@ -44,6 +61,8 @@ export default {
     },
     data() {
         return {
+            showViewer:false,
+            ProViewImg:[],
             formList: [
                 {
                     label: "保险公司",
@@ -73,7 +92,66 @@ export default {
                         label: "进帐金额",
                         type: "text"
                     },
-
+                    {
+                        name: "imageUrl",
+                        label: "凭证",
+                        type: "slot"
+                    },
+                ],
+                loading: true,
+                isPaginationShow:true
+            },
+            tableConfigDetailrecorddetail: {
+                columns: [
+                    {
+                        prop: "syPolicyno",
+                        label: "商业保单号",
+                        type: "text"
+                    },
+                    {
+                        prop: "jqPolicyno",
+                        label: "交强保单号",
+                        type: "text"
+                    },
+                    {
+                        prop: "licenseno",
+                        label: "车牌号",
+                        type: "text"
+                    },
+                    {
+                        prop: "insuredName",
+                        label: "被保人",
+                        type: "text"
+                    },
+                    {
+                        prop: "jqPremium",
+                        label: "交强保费",
+                        type: "text"
+                    },
+                    {
+                        prop: "syPremium",
+                        label: "商业保费",
+                        type: "text"
+                    },
+                    {
+                        prop: "jqSuperviseCostsProportion",
+                        label: "交强手续费比例",
+                        type: "text"
+                    },
+                    {
+                        prop: "jqSuperviseCostsPremiums",
+                        label: "交强手续费金额",
+                        type: "text"
+                    }, {
+                        prop: "sySuperviseCostsProportion",
+                        label: "商业手续费比例",
+                        type: "text"
+                    },
+                    {
+                        prop: "sySuperviseCostsPremiums",
+                        label: "商业手续费金额",
+                        type: "text"
+                    },
                 ],
                 loading: true,
                 isPaginationShow:true
@@ -156,6 +234,11 @@ export default {
                 pageSize: 20,
                 totalSize:0
             },
+            pageDatarecorddetail: {
+                pageNum: 1,
+                pageSize: 20,
+                totalSize:0
+            },
             formList1: [
                 {
                     label: "结算状态",
@@ -198,15 +281,23 @@ export default {
                         type: 'primary',
                         label: '记录',
                         click: (row, index) => { return this.haldRecord(row) },
+                    },
+                    {
+                        type: 'primary',
+                        label: '明细',
+                        click: (row, index) => { return this.haldRecordDetail(row) },
                     }
                 ]
             },
             dialogVisible: false,
             dialogVisiblerecord: false,
+            dialogVisiblerecordDetail:false,
             formData: {},
             formDetail: {},
             formTableData: [],
-            formTableDatarecord:[]
+            formTableDatarecord:[],
+            recordDetailData:[],
+            recorddetailids:''
 
         };
     },
@@ -214,6 +305,9 @@ export default {
         this.findPage();
     },
     methods: {
+        closeViewer() {
+      this.showViewer = false;
+    },
         getYearData(val) {
             this.formData.year = val
         },
@@ -266,6 +360,9 @@ export default {
                 })
                 .then(res => {
                     if (res.code == 200) {
+                        res.data.content.forEach(ele => {
+                            ele.imageUrl= process.env.BASE_URL+ele.imageUrl
+                        });
                         this.formTableDatarecord = res.data.content;
                         this.pageDatarecord={
                             pageNum:res.data.pageNum,
@@ -289,10 +386,37 @@ export default {
         handleCloserecord() {
             this.dialogVisiblerecord = false
         },
+        handleCloserecorddetail() {
+            this.dialogVisiblerecordDetail = false
+        },
         haldRecord(row) {
             this.findPageDetailrecord()
             this.dialogVisiblerecord = true
         },
+        haldRecordDetail(row) {
+            this.dialogVisiblerecordDetail = true
+            this.getListrecorddetail()
+            this.recorddetailids = row.ids
+
+        },
+        getListrecorddetail(data) {
+            this.findPageDetailrecorddatail(data)
+        },
+        findPageDetailrecorddatail(data) {
+            this.tableConfigDetailrecorddetail.loading = true;
+            this.$api.task
+                .fncplyFeeQuery({ ...data,ids:this.recorddetailids })
+                .then(res => {
+                    if (res.code == 200) {
+                        this.tableConfigDetailrecorddetail.loading = false;
+                        this.recordDetailData = res.data.content ? res.data.content : []
+                    }
+                    else {
+                        this.tableConfigDetailrecorddetail.loading = false;
+                        this.$message.error(res.msg)
+                    }
+                });
+        },
         // 查询
         handleSearchList(data) {
             this.findPage(data);
@@ -358,5 +482,11 @@ export default {
     overflow-y: auto !important;
     height: auto !important;
 }
+
+.imageclass {
+  width: 200px;
+  height: 100px;
+  text-align: center;
+}
 </style>
   

+ 40 - 28
src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/InvoicingUnsettled.vue

@@ -1,6 +1,6 @@
 <template>
     <!--布局容器-->
-    <div class="container" style="width: 99%; margin-top: 0px">
+    <div class="InvoicedAndSettled" style="width: 99%; margin-top: 0px">
         <templateTable :formList="formList" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
             @findPage="findPage" @handleSearchList="handleSearchList" :pagination="pageData" @getList="getList">
             <template slot="data">
@@ -24,11 +24,11 @@
       :visible.sync="dialogVisiblebalance"
       width="20%"
       :before-close="handleClosebalance">
-      <el-form ref="form" :model="form" label-width="80px">
-        <el-form-item label="进账金额">
+      <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-form-item label="进账日期">
           <el-date-picker
             v-model="form.settlementTime"
             type="date"
@@ -36,6 +36,12 @@
             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>
@@ -61,6 +67,7 @@ export default {
     },
     data() {
         return {
+      fileList:[],
             dialogVisiblebalance:false,
             form:{},
             formTableData:[],
@@ -158,7 +165,9 @@ export default {
                 ],
                 loading: true,
                 isPaginationShow: true,
+                showSummary: true,
                 isShowIndex: true,
+                tableHeight: 'auto',
                 optBtns: [
                     {
                         type: 'primary',
@@ -180,13 +189,31 @@ export default {
                 handlingFeesStatus:'0'
             },
             formData: {},
-            formDetail:{}
+            formDetail:{},
+            batchData:{}
         };
     },
     created() {
         this.findPage();
     },
     methods: {
+      drivingupload(file, fileList){
+      this.fileList=[]
+      const params = new FormData(); // 声明formData数据类型
+      params.append("multipartFile", file.raw);
+      params.append("type", "image");
+      // params.append("isNotCar", "0");
+      this.$api.letter.uploadFile(params).then(res => {
+        if (res.code == "200") {
+          this.batchData =res.data
+          this.fileList = fileList
+        }
+        else{
+          this.fileList=[]
+          this.$message.error(res.msg)
+        }
+      });
+    },
         getYearData(val){
       this.formData.year=val
     },
@@ -269,6 +296,7 @@ export default {
           companyId:this.formDetail.companyId,
           isNotCar:'0',
           handlingFeesStatus:'1',
+          settlementImageId:this.batchData.id,
           ...this.form})
         .then(res => {
           if (res.code==200) {
@@ -306,29 +334,8 @@ export default {
         // 结算
         balanceFun(row) {
             this.openBalanceDetail=row
+            this.fileList=[]
             this.dialogVisiblebalance=true
-            // this.$api.task
-            //     .batchBxBalance({
-            //         ...row,
-            //         otherFeevalue:this.formDetail.otherFeevalue,
-            //         partnerCompaniesId:this.formDetail.partnerCompaniesId,
-            //         companyId:this.formDetail.companyId,
-            //         isNotCar:'0',
-            //         handlingFeesStatus:'1',
-            //         })
-            //     .then(res => {
-            //         if (res.code==200) {
-            //             this.haldDetail(this.formDetail)
-            //             this.dialogVisible=false
-            //             this.$message({
-            //                 message: res.msg ||'操作成功',
-            //                 type: 'success'
-            //             })
-            //         }
-            //         else{
-            //             this.$message.error(res.msg)
-            //         }
-            //     });
         },
         tablePageChange(val) {
             this.pageData.pageSize = val;
@@ -343,5 +350,10 @@ export default {
 };
 </script>
   
-<style scoped></style>
+<style scoped>
+.InvoicedAndSettled>>>.el-table__body-wrapper {
+    overflow-y: auto !important;
+    height: auto !important;
+}
+</style>
   

+ 162 - 189
src/views/FinancialManagement/CarInsurance/CompanySettlement/CarInsurance/Notinvoiced.vue

@@ -4,7 +4,8 @@
     <templateTable :formList="formList" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
       @findPage="findPage" @handleSearchList="handleSearchList" :pagination="pageData">
       <template slot="data">
-          <yearMonthYay ref="yearMonthYay" @getYearData="getYearData"  @getMonthData="getMonthData"  @getDayData="getDayData"></yearMonthYay>
+        <yearMonthYay ref="yearMonthYay" @getYearData="getYearData" @getMonthData="getMonthData" @getDayData="getDayData">
+        </yearMonthYay>
       </template>
     </templateTable>
     <el-dialog title="开票" :visible.sync="dialogVisible" width="40%" @close="closdialogVisible">
@@ -13,16 +14,12 @@
           <el-col :span="11">
             <el-form-item label="开票方式" prop="invoicingMethod">
               <el-select v-model="InvoicingData.invoicingMethod" placeholder="请选择">
-                <el-option
-                  v-for="item in options"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value">
+                <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
                 </el-option>
               </el-select>
             </el-form-item>
           </el-col>
-          <el-col :span="10" v-if="InvoicingData.invoicingMethod=='1'">
+          <el-col :span="10" v-if="InvoicingData.invoicingMethod == '1'">
             <el-form-item label="开票号" prop="contractId">
               <el-input v-model="InvoicingData.contractId"></el-input>
             </el-form-item>
@@ -39,97 +36,55 @@
           </el-col> -->
         </el-row>
       </el-form>
-      <el-table
-            show-summary
-            :data="multipleSelection"
-            border
-            style="width: 100%">
-          <el-table-column
-              prop="monthNumber"
-              label="月份">
-            </el-table-column>
-            <el-table-column
-              prop="allTotalOtherFeevalue"
-              label="总金额">
-            </el-table-column>
-            <el-table-column
-              prop="invoicCommissionFeevalue"
-              label="已开票">
-            </el-table-column>
-            <el-table-column
-              prop="noInvoicCommissionFeevalue"
-              label="未开票">
-            </el-table-column>
-            <el-table-column
-              prop="settlementAmount"
-              label="开票金额">
-              <template slot-scope="scope">
-                <el-input v-model="scope.row.settlementAmount"></el-input>
-              </template>
-            </el-table-column>
-        </el-table>
+      <el-table show-summary :data="multipleSelection" border style="width: 100%">
+        <el-table-column prop="monthNumber" label="月份">
+        </el-table-column>
+        <el-table-column prop="allTotalOtherFeevalue" label="总金额">
+        </el-table-column>
+        <el-table-column prop="invoicCommissionFeevalue" label="已开票">
+        </el-table-column>
+        <el-table-column prop="noInvoicCommissionFeevalue" label="未开票">
+        </el-table-column>
+        <el-table-column prop="settlementAmount" label="开票金额">
+          <template slot-scope="scope">
+            <el-input v-model="scope.row.settlementAmount"></el-input>
+          </template>
+        </el-table-column>
+      </el-table>
       <span slot="footer" class="dialog-footer">
-        <el-button size="small" @click="dialogVisible = false;multipleSelection=[]">取 消</el-button>
+        <el-button size="small" @click="dialogVisible = false; multipleSelection = []">取 消</el-button>
         <el-button size="small" type="primary" @click="submit('InvoicingData')">确 定</el-button>
       </span>
     </el-dialog>
     <el-dialog title="开票" :visible.sync="myDialogVisible" width="40%" @close="myClosdialogVisible">
-        年度:  <el-date-picker
-            size="small"
-            v-model="yeartsStart"
-            :picker-options="startDatePicker"
-            value-format="yyyy"
-            type="year"
-            style="width:150px"
-            placeholder="开始年份"
-          >
-          </el-date-picker>
-          ~
-          <el-date-picker
-            size="small"
-            v-model="yeartsEnd"
-            value-format="yyyy"
-            style="width:150px"
-            :picker-options="endDatePicker"
-            type="year"
-            placeholder="结束年份"
-          >
-          </el-date-picker>
-          <el-button type="primary"  size="small" style="margin-left: 30px" @click="handleQuery()" >查询</el-button>
-          <el-button type="primary"  size="small" style="margin-left: 20px;margin-bottom: 30px;" @click="handleMerge()" :disabled="multipleSelection.length==0">合并开票</el-button>
-          <el-table
-            :data="tableDataYear"
-            border
-            ref="multipleTable"
-            @selection-change="handleSelectionChange"
-            style="width: 100%">
-          <el-table-column
-            type="selection"
-            width="55">
-          </el-table-column>
-          <el-table-column
-              prop="monthNumber"
-              label="月份">
-            </el-table-column>
-            <el-table-column
-              prop="allTotalOtherFeevalue"
-              label="总金额">
-            </el-table-column>
-            <el-table-column
-              prop="invoicCommissionFeevalue"
-              label="已开票">
-            </el-table-column>
-            <el-table-column
-              prop="noInvoicCommissionFeevalue"
-              label="未开票">
-            </el-table-column>
-            <el-table-column
-              label="操作">
-            <template slot-scope="scope">
-              <el-button @click="handleMonth(scope.row)" type="primary" size="small">当月开票</el-button>
-            </template>
-          </el-table-column>
-        </el-table>
+      年度: <el-date-picker size="small" v-model="yeartsStart" :picker-options="startDatePicker" value-format="yyyy"
+        type="year" style="width:150px" placeholder="开始年份">
+      </el-date-picker>
+      ~
+      <el-date-picker size="small" v-model="yeartsEnd" value-format="yyyy" style="width:150px"
+        :picker-options="endDatePicker" type="year" placeholder="结束年份">
+      </el-date-picker>
+      <el-button type="primary" size="small" style="margin-left: 30px" @click="handleQuery()">查询</el-button>
+      <el-button type="primary" size="small" style="margin-left: 20px;margin-bottom: 30px;" @click="handleMerge()"
+        :disabled="multipleSelection.length == 0">合并开票</el-button>
+      <el-table :data="tableDataYear" border ref="multipleTable" @selection-change="handleSelectionChange"
+        style="width: 100%">
+        <el-table-column type="selection" width="55">
+        </el-table-column>
+        <el-table-column prop="monthNumber" label="月份">
+        </el-table-column>
+        <el-table-column prop="allTotalOtherFeevalue" label="总金额">
+        </el-table-column>
+        <el-table-column prop="invoicCommissionFeevalue" label="已开票">
+        </el-table-column>
+        <el-table-column prop="noInvoicCommissionFeevalue" label="未开票">
+        </el-table-column>
+        <el-table-column label="操作">
+          <template slot-scope="scope">
+            <el-button @click="handleMonth(scope.row)" type="primary" size="small">当月开票</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
       <span slot="footer" class="dialog-footer">
         <el-button size="small" @click="myDialogVisible = false">取 消</el-button>
       </span>
@@ -143,7 +98,7 @@ import yearMonthYay from '../../PlatformSettlement/yearMonthYay.vue'
 
 export default {
   name: "baosi",
-  components: {  templateTable,yearMonthYay },
+  components: { templateTable, yearMonthYay },
   created() {
   },
   computed: {
@@ -153,40 +108,40 @@ export default {
   },
   data() {
     return {
-      myDialogVisible:false,
-      yeartsStart:'',
-      tableDataYear:[],
-      multipleSelection:[],
-      yeartsEnd:'',
+      myDialogVisible: false,
+      yeartsStart: '',
+      tableDataYear: [],
+      multipleSelection: [],
+      yeartsEnd: '',
       startDatePicker: this.beginDate(),
-      endDatePicker: this.processDate(),  
-      isSingle:'1',
+      endDatePicker: this.processDate(),
+      isSingle: '1',
       year: '',
       searchData: {},
-      options:[{
+      options: [{
         label: "保司开票",
         value: "0",
-      },{
+      }, {
         label: "掌柜开票",
         value: "1",
       }],
       formList: [
-                {
-                    label: "保险公司",
-                    prop: "companyName",
-                    type: "company",
-                },
-                {
-                    label: "合作公司名称",
-                    prop: "partnerCompaniesName",
-                    type: "input",
-                },
-                {
-                    label: "年月日",
-                    name: "data",
-                    type: "slot",
-                    },
-            ],
+        {
+          label: "保险公司",
+          prop: "companyName",
+          type: "company",
+        },
+        {
+          label: "合作公司名称",
+          prop: "partnerCompaniesName",
+          type: "input",
+        },
+        {
+          label: "年月日",
+          name: "data",
+          type: "slot",
+        },
+      ],
       tableConfig: {
         columns: [
           {
@@ -209,7 +164,7 @@ export default {
             label: "未开票跟单费",
             type: "text"
           },
-          
+
         ],
         loading: true,
         isPaginationShow: true,
@@ -218,8 +173,8 @@ export default {
           {
             type: 'primary',
             label: '开票',
-            hide:(row)=>{
-              if(row.otherFeevalue-row.invoicCommissionFeevalue>0){
+            hide: (row) => {
+              if (row.otherFeevalue - row.invoicCommissionFeevalue > 0) {
                 return true
               }
             },
@@ -230,9 +185,9 @@ export default {
       tableData: [],
       formData: {},
       InvoicingData: {
-        invoicingMethod:'0'
+        invoicingMethod: '0'
       },
-      formDataList:{},
+      formDataList: {},
       dialogVisible: false,
       pageData: {
         pageNum: 1,
@@ -240,18 +195,18 @@ export default {
         agreementType: 2,
         isNotCar: '0',
         isNotDocumentary: '1'
-        
+
       },
       rules: {
         contractId: [
-            { required: true, message: '请输入开票号', trigger: 'blur' },
-          ],
-          settlementAmount: [
-            { required: true, message: '请输入开票金额', trigger: 'blur' },
-          ],
-          invoicingMethod: [
-            { required: true, message: '请输入开票方式', trigger: 'blur' },
-          ],
+          { required: true, message: '请输入开票号', trigger: 'blur' },
+        ],
+        settlementAmount: [
+          { required: true, message: '请输入开票金额', trigger: 'blur' },
+        ],
+        invoicingMethod: [
+          { required: true, message: '请输入开票方式', trigger: 'blur' },
+        ],
       }
     };
   },
@@ -260,21 +215,21 @@ export default {
   },
   methods: {
     handleSelectionChange(val) {
-        this.multipleSelection = val;
-      },
-    handleMerge(){
-      this.dialogVisible =true
-      this.isSingle='2'
-       this.InvoicingData={
-        invoicingMethod:'0'
+      this.multipleSelection = val;
+    },
+    handleMerge() {
+      this.dialogVisible = true
+      this.isSingle = '2'
+      this.InvoicingData = {
+        invoicingMethod: '0'
       }
     },
-    handleMonth(row){
+    handleMonth(row) {
       this.multipleSelection = [row];
-      this.dialogVisible =true
-      this.isSingle='1'
-      this.InvoicingData={
-        invoicingMethod:'0'
+      this.dialogVisible = true
+      this.isSingle = '1'
+      this.InvoicingData = {
+        invoicingMethod: '0'
       }
     },
     beginDate() {
@@ -298,14 +253,14 @@ export default {
         }
       }
     },
-    getYearData(val){
-      this.formData.year=val
+    getYearData(val) {
+      this.formData.year = val
     },
-    getMonthData(val){
-      this.formData.month=val
+    getMonthData(val) {
+      this.formData.month = val
     },
-    getDayData(val){
-      this.formData.day=val
+    getDayData(val) {
+      this.formData.day = val
     },
     // 查询
     handleSearchList(data) {
@@ -315,47 +270,47 @@ export default {
     findPage(data) {
       this.tableConfig.loading = true;
       this.$api.task
-        .allOtherAmount({...this.pageData,...data,...this.formData})
+        .allOtherAmount({ ...this.pageData, ...data, ...this.formData })
         .then(res => {
-          if (res.code==200) {
-            this.tableData = res.data?res.data:[]
+          if (res.code == 200) {
+            this.tableData = res.data ? res.data : []
             this.tableConfig.loading = false;
           }
           else {
-              this.$message.error(res.msg)
-            }
+            this.$message.error(res.msg)
+          }
         });
     },
     closdialogVisible() {
       this.dialogVisible = false;
-      this.multipleSelection=[]
+      this.multipleSelection = []
       this.$refs.multipleTable.clearSelection();
 
     },
     myClosdialogVisible() {
       this.myDialogVisible = false;
     },
-    handleQuery(){
+    handleQuery() {
       this.otherTimeDetail(this.formDataList)
     },
     // 开票
     openBalanceFun(row) {
-      this.myDialogVisible=true
+      this.myDialogVisible = true
       this.otherTimeDetail(row)
-      this.formDataList=row
+      this.formDataList = row
     },
-    otherTimeDetail(row){
-      let data={
-        partnerCompaniesId:row.partnerCompaniesId,
-        agreementType:2,
-        isNotCar:0,    
-        isNotDocumentary:1,
-        yeartsStart:this.yeartsStart,
-        yeartsEnd:this.yeartsEnd,
+    otherTimeDetail(row) {
+      let data = {
+        partnerCompaniesId: row.partnerCompaniesId,
+        agreementType: 2,
+        isNotCar: 0,
+        isNotDocumentary: 1,
+        yeartsStart: this.yeartsStart,
+        yeartsEnd: this.yeartsEnd,
       }
       this.$api.task.otherTimeDetail(data).then(res => {
-          if (res.code == "200") {
-            this.tableDataYear=res.data
+        if (res.code == "200") {
+          this.tableDataYear = res.data
         }
         else {
           this.$message.error(res.msg)
@@ -365,25 +320,43 @@ export default {
     submit(formData) {
       this.$refs[formData].validate((valid) => {
         if (valid) {
-            let data={
-               ...this.formDataList,...this.InvoicingData,isNotCar:0,handlingFeesStatus:'1',
-               yeartsStart:this.yeartsStart,
-               yeartsEnd:this.yeartsEnd,
-               multipleSelection:this.multipleSelection
+          let data = {
+            ...this.formDataList, ...this.InvoicingData, isNotCar: 0, handlingFeesStatus: '1',
+            yeartsStart: this.yeartsStart,
+            yeartsEnd: this.yeartsEnd,
+            multipleSelection: this.multipleSelection
+          }
+          if (this.isSingle == '2') {
+            this.$api.task.singleInvoic(data).then(res => {
+              if (res.code == "200") {
+                this.$message({
+                  message: res.msg || '操作成功',
+                  type: 'success'
+                })
+                this.dialogVisible = false
+                this.otherTimeDetail(this.formDataList)
+              }
+              else {
+                this.$message.error(res.msg)
+              }
+            });
+          }
+          else {
+            this.$api.task.batchInvoic(data).then(res => {
+              if (res.code == "200") {
+                this.$message({
+                  message: res.msg || '操作成功',
+                  type: 'success'
+                })
+                this.dialogVisible = false
+                this.otherTimeDetail(this.formDataList)
               }
-          this.$api.task.batchInvoic(data).then(res => {
-            if (res.code == "200") {
-              this.$message({
-                message: res.msg ||'操作成功',
-                type: 'success'
-              })
-              this.dialogVisible = false
-              this.otherTimeDetail(this.formDataList)
-            }
-            else {
-              this.$message.error(res.msg)
-            }
-          });
+              else {
+                this.$message.error(res.msg)
+              }
+            });
+          }
+
         } else {
           return false;
         }
@@ -397,7 +370,7 @@ export default {
       this.pageData.pageNum = val;
       this.findPage();
     },
-   
+
   }
 };
 </script>

+ 197 - 7
src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/DocumentaryFeesDetail.vue

@@ -3,6 +3,12 @@
   <div class="container" style="width: 99%; margin-top: 0px">
     <templateTable ref="templateTable" :formList="formList"  :btnGroup="btnGroup" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
       @findPage="findPage" @getList="findPage" @handleSearchList="handleSearchList" :pagination="pageData">
+      <template slot="批量修改">
+      <el-upload style="display: inline-block;" action="#" :show-file-list="false" class="upload-demo"  :limit="1" :auto-upload="false"
+        :on-change="drivingupload"  ref="upload3"  accept=".png, .jpg, .jpeg" >
+        <el-button size="small" :disabled="selectionList.length==0" type="primary">批量修改</el-button>
+      </el-upload>
+    </template>
     </templateTable>
     <el-dialog
     title="编辑"
@@ -23,6 +29,64 @@
     <el-button   size="small" type="primary" @click="onSubmit">保存</el-button>
   </span>
 </el-dialog>
+<el-dialog
+    title="新增"
+    :visible.sync="dialogVisibleAdd"
+    width="55%"
+    :before-close="handleCloseadd">
+    <el-form ref="form" :model="formDataAdd" label-width="130px">
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="手续费比例">
+              <el-input v-model="formDataAdd.commissionFeevalue" size="small"></el-input>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="保险公司">
+            <el-select size="small" clearable v-model="formDataAdd.companyId"  filterable >
+              <el-option v-for="(s, i) in InsCompanyList" :key="i" :label="s.name" :value="s.id"></el-option>
+            </el-select>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="合作公司">
+            <el-select size="small" clearable v-model="formDataAdd.partnerCompaniesId"  filterable >
+              <el-option v-for="(s, i) in InsCompanyList" :key="i" :label="s.name" :value="s.id"></el-option>
+            </el-select>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="协议类型" prop="agreementType">
+            <el-select size="small"  v-model="formDataAdd.agreementType" placeholder="请选择协议类型"
+              style="width: 100%" >
+              <el-option v-for="item in agreementTypeoptions" :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-input v-model="formDataAdd.remarks" size="small"></el-input>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="签单日期">
+            <el-date-picker
+               size="small"
+                v-model="formDataAdd.signdate"
+                type="date"
+                placeholder="选择日期"
+                value-format="yyyy-MM-dd">
+              </el-date-picker>
+            </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+    <el-button size="small" @click="dialogVisibleAdd = false">取消</el-button>
+    <el-button   size="small" type="primary" @click="onSubmitAdd">保存</el-button>
+  </span>
+  </el-dialog>
   </div>
 </template>
 <script>
@@ -42,6 +106,11 @@ export default {
   },
   data() {
     return {
+      dialogVisibleAdd:false,
+      agreementTypeoptions: [], //协议类型
+      formDataAdd:{},
+      InsCompanyList: [],
+      selectionList:[],
       year: '',
       searchData: {},
       dialogVisible:false,
@@ -85,10 +154,24 @@ export default {
           prop: "syPolicyno",
           type: "input",
         }, {
-          label: "非车保单号:",
+          label: "非车保单号",
           prop: "noPolicyno",
           type: "input",
         },
+        {
+          label: "结算状态",
+          prop: "settleOtherStatus",
+          type: "select",
+          options:[
+            {
+              label:'已结算',
+              value:'1'
+            },{
+              label:'未结算',
+              value:'0'
+            },
+          ],
+        },
         {
           label: "结算日期",
           prop: "settlementTime",
@@ -103,12 +186,29 @@ export default {
           label: "签单日期",
           prop: "signDate",
           type: "datePicker",
+        },{
+          label: "交强起保日期",
+          prop: "jqDate",
+          type: "datePicker",
+        },{
+          label: "商业起保日期",
+          prop: "syDate",
+          type: "datePicker",
         },
     ],
       btnGroup:[
+        {
+        name:'新增',
+        click:(row, index) => {return this.newAdd()},
+      },
       {
         name:'导出',
         click:(row, index) => {return this.handExport()},
+      },
+      {
+        name:'批量修改',
+        slot:true,
+        // click:(row, index) => {return this.handBatch()},
       }
     ],
       tableData: [],
@@ -194,6 +294,75 @@ export default {
     this.findPage();
   },
   methods: {
+    newAdd(){
+      this.dialogVisibleAdd=true
+       this.$api.cost.gainTopList({ type: 1 }).then(res => {
+      if (res.data) {
+        this.InsCompanyList = res.data;
+      }
+    });
+    this.$api.insCompany.dicType('agreementType').then((res) => {
+        if (res.code == 200) {
+          this.agreementTypeoptions = res.data.ddList;
+        }
+      });
+    },
+    handleCloseadd(){
+      this.dialogVisibleAdd=false
+    },
+    onSubmitAdd(){
+      let data={
+        isNotCar:1,
+        isNotDocumentary:1,
+        companyName:this.InsCompanyList.find(val=>val.id==this.formDataAdd.companyId).name,
+        partnerCompaniesName:this.InsCompanyList.find(val=>val.id==this.formDataAdd.partnerCompaniesId).name,
+      }
+      this.$api.task.fncplyFeeInsert({...this.formDataAdd,...data})
+          .then(res => {
+            if (res.code==200) {
+              this.$message({
+                    message: '新增成功' || res.msg,
+                    type: 'success'
+                })
+                this.findPage()
+                this.dialogVisibleAdd=false
+            }
+            else{
+              this.$message.error(res.msg)
+            }
+          });
+    },
+    selectionChange(val){
+      this.selectionList=val
+    },
+    drivingupload(file, fileList){
+      this.fileList=[]
+      const params = new FormData(); // 声明formData数据类型
+      params.append("multipartFile", file.raw);
+      params.append("type", "image");
+      this.$api.letter.uploadFile(params).then(res => {
+        if (res.code == "200") {
+            this.$api.task.queryPageBatchUpdate({contractFileId:res.data.id,selectIds:this.selectionList.map(val=>val.id)})
+            .then(res => {
+            if (res.code==200) {
+              this.$message({
+                    message:  res.msg || '保存成功',
+                    type: 'success'
+                })
+                this.findPage()
+                this.selectionList=[]
+                this.dialogVisible=false
+            }
+            else{
+              this.$message.error(res.msg)
+            }
+          });
+        }
+        else{
+          this.$message.error(res.msg)
+        }
+      });
+    },
     // 查询
     handleSearchList(data) {
       this.findPage(data);
@@ -201,18 +370,38 @@ export default {
     //列表数据
     findPage(data) {
       let signDateStart=''
-        let signDateEnd=''
-      if(data&& data.signDate){
-          signDateStart=data.signDate[0]
-          signDateEnd=data.signDate[1]
+      let signDateEnd=''
+      let jqStartDate=''
+      let jqEndDate=''
+      let syStartDate=''
+      let syEndDate=''
+      if(data && data.signDate && data.signDate.length>0){
+        signDateStart=data.signDate[0]
+        signDateEnd=data.signDate[1]
       }
       else{
         signDateStart=''
         signDateEnd=''
-    }
+      }
+      if(data && data.jqDate && data.jqDate.length>0){
+        jqStartDate=data.jqDate[0]
+        jqEndDate=data.jqDate[1]
+      }
+      else{
+        jqStartDate=''
+        jqEndDate=''
+      }
+      if(data && data.syDate && data.syDate.length>0){
+        syStartDate=data.syDate[0]
+        syEndDate=data.syDate[1]
+      }
+      else{
+        syStartDate=''
+        syEndDate=''
+      }
       this.tableConfig.loading = true;
       this.$api.task
-        .plyFeequery({...this.pageData,...data,signDateStart,signDateEnd})
+        .plyFeequery({...this.pageData,...data,signDateStart,signDateEnd,jqStartDate,jqEndDate,syStartDate,syEndDate})
         .then(res => {
           if (res.code==200) {
             this.tableData = res.data.content?res.data.content:[]
@@ -223,6 +412,7 @@ export default {
           }
           else{
             this.$message.error(res.msg)
+            this.tableConfig.loading = false;
           }
         });
     },

+ 88 - 0
src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/DocumentaryFeesSettled.vue

@@ -15,6 +15,14 @@
         <el-button size="small" @click="dialogVisiblerecord = false">取消</el-button>
       </span>
     </el-dialog>
+    <el-dialog title="明细" :visible.sync="dialogVisiblerecordDetail" width="50%" :before-close="handleCloserecorddetail">
+            <templateTable ref="templateTable1"   :pagination="pageDatarecorddetail" @getList="getListrecorddetail"
+                :tableConfig="tableConfigDetailrecorddetail" :data="recordDetailData" @findPage="findPageDetailrecorddatail">
+            </templateTable>
+            <span slot="footer" class="dialog-footer">
+                <el-button size="small" @click="dialogVisiblerecordDetail = false">取消</el-button>
+            </span>
+        </el-dialog>
   </div>
 </template>
 <script>
@@ -34,7 +42,51 @@ export default {
   },
   data() {
     return {
+      recordDetailData:[],
+      pageDatarecorddetail: {
+                pageNum: 1,
+                pageSize: 20,
+                totalSize:0
+            },
+      dialogVisiblerecordDetail: false,
       dialogVisiblerecord: false,
+      recorddetailids:'',
+      tableConfigDetailrecorddetail: {
+                columns: [
+                    {
+                        prop: "noPolicyno",
+                        label: "非车保单号",
+                        type: "text"
+                    },
+                    {
+                        prop: "licenseno",
+                        label: "车牌号",
+                        type: "text"
+                    },
+                    {
+                        prop: "insuredName",
+                        label: "被保人",
+                        type: "text"
+                    },
+                    {
+                        prop: "noPremium",
+                        label: "非车保费",
+                        type: "text"
+                    },
+                    {
+                        prop: "noOtherCostsProportion",
+                        label: "非车跟单比例",
+                        type: "text"
+                    },
+                    {
+                        prop: "noOtherCostsPremium",
+                        label: "非车跟单金额",
+                        type: "text"
+                    },
+                ],
+                loading: true,
+                isPaginationShow:true
+            },
       formTableDatarecord: [],
       tableConfigDetailrecord: {
         columns: [
@@ -104,6 +156,16 @@ export default {
             label: "已开票已结算",
             type: "text"
           },
+          {
+            prop: "expendAmount",
+            label: "实收金额 ",
+            type: "text"
+          },
+          {
+            prop: "taxesFees",
+            label: "税费",
+            type: "text"
+          },
           {
             prop: "invoicCommissionFeevalue",
             label: "已开票未结算",
@@ -148,6 +210,32 @@ export default {
     this.findPage();
   },
   methods: {
+    handleCloserecorddetail() {
+            this.dialogVisiblerecordDetail = false
+        },
+    haldRecordDetail(row) {
+            this.dialogVisiblerecordDetail = true
+            this.getListrecorddetail()
+            this.recorddetailids = row.ids
+        },
+        getListrecorddetail(data) {
+            this.findPageDetailrecorddatail(data)
+        },
+        findPageDetailrecorddatail(data) {
+            this.tableConfigDetailrecorddetail.loading = true;
+            this.$api.task
+                .fncplyFeeQuery({ ...data,ids:this.recorddetailids })
+                .then(res => {
+                    if (res.code == 200) {
+                        this.tableConfigDetailrecorddetail.loading = false;
+                        this.recordDetailData = res.data.content ? res.data.content : []
+                    }
+                    else {
+                        this.tableConfigDetailrecorddetail.loading = false;
+                        this.$message.error(res.msg)
+                    }
+                });
+        },
     haldRecord(row) {
       this.findPageDetailrecord(row)
       this.dialogVisiblerecord = true

+ 190 - 13
src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/HandlingFees.vue

@@ -14,6 +14,18 @@
       :pagination="pageData"
       @getList="getList"
     >
+    <template slot="内部机构">
+      <el-select v-model="labelData" placeholder="请选择" :popper-append-to-body="false" style="width: 100%" size="small">
+            <el-option :value="selectTree" class="deptOption" disabled>
+          <el-tree :data="treedata" :props="defaultProps" ref="tree" :highlight-current="true" @node-click="handleNodeClick" default-expand-all></el-tree>
+        </el-option>
+      </el-select>
+  </template>
+  <template slot="保司机构">
+      <el-cascader  v-model="pageData.partnerCompaniesId" size="small" :show-all-levels="false" ize="small" 
+          :options="ztreeNodes" :props="optionProps"  clearable filterable></el-cascader>
+  </template>
+  
     <template slot="dockingPerson">
       <el-select v-model="pageData.dockingPerson" filterable clearable  placeholder="请选择" size="small">
       <el-option
@@ -99,6 +111,64 @@
     <el-button size="small" type="primary" @click="handleSumbit()">确 定</el-button>
   </span>
 </el-dialog>
+<el-dialog
+    title="新增"
+    :visible.sync="dialogVisibleAdd"
+    width="55%"
+    :before-close="handleCloseadd">
+    <el-form ref="form" :model="formDataAdd" label-width="130px">
+      <el-row>
+        <el-col :span="8">
+          <el-form-item label="手续费比例">
+              <el-input v-model="formDataAdd.commissionFeevalue" size="small"></el-input>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="保险公司">
+            <el-select size="small" clearable v-model="formDataAdd.companyId"  filterable >
+              <el-option v-for="(s, i) in InsCompanyList" :key="i" :label="s.name" :value="s.id"></el-option>
+            </el-select>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="合作公司">
+            <el-select size="small" clearable v-model="formDataAdd.partnerCompaniesId"  filterable >
+              <el-option v-for="(s, i) in InsCompanyList" :key="i" :label="s.name" :value="s.id"></el-option>
+            </el-select>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="协议类型" prop="agreementType">
+            <el-select size="small"  v-model="formDataAdd.agreementType" placeholder="请选择协议类型"
+              style="width: 100%" >
+              <el-option v-for="item in agreementTypeoptions" :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-input v-model="formDataAdd.remarks" size="small"></el-input>
+            </el-form-item>
+        </el-col>
+        <el-col :span="8">
+          <el-form-item label="签单日期">
+            <el-date-picker
+               size="small"
+                v-model="formDataAdd.signdate"
+                type="date"
+                placeholder="选择日期"
+                value-format="yyyy-MM-dd">
+              </el-date-picker>
+            </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+    <span slot="footer" class="dialog-footer">
+    <el-button size="small" @click="dialogVisibleAdd = false">取消</el-button>
+    <el-button   size="small" type="primary" @click="onSubmitAdd">保存</el-button>
+  </span>
+  </el-dialog>
   </div>
 </template>
   <script>
@@ -118,6 +188,26 @@ export default {
   },
   data() {
     return {
+      ztreeNodes:[],
+      optionProps: {
+        //公司下拉列表配置
+        checkStrictly: true,
+        value: "id",
+        label: "name",
+        children: "children",
+      },
+      defaultProps: {
+        //自定义参数
+        children: "children",
+        label: "name",
+      },
+      labelData:'',
+      selectTree: [],
+      treedata:[],
+      dialogVisibleAdd:false,
+      agreementTypeoptions: [], //协议类型
+      formDataAdd:{},
+      InsCompanyList: [],
       moneyList:{},
       searchData:{},
       InvoicingData:{},
@@ -129,6 +219,16 @@ export default {
         value: "1",
       }],
       formList:[
+        {
+          label: "内部机构",
+          name: "内部机构",
+          type: "slot",
+        },
+        {
+          label: "保司机构",
+          name: "保司机构",
+          type: "slot",
+        },
        {
           label: "车牌号",
           prop: "licenseno",
@@ -206,6 +306,14 @@ export default {
           label: "签单日期",
           prop: "signDate",
           type: "datePicker",
+        },{
+          label: "交强起保日期",
+          prop: "jqStartDate",
+          type: "datePicker",
+        },{
+          label: "商业起保日期",
+          prop: "syDate",
+          type: "datePicker",
         },
     ],
     tableConfig:{
@@ -366,6 +474,10 @@ export default {
         // ]
     },
     btnGroup:[
+      {
+        name:'新增',
+        click:(row, index) => {return this.newAdd()},
+      },
       {
         name:'批量开票',
         click:(row, index) => {return this.balanceFunPro()},
@@ -410,7 +522,17 @@ export default {
     };
   },
   created(){
+    this.$api.dept.findDeptTree("9", "").then((res) => {
+      this.treedata = res.data;
+    });
     this.findPage();
+    let params = {
+        classname: "",
+        type: '1',
+      };
+    this.$api.insCompany.findLeftInsTree(params).then((res) => {
+        this.ztreeNodes = res.data;
+      });
     this.$api.task
         .getDockingPersonList()
         .then(res => {
@@ -421,8 +543,53 @@ export default {
             this.$message.error(res.msg)
           }
         });
+        this.$api.cost.gainTopList({ type: 1 }).then(res => {
+      if (res.data) {
+        this.InsCompanyList = res.data;
+      }
+    });
+    this.$api.insCompany.dicType('agreementType').then((res) => {
+        if (res.code == 200) {
+          this.agreementTypeoptions = res.data.ddList;
+        }
+      });
   },
   methods: {
+    prodhandleChange(value) {
+      this.pageData.partnerCompaniesId= value[value.length - 1];
+    },
+    handleNodeClick(data, self, child) {
+      this.labelData = data.name;//展示部分
+      this.pageData.deptId= data.id
+    },
+    newAdd(){
+      this.dialogVisibleAdd=true
+    },
+    handleCloseadd(){
+      this.dialogVisibleAdd=false
+    },
+    onSubmitAdd(){
+      let data={
+        isNotCar:1,
+        isNotDocumentary:0,
+        companyName:this.InsCompanyList.find(val=>val.id==this.formDataAdd.companyId).name,
+        partnerCompaniesName:this.InsCompanyList.find(val=>val.id==this.formDataAdd.partnerCompaniesId).name,
+      }
+      this.$api.task.fncplyFeeInsert({...this.formDataAdd,...data})
+          .then(res => {
+            if (res.code==200) {
+              this.$message({
+                    message: '新增成功' || res.msg,
+                    type: 'success'
+                })
+                this.findPage()
+                this.dialogVisibleAdd=false
+            }
+            else{
+              this.$message.error(res.msg)
+            }
+          });
+    },
     drivingupload(file, fileList){
       this.fileList=[]
       const params = new FormData(); // 声明formData数据类型
@@ -444,6 +611,10 @@ export default {
     handleSearchList(data) {
       let signDateStart=''
       let signDateEnd=''
+      let jqStartDate=''
+      let jqEndDate=''
+      let syStartDate=''
+      let syEndDate=''
       if(data && data.signDate && data.signDate.length>0){
         signDateStart=data.signDate[0]
         signDateEnd=data.signDate[1]
@@ -452,8 +623,24 @@ export default {
         signDateStart=''
         signDateEnd=''
       }
+      if(data && data.jqStartDate && data.jqStartDate.length>0){
+        jqStartDate=data.jqStartDate[0]
+        jqEndDate=data.jqStartDate[1]
+      }
+      else{
+        jqStartDate=''
+        jqEndDate=''
+      }
+      if(data && data.syDate && data.syDate.length>0){
+        syStartDate=data.syDate[0]
+        syEndDate=data.syDate[1]
+      }
+      else{
+        syStartDate=''
+        syEndDate=''
+      }
       this.$api.task
-          .bxTotalAmount({...this.pageData,...data,signDateStart,signDateEnd})
+          .bxTotalAmount({...this.pageData,...data,signDateStart,signDateEnd,jqStartDate,jqEndDate,syStartDate,syEndDate})
           .then(res => {
             if (res.code==200) {
                 this.moneyList=res.data?res.data:[]
@@ -462,7 +649,7 @@ export default {
               this.$message.error(res.msg)
             }
           });
-      this.findPage(data);
+      this.findPage({...data,signDateStart,signDateEnd,jqStartDate,jqEndDate,syStartDate,syEndDate});
     },
     templateDownload(){
       let a = document.createElement('a')
@@ -472,19 +659,9 @@ export default {
     //列表数据
     findPage(data
     ) {
-      let signDateStart=''
-      let signDateEnd=''
-      if(data && data.signDate && data.signDate.length>0){
-        signDateStart=data.signDate[0]
-        signDateEnd=data.signDate[1]
-      }
-      else{
-        signDateStart=''
-        signDateEnd=''
-      }
       this.tableConfig.loading = true;
       this.$api.task
-        .plyFeeQuery({...this.pageData,...data,signDateStart,signDateEnd})
+        .plyFeeQuery({...this.pageData,...data})
         .then(res => {
           if (res.code==200) {
             this.tableData = res.data.content?res.data.content:[]

+ 109 - 2
src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/InvoicedAndSettled.vue

@@ -19,11 +19,25 @@
         <el-dialog title="记录" :visible.sync="dialogVisiblerecord" width="30%" :before-close="handleCloserecord">
             <templateTable ref="templateTable1"   :pagination="pageDatarecord" @getList="getListrecord"
                 :tableConfig="tableConfigDetailrecord" :data="formTableDatarecord" @findPage="findPageDetailrecord">
+                <template slot="imageUrl" slot-scope="scope">
+                    <img :src='scope.row.imageUrl' class="imageclass"  @click.stop="showViewer=true;ProViewImg=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="dialogVisiblerecordDetail" width="50%" :before-close="handleCloserecorddetail">
+            <templateTable ref="templateTable1"   :pagination="pageDatarecorddetail" @getList="getListrecorddetail"
+                :tableConfig="tableConfigDetailrecorddetail" :data="recordDetailData" @findPage="findPageDetailrecorddatail">
+            </templateTable>
+               
+            <span slot="footer" class="dialog-footer">
+                <el-button size="small" @click="dialogVisiblerecordDetail = false">取消</el-button>
+            </span>
+        </el-dialog>
+        <el-image-viewer v-if="showViewer"  :on-close="closeViewer"  :z-index="9999" :url-list="[ProViewImg]" />
+
     </div>
 </template>
 <script>
@@ -34,7 +48,9 @@ import yearMonthYay from '../../PlatformSettlement/yearMonthYay.vue'
 
 export default {
     name: "baosi",
-    components: { KtCommonTable, templateTable, yearMonthYay },
+    components: { KtCommonTable, templateTable, yearMonthYay,
+        "el-image-viewer": () =>
+      import("element-ui/packages/image/src/image-viewer") },
     created() {
     },
     computed: {
@@ -44,6 +60,10 @@ export default {
     },
     data() {
         return {
+            showViewer:false,
+            dialogVisiblerecordDetail:false,
+            recordDetailData:[],
+            ProViewImg:[],
             searchData: {},
             formList: [
                 {
@@ -155,6 +175,11 @@ export default {
                         label: "进帐金额",
                         type: "text"
                     },
+                    {
+                        name: "imageUrl",
+                        label: "凭证",
+                        type: "slot"
+                    },
 
                 ],
                 loading: true,
@@ -185,6 +210,11 @@ export default {
                         type: 'primary',
                         label: '记录',
                         click: (row, index) => { return this.haldRecord(row) },
+                    },
+                    {
+                        type: 'primary',
+                        label: '明细',
+                        click: (row, index) => { return this.haldRecordDetail(row) },
                     }
                 ]
             },
@@ -203,16 +233,66 @@ export default {
                 pageSize: 20,
                 totalSize:0
             },
+            pageDatarecorddetail: {
+                pageNum: 1,
+                pageSize: 20,
+                totalSize:0
+            },
             formData: {},
             formDetail: {},
             formTableData: [],
-            formTableDatarecord:[]
+            formTableDatarecord:[],
+            recorddetailids:'',
+            tableConfigDetailrecorddetail: {
+                columns: [
+                    {
+                        prop: "noPolicyno",
+                        label: "非车保单号",
+                        type: "text"
+                    },
+                  
+                    {
+                        prop: "licenseno",
+                        label: "车牌号",
+                        type: "text"
+                    },
+                    {
+                        prop: "insuredName",
+                        label: "被保人",
+                        type: "text"
+                    },
+                    {
+                        prop: "noPremium",
+                        label: "非车保费",
+                        type: "text"
+                    },
+                   
+                    {
+                        prop: "noSuperviseCostsPremiums",
+                        label: "非车手续费金额",
+                        type: "text"
+                    },
+                   {
+                        prop: "noSuperviseCostsProportion",
+                        label: "非车手续费比例",
+                        type: "text"
+                    },
+                ],
+                loading: true,
+                isPaginationShow:true
+            },
         };
     },
     created() {
         this.findPage();
     },
     methods: {
+        closeViewer() {
+      this.showViewer = false;
+    },
+    handleCloserecorddetail() {
+            this.dialogVisiblerecordDetail = false
+        },
         getYearData(val) {
             this.formData.year = val
         },
@@ -283,6 +363,30 @@ export default {
                     }
                 });
         },
+        haldRecordDetail(row) {
+            this.dialogVisiblerecordDetail = true
+            this.getListrecorddetail()
+            this.recorddetailids = row.ids
+
+        },
+        getListrecorddetail(data) {
+            this.findPageDetailrecorddatail(data)
+        },
+        findPageDetailrecorddatail(data) {
+            this.tableConfigDetailrecorddetail.loading = true;
+            this.$api.task
+                .fncplyFeeQuery({ ...data,ids:this.recorddetailids })
+                .then(res => {
+                    if (res.code == 200) {
+                        this.tableConfigDetailrecorddetail.loading = false;
+                        this.recordDetailData = res.data.content ? res.data.content : []
+                    }
+                    else {
+                        this.tableConfigDetailrecorddetail.loading = false;
+                        this.$message.error(res.msg)
+                    }
+                });
+        },
         findPageDetailrecord(data) {
             this.tableConfigDetailrecord.loading = true
             this.$api.task
@@ -295,6 +399,9 @@ export default {
                 })
                 .then(res => {
                     if (res.code == 200) {
+                        res.data.content.forEach(ele => {
+                            ele.imageUrl= process.env.BASE_URL+ele.imageUrl
+                        });
                         this.formTableDatarecord = res.data.content;
                         this.pageDatarecord={
                             pageNum:res.data.pageNum,

+ 38 - 6
src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/InvoicingUnsettled.vue

@@ -1,6 +1,6 @@
 <template>
     <!--布局容器-->
-    <div class="container" style="width: 99%; margin-top: 0px">
+    <div class="InvoicedAndSettled" style="width: 99%; margin-top: 0px">
         <templateTable :formList="formList" :searchData.sync="searchData" :tableConfig="tableConfig" :data="tableData"
             @findPage="findPage" @handleSearchList="handleSearchList" :pagination="pageData" @getList="getList">
             <template slot="data">
@@ -21,11 +21,11 @@
       :visible.sync="dialogVisiblebalance"
       width="20%"
       :before-close="handleClosebalance">
-      <el-form ref="form" :model="form" label-width="80px">
-        <el-form-item label="进账金额">
+      <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-form-item label="进账日期">
           <el-date-picker
             v-model="form.settlementTime"
             type="date"
@@ -33,6 +33,12 @@
             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>
@@ -58,6 +64,7 @@ export default {
     },
     data() {
         return {
+      fileList:[],
             dialogVisiblebalance:false,
             form:{},
             formTableData: [],
@@ -155,7 +162,9 @@ export default {
                 ],
                 loading: true,
                 isPaginationShow: true,
+                showSummary: true,
                 isShowIndex: true,
+                tableHeight: 'auto',
                 optBtns: [
                     {
                         type: 'primary',
@@ -174,13 +183,30 @@ export default {
                 handlingFeesStatus: '0'
             },
             formData: {},
-            formDetail:{}
+            formDetail:{},
+            batchData:{}
         };
     },
     created() {
         this.findPage();
     },
     methods: {
+        drivingupload(file, fileList){
+      this.fileList=[]
+      const params = new FormData(); // 声明formData数据类型
+      params.append("multipartFile", file.raw);
+      params.append("type", "image");
+      this.$api.letter.uploadFile(params).then(res => {
+        if (res.code == "200") {
+          this.batchData =res.data
+          this.fileList = fileList
+        }
+        else{
+          this.fileList=[]
+          this.$message.error(res.msg)
+        }
+      });
+    },
         getYearData(val) {
             this.formData.year = val
         },
@@ -277,6 +303,7 @@ export default {
           companyId:this.formDetail.companyId,
           isNotCar:'1',
           handlingFeesStatus:'1',
+          settlementImageId:this.batchData.id,
           ...this.form})
         .then(res => {
           if (res.code==200) {
@@ -335,5 +362,10 @@ export default {
 };
 </script>
   
-<style scoped></style>
+<style scoped>
+.InvoicedAndSettled>>>.el-table__body-wrapper {
+    overflow-y: auto !important;
+    height: auto !important;
+}
+</style>
   

+ 33 - 13
src/views/FinancialManagement/CarInsurance/CompanySettlement/NoCarInsurance/Notinvoiced.vue

@@ -148,6 +148,7 @@ export default {
     return {
       myDialogVisible:false,
       yeartsStart:'',
+      isSingle:'1',
       tableDataYear:[],
       multipleSelection:[],
       yeartsEnd:'',
@@ -295,6 +296,7 @@ export default {
       },
     handleMerge(){
       this.dialogVisible =true
+      this.isSingle = '2'
        this.InvoicingData={
         invoicingMethod:'0'
       }
@@ -302,6 +304,7 @@ export default {
     handleMonth(row){
       this.multipleSelection = [row];
       this.dialogVisible =true
+      this.isSingle = '1'
       this.InvoicingData={
         invoicingMethod:'0'
       }
@@ -364,19 +367,36 @@ export default {
             yeartsStart:this.yeartsStart,
                yeartsEnd:this.yeartsEnd,
                monthNumber:this.multipleSelection.map(val=>val.monthNumber)}
-          this.$api.task.batchInvoic(data).then(res => {
-            if (res.code == "200") {
-              this.$message({
-                message: res.msg ||'操作成功',
-                type: 'success'
-              })
-              this.dialogVisible = false
-              this.otherTimeDetail(this.formDataList)
-            }
-            else {
-              this.$message.error(res.msg)
-            }
-          });
+               if (this.isSingle == '2') {
+            this.$api.task.singleInvoic(data).then(res => {
+              if (res.code == "200") {
+                this.$message({
+                  message: res.msg || '操作成功',
+                  type: 'success'
+                })
+                this.dialogVisible = false
+                this.otherTimeDetail(this.formDataList)
+              }
+              else {
+                this.$message.error(res.msg)
+              }
+            });
+          }
+          else {
+            this.$api.task.batchInvoic(data).then(res => {
+              if (res.code == "200") {
+                this.$message({
+                  message: res.msg || '操作成功',
+                  type: 'success'
+                })
+                this.dialogVisible = false
+                this.otherTimeDetail(this.formDataList)
+              }
+              else {
+                this.$message.error(res.msg)
+              }
+            });
+          }
         } else {
           return false;
         }

+ 1 - 1
src/views/Sys/QuotationAuthorization.vue

@@ -414,7 +414,7 @@ export default {
             this.loading = true;
             this.$api.menu.findUserList({
                 ...this.pageData,
-                dto: { ...data, deptId: this.deptId, agentFlag: "1"
+                dto: { ...data, deptId: this.deptId, agentFlag: "0"
                 ,leaderName:this.queryFrom.leaderName },
             }).then((res) => {
                 if(res.code == 200){