From f837b731f571bb53cee99f9bc22a6f74855f3e6c Mon Sep 17 00:00:00 2001
From: xuxueyang <xuxy@fengyuntec.com>
Date: 星期一, 12 八月 2024 02:43:20 +0800
Subject: [PATCH] add 商品结算测试

---
 sub_pages/customer/shop/shop.vue |  280 ++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 220 insertions(+), 60 deletions(-)

diff --git a/sub_pages/customer/shop/shop.vue b/sub_pages/customer/shop/shop.vue
index 82c1522..c83a059 100644
--- a/sub_pages/customer/shop/shop.vue
+++ b/sub_pages/customer/shop/shop.vue
@@ -2,15 +2,7 @@
 	<view class="brand-detail" style="background: #20613D;">
 
 		<view class="brand-top-info">
-			<view class="search-container  flex" style="padding-left: 20rpx;padding-right: 20rpx;padding-top: 20rpx">
-				<view class="flex1 input">
-					<u-input placeholder="请输入花名" v-model="search_flow">
-						<template slot="suffix">
-							<uni-icons color="#20613D" type="search" size="24" @tap="buttonSearchFlow"></uni-icons>
-						</template>
-					</u-input>
-				</view>
-			</view>
+
 			<view class="info-brand m-t-12" v-if="id">
 				<view class="flex">
 					<image class="store-logo" :src="dto.cover"></image>
@@ -38,7 +30,7 @@
 			</view>
 			<view class="tj-info m-t-12">
 				<view class="form-item">
-					<view class="value">0</view>
+					<view class="value">{{page.total || 0}}</view>
 					<view class="label">发布</view>
 				</view>
 				<view class="form-item">
@@ -62,28 +54,35 @@
 		</view>
 		<view class="brand-info">
 			<view v-if="flg==='0'" class="brand-info-0">
+				<view class="search-container  flex"
+					style="padding-left: 20rpx;padding-right: 20rpx;padding-top: 20rpx">
+					<view class="flex1 input">
+						<u-input placeholder="请输入花名" v-model="query.name" clearable @confirm="buttonSearchFlow" @clear="()=>{
+					$nextTick(()=>{buttonSearchFlow()})
+				}">
+							<template slot="suffix">
+								<uni-icons color="#20613D" type="search" size="24"
+									@click="buttonSearchFlow"></uni-icons>
+							</template>
+						</u-input>
+					</view>
+				</view>
 				<view class="component-filter-container" style="padding-top: 12rpx;">
-					<view class="flex1">
-						排序
+					<view class="flex1" @click.stop="$refs.popup_column.open()">
+						排序{{ query.columnStr&&('-'+query.columnStr) || '' }}
 						<image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image>
 					</view>
-					<view class="flex1">
-						等级
-						<image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image>
-					</view>
-					<view class="flex1">
-						参数
+					<view class="flex1" @click.stop="$refs.popup_level.open()">
+						{{ query.levelStr || '级别' }}
 						<image src="../../../static/common/icon-arrow-down.png" class="icon-arrow-down"></image>
 					</view>
 				</view>
-				<view class="top-title">
+				<view class="top-title m-t-12">
 					报价已包含打包费、材料费、交易佣金
 				</view>
-				<view class="component-shop-item flex" v-for="(item,index) of list" :key="index"
-					@click.stop="toDetail(item)">
-					<view class="img">
-						<image class="img img100"
-							:src="item.cover" lazy-load>
+				<view class="component-shop-item flex" v-for="(item,index) of list" :key="index">
+					<view class="img" @click.stop="toDetail(item)">
+						<image class="img img100" :src="item.cover" lazy-load>
 						</image>
 						<view class="level">
 							{{item.levelStr||''}}
@@ -91,16 +90,16 @@
 					</view>
 
 					<view class="m-l-12 info-container flex1">
-						<view class="title">
+						<view class="title" @click.stop="toDetail(item)">
 							{{item.name}}
 							<view class="price">
 								¥{{item.price}}/扎
 							</view>
 						</view>
-						<view class="shop-name">
+						<view class="shop-name" @click.stop="toDetail(item)">
 							{{item.categoryStr}}
 						</view>
-						<view class="other-info flex">
+						<view class="other-info flex" @click.stop="toDetail(item)">
 							<view class="m-r-15">
 								已售:{{item.sales || 0}}
 							</view>
@@ -113,14 +112,17 @@
 						</view>
 						<view class="bottom-buttons  flex">
 							<view class="m-l-0 m-r-a">
-								<view class="m-r-15">
+								<view class="m-r-15 desc-gray other-info">
 									颜色:{{item.color||'-'}}
 								</view>
 							</view>
 							<view class="icons flex">
 								<uni-icons v-if="item.shopnum&&item.shopnum>=1" type="minus" size="32"
 									@click.stop="addnum(item,-1)"></uni-icons>
-								<view class="curnums" v-if="item.shopnum&&item.shopnum>=1">{{ item.shopnum }}</view>
+								<view class="curnums" @click.stop="updateItemNum(item)"
+									v-if="item.shopnum&&item.shopnum>=1">
+									{{ item.shopnum }}
+								</view>
 								<uni-icons v-if="!item.shopnum||item.shopnum<=99" type="plus-filled" size="32"
 									@click.stop="addnum(item,1)"></uni-icons>
 							</view>
@@ -130,11 +132,12 @@
 
 			</view>
 
-			<view v-if="flg==='1'" class="brand-info-1">
-				<trade :hidefooter="true" :catgoryTree="catgoryTree" v-if="catgoryTree" ref="trade"></trade>
+			<view v-show="flg==='1'" class="brand-info-1">
+				<trade :hidefooter="true" :supplierId="id" :catgoryTree="catgoryTree" v-if="catgoryTree" ref="trade">
+				</trade>
 				<!-- // 构建一个分类树 -->
 				<!-- catgoryTree -->
-				
+
 			</view>
 			<view v-if="flg==='2'" class="brand-info-3">
 				<view class="title">
@@ -154,12 +157,63 @@
 				</view>
 				<view class="form-input flex">
 					<view class="label">身份认证</view>
-					<view class="value">个人身份认证</view>
+					<view class="value">{{dto.idcardTypeStr||'未认证'}}</view>
 				</view>
+				<!-- 	<view class="form-input flex">
+					<view class="label">&nbsp;&nbsp;</view>
+					<view class="value">{{'已实名'}}</view>
+				</view> -->
 			</view>
 		</view>
+		<uni-popup ref="popup_column" type="bottom">
+			<view class="component-popup_input_all">
+				<view class="text-center m-b-40" style="font-size: 48rpx;font-weight: 600;">点击选择不同排序</view>
+				<view v-for="(item,i) in order_columns" :key="i" class="m-t-20">
+					<view class="m-t-12 flex value-items">
+						<view class="value-item" @click="()=>{
+							if(each.value!==query.value){
+								query.column = each.value
+								query.columnStr = each.label
+								refreshList('post')
+								$refs.popup_column.close()
+							}																																						
+						}" :class="[query.column==each.value?'cur':'']" v-for="(each, j) in item" :key="j">
+							{{ each.label || '-' }}
+						</view>
+					</view>
+				</view>
+				<view class="button-space"></view>
+				<view>
+					<view class="button-green" @click="$refs.popup_column.close()">关闭
+					</view>
+				</view>
+			</view>
+		</uni-popup>
 
-
+		<uni-popup ref="popup_level" type="bottom">
+			<view class="component-popup_input_all">
+				<view class="text-center m-b-40" style="font-size: 48rpx;font-weight: 600;">点击选择不同级别</view>
+				<view v-for="(item,i) in level_columns" :key="i" class="m-t-20">
+					<view class="m-t-12 flex value-items">
+						<view class="value-item" @click="()=>{
+							if(each.value!==query.value){
+								query.level = each.value
+								query.levelStr = each.label
+								refreshList('post')
+								$refs.popup_level.close()
+							}																																						
+						}" :class="[query.level==each.value?'cur':'']" v-for="(each, j) in item" :key="j">
+							{{ each.label || '-' }}
+						</view>
+					</view>
+				</view>
+				<view class="button-space"></view>
+				<view>
+					<view class="button-green" @click="$refs.popup_level.close()">关闭
+					</view>
+				</view>
+			</view>
+		</uni-popup>
 	</view>
 </template>
 
@@ -173,7 +227,7 @@
 		},
 		data() {
 			return {
-				search_flow: '',
+				// search_flow: '',
 				flg: '0',
 				tabs: [{
 						name: '全部商品'
@@ -191,25 +245,94 @@
 				dto: {},
 				list: [],
 				id: '',
-				catgoryTree:undefined,
+				catgoryTree: undefined,
+				query: {
+					columnStr: '',
+					column: '',
+					levelStr: '',
+					level: '',
+					name: '',
+				},
+				level_show: false,
+				level_columns: [
+					[]
+				],
+
+				order_show: false,
+				order_columns: [
+					[]
+				]
 			}
+		},
+		onShow() {
+			//避免商品数目不一样
+			this.refreshList('post')
 		},
 		onLoad(options) {
 			this.id = options.id || ''
-			// this.page.size =
+			this.page.size = 300
 			if (this.id) {
 				this.getDetail()
 			}
-			this.listApi =  `/api/customer/flower/list`
-			this.query.supplierId = this.id 
+			this.listApi = `/api/customer/flower/list`
+			this.query.supplierId = this.id
 			this.getList('post')
+			this.$http.request('get', '/api/code/value', {
+				params: {
+					type: 'FLOWER_LEVEL'
+				}
+			}).then(res => {
+				var data = res.data
+				this.level_columns = [data || []]
+				this.level_columns[0].unshift({
+					label: '全部',
+					value: ''
+				})
+			})
+			this.$http.request('get', '/api/code/value', {
+				params: {
+					type: 'FLOWER_ORDER_BY'
+				}
+			}).then(res => {
+				var data = res.data
+				this.order_columns = [data || []]
+				this.order_columns[0].unshift({
+					label: '默认',
+					value: ''
+				})
+			})
 		},
-		onReachBottom(){
-			if(this.flg==='0'){
-				this.getMore('post')
+		// #ifdef PUB_CUSTOMER
+		onShareAppMessage() {
+			let that = this;
+			var name = that.currentInfo.customerDTO && that.currentInfo.customerDTO.name || that.currentInfo.supplierDTO &&
+				that.currentInfo.supplierDTO.name || that.currentInfo.partnerDTO && that.currentInfo.partnerDTO.name || ''
+			var url =
+				`/sub_pages/customer/shop/shop?id=${this.id}&shareId=${this.currentInfo&&this.currentInfo.id||''}&shareName=${name||''}`; //你的转发页面路径拼接参数
+			return {
+				title: this.dto.id && this.dto.name ? (this.dto.name + " 的店铺") : "花满芫",
+				path: url,
 			}
 		},
+		onShareTimeline() {
+			let that = this;
+			var name = that.currentInfo.customerDTO && that.currentInfo.customerDTO.name || that.currentInfo.supplierDTO &&
+				that.currentInfo.supplierDTO.name || that.currentInfo.partnerDTO && that.currentInfo.partnerDTO.name || ''
+			var url =
+				`/sub_pages/customer/shop/shop?id=${this.id}&shareId=${this.currentInfo&&this.currentInfo.id||''}&shareName=${name||''}`; //你的转发页面路径拼接参数
+			return {
+				title: this.dto.id && this.dto.name ? (this.dto.name + " 的店铺") : "花满芫",
+				path: url,
+			}
+		},
+		// #endif
+		onReachBottom() {
+			// if (this.flg === '0') {
+			// 	this.getMore('post')
+			// }
+		},
 		methods: {
+
 			async getDetail() {
 				{
 					this.$message.showLoading()
@@ -250,6 +373,10 @@
 			},
 			//update 关注
 			async updateGz(type) {
+				if (!this.currentInfo.id) {
+					this.$message.showToast('请先登录')
+					return
+				}
 				this.$message.showLoading()
 				const {
 					code
@@ -272,11 +399,12 @@
 			},
 			async changeTab(flg) {
 				console.log('changeTab', flg)
-				if('1'===(''+flg)){
-					if(!this.catgoryTree){
+				if ('1' === ('' + flg)) {
+					if (!this.catgoryTree) {
 						this.$message.showLoading()
 						const {
-							code,data
+							code,
+							data
 						} = await this.$http.request('get', `/api/customer/flower/category/tree`, {
 							data: {
 								supplierId: this.dto.supplierId || this.dto.id
@@ -289,7 +417,7 @@
 							// data 分类树
 							this.catgoryTree = data || []
 							let tmp = this
-							this.$nextTick(()=>{
+							this.$nextTick(() => {
 								tmp.$refs.trade.refInit(tmp.catgoryTree)
 							})
 						}
@@ -298,13 +426,36 @@
 				}
 				this.flg = '' + flg
 				//如果没有加载数据,需要加载一下
-				
+
 
 			},
 			buttonSearchFlow() {
-
+				// this.query.name = this.search_flow || ''
+				this.refreshList('post')
 			},
+			async updateItemNum(item) {
+				const res = await this.$message.confirm('', {
+					editable: true,
+					title: '请输入想要购买的数量'
+				})
+				if (res.content && res.confirm) {
+					// 发送请求
+					var t = parseInt(res.content)
+					if (isNaN(t) || t < 0) {
+						this.$message.showToast('数目需要大于等于0')
 
+					} else {
+						if (!item.stock || t > item.stock) {
+							this.$message.showToast('库存不足无法修改')
+							return
+						}
+						this.addnum(item, (t - item.shopnum))
+
+					}
+				} else {
+
+				}
+			},
 			async addnum(item, addnum) {
 				if (!this.currentInfo.id) {
 					await this.$message.confirm('请前往登录')
@@ -315,13 +466,13 @@
 				}
 				if (!item.shopnum) {
 					item.shopnum = 0
-				}
-				if (!item.stock) {
-					item.stock = 0
-				}
-				if (item.shopnum + addnum > item.stock) {
-					this.$message.showToast('库存不足,无法添加')
-					return
+				}
+				if (!item.stock) {
+					item.stock = 0
+				}
+				if (addnum > 0 & item.shopnum + addnum > item.stock) {
+					this.$message.showToast('库存不足,无法修改')
+					return
 				}
 				if (item.shopnum + addnum >= 0) {
 
@@ -331,7 +482,7 @@
 				this.$message.showLoading()
 				const {
 					code
-				} = await http.request('post', '/api/customer/flower/cart/change-num', {
+				} = await this.$http.request('post', '/api/customer/flower/cart/change-num', {
 					data: {
 						id: item.id,
 						num: addnum
@@ -339,17 +490,24 @@
 				})
 				this.$message.hideLoading()
 				if (code === 0) {
-					item.shopnum += addnum
+					item.shopnum += addnum
 					this.$forceUpdate()
 				}
 			},
 
+			toDetail(item) {
+				uni.navigateTo({
+					url: `/sub_pages/customer/trade/detail?id=${item.id}`
+				})
+			},
 		}
 	}
 </script>
 
 <style lang="scss" scoped>
 	.brand-detail {
+
+		// min-height: 99vh;
 		.brand-info {
 			background: #FFFFFF;
 			// border-radius: 40rpx 40rpx 0rpx 0rpx;
@@ -358,7 +516,7 @@
 			overflow: hidden;
 			overflow-y: scroll;
 			padding: 40rpx 32rpx;
-			height: calc(100vh - 650rpx);
+			height: calc(100vh - 450rpx);
 			padding-top: 0rpx;
 
 			.brand-info-0 {
@@ -374,10 +532,12 @@
 					padding-left: 20rpx;
 				}
 			}
-			.brand-info-1{
+
+			.brand-info-1 {
 				// padding: 40rpx 30rpx;
-				
+
 			}
+
 			.brand-info-3 {
 				padding: 40rpx 30rpx;
 

--
Gitblit v1.9.3