Commit f27b15a5 authored by 郭志伟's avatar 郭志伟

feat: 详情联调

parent 15f1cbf1
...@@ -58,6 +58,26 @@ export default [ ...@@ -58,6 +58,26 @@ export default [
], ],
policyPeriod: [] policyPeriod: []
}, },
{
id: "ZAYWX001",
itype: "ai",
scope: [1, 2, 3],
img: good03,
title: "万家保·综合意外险",
sub: "意外风险覆盖全,最高100万保额",
glory: "开车必备",
price: "145",
unit: "年起",
allow: true,
termType: "short",
icon_closed: casualty_closed,
icon: casualty,
guarantee_title: "意外保障",
guarantee_sub: "意外风险覆盖全,最高100万保额",
company: "众安保险",
payType: [],
policyPeriod: []
},
{ {
id: "BNZJX001", id: "BNZJX001",
itype: "cii", itype: "cii",
...@@ -82,26 +102,6 @@ export default [ ...@@ -82,26 +102,6 @@ export default [
{ label: "保至终身", value: "2" } { label: "保至终身", value: "2" }
] ]
}, },
{
id: "ZAYWX001",
itype: "ai",
scope: [1, 2, 3],
img: good03,
title: "万家保·综合意外险",
sub: "意外风险覆盖全,最高100万保额",
glory: "开车必备",
price: "145",
unit: "年起",
allow: true,
termType: "short",
icon_closed: casualty_closed,
icon: casualty,
guarantee_title: "意外保障",
guarantee_sub: "意外风险覆盖全,最高100万保额",
company: "众安保险",
payType: [],
policyPeriod: []
},
{ {
id: "HGSX001", id: "HGSX001",
itype: "li", itype: "li",
......
...@@ -6,9 +6,9 @@ export const list = param => { ...@@ -6,9 +6,9 @@ export const list = param => {
}; };
// 产品详情 // 产品详情
export const detail = param => { // export const detail = param => {
return req.get("product/detail", param); // return req.get("product/detail", param);
}; // };
// 产品算价 // 产品算价
export const trail = param => { export const trail = param => {
......
...@@ -7,7 +7,9 @@ export const loginByPhone = param => { ...@@ -7,7 +7,9 @@ export const loginByPhone = param => {
// 信用钱包用户自动登录 // 信用钱包用户自动登录
export const authByxyqb = param => { export const authByxyqb = param => {
return req.get("xyqb_user_info", param); return req.get("user/info/xyqb", {
params: param
});
}; };
// 微信用户获取openid // 微信用户获取openid
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
get-container="body" get-container="body"
close-icon="close" close-icon="close"
class="panel-wrap" class="panel-wrap"
@close="onClose" @closed="onClose"
> >
<div class="panel"> <div class="panel">
<div class="panel-head"> <div class="panel-head">
......
...@@ -4,7 +4,6 @@ import user from "./modules/user"; ...@@ -4,7 +4,6 @@ import user from "./modules/user";
import { isXyqb } from "@/service/validation"; import { isXyqb } from "@/service/validation";
import localStorage from "@/service/localStorage"; import localStorage from "@/service/localStorage";
const XYQB_AUTH_STATE = localStorage.get("xyqbAuthState") || 1;
Vue.use(Vuex); Vue.use(Vuex);
export default new Vuex.Store({ export default new Vuex.Store({
...@@ -12,7 +11,7 @@ export default new Vuex.Store({ ...@@ -12,7 +11,7 @@ export default new Vuex.Store({
activeIdx: 0, activeIdx: 0,
isLoading: false, isLoading: false,
isShowLogin: false, isShowLogin: false,
showAuthXyqb: isXyqb ? XYQB_AUTH_STATE : -1 // 1 已获取信息未授权,2 打开授权弹框, 3 拒绝授权,4 允许授权, -1 非信用钱包环境 showAuthXyqb: isXyqb ? localStorage.get("xyqbAuthState") || 1 : -1 // 1 已获取信息未授权,2 打开授权弹框, 3 拒绝授权,4 允许授权, -1 非信用钱包环境
}, },
mutations: { mutations: {
setActiveIdx(state, value) { setActiveIdx(state, value) {
......
<template> <template>
<cr-form scroll-to-error @submit="onSubmit" @failed="onFailed" class="container"> <cr-form scroll-to-error @submit="onSubmit" @failed="onFailed" class="container">
<nav-tab :nav-list="navBarOptions" /> <nav-tab :nav-list="navBarOptions" @show="e => (goodActionShow = e)" />
<detail-header :det="headerInfo" /> <detail-header :det="headerInfo" />
<div class="det-body"> <div class="det-body">
<card title="保险计划" :option="['查看详情']" @option-click="openIframePupop(4)"> <card title="保险计划" :option="['查看详情']" @option-click="openIframePupop(4)">
...@@ -43,7 +43,11 @@ ...@@ -43,7 +43,11 @@
</div> </div>
<detail-footer :company-info="companyInfo" /> <detail-footer :company-info="companyInfo" />
<copyright /> <copyright />
<good-action @leftClick="goInsureState = true" :content="goodActionInfo" /> <good-action
@leftClick="goInsureState = true"
:content="goodActionInfo"
v-show="goodActionShow"
/>
<popup-with-iframe <popup-with-iframe
v-model="popupShow" v-model="popupShow"
:title="pupopData.title" :title="pupopData.title"
...@@ -129,6 +133,7 @@ export default { ...@@ -129,6 +133,7 @@ export default {
goodBuyModalInfo: [], goodBuyModalInfo: [],
popupShow: false, popupShow: false,
currentPupopIndex: null, currentPupopIndex: null,
goodActionShow: false,
calTimer: null, calTimer: null,
formData: { formData: {
name: "", name: "",
...@@ -276,13 +281,14 @@ export default { ...@@ -276,13 +281,14 @@ export default {
}, },
async calFee() { async calFee() {
let { price } = this.headerInfo; let { price } = this.headerInfo;
const { idNo, amountInsured } = this.formData; const { idNo, amountInsured, userInfoSecId } = this.formData;
if (!idNo || !amountInsured) return; if (!idNo || !amountInsured) return;
const _param = { const _param = {
productNo: this.goodId, productNo: this.goodId,
productUserInfo: { productUserInfo: {
userInfo: { userInfo: {
idNo idNo,
userInfoSecId: userInfoSecId ? userInfoSecId : undefined
}, },
productItem: { productItem: {
amountInsured amountInsured
......
<template> <template>
<cr-form scroll-to-error @submit="onSubmit" @failed="onFailed" class="container"> <cr-form scroll-to-error @submit="onSubmit" @failed="onFailed" class="container">
<nav-tab :nav-list="navBarOptions" /> <nav-tab :nav-list="navBarOptions" @show="e => (goodActionShow = e)" />
<detail-header :det="headerInfo" /> <detail-header :det="headerInfo" />
<div class="det-body"> <div class="det-body">
<card title="保险计划" :option="['查看详情']" @option-click="openIframePupop(4)"> <card title="保险计划" :option="['查看详情']" @option-click="openIframePupop(4)">
...@@ -42,7 +42,11 @@ ...@@ -42,7 +42,11 @@
</div> </div>
<detail-footer :company-info="companyInfo" /> <detail-footer :company-info="companyInfo" />
<copyright /> <copyright />
<good-action @leftClick="goInsureState = true" :content="goodActionInfo" /> <good-action
@leftClick="goInsureState = true"
:content="goodActionInfo"
v-show="goodActionShow"
/>
<popup-with-iframe <popup-with-iframe
v-model="popupShow" v-model="popupShow"
:title="pupopData.title" :title="pupopData.title"
...@@ -126,6 +130,7 @@ export default { ...@@ -126,6 +130,7 @@ export default {
goodActionInfo: {}, goodActionInfo: {},
goodBuyModalInfo: [], goodBuyModalInfo: [],
popupShow: false, popupShow: false,
goodActionShow: false,
currentPupopIndex: null, currentPupopIndex: null,
formData: { formData: {
name: "", name: "",
...@@ -256,7 +261,7 @@ export default { ...@@ -256,7 +261,7 @@ export default {
userInfo: { userInfo: {
idNo, idNo,
socialSecurity: !!Number(socialSecurity), socialSecurity: !!Number(socialSecurity),
userInfoSecId: userInfoSecId ?? null userInfoSecId: userInfoSecId ? userInfoSecId : undefined
}, },
productItem: { productItem: {
payType, payType,
......
<template> <template>
<cr-form scroll-to-error @submit="onSubmit" @failed="onFailed" class="container"> <cr-form scroll-to-error @submit="onSubmit" @failed="onFailed" class="container">
<nav-tab :nav-list="navBarOptions" /> <nav-tab :nav-list="navBarOptions" @show="e => (goodActionShow = e)" />
<detail-header :det="headerInfo"> <detail-header :det="headerInfo">
<div class="li-header"> <div class="li-header">
<plan-tip :tip-list="planTipOptions" /> <plan-tip :tip-list="planTipOptions" />
...@@ -71,6 +71,11 @@ ...@@ -71,6 +71,11 @@
</div> </div>
<detail-footer :company-info="companyInfo" /> <detail-footer :company-info="companyInfo" />
<copyright /> <copyright />
<good-action
:content="goodActionInfo"
:class="{ 'cal-fee': currentPupopIndex === 6 }"
v-show="goodActionShow"
/>
<good-action :content="goodActionInfo" :class="{ 'cal-fee': currentPupopIndex === 6 }" /> <good-action :content="goodActionInfo" :class="{ 'cal-fee': currentPupopIndex === 6 }" />
<popup-with-iframe <popup-with-iframe
v-model="popupShow" v-model="popupShow"
...@@ -138,6 +143,7 @@ export default { ...@@ -138,6 +143,7 @@ export default {
goodId: "", goodId: "",
calTimer: null, calTimer: null,
goodActionInfo: {}, goodActionInfo: {},
goodActionShow: false,
popupShow: false, popupShow: false,
currentPupopIndex: null, currentPupopIndex: null,
formData: {}, formData: {},
......
<template> <template>
<cr-form scroll-to-error @submit="onSubmit" @failed="onFailed" class="container"> <cr-form scroll-to-error @submit="onSubmit" @failed="onFailed" class="container">
<nav-tab :nav-list="navBarOptions" /> <nav-tab :nav-list="navBarOptions" @show="e => (goodActionShow = e)" />
<detail-header :det="headerInfo" /> <detail-header :det="headerInfo" />
<div class="det-body"> <div class="det-body">
<card title="保险计划" :option="['查看详情']" @option-click="openIframePupop(4)"> <card title="保险计划" :option="['查看详情']" @option-click="openIframePupop(4)">
...@@ -41,7 +41,11 @@ ...@@ -41,7 +41,11 @@
</div> </div>
<detail-footer :company-info="companyInfo" /> <detail-footer :company-info="companyInfo" />
<copyright /> <copyright />
<good-action @leftClick="goInsureState = true" :content="goodActionInfo" /> <good-action
@leftClick="goInsureState = true"
:content="goodActionInfo"
v-show="goodActionShow"
/>
<popup-with-iframe <popup-with-iframe
v-model="popupShow" v-model="popupShow"
:title="pupopData.title" :title="pupopData.title"
...@@ -139,6 +143,7 @@ export default { ...@@ -139,6 +143,7 @@ export default {
autoRenewPolicy: false, autoRenewPolicy: false,
read: true read: true
}, },
goodActionShow: false,
goInsureState: false goInsureState: false
}; };
}, },
...@@ -288,7 +293,7 @@ export default { ...@@ -288,7 +293,7 @@ export default {
userInfo: { userInfo: {
idNo, idNo,
socialSecurity: !!Number(socialSecurity), socialSecurity: !!Number(socialSecurity),
userInfoSecId: userInfoSecId ?? null userInfoSecId: userInfoSecId ? userInfoSecId : undefined
}, },
productItem: { productItem: {
payType payType
......
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
<mi-detail v-if="detailType === 'mi'" /> <mi-detail v-if="detailType === 'mi'" />
<ai-detail v-if="detailType === 'ai'" /> <ai-detail v-if="detailType === 'ai'" />
<li-detail v-if="detailType === 'li'" /> <li-detail v-if="detailType === 'li'" />
<advisor-rec-dialog v-model="showRec" @close="pageBack" />
</div> </div>
</template> </template>
...@@ -12,22 +13,60 @@ import ciiDetail from "./CIIDetail"; ...@@ -12,22 +13,60 @@ import ciiDetail from "./CIIDetail";
import miDetail from "./MIDetail"; import miDetail from "./MIDetail";
import liDetail from "./LIDetail"; import liDetail from "./LIDetail";
import aiDetail from "./AIDetail"; import aiDetail from "./AIDetail";
import AdvisorRecDialog from "./modules/AdvisorRecDialog";
import localStorage from "@/service/localStorage";
import { getCulOrder } from "@/api/consultant";
export default { export default {
name: "GoodsDetail", name: "GoodsDetail",
components: { components: {
ciiDetail, ciiDetail,
miDetail, miDetail,
aiDetail, aiDetail,
liDetail liDetail,
AdvisorRecDialog
}, },
data() { data() {
return { return {
detailType: "", detailType: "",
show: true showRecFlag: "",
showRec: false,
noOrder: false,
isLogin: ""
}; };
}, },
beforeRouteLeave(to, from, next) {
const { showRecFlag, noOrder, isLogin } = this;
if (showRecFlag && !noOrder && isLogin) {
next();
} else {
next(false);
this.showRec = true;
}
},
mounted() { mounted() {
this.getOrderInfo();
this.showRecFlag = localStorage.get("recFlag");
this.detailType = this.$route.query.type; this.detailType = this.$route.query.type;
},
methods: {
async getOrderInfo() {
this.isLogin = localStorage.get("mongoToken");
if (!this.isLogin) {
return;
}
const res = await getCulOrder();
this.noOrder = res[0].state && res[0].state <= 2;
},
pageBack(e) {
this.showRecFlag = e;
localStorage.set("recFlag", e);
if (e === 1) {
this.$router.back();
} else {
this.$router.push({ path: "/consultant" });
}
}
} }
}; };
</script> </script>
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
cancel-btn="" cancel-btn=""
confirm-btn="0.99元聘请" confirm-btn="0.99元聘请"
@confirm="go" @confirm="go"
@close="onClose"
class="rec" class="rec"
> >
<div class="rec-title" slot="title"> <div class="rec-title" slot="title">
...@@ -32,6 +33,8 @@ ...@@ -32,6 +33,8 @@
<script> <script>
import Modal from "@/components/Modal"; import Modal from "@/components/Modal";
const DIALOG_CHANGE_EVENT = "input"; const DIALOG_CHANGE_EVENT = "input";
const DIALOG_CLOSE_EVENT = "close";
export default { export default {
name: "AdvisorRecDialog", name: "AdvisorRecDialog",
components: { components: {
...@@ -57,8 +60,11 @@ export default { ...@@ -57,8 +60,11 @@ export default {
} }
}, },
methods: { methods: {
onClose() {
this.$emit(DIALOG_CLOSE_EVENT, 1);
},
go() { go() {
this.$router.push("/goods/inform"); this.$emit(DIALOG_CLOSE_EVENT, 2);
} }
} }
}; };
......
<template> <template>
<card title="请填写投保信息" class="insure-card"> <div>
<h6 class="insure-form-title">本人信息</h6> <card title="请填写投保信息" class="insure-card">
<cr-cell-group class="insure-form"> <h6 class="insure-form-title">本人信息</h6>
<cr-field <cr-cell-group class="insure-form">
name="selfName" <cr-field
v-model="formData.selfName" name="selfName"
placeholder="请输入投保人姓名" v-model="formData.selfName"
label="姓名" placeholder="请输入投保人姓名"
:readonly="selfInfoReadonly" label="姓名"
:rules="[{ required: true, message: '请输入姓名' }]" :readonly="selfInfoReadonly"
@click.native="inputClick" :rules="[{ required: true, message: '请输入姓名' }]"
/> @click.native="inputClick"
<cr-field />
name="selfIdNo" <cr-field
v-model="formData.selfIdNo" name="selfIdNo"
placeholder="信息保密,仅用于投保" v-model="formData.selfIdNo"
label="身份证号" placeholder="信息保密,仅用于投保"
:readonly="selfInfoReadonly" label="身份证号"
:rules="[{ required: true, message: '请输入身份证号' }]" :readonly="selfInfoReadonly"
@click.native="inputClick" :rules="[{ required: true, message: '请输入身份证号' }]"
/> @click.native="inputClick"
<cr-field />
name="selfPhone" <cr-field
v-model="formData.selfPhone" name="selfPhone"
placeholder="请输入您的手机号码" v-model="formData.selfPhone"
label="手机号码" placeholder="请输入您的手机号码"
:readonly="selfInfoReadonly" label="手机号码"
:rules="[{ required: true, message: '请输入手机号码' }]" :readonly="selfInfoReadonly"
@click.native="inputClick" :rules="[{ required: true, message: '请输入手机号码' }]"
/> @click.native="inputClick"
<cr-field />
name="selfCode" <cr-field
v-model="formData.selfCode" name="selfCode"
v-if="(!!xyqbAuthState && xyqbAuthState !== 4) || !mongoToken" v-model="formData.selfCode"
placeholder="请输入短信验证码" v-if="(!!xyqbAuthState && xyqbAuthState !== 4) || !mongoToken"
label="验证码" placeholder="请输入短信验证码"
:rules="[{ required: true, message: '请输入验证码' }]" label="验证码"
> :rules="[{ required: true, message: '请输入验证码' }]"
<template v-slot:button> >
<a href="javascript:;" @click="getCode" v-if="!showCount">获取验证码</a> <template v-slot:button>
<span class="login-form-remain" v-else>{{ count }}s</span> <a href="javascript:;" @click="getCode" v-if="!showCount">获取验证码</a>
</template> <span class="login-form-remain" v-else>{{ count }}s</span>
</cr-field> </template>
</cr-cell-group> </cr-field>
<h6 class="insure-form-title">为谁投保</h6> </cr-cell-group>
<cr-radio-btn <h6 class="insure-form-title">为谁投保</h6>
v-model="formData.relation" <cr-radio-btn
@input="relationChange" v-model="formData.relation"
:radio-data="radioOptions.insuredOptions" @input="relationChange"
class="insured" :radio-data="radioOptions.insuredOptions"
/> class="insured"
<cr-cell-group class="insure-form">
<cr-field
name="relativeName"
v-if="formData.relation !== '1'"
v-model="formData.name"
placeholder="请输入被保人姓名"
:readonly="infoReadonly"
label="姓名"
:rules="[{ required: true, message: '请输入姓名' }]"
/>
<cr-field
name="relativeIdNo"
v-if="formData.relation !== '1'"
v-model="formData.idNo"
placeholder="信息保密,仅用于投保"
:readonly="infoReadonly"
label="身份证号"
:rules="[{ required: true, message: '请输入身份证号' }]"
/> />
<cr-cell class="insure-form-item_nobg" v-if="radioOptions.medicalOptions"> <cr-cell-group class="insure-form">
<template slot="title"> <cr-field
<span>有无医保</span> name="relativeName"
<cr-icon type="question-o" color="#ccc" /> v-if="formData.relation !== '1'"
</template> v-model="formData.name"
<cr-radio-btn placeholder="请输入被保人姓名"
name="socialSecurity" :readonly="infoReadonly"
v-model="formData.socialSecurity" label="姓名"
:radio-data="radioOptions.medicalOptions" :rules="[{ required: true, message: '请输入姓名' }]"
:readonly="socialSecurityReadonly"
/> />
</cr-cell> <cr-field
<cr-cell title="缴费方式" class="insure-form-item_nobg" v-if="radioOptions.paywayOptions"> name="relativeIdNo"
<cr-radio-btn v-if="formData.relation !== '1'"
name="type" v-model="formData.idNo"
v-model="formData.payType" placeholder="信息保密,仅用于投保"
:radio-data="radioOptions.paywayOptions" :readonly="infoReadonly"
label="身份证号"
:rules="[{ required: true, message: '请输入身份证号' }]"
/> />
</cr-cell> <cr-cell class="insure-form-item_nobg" v-if="radioOptions.medicalOptions">
</cr-cell-group> <template slot="title">
</card> <span>有无医保</span>
<svg-icon
icon-class="doubt"
@click.native="question = true"
class-name="Ffr-title-svg"
/>
</template>
<cr-radio-btn
name="socialSecurity"
v-model="formData.socialSecurity"
:radio-data="radioOptions.medicalOptions"
/>
</cr-cell>
<cr-cell title="缴费方式" class="insure-form-item_nobg" v-if="radioOptions.paywayOptions">
<cr-radio-btn
name="type"
v-model="formData.payType"
:radio-data="radioOptions.paywayOptions"
/>
</cr-cell>
</cr-cell-group>
</card>
<Modal
class="insured-modal"
v-model="question"
:closeable="false"
@confirm="question = false"
cancel-btn=""
content="常见的社保包括农村合作医疗(新农合)、城镇居民社保、城镇职工医保、少儿医保等政府主导的基本医疗保障项目,满足最基本的医疗保障要求。"
title="我们常说的社保都包括哪些?"
confirm-btn="我知道了"
/>
</div>
</template> </template>
<script> <script>
import Card from "@/components/Card"; import Card from "@/components/Card";
import Modal from "@/components/Modal";
import { mapState, mapActions } from "vuex"; import { mapState, mapActions } from "vuex";
import { getFamilyList, getCaptchaSms } from "@/api/user"; import { getFamilyList, getCaptchaSms } from "@/api/user";
import { isPhone } from "@/service/validation"; import { isPhone } from "@/service/validation";
...@@ -104,7 +120,8 @@ export default { ...@@ -104,7 +120,8 @@ export default {
name: "InsurePersonForm", name: "InsurePersonForm",
components: { components: {
CrRadioBtn, CrRadioBtn,
Card Card,
Modal
}, },
props: { props: {
value: { value: {
...@@ -130,7 +147,8 @@ export default { ...@@ -130,7 +147,8 @@ export default {
mongoToken: localStorage.get("mongoToken"), mongoToken: localStorage.get("mongoToken"),
xyqbAuthState: localStorage.get("xyqbAuthState"), xyqbAuthState: localStorage.get("xyqbAuthState"),
selfInfoReadonly: false, selfInfoReadonly: false,
infoReadonly: false infoReadonly: false,
question: false
}; };
}, },
watch: { watch: {
...@@ -328,4 +346,15 @@ export default { ...@@ -328,4 +346,15 @@ export default {
.insured { .insured {
margin-bottom: 20px; margin-bottom: 20px;
} }
.insured-modal {
@{deep} .panel-body {
font-size: 16px;
font-weight: 400;
color: #666666;
line-height: 28px;
}
}
.Ffr-title-svg {
margin-left: 5px;
}
</style> </style>
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
<script> <script>
const SCROLL_ACHOR_CHANGE_EVENT = "input"; const SCROLL_ACHOR_CHANGE_EVENT = "input";
const SCROLL_SHOW_EVENT = "show";
export default { export default {
name: "NavTab", name: "NavTab",
props: { props: {
...@@ -71,6 +72,7 @@ export default { ...@@ -71,6 +72,7 @@ export default {
} }
this.active = navIndex; this.active = navIndex;
this.showNavBar = scrollTop > 300; this.showNavBar = scrollTop > 300;
this.$emit(SCROLL_SHOW_EVENT, this.showNavBar);
}, },
// 跳转到指定索引的元素 // 跳转到指定索引的元素
scrollTo(index) { scrollTo(index) {
......
...@@ -67,7 +67,7 @@ export default { ...@@ -67,7 +67,7 @@ export default {
const { payOrderNo, orderNo } = this.orderInfo; const { payOrderNo, orderNo } = this.orderInfo;
this.setIsLoading(true); this.setIsLoading(true);
placeOrder.polling({ payOrderNo, payOrderType: 1 }).then(payRes => { placeOrder.polling({ payOrderNo, payOrderType: 1 }).then(payRes => {
if (!payRes.result && (payRes.payState === 1 || payRes.payState === 2)) { if (!payRes.result && payRes.payState === 2) {
this.payTimer = setTimeout(() => { this.payTimer = setTimeout(() => {
this.getPayResult(); this.getPayResult();
}, 3000); }, 3000);
......
...@@ -251,6 +251,10 @@ ...@@ -251,6 +251,10 @@
font-size: 16px; font-size: 16px;
color: #999999; color: #999999;
line-height: 19px; line-height: 19px;
a {
font-size: 16px;
color: #999999;
}
} }
p:last-child { p:last-child {
......
...@@ -87,7 +87,9 @@ ...@@ -87,7 +87,9 @@
</a> </a>
</div> </div>
<div class="home-phone"> <div class="home-phone">
<p>客服电话:{{ tel }}</p> <p>
客服电话:<a :href="`tel:${tel}`">{{ tel }}</a>
</p>
<p>服务时间:{{ serviceHours }}</p> <p>服务时间:{{ serviceHours }}</p>
</div> </div>
<copyright :logo="true" /> <copyright :logo="true" />
......
...@@ -140,7 +140,6 @@ ...@@ -140,7 +140,6 @@
<cr-radio-btn <cr-radio-btn
v-model="formData.insuredUserInfo.socialSecurity" v-model="formData.insuredUserInfo.socialSecurity"
:radio-data="socialSecOptions" :radio-data="socialSecOptions"
:readonly="socialSecurityReadonly"
/> />
</template> </template>
</cr-field> </cr-field>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment