|
|
@@ -1,22 +1,24 @@
|
|
|
<template>
|
|
|
<div class="quote">
|
|
|
- <div class="quote-tree">
|
|
|
- <div><h2>部门所属</h2></div>
|
|
|
+ <div class="quote-tree" style="border-radius: 8px">
|
|
|
+ <div><h2>组织树</h2></div>
|
|
|
<div>
|
|
|
<!-- <a-tree :tree-data="treeData" /> -->
|
|
|
- <tree @getList="getVerification"></tree>
|
|
|
+ <tree @getList="chooseUser"></tree>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="back-line-main">
|
|
|
- <div class="back-line-header">
|
|
|
- <div class="back-line-header-title">
|
|
|
- <h2>财务应收</h2>
|
|
|
+ <!-- <div class="back-line-header"></div> -->
|
|
|
+ <div style="background-color: #fff">
|
|
|
+ <div class="table-title">
|
|
|
+ <h2>代理人</h2>
|
|
|
<div>
|
|
|
<span>时间筛选</span>
|
|
|
<a-range-picker
|
|
|
@change="onChangeTime"
|
|
|
v-model="formState.time"
|
|
|
value-format="YYYY-MM-DD"
|
|
|
+ style="margin-left: 10px"
|
|
|
>
|
|
|
<a-icon slot="suffixIcon" type="calendar" />
|
|
|
</a-range-picker>
|
|
|
@@ -25,57 +27,92 @@
|
|
|
button-style="solid"
|
|
|
v-model="formState.dateType"
|
|
|
@change="getVerification()"
|
|
|
+ style="margin-left: 10px"
|
|
|
>
|
|
|
<a-radio-button
|
|
|
value="1"
|
|
|
@click="
|
|
|
(formState.time = []),
|
|
|
- (formState.beginDate = ''),
|
|
|
- (formState.endDate = '')
|
|
|
+ (formState.createtimeStart = ''),
|
|
|
+ (formState.createtimeEnd = '')
|
|
|
"
|
|
|
>
|
|
|
- 近1月
|
|
|
+ 当天
|
|
|
</a-radio-button>
|
|
|
<a-radio-button
|
|
|
value="2"
|
|
|
@click="
|
|
|
(formState.time = []),
|
|
|
- (formState.beginDate = ''),
|
|
|
- (formState.endDate = '')
|
|
|
+ (formState.createtimeStart = ''),
|
|
|
+ (formState.createtimeEnd = '')
|
|
|
"
|
|
|
>
|
|
|
- 近3月
|
|
|
+ 近7天
|
|
|
</a-radio-button>
|
|
|
<a-radio-button
|
|
|
value="3"
|
|
|
@click="
|
|
|
(formState.time = []),
|
|
|
- (formState.beginDate = ''),
|
|
|
- (formState.endDate = '')
|
|
|
+ (formState.createtimeStart = ''),
|
|
|
+ (formState.createtimeEnd = '')
|
|
|
"
|
|
|
>
|
|
|
- 近半年
|
|
|
+ 近30天
|
|
|
</a-radio-button>
|
|
|
</a-radio-group>
|
|
|
</div>
|
|
|
</div>
|
|
|
+ <a-form
|
|
|
+ layout="inline"
|
|
|
+ :model="formState"
|
|
|
+ style="padding: 15px; box-sizing: border-box"
|
|
|
+ >
|
|
|
+ <a-form-item label="姓名" :colon="false">
|
|
|
+ <a-input
|
|
|
+ placeholder="请输入姓名"
|
|
|
+ v-model="formState.userName"
|
|
|
+ allowClear
|
|
|
+ style="width: 200px"
|
|
|
+ ></a-input>
|
|
|
+ </a-form-item>
|
|
|
+ <a-form-item label="工号" :colon="false">
|
|
|
+ <a-input
|
|
|
+ placeholder="请输入工号"
|
|
|
+ v-model="formState.userId"
|
|
|
+ style="width: 200px"
|
|
|
+ allowClear
|
|
|
+ ></a-input>
|
|
|
+ </a-form-item>
|
|
|
+ <a-form-item
|
|
|
+ style="
|
|
|
+ flex: 1;
|
|
|
+ display: flex;
|
|
|
+ justify-content: flex-end;
|
|
|
+ padding-right: 15px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ align-items: flex-end;
|
|
|
+ "
|
|
|
+ >
|
|
|
+ <a-button type="primary" @click="getList">查询</a-button>
|
|
|
+ </a-form-item>
|
|
|
+ </a-form>
|
|
|
+
|
|
|
+ <standard-table
|
|
|
+ bordered
|
|
|
+ :columns="columns"
|
|
|
+ :dataSource="tableList"
|
|
|
+ :pagination="pagination"
|
|
|
+ @clear="onClear"
|
|
|
+ @change="onChange"
|
|
|
+ :loading="loading"
|
|
|
+ >
|
|
|
+ <div slot="operation" slot-scope="{ text, record }">
|
|
|
+ <a-button type="link" @click="watchMessage({ text, record })"
|
|
|
+ >详情</a-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
+ </standard-table>
|
|
|
</div>
|
|
|
- <standard-table
|
|
|
- bordered
|
|
|
- :columns="columns"
|
|
|
- :dataSource="tableList"
|
|
|
- :pagination="pagination"
|
|
|
- @clear="onClear"
|
|
|
- @change="onChange"
|
|
|
- :loading="loading"
|
|
|
- >
|
|
|
- <div slot="count" slot-scope="{ text }">
|
|
|
- {{ text != "-" ? text + "次" : text }}
|
|
|
- </div>
|
|
|
- <div slot="rate" slot-scope="{ text }">
|
|
|
- {{ text != "-" ? (text * 100).toFixed(2) + "%" : text }}
|
|
|
- </div>
|
|
|
- </standard-table>
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
|
@@ -88,76 +125,40 @@ import moment from "moment";
|
|
|
|
|
|
const columns = [
|
|
|
{
|
|
|
- title: "保险公司",
|
|
|
- dataIndex: "companyName",
|
|
|
+ title: "姓名",
|
|
|
+ dataIndex: "userName",
|
|
|
},
|
|
|
|
|
|
{
|
|
|
- title: "合作公司",
|
|
|
- dataIndex: "parterCompanyName",
|
|
|
+ title: "工号",
|
|
|
+ dataIndex: "userId",
|
|
|
// scopedSlots: { customRender: "parterCompanyName" },
|
|
|
},
|
|
|
- {
|
|
|
- title: "报价数",
|
|
|
-
|
|
|
- // scopedSlots: { customRender: "qutationCount" },
|
|
|
- children: [
|
|
|
- {
|
|
|
- title: "总报价",
|
|
|
- dataIndex: "allNumber",
|
|
|
- scopedSlots: { customRender: "count" },
|
|
|
- },
|
|
|
- {
|
|
|
- title: "报价成功",
|
|
|
- dataIndex: "orderSuccessNumber",
|
|
|
- scopedSlots: { customRender: "count" },
|
|
|
- },
|
|
|
- {
|
|
|
- title: "报价失败",
|
|
|
- dataIndex: "areaCompanyErrNumber",
|
|
|
- scopedSlots: { customRender: "count" },
|
|
|
- },
|
|
|
- ],
|
|
|
- },
|
|
|
|
|
|
{
|
|
|
- title: "人工审核数",
|
|
|
- dataIndex: "numberManual",
|
|
|
- scopedSlots: { customRender: "count" },
|
|
|
+ title: "签单保费",
|
|
|
+ dataIndex: "sumPremium",
|
|
|
},
|
|
|
{
|
|
|
- title: "核保数",
|
|
|
- dataIndex: "underwritingCount",
|
|
|
- scopedSlots: { customRender: "count" },
|
|
|
+ title: "交强险保费",
|
|
|
+ dataIndex: "jqpremium",
|
|
|
},
|
|
|
{
|
|
|
- title: "承保数",
|
|
|
- dataIndex: "qutationInsureCount",
|
|
|
- scopedSlots: { customRender: "count" },
|
|
|
+ title: "车船税",
|
|
|
+ dataIndex: "taxamount",
|
|
|
},
|
|
|
{
|
|
|
- title: "报价成功率",
|
|
|
- dataIndex: "orderSuccessNumberRate",
|
|
|
- scopedSlots: { customRender: "rate" },
|
|
|
+ title: "商业险保费",
|
|
|
+ dataIndex: "sypremium",
|
|
|
},
|
|
|
{
|
|
|
- title: "核保通过率",
|
|
|
- dataIndex: "passRate",
|
|
|
- scopedSlots: { customRender: "rate" },
|
|
|
+ title: "非车险保费",
|
|
|
+ dataIndex: "jypremium",
|
|
|
},
|
|
|
{
|
|
|
- title: "成交率",
|
|
|
- dataIndex: "closeRate",
|
|
|
- scopedSlots: { customRender: "rate" },
|
|
|
-
|
|
|
- // scopedSlots: { customRender: "qutationCount" },
|
|
|
- },
|
|
|
- {
|
|
|
- title: "承保率",
|
|
|
- dataIndex: "contributionRate",
|
|
|
- scopedSlots: { customRender: "rate" },
|
|
|
-
|
|
|
- // scopedSlots: { customRender: "qutationCount" },
|
|
|
+ title: "操作",
|
|
|
+ dataIndex: "operation",
|
|
|
+ scopedSlots: { customRender: "operation" },
|
|
|
},
|
|
|
];
|
|
|
|
|
|
@@ -170,15 +171,13 @@ export default {
|
|
|
data() {
|
|
|
return {
|
|
|
formState: {
|
|
|
- whole: "",
|
|
|
- cityId: "",
|
|
|
- countyId: "",
|
|
|
- houseId: "",
|
|
|
- provinceId: "",
|
|
|
- dateType: "",
|
|
|
+ dateType: undefined,
|
|
|
time: [moment().format("YYYY-MM-DD"), moment().format("YYYY-MM-DD")],
|
|
|
- beginDate: moment().format("YYYY-MM-DD"),
|
|
|
- endDate: moment().format("YYYY-MM-DD"),
|
|
|
+ createtimeStart: moment().format("YYYY-MM-DD"),
|
|
|
+ createtimeEnd: moment().format("YYYY-MM-DD"),
|
|
|
+ userName: "",
|
|
|
+ userId: "",
|
|
|
+ treeUserId: "",
|
|
|
},
|
|
|
backLinePersonnel: {},
|
|
|
columns: columns,
|
|
|
@@ -205,6 +204,7 @@ export default {
|
|
|
{ title: "Expand to load", key: "1" },
|
|
|
{ title: "Tree Node", key: "2", isLeaf: true },
|
|
|
],
|
|
|
+ amount: {},
|
|
|
};
|
|
|
},
|
|
|
mounted() {
|
|
|
@@ -213,79 +213,77 @@ export default {
|
|
|
// }, 1000);
|
|
|
},
|
|
|
methods: {
|
|
|
- onLoadData(treeNode) {
|
|
|
- return new Promise((resolve) => {
|
|
|
- if (treeNode.dataRef.children) {
|
|
|
- resolve();
|
|
|
- return;
|
|
|
- }
|
|
|
- setTimeout(() => {
|
|
|
- treeNode.dataRef.children = [
|
|
|
- { title: "Child Node", key: `${treeNode.eventKey}-0` },
|
|
|
- { title: "Child Node", key: `${treeNode.eventKey}-1` },
|
|
|
- ];
|
|
|
- this.treeData = [...this.treeData];
|
|
|
- resolve();
|
|
|
- }, 1000);
|
|
|
- });
|
|
|
+ chooseUser(val) {
|
|
|
+ this.formState.treeUserId = val;
|
|
|
+ this.getVerification();
|
|
|
+ },
|
|
|
+ getList() {
|
|
|
+ this.pagination.current = 1;
|
|
|
+ this.pagination.defaultPageSize = 10;
|
|
|
+ this.getVerification();
|
|
|
},
|
|
|
onChangeTime(val) {
|
|
|
- // console.log(val);
|
|
|
- this.formState.beginDate = val[0];
|
|
|
- this.formState.endDate = val[1];
|
|
|
+ this.formState.createtimeStart = val[0];
|
|
|
+ this.formState.createtimeEnd = val[1];
|
|
|
this.formState.dateType = undefined;
|
|
|
+ this.pagination.current = 1;
|
|
|
+ this.pagination.defaultPageSize = 10;
|
|
|
this.getVerification();
|
|
|
},
|
|
|
- handleFinish() {
|
|
|
+ watchMessage(item) {
|
|
|
//
|
|
|
- },
|
|
|
- wholeHandleChange() {
|
|
|
- this.getProvinceList(this.formState.whole);
|
|
|
- },
|
|
|
- provinceHandleChange() {
|
|
|
- this.getCityList(this.formState.provinceId);
|
|
|
- },
|
|
|
- cityHandleChange() {
|
|
|
- this.getAreaList(this.formState.cityId);
|
|
|
- },
|
|
|
- countyHandleChange() {
|
|
|
- this.getStoreList(this.formState.countyId);
|
|
|
+ item;
|
|
|
+ this.$router.push({
|
|
|
+ path: "/business/agent/message",
|
|
|
+ query: {
|
|
|
+ user: { ...item },
|
|
|
+ time: {
|
|
|
+ createtimeStart: this.formState.createtimeStart,
|
|
|
+ createtimeEnd: this.formState.createtimeEnd,
|
|
|
+ },
|
|
|
+ },
|
|
|
+ });
|
|
|
},
|
|
|
|
|
|
- getVerification() {
|
|
|
+ async getVerification() {
|
|
|
this.loading = true;
|
|
|
|
|
|
- this.$API.quote
|
|
|
- .getQuoteList({
|
|
|
+ this.$API.business
|
|
|
+ .getBusinessAgentList({
|
|
|
pageNum: this.pagination.current,
|
|
|
pageSize: this.pagination.defaultPageSize,
|
|
|
- dateType: this.formState.dateType,
|
|
|
- beginDate: this.formState.beginDate,
|
|
|
- endDate: this.formState.endDate,
|
|
|
- // provinceId: this.formState.provinceId,
|
|
|
- // cityId: this.formState.cityId,
|
|
|
- // countyId: this.formState.countyId,
|
|
|
- // houseId: this.formState.houseId,
|
|
|
+ ...this.formState,
|
|
|
+ managementSource: 2,
|
|
|
})
|
|
|
.then((res) => {
|
|
|
if (res.data.code === 200) {
|
|
|
this.loading = false;
|
|
|
- this.tableList = res.data.data.content;
|
|
|
+ this.tableList = res.data.data.records;
|
|
|
this.pagination = {
|
|
|
- current: res.data.data.pageNum,
|
|
|
- defaultPageSize: res.data.data.pageSize,
|
|
|
- total: res.data.data.totalSize,
|
|
|
+ current: res.data.data.current,
|
|
|
+ defaultPageSize: res.data.data.size,
|
|
|
+ total: res.data.data.total,
|
|
|
};
|
|
|
}
|
|
|
});
|
|
|
+ this.$API.business
|
|
|
+ .getBusinessAgentTotalList({
|
|
|
+ ...this.formState,
|
|
|
+ managementSource: 2,
|
|
|
+ })
|
|
|
+ .then((res) => {
|
|
|
+ if (res.data.code === 200) {
|
|
|
+ this.amount = { ...res.data.data };
|
|
|
+ }
|
|
|
+ });
|
|
|
},
|
|
|
onClear() {
|
|
|
this.$message.info("您清空了勾选的所有行");
|
|
|
},
|
|
|
|
|
|
- onChange(pagination, filters, sorter, { currentDataSource }) {
|
|
|
+ onChange(pagination) {
|
|
|
// this.$message.info('表格状态改变了')
|
|
|
- console.log(pagination, filters, sorter, { currentDataSource });
|
|
|
+
|
|
|
this.pagination = {
|
|
|
current: pagination.current,
|
|
|
defaultPageSize: pagination.pageSize,
|
|
|
@@ -318,15 +316,15 @@ export default {
|
|
|
display: flex;
|
|
|
flex-direction: column;
|
|
|
.back-line-header {
|
|
|
- padding: 15px;
|
|
|
+ // padding: 15px;
|
|
|
box-sizing: border-box;
|
|
|
.back-line-header-title {
|
|
|
- display: flex;
|
|
|
- align-items: center;
|
|
|
- justify-content: space-between;
|
|
|
- padding-bottom: 15px;
|
|
|
- border-bottom: 1px solid #f0f0f0;
|
|
|
+ padding: 15px;
|
|
|
box-sizing: border-box;
|
|
|
+ background: #ffffff;
|
|
|
+ box-shadow: 0px 2px 8px 0px rgba(141, 149, 176, 0.15);
|
|
|
+ border-radius: 8px 8px 8px 8px;
|
|
|
+ border: 2px solid rgba(255, 255, 255, 0.2);
|
|
|
h2 {
|
|
|
margin: 0;
|
|
|
}
|
|
|
@@ -334,7 +332,57 @@ export default {
|
|
|
flex: 1;
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
- justify-content: flex-end;
|
|
|
+ justify-content: space-between;
|
|
|
+ > dl {
|
|
|
+ flex: none;
|
|
|
+ width: 180px;
|
|
|
+ height: 80px;
|
|
|
+ display: flex;
|
|
|
+ // align-items: center;
|
|
|
+ justify-content: space-between;
|
|
|
+ flex-direction: column;
|
|
|
+ padding: 10px;
|
|
|
+ box-sizing: border-box;
|
|
|
+
|
|
|
+ border-radius: 4px 4px 4px 4px;
|
|
|
+
|
|
|
+ > dd {
|
|
|
+ display: flex;
|
|
|
+ // align-items: center;
|
|
|
+ justify-content: flex-end;
|
|
|
+ margin: 0;
|
|
|
+ font-family: PingFang SC, PingFang SC;
|
|
|
+ font-weight: 500;
|
|
|
+ font-size: 24px;
|
|
|
+ // color: rgba(0, 0, 0, 0.85);
|
|
|
+ // padding-left: 15px;
|
|
|
+ box-sizing: border-box;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ > dl:first-child {
|
|
|
+ background: url("../../assets/img/business1.png");
|
|
|
+ color: #11a6d3;
|
|
|
+ }
|
|
|
+ > dl:nth-child(2) {
|
|
|
+ background: url("../../assets/img/business2.png");
|
|
|
+ color: #f87f2c;
|
|
|
+ }
|
|
|
+ > dl:nth-child(3) {
|
|
|
+ background: url("../../assets/img/business3.png");
|
|
|
+ color: #fab600;
|
|
|
+ }
|
|
|
+ > dl:nth-child(4) {
|
|
|
+ background: url("../../assets/img/business4.png");
|
|
|
+ color: #80be38;
|
|
|
+ }
|
|
|
+ > dl:nth-child(5) {
|
|
|
+ background: url("../../assets/img/business5.png");
|
|
|
+ color: #906cef;
|
|
|
+ }
|
|
|
+ > dl:nth-child(6) {
|
|
|
+ background: url("../../assets/img/business6.png");
|
|
|
+ color: #47a2eb;
|
|
|
+ }
|
|
|
}
|
|
|
span {
|
|
|
display: block;
|
|
|
@@ -347,11 +395,13 @@ export default {
|
|
|
}
|
|
|
> div {
|
|
|
// height: 152px;
|
|
|
- background: #fff;
|
|
|
+ // background: #fff;
|
|
|
.ant-form {
|
|
|
display: flex;
|
|
|
+ padding-top: 10px;
|
|
|
+ box-sizing: border-box;
|
|
|
> .ant-form-item {
|
|
|
- flex: 1;
|
|
|
+ flex: none;
|
|
|
/deep/.ant-form-item-control-wrapper {
|
|
|
width: 100%;
|
|
|
}
|
|
|
@@ -366,5 +416,29 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ .table-title {
|
|
|
+ padding: 15px;
|
|
|
+ border-bottom: 1px solid #eee;
|
|
|
+ box-sizing: border-box;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ h2 {
|
|
|
+ margin: 0;
|
|
|
+ }
|
|
|
+ > div {
|
|
|
+ flex: 1;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ justify-content: flex-end;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+.ant-form {
|
|
|
+ display: flex;
|
|
|
+ padding-top: 10px;
|
|
|
+ box-sizing: border-box;
|
|
|
+}
|
|
|
+.ant-form-item {
|
|
|
+ display: flex;
|
|
|
}
|
|
|
</style>
|