From 3bc055f2ee9e813db0f08c5aefc4799be943f77f Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期一, 23 十二月 2024 19:38:57 +0800
Subject: [PATCH] 添加选择机构功能

---
 pages/home/home.vue                                            |   89 +++++++++++++-
 uni_modules/uni-section/components/uni-section/uni-section.vue |  139 +++++++++++++++++++++++
 uni_modules/uni-section/readme.md                              |   33 +++++
 pages.json                                                     |   13 +
 uni_modules/uni-section/changelog.md                           |    0 
 App.vue                                                        |    4 
 uni_modules/uni-section/package.json                           |   79 +++++++++++++
 7 files changed, 347 insertions(+), 10 deletions(-)

diff --git a/App.vue b/App.vue
index a9df53f..0864064 100644
--- a/App.vue
+++ b/App.vue
@@ -218,6 +218,10 @@
 		height: 60upx;
 		text-align: center;
 		line-height: 60upx;
+	}
+	
+	.uni-app--showtopwindow [data-page="pages/home/home"] uni-page-head {
+		display: none;
 	}
 	
 	.text-light {
diff --git a/pages.json b/pages.json
index a20e604..9c5ca09 100644
--- a/pages.json
+++ b/pages.json
@@ -1,4 +1,12 @@
-{
+{
+	// "easycom": {
+	// 	"autoscan": true,
+	// 	"custom": {
+	// 		// uni-ui 瑙勫垯濡備笅閰嶇疆
+	// 		"^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue"
+	// 	}
+	// },	
+	
 	"pages": [ //pages鏁扮粍涓涓�椤硅〃绀哄簲鐢ㄥ惎鍔ㄩ〉锛屽弬鑰冿細https://uniapp.dcloud.io/collocation/pages
 		{
 			"path": "pages/login/login",
@@ -9,7 +17,8 @@
 		{
 			"path": "pages/home/home",
 			"style": {
-				"navigationBarTitleText": "涓� 椤�"
+				"navigationBarTitleText": "涓� 椤�",
+				"navigationStyle": "custom"
 			}
 		},
 		{
diff --git a/pages/home/home.vue b/pages/home/home.vue
index ab9a213..a7b8ab3 100644
--- a/pages/home/home.vue
+++ b/pages/home/home.vue
@@ -1,6 +1,22 @@
 <template>
 	<view>
+		<view class="box-bg">
+			<uni-nav-bar shadow left-icon="bars" title="涓婚〉" @clickLeft="selectLoc()" />
+		</view>
 		<scroll-view scroll-y class="page">
+			<view>
+				<uni-drawer ref="showLeft" mode="left" :width="320">
+					<view>
+						<view>
+							<uni-section title="鏈烘瀯閫夋嫨" type="line"></uni-section>
+						</view>
+						<uni-list v-for="(item, index) in hosts" :key="item.id">
+							<uni-list-item :title="item.name" clickable @click="itemClick(item)"></uni-list-item>
+						</uni-list>
+					</view>
+
+				</uni-drawer>
+			</view>
 			<view class="nav-list">
 				<navigator hover-class='none' :url="'/pages' + item.url" class="nav-li" navigateTo
 					:class="'bg-'+item.color" :style="[{animation: 'show ' + ((index+1)*0.2+1) + 's 1'}]"
@@ -22,9 +38,9 @@
 				baseUrl: '',
 				token: '',
 				icon: '',
+				hosts: [],
 				elements: [],
-				elements2: [
-					{
+				elements2: [{
 						title: '缁勬墭鍏ュ簱',
 						name: 'pakin',
 						color: 'cyan',
@@ -124,21 +140,73 @@
 					},
 
 				],
-				colorList: ['cyan','blue','mauve','pink','brown','red','orange','yellow','olive','olive','green','grey' ]
+				colorList: ['cyan', 'blue', 'mauve', 'pink', 'brown', 'red', 'orange', 'yellow', 'olive', 'olive', 'green',
+					'grey'
+				]
 			};
 		},
+
 		onShow() {
 			this.baseUrl = uni.getStorageSync('baseUrl');
 			this.token = uni.getStorageSync('token');
+
+			this.getCurrentHosts()
 			this.getAuth()
+
 		},
-		methods: {
+
+
+		methods: {
+			
+			
+			selectLoc() {
+				this.$refs['showLeft'].open()
+			},
+
+			closeDrawer() {
+				this.$refs['showLeft'].close()
+
+			},
+
+			itemClick(event) {
+				if (event != null && event.id != null) {
+					this.$refs['showLeft'].close()
+					uni.setStorageSync('hostId', event.id)
+				}	
+			},
+
+			getCurrentHosts() {
+				let that = this
+				uni.request({
+					url: that.baseUrl + '/pda/current/host',
+					data: {},
+					header: {
+						'token': uni.getStorageSync('token')
+					},
+					method: "GET",
+					success(res) {
+						let result = res.data
+						if (result.code == 200) {
+							that.hosts = result.data;
+							if (uni.getStorageSync('hostId') == null || uni.getStorageSync('hostId') == '') {
+								that.$refs['showLeft'].open()
+							}
+						}
+					},
+					fail(res) {
+
+					}
+				})
+			},
+
 			getAuth() {
 				let that = this
 				uni.request({
 					url: that.baseUrl + '/menu/pda/auth',
 					data: {},
-					header: { 'token': uni.getStorageSync('token') },
+					header: {
+						'token': uni.getStorageSync('token')
+					},
 					method: 'POST',
 					success(res) {
 						res = res.data
@@ -179,7 +247,7 @@
 									url: '../login/login'
 								});
 							}, 1000);
-						} else if(res.status === 404) {
+						} else if (res.status === 404) {
 							that.elements = that.elements2
 							// uni.showToast({
 							// 	title: '榛樿涓婚〉',
@@ -199,8 +267,9 @@
 					}
 				})
 			},
+
 			getIcon(e) {
-				const ways = ['pakin','orderPakin','orderPutOn']
+				const ways = ['pakin', 'orderPakin', 'orderPutOn']
 				if (ways.includes(e)) {
 					this.icon = 'pullup'
 				}
@@ -209,7 +278,11 @@
 	}
 </script>
 
-<style>
+<style>
+	.uni-section{
+		margin-top: 0rpx;
+	}
+	
 	.page {
 		height: 100vh;
 	}
diff --git a/uni_modules/uni-section/changelog.md b/uni_modules/uni-section/changelog.md
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/uni_modules/uni-section/changelog.md
diff --git a/uni_modules/uni-section/components/uni-section/uni-section.vue b/uni_modules/uni-section/components/uni-section/uni-section.vue
new file mode 100644
index 0000000..d022420
--- /dev/null
+++ b/uni_modules/uni-section/components/uni-section/uni-section.vue
@@ -0,0 +1,139 @@
+<template>
+	<view class="uni-section" nvue>
+		<view v-if="type" class="uni-section__head">
+			<view :class="type" class="uni-section__head-tag" />
+		</view>
+		<view class="uni-section__content">
+			<text :class="{'distraction':!subTitle}" class="uni-section__content-title">{{ title }}</text>
+			<text v-if="subTitle" class="uni-section__content-sub">{{ subTitle }}</text>
+		</view>
+		<slot />
+	</view>
+</template>
+
+<script>
+
+	/**
+	 * Section 鏍囬鏍�
+	 * @description 鏍囬鏍�
+	 * @property {String} type = [line|circle] 鏍囬瑁呴グ绫诲瀷
+	 * 	@value line 绔栫嚎
+	 * 	@value circle 鍦嗗舰
+	 * @property {String} title 涓绘爣棰�
+	 * @property {String} subTitle 鍓爣棰�
+	 */
+
+	export default {
+		name: 'UniSection',
+		props: {
+			type: {
+				type: String,
+				default: ''
+			},
+			title: {
+				type: String,
+				default: ''
+			},
+			subTitle: {
+				type: String,
+				default: ''
+			}
+		},
+		data() {
+			return {}
+		},
+		watch: {
+			title(newVal) {
+				if (uni.report && newVal !== '') {
+					uni.report('title', newVal)
+				}
+			}
+		},
+		methods: {
+			onClick() {
+				this.$emit('click')
+			}
+		}
+	}
+</script>
+<style lang="scss" scoped>
+	.uni-section {
+		position: relative;
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		margin-top: 10px;
+		flex-direction: row;
+		align-items: center;
+		padding: 0 10px;
+		height: 50px;
+		background-color: $uni-bg-color-grey;
+		/* #ifdef APP-NVUE */
+		// border-bottom-color: $uni-border-color;
+		// border-bottom-style: solid;
+		// border-bottom-width: 0.5px;
+		/* #endif */
+		font-weight: normal;
+	}
+	/* #ifndef APP-NVUE */
+	// .uni-section:after {
+	// 	position: absolute;
+	// 	bottom: 0;
+	// 	right: 0;
+	// 	left: 0;
+	// 	height: 1px;
+	// 	content: '';
+	// 	-webkit-transform: scaleY(.5);
+	// 	transform: scaleY(.5);
+	// 	background-color: $uni-border-color;
+	// }
+	/* #endif */
+
+	.uni-section__head {
+		flex-direction: row;
+		justify-content: center;
+		align-items: center;
+		margin-right: 10px;
+	}
+
+	.line {
+		height: 15px;
+		background-color: $uni-text-color-disable;
+		border-radius: 5px;
+		width: 3px;
+	}
+
+	.circle {
+		width: 8px;
+		height: 8px;
+		border-top-right-radius: 50px;
+		border-top-left-radius: 50px;
+		border-bottom-left-radius: 50px;
+		border-bottom-right-radius: 50px;
+		background-color: $uni-text-color-disable;
+	}
+
+	.uni-section__content {
+		/* #ifndef APP-NVUE */
+		display: flex;
+		/* #endif */
+		flex-direction: column;
+		flex: 1;
+		color: $uni-text-color;
+	}
+
+	.uni-section__content-title {
+		font-size: $uni-font-size-base;
+		color: $uni-text-color;
+	}
+
+	.distraction {
+		flex-direction: row;
+		align-items: center;
+	}
+
+	.uni-section__content-sub {
+		font-size: $uni-font-size-sm;
+		color: $uni-text-color-grey;
+	}
+</style>
diff --git a/uni_modules/uni-section/package.json b/uni_modules/uni-section/package.json
new file mode 100644
index 0000000..36a4e81
--- /dev/null
+++ b/uni_modules/uni-section/package.json
@@ -0,0 +1,79 @@
+{
+  "id": "uni-section",
+  "displayName": "Section 鏍囬鏍�",
+  "version": "0.0.1",
+  "description": "",
+  "keywords": [
+    ""
+  ],
+  "repository": "https://github.com/dcloudio/uni-ui",
+  "engines": {
+    "HBuilderX": ""
+  },
+  "directories": {
+    "example": "../../temps/example_temps"
+  },
+  "dcloudext": {
+    "category": [
+      "鍓嶇缁勪欢",
+      "閫氱敤缁勪欢"
+    ],
+    "sale": {
+      "regular": {
+        "price": "0.00"
+      },
+      "sourcecode": {
+        "price": "0.00"
+      }
+    },
+    "contact": {
+      "qq": ""
+    },
+    "declaration": {
+      "ads": "鏃�",
+      "data": "鏃�",
+      "permissions": "鏃�"
+    },
+    "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui"
+  },
+  "uni_modules": {
+    "dependencies": [],
+    "encrypt": [],
+    "platforms": {
+      "cloud": {
+        "tcb": "u",
+        "aliyun": "u"
+      },
+      "client": {
+        "App": {
+          "app-vue": "u",
+          "app-nvue": "u"
+        },
+        "H5-mobile": {
+          "Safari": "u",
+          "Android Browser": "u",
+          "寰俊娴忚鍣�(Android)": "u",
+          "QQ娴忚鍣�(Android)": "u"
+        },
+        "H5-pc": {
+          "Chrome": "u",
+          "IE": "u",
+          "Edge": "u",
+          "Firefox": "u",
+          "Safari": "u"
+        },
+        "灏忕▼搴�": {
+          "寰俊": "u",
+          "闃块噷": "u",
+          "鐧惧害": "u",
+          "瀛楄妭璺冲姩": "u",
+          "QQ": "u"
+        },
+        "蹇簲鐢�": {
+          "鍗庝负": "u",
+          "鑱旂洘": "u"
+        }
+      }
+    }
+  }
+}
\ No newline at end of file
diff --git a/uni_modules/uni-section/readme.md b/uni_modules/uni-section/readme.md
new file mode 100644
index 0000000..ec02c52
--- /dev/null
+++ b/uni_modules/uni-section/readme.md
@@ -0,0 +1,33 @@
+
+
+## Section 鏍囬鏍�
+> 浠g爜鍧楋細 `uSection`
+
+
+鏍囬鏍忥紝鐢ㄤ簬鏄剧ず鏍囬銆�
+
+### 瀹夎鏂瑰紡
+
+鏈粍浠剁鍚圼easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)瑙勮寖锛宍HBuilderX 2.5.5`璧凤紝鍙渶灏嗘湰缁勪欢瀵煎叆椤圭洰锛屽湪椤甸潰`template`涓嵆鍙洿鎺ヤ娇鐢紝鏃犻渶鍦ㄩ〉闈腑`import`鍜屾敞鍐宍components`銆�
+
+濡傞渶閫氳繃`npm`鏂瑰紡浣跨敤`uni-ui`缁勪欢锛屽彟瑙佹枃妗o細[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55)
+
+### 鍩烘湰鐢ㄦ硶
+
+鍦� ``template`` 涓娇鐢ㄧ粍浠�
+
+```html
+<uni-section title="鍙湁涓绘爣棰�"></uni-section>
+<uni-section title="绔栫嚎瑁呴グ" sub-title="鍓爣棰�" type="line"></uni-section>
+<uni-section title="鍦嗗舰瑁呴グ" sub-title="鍓爣棰�" type="circle"></uni-section>
+```
+
+## API
+
+### Section Props
+
+|灞炴�у悕		|绫诲瀷	|榛樿鍊�	|璇存槑												|
+|:-:		|:-:	|:-:	|:-:												|
+|type		|String	|-		|鏍囬瑁呴グ绫诲瀷 锛屽彲閫夊�硷細line锛堢珫绾匡級銆乧ircle锛堝渾褰級|
+|title		|String	|-		|涓绘爣棰�												|
+|sub-title	|String	|-		|鍓爣棰�												|

--
Gitblit v1.9.1