|
|
@@ -0,0 +1,398 @@
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <div class="p-2">
|
|
|
+ <el-form
|
|
|
+ :inline="true"
|
|
|
+ :model="pageRequest"
|
|
|
+ size="small"
|
|
|
+ label-width="120px"
|
|
|
+ >
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="渠道">
|
|
|
+ <el-input
|
|
|
+ v-model="pageRequest.channel"
|
|
|
+ placeholder="请输入渠道"
|
|
|
+ class="widths"
|
|
|
+ clearable
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="渠道分类">
|
|
|
+ <el-input
|
|
|
+ v-model="pageRequest.channelClassification"
|
|
|
+ placeholder="请输入渠道分类"
|
|
|
+ class="widths"
|
|
|
+ clearable
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="被保人">
|
|
|
+ <el-input
|
|
|
+ v-model="pageRequest.insuredName"
|
|
|
+ placeholder="请输入被保人"
|
|
|
+ class="widths"
|
|
|
+ clearable
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="车牌号">
|
|
|
+ <el-input
|
|
|
+ v-model="pageRequest.licenseNo"
|
|
|
+ placeholder="请输入车牌号"
|
|
|
+ class="widths"
|
|
|
+ clearable
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="运营团队">
|
|
|
+ <el-input
|
|
|
+ v-model="pageRequest.operationsTeam"
|
|
|
+ placeholder="请输入运营团队"
|
|
|
+ class="widths"
|
|
|
+ clearable
|
|
|
+ ></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="6">
|
|
|
+ <el-form-item label="结算状态">
|
|
|
+ <el-select v-model="pageRequest.clearingState" 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
|
|
|
+ v-model="pageRequest.insuranceId"
|
|
|
+ filterable
|
|
|
+ class="widths"
|
|
|
+ clearable
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="val in companyList"
|
|
|
+ :key="val.id"
|
|
|
+ :label="val.name"
|
|
|
+ :value="val.id"
|
|
|
+ ></el-option>
|
|
|
+ </el-select>
|
|
|
+ </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="signDateTime"
|
|
|
+ type="daterange"
|
|
|
+ @change="signDateTimeChange"
|
|
|
+ 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">
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ size="small"
|
|
|
+ @click="Search"
|
|
|
+ style="margin-right: 20px"
|
|
|
+ >查询</el-button
|
|
|
+ >
|
|
|
+ <el-upload
|
|
|
+ class="upload-demo"
|
|
|
+ :auto-upload="false"
|
|
|
+ :on-change="writeOffUpload"
|
|
|
+ action="###"
|
|
|
+ :show-file-list="false"
|
|
|
+ >
|
|
|
+ <el-button size="small" type="primary">数据导入</el-button>
|
|
|
+ </el-upload>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-main ref="elMain" style="padding: 0px">
|
|
|
+ <kt-common-table
|
|
|
+ :SerialShow="false"
|
|
|
+ :operationWidth="150"
|
|
|
+ :showOperation="false"
|
|
|
+ permsDelete="sys:user:delete"
|
|
|
+ :showBatchDelete="false"
|
|
|
+ :showBatchSettled="false"
|
|
|
+ :showBatchPrint="false"
|
|
|
+ permsButton1="sys:user:edit"
|
|
|
+ permsButton2="sys:user:edit"
|
|
|
+ permsButton3="sys:user:edit"
|
|
|
+ :data="pageResult"
|
|
|
+ :columns="columns"
|
|
|
+ @findPage="findPage"
|
|
|
+ keyName="policyno"
|
|
|
+ settledName="批量生成"
|
|
|
+ @handleSettled="handleTableSettled"
|
|
|
+ @handlePrint="handlePrint"
|
|
|
+ >
|
|
|
+ </kt-common-table>
|
|
|
+ </el-main>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+import KtCommonTable from "@/views/Core/KtCommonTable.vue"; //表格组件
|
|
|
+import CommonUtil from "@/utils/comutil.js";
|
|
|
+export default {
|
|
|
+ components: {
|
|
|
+ KtCommonTable,
|
|
|
+ },
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ clearingTime: [],
|
|
|
+ signDateTime: [],
|
|
|
+ pageRequest: {
|
|
|
+ //查询的默认条件
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 20,
|
|
|
+ agencySettlementTimeStartTime: "", //代理时间
|
|
|
+ agencySettlementTimeEndTime: "",
|
|
|
+ signDateStartTime: "", //签约时间
|
|
|
+ signDateEndTime: "",
|
|
|
+ channel: "", //渠道
|
|
|
+ channelClassification: "", //渠道分类
|
|
|
+ clearingState: "", //结算状态
|
|
|
+ insuranceDeptId:"",//
|
|
|
+ insuranceId: "", //保险公司
|
|
|
+ insuredName: "",
|
|
|
+ licenseNo: "",
|
|
|
+ operationsTeam: "",
|
|
|
+ },
|
|
|
+ // 右侧列表查询数据Start
|
|
|
+ pageResult: [],
|
|
|
+ columns: [
|
|
|
+ //数据列
|
|
|
+ { prop: "operationsTeam", label: "运营团队", minWidth: 160 },
|
|
|
+ { prop: "channelClassification", label: "渠道分类", minWidth: 160 },
|
|
|
+ { prop: "signDate", label: "签约日期", minWidth: 160 },
|
|
|
+ { prop: "channel", label: "渠道", minWidth: 100 },
|
|
|
+ { prop: "licenseNo", label: "车牌号", minWidth: 160 },
|
|
|
+ { prop: "insuredName", label: "被保险人", minWidth: 160 },
|
|
|
+ { prop: "insuranceId", label: "保险id", minWidth: 160 },
|
|
|
+ { prop: "insuranceCompany", label: "保险公司", minWidth: 160 },
|
|
|
+ { prop: "insuranceDeptId", label: "部门id", minWidth: 160 },
|
|
|
+ { prop: "insuranceDept", label: "保险部门", minWidth: 160 },
|
|
|
+ { prop: "insuranceType", label: "险种", minWidth: 160 },
|
|
|
+ { prop: "businessOwner", label: "业务所有者", minWidth: 160 },
|
|
|
+ { prop: "jqPolicyId", label: "交强保单号", minWidth: 160 },
|
|
|
+ { prop: "jqPremiumTax", label: "交强险税额", minWidth: 160 },
|
|
|
+ { prop: "jqPremium", label: "交强险保费", minWidth: 160 },
|
|
|
+ { prop: "syPolicyId", label: "商业保单号", minWidth: 160 },
|
|
|
+ { prop: "syPremiumTax", label: "商业险税额", minWidth: 160 },
|
|
|
+ { prop: "syPremium", label: "商业险保费", minWidth: 160 },
|
|
|
+ { prop: "nonCarPolicyId", label: "非车保单号", minWidth: 160 },
|
|
|
+ { prop: "nonCarPremiumTax", label: "非车险税额", minWidth: 160 },
|
|
|
+ { prop: "nonCarPremium", label: "非车险保费", minWidth: 160 },
|
|
|
+ { prop: "agencySettlementTime", label: "代理结算时间", minWidth: 160 },
|
|
|
+ { prop: "taxAmount", label: "税额", minWidth: 160 },
|
|
|
+ { prop: "jqReceivableRatio", label: "交强险应收比例", minWidth: 160 },
|
|
|
+ { prop: "jqPremiumRatio", label: "交强险保费比例", minWidth: 160 },
|
|
|
+ { prop: "jqNonCopyingRatio", label: "交强险非复制比例", minWidth: 160 },
|
|
|
+ { prop: "syReceivableRatio", label: "商业险应收比例", minWidth: 160 },
|
|
|
+ { prop: "syPremiumRatio", label: "商业险保费比例", minWidth: 160 },
|
|
|
+ { prop: "syNonCopyingRatio", label: "商业险非复制比例", minWidth: 160 },
|
|
|
+ {
|
|
|
+ prop: "nonCarReceivableRatio",
|
|
|
+ label: "非车险应收比例",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ { prop: "nonCarPremiumRatio", label: "非车险保费比例", minWidth: 160 },
|
|
|
+ {
|
|
|
+ prop: "nonCarNonCopyingRatio",
|
|
|
+ label: "非车险非复制比例",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ { prop: "premium", label: "手续费金额", minWidth: 160 },
|
|
|
+ { prop: "nonCopying", label: "非跟单金额", minWidth: 160 },
|
|
|
+ { prop: "receivable", label: "应收", minWidth: 160 },
|
|
|
+ { prop: "subsidyRatio", label: "补贴比例", minWidth: 160 },
|
|
|
+ { prop: "subsidyAmount", label: "补贴金额", minWidth: 160 },
|
|
|
+ {
|
|
|
+ prop: "maxJqReceivableRatio",
|
|
|
+ label: "最大交强险应收比例",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "maxSyReceivableRatio",
|
|
|
+ label: "最大商业险应收比例",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ {
|
|
|
+ prop: "maxNonCarReceivableRatio",
|
|
|
+ label: "最大非车险应收比例",
|
|
|
+ minWidth: 160,
|
|
|
+ },
|
|
|
+ { prop: "clearingState", label: "结算状态", minWidth: 160 },
|
|
|
+ ],
|
|
|
+ row: {},
|
|
|
+ companyList: [],
|
|
|
+ };
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.companyInt();
|
|
|
+ },
|
|
|
+ mounted() {},
|
|
|
+ methods: {
|
|
|
+ clearingTimeChange(e) {
|
|
|
+ this.pageRequest.agencySettlementTimeStartTime = e[0];
|
|
|
+ this.pageRequest.agencySettlementTimeEndTime = e[1];
|
|
|
+ },
|
|
|
+ signDateTimeChange(e) {
|
|
|
+ this.pageRequest.signDateStartTime = e[0];
|
|
|
+ this.pageRequest.signDateEndTime = e[1];
|
|
|
+ },
|
|
|
+ //保险公司查询
|
|
|
+ companyInt() {
|
|
|
+ this.$api.letter.gainTopList().then((res) => {
|
|
|
+ this.companyList = res.data;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //附件上传
|
|
|
+ writeOffUpload(file) {
|
|
|
+ var file = file.raw;
|
|
|
+ const params = new FormData(); // 声明formData数据类型
|
|
|
+ params.append("multipartFile", file);
|
|
|
+ params.append("type", "settle");
|
|
|
+ this.$api.letter.uploadFile(params).then((res) => {
|
|
|
+ if (res.code == "200") {
|
|
|
+ let url = process.env.BASE_URL + res.data.url;
|
|
|
+ this.$api.task.SourceExcel(url).then((res) => {
|
|
|
+ if (res.code == "200") {
|
|
|
+ this.$message({
|
|
|
+ type: "success",
|
|
|
+ message: res.msg,
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: "error",
|
|
|
+ message: res.msg,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ handleTableSettled(ids) {
|
|
|
+ this.plyNoList = ids;
|
|
|
+ this.dialogVisible11 = true;
|
|
|
+ },
|
|
|
+ Search() {
|
|
|
+ this.findPage();
|
|
|
+ },
|
|
|
+ sourceUpdate({ row, column }) {
|
|
|
+ this.dialogFormVisible = true;
|
|
|
+ this.updateform = row;
|
|
|
+ },
|
|
|
+ updateSubmit() {
|
|
|
+ this.$api.task.SourceUpdate(this.updateform).then((res) => {
|
|
|
+ if (res.code == "200") {
|
|
|
+ this.$message({
|
|
|
+ type: "success",
|
|
|
+ message: res.msg,
|
|
|
+ });
|
|
|
+ this.dialogFormVisible = false;
|
|
|
+ this.findPage();
|
|
|
+ } else {
|
|
|
+ this.$message({
|
|
|
+ type: "error",
|
|
|
+ message: res.msg,
|
|
|
+ });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ 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对象
|
|
|
+ // 4.创建url之后可以模拟对此文件对象的一系列操作,例如:预览、下载
|
|
|
+ let a = document.createElement("a");
|
|
|
+ a.href = url;
|
|
|
+ a.download = "手续费管理清单.xlsx";
|
|
|
+ a.click();
|
|
|
+ // 5.释放这个临时的对象url
|
|
|
+ window.URL.revokeObjectURL(url);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //联级选择器触发事件
|
|
|
+ handleChange(val) {
|
|
|
+ console.log(val);
|
|
|
+ if (val.length !== 0) {
|
|
|
+ this.pageRequest.deptId = val.at(-1);
|
|
|
+ } else {
|
|
|
+ this.pageRequest.deptId = "";
|
|
|
+ }
|
|
|
+ },
|
|
|
+ //-- formatter begin--
|
|
|
+ //点击查询按钮
|
|
|
+ //--数据字典 begin --
|
|
|
+ getDictItems: function (typeName) {
|
|
|
+ let that = this;
|
|
|
+ that.$api.dict
|
|
|
+ .findByLableName(typeName)
|
|
|
+ .then(function (res) {
|
|
|
+ console.log(res);
|
|
|
+ that[typeName + "options"] = res.data; // 把获取到的数据赋给this.data
|
|
|
+ })
|
|
|
+ .catch(function (error) {
|
|
|
+ that[typeName + "options"] = [];
|
|
|
+ });
|
|
|
+ },
|
|
|
+ //--数据字典 end --
|
|
|
+ // 右侧列表的方法Start
|
|
|
+ findPage(data) {
|
|
|
+ // 获取分页数据
|
|
|
+ let that = this;
|
|
|
+ if (data && data.pageRequest) {
|
|
|
+ this.pageRequest.pageNum = data.pageRequest.pageNum;
|
|
|
+ this.pageRequest.pageSize = data.pageRequest.pageSize;
|
|
|
+ }
|
|
|
+ that.$api.task
|
|
|
+ .receivableAndSettlement(that.pageRequest)
|
|
|
+ .then((res) => {
|
|
|
+ that.pageResult = res.data;
|
|
|
+ })
|
|
|
+ .then(data != null ? data.callback : "");
|
|
|
+ },
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
+<style lang="scss" scoped>
|
|
|
+.widths {
|
|
|
+ width: 220px;
|
|
|
+}
|
|
|
+</style>
|
|
|
+
|