Przeglądaj źródła

1、应收应付表数据展示,条件查询
2、应收表、结算表、应收应付表导出功能

@dongkboy 2 lat temu
rodzic
commit
e2d5861cae

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

@@ -706,3 +706,27 @@ export const receivableAndSettlement = (data) => {
     data
   })
 }
+//应收表导出
+export const sourceExport = (data) => {
+  return axios({
+    url: "/InsReceivable/exportReceivable",
+    method: "post",
+    data
+  })
+}
+//结算导出
+export const SettlementExport = (data) => {
+  return axios({
+    url: "/InsReceivable/exportSettlement",
+    method: "post",
+    data
+  })
+}
+//导出应收应付表
+export const excelReceivableAndSettlementExport = (data) => {
+  return axios({
+    url: "/InsReceivable/excelReceivableAndSettlement",
+    method: "post",
+    data
+  })
+}

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

@@ -10,7 +10,7 @@
         color: '#606266',
       }" style="width: 100%" :row-class-name="tableRowClassName">
       <el-table-column type="selection" width="40" fixed
-        v-if="showBatchDelete || showBatchSettled || showBatchPrint"></el-table-column>
+        v-if="showBatchDelete || showBatchSettled "></el-table-column>
       <el-table-column v-if="SerialShow" label="序号" type="index" width="50" align="center"></el-table-column>
       <template v-for="column in columns">
         <el-table-column header-align="center" align="center" :prop="column.prop" :label="column.label"
@@ -73,8 +73,10 @@
         v-if="showBatchDelete & showOperation" />
       <kt-button :label="settledName" :perms="permsDelete" :size="size" type="danger" @click="handleBatchSettled()"
         :disabled="selections.length === 0" style="float: left" v-if="showBatchSettled" />
-      <kt-button label="导出Excel" :perms="permsDelete" :size="size" type="danger" @click="handleBatchPrint()"
-        :disabled="selections.length === 0" style="float: left" v-if="showBatchPrint" />
+      <!-- <kt-button label="导出Excel" :perms="permsDelete" :size="size" type="danger" @click="handleBatchPrint()"
+        :disabled="selections.length === 0" style="float: left" v-if="showBatchPrint" /> -->
+        <kt-button label="导出Excel" :perms="permsDelete" :size="size" type="danger" @click="handleBatchPrint()"
+        style="float: left" v-if="showBatchPrint" />
       <el-pagination @size-change="handleSizeChange" layout="total, sizes, prev, pager, next, jumper"
         @current-change="refreshPageRequest" :current-page="data.pageNum" :page-size="data.pageSize"
         :page-sizes="[10, 20, 50, 100, 200, 300, 400, 500]" :total="data.totalSize" style="float: left; margin-left: 20px"

+ 14 - 10
src/views/FinancialManagement/ReconciliationSystem/ReceivablePayableCollection/ReceivablePayableCollection.vue

@@ -67,6 +67,14 @@
               </el-select>
             </el-form-item>
           </el-col>
+          <el-col :span="6">
+            <el-form-item label="保司结算状态">
+              <el-select v-model="pageRequest.insuranceClearingState" placeholder="请选择状态" class="widths">
+                <el-option label="未结算" value="0"></el-option>
+                <el-option label="已结算" value="1"></el-option>
+              </el-select>
+            </el-form-item>
+          </el-col>
           <el-col :span="6">
             <el-form-item label="保险公司">
               <el-select
@@ -145,7 +153,7 @@
         permsDelete="sys:user:delete"
         :showBatchDelete="false"
         :showBatchSettled="false"
-        :showBatchPrint="false"
+        :showBatchPrint="true"
         permsButton1="sys:user:edit"
         permsButton2="sys:user:edit"
         permsButton3="sys:user:edit"
@@ -183,6 +191,7 @@ export default {
         channel: "", //渠道
         channelClassification: "", //渠道分类
         clearingState: "", //结算状态
+        insuranceClearingState:"",//保司结算状态
         insuranceDeptId:"",//
         insuranceId: "", //保险公司
         insuredName: "",
@@ -254,6 +263,7 @@ export default {
           minWidth: 160,
         },
         { prop: "clearingState", label: "结算状态", minWidth: 160 },
+        { prop: "insuranceClearingState", label: "保司结算状态", minWidth: 160 },
       ],
       row: {},
       companyList: [],
@@ -332,16 +342,12 @@ export default {
       });
     },
     handlePrint() {
-      this.$api.task.excelExport(this.pageRequest).then((res) => {
-        console.log(res);
-        let blob = new Blob([res], {
-          type: "application/vnd.ms-excel",
-        }); // 2.获取请求返回的response对象中的blob 设置文件类型,这里以excel为例
-        let url = window.URL.createObjectURL(blob); // 3.创建一个临时的url指向blob对象
+      this.$api.task.excelReceivableAndSettlementExport(this.pageRequest).then((res) => {
+        let url = process.env.BASE_URL + res.msg;
         // 4.创建url之后可以模拟对此文件对象的一系列操作,例如:预览、下载
         let a = document.createElement("a");
         a.href = url;
-        a.download = "手续费管理清单.xlsx";
+        a.download = "应收应付表.xlsx";
         a.click();
         // 5.释放这个临时的对象url
         window.URL.revokeObjectURL(url);
@@ -349,7 +355,6 @@ export default {
     },
     //联级选择器触发事件
     handleChange(val) {
-      console.log(val);
       if (val.length !== 0) {
         this.pageRequest.deptId = val.at(-1);
       } else {
@@ -364,7 +369,6 @@ export default {
       that.$api.dict
         .findByLableName(typeName)
         .then(function (res) {
-          console.log(res);
           that[typeName + "options"] = res.data; // 把获取到的数据赋给this.data
         })
         .catch(function (error) {

+ 21 - 26
src/views/FinancialManagement/ReconciliationSystem/ReceivablePayableCollection/SettlementSource.vue

@@ -45,22 +45,7 @@
               </el-select>
             </el-form-item>
           </el-col>
-          <el-col :span="6">
-            <el-form-item label="签单日期">
-              <el-date-picker
-                v-model="signDateTime"
-                type="daterange"
-                @change="signDateChange"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期"
-                class="widths"
-                value-format="yyyy-MM-dd"
-                style="width: 220px"
-                clearable
-              >
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
+
           <el-col :span="6">
             <el-form-item label="交强保单号:">
               <el-input
@@ -91,6 +76,22 @@
               ></el-input>
             </el-form-item>
           </el-col>
+          <el-col :span="6">
+            <el-form-item label="签单日期">
+              <el-date-picker
+                v-model="signDateTime"
+                type="daterange"
+                @change="signDateChange"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                class="widths"
+                value-format="yyyy-MM-dd"
+                style="width: 220px"
+                clearable
+              >
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
         </el-row>
       </el-form>
       <div class="flex j-end" style="margin-right: 100px">
@@ -120,7 +121,7 @@
         permsDelete="sys:user:delete"
         :showBatchDelete="false"
         :showBatchSettled="false"
-        :showBatchPrint="false"
+        :showBatchPrint="true"
         permsButton1="sys:user:edit"
         permsButton2="sys:user:edit"
         permsButton3="sys:user:edit"
@@ -364,16 +365,12 @@ export default {
     },
 
     handlePrint() {
-      this.$api.task.excelExport(this.pageRequest).then((res) => {
-        console.log(res);
-        let blob = new Blob([res], {
-          type: "application/vnd.ms-excel",
-        }); // 2.获取请求返回的response对象中的blob 设置文件类型,这里以excel为例
-        let url = window.URL.createObjectURL(blob); // 3.创建一个临时的url指向blob对象
+      this.$api.task.SettlementExport(this.pageRequest).then((res) => {
+        let url = process.env.BASE_URL + res.msg;
         // 4.创建url之后可以模拟对此文件对象的一系列操作,例如:预览、下载
         let a = document.createElement("a");
         a.href = url;
-        a.download = "手续费管理清单.xlsx";
+        a.download = "结算来源表.xlsx";
         a.click();
         // 5.释放这个临时的对象url
         window.URL.revokeObjectURL(url);
@@ -381,7 +378,6 @@ export default {
     },
     //联级选择器触发事件
     handleChange(val) {
-      console.log(val);
       if (val.length !== 0) {
         this.pageRequest.deptId = val.at(-1);
       } else {
@@ -425,7 +421,6 @@ export default {
       that.$api.dict
         .findByLableName(typeName)
         .then(function (res) {
-          console.log(res);
           that[typeName + "options"] = res.data; // 把获取到的数据赋给this.data
         })
         .catch(function (error) {

+ 92 - 48
src/views/FinancialManagement/ReconciliationSystem/ReceivablePayableCollection/Source.vue

@@ -55,6 +55,37 @@
               ></el-input>
             </el-form-item>
           </el-col>
+
+          <el-col :span="6">
+            <el-form-item label="结算日期">
+              <el-date-picker
+                v-model="clearingTime"
+                type="daterange"
+                @change="clearingTimeChange"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                value-format="yyyy-MM-dd"
+                clearable
+                style="width: 250px"
+              >
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
+          <el-col :span="6">
+            <el-form-item label="出单日期">
+              <el-date-picker
+                v-model="signingTime"
+                type="daterange"
+                @change="signingTimeChange"
+                start-placeholder="开始日期"
+                end-placeholder="结束日期"
+                value-format="yyyy-MM-dd"
+                style="width: 250px"
+                clearable
+              >
+              </el-date-picker>
+            </el-form-item>
+          </el-col>
           <el-col :span="6">
             <el-form-item label="交强保单号">
               <el-input
@@ -86,35 +117,15 @@
             </el-form-item>
           </el-col>
           <el-col :span="6">
-            <el-form-item label="结算日期">
-              <el-date-picker
-                v-model="clearingTime"
-                type="daterange"
-                @change="clearingTimeChange"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期"
-                class="widths"
-                value-format="yyyy-MM-dd"
-                style="width: 220px"
-                clearable
-              >
-              </el-date-picker>
-            </el-form-item>
-          </el-col>
-          <el-col :span="6">
-            <el-form-item label="出单日期">
-              <el-date-picker
-                v-model="signingTime"
-                type="daterange"
-                @change="signingTimeChange"
-                start-placeholder="开始日期"
-                end-placeholder="结束日期"
+            <el-form-item label="保司结算状态">
+              <el-select
+                v-model="pageRequest.insuranceClearingState"
+                placeholder="请选择状态"
                 class="widths"
-                value-format="yyyy-MM-dd"
-                style="width: 220px"
-                clearable
               >
-              </el-date-picker>
+                <el-option label="未结算" value="0"></el-option>
+                <el-option label="已结算" value="1"></el-option>
+              </el-select>
             </el-form-item>
           </el-col>
         </el-row>
@@ -146,7 +157,7 @@
         permsDelete="sys:user:delete"
         :showBatchDelete="false"
         :showBatchSettled="false"
-        :showBatchPrint="false"
+        :showBatchPrint="true"
         permsButton1="sys:user:edit"
         permsButton2="sys:user:edit"
         permsButton3="sys:user:edit"
@@ -234,6 +245,16 @@
             class="widths"
           ></el-input>
         </el-form-item>
+        <el-form-item label="保司结算状态:">
+          <el-select
+            v-model="updateform.insuranceClearingState"
+            placeholder="请选择状态"
+            class="widths"
+          >
+            <el-option label="未结算" value="0"></el-option>
+            <el-option label="已结算" value="1"></el-option>
+          </el-select>
+        </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button size="small" @click="dialogFormVisible = false"
@@ -255,8 +276,8 @@ export default {
   },
   data() {
     return {
-      clearingTime:[],
-      signingTime:[],
+      clearingTime: [],
+      signingTime: [],
       pageRequest: {
         //查询的默认条件
         pageNum: 1,
@@ -270,6 +291,7 @@ export default {
         jqPolicyId: "", //交强保单号
         syPolicyId: "", //商业保单号
         nonCarPolicyId: "", //非车保单号
+        insuranceClearingState: "",
       },
       dialogFormVisible: false,
       // 右侧列表查询数据Start
@@ -284,6 +306,7 @@ export default {
         jqReceivableRatio: "",
         syReceivableRatio: "",
         nonCarReceivableRatio: "",
+        insuranceClearingState: "",
       },
       columns: [
         //数据列
@@ -343,10 +366,21 @@ export default {
           minWidth: 160,
         },
         { prop: "maxReceivable", label: "最大应付金额", minWidth: 160 },
-        { prop: "clearingState", label: "结算状态", minWidth: 160 },
+        {
+          prop: "clearingState",
+          label: "结算状态",
+          minWidth: 160,
+          formatter: this.clearingStateFormatter,
+        },
+        {
+          prop: "insuranceClearingState",
+          label: "保司结算状态",
+          minWidth: 160,
+          formatter: this.insuranceClearingStateFormatter,
+        },
       ],
       row: {},
-      companyList:[],
+      companyList: [],
     };
   },
   created() {
@@ -354,13 +388,29 @@ export default {
   },
   mounted() {},
   methods: {
-    clearingTimeChange(e){
-      console.log(e)
-      this.pageRequest.clearingTime=e.toString();
+    clearingStateFormatter(row, column) {
+      let label = "";
+      if (row.clearingState == 0) {
+        label = "未结算";
+      } else {
+        label = "已结算";
+      }
+      return label;
     },
-    signingTimeChange(e){
-      this.pageRequest.signingTime=e.toString();
-
+    insuranceClearingStateFormatter(row, column) {
+      let label = "";
+      if (row.insuranceClearingState == 0) {
+        label = "未结算";
+      } else {
+        label = "已结算";
+      }
+      return label;
+    },
+    clearingTimeChange(e) {
+      this.pageRequest.clearingTime = e.toString();
+    },
+    signingTimeChange(e) {
+      this.pageRequest.signingTime = e.toString();
     },
     //保险公司查询
     companyInt() {
@@ -422,16 +472,12 @@ export default {
       });
     },
     handlePrint() {
-      this.$api.task.excelExport(this.pageRequest).then((res) => {
-        console.log(res);
-        let blob = new Blob([res], {
-          type: "application/vnd.ms-excel",
-        }); // 2.获取请求返回的response对象中的blob 设置文件类型,这里以excel为例
-        let url = window.URL.createObjectURL(blob); // 3.创建一个临时的url指向blob对象
+      this.$api.task.sourceExport(this.pageRequest).then((res) => {
+        let url = process.env.BASE_URL + res.msg;
         // 4.创建url之后可以模拟对此文件对象的一系列操作,例如:预览、下载
         let a = document.createElement("a");
         a.href = url;
-        a.download = "手续费管理清单.xlsx";
+        a.download = "应收来源表.xlsx";
         a.click();
         // 5.释放这个临时的对象url
         window.URL.revokeObjectURL(url);
@@ -439,7 +485,6 @@ export default {
     },
     //联级选择器触发事件
     handleChange(val) {
-      console.log(val);
       if (val.length !== 0) {
         this.pageRequest.deptId = val.at(-1);
       } else {
@@ -454,7 +499,6 @@ export default {
       that.$api.dict
         .findByLableName(typeName)
         .then(function (res) {
-          console.log(res);
           that[typeName + "options"] = res.data; // 把获取到的数据赋给this.data
         })
         .catch(function (error) {
@@ -482,7 +526,7 @@ export default {
 </script>
 <style lang="scss" scoped>
 .widths {
-  width: 220px;
+  width: 250px;
 }
 </style>