Browse Source

Merge branch 'dev' of http://39.101.143.165:8090/dong_k/tenant-Platform into dev

祁鹏飞 2 tháng trước cách đây
mục cha
commit
dc804ec41d

+ 1 - 0
src/api/modules/settlement.ts

@@ -3,6 +3,7 @@ import { ApiInstance } from '../type'
 const settlementApi = (axiosInstance: ApiInstance) => ({
   companySuperviseSettlementReport: (data: any) => axiosInstance.post('/receivable/companySuperviseSettlementReport', data), // 保险公司报表
   followCompanySuperviseSettlementReport: (data: any) => axiosInstance.post('/receivable/followCompanySuperviseSettlementReport', data), // 保险公司报表
+  platformCompanySuperviseSettlementReport: (data: any) => axiosInstance.post('/receivable/platformCompanySuperviseSettlementReport', data), // 平台保险公司报表
 
   followSettlementExcel: (data: any) => axiosInstance.post('/receivable/followSettlementExcel',data), // 跟单记录
   platformSettlementExcel: (data: any) => axiosInstance.post('/receivable/platformSettlementExcel',data), // 平台结算记录

+ 15 - 5
src/views/platform/index.vue

@@ -11,10 +11,9 @@
             </el-col>
             <el-col :span="8">
               <el-form-item label="保险公司">
-                <el-select v-model="receivableForm.companyId" placeholder="请选择" clearable filterable>
-                  <el-option v-for="item in companyList" :key="item.companyCode" :value="item.id"
-                    :label="item.name"></el-option>
-                </el-select>
+
+                <el-cascader filterable clearable placeholder="请选择" v-model="receivableForm.companyId"
+                :options="companyList" :props="companyIdprops" style="width: 100%;" @change="handleCompanyChange" />
               </el-form-item>
             </el-col>
             <el-col :span="8">
@@ -474,7 +473,18 @@ const reset = () => {
   }
 
 }
+const companyIdprops = {
+  expandTrigger: 'hover' as const,
+  value: 'id',
+  label: 'name',
+  checkStrictly: true,
+}
+// 保险公司选择器改变时触发
+const handleCompanyChange = (e) => {
+  console.log(e)
 
+  recordForm.value.companyId = e[e.length - 1] || ''
+}
 let ReceiveDataRef1 = ref()
 // 选中的数据
 let selectedList = ref([])
@@ -767,7 +777,7 @@ const dictDetails = () => {
 // 保险公司
 let companyList = ref([])
 const initCompany = () => {
-  api.insuranceApi.leftList('').then((res: any) => {
+  api.agreementApi.findTree({ name: "", systemCode: localStorage.getItem('login_system') }).then((res: any) => {
     if (res.code == 200) {
       companyList.value = res.data
     }

+ 22 - 6
src/views/platform/platformReport.vue

@@ -2,7 +2,7 @@
   <PageMain class="vh100">
     <el-tabs v-model="activeName" style="height: 100%" class="demo-tabs" @tab-click="handleClick">
       <el-tab-pane style="height: 100%" name="1" label="保险公司报表">
-        <el-form v-model="recordForm" label-width="80">
+        <el-form v-model="recordForm" label-width="120">
           <el-row :gutter="20">
             <el-col :span="8">
               <el-form-item prop="a" label="保险公司">
@@ -11,6 +11,16 @@
                 </el-select>
               </el-form-item>
             </el-col>
+            <el-col :span="8">
+              <el-form-item prop="contactPerson" label="对接人">
+                <el-input v-model="recordForm.contactPerson" placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item prop="contactPersonPhone" label="对接人手机号">
+                <el-input v-model="recordForm.contactPersonPhone" placeholder="请输入"></el-input>
+              </el-form-item>
+            </el-col>
             <el-col :span="8">
               <el-form-item prop="time" label="创建时间">
                 <el-date-picker v-model="recordForm.time" type="daterange" format="YYYY-MM-DD"
@@ -31,7 +41,7 @@
                 </el-select>
               </el-form-item>
             </el-col>
-            <el-col :span="16" style="height: 50px; display: flex; align-items: start; justify-content: flex-end">
+            <el-col :span="24" style="height: 50px; display: flex; align-items: start; justify-content: flex-end">
               <el-button type="primary" @click="initData1()">查询</el-button>
               <el-button plain type="primary" @click="handleReset(1)">重置</el-button>
             </el-col>
@@ -39,10 +49,14 @@
         </el-form>
         <el-table height="calc(100% - 100px)" :data="recordData" row-key="companyId" :summary-method="getSummaries"
           show-summary>
-          <el-table-column prop="companyName" label="保险公司"></el-table-column>
+          <el-table-column prop="companyName" label="保险公司" width="240"></el-table-column>
           <el-table-column prop="totalReceivable" label="应收金额" width="240"></el-table-column>
-          <el-table-column prop="ptInvoicedAmount" label="已结算" width="200"></el-table-column>
-          <el-table-column prop="ptUnInvoicedAmount" label="未结算" width="200"></el-table-column>
+          <el-table-column prop="contactPerson" label="对接人" width="240"></el-table-column>
+          <el-table-column prop="contactPersonPhone" label="对接人手机号" width="240"></el-table-column>
+          <el-table-column prop="totalReceivable" label="应收金额" width="240"></el-table-column>
+          <el-table-column prop="totalSettlementAmount" label="已结算" width="200"></el-table-column>
+          <el-table-column prop="totalUnSettlementAmount" label="未结算" width="200"></el-table-column>
+          <el-table-column prop="totalPaymentDifference" label="总差额" width="200"></el-table-column>
           <el-table-column label="操作" fixed="right" width="120">
             <template #default="scope">
               <el-button link type="primary" @click="handleSettlementDetail(scope.row)">查看明细</el-button>
@@ -96,6 +110,8 @@
             <el-table-column prop="unSettledSuperviseFee" label="手续费" width="150"></el-table-column>
             <el-table-column prop="unSettledFollowFee" label="跟单费" width="150"></el-table-column>
           </el-table-column>
+          <el-table-column prop="totalPaymentDifference" label="总差额" width="200"></el-table-column>
+
         </el-table>
         <div class="pagination">
           <el-pagination v-model:current-page="pages" v-model:page-size="size" :page-sizes="[10, 20, 30, 40]"
@@ -267,7 +283,7 @@ const getSummaries = (param) => {
 }
 
 const initData1 = () => {
-  api.settlementApi.companySuperviseSettlementReport({
+  api.settlementApi.platformCompanySuperviseSettlementReport({
     companyId: recordForm.value.companyId,
     startTime: recordForm.value.time?.[0],
     endTime: recordForm.value.time?.[1],

+ 1 - 1
src/views/platform/ticket.vue

@@ -517,7 +517,7 @@ const handleSettlement = () => {
   // 查应收金额
   api.financeApi.getPlatformSettlementReceivableAmount({
     invoiceType: "5",
-    orderNos: tableData.value.map(item => item.orderNo),
+    orderNos: tableData.value.length > 0 ? tableData.value.map(item => item.orderNo) : selectedList.value.map(item => item.orderNo),
   }).then((res: any) => {
     if (res.code == 200) {
       receivablePremium.value = res.data

+ 66 - 19
src/views/receivable/documentary/documentaryReport.vue

@@ -6,9 +6,8 @@
           <el-row :gutter="20">
             <el-col :span="8">
               <el-form-item prop="a" label="保险公司">
-                <el-select v-model="recordForm.companyId" placeholder="请选择" clearable filterable>
-                  <el-option v-for="item in companyList" :key="item.id" :value="item.id" :label="item.name"></el-option>
-                </el-select>
+                <el-cascader filterable clearable placeholder="请选择" v-model="recordForm.companyId"
+                :options="companyList" :props="companyIdprops" style="width: 100%;" @change="handleCompanyChange" />
               </el-form-item>
             </el-col>
             <el-col :span="8">
@@ -59,7 +58,19 @@
           <el-table-column prop="totalUnSettlementAmount" label="未结算"></el-table-column>
           <el-table-column label="操作" fixed="right" width="120">
             <template #default="scope">
-              <el-button link type="primary">查看明细</el-button>
+              <div class="flex a-c">
+                <el-dropdown placement="bottom-start" trigger="click">
+                  <span class="el-dropdown-link">
+                    查看明细
+                  </span>
+                  <template #dropdown>
+                    <el-dropdown-menu>
+                      <el-dropdown-item @click="handleSettlementDetail(scope.row)">结算明细</el-dropdown-item>
+                      <el-dropdown-item @click="handleInvoiceRecord(scope.row)">开票明细</el-dropdown-item>
+                    </el-dropdown-menu>
+                  </template>
+                </el-dropdown>
+              </div>
             </template>
           </el-table-column>
         </el-table>
@@ -74,10 +85,8 @@
             </el-col>
             <el-col :span="8">
               <el-form-item prop="a" label="保险公司">
-                <el-select v-model="recordForm1.companyId" placeholder="请选择" clearable filterable>
-                  <el-option v-for="item in companyList" :key="item.companyCode" :value="item.companyCode"
-                    :label="item.name"></el-option>
-                </el-select>
+                <el-cascader filterable clearable placeholder="请选择" v-model="recordForm1.partnerCompanyId"
+                :options="companyList" :props="companyIdprops" style="width: 100%;" @change="handleCompanyChange" />
               </el-form-item>
             </el-col>
             <el-col :span="8">
@@ -167,10 +176,8 @@
             </el-col>
             <el-col :span="8">
               <el-form-item prop="companyId" label="保险公司">
-                <el-select v-model="recordForm2.companyId" placeholder="请选择" clearable filterable>
-                  <el-option v-for="item in companyList" :key="item.companyCode" :value="item.companyCode"
-                    :label="item.name"></el-option>
-                </el-select>
+                <el-cascader filterable clearable placeholder="请选择" v-model="recordForm2.companyId"
+                :options="companyList" :props="companyIdprops" style="width: 100%;" @change="handleCompanyChange" />
               </el-form-item>
             </el-col>
             <el-col :span="8">
@@ -244,10 +251,8 @@
             </el-col>
             <el-col :span="8">
               <el-form-item prop="companyId" label="保险公司">
-                <el-select v-model="recordForm3.companyId" placeholder="请选择" clearable filterable>
-                  <el-option v-for="item in companyList" :key="item.companyCode" :value="item.companyCode"
-                    :label="item.name"></el-option>
-                </el-select>
+                <el-cascader filterable clearable placeholder="请选择" v-model="recordForm3.companyId"
+                :options="companyList" :props="companyIdprops" style="width: 100%;" @change="handleCompanyChange" />
               </el-form-item>
             </el-col>
             <el-col :span="8">
@@ -323,6 +328,7 @@ const router = useRouter()
 const route = useRoute()
 let activeName = ref('1')
 const handleClick = (e) => {
+  activeName.value = e.props.name
   pages.value = 1
   size.value = 10
   switch (e.props.name) {
@@ -344,13 +350,35 @@ const handleClick = (e) => {
 // 保险公司
 let companyList = ref([])
 const initCompany = () => {
-  api.insuranceApi.leftList('').then((res: any) => {
+  api.agreementApi.findTree({ name: "", systemCode: localStorage.getItem('login_system') }).then((res: any) => {
     if (res.code == 200) {
       companyList.value = res.data
     }
   })
 }
-
+const companyIdprops = {
+  expandTrigger: 'hover' as const,
+  value: 'id',
+  label: 'name',
+  checkStrictly: true,
+}
+// 保险公司选择器改变时触发
+const handleCompanyChange = (e) => {
+  switch (activeName.value) {
+    case '1':
+      recordForm.value.companyId = e[e.length - 1] || ''
+      break;
+    case '2':
+      recordForm1.value.companyId = e[e.length - 1] || ''
+      break;
+    case '3':
+      recordForm2.value.companyId = e[e.length - 1] || ''
+      break;
+    case '4':
+      recordForm3.value.companyId = e[e.length - 1] || ''
+      break;
+  }
+}
 // 分页
 let pages = ref(1)
 let size = ref(10)
@@ -456,7 +484,7 @@ const initData2 = () => {
   api.settlementApi.followSettlementExcel({
     agreementType: '2',
     settlementId: recordForm1.value.settlementId,
-    companyId: recordForm1.value.companyId,
+    partnerCompanyId: recordForm1.value.partnerCompanyId,
     invoiceParty: recordForm1.value.invoiceParty,
     invoiceType: recordForm1.value.invoiceType,
     status: recordForm1.value.status,
@@ -581,6 +609,18 @@ const handleReset = (type) => {
       break;
   }
 }
+// 结算明细
+const handleSettlementDetail = (row) => {
+  activeName.value = '2'
+  recordForm1.value.partnerCompanyId = row.partnerCompanyId
+  initData2()
+}
+// 开票明细
+const handleInvoiceRecord = (row) => {
+  activeName.value = '3'
+  recordForm2.value.companyId = row.partnerCompanyId
+  initData3(['2'])
+}
 
 const handleExport = (type) => {
   switch (type) {
@@ -722,4 +762,11 @@ onMounted(() => {
 :deep(.subTable .el-table__header-wrapper) {
   display: none;
 }
+:deep(.el-dropdown-link) {
+  display: flex;
+  align-items: center;
+  margin-left: 15px;
+  color: var(--el-color-primary);
+  cursor: pointer;
+}
 </style>

+ 15 - 4
src/views/receivable/documentary/index.vue

@@ -11,9 +11,9 @@
             </el-col>
             <el-col :span="8">
               <el-form-item label="保险公司">
-                <el-select v-model="receivableForm.companyId" placeholder="请选择" clearable filterable>
-                  <el-option v-for="item in companyList" :key="item.id" :value="item.id" :label="item.name"></el-option>
-                </el-select>
+
+                <el-cascader filterable clearable placeholder="请选择" v-model="receivableForm.companyId"
+                  :options="companyList" :props="companyIdprops" style="width: 100%;" @change="handleCompanyChange" />
               </el-form-item>
             </el-col>
             <el-col :span="8">
@@ -591,7 +591,18 @@ const toDelete = (ids) => {
     })
   })
 }
+const companyIdprops = {
+  expandTrigger: 'hover' as const,
+  value: 'id',
+  label: 'name',
+  checkStrictly: true,
+}
+// 保险公司选择器改变时触发
+const handleCompanyChange = (e) => {
+  console.log(e)
 
+  receivableForm.value.companyId = e[e.length - 1] || ''
+}
 let ReceiveDataRef1 = ref()
 let ReceiveDataRef2 = ref()
 // 选中的数据
@@ -1002,7 +1013,7 @@ const initDept = () => {
 // 保险公司
 let companyList = ref([])
 const initCompany = () => {
-  api.insuranceApi.leftList('').then((res: any) => {
+  api.agreementApi.findTree({ name: "", systemCode: localStorage.getItem('login_system') }).then((res: any) => {
     if (res.code == 200) {
       companyList.value = res.data
     }

+ 18 - 9
src/views/receivable/handingFee/index.vue

@@ -11,9 +11,8 @@
             </el-col>
             <el-col :span="8">
               <el-form-item label="保险公司">
-                <el-select v-model="receivableForm.companyId" placeholder="请选择" clearable filterable>
-                  <el-option v-for="item in companyList" :key="item.id" :value="item.id" :label="item.name"></el-option>
-                </el-select>
+                <el-cascader filterable clearable placeholder="请选择" v-model="receivableForm.companyId"
+                  style="width: 100%;" :options="companyList" :props="companyIdprops" @change="handleCompanyChange" />
               </el-form-item>
             </el-col>
             <el-col :span="8">
@@ -27,7 +26,7 @@
               <el-form-item label="出单协议">
                 <el-select v-model="receivableForm.agreementId" placeholder="请选择" clearable filterable>
                   <el-option v-for="item in agreementList" :key="item.id" :value="item.id"
-                  :label="item.agreementTitle"></el-option>
+                    :label="item.agreementTitle"></el-option>
                 </el-select>
               </el-form-item>
             </el-col>
@@ -131,7 +130,9 @@
             <el-button class="radius-2px width-100" type="primary" @click="handleExport">导出</el-button>
           </div>
           <span class="col-108 m-r-8">
-            <el-button class="radius-2px width-100" :disabled="selectedList.some(item => item.invoiceStatusName === '已开票')" @click="handleBatchEdit">批量修改比例</el-button>
+            <el-button class="radius-2px width-100"
+              :disabled="selectedList.some(item => item.invoiceStatusName === '已开票')"
+              @click="handleBatchEdit">批量修改比例</el-button>
           </span>
           <span class="col-108 m-r-8">
             <el-dropdown class="width-100" trigger="click" placement="bottom" @command="dropdownCommand">
@@ -227,7 +228,7 @@
               <el-form-item label="出单协议">
                 <el-select v-model="receivableForm.agreementId" placeholder="请选择" clearable filterable>
                   <el-option v-for="item in agreementList" :key="item.id" :value="item.id"
-                  :label="item.agreementTitle"></el-option>
+                    :label="item.agreementTitle"></el-option>
                 </el-select>
               </el-form-item>
             </el-col>
@@ -570,7 +571,12 @@ const handleTabsClick = (e) => {
   selectedList.value = []
   activeName.value = e
 }
-
+const companyIdprops = {
+  expandTrigger: 'hover' as const,
+  value: 'id',
+  label: 'name',
+  checkStrictly: true,
+}
 let isTrue = ref(false)
 let receivableForm = ref({})
 
@@ -1019,13 +1025,16 @@ const dictDetails = () => {
 // 保险公司
 let companyList = ref([])
 const initCompany = () => {
-  api.insuranceApi.leftList('').then((res: any) => {
+  api.agreementApi.findTree({ name: "", systemCode: localStorage.getItem('login_system') }).then((res: any) => {
     if (res.code == 200) {
       companyList.value = res.data
     }
   })
 }
-
+// 保险公司选择器改变时触发
+const handleCompanyChange = (e: any) => {
+  receivableForm.value.companyId = e[e.length - 1] || ''
+}
 // 归属
 let deptOption = ref([])
 const cascaderProps = {