From d91c23a3dc8cb22c0a5b2bbb5a74c6aac37469b5 Mon Sep 17 00:00:00 2001
From: xuxy <1059738716@qq.com>
Date: 星期三, 03 七月 2024 11:35:02 +0800
Subject: [PATCH] update 分类过滤

---
 sub_pages/supplier/flower-manage/flower-add.vue |   78 ++++++++++++++++++++++++++++++---------
 1 files changed, 60 insertions(+), 18 deletions(-)

diff --git a/sub_pages/supplier/flower-manage/flower-add.vue b/sub_pages/supplier/flower-manage/flower-add.vue
index 2bbf009..b976ee1 100644
--- a/sub_pages/supplier/flower-manage/flower-add.vue
+++ b/sub_pages/supplier/flower-manage/flower-add.vue
@@ -11,11 +11,19 @@
 					<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">
+					<!-- 	<uni-data-picker ref="picker_category" @change="(e)=>{PickCategory(dto,e)}" placeholder=""
+						@search="updateSearch" :filter="true" :localdata="columns_categorys_picker">
 						{{dto.categoryStr||dto.category || '请选择'}}
-					</uni-data-picker>
-					<u-icon class="m-l-a" name="arrow-right"></u-icon>
+					</uni-data-picker> -->
+					<tree-filter ref="picker_category" @change="(e)=>{PickCategory(dto,e)}" placeholder=""
+						@search="updateSearch" :filter="true" :localdata="columns_categorys_picker"
+						selectConfirmTitle="">
+						<view class="flex">
+							<view>{{dto.categoryStr||dto.category || '请选择'}}</view>
+							<u-icon class="m-l-a" name="arrow-right"></u-icon>
+						</view>
+
+					</tree-filter>
 				</view>
 			</view>
 			<view class="form-item before-line">
@@ -191,14 +199,16 @@
 				<view class="button-green" @click="closeParamPop">返回</view>
 			</view>
 		</uni-popup>
-		<dying318picker :picker-list="columns_categorys" ref="picker_category" @confirm="confirmPickerCategory">
-		</dying318picker>
+		<!-- 		<dying318picker :picker-list="columns_categorys" ref="picker_category" @confirm="confirmPickerCategory">
+		</dying318picker> -->
 	</view>
 </template>
 
 <script>
 	import environments from '@/environments'
 	import dying318picker from '@/components/dying318-picker/Picker.vue'
+	import treeFilter from '@/components/tree-filter/tree-filter.vue'
+
 
 	import {
 		mapState
@@ -308,16 +318,31 @@
 				this.columns_categorys_picker = []
 				this.mapCategoryTree(this.columns_categorys_picker, this.columns_categorys)
 				console.log('change updateSearch', search, this.columns_categorys_picker)
+				this.$refs.picker_category.selectedClear()
 			},
 			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)
+					var currentnode = this.columns_categorys_dict['@' + e.detail.value[e.detail.value.length - 1]
+						.value]
+					let tmpe = e
+					if (this.dto.category && this.dto.category !== currentnode.id) {
+						this.$message.confirm('修改分类将清空商品参数,确定修改吗').then(async res => {
+							// 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()
+						}).catch(e1 => {
+							console.log('this.$refs.picker_category', this.$refs.picker_category)
+							this.$refs.picker_category.onchange(tmpe.detail.value)
+						})
+					} else {
 						this.dto.categoryStr = currentnode.name
 						this.dto.category = currentnode.id
 						this.dto.name = currentnode.name
@@ -334,7 +359,7 @@
 				var has = true
 				if (arr) {
 					var hasTrue = false
-					if(!this.columns_categorys_search){
+					if (!this.columns_categorys_search) {
 						hasTrue = true
 					}
 					for (var item of arr) {
@@ -352,6 +377,7 @@
 						}
 						if (item.name == this.columns_categorys_search) {
 							has = true
+							hasTrue = true
 						}
 						this.columns_categorys_dict['@' + item.id] = item
 						if (item.children && item.children.length > 0) {
@@ -364,13 +390,28 @@
 						} else {
 							tmp.children = undefined
 						}
-						if (hasTrue || has) {
-							console.log('has ',tmp)
+
+						if (has) {
+							console.log('has ', tmp, hasTrue, has)
 							node.push(tmp)
-							
 						} else {
-							console.log('not has ',tmp)
+
 						}
+						if (!has && hasTrue) {
+							//说明是这个节点有的,需要判断是否需要删除
+							if (!tmp.children || tmp.children.length == 0) {
+
+							} else {
+								console.log('has ', tmp, hasTrue, has)
+								node.push(tmp)
+							}
+						}
+						// if (hasTrue || has) {
+						// 	node.push(tmp)
+
+						// } else {
+						// 	console.log('not has ', tmp)
+						// }
 
 					}
 				}
@@ -568,7 +609,8 @@
 			}
 		},
 		components: {
-			dying318picker
+			dying318picker,
+			treeFilter
 		}
 	}
 </script>

--
Gitblit v1.9.3