From 2e05e553f0caadf3d4ed9def5c922709f6ff942e Mon Sep 17 00:00:00 2001
From: xuxy <1059738716@qq.com>
Date: 星期一, 24 六月 2024 17:45:24 +0800
Subject: [PATCH] 1

---
 static/images/farmer/flower/flower-mange-icon-flower-inpass.png |    0 
 common/self.scss                                                |    3 
 static/images/farmer/flower/flower-mange-icon-flower-unpass.png |    0 
 pages.json                                                      |    8 
 pages/farmer/flower-manage/flower-add.vue                       |  436 +++++++++++++++++++++++++++++++++++++++
 pages/farmer/flower-manage/flower-manage.vue                    |  200 +++++++++++++++++
 static/images/farmer/flower/flower-mange-icon-flower-delete.png |    0 
 static/images/farmer/flower/flower-mange-icon-add-flower.png    |    0 
 static/images/farmer/flower/flower-mange-icon-flower-in.png     |    0 
 9 files changed, 641 insertions(+), 6 deletions(-)

diff --git a/common/self.scss b/common/self.scss
index 2f1ba42..d99fa0b 100644
--- a/common/self.scss
+++ b/common/self.scss
@@ -945,3 +945,6 @@
 .before-line::before{
 	border-top: 2rpx solid #EEEEEE;
 }
+.img100{
+	background-size: 100% 100%;
+}
\ No newline at end of file
diff --git a/pages.json b/pages.json
index a99cd4e..da97997 100644
--- a/pages.json
+++ b/pages.json
@@ -80,6 +80,14 @@
 				"navigationBarBackgroundColor": "#E6F2EB"
 				
 			}
+		},
+		{
+			"path" : "pages/farmer/flower-manage/flower-add",
+			"style" : 
+			{
+				"navigationBarTitleText" : "",
+				"enablePullDownRefresh" : false
+			}
 		}
 	],
 	"globalStyle": {
diff --git a/pages/farmer/flower-manage/flower-add.vue b/pages/farmer/flower-manage/flower-add.vue
new file mode 100644
index 0000000..bf2fb5f
--- /dev/null
+++ b/pages/farmer/flower-manage/flower-add.vue
@@ -0,0 +1,436 @@
+<template>
+	<view class="container-page">
+		<view>
+			<view class="form-item">
+				<view class="label required">商品分类</view>
+				<view class="m-l-a m-r-0 flex " :class="[!dto.applicationType?'desc-gray':'']" @click="()=>{
+					if(!id){
+						show_select_type=true
+					}
+				}">
+					<view>{{dto.applicationTypeStr||dto.applicationType || '请选择'}}</view>
+					<u-icon class="m-l-a" name="arrow-right"></u-icon>
+				</view>
+
+			</view>
+			<view class="form-item before-line">
+				<view class="label required">商品单位</view>
+				<view class="m-l-a m-r-0 flex">
+					<input v-model="dto.applicationTitle" placeholder="请输入店铺名称"
+						style="margin-top: 16px;text-align: right;"></input>
+
+				</view>
+			</view>
+			<view class="form-item before-line">
+				<view class="label required">商品颜色</view>
+				<view class="m-l-a m-r-0 flex " :class="[!dto.applicationType?'desc-gray':'']" @click="()=>{
+					if(!id){
+						show_select_type=true
+					}
+				}">
+					<view>{{dto.applicationTypeStr||dto.applicationType || '请选择'}}</view>
+					<u-icon class="m-l-a" name="arrow-right"></u-icon>
+				</view>
+
+			</view>
+			<view class="line-gray-big"></view>
+
+			<view class="form-item">
+				<view class="label required">列表封面图(130*120px)</view>
+				<view class="m-l-a m-r-0 flex">
+					<view class="component-button-upload" @click="uploadIcon('icon')"
+						:style="{'background-image':dto.icon&&`url('${dto.icon}')`||''}">
+
+					</view>
+				</view>
+			</view>
+			<view class="form-item before-line">
+				<view class="label required">商品轮播图(300*160px)</view>
+				<view class="m-l-a m-r-0 flex">
+					<view class="component-button-upload" @click="uploadIcon('icon')"
+						:style="{'background-image':dto.icon&&`url('${dto.icon}')`||''}">
+
+					</view>
+				</view>
+			</view>
+			<view class="line-gray-big"></view>
+
+
+			<view class="form-item before-line">
+				<view class="label required">售价</view>
+				<view class="m-l-a m-r-0 flex">
+					<input v-model="dto.applicationTitle" placeholder="请输入数字" type="digit"
+						style="margin-top: 16px;text-align: right;"></input>
+				</view>
+			</view>
+			<view class="form-item before-line">
+				<view class="label required">库存</view>
+				<view class="m-l-a m-r-0 flex">
+					<input v-model="dto.applicationTitle" placeholder="请输入数字" type="number"
+						style="margin-top: 16px;text-align: right;"></input>
+				</view>
+			</view>
+
+			<view class="line-gray-big"></view>
+
+			<view class="form-item ">
+				<view class="label required">商品参数详情</view>
+				<view class="m-l-a m-r-0 flex " :class="[!dto.applicationType?'desc-gray':'']" @click="()=>{
+					if(!id){
+						show_select_type=true
+					}
+				}">
+					<view>{{dto.applicationTypeStr||dto.applicationType || '去设置'}}</view>
+					<u-icon class="m-l-a" name="arrow-right"></u-icon>
+				</view>
+
+			</view>
+			<view class="line-gray-big"></view>
+			<view class="form-item before-line">
+				<view class="label required">商品等级</view>
+				<view class="m-l-a m-r-0 flex " :class="[!dto.applicationType?'desc-gray':'']" @click="()=>{
+					if(!id){
+						show_select_type=true
+					}
+				}">
+					<view>{{dto.applicationTypeStr||dto.applicationType || '请选择'}}</view>
+					<u-icon class="m-l-a" name="arrow-right"></u-icon>
+				</view>
+
+			</view>
+
+
+			<view class="form-item before-line">
+				<view class="label required">商品视频</view>
+				<view class="m-l-a m-r-0 flex">
+					<view class="component-button-upload m-r-15" @click="uploadIcon('icon')"
+						:style="{'background-image':dto.icon&&`url('${dto.icon}')`||''}">
+
+					</view>
+
+				</view>
+			</view>
+
+
+
+
+			<view class="button-green-1 m-t-20 button-fixed-bottom before-line" @click="submit">
+				提交审核
+			</view>
+
+		</view>
+
+
+		<u-picker @confirm="select_type" keyName="label" @cancel="show_select_type=false" :show="show_select_type"
+			:columns="columns_types"></u-picker>
+
+		<u-picker @confirm="select_user" keyName="label" @cancel="show_select_user=false" :show="show_select_user"
+			:columns="userListCols"></u-picker>
+
+
+	</view>
+</template>
+
+<script>
+	import environments from '@/environments'
+	import xflSelect from '@/components/xfl-select/xfl-select.vue'; //导入
+
+	import {
+		mapState
+	} from 'vuex'
+
+	export default {
+
+		data() {
+			return {
+				id: '',
+				orderId: '',
+				show_addlog: false,
+				log_remarks: '',
+				refresh: false,
+				api: '',
+				dto: {
+					id: '',
+					applicationType: '',
+				},
+				show_select_type: false,
+				show_select_user: false,
+				columns_types: [],
+				audit_remarks: '',
+				audit_result: false,
+				show_audit: false,
+
+
+				//审核方式
+				shTypeList: [{
+						name: '身份证',
+						disabled: false
+					},
+					{
+						name: '营业执照',
+						disabled: false
+					}
+				],
+				radiovalue1: '身份证',
+
+			}
+		},
+		onLoad(options) {
+			if (options.id) {
+				this.id = options.id
+				this.getDetail()
+			} else {
+				// this.$http.request('get', '/api/personnel/employee/list', {
+				// 	params: {
+				// 		size: 4000,
+				// 		current: 1
+				// 	}
+				// }).then(res => {
+				// 	this.userListAll = (res.data && res.data.records || []).map(item => {
+				// 		item.label = item.label || item.name || item.nickName || item.loginName || '-'
+				// 		return item
+				// 	})
+				// 	var index = 0
+				// 	this.userList = this.userListAll.map(item => {
+				// 		index += 1
+				// 		return `${index}.` + item.label + (item.tel ? `(${item.tel})` : '')
+				// 	})
+				// 	var arr = this.userListAll.map(item => {
+				// 		return {
+				// 			label: item.label + (item.tel ? `(${item.tel})` : ''),
+				// 			value: item.id
+				// 		}
+				// 	})
+				// 	this.userListCols = [arr]
+
+				// })
+
+
+				this.$http.request('get', '/api/dict/value', {
+					params: {
+						typeCode: 'APPLICATION_TYPE'
+					}
+				}).then(res => {
+					var data = res.data
+					this.columns_types = [data || []]
+					this.columns_types[0].unshift({
+						label: '全部',
+						value: ''
+					})
+
+				})
+			}
+
+		},
+
+		methods: {
+
+
+			select_type(e) {
+				this.show_select_type = false
+				this.dto.applicationTypeStr = e.value[0].label
+				this.dto.applicationType = e.value[0].value
+			},
+			select_user(e) {
+				this.show_select_user = false
+				this.dto.auditPersonStr = e.value[0].label
+				this.dto.auditPersonId = e.value[0].value
+			},
+
+			async getDetail() {
+				this.$message.showLoading()
+				const {
+					code,
+					data
+				} = await this.$http.request('get', "/api/app/application/get/" + this.id, {})
+				if (code == 0) {
+					this.dto = {
+						...data,
+
+					}
+					if (this.dto.applicationDate) {
+						this.dto.applicationDate = this.$util.toDate(new Date(this.dto.applicationDate))
+					}
+					// console.log('this.dto', this.dto)
+
+				}
+
+				this.$message.hideLoading()
+
+			},
+			async submit() {
+				if (!this.dto.applicationType) {
+					this.$message.showToast('未选择类型')
+					return
+				}
+				if (!this.dto.applicationTitle) {
+					this.$message.showToast('未填写申请主题')
+					return
+				}
+				if (!this.dto.auditPersonId) {
+					this.$message.showToast('未选择审批人')
+					return
+				}
+				await this.$message.confirm(`是否确定提交申请${this.auditPersonName?(",审批人为:"+this.auditPersonName):""}`)
+
+				// this.$message.showToast('1')
+				// return
+				var dto = {
+					...this.dto,
+					applicationDate: this.$util.toDate(new Date()),
+					applicantId: this.currentInfo.id
+				}
+				this.$message.showLoading()
+				const re = await this.$http.request('post', '/api/app/application/create', {
+					data: dto
+				})
+				this.$message.hideLoading()
+				if (re.code == 2000 || re.code == 0) {
+					this.$message.showToast('操作成功')
+					//需要标记加一下
+					this.$store.dispatch('sign_add', 'application');
+
+					this.backpage()
+				}
+			},
+			async submitAudit() {
+				var url = ''
+				if (this.audit_result) {
+					url = '/api/app/application/audit/pass'
+				} else {
+					url = '/api/app/application/audit/reject'
+				}
+				var dto = {
+					id: this.id,
+					auditRemarks: this.audit_remarks
+				}
+				this.show_audit = false
+				this.$message.showLoading()
+				const re = await this.$http.request('post', url, {
+					data: dto
+				})
+				this.$message.hideLoading()
+				if (re.code == 2000 || re.code == 0) {
+					this.$message.showToast('操作成功')
+					this.$store.dispatch('sign_add', 'application');
+
+					this.getDetail()
+				}
+			},
+			uploadIcon(key) {
+				const that = this
+				uni.chooseImage({
+					count: 1, // 最多可以选择的图片张数,默认9
+					sizeType: ['original', 'compressed'], //original 原图,compressed 压缩图,默认二者都有
+					sourceType: ['camera', 'album'], //album 从相册选图,camera 使用相机,默认二者都有。如需直接开相机或直接选相册,请只使用一个选项
+					success: function({
+						errMsg,
+						tempFiles
+					}) {
+						if (errMsg === 'chooseImage:ok') {
+							// console.log(tempFiles[0])
+							that.$message.showLoading()
+							that.$http.upload(tempFiles[0].path).then(async res => {
+								var pic = res.data && res.data.length > 0 && res.data[
+										0]
+									.url || ''
+								that.$message.hideLoading()
+								that.dto[key] = pic || ''
+								that.$forceUpdate()
+							}).catch(res => {
+								that.$message.hideLoading()
+
+							})
+						}
+					}
+				})
+			},
+
+		},
+		computed: {
+			...mapState(['currentInfo'])
+		},
+		components: {
+			xflSelect
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.form-item {
+		// padding: 40rpx;
+		border-bottom: 1px solid #F3F3F3;
+		display: flex;
+		// height: 100px;
+
+		.label {
+			width: 300rpx;
+			line-height: 60px;
+
+		}
+
+		.flex {
+			line-height: 60px;
+
+			.flex1 {
+				flex: 1;
+				text-align: center;
+				color: var(--selfblue)
+			}
+
+
+		}
+	}
+
+	.form-item.bottom-border-no {
+		border-bottom: none;
+	}
+
+	.container-page {
+		padding: 40rpx;
+		background-color: #FFFFFF;
+		// min-height: calc(100vh - 80rpx);
+		min-height: 100vh;
+	}
+
+	.style {
+		width: fit-content;
+		margin: 0 auto;
+		line-height: 64rpx;
+		border-radius: 8rpx;
+		padding-left: 20rpx;
+		padding-right: 20rpx;
+		// padding-top: 5rpx;
+		// padding-bottom: 5rpx;
+		border: 2rpx solid var(--selfblue);
+		background-color: var(--selfbluebg);
+		min-width: 100rpx;
+	}
+
+
+	.style-1 {
+		border: 1px solid rgb(122, 187, 255);
+		border: 1px solid #409EFF;
+		color: #409EFF;
+		background-color: rgb(240, 247, 255);
+	}
+
+	.style-2 {
+		border: 1px solid rgb(255, 184, 78);
+		border: 1px solid #FE9044;
+		color: #FE9044;
+		background-color: rgb(255, 247, 235);
+	}
+
+	.style-3 {
+		border: 1px solid #19be6b;
+		color: #19be6b;
+		background-color: rgb(231, 244, 238);
+	}
+
+	.style-4 {
+		border: 1px solid #F56c6c;
+		color: #F56c6c;
+		background-color: rgb(254, 243, 243);
+	}
+</style>
\ No newline at end of file
diff --git a/pages/farmer/flower-manage/flower-manage.vue b/pages/farmer/flower-manage/flower-manage.vue
index 8183fd0..a539a1e 100644
--- a/pages/farmer/flower-manage/flower-manage.vue
+++ b/pages/farmer/flower-manage/flower-manage.vue
@@ -1,6 +1,72 @@
 <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 class="button button-search-in"></view>
+			<view class="button button-search-unpass"></view>
+			<view class="button button-search-inpass"></view>
+			<view 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">复制</view>
+						<view class="button">删除</view>
+						<view class="button">下架</view>
+						<view class="button" @click.stop="toDetail(item)">编辑</view>
+						<view class="button">价格</view>
+						<view class="button">库存</view>
+					</view>
+				</view>
+			</view>
+		</view>
+
+		<!-- 判断是否到底了,自动吧 -->
+		<footer-msg :more="page.total>0&&page.total>page.current*page.size"></footer-msg>
 	</view>
 </template>
 
@@ -8,15 +74,137 @@
 	export default {
 		data() {
 			return {
-				
+				type: 'all',
+				query: {
+					type: ''
+				}
 			}
 		},
+		onLoad(options) {
+			this.type = options.type || 'all'
+			//todo 根据type切换查询条件
+			this.listApi = '/api/ua/announcement/list'
+			this.getList()
+		},
+		onReachBottom() {
+			this.page.current += 1
+			this.getMore()
+		},
+		async onPullDownRefresh() {
+			this.page.current = 1
+			await this.getList()
+			uni.stopPullDownRefresh()
+		},
 		methods: {
-			
+			toDetail(item) {
+				uni.navigateTo({
+					url: '/pages/farmer/flower-manage/flower-add?id=' + 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
diff --git a/static/images/farmer/flower/flower-mange-icon-add-flower.png b/static/images/farmer/flower/flower-mange-icon-add-flower.png
new file mode 100644
index 0000000..f260381
--- /dev/null
+++ b/static/images/farmer/flower/flower-mange-icon-add-flower.png
Binary files differ
diff --git a/static/images/farmer/flower/flower-mange-icon-flower-delete.png b/static/images/farmer/flower/flower-mange-icon-flower-delete.png
new file mode 100644
index 0000000..0b836ce
--- /dev/null
+++ b/static/images/farmer/flower/flower-mange-icon-flower-delete.png
Binary files differ
diff --git a/static/images/farmer/flower/flower-mange-icon-flower-in.png b/static/images/farmer/flower/flower-mange-icon-flower-in.png
new file mode 100644
index 0000000..07ef84c
--- /dev/null
+++ b/static/images/farmer/flower/flower-mange-icon-flower-in.png
Binary files differ
diff --git a/static/images/farmer/flower/flower-mange-icon-flower-inpass.png b/static/images/farmer/flower/flower-mange-icon-flower-inpass.png
new file mode 100644
index 0000000..e0e3b17
--- /dev/null
+++ b/static/images/farmer/flower/flower-mange-icon-flower-inpass.png
Binary files differ
diff --git a/static/images/farmer/flower/flower-mange-icon-flower-unpass.png b/static/images/farmer/flower/flower-mange-icon-flower-unpass.png
new file mode 100644
index 0000000..18e1ed9
--- /dev/null
+++ b/static/images/farmer/flower/flower-mange-icon-flower-unpass.png
Binary files differ

--
Gitblit v1.9.3