|
|
- <template>
- <view class="confirm-subscribe flex-1">
- <view class="confirm-subscribe-item">
- <select-drug-user v-if="address" :DrugInfo='address' :type="2" ></select-drug-user>
- </view>
- <view class="confirm-subscribe-item">
- <view class="flex align-start font-30 font-weight-bold ">
- <text class="text-red">*</text> <text class="text-black font-30">线下已确诊疾病</text>
- </view>
- <view class="font-24 text-grey">
- (*请根据线下就诊情况确认或选择确诊疾病)
- </view>
-
- <view class="flex align-center flex-wrap m-b-30">
- <view
- v-for="(item, index) in diseaseList"
- @click="selectDisease(item, index)"
- :key="index"
- :class="{'confirm-subscribe-item-tag--active': new Set(selectList).has(item)}"
- class="confirm-subscribe-item-tag flex align-center justify-center font-24 m-r-16 m-t-26"
- >
- {{ item }}
- </view>
- <view class="confirm-subscribe-item-tag flex align-center justify-center font-24 m-t-26" @click="show = true">
- +添加疾病
- </view>
- </view>
- <view class="flex justify-between align-center m-t-20 m-b-30 font-30 font-weight-bold">
- <text>确认服用过该药且无禁忌症及不良反应</text>
- <u-switch v-model="checked"></u-switch>
- </view>
- <view class="flex flex-column justify-start ">
- <text class=" font-30 font-weight-bold m-t-20 m-b-20">处方/病历/检查报告(选填)</text>
- <text class=" font-28 m-b-10" style="color: #AFAFAF;">您上传的病例资料将为医生开具处方提供参考</text>
- <view class="hint_pic">
- <u-upload ref="uUpload3"
- :header="headerInfo"
- :action="upload_img"
- :custom-btn="true"
- image-mode="none"
- @on-remove="closeImg"
- @on-success="onSuccess"
- @on-error="onErrorInfo"
- max-count="1" width="281" height="192" >
- <view slot="addBtn" class="slot-btn" hover-class="slot-btn__hover" hover-stay-time="150">
- <image :src="form.hintImage?form.hintImage:(IMG_URL+'upLoad.png')" mode=""></image>
- </view>
- </u-upload>
- </view>
- </view>
- </view>
- <view class="confirm-subscribe-footer position-fixed flex align-center justify-center">
- <u-button type="primary" shape="circle" @click="confirm">预约</u-button>
- </view>
-
- <u-popup v-model="show" mode="bottom" height="50vh">
- <view class="p-20">
- <u-search placeholder="请输入要添加的疾病" v-model="keyword" height="80" @search="offlinediagnosisList(1)" @custom="offlinediagnosisList(1)"></u-search>
- </view>
- <scroll-view scroll-y class="confirm-subscribe-scroll" @scrolltolower="illnessList()">
- <view class="text-center p-t-20 font-28 text-black" v-if="showList.length == 0">
- 未搜索到该疾病
- </view>
- <view class="p-l-20 p-r-20">
- <view class="confirm-subscribe-scroll-item p-t-20 p-b-20" v-for="item in showList" :key="item.id" @click="handleDisease(item)">
- {{item.name}}
- </view>
- </view>
- </scroll-view>
- </u-popup>
- </view>
- </template>
-
- <script>
- import { IMG_URL } from '@/env.js';
- export default {
- data() {
- return {
- IMG_URL,
- show: false,
- diseaseList: [],
- selectList: [],
- current: '',
- keyword: '',
- goodsId: '', //商品id
- address: null ,// 用药人
- drugUserInfo: null,
- type: '',
- pageNo:1,
- pageSize:10,
- total: null,
- isLock: true ,//锁
- isSituation: null,
- num: '',
- price: '',
- goodSkuParam: '',
- prescriptionId: null,
- addressId: null,
- orderType: null,
- preventionId: null, //防疫id
- // 添加疾病
- showList: [],
- checked: false,
- // 图片
- upload_img: '',
- href: 'api/info/upload',
- headerInfo: {
- "content-type": "application/x-www-form-urlencoded",
- "X-Access-Token": ''
- },
- imgUpload: '' , // 上传的图片地址
- imgUploadShow: '', // 拍方抓药
- createOrderType: '',
- payType: '',
- isZone: '',
- patterId:''
- }
- },
-
- onLoad(options) {
- this.upload_img = this.$upload_img;
- console.log(4444444,options)
- this.payType = options.payType;
- this.createOrderType = options.createOrderType;
- this.goodsId = options.goodsId;
- this.addressId = options.addressId;
- this.type = options.type;
- this.isSituation = options.isSituation
- this.num = options.num;
- this.price = options.price;
- this.imgUploadShow = options.imgUploadShow;
- this.goodSkuParam = options.goodSkuParam;
- this.prescriptionId = options.prescriptionId;
- this.preventionId = options.preventionId;
- this.orderType = options.orderType;
- this.isZone = options.isZone;
- this.patterId = options.patterId == null?'':options.patterId;
- if(options.medicineMan) {
- this.address = JSON.parse(options.medicineMan);
- }
- console.log(5555,this.patterId)
- this.offlinediagnosisList();
- // 获取上传图片需要的信息
- let token = uni.getStorageSync("__user_token");
- this.headerInfo["X-Access-Token"] = token;
- this.getGoodsdetail(this.goodsId);
- },
- methods: {
- // 商品详情
- getGoodsdetail(id){
- uni.showLoading();
- this.$api('getGoodsdetail',{id})
- .then(res => {
- let { code, result, message } = res;
- uni.hideLoading();
- if(code == 200) {
- const list = result.disease?result.disease.split(","): []
- console.log(list)
- list.forEach(item => {
- this.diseaseList.push(item)
- })
- }else {
- let tips = message.indexOf('操作失败') > -1 ? '商品不存在' : message
- this.$Toast(tips);
- }
- }).catch(err => {
- uni.hideLoading();
- this.$Toast(err.message)
- })
- },
- // 图片上传成功
- onSuccess(data){
- this.imgUpload = data.result
- },
- // 移除图片
- closeImg() {
- this.imgUpload = ''
- },
- // token 失效
- onErrorInfo(data) {
- console.log(data)
- if(data.code == 401){
- this.$tools.navigateTo({
- url: '/pages/login/login'
- })
- }
- },
- // 下拉刷新
- illnessList() {
- if(this.isLock) {
- if(this.total !== null && this.pageNo * this.pageSize >= this.total){
- this.isLock = false;
- this.$Toast('没有更多数据了哦!');
- setTimeout(()=>{
- this.isLock = true;
- },3000)
- return
- }
- this.pageNo+=1;
- this.getRightListGoods();
- }
- },
- // 根据商品id获取地址
-
- selectUser () {
- this.$tools.navigateTo({
- url: `/pagesA/my_other_list/prescription/select_medicine_man/index?type=${this.type}&goodsId=${this.goodsId}`
- });
- },
- // 线下确诊疾病 -> 点击添加的疾病
- offlinediagnosisList(index=0) {
- // index 0 为普通列表 1为搜素
- const params = {
- pageNo: this.pageNo,
- pageSize: this.pageSize,
- }
- if(index == 1){
- params.name = this.keyword
- delete params.pageNo
- }
- uni.showLoading();
- this.$api('offlinediagnosisList',params).then(res => {
- let { code, result, message} = res;
- if(code == 200) {
- if(this.total == null) {
- this.total = result.total
- }
- if(index == 1){
- this.showList = result.records
- }else{
- this.showList = this.showList.concat(result.records)
- }
- uni.hideLoading()
- }else {
- uni.hideLoading()
- this$Toast(message)
- }
- }).catch(err => {
- uni.hideLoading()
- this$Toast(err.message)
- })
- },
-
- // 预约
- confirm () {
- console.log(this.address)
- console.log(this.createOrderType)
- const params = {
- userId: this.address.id,//用药人标识
- goodId: this.goodsId,
- confirmatoryDiseaseLabel: this.selectList.toString(), // 确证疾病标签
- isAdverse: this.checked?1:0, //1有不良反应
- casePic: this.imgUpload, //病例图片
- paterId: this.patterId
- // caseText: , // 病例信息
- }
- if(params.confirmatoryDiseaseLabel == '') {
- this.$Toast('请选择疾病标签');
- return
- }
- const that = this
- this.$api('offlineAdd',params).then(res => {
- let { code, result, message} = res;
- if(code == 200) {
- // 兑购2 拼团1
- if(this.createOrderType === 'shoppingCart'){
- this.addCart(result)
- }else if(this.createOrderType === 'confirm') {
- this.setOrder(result.id)
- }else {
- that.addCart(result);
- }
- }else {
- this.$Toast(message)
- }
- }).catch(err => {
- this.$Toast(err.message)
- })
-
- },
- // 创建订单
- setOrder(id){
- const params = {type: this.payType,prescriptionId: this.address.id , offlineInfoId: id, id: this.goodsId, goodsPrice: this.price, goodsNum: this.num, goodsSku: this.goodSkuParam, orderType: this.orderType,paterId: this.patterId}
- if(this.preventionId){
- params.preventionId = this.preventionId
- }
- this.$api('teamCreateOrder', params)
- .then(res => {
- uni.hideLoading()
- let { code, message, result } = res
- if (code === 200) {
- this.$tools.navigateTo({
- url: `/pagesC/confirmOrder/confirmOrder?ids=${result.order.id}&orderType=${this.orderType}&payType=${this.payType}&isZone=${this.isZone}`
- })
- }else if(res.code === 902) {
- // 防疫药
- uni.showModal({
- title: res.message,
- success: (res) => {
- console.log(res)
- if(res.confirm) {
- uni.navigateTo({
- url: `/pagesB/epidemicPrevention/index?goodsId=${this.goodsId}&orderType=${this.orderType}&num=${this.num}&price=${this.price}&goodSkuParam=${this.goodSkuParam}&prescriptionId=${this.address.id}&medicineMan=${JSON.stringify(this.address)}&createOrderType=${this.createOrderType}&payType=${this.payType}&offlineInfoId=${id}`
- })
- }
- }
- })
- }else {
- this.$Toast(message)
- }
- })
- },
- // 加入购物车
- addCart(result) {
- console.log(this.address)
- // type: 2,
- const params = {offlineInfoId: result.id ,id: this.goodsId, num: this.num, price: this.price, goodSkuParam: this.goodSkuParam, prescriptionId: this.address.id,paterId: this.patterId }
- if(this.preventionId) {
- params.preventionId = this.preventionId
- }
- this.$api('addShoppingCart', params)
- .then(res => {
- if (res.code === 200) {
- uni.$emit('isUpdataShowToast')
- this.$Toast(res.message)
- let pages_url = getCurrentPages();
- const index = pages_url.findIndex(item => {
- return item.route == 'pagesC/goodsInfo/goodsInfo'
- });
- const length = pages_url.length
- // 需要返回的层数
- const backIndex = length - (index+1);
- uni.navigateBack({
- delta: backIndex
- })
- // setTimeout(() => {
- // this.$tools.switchTab({
- // url: '/pages/shoppingCart/shoppingCart'
- // }, 800)
- // })
- }else if(res.code === 902) {
- // 防疫药
- uni.showModal({
- title: res.message,
- success: (res) => {
- console.log(res)
- if(res.confirm) {
- uni.navigateTo({
- url: `/pagesB/epidemicPrevention/index?goodsId=${this.goodsId}&num=${this.num}&price=${this.price}&goodSkuParam=${this.goodSkuParam}&prescriptionId=${this.address.id}&medicineMan=${JSON.stringify(this.address)}&offlineInfoId=${result.id}`
- })
- }
- }
- })
- }else {
- this.$Toast(message)
- }
- }).catch(err => {
- this.$Toast(err.message)
- })
- },
- selectDisease (item, index) {
- if(new Set(this.selectList).has(item)) {
- const index_ = this.selectList.indexOf(item);
- this.selectList.splice(index_,1);
- }else {
- this.selectList.push(item)
- }
- },
- handleDisease (item) {
- this.diseaseList.unshift(item.name)
- this.diseaseList = [...new Set(this.diseaseList)]
- this.show = false
- },
-
- }
- }
- </script>
-
- <style lang="scss" scoped>
- .hint_pic{
- display: flex;
- flex-direction: column;
- margin-right: 40rpx;
- /deep/.u-list-item {
- margin: 0;
- width: 232rpx !important;
- height: 232rpx !important;
- border-radius: 12rpx;
- .u-preview-image{
- width: 264rpx;
- height: 232rpx;
- }
- image {
- width: 232rpx;
- height: 232rpx;
- }
- }
- image {
- width: 232rpx;
- height: 232rpx;
- border-radius: 12rpx;
- }
- }
- .confirm-subscribe {
- padding: 20rpx 20rpx 140rpx;
- &-item {
- padding: 20rpx;
- background: #ffffff;
- border-radius: 18rpx;
- box-shadow: 0px 4rpx 6rpx 0px rgba(0,0,0,0.16);
- margin-bottom: 40rpx;
-
- &-tag {
- padding: 0 20rpx;
- height: 50rpx;
- background: #E2E2E2;
- color: #1d1d1d;
- border-radius: 24rpx;
- &--active {
- background: #baebfc;
- color: #01aeea;
- }
- }
- }
-
- &-footer {
- z-index: 1;
- height: 120rpx;
- bottom: 0;
- left: 0;
- width: 100%;
- background: #fff;
- /deep/.u-btn {
- width: 660rpx;
- height: 80rpx;
- }
- }
-
- &-scroll {
- height: calc(50vh - 120rpx );
- &-item {
- border-bottom: 2rpx solid #D2D2D2;
- }
- }
- }
- </style>
|