Commit 9a3cc7ef authored by 郝聪敏's avatar 郝聪敏

Merge branch 'feature/goods-fix' into 'master'

fix: 自测问题修复

See merge request !35
parents 517885c6 66d550dc
...@@ -6,16 +6,19 @@ ...@@ -6,16 +6,19 @@
</div> </div>
<login-modal /> <login-modal />
<auth-from-xyqb v-if="showAuthXyqb !== -1" /> <auth-from-xyqb v-if="showAuthXyqb !== -1" />
<net-error />
</div> </div>
</template> </template>
<script> <script>
import { mapState, mapActions } from "vuex"; import { mapState, mapActions } from "vuex";
import LoginModal from "@/components/LoginModal"; import LoginModal from "@/components/LoginModal";
import AuthFromXyqb from "@/components/AuthFromXyqb"; import AuthFromXyqb from "@/components/AuthFromXyqb";
import NetError from "@/components/NetError";
export default { export default {
components: { components: {
LoginModal, LoginModal,
AuthFromXyqb AuthFromXyqb,
NetError
}, },
computed: { computed: {
...mapState(["isLoading", "showAuthXyqb"]) ...mapState(["isLoading", "showAuthXyqb"])
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* @Description:华太30万轻重疾险 * @Description:华太30万轻重疾险
* @Date: 2020-07-27 15:46:37 * @Date: 2020-07-27 15:46:37
* @LastEditors: gzw * @LastEditors: gzw
* @LastEditTime: 2020-08-11 17:04:45 * @LastEditTime: 2020-08-12 15:58:44
*/ */
import goodsBg from "@/assets/images/goods/detail/zhongjixian/bg.png"; import goodsBg from "@/assets/images/goods/detail/zhongjixian/bg.png";
...@@ -275,17 +275,17 @@ export default { ...@@ -275,17 +275,17 @@ export default {
title: "100种重大疾病保险金", title: "100种重大疾病保险金",
desc: desc:
"<p>重大疾病包括恶性肿瘤、急性心肌梗塞、终末期肾病(或称慢性肾功能衰竭尿毒症期)等100种。在等待期(90天,意外伤害事故无等待期)后初次发生并经医院专科医生确诊罹患本合同约定的一种或多种重大疾病,保险人按照保险单中约定的重大疾病保险金额给付重大疾病保险金,同时在本保险合同项下对该被保险人的保险责任终止。</p>", "<p>重大疾病包括恶性肿瘤、急性心肌梗塞、终末期肾病(或称慢性肾功能衰竭尿毒症期)等100种。在等待期(90天,意外伤害事故无等待期)后初次发生并经医院专科医生确诊罹患本合同约定的一种或多种重大疾病,保险人按照保险单中约定的重大疾病保险金额给付重大疾病保险金,同时在本保险合同项下对该被保险人的保险责任终止。</p>",
url: "查看100种重大疾病", options: [
path: "http://mangguo-contract.qthbx.com/hua-tai-100chong-zhong-ji-v1/", { title: "查看100种重大疾病", type: "popup", path: "http://mangguo-contract.qthbx.com/hua-tai-100chong-zhong-ji-v1/" }
list: "" ]
}, },
{ {
title: "40种轻症疾病保险金", title: "40种轻症疾病保险金",
desc: desc:
"<p>轻症疾病包括冠状动脉介入手术、非危及生命的(极早期的)恶性病变、轻度中风后遗症等40种。在等待期(90天,意外伤害事故无等待期)后初次发生并经医院专科医生确诊罹患本合同约定的一种或多种轻症。保险人按照保险合同中约定的轻症保险金额给付轻症保险金,同时轻症责任终止。轻症保险金仅针对本保险合同约定的轻症进行给付,轻症疾病必须在生前诊断,对于任何身故后的尸检诊断不给付轻症疾病保险金。对于已经符合重大疾病保险金给付条件的,仅给付重大疾病保险金,不再给付轻症保险金。</p>", "<p>轻症疾病包括冠状动脉介入手术、非危及生命的(极早期的)恶性病变、轻度中风后遗症等40种。在等待期(90天,意外伤害事故无等待期)后初次发生并经医院专科医生确诊罹患本合同约定的一种或多种轻症。保险人按照保险合同中约定的轻症保险金额给付轻症保险金,同时轻症责任终止。轻症保险金仅针对本保险合同约定的轻症进行给付,轻症疾病必须在生前诊断,对于任何身故后的尸检诊断不给付轻症疾病保险金。对于已经符合重大疾病保险金给付条件的,仅给付重大疾病保险金,不再给付轻症保险金。</p>",
url: "查看40种轻症疾病", options: [
path: "http://mangguo-contract.qthbx.com/hua-tai-100chong-qing-zheng-v1/", { title: "查看40种轻症疾病", type: "popup", path: "http://mangguo-contract.qthbx.com/hua-tai-100chong-qing-zheng-v1/" }
list: "" ]
}, },
{ {
title: "保额说明", title: "保额说明",
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
* @Description: 泰康600万医疗保障 * @Description: 泰康600万医疗保障
* @Date: 2020-07-27 15:46:37 * @Date: 2020-07-27 15:46:37
* @LastEditors: gzw * @LastEditors: gzw
* @LastEditTime: 2020-08-12 14:09:59 * @LastEditTime: 2020-08-12 16:40:46
*/ */
import goodsBg from "@/assets/images/goods/detail/yiliaoxian/bg.png"; import goodsBg from "@/assets/images/goods/detail/yiliaoxian/bg.png";
...@@ -275,7 +275,7 @@ export default { ...@@ -275,7 +275,7 @@ export default {
{ {
title: "押金垫付", title: "押金垫付",
desc: desc:
"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" `"XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"`
}, },
{ {
title: "就医绿色通道", title: "就医绿色通道",
...@@ -291,8 +291,112 @@ export default { ...@@ -291,8 +291,112 @@ export default {
<p><strong>5、专家手术(1次/年)</strong></p> <p><strong>5、专家手术(1次/年)</strong></p>
<p>为被保险人提供专家手术加急服务</p> <p>为被保险人提供专家手术加急服务</p>
`, `,
url: "查看详情", options: [
path: "/goods/plan?type=mi-more", { title: "查看详情", type: "page", path: "/goods/plan?type=mi-more" }
]
}
],
greenInfo: [
{
title: "服务介绍",
desc:
"当被保险人经二级或二级以上公立医院初次诊断罹患保险合同所定义的100种重大疾病时,如需专家诊疗,可申请重疾快速就医服务。我们将协调安排覆盖全国31个省市的1233家国内知名三甲医院的专家为被保险人提供全面、详尽的诊疗服务。"
},
{
title: "服务医院列表",
desc:"",
options: [
{
title: "1233家知名三甲医院",
content:
`
<table class="table">
<thead>
<tr>
<th style="width: 25%">省份</th>
<th style="width: 30%">地区</th>
<th style="width: 45%">医院名称</th>
</tr>
</thead>
<tbody>
<tr>
<td>黑龙江</td>
<td>七台河</td>
<td>七台河矿业精煤(集团)有限责任公司总医院</td>
</tr>
<tr>
<td>黑龙江</td>
<td>七台河</td>
<td>七台河市人民医院</td>
</tr>
<tr>
<td>黑龙江</td>
<td>齐齐哈尔</td>
<td>七台河矿业精煤(集团)有限责任公司总医院</td>
</tr>
</tbody>
</table>
`
}
]
},
{
title: "服务内容",
desc:
`
<p><strong>1、专业导诊(1次/年)</strong></p>
<p>为被保险人提供专业导诊咨询服务,帮助用户找“对”专家</p>
<p><strong>2、专家门诊(1次/年)</strong></p>
<p>为被保险人提供副主任及以上专家普通/特需门诊的预约服务</p>
<p><strong>3、专业陪诊(1次/年)</strong></p>
<p>安排医学专业人员陪伴被保险人,协助完成导诊、检查、取药等全程就医环节</p>
<p><strong>4、快速住院(1次/年)</strong></p>
<p>安排被保险人快速入住病房</p>
<p><strong>5、专家手术(1次/年)</strong></p>
<p>为被保险人提供专家手术加急服务</p>
`
},
{
title: "服务安排时间",
desc:
`
<table class="table">
<thead>
<tr>
<th>服务项目</th>
<th>服务安排时间</th>
</tr>
</thead>
<tbody>
<tr>
<td>专业导诊</td>
<td>1个工作日</td>
</tr>
<tr>
<td>专家门诊、专业陪诊</td>
<td>5个工作日</td>
</tr>
<tr>
<td>快速住院、专家手术</td>
<td>10个工作日</td>
</tr>
</tbody>
</table>
`
},
{
title: "服务有效期",
desc:
"保单有效期内有效"
},
{
title: "服务流程",
desc:
`
<p>1、申请:拨打泰康在线服务热线400-079-5522;</p>
<p>2、审核:补充病例材料,服务资格审核;</p>
<p>3、服务:根据病例材料及被保险人需求提供专业导诊咨询,安排专家门诊、专业陪诊、快速住院、专家手术。</p>
`
} }
] ]
}; };
export default { export default {
userAgreement: "http://www.baidu.com", userAgreement: "http://mangguo-contract.qthbx.com/fu-wu-xie-yi-v1/",
privacyPolicy: "http://www.baidu.com" privacyPolicy: "http://mangguo-contract.qthbx.com/yin-si-zheng-ce-v1/"
}; };
export default {
tel: "010-82194734",
serviceHours: "9:00-21:00",
sobot: "",
icp: "京ICP备15059975号",
copyright: "全天候保险代理股份有限公司"
};
<?xml version="1.0" encoding="UTF-8"?>
<svg width="180px" height="180px" viewBox="0 0 180 180" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: Sketch 52.2 (67145) - http://www.bohemiancoding.com/sketch -->
<title>网络异常</title>
<desc>Created with Sketch.</desc>
<defs>
<linearGradient x1="50%" y1="0%" x2="50%" y2="100%" id="linearGradient-1">
<stop stop-color="#F8F8FF" offset="0%"></stop>
<stop stop-color="#EDEEFF" offset="100%"></stop>
</linearGradient>
<linearGradient x1="50%" y1="100%" x2="50%" y2="3.061617e-15%" id="linearGradient-2">
<stop stop-color="#EAEAFF" offset="0%"></stop>
<stop stop-color="#D1D1FF" offset="100%"></stop>
</linearGradient>
<linearGradient x1="50%" y1="0%" x2="50%" y2="133.278344%" id="linearGradient-3">
<stop stop-color="#FFE677" offset="0%"></stop>
<stop stop-color="#FFC842" offset="100%"></stop>
</linearGradient>
<linearGradient x1="56.9031804%" y1="0%" x2="50%" y2="26.4978219%" id="linearGradient-4">
<stop stop-color="#FFE677" offset="0%"></stop>
<stop stop-color="#FFC842" offset="100%"></stop>
</linearGradient>
<linearGradient x1="49.3975384%" y1="-19.084707%" x2="49.3975384%" y2="31.4745876%" id="linearGradient-5">
<stop stop-color="#FFE677" offset="0%"></stop>
<stop stop-color="#FFC842" offset="100%"></stop>
</linearGradient>
<linearGradient x1="55.6005356%" y1="3.55271368e-13%" x2="88.8693203%" y2="45.3615082%" id="linearGradient-6">
<stop stop-color="#FFFFFF" offset="0%"></stop>
<stop stop-color="#D9FF00" offset="100%"></stop>
</linearGradient>
<linearGradient x1="49.3975384%" y1="14.351863%" x2="50%" y2="100%" id="linearGradient-7">
<stop stop-color="#FFE677" offset="0%"></stop>
<stop stop-color="#FFC842" offset="100%"></stop>
</linearGradient>
<linearGradient x1="59.9522742%" y1="-28.5287786%" x2="50%" y2="50%" id="linearGradient-8">
<stop stop-color="#F9D740" offset="0%"></stop>
<stop stop-color="#E2A81C" offset="100%"></stop>
</linearGradient>
<linearGradient x1="59.9522742%" y1="-28.5287786%" x2="50%" y2="50%" id="linearGradient-9">
<stop stop-color="#FFEB92" offset="0%"></stop>
<stop stop-color="#F3AC00" offset="100%"></stop>
</linearGradient>
<linearGradient x1="76.6061285%" y1="-26.7169137%" x2="61.7852055%" y2="88.291542%" id="linearGradient-10">
<stop stop-color="#FFDF6B" offset="0%"></stop>
<stop stop-color="#FFE372" stop-opacity="0" offset="100%"></stop>
</linearGradient>
</defs>
<g id="首页" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="网络异常" transform="translate(-88.000000, -226.000000)">
<g id="Group-3" transform="translate(88.000000, 226.000000)">
<g id="Group-2" transform="translate(11.000000, 11.000000)">
<g id="Group" transform="translate(37.000000, 86.000000)" fill-rule="nonzero">
<path d="M27.2724615,36.9367247 C29.3770705,43.0126037 29.8860237,48.2754593 28.7993209,52.7252912 L38.3789162,49.3780584 C39.358865,44.9015713 38.693236,39.4975291 36.3820292,33.1659319" id="Path-6" fill="url(#linearGradient-1)" transform="translate(33.044525, 42.945612) rotate(46.000000) translate(-33.044525, -42.945612) "></path>
<path d="M71.3028028,23 C68.2323991,26.0936855 68.2323991,31.7603521 71.3028028,40 L91.8363699,33.9890652 C92.1135968,30.3913887 93.5014735,28.7996819 96,29.2139449" id="Path-7" fill="url(#linearGradient-2)"></path>
<path d="M72,23 C87.010375,28.0980392 95.010375,31.4313725 96,33 C96.0060972,30.5015502 95.5134772,29.0431978 94.5221398,28.6249428 C93.5308024,28.2066878 86.0234225,26.3317068 72,23 Z" id="Path-8" fill="url(#linearGradient-1)"></path>
<path d="M0,17.9136709 C8.72611183,20.2712145 14.2711078,20.6307469 16.634988,18.9922681 L22,11.2034846 C16.9821,11.4444153 13.3154334,11.1374006 11,10.2824403 C8.68456665,9.42748011 6.87281786,9 5.56475364,9 L0,17.9136709 Z" id="Path-9" fill="url(#linearGradient-1)"></path>
<path d="M71,6.79534935 C79.1135226,3.58472251 83.1702839,3.58472251 83.1702839,6.79534935 C83.1702839,11.6112896 71,8.17563427 85,0" id="Path-4" stroke="#D6D6FF" stroke-width="0.5"></path>
</g>
<g id="编组-2">
<g id="编组" transform="translate(48.774603, 0.000000)">
<polygon id="矩形" fill="url(#linearGradient-3)" fill-rule="nonzero" transform="translate(67.080000, 13.760000) rotate(16.000000) translate(-67.080000, -13.760000) " points="65.36 2.29333333 68.8 2.29333333 68.8 25.2266667 65.36 25.2266667"></polygon>
<circle id="椭圆形" fill="url(#linearGradient-3)" fill-rule="nonzero" cx="69.9466667" cy="3.44" r="3.44"></circle>
<path d="M91.9917883,56.3158941 C91.9917883,36.6126419 76.0191464,20.64 56.3158941,20.64 C36.6126419,20.64 20.64,36.6126419 20.64,56.3158941 C20.64,76.0191464 91.9917883,76.0191464 91.9917883,56.3158941 Z" id="椭圆形" fill="url(#linearGradient-4)" fill-rule="nonzero"></path>
<ellipse id="椭圆形" stroke="url(#linearGradient-6)" fill="url(#linearGradient-5)" fill-rule="nonzero" transform="translate(54.466667, 52.746667) rotate(13.000000) translate(-54.466667, -52.746667) " cx="54.4666667" cy="52.7466667" rx="49.38" ry="21.2866667"></ellipse>
<path d="M67.4401127,34.5643681 L65.4230425,42.6931044" id="路径-3" stroke="#FFFFFF" stroke-linecap="round" stroke-linejoin="round"></path>
<path d="M79.9315776,40 L77.9145074,48.1287363" id="路径-3备份-3" stroke="#FFFFFF" stroke-linecap="round" stroke-linejoin="round"></path>
<path d="M71.9315776,36 L69.9145074,44.1287363" id="路径-3备份" stroke="#FFFFFF" stroke-linecap="round" stroke-linejoin="round"></path>
<path d="M83.9315776,42 L81.9145074,50.1287363" id="路径-3备份-4" stroke="#FFFFFF" stroke-linecap="round" stroke-linejoin="round"></path>
<path d="M75.9315776,38 L73.9145074,46.1287363" id="路径-3备份-2" stroke="#FFFFFF" stroke-linecap="round" stroke-linejoin="round"></path>
<path d="M87.9315776,44 L85.9145074,52.1287363" id="路径-3备份-5" stroke="#FFFFFF" stroke-linecap="round" stroke-linejoin="round"></path>
<ellipse id="椭圆形" fill="url(#linearGradient-7)" fill-rule="nonzero" transform="translate(53.952279, 54.974726) rotate(13.000000) translate(-53.952279, -54.974726) " cx="53.9522786" cy="54.9747262" rx="49.88" ry="19.5"></ellipse>
<ellipse id="椭圆形备份" fill="url(#linearGradient-8)" fill-rule="nonzero" transform="translate(51.600000, 63.066667) rotate(13.000000) translate(-51.600000, -63.066667) " cx="51.6" cy="63.0666667" rx="26.3733333" ry="11.4666667"></ellipse>
<ellipse id="椭圆形备份" stroke="#FFEAA1" stroke-width="0.5" fill-rule="nonzero" transform="translate(51.775495, 59.948740) rotate(13.000000) translate(-51.775495, -59.948740) " cx="51.7754946" cy="59.9487401" rx="38.75" ry="14.75"></ellipse>
<ellipse id="椭圆形备份" fill="url(#linearGradient-9)" fill-rule="nonzero" transform="translate(49.306667, 67.080000) rotate(13.000000) translate(-49.306667, -67.080000) " cx="49.3066667" cy="67.08" rx="17.2" ry="7.45333333"></ellipse>
</g>
<path d="M0.886307622,147 C27.725539,155 51.7444877,160.333333 72.9431538,163 C94.1418199,165.666667 118.160769,162.666667 145,154 L114.999497,69.0448932 C109.576182,61.387953 100.62287,58.0569327 88.1395636,59.0518323 C86.5987537,59.1746324 84.2983754,60.1911679 81.2384287,62.1014388 L0.886307622,147 Z" id="路径-2" fill="url(#linearGradient-10)"></path>
</g>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
...@@ -3,15 +3,32 @@ ...@@ -3,15 +3,32 @@
<p class="copyright-logo" v-if="props.logo"> <p class="copyright-logo" v-if="props.logo">
<img src="../assets/logo-foot.png" alt="logo" /> <img src="../assets/logo-foot.png" alt="logo" />
</p> </p>
<p>版权所有©2020 全天候保险代理股份有限公司</p> <p>版权所有©{{ props.base.copyrightYear }} {{ props.base.copyright }}</p>
<p>京ICP备15059975号</p> <p>
<a href="http://beian.miit.gov.cn/" target="_blank">{{ props.base.icp }}</a>
</p>
</div> </div>
</template> </template>
<script> <script>
import settings from "@/api/settings";
export default { export default {
name: "Copyright", name: "Copyright",
props: ["logo"] props: {
logo: {
type: Boolean,
default: false
},
base: {
type: Object,
default() {
return {
...settings,
copyrightYear: new Date().getFullYear()
};
}
}
}
}; };
</script> </script>
...@@ -23,6 +40,9 @@ export default { ...@@ -23,6 +40,9 @@ export default {
color: @gray-4; color: @gray-4;
font-size: @font-size-12; font-size: @font-size-12;
line-height: @line-height-sm + 2; line-height: @line-height-sm + 2;
a {
color: @gray-4;
}
&-logo { &-logo {
text-align: center; text-align: center;
margin-bottom: 10px; margin-bottom: 10px;
......
...@@ -69,10 +69,10 @@ export default { ...@@ -69,10 +69,10 @@ export default {
}, },
validOptions: [ validOptions: [
[ [
{ require: true, message: "请填写您的手机号" }, { required: true, message: "请填写您的手机号" },
{ validator: isPhone, message: "请填写正确的手机号码" } { validator: isPhone, message: "请填写正确的手机号码" }
], ],
[{ require: true, message: "请填写验证码" }] [{ required: true, message: "请填写验证码" }]
] ]
}; };
}, },
......
<template>
<cr-overlay custom-class="net-error-mask" :show="showError">
<svg-icon icon-class="ufo" />
<p class="net-error-title">网络异常</p>
<cr-button type="warning" size="large" @click="refresh()">刷新试试</cr-button>
</cr-overlay>
</template>
<script>
export default {
name: "NetError",
data() {
return {
showError: false
};
},
mounted() {
this.init();
},
methods: {
refresh() {
window.location.reload();
},
init() {
window.addEventListener(
"online",
() => {
this.showError = false;
},
true
);
window.addEventListener(
"offline",
() => {
this.showError = true;
},
true
);
}
}
};
</script>
<style lang="less" scoped>
@import "../style/var.less";
@import "../style/mixins.less";
.net-error {
&-mask {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 101;
background-color: #fff;
.svg-icon {
width: 180px;
height: 180px;
margin-top: -120px;
}
.cr-button {
margin-top: 32px;
width: 200px;
}
}
&-title {
.sub-text-mixins();
font-size: 16px;
line-height: 24px;
}
}
</style>
...@@ -71,7 +71,7 @@ export default { ...@@ -71,7 +71,7 @@ export default {
this.$emit(CHANGE_EVENT, val); this.$emit(CHANGE_EVENT, val);
if (!val) { if (!val) {
this.pdfNumPages = null; this.pdfNumPages = null;
this.pdfUrl.destroyed = true; this.pdfUrl = null;
setTimeout(() => { setTimeout(() => {
this.scrollRefresh = false; this.scrollRefresh = false;
}, 300); }, 300);
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Description: 支付微信h5, jsapi, 第三方收银台,跳转) * @Description: 支付微信h5, jsapi, 第三方收银台,跳转)
* @Date: 2020-07-28 15:03:52 * @Date: 2020-07-28 15:03:52
* @LastEditors: gzw * @LastEditors: gzw
* @LastEditTime: 2020-08-04 18:51:12 * @LastEditTime: 2020-08-12 17:59:02
*/ */
import cherry from "@qg/cherry-ui"; import cherry from "@qg/cherry-ui";
...@@ -55,7 +55,7 @@ function payByWeixinJsapi(info = {}, callback) { ...@@ -55,7 +55,7 @@ function payByWeixinJsapi(info = {}, callback) {
* @return: * @return:
*/ */
function payByWeixinH5(info) { function payByWeixinH5(info) {
if (!info.url) return; if (info.url) return;
const currentPath = encodeURIComponent( const currentPath = encodeURIComponent(
window.location.href + qs.stringify(info.params, { encode: true, addQueryPrefix: true }) window.location.href + qs.stringify(info.params, { encode: true, addQueryPrefix: true })
); );
...@@ -71,7 +71,7 @@ function payByWeixinH5(info) { ...@@ -71,7 +71,7 @@ function payByWeixinH5(info) {
* @return: * @return:
*/ */
function payByThirdPartyCashier(info) { function payByThirdPartyCashier(info) {
if (!info.url) return; if (info.url) return;
const currentPath = encodeURIComponent( const currentPath = encodeURIComponent(
window.location.href + qs.stringify(info.params, { encode: true, addQueryPrefix: true }) window.location.href + qs.stringify(info.params, { encode: true, addQueryPrefix: true })
); );
......
...@@ -65,6 +65,7 @@ export default { ...@@ -65,6 +65,7 @@ export default {
const res = await getCulOrder(); const res = await getCulOrder();
if (res) { if (res) {
this.orderInfo = res; this.orderInfo = res;
this.$forceUpdate();
} }
}, },
changeQuestion() { changeQuestion() {
......
...@@ -46,7 +46,7 @@ ...@@ -46,7 +46,7 @@
title="理赔须知" title="理赔须知"
:options="[]" :options="[]"
:text-bold="true" :text-bold="true"
v-model="formData.read" v-model="read"
:cell-data="noticeCellInfo" :cell-data="noticeCellInfo"
@cell-click="openIframePupop" @cell-click="openIframePupop"
> >
...@@ -140,9 +140,8 @@ export default { ...@@ -140,9 +140,8 @@ export default {
goodActionInfo: {}, goodActionInfo: {},
popupShow: false, popupShow: false,
currentPupopIndex: null, currentPupopIndex: null,
formData: { formData: {},
read: true read: true,
},
showLayer: false showLayer: false
}; };
}, },
......
...@@ -159,7 +159,8 @@ export default { ...@@ -159,7 +159,8 @@ export default {
} }
}, },
computed: { computed: {
...mapState(["showAuthXyqb"]) ...mapState(["showAuthXyqb"]),
...mapState("user", ["userInfo"])
}, },
mounted() { mounted() {
this.getFamilyList(); this.getFamilyList();
...@@ -181,9 +182,16 @@ export default { ...@@ -181,9 +182,16 @@ export default {
socialSecurity socialSecurity
} = item; } = item;
if (relation === 0) { if (relation === 0) {
const { phoneNoMask: selfPhone } = this.userInfo;
this.formData = { this.formData = {
...this.formData, ...this.formData,
...{ selfName, selfIdNo, selfSecId, selfSocialSecurity: socialSecurity ? "1" : "0" } ...{
selfName,
selfIdNo,
selfSecId,
selfPhone: selfPhone !== "phoneNoMask" ? selfPhone : "",
selfSocialSecurity: socialSecurity ? "1" : "0"
}
}; };
} }
}); });
...@@ -202,7 +210,7 @@ export default { ...@@ -202,7 +210,7 @@ export default {
const res = await getFamilyList(); const res = await getFamilyList();
if (res) { if (res) {
this.familyList = res; this.familyList = res;
this.showAuthXyqb && this.relationChange(); (this.showAuthXyqb || this.mongoToken) && this.relationChange();
} }
}, },
async getCode() { async getCode() {
......
...@@ -24,6 +24,11 @@ export default { ...@@ -24,6 +24,11 @@ export default {
} }
}, },
async login(phoneNo, verifyCode) { async login(phoneNo, verifyCode) {
if (localStorage.get("mongoToken")) {
return new Promise(resolve => {
resolve();
});
}
let formData = { let formData = {
loginChannel: isWeixinBrower ? 1 : 2, loginChannel: isWeixinBrower ? 1 : 2,
openId: localStorage.get("openId") || null, openId: localStorage.get("openId") || null,
......
...@@ -34,6 +34,7 @@ export default { ...@@ -34,6 +34,7 @@ export default {
const res = await placeOrder.pay({ payOrderNo, payType, tradeType }); const res = await placeOrder.pay({ payOrderNo, payType, tradeType });
if (res) { if (res) {
let payInfo = { let payInfo = {
mock: true,
url: res.payUrl, url: res.payUrl,
params: { params: {
...orderInfo, ...orderInfo,
...@@ -45,7 +46,7 @@ export default { ...@@ -45,7 +46,7 @@ export default {
payInfo = res.payInfo; payInfo = res.payInfo;
} }
payByWay(tradeType, payInfo).then(() => { payByWay(tradeType, payInfo).then(() => {
this.$router.push({ url: "/policy/detail", query: { id: orderNo } }); this.$router.push({ path: "/policy/detail/" + orderNo });
}); });
} }
} }
......
...@@ -22,6 +22,15 @@ ...@@ -22,6 +22,15 @@
left: 40px; left: 40px;
} }
} }
.has-table {
@{deep} .card {
&-body {
padding-left: 0 !important;
padding-right: 0 !important;
background-color: #fff;
}
}
}
.no-url { .no-url {
@{deep} .card { @{deep} .card {
&-body { &-body {
...@@ -44,4 +53,11 @@ ...@@ -44,4 +53,11 @@
} }
} }
} }
.no-desc {
@{deep} .card {
&-footer {
bottom: 33px;
}
}
}
} }
...@@ -5,14 +5,30 @@ ...@@ -5,14 +5,30 @@
:content="item.desc" :content="item.desc"
v-for="(item, index) in planInfo" v-for="(item, index) in planInfo"
:key="index" :key="index"
:footer="item.url" footer="1"
:class="{ 'no-url': !item.url }" :class="{
'has-table': item.desc.indexOf('table') > -1,
'no-url': !item.options,
'no-desc': !item.desc
}"
> >
<a href="javascript:;" @click="openIframePupop(index)" v-if="item.url" slot="footer"> <div slot="footer">
{{ item.url }} <a
href="javascript:;"
@click="openIframePupop(it)"
v-for="(it, idx) in item.options"
:key="idx"
>
{{ it.title }}
</a> </a>
</div>
</card> </card>
<popup-with-iframe v-model="popupShow" :title="pupopData.title" :url="pupopData.path" /> <popup-with-iframe
v-model="popupShow"
:title="pupopData.title"
:content="pupopData.content"
:url="pupopData.path"
/>
</div> </div>
</template> </template>
<script> <script>
...@@ -32,19 +48,10 @@ export default { ...@@ -32,19 +48,10 @@ export default {
return { return {
planInfo: [], planInfo: [],
popupShow: false, popupShow: false,
pupopData: {},
currentPupopIndex: null currentPupopIndex: null
}; };
}, },
computed: {
pupopData() {
const { planInfo, currentPupopIndex } = this;
const { title, path } = planInfo[currentPupopIndex] || { title: "", path: "" };
return {
title: title.substring(0, title.length - 3),
path
};
}
},
mounted() { mounted() {
const detailType = this.$route.query.type; const detailType = this.$route.query.type;
switch (detailType) { switch (detailType) {
...@@ -57,6 +64,9 @@ export default { ...@@ -57,6 +64,9 @@ export default {
case "mi": case "mi":
this.planInfo = mi.planInfo; this.planInfo = mi.planInfo;
break; break;
case "mi-more":
this.planInfo = mi.greenInfo;
break;
case "ai": case "ai":
this.planInfo = ai.planInfo; this.planInfo = ai.planInfo;
break; break;
...@@ -65,8 +75,12 @@ export default { ...@@ -65,8 +75,12 @@ export default {
} }
}, },
methods: { methods: {
openIframePupop(index) { openIframePupop(pupopData) {
this.currentPupopIndex = index; if (pupopData.type === "page") {
window.location.href = pupopData.path;
return;
}
this.pupopData = pupopData;
this.popupShow = true; this.popupShow = true;
} }
} }
......
...@@ -87,8 +87,8 @@ ...@@ -87,8 +87,8 @@
</a> </a>
</div> </div>
<div class="home-phone"> <div class="home-phone">
<p>客服电话:010-82194734</p> <p>客服电话:{{ tel }}</p>
<p>服务时间:9:00-21:00</p> <p>服务时间:{{ serviceHours }}</p>
</div> </div>
<copyright :logo="true" /> <copyright :logo="true" />
<tabbar></tabbar> <tabbar></tabbar>
...@@ -100,6 +100,7 @@ import Tabbar from "@/components/Tabbar"; ...@@ -100,6 +100,7 @@ import Tabbar from "@/components/Tabbar";
import Copyright from "@/components/Copyright"; import Copyright from "@/components/Copyright";
import { list } from "@/api/product"; import { list } from "@/api/product";
import goodsList from "@/api/goodsList.mock"; import goodsList from "@/api/goodsList.mock";
import settings from "@/api/settings";
export default { export default {
name: "Home", name: "Home",
...@@ -110,6 +111,7 @@ export default { ...@@ -110,6 +111,7 @@ export default {
}, },
data() { data() {
return { return {
...settings,
goodsList, goodsList,
articleUseful: localStorage.getItem("articleUseful"), articleUseful: localStorage.getItem("articleUseful"),
articleList: [ articleList: [
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
name="holderUserInfo_name" name="holderUserInfo_name"
label="姓名" label="姓名"
placeholder="请输入投保人姓名" placeholder="请输入投保人姓名"
:rules="[{ require: true, message: '请输入投保人姓名' }]" :rules="[{ required: true, message: '请输入投保人姓名' }]"
@click.native="inputClick" @click.native="inputClick"
/> />
<cr-field <cr-field
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
name="holderUserInfo_idNo" name="holderUserInfo_idNo"
label="身份证号" label="身份证号"
placeholder="请填写投保人身份证号" placeholder="请填写投保人身份证号"
:rules="[{ require: true, message: '请填写投保人身份证号' }]" :rules="[{ required: true, message: '请填写投保人身份证号' }]"
@click.native="inputClick" @click.native="inputClick"
/> />
<cr-field <cr-field
...@@ -33,7 +33,7 @@ ...@@ -33,7 +33,7 @@
type="tel" type="tel"
label="手机号" label="手机号"
placeholder="请填写投保人手机号" placeholder="请填写投保人手机号"
:rules="[{ require: true, message: '请填写投保人手机号' }]" :rules="[{ required: true, message: '请填写投保人手机号' }]"
@click.native="inputClick" @click.native="inputClick"
/> />
<cr-field <cr-field
...@@ -42,7 +42,7 @@ ...@@ -42,7 +42,7 @@
type="email" type="email"
label="电子邮箱" label="电子邮箱"
placeholder="用户接收电子保单" placeholder="用户接收电子保单"
:rules="[{ require: true, message: '请填写电子邮箱' }]" :rules="[{ required: true, message: '请填写电子邮箱' }]"
/> />
<cr-field <cr-field
v-model="formData.holderUserInfo.annualIncome" v-model="formData.holderUserInfo.annualIncome"
...@@ -50,13 +50,13 @@ ...@@ -50,13 +50,13 @@
label="年收入" label="年收入"
type="digit" type="digit"
placeholder="请输入投保人年收入" placeholder="请输入投保人年收入"
:rules="[{ require: true, message: '请输入投保人年收入' }]" :rules="[{ required: true, message: '请输入投保人年收入' }]"
/> />
<cr-field <cr-field
v-model="formData.holderUserInfo.addressCode" v-model="formData.holderUserInfo.addressCode"
name="holderUserInfo_addressCode" name="holderUserInfo_addressCode"
label="居住省市" label="居住省市"
:rules="[{ require: true, message: '请选择投保人居住省市' }]" :rules="[{ required: true, message: '请选择投保人居住省市' }]"
> >
<template #input> <template #input>
<popup-area-picker <popup-area-picker
...@@ -70,13 +70,13 @@ ...@@ -70,13 +70,13 @@
name="holderUserInfo_addressDetail" name="holderUserInfo_addressDetail"
label="详细地址" label="详细地址"
placeholder="请输入居住详细地址" placeholder="请输入居住详细地址"
:rules="[{ require: true, message: '请输入居住详细地址' }]" :rules="[{ required: true, message: '请输入居住详细地址' }]"
/> />
<cr-field <cr-field
v-model="formData.holderUserInfo.occupation" v-model="formData.holderUserInfo.occupation"
name="holderUserInfo_occupation" name="holderUserInfo_occupation"
label="职业" label="职业"
:rules="[{ require: true, message: '请选择投保人职业' }]" :rules="[{ required: true, message: '请选择投保人职业' }]"
> >
<template #input> <template #input>
<popup-picker <popup-picker
...@@ -90,7 +90,7 @@ ...@@ -90,7 +90,7 @@
v-model="formData.holderUserInfo.longTerm" v-model="formData.holderUserInfo.longTerm"
name="holderUserInfo_longTerm" name="holderUserInfo_longTerm"
label="身份证有效期" label="身份证有效期"
:rules="[{ require: true, message: '请选择身份证有效期' }]" :rules="[{ required: true, message: '请选择身份证有效期' }]"
> >
<template #input> <template #input>
<cr-radio-btn <cr-radio-btn
...@@ -103,7 +103,7 @@ ...@@ -103,7 +103,7 @@
v-model="formData.holderUserInfo.validEnd" v-model="formData.holderUserInfo.validEnd"
name="holderUserInfo_validEnd" name="holderUserInfo_validEnd"
label="有效期至" label="有效期至"
:rules="[{ require: true, message: '请选择您的证件有效止期' }]" :rules="[{ required: true, message: '请选择您的证件有效止期' }]"
> >
<template #input> <template #input>
<popup-date-picker <popup-date-picker
...@@ -131,7 +131,7 @@ ...@@ -131,7 +131,7 @@
v-model="formData.insuredUserInfo.socialSecurity" v-model="formData.insuredUserInfo.socialSecurity"
name="insuredUserInfo_socialSecurity" name="insuredUserInfo_socialSecurity"
label="有无社保" label="有无社保"
:rules="[{ require: true, message: '请选择社保状态' }]" :rules="[{ required: true, message: '请选择社保状态' }]"
> >
<template #input> <template #input>
<cr-radio-btn <cr-radio-btn
...@@ -144,9 +144,9 @@ ...@@ -144,9 +144,9 @@
v-model="formData.insuredUserInfo.height" v-model="formData.insuredUserInfo.height"
name="insuredUserInfo_height" name="insuredUserInfo_height"
label="身高" label="身高"
type="digit" type="number"
placeholder="请填写被保人身高" placeholder="请填写被保人身高"
:rules="[{ require: true, message: '请填写被保人身高' }]" :rules="[{ required: true, message: '请填写被保人身高' }]"
> >
<div class="form-unit" slot="button">厘米</div> <div class="form-unit" slot="button">厘米</div>
</cr-field> </cr-field>
...@@ -154,9 +154,9 @@ ...@@ -154,9 +154,9 @@
v-model="formData.insuredUserInfo.weight" v-model="formData.insuredUserInfo.weight"
name="insuredUserInfo_weight" name="insuredUserInfo_weight"
label="体重" label="体重"
type="digit" type="number"
placeholder="请填写被保人体重" placeholder="请填写被保人体重"
:rules="[{ require: true, message: '请填写被保人体重' }]" :rules="[{ required: true, message: '请填写被保人体重' }]"
> >
<div class="form-unit" slot="button">公斤</div> <div class="form-unit" slot="button">公斤</div>
</cr-field> </cr-field>
...@@ -166,14 +166,14 @@ ...@@ -166,14 +166,14 @@
name="insuredUserInfo_name" name="insuredUserInfo_name"
label="姓名" label="姓名"
placeholder="请输入投保人姓名" placeholder="请输入投保人姓名"
:rules="[{ require: true, message: '请输入投保人姓名' }]" :rules="[{ required: true, message: '请输入投保人姓名' }]"
/> />
<cr-field <cr-field
v-model="formData.insuredUserInfo.idNo" v-model="formData.insuredUserInfo.idNo"
name="insuredUserInfo_idNo" name="insuredUserInfo_idNo"
label="身份证号" label="身份证号"
placeholder="请填写投保人身份证号" placeholder="请填写投保人身份证号"
:rules="[{ require: true, message: '请填写投保人身份证号' }]" :rules="[{ required: true, message: '请填写投保人身份证号' }]"
/> />
<cr-field <cr-field
v-model="formData.insuredUserInfo.phoneNo" v-model="formData.insuredUserInfo.phoneNo"
...@@ -181,7 +181,7 @@ ...@@ -181,7 +181,7 @@
label="手机号" label="手机号"
type="tel" type="tel"
placeholder="请填写投保人手机号" placeholder="请填写投保人手机号"
:rules="[{ require: true, message: '请填写投保人手机号' }]" :rules="[{ required: true, message: '请填写投保人手机号' }]"
/> />
<cr-field <cr-field
v-model="formData.insuredUserInfo.annualIncome" v-model="formData.insuredUserInfo.annualIncome"
...@@ -189,13 +189,13 @@ ...@@ -189,13 +189,13 @@
label="年收入" label="年收入"
type="digit" type="digit"
placeholder="请输入投保人年收入" placeholder="请输入投保人年收入"
:rules="[{ require: true, message: '请输入投保人年收入' }]" :rules="[{ required: true, message: '请输入投保人年收入' }]"
/> />
<cr-field <cr-field
v-model="formData.insuredUserInfo.addressCode" v-model="formData.insuredUserInfo.addressCode"
name="insuredUserInfo_addressCode" name="insuredUserInfo_addressCode"
label="居住省市" label="居住省市"
:rules="[{ require: true, message: '请选择投保人居住省市' }]" :rules="[{ required: true, message: '请选择投保人居住省市' }]"
> >
<template #input> <template #input>
<popup-area-picker <popup-area-picker
...@@ -209,13 +209,13 @@ ...@@ -209,13 +209,13 @@
name="insuredUserInfo_weigaddressDetailht" name="insuredUserInfo_weigaddressDetailht"
label="详细地址" label="详细地址"
placeholder="请输入居住详细地址" placeholder="请输入居住详细地址"
:rules="[{ require: true, message: '请输入居住详细地址' }]" :rules="[{ required: true, message: '请输入居住详细地址' }]"
/> />
<cr-field <cr-field
v-model="formData.insuredUserInfo.occupation" v-model="formData.insuredUserInfo.occupation"
name="insuredUserInfo_occupation" name="insuredUserInfo_occupation"
label="职业" label="职业"
:rules="[{ require: true, message: '请选择投保人职业' }]" :rules="[{ required: true, message: '请选择投保人职业' }]"
> >
<template #input> <template #input>
<popup-picker <popup-picker
...@@ -229,7 +229,7 @@ ...@@ -229,7 +229,7 @@
v-model="formData.insuredUserInfo.longTerm" v-model="formData.insuredUserInfo.longTerm"
name="insuredUserInfo_longTerm" name="insuredUserInfo_longTerm"
label="身份证有效期" label="身份证有效期"
:rules="[{ require: true, message: '请选择身份证有效期' }]" :rules="[{ required: true, message: '请选择身份证有效期' }]"
> >
<template #input> <template #input>
<cr-radio-btn <cr-radio-btn
...@@ -242,7 +242,7 @@ ...@@ -242,7 +242,7 @@
v-model="formData.insuredUserInfo.validEnd" v-model="formData.insuredUserInfo.validEnd"
name="insuredUserInfo_validEnd" name="insuredUserInfo_validEnd"
label="有效期至" label="有效期至"
:rules="[{ require: true, message: '请选择您的证件有效止期' }]" :rules="[{ required: true, message: '请选择您的证件有效止期' }]"
> >
<template #input> <template #input>
<popup-date-picker <popup-date-picker
...@@ -258,7 +258,7 @@ ...@@ -258,7 +258,7 @@
v-model="formData.productItem.insuredAmount" v-model="formData.productItem.insuredAmount"
name="productItem_insuredAmount" name="productItem_insuredAmount"
label="投保限额" label="投保限额"
:rules="[{ require: true, message: '请选择投保限额' }]" :rules="[{ required: true, message: '请选择投保限额' }]"
> >
<template #input> <template #input>
<stepper v-model="formData.productItem.insuredAmount" :option="insuredAmountOptions" /> <stepper v-model="formData.productItem.insuredAmount" :option="insuredAmountOptions" />
...@@ -268,7 +268,7 @@ ...@@ -268,7 +268,7 @@
v-model="formData.productItem.policyPeriod" v-model="formData.productItem.policyPeriod"
name="productItem_policyPeriod" name="productItem_policyPeriod"
label="保险期限" label="保险期限"
:rules="[{ require: true, message: '请选择保险期限' }]" :rules="[{ required: true, message: '请选择保险期限' }]"
> >
<template #input> <template #input>
<cr-radio-btn v-model="formData.productItem.policyPeriod" :radio-data="termOptions" /> <cr-radio-btn v-model="formData.productItem.policyPeriod" :radio-data="termOptions" />
...@@ -278,7 +278,7 @@ ...@@ -278,7 +278,7 @@
v-model="formData.payPeriod" v-model="formData.payPeriod"
name="payPeriod" name="payPeriod"
label="交费方式" label="交费方式"
:rules="[{ require: true, message: '请选择交费方式' }]" :rules="[{ required: true, message: '请选择交费方式' }]"
> >
<template #input> <template #input>
<cr-radio-btn v-model="formData.productItem.payType" :radio-data="paywayOptions" /> <cr-radio-btn v-model="formData.productItem.payType" :radio-data="paywayOptions" />
...@@ -288,7 +288,7 @@ ...@@ -288,7 +288,7 @@
v-model="formData.productItem.paymentPeriod" v-model="formData.productItem.paymentPeriod"
name="productItem_paymentPeriod" name="productItem_paymentPeriod"
label="交费期间" label="交费期间"
:rules="[{ require: true, message: '请选择交费期间' }]" :rules="[{ required: true, message: '请选择交费期间' }]"
> >
<template #input> <template #input>
<cr-radio-btn <cr-radio-btn
...@@ -297,23 +297,8 @@ ...@@ -297,23 +297,8 @@
/> />
</template> </template>
</cr-field> </cr-field>
<cr-field <cr-field :value="formData.effectiveDate" name="effectiveDate" readonly label="生效日期" />
v-model="formData.effectiveDate" <cr-field value="法定" name="beneficiaryUser" disabled label="受益人" />
name="effectiveDate"
label="生效日期"
:rules="[{ require: true, message: '生效日期' }]"
>
<template #input>
<popup-date-picker v-model="formData.effectiveDate" placeholder="请选择生效日期" />
</template>
</cr-field>
<cr-field
v-model="formData.beneficiaryUser"
name="beneficiaryUser"
placeholder="请填写受益人"
label="受益人"
:rules="[{ require: true, message: '请填写受益人' }]"
/>
</cr-cell-group> </cr-cell-group>
<good-action @leftClick="goInsureState = true" :content="goodActionInfo" /> <good-action @leftClick="goInsureState = true" :content="goodActionInfo" />
</cr-form> </cr-form>
...@@ -367,6 +352,7 @@ import { mapState, mapActions } from "vuex"; ...@@ -367,6 +352,7 @@ import { mapState, mapActions } from "vuex";
import Detail from "@/api/detail.huagui.shouxian"; import Detail from "@/api/detail.huagui.shouxian";
import { list, trail } from "@/api/product"; import { list, trail } from "@/api/product";
import { getFamilyList } from "@/api/user"; import { getFamilyList } from "@/api/user";
import { parseTime } from "@/service/utils";
const { const {
headerInfo, headerInfo,
popupArray, popupArray,
...@@ -430,14 +416,11 @@ export default { ...@@ -430,14 +416,11 @@ export default {
headerInfo: { headerInfo: {
deep: true, deep: true,
handler(val) { handler(val) {
const { price, subPrice } = val; const { price } = val;
this.goodActionInfo = { this.goodActionInfo = {
title: price title: price
}; };
this.goodBuyModalInfo = [ this.goodBuyModalInfo = [{ title: `${price[2]}保费`, value: `${price[0]}${price[1]}` }];
{ title: `${price[2]}保费`, value: `${price[0]}${price[1]}` },
{ title: `${subPrice[2]}保费`, value: `${subPrice[0]}${subPrice[1]}${subPrice[3]}` }
];
} }
}, },
formDataCpu: { formDataCpu: {
...@@ -537,6 +520,8 @@ export default { ...@@ -537,6 +520,8 @@ export default {
...this.formData.productItem, ...this.formData.productItem,
...{ insuredAmount, policyPeriod, paymentPeriod, payType } ...{ insuredAmount, policyPeriod, paymentPeriod, payType }
}; };
const nextDate = Date.parse(new Date()) + 86400000;
this.formData.effectiveDate = parseTime(nextDate, "{y}-{m}-{d} 00:00:00");
this.$forceUpdate(); this.$forceUpdate();
}, },
async getDetail() { async getDetail() {
......
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