GFRS-454【0326】 建议书优化2.0 初版代码备份提交 --提交人:阳华祥

This commit is contained in:
阳华祥
2020-03-10 09:41:42 +08:00
parent fa17320915
commit 23cc314a05
14 changed files with 808 additions and 2 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

View File

@@ -6,7 +6,7 @@ const insuredPerson = () => import('@/views/ebiz/proposal/InsuredPerson')
const exhibition = () => import('@/views/ebiz/proposal/Exhibition')
const companyProfile = () => import('@/views/ebiz/proposal/CompanyProfile')
const pdf = () => import('@/views/ebiz/proposal/PDF')
const proposalInfo = () => import('@/views/ebiz/proposal/ProposalInfo')
export default [
{
path: '/proposal/list',
@@ -43,7 +43,15 @@ export default [
index: 1
}
},
{
path: '/proposal/proposalInfo',
name: 'proposalInfo',
component: proposalInfo,
meta: {
title: '建议书2.0',
index: 1
}
},
{
path: '/proposal/insuredPerson',
name: 'InsuredPerson',

View File

@@ -0,0 +1,798 @@
<template>
<div class="proposal-exhibition-container">
<div class="mb50">
<img class="w178 h41" style="margin-top: 13px;margin-left: 14px;" src="@/assets/images/proposal/proposal_logo.png" />
<div class="white fw500 fs18" style="margin-top: 37px;margin-left: 17px;">家庭保障计划</div>
<van-sticky @scroll="testSticky">
<div class="pl15 pt15 flex justify-content-fs align-items-c sticky_div" :class="pageShowType.isFixed ? 'divbg_1' : 'divbg_2'">
<div class="mr9" style="height: 124px;">
<div class="relative">
<div class="bg-white insured_item">
<div class="insured_item_1">
<img src="@/assets/images/proposal/person_br.png" />
</div>
<div class="text-center fs12">
本人<br />
张先生
</div>
</div>
<div class="triangle"></div>
</div>
</div>
<div class="mr9" style="height: 124px;">
<div class="relative">
<div class="bg-white insured_item">
<div class="insured_item_1">
<img src="@/assets/images/proposal/person_br.png" />
</div>
<div class="text-center fs12">
本人<br />
张先生
</div>
</div>
</div>
</div>
</div>
</van-sticky>
<!--被保人数据-->
<div>
<!-- 险种信息 -->
<div class="pt15 bg-white relative" style="border-radius: 5px;margin:14px 15px;">
<div class="fs14 flex justify-content-a align-items-c">
<div class="text-center">
<label class="fs14 color_3A81F6 fw600 lh24">被保人</label><br />
<label class="fs13 color_666666 lh20">&nbsp;28周岁</label>
</div>
<div class="line_gray"></div>
<div class="text-center">
<label class="fs14 color_3A81F6 fw600 lh24">投保人</label><br />
<label class="fs13 color_666666 lh20">&nbsp;28周岁</label>
</div>
<div class="line_gray"></div>
<div class="text-center">
<label class="fs14 color_3A81F6 fw600 lh24">首年保费</label><br />
<label class="fs13 color_FFA42F lh20">5898.99</label>
</div>
</div>
<div class="fs15 line_title">产品计划</div>
<div :class="pageShowType.productCheckStatus ? '' : 'hideInfo'" class="fs12" style="position: relative;">
<div class="risk_head flex text-center line-height table fs12">
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7">投保险种</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">保额(</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">保险期间</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">交费期间</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">首年保费()</div>
</div>
<div class="risk_body flex text-center bg-green-base c-gray-darker table">
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7">终身重大疾病保险</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">100,00</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">终身</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">5</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">500.00</div>
</div>
<div class="risk_body flex text-center bg-green-base c-gray-darker table risk_body_last">
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7">终身重大疾病保险</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">100,00</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">终身</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">5</div>
<div class="flex justify-content-c align-items-c pl7 pr7 pt7 pb7 table_border">500.00</div>
</div>
</div>
<div class="h20">&ensp;</div>
<div class="up_down_div">
<img src="@/assets/images/proposal/proposal_down.png" @click="testProductCheck" />
</div>
</div>
<!--保险责任-->
<div class="pt15 pb17 bg-white text-center relative model_title">
<div class="fs16 color_3A81F6 lh24 fw600">保险责任</div>
<div class="line_C8DBFB"></div>
<div class="flex align-items-c justify-content-c">
<div class="fs14 checked_risk_type" @click="checkType('00')">按责任显示</div>
<div class="fs14 no_check_risk_type" @click="checkType('01')">按险种显示</div>
</div>
<div :class="pageShowType.riskCheckStatus ? '' : 'hideInfo'">
12<br />
12<br />
12<br />
12<br />
12<br />
12<br />
12<br />
12<br />
12<br />
12<br />
12<br />
12<br />
</div>
<div class="h20">&ensp;</div>
<div class="up_down_div">
<img src="@/assets/images/proposal/proposal_down.png" @click="testRiskCheck" />
</div>
</div>
<div class="pt15 pb17 bg-white text-center relative model_title">
<div class="fs16 color_3A81F6 lh24 fw600">产品条款</div>
<div class="line_C8DBFB"></div>
<div class="fs14 pl12 pr12 lh20 color_3A81F6 flex align-items-c justify-content-s">
<div class="text-center pl5 pr5 calue_name">条框名称绝地逢生地方就是开发及地方就是恐惧看</div>
<div class="calue_button">查看</div>
</div>
<div class="fs14 pl12 pr12 lh20 color_3A81F6 flex align-items-c justify-content-s">
<div class="text-center pl5 pr5 calue_name">条框名称绝地逢生地</div>
<div class="calue_button">查看</div>
</div>
<div style="padding-top: 30px;width: 100%;height: 1px;"></div>
</div>
<div class="pt15 pb17 bg-white text-center relative model_title">
<div class="fs16 color_3A81F6 lh24 fw600">产品总利益演示</div>
<div class="line_C8DBFB"></div>
<div class="flex justify-content-s align-items-c mt30 mb20 ml15 mr15">
<img class="w20" src="@/assets/images/lessen.png" />
<van-slider
class="w220"
active-color="#9EC2FC"
inactive-color="#9EC2FC"
bar-height="4px"
:min="1"
:max="pageShowInfo.insuredSlider.policyYear"
v-model="pageShowInfo.insuredSlider.sliderValue"
@input="input(pageShowInfo.insuredSlider.sliderValue, pageShowInfo.insuredSlider.demoValue, pageShowInfo.insuredSlider.demoLabel)"
>
<div slot="button" class="customer_button"></div>
</van-slider>
<img class="w20" src="@/assets/images/add.png" />
</div>
<div class="fs12 text-center pb15" style="color: #999999;">拖动按钮查看不同年龄的保单利益</div>
<div style="padding-top: 10px;width: 100%;height: 1px;"></div>
</div>
<div class="pt15 pb17 bg-white relative model_title">
<div class="fs16 color_3A81F6 lh24 fw600 text-center">温馨提示</div>
<div class="line_C8DBFB"></div>
<div class="fs13 gray" style="padding: 0 17px;">
本资料仅供客户理解产品条款所用有关产品的说明解释承诺或保证如与产品条款不一致均以产品条款为准
</div>
<div style="padding-top: 20px;width: 100%;height: 1px;"></div>
</div>
</div>
</div>
<div class="fixed" style="right: 0px;top: 40%;width: 23px;">
<img style="width: 23px;" src="@/assets/images/proposal/proposal_company.png" />
<img style="width: 23px;margin-top: -2px;" src="@/assets/images/proposal/proposal_pdf.png" />
</div>
<div v-show="!isWeixin" class="fixed fs15 flex text-centerjustify-content-c last_fix_div">
<div class="color_3A81F6 bg-white text-center">转投保</div>
<div class="bg_3A81F6 white text-center">分享给客户</div>
</div>
<div v-show="isWeixin" class="fix_bottom">
<div class="fix_bottom_sub">
<img src="@/assets/images/sharePeople.png" />
<div>代理人姓名</div>
</div>
<div class="fix_bottom_sub">
<img src="@/assets/images/sharePhone.png" />
<div>代理人手机号</div>
</div>
</div>
</div>
</template>
<script>
import { Cell, RadioGroup, Radio, CellGroup, Collapse, CollapseItem, Slider, Row, Col, Tag, Divider, Toast, Swipe, SwipeItem, Sticky, Tab, Tabs } from 'vant'
import SelectRadio from '@/components/ebiz/SelectRadio'
import { getDemo, toInsurance, getDemoByProposalNo } from '@/api/ebiz/proposal/proposal.js'
import { haveTap, getTapIndex, relevance } from './js/exhibitionMethod.js'
import { formatRiskList } from '@/assets/js/utils/formatRiskList.js'
import { weixinShare } from '@/assets/js/utils/wxShare.js'
import { getAgentInfo } from '@/api/ebiz/my/my.js'
import getAge from '@/assets/js/utils/age.js'
import filters from '@/filters'
import dataDictionary from '@/assets/js/utils/data-dictionary' //使用数据字典中的险种类型
export default {
data() {
let isWeixin = this.$utils.device().isWeixin //判断环境
return {
isWeixin,
// 页面显示配置
pageShowType: {
isFixed: false, // 粘性布局状态
productCheckStatus: true, //产品收展状态
riskCheckStatus: true //责任收展状态
},
// 页面显示详细数据
pageShowInfo: {
insuredSlider: {}, // 滑动条
appntDTO: {}, //投保人信息
insuredDTOs: [{}] //被保人信息
}
}
},
mounted() {
localStorage.setItem('pdfShareCode', '')
document.body.style.backgroundColor = '#fff'
setTimeout(() => {
// 右上角的显示
window.EWebBridge.webCallAppInJs('webview_right_button', {
btns: [
{
img: this.$assetsUrl + 'images/share@3x.png'
}
]
})
}, 1000)
window['appCallBack'] = this.appCallBack
this.init()
},
beforeRouteLeave(to, from, next) {
document.body.style.backgroundColor = ''
next()
},
methods: {
// 粘性配置
testSticky(scrollTop) {
this.pageShowType.isFixed = scrollTop.isFixed
},
testProductCheck() {
this.pageShowType.productCheckStatus = !this.pageShowType.productCheckStatus
},
testRiskCheck() {
this.pageShowType.riskCheckStatus = !this.pageShowType.riskCheckStatus
},
//页面初始化
async init() {
let params = {
proposalInfoDTO: {
proposalNo: ''
}
}
if (this.isWeixin) {
//在微信端
params.proposalInfoDTO.proposalNo = this.$route.query.proposalNo
this.mainRiskCodes = JSON.parse(this.$route.query.mainRiskCodes)
localStorage.token = this.$route.query.token
localStorage.orderNo = this.$route.query.proposalNo
let agentResult = await getAgentInfo({}) //调取代理人查询接口
if (agentResult.result == '0') {
let { agent } = this
let { name, phoneNo, certificateInfoList } = agentResult
if (certificateInfoList != null && certificateInfoList != '') {
certificateInfoList.forEach(c => {
if (c.certificateType == '0') {
agent.certificate = c.certificateNo
}
})
} else {
agent.certificate = '暂无'
}
agent.name = name
agent.phoneNo = phoneNo
let demoResult = await getDemoByProposalNo(params)
this.formatLocal(demoResult)
weixinShare({
title: this.wxTitle,
imgUrl: this.$assetsUrl + 'images/logo.png',
desc: '国富为您量身定制的保险产品,请查收'
})
} else {
Toast.fail(agentResult.resultMessage)
}
} else {
//在app端
params.proposalInfoDTO.proposalNo = localStorage.orderNo
this.mainRiskCodes.push(localStorage.mainRiskCode)
console.log(localStorage.mainRiskCode)
// if (localStorage.mainRiskCodes) {
// this.mainRiskCodes = JSON.parse(localStorage.mainRiskCodes)
// }
console.log(this.mainRiskCodes[0])
getDemo(params).then(res => {
this.formatLocal(res)
})
}
},
//app回调
appCallBack(data) {
if (data.trigger == 'right_button_click') {
EWebBridge.webCallAppInJs('bridge', {
flag: 'share',
extra: {
title: this.wxTitle,
content: '国富为您量身定制的保险产品,请查收',
url:
location.origin +
'/#/proposal/exhibition?proposalNo=' +
encodeURI(localStorage.orderNo) +
'&token=' +
encodeURI(localStorage.token) +
'&mainRiskCodes=' +
encodeURI(JSON.stringify(localStorage.mainRiskCodes)),
// url: 'http://47.96.143.111/#/proposal/exhibition?proposalNo=' + localStorage.orderNo + '&token=' + localStorage.token,
img: this.$assetsUrl + 'images/logo.png'
}
})
}
},
//档位更换时
radioChange(risk) {
let that = this
let key = risk.tap
risk.demoLabel.forEach(demo => {
let result = haveTap(demo.content, '_')
if (result) {
let index = getTapIndex(demo.content, '_') + 1
demo.content = demo.content.slice(0, index) + key //更换content中的值确保滑动的时候 找到相对应的值)
demo.value = risk.demoValue[risk.sliderValue][demo.content] //更换label中的对应的值
}
})
setTimeout(() => {
that.$forceUpdate() //解决页面不刷新问题
}, 0)
},
//将后端返回的数据格式化为本地
formatLocal(res) {
if (res.result == '0') {
let orderDTO = res.content.orderDTO
this.createDate = res.content.orderDTO.orderInfoDTO.appntDateLabel
let { insuredLabelResult, insuredResult, insuredInfoResult } = res.content.calculusResDTO
orderDTO.insuredDTOs.forEach(v => {
//根据数据字典 获取当前值
v.age = getAge.getAge(v.birthdayLabel, new Date())
v.riskDTOLst.forEach(risk => {
// if (risk.planCode) {
// risk.planCode = '计划' + NumberToChinese(Number(risk.planCode))
// }
if (risk.insuYear == 106 && risk.insuYearFlag == 'A') {
risk.insureName = '终身'
} else {
if (risk.insuYearFlag == 'Y') {
risk.insureName = risk.insuYear + '年' //页面展示
} else {
risk.insureName = '至' + risk.insuYear + '周岁的保单周年日'
}
}
if (risk.payEndYearFlag == 'Y') {
console.log(111)
if (risk.payEndYear == '1000') {
risk.payName = '一次交清'
} else {
console.log(222)
risk.payName = risk.payEndYear + '年'
}
} else {
console.log(333)
risk.payName = risk.payEndYear + '岁'
}
// risk.demoValue[demoLabel.content] == dutyLst.dutyCode
this.dutyLst = risk.dutyLst
})
})
this.appntDTO = orderDTO.appntDTO
let insuredDTOs = [{}]
insuredDTOs[0].insuredDTOs = orderDTO.insuredDTOs
insuredDTOs = formatRiskList(insuredDTOs, 'insuredDTOs', 'riskDTOLst')
this.insuredDTOs = insuredDTOs[0].insuredDTOs
this.insuredDTOs = relevance(this.insuredDTOs, insuredLabelResult, insuredResult, insuredInfoResult, this.amtFormat, this.dutyLst) //进行数据关联
// console.log('insuredDTOs',insuredDTOs)
this.getWXTitle(this.insuredDTOs) //获取微信标题
let active = this.insuredDTOs.length //默认展开项
this.activeNames = [active]
this.insuredDTOs.forEach(item => {
if (item.riskDTOLst && item.riskDTOLst.length > 0) {
item.riskDTOLst.forEach(ele => {
this.chooseProductCodes.push(ele.riskCode)
})
}
})
localStorage.pdfShareCode = this.chooseProductCodes[0]
}
},
//获取微信分享的标题
getWXTitle(insuredDTOs) {
dataDictionary.riskType.forEach(dataRisk => {
//根据数字字典来找到 险种简称
// console.log(insuredDTOs)
// console.log(insuredDTOs[0].mainRisk[0].riskCode)
// console.log(dataRisk.code)
if (insuredDTOs[0].mainRisk[0].riskCode == dataRisk.code) {
this.wxTitle = dataRisk.shortName + '计划书'
}
})
},
//转投保
insure() {
console.log(JSON.parse(localStorage.mainRiskCodes).length)
if (localStorage.mainRiskCodes) {
if (JSON.parse(localStorage.mainRiskCodes).length == '2') {
return Toast.fail('暂不支持组合产品转投保')
}
}
let params = {
proposalInfoDTO: {
proposalNo: localStorage.orderNo
}
}
toInsurance(params).then(res => {
if (res.result == '0') {
localStorage.orderNo = res.content.orderNo
localStorage.chooseProductCodes = ''
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/sale/insuredInfo?edit=1',
backToFirst: '1'
},
routerInfo: {
path: '/sale/insuredInfo?edit=1'
}
})
} else {
Toast.fail(res.resultMessage)
}
})
},
// 滑动块发生变化时
input(value, demoValue, demoLabel) {
this.$forceUpdate() //强制组件更新 解决值更改之后 滑块不滑动的问题
/*let index = String(value)
demoLabel.forEach(label => {
label.value = demoValue[index][label.content]
})*/
},
// 点击增加
exhibitionAdd(risk) {
if (risk.sliderValue == risk.policyYear) {
return
}
risk.sliderValue++
this.$forceUpdate()
this.slideChange(risk)
},
//点击减少
reduce(risk) {
if (risk.sliderValue == 1) {
return
}
risk.sliderValue--
this.$forceUpdate()
this.slideChange(risk)
},
//点击滑块增加或者减少时调用
slideChange(risk) {
let index = String(risk.sliderValue)
risk.demoLabel.forEach(label => {
label.value = risk.demoValue[index][label.content]
})
},
// 跳转到公司介绍
goToCompanyProfile() {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/proposal/companyProfile'
},
routerInfo: {
path: '/proposal/companyProfile'
}
})
},
//跳转到pdf 进入建议书后 根据建议书编码来查找相应的pdf
async goPDF() {
this.$jump({
flag: 'h5',
extra: {
url: location.origin + '/#/proposal/pdf'
},
routerInfo: {
path: '/proposal/pdf'
}
})
// let params = {
// proposalInfoDTO: {
// proposalNo: localStorage.orderNo
// }
// }
// //在微信端 直接跳转
// if (this.isWeixin) {
// return this.$jump({
// flag: 'h5',
// extra: {
// url: location.origin + '/#/proposal/pdf'
// },
// routerInfo: {
// path: '/proposal/pdf'
// }
// })
// }
// let make = await makePdf(params)
// if (make.result == '0') {
// let pdfUrl = encodeURIComponent(config.imgDomain + '/returnDirectStream?imgPath=' + make.content)
// this.$jump({
// flag: 'h5',
// extra: {
// url: location.origin + '/pdfjs/web/viewer.html?file=' + pdfUrl,
// title: 'PDF预览'
// },
// routerInfo: {
// path: '/proposal/pdf'
// }
// })
// } else {
// Toast.fail(make.resultMessage)
// }
}
},
components: {
[Cell.name]: Cell,
[RadioGroup.name]: RadioGroup,
[Radio.name]: Radio,
[CellGroup.name]: CellGroup,
[Collapse.name]: Collapse,
[CollapseItem.name]: CollapseItem,
[Slider.name]: Slider,
[Row.name]: Row,
[Col.name]: Col,
[Tag.name]: Tag,
[Divider.name]: Divider,
[Swipe.name]: Swipe,
[SwipeItem.name]: SwipeItem,
[Sticky.name]: Sticky,
[Tab.name]: Tab,
[Tabs.name]: Tabs,
SelectRadio
}
}
</script>
<style lang="scss">
.proposal-exhibition-container {
padding-bottom: 10px;
.sex-radio {
.van-cell-group {
background: transparent;
.van-cell {
background: transparent;
justify-content: center;
.van-field__label {
width: 0;
flex: 0;
}
}
}
.ph30 {
padding: 0px !important;
}
}
&::before {
content: '';
display: table;
}
width: 100%;
background: url('../../../assets/images/proposal/proposal_bg.png') repeat-y;
background-size: 100% auto;
.line-height {
line-height: 35px;
}
.lh40 {
line-height: 40px;
}
.van-divider {
margin: 0 0 15px;
}
.table {
& > div {
width: 19%;
}
& > div:last-child {
width: 25%;
}
}
.wx {
img {
width: 100%;
}
}
div::-webkit-scrollbar {
width: 0;
}
.divbg_1 {
background-color: #9ec2fc;
}
.divbg_2 {
background-color: none;
}
.hideInfo {
height: 40px;
overflow: hidden;
}
.insured_item {
border-radius: 8px;
width: 67px;
height: 100px;
.insured_item_1 {
margin: 0px 13.5px 0px 13.5px;
padding-top: 9px;
img {
width: 40px;
height: 40px;
}
}
}
.color_3A81F6 {
color: #3a81f6;
}
.bg_3A81F6 {
background-color: #3a81f6;
}
.color_666666 {
color: #666666;
}
.color_FFA42F {
color: #ffa42f;
}
.lh24 {
line-height: 24px;
}
.lh20 {
line-height: 20px;
}
.line_gray {
width: 1px;
height: 19px;
background-color: #999999;
line-height: 24px;
}
.sticky_div {
width: 100%;
overflow-x: auto;
box-sizing: border-box;
}
.line_title {
border-left: 6px solid #3a81f6;
padding-left: 6px;
height: 18px;
margin-top: 25px;
margin-bottom: 15px;
}
.risk_head {
border-top-right-radius: 6px;
border-top-left-radius: 6px;
margin: 0px 10px;
background-color: #dbeffe;
color: #669efa;
border: 1px solid #acc5e6;
line-height: 18px;
}
.risk_body {
border: 1px solid #acc5e6;
border-top: 0px;
margin: 0px 10px;
line-height: 18px;
}
.risk_body_last {
border-bottom-right-radius: 6px;
border-bottom-left-radius: 6px;
}
.up_down_div {
position: absolute;
width: 100%;
height: 24px;
left: 0;
bottom: -12px;
text-align: center;
img {
width: 24px;
height: 24px;
}
}
.model_title {
margin: 29px 15px;
padding-top: 15px;
border-radius: 5px;
.checked_risk_type {
height: 30px;
line-height: 30px;
border-bottom-left-radius: 15px;
border-top-left-radius: 15px;
border: 1px solid #3a81f6;
background-color: #3a81f6;
padding: 0px 25px;
color: #ffffff;
}
.no_check_risk_type {
height: 30px;
line-height: 30px;
border-bottom-right-radius: 15px;
border-top-right-radius: 15px;
border: 1px solid #3a81f6;
background-color: #ffffff;
color: #3a81f6;
padding: 0px 25px;
}
}
.line_C8DBFB {
height: 1px;
margin: 17px;
border-top: 1px dashed #c8dbfb;
}
.calue_name {
width: 80%;
text-align: left !important;
}
.calue_button {
width: 20%;
height: 26px;
line-height: 26px;
border-radius: 13px;
text-align: center;
border: 1px solid #3a81f6;
}
.customer_button {
width: 15px;
height: 15px;
border-radius: 7.5px;
background-color: #3a81f6;
}
.last_fix_div {
bottom: 0px;
left: 0px;
width: 100%;
height: 40px;
line-height: 40px;
box-shadow: 0px 0px 10px 5px #aaa;
div {
width: 50%;
}
}
.triangle {
margin: 0px;
border-width: 7px;
border-style: solid;
border-color: white transparent transparent;
padding: 0px;
width: 0px;
height: 0px;
left: 26px;
top: 99px;
position: absolute;
}
.fix_bottom {
position: fixed;
height: 40px;
width: 100%;
margin: auto;
left: 0;
bottom: 0;
background: rgba(0, 0, 0, 0.6);
color: white;
display: flex;
justify-content: space-between;
align-items: center;
.fix_bottom_sub {
display: flex;
justify-content: flex-start;
align-items: center;
margin: 0 10px;
img {
width: 25px;
height: 25px;
}
div {
padding-left: 10px;
}
}
}
.table_border {
border-left: 1px solid #acc5e6;
}
}
</style>