提交 ce59c221 编写于 作者: 史文彬's avatar 史文彬

Merge branch 'release' into feature/ui-optimize-0801

...@@ -2,6 +2,9 @@ NODE_ENV=production ...@@ -2,6 +2,9 @@ NODE_ENV=production
# 自定义 VUE_APP_ENV # 自定义 VUE_APP_ENV
VUE_APP_ENV ='dev' VUE_APP_ENV ='dev'
# 微信小程序的环境变量
VUE_APP_MINI_PROGRAM_ENV = 'trial'
VUE_APP_SERVICE_URL=https://dev-sc.yunqueyi.com VUE_APP_SERVICE_URL=https://dev-sc.yunqueyi.com
# 阿里云OSS对象存储地址 # 阿里云OSS对象存储地址
......
NODE_ENV=development NODE_ENV=development
VUE_APP_ENV=development VUE_APP_ENV=development
VUE_APP_MINI_PROGRAM_ENV='trial'
VUE_APP_SERVICE_URL= VUE_APP_SERVICE_URL=
# 模拟用户信息 # 模拟用户信息
......
...@@ -3,6 +3,9 @@ NODE_ENV=production ...@@ -3,6 +3,9 @@ NODE_ENV=production
# 自定义 VUE_APP_ENV # 自定义 VUE_APP_ENV
VUE_APP_ENV ='production' VUE_APP_ENV ='production'
# 微信小程序的环境变量
VUE_APP_MINI_PROGRAM_ENV = 'release'
VUE_APP_SERVICE_URL=https://sc.yunqueyi.com VUE_APP_SERVICE_URL=https://sc.yunqueyi.com
# 阿里云OSS对象存储地址 # 阿里云OSS对象存储地址
......
...@@ -3,6 +3,9 @@ NODE_ENV=production ...@@ -3,6 +3,9 @@ NODE_ENV=production
# 自定义 VUE_APP_ENV # 自定义 VUE_APP_ENV
VUE_APP_ENV ='production' VUE_APP_ENV ='production'
# 微信小程序的环境变量
VUE_APP_MINI_PROGRAM_ENV='trial'
VUE_APP_SERVICE_URL=https://test1-sc.yunqueyi.com VUE_APP_SERVICE_URL=https://test1-sc.yunqueyi.com
# 阿里云OSS对象存储地址 # 阿里云OSS对象存储地址
VUE_APP_OSS_URL=https://pica-h5-test.yunqueyi.com/ VUE_APP_OSS_URL=https://pica-h5-test.yunqueyi.com/
......
# pica-insurance # pica-insurance
> 请先查看每个目录的 md 文件 > 请先查看每个目录的 md 文件
## 仓库入口
[pica-insurance](http://192.168.110.53/com.pica.cloud.frontend/pica-insurance)
## 启动 ## 启动
```shell script ```shell script
npm run start npm run start
......
...@@ -6,9 +6,9 @@ export const getEntitlementList = async (externalOrderNo, projectEquityNo) => { ...@@ -6,9 +6,9 @@ export const getEntitlementList = async (externalOrderNo, projectEquityNo) => {
method: 'get', method: 'get',
url: `/tis/insurance/projectEquityNo/externalOrderNo?externalOrderNo=${externalOrderNo}&projectEquityNo=${projectEquityNo}`, url: `/tis/insurance/projectEquityNo/externalOrderNo?externalOrderNo=${externalOrderNo}&projectEquityNo=${projectEquityNo}`,
withCredentials: true, withCredentials: true,
hasLoading:true, hasLoading: true,
}); });
}; };
// 获取banner // 获取banner
export const getBanner = async (pageType, yunOrderNo) => { export const getBanner = async (pageType, yunOrderNo) => {
...@@ -16,6 +16,15 @@ export const getBanner = async (pageType, yunOrderNo) => { ...@@ -16,6 +16,15 @@ export const getBanner = async (pageType, yunOrderNo) => {
method: 'get', method: 'get',
url: `/tis/insurance/explain/${yunOrderNo}/${pageType}`, url: `/tis/insurance/explain/${yunOrderNo}/${pageType}`,
withCredentials: true, withCredentials: true,
hasLoading:true, hasLoading: true,
});
};
// 查询证件类型字典的接口
export const getCardTypes = () => {
return request({
url: 'basic-data/constants/app?typeCodeList=P333',
method: 'get',
withCredentials: true,
}); });
}; };
import { router, store, vueApp } from '@pica-cli/vue-cli-plugin-pica-cli-plugin/auto'; import {
router,
store,
vueApp,
} from '@pica-cli/vue-cli-plugin-pica-cli-plugin/auto';
import * as dd from 'dingtalk-jsapi'; import * as dd from 'dingtalk-jsapi';
import '@/router'; import '@/router';
console.log('router, store, vueApp: ', router, store, vueApp); console.log('router, store, vueApp: ', router, store, vueApp);
import '@/assets/js/flexible'; import '@/assets/js/flexible';
import {isWeixin } from './utils/index'; import { isWeixin } from './utils/index';
import Loading from '@/components/loading/loading.js'; import Loading from '@/components/loading/loading.js';
import CryptoJS from 'crypto-js/crypto-js'; import CryptoJS from 'crypto-js/crypto-js';
import JsEncrypt from 'jsencrypt/bin/jsencrypt'; import JsEncrypt from 'jsencrypt/bin/jsencrypt';
...@@ -39,22 +43,21 @@ document.documentElement.addEventListener( ...@@ -39,22 +43,21 @@ document.documentElement.addEventListener(
passive: false, passive: false,
} }
); );
console.log('z', vueApp.$rocNative);
vueApp.$rocNative.appInit(); vueApp.$rocNative.appInit();
vueApp.$rocNative.on('wx_ready', function () { vueApp.$rocNative.on('wx_ready', function () {
console.log('-wx_ready-', window._picaWechat); console.log('-wx_ready-', window._picaWechat);
// 初始化wx jssdk 后 执行 脚手架将 wx 对象挂在到 $rocNative对象上,后执行 小程序环境判断方法 miniProgram.getEnv // 初始化wx jssdk 后 执行 脚手架将 wx 对象挂在到 $rocNative对象上,后执行 小程序环境判断方法 miniProgram.getEnv
vueApp.$rocNative.WXInstance.miniProgram.getEnv(function(res) { vueApp.$rocNative.WXInstance.miniProgram.getEnv(function (res) {
console.log('_miniprogram', res.miniprogram); // true console.log('_miniprogram', res.miniprogram); // true
window._miniprogram = res.miniprogram; window._miniprogram = res.miniprogram;
}); });
}); });
console.log('---', isWeixin()); console.log('---', isWeixin());
if(isWeixin()) { if (isWeixin()) {
window._picaWechat = 'wechat'; window._picaWechat = 'wechat';
} }
if(dd.env.version) { if (dd.env.version) {
window._picaWechat = 'dingtalk'; window._picaWechat = 'dingtalk';
} }
...@@ -63,7 +66,7 @@ sessionStorage.setItem('headerHeight', 0); ...@@ -63,7 +66,7 @@ sessionStorage.setItem('headerHeight', 0);
window.Vue.use(Loading); window.Vue.use(Loading);
// 设置安全密钥 // 设置安全密钥
window._AMapSecurityConfig = { window._AMapSecurityConfig = {
securityJsCode: 'f5093bfce95bd0393749259bcc44ede8' securityJsCode: 'f5093bfce95bd0393749259bcc44ede8',
}; };
console.log('router, store, vueApp: ', router, store, vueApp); console.log('router, store, vueApp: ', router, store, vueApp);
......
...@@ -6,12 +6,12 @@ ...@@ -6,12 +6,12 @@
:header-info="headerInfo" :header-info="headerInfo"
/> />
<div class="wrap"> <div class="wrap">
<!-- <div class="title-1"> <div class="title-1">
检测预约 检测预约
</div> </div>
<div class="title-2"> <div class="title-2">
及时接受检测结果检测报告 及时接受检测结果检测报告
</div> --> </div>
<div class="choose-section"> <div class="choose-section">
<van-form <van-form
ref="dectionForm" ref="dectionForm"
...@@ -23,14 +23,13 @@ ...@@ -23,14 +23,13 @@
required required
> >
<template #input> <template #input>
<span style="font-weight:600">{{ dectionForm.detectName }}</span> <span style="font-weight: 600">{{ dectionForm.detectName }}</span>
</template> </template>
</van-field> </van-field>
<van-field <van-field
label="受检人信息" label="受检人信息"
required required
disabled disabled
class="appoint-form-title" class="appoint-form-title"
/> />
<van-field <van-field
...@@ -40,14 +39,17 @@ ...@@ -40,14 +39,17 @@
clearable clearable
class="appoint-form-items" class="appoint-form-items"
placeholder="请输入受检人姓名" placeholder="请输入受检人姓名"
:rules="[{ required: true, message: '请输入受检人姓名' },{ :rules="[
{ required: true, message: '请输入受检人姓名' },
{
pattern: /^[\u4e00-\u9fa5_a-zA-Z0-9]+$/, pattern: /^[\u4e00-\u9fa5_a-zA-Z0-9]+$/,
message: '请输入正确格式', message: '请输入正确格式',
}, },
{ {
pattern: /^.{2,20}$/, pattern: /^.{2,20}$/,
message: '受检人姓名请填写2-20位', message: '受检人姓名请填写2-20位',
},]" },
]"
/> />
<van-field <van-field
v-model="dectionForm.beneficiaryPhone" v-model="dectionForm.beneficiaryPhone"
...@@ -56,11 +58,13 @@ ...@@ -56,11 +58,13 @@
label="手机号" label="手机号"
clearable clearable
placeholder="请输入受检人手机号" placeholder="请输入受检人手机号"
:rules="[{ required: true, message: '请输入受检人手机号' }, :rules="[
{ required: true, message: '请输入受检人手机号' },
{ {
pattern: /^([1][3,4,5,6,7,8,9])\d{9}$/, pattern: /^([1][3,4,5,6,7,8,9])\d{9}$/,
message: '手机号格式填写有误', message: '手机号格式填写有误',
},]" },
]"
/> />
<van-field <van-field
v-model="dectionForm.beneficiaryIdNum" v-model="dectionForm.beneficiaryIdNum"
...@@ -69,11 +73,13 @@ ...@@ -69,11 +73,13 @@
clearable clearable
label="身份证号" label="身份证号"
placeholder="请输入受检人真实身份证号" placeholder="请输入受检人真实身份证号"
:rules="[{ required: true, message: '请输入受检人真实身份证号' }, :rules="[
{ required: true, message: '请输入受检人真实身份证号' },
{ {
pattern: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/, pattern: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/,
message: '身份证号格式填写有误', message: '身份证号格式填写有误',
},]" },
]"
/> />
<van-field <van-field
label="检测地点" label="检测地点"
...@@ -135,7 +141,6 @@ ...@@ -135,7 +141,6 @@
label="预约时间" label="预约时间"
required required
right-icon="arrow" right-icon="arrow"
@click="showPopup('showSelectTime')" @click="showPopup('showSelectTime')"
> >
<template #input> <template #input>
...@@ -160,15 +165,15 @@ ...@@ -160,15 +165,15 @@
block block
type="info" type="info"
:disabled="!canSubmit" :disabled="!canSubmit"
class="appoint-form-submit " class="appoint-form-submit"
:class="canSubmit ? 'appoint-form-submit-active':''" :class="canSubmit ? 'appoint-form-submit-active' : ''"
@click="appointment" @click="appointment"
> >
提交 提交
</van-button> </van-button>
<div class="appoint-tel"> <div class="appoint-tel">
客服电话:<a 客服电话:<a
style="font-weight:600" style="font-weight: 600"
href="tel:400-006-5252" href="tel:400-006-5252"
>400-021-8282</a> >400-021-8282</a>
<div class="serve-time"> <div class="serve-time">
...@@ -199,18 +204,21 @@ ...@@ -199,18 +204,21 @@
@confirm="confirm" @confirm="confirm"
@close="closePopup" @close="closePopup"
/> />
<div <div id="container" />
id="container"
/>
</div> </div>
</template> </template>
<script> <script>
import {getDetectionName, getOrderInfo, appointment, getHospitalList} from '@/api/appoint'; import {
getDetectionName,
getOrderInfo,
appointment,
getHospitalList,
} from '@/api/appoint';
import SelectHospital from '@/components/selectHospital/index.vue'; import SelectHospital from '@/components/selectHospital/index.vue';
import SelectTime from '@/components/selectTime/index.vue'; import SelectTime from '@/components/selectTime/index.vue';
import PickArea from '@/components/pickArea/index.vue'; import PickArea from '@/components/pickArea/index.vue';
import { getJumpPageStatus, getButtonStatus} from '@/api/question'; import { getJumpPageStatus, getButtonStatus } from '@/api/question';
import storejs from 'storejs'; import storejs from 'storejs';
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import AMapLoader from '@amap/amap-jsapi-loader'; import AMapLoader from '@amap/amap-jsapi-loader';
...@@ -218,11 +226,11 @@ export default { ...@@ -218,11 +226,11 @@ export default {
components: { components: {
SelectHospital, SelectHospital,
SelectTime, SelectTime,
PickArea PickArea,
}, },
data() { data() {
return { return {
picaWechat:window._picaWechat, picaWechat: window._picaWechat,
headerInfo: { headerInfo: {
title: '检测服务', title: '检测服务',
isBlack: true, isBlack: true,
...@@ -230,21 +238,21 @@ export default { ...@@ -230,21 +238,21 @@ export default {
style: 'backgroundColor:#ffffff;zIndex:100;', style: 'backgroundColor:#ffffff;zIndex:100;',
background: '', background: '',
}, },
dectionData:{}, dectionData: {},
dectionForm: { dectionForm: {
detectName: '', detectName: '',
beneficiaryIdNum:'', beneficiaryIdNum: '',
beneficiaryName: '', beneficiaryName: '',
appointmentTime: '', appointmentTime: '',
currentDate: '', currentDate: '',
timeBucket: '', timeBucket: '',
beneficiaryPhone: '', beneficiaryPhone: '',
hospitalName:'', hospitalName: '',
goodsId: '', goodsId: '',
}, },
showAreaLabel:'', showAreaLabel: '',
showselectHospital:false, showselectHospital: false,
showArea:false, showArea: false,
reportShow: false, reportShow: false,
placeList: [], placeList: [],
popType: '', popType: '',
...@@ -260,14 +268,14 @@ export default { ...@@ -260,14 +268,14 @@ export default {
value: [], value: [],
label: '', label: '',
}, },
geolocation:null, geolocation: null,
isShowAddress: false, isShowAddress: false,
showSelectTime:false, showSelectTime: false,
isSelf: false, isSelf: false,
spEquityCode: '', spEquityCode: '',
position: { position: {
latitude: '', latitude: '',
longitude:'' longitude: '',
}, },
locationAreaCode: [], locationAreaCode: [],
hospitalId: '', hospitalId: '',
...@@ -275,7 +283,7 @@ export default { ...@@ -275,7 +283,7 @@ export default {
yunOrderNo: '', yunOrderNo: '',
externalData: { externalData: {
latitude: '', latitude: '',
longitude:'', longitude: '',
provinceId: '', provinceId: '',
countyId: '', countyId: '',
cityId: '', cityId: '',
...@@ -311,13 +319,13 @@ export default { ...@@ -311,13 +319,13 @@ export default {
console.log('yunOrderNo', yunOrderNo); console.log('yunOrderNo', yunOrderNo);
const data = { const data = {
yunOrderNo, yunOrderNo,
projectEquityNo:'', projectEquityNo: '',
externalOrderNo:'', externalOrderNo: '',
}; };
this.$sendBuriedData({ this.$sendBuriedData({
action: 'ACTION_WEB_AFTER', action: 'ACTION_WEB_AFTER',
component_tag: '7802852#0#0#预约', component_tag: '7802852#0#0#预约',
web_data:{yunOrderNo: yunOrderNo}, web_data: { yunOrderNo: yunOrderNo },
}); });
this.getDetectionName(yunOrderNo); this.getDetectionName(yunOrderNo);
this.getOrderInfo(yunOrderNo); this.getOrderInfo(yunOrderNo);
...@@ -328,7 +336,7 @@ export default { ...@@ -328,7 +336,7 @@ export default {
methods: { methods: {
// 判断 库存 // 判断 库存
getJumpPageStatus(data) { getJumpPageStatus(data) {
getJumpPageStatus(data).then(res => { getJumpPageStatus(data).then((res) => {
if (res.code == '000000') { if (res.code == '000000') {
this.stock = res.data.stock; this.stock = res.data.stock;
this.isDisabled = !this.stock; this.isDisabled = !this.stock;
...@@ -344,10 +352,10 @@ export default { ...@@ -344,10 +352,10 @@ export default {
initMap() { initMap() {
const that = this; const that = this;
AMapLoader.load({ AMapLoader.load({
key:'c6636583d8d2991af64c9f7253e1a25b', // 申请好的Web端开发者Key,首次调用 load 时必填 key: 'c6636583d8d2991af64c9f7253e1a25b', // 申请好的Web端开发者Key,首次调用 load 时必填
plugins:[''], // 需要使用的的插件列表,如比例尺'AMap.Scale'等 plugins: [''], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
}).then((AMap) => { }).then((AMap) => {
AMap.plugin('AMap.Geolocation', function() { AMap.plugin('AMap.Geolocation', function () {
var geolocation = new AMap.Geolocation({ var geolocation = new AMap.Geolocation({
// 是否使用高精度定位,默认:true // 是否使用高精度定位,默认:true
enableHighAccuracy: true, enableHighAccuracy: true,
...@@ -358,12 +366,15 @@ export default { ...@@ -358,12 +366,15 @@ export default {
// 定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false // 定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
zoomToAccuracy: true, zoomToAccuracy: true,
// 定位按钮的排放位置, RB表示右下 // 定位按钮的排放位置, RB表示右下
buttonPosition: 'RB' buttonPosition: 'RB',
}); });
geolocation.getCurrentPosition((status, result) => { geolocation.getCurrentPosition((status, result) => {
console.log('geolocationgeolocation,', status, result.position); console.log('geolocationgeolocation,', status, result.position);
if (result.position) { if (result.position) {
const position = { ...result.position, addr: result.formattedAddress }; const position = {
...result.position,
addr: result.formattedAddress,
};
that.position.latitude = result.position.lat || ''; that.position.latitude = result.position.lat || '';
that.position.longitude = result.position.lng || ''; that.position.longitude = result.position.lng || '';
storejs.set('geolocation', position); storejs.set('geolocation', position);
...@@ -371,9 +382,7 @@ export default { ...@@ -371,9 +382,7 @@ export default {
storejs.remove('geolocation'); storejs.remove('geolocation');
} }
that.initHospitalList(); that.initHospitalList();
}); });
}); });
}); });
}, },
...@@ -388,30 +397,40 @@ export default { ...@@ -388,30 +397,40 @@ export default {
const data = { const data = {
projectEquityNo: this.projectEquityNo, projectEquityNo: this.projectEquityNo,
latitude: this.position.latitude, latitude: this.position.latitude,
longitude:this.position.longitude, longitude: this.position.longitude,
}; };
this.getHospitalList(data); this.getHospitalList(data);
} }
}, },
// 根据坐标获取最近的机构id // 根据坐标获取最近的机构id
getHospitalList(data) { getHospitalList(data) {
getHospitalList(data).then(res => { getHospitalList(data).then((res) => {
const { provinceId, countyId, cityId, hospitalName, hospitalId } = res.data.data[0]; const { provinceId, countyId, cityId, hospitalName, hospitalId } =
console.log('getHospitalListposition', res.data.data[0], provinceId, countyId, cityId, hospitalName, hospitalId); res.data.data[0];
console.log(
'getHospitalListposition',
res.data.data[0],
provinceId,
countyId,
cityId,
hospitalName,
hospitalId
);
this.locationAreaCode = [provinceId, cityId, countyId]; this.locationAreaCode = [provinceId, cityId, countyId];
this.dectionForm.hospitalName = hospitalName; this.dectionForm.hospitalName = hospitalName;
this.hospitalId = hospitalId; this.hospitalId = hospitalId;
this.externalData = { this.externalData = {
latitude: this.position.latitude, latitude: this.position.latitude,
longitude:this.position.longitude, longitude: this.position.longitude,
provinceId, countyId, cityId provinceId,
countyId,
cityId,
}; };
}); });
}, },
// 目前是配置一个检测信息,可能会拓展,所以返回的是一个list // 目前是配置一个检测信息,可能会拓展,所以返回的是一个list
getDetectionName(yunOrderNo) { getDetectionName(yunOrderNo) {
getDetectionName(yunOrderNo).then(res => { getDetectionName(yunOrderNo).then((res) => {
if (res.code === '000000' && res.data) { if (res.code === '000000' && res.data) {
const dectionData = res.data[0] || {}; const dectionData = res.data[0] || {};
console.log('getDetectionName', dectionData); console.log('getDetectionName', dectionData);
...@@ -419,30 +438,42 @@ export default { ...@@ -419,30 +438,42 @@ export default {
this.dectionForm.detectName = dectionData.detectionName; this.dectionForm.detectName = dectionData.detectionName;
this.dectionForm.goodsId = dectionData.goodsId; this.dectionForm.goodsId = dectionData.goodsId;
this.$store.dispatch('home/setInsuranceInfo', dectionData); this.$store.dispatch('home/setInsuranceInfo', dectionData);
} }
}); });
}, },
// 获取订单信息 // 获取订单信息
getOrderInfo(yunOrderNo) { getOrderInfo(yunOrderNo) {
getOrderInfo(yunOrderNo).then(res => { getOrderInfo(yunOrderNo).then((res) => {
console.log('getOrderInfo', res); console.log('getOrderInfo', res);
this.dectionForm.beneficiaryName = res.data.beneficiaryName; this.dectionForm.beneficiaryName = res.data.beneficiaryName;
this.dectionForm.beneficiaryPhone = res.data.beneficiaryPhone; this.dectionForm.beneficiaryPhone = res.data.beneficiaryPhone;
this.dectionForm.beneficiaryIdNum = res.data.beneficiaryIdNum; this.dectionForm.beneficiaryIdNum = res.data.beneficiaryIdNum;
this.isDisabled = (this.dectionForm.beneficiaryName != '' && this.dectionForm.beneficiaryPhone != '' && this.dectionForm.beneficiaryIdNum != '') && (this.dectionForm.beneficiaryName && this.dectionForm.beneficiaryPhone && this.dectionForm.beneficiaryIdNum ); this.isDisabled =
this.dectionForm.beneficiaryName != '' &&
this.dectionForm.beneficiaryPhone != '' &&
this.dectionForm.beneficiaryIdNum != '' &&
this.dectionForm.beneficiaryName &&
this.dectionForm.beneficiaryPhone &&
this.dectionForm.beneficiaryIdNum;
this.$store.dispatch('home/setOrderInfo', res.data); this.$store.dispatch('home/setOrderInfo', res.data);
}); });
}, },
selectTimes(times) { selectTimes(times) {
console.log(times); console.log(times);
const {value, currentItemChoosed} = times; const { value, currentItemChoosed } = times;
this.dectionForm.appointmentTime = value; this.dectionForm.appointmentTime = value;
this.closePopup('showSelectTime'); this.closePopup('showSelectTime');
// appointmentTimeShadow // appointmentTimeShadow
const m = (Number(dayjs(currentItemChoosed.appointmentDate).month()) + 1) + '月' + (Number(dayjs(currentItemChoosed.appointmentDate).date())) + '日'; const m =
this.appointmentTimeShadow = m + ' ' + currentItemChoosed[currentItemChoosed.timeBucket + 'TimeContent']; Number(dayjs(currentItemChoosed.appointmentDate).month()) +
1 +
'月' +
Number(dayjs(currentItemChoosed.appointmentDate).date()) +
'日';
this.appointmentTimeShadow =
m +
' ' +
currentItemChoosed[currentItemChoosed.timeBucket + 'TimeContent'];
}, },
getTimes() { getTimes() {
this.timsArray = []; this.timsArray = [];
...@@ -467,7 +498,6 @@ export default { ...@@ -467,7 +498,6 @@ export default {
if (this.stock) { if (this.stock) {
this[name] = true; this[name] = true;
} }
}, },
closePopup(name) { closePopup(name) {
this[name] = false; this[name] = false;
...@@ -476,10 +506,12 @@ export default { ...@@ -476,10 +506,12 @@ export default {
this.$sendBuriedData({ this.$sendBuriedData({
action: 'ACTION_WEB_CLICK', action: 'ACTION_WEB_CLICK',
component_tag: '7802852#0#0#预约提交', component_tag: '7802852#0#0#预约提交',
web_data:{yunOrderNo: this.yunOrderNo}, web_data: { yunOrderNo: this.yunOrderNo },
}); });
this.$refs.dectionForm.validate().then(result => { this.$refs.dectionForm
.validate()
.then((result) => {
console.log('this.dectionForm', result); console.log('this.dectionForm', result);
const data = { const data = {
appointmentTime: this.dectionForm.appointmentTime, appointmentTime: this.dectionForm.appointmentTime,
...@@ -492,12 +524,13 @@ export default { ...@@ -492,12 +524,13 @@ export default {
yunOrderNo: this.yunOrderNo, yunOrderNo: this.yunOrderNo,
longitude: this.position.longitude || '', longitude: this.position.longitude || '',
latitude: this.position.latitude || '', latitude: this.position.latitude || '',
}; };
appointment(data).then(res => { appointment(data).then((res) => {
if (res.code === '000000') { if (res.code === '000000') {
const l = window.location.origin; const l = window.location.origin;
const hr = l + `/pica-insurance/appoint-details?yunOrderNo=${this.yunOrderNo}&projectEquityNo=${this.projectEquityNo}`; const hr =
l +
`/pica-insurance/appoint-details?yunOrderNo=${this.yunOrderNo}&projectEquityNo=${this.projectEquityNo}`;
window.location.href = hr; window.location.href = hr;
// this.$router.push({ // this.$router.push({
// path: '/appoint-details', // path: '/appoint-details',
...@@ -510,21 +543,22 @@ export default { ...@@ -510,21 +543,22 @@ export default {
res.message && this.$toast(res.message); res.message && this.$toast(res.message);
} }
}); });
})
}).catch(err => { .catch((err) => {
console.log(err); console.log(err);
}); });
}, },
// 获取按钮状态 // 获取按钮状态
getButtonStatus(yunOrderNo) { getButtonStatus(yunOrderNo) {
getButtonStatus(yunOrderNo).then(res => { getButtonStatus(yunOrderNo).then((res) => {
console.log(res); console.log(res);
this.$loading.hide(); this.$loading.hide();
this.buttonStatus = res.data.buttonStatus; this.buttonStatus = res.data.buttonStatus;
this.buttonText = res.data.statusDesc; this.buttonText = res.data.statusDesc;
!this.buttonStatus && this.$dialog.alert({ !this.buttonStatus &&
this.$dialog.alert({
message: this.buttonText, message: this.buttonText,
confirmButtonColor:'#00bda5' confirmButtonColor: '#00bda5',
}); });
}); });
}, },
...@@ -532,20 +566,18 @@ export default { ...@@ -532,20 +566,18 @@ export default {
console.log('confirm', values); console.log('confirm', values);
if (values) { if (values) {
console.log('confirm1', values); console.log('confirm1', values);
this.showAreaLabel = values.map(ele => ele.name).join(''); this.showAreaLabel = values.map((ele) => ele.name).join('');
this.externalData.provinceId = values[0].id; this.externalData.provinceId = values[0].id;
this.externalData.countyId = values[2].id; this.externalData.countyId = values[2].id;
this.externalData.cityId = values[1].id; this.externalData.cityId = values[1].id;
console.log('confirm1', this.externalData); console.log('confirm1', this.externalData);
this.showArea = false; this.showArea = false;
} }
}, },
selectHospital({hospitalId, hospitalName}) { selectHospital({ hospitalId, hospitalName }) {
this.hospitalId = hospitalId; this.hospitalId = hospitalId;
this.dectionForm.hospitalName = hospitalName; this.dectionForm.hospitalName = hospitalName;
this.showselectHospital = false; this.showselectHospital = false;
}, },
showAreaFn() { showAreaFn() {
if (this.stock) { if (this.stock) {
...@@ -556,7 +588,7 @@ export default { ...@@ -556,7 +588,7 @@ export default {
console.log('cleanHospitalId'); console.log('cleanHospitalId');
this.hospitalId = ''; this.hospitalId = '';
this.dectionForm.hospitalName = ''; this.dectionForm.hospitalName = '';
} },
}, },
}; };
</script> </script>
...@@ -568,7 +600,7 @@ export default { ...@@ -568,7 +600,7 @@ export default {
overflow: auto; overflow: auto;
box-sizing: border-box; box-sizing: border-box;
color: #ffffff; color: #ffffff;
background: #F3FCFF; background: #f3fcff;
.bg-img { .bg-img {
width: 100%; width: 100%;
...@@ -591,15 +623,15 @@ export default { ...@@ -591,15 +623,15 @@ export default {
margin-top: 2px; margin-top: 2px;
font-size: 12px; font-size: 12px;
} }
.appoint-form-title{ .appoint-form-title {
font-size: 14px; font-size: 14px;
font-family: PingFang SC; font-family: PingFang SC;
font-weight: 400; font-weight: 400;
color: #212121; color: #212121;
padding-top:22px ; padding-top: 22px;
padding-bottom: 0; padding-bottom: 0;
line-height: 20px line-height: 20px;
} }
.choose-section { .choose-section {
...@@ -607,10 +639,10 @@ export default { ...@@ -607,10 +639,10 @@ export default {
background: #ffffff; background: #ffffff;
border-radius: 11px; border-radius: 11px;
margin-top: 15px; margin-top: 15px;
/deep/ .van-field__label{ /deep/ .van-field__label {
color: #212121; color: #212121;
} }
/deep/ .van-field__control:disabled{ /deep/ .van-field__control:disabled {
color: #323233; color: #323233;
-webkit-text-fill-color: #323233; -webkit-text-fill-color: #323233;
} }
...@@ -652,30 +684,29 @@ export default { ...@@ -652,30 +684,29 @@ export default {
color: rgba(255, 56, 56, 1); color: rgba(255, 56, 56, 1);
} }
} }
.appoint-form-items{ .appoint-form-items {
// font-weight: 600; // font-weight: 600;
/deep/ .van-field__label{ /deep/ .van-field__label {
color: #999999; color: #999999;
} }
/deep/ .van-field__control{ /deep/ .van-field__control {
font-weight: 600; font-weight: 600;
} }
/deep/ .van-field__control::placeholder{ /deep/ .van-field__control::placeholder {
font-weight: 450; font-weight: 450;
} }
.appoint-form-placeholder{ .appoint-form-placeholder {
font-weight: 450; font-weight: 450;
} }
} }
.appoint-form-value{ .appoint-form-value {
font-weight: 600; font-weight: 600;
} }
.appoint-form-placeholder{ .appoint-form-placeholder {
color: #999999; color: #999999;
} }
.appoint-form-title::after{ .appoint-form-title::after {
display: none; display: none;
} }
// .sub-btn { // .sub-btn {
...@@ -809,19 +840,19 @@ export default { ...@@ -809,19 +840,19 @@ export default {
// /deep/ .van-field__control::placeholder{ // /deep/ .van-field__control::placeholder{
// color: #999999; // color: #999999;
// } // }
.appoint-form-submit{ .appoint-form-submit {
margin-top: 30px; margin-top: 30px;
height: 40px; height: 40px;
font-weight: 600; font-weight: 600;
background: #D9D9D9; background: #d9d9d9;
border-radius: 20px; border-radius: 20px;
border: 1px solid #D9D9D9; border: 1px solid #d9d9d9;
} }
.appoint-form-submit-active{ .appoint-form-submit-active {
background: #00BDA5; background: #00bda5;
border: 1px solid #00BDA5; border: 1px solid #00bda5;
} }
.appoint-tel{ .appoint-tel {
margin-top: 25px; margin-top: 25px;
font-size: 14px; font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC; font-family: PingFangSC-Regular, PingFang SC;
...@@ -829,7 +860,7 @@ export default { ...@@ -829,7 +860,7 @@ export default {
color: #666666; color: #666666;
line-height: 22px; line-height: 22px;
text-align: center; text-align: center;
.serve-time{ .serve-time {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
...@@ -839,11 +870,11 @@ export default { ...@@ -839,11 +870,11 @@ export default {
font-weight: 400; font-weight: 400;
color: #999999; color: #999999;
line-height: 18px; line-height: 18px;
span{ span {
width: 1px; width: 1px;
height: 12px; height: 12px;
margin: 0 12px; margin: 0 12px;
background: #BBBBBB; background: #bbbbbb;
} }
} }
} }
...@@ -883,9 +914,9 @@ export default { ...@@ -883,9 +914,9 @@ export default {
.mpvue-picker-div-show { .mpvue-picker-div-show {
color: #000000; color: #000000;
} }
#container{ #container {
display: none; display: none;
padding:0px; padding: 0px;
margin: 0px; margin: 0px;
width: 100%; width: 100%;
height: 800px; height: 800px;
......
...@@ -151,6 +151,17 @@ ...@@ -151,6 +151,17 @@
</text> --> </text> -->
</div> </div>
</div> </div>
<div
v-if="detailInfo.helpDetectionFlag == 1"
class="detail-bottom-item"
>
<div class="title">
采集方式:
</div>
<div class="value">
现场检测
</div>
</div>
</div> </div>
<div class="appoint-detail-tel"> <div class="appoint-detail-tel">
客服电话:<a 客服电话:<a
......
...@@ -18,7 +18,13 @@ ...@@ -18,7 +18,13 @@
</div> </div>
<div <div
class="status" class="status"
:class="{particlar : (item.statusCode == '0204' || item.statusCode == '0905' || item.statusCode == '0904'), 'red-particlar':item.statusCode == '0305'}" :class="{
particlar:
item.statusCode == '0204' ||
item.statusCode == '0905' ||
item.statusCode == '0904',
'red-particlar': item.statusCode == '0305',
}"
> >
{{ item.statusTxt || '--' }} {{ item.statusTxt || '--' }}
</div> </div>
...@@ -39,7 +45,7 @@ ...@@ -39,7 +45,7 @@
运单号: 运单号:
</div> </div>
<div class="value"> <div class="value">
{{ item.expressNo || "--" }} {{ item.expressNo || '--' }}
</div> </div>
</div> </div>
<div class="item"> <div class="item">
...@@ -47,7 +53,7 @@ ...@@ -47,7 +53,7 @@
物流进度: 物流进度:
</div> </div>
<div class="value"> <div class="value">
{{ item.expressContent || "--" }} {{ item.expressContent || '--' }}
</div> </div>
</div> </div>
</div> </div>
...@@ -66,18 +72,21 @@ ...@@ -66,18 +72,21 @@
检测时间: 检测时间:
</div> </div>
<div class="value"> <div class="value">
{{ formatDate(item.detectionTime) || "--" }} {{ formatDate(item.detectionTime) || '--' }}
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div <div class="btn">
class="btn"
>
<wx-open-launch-weapp <wx-open-launch-weapp
:id="`launch-btn${index}`" :id="`launch-btn${index}`"
style="position: absolute; top: 0; left: 0; width: 100%; height: 100%" style="
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
"
:username="openWebAppConfig.username" :username="openWebAppConfig.username"
:path="`pagesInsurance/all-entrance/index?channelSource=insurance_channel&projectEquityNo=${item.projectEquityNo}&yunOrderNo=${item.yunOrderNoFirst_self}&detectionKind=${item.detectionKind}&tradeDetectionServiceRecordId=${item.tradeDetectionServiceRecordId}`" :path="`pagesInsurance/all-entrance/index?channelSource=insurance_channel&projectEquityNo=${item.projectEquityNo}&yunOrderNo=${item.yunOrderNoFirst_self}&detectionKind=${item.detectionKind}&tradeDetectionServiceRecordId=${item.tradeDetectionServiceRecordId}`"
:env-version="envVersion" :env-version="envVersion"
...@@ -105,47 +114,44 @@ ...@@ -105,47 +114,44 @@
</div> </div>
</template> </template>
<script> <script>
import { formatDate } from '@/utils/common'; import { formatDate } from '@/utils/common';
const { VUE_APP_ENV } = process.env; import { getEntitlementList, getBanner } from '@/api/entitlement';
import {getEntitlementList, getBanner} from '@/api/entitlement';
export default { export default {
data() { data() {
return { return {
bgPath: '', bgPath: '',
entitlementList: [], entitlementList: [],
emptyIconPath: 'https://files.yunqueyi.com/image/png/common/20230602155400880.png', emptyIconPath:
envVersion: VUE_APP_ENV == 'production' ? 'release' : 'trial', 'https://files.yunqueyi.com/image/png/common/20230602155400880.png',
// envVersion: 'trial', envVersion: process.env.VUE_APP_MINI_PROGRAM_ENV,
openWebAppConfig:{ openWebAppConfig: {
username:'gh_e92f58174364', // 小程序唯一username 1.gh_80d54796f2d5 云鹊助手 2. gh_e92f58174364 云鹊健康 username: 'gh_e92f58174364', // 小程序唯一username 1.gh_80d54796f2d5 云鹊助手 2. gh_e92f58174364 云鹊健康
path:'pagesInsurance/all-entrance/index', // 打开页面 path: 'pagesInsurance/all-entrance/index', // 打开页面
extraData: JSON.stringify({}) extraData: JSON.stringify({}),
}, },
externalOrderNo:'', externalOrderNo: '',
projectEquityNo:'', projectEquityNo: '',
showDialog: false, showDialog: false,
}; };
}, },
computed() { computed() {},
},
mounted() { mounted() {
const {externalOrderNo, projectEquityNo} = this.$route.query; const { externalOrderNo, projectEquityNo } = this.$route.query;
this.externalOrderNo = externalOrderNo; this.externalOrderNo = externalOrderNo;
this.projectEquityNo = projectEquityNo; this.projectEquityNo = projectEquityNo;
this.getBanner(6, projectEquityNo); this.getBanner(6, projectEquityNo);
this.getEntitlementList(externalOrderNo, projectEquityNo); this.getEntitlementList(externalOrderNo, projectEquityNo);
this.monitorMiniProgram(); this.monitorMiniProgram();
}, },
methods:{ methods: {
getBanner(pageType, yunOrderNo) { getBanner(pageType, yunOrderNo) {
const self = this; const self = this;
self.$loading.show(); self.$loading.show();
getBanner(pageType, yunOrderNo).then(res => { getBanner(pageType, yunOrderNo).then((res) => {
if(res.code === '000000') { if (res.code === '000000') {
self.bgPath = res.data.logoUrl; self.bgPath = res.data.logoUrl;
self.$loading.hide(); self.$loading.hide();
} }
...@@ -156,7 +162,7 @@ ...@@ -156,7 +162,7 @@
const self = this; const self = this;
document.addEventListener('visibilitychange', () => { document.addEventListener('visibilitychange', () => {
self.entitlementList = []; self.entitlementList = [];
if(document.visibilityState == 'visible') { if (document.visibilityState == 'visible') {
self.refreshList(); self.refreshList();
} }
}); });
...@@ -176,11 +182,11 @@ ...@@ -176,11 +182,11 @@
getEntitlementList(externalOrderNo, projectEquityNo) { getEntitlementList(externalOrderNo, projectEquityNo) {
const that = this; const that = this;
// that.$loading.show(); // that.$loading.show();
getEntitlementList(externalOrderNo, projectEquityNo).then(res => { getEntitlementList(externalOrderNo, projectEquityNo).then((res) => {
if (res.code === '000000') { if (res.code === '000000') {
if(res?.data.length > 0) { if (res?.data.length > 0) {
let arr = []; let arr = [];
arr = res.data.map( r => { arr = res.data.map((r) => {
// 0905已完成 0101未填写问卷 0102已填写问卷 0202已预约 0902已结束 0104待支付 0201待预约 0302已采样 0901 已出报告 // 0905已完成 0101未填写问卷 0102已填写问卷 0202已预约 0902已结束 0104待支付 0201待预约 0302已采样 0901 已出报告
// 0903 待报销 0904 已报销 // 0903 待报销 0904 已报销
switch (r.statusCode) { switch (r.statusCode) {
...@@ -245,21 +251,24 @@ ...@@ -245,21 +251,24 @@
} }
// 已采样 单独处理 // 已采样 单独处理
if(r.statusCode == '0302') { if (r.statusCode == '0302') {
if(r.detectionKind == 1) { if (r.detectionKind == 1) {
r.btnTxt = '上传结果'; r.btnTxt = '上传结果';
}else{ } else {
r.btnTxt = '检测详情'; r.btnTxt = '检测详情';
} }
} }
r.title = r.detectionKind == 1 ? '癌症早早检权益领取' : '癌症早检权益领取'; r.title =
r.detectionKind == 1
? '癌症早早检权益领取'
: '癌症早检权益领取';
return r; return r;
}); });
arr.map((item, index) => { arr.map((item, index) => {
if(item.statusCode == '0101') { if (item.statusCode == '0101') {
arr[index]['yunOrderNoFirst_self'] = item.yunOrderNoFirst; arr[index]['yunOrderNoFirst_self'] = item.yunOrderNoFirst;
}else{ } else {
arr[index]['yunOrderNoFirst_self'] = item.yunOrderNo; arr[index]['yunOrderNoFirst_self'] = item.yunOrderNo;
} }
}); });
...@@ -271,26 +280,26 @@ ...@@ -271,26 +280,26 @@
path: '/sz-public-new', path: '/sz-public-new',
query: { query: {
externalOrderNo: externalOrderNo, externalOrderNo: externalOrderNo,
projectEquityNo:projectEquityNo, projectEquityNo: projectEquityNo,
reload: 'reload', reload: 'reload',
} },
}); });
} }
// that.$loading.hide(); // that.$loading.hide();
} }
}); });
}, },
} },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.page-entitlement { .page-entitlement {
width: 100%; width: 100%;
height: 100vh; height: 100vh;
background: #f5f6f8; background: #f5f6f8;
overflow-y: auto; overflow-y: auto;
.banner{ .banner {
width: 375px; width: 375px;
height: 287px; height: 287px;
} }
...@@ -326,15 +335,15 @@ ...@@ -326,15 +335,15 @@
text-align: right; text-align: right;
font-size: 12px; font-size: 12px;
font-weight: 400; font-weight: 400;
color: #00BDA5; color: #00bda5;
} }
.particlar{ .particlar {
color: #999999; color: #999999;
} }
.red-particlar{ .red-particlar {
color: #FF4B33; color: #ff4b33;
} }
} }
...@@ -381,22 +390,22 @@ ...@@ -381,22 +390,22 @@
// } // }
} }
.empty-wrap{ .empty-wrap {
padding: 154px 54px 250px 54px; padding: 154px 54px 250px 54px;
background: #fff; background: #fff;
border-radius: 10px; border-radius: 10px;
.empty-icon{ .empty-icon {
width: 243px; width: 243px;
height: 127px; height: 127px;
} }
.empty-text{ .empty-text {
font-size: 18px; font-size: 18px;
font-weight: 500; font-weight: 500;
color: #02120F; color: #02120f;
text-align: center; text-align: center;
} }
} }
} }
} }
</style> </style>
<template>
<div class="pica-date-picker">
<van-field
:border="false"
readonly
placeholder="请选择出生年月日"
:value="value"
class="appoint-form-items"
@click="handleOpenPopup"
/>
<van-popup
v-model="visible"
position="bottom"
:transition-appear="false"
>
<van-datetime-picker
type="date"
title="选择年月日"
:value="currentDate"
:min-date="minDate"
:max-date="maxDate"
@confirm="handleConfirm"
@cancel="visible = false"
/>
</van-popup>
</div>
</template>
<script>
import dayjs from 'dayjs';
export default {
props: {
value: {
type: String,
default: '',
},
},
data() {
return {
visible: false,
currentDate: new Date(),
minDate: new Date(1900, 0, 1),
maxDate: new Date(),
};
},
methods: {
handleOpenPopup() {
this.visible = true;
},
handleConfirm(value) {
this.visible = false;
const formatDate = dayjs(value).format('YYYY-MM-DD');
this.$emit('input', formatDate);
},
},
};
</script>
<style scoped lang="scss">
.pica-date-picker {
width: 100%;
.van-cell {
padding: 0 !important;
}
}
</style>
...@@ -7,9 +7,7 @@ ...@@ -7,9 +7,7 @@
/> />
<div class="insurance-register-bg"> <div class="insurance-register-bg">
<div class="bg-img back-img"> <div class="bg-img back-img">
<img <img :src="bgPath">
:src="bgPath"
>
</div> </div>
<div class="wrap-reg"> <div class="wrap-reg">
<div class="choose-section"> <div class="choose-section">
...@@ -29,28 +27,67 @@ ...@@ -29,28 +27,67 @@
required required
class="appoint-form-items" class="appoint-form-items"
placeholder="点击此处输入" placeholder="点击此处输入"
:rules="[{ required: true, message: '请输入参保人姓名' },{ :rules="[
{ required: true, message: '请输入参保人姓名' },
{
pattern: /^[\u4e00-\u9fa5_a-zA-Z0-9]+$/, pattern: /^[\u4e00-\u9fa5_a-zA-Z0-9]+$/,
message: '请输入正确格式', message: '请输入正确格式',
}, },
{ {
pattern: /^.{2,20}$/, pattern: /^.{2,20}$/,
message: '参保人姓名请填写2-20位', message: '参保人姓名请填写2-20位',
},]" },
]"
/>
<van-field
:value="cardTypeName"
label="证件类型"
required
disabled
class="appoint-form-items"
right-icon="arrow"
@click="showCardTypeVisible = true"
/> />
<van-field <van-field
v-model="dectionForm.idCard" v-model="dectionForm.idCard"
class="appoint-form-items" class="appoint-form-items"
clearable clearable
required required
label="参保人身份证" label="参保人证件号"
placeholder="点击此处输入" placeholder="点击此处输入"
:rules="[{ required: true, message: '请输入真实身份证号' }, :rules="rules"
{
pattern: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/,
message: '身份证号格式填写有误',
},]"
/> />
<van-field
v-if="dectionForm.idType != 1"
class="appoint-form-items"
required
label="参保人性别"
>
<template #input>
<van-radio-group
v-model="dectionForm.sex"
direction="horizontal"
>
<van-radio :name="1">
</van-radio>
<van-radio :name="2">
</van-radio>
</van-radio-group>
</template>
</van-field>
<van-field
v-if="dectionForm.idType != 1"
class="appoint-form-items"
required
label="参保人出生日期"
right-icon="arrow"
>
<template #input>
<DatePicker v-model="dectionForm.birthTime" />
</template>
</van-field>
<van-field <van-field
v-model="dectionForm.mobilePhone" v-model="dectionForm.mobilePhone"
class="appoint-form-items" class="appoint-form-items"
...@@ -59,36 +96,41 @@ ...@@ -59,36 +96,41 @@
clearable clearable
required required
placeholder="点击此处输入" placeholder="点击此处输入"
:rules="[{ required: true, message: '请输入手机号' }, :rules="[
{ required: true, message: '请输入手机号' },
{ {
pattern: /^([1][3,4,5,6,7,8,9])\d{9}$/, pattern: /^([1][3,4,5,6,7,8,9])\d{9}$/,
message: '手机号格式填写有误', message: '手机号格式填写有误',
},]" },
]"
> >
<template #label> <template #label>
<div class="phone-wrap"> <div class="phone-wrap">
参保人手机号 <span class="sm-grey">该手机号将用于接收预约信息</span> 参保人手机号
<span class="sm-grey">该手机号将用于接收预约信息</span>
</div> </div>
</template> </template>
</van-field> </van-field>
</van-form> </van-form>
</div> </div>
<div v-for="(i, ind) in staticINFO.logoUrlList" :key="ind" class="bg-img mt20"> <div
<img v-for="(i, ind) in staticINFO.logoUrlList"
:src="i" :key="ind"
class="bg-img mt20"
> >
<img :src="i">
</div> </div>
<!-- <div class="bg-img mt20">--> <!-- <div class="bg-img mt20">-->
<!-- <img--> <!-- <img-->
<!-- src="https://files.yunqueyi.com/image/png/common/20230628141650960.png"--> <!-- src="https://files.yunqueyi.com/image/png/common/20230628141650960.png"-->
<!-- >--> <!-- >-->
<!-- </div>--> <!-- </div>-->
</div> </div>
</div> </div>
<div class="bottom-btn"> <div class="bottom-btn">
<van-button <van-button
class="btn" class="btn"
:class="canSubmit ? 'appoint-form-submit-active':''" :class="canSubmit ? 'appoint-form-submit-active' : ''"
@click="appointment" @click="appointment"
> >
领取权益 领取权益
...@@ -96,7 +138,7 @@ ...@@ -96,7 +138,7 @@
</div> </div>
<van-popup <van-popup
v-model="showProtocol" v-model="showProtocol"
:style="{ height: '230px',width: '300px', }" :style="{ height: '230px', width: '300px' }"
:transition-appear="false" :transition-appear="false"
:close-on-click-overlay="false" :close-on-click-overlay="false"
> >
...@@ -113,7 +155,13 @@ ...@@ -113,7 +155,13 @@
<div class="submit-button submit-button-empty"> <div class="submit-button submit-button-empty">
<wx-open-launch-weapp <wx-open-launch-weapp
id="launchBtn" id="launchBtn"
style="position: absolute; top: 0; left: 0; width: 100%; height: 100%" style="
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
"
:username="openWebAppConfigPositive.username" :username="openWebAppConfigPositive.username"
:path="openWebAppConfigPositive.path" :path="openWebAppConfigPositive.path"
:env-version="envVersion" :env-version="envVersion"
...@@ -127,20 +175,43 @@ ...@@ -127,20 +175,43 @@
</div> </div>
</div> </div>
</van-popup> </van-popup>
<!-- 选择证件类型弹框 -->
<van-popup
v-model="showCardTypeVisible"
position="bottom"
:style="{ height: '280px' }"
>
<van-cell
v-for="(item, index) in cardTypes"
:key="index"
:title="item.value"
style="display: flex; align-items: center"
@click="handleChooseCardType(item)"
>
<template #right-icon>
<van-icon
v-if="dectionForm.idType == item.no"
name="success"
/>
</template>
</van-cell>
</van-popup>
</div> </div>
</template> </template>
<script> <script>
import { createOrderSzV2} from '@/api/question'; import { createOrderSzV2 } from '@/api/question';
import {getBanner} from '@/api/entitlement'; import { getBanner, getCardTypes } from '@/api/entitlement';
const { VUE_APP_ENV } = process.env; import DatePicker from './date-picker.vue';
let that; let that;
export default { export default {
components: { DatePicker },
data() { data() {
return { return {
projectEquityNo: '', projectEquityNo: '',
externalOrderNo: '', externalOrderNo: '',
picaWechat:window._picaWechat, picaWechat: window._picaWechat,
headerInfo: { headerInfo: {
title: '惠民保癌筛权益领取', title: '惠民保癌筛权益领取',
isBlack: true, isBlack: true,
...@@ -150,48 +221,88 @@ export default { ...@@ -150,48 +221,88 @@ export default {
}, },
dectionForm: { dectionForm: {
mobilePhone: '', mobilePhone: '',
idCard:'', idCard: '',
idType: 1 /** 默认为1:身份证 */,
name: '', name: '',
sex: '',
birthTime: '',
}, },
showProtocol:false, showProtocol: false,
envVersion: VUE_APP_ENV == 'production' ? 'release' : 'trial', showCardTypeVisible: false,
// envVersion:'trial', cardTypes: [],
openWebAppConfigPositive:{ // envVersion: process.env.MINI_PROGRAM_ENV,
username:'gh_e92f58174364', // 小程序唯一username 1.gh_80d54796f2d5 云鹊助手 2. gh_e92f58174364 云鹊健康 envVersion: process.env.VUE_APP_MINI_PROGRAM_ENV,
path:'pagesInsurance/all-entrance/index', // 打开页面 openWebAppConfigPositive: {
extraData: JSON.stringify({}) username: 'gh_e92f58174364', // 小程序唯一username 1.gh_80d54796f2d5 云鹊助手 2. gh_e92f58174364 云鹊健康
path: 'pagesInsurance/all-entrance/index', // 打开页面
extraData: JSON.stringify({}),
}, },
bgPath: '', bgPath: '',
staticINFO: { staticINFO: {
logoUrlList: [] logoUrlList: [],
} },
}; };
}, },
computed: { computed: {
canSubmit() { canSubmit() {
return ( const normalValidate =
this.dectionForm.idCard && this.dectionForm.idCard &&
this.dectionForm.name && this.dectionForm.name &&
this.dectionForm.mobilePhone this.dectionForm.mobilePhone;
if (this.dectionForm.idType != 1) {
return (
normalValidate && this.dectionForm.birthTime && this.dectionForm.sex
);
}
return normalValidate;
},
cardTypeName() {
const item = this.cardTypes.find(
(item) => item.no == this.dectionForm.idType
); );
return item ? item.value : '';
},
rules() {
const rules = [{ required: true, message: '请输入真实证件号' }];
if (this.dectionForm.idType === 1) {
return [
...rules,
{
pattern: /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/,
message: '身份证号格式填写有误',
},
];
}
return rules;
}, },
}, },
mounted() { mounted() {
document.title = '惠民保癌筛权益领取'; document.title = '惠民保癌筛权益领取';
that = this; that = this;
const {externalOrderNo, projectEquityNo} = this.$route.query; const { externalOrderNo, projectEquityNo } = this.$route.query;
this.projectEquityNo = projectEquityNo; this.projectEquityNo = projectEquityNo;
this.externalOrderNo = externalOrderNo; this.externalOrderNo = externalOrderNo;
// this.$loading.show(); // this.$loading.show();
this.getBanner(7, projectEquityNo); this.getBanner(7, projectEquityNo);
this.loadCardTypes();
}, },
methods: { methods: {
async loadCardTypes() {
const { data } = await getCardTypes();
this.cardTypes = data || [];
},
handleChooseCardType(item) {
this.dectionForm.idType = item.no;
this.showCardTypeVisible = false;
},
getBanner(pageType, yunOrderNo) { getBanner(pageType, yunOrderNo) {
const self = this; const self = this;
self.$loading.show(); self.$loading.show();
getBanner(pageType, yunOrderNo).then(res => { getBanner(pageType, yunOrderNo).then((res) => {
if(res.code === '000000') { if (res.code === '000000') {
self.bgPath = res.data.logoUrl; self.bgPath = res.data.logoUrl;
self.staticINFO = res.data; self.staticINFO = res.data;
self.$loading.hide(); self.$loading.hide();
...@@ -205,45 +316,56 @@ export default { ...@@ -205,45 +316,56 @@ export default {
...this.dectionForm, ...this.dectionForm,
projectEquityNo, projectEquityNo,
}; };
if(externalOrderNo) { if (externalOrderNo) {
data['externalOrderNo'] = externalOrderNo; data['externalOrderNo'] = externalOrderNo;
} }
createOrderSzV2(data).then((res) => { createOrderSzV2(data).then((res) => {
console.log(res); console.log(res);
if(res.code == '000000') { if (res.code == '000000') {
const {yunOrderNo, statusCode, externalOrderNo, lanZhouOldflag, projectEquityNo} = res.data; const {
if(lanZhouOldflag) { yunOrderNo,
statusCode,
externalOrderNo,
lanZhouOldflag,
projectEquityNo,
} = res.data;
if (lanZhouOldflag) {
const url = '/home'; const url = '/home';
const l = window.location.origin; const l = window.location.origin;
const hr = l + `/pica-insurance${url}?projectEquityNo=${projectEquityNo}&externalOrderNo=${externalOrderNo}`; const hr =
l +
`/pica-insurance${url}?projectEquityNo=${projectEquityNo}&externalOrderNo=${externalOrderNo}`;
window.location.href = hr; window.location.href = hr;
} }
if(statusCode == '0103') { if (statusCode == '0103') {
this.showProtocol = true; this.showProtocol = true;
this.openWebAppConfigPositive.path = `pagesInsurance/all-entrance/index?channelSource=insurance_channel&projectEquityNo=${projectEquityNo}&yunOrderNo=${yunOrderNo}&externalOrderNo=${externalOrderNo}`; this.openWebAppConfigPositive.path = `pagesInsurance/all-entrance/index?channelSource=insurance_channel&projectEquityNo=${projectEquityNo}&yunOrderNo=${yunOrderNo}&externalOrderNo=${externalOrderNo}`;
console.log('-openWebAppConfigPositive', this.openWebAppConfigPositive); console.log(
}else{ '-openWebAppConfigPositive',
this.$router.replace( this.openWebAppConfigPositive
{ );
} else {
this.$router.replace({
path: '/entitlement', path: '/entitlement',
query: { query: {
projectEquityNo: projectEquityNo, projectEquityNo: projectEquityNo,
externalOrderNo: externalOrderNo externalOrderNo: externalOrderNo,
}, },
});
} }
); } else {
}
}else{
this.$toast(res.message); this.$toast(res.message);
} }
}); });
}, },
appointment() { appointment() {
this.$refs.dectionForm.validate().then(result => { this.$refs.dectionForm
.validate()
.then((result) => {
console.log('this.dectionForm', result); console.log('this.dectionForm', result);
this.createOrderSz(); this.createOrderSz();
}).catch(err => { })
.catch((err) => {
console.log(err); console.log(err);
}); });
}, },
...@@ -254,7 +376,7 @@ export default { ...@@ -254,7 +376,7 @@ export default {
console.log('handleLaunchFn', e); console.log('handleLaunchFn', e);
that.showProtocol = false; that.showProtocol = false;
}, },
} },
}; };
</script> </script>
...@@ -264,27 +386,26 @@ export default { ...@@ -264,27 +386,26 @@ export default {
overflow: auto; overflow: auto;
box-sizing: border-box; box-sizing: border-box;
padding-bottom: 70px; padding-bottom: 70px;
background-color: #BEE2FD; background-color: #bee2fd;
.insurance-register-bg{ .insurance-register-bg {
width: 100%; width: 100%;
.bg-img{ .bg-img {
width: 100%; width: 100%;
img{ img {
width: 100%; width: 100%;
height: 100%; height: 100%;
} }
} }
.wrap-reg{ .wrap-reg {
width: 350px; width: 350px;
border-radius: 20px; border-radius: 20px;
margin: 0 auto; margin: 0 auto;
margin-top: 230px; margin-top: 280px;
position: relative; position: relative;
} }
} }
.back-img{ .back-img {
position: absolute; position: absolute;
top: 0; top: 0;
} }
...@@ -295,10 +416,10 @@ export default { ...@@ -295,10 +416,10 @@ export default {
font-weight: 600; font-weight: 600;
padding-top: 0px; padding-top: 0px;
margin: 0 auto; margin: 0 auto;
/deep/ .van-field__label{ /deep/ .van-field__label {
color: #212121; color: #212121;
} }
/deep/ .van-field__control:disabled{ /deep/ .van-field__control:disabled {
color: #323233; color: #323233;
-webkit-text-fill-color: #323233; -webkit-text-fill-color: #323233;
} }
...@@ -340,22 +461,22 @@ export default { ...@@ -340,22 +461,22 @@ export default {
color: rgba(255, 56, 56, 1); color: rgba(255, 56, 56, 1);
} }
} }
.appoint-form-items{ .appoint-form-items {
/deep/ .van-field__label{ /deep/ .van-field__label {
color: #212121; color: #212121;
width: auto;
} }
} }
.appoint-form-placeholder{ .appoint-form-placeholder {
color: #999999; color: #999999;
} }
.appoint-form-title::after{ .appoint-form-title::after {
display: none; display: none;
} }
.appoint-form-submit{ .appoint-form-submit {
margin-top: 30px; margin-top: 30px;
height: 40px; height: 40px;
background: #D9D9D9; background: #d9d9d9;
border-radius: 20px; border-radius: 20px;
border: none; border: none;
position: absolute; position: absolute;
...@@ -365,33 +486,33 @@ export default { ...@@ -365,33 +486,33 @@ export default {
.sz-appoint-form-tips { .sz-appoint-form-tips {
width: 175px; width: 175px;
height:32px; height: 32px;
margin: 0 auto; margin: 0 auto;
margin-bottom: 10px; margin-bottom: 10px;
} }
/deep/.van-cell{ /deep/.van-cell {
display: block; display: block;
font-weight: 300; font-weight: 300;
font-size: 14px; font-size: 14px;
} }
.phone-wrap{ .phone-wrap {
.sm-grey{ .sm-grey {
font-weight: 100; font-weight: 100;
color: #999999; color: #999999;
font-size: 12px; font-size: 12px;
} }
} }
.protocol-content{ .protocol-content {
padding: 20px; padding: 20px;
border-radius: 20px; border-radius: 20px;
} }
.block70{ .block70 {
font-size: 14px; font-size: 14px;
color: #212121!important; color: #212121 !important;
text-align: center; text-align: center;
margin-top: 15px; margin-top: 15px;
} }
.f20{ .f20 {
font-size: 20px; font-size: 20px;
} }
.submit-button { .submit-button {
...@@ -402,26 +523,26 @@ export default { ...@@ -402,26 +523,26 @@ export default {
font-size: 16px; font-size: 16px;
display: flex; display: flex;
align-items: center; align-items: center;
background: #00BDA5; background: #00bda5;
justify-content: center; justify-content: center;
width: 130px; width: 130px;
margin: 0 auto; margin: 0 auto;
margin-top: 30px; margin-top: 30px;
} }
/deep/.van-popup--center{ /deep/.van-popup--center {
border-radius: 20px; border-radius: 20px;
} }
.bottom-btn{ .bottom-btn {
width: 100%; width: 100%;
background: #FFFFFF; background: #ffffff;
box-shadow: inset 0px 1px 0px 0px #E9E9E9; box-shadow: inset 0px 1px 0px 0px #e9e9e9;
overflow: hidden; overflow: hidden;
text-align: center; text-align: center;
padding-bottom: calc(5px + env(safe-area-inset-bottom) / 2); padding-bottom: calc(5px + env(safe-area-inset-bottom) / 2);
position: fixed; position: fixed;
bottom: 0; bottom: 0;
left: 0; left: 0;
.btn{ .btn {
width: 351px; width: 351px;
height: 40px; height: 40px;
border-radius: 20px; border-radius: 20px;
...@@ -429,17 +550,17 @@ export default { ...@@ -429,17 +550,17 @@ export default {
font-size: 16px; font-size: 16px;
background: #cccccc; background: #cccccc;
font-weight: 600; font-weight: 600;
color: #FFFFFF; color: #ffffff;
line-height: 40px; line-height: 40px;
text-align: center; text-align: center;
} }
.appoint-form-submit-active{ .appoint-form-submit-active {
background: linear-gradient(270deg, #FF7400 0%, #FE4000 100%); background: linear-gradient(270deg, #ff7400 0%, #fe4000 100%);
} }
} }
.mt20{ .mt20 {
margin-top: 10px; margin-top: 10px;
background-color: #BEE2FD; background-color: #bee2fd;
} }
} }
</style> </style>
...@@ -36,7 +36,7 @@ module.exports = { ...@@ -36,7 +36,7 @@ module.exports = {
port: 8083, port: 8083,
proxy: { proxy: {
'/proxy': { '/proxy': {
target: 'https://test1-sc.yunqueyi.com/', target: 'https://dev-sc.yunqueyi.com/',
// target: 'https://test1-sc.yunqueyi.com/', // target: 'https://test1-sc.yunqueyi.com/',
// target: 'https://uat-sc.yunqueyi.com/', // target: 'https://uat-sc.yunqueyi.com/',
// http://10.241.65.90:3000/mock/1071/cs/route/removeUser // http://10.241.65.90:3000/mock/1071/cs/route/removeUser
......
因为 它太大了无法显示 源差异 。您可以改为 查看blob
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册