| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288 |
- <template>
- <view class=" ">
- <view class=" page dis f-c" id="panelcanvas" style="position: relative;">
- <image class="back" :src="detailbackimg" mode=""></image>
- <uni-NavBar headerTitle="订单详情" background="transparent" :isSlot="false" :rightSlot="true">
- <template #rightSlot>
- <view class="dis f-c a-c mr-3" @click="getWechatCustomer">
- <image src="/static/icon/customerService.png" mode="" style="width: 48rpx;height: 48rpx;">
- </image>
- <text style="font-size: 20rpx;color: #333;">客服</text>
- </view>
- <view class="dis f-c a-c " @click="share">
- <image src="/static/icon/share.png" mode="" style="width: 48rpx;height: 48rpx;"></image>
- <text style="font-size: 20rpx;color: #333;">分享</text>
- </view>
- </template>
- </uni-NavBar>
- <view class="statusFeedbackArea" v-for="(item,index) in statusList" :key="index"
- v-if="item.value==orderStatus">
- <view class="dis f-c a-start">
- <text>{{item.text}}</text>
- <div class="dis a-c mt-2" v-if="orderStatus==3">
- <text class="text mr-2">核保时间可能较长,如长时间无结果</text>
- <u-icon name="reload" color="#333" size="18"></u-icon>
- <text style="font-size: 28rpx;" @click="refreshUnderwriting">点此刷新</text>
- </div>
- <div class="dis a-c mt-2" v-if="orderStatus==4">
- <text class="text mr-2">已经完成支付</text>
- <u-icon name="reload" color="#333" size="18"></u-icon>
- <text style="font-size: 28rpx;" @click="refreshPayment">点此刷新</text>
- </div>
- </view>
- </view>
- <view class="details-content">
- <view class="company-header dis a-c j-s">
- <view class="dis a-c">
- <image class="logo mr-1" :src="insCompanyVo.logo" mode=""></image>
- <text class="title">{{companyName}}</text>
- </view>
- <view class="price dis a-c">
- <text class="mr-1">保费合计</text>
- <text>¥{{costs.sumPremium}}</text>
- </view>
- </view>
- <view class="contentTabs">
- <u-tabs :list="contentTabslist" @click="click" :activeStyle="{color:'#333',fontWeight:'bold'}"
- :inactiveStyle="{color:'#999'}" :current="current" :scrollable="false" lineColor="#FDE935"
- lineWidth="60rpx"></u-tabs>
- <view class="scroll-content">
- <template v-if="current==0">
- <carViewVue title="车辆信息" :info="carInfoVo" :infoB="carInfoVo1"></carViewVue>
- <userViewVue title="车主信息" :info="ownersInfo"
- :headerStyle="{background:'linear-gradient( 180deg, #FFF8F8 0%, #FFFFFF 100%)'}">
- </userViewVue>
- <userViewVue title="投保人信息" :info="policyHolderInfo"
- :headerStyle="{background:'linear-gradient( 180deg, #F3F9FF 0%, #FFFFFF 100%)'}">
- </userViewVue>
- <userViewVue title="被保人信息" :info="insuredPersonInfo"
- :headerStyle="{background:'linear-gradient( 180deg, #F9F6FF 0%, #FFFFFF 100%)'}">
- </userViewVue>
- </template>
- <insuranceInfoVue v-if="current==1" @viewDiscount="viewDiscountShow=true"
- @vvTaxDetails="vvTaxDetailsShow=true" costs :ciRiskInfoVo="ciRiskInfoVo"
- :biRiskInfoVo="biRiskInfoVo" :costs="costs" :policy="policy" :scoreVo="scoreVo"
- :accidentalDrivings="accidentalDrivings" :kindInfoVo="kindInfoVo"
- :vehicleAndVesselTaxVo="vehicleAndVesselTaxVo" :insFeeOrders="insFeeOrders"
- :costRatio="costRatio" :car_tax_codeoptions="car_tax_codeoptions"
- @updateDiscount="updateDiscountShow=true" @customerRightsDetail="customerRightsDetail">
- </insuranceInfoVue>
- <template v-if="current==2">
- <imageDataVue @previewImage="previewImage" @delCheckImage="delCheckImage"
- :imageCollection="imageCollection" @chooseImage="chooseImage"></imageDataVue>
- </template>
- </view>
- </view>
- </view>
- </view>
- <view class="footer dis ">
- <view class="btn dis a-c j-c " @click="modificationPlan" v-if="['1'].includes(orderStatus)">
- <text>修改方案</text>
- </view>
- <view class="btn dis a-c j-c " @click="toCarInfo" v-if="['1'].includes(orderStatus)">
- <text>修改信息</text>
- </view>
- <view class="btn dis a-c j-c" v-if="['1'].includes(orderStatus)" @click="underwritingShow = true">
- <text>立即核保</text>
- </view>
- <view class="btn dis a-c j-c " v-if="['3'].includes(orderStatus)">
- <text>删除订单</text>
- </view>
- <view class="btn dis a-c j-c " v-if="['4'].includes(orderStatus)" @click="revokePaymentCode">
- <text>撤销支付码</text>
- </view>
- <view class="btn dis a-c j-c" @tap="payNow" v-if="['4'].includes(orderStatus)">
- <text>立即支付</text>
- </view>
- <view class="btn dis a-c j-c" v-if="['7'].includes(orderStatus)">
- <uni-cloudPopup text="更多操作" color="#1f1f1f" size="17" :buttons="['修改方案','修改信息','删除订单']"
- @click="cloudPopupChange"></uni-cloudPopup>
- </view>
- <view class="btn dis a-c j-c " v-if="['8','7'].includes(orderStatus)">
- <text>重新报价</text>
- </view>
- <view class="btn dis a-c j-c " v-if="['7'].includes(orderStatus)" @click="underwritingShow = true">
- <text>重新核保</text>
- </view>
- <view class="btn dis a-c j-c " @click="ePolicy" v-if="['5'].includes(orderStatus)">
- <text>下载电子保单</text>
- </view>
- </view>
- <uni-Popup :show="viewDiscountShow" @close='viewDiscountShow=false' headerTitle="商业险折扣系数" overflow="auto"
- :headerStyle="{fontSize:'36rpx'}" maxHeight="580rpx">
- <template #content>
- <view class="viewDiscount">
- <view class="dis a-c j-s top mb-2">
- <text>313213</text>
- <text>321321321</text>
- </view>
- <view class="center">
- <view class="dis a-c j-s">
- <text>NCD系数</text>
- <text>0.8</text>
- </view>
- <view class="dis a-c j-s">
- <text>交通违法系数</text>
- <text>0.8</text>
- </view>
- <view class="dis a-c j-s">
- <text>自主定价系数</text>
- <text>0.8</text>
- </view>
- <view class="dis a-c j-s">
- <text>自主渠道系数</text>
- <text>0.8</text>
- </view>
- </view>
- <text class="formula">商业险折扣系数 = NCD系数 * 交通违法系数 * 自主定价系数 * 自主渠道系数。</text>
- </view>
- </template>
- </uni-Popup>
- <uni-Popup :show="updateDiscountShow" @close="updateDiscountShow=false" :closeable="false"
- headerTitle="商业险折扣系数修改" overflow="auto" :headerStyle="{fontSize:'36rpx'}" maxHeight="980rpx" mode="center"
- width="90%">
- <template #content>
- <view class="updateDiscount">
- <text class="text ">商业险折扣系数和自主定价系数只能修改一个,修改后系统会重新报价,计算修改后的保费</text>
- <u-radio-group v-model="value" placement="column" class="mt-3 " activeColor="#FDE935"
- iconColor='#333'>
- <u-radio label="明月几时有" style="align-items: baseline;">
- <view class="dis f-c " style="width: 100%;">
- <view class="dis a-start input mb-1">
- <text>商业险折扣系数</text>
- <text>(0.8521252)</text>
- </view>
- <u--input placeholder="请输入内容" clearable></u--input>
- </view>
- </u-radio>
- <u-radio label="明月几时有" class="mt-3" style="align-items: baseline;">
- <view class="dis f-c " style="width: 100%;">
- <view class="dis a-c input mb-1">
- <text>自主定价系数</text>
- <text>(0.8)</text>
- </view>
- <u--input placeholder="输入1—100的数字" clearable></u--input>
- </view>
- </u-radio>
- </u-radio-group>
- <view class="btn dis mt-3">
- <u-button class="mr-2" type="primary" shape="circle" :plain="true" text="关闭" color="#DDDDDD"
- @click="updateDiscountShow=false" :customStyle="{color:'#333'}"></u-button>
- <u-button type="primary" shape="circle" text="确定" color="#FDE935"
- :customStyle="{color:'#1f1f1f'}"></u-button>
- </view>
- </view>
- </template>
- </uni-Popup>
- <!-- 右上角分享功能 -->
- <uni-share :show="shareShow" @close="shareShow=false" @weixin="weixin" @userSmsShare="userSmsShare"
- @copyLink="copyLink" @saveToAlbum="saveToAlbum" @closeModal="closeShareModal">
- </uni-share>
- <!-- 确认核保提示 -->
- <uni-PopupMessage :show="underwritingShow" @close='underwritingShow=false' @cancelEvent='underwritingShow=false'
- @confirmEvent="underwritingEvent">
- <template #content>
- <view class="dis a-c j-c ">
- 是否确认提交核保
- </view>
- </template>
- </uni-PopupMessage>
- <!-- 取消核保提示 -->
- <uni-PopupMessage :show="cancelUnderwritingShow" @close='cancelUnderwritingShow=false'
- @cancelEvent='cancelUnderwritingShow=false' @confirmEvent="cancelUnderwritingEvent">
- <template #content>
- <view class="dis a-c j-c ">
- 您将取消核保,请确认是否继续该操作
- </view>
- </template>
- </uni-PopupMessage>
- <!-- 删除订单提示 -->
- <uni-PopupMessage :show="deleteOrderShow" @close='deleteOrderShow=false' @cancelEvent='deleteOrderEvent'
- headerTitle="删除订单确认" @confirmEvent="deleteOrderShow=false" cancelText="确认删除" confirmText="关闭">
- <template #content>
- <view class="dis a-c j-c ">
- 删除订单后,订单核保请求将取消,订单以及报价记录将清楚不可见,是否确认继续操作
- </view>
- </template>
- </uni-PopupMessage>
- <!-- 撤销支付码提示 -->
- <uni-PopupMessage :show="revokePaymentShow" @close='revokePaymentShow=false' @cancelEvent='revokePaymentEvent'
- headerTitle="撤销支付码" @confirmEvent="revokePaymentShow=false" cancelText="确认撤销" confirmText="关闭">
- <template #content>
- <view class="dis a-c j-c ">
- 撤销支付码后,订单将关闭,不再支持进行任何操作,请确认是否撤销?
- </view>
- </template>
- </uni-PopupMessage>
- <uni-Popup :show="vvTaxDetailsShow" @close='vvTaxDetailsShow=false' headerTitle="车船税" overflow="auto"
- maxHeight="580rpx">
- <template #content>
- <view class="vvTaxDetails-cell dis f-c ">
- <view class="cell-item dis a-c j-s">
- <text>车船税</text>
- <text>{{taxRelifFlagName}}</text>
- </view>
- <template>
- <view class="cell-item dis a-c j-s"
- v-if="vehicleAndVesselTaxVo.taxRelifFlag == 2 || vehicleAndVesselTaxVo.taxRelifFlag == 3">
- <text>减免税凭证号</text>
- <text>{{vehicleAndVesselTaxVo.extendChar2}}</text>
- </view>
- <view class="cell-item dis a-c j-s" v-if="vehicleAndVesselTaxVo.taxRelifFlag == 4">
- <text>完税凭证号</text>
- <text>{{vehicleAndVesselTaxVo.paidFreeCertificate}}</text>
- </view>
- <view class="cell-item dis a-c j-s"
- v-if="vehicleAndVesselTaxVo.taxRelifFlag == 2 || vehicleAndVesselTaxVo.taxRelifFlag == 3">
- <text>减免税原因</text>
- <text>{{vehicleAndVesselTaxVo.relifReason}}</text>
- </view>
- <view class="cell-item dis a-c j-s" v-if="vehicleAndVesselTaxVo.taxRelifFlag == 3">
- <text>减税比例</text>
- <text>{{vehicleAndVesselTaxVo.taxRelief}}</text>
- </view>
- <view class="cell-item dis a-c j-s" v-if="vehicleAndVesselTaxVo.taxRelifFlag !=1">
- <text>税务机关代码</text>
- <text>{{vehicleAndVesselTaxVo.taxComCode}}</text>
- </view>
- <view class="cell-item dis a-c j-s" v-if="vehicleAndVesselTaxVo.taxRelifFlag !=1">
- <text>税务机关名称</text>
- <text>{{vehicleAndVesselTaxVo.taxComName}}</text>
- </view>
- <view class="cell-item dis a-c j-s" v-if="vehicleAndVesselTaxVo.taxRelifFlag ==4">
- <text>完税凭证填发日期</text>
- <text>{{vehicleAndVesselTaxVo.taxDocumentDate}}</text>
- </view>
- <view class="cell-item dis a-c j-s" v-if="vehicleAndVesselTaxVo.taxRelifFlag ==4">
- <text>完税凭证地区</text>
- <text>{{vehicleAndVesselTaxVo.taxPaidAreaCode}}</text>
- </view>
- </template>
- </view>
- </template>
- </uni-Popup>
- <!-- 图片预览组件 -->
- <previewImage ref="previewImage" :opacity="0.8" :circular="true" :imgs="previewImgs"></previewImage>
- <u-loading-page :loading="loading" style="z-index: 999999;" loading-text="核保中" bg-color="rgb(0 ,0 ,0 ,0.4)"
- color="#fff"></u-loading-page>
- <!-- 自定义加载动画 -->
- <u-overlay :show="loadingShow" style="background-color: rgba(255, 255, 255, 0.6);">
- <view class="dis f-c a-c j-c " style="height: 100%;">
- <u-loading-icon></u-loading-icon>
- <text style="color: #909399;" class="mt-1">{{loadingText}}</text>
- </view>
- </u-overlay>
- </view>
- </template>
- <script>
- import store from '@/store';
- import carViewVue from './modules/carView.vue'; //车辆信息
- import userViewVue from './modules/userView.vue'; //人员信息
- import insuranceInfoVue from './modules/insuranceInfo.vue'; //投保人信息
- import imageDataVue from './modules/imageData.vue'; //影像信息
- import previewImage from '@/components/previewImage/previewImage.vue'; //引用插件
- import {
- pathToBase64,
- base64ToPath
- } from '@/common/pdf.js'
- import {
- turnBase64Image,
- dictionaryMatch
- } from '@/plugins/utils.js';
- export default {
- components: {
- carViewVue,
- userViewVue,
- insuranceInfoVue,
- imageDataVue,
- previewImage
- },
- data() {
- return {
- loadingShow: false,
- loadingText: '加载中', //加载提示文字
- loading: false,
- insCompanyVo: {}, //保险公司信息
- vvTaxDetailsShow: false, //车船税详情弹窗
- //车船税form
- vehicleAndVesselTaxVo: {
- taxRelifFlag: "1", //类型
- identifyNumber: "", //纳税人识别号
- taxpayerIdentifier: "01", //纳税人证件类型
- taxpayerName: "", //纳税人名称
- extendChar2: "", //减免税凭证号
- paidFreeCertificate: "", //完税凭证号
- relifReason: "", //减免税原因
- taxComCode: "", //税务机关代码
- taxComName: "", ///税务机关名称
- taxDocumentDate: "", //完税日期
- taxPaidAreaCode: "", //完税凭证地区代码
- taxRelief: "", //减税比例
- },
- underwritingShow: false, //确认核保弹窗
- cancelUnderwritingShow: false, //取消核保弹窗
- deleteOrderShow: false, //删除订单弹窗
- revokePaymentShow: false, //撤销支付弹窗
- underwritingTitle: '提示',
- underwritingContent: '',
- previewImgs: [], //图片预览数组
- ordersNo: "",
- quoteNo: "",
- costs: {},
- companyName: "",
- policy: {}, //保单号信息
- ciRiskInfoVo: {}, //交强险
- biRiskInfoVo: {}, //商业险
- kindInfoVo: [], //险别信息
- accidentalDrivings: [], //驾意险
- carInfoVo: {}, //车辆信息
- carInfoVo1: {}, //车辆信息
- ownersInfo: {}, //车主信息
- policyHolderInfo: {}, //投保人信息
- insuredPersonInfo: {}, //被保人信息
- scoreVo: {}, //保费因素
- insFeeOrders: {}, //费用信息
- costRatio: {}, //费用比例信息
- insOrderRightsInfoVo: {}, //权益信息
- order: {},
- detailbackimg: "", //背景图
- value: "",
- posterUrl: "", //页面截图
- shareShow: false, //分享弹窗
- viewDiscountShow: false, //折扣系数弹窗查看
- updateDiscountShow: false, //折扣系数修改弹窗
- contentTabslist: [{
- name: '基本信息'
- }, {
- name: '投保信息'
- }, {
- name: '影像资料'
- }],
- current: 0,
- orderStatus: '',
- statusList: [{
- label: '订单已提交',
- value: 0,
- text: "订单已完成报价"
- },
- {
- label: '待核保',
- value: 1,
- text: "订单已完成报价"
- },
- {
- label: '核保中',
- value: 2,
- text: "订单核保中,请耐心等待"
- },
- {
- label: '人工处理',
- value: 3,
- text: "订单核保中,请耐心等待"
- },
- {
- label: '待缴费',
- value: 4,
- text: "订单核保已通过,请尽快支付!"
- },
- {
- label: '已承保',
- value: 5,
- text: "订单已承保"
- },
- {
- label: '报价失败',
- value: 6,
- text: ""
- },
- {
- label: '核保失败',
- value: 7,
- text: "核保不通过"
- },
- {
- label: '已关闭',
- value: 8,
- text: "订单已关闭"
- },
- ],
- //字典
- car_nature_codeoptions: [], //使用性质
- vehicle_use_code01options: [], //营业
- vehicle_use_code02options: [], //非营业
- car_kind_codeoptions: [], //车辆种类
- energy_type_codeoptions: [], //能源类型
- car_type_codeoptions: [], //车辆类型
- car_tax_codeoptions: [], //车船税类型
- taxpayerIdentifieroptions: [], //车船税类型
- car_tax_reason_codeoptions: [], //减免税原因
- imgList1: [],
- imgList2: [],
- imgList3: [],
- imgList4: [],
- imgList5: [],
- imgList6: [],
- imgList7: [],
- imgList8: [],
- carImageListId: [],
- ownerImageListId: [],
- policyHolderImageListId: [],
- insuredPersonImageListId: [],
- imageCollection: {}, //影像集合
- id: "",
- cnName: "",
- quotableCompanyList: [],
- }
- },
- async onLoad(options) {
- this.loadingShow = true;
- try {
- if (options) {
- await this.getDicType("car_tax_code"); //车船税类型
- await this.getDicType("taxpayerIdentifier"); //纳税人证件类型
- await this.getDicType("car_tax_reason_code"); //减免税原因代码
- await this.getDicType("car_nature_code"); //使用性质
- await this.getDicType("vehicle_use_code", "01"); //营业
- await this.getDicType("vehicle_use_code", "02"); //非营业
- await this.getDicType("car_kind_code"); //车辆种类
- await this.getDicType("energy_type_code"); //能源类型
- await this.getDicType("car_type_code"); //车辆类型
- let res = await this.$http.get('/supplementOrder/getOrderDetail?ordersNo=' + options.ordersNo);
- if (res.code == 200) {
- this.insCompanyVo = res.data.insCompanyVo[0]; //保险公司信息
- this.orderStatus = res.data.order.orderStatus; //订单状态
- this.companyName = res.data.order.companyName; //保险公司简称
- this.ordersNo = res.data.order.ordersNo; //订单号
- this.quoteNo = res.data.order.quoteNo; //报价号
- this.ciRiskInfoVo = res.data.ciRiskInfoVo; //交强大类
- this.biRiskInfoVo = res.data.biRiskInfoVo; //商业大类
- this.costs = res.data.costs; //报价金额信息
- this.policy = res.data.policy; //保单号信息
- this.kindInfoVo = res.data.kindInfoVo; //商业险险别
- this.accidentalDrivings = res.data.accidentalDrivings; //驾意险
- this.carInfoVo = res.data.carInfoVo; //车辆信息
- this.ownersInfo = res.data.ownersInfo; //车主信息
- this.policyHolderInfo = res.data.policyHolderInfo; //投保人信息
- this.insuredPersonInfo = res.data.insuredPersonInfo; //被保人信息
- this.scoreVo = res.data.scoreVo; //保费因素
- this.insFeeOrders = res.data.insFeeOrders; //费用信息
- this.costRatio = res.data.costRatio; //比例信息
- this.insOrderRightsInfoVo = res.data.insOrderRightsInfoVo; //权益信息
- this.vehicleAndVesselTaxVo = res.data.vehicleAndVesselTaxVo; //车船税信息
- this.order = res.data.order;
- // 去掉this.kindInfoVo中的交强险
- this.kindInfoVo = this.kindInfoVo.filter(item => item.kindCode != 'J1')
- this.carInfoVo1.carNatureCode = dictionaryMatch(this.car_nature_codeoptions, res
- .data.carInfoVo
- .carNatureCode)
- if (res.data.carInfoVo.carNatureCode == '01') {
- this.carInfoVo1.vehicleUseCode = dictionaryMatch(this
- .vehicle_use_code01options,
- res.data
- .carInfoVo
- .vehicleUseCode)
- } else {
- this.carInfoVo1.vehicleUseCode = dictionaryMatch(this
- .vehicle_use_code02options,
- res.data
- .carInfoVo
- .vehicleUseCode)
- }
- this.carInfoVo1.carTypeCode = dictionaryMatch(this.car_type_codeoptions, res.data
- .carInfoVo
- .carTypeCode)
- this.carInfoVo1.carKindCode = dictionaryMatch(this.car_kind_codeoptions, res.data
- .carInfoVo
- .carKindCode)
- this.carInfoVo1.energyTypeCode = dictionaryMatch(this.energy_type_codeoptions, res
- .data
- .carInfoVo
- .energyTypeCode)
- if (this.quoteNo) {
- this.imageEcho(this.quoteNo) // 影像获取完毕
- }
- }
- this.loadingShow = false;
- }
- } catch (error) {
- this.loadingShow = false;
- }
- },
- async mounted() {
- this.detailbackimg = await turnBase64Image('/static/image/detailback.png');
- },
- computed: {
- //获取车船税类型
- taxRelifFlagName() {
- let info = this.car_tax_codeoptions.find(ele => ele.value === this.vehicleAndVesselTaxVo.taxRelifFlag)
- return info?.description;
- }
- },
- methods: {
- // 权益详情
- customerRightsDetail() {
- let params = {
- ownersInfo: this.ownersInfo, //车主
- policyHolderInfo: this.policyHolderInfo, //投保人
- insuredPersonInfo: this.insuredPersonInfo, //被保人
- insFeeOrders: this.insFeeOrders,
- ordersNo: this.ordersNo,
- insOrderRightsInfoVo: this.insOrderRightsInfoVo,
- }
- uni.navigateTo({
- url: '/pages/reward/customerBenefit?info=' + JSON.stringify(params) + '&readOnly=1'
- })
- },
- //更多操作
- cloudPopupChange(index) {
- switch (index) {
- case 0: //修改方案
- this.modificationPlan();
- break;
- case 1: //修改信息
- this.toCarInfo();
- break;
- case 2: //删除订单
- break;
- default:
- }
- },
- //撤销二维码
- async revokePaymentCode() {
- let res = await this.$http.post('/order/qrCode/destroyQrCode', {
- orderNo: this.ordersNo,
- })
- if (res.code == 200) {
- uni.showToast({
- icon: 'none',
- title: '撤销成功'
- })
- }
- },
- //修改信息
- toCarInfo() {
- uni.navigateTo({
- url: '/pages/quote/quoteInfo',
- success: (res) => {
- res.eventChannel.emit(
- "acceptData", {
- carInfo: this
- .carInfoVo, //车辆信息
- ownerInfo: this
- .ownersInfo, //车主信息
- policyHolderInfo: this
- .policyHolderInfo, //投保人信息
- insuredPersonInfo: this
- .insuredPersonInfo, //被保人信息
- carImageListId: this
- .carImageListId, //车辆
- ownerImageListId: this
- .ownerImageListId, //车主
- policyHolderImageListId: this
- .policyHolderImageListId, //投保
- insuredPersonImageListId: this
- .insuredPersonImageListId, //被保人
- productId: this.order.productId, //险种id
- productName: this.order.productsName, //险种名称
- quoteno: this.quoteNo, //报价号
- })
- }
- }, "navigateTo", true);
- },
- //修改方案
- modificationPlan() {
- uni.navigateTo({
- url: '/pages/quote/chooseOption',
- success: (res) => {
- res.eventChannel.emit("acceptData", {
- params: {
- companyId: this.insCompanyVo.id,
- productId: this.order.productId,
- },
- nameSimple: this.insCompanyVo.nameSimple,
- cnName: this.insCompanyVo.cnName,
- jqstartDate: this.ciRiskInfoVo?.startDate,
- jqendDate: this.ciRiskInfoVo?.endDate,
- systartDate: this.biRiskInfoVo?.startDate,
- syendDate: this.biRiskInfoVo?.endDate,
- productName: this.order.productsName,
- quotableCompanyList: this.quotableCompanyList,
- identifyNumber: this.policyHolderInfo.identifyNumber,
- taxpayerName: this.policyHolderInfo.name,
- })
- }
- }, "navigateTo", true);
- },
- //跳转微信客服
- async getWechatCustomer() {
- let res = await this.$http.get('/organization/wechat/customerService/manage/find/link')
- if (res.code == 200) {
- if (plus) { // 确保在App环境下
- plus.runtime.openURL(res.data);
- }
- }
- },
- //操作类型匹配
- matchOperationType(optType) {
- const Operation = {
- 0: '订单创建',
- 1: '报价',
- 2: '补传影像',
- 3: '调整特约',
- 4: '修改折扣系数',
- 5: '核保',
- 6: '获取支付码',
- 7: '撤销支付码',
- 8: '下载电子保单',
- 9: '同步订单',
- 10: '订单编辑',
- }
- return Operation[optType] || ''
- },
- //订单轨迹展开收起
- toggleCollapse(item) {
- item.isCollapsed = !item.isCollapsed
- },
- //确认核保
- async underwritingEvent() {
- this.underwritingShow = false;
- this.loading = true;
- let images = await this.$http.post('/unify/order/imagesUpload', {
- order: this.order,
- });
- if (images.code == '200') {
- let underwriting = await this.$http.post('/unify/order/underwriting', {
- order: {
- ordersNo: this.ordersNo,
- }
- });
- if (underwriting.code == '200') {
- let res = await this.$http.get('/supplementOrder/getOrderDetail?ordersNo=' + this.id);
- if (res.code == '200') {
- this.orderStatus = res.data.order.orderStatus; //订单状态
- }
- this.loading = false;
- uni.showToast({
- icon: 'none',
- title: '核保成功'
- })
- } else {
- this.loading = false;
- uni.showToast({
- icon: 'none',
- title: underwriting.msg
- })
- }
- } else {
- this.loading = false;
- uni.showToast({
- icon: 'none',
- title: images.msg
- })
- }
- },
- //取消核保
- cancelUnderwritingEvent() {
- //
- },
- //删除订单
- deleteOrderEvent() {
- //
- },
- // 撤销支付码
- revokePaymentEvent() {
- //
- },
- //核保状态刷新
- async refreshUnderwriting() {
- let OrderStatus = await this.$http.post('/unify/order/getOrderStatus', {
- order: {
- ordersNo: this.ordersNo,
- },
- });
- if (OrderStatus.code == '200') {
- let res = await this.$http.get('/supplementOrder/getOrderDetail?ordersNo=' + this.ordersNo);
- if (res.code == '200') {
- this.orderStatus = res.data.order.orderStatus; //订单状态
- }
- }
- },
- //支付状态刷新
- async refreshPayment() {
- let OrderStatus = await this.$http.post('/unify/order/getOrderStatus', {
- order: {
- ordersNo: this.ordersNo,
- },
- });
- if (OrderStatus.code == '200') {
- let res = await this.$http.get('/supplementOrder/getOrderDetail?ordersNo=' + this.ordersNo);
- if (res.code == '200') {
- this.orderStatus = res.data.order.orderStatus; //订单状态
- }
- }
- },
- //影像预览
- previewImage(e, type) {
- this.previewImgs = this[type];
- var current = e;
- this.$refs.previewImage.open(current); // 传入当前选中的图片地址或序号
- },
- //删除图片
- delCheckImage(param, IdList, srcList) {
- this[IdList].map((ele, index) => {
- if (param.imageId === ele.imageId) {
- this[IdList].splice(index, 1);
- }
- return ele;
- });
- this[srcList].map((ele, index) => {
- if (param.imageId === ele.imageId) {
- this[srcList].splice(index, 1);
- }
- return ele;
- });
- },
- //影像查询
- async imageEcho(quotenos) {
- this.imgList1 = [];
- this.imgList2 = [];
- this.imgList3 = [];
- this.imgList4 = [];
- this.imgList5 = [];
- this.imgList6 = [];
- this.imgList7 = [];
- this.imgList8 = [];
- let res = await this.$http.get('/order/taskImages/selectByQuoteNo?quoteNo=' + quotenos);
- if (res.code == "200") {
- res.data.images.forEach((keys) => {
- if (keys.downloadUrl) {
- switch (keys.imageType) {
- case 'C01':
- this.carImageListId.push({
- imageBase64List: [{
- imageId: keys.imageId
- }],
- imageCode: keys.imageType,
- })
- this.imgList1.push(keys);
- break;
- case 'D01':
- this.carImageListId.push({
- imageBase64List: [{
- imageId: keys.imageId
- }],
- imageCode: keys.imageType,
- })
- this.imgList2.push(keys);
- break;
- case 'C02':
- this.ownerImageListId.push({
- imageBase64List: [{
- imageId: keys.imageId
- }],
- imageCode: keys.imageType,
- })
- this.imgList3.push(keys);
- break;
- case 'D02':
- this.ownerImageListId.push({
- imageBase64List: [{
- imageId: keys.imageId
- }],
- imageCode: keys.imageType,
- })
- this.imgList4.push(keys);
- break;
- case 'C03':
- this.policyHolderImageListId.push({
- imageBase64List: [{
- imageId: keys.imageId
- }],
- imageCode: keys.imageType,
- })
- this.imgList5.push(keys);
- break;
- case 'D03':
- this.policyHolderImageListId.push({
- imageBase64List: [{
- imageId: keys.imageId
- }],
- imageCode: keys.imageType,
- })
- this.imgList6.push(keys);
- break;
- case 'C04':
- this.insuredPersonImageListId.push({
- imageBase64List: [{
- imageId: keys.imageId
- }],
- imageCode: keys.imageType,
- })
- this.imgList7.push(keys);
- break;
- case 'D04':
- this.insuredPersonImageListId.push({
- imageBase64List: [{
- imageId: keys.imageId
- }],
- imageCode: keys.imageType,
- })
- this.imgList8.push(keys);
- break;
- default:
- break;
- }
- }
- });
- this.imageCollection = {
- imgList1: this.imgList1,
- imgList2: this.imgList2,
- imgList3: this.imgList3,
- imgList4: this.imgList4,
- imgList5: this.imgList5,
- imgList6: this.imgList6,
- imgList7: this.imgList7,
- imgList8: this.imgList8,
- }
- }
- },
- //数据字典
- async getDicType(type, vehicle) {
- if (vehicle) {
- let res = await this.$http.get(`/dict/get?dictCode=${type}&parentValue=${vehicle}`);
- this[type + vehicle + "options"] = res.data;
- } else {
- let res = await this.$http.get('/dict/get?dictCode=' + type);
- this[type + "options"] = res.data;
- }
- },
- //去支付
- payNow() {
- uni.navigateTo({
- url: '/pages/quote/paymentCode?ordersNo=' + this.ordersNo,
- })
- },
- //跳转电子保单页面
- ePolicy() {
- uni.navigateTo({
- url: '/pages/quote/ePolicy?ordersNo=' + this.ordersNo,
- })
- },
- //分享微信
- weixin() {
- uni.share({
- provider: "weixin",
- scene: "WXSceneSession",
- type: 0,
- href: "http://uniapp.dcloud.io/",
- title: "京AG***12025年的车险报价",
- summary: "平安车险报价完成,保费:2563元,点击查看详情",
- imageUrl: "/static/image/zgcx.png",
- success: function(res) {
- console.log("success:" + JSON.stringify(res));
- },
- fail: function(err) {
- console.log("fail:" + JSON.stringify(err));
- }
- });
- },
- //短信分享
- userSmsShare() {
- var msg = plus.messaging.createMessage(plus.messaging.TYPE_SMS);
- msg.to = ["13546347757"]; //投保人手机号
- msg.body =
- `【掌柜车险】尊敬的【京NH***7】车主,平安保险2025年车险报价:4562.23元;联系人:修封 18805520001,点击链接查看详情或电话咨询联系人 https://app.axure.cloud/app/project/jl0lf9/`;
- plus.messaging.sendMessage(msg);
- },
- //复制链接
- copyLink() {
- uni.setClipboardData({
- data: '2321321321321', //要被复制的内容
- success: () => { //复制成功的回调函数
- uni.showToast({ //提示
- icon: 'none',
- title: '链接已复制'
- })
- }
- });
- },
- //取消
- closeShareModal() {
- this.shareShow = false;
- },
- //保存相册
- saveToAlbum() {
- base64ToPath(this.posterUrl)
- .then(path => {
- uni.saveImageToPhotosAlbum({ //保存图片到系统相册。
- filePath: path, //图片文件路径
- success: function() {
- uni.showToast({
- title: '已保存到相册',
- icon: 'none',
- });
- },
- fail: function(e) {
- uni.showToast({
- title: '图片保存失败',
- icon: 'none',
- });
- }
- });
- })
- },
- //页面截图转路径
- receiveRenderData(val) {
- this.posterUrl = val.replace(/[\r\n]/g, ''); // 去除base64位中的空格
- },
- showLoading() {
- uni.showLoading({
- title: '正在生成图片'
- });
- },
- hideLoading() {
- uni.hideLoading();
- },
- //右上角分享icon
- share() {
- this.shareShow = true;
- },
- click(item) {
- this.current = item.index;
- },
- //影像资料上传
- async chooseImage(type, imageIdList, imgurl) {
- let [chooseImageErr, chooseImageRes] = await uni.chooseImage({
- count: 1,
- sizeType: ['compressed']
- });
- if (chooseImageRes) {
- uni.uploadFile({
- url: this.$base.baseUrl + '/file/upload',
- filePath: chooseImageRes.tempFilePaths[0],
- name: "file",
- formData: {
- 'type': 'image',
- },
- header: {
- Authorization: store.state.token,
- system_code: store.state.system_code ? store.state.system_code : ''
- },
- success: async (imgRes) => {
- let data = JSON.parse(imgRes.data);
- if (data.code == "200") {
- if (this[imageIdList].some(v => v.imageType == type)) {
- this[imageIdList].map(val => {
- if (val.imageType == type) {
- val.imageId = data.data.id;
- }
- })
- } else {
- this[imageIdList].push({
- imageId: data.data.id,
- imageType: type,
- })
- }
- console.log(data);
- this[imgurl].push(data.data)
- this.modificationFlag = true;
- }
- }
- });
- }
- },
- }
- }
- </script>
- <script module="canvasImage" lang="renderjs">
- import html2canvas from 'html2canvas'
- export default {
- data() {
- return {
- }
- },
- mounted() {
- // #ifdef APP-PLUS
- setTimeout(() => {
- this.canvasImage.generateImage()
- }, 1000);
- // #endif
- },
- methods: {
- generateImage() {
- setTimeout(() => {
- this.$ownerInstance.callMethod('showLoading')
- const dom = document.getElementById('panelcanvas') // 需要生成图片内容的 dom 节点
- html2canvas(dom, {
- width: dom.clientWidth, //dom 原始宽度
- height: dom.clientHeight,
- scrollY: 0, // html2canvas默认绘制视图内的页面,需要把scrollY,scrollX设置为0
- scrollX: 0,
- useCORS: true, //支持跨域
- // allowTaint: false,
- scale: 2, // 设置生成图片的像素比例,默认是1,如果生成的图片模糊的话可以开启该配置项
- }).then((canvas) => {
- // 生成成功
- this.$ownerInstance.callMethod('hideLoading')
- this.$ownerInstance.callMethod('receiveRenderData', canvas.toDataURL('image/png'))
- }).catch(err => {
- // 生成失败 弹出提示弹窗
- this.$ownerInstance.callMethod('_errAlert', `【生成图片失败,请重试】${err}`)
- })
- }, 300)
- }
- },
- }
- </script>
- <style lang="scss" scoped>
- /* 基础设置 */
- page {
- height: 100vh;
- background-color: #f8f8f8;
- }
- .page {
- height: 100vh;
- position: relative;
- background-color: #f8f8f8;
- }
- /* 背景图 */
- .back {
- width: 100%;
- height: 492rpx;
- position: absolute;
- top: 0;
- left: 0;
- z-index: 0;
- }
- /* 状态区域 */
- .statusFeedbackArea {
- position: relative;
- padding: 20rpx 30rpx 20rpx;
- font-size: 36rpx;
- color: #333;
- font-weight: bold;
- z-index: 1;
- background: transparent;
- .text {
- font-size: 28rpx;
- color: rgba(51, 51, 51, 0.7);
- font-weight: 500;
- }
- }
- /* 主要内容容器 */
- .details-content {
- flex: 1;
- position: relative;
- background: rgba(255, 255, 255, 0.9);
- border-radius: 40rpx 40rpx 0 0;
- padding: 30rpx;
- box-sizing: border-box;
- backdrop-filter: blur(100rpx);
- display: flex;
- flex-direction: column;
- overflow: hidden;
- z-index: 2;
- /* 头部样式 */
- .company-header {
- .logo {
- width: 40rpx;
- height: 40rpx;
- }
- .title {
- font-weight: bold;
- color: #333;
- font-size: 32rpx;
- }
- .price {
- text:first-child {
- font-size: 28rpx;
- color: #333;
- }
- text:last-child {
- font-size: 32rpx;
- color: #FF540A;
- font-weight: bold;
- }
- }
- }
- /* 选项卡容器 */
- .contentTabs {
- flex: 1;
- display: flex;
- flex-direction: column;
- height: 100%;
- background: #FFFFFF;
- box-shadow: 0rpx 0rpx 16rpx 0rpx rgba(0, 0, 0, 0.05);
- border-radius: 20rpx 20rpx 10rpx 10rpx;
- margin-top: 28rpx;
- /* 滚动区域 */
- .scroll-content {
- flex: 1;
- overflow-y: auto;
- padding: 20rpx 0 200rpx;
- /* 增加底部留白 */
- box-sizing: border-box;
- /* 确保padding计入高度 */
- }
- }
- }
- //底部样式
- .footer {
- position: fixed;
- bottom: 0;
- left: 0;
- background: linear-gradient(0, #FFFFFF 0%, rgba(255, 254, 245, 0.8) 100%);
- backdrop-filter: blur(40rpx);
- z-index: 9;
- width: 100%;
- padding: 25rpx 20rpx;
- box-sizing: border-box;
- .btn {
- color: #1f1f1f;
- font-size: 34rpx;
- background: rgba(253, 233, 53, 0.2);
- border-radius: 58rpx 58rpx 58rpx 58rpx;
- padding: 19rpx 0;
- box-sizing: border-box;
- border: 1rpx solid #FDE935;
- width: 100%;
- margin: 0 10rpx;
- }
- .btn:last-child {
- background: #FDE935;
- }
- }
- //折扣系数查看弹窗
- .viewDiscount {
- padding: 40rpx;
- box-sizing: border-box;
- .top {
- font-size: 32rpx;
- color: #333;
- font-weight: bold;
- }
- .center {
- background: #FAFAFA;
- border-radius: 10rpx 10rpx 10rpx 10rpx;
- padding: 10rpx 20rpx;
- box-sizing: border-box;
- margin-bottom: 20rpx;
- >view {
- margin-bottom: 20rpx;
- >text:first-child {
- font-size: 30rpx;
- color: #666;
- position: relative;
- padding-left: 20rpx;
- ::before {
- content: "";
- width: 8rpx;
- height: 8rpx;
- border-radius: 50%;
- background-color: #666;
- position: absolute;
- top: 50%;
- transform: translateY(-50%);
- left: 0;
- }
- }
- }
- }
- .formula {
- font-size: 30rpx;
- color: #333;
- }
- }
- // 商业险折扣系数样式
- .updateDiscount {
- padding: 40rpx;
- box-sizing: border-box;
- .text {
- font-size: 28rpx;
- color: #666;
- }
- .input {
- font-size: 32rpx;
- color: #333;
- text:last-child {
- color: #999;
- margin-left: 10rpx;
- }
- }
- .btn {}
- }
- // 车船税弹窗
- .vvTaxDetails-cell {
- padding: 40rpx;
- box-sizing: border-box;
- .cell-item {
- font-size: 30rpx;
- color: #333;
- margin-bottom: 30rpx;
- text:last-child {
- font-weight: bold;
- }
- }
- .cell-item:last-child {
- margin-bottom: 0;
- }
- }
- </style>
|