From 8af3db52a632968206ca2bc7f9bd6b4662350232 Mon Sep 17 00:00:00 2001
From: xuxy <1059738716@qq.com>
Date: 星期二, 25 六月 2024 11:50:18 +0800
Subject: [PATCH] 商品管理

---
 pages/farmer/flower-manage/flower-manage.vue |  290 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 284 insertions(+), 6 deletions(-)

diff --git a/pages/farmer/flower-manage/flower-manage.vue b/pages/farmer/flower-manage/flower-manage.vue
index 8183fd0..3b6f2db 100644
--- a/pages/farmer/flower-manage/flower-manage.vue
+++ b/pages/farmer/flower-manage/flower-manage.vue
@@ -1,6 +1,73 @@
 <template>
-	<view>
-		
+	<view class="flow-manage">
+		<view class="top-buttons" v-if="type==='all'">
+			<view @click.stop="clickButton('add')" class="button button-add"></view>
+			<view @click.stop="clickButton('in')" class="button button-search-in"></view>
+			<view @click.stop="clickButton('unpass')" class="button button-search-unpass"></view>
+			<view @click.stop="clickButton('inpass')" class="button button-search-inpass"></view>
+			<view @click.stop="clickButton('delete')" class="button button-search-delete"></view>
+
+		</view>
+
+		<view class="p15" style="min-height: calc(100vh - 160rpx);">
+			<no-data v-if="!list||list.length==0" style="width: 100%;"></no-data>
+			<view v-for="(item,index) in list" :key="index" class="m-b-24 flow-manage-list">
+				<view class="flow-manage-list-item">
+					<view class="flex">
+						<image class="flower-img img100 m-r-6" :src="item.img" @click="previewImg(item.img)"></image>
+						<view>
+							<view class="flex">
+								<view class="title">{{item.title}}<span class="level">A级别</span></view>
+								<view class="t-red m-l-a m-r-0">
+									¥20.00/扎
+								</view>
+							</view>
+							<view class="each-list">
+								<view class="each-item">
+									<view class="label">分类</view>
+									<view class="value">卡罗拉</view>
+
+								</view>
+								<view class="each-item">
+									<view class="label">颜色</view>
+									<view class="value">红色</view>
+
+								</view>
+								<view class="each-item">
+									<view class="label">规格</view>
+									<view class="value">20支/扎</view>
+
+								</view>
+								<view class="each-item">
+									<view class="label">库存</view>
+									<view class="value">10</view>
+
+								</view>
+								<view class="each-item">
+									<view class="label">销量</view>
+									<view class="value">10</view>
+								</view>
+							</view>
+						</view>
+					</view>
+					<view class="line-gray">
+
+					</view>
+					<view class="buttons">
+						<view class="button" @click.stop="toDetailAdd(item)">复制</view>
+						<view class="button" @click.stop="buttonDelete(item)">删除</view>
+						<view class="button" @click.stop="buttonStatus(item,'off')" v-if="item.status=='UP'">下架</view>
+						<view class="button" @click.stop="buttonStatus(item,'up')" v-if="item.status=='OFF'">上架</view>
+						<view class="button" @click.stop="toDetail(item)">编辑</view>
+						<view class="button" @click.stop="changeValue(item,'price')">价格</view>
+						<view class="button" @click.stop="changeValue(item,'stock')">库存</view>
+					</view>
+				</view>
+			</view>
+		</view>
+
+		<!-- 判断是否到底了,自动吧 -->
+		<footer-msg :more="page.total>0&&page.total>page.current*page.size"></footer-msg>
 	</view>
 </template>
 
@@ -8,15 +75,226 @@
 	export default {
 		data() {
 			return {
-				
+				type: 'all',
+				query: {
+					type: ''
+				}
 			}
 		},
+		onLoad(options) {
+			this.type = options.type || 'all'
+			//todo 根据type切换查询条件
+			if (this.type === 'delete') {
+				this.listApi = '/api/supplier/flower/list/rc'
+
+			} else {
+				this.listApi = '/api/supplier/flower/list'
+				this.query.status = ''
+				if (this.type === 'inpass') {
+					this.query.status = 'PENDING'
+				}
+				if (this.type === 'in') {
+					this.query.status = 'UP'
+				}
+				if (this.type === 'unpass') {
+					this.query.status = 'REJECT'
+				}
+			}
+			this.getList()
+		},
+		onReachBottom() {
+			this.page.current += 1
+			this.getMore()
+		},
+		async onPullDownRefresh() {
+			this.page.current = 1
+			await this.getList()
+			uni.stopPullDownRefresh()
+		},
 		methods: {
-			
+			async changeValue(item, key) {
+				const res = await this.$message.confirm(`确定修改此商品的${key==='price'&&'价格'|| key==='stock'&&'库存'}吗`, {
+					editable: true
+				})
+				if(!res.content){
+					this.$message.showToast('输入不能为空')
+					return
+				}
+				var value = ''
+				if(key=='price'){
+					value = parseFloat(res.content).toFixed(2)
+				}else{
+					value = parseInt(res.content)
+				}
+				if(isNaN(value)){
+					this.$message.showToast('输入格式不正确')
+					return
+				}
+				var dto = {
+					id: item.id,
+				}
+				dto[key] = value
+
+
+				this.$message.showLoading()
+				this.$http.request('post', '/api/supplier/flower/list/' + key, {
+					data: dto
+				}).then(res => {
+					if (res.code == 0) {
+						this.$message.showToast('操作成功')
+						item[key] = value
+					}
+				}).finally(() => {
+					this.$message.hideLoading()
+				})
+			},
+			async buttonStatus(item, status) {
+				await this.$message.confirm(`确定${status==='off'?'下降':'上架'}此商品吗`)
+				this.$message.showLoading()
+				this.$http.request('get', '/api/supplier/flower/list/' + status, {
+					params: {
+						id: item.id
+					}
+				}).then(res => {
+					if (res.code == 0) {
+						this.$message.showToast('操作成功')
+						item.status = status
+						item.statusStr = (status == 'off' ? '下架' : '上架')
+					}
+				}).finally(() => {
+					this.$message.hideLoading()
+				})
+			},
+			async buttonDelete(item) {
+				await this.$message.confirm('确定删除此商品吗')
+				this.$message.showLoading()
+				this.$http.request('get', '/api/supplier/flower/list/delete', {
+					params: {
+						id: item.id
+					}
+				}).then(res => {
+					if (res.code == 0) {
+						this.$message.showToast('删除成功')
+						this.refreshList()
+					}
+				}).finally(() => {
+					this.$message.hideLoading()
+				})
+			},
+			toDetail(item) {
+				uni.navigateTo({
+					url: '/pages/farmer/flower-manage/flower-add?id=' + item.id
+				})
+			},
+			toDetailAdd(item) {
+				uni.navigateTo({
+					url: '/pages/farmer/flower-manage/flower-add?copyId=' + item.id
+				})
+			},
+			clickButton(type) {
+				if (type == 'add') {
+					//添加页面
+					uni.navigateTo({
+						url: '/pages/farmer/flower-manage/flower-add'
+					})
+				} else {
+					uni.navigateTo({
+						url: '/pages/farmer/flower-manage/flower-manage?type=' + type
+					})
+				}
+			},
 		}
 	}
 </script>
 
-<style>
+<style lang="scss" scoped>
+	.flow-manage {
+		.flow-manage-list {
+			margin: 20rpx 30rpx;
+			padding: 22rpx;
 
-</style>
+			.flow-manage-item {
+				margin-bottom: 20rpx;
+
+				.buttons {
+					display: flex;
+
+					.button {
+						margin: 0 auto;
+						width: 98rpx;
+						height: 48rpx;
+						border-radius: 24rpx;
+						border: 2rpx solid #CECECE;
+					}
+				}
+
+				.flower-img {
+					width: 128rpx;
+					height: 118rpx;
+
+				}
+
+				.each-list {
+					display: flex;
+					flex-wrap: wrap;
+
+					.each-item {
+						min-width: 30%;
+						max-width: 40%;
+						text-align: center;
+
+						.label {
+							font-weight: 400;
+							font-size: 24rpx;
+							color: #666666;
+						}
+
+						.label::after {
+							content: ": "
+						}
+
+						.value {}
+					}
+				}
+			}
+		}
+
+		.top-buttons {
+			display: flex;
+			margin: 22rpx 42rpx;
+
+			.button {
+				// flex:1;
+				margin: 0 auto;
+				width: 96rpx;
+				height: 130rpx;
+				background-size: 100% 100%;
+			}
+
+			.button-add {
+				background-image: url('@/static/images/farmer/flower/flower-mange-icon-add-flower.png');
+
+			}
+
+			.button-search-in {
+				background-image: url('@/static/images/farmer/flower/flower-mange-icon-flower-in.png');
+
+			}
+
+			.button-search-unpass {
+				background-image: url('@/static/images/farmer/flower/flower-mange-icon-flower-unpass.png');
+
+			}
+
+			.button-search-inpass {
+				background-image: url('@/static/images/farmer/flower/flower-mange-icon-flower-inpass.png');
+
+			}
+
+			.button-search-delete {
+				background-image: url('@/static/images/farmer/flower/flower-mange-icon-flower-delete.png');
+
+			}
+		}
+	}
+</style>
\ No newline at end of file

--
Gitblit v1.9.3