XSLu08042 1 day ago
parent
commit
24c110919e

+ 3 - 3
common/request.js

@@ -5,9 +5,9 @@ export default class Request {
 		// let path = 'http://127.0.0.1:8113';
 		// var path=uni.getStorageSync('requestPath')
 		// var path = 'https://userapp.his.cdwjyyh.com';
-		// var path = 'https://app.rtys.cdwjyyh.com';
-		var path = "https://userapp.bjyjbao.com/prod-api"
-		// var path = "http://b656b9ad.natappfree.cc"
+		// var path = 'https://storeuserapp.bjyjbao.com'; //正式
+		// var path = "https://userapp.bjyjbao.com/prod-api"
+		var path = "http://b656b9ad.natappfree.cc"
 		// var path = "http://192.168.10.126:8113"
 		let token="";
 		let type = 0

+ 229 - 0
components/storeDetail.vue

@@ -0,0 +1,229 @@
+<template>
+	<view class="container-body">
+		<view class="box">
+			<view class="storeInfo title">基础信息</view>
+			<view class="storeInfo-item x-start">
+				<view class="label" style="width: 4rem;">公司全称</view>
+				<view class="val">{{storeInfo.fullName|| ''}}</view>
+			</view>
+			<view class="storeInfo-item x-start">
+				<view class="label" style="width: 4rem;">联系电话</view>
+				<view class="val">{{storeInfo.sendPhone|| ''}}</view>
+			</view>
+			<view class="storeInfo-item x-start">
+				<view class="label" style="width: 4rem;">详细地址</view>
+				<view class="val">{{storeInfo.address|| ''}}{{storeInfo.enterpriseAddress||''}}</view>
+			</view>
+			<view class="storeInfo-item x-start">
+				<view class="label" style="width: 4rem;">经营范围</view>
+				<view id="descbox-desc" :class="showDes|| !showExpandText? 'opacity descbox-desc':'descbox-desc' " :style="{height: isExpand ? 'auto': '84rpx'}">
+					{{storeInfo.businessScope|| ''}}
+					<!-- <view class="expand x-ac">
+						{{!isExpand&&showExpandText ? '展开':'收起'}}
+						<u-icon name="arrow-down" color="#333" size="14"></u-icon>
+						<u-icon name="arrow-up" color="#333" size="14"></u-icon>
+					</view> -->
+				</view>
+			</view>
+		</view>
+		<view class="box mb20">
+			<view class="storeInfo title">资质信息</view>
+			<view class="storeInfo-item mb20">
+				<view class="label mb20">营业执照</view>
+				<view class="val x-f">
+					<u-image
+						v-if="storeInfo.businessLicense"
+						shape="square" 
+						lazyLoad 
+						:src="storeInfo.businessLicense" 
+						width="600rpx"
+						height="auto"
+						mode="widthFix" 
+						radius="6"
+						@click="previewImage('businessLicense')"
+					></u-image>
+					<view v-else>暂未上传</view>
+				</view>
+			</view>
+			<view class="storeInfo-item mb20" v-if="storeInfo.medicalDevice2">
+				<view class="label" mb20>2类器械生产备案</view>
+				<view class="val x-f">
+					<u-image
+						v-if="storeInfo.medicalDevice2"
+						shape="square" 
+						lazyLoad 
+						:src="storeInfo.medicalDevice2" 
+						width="600rpx"
+						height="auto"
+						mode="widthFix" 
+						radius="6"
+						@click="previewImage('medicalDevice2')"
+					></u-image>
+					<view v-else>暂未上传</view>
+				</view>
+			</view>
+			<view class="storeInfo-item mb20" v-if="storeInfo.medicalDevice1">
+				<view class="label mb20">1类医疗器械备案</view>
+				<view class="val x-start">
+					<u-image
+						v-if="storeInfo.medicalDevice1"
+						shape="square" 
+						lazyLoad 
+						:src="storeInfo.medicalDevice1" 
+						width="600rpx"
+						height="auto"
+						mode="widthFix" 
+						radius="6"
+						@click="previewImage('medicalDevice1')"
+					></u-image>
+					<view v-else>暂未上传</view>
+				</view>
+			</view>
+			<view class="storeInfo-item mb20" v-if="storeInfo.medicalDevice3">
+				<view class="label mb20">3类器械经营许可证</view>
+				<view class="val x-f">
+					<u-image
+						v-if="storeInfo.medicalDevice3"
+						shape="square" 
+						lazyLoad 
+						:src="storeInfo.medicalDevice3" 
+						width="600rpx"
+						height="auto"
+						mode="widthFix" 
+						radius="6"
+						@click="previewImage('medicalDevice3')"
+					></u-image>
+					<view v-else>暂未上传</view>
+				</view>
+			</view>
+			<view class="storeInfo-item mb20" v-if="storeInfo.foodLicense">
+				<view class="label mb20">食品经营许可证</view>
+				<view class="val x-f">
+					<u-image
+						v-if="storeInfo.foodLicense"
+						shape="square" 
+						lazyLoad 
+						:src="storeInfo.foodLicense" 
+						width="600rpx"
+						height="auto"
+						mode="widthFix" 
+						radius="6"
+						@click="previewImage('foodLicense')"
+					></u-image>
+					<view v-else>暂未上传</view>
+				</view>
+			</view>
+			<view class="storeInfo-item mb20" v-if="storeInfo.medicalLicense">
+				<view class="label mb20">医疗机构执业许可证</view>
+				<view class="val x-f">
+					<u-image
+						v-if="storeInfo.medicalLicense"
+						shape="square" 
+						lazyLoad 
+						:src="storeInfo.medicalLicense" 
+						width="600rpx"
+						height="auto"
+						mode="widthFix" 
+						radius="6"
+						@click="previewImage('medicalLicense')"
+					></u-image>
+					<view v-else>暂未上传</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script>
+	export default {
+		props:['storeInfo','source'],
+		data() {
+			return {
+				showDes: false,
+				showExpandText: false,
+				isExpand: true,
+				textHeight: 0, //文本高度
+			}
+		},
+		methods: {
+			previewImage(type) {
+				uni.previewImage({
+					current: 0,
+					urls: [this.storeInfo[type]]
+				});
+			},
+			getDescHeight() {
+				return
+				this.$nextTick(() => {
+					const query = uni.createSelectorQuery().in(this);
+					query
+						.select("#descbox-desc")
+						.boundingClientRect((data) => {
+							this.textHeight = data.height
+							this.isExpand = this.textHeight > uni.upx2px(84) ? false : true
+							this.showExpandText = this.textHeight >= uni.upx2px(84) ? true : false
+							this.showDes = true
+						})
+						.exec();
+				})
+			},
+		}
+	}
+</script>
+
+
+<style scoped lang="scss">
+	.mb20 {
+		margin-bottom: 20rpx;
+	}
+	.box {
+		padding: 0 32rpx 26rpx 32rpx;
+		background-color: #fff;
+	}
+	.opacity {
+		position: relative !important;
+		opacity: 1 !important;
+		z-index: 1 !important;
+	}
+	.descbox-desc {
+		color: #222;
+		font-weight: 400;
+		font-size: 28rpx;
+		color: #222222;
+		word-break: break-all;
+		overflow: hidden;
+		line-height: 42rpx;
+		position: absolute;
+		opacity: 0;
+		z-index: -1;
+	}
+	.container-body {
+		font-family: PingFang SC, PingFang SC;
+		font-weight: 400;
+		font-size: 28rpx;
+		color: #939599;
+	}
+	.businessLicense {
+		height: 80rpx;
+		width: 80rpx;
+		border-radius: 8rpx;
+	}
+	.storeInfo {
+		&-item {
+			padding: 6rpx 0;
+			.label {
+				flex-shrink: 0;
+			}
+			.val {
+				color: #222;
+			}
+		}
+	}
+	.title {
+		font-family: PingFang SC, PingFang SC;
+		font-weight: 600;
+		font-size: 30rpx;
+		color: #222222;
+		padding: 24rpx 0;
+	}
+</style>

+ 5 - 6
pages/index/index.vue

@@ -262,13 +262,11 @@
 									<image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/app/newImages/index/white_right_arrow_right_icon.png" mode="aspectFill"></image>
 								</view>
 							</view>
-							<view class="text" style="margin-top: 6rpx;">药品交易平台备案:{{qual.icpztbah}}</view>
+							<view class="text" style="margin-top: 6rpx;">药品交易平台备案:{{qual.ypwljyfwdsfpt}}</view>
 							<view class="text" style="margin-top: 6rpx;">医疗器械交易平台备案:{{qual.ylqxwljyfwdsfptbah}}</view>
-							<view class="text" style="margin-top: 6rpx;">互联网药品信息服务备案:{{qual.hlwypxxfwba}}</view>
-							<view class="text" style="margin-top: 6rpx;">第三方平台备案:{{qual.ypwljyfwdsfpt}}</view>
 						</view>
 					</view>
-					<view>
+					<view style="padding-left: 14rpx;">
 						<text class="text" style="margin-right: 40rpx;">投诉举报邮箱:{{qual.jbyx}}</text>
 						<text class="text">联系电话:{{qual.baxx}}</text>
 					</view>
@@ -757,7 +755,7 @@
 	.qualifications {
 		&-box {
 			margin: 24rpx;
-			padding: 24rpx;
+			padding: 24rpx 16rpx;
 			box-sizing: border-box;
 			overflow: hidden;
 			background-image: url('https://cos.his.cdwjyyh.com/fs/20250826/54a29c58e06c431cbe3286335bb0da1b.png');
@@ -776,7 +774,8 @@
 		}
 		&-icon {
 			height: 136rpx;
-			width: 136rpx
+			width: 136rpx;
+			margin-left: -10rpx;
 		}
 		&-r {
 			flex: 1;

+ 4 - 1
pages_shopping/api/product.js

@@ -41,4 +41,7 @@ let request = new Request().http
  export function getStoreProductAttrValueList(data) {
  	 return request('/store/app/product/getStoreProductAttrValueList',data,'GET');
  }
- 
+ 
+ export function instructionsViewable(data) {
+ 	 return request('/store/app/product/instructionsViewable',data,'POST','application/json;charset=UTF-8');
+ }

+ 2 - 2
pages_shopping/paymentOrder.vue

@@ -137,10 +137,10 @@
 		</view>
 		<view class="btn-box">
 			<view class="btn" @click="payOrder()">去支付</view>
-			<view class="other-btn" >
+			<!-- <view class="other-btn" >
 				亲友代付
 				<button  class="share" data-name="shareBtn" open-type="share">分享</button>
-			</view>
+			</view> -->
 		</view>
 	</view>
 </template>

+ 146 - 35
pages_shopping/productDetails.vue

@@ -40,10 +40,18 @@
 			</view>
 		</view>
 		<view class="other-box">
+			<view class="other-box-item">
+				<view class="label">产品名称</view>
+				<view class="text">{{product.productName||'--'}}</view>
+			</view>
 			<view class="other-box-item">
 				<view class="label">包装规格</view>
 				<view class="text">{{product.prescribeSpec||'--'}}</view>
 			</view>
+			<view class="other-box-item">
+				<view class="label">包装单位</view>
+				<view class="text">{{product.unitName||'--'}}</view>
+			</view>
 			<view class="other-box-item">
 				<view class="label">批准文号</view>
 				<view class="text">{{product.batchNumber||'--'}}</view>
@@ -52,7 +60,15 @@
 				<view class="label">生产厂家</view>
 				<view class="text">{{product.mah||'--'}}</view>
 			</view>
-			<view class="other-box-item" v-if="product.sales">
+			<view class="other-box-item">
+				<view class="label">商品条码</view>
+				<view class="text">{{product.barCode||'--'}}</view>
+			</view>
+			<view class="other-box-item">
+				<view class="label">功能主治</view>
+				<view class="text">{{product.indications||'--'}}</view>
+			</view>
+			<!-- <view class="other-box-item" v-if="product.sales">
 				<view class="label">已售</view>
 				<view class="text">{{$formatSalesNum(product.sales)}}</view>
 			</view>
@@ -69,17 +85,20 @@
 						mode=""></image>
 					<text class="text">隐私保护</text>
 				</view>
-			</view>
+			</view> -->
 		</view>
-		<view class="storebox x-bc" v-if="chooseStore.storeId">
-			<view class="x-f">
-				<image class="logo" :src="chooseStore.logoUrl" mode="aspectFill"></image>
-				<view class="storebox-r" @click="goStoreDetail(chooseStore)">
-					<view class="storename ellipsis2">{{chooseStore.storeName||''}}</view>
-					<!-- <view class="storedesc">24小时营业 销售{{$formatSalesNum(chooseStore.salesCount) }}</view> -->
+		<view class="storebox" v-if="chooseStore.storeId">
+			<view class="x-bc">
+				<view class="x-f">
+					<image class="logo" :src="chooseStore.logoUrl" mode="aspectFill"></image>
+					<view class="storebox-r" @click="goStoreDetail(chooseStore)">
+						<view class="storename ellipsis2">{{chooseStore.storeName||''}}</view>
+						<!-- <view class="storedesc">24小时营业 销售{{$formatSalesNum(chooseStore.salesCount) }}</view> -->
+					</view>
 				</view>
+				<view class="storebox-btn" @click="goStoreDetail(chooseStore)">进店</view>
 			</view>
-			<view class="storebox-btn" @click="goStoreDetail(chooseStore)">进店</view>
+			<detail :source="'product'" ref="getStoreInfo" :storeInfo="storeInfo"></detail>
 		</view>
 		<!-- 购买人数、库存 -->
 		<!-- <view class="inventor">
@@ -101,11 +120,27 @@
 			</view>
 		</view> -->
 		<!-- 功效 -->
-		<!-- <view class="effect">
-			<view class="label">药品说明书</view>
-			<view class="label">查看</view>
-			
-		</view> -->
+		<view class="effect" v-if="product.instructionManual">
+			<view class="label">{{product.productName}}药品说明书</view>
+			<view :class="product.productType ==2&&isView==0 ? 'hiddenbox':''">
+				<u-parse :content="product.instructionManual" :style="{display: 'block'}"></u-parse>
+			</view>
+			<view class="shadowbox" v-if="product.productType ==2&&isView==0">
+				<view class="shadowbox-btn x-ac" @click="handleShow">
+					<text style="margin-right: 10rpx;">点击查看说明书全文</text>
+					<u-icon name="arrow-down" color="#999" size="14"></u-icon>
+				</view>
+			</view>
+		</view>
+		<u-popup :show="show" mode="center" :round="10" @close="show=false" :closeOnClickOverlay="false">
+			<view class="popupbox">
+				<view class="popupbox-title">如何查看说明书</view>
+				<view class="popupbox-body">
+					<text style="font-weight: bold;">普通用户:</text>需要先问诊获得处方后才能查看说明书,请点<text class="confirm" @click="addCart('buy')">问诊开药</text>开处方!
+				</view>
+				<view class="popupbox-footer" @click="show=false">我知道了</view>
+			</view>
+		</u-popup>
 		<!-- 商品评价 -->
 		<view class="det-box evaluate">
 			<view class="title">商品评价({{evaluateTotal}})</view>
@@ -123,11 +158,7 @@
 			<view class="inner">
 				<view v-html="product.description" style="font-size:0"></view>
 			</view>
-			<view class="other-box" style="margin: 0;padding: 24rpx 0;">
-				<view class="other-box-item" v-if="product.indications">
-					<view class="label" style="margin-right: 16rpx;">【功能主治】</view>
-					<view class="text">{{product.indications}}</view>
-				</view>
+		<!-- 	<view class="other-box" style="margin: 0;padding: 24rpx 0;">
 				<view class="other-box-item" v-if="product.dosage">
 					<view class="label" style="margin-right: 16rpx;">【用法用量】</view>
 					<view class="text">{{product.dosage}}</view>
@@ -144,7 +175,7 @@
 					<view class="label" style="margin-right: 16rpx;">【注意事项】</view>
 					<view class="text">{{product.precautions}}</view>
 				</view>
-			</view>
+			</view> -->
 		</view>
 		<!-- 底部按钮 -->
 		<view class="btn-foot">
@@ -240,16 +271,18 @@
 </template>
 
 <script>
-	import {getCartCount} from '@/api/index.js'
+	import detail from '@/components/storeDetail.vue'
+	import {getCartCount,storeDetail} from '@/api/index.js'
 	import {getDicts} from '@/api/common.js'
-	import { getProductDetails, addCart } from './api/product.js'
+	import { getProductDetails, addCart,instructionsViewable } from './api/product.js'
 	import {selectCommentByUser} from '@/api/myStoreOrder.js'
 	import popupBottom from './components/px-popup-bottom.vue'
 	import evaluateItem from '@/components/evaluateItem.vue'
 	export default {
 		components: {
 			popupBottom,
-			evaluateItem
+			evaluateItem,
+			detail
 		},
 		data() {
 			return {
@@ -280,7 +313,10 @@
 				storeList: [],
 				storeId: '',
 				evaluateTotal: 0,
-				evaluate: []
+				evaluate: [],
+				show: false,
+				isView: 0,
+				storeInfo: {}
 			};
 		},
 		computed: {
@@ -357,6 +393,35 @@
 
 		},
 		methods: {
+			getStoreInfo() {
+				storeDetail(this.storeId).then(res=>{
+					if(res.code==200) {
+						this.storeInfo =res.data || {}
+						this.$refs.getStoreInfo.getDescHeight()
+					}
+				})
+			},
+			handleShow() {
+				uni.showLoading({
+					title: '加载中',
+					icon: 'none'
+				})
+				instructionsViewable({productId: this.productId}).then(
+					res => {
+						uni.hideLoading()
+						if(res.code==200){
+							this.isView = res.data ? 1 : 0
+							this.show = this.isView == 0
+						}else{
+							uni.showToast({
+								icon:'none',
+								title: "请求失败",
+							});
+						}
+					},
+					rej => {}
+				);
+			},
 			goStoreDetail(item) {
 				uni.navigateTo({
 					url: '/pages_store/storeIndex?storeId=' + item.storeId
@@ -479,6 +544,7 @@
 							}
 							this.choseSpec(0, 0)
 							this.getCommentByUser()
+							this.getStoreInfo();
 						} else {
 							uni.showToast({
 								icon: 'none',
@@ -529,6 +595,7 @@
 			},
 			// 加入购物车
 			addCart(type) {
+				this.show=false
 				this.$isLogin().then(res => {
 					if (res) {
 						this.type = type;
@@ -642,6 +709,53 @@
 </script>
 
 <style lang="scss" scoped>
+	.hiddenbox {
+		height: 240rpx;
+		overflow: hidden;
+	}
+	.popupbox {
+		width: 80vw;
+		font-size: 30upx;
+		font-family: PingFang SC;
+		color: #333333;
+		&-title{
+			font-weight: bold;
+			padding: 30rpx;
+			text-align: center;
+		}
+		&-body {
+			padding: 24rpx 30rpx;
+			line-height: 2;
+		}
+		.confirm {
+			background-color: #2583EB;
+			border-radius: 10rpx;
+			color: #fff;
+			padding: 10rpx 24rpx;
+			margin: 0 10rpx;
+		}
+		&-footer {
+			border-top: 1rpx solid #F7F7F7;
+			padding: 30rpx;
+			color: red;
+			text-align: center;
+		}
+	}
+	.shadowbox{
+		display: flex;
+		align-items: center;
+		justify-content: center;
+		background: linear-gradient(-180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255,0.5) 50%,rgb(255, 255, 255) 80%);
+		padding-top: 240rpx;
+		margin-top: -240rpx;
+		position: relative;
+		&-btn {
+			padding: 10rpx 40rpx;
+			border-radius: 10rpx;
+			border: 1rpx solid #ccc;
+			display: inline-flex;
+		}
+	}
 	.img-item {
 		position: relative;
 		width: 44rpx;
@@ -941,25 +1055,22 @@
 
 	.effect {
 		box-sizing: border-box;
-		padding: 20upx 30upx;
+		padding: 30rpx;
 		background: #FFFFFF;
 		font-size: 28upx;
 		font-family: PingFang SC;
 		font-weight: 500;
 		color: #666666;
 		line-height: 1.8;
-		margin-top: 10upx;
-		display: flex;
-		flex-direction: row;
-		align-items: center;
-		justify-content: space-between;
-
+		margin: 24rpx 24rpx 0 24rpx;
+		border-radius: 16rpx;
+		
 		.label {
-			font-size: 28upx;
+			font-size: 30upx;
 			font-family: PingFang SC;
-			font-weight: 500;
-			color: #111111;
-			line-height: 1.8;
+			font-weight: bold;
+			color: #333333;
+			line-height: 1;
 		}
 	}
 

+ 32 - 0
pages_shopping/registerMerchant.vue

@@ -60,6 +60,9 @@
 								:maxCount="1"
 							></u-upload>
 						</u-form-item>
+						<u-form-item required labelWidth="auto" borderBottom label="营业执照编码" prop="businessCode">
+							<u-input border="none" placeholder="请输入营业执照编码" v-model="form.businessCode"  maxlength="100" />
+						</u-form-item>
 						<u-form-item required labelWidth="auto"  borderBottom label="营业执照是否长期有效" prop="isBusinessLicensePermanent">
 							<u-radio-group placement="row" v-model="form.isBusinessLicensePermanent" >
 								<u-radio activeColor="#2583EB" :customStyle="{marginRight: '8px'}" key="1" label="是" :name="1" > </u-radio>
@@ -100,6 +103,9 @@
 								:maxCount="1"
 							></u-upload>
 						</u-form-item>
+						<u-form-item required labelWidth="auto" borderBottom label="药品经营许可证编码" prop="drugCode">
+							<u-input border="none" placeholder="请输入药品经营许可证编码" v-model="form.drugCode"  maxlength="100" />
+						</u-form-item>
 						<u-form-item required labelWidth="auto"  borderBottom label="药品经营许可证编号有效期开始时间" prop="drugLicenseExpiryStart">
 							<!-- <u-input disabled disabledColor="#ffffff" border="none" placeholder="请选择药品经营许可证编号有效期" v-model="drugLicenseExpiry" />
 							<template #right> <u-icon name="arrow-right"></u-icon> </template> -->
@@ -127,6 +133,9 @@
 								:maxCount="1"
 							></u-upload>
 						</u-form-item>
+						<u-form-item required labelWidth="auto" borderBottom label="2类器械经营备案编码" prop="medicalDevice2Code">
+							<u-input border="none" placeholder="请输入2类器械经营备案编码" v-model="form.medicalDevice2Code"  maxlength="100" />
+						</u-form-item>
 						<u-form-item required labelWidth="auto"  borderBottom label="2类器械经营备案有效期开始时间" prop="medicalDevice2ExpiryStart">
 							<picker :value="form.medicalDevice2ExpiryStart" mode="date" fields="day" @change="pickerChange($event,'medicalDevice2ExpiryStart')">
 								<view class="x-f" style="justify-content: space-between;">
@@ -152,6 +161,9 @@
 								:maxCount="1"
 							></u-upload>
 						</u-form-item>
+						<u-form-item labelWidth="auto" borderBottom label="1类器械生产备案编码" prop="medicalDevice1Code">
+							<u-input border="none" placeholder="请输入1类器械生产备案编码" v-model="form.medicalDevice1Code"  maxlength="100" />
+						</u-form-item>
 						<u-form-item labelWidth="auto"  borderBottom label="1类器械生产备案有效期开始时间" prop="medicalDevice1ExpiryStart">
 							<picker :value="form.medicalDevice1ExpiryStart" mode="date" fields="day" @change="pickerChange($event,'medicalDevice1ExpiryStart')">
 								<view class="x-f" style="justify-content: space-between;">
@@ -177,6 +189,9 @@
 								:maxCount="1"
 							></u-upload>
 						</u-form-item>
+						<u-form-item labelWidth="auto" borderBottom label="3类器械生产备案编码" prop="medicalDevice3Code">
+							<u-input border="none" placeholder="请输入3类器械生产备案编码" v-model="form.medicalDevice3Code"  maxlength="100" />
+						</u-form-item>
 						<u-form-item labelWidth="auto"  borderBottom label="3类器械经营许可证有效期开始时间" prop="medicalDevice3ExpiryStart">
 							<picker :value="form.medicalDevice3ExpiryStart" mode="date" fields="day" @change="pickerChange($event,'medicalDevice3ExpiryStart')">
 								<view class="x-f" style="justify-content: space-between;">
@@ -202,6 +217,9 @@
 								:maxCount="1"
 							></u-upload>
 						</u-form-item>
+						<u-form-item labelWidth="auto" borderBottom label="食品经营许可证编码" prop="foodCode">
+							<u-input border="none" placeholder="请输入食品经营许可证编码" v-model="form.foodCode"  maxlength="100" />
+						</u-form-item>
 						<u-form-item labelWidth="auto"  borderBottom label="食品经营许可证有效期开始时间" prop="foodLicenseExpiryStart">
 							<picker :value="form.foodLicenseExpiryStart" mode="date" fields="day" @change="pickerChange($event,'foodLicenseExpiryStart')">
 								<view class="x-f" style="justify-content: space-between;">
@@ -227,6 +245,9 @@
 								:maxCount="1"
 							></u-upload>
 						</u-form-item>
+						<u-form-item required labelWidth="auto" borderBottom label="医疗机构执业许可证编码" prop="medicalCode">
+							<u-input border="none" placeholder="请输入医疗机构执业许可证编码" v-model="form.medicalCode"  maxlength="100" />
+						</u-form-item>
 						<u-form-item required labelWidth="auto"  borderBottom label="医疗机构执业许可证有效期开始时间" prop="medicalLicenseExpiryStart">
 							<picker :value="form.medicalLicenseExpiryStart" mode="date" fields="day" @change="pickerChange($event,'medicalLicenseExpiryStart')">
 								<view class="x-f" style="justify-content: space-between;">
@@ -354,6 +375,13 @@ export default {
 				account:'',
 				sendPhone:'',
 				shippingType: undefined,
+				medicalCode: '',
+				foodCode: '',
+				medicalDevice3Code: '',
+				medicalDevice2Code: '',
+				medicalDevice1Code: '',
+				drugCode: '',
+				businessCode: ''
 			},
 			rules: {
 				logoUrl: [{required: true, message: '请上传企业LOGO'}],
@@ -365,13 +393,17 @@ export default {
 				legalPersonName: [{required: true, message: '请输入法人姓名'}],
 				unifiedSocialCreditCode: [{required: true, message: '请输入统一社会信用代码'}],
 				businessLicense: [{required: true, message: '请上传营业执照'}],
+				businessCode: [{required: true, message: '请输入营业执照编码'}],
 				businessLicenseExpireStart: [],
 				businessLicenseExpireEnd: [],
 				drugLicense: [{required: true, message: '请上传药品经营许可证'}],
+				drugCode: [{required: true, message: '请输入药品经营许可证编码'}],
 				drugLicenseExpiryStart: [{required: true, message: '请选择药品经营许可证编号有效期'}],
 				medicalDevice2: [{required: true, message: '请上传2类医疗器械备案'}],
+				medicalDevice2Code: [{required: true, message: '请输入2类医疗器械备案编码'}],
 				medicalDevice2ExpiryStart: [{required: true, message: '请选择2类医疗器械备案有效期'}],
 				medicalLicense: [{required: true, message: '请上传医疗机构执业许可证'}],
+				medicalCode: [{required: true, message: '请输入医疗机构执业许可证编码'}],
 				medicalLicenseExpiryStart: [{required: true, message: '请选择医疗机构执业许可证有效期'}],
 				refundPhone: [{required: true, message: '请输入退货联系电话'}],
 				businessScope: [{required: true, message: '请输入经营范围'}],

+ 16 - 11
pages_store/index.vue

@@ -4,14 +4,18 @@
 			<view class="storebox" v-for="(item,index) in dataList" :key="index">
 				<image class="logo" :src="item.store.logoUrl" mode="aspectFill"></image>
 				<view class="storebox-r">
-					<view class="x-bc" style="flex: 1;min-height: 104rpx;">
+					<view class="x-bc" style="flex: 1;">
 						<view class="" @click="goStoreDetail">
-							<view class="storename ellipsis">{{item.store.storeName || ''}}</view>
+							<view class="storename">{{item.store.storeName || ''}}</view>
 							<!-- <view class="storedesc">24小时营业  销售{{item.store.salesCount|| 0}}</view> -->
 						</view>
 						<view class="storebox-btn" @click="navTo(item)">进店</u-icon></view>
 					</view>
-					<scroll-view :scroll-x="true" class="scrollView">
+					<view class="storebox-desc">
+						<view>2类器械生产备案:{{item.medicalDevice2Code|| '--'}}</view>
+						<view>药品经营许可证:{{item.drugCode|| '--'}}</view>
+					</view>
+					<!-- <scroll-view :scroll-x="true" class="scrollView">
 						<view class="scrollItem" v-for="(it,i) in item.recommendProductList" :key="i" @click="showDetail(it)">
 							<image :src="it.image" mode="aspectFill"></image>
 							<view style="padding: 8rpx;">
@@ -23,7 +27,7 @@
 								</view>
 							</view>
 						</view>
-					</scroll-view>
+					</scroll-view> -->
 				</view>
 			</view>
 		</mescroll-body>
@@ -40,10 +44,7 @@
 				storeId:'',
 				list:[],
 				storeInfo: {},
-				item: {
-					productName:'口服液 口服液口服液口服液口服液12',
-					price: 12.3
-				},
+				item: {},
 				mescroll:null,
 				downOption: {   //下拉刷新
 				 	use:true,
@@ -180,10 +181,14 @@
 		display: flex;
 		align-items: flex-start;
 		margin-bottom: 24rpx;
+		&-desc {
+			font-size: 28rpx;
+			color: #999;
+		}
 		.logo {
 			flex-shrink: 0;
-			width: 104rpx;
-			height: 104rpx;
+			width: 140rpx;
+			height: 140rpx;
 			background: #fff;
 			border-radius: 16rpx 16rpx 16rpx 16rpx;
 			border: 1rpx solid #eee;
@@ -191,7 +196,7 @@
 			box-sizing: border-box;
 		}
 		.storename {
-			font-weight: 500;
+			font-weight: bold;
 			font-size: 32rpx;
 		}
 		.storedesc {

+ 1 - 1
pages_store/storeIndex.vue

@@ -92,7 +92,7 @@
 	import medicineVerticalItem from "@/components/medicineVerticalItem";
 	import medicineItem from "@/components/medicineItem";
 	import evaluateItem from "@/components/evaluateItem";
-	import detail from './components/storeDetail.vue'
+	import detail from '@/components/storeDetail.vue'
 	import {selectCommentByUser} from '@/api/myStoreOrder.js'
 	// import {getAdv} from '@/api/adv'
 	export default {

+ 49 - 41
pages_user/registerDoctor.vue

@@ -58,7 +58,7 @@
 							 
 						</u-form-item>
 						<template v-if="form.doctorType==1">
-							<u-form-item labelWidth="180rpx" prop="hospitalId" @click="hospitalShow=true"  borderBottom label="就职医院">
+							<!-- <u-form-item labelWidth="180rpx" prop="hospitalId" @click="hospitalShow=true"  borderBottom label="就职医院">
 								<u-input
 									v-model="form.hospitalName"
 									disabled
@@ -71,7 +71,7 @@
 										name="arrow-right"
 									></u-icon>
 								</template>
-							</u-form-item>
+							</u-form-item> -->
 							<u-form-item labelWidth="180rpx" prop="deptId" @click="deptShow=true"  borderBottom label="所属科室">
 								<u-input
 									v-model="form.deptName"
@@ -101,28 +101,28 @@
 								></u-icon>
 							</template>
 						</u-form-item>
-						<template v-if="form.doctorType==2">
-							<u-form-item labelWidth="180rpx" prop="position" @click="storeShow=true"  borderBottom label="药店">
-								<u-input
-									v-model="form.storeName"
-									disabled
-									disabledColor="#ffffff"
-									placeholder="请选择药店"
-									border="none"
-								></u-input>
-								<template #right>
-									<u-icon
-										name="arrow-right"
-									></u-icon>
-								</template>
+						<u-form-item labelWidth="180rpx" prop="position" @click="storeShow=true"  borderBottom label="药店">
+							<u-input
+								v-model="form.storeName"
+								disabled
+								disabledColor="#ffffff"
+								placeholder="请选择药店"
+								border="none"
+							></u-input>
+							<template #right>
+								<u-icon
+									name="arrow-right"
+								></u-icon>
+							</template>
+						</u-form-item>
+						<template v-if="form.doctorType==1">
+							<u-form-item labelWidth="180rpx" borderBottom label="擅长领域" prop="">
+								<u--textarea v-model="form.speciality" placeholder="请输入擅长领域" count ></u--textarea>
+							</u-form-item>
+							<u-form-item labelWidth="180rpx" borderBottom label="个人简介" prop="introduction">
+								<u--textarea v-model="form.introduction" placeholder="请输入个人简介" count ></u--textarea>
 							</u-form-item>
 						</template>
-						<u-form-item labelWidth="180rpx" borderBottom label="擅长领域" prop="speciality">
-							<u--textarea v-model="form.speciality" placeholder="请输入擅长领域" count ></u--textarea>
-						</u-form-item>
-						<u-form-item labelWidth="180rpx" borderBottom label="个人简介" prop="introduction">
-							<u--textarea v-model="form.introduction" placeholder="请输入个人简介" count ></u--textarea>
-						</u-form-item>
 						<u-form-item labelWidth="180rpx" borderBottom :label="`${typeName}照片`" prop="avatar">
 							<u-upload
 								:fileList="fileList1"
@@ -145,18 +145,20 @@
 							>
 							</u-upload>
 						</u-form-item>
-						<u-form-item labelWidth="180rpx"  borderBottom label="资质证编号" prop="certificateCode">
-							<u-input border="none" placeholder="请输入资质证编号" v-model="form.certificateCode" />
-						</u-form-item>
-						<u-form-item labelWidth="180rpx" borderBottom label="资质证书" prop="certificateImages">
-							<u-upload
-								:fileList="fileList3"
-								@afterRead="afterRead"
-								@delete="deletePic"
-								name="3"
-								:maxCount="3"
-							></u-upload>
-						</u-form-item>
+						<template v-if="form.doctorType==1">
+							<u-form-item labelWidth="180rpx"  borderBottom label="资质证编号" prop="certificateCode">
+								<u-input border="none" placeholder="请输入资质证编号" v-model="form.certificateCode" />
+							</u-form-item>
+							<u-form-item labelWidth="180rpx" borderBottom label="资质证书" prop="certificateImages">
+								<u-upload
+									:fileList="fileList3"
+									@afterRead="afterRead"
+									@delete="deletePic"
+									name="3"
+									:maxCount="3"
+								></u-upload>
+							</u-form-item>
+						</template>
 						<u-form-item labelWidth="180rpx"  borderBottom label="执业证编号" prop="practiseCode">
 							<u-input border="none" placeholder="请输入执业证编号" v-model="form.practiseCode" />
 						</u-form-item>
@@ -287,10 +289,11 @@ export default {
 						trigger: ['change','blur'],
 					}
 				],
-				speciality : [
+				practiseCode : [
 					{ 
 						required: true, 
-						message: '请输入擅长领域',
+						message: '请输入执业证编号',
+						trigger: ['change','blur'],
 					}
 				]
 			},
@@ -545,7 +548,6 @@ export default {
 						title:"请上传身份证照片(正反面)",
 					});
 					return
-					return;
 				}
 				this.form.idCardFrontUrl=images[0];
 				this.form.idCardBackUrl=images[1];
@@ -563,6 +565,12 @@ export default {
 					images.push(item.url)
 				});
 				this.form.practiseImages=images.toString();
+			} else {
+				uni.showToast({
+					icon:'none',
+					title:"请上传职业证书",
+				});
+				return
 			}
 			if(this.checked!=1){
 				uni.showToast({
@@ -587,19 +595,19 @@ export default {
  			this.$refs.uForm.validate().then(res => {
 				if(that.form.doctorType == 1&& !that.form.deptId) {
 					uni.showToast({
-						title: '请选择部门',
+						title: '请选择科室',
 						icon: 'none'
 					})
 					return
 				}
-				if(that.form.doctorType == 1&&!that.form.hospitalId) {
+				if(that.form.doctorType == 1&&!that.form.speciality) {
 					uni.showToast({
-						title: '请选择医院',
+						title: '请输入擅长领域',
 						icon: 'none'
 					})
 					return
 				}
-				if(that.form.doctorType == 2&&!that.form.storeId) {
+				if(!that.form.storeId) {
 					uni.showToast({
 						title: '请选择药店',
 						icon: 'none'

+ 2 - 2
pages_user/shopping/paymentOrderRemain.vue

@@ -53,10 +53,10 @@
 		</view>
 		<view class="btn-box">
 			<view class="btn" @click="payOrder()">去支付</view>
-			<view class="other-btn" >
+			<!-- <view class="other-btn" >
 				亲友代付
 				<button  class="share" data-name="shareBtn" open-type="share">分享</button>
-			</view>
+			</view> -->
 		</view>
 		 
 	</view>

+ 1 - 1
pages_user/shopping/storeOrder.vue

@@ -94,7 +94,7 @@
 							<view class="btn-box">
 								<view v-if="item.status == 0" class="btn cancel" @click="cancel(item)">取消订单</view>
 								<view v-if="(item.status == 0&&item.isPrescribe!=1)||(item.status == 0&&item.isPrescribe==1&&item.prescribeId&&item.prescriptionAuditStatus == 2)" class="btn pay" @click="pay(item)">支付</view>
-								<view class="btn pay"  v-if="(item.status==0||item.status==1)&&item.isPrescribe==1&&!item.prescribeId&&item.prescriptionAuditStatus!=3 " @click="addPrescribe(item)">开处方</view>
+								<view class="btn pay"  v-if="(item.status==0||item.status==1)&&item.isPrescribe==1&&!item.prescribeId&&item.prescriptionAuditStatus!=3" @click="addPrescribe(item)">开处方</view>
 								<view v-if="item.isAfterSales==1" class="btn cancel" @click="refund(item)">申请售后</view>
 								<view v-if="item.status >=2 &&item.deliveryId!=null" class="btn pay" @click.stop="showDelivery(item)">查看物流</view>
 								<view v-if="item.status == 3" class="btn pay" @click.stop="showEvaluate('/pages_shopping/evaluateDetail?orderId='+item.id)">去评价</view>

+ 4 - 2
pages_user/shopping/storeOrderDetail.vue

@@ -243,9 +243,9 @@
 		<view   class="btn-box">
 			<!-- <view class="btn cancel">联系客服</view> -->
 			<view class="btn cancel" v-if="order.status==0" @click="cancel()">取消订单</view>
-			<view class="btn pay" v-if="(order.status == 0&&order.isPrescribe!=1)||(order.status == 0&&order.isPrescribe==1&&order.prescribeId&&order.prescriptionAuditStatus==2)" @click="pay()">立即付款</view>
+			<view class="btn pay" v-if="(order.status == 0&&order.isPrescribe!=1)||(order.status == 0&&order.isPrescribe==1&&order.prescribeId&&prescriptionAuditStatus==2)" @click="pay()">立即付款</view>
 			<view class="btn cancel"  v-if="order.isPrescribe==1&&prescribe!=null"  @click="goPrescribe()">查看处方</view>
-			<view class="btn pay"  v-if="(order.status==0||order.status==1)&&order.isPrescribe==1&&prescribe==null&&order.prescriptionAuditStatus!=3"  @click="addPrescribe()">开处方</view>
+			<view class="btn pay"  v-if="(order.status==0||order.status==1)&&order.isPrescribe==1&&prescribe==null&&prescriptionAuditStatus!=3"  @click="addPrescribe()">开处方</view>
 			<view class="btn cancel"  v-if="isAfterSales==1"  @click="refund()">申请售后</view>
 			<view class="btn pay" v-if="order.status>=2&&order.deliveryId!=null" @click="express()">查看物流</view>
 			<view class="btn pay" v-if="order.status==2&&order.payType!=1&&order.isPayRemain==0&&order.deliverySn=='SF'" @click="payRemain()">支付尾款</view>
@@ -269,6 +269,7 @@
 				prescribe:null,
 				// 状态栏的高度
 				statusBarHeight: uni.getStorageSync('menuInfo').statusBarHeight,
+				prescriptionAuditStatus: null,
 		 
 			};
 		},
@@ -327,6 +328,7 @@
 				var data={orderId:this.orderId};
 				getMyStoreOrderById(data).then(res => {
 					if(res.code==200){
+						this.prescriptionAuditStatus = res.prescriptionAuditStatus
 						 this.order=res.order;
 						 this.items=res.items;
 						 this.payLimitTime=res.payLimitTime;