From 8ee015485bfd69afcc276e84a2998c64b0256458 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期三, 16 七月 2025 18:27:12 +0800
Subject: [PATCH] 前端

---
 small-program/unpackage/dist/dev/mp-weixin/pages/login/login.wxml |    2 
 small-program/utils/http.interceptor.js                           |   35 ++++++++
 small-program/store/index.js                                      |   30 +++++++
 small-program/utils/http.api.js                                   |   62 +++++++++++++++
 small-program/pages/login/login.vue                               |   49 ++++++++++-
 small-program/pages/index/index.vue                               |   20 ++++
 6 files changed, 187 insertions(+), 11 deletions(-)

diff --git a/small-program/pages/index/index.vue b/small-program/pages/index/index.vue
index 25baa21..5fc9317 100644
--- a/small-program/pages/index/index.vue
+++ b/small-program/pages/index/index.vue
@@ -418,10 +418,20 @@
 	export default {
 		components: { sunuiMverify },
 		computed: {
-			...mapState(['navHeight', 'statusbarHeight'])
+			...mapState(['navHeight', 'statusbarHeight','userInfo','token','openid'])
+		},
+		onShow(options){
+			this.type = 0
+			if(this.token &&this.token!='' && this.userInfo && JSON.stringify(this.userInfo) != '{}'){
+				this.isLogin=true
+			}
+			if (this.userInfo && this.userInfo.useIdentity == 1) {
+				this.type =1
+			} 
 		},
 		data() {
 			return {
+				isLogin: false,
 				typeId: 1,
 				typeWorkId: 1,
 				carId: 1,
@@ -440,7 +450,7 @@
 					{ name: '灏忚揣杞�', id: 2 }
 				],
 				btn: require('@/static/image/btn.png'),
-				type: 1
+				type: 0
 			}
 		},
 		methods: {
@@ -454,6 +464,12 @@
 				this.carId = e
 			},
 			jump() {
+				console.log(this.userInfo,this.token,this.openid)
+				if(!this.userInfo  ||!this.token  ){
+					uni.navigateTo({
+						url: '/pages/login/login'
+					})
+				}
 				if (this.typeId === 1) {
 					uni.navigateTo({
 						url: '/pages/using-workers/using-workers'
diff --git a/small-program/pages/login/login.vue b/small-program/pages/login/login.vue
index 172951b..ccf4eeb 100644
--- a/small-program/pages/login/login.vue
+++ b/small-program/pages/login/login.vue
@@ -2,21 +2,56 @@
 	<view class="box">
 		<view class="box-title">娆㈣繋浣跨敤杩戝揩</view>
 		<view class="box-tips">璇风櫥褰�</view>
-		<view class="box-btn">鎵嬫満鍙蜂竴閿櫥褰�</view>
+		<view class="box-btn" >
+			<button  class="box-btn"  v-if="agree" open-type="getPhoneNumber" @getphonenumber="getPhone" >鎵嬫満鍙蜂竴閿櫥褰�</button>
+		    <button  class="box-btn"  v-if="!agree" @click="tipAgree">鎵嬫満鍙蜂竴閿櫥褰�</button> 
+		</view>
 		<view class="box-footer">
-			<image src="/static/icon/ic_notagree@2x.png" mode="widthFix"></image>
-			<!-- <image src="/static/icon/ic_agree@2x.png" mode="widthFix"></image> -->
-			<text>鎴戝凡闃呰骞跺悓鎰忋�婄敤鎴峰崗璁�嬶紝銆婇殣绉佸崗璁斂绛栥��</text>
+			<image src="/static/icon/ic_notagree@2x.png" mode="widthFix" v-if="!agree" @click="agreeDo"></image>
+			<image src="/static/icon/ic_agree@2x.png" mode="widthFix" v-if="agree" @click="agreeDo"></image> 
+			<text @click="agreeDo">鎴戝凡闃呰骞跺悓鎰忋�婄敤鎴峰崗璁�嬶紝銆婇殣绉佸崗璁斂绛栥��</text>
 		</view>
 	</view>
 </template>
-
 <script>
+import { mapState } from 'vuex'
 	export default {
+		computed: {
+			...mapState(['userInfo','openid'])
+		},
 		data() {
 			return {
-				
-			};
+				agree:false
+			}
+		},
+		methods: {
+			agreeDo(){
+				this.agree = !this.agree
+			},
+			tipAgree(){
+				uni.showToast({ title: '璇峰厛宸查槄璇诲苟鍚屾剰銆婄敤鎴峰崗璁�嬶紝銆婇殣绉佸崗璁斂绛栥��', icon: 'error', duration: 2000 });
+			},
+			getPhone(e) {
+				console.log(e)
+				if(!this.agree ){
+					return
+				}
+				if (e.detail.errMsg !== 'getPhoneNumber:ok') {
+					uni.showToast({ title: '鑾峰彇鎺堟潈鎵嬫満鍙峰け璐�', icon: 'error', duration: 2000 });
+					return
+				}
+				var that = this;
+				that.$u.api.wxAuthPhone({
+					code: e.detail.code,
+					openid: that.openid||''
+				}).then(result => {
+					if (result.code === 200) {
+						that.$store.commit('setUserInfo', result.data.member)
+						that.$store.commit('setToken', result.data.token)
+						uni.navigateBack({ delta: 1 });
+					}
+				})
+			}
 		}
 	}
 </script>
diff --git a/small-program/store/index.js b/small-program/store/index.js
index 66686fa..6db6273 100644
--- a/small-program/store/index.js
+++ b/small-program/store/index.js
@@ -5,12 +5,18 @@
 
 const navHeight = uni.getStorageSync('navHeight');
 const statusbarHeight = uni.getStorageSync('statusbarHeight');
+const userInfo = uni.getStorageSync('userInfo');
+const token = uni.getStorageSync('token');
+const openid = uni.getStorageSync('openid');
 
 const store = new Vuex.Store({
 	
 	state: {
 		navHeight: navHeight || '',
-		statusbarHeight: statusbarHeight || ''
+		statusbarHeight: statusbarHeight || '',
+		userInfo: userInfo || {},
+		token: token || '',
+		openid:token || ''
 	},
 	mutations: {
 		// 璁剧疆瀵艰埅鏍忛珮搴�
@@ -19,6 +25,28 @@
 			state.statusbarHeight = val.statusbarHeight
 			uni.setStorageSync('navHeight', val.navHeight);
 			uni.setStorageSync('statusbarHeight', val.statusbarHeight);
+		},
+		// 璁剧疆token
+		setToken(state, val) {
+			state.token = val
+			uni.setStorageSync('token', val);
+		},
+		// 璁剧疆token
+		setOpenid(state, val) {
+			state.openid = val
+			uni.setStorageSync('openid', val);
+		},
+		// 璁剧疆鐢ㄦ埛淇℃伅
+		setUserInfo(state, val) {
+			state.userInfo = val
+			uni.setStorageSync('userInfo', val);
+		},
+		// 娓呴櫎缂撳瓨鏁版嵁
+		empty(state) {
+			state.userInfo = ''
+			state.token = ''
+			uni.removeStorageSync('token');
+			uni.removeStorageSync('userInfo');
 		}
 	},
 	
diff --git a/small-program/unpackage/dist/dev/mp-weixin/pages/login/login.wxml b/small-program/unpackage/dist/dev/mp-weixin/pages/login/login.wxml
index f46e1b8..cb939d6 100644
--- a/small-program/unpackage/dist/dev/mp-weixin/pages/login/login.wxml
+++ b/small-program/unpackage/dist/dev/mp-weixin/pages/login/login.wxml
@@ -1 +1 @@
-<view class="box data-v-b237504c"><view class="box-title data-v-b237504c">娆㈣繋浣跨敤杩戝揩</view><view class="box-tips data-v-b237504c">璇风櫥褰�</view><view class="box-btn data-v-b237504c">鎵嬫満鍙蜂竴閿櫥褰�</view><view class="box-footer data-v-b237504c"><image src="/static/icon/ic_notagree@2x.png" mode="widthFix" class="data-v-b237504c"></image><text class="data-v-b237504c">鎴戝凡闃呰骞跺悓鎰忋�婄敤鎴峰崗璁�嬶紝銆婇殣绉佸崗璁斂绛栥��</text></view></view>
\ No newline at end of file
+<view class="box data-v-b237504c"><view class="box-title data-v-b237504c">娆㈣繋浣跨敤杩戝揩</view><view class="box-tips data-v-b237504c">璇风櫥褰�</view><view class="box-btn data-v-b237504c"><block wx:if="{{agree}}"><button class="box-btn data-v-b237504c" open-type="getPhoneNumber" data-event-opts="{{[['getphonenumber',[['getPhone',['$event']]]]]}}" bindgetphonenumber="__e">鎵嬫満鍙蜂竴閿櫥褰�</button></block><block wx:if="{{!agree}}"><button data-event-opts="{{[['tap',[['tipAgree',['$event']]]]]}}" class="box-btn data-v-b237504c" bindtap="__e">鎵嬫満鍙蜂竴閿櫥褰�</button></block></view><view class="box-footer data-v-b237504c"><block wx:if="{{!agree}}"><image src="/static/icon/ic_notagree@2x.png" mode="widthFix" data-event-opts="{{[['tap',[['agreeDo',['$event']]]]]}}" bindtap="__e" class="data-v-b237504c"></image></block><block wx:if="{{agree}}"><image src="/static/icon/ic_agree@2x.png" mode="widthFix" data-event-opts="{{[['tap',[['agreeDo',['$event']]]]]}}" bindtap="__e" class="data-v-b237504c"></image></block><text data-event-opts="{{[['tap',[['agreeDo',['$event']]]]]}}" bindtap="__e" class="data-v-b237504c">鎴戝凡闃呰骞跺悓鎰忋�婄敤鎴峰崗璁�嬶紝銆婇殣绉佸崗璁斂绛栥��</text></view></view>
\ No newline at end of file
diff --git a/small-program/utils/http.api.js b/small-program/utils/http.api.js
new file mode 100644
index 0000000..b411e0f
--- /dev/null
+++ b/small-program/utils/http.api.js
@@ -0,0 +1,62 @@
+const install = (Vue, vm) => {
+	uni.$u.http.setConfig((config) => {
+	    config.baseURL = vm.$baseUrl;
+		config.timeout = 60000;
+	    return config;
+	})
+	
+	let wxLogin = (params = {}) => vm.$u.http.get('web/account/wxLogin',{ params });	// 鐧诲綍   
+	let wxAuthPhone = (data = {}) => vm.$u.http.post('web/account/wxAuthPhone', data);	// 鐧诲綍   
+	let applyForIdentity = (data = {}) => uni.$u.http.post('web/user/applyForIdentity', data)	// 鐢宠韬唤淇℃伅
+	let editMemberInfo = (data = {}) => uni.$u.http.post('web/user/editMemberInfo',data)	// 缂栬緫涓汉淇℃伅
+	let editUseIdentity = (data = {}) => vm.$u.http.post('web/user/editUseIdentity', data);	// 鍒囨崲鐢ㄥ伐韬唤
+	let getIdentityInfo = (params = {}) => vm.$u.http.get('web/user/getIdentityInfo', { params });	// 鑾峰彇韬唤璁よ瘉淇℃伅
+	let getMemberInfo = (params = {}) => vm.$u.http.get('web/user/getMemberInfo', { params });	// 鑾峰彇涓汉淇℃伅
+	let revenuePage = (data = {}) => vm.$u.http.post('web/user/revenuePage',data);	// 浣欓鏄庣粏 
+	let updateIdentity = (data = {}) => vm.$u.http.post('web/user/updateIdentity', data);	// 淇敼韬唤淇℃伅锛堣璇佸け璐ュ悗浣跨敤锛�
+	let updateLocation = (data = {}) => vm.$u.http.post('web/user/updateLocation', data);	// 淇敼韬唤淇℃伅浣嶇疆锛堣璇佹垚鍔熷悗浣跨敤锛�
+	let accept = (params = {}) => vm.$u.http.get('web/orders/accept', { params });	// 鎵嬪姩鎺ュ崟 - 鎺ュ崟鏂�
+	let begin = (params = {}) => vm.$u.http.get('web/orders/begin', { params });	// 寮�濮嬩綔涓� - 鍙戝崟鏂�
+	let comment = (data = {}) => vm.$u.http.post('web/orders/comment', data);	// 璁㈠崟璇勪环 - 鍙戝崟鏂�
+	let confirmUpd = (data = {}) => vm.$u.http.post('web/orders/confirmUpd',data);	// 纭璁㈠崟淇敼 - 鎺ュ崟鏂�
+	let doneOrder = (data = {}) => vm.$u.http.post('web/orders/doneOrder', data);	// 瀹屾垚璁㈠崟 - 鍙戝崟鏂�
+	let getDetail = (params = {}) => vm.$u.http.get('web/orders/getDetail', { params });	// 璁㈠崟璇︽儏
+	let orderPage = (data) => vm.$u.http.post('web/orders/page', data);	// 鍒嗛〉鏌ヨ
+	let receiveCancelOrder = (params = {}) => vm.$u.http.get('web/orders/receiveCancelOrder', { params });	// 鍙栨秷鎺ュ崟 - 鎺ュ崟鏂�
+	let releaseCancelOrder = (params = {}) => vm.$u.http.get('web/orders/releaseCancelOrder', { params });	// 鍙栨秷鎺ュ崟 - 鎺ュ崟鏂�
+	let release = (data = {}) => vm.$u.http.post('web/orders/release', { params });	// 鍙戝竷璁㈠崟 - 鍙戝崟鏂�
+	let updOrderData = (data = {}) => vm.$u.http.post('web/orders/updOrderData', data);	// 淇敼璁㈠崟鏃ユ湡 - 鍙戝崟鏂�
+	let updateOrder = (data = {}) => vm.$u.http.post('web/orders/updateOrder', data);	// 淇敼璁㈠崟 - 鍙戝崟鏂�
+	let getCategoryList = (params = {}) => vm.$u.http.get('web/orders/getCategoryList', { params });	// 鑾峰彇鍒嗙被鍒楄〃
+	
+	let upload = (data = {}) => vm.$u.http.post('web/public/upload', data);	// 涓婁紶 
+	 	
+	vm.$u.api = {
+		wxLogin,
+		wxAuthPhone,
+		applyForIdentity,
+		editMemberInfo,
+		editUseIdentity,
+		getIdentityInfo,
+		getMemberInfo,
+		revenuePage,
+		updateIdentity,
+		updateLocation,
+		accept,
+		begin,
+		comment,
+		confirmUpd,
+		doneOrder,
+		getDetail,
+		orderPage,
+		receiveCancelOrder,
+		releaseCancelOrder,
+		release,
+		updOrderData,
+		updateOrder,
+		getCategoryList,
+		upload 
+	};
+}
+
+export default { install }
\ No newline at end of file
diff --git a/small-program/utils/http.interceptor.js b/small-program/utils/http.interceptor.js
new file mode 100644
index 0000000..b00e62c
--- /dev/null
+++ b/small-program/utils/http.interceptor.js
@@ -0,0 +1,35 @@
+const install = (Vue, vm) => {
+	// 璇锋眰鎷︽埅鍣�
+	uni.$u.http.interceptors.request.use((config) => {
+		const Headtoken = vm.$store.state.token
+		// 鍒ゆ柇鏈夋棤token锛屾湁鍒欏姞鍏ヨ姹傚ご涓�
+		if (Headtoken) {
+			config.header['token'] = Headtoken;
+		}
+		return config;
+	}, config => {
+		return Promise.reject(config)
+	})
+	
+	// 鍝嶅簲鎷︽埅鍣�
+	uni.$u.http.interceptors.response.use((response) => {
+		if (response.data.code === 5113) {
+			uni.navigateTo({
+				url: '/pages/index/index'
+			});
+			return
+		}
+		if (response.data.code !== 200) {
+			uni.showToast({
+				title: response.data.message,
+				icon: "none",
+				duration: 2000
+			});
+		}
+		return response.data
+	}, (response) => {
+		return Promise.reject(response)
+	})
+}
+
+export default { install }
\ No newline at end of file

--
Gitblit v1.9.3