Compare commits
90 Commits
20241030上线
...
master_new
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f2e3566893 | ||
|
|
2842c846d0 | ||
|
|
e3442ea811 | ||
|
|
925424744a | ||
|
|
dbfcc19fbe | ||
|
|
10f70b4a0e | ||
|
|
fe0cc0891a | ||
|
|
b638417b6b | ||
|
|
96851bfc94 | ||
|
|
29c066b28b | ||
|
|
6f6318dab5 | ||
|
|
7191ddbf2f | ||
|
|
21c686d9cb | ||
|
|
d458ee3ba2 | ||
|
|
fad3e8d73c | ||
|
|
c9768f9558 | ||
|
|
9a0a6b2e49 | ||
|
|
fdf4ecde4d | ||
|
|
24dfedac1f | ||
|
|
0c58518635 | ||
|
|
47743bf490 | ||
|
|
b6934ba12c | ||
|
|
87c746bcf4 | ||
|
|
be7d50dce3 | ||
|
|
9532363f6b | ||
|
|
3f225b1b56 | ||
|
|
1b9b979b56 | ||
|
|
cd913a749e | ||
|
|
09680f896c | ||
|
|
8c53d92194 | ||
|
|
53f72916cb | ||
|
|
eed8a9a1cb | ||
|
|
892ff39f14 | ||
|
|
d7ddab1cdd | ||
|
|
093f8cde83 | ||
|
|
706fa92167 | ||
|
|
89b0d487bb | ||
|
|
52dc720c6c | ||
|
|
4040b2f094 | ||
|
|
d3076d795a | ||
|
|
439753191e | ||
|
|
4c475ce1eb | ||
|
|
0f96837149 | ||
|
|
3a5978b8d5 | ||
|
|
e1c1e79fc6 | ||
|
|
fb2e548cff | ||
|
|
767cf542da | ||
|
|
b841d0a7f6 | ||
|
|
420ed68da2 | ||
|
|
8c740e2aa9 | ||
|
|
4e0f3e56ea | ||
|
|
d7ca1eada1 | ||
|
|
b2f0991b3b | ||
|
|
5a4a24bda5 | ||
|
|
4b21142851 | ||
|
|
f96c45c08d | ||
|
|
83a4cad126 | ||
|
|
60459e239c | ||
|
|
df6bde6661 | ||
|
|
b5c3a53974 | ||
|
|
d2c80c293f | ||
|
|
92cdc8fe15 | ||
|
|
5dc788fab7 | ||
|
|
ad8bb1f09a | ||
|
|
5a94ec403f | ||
|
|
3eb2a397e4 | ||
|
|
6c921bf04c | ||
|
|
5b8f8c7210 | ||
|
|
ec7b5edeef | ||
|
|
c6ae2507e6 | ||
|
|
bcc7be372c | ||
|
|
b159265bea | ||
|
|
1630589458 | ||
|
|
fb18e80abf | ||
|
|
831c1a0782 | ||
|
|
dc9688307d | ||
|
|
8cf396fe31 | ||
|
|
6a248932e7 | ||
|
|
bbdc377e6f | ||
|
|
53abc65565 | ||
|
|
d672e2d5a8 | ||
|
|
92bd586bb7 | ||
|
|
f07fd0f56a | ||
|
|
48e35a2a5a | ||
|
|
7266150545 | ||
|
|
d324268b44 | ||
|
|
bb281e2b74 | ||
|
|
7908ed90c2 | ||
|
|
0ee6ff4bd1 | ||
|
|
516de0de16 |
38
package-lock.json
generated
@@ -3216,6 +3216,11 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"base64-arraybuffer": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmmirror.com/base64-arraybuffer/-/base64-arraybuffer-1.0.2.tgz",
|
||||
"integrity": "sha512-I3yl4r9QB5ZRY3XuJVEPfc2XhZO6YweFPI+UovAzn+8/hb3oJ6lnysaFcjVpkCPfVWFUDvoZ8kmVDP7WyRtYtQ=="
|
||||
},
|
||||
"base64-js": {
|
||||
"version": "1.5.1",
|
||||
"resolved": "https://registry.npmmirror.com/base64-js/-/base64-js-1.5.1.tgz",
|
||||
@@ -4783,6 +4788,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"css-line-break": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/css-line-break/-/css-line-break-2.1.0.tgz",
|
||||
"integrity": "sha512-FHcKFCZcAha3LwfVBhCQbW2nCNbkZXn7KVUJcsT5/P8YmfsVja0FMPJr0B903j/E69HUphKiV9iQArX8SDYA4w==",
|
||||
"requires": {
|
||||
"utrie": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"css-loader": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmmirror.com/css-loader/-/css-loader-1.0.1.tgz",
|
||||
@@ -7879,6 +7892,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"html2canvas": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmmirror.com/html2canvas/-/html2canvas-1.4.1.tgz",
|
||||
"integrity": "sha512-fPU6BHNpsyIhr8yyMpTLLxAbkaK8ArIBcmZIRiBLiDhjeqvXolaEmDGmELFuX9I4xDcaKKcJl+TKZLqruBbmWA==",
|
||||
"requires": {
|
||||
"css-line-break": "^2.1.0",
|
||||
"text-segmentation": "^1.0.3"
|
||||
}
|
||||
},
|
||||
"htmlparser2": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmmirror.com/htmlparser2/-/htmlparser2-6.1.0.tgz",
|
||||
@@ -15689,6 +15711,14 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"text-segmentation": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmmirror.com/text-segmentation/-/text-segmentation-1.0.3.tgz",
|
||||
"integrity": "sha512-iOiPUo/BGnZ6+54OsWxZidGCsdU8YbE4PSpdPinp7DeMtUJNJBoJ/ouUSTJjHkh1KntHaltHl/gDs2FC4i5+Nw==",
|
||||
"requires": {
|
||||
"utrie": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"text-table": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz",
|
||||
@@ -16274,6 +16304,14 @@
|
||||
"integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
|
||||
"dev": true
|
||||
},
|
||||
"utrie": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmmirror.com/utrie/-/utrie-1.0.2.tgz",
|
||||
"integrity": "sha512-1MLa5ouZiOmQzUbjbu9VmjLzn1QLXBhwpUa7kdLUQK+KQ5KA9I1vk5U4YHe/X2Ch7PYnJfWuWT+VbuxbGwljhw==",
|
||||
"requires": {
|
||||
"base64-arraybuffer": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"uuid": {
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmmirror.com/uuid/-/uuid-3.4.0.tgz",
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
"crypto-js": "^4.1.1",
|
||||
"echarts": "^4.2.1",
|
||||
"fastclick": "^1.0.6",
|
||||
"html2canvas": "^1.4.1",
|
||||
"js-base64": "^2.5.1",
|
||||
"js-md5": "^0.7.3",
|
||||
"js-sha256": "^0.9.0",
|
||||
|
||||
@@ -24,4 +24,12 @@ export function queryOutOrderList(data) {
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
// 出单详情
|
||||
export function queryOutOrderDetail(data) {
|
||||
return request({
|
||||
url: getUrl(`/sale/order/queryOutOrderDetail`, 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
@@ -39,10 +39,30 @@ export function getOrgList(data) {
|
||||
|
||||
// 获取MIS全部机构 (分级)接口--因内勤多加一级,所以用这个接口
|
||||
export function getMisBranchComList(data) {
|
||||
// data.isJzg false 为内勤
|
||||
// data.isJzg true 为外勤
|
||||
return request({
|
||||
url: getUrl('/data/performance/getMisBranchComList', 1),
|
||||
url: getUrl( '/data/performance/getMisBranchComList', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
export function getMisBranchComList2(data) {
|
||||
// data.isJzg false 为内勤
|
||||
// data.isJzg true 为外勤
|
||||
return request({
|
||||
url: getUrl( '/agent/agent/getJZGManageComList' , 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 内勤机构
|
||||
// export function getMisBranchComList(data) {
|
||||
// return request({
|
||||
// url: getUrl('/data/performance/getMisBranchComList', 1),
|
||||
// method: 'post',
|
||||
// data
|
||||
// })
|
||||
// }
|
||||
|
||||
|
||||
@@ -118,3 +118,13 @@ export function exportExcel(data) {
|
||||
data
|
||||
})
|
||||
}
|
||||
export function base64Excel(data) {
|
||||
return request({
|
||||
// url: 'http://10.10.100.98:7012/updown/uploadBase64Image',
|
||||
url: getUrl('/uploadBase64Image', 1,2),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 579 KiB After Width: | Height: | Size: 107 KiB |
|
Before Width: | Height: | Size: 228 KiB After Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 303 KiB After Width: | Height: | Size: 428 KiB |
BIN
src/assets/images/list_img.png
Normal file
|
After Width: | Height: | Size: 2.6 MiB |
BIN
src/assets/images/sale/coin.png
Normal file
|
After Width: | Height: | Size: 5.3 KiB |
254
src/components/ebiz/billingDetail/tableDetail2.vue
Normal file
@@ -0,0 +1,254 @@
|
||||
<template>
|
||||
<div class="statisticsTable">
|
||||
<div class="statisticsTable_table">
|
||||
<div class="table">
|
||||
<table cellspacing="0" summary cellpadding="1">
|
||||
<thead>
|
||||
<tr>
|
||||
<th :class="{ 'th-fixed': index < 1 }" v-for="(item, index) in theads" :key="index">{{ item }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="(item, index) in tableData" :key="index" :ref="'th' + index" @click="(e) => double_click(index, item)">
|
||||
<td class="th-fixed" @click="goLink(item)">{{ Number(index) + 1 }}</td>
|
||||
<td class="timeDate" v-show="timeShow">{{ item.signDate }}</td>
|
||||
<td class="timeDate" v-show="timeShow == false">{{ item.appntDate }}</td>
|
||||
<td class="productName">{{ item.productName }}</td>
|
||||
<td class="prem">{{ item.prem }}</td>
|
||||
<td>
|
||||
<span class="td-sheng">{{ item.name }}</span>
|
||||
</td>
|
||||
<td>{{ item.manageComName }}</td>
|
||||
<td class="chakan">
|
||||
<van-button size="mini" type="danger" @click="download(item)">下载贺报</van-button>
|
||||
<van-button size="mini" type="info" @click="look(item.orderNo)">查看</van-button>
|
||||
</td>
|
||||
<!-- <td>{{ item.branchTypeName }}</td>-->
|
||||
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="pagination" v-if="total > 5">
|
||||
<div type="text" @click="pageUp" :style="pageNum > 1 ? 'color:red' : ''">上一页</div>
|
||||
<div style="color: red">{{ pageNum }}/{{ Math.ceil(total / pageSize) }}</div>
|
||||
<div @click="pageDown" :style="pageNum < Math.ceil(total / pageSize) ? 'color:red' : ''">下一页 ></div>
|
||||
<div v-if="pageNum == 1" class="shangzheBox"></div>
|
||||
<div v-if="pageNum >= Math.ceil(total / pageSize)" class="xiazheBox"></div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'tableDetail',
|
||||
props: {
|
||||
theads: {
|
||||
type: Array,
|
||||
default: []
|
||||
},
|
||||
isLink: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
total: {
|
||||
type: Number,
|
||||
default: false
|
||||
},
|
||||
pageSize: {
|
||||
type: Number,
|
||||
default: false
|
||||
},
|
||||
pageNum: {
|
||||
type: Number,
|
||||
default: false
|
||||
},
|
||||
tableData: {
|
||||
type: Array,
|
||||
default: []
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
timeShow: false,
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
theads(newVal) {
|
||||
if (newVal) {
|
||||
for(let i=0;i<this.theads.length;i++) {
|
||||
if(this.theads[i] == '承保时间') {
|
||||
this.timeShow = true
|
||||
} else if(this.theads[i] == '预收时间') {
|
||||
this.timeShow = false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
created() {
|
||||
for(let i=0;i<this.theads.length;i++) {
|
||||
if(this.theads[i] == '承保时间') {
|
||||
this.timeShow = true
|
||||
} else if(this.theads[i] == '预收时间') {
|
||||
this.timeShow = false
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
double_click(index, fn, data) {
|
||||
let timestamp = 0
|
||||
this.$refs['th' + index][0].addEventListener('click', () => {
|
||||
const now = new Date()
|
||||
if (now - timestamp <= 300) {
|
||||
this.$emit('double_click', this.tableData[index])
|
||||
// fn();
|
||||
timestamp = 0
|
||||
} else {
|
||||
timestamp = now
|
||||
}
|
||||
})
|
||||
},
|
||||
pageUp() {
|
||||
if (this.pageNum <= 1) {
|
||||
return false
|
||||
}
|
||||
let page = this.pageNum - 1
|
||||
this.$emit('currentChange', page)
|
||||
},
|
||||
pageDown() {
|
||||
let end_num = Math.ceil(this.total / this.pageNum)
|
||||
if (this.pageNum >= end_num) {
|
||||
return false
|
||||
}
|
||||
let page = this.pageNum + 1
|
||||
this.$emit('currentChange', page)
|
||||
},
|
||||
goLink(item) {
|
||||
if (this.isLink) {
|
||||
this.$emit('goLink', item)
|
||||
}
|
||||
},
|
||||
// 跳转至下载贺报页面
|
||||
download(data){
|
||||
this.$emit('from-child', data);
|
||||
},
|
||||
// 查看详情 跳转至详情页面
|
||||
look(num) {
|
||||
this.$emit('fro-child', num);
|
||||
// console.log(num);
|
||||
// this.$router.push({
|
||||
// path: '/policyDetails',
|
||||
// query: {
|
||||
// orderNo: num,
|
||||
// }
|
||||
// })
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.pagination {
|
||||
display: flex;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
.shangzheBox {
|
||||
position: absolute;
|
||||
left: 0;
|
||||
top: 0;
|
||||
width: 70px;
|
||||
height: 30px;
|
||||
}
|
||||
.xiazheBox {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
width: 70px;
|
||||
height: 30px;
|
||||
}
|
||||
}
|
||||
.statisticsTable_table {
|
||||
height: 82.5vh;
|
||||
overflow: auto;
|
||||
//width: 1000px;
|
||||
}
|
||||
.statisticsTable_table .table {
|
||||
width: 195.6vw !important;
|
||||
}
|
||||
.timeDate {
|
||||
width: 90px !important;
|
||||
}
|
||||
.productName {
|
||||
width: 35vw;
|
||||
}
|
||||
.chakan {
|
||||
width: 130px;
|
||||
}
|
||||
.prem {
|
||||
text-align: right !important;
|
||||
width: 90px !important;
|
||||
padding-right: 7px !important;
|
||||
}
|
||||
.statisticsTable th {
|
||||
width: 90px;
|
||||
}
|
||||
table {
|
||||
// width: 200vw;
|
||||
}
|
||||
.th-fixed {
|
||||
position: sticky;
|
||||
border: 1px solid #999 !important;
|
||||
left: 0;
|
||||
width: 35px !important;
|
||||
padding: 0 5px;
|
||||
}
|
||||
.statisticsTable {
|
||||
width: 100%;
|
||||
overflow-x: hidden;
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
table,
|
||||
th,
|
||||
td {
|
||||
border: 1px solid #999;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
line-height: 30px;
|
||||
background: #fff;
|
||||
}
|
||||
thead {
|
||||
th {
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
background: #e9332e;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.td-fixed {
|
||||
// position: sticky;
|
||||
width: 33px !important;
|
||||
padding: 0 5px;
|
||||
left: 0;
|
||||
text-decoration: underline;
|
||||
}
|
||||
.td-sheng {
|
||||
display: block;
|
||||
width: 65px; /* 设置span的宽度 */
|
||||
white-space: nowrap; /* 确保文本不换行 */
|
||||
overflow: hidden; /* 隐藏超出span宽度的文本 */
|
||||
text-overflow: ellipsis; /* 超出部分显示为省略号 */
|
||||
text-align: left; /* 文本对齐方式 */
|
||||
margin: 0 auto;
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
@@ -1,14 +1,32 @@
|
||||
const billingDetail = () => import('@/views/ebiz/billingDetail/billingDetail')
|
||||
const generateImg = () => import('@/views/ebiz/generateImg/generateImg')
|
||||
const policyDetails = () => import('@/views/ebiz/billingDetail/policyDetails')
|
||||
|
||||
|
||||
export default [
|
||||
{
|
||||
path: '/billingDetail',
|
||||
name: 'billingDetail',
|
||||
component: billingDetail,
|
||||
meta: {
|
||||
title: '出单详情',
|
||||
index: 1
|
||||
}
|
||||
{
|
||||
path: '/billingDetail',
|
||||
name: 'billingDetail',
|
||||
component: billingDetail,
|
||||
meta: {
|
||||
title: '出单详情',
|
||||
index: 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
path: '/generateImg',
|
||||
name: 'generateImg',
|
||||
component: generateImg,
|
||||
meta: {
|
||||
title: '业绩贺报'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/policyDetails',
|
||||
name: 'policyDetails',
|
||||
component: policyDetails,
|
||||
meta: {
|
||||
title: '保单详情',
|
||||
}
|
||||
},
|
||||
]
|
||||
|
||||
160
src/views/ebiz/billingDetail/policyDetails.vue
Normal file
@@ -0,0 +1,160 @@
|
||||
<template>
|
||||
<div class="content">
|
||||
<!-- 保单详情 -->
|
||||
<van-collapse v-model="activeName">
|
||||
<van-collapse-item title="投保单信息" name="1">
|
||||
<div class="row">
|
||||
<span class="title">投保单号</span>
|
||||
<span class="main">{{ policyData.orderNo }}</span>
|
||||
</div>
|
||||
<div class="row">
|
||||
<span class="title">投保日期</span>
|
||||
<span class="main">{{ policyData.appntDate }}</span>
|
||||
</div>
|
||||
<div class="row">
|
||||
<span class="title">承保日期</span>
|
||||
<span class="main">{{ policyData.signDate }}</span>
|
||||
</div>
|
||||
<div class="row">
|
||||
<span class="title">总保费</span>
|
||||
<span class="main">{{ policyData.orderAmount }}元</span>
|
||||
</div>
|
||||
</van-collapse-item>
|
||||
<van-collapse-item title="主险" name="2">
|
||||
<p class="list" v-show="mainShow" v-for="(item, index) in policyData.mainRiskNameList" :key="index">{{ item }}</p>
|
||||
<p class="list" v-show="mainShow == false">暂无主险信息</p>
|
||||
</van-collapse-item>
|
||||
<van-collapse-item title="附加险" name="3">
|
||||
<p class="list" v-show="subRiskShow" v-for="(itemm, index) in policyData.subRiskNameList" :key="index">{{ itemm }}</p>
|
||||
<p class="list" v-show="subRiskShow == false" >暂无附加险信息</p>
|
||||
</van-collapse-item>
|
||||
</van-collapse>
|
||||
<div class="bottom">
|
||||
<button class="back" @click="goback()">返回</button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Collapse, CollapseItem } from 'vant'
|
||||
import { queryOutOrderDetail } from '@/api/ebiz/billingDetail/billingDetail'
|
||||
// 当前时间
|
||||
const currentDate = new Date()
|
||||
export default {
|
||||
name: 'policyDetails',
|
||||
components: {
|
||||
[Collapse.name]: Collapse,
|
||||
[CollapseItem.name]: CollapseItem,
|
||||
},
|
||||
props: {
|
||||
orderNo: {
|
||||
type: String,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
currentDate: '',
|
||||
// orderNo: '',
|
||||
activeName: ['1','2','3'],
|
||||
policyData: {},
|
||||
mainShow: false,
|
||||
subRiskShow: false,
|
||||
}
|
||||
},
|
||||
created() {
|
||||
console.log(this.orderNo);
|
||||
this.getpolicyInfo();
|
||||
},
|
||||
mounted() {
|
||||
// console.log(this.orderNo);
|
||||
// this.getpolicyInfo();
|
||||
},
|
||||
methods: {
|
||||
getpolicyInfo() {
|
||||
this.$toast.loading({
|
||||
duration: 0, // 持续展示 toast
|
||||
forbidClick: true, // 禁用背景点击
|
||||
loadingType: 'spinner',
|
||||
message: '加载中……'
|
||||
})
|
||||
queryOutOrderDetail({
|
||||
orderNo: this.orderNo,
|
||||
}).then((res) => {
|
||||
this.policyData = res.content;
|
||||
if(this.policyData.mainRiskNameList == []) {
|
||||
this.mainShow = false
|
||||
} else {
|
||||
this.mainShow = true
|
||||
}
|
||||
if(this.policyData.subRiskNameList.length == 0) {
|
||||
this.subRiskShow = false
|
||||
} else {
|
||||
this.subRiskShow = true
|
||||
}
|
||||
})
|
||||
},
|
||||
goback() {
|
||||
this.$emit('child-back', '1');
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
::v-deep .van-cell {
|
||||
font-size: 18px;
|
||||
font-weight: 500;
|
||||
}
|
||||
::v-deep .van-collapse-item__content {
|
||||
padding: 0px 35px;
|
||||
}
|
||||
.content {
|
||||
height: 100vh;
|
||||
background-color: #fff;
|
||||
}
|
||||
.row {
|
||||
display: flex;
|
||||
align-items: strat;
|
||||
padding: 7px 0px;
|
||||
border-bottom: 0.5px #ccc solid;
|
||||
.title {
|
||||
width: 110px;
|
||||
font-size: 16px;
|
||||
color: #333;
|
||||
}
|
||||
.main {
|
||||
font-size: 14px;
|
||||
max-width: 200px;
|
||||
word-break: normal;
|
||||
display: block;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
.list {
|
||||
padding: 12px 0;
|
||||
}
|
||||
.bottom {
|
||||
width: 100%;
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
.back {
|
||||
width: 100%;
|
||||
background-color: #e9332e;
|
||||
border: none;
|
||||
padding: 12px 0px;
|
||||
border-radius: 28px;
|
||||
color: #fff;
|
||||
font-size: 20px;
|
||||
text-align: center;
|
||||
}
|
||||
}
|
||||
::v-deep .van-cell__right-icon {
|
||||
margin-left: 1.33333vw;
|
||||
color: #969799;
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
@@ -115,7 +115,8 @@
|
||||
item.productCode == 'GFRS_M0073' ||
|
||||
item.productCode == 'GFRS_M0057' ||
|
||||
item.productCode == 'GFRS_M0086' ||
|
||||
item.productCode == 'GFRS_M0092'
|
||||
item.productCode == 'GFRS_M0092' ||
|
||||
item.productCode == 'GFRS_M0096'
|
||||
)
|
||||
"
|
||||
class="fs14 w100"
|
||||
@@ -135,7 +136,8 @@
|
||||
item.productCode == 'GFRS_M0073' ||
|
||||
item.productCode == 'GFRS_M0057' ||
|
||||
item.productCode == 'GFRS_M0086' ||
|
||||
item.productCode == 'GFRS_M0092'
|
||||
item.productCode == 'GFRS_M0092' ||
|
||||
item.productCode == 'GFRS_M0096'
|
||||
)
|
||||
"
|
||||
v-model="dutyItem.defaultDutyAmt"
|
||||
@@ -379,7 +381,7 @@
|
||||
<!-- 字段选择 -->
|
||||
<van-popup v-model="popupShow" position="bottom"><van-picker show-toolbar :columns="columns" @confirm="onConfirm" @cancel="onCancel" /></van-popup>
|
||||
<van-dialog v-model="trialResultsShow" title="核保试算结果" :show-cancel-button="false">
|
||||
<div class="pl40 pr40 mt10">
|
||||
<div class="pl20 pr20 mt10">
|
||||
<div class="flex justify-content-s fs12" v-for="(item, index) in verifyResultList" :key="index">
|
||||
<div>
|
||||
<img class="w20 h20 p10 v-middle" :src="require('@/assets/images/sale/ruleType0' + item.ruleType + '.png')" alt="" />
|
||||
@@ -390,8 +392,20 @@
|
||||
<img class="w20 h20 p10 v-middle" :src="require('@/assets/images/sale/approved' + item.status + '.png')" alt="" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex justify-content-s align-items-c fs12" v-for='item in riskAmntList'>
|
||||
<div>
|
||||
<img class="w20 h20 p10 v-middle" :src="require('@/assets/images/sale/coin.png')" alt="" />
|
||||
<span class="v-middle">{{ item.accuRiskDesc }}:</span>
|
||||
</div>
|
||||
<div>
|
||||
<span class="w20 h20 p10 v-middle">{{item.accuRiskAmnt}}</span>
|
||||
<!-- <img class="w20 h20 p10 v-middle" :src="require('@/assets/images/sale/approved' + item.status + '.png')" alt="" />-->
|
||||
</div>
|
||||
</div>
|
||||
<div style="padding: 25px 0px 10px 10px; font-size: 10px; color: #999">
|
||||
<p style="line-height: 20px"><span style="width: 40px; display: inline-block">说明:</span>绿色✔表示 未触发规则、红色×表示 触发规则</p>
|
||||
<p style="line-height: 20px"><span style="width: 40px; display: inline-block">说明:</span><br/>
|
||||
1.绿色✔表示 未触发规则、红色×表示 触发规则;<br/>
|
||||
2.已累计本次投保的风险保额;<br/>3.展示的风险保额为常见风险类别。</p>
|
||||
</div>
|
||||
</div>
|
||||
</van-dialog>
|
||||
@@ -594,6 +608,7 @@ export default {
|
||||
richChildrenFlag: false,
|
||||
isCrossChannel: '0', //是否交叉渠道 1-是 0-否
|
||||
trialResultsShow: false, //核保试算结果
|
||||
riskAmntList:[],//累计寿险风险保额(元)、累计重大疾病风险保额(元)、累计意外伤害风险保额(元)、意外住院津贴日额(元)、一般住院津贴日额(元)、特定疾病住院津贴日额(元)
|
||||
verifyResultList: [] //核保试算返回数据结构
|
||||
}
|
||||
},
|
||||
@@ -2425,6 +2440,7 @@ export default {
|
||||
dutyCode: dutyItem.duty,
|
||||
dutyName: dutyItem.dutyName
|
||||
})
|
||||
|
||||
}
|
||||
})
|
||||
trialInfo.duty = result
|
||||
@@ -3102,7 +3118,8 @@ export default {
|
||||
this.trialList[index].productCode == 'GFRS_M0077' ||
|
||||
this.trialList[index].productCode == 'GFRS_M0057' ||
|
||||
this.trialList[index].productCode == 'GFRS_M0086' ||
|
||||
this.trialList[index].productCode == 'GFRS_M0092'
|
||||
this.trialList[index].productCode == 'GFRS_M0092' ||
|
||||
this.trialList[index].productCode == 'GFRS_M0096'
|
||||
) {
|
||||
riskItem['dutyLst'] = this.trialInfos[index].duty
|
||||
}
|
||||
@@ -3279,6 +3296,7 @@ export default {
|
||||
this.$toast.clear()
|
||||
this.trialResultsShow = true
|
||||
this.verifyResultList = resultData.content.data.verifyResultList
|
||||
this.riskAmntList = resultData.content.data.riskAmntList
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
<!-- <div class="flex justify-content-c align-items-c">
|
||||
<img class="icon_title_image" src="@/assets/images/kmh/title_bg.png" />
|
||||
</div> -->
|
||||
<van-radio-group v-model="active_radio" style="align-items: center;padding-top: 140px">
|
||||
<van-radio-group v-model="active_radio" style="align-items: center;padding-top: 180px">
|
||||
<van-radio name="1" class="radio_class" style="display: flex;justify-content: center;">
|
||||
<template #icon="props">
|
||||
<img class="img-icon radio_icon_image" :src="props.checked ? checkedUrl : noCheckedUrl" />
|
||||
@@ -1110,7 +1110,7 @@
|
||||
}
|
||||
.dialog_class {
|
||||
width: 330px;
|
||||
height: 335px;
|
||||
height: 376px;
|
||||
background: url('../../../assets/images/kmh/dialog_bg.png');
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
|
||||
254
src/views/ebiz/generateImg/generateImg.vue
Normal file
@@ -0,0 +1,254 @@
|
||||
<template>
|
||||
<div>
|
||||
<div id="capture" ref="generateImg" style="height: 100vh; overflow: hidden">
|
||||
<img src="@/assets/images/list_img.png" alt="" />
|
||||
<div class="box">
|
||||
<div class="title">
|
||||
<p class="organ">{{ orderList.manageComNameFull }}</p>
|
||||
<p class="name">{{ orderList.name }}</p>
|
||||
</div>
|
||||
<div class="pName">{{ orderList.productNameFull }}</div>
|
||||
<div class="type">{{ orderList.outOrderType == 'accept' ? '承保规保' : '预收规保' }}</div>
|
||||
<div class="yuan">{{ orderList.prem }}<span style="color: #333333">元</span></div>
|
||||
<div class="time">{{ orderList.outOrderType == 'accept' ? '承保时间:' : '预收时间:' }}{{ orderList.appntDate }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="flex justify-content-s bottom-btn border-color">
|
||||
<van-button square type="default" size="large" @click="shareImg" v-no-more-click="1000"> 分享 </van-button>
|
||||
<van-button square type="danger" size="large" @click="downLoadImagesFunc" v-no-more-click="1000"> 下载 </van-button>
|
||||
</div>
|
||||
<div class="close" @click="close()">
|
||||
<van-icon name="cross" size="38" color="#fff" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import html2canvas from 'html2canvas'
|
||||
import { base64Excel } from '@/api/ebiz/nbs'
|
||||
export default {
|
||||
name: 'generateImg',
|
||||
// generateImgData
|
||||
props: {
|
||||
// generateImgData: {
|
||||
// type: Object,
|
||||
// default: {}
|
||||
// },
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
orderList: {},
|
||||
isIOS: false,
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;
|
||||
if(this.isIOS) {
|
||||
document.getElementsByClassName('box').style.top = '38%'
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.getList()
|
||||
},
|
||||
methods: {
|
||||
getList() {
|
||||
this.orderList = JSON.parse(localStorage.getItem('orderList'))
|
||||
},
|
||||
// 将 Blob转base64
|
||||
blobToBase64(blob) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const reader = new FileReader()
|
||||
reader.onloadend = () => resolve(reader.result)
|
||||
reader.onerror = reject
|
||||
reader.readAsDataURL(blob)
|
||||
})
|
||||
},
|
||||
// 分享
|
||||
shareImg() {
|
||||
// const element = document.getElementById('capture')
|
||||
// const canvas = await html2canvas(element)
|
||||
html2canvas(this.$refs.generateImg, {
|
||||
width: this.$refs.generateImg.offsetWidth,
|
||||
height: this.$refs.generateImg.offsetHeight,
|
||||
backgroundColor: '#fff',
|
||||
scale: 2,
|
||||
dpi: 300
|
||||
}).then((canvas) => {
|
||||
// 将 canvas 转换为 Blob
|
||||
canvas.toBlob((blob) => {
|
||||
this.blobToBase64(blob).then((base64String) => {
|
||||
let base64Manane = base64String.split(',')[1]
|
||||
// console.log(base64String)
|
||||
EWebBridge.webCallAppInJs('bridge', {
|
||||
flag: 'share',
|
||||
extra: {
|
||||
shareType: '1',
|
||||
base64: base64Manane
|
||||
}
|
||||
})
|
||||
})
|
||||
}, 'image/png')
|
||||
})
|
||||
},
|
||||
// 生成图片并下载
|
||||
domToImage(domElement, quality, callback) {
|
||||
console.log(location);
|
||||
html2canvas(domElement, {
|
||||
width: domElement.offsetWidth,
|
||||
height: domElement.offsetHeight,
|
||||
backgroundColor: '#fff',
|
||||
scale: 1,
|
||||
dpi: 300
|
||||
}).then((canvas) => {
|
||||
// 转换canvas为PNG图片并压缩
|
||||
canvas.toBlob(
|
||||
(blob) => {
|
||||
// const a = document.createElement('a')
|
||||
// a.href = URL.createObjectURL(blob)
|
||||
// a.download = '业绩贺报.png'
|
||||
// a.click()
|
||||
// let newimg = new Image()
|
||||
// newimg.src = URL.createObjectURL(blob)
|
||||
// newimg.onload = function () {
|
||||
// URL.revokeObjectURL(newimg.src)
|
||||
// callback(newimg)
|
||||
// }
|
||||
this.blobToBase64(blob).then((base64String) => {
|
||||
base64Excel({ base64Img: base64String }).then(res => {
|
||||
if (res.result == '0') {
|
||||
EWebBridge.webCallAppInJs('download', {
|
||||
name: '业绩贺报.png',
|
||||
url: res.path
|
||||
})
|
||||
.then(() => {
|
||||
console.log('下载完成')
|
||||
})
|
||||
.catch(() => {
|
||||
this.$toast.fail('图片下载失败,请重新下载!')
|
||||
})
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
})
|
||||
},
|
||||
'image/png'
|
||||
// quality
|
||||
)
|
||||
})
|
||||
},
|
||||
downLoadImagesFunc() {
|
||||
this.domToImage(this.$refs.generateImg)
|
||||
},
|
||||
close() {
|
||||
this.$emit('child-colse', '1')
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
img {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.box {
|
||||
position: absolute;
|
||||
width: 80%;
|
||||
height: 40%;
|
||||
top: 38%;
|
||||
left: 10%;
|
||||
|
||||
.title {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
// left: 30%;
|
||||
top: 24%;
|
||||
font-weight: bold;
|
||||
|
||||
p {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.organ {
|
||||
font-size: 12px;
|
||||
color: #333333;
|
||||
}
|
||||
|
||||
.name {
|
||||
font-size: 17px;
|
||||
color: #333333;
|
||||
}
|
||||
}
|
||||
|
||||
.pName {
|
||||
position: absolute;
|
||||
top: 44%;
|
||||
font-size: 15px;
|
||||
color: #B1170C;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
padding-left: 5px;
|
||||
}
|
||||
|
||||
.type {
|
||||
font-size: 22px;
|
||||
color: #B1170C;
|
||||
position: absolute;
|
||||
top: 53%;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.yuan {
|
||||
font-size: 30px;
|
||||
color: #B1170C;
|
||||
position: absolute;
|
||||
top: 67%;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
display: inline-block;
|
||||
vertical-align: bottom;
|
||||
|
||||
span {
|
||||
font-size: 14px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
.time {
|
||||
font-size: 14px;
|
||||
color: #333333;
|
||||
position: absolute;
|
||||
top: 85%;
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
|
||||
.border-color {
|
||||
z-index: 9999;
|
||||
border: 2px solid;
|
||||
border-image: radial-gradient(circle, rgba(255, 233, 124, 1), rgba(222, 144, 34, 1)) 2 2;
|
||||
}
|
||||
/deep/ .van-button {
|
||||
border-radius: 12px;
|
||||
width: 42%;
|
||||
}
|
||||
/deep/ .van-button--danger {
|
||||
background: linear-gradient(to right, #f26e43, #ac0209) !important;
|
||||
/*设置按钮为渐变颜色*/
|
||||
border: none !important;
|
||||
}
|
||||
.close {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
}
|
||||
</style>
|
||||
@@ -44,7 +44,7 @@
|
||||
<div class="pcenter-list mr20 mb10 ml15">
|
||||
<template v-if="branchType != '6'">
|
||||
<div class="pcenter-item text-center">
|
||||
<img src="../../../assets/images/home_product_center_m0092.png" style="width: 100%;" @click="goDetail('GFRSPRO_M0092')" />
|
||||
<img src="../../../assets/images/home_product_center_m0092.png" style="width: 100%;" @click="goDetail('GFRSPRO_M0095')" />
|
||||
</div>
|
||||
<div class="pcenter-item text-center">
|
||||
<img src="../../../assets/images/home_product_center_m0094.png" style="width: 100%;" @click="goDetail('GFRSPRO_M0094')" />
|
||||
@@ -122,7 +122,7 @@
|
||||
<div class="home-product-pcenter">
|
||||
<div class="pcenter-list mr20 mb10 ml15">
|
||||
<div class="pcenter-item text-center">
|
||||
<img src="../../../assets/images/home_product_center_m0092.png" style="width: 100%;" @click="goDetail('GFRSPRO_M0092')" />
|
||||
<img src="../../../assets/images/home_product_center_m0092.png" style="width: 100%;" @click="goDetail('GFRSPRO_M0095')" />
|
||||
</div>
|
||||
<div class="pcenter-item text-center">
|
||||
<img src="../../../assets/images/home_product_center_m0094.png" style="width: 100%;" @click="goDetail('GFRSPRO_M0094')" />
|
||||
@@ -170,7 +170,7 @@ export default {
|
||||
productCenterImgUrl: '', // 产品中心图片
|
||||
productCenterKmhImgUrl: this.$assetsUrl + 'images/goodStart/productKmh.png', // 产品中心开门红图片
|
||||
productCenterNormalImgUrl: this.$assetsUrl + 'images/goodStart/product.png', // 产品中心普通蓝色图片
|
||||
personalInsu: ['1','N1','N2','N3','N5','T','S'] // 个险渠道编码及其他展示个险渠道类型的渠道编码
|
||||
personalInsu: ['1','N1','N2','N3','N5','T','S','JZG'] // 个险渠道编码及其他展示个险渠道类型的渠道编码
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
@@ -232,7 +232,7 @@ export default {
|
||||
const result = await getAgentInfo({})
|
||||
if (result.result === '0') {
|
||||
// 内外勤判断
|
||||
this.isInner = /^N{1}/.test(result.branchType) || /^S/.test(result.branchType) || /^T/.test(result.branchType) // 判断是否内勤
|
||||
this.isInner = /^N{1}/.test(result.branchType) || /^S/.test(result.branchType) || /^T/.test(result.branchType) || /^JZG/.test(result.branchType) // 判断是否内勤
|
||||
this.branchType = result.branchType //6 网销渠道
|
||||
this.isGoodStart = result.showTemplateKmh === 'KMH'? '1':'2' // 判断是否开门红 1-开门红 2-否
|
||||
this.isPersonalInsu = this.personalInsu.indexOf(result.branchType) > -1 // 判断是否个险渠道
|
||||
|
||||
@@ -993,6 +993,7 @@
|
||||
},
|
||||
//证件起始截止日期
|
||||
onDateConfirm(val, type) {
|
||||
console.log(val,type,);
|
||||
switch (type) {
|
||||
case '0':
|
||||
{
|
||||
@@ -1009,9 +1010,10 @@
|
||||
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
|
||||
// 长期按钮是否禁用
|
||||
this.effectiveDateTypeAble = age <= 45
|
||||
if(this.userInfo.birthday){
|
||||
if(this.userInfo.birthday && !this.userInfo.certiexpiredate){
|
||||
this.userInfo.certiexpiredate = countCredentialValidity.getEndDate(this.userInfo.birthday,val)
|
||||
if(this.userInfo.certiexpiredate) {
|
||||
this.userInfo.certiexpiredate= this.userInfo.certiexpiredate
|
||||
this.effectiveDateTypeAble = true
|
||||
this.userInfo.effectiveDateType = false
|
||||
}
|
||||
@@ -1030,9 +1032,9 @@
|
||||
}
|
||||
//身份证证件类型的判断
|
||||
if (this.userInfo.idType == '1') {
|
||||
if(this.userInfo.birthday){
|
||||
this.userInfo.certificateValidate = countCredentialValidity.getStartDate(this.userInfo.birthday,val)
|
||||
}
|
||||
// if(this.userInfo.birthday){
|
||||
// this.userInfo.certificateValidate = countCredentialValidity.getStartDate(this.userInfo.birthday,val)
|
||||
// }
|
||||
}
|
||||
}
|
||||
break
|
||||
@@ -1057,7 +1059,7 @@
|
||||
if (this.userInfo.certificateValidate && !this.userInfo.certiexpiredate) {
|
||||
this.userInfo.certiexpiredate = countCredentialValidity.getEndDate(this.userInfo.birthday,this.userInfo.certificateValidate)
|
||||
}
|
||||
if (this.userInfo.certiexpiredate && !this.userInfo.certificateValidate) {
|
||||
if (this.userInfo.certiexpiredate && !this.userInfo.certificateValidate) {
|
||||
this.userInfo.certificateValidate = countCredentialValidity.getEndDate(this.userInfo.birthday,this.userInfo.certiexpiredate)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1109,9 +1109,10 @@
|
||||
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
|
||||
// 长期按钮是否禁用
|
||||
this.effectiveDateTypeAble = age <= 45
|
||||
if(this.userInfo.birthday){
|
||||
if(this.userInfo.birthday && !this.userInfo.certiexpiredate){
|
||||
this.userInfo.certiexpiredate = countCredentialValidity.getEndDate(this.userInfo.birthday,val)
|
||||
if(this.userInfo.certiexpiredate) {
|
||||
this.userInfo.certiexpiredate= this.userInfo.certiexpiredate
|
||||
this.effectiveDateTypeAble = true
|
||||
this.userInfo.effectiveDateType = false
|
||||
}
|
||||
@@ -1142,9 +1143,9 @@
|
||||
//获取年龄
|
||||
let age = utilsAge.getAge(this.userInfo.birthday, new Date())
|
||||
console.log(age)
|
||||
if(this.userInfo.birthday){
|
||||
this.userInfo.certificateValidate = countCredentialValidity.getStartDate(this.userInfo.birthday,val)
|
||||
}
|
||||
// if(this.userInfo.birthday){
|
||||
// this.userInfo.certificateValidate = countCredentialValidity.getStartDate(this.userInfo.birthday,val)
|
||||
// }
|
||||
}
|
||||
}
|
||||
break
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
</div>
|
||||
<div v-else-if="uwResult == '53'">
|
||||
<img :src="srcPending" class="mb40 mt20" />
|
||||
<p class="title">核心批扣</p>
|
||||
<p class="title">待核心业务系统批量扣费</p>
|
||||
</div>
|
||||
<div v-else>
|
||||
<img :src="srcPending" class="mb40 mt20" />
|
||||
|
||||