From b07d5f16634fc4a695fa8e6f6b18c33806f2b05a Mon Sep 17 00:00:00 2001
From: xuxy <1059738716@qq.com>
Date: 星期五, 28 六月 2024 16:28:32 +0800
Subject: [PATCH] update 合伙人的功能

---
 sub_pages/supplier/flower-manage/flower-add.vue |  108 ++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 100 insertions(+), 8 deletions(-)

diff --git a/sub_pages/farmer/flower-manage/flower-add.vue b/sub_pages/supplier/flower-manage/flower-add.vue
similarity index 81%
rename from sub_pages/farmer/flower-manage/flower-add.vue
rename to sub_pages/supplier/flower-manage/flower-add.vue
index c520b9e..2bbf009 100644
--- a/sub_pages/farmer/flower-manage/flower-add.vue
+++ b/sub_pages/supplier/flower-manage/flower-add.vue
@@ -3,29 +3,38 @@
 		<view>
 			<view class="form-item">
 				<view class="label required">商品分类</view>
-				<view class="m-l-a m-r-0 flex " :class="[!dto.category?'desc-gray':'']" @click="()=>{
+				<!-- 				<view class="m-l-a m-r-0 flex " :class="[!dto.category?'desc-gray':'']" @click="()=>{
 					// show_select_category=true
 					$refs.picker_category.showPicker()
 				}">
 					<view>{{dto.categoryStr||dto.category || '请选择'}}</view>
 					<u-icon class="m-l-a" name="arrow-right"></u-icon>
+				</view> -->
+				<view class="m-l-a m-r-0 flex " :class="[!dto['category']?'desc-gray':'']">
+					<uni-data-picker @change="(e)=>{PickCategory(dto,e)}" placeholder="" @search="updateSearch"
+						:localdata="columns_categorys_picker">
+						{{dto.categoryStr||dto.category || '请选择'}}
+					</uni-data-picker>
+					<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.name" placeholder="请输入商品名称" style="margin-top: 16px;text-align: right;"></input>
+					<input v-model="dto.name" placeholder="请选择分类" disabled
+						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.unit" placeholder="请输入商品单位" style="margin-top: 16px;text-align: right;"></input>
+					<input v-model="dto.unit" placeholder="请选择分类" disabled
+						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.color?'desc-gray':'']" @click="()=>{
@@ -35,7 +44,7 @@
 					<u-icon class="m-l-a" name="arrow-right"></u-icon>
 				</view> -->
 				<view class="m-l-a m-r-0 flex">
-					<input v-model="dto.color" placeholder="请输入商品颜色"
+					<input v-model="dto.color" placeholder="请选择分类" disabled
 						style="margin-top: 16px;text-align: right;"></input>
 				</view>
 			</view>
@@ -202,8 +211,8 @@
 				id: '',
 				dto: {
 					id: '',
-					name: '',
 					category: '',
+					name: '',
 					unit: '',
 					color: '',
 					cover: '',
@@ -217,6 +226,9 @@
 				show_select_category: false,
 				show_select_level: false,
 				columns_categorys: [],
+				columns_categorys_picker: [],
+				columns_categorys_dict: {},
+				columns_categorys_search: '',
 				columns_levels: [],
 				// 	columns_params: [], //弹窗选择具体的值
 				// cancel: {
@@ -232,13 +244,16 @@
 				// ]
 			}
 		},
+
 		async onLoad(options) {
 			//tree
 			this.$http.request('get', '/api/flower/category/tree', {}).then(res => {
 				var data = res.data
 				this.columns_categorys = data || []
-				console.log('columns_categorys', this.columns_categorys)
-
+				// console.log('columns_categorys', this.columns_categorys)
+				//递归mao
+				this.mapCategoryTree(this.columns_categorys_picker, this.columns_categorys)
+				// console.log('columns_categorys_picker', this.columns_categorys_picker)
 				// this.columns_categorys = [data || []]
 				// this.columns_categorys[0].unshift({
 				// 	label: '全部',
@@ -288,6 +303,79 @@
 		},
 
 		methods: {
+			async updateSearch(search) {
+				this.columns_categorys_search = search || ''
+				this.columns_categorys_picker = []
+				this.mapCategoryTree(this.columns_categorys_picker, this.columns_categorys)
+				console.log('change updateSearch', search, this.columns_categorys_picker)
+			},
+			async PickCategory(item, e) {
+				console.log('PickCategory', item, e)
+				if (e.detail.value) {
+					if (this.dto.category) {
+						await this.$message.confirm('修改分类将清空商品参数,确定修改吗')
+					} {
+						var currentnode = this.columns_categorys_dict['@' + e.detail.value[e.detail.value.length - 1]
+							.value]
+						// console.log('currentnode',currentnode,this.columns_categorys_dict,'@'+e.detail.value[e.detail.value.length - 1].value)
+						this.dto.categoryStr = currentnode.name
+						this.dto.category = currentnode.id
+						this.dto.name = currentnode.name
+						this.dto.unit = currentnode.unit
+						this.dto.color = currentnode.color
+						//递归获取category的其他数据,用来做map?
+						this.$message.showLoading()
+						await this.refresh_category()
+						this.$message.hideLoading()
+					}
+				}
+			},
+			mapCategoryTree(node, arr) {
+				var has = true
+				if (arr) {
+					var hasTrue = false
+					if(!this.columns_categorys_search){
+						hasTrue = true
+					}
+					for (var item of arr) {
+						has = true
+						if (this.columns_categorys_search) {
+							has = false
+						}
+						var tmp = {
+							...item,
+							name: item.name,
+							text: item.name,
+							label: item.name,
+							value: item.id,
+							children: undefined
+						}
+						if (item.name == this.columns_categorys_search) {
+							has = true
+						}
+						this.columns_categorys_dict['@' + item.id] = item
+						if (item.children && item.children.length > 0) {
+							tmp.children = []
+							var childrenhas = this.mapCategoryTree(tmp.children, item.children)
+							if (childrenhas) {
+								has = true
+								hasTrue = true
+							}
+						} else {
+							tmp.children = undefined
+						}
+						if (hasTrue || has) {
+							console.log('has ',tmp)
+							node.push(tmp)
+							
+						} else {
+							console.log('not has ',tmp)
+						}
+
+					}
+				}
+				return hasTrue
+			},
 			async confirmPickerCategory(picker) {
 				console.log('confirmPickerCategory', picker)
 				var id = picker.value
@@ -298,6 +386,10 @@
 					}
 					this.dto.categoryStr = name
 					this.dto.category = id
+					// name: '',
+					// unit: '',
+					// color: '',
+					//递归获取category的其他数据,用来做map?
 					this.$message.showLoading()
 					await this.refresh_category()
 					this.$message.hideLoading()

--
Gitblit v1.9.3