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