Ver código fonte

紫亚兰专题

zhengjinyi 10 meses atrás
pai
commit
616e824198

+ 7 - 7
common/css/iconfont.scss

@@ -1,8 +1,8 @@
 @font-face {
   font-family: "iconfont"; /* Project id 1519039 */
-  src: url('//at.alicdn.com/t/c/font_1519039_r79lcbz9qh.woff2?t=1722564732002') format('woff2'),
-       url('//at.alicdn.com/t/c/font_1519039_r79lcbz9qh.woff?t=1722564732002') format('woff'),
-       url('//at.alicdn.com/t/c/font_1519039_r79lcbz9qh.ttf?t=1722564732002') format('truetype');
+  src: url('//at.alicdn.com/t/c/font_1519039_nmc66jppbr.woff2?t=1724835382136') format('woff2'),
+       url('//at.alicdn.com/t/c/font_1519039_nmc66jppbr.woff?t=1724835382136') format('woff'),
+       url('//at.alicdn.com/t/c/font_1519039_nmc66jppbr.ttf?t=1724835382136') format('truetype');
 }
 
 .iconfont {
@@ -13,6 +13,10 @@
   -moz-osx-font-smoothing: grayscale;
 }
 
+.icon-shouye1:before {
+  content: "\e6d7";
+}
+
 .icon-iconfontzhizuobiaozhun023110:before {
   content: "\e670";
 }
@@ -29,10 +33,6 @@
   content: "\e61e";
 }
 
-.icon-xiaoxi2:before {
-  content: "\e61f";
-}
-
 .icon-xiaoxijilu-1:before {
   content: "\e75b";
 }

+ 115 - 0
components/cm-custom/custom.vue

@@ -0,0 +1,115 @@
+<template name="headerNavbar">
+    <!-- 自定义导航栏 -->
+    <view class='navbar-wrap'
+        :style="{height:CustomBar+'px',paddingTop:StatusBar+'px',background:navbarData.bgColor ? navbarData.bgColor : ''}">
+        <view class="navbar-text"
+            :style="{color:navbarData.textColor ? navbarData.textColor:'',lineHeight:(CustomBar - StatusBar)+'px;',fontSize:fontSizeSetting+'px;',paddingLeft:navbarData.textLeft ? '' : (capsule.height+10)+'px'}"
+            :class="platformClass">
+            {{navbarData.title ? navbarData.title : " "}}
+        </view>
+        <view class="navbar-icon" v-if="navbarData.showCapsule == 1 ? true : false"
+            :style="{top:capsule.top +'px;',left:((screenWidth-capsule.right)+9)+'px;',height:capsule.height+'px;',lineHeight:capsule.height+'px;'}">
+            <text v-if="navbarData.haveBack" @tap="BackPage" class="iconfont icon-fanhui"></text>
+            <text v-if="navbarData.haveHome" @tap="_goHome" class="iconfont icon-shouye1"></text>
+        </view>
+    </view>
+</template>
+
+<script>
+    var self;
+    export default {
+        name: 'headerNavbar',
+        props: {
+            navbarData: { // 由父页面传递的数据
+                type: Object
+            }
+        },
+        data() {
+            return {
+                CustomBar: this.CustomBar, // 顶部导航栏高度
+                StatusBar: this.StatusBar,
+                fontSizeSetting: this.fontSizeSetting,
+                screenWidth: this.screenWidth,
+                capsule: this.capsule,
+                platformClass: this.platformClass,
+            }
+        },
+        created() {
+            if (getCurrentPages().length === 1) { // 当只有一个页面时
+                this.navbarData.haveBack = false;
+            } else {
+                this.navbarData.haveBack = true;
+            }
+        },
+        onLoad() {
+
+        },
+        methods: {
+            BackPage: function() {
+                this.$emit('navigateBack')
+            },
+            _goSearchPath: function() {
+                this.$emit('goSearchPath')
+            },
+            _goHome: function() {
+                uni.switchTab({
+                    url: '/pages/tabBar/home/index'
+                })
+            }
+        },
+        onShow() {
+
+        }
+    }
+</script>
+
+<style lang="scss">
+    .navbar-wrap {
+        position: fixed;
+        width: 100%;
+        top: 0;
+        z-index: 100000;
+        box-sizing: border-box;
+    }
+
+    .navbar-text {
+        font-size: 30rpx;
+        color: #000000;
+        font-weight: 500;
+    }
+
+    .navbar-text.center {
+        text-align: center;
+    }
+
+    .navbar-text.left {
+        text-align: left;
+        padding-left: 45px;
+    }
+
+    .navbar-icon {
+        position: fixed;
+        display: flex;
+        box-sizing: border-box;
+    }
+
+    .navbar-icon .iconfont {
+        display: inline-block;
+        overflow: hidden;
+        font-size: 44rpx;
+        padding-right: 40rpx;
+        margin-top: 1px;
+        color: #FFFFFF;
+    }
+
+    .navbar-icon view {
+        height: 18px;
+        border-left: 0.5px solid rgba(0, 0, 0, 0.3);
+        margin-top: 6px;
+    }
+
+    .navbar-loading {
+        background: #fff;
+        text-align: center;
+    }
+</style>

+ 2 - 0
main.js

@@ -13,6 +13,7 @@ import Uma from './plugins/uma'
 
 // 公共组件 全局组件
 import { msg, modal, prePage, boundingClientRect } from './utils/util'
+import custom from './components/cm-custom/custom.vue'
 import cuCustom from './components/cm-custom/cu-custom.vue'
 import auCustom from './components/cm-custom/au-custom.vue'
 import cmCustom from './components/cm-custom/cm-custom.vue'
@@ -20,6 +21,7 @@ import scrollTop from '@/components/cm-module/scrollTop/scrollTop.vue'
 import CityPicker from '@/components/mpvue-citypicker/mpvueCityPicker.vue' //全局注册地址组件
 
 
+Vue.component('custom', custom)
 Vue.component('cu-custom', cuCustom)
 Vue.component('au-custom', auCustom)
 Vue.component('cm-custom', cmCustom)

+ 15 - 1
pages.json

@@ -1142,7 +1142,21 @@
 				{
 					"path": "activity/activity-entry",
 					"style": {
-						"navigationBarTitleText": "紫亚兰签到",
+						"navigationBarTitleText": "紫亚兰门票绑定",
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "activity/activity-sign",
+					"style": {
+						"navigationBarTitleText": "展台打卡",
+						"navigationStyle": "custom"
+					}
+				},
+				{
+					"path": "activity/activity-entry-list",
+					"style": {
+						"navigationBarTitleText": "所有展台",
 						"navigationStyle": "custom"
 					}
 				},

+ 0 - 79
pages/goods/components/cm-attributes.vue

@@ -1,79 +0,0 @@
-<template name="cm-attributes">
-	<!-- 商品详情价格判断 -->
-	<view class="cm-attributes">
-		<view class="wrap-label"  v-if="goodsData.isNoneDisabled">
-			<view class="isLower">此商品已{{goodsData.disabledText}},请浏览以下推荐商品~</view>
-		</view>
-		<view class="wrap-info">
-			<view class="info-viewT" :class="goodsData.isNoneDisabled ? 'none' : ''">
-				<view class="info-viewL tui-skeleton-fillet">起订量:<text>{{product.minBuyNumber}}</text></view>
-				<view class="info-viewR tui-skeleton-fillet">品牌:<text>{{product.brandName == null? '其他' : product.brandName}}</text></view>
-			</view>
-			<view class="info-viewT" :class="goodsData.isNoneDisabled ? 'none' : ''">
-				<view class="info-viewL tui-skeleton-fillet">包装规格:<text>{{product.unit}}</text></view>
-				<view class="info-viewR tui-skeleton-fillet">商品编码:<text>{{product.productCode}}</text></view>		
-			</view>
-			<view class="info-viewT" :class="goodsData.isNoneDisabled ? 'none' : ''" v-if="product.productCode!=''&&product.productCode!=null">
-				<view class="info-viewL tui-skeleton-fillet">库存:<text>{{product.stock}}</text></view>
-				<view class="info-viewR tui-skeleton-fillet"></view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default{
-		name:'cm-attributes',
-		props:{
-			product:{
-				type:Object,
-				default: {}
-			},
-			goodsData:{
-				type:Object,
-				default: {}
-			},
-		},
-		data() {
-			return{
-				
-			}
-		},
-		created() {
-			
-		},
-		methods:{
-		},
-		
-	}
-</script>
-
-<style lang="scss">	
-	.bmCode{
-	float: left;
-	width: 702rpx;
-	padding: 20rpx 24rpx 0 24rpx;
-	border-bottom: 1px solid #F8F8F8	
-	}
-</style>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

+ 0 - 133
pages/goods/components/cm-parameter.vue

@@ -1,133 +0,0 @@
-<template name="cm-parameter">
-	<!-- 相关参数 -->
-	<tui-bottom-popup :radius="true" :show="popupShow" @close="hidePopup()">
-		<view class="tui-popup-box clearfix">
-			<view class="title">商品参数</view>
-			<view class="content">
-				<view class="content-tr">
-					<view class="content-td">品牌</view>
-					<view class="content-th">恩盛</view>
-				</view>
-				<view class="content-tr">
-					<view class="content-td">起订量</view>
-					<view class="content-th">1</view>
-				</view>
-				<view class="content-tr">
-					<view class="content-td">库存</view> 
-					<view class="content-th">9999</view>
-				</view>
-				<view class="content-tr">
-					<view class="content-td">包装规格</view>
-					<view class="content-th">台</view>
-				</view>
-				<view class="content-tr" v-for="(item, index) in product.parametersList" :key="index">
-					<view class="content-td">{{item.paramsName}}</view>
-					<view class="content-th">{{item.paramsContent}}</view>
-				</view>
-			</view>
-			<view class="tui-right-flex tui-popup-btn" :style="{ paddingBottom :isIphoneX ? '68rpx' : '0rpx' }">
-				<view class="tui-flex-1">
-					<view class="tui-button" @click="hidePopup()">收起</view>
-				</view>
-			</view>
-		</view>	
-	</tui-bottom-popup>		
-</template>
-
-<script>
-	export default{
-		name:'cm-parameter',
-		props:{
-			product:{
-				type:Object,
-			},
-			popupShow:{
-				type:Boolean,
-				default:false
-			}
-		},
-		data() {
-			return{
-				data:[]
-			}
-		},
-		created() {
-			
-		},
-		methods:{
-			hidePopup(){
-				this.$parent.popupShow = false
-			},
-		},
-		
-	}
-</script>
-
-<style lang="scss">
-	.cm-parameter{
-		width: 702rpx;
-		height: auto;
-		background: #FFF;
-		margin: 0 auto;
-		padding: 24rpx 0;
-		.cm-parameter-main{
-			display: flex;
-			flex: 1;
-			flex-direction: column;
-			background-color: #FFFFFF;
-			border: 1px solid #EFEFEF;
-			border-radius: 4rpx;
-			.item-tabody{
-				width: 100%;
-				height: auto;
-				border-bottom: 1px solid #EFEFEF;
-				font-size: $font-size-24;
-				display: flex;
-				flex-wrap: wrap;
-				.item-td{
-					width: 238rpx;
-					float: left;
-					border-right: 1px solid #EFEFEF;
-					color: #999999;
-					padding:20rpx;
-					display: flex;
-					flex: 3;
-					flex-direction: column;
-				}
-				.item-tr{
-					width: 462rpx;
-					float: left;
-					color: $text-color;
-					padding:20rpx;
-					display: flex;
-					flex: 7;
-					flex-direction: column;
-				}
-				&:last-child{
-					border-bottom: none;
-				}
-			}
-		}
-	}
-</style>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-

+ 0 - 4
pages/goods/product.vue

@@ -607,9 +607,7 @@
 import { mapState, mapMutations } from 'vuex'
 import customP from './components/cm-header.vue' //自定义导航
 import cmPrice from './components/cm-price.vue' //价格显示
-import cmAttributes from './components/cm-attributes.vue' //规格信息
 import cmRecommend from './components/recommend' //相关推荐
-import cmParameter from './components/cm-parameter' //相关参数
 import cmService from './components/cm-service' //服务项目
 import cmProductDoc from './components/cm-product-doc.vue'
 import cmProductModal from './components/cm-product-modal.vue'
@@ -635,8 +633,6 @@ export default {
 		customP,
 		cmRecommend,
 		cmPrice,
-		cmAttributes,
-		cmParameter,
 		cmService,
 		couponTabs,
 		cmProductDoc,

+ 210 - 0
pages/h5/activity/activity-entry-list.vue

@@ -0,0 +1,210 @@
+<template>
+	<view class="container cashier">
+        <tui-skeleton v-if="skeletonShow" backgroundColor="#fafafa" borderRadius="10rpx" :isLoading="true" :loadingType="5" />
+        <template v-else>
+            <custom :navbar-data='nvabarData' />
+            <scroll-view scroll-y="true" class="container-banner" :style="{ paddingTop:CustomBar + 180 +'px',paddingBottom: isIphoneX ? '68rpx' : '34rpx'}">
+                <view class="list" v-for="(shop,index) in list" :key="index">
+                    <view class="list-logo">
+                        <image class="list-logo-img" :src="shop.shopLogo" mode=""></image>
+                    </view>
+                    <view class="list-name">
+                        <text class="list-name-text">{{ shop.shopName }}</text>
+                    </view>
+<!--                    <view class="list-area">
+                        {{ shop.area }}
+                    </view> -->
+                    <view class="list-state acve" v-if="shop.shopSign === 1">已打卡</view>
+                    <view class="list-state none" v-else>未打卡</view>
+                </view>
+            </scroll-view>
+        </template>
+	</view>
+</template>
+
+<script>
+	export default{
+		data(){
+			return{
+				nvabarData: {		//顶部自定义导航
+					haveBack:false,
+					haveHome:true,
+					showCapsule:1, // 是否显示左上角图标  1表示显示  0表示不显示,
+					showSearch: 0,
+					title: '',  // 导航栏 中间的标题
+					textLeft:this.$store.state.isIphone
+				},
+				isIphoneX:this.$store.state.isIphoneX,
+				CustomBar:this.CustomBar,// 顶部导航栏高度
+				params:{
+                    userId:'',
+                },
+                list:[
+                    {
+                        shopName:'华熙生物',
+                        logo:'https://img.caimei365.com/group1/M00/00/00/rB-lF2AJICKAIcmFAABHg2JMCqg567.jpg',
+                        area:'展区A',
+                        state:0,
+                    },
+                    {
+                        shopName:'华熙生物华熙生物华熙生物',
+                        logo:'https://img.caimei365.com/group1/M00/00/00/rB-lF2AJICKAIcmFAABHg2JMCqg567.jpg',
+                        area:'展区A',
+                        state:1,
+                    },
+                    {
+                        shopName:'华熙生物',
+                        logo:'https://img.caimei365.com/group1/M00/00/00/rB-lF2AJICKAIcmFAABHg2JMCqg567.jpg',
+                        area:'展区A',
+                        state:0,
+                    },
+                    {
+                        shopName:'华熙生物华熙生物华熙生物',
+                        logo:'https://img.caimei365.com/group1/M00/00/00/rB-lF2AJICKAIcmFAABHg2JMCqg567.jpg',
+                        area:'展区A',
+                        state:1,
+                    },
+                    {
+                        shopName:'华熙生物',
+                        logo:'https://img.caimei365.com/group1/M00/00/00/rB-lF2AJICKAIcmFAABHg2JMCqg567.jpg',
+                        area:'展区A',
+                        state:1,
+                    },
+                    {
+                        shopName:'华熙生物',
+                        logo:'https://img.caimei365.com/group1/M00/00/00/rB-lF2AJICKAIcmFAABHg2JMCqg567.jpg',
+                        area:'展区A',
+                        state:1,
+                    },
+                    {
+                        shopName:'华熙生物',
+                        logo:'https://img.caimei365.com/group1/M00/00/00/rB-lF2AJICKAIcmFAABHg2JMCqg567.jpg',
+                        area:'展区A',
+                        state:0,
+                    },
+                    {
+                        shopName:'华熙生物',
+                        logo:'https://img.caimei365.com/group1/M00/00/00/rB-lF2AJICKAIcmFAABHg2JMCqg567.jpg',
+                        area:'展区A',
+                        state:0,
+                    },
+                    {
+                        shopName:'华熙生物',
+                        logo:'https://img.caimei365.com/group1/M00/00/00/rB-lF2AJICKAIcmFAABHg2JMCqg567.jpg',
+                        area:'展区A',
+                        state:0,
+                    }
+                ]
+			}
+		},
+		onLoad() {
+            this.initData()
+		},
+		methods:{
+            // 初始化
+            async initData() {
+            	const userInfo = await this.$api.getStorage()
+                this.params.userId = userInfo.userId
+                this.userTicketSignList(this.params)
+            },
+            // 获取展台打卡列表
+            async userTicketSignList(params){
+            	try{
+            		const res = await this.UserService.userTicketSignList(params)
+                    this.list = res.data
+                    this.skeletonShow = false
+            	}catch(error){
+            		console.log('获取展台列表信息异常~')
+            	}
+            }
+		},
+		onShow() {
+			
+		}
+	}
+</script>
+
+<style lang="scss">
+	page{
+        background-color: #3d68eb;
+		height: auto !important;
+	}
+    .container-banner{
+        width: 100%;
+        height: auto;
+        background: url(https://admin.caimei365.com/userfiles/1/images/photo/2024/08/ziluo_bg.jpg) no-repeat;
+        background-size: contain;
+        box-sizing: border-box;
+        padding: 0 24rpx;
+        overflow: hidden;
+        .list{
+            width: 100%;
+            height: 200rpx;
+            background-color: #FFFFFF;
+            border-radius: 24rpx;
+            margin-bottom: 20rpx;
+            box-sizing: border-box;
+            padding: 20rpx;
+            display: flex;
+            align-items: center;
+            position: relative;
+            .list-logo{
+                display: flex;
+                width: 160rpx;
+                height: 160rpx;
+                border-radius: 50%;
+                background-color: #F7F7F7;
+                overflow: hidden;
+                border: 1px solid #e1e1e1;
+                .list-logo-img{
+                    width: 160rpx;
+                    height: 160rpx;
+                    display: block;
+                    border-radius: 50%;
+                }
+            }
+            .list-name{
+                display: flex;
+                flex: 1;
+                justify-content: center;
+                font-size: $font-size-26;
+                .list-name-text{
+                    display: inline-block;
+                    width: 180rpx;
+                    -o-text-overflow: ellipsis;
+                    text-overflow: ellipsis;
+                    display: -webkit-box;
+                    word-break: break-all;
+                    -webkit-box-orient: vertical;
+                    -webkit-line-clamp: 1;
+                    overflow: hidden;
+                }
+            }
+            .list-area{
+                display: flex;
+                flex: 1;
+                justify-content: center;
+                font-size: $font-size-26;
+            }
+            .list-state{
+                position: absolute;
+                height: 44rpx;
+                border-radius: 22rpx;
+                right: 20rpx;
+                top: 20rpx;
+                line-height: 44rpx;
+                padding: 0 10rpx;
+                font-size: $font-size-22;
+                &.none{
+                    background-color: #999999;
+                    color: #FFFFFF;
+                }
+                &.acve{
+                    background-color: #e10078;
+                    color: #FFFFFF;
+                }
+            }
+        }
+    }
+	
+</style>

+ 153 - 75
pages/h5/activity/activity-entry.vue

@@ -1,108 +1,176 @@
 <template>
 	<view class="container cashier">
-        <view class="container-banner" :style="{paddingTop:CustomBar + 230 +'px'}">
+        <custom :navbar-data='nvabarData' />
+        <view class="container-banner" :style="{ paddingTop:CustomBar + 180 +'px' }">
+            <view class="login-input">
+            	<input type="text" 
+            		   v-model="params.ticket"
+            		   maxlength="20" 
+                       disabled="true"
+            		   class="input" 
+            	/>
+            </view>
             <view class="login-input">
             	<input type="text" 
             		   v-model="params.name"
+            		   maxlength="10" 
+            		   class="input" 
+            		   placeholder="您的姓名"
+            	/>
+            </view>
+            <view class="login-input">
+            	<input type="text" 
+            		   v-model="params.idCard"
             		   maxlength="20" 
             		   class="input" 
-            		   placeholder="请填写您的姓名"
+            		   placeholder="证件号码(身份证/港澳台通行证/护照)"
             	/>
             </view>
             <view class="login-input">
-            	<input type="number" 
-            		   v-model="params.shareCode"
+            	<input type="text" 
+            		   v-model="params.mobile"
             		   maxlength="11" 
             		   class="input" 
-            		   placeholder="请填写您的手机号"
+            		   placeholder="您的联系电话"
             	/>
             </view>
-            <view class="login-btn"  @click="handleEntry">大会签到</view>
-        </view>
+            <view class="login-input">
+            	<input type="text" 
+            		   v-model="params.work"
+            		   maxlength="15" 
+            		   class="input" 
+            		   placeholder="您的职业"
+            	/>
+            </view>
+            <view class="login-btn"  @click="handleEntry">绑定采美账号</view>
+            <view class="login-text">
+                说明:门票绑定的证件号码是作为进入大会会场的凭证。
+            </view>
+        </view>
+        <!-- 提示弹窗 -->
+        <tui-modal
+        	:show="modal"
+        	@click="handleClick"
+        	:content="contentModalText"
+        	:button="modalButton"
+        	color="#333"
+        	:size="32"
+        	shape="circle"
+        	:maskClosable="false"
+        />
 	</view>
 </template>
 
-<script>
+<script>
+    import { mapState, mapMutations } from 'vuex'
+    import authorize from '@/common/config/authorize.js'
+    import wxLogin from '@/common/config/wxLogin.js'
 	export default{
 		data(){
-			return{
-				shopOrderId:0,
-				payType:'',
-				payStatus:true,
-				payBtnStatus:false,
-				amuntMoney:0,
-				successText:'订单支付失败',
+			return{
+                nvabarData: {		//顶部自定义导航
+                	haveBack:false,
+                	haveHome:true,
+                	showCapsule:1, // 是否显示左上角图标  1表示显示  0表示不显示,
+                	showSearch: 0,
+                	title: '',  // 导航栏 中间的标题
+                	textLeft:this.$store.state.isIphone
+                },
 				isIphoneX:this.$store.state.isIphoneX,
 				CustomBar:this.CustomBar,// 顶部导航栏高度
 				params:{
                     name:'',
-                    shareCode:'' 
-                }
+                    idCard:'',
+                    ticket:'',
+                    mobile:'',
+                    work:'',
+                    userId:''
+                },
+                modal: false,
+                contentModalText: '', //操作文字提示语句
+                modalButton: [
+                    {
+                    	text: '取消',
+                    	type: 'gray',
+                    	plain: true //是否空心
+                    },
+                	{
+                		text: '确认绑定',
+                		customStyle: {
+                			color: '#fff',
+                			bgColor: '#e10078'
+                		},
+                		plain: false
+                	}
+                ]
 			}
 		},
-		filters:{
-			NumFormat(value) {
-			    //处理金额
-			    if (value) {
-			        return Number(value).toFixed(2)
-			    } else {
-			        return '0.00'
-			    }
-			}
-		},
-		onLoad(option) {
-			this.initData(option)
-		},
-		methods:{
-			initOrderInfo() {
-			    this.orderInfo = uni.getStorageSync('orderInfo')
-			    uni.removeStorageSync('orderInfo')
-			},
+		onLoad(option) {
+            wxLogin.wxLoginAuthorize()
+            this.params.ticket = option.ticket
+            setTimeout(()=>{
+                this.initData(option)
+            },2000)
+		},
+        computed: {
+            ...mapState(['hasLogin', 'userInfo', ])
+        },
+		methods:{
+            // 初始化
+            async initData(option) {
+            	const userInfo = await this.$api.getStorage()
+                this.params.userId = userInfo.userId
+                this.contentModalText = `您的采美机构账号为【${userInfo.name}】,确认绑定吗?`
+            },
+            //确认操作
+            handleClick(e) {
+            	if (e.index == 1) {
+            		this.userTicketBind(this.params)
+            	}
+            	this.modal = false
+            },
+            //点击绑定
             handleEntry(){
+                if(!this.hasLogin){
+                    this.$util.msg('您还未登录采美机构账号,请先登录!', 2000)
+                    setTimeout(() => {
+                        const pages = getCurrentPages()
+                        const page = pages[pages.length - 1]
+                        uni.setStorageSync('LOGIN_REDIRECT_URL', page.$page.fullPath)
+                        this.$api.navigateTo('/pages/login/login')
+                    }, 2000)
+                    return
+                }
                 if(!this.params.name){
-                	this.$util.msg('请填写您的姓名',2000) 
-                	return
+                    this.$util.msg('请输入您的姓名~', 2000)
+                    return
                 }
-                if(!this.params.shareCode){
-                	this.$util.msg('请填写您的联系方式',2000) 
-                	return
+                if(!this.params.idCard){
+                    this.$util.msg('请输入您的证件号码~', 2000)
+                    return
                 }
-            },
-			initData(option){
-				const data = JSON.parse(option.data)
-				this.orderId = data.data.orderId
-				this.shopOrderId = data.data.shopOrderId
-				this.payType = data.data.type
-				this.amuntMoney = data.data.payAmount
-				if(this.payType == 'success'){
-					this.payStatus = true
-					this.successText = '订单支付成功'
-				}else{
-					this.payStatus = false
-					this.successText = '订单支付失败'
-				}
-				this.PayOrderCheckoutCounter(this.shopOrderId)
-			},
-			async PayOrderCheckoutCounter(shopOrderId){//初始化支付信息
+                if(!this.params.mobile){
+                    this.$util.msg('请输入您的联系电话~', 2000)
+                    return
+                }
+                if(!this.params.work){
+                    this.$util.msg('请输入您的职业~', 2000)
+                    return
+                }
+                this.modal = true
+            },
+            // 绑定门票
+			async userTicketBind(params){
 				try{
-					const res = await this.PayService.PayOrderCheckoutCounter({ shopOrderId : shopOrderId })
-					const data = res.data.shopOrder
-					const status = data.status //子订单状态
-					this.mapStateArr.forEach(value => {
-						if(status === value){
-							this.payBtnStatus = true
-						}
-					})
-					this.isRepuest = true
+					await this.UserService.userTicketBind(params)
+                    this.$util.msg('绑定成功', 2000, true, 'success')
+                    this.params.idCard = ''
+                    setTimeout(()=>{
+                        this.$api.switchTabTo('/pages/tabBar/home/index')  
+                    },2000)
 				}catch(error){
 					this.$util.msg(error.msg,2000)
 				}
-			},
-			toAgainPay(){
-				this.$api.reLaunch(`/pages/user/order/order-pay-list?shopOrderId=${this.shopOrderId}`)
-			},
-			details(){
-				this.$api.reLaunch('/pages/user/order/order-details?type=share&shopOrderId='+this.shopOrderId)
 			}
 		},
 		onShow() {
@@ -122,13 +190,18 @@
         background: url(https://admin.caimei365.com/userfiles/1/images/photo/2024/08/ziluo_bg.jpg) no-repeat;
         background-size: contain;
         box-sizing: border-box;
-        padding: 0 150rpx;
+        padding: 0 110rpx;
+        .login-title{
+            font-size: $font-size-28;
+            line-height: 58rpx;
+            color: #ffffff;
+        }
         .login-input{
         	width: 100%;
         	height: 88rpx;
         	padding:0 24rpx;
         	margin: 0 auto;
-        	margin-bottom: 60rpx;
+        	margin-bottom: 40rpx;
         	background: #FFFFFF;
             box-sizing: border-box;
             border-radius: 50rpx;
@@ -149,11 +222,16 @@
         	line-height: 88rpx;
         	color: #ffffff;
         	margin: 0 auto;
-        	margin-bottom: 24rpx;
         	text-align: center;
         	background-color: #e10078;
         	border-radius: 50rpx;
         }
+        .login-text{
+            font-size: $font-size-26;
+            line-height: 48rpx;
+            color: #ffffff;
+            margin-top: 50rpx;
+        }
     }
 	
 </style>

+ 168 - 0
pages/h5/activity/activity-sign.vue

@@ -0,0 +1,168 @@
+<template>
+	<view class="container cashier">
+        <tui-skeleton v-if="skeletonShow" backgroundColor="#fafafa" borderRadius="10rpx" :isLoading="true" :loadingType="5" />
+        <template v-else>
+            <custom :navbar-data='nvabarData' />
+            <view class="container-banner" :style="{paddingTop:CustomBar + 200 +'px'}">
+                <view class="login-input">
+                    <image  class="login-logo" :src="shopInfo.shopLogo" mode=""></image>
+                </view>
+                <view class="login-title">展位:{{ shopInfo.shopName }}</view>
+                <view class="login-btn"  @click="handleEntry">签到打卡</view>
+                <view class="login-text">
+                    注:绑定采美机构后,可在采美指定展台签到打卡,所有指定展台打卡完成后可领取一份采美为您准备的精美礼包。
+                </view>
+            </view>
+        </template>
+	</view>
+</template>
+
+<script>
+    import { mapState, mapMutations } from 'vuex'
+    import authorize from '@/common/config/authorize.js'
+    import wxLogin from '@/common/config/wxLogin.js'
+	export default{
+		data(){
+			return{
+                nvabarData: {		//顶部自定义导航
+                	haveBack:false,
+                	haveHome:true,
+                	showCapsule:1, // 是否显示左上角图标  1表示显示  0表示不显示,
+                	showSearch: 0,
+                	title: '',  // 导航栏 中间的标题
+                	textLeft:this.$store.state.isIphone
+                },
+				isIphoneX:this.$store.state.isIphoneX,
+				CustomBar:this.CustomBar,// 顶部导航栏高度
+                skeletonShow:true,
+				params:{
+                    userId:'',
+                    shopId:''
+                },
+                shopInfo:{}
+			}
+		},
+		onLoad(option) {
+            wxLogin.wxLoginAuthorize()
+            setTimeout(()=>{
+               this.initData(option)
+            },2000)
+		},
+        computed: {
+            ...mapState(['hasLogin', 'userInfo', ])
+        },
+		methods:{
+            // 初始化
+            async initData(option) {
+            	const userInfo = await this.$api.getStorage()
+                this.params.shopId = option.id
+                this.params.userId = userInfo.userId
+                this.userShopDetail(this.params)
+            },
+            // 获取展台信息
+            async userShopDetail(params){
+            	try{
+            		const res = await this.UserService.userShopDetail(params)
+                    this.shopInfo = res.data
+                    if(this.shopInfo.shopSign === 1){
+                        this.$api.navigateTo('/pages/h5/activity/activity-entry-list')  
+                    }else{
+                        this.skeletonShow = false
+                    }
+            	}catch(error){
+            		console.log('获取展台信息异常~')
+            	}
+            },
+            handleEntry(){
+                if(!this.hasLogin){
+                    this.$util.msg('您还未登录采美机构账号,请先登录!', 2000)
+                    setTimeout(() => {
+                        const pages = getCurrentPages()
+                        const page = pages[pages.length - 1]
+                        uni.setStorageSync('LOGIN_REDIRECT_URL', page.$page.fullPath)
+                        this.$api.navigateTo('/pages/login/login')
+                    }, 2000)
+                    return
+                }
+                this.userTicketSign(this.params)
+            },
+			// 签到打卡
+			async userTicketSign(params){
+				try{
+					await this.UserService.userTicketSign(params)
+			        this.$util.msg('打卡成功', 2000, true, 'success')
+			        this.params.idCard = ''
+			        setTimeout(()=>{
+			            this.$api.navigateTo('/pages/h5/activity/activity-entry-list')  
+			        },2000)
+				}catch(error){
+					this.$util.msg(error.msg,2000)
+				}
+			}
+		},
+		onShow() {
+			
+		}
+	}
+</script>
+
+<style lang="scss">
+	page{
+        background-color: #3d68eb;
+		height: auto !important;
+	}
+    .container-banner{
+        width: 100%;
+        height: 1142rpx;
+        background: url(https://admin.caimei365.com/userfiles/1/images/photo/2024/08/ziluo_bg.jpg) no-repeat;
+        background-size: contain;
+        box-sizing: border-box;
+        padding: 0 100rpx;
+        .login-title{
+            font-size: $font-size-44;
+            line-height: 88rpx;
+            color: #ffffff;
+            text-align: center;
+            margin-bottom: 120rpx;
+        }
+        .login-input{
+        	width: 100%;
+        	height: auto;
+        	padding:0 24rpx;
+        	margin: 0 auto;
+        	margin-bottom: 30rpx;
+            box-sizing: border-box;
+            border-radius: 50rpx;
+            display: flex;
+            flex-direction: column;
+            justify-content: center;
+            align-items: center;
+        	.login-logo{
+                width: 200rpx;
+                height: 200rpx;
+                display: block;
+                border-radius: 50%;
+                border: 1px solid #e10078;
+            }
+        }
+        .login-btn {
+        	width: 300rpx;
+        	height: 88rpx;
+        	font-size: $font-size-28;
+        	line-height: 88rpx;
+        	color: #ffffff;
+        	margin: 0 auto;
+        	margin-bottom: 24rpx;
+        	text-align: center;
+        	background-color: #e10078;
+        	border-radius: 50rpx;
+        }
+        .login-text{
+            font-size: $font-size-26;
+            line-height: 48rpx;
+            color: #ffffff;
+            margin-top: 200rpx;
+        }
+    }
+	
+</style>

+ 0 - 4
pages/h5/activity/components/active-floor.vue

@@ -127,8 +127,6 @@ import pictureC from './template-picture/templateC.vue'
 import pictureD from './template-picture/templateD.vue'
 import pictureE from './template-picture/templateE.vue'
 import pictureF from './template-picture/templateF.vue'
-import pictureG from './template-picture/templateG.vue'
-import pictureH from './template-picture/templateH.vue'
 //引入图文模板
 import articleA from './template-article/templateA.vue'
 import articleB from './template-article/templateB.vue'
@@ -164,8 +162,6 @@ export default {
         pictureD,
         pictureE,
         pictureF,
-        pictureG,
-        pictureH,
         articleA,
         articleB,
         articleC,

+ 0 - 199
pages/seller/order/components/cm-coupon-tips.vue

@@ -1,199 +0,0 @@
-<template name="alert">
-	<view class="coupon-content-model">
-		<view class="coupon-alert-content">
-			<view class="coupon">
-				<view class="coupon-list">
-					<view class="list-cell-tags"
-						><text>{{ coupon.couponType | TypeFormat }}</text></view
-					>
-					<view class="list-cell-le">
-						<view class="coupon-maxMoney"> <text class="small">¥</text> {{ coupon.couponAmount }} </view>
-						<view class="coupon-minMoney">
-							<text class="txt">满{{ coupon.touchPrice }}可用</text>
-						</view>
-					</view>
-					<view class="list-cell-ri">
-						<view class="list-cell-top">
-							<text v-if="coupon.couponType == 0">
-								{{
-									coupon.productType && coupon.productType == 1
-										? '全商城商品通用'
-										: '仅可购买指定商品'
-								}}
-							</text>
-							<text v-if="coupon.couponType == 1">
-								{{ coupon.categoryType == 1 ? '仅限购买产品类商品' : '仅限购买仪器类商品' }}
-							</text>
-							<text v-if="coupon.couponType == 3">仅限购买店铺【{{ coupon.shopName }}】的商品</text>
-							<text v-if="coupon.couponType == 4 || coupon.couponType == 2">全商城商品通用</text>
-						</view>
-						<view class="list-cell-time">{{ coupon.startDate }} - {{ coupon.endDate }}</view>
-					</view>
-				</view>
-				<view class="coupon-btn" @click.stop="handleClickCancel">立即收下</view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-export default {
-	name: 'alert',
-	props: {
-		coupon: {
-			type: Object
-		}
-	},
-	filters: {
-		TypeFormat(value) {
-			const map = {
-				0:'活动券',
-				1:'品类券',
-				2:'用户专享券',
-				3:'店铺券',
-				4:'新用户券',
-			}
-		}
-	},
-	data() {
-		return {}
-	},
-	created() {},
-	onLoad() {},
-	methods: {},
-	onShow() {}
-}
-</script>
-
-<style lang="scss">
-.coupon-content-model {
-	width: 100%;
-	height: 100%;
-	background: rgba(0, 0, 0, 0.5);
-	position: fixed;
-	top: 0;
-	left: 0;
-	z-index: 8888;
-	transition: all 0.4s;
-	.coupon-alert-content {
-		width: 600rpx;
-		height: 612rpx;
-		position: absolute;
-		top: 0;
-		left: 0;
-		bottom: 0;
-		right: 0;
-		margin: auto;
-		box-sizing: border-box;
-		padding-top: 92rpx;
-		.coupon {
-			width: 600rpx;
-			height: 522rpx;
-			background: url(https://static.caimei365.com/app/img/icon/icon-coupon-alertbg@2x.png);
-			background-size: cover;
-			box-sizing: border-box;
-			padding: 230rpx 40rpx 0 40rpx;
-			.coupon-list {
-				width: 100%;
-				height: 147rpx;
-				margin-bottom: 32rpx;
-				box-sizing: border-box;
-				background: url(https://static.caimei365.com/app/img/icon/icon-coupon-bg@2x.png);
-				background-size: cover;
-				position: relative;
-				.list-cell-tags {
-					display: inline-block;
-					padding: 0 10rpx;
-					height: 32rpx;
-					line-height: 32rpx;
-					background-color: #f94b4b;
-					color: #ffffff;
-					font-size: 18rpx;
-					border-radius: 16rpx 0 16rpx 0;
-					text-align: center;
-					position: absolute;
-					top: 0;
-					left: 0;
-				}
-				.list-cell-le {
-					width: 154rpx;
-					height: 100%;
-					box-sizing: border-box;
-					padding: 30rpx 0;
-					float: left;
-					.coupon-maxMoney {
-						width: 100%;
-						height: 54rpx;
-						line-height: 54rpx;
-						font-size: 42rpx;
-						color: #f94b4b;
-						text-align: center;
-						margin-top: 10rpx;
-						.small {
-							font-size: $font-size-20;
-						}
-					}
-					.coupon-minMoney {
-						width: 100%;
-						height: 28rpx;
-						float: left;
-						box-sizing: border-box;
-						padding-left: 24rpx;
-						.txt {
-							display: block;
-							height: 28rpx;
-							line-height: 28rpx;
-							font-size: 16rpx;
-							color: #f94b4b;
-							text-align: center;
-							padding: 0 5rpx;
-							background-color: #fff1eb;
-							border-radius: 4rpx;
-							float: left;
-						}
-					}
-				}
-				.list-cell-ri {
-					width: 366rpx;
-					height: 100%;
-					box-sizing: border-box;
-					padding: 30rpx 20rpx;
-					float: left;
-					.list-cell-top {
-						width: 100%;
-						height: 64rpx;
-						line-height: 64rpx;
-						font-size: $font-size-26;
-						color: #333333;
-						float: left;
-						text-overflow: ellipsis;
-						display: -webkit-box;
-						word-break: break-all;
-						-webkit-box-orient: vertical;
-						-webkit-line-clamp: 1;
-						overflow: hidden;
-					}
-					.list-cell-time {
-						width: 100%;
-						height: 28rpx;
-						line-height: 28rpx;
-						text-align: left;
-						font-size: $font-size-20;
-						color: #999999;
-					}
-				}
-			}
-			.coupon-btn {
-				width: 100%;
-				height: 78rpx;
-				background: url(https://static.caimei365.com/app/img/icon/icon-coupon-alertbtnbg@2x.png);
-				background-size: cover;
-				line-height: 78rpx;
-				text-align: center;
-				color: #ffffff;
-				font-size: $font-size-36;
-			}
-		}
-	}
-}
-</style>

+ 1 - 3
pages/seller/order/create-order.vue

@@ -131,7 +131,6 @@ import cmCouponPopup from './components/cm-coupon-popup'
 import cmCouponChang from './components/cm-coupon-chang'
 import cmClubVisible from './components/cm-club-visible'
 import cmRegulaPopup from './components/cm-regula-popup'
-import cmCouponTips from './components/cm-coupon-tips'
 import conMixins from './mixins/conMixins.js'
 
 export default {
@@ -144,8 +143,7 @@ export default {
 		cmCouponPopup,
 		cmCouponChang,
 		cmClubVisible,
-		cmRegulaPopup,
-		cmCouponTips
+		cmRegulaPopup
 	},
 	data() {
 		return {

+ 0 - 175
pages/supplier/order/components/details/orderAddress.vue

@@ -1,175 +0,0 @@
-<template name="address">
-	<view class="address-template">
-		 <!-- 地址信息 -->
-		 <view class="address-section">
-		 	<view class="address-content">
-				<view class="address-cen">
-					<view class="top">
-						<view class="name">{{addressData.receiver ? addressData.receiver : ''}}</view>
-						<view class="mobile">{{addressData.mobile ? addressData.mobile : ''}}</view>
-					</view>
-					<view class="address">
-						<view class="address-icon">
-							<text class="iconfont icon-shouhuodizhi"></text>
-						</view>
-						<view class="address-text">
-							{{addressData.province ? addressData.province : ''}}
-							{{addressData.city ? addressData.city : ''}}
-							{{addressData.town ? addressData.town : ''}}
-							{{addressData.address ? addressData.address : ''}}
-						</view>
-					</view>
-				</view>
-		 	</view>
-		 </view>
-		 <image  :src="StaticUrl + '/icon/line@3x.png'" mode=""></image>
-	</view>
-</template>
-
-<script>
-	import { mapState, mapMutations } from 'vuex'	
-	export default{
-		name:'address',
-		props:{
-			addressData:{
-				type:Object
-			}
-		},
-		data() {
-			return{
-				initData:'',
-				StaticUrl: this.$Static,
-			}
-		},
-		created(){
-			this.initData = this.addressData
-		},
-		computed: {
-			...mapState(['isManage'])
-		},
-		methods:{
-			
-		}
-	}
-</script>
-
-<style lang="scss">
-	.address-template{
-		width: 100%;
-		height: auto;
-		background: #FFFFFF;
-        
-        &::after{
-            content: "";
-            display: block;
-            clear: both;
-        }
-		// border-top: 1px solid #F8F8F8;
-		image{
-			float: left;
-			width: 100%;
-			height: 6rpx;
-		}
-	}
-	.address-section {
-		width: 100%;
-		height: auto;
-		float: left;
-		position: relative;
-		
-		.address-empty{
-			width: 100%;
-			height: 84rpx;
-			line-height: 84rpx;
-			color: $color-system;
-			text-align: center;
-			font-size: $font-size-26;
-			font-weight: bold;
-			background: #fff;
-			float: left;
-			.icon-tianjiadizhi{
-				font-size: 30rpx;
-				margin: 0 8rpx;
-			}
-		}
-		.address-content {
-			display: flex;
-			align-items: center;
-			padding:20rpx 24rpx;
-			background: #fff;
-		}
-		
-		.icon-shouhuodizhi {
-			flex-shrink: 0;
-			display: flex;
-			align-items: center;
-			justify-content: center;
-			width: 40rpx;
-			color: $color-system;
-			font-size: 46rpx;
-			margin-right: 10rpx;
-		}	
-		.address-cen {
-			width: 100%;
-			height: auto;
-			position: relative;
-			.top{
-				padding-left: 50rpx;
-				height: 42rpx;
-				line-height: 42rpx;
-				text-align: left;
-				font-size: $font-size-30;
-				color: $text-color;
-				padding-bottom: 8rpx;
-				display: flex;
-				float: left;
-				.name{
-					margin-right: 48rpx;
-				}
-				.mobile{
-					margin-right: 40rpx;
-				}
-			}
-			.address {
-				width: 100%;
-				height: auto;
-				float: left;
-				.address-icon{
-					width: 40rpx;
-					height: auto;
-					float: left;
-					line-height: 40rpx;
-				}
-				.address-text{
-					width: 650rpx;
-					padding-left: 10rpx;
-					float: left;
-					line-height: 40rpx;
-					font-size: $font-size-28;
-					color: #666666;
-					text-align: left;
-					-o-text-overflow: ellipsis;
-					text-overflow: ellipsis;
-					display: -webkit-box;
-					word-break: break-all;
-					-webkit-box-orient: vertical;
-					-webkit-line-clamp: 2;
-					overflow: hidden;
-				}
-			}
-		}
-		.icon-xiayibu {
-			font-size: 32rpx;
-			color: $text-color;
-			margin-right: 30rpx;
-		}
-		.a-bg {
-			position: absolute;
-			left: 0;
-			bottom: 0;
-			display: block;
-			width: 100%;
-			height: 5rpx;
-		}
-	}
-</style>

+ 0 - 234
pages/supplier/order/components/details/orderButton.vue

@@ -1,234 +0,0 @@
-<template name="button">
-	<view class="button-template" :style="{paddingBottom :isIphoneX ? '68rpx' : '0rpx'}">
-		<!-- 底部按钮 -->
-		<view class="button-content">
-			<view class="btn btn-payment" v-if="order.affirmPaymentFlag == 10" @click.stop="btnConfirm('payment',order)">确认打款<text>供应商</text></view>
-			<view class="btn btn-confirm" v-if="btnState.isConfirmation" @click.stop="btnConfirm('confirmation',order)">确认订单</view>
-			<view class="btn btn-pay" v-if="btnState.isPay" @click.stop="btnConfirm('pay',order)">付款</view>
-			<view class="btn btn-share" @click.stop="onShareCode">
-				<view class="tips" v-if="shareCode">分享码:{{shareCode}}</view>
-				分享订单
-			</view>
-			<view class="btn btn-cancel" v-if="btnState.isCancel" @click.stop="btnConfirm('cancel',order)">取消订单</view>
-			<!-- <view class="btn btn-delete" v-if="btnState.isDelete" @click.stop="btnConfirm('delete',order)">删除订单</view> -->
-			<view class="btn btn-query" v-if="btnState.isQuery && order.secondHandOrderFlag!=1" @click.stop="btnConfirm('query',order)">查看物流</view>
-			<view class="btn btn-firm" v-if="btnState.isConfirm" @click.stop="btnConfirm('confirm',order)">
-				确认收货
-				<view class="tips">采美豆<text class="line"></text></view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default{
-		name:'button',
-		props:{
-			status:{
-				type:Number
-			},
-			order: {
-				type:Object
-			},
-			shareCode:{
-				type:String
-			},
-		},
-		watch:{
-			status:{
-				handler:function(val){
-					this.initData(val)
-				},
-				deep:true//对象内部的属性监听,也叫深度监听
-			}
-		},
-		data() {
-			return{
-				btnState:this.initStatus(),
-				isIphoneX:this.$store.state.isIphoneX,
-				mapStateArr:[
-					{label:'isQuery',val:[4,5,12,13,33,22,23,32,77],status: true},
-					{label:'isDelete',val:[6],status: true},
-					{label:'isCancel',val:[0,111],status: true},
-					{label:'isConfirm',val:[33],status: true},
-					{label:'isConfirmation',val:[0],status: true},
-					{label:'isPay',val:[11,12,13,21,22,23,111],status: true},
-				]
-			}
-		},
-		created(){
-			this.initData(this.status)
-		},
-		computed: {
-
-		},
-		methods:{
-			initData(resVal) {
-				/**
-				 * @分享按钮统一显示
-				 * @按钮根据状态显示
-				 * @(4、5、7、12、22、23、32)显示[查看物流]按钮,其他隐藏
-				 * @(6)显示[删除订单],其他隐藏
-				 * @(0、111)显示[取消订单],其他隐藏
-				 * @(21,31)只显示分享
-				 * @(13,33)显示[确认收货]和[查看物流]
-				 */
-				this.btnState = this.initStatus()
-				this.mapStateArr.forEach(el => {
-					el.val.forEach(value => {
-						if(resVal === value){
-							this.btnState[el.label] = el.status
-						}
-					})
-				})
-			},
-			initStatus(){
-				let btnState= {
-						isQuery: false,
-						isDelete: false,
-						isCancel: false,
-						isConfirm: false,
-						isConfirmation:false,
-					}
-				return 	btnState
-			},
-			getShareCode(code){
-				this.shareCode = code
-			},
-			onShareCode(){
-				this.$parent.isShareModal = true
-				this.$emit('shareConfirm')
-			},
-			btnConfirm(type,order){
-				let data = {
-						type:type,
-						orderId:order.orderId,
-						order:order
-					}
-				this.$emit('buttonConfirm',data)
-			}
-		}
-	}
-</script>
-
-<style lang="scss">
-	.button-template{
-		width: 100%;
-		height: auto;
-		position: fixed;
-		bottom: 0;
-		left: 0;
-		background: #FFFFFF;
-		.button-content{
-			padding:0 24rpx;
-			height: auto;
-			float: right;
-			position: relative;
-			.share-code{
-				width: 200rpx;
-				height:  64rpx;
-				line-height: 64rpx;
-				color: #2A45FF;
-				text-align: left;
-				position: absolute;
-				font-size: $font-size-28;
-				font-weight: bold;
-				left: 24rpx;
-				top: 24rpx;
-			}
-			.btn{
-				width: 160rpx;
-				height:  64rpx;
-				margin:22rpx 22rpx 22rpx 0;
-				line-height: 64rpx;
-				font-size:$font-size-26;
-				color: #666666;
-				text-align: center;
-				float: right;
-				border: 2rpx solid #999999;
-				border-radius: 34rpx;
-				&.btn-payment{
-					line-height: 38rpx;
-					font-size: 24rpx;
-					background: #f9a94b;
-					color: #fff;
-					border: 2rpx solid #f9a94b;
-					text{
-						display: block;
-						line-height: 15rpx;
-					}
-				}
-				&.btn-share{
-					position: relative;
-				}
-			}
-			.btn-confirm{
-				background:#ff7a51;
-				border-color:#ff7a51;
-				color: #FFFFFF;
-			}
-			.btn-pay{
-				background:#f94b4b;
-				margin-right: 0;
-				border: 2rpx solid #f94b4b;
-				color: #fff;
-			}
-			.btn-firm{
-				position:relative;
-				.tips{
-					width: 74rpx;
-					height: 32rpx;
-					line-height: 32rpx;
-					padding: 0 7rpx;
-					border-radius: 16rpx;
-					background-color: #ffe6dc;
-					color: $color-system;
-					text-align: center;
-					font-size: $font-size-20;
-					position:absolute;
-					right: 0;
-					top: -40rpx;
-					z-index: 90;
-					.line{
-						display: block;
-						width: 20rpx;
-						height: 20rpx;
-						background-color: #ffe6dc;
-						position: relative;
-						bottom: 18rpx;
-						left: 15rpx;
-						z-index: -1;
-						transform:rotate(45deg);
-					}
-				}
-			}
-			.btn-share{
-				.tips{
-					width: 160rpx;
-					height: 34rpx;
-					padding: 10rpx 10rpx;
-					background:#FF5B00;
-					border-radius: 8rpx;
-					position: absolute;
-					color: #FFFFFF;
-					line-height: 34rpx;
-					font-size: $font-size-24;
-					text-align: left;
-					right: 0;
-					top: -65rpx;
-					&:before{
-						content: "";
-						width: 25rpx;
-						height: 25rpx;
-						background:#FF5B00;
-						position: absolute;
-						bottom: -8rpx;
-						left: 30rpx;
-						z-index: -1;
-						transform:rotate(45deg);
-					}
-				}
-			}
-		}
-	}
-</style>

+ 0 - 244
pages/supplier/order/components/details/orderListButton.vue

@@ -1,244 +0,0 @@
-<template name="button">
-	<view class="button-template">
-		<!-- 底部按钮 -->
-		<view class="button-content">
-			<view class="btn btn-payment" v-if="order.affirmPaymentFlag == 10" @click.stop="btnConfirm('payment',order)">确认打款<text>供应商</text></view>
-			<view class="btn btn-pay" v-if="btnState.isPay" @click.stop="btnConfirm('pay',order)">付款</view>
-			<view class="btn btn-confirm" v-if="btnState.isConfirmation" @click.stop="btnConfirm('confirmation',order)">确认订单</view>
-			<view class="btn btn-share"  @click.stop="onShareCode(order.orderId)">分享订单</view>
-			<view class="btn btn-cancel" v-if="btnState.isCancel" @click.stop="btnConfirm('cancel',order)">取消订单</view>
-			<!-- <view class="btn btn-delete" v-if="btnState.isDelete" @click.stop="btnConfirm('delete',order)">删除订单</view> -->
-			<view class="btn btn-query" v-if="btnState.isQuery && order.secondHandOrderFlag!=1" @click.stop="btnConfirm('query',order)">查看物流</view>
-			<view class="btn btn-firm" v-if="btnState.isConfirm" @click.stop="btnConfirm('confirm',order)">
-				确认收货
-				<view class="tips">采美豆<text class="line"></text></view>
-			</view>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default{
-		name:"button",
-		props:{
-			status: {
-				type:Number
-			},
-			order: {
-				type:Object
-			},
-		},
-		data() {
-			return{
-				isShare:true,
-				shareCode:'',
-				btnState:this.initStatus(),
-				mapStateArr:[
-					{label:'isQuery',val:[4,5,12,13,33,22,23,32,77],status: true},
-					{label:'isDelete',val:[6],status: true},
-					{label:'isCancel',val:[0,111],status: true},
-					{label:'isConfirm',val:[33],status: true},
-					{label:'isConfirmation',val:[0],status: true},
-					{label:'isPay',val:[11,12,13,21,22,23,111],status: true},
-				]
-			}
-		},
-		created(){
-			this.initData(this.status)
-		},
-		computed: {
-
-		},
-		watch:{
-			status:{
-				handler:function(val){
-					this.initData(val)
-				},
-				deep:true//对象内部的属性监听,也叫深度监听
-			}
-		},
-		methods:{
-			initData(resVal) {
-				/**
-				 * @分享按钮统一显示
-				 * @按钮根据状态显示
-				 * @(4、5、7、12、22、23、32)显示[查看物流]按钮,其他隐藏
-				 * @(6)显示[删除订单],其他隐藏
-				 * @(0、111)显示[取消订单],其他隐藏
-				 * @(21,31)只显示分享
-				 * @(13,33)显示[确认收货]和[查看物流]
-				 */
-				this.btnState = this.initStatus()
-				this.mapStateArr.forEach(el => {
-					el.val.forEach(value => {
-						if(resVal === value){
-							this.btnState[el.label] = el.status
-						}
-					})
-				})
-			},
-			initStatus(){
-				let btnState= {
-						isQuery: false,
-						isDelete: false,
-						isCancel: false,
-						isConfirm: false,
-						isShare: true,
-						isConfirmation:false,
-					}
-				return 	btnState
-			},
-			getShareCode(code){
-				this.shareCode = code
-			},
-			onShareCode(orderId){
-				this.$parent.isShareModal = true
-				this.$parent.btnoRderID = orderId
-				this.$emit('shareConfirm')
-			},
-			btnConfirm(type,order){
-				let data = {
-						type:type,
-						orderId:order.orderId,
-						order:order
-					}
-				this.$emit('buttonConfirm',data)
-			}
-		}
-	}
-</script>
-
-<style lang="scss">
-	.button-template{
-		width: 100%;
-		height: auto;
-		float: left;
-		background: #FFFFFF;
-		.button-content{
-			height: auto;
-			float: right;
-			position: relative;
-			.share-code{
-				width: 200rpx;
-				height:  64rpx;
-				line-height: 64rpx;
-				color: #2A45FF;
-				text-align: left;
-				position: absolute;
-				font-size: $font-size-28;
-				font-weight: bold;
-				left: 24rpx;
-				top: 24rpx;
-			}
-			.btn{
-				width: 150rpx;
-				height:  64rpx;
-				margin: 22rpx 0 20rpx 20rpx;
-				line-height: 64rpx;
-				font-size:$font-size-26;
-				color: #999999;
-				text-align: center;
-				float: right;
-				border-radius: 34rpx;
-				border: 2rpx solid #999999;
-				&.btn-payment{
-					line-height: 38rpx;
-					font-size: 24rpx;
-					background: #f9a94b;
-					color: #fff;
-					border: 2rpx solid #f9a94b;
-					text{
-						display: block;
-						line-height: 15rpx;
-					}
-				}
-			}
-			.btn-color{
-				background: $btn-confirm;
-				// margin: 22rpx 0 22rpx 22rpx;
-			}
-			.btn-cancel{
-				// background:#FFFFFF;
-				// color: #999999;
-				// float: left;
-				// margin: 22rpx 0;
-				text-align: center;
-			}
-			// .btn-delete{
-			// 	background:linear-gradient(315deg,rgba(255,163,3,1) 0%,rgba(255,53,1,1) 100%);
-			// }
-			// .btn-query{
-			// 	background:linear-gradient(135deg,rgba(255,212,129,1) 0%,rgba(198,129,0,1) 100%);
-			// }
-			.btn-confirm{
-				background:#ff7a51;
-				border-color:#ff7a51;
-				color: #FFFFFF;
-			}
-			.btn-pay{
-				background:#f94b4b;
-				color: #FFFFFF;
-				border: 2rpx solid #f94b4b;
-			}
-			.btn-firm{
-				position:relative;
-				.tips{
-					width: 74rpx;
-					height: 32rpx;
-					line-height: 32rpx;
-					padding: 0 7rpx;
-					border-radius: 16rpx;
-					background-color: #ffe6dc;
-					color: $color-system;
-					text-align: center;
-					font-size: $font-size-20;
-					position:absolute;
-					right: 0;
-					top: -40rpx;
-					z-index: 90;
-					.line{
-						display: block;
-						width: 20rpx;
-						height: 20rpx;
-						background-color: #ffe6dc;
-						position: relative;
-						bottom: 18rpx;
-						left: 15rpx;
-						z-index: -1;
-						transform:rotate(45deg);
-					}
-				}
-			}
-			.btn-share{
-				// background:linear-gradient(315deg,rgba(0,212,150,1) 0%,rgba(126,243,174,1) 100%);
-				position: relative;
-				.tips{
-					width: 160rpx;
-					height: 34rpx;
-					padding: 10rpx 10rpx;
-					background:linear-gradient(45deg,rgba(0,0,0,1) 0%,rgba(87,87,87,1) 100%);
-					box-shadow:0px 2px 4px 0px rgba(0,0,0,0.2);
-					border-radius: 8rpx;
-					position: absolute;
-					color: #FFFFFF;
-					line-height: 34rpx;
-					font-size: $font-size-24;
-					text-align: left;
-					right: 0;
-					top: -65rpx;
-					&:before{
-						content: "";
-						width: 25rpx;
-						height: 25rpx;
-						background:linear-gradient(45deg,rgba(0,0,0,1) 0%,rgba(87,87,87,1) 100%);
-						position: absolute;
-						bottom: -8rpx;
-						right: 30rpx;
-						z-index: -1;
-						transform:rotate(45deg);
-					}
-				}
-			}
-		}
-	}
-</style>

+ 0 - 2
pages/supplier/order/order-details.vue

@@ -148,13 +148,11 @@
 
 <script>
 import headerBack from '@/components/cm-module/headerNavbar/header-back' //自定义导航
-import orderAddress from './components/details/orderAddress' //地址信息
 import orderButton from './components/supplierDetaileButton' //底部按钮
 import shareAlert from '../components/supplierShareAlert' //分享弹窗
 export default {
 	components: {
 		headerBack,
-		orderAddress,
 		orderButton,
 		shareAlert
 	},

+ 1 - 5
pages/supplier/order/order-service-details.vue

@@ -138,13 +138,9 @@
 
 <script>
 import headerBack from '@/components/cm-module/headerNavbar/header-back' //自定义导航
-import orderAddress from './components/details/orderAddress' //地址信息
-import orderButton from './components/details/orderButton' //底部按钮
 export default {
 	components: {
-		headerBack,
-		orderAddress,
-		orderButton
+		headerBack
 	},
 	data() {
 		return {

+ 0 - 152
pages/user/components/uni-calendar/uni-calendar-item.vue

@@ -1,152 +0,0 @@
-<template>
-	<view class="uni-calendar-item__weeks-box" :class="{
-		'uni-calendar-item--disable':weeks.disable,
-		'uni-calendar-item--isDay':calendar.fullDate === weeks.fullDate && weeks.isDay,
-		'uni-calendar-item--checked':(calendar.fullDate === weeks.fullDate && !weeks.isDay) ,
-		'uni-calendar-item--multiple': weeks.multiple
-		}"
-	 @click="choiceDate(weeks)">
-		<view class="uni-calendar-item__weeks-box-item">
-			<text v-if="selected&&weeks.extraInfo" class="uni-calendar-item__weeks-box-circle"></text>
-			<text class="uni-calendar-item__weeks-box-text" :class="{
-				'uni-calendar-item--isDay-text': weeks.isDay,
-				'uni-calendar-item--isDay':calendar.fullDate === weeks.fullDate && weeks.isDay,
-				'uni-calendar-item--checked':calendar.fullDate === weeks.fullDate && !weeks.isDay,
-				'uni-calendar-item--multiple': weeks.multiple,
-				'uni-calendar-item--disable':weeks.disable,
-				}">{{weeks.date}}</text>
-			<text v-if="!lunar&&!weeks.extraInfo && weeks.isDay" class="uni-calendar-item__weeks-lunar-text" :class="{
-				'uni-calendar-item--isDay-text':weeks.isDay,
-				'uni-calendar-item--isDay':calendar.fullDate === weeks.fullDate && weeks.isDay,
-				'uni-calendar-item--checked':calendar.fullDate === weeks.fullDate && !weeks.isDay,
-				'uni-calendar-item--multiple': weeks.multiple,
-				}">今天</text>
-			<text v-if="lunar&&!weeks.extraInfo" class="uni-calendar-item__weeks-lunar-text" :class="{
-				'uni-calendar-item--isDay-text':weeks.isDay,
-				'uni-calendar-item--isDay':calendar.fullDate === weeks.fullDate && weeks.isDay,
-				'uni-calendar-item--checked':calendar.fullDate === weeks.fullDate && !weeks.isDay,
-				'uni-calendar-item--multiple': weeks.multiple,
-				'uni-calendar-item--disable':weeks.disable,
-				}">{{weeks.isDay?'今天': weeks.lunar.IDayCn}}</text>
-			<text v-if="weeks.extraInfo&&weeks.extraInfo.info" class="uni-calendar-item__weeks-lunar-text" :class="{
-				'uni-calendar-item--extra':weeks.extraInfo.info,
-				'uni-calendar-item--isDay-text':weeks.isDay,
-				'uni-calendar-item--isDay':calendar.fullDate === weeks.fullDate && weeks.isDay,
-				'uni-calendar-item--checked':calendar.fullDate === weeks.fullDate && !weeks.isDay,
-				'uni-calendar-item--multiple': weeks.multiple,
-				'uni-calendar-item--disable':weeks.disable,
-				}">{{weeks.extraInfo.info}}</text>
-		</view>
-	</view>
-</template>
-
-<script>
-	export default {
-		props: {
-			weeks: {
-				type: Object,
-				default () {
-					return {}
-				}
-			},
-			calendar: {
-				type: Object,
-				default: () => {
-					return {}
-				}
-			},
-			selected: {
-				type: Array,
-				default: () => {
-					return []
-				}
-			},
-			lunar: {
-				type: Boolean,
-				default: false
-			}
-		},
-		methods: {
-			choiceDate(weeks) {
-				this.$emit('change', weeks)
-			}
-		}
-	}
-</script>
-
-<style lang="scss" scoped>
-	.uni-calendar-item__weeks-box {
-		flex: 1;
-		/* #ifndef APP-NVUE */
-		display: flex;
-		/* #endif */
-		flex-direction: column;
-		justify-content: center;
-		align-items: center;
-	}
-
-	.uni-calendar-item__weeks-box-text {
-		font-size: $uni-font-size-base;
-		color: $uni-text-color;
-	}
-
-	.uni-calendar-item__weeks-lunar-text {
-		font-size: $uni-font-size-sm;
-		color: $uni-text-color;
-	}
-
-	.uni-calendar-item__weeks-box-item {
-		position: relative;
-		/* #ifndef APP-NVUE */
-		display: flex;
-		/* #endif */
-		flex-direction: column;
-		justify-content: center;
-		align-items: center;
-		width: 100rpx;
-		height: 100rpx;
-	}
-
-	.uni-calendar-item__weeks-box-circle {
-		position: absolute;
-		top: 5px;
-		right: 5px;
-		width: 8px;
-		height: 8px;
-		border-radius: 8px;
-		background-color: $uni-color-error;
-
-	}
-
-	.uni-calendar-item--disable {
-		background-color: rgba(249, 249, 249, $uni-opacity-disabled);
-		color: $uni-text-color-disable;
-	}
-
-	.uni-calendar-item--isDay-text {
-		color: $uni-color-primary;
-	}
-
-	.uni-calendar-item--isDay {
-		background-color: $uni-color-primary;
-		opacity: 0.8;
-		color: #fff;
-	}
-
-	.uni-calendar-item--extra {
-		color: $uni-color-error;
-		opacity: 0.8;
-	}
-
-	.uni-calendar-item--checked {
-		background-color: $uni-color-primary;
-		color: #fff;
-		opacity: 0.8;
-	}
-
-	.uni-calendar-item--multiple {
-		background-color: $uni-color-primary;
-		color: #fff;
-		opacity: 0.8;
-	}
-</style>

+ 1 - 15
pages/user/components/uni-calendar/uni-calendar.vue

@@ -20,27 +20,13 @@
 				</view>
 				<!-- <text class="uni-calendar__backtoday" @click="backtoday">回到今天</text> -->
 			</view>
-		<!-- <view class="uni-calendar__box">
-				<view class="uni-calendar__box-bg">
-					<text class="uni-calendar__box-bg-text">{{nowDate.month}}</text>
-				</view>
-				<view class="uni-calendar__weeks" v-for="(item,weekIndex) in weeks" :key="weekIndex">
-					<view class="uni-calendar__weeks-item" v-for="(weeks,weeksIndex) in item" :key="weeksIndex">
-						<uni-calendar-item :weeks="weeks" :calendar="calendar" :selected="selected" :lunar="lunar" @change="choiceDate"></uni-calendar-item>
-					</view>
-				</view>
-			</view> -->
 		</view>
 	</view>
 </template>
 
 <script>
-	import Calendar from './util.js';
-	import uniCalendarItem from './uni-calendar-item.vue'
+	import Calendar from './util.js'
 	export default {
-		components: {
-			uniCalendarItem
-		},
 		props: {
 			/**
 			 * 当前日期

+ 0 - 1
services/config.env.js

@@ -6,7 +6,6 @@ if(process.env.NODE_ENV === 'development'){
     // URL_CONFIG = 'https://core.caimei365.com'    
 }else{
     // 生产环境
-    // URL_CONFIG = 'https://core-b.caimei365.com'
     URL_CONFIG = 'https://core.caimei365.com'
 } 
 export default URL_CONFIG

+ 47 - 0
services/user.service.js

@@ -1086,4 +1086,51 @@ export default class UserService {
             isLoading: false
         })
     }
+    /**
+     * @紫亚兰活动-绑定机构
+     * @param:userId 用户userId
+     * @param:ticket 门票码
+     * @param:idCard 身份证号码
+     */
+    userTicketBind(data = {}) {
+        return this.AjaxService.post({
+            url: '/user/login/ticket/bind',
+            data,
+            isLoading: false
+        })
+    }
+    /**
+     * @紫亚兰活动-获取展位信息
+     * @param:shopId 
+     */
+    userShopDetail(data = {}) {
+        return this.AjaxService.get({
+            url: '/user/login/shop/detail',
+            data,
+            isLoading: false
+        })
+    }
+    /**
+     * @紫亚兰活动-展台签到
+     * @param:userId 用户userId
+     * @param:shopId 门票码
+     */
+    userTicketSign(data = {}) {
+        return this.AjaxService.post({
+            url: '/user/login/ticket/sign',
+            data,
+            isLoading: false
+        })
+    }
+    /**
+     * @紫亚兰活动-展台打卡列表
+     * @param:userId 用户userId
+     */
+    userTicketSignList(data = {}) {
+        return this.AjaxService.get({
+            url: '/user/login/sign/list',
+            data,
+            isLoading: false
+        })
+    }
 }

+ 2 - 2
utils/residence.js

@@ -71,7 +71,7 @@ async function userBehavior(current) {
 const setingSysParams = async (current) => {
     const sysParams = Object.assign({}, defaultParams)
     const userSync = uni.getStorageSync('userInfo')
-    const pageData = isIncludeType(current.path)
+    const pageData = isIncludeType(current.path)
     // 筛除掉协销不做统计
     if (userSync.userIdentity === 1) return
     // 筛除掉以下页面路径的重复统计
@@ -94,7 +94,7 @@ const setingSysParams = async (current) => {
 	    sysParams.productId = current.query.id ? current.query.id : 0
 	    sysParams.pageLabel = uni.getStorageSync('productLabel')
     } else {
-	    sysParams.pageLabel = uni.getStorageSync('pageLabel') ? uni.getStorageSync('pageLabel') : pageData.pageLabel
+	    sysParams.pageLabel = uni.getStorageSync('pageLabel') ? uni.getStorageSync('pageLabel') : pageData ? pageData.pageLabel : ''
     }
     console.log('记录路径:', sysParams.pagePath, '标签:', sysParams.pageLabel)
     // 统计接口调用