Browse Source

楼栋开发

maotao 3 weeks ago
parent
commit
4d9d7bbc8b
3 changed files with 112 additions and 54 deletions
  1. 2 2
      manifest.json
  2. 100 49
      pages/searchFloor/searchFloor.vue
  3. 10 3
      pages/setDept/setDept.vue

+ 2 - 2
manifest.json

@@ -123,9 +123,9 @@
123 123
             "disableHostCheck" : true,
124 124
             "proxy" : {
125 125
                 "/service" : {
126
-                    // "target" : "http://192.168.3.108", //请求的目标域名
126
+                    "target" : "http://192.168.3.108", //请求的目标域名
127 127
 
128
-                    "target" : "http://192.168.4.163", //宋程玉本地
128
+                    // "target" : "http://192.168.4.163", //宋程玉本地
129 129
                     "changeOrigin" : true, //是否跨域
130 130
                     "secure" : false
131 131
                 }

+ 100 - 49
pages/searchFloor/searchFloor.vue

@@ -8,18 +8,20 @@
8 8
 				</checkbox-group>
9 9
 			</view>
10 10
 			<view class="title">{{name}}</view>
11
+			<view class="top-right">{{num}}/{{allNum}}</view>
11 12
 		</view>
12 13
     <view class="search-keyword">
13 14
       <scroll-view class="keyword-list-box" scroll-y>
14 15
 				<checkbox-group @change="checkboxChange">
15 16
 					<view v-for="(row, index) in dataList" :key="index" class="view-box">
16
-							<checkbox class="top-check1" color="#42b983" :value="row.floor.id + 'parent'" :checked="row.checked" />
17
+							<checkbox @click="paClick(row)" class="top-check1" color="#42b983" :value="row.floor.id" :checked="row.checked" />
18
+							<view class="right-ab">{{row.num}}/{{row.children.length}}</view>
17 19
 							<uni-collapse ref="collapse" v-model="row.floor.collapseValue">
18 20
 								<uni-collapse-item :title="row.floor.floorName + '楼'">
19 21
 									<view v-for="(item, index) in row.children" :key="item.id">
20 22
 										<view class="keyword-entry">
21 23
 											<view class="keyword-text">
22
-												<checkbox class="top-check2" color="#42b983" :value="item.id" :checked="item.checked" />
24
+												<checkbox @click="chClick(item)" class="top-check2" color="#42b983" :value="item.id" :checked="item.checked" />
23 25
 												<view class="title-2">{{item.dept}}</view>
24 26
 											</view>
25 27
 										</view>
@@ -64,7 +66,10 @@
64 66
 				valueColl:false,
65 67
 				allCheck:false,
66 68
 				buildIds:[],
67
-				ids:[]
69
+				pid:[],
70
+				cid:[],
71
+				allNum:0,
72
+				num:0
68 73
       };
69 74
     },
70 75
     onLoad(options) {
@@ -83,11 +88,12 @@
83 88
       // #endif
84 89
     },
85 90
 		onShow(){
86
-			this.getBuildings();
91
+			// this.getBuildings();
87 92
 		},
88 93
     methods: {
89 94
 			// 全选
90 95
 			allCheckChange(e){
96
+				this.num = 0
91 97
 				if(e.detail.value.length>0){
92 98
 					this.dataList.forEach((item, index)=>{
93 99
 						item.checked = true
@@ -97,6 +103,8 @@
97 103
 								this.buildIds.push(i)
98 104
 							}
99 105
 						}
106
+						item.num = item.children.filter(x=>x.checked).length
107
+						this.num += item.num 
100 108
 					})
101 109
 				}else{
102 110
 					this.dataList.forEach((item, index)=>{
@@ -107,6 +115,8 @@
107 115
 								this.buildIds = []
108 116
 							}
109 117
 						}
118
+						item.num = item.children.filter(x=>x.checked).length
119
+						this.num += item.num 
110 120
 					})
111 121
 				}
112 122
 				// this.buildIds = this.buildIds.filter(v => v.indexOf('parent')==-1);
@@ -121,11 +131,51 @@
121 131
 					delta: 1,
122 132
 				})
123 133
 			},
134
+			paClick(row){
135
+				if(row.checked){
136
+					row.checked = false
137
+				}else{
138
+					row.checked = true
139
+				}
140
+				for(let item of row.children){
141
+					if (row.checked) {
142
+						this.$set(item, 'checked', true)
143
+					} else {
144
+						this.$set(item, 'checked', false)
145
+					}
146
+				}
147
+				this.num = 0
148
+				for (let i of this.dataList) {
149
+					i.num = i.children.filter(x=>x.checked).length
150
+					this.num += i.num
151
+				}	
152
+				console.log(44545454,this.dataList)	
153
+			},
154
+			chClick(row){
155
+				this.num = 0
156
+				if(row.checked){
157
+					row.checked = false
158
+				}else{
159
+					row.checked = true
160
+				}
161
+				for (let i of this.dataList) {
162
+					i.num = i.children.filter(x=>x.checked).length
163
+					this.num += i.num
164
+				}	
165
+			},
124 166
       // 确认
125 167
       confirm() {
126
-        // const dataList = this.buildIds.filter(v => v.indexOf('parent')==-1);
127
-        console.log(3333,this.buildIds);
128
-				if (this.buildIds.length === 0) {
168
+				let data = uni.getStorageSync("setDepts")
169
+				let dataList = []
170
+				this.dataList.forEach(i=>{
171
+					for(let i of i.children){
172
+						if(i.checked){
173
+							dataList.push(i)
174
+						}
175
+					}
176
+				})
177
+        console.log(3333,dataList);
178
+				if (dataList.length === 0) {
129 179
           this.models = {
130 180
             disjunctor: true,
131 181
             title: "提示",
@@ -136,74 +186,64 @@
136 186
             },
137 187
           };
138 188
         } else {
139
-					uni.setStorageSync("setDepts", this.buildIds)
189
+					let allData = null
190
+					let data = uni.getStorageSync("setDepts")
191
+					if(data){
192
+						data.forEach(i=>{
193
+							dataList.push(i)
194
+						})
195
+						allData = dataList
196
+					}else{
197
+						allData = dataList
198
+					}
199
+					let newList2 = []
200
+					let newList3 = []
201
+					allData.forEach((item) => {
202
+						if (!newList2.includes(item.id)) {
203
+							newList2.push(item.id)
204
+						}
205
+					})
206
+					newList2.forEach(i=>{
207
+						newList3.push(allData.find(x=> x.id == i))
208
+					})
209
+					// console.log(555,newList3)
210
+					uni.setStorageSync("setDepts", newList3)
140 211
           uni.navigateTo({
141 212
             url: `../setDept/setDept?configName=${this.configName}&id=${this.id}&changedept=${this.changedept}`,
142 213
           });
143 214
         }
144 215
       },
216
+
145 217
 			// 选择楼栋
146 218
 			itemClick(item){
147
-				console.log(3333,item)
219
+
148 220
 			},
149 221
 			changeColl(){
150 222
 				
151 223
 			},
152 224
       // 选择楼栋
153 225
       checkboxChange: function(e) {
154
-				// this.buildIds = e.detail.value
155
-				this.buildIds = []
156
-				// for (let i of dataList){
157
-				// 	for(let item of i.children){
158
-				// 		for(let x of e.detail.value){
159
-				// 			if(x == item.id){
160
-				// 				this.buildIds.push(i)
161
-				// 			}else{
162
-								
163
-				// 			}
164
-				// 		}
165
-				// 	}
166
-				// }
167
-				
168
-				if(e.detail.value.length>0){
169
-					this.dataList.forEach((item, index)=>{
170
-						if(item.children && item.children.length>0){
171
-							for(let i of item.children){
172
-								if(e.detail.value.includes(i.id)){
173
-									this.buildIds.push(i)
174
-								}
175
-							}
176
-						}
177
-					})
178
-				}
179
-				console.log(888,this.buildIds)
180
-     //    var dataList = this.dataList,
181
-     //        values = e.detail.value;
182
-     //    for (let i of dataList) {
183
-					// for(let item of i.children){
184
-					// 	if (values.includes(item.id)) {
185
-					// 	  this.$set(item, 'checked', true)
186
-					// 	} else {
187
-					// 	  this.$set(item, 'checked', false)
188
-					// 	}
189
-					// }
190
-     //    }
226
+
191 227
       },
192 228
       //获取楼栋列表
193 229
       getBuildings() {
230
+				this.allNum = 0
194 231
 				let data = uni.getStorageSync("floorList")
195 232
 				data.forEach((item, index)=>{
233
+					item.num = 0
196 234
 					item.floor.collapseValue = []
197
-					item.floor.id = item.floor.id.toString()
198
-					item.floor.checked = false
235
+					item.floor.id = item.floor.id.toString() + 'parent'
236
+					item.checked = false
237
+					this.allNum += item.children.length
199 238
 					if(item.children && item.children.length>0){
200 239
 						for(let i of item.children){
201 240
 							i.checked = false
202 241
 							i.id = i.id.toString()
242
+							i.floor.id = i.floor.id.toString() + 'parent'
203 243
 						}
204 244
 					}
205 245
        })
206
-			 console.log(3232131,data)
246
+			 console.log(3232131,this.allNum)
207 247
        this.dataList = data || [];
208 248
       }
209 249
     },
@@ -228,6 +268,10 @@
228 268
 		align-items: center;
229 269
 		justify-content: center;
230 270
 		position: relative;
271
+		.top-right{
272
+			position: absolute;
273
+			right: 40rpx;
274
+		}
231 275
 	}
232 276
 	.df-all{
233 277
 		position: absolute;
@@ -251,6 +295,13 @@
251 295
 		top: 20rpx;
252 296
 		z-index: 999;
253 297
 	}
298
+	.right-ab{
299
+		position: absolute;
300
+		right: 64rpx;
301
+		top: 28rpx;
302
+		z-index: 999;
303
+		color: #303133;
304
+	}
254 305
 	.title{
255 306
 		padding: 30rpx;
256 307
 		font-size: 32rpx;

+ 10 - 3
pages/setDept/setDept.vue

@@ -2,8 +2,8 @@
2 2
   <view class="setDept">
3 3
     <view class="page_tab">
4 4
       <view class="page_tab_bar active">
5
+				<view class="dept_title">{{ configName }}</view>
5 6
         <view class="tab_dept">
6
-          {{ configName}}
7 7
           <button type="default" size="mini" class="addDept" @click="addDeptClick">
8 8
             添加科室
9 9
           </button>
@@ -350,10 +350,17 @@
350 350
           width: 100%;
351 351
           background-color: transparent;
352 352
         }
353
-
353
+				
354
+				.dept_title{
355
+					font-size: 30rpx;
356
+					width: 220rpx;
357
+					overflow: hidden;
358
+					white-space: nowrap; 
359
+					text-overflow: ellipsis;
360
+				}
361
+				
354 362
         .tab_dept {
355 363
           position: relative;
356
-
357 364
           .addDept {
358 365
             white-space: nowrap;
359 366
             margin: 0;