提交 2dc22e2f 编写于 作者: 张磊's avatar 张磊

auto commit

上级 f9c98787
...@@ -7,7 +7,7 @@ if [ ! $hasGit ];then ...@@ -7,7 +7,7 @@ if [ ! $hasGit ];then
else else
git fetch --all git fetch --all
result=`git symbolic-ref --short -q HEAD` # 获取分支名 result=`git symbolic-ref --short -q HEAD` # 获取分支名
current_id=`git log -n 1 origin/release --pretty=format:"%H"` current_id=`git log -n 1 origin/develop --pretty=format:"%H"`
git reset --soft $current_id git reset --soft $current_id
git add . git add .
git commit -m "$msg" git commit -m "$msg"
......
...@@ -31,7 +31,6 @@ ...@@ -31,7 +31,6 @@
"vant": "^2.8.4", "vant": "^2.8.4",
"vconsole": "^3.3.4", "vconsole": "^3.3.4",
"vue": "^2.6.11", "vue": "^2.6.11",
"pica-area": "^1.2.1",
"vue-fragment": "^1.5.1", "vue-fragment": "^1.5.1",
"vue-router": "^3.3.1", "vue-router": "^3.3.1",
"vuescroll": "^4.15.1", "vuescroll": "^4.15.1",
...@@ -90,6 +89,7 @@ ...@@ -90,6 +89,7 @@
"browserslist": [ "browserslist": [
"> 1%", "> 1%",
"last 2 versions", "last 2 versions",
"not dead",
"android 4", "android 4",
"opera 12" "opera 12"
], ],
......
import request from 'mn-template/plugins/http';
// 获取检测详情 接口
export const getDetectionDetail = (id) => {
return request({
method: 'get',
url: `/trade/detection/record/record/info/?detectionRecordId=${id}&userType=0`,
withCredentials: true,
});
};
// 检测详情节点查询
export const getDetectionDetailProces = (id) => {
return request({
method: 'get',
url: `/trade/detection/record/process/${id}`,
withCredentials: true,
});
};
// 发送报告到钉钉工作站
export const sendReportWorkStation = (data) => {
return request({
method: 'get',
url: `/store/admin/hospital/detection/reportShare/${data.id}?reportType=${data.reportType}`,
withCredentials: true,
});
};
// 获取报告
export const sendReportShareInfo = (data) => {
return request({
method: 'get',
url: `/store/admin/hospital/detection/reportShareInfo/${data.id}?reportType=${data.reportType}`,
withCredentials: true,
});
};
// 获取阳性报告类型列表
export const getTypeCodeList = () => {
return request({
url: 'basic-data/constants/app?typeCodeList=P326',
method: 'get',
withCredentials: true,
});
};
// 跟进报告提交
// /trade/detection/record/operation/submit
export const operationSubmit = (data) => {
return request({
method: 'post',
url: '/trade/detection/record/operation/submit',
data: data,
withCredentials: true,
});
};
...@@ -24,7 +24,7 @@ export default { ...@@ -24,7 +24,7 @@ export default {
}; };
</script> </script>
<style lang="scss" scoped> <style lang="sass" scoped>
.loadingWrap{ .loadingWrap{
::v-deep .van-popup{ ::v-deep .van-popup{
background-color:rgba(0,0,0,.7); background-color:rgba(0,0,0,.7);
......
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 '@/router'; import '@/router';
import { PicaArea } from 'pica-area';
console.log('router, store, vueApp: ', router, store, vueApp); console.log('router, store, vueApp: ', router, store, vueApp);
const { Vue } = window; const { Vue } = window;
import Loading from '@/components/loading/loading.js'; import Loading from '@/components/loading.js';
Vue.use(Loading); Vue.use(Loading);
Vue.use(PicaArea);
// 禁用双指放大 // 禁用双指放大
var lastTouchEnd = 0; var lastTouchEnd = 0;
document.addEventListener('touchstart', function (event) { document.addEventListener('touchstart', function (event) {
......
import Vue from 'vue'; import Vue from 'vue';
import picaGuideApp from '@pica-kit/pica-ui-component/lib/pica-guide-app'; import picaGuideApp from '@pica-kit/pica-ui-component/lib/pica-guide-app';
import PageModel from '@pica-kit/page-model';
Vue.use(picaGuideApp); Vue.use(picaGuideApp);
Vue.use(PageModel);
import { router } from '@pica-cli/vue-cli-plugin-pica-cli-plugin/auto'; import { router } from '@pica-cli/vue-cli-plugin-pica-cli-plugin/auto';
import Index from '@/views/index.vue'; import insuranceBindCode from '@/views/insurance-bind-code/insurance-bind-code';
import { toggleSkeletonRouter } from 'mn-template/plugins/toggleSkeleton.js'; import insuranceDetectionDetail from '@/views/insurance-detection-detail/insurance-detection-detail';
import {toggleSkeletonRouter} from 'mn-template/plugins/toggleSkeleton.js';
import handleAllRouter from '../public_uat'; import handleAllRouter from '../public_uat';
const routerConfig = [ const routerConfig = [
{ {
path: '/', path: '/insuranceBindCode',
name: 'Index', name: 'insuranceBindCode',
component: Index, component: insuranceBindCode
}, },
{ {
path: '/entrance', path: '/insuranceDetectionDetail',
name: 'entrance', name: 'insuranceDetectionDetail',
component: Index, component: insuranceDetectionDetail
},
{
path: '/result',
name: 'result',
component: () => import('@/views/result/index.vue'),
},
{
path: '/result-risk',
name: 'resultRisk',
component: () => import('@/views/result/risk.vue'),
},
{
path: '/appoint',
name: 'appoint',
component: () => import('@/views/appoint/index.vue'),
}, },
{ {
path: '*', path: '*',
redirect: process.env.VUE_APP_BASE_ROUTE, redirect: process.env.VUE_APP_BASE_ROUTE
}, }
]; ];
router.beforeEach(async (to, from, next) => { router.beforeEach(async (to, from, next) => {
......
<template>
<div class="insurance-detection-appoint">
<div class="wrap">
<div class="title-1">
检测预约
</div>
<div class="title-2">
及时接受检测结果检测报告
</div>
<div class="choose-section">
<van-form @submit="onSubmit">
<van-field
name="checkboxGroup"
label="检测项目"
required
>
<template #input>
{{ dectionForm.detectName }}
</template>
</van-field>
<van-field
label="受检人信息"
required
class="appoint-form-title"
/>
<van-field
v-model="username"
label="受检人"
class="appoint-form-items"
placeholder="请输入受检人姓名"
:rules="[{ required: true, message: '请输入受检人姓名' }]"
/>
<van-field
v-model="username"
class="appoint-form-items"
label="手机号"
placeholder="请输入受检人手机号"
:rules="[{ required: true, message: '请输入受检人手机号' }]"
/>
<van-field
v-model="password"
class="appoint-form-items"
type="password"
label="身份证号"
placeholder="请输入受检人真实身份证号"
:rules="[{ required: true, message: '请输入受检人真实身份证号' }]"
/>
<van-field
label="检测地点"
required
class="appoint-form-title"
/>
<van-field
v-model="username"
class="appoint-form-items"
label="省市区"
disabled
right-icon="arrow"
placeholder="请选择省市区"
:rules="[{ required: true, message: '请选择省市区' }]"
@click="showAreaFn"
/>
<van-field
v-model="password"
class="appoint-form-items"
type="password"
label="检测地点"
right-icon="arrow"
placeholder="请选择检测机构"
:rules="[{ required: true, message: '请选择检测机构' }]"
/>
<van-field
name="checkboxGroup"
label="预约时间"
required
right-icon="arrow"
>
<template #input>
<div
v-if="false"
class="appoint-form-placeholder"
>
请选择预约时间
</div>
<div class="appoint-form-value">
{{ dectionForm.detectName }}
</div>
</template>
</van-field>
</van-form>
</div>
<van-button
round
block
type="info"
class="appoint-form-submit appoint-form-submit-active"
>
提交
</van-button>
</div>
<PicaArea
v-model="showArea"
@confirm="confirm"
/>
</div>
</template>
<script>
export default {
components: {
},
data() {
return {
dectionForm: {
detectName: '癌症甲基化早筛检测',
place: '',
time: '',
currentDate: '',
timeBucket: '',
hospitalId: '',
goodsId: '',
},
showArea:false,
reportShow: false,
placeList: [],
popType: '',
timsArray: [],
timeBucket: {
am: '上午',
pm: '下午',
},
provinceList: [],
showProvinces: false,
searchPlace: '',
selectPicker: {
value: [],
label: '',
},
isShowAddress: false,
isSelf: false,
spEquityCode: '',
};
},
computed: {
checkValue() {
return (
this.dectionForm.hospitalId !== '' &&
this.dectionForm.time !== '' &&
this.dectionForm.currentDate !== '' &&
this.dectionForm.timeBucket !== ''
);
},
},
mounted() {},
methods: {
choose() {},
submit() {},
chooseHospital() {},
getMeixinHospitalList() {},
chooseDate() {},
chooseTime() {},
getTimes() {
this.timsArray = [];
const current = new Date().getTime();
const ss = 24 * 60 * 60 * 1000;
for (let i = 5; i < 35; i++) {
var addTime = i * ss + current;
var myDate = new Date(addTime);
var year = myDate.getFullYear();
var month = myDate.getMonth() + 1;
var date = myDate.getDate();
var timeStr =
year + '-' + this.plusZero(month) + '-' + this.plusZero(date);
this.timsArray.push(timeStr);
}
},
plusZero(num) {
return num > 9 ? num + '' : '0' + num;
},
inputChange() {},
cancelSearch() {},
selectAddress() {},
onConfirm() {},
onCancel() {},
getDetailByUnionId() { },
confirm() {
},
showAreaFn() {
this.showArea = true;
}
},
};
</script>
<style lang="scss" scoped>
.insurance-detection-appoint {
width: 100%;
height: 100vh;
overflow: auto;
box-sizing: border-box;
color: #ffffff;
background: url('https://files.yunqueyi.com/image/png/common/20221213160647748.png')
no-repeat top left;
background-size: 100% 281px;
.bg-img {
width: 100%;
height: 281px;
position: absolute;
top: 0;
z-index: -1;
}
.wrap {
padding: 0 12px;
}
.title-1 {
font-size: 20px;
margin-top: 23px;
font-style: oblique;
font-weight: 600;
}
.title-2 {
margin-top: 4rpx;
font-size: 24rpx;
}
.appoint-form-title{
font-size: 14px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #212121;
padding-top:22px ;
padding-bottom: 0;
line-height: 20px
}
.choose-section {
padding: 10px 12px;
background: #ffffff;
border-radius: 11px;
margin-top: 15px;
/deep/ .van-field__label{
color: #212121;
}
.item {
color: #212121;
font-size: 14px;
display: flex;
height: 60px;
align-items: center;
position: relative;
.input-key {
font-weight: 300;
margin-left: 10px;
}
.input-value {
margin-left: 18px;
font-weight: 500;
overflow: visible;
}
.right {
position: absolute;
right: 10px;
top: 25px;
}
}
.height60 {
height: 30px;
}
.required {
position: relative;
}
.required::after {
position: absolute;
content: '*';
display: block;
left: -10px;
top: 0;
text-align: center;
color: rgba(255, 56, 56, 1);
}
}
.appoint-form-items{
/deep/ .van-field__label{
color: #999999;
}
}
.appoint-form-title::after{
display: none;
}
// .sub-btn {
// background: #00bda5;
// font-size:16px;
// color: #ffffff;
// font-weight: 600;
// width: 90%;
// height: 40px;
// line-height: 40px;
// border-radius: 40px;
// margin: 0 auto;
// position: absolute;
// top: 922rpx;
// left: 5%;
// text-align: center;
// }
.content {
color: #02120f;
height: 350px;
overflow: hidden;
.title-wrap {
font-size: 18px;
font-weight: 500;
text-align: center;
padding-top: 18px;
position: fixed;
width: 100%;
left: 0;
background: #ffffff;
z-index: 1;
margin: 0 auto;
.search {
display: flex;
align-items: center;
justify-content: space-evenly;
}
.search-input {
width: 303px;
height: 35px;
background: #f5f6f8;
border-radius: 13px;
text-align: left;
padding-left: 20px;
}
.title {
font-size: 18px;
font-weight: 500;
}
}
}
.pop-wrap {
width: calc(100% - 64rpx);
padding: 0 16px;
.tab-list {
position: relative;
border-bottom: 0.5px solid #e7e8e9;
height: 64px;
.hospitalActive-icon {
position: absolute;
width: 17px;
height: 17px;
top: 14px;
right: 0;
}
.list-1 {
font-weight: 500;
color: #212121;
font-size: 15px;
margin-top: 14px;
}
.list-2 {
font-size: 12px;
font-weight: 400;
color: #999999;
margin-top: 2px;
}
}
.hospitalActive {
}
}
.date-wrap {
height: 100%;
padding-top: 58px;
display: flex;
.left {
min-height: 100vh;
overflow: scroll;
width: 130px;
padding-bottom: 50px;
background: #f5f6f8;
.date-item {
height: 38px;
background: #f5f6f8;
line-height: 38px;
font-size: 16px;
font-weight: 500;
color: #02120f;
text-align: center;
}
.date-item-active {
color: #00bda5;
background: #ffffff;
}
}
.right {
position: absolute;
top: 58px;
left: 130px;
width: calc(100% - 260rpx);
.right-item {
padding-left: 22px;
width: 100%;
height: 41px;
font-size: 16px;
font-weight: 400;
color: #666666;
line-height: 82rpx;
}
.right-item-active {
color: #00bda5;
}
}
.date-item {
height: 38px;
}
}
.disabled {
background: #d9d9d9 !important;
}
.no-content {
font-size: 36rpx;
font-weight: 500;
color: #02120f;
.no-content-img {
width: 310rpx;
height: 171rpx;
margin: 0 auto;
margin-top: 169rpx;
image {
width: 100%;
height: 100%;
}
}
.mt40 {
margin-top: 40rpx;
width: 100%;
text-align: center;
font-size: 36rpx;
}
}
.appoint-form-submit{
margin-top: 30px;
height: 40px;
background: #D9D9D9;
border-radius: 20px;
border: 1px solid #D9D9D9;
}
.appoint-form-submit-active{
background: #00BDA5;
}
}
::v-deep {
.address-wrap {
height: 590px;
#province {
height: 500px;
}
#city {
height: 500px;
}
#county {
height: 500px;
}
#town {
height: 500px;
}
.tip-header h3 {
font-weight: 700;
color: #212121;
}
.tip-header .submit-btn {
color: #00bda5 !important;
}
.address-select .show-address-header .item.active:after {
background-color: #00bda5;
}
.address-select .address-content ul li.active {
color: #00bda5;
}
}
}
</style>
<style>
.mpvue-picker-div-show {
color: #000000;
}
</style>
<template>
<fragment>
<H1 class="flex-row flex-center">
This is Demo Page
</H1>
<div class="flex-row flex-center">
store.count: {{ count }}
</div>
</fragment>
</template>
<script>
export default {
name: 'Home',
computed: {
count () {
return this.$store.state.home.count;
}
},
mounted () {
console.log(this.$route.meta); // {requiresAuth: true}
const a = 1;
let b = 2;
b = 3;
console.log(b);
console.log(a);
},
methods: {
}
};
</script>
<style scoped>
</style>
<template>
<div class="insurance-binding-code-container">
<page-model
ref="PageModel"
:header-info="headerInfo"
/>
<div class="code-container">
<div class="code-content">
<div class="code-input-item-l detection-container">
<div class="input-title">
检测服务
</div>
<div class="input-content">
<div
type="text"
class="code"
placeholder-style="font-size: 32px;font-family: PingFangSC-Regular, PingFang SC;font-weight: 400;color: #999999;"
>
{{ checkName || '' }}
</div>
<div class="code-input-item-r">
<div
class="scan-qr-img-container"
@click="triggerEditModal"
>
修改
</div>
</div>
</div>
</div>
</div>
</div>
<div class="code-container">
<div
class="code-content"
:class="{'bar-code-content' : errorMessage != ''}"
>
<div class="code-input-item-l">
<div class="input-title">
条形码
</div>
<div class="input-content-group">
<div class="input-content input-content-scan">
<input
v-model="barCode"
type="text"
class="code"
placeholder-style="font-size: 32px;font-family: PingFangSC-Regular, PingFang SC;font-weight: 400;color: #999999;"
placeholder="请输入条形码"
>
<div class="code-input-item-r">
<div
v-if="barCode"
class="clear-img-container"
@click="clearCode"
>
<img
class="clear-img"
src="https://files.yunqueyi.com/icon/2022/clear.png"
>
</div>
<div
class="scan-qr-img-container-code"
@click="scanCode()"
>
<img
class="scan-qr-img"
src="https://files.yunqueyi.com/image/png/common/20221128114549858.png"
mode=""
>
<span>扫码识别</span>
</div>
</div>
</div>
<div
v-if="errorMessage != ''"
class="input-error-message"
>
{{ errorMessage || '' }}
</div>
</div>
</div>
</div>
</div>
<div
class="notification"
>
<div class="sign-detection">
<img
v-if="isCheck"
class="check-area"
src="https://files.yunqueyi.com/h5/detection/is-check.png"
mode=""
@click="setSignDetection()"
/>
<img
v-else
class="check-area"
src="https://files.yunqueyi.com/h5/detection/check.png"
mode=""
@click="setSignDetection()"
/>
<span class="notification-text1">我已阅读并同意</span>
<span
class="notification-text2"
@click="goProtocol"
>{{ protocolName }}</span>
</div>
</div>
<div class="submit-button-top">
<div
class="submit-button"
:class="barCode.length > 0 ? 'submit-button-active' : ''"
@click="toggleBindingInfo"
>
提交
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
headerInfo: {
title: '绑定条码',
isBlack: false,
backMethod: 'web',
style: 'zIndex:100;',
background: '',
},
showBindingInfo: false,
showEditModal: false,
isCheck: false,
barCode: '',
protocolName: '',
prototypeId: '',
prototypeLogId: '',
isLoading: false,
recordInfo: {
name: '',
sex: '',
date: '',
checkName: ''
},
goodsId: '',
status: '',
errorMessage: '',
detectionRecordId: '',
showProtocol: false,
agreeText: '',
detectionData:{}
};
},
computed: {
},
created() {
},
methods: {
}
};
</script>
<style lang="scss" scoped>
.insurance-binding-code-container{
width: 100%;
background-color: #F5F6F8;
height: 100vh;
.code-container{
padding: 0 12px;
position: relative;
z-index: 10;
margin-top: 10px;
.code-content{
background: #FFFFFF;
border-radius: 11px;
height: 90px;
display: flex;
justify-content: center;
align-items: center;
&.bar-code-content {
height: 130px;
.input-error-message{
font-size: 12px;
font-weight: 400;
color: #FF4B33;
}
}
.code-input-item{
padding: 0 10px;
display: flex;
justify-content: space-between;
align-items: center;
border-radius: 6px;
}
.code-input-item-l{
display: flex;
flex-flow: column;
width: 100%;
height: 100%;
padding: 16px;
box-sizing: border-box;
justify-content: space-between;
&.detection-container {
.scan-qr-img-container{
border-radius: 16px;
border: 1px solid #C0C0C0;
padding: 0 12px;
}
.code {
font-size: 14px;
font-weight: 400;
color: #666666;
}
}
.input-title{
font-size: 16px;
color: #212121;
margin-right: 13px;
font-weight: 500;
width: 75px;
flex-shrink: 0;
}
.input-content-group{
margin-top: 5px;
display: flex;
flex-flow: column;
height: 100%;
justify-content: space-around;
}
.input-content {
display: flex;
flex-flow: row;
justify-content: space-between;
font-size: 14px;
input {
font-size: 14px;
font-weight: 400;
color: #666666;
width: 100%;
}
}
.input-content-scan{
position: relative;
height: 20px;
}
.code{
font-weight: 600;
color: #212121;
font-size: 18px;
width: 80%!important;
}
}
.code-input-item-r{
display: flex;
align-items: center;
justify-content: center;
.clear-img-container{
width: 60px;
height: 50px;
display: flex;
align-items: center;
justify-content: flex-end;
.clear-img{
width: 16px;
height: 16px;
margin-right: 10px;
}
}
.scan-qr-img-container{
display: flex;
align-items: center;
}
.scan-qr-img-container-code{
display: flex;
align-items: center;
justify-content: space-evenly;
width: 91px;
height: 28px;
background: #00BDA5;
border-radius: 20px;
font-size: 14px;
color: #ffffff;
.scan-qr-img{
height: 12px;
width: 12px;
}
}
}
}
}
.submit-button-top{
position: absolute;
bottom: 0;
display: flex;
width: 100%;
font-size: 16px;
font-weight: 700;
margin-bottom: 210px;
.submit-button{
width: 90%;
height: 40px;
background: #D9D9D9;
border-radius: 20px;
display: flex;
align-items: center;
justify-content: center;
font-weight: 500;
color: #FFFFFF;
margin: 0 auto;
}
.submit-button-active{
background: #00BDA5;
}
}
.notification{
margin-top: 16px;
position: absolute;
bottom: 260px;
left:0;right:0;
font-size: 16px;
font-weight: 700;
.sign-detection{
margin:0 auto;
height: auto;
padding:0 10px;
line-height:20px;
align-items: center;
display:flex;
justify-content: center;
text-align:center;
.check-area{
margin-top: 0;
}
}
.notification-text1{
width:auto;
color: #999999;
font-size: 14px;
}
.notification-text2{
height: auto;
line-height:20px;
color: #189787;
font-size: 14px;
}
img{
display:inline-block;
height: 15px;
width: 15px;
padding-right:7px;
margin-top:7px;
}
}
}
</style>
.d-box {
background-color: #f5f6f8;
min-height: 100vh;
width: 100%;
position: relative;
.title {
position: absolute;
top: 0;
left: 0;
right: 0;
height: 260px;
background: linear-gradient(180deg, #00bda5 0%, #20c5b0 52%, #f5f6f8 100%);
}
}
.detail-box {
padding: 0 12px;
height: auto;
padding-bottom: 60px;
position: relative;
z-index: 1;
.status {
padding: 16px 0;
display: flex;
align-items: center;
img {
width: 27px;
}
div {
padding-left: 9px;
width: 120px;
height: 20px;
font-size: 20px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #ffffff;
line-height: 20px;
}
}
.content {
height: auto;
.info {
width: 100%;
height: auto;
background: #ffffff;
border-radius: 10px;
margin-bottom: 10px;
padding-top: 20px;
.list {
padding: 0px 15px 12px 15px;
display: flex;
justify-content: flex-start;
align-items: center;
.l-left {
width: 62px;
height: 14px;
font-size: 14px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #999999;
line-height: 14px;
}
.l-right {
padding-left: 2px;
width: auto;
height: auto;
font-size: 14px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #212121;
flex: 1;
line-height: 20px;
span {
display: inline-block;
padding-right: 15px;
}
}
}
.list-bottom {
padding: 0px 15px 15px 15px;
.l-b-code {
padding: 16px 14px;
padding-bottom: 3px;
height: auto;
background: #f7fffe;
border-radius: 11px;
border: 0.5px solid #ade9e1;
.l-b-list {
display: flex;
justify-content: flex-start;
align-items: center;
padding-bottom: 13px;
.l-left {
width: auto;
height: 15px;
font-size: 15px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #212121;
line-height: 15px;
}
.l-right {
padding-left: 6px;
height: 15px;
font-size: 15px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #00bda5;
line-height: 15px;
}
.l-copy {
text-align: center;
width: 41px;
height: 20px;
border-radius: 10px;
border: 0.5px solid #00bda5;
font-size: 12px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #00bda5;
line-height: 22px;
margin-left: 6px;
margin-top: -2px;
}
}
}
}
}
.flow {
padding: 20px;
height: auto;
background: #ffffff;
border-radius: 10px;
.express-step {
display: flex;
padding-bottom: 24px;
position: relative;
justify-content: flex-start;
.express-step-icon {
width: 18px;
height: 18px;
margin-right: 7px;
display: flex;
align-items: center;
justify-content: center;
position: relative;
z-index: 2;
.step-pg {
margin-left: -11px;
display: block;
width: 18px;
height: auto;
}
.oval-pg {
display: block;
width: 6px;
height: 6px;
}
}
.express-step-msg {
.step-title {
height: 18px;
font-size: 14px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 700;
color: #999999;
line-height: 18px;
}
.step-m {
width: 300px;
word-break:break-all;
margin-top: 4px;
font-size: 13px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #999999;
line-height: 19px;
}
.step-unusual {
color: #ff4b33;
}
.step-time {
margin-top: 5px;
font-size: 12px;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #999999;
line-height: 12px;
}
}
.noButton {
margin-left: 22px;
}
&::before {
content: '';
position: absolute;
top: 5px;
left: 0;
display: block;
width: 6px;
height: 6px;
border-radius: 50%;
background: #e7e7e7;
}
&::after {
content: '';
position: absolute;
top: 11px;
bottom: 0;
height: calc(100% - 5px);
left: 3px;
display: block;
width: 1px;
background: #e7e7e7;
}
&.first {
&::before {
display: none;
}
}
&.last {
padding-bottom: 0;
&::after {
display: none;
}
}
}
.isComplate {
&::after {
background: #00bda5;
}
&::before {
background: #00bda5;
}
.express-step-msg {
.step-title {
color: #212121;
}
}
}
.hideCircle {
&::before {
width: 0;
display: none;
}
.express-step-msg {
.step-title {
color: #212121;
}
}
}
}
}
}
.sumbit-container {
box-sizing: border-box;
position: fixed;
bottom: 0;
left: 0;
width: 100%;
z-index: 99;
padding: 5px 12px;
z-index: 99;
padding-bottom: calc(5px + env(safe-area-inset-bottom) / 2);
background: #ffffff;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
.sumbit-button {
width: 352px;
height: 40px;
background: #d9d9d9;
border-radius: 20px;
font-family: PingFangSC-Semibold, PingFang SC;
font-weight: 700;
color: #ffffff;
font-size: 16px;
display: flex;
align-items: center;
background: #00bda5;
justify-content: center;
}
}
<template>
<div class="d-box">
<page-model
ref="PageModel"
:header-info="headerInfo"
/>
<div class="title" />
<div class="detail-box">
<div class="status">
<img
v-if="waitIcon.indexOf(dataDetail.status) != -1"
src="https://files.yunqueyi.com/image/png/common/20220816135321860.png"
alt="wait"
>
<img
v-else-if="dataDetail.status == 5"
src="https://files.yunqueyi.com/image/png/common/20220817141150961.png"
alt="success"
>
<img
v-else
src="https://files.yunqueyi.com/image/png/common/20220816135250298.png"
alt="success"
>
<div>{{ dataDetail.status | statusFilter }}</div>
</div>
<div class="content">
<div class="info">
<div class="list">
<p class="l-left">
受检人:
</p>
<p class="l-right">
<span>{{ dataDetail.patientName || '--' }}</span><span>{{ dataDetail.sex | sexFilter }}</span><span class="font">{{
dataDetail.ageMonth
? dataDetail.ageMonth + '月'
: dataDetail.patientAge + '岁'
}}</span>
</p>
</div>
<div class="list">
<p class="l-left">
检测项目:
</p>
<p class="l-right">
{{ dataDetail.checkName || '--' }}
</p>
</div>
<div class="list">
<p class="l-left">
开单医生:
</p>
<p class="l-right">
{{ dataDetail.doctorName || '--' }}
</p>
</div>
<div class="list">
<p class="l-left">
检测编号:
</p>
<p class="l-right">
{{ dataDetail.recordNo || '--' }}
</p>
</div>
<div
v-if="dataDetail.status != 0 && dataDetail.status != 1"
class="list-bottom"
>
<div class="l-b-code">
<div class="l-b-list">
<div class="l-left">
条形码:
</div>
<div class="l-right">
{{ dataDetail.sampleCode || '--' }}
</div>
<div
class="l-copy"
@click="copyText(dataDetail.sampleCode)"
>
复制
</div>
</div>
<div
v-if="[2, 21, 22, 25].includes(Number(dataDetail.status|| 0))"
class="l-b-list"
>
<div class="l-left">
预期报告生成时间:
</div>
<div class="l-right">
{{
dataDetail.detectChargeType == 10
? dataDetail.reportExpectDate
: dataDetail.reportExpectDateHigh
}}
</div>
</div>
<div
v-if="dataDetail.status == 3"
class="l-b-list"
>
<div class="l-left">
报告生成时间
</div>
<div class="l-right">
{{ dataDetail.reportDate }}
</div>
</div>
</div>
</div>
</div>
<div class="flow">
<div class="f-list">
<div
v-for="(item, index) in dataList"
:key="index"
class="express-step"
:class="{
hideCircle: item.status == dataDetail.status,
last: index == dataList.length - 1,
isComplate: item.complate,
}"
>
<div
v-if="item.status == dataDetail.status"
class="express-step-icon"
>
<!-- 等待 -->
<img
v-if="waitIcon.indexOf(item.status) != -1"
class="step-pg"
src="https://files.yunqueyi.com/image/png/common/20220816120131913.png"
mode="aspectFill"
>
<!-- 成功 -->
<img
v-else
class="step-pg"
src="https://files.yunqueyi.com/image/png/common/2022081612011851.png"
mode="aspectFill"
>
</div>
<div
class="express-step-msg"
:class="{ noButton: item.status != dataDetail.status }"
>
<div class="step-title">
{{ item.nodeName }}
</div>
<div
v-if="item.exceptionDetail && item.exceptionDetail.exceptionTypeStr"
class="step-m step-unusual"
>
<span
class="fb"
>{{ item.exceptionDetail.exceptionTypeStr }}:
</span>
<span
v-if="item.exceptionDetail.exceptionDesc"
class="text-abnormal"
>{{ item.exceptionDetail.exceptionDesc }}</span>
</div>
<div
v-else
class="step-m"
:class="{ 'step-unusual': item.status == 5 }"
>
{{ item.nodeDesc }}
</div>
<div
v-if="item.nodeTime"
class="step-time"
>
{{ item.nodeTime }}
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div
v-if="
noShowBottomBtn.indexOf(dataDetail.status) == -1 ||
(dataDetail.status == 6 && !dataDetail.detectOrderType)
"
class="sumbit-container"
>
<div
class="sumbit-button"
@click="bottomBtnFun"
>
{{ dataDetail.status | showBtnTextFilter }}
</div>
</div>
<!-- howBtn == 0 针对诺辉的走单独送检流程 不显示去送检按钮 -->
<div
v-if="dataDetail.status == 2 && dataDetail.showSendBtn == 1"
class="sumbit-container"
>
<div
class="sumbit-button"
@click="bottomBtnFun"
>
去送检
</div>
</div>
</div>
</template>
<script>
import { getDetectionDetail, getDetectionDetailProces } from '@/api/detection';
export default {
filters: {
sexFilter(val) {
const str = val == 2 ? '女' : '男';
return str;
},
showReportTime(val) {
console.log(val, 'val----===');
if (val == 2 || val == 22 || val == 21) {
return true;
} else {
return false;
}
},
statusShowFilter(val) {
// 10:免费;20:收费
if (!val || val == 1) {
return false;
} else {
return true;
}
},
statusFilter(type) {
const obj = {
0: '待完善信息',
1: '待采样',
2: '已采样',
21: '已送检',
25: '已接收',
27: '已上机',
22: '已签收',
3: '已完成',
5: '样本失效',
6: '待支付',
};
return obj[type];
},
showBtnTextFilter(status) {
// 0 21 2 22
const obj = {
6: '立即支付', // 待支付
1: '绑定条形码', // 待采样
3: '查看报告', // 已完成
2: '样本送检',
};
return obj[status];
},
},
data() {
return {
status: '',
headerInfo: {
title: '检测详情',
isBlack: false,
backMethod: 'web',
style: 'zIndex:100;',
background: '',
},
id: '',
dataDetail: {},
canClick: true,
needPaybackOrderid: '',
needPaybackGoodId: '',
payAmountData: [],
payLogId: '', // 预支付记录ID
dataList: [],
waitIcon: [0, 1, 6], // icon 显示等待状态
noShowBottomBtn: [0, 21, 22, 5, 1, 6, 2, 25, 27], // 这几种状态不显示底部操作按钮
};
},
created() {
this.id = this.$route.query.id || 123;
this.init();
},
mounted() {
},
methods: {
init() {
getDetectionDetail(this.id).then((res) => {
if (res.code === '000000') {
this.dataDetail = res.data;
this.getDetailProces();
console.log(res, 'eeeeeeeeeee', this.dataDetail);
} else {
this.$toast(res.message);
}
});
},
copyText(val) {
const input = document.createElement('input');
input.value = val;
document.body.appendChild(input);
input.select();
input.setSelectionRange(0, input.value.length);
document.execCommand('Copy');
document.body.removeChild(input);
this.$toast('已复制');
console.log('已复制的内容:', val);
window.scrollTo(0, 1);
},
sampleDetection() {
// 样本送检测sale-mall-crm/sample-inspection?hospitalId=58436
this.$router.push({
name: 'SampleInspection',
query: {
hospitalId: this.dataDetail.hospitalId,
},
});
},
// 检测详情
getDetailProces() {
getDetectionDetailProces(this.id).then((res) => {
if (res.code === '000000') {
var flag = false;
const data = res.data || [];
console.log(this.dataDetail);
data.forEach((item) => {
if (item.status == this.dataDetail.status) {
item.complate = false;
flag = true;
} else {
console.log(flag, 'flag');
if (!flag) {
item.complate = true;
} else {
item.complate = false;
}
}
});
this.dataList = data;
console.log(this.dataList, 'res111111');
} else {
this.$toast(res.message);
}
});
console.log('999000999');
},
// 查看报告
seeReport() {
// window.open(this.dataDetail.reportUrl + '?response-content-type=application/pdf');
const l =
this.dataDetail.reportUrl + '?response-content-type=application/pdf';
this.$DDObj.ddOpenLink({ url: l });
},
bottomBtnFun() {
// 底部按钮点击
const objFun = {
3: 'seeReport', // 已完成 查看报告
// 1: 'goBindCode', // 待采样 绑定条形码
// 6: 'goPay', // 去支付
2: 'sampleDetection', // 去送检
};
console.log(this.dataDetail.status);
const funName = objFun[this.dataDetail.status];
console.log(funName);
funName && this[funName]();
},
},
};
</script>
<style lang="scss" scoped>
@import './index.scss';
</style>
<template>
<div class="insurance-research-result">
<div class="icon-item">
<img
src="https://files.yunqueyi.com/image/png/common/20221213135338128.png"
>
</div>
<div class="font-big">
提交成功
</div>
<div class="font-normal">
{{
evaluationInfo.detectionScoreFlag == 1
? '结果计算中...'
: '您的结果将于次日以短信形式推送,烦请留意!'
}}
</div>
<div class="custom-style">
{{ evaluationInfo.detectionScoreFlag == 1 ? '查看结果' : '完成' }}
</div>
<pica-guide-app
:open-web-app="true"
:open-web-app-config="openWebAppConfig"
:is-need-wx-config="false"
/>
</div>
</template>
<script>
// import {evaluationResults, getDetailByUnionId} from '@/api/home.js';
const { VUE_APP_ENV } = process.env;
export default {
data() {
return {
openWebAppConfig: {
content:
'<script' +
' type=text/wxtag-template><style>.btn {position:absolute; top: 0; left: 0; width:100%; height: 100%;}</style> <div class="btn"></div></' +
'script>', // 标签内容
username: 'gh_e92f58174364', // 小程序唯一username 1.gh_80d54796f2d5 云鹊助手 2. gh_e92f58174364 云鹊健康
path: 'pagesUserCenter/insurance/insurance-risk-result', // 打开页面
envVersion: VUE_APP_ENV != 'testing' ? 'release' : 'trial', // release 生产
extraData: '',
},
extraData_MX: {},
evaluationInfo: {},
};
},
created() {
// const data = JSON.parse(localStorage.getItem('extraData_MX'));
// const questionInfo_MX = JSON.parse(localStorage.getItem('questionInfo_MX'));
// const d = {userId: questionInfo_MX.patientId, ...data};
// this.openWebAppConfig.extraData = JSON.stringify(d);
// this.extraData_MX = d;
// this.evaluationResults(data.orderNo);
// const {referer} = this.$route.query;
// console.log('--referer', referer, d);
// if(referer) {
// window.location.href = window.location.origin + window.location.pathname;
// }
},
methods: {
// evaluationResults(id) {
// evaluationResults(id).then(res => {
// console.log('evaluationResults', res);
// if (res.code === '000000') {
// console.log('evaluationResults', res);
// this.evaluationInfo = res.data;
// }
// });
// const questionInfo_MX = JSON.parse(localStorage.getItem('questionInfo_MX'));
// getDetailByUnionId(questionInfo_MX.patientId).then( res => {
// if (res.code === '000000') {
// const { status, detectionServiceRecord} = res.data;
// const data = JSON.parse(localStorage.getItem('extraData_MX'));
// const d = {userId: questionInfo_MX.patientId, detectionDetailID:detectionServiceRecord.id, ...data};
// this.openWebAppConfig.extraData = JSON.stringify(d);
// if(status == 0) {
// console.log('111');
// }
// if(status == 1 || status == 5) {
// this.openWebAppConfig.path = 'pagesUserCenter/insurance/insurance-detection-detail';
// }
// if(status == 2 || status == 3 || status == 4) {
// this.openWebAppConfig.path = 'pages/health/detection-detail/index';
// }
// }
// console.log('--this.openWebAppConfig', this.openWebAppConfig);
// });
// },
},
};
</script>
<style lang="scss" scoped>
.insurance-research-result {
width: 100%;
height: 100vh;
background: #ffffff;
box-sizing: border-box;
padding: 20px 16px;
color: #676869;
text-align: center;
.icon-item {
width: 57px;
height: 65px;
margin: 0 auto;
margin-top: 83px;
image {
width: 100%;
height: 100%;
}
}
.font-big {
margin-top: 22px;
font-size: 20px;
font-weight: 700;
color: #02120f;
}
.font-normal {
margin-top: 12px;
font-size: 15px;
font-weight: 400;
color: #666666;
}
.custom-style {
width: 350px;
height: 40px;
background: #00bda5;
font-size: 16px;
color: #ffffff;
font-weight: 600;
line-height: 40px;
border-radius: 40px;
border: none;
margin-top: 148px;
}
}
</style>
<template>
<div class="insurance-risk-result">
<div class="icon-item">
<img
:src="
!needDetect
? 'https://files.yunqueyi.com/image/png/common/20221213144514273.png'
: 'https://files.yunqueyi.com/image/png/common/20221213144810625.png'
"
>
</div>
<div
class="font-big"
:class="needDetect && 'green'"
>
{{ !needDetect ? '建议领用' : '暂无需领用' }}
</div>
<div class="font-normal">
{{
!needDetect
? '参照本次评估结果,建议您接受防癌早筛检测。坚持良好生活方式,定期接受体检,关注个人健康'
: '参照本次评估结果,建议您可暂不进行防癌早筛检测。坚持良好生活方式,定期接受体检,关注个人健康。'
}}
</div>
<div
v-if="!needDetect"
class="advise"
>
<div class="fs">
建议您进行以下防癌筛查:
</div>
<div class="ad-fs">
{{ result.detectName || '' }}
</div>
</div>
<div
v-if="!needDetect"
class="progress"
>
<img
src="https://files.yunqueyi.com/image/png/common/20221226103307358.png"
>
</div>
<div
v-if="!needDetect"
class="custom-style"
@click="toAppoint"
>
{{ statusMap(detailInfo.status) || '免费预约检测' }}
</div>
<div class="tips">
注:该问卷评估结果仅供填写人自行参考。
</div>
</div>
</template>
<script>
export default {
data() {
return {
needDetect: false,
result: {},
detailInfo: {},
isLoading: true,
};
},
mounted() {
console.log(11223);
},
methods: {
statusMap(status) {
const m = {
0: '免费预约检测',
4: '免费预约检测',
5: '免费预约检测',
1: '查看详情',
2: '查看详情',
3: '查看详情',
};
return m[status];
},
},
};
</script>
<style lang="scss" scoped>
.insurance-risk-result {
width: 100%;
height: 100vh;
box-sizing: border-box;
padding: 20px 16px;
color: #676869;
text-align: center;
.icon-item {
width: 50px;
height: 60px;
margin: 0 auto;
margin-top: 45px;
img {
width: 100%;
height: 100%;
}
}
.font-big {
margin-top: 8px;
font-size: 25px;
font-weight: 500;
color: #ef8337;
}
.green {
color: #179082;
}
.font-normal {
margin-top: 15px;
font-size: 15px;
font-weight: 400;
color: #666666;
}
.advise {
height: 78px;
background: #fffbf9;
border-radius: 11px;
border: 1px solid #fbe0ce;
padding: 15px;
text-align: center;
margin: 10 auto;
}
.fs {
font-size: 12px;
font-weight: 400;
color: #999999;
}
.ad-fs {
font-size: 18px;
font-weight: 500;
color: #ef8337;
}
.custom-style {
background: #00bda5;
font-size: 16px;
color: #ffffff;
font-weight: 600;
width: 90%;
height: 40px;
line-height: 40px;
border-radius: 40px;
//position: absolute;
//bottom: 120px;
margin: 0 auto;
margin-top: 150px;
}
.tips {
font-size: 13px;
font-weight: 300;
color: #212121;
//bottom: 60px;
//position: absolute;
margin: 0 auto;
text-align: center;
width: 100%;
margin-top: 38px;
}
.progress {
margin-top: 24px;
height: 168px;
width: 100%;
image {
width: 100%;
height: 100%;
}
}
}
.loadingShow {
display: flex;
justify-content: center;
align-items: center;
height: 100vh;
width: 100vw;
position: absolute;
top: 0;
left: 0;
background: rgba($color: #000000, $alpha: 0.3);
}
</style>
module.exports = { module.exports = {
transpileDependencies: [ transpileDependencies: [
/[/\\]node_modules[/\\][@\\]pica-cli[/\\]vue-cli-plugin-pica-cli-plugin[/\\]core/, /[/\\]node_modules[/\\][@\\]pica-cli[/\\]vue-cli-plugin-pica-cli-plugin[/\\]core/,
/[/\\]node_modules[/\\][@\\]pica-kit[/\\]page-model/, /[/\\]node_modules[/\\][@\\]pica-kit[/\\]page-model/
/[/\\]node_modules[/\\][@\\]pica-kit[/\\]page-area/
], ],
productionSourceMap: false, productionSourceMap: false,
pluginOptions: { pluginOptions: {
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册