diff --git a/src/global.d.ts b/src/global.d.ts index 1b626d4..852079c 100644 --- a/src/global.d.ts +++ b/src/global.d.ts @@ -7,4 +7,16 @@ declare namespace GlobalSetting { username: string password: string } + // token相关 + type TokenStorage = { + accessToken: string + refreshToken: string + accessTokenExpiresIn: string + refreshTokenExpiresIn: string + } + // 记住密码 + type RememberUser = { + username: string + password: string + } } diff --git a/src/pages.json b/src/pages.json index a0ddbcd..b50f28e 100644 --- a/src/pages.json +++ b/src/pages.json @@ -36,9 +36,42 @@ "navigationBarTitleText": "登录", "disableScroll": true } + }, + { + "path": "pages/root/pwd-login", + "style": { + "navigationBarTitleText": "账号密码登录", + "disableScroll": true + } } ], "subPackages": [ + { + "root": "pages/canteen", + "pages": [ + { + "path": "detail", + "style": { + "navigationBarTitleText": "", + "disableScroll": true + } + }, + { + "path": "food", + "style": { + "navigationBarTitleText": "", + "disableScroll": true + } + }, + { + "path": "product-detail", + "style": { + "navigationBarTitleText": "", + "disableScroll": true + } + } + ] + }, { "root": "pages/wallet", "pages": [ @@ -64,6 +97,139 @@ } } ] + }, + { + "root": "pages/boxes", + "pages": [ + { + "path": "list", + "style": { + "navigationBarTitleText": "", + "disableScroll": true + } + } + ] + }, + { + "root": "pages/order", + "pages": [ + { + "path": "detail", + "style": { + "navigationBarTitleText": "", + "disableScroll": true + } + } + ] + }, + { + "root": "pages/merchant", + "pages": [ + { + "path": "detail", + "style": { + "navigationBarTitleText": "商户详情", + "disableScroll": true + } + }, + { + "path": "brandDetail", + "style": { + "navigationBarTitleText": "商户品牌详情", + "disableScroll": true + } + }, + { + "path": "cancel-qrcode", + "style": { + "navigationBarTitleText": "活动", + "disableScroll": true + } + }, + { + "path": "my-act-list", + "style": { + "navigationBarTitleText": "我参加的活动", + "disableScroll": true + } + }, + { + "path": "merchant-activity", + "style": { + "navigationBarTitleText": "商户活动", + "disableScroll": true + } + }, + { + "path": "coupon-list", + "style": { + "navigationBarTitleText": "优惠券列表", + "disableScroll": true + } + } + ] + }, + { + "root": "pages/pay", + "pages": [ + { + "path": "scanPay", + "style": { + "navigationBarTitleText": "支付", + "disableScroll": true + } + }, + { + "path": "payComplete", + "style": { + "navigationBarTitleText": "支付完成", + "disableScroll": true + } + }, + { + "path": "transferMoney", + "style": { + "navigationBarTitleText": "转账", + "disableScroll": true + } + } + ] + }, + { + "root": "pages/human-face", + "pages": [ + { + "path": "list", + "style": { + "navigationBarTitleText": "", + "disableScroll": true + } + }, + { + "path": "apply", + "style": { + "navigationBarTitleText": "", + "disableScroll": true + } + } + ] + }, + { + "root": "pages/car", + "pages": [ + { + "path": "user-car/apply", + "style": { + "navigationBarTitleText": "申请车辆" + } + }, + { + "path": "user-car/list", + "style": { + "navigationBarTitleText": "我的车辆" + } + } + ] } ], "globalStyle": { diff --git a/src/pages/boxes/list.vue b/src/pages/boxes/list.vue new file mode 100644 index 0000000..1990880 --- /dev/null +++ b/src/pages/boxes/list.vue @@ -0,0 +1,271 @@ + + + + + diff --git a/src/pages/canteen/components/product-cart.vue b/src/pages/canteen/components/product-cart.vue new file mode 100644 index 0000000..6d0129e --- /dev/null +++ b/src/pages/canteen/components/product-cart.vue @@ -0,0 +1,53 @@ + + + diff --git a/src/pages/canteen/components/product-row.vue b/src/pages/canteen/components/product-row.vue new file mode 100644 index 0000000..7660070 --- /dev/null +++ b/src/pages/canteen/components/product-row.vue @@ -0,0 +1,79 @@ + + + diff --git a/src/pages/canteen/components/product-total.vue b/src/pages/canteen/components/product-total.vue new file mode 100644 index 0000000..b5a0a6d --- /dev/null +++ b/src/pages/canteen/components/product-total.vue @@ -0,0 +1,38 @@ + + + diff --git a/src/pages/canteen/detail.vue b/src/pages/canteen/detail.vue new file mode 100644 index 0000000..912cd17 --- /dev/null +++ b/src/pages/canteen/detail.vue @@ -0,0 +1,459 @@ + + + + + diff --git a/src/pages/canteen/food.vue b/src/pages/canteen/food.vue new file mode 100644 index 0000000..d68fe1d --- /dev/null +++ b/src/pages/canteen/food.vue @@ -0,0 +1,169 @@ + + + + + diff --git a/src/pages/canteen/product-detail.vue b/src/pages/canteen/product-detail.vue new file mode 100644 index 0000000..96731b0 --- /dev/null +++ b/src/pages/canteen/product-detail.vue @@ -0,0 +1,73 @@ + + + + + diff --git a/src/pages/car/user-car/apply.vue b/src/pages/car/user-car/apply.vue new file mode 100644 index 0000000..9f08613 --- /dev/null +++ b/src/pages/car/user-car/apply.vue @@ -0,0 +1,111 @@ + + + + + \ No newline at end of file diff --git a/src/pages/car/user-car/list.vue b/src/pages/car/user-car/list.vue new file mode 100644 index 0000000..39d384c --- /dev/null +++ b/src/pages/car/user-car/list.vue @@ -0,0 +1,81 @@ + + + \ No newline at end of file diff --git a/src/pages/human-face/apply.vue b/src/pages/human-face/apply.vue new file mode 100644 index 0000000..407680a --- /dev/null +++ b/src/pages/human-face/apply.vue @@ -0,0 +1,106 @@ + + + + + diff --git a/src/pages/human-face/list.vue b/src/pages/human-face/list.vue new file mode 100644 index 0000000..605f018 --- /dev/null +++ b/src/pages/human-face/list.vue @@ -0,0 +1,75 @@ + + + diff --git a/src/pages/order/detail.vue b/src/pages/order/detail.vue new file mode 100644 index 0000000..c62817d --- /dev/null +++ b/src/pages/order/detail.vue @@ -0,0 +1,235 @@ + + + + + diff --git a/src/pages/pay/payComplete.vue b/src/pages/pay/payComplete.vue new file mode 100644 index 0000000..e83550e --- /dev/null +++ b/src/pages/pay/payComplete.vue @@ -0,0 +1,53 @@ + + + diff --git a/src/pages/pay/scanPay.vue b/src/pages/pay/scanPay.vue new file mode 100644 index 0000000..3d8b19c --- /dev/null +++ b/src/pages/pay/scanPay.vue @@ -0,0 +1,172 @@ + + + diff --git a/src/pages/pay/transferMoney.vue b/src/pages/pay/transferMoney.vue new file mode 100644 index 0000000..df84137 --- /dev/null +++ b/src/pages/pay/transferMoney.vue @@ -0,0 +1,179 @@ + + + diff --git a/src/pages/root/login.vue b/src/pages/root/login.vue index 20571cd..bb7f703 100644 --- a/src/pages/root/login.vue +++ b/src/pages/root/login.vue @@ -13,7 +13,6 @@ const affirmModalRef = ref() const state = reactive({ userInfo: null, isAgree: false, - loginErrorVisible: false, loginErrorCode: null, }) @@ -47,12 +46,18 @@ const minAppGetphone = async (e) => { uni.hideLoading() return } + uni.setStorageSync(constant.storageConstant.TOKEN, { + accessToken: data.accessToken.tokenValue, + accessTokenExpiresIn: data.accessToken.expiresAt, + refreshToken: data.refreshToken.tokenValue, + refreshTokenExpiresIn: data.refreshToken.expiresAt, + } as GlobalSetting.TokenStorage) + // 查询用户信息 const { data: userData } = await userApi.userInfo() uni.setStorageSync(constant.storageConstant.USERINFO, userData) - uni.setStorageSync(constant.storageConstant.TOKEN, data) uni.hideLoading() uni.showToast({ title: "登录成功", icon: "success" }) - router.jump("/pages/tabbar/canteen") + router.jump("/pages/tabbar/canteen", {}, 3) } catch (error) { console.error("登录错误", error); } @@ -91,6 +96,10 @@ const affirmConfirm = () => { + + + 账号密码登录 + @@ -113,10 +122,4 @@ const affirmConfirm = () => { - + diff --git a/src/pages/root/pwd-login.vue b/src/pages/root/pwd-login.vue new file mode 100644 index 0000000..5431a2a --- /dev/null +++ b/src/pages/root/pwd-login.vue @@ -0,0 +1,128 @@ + + + + + diff --git a/src/pages/tabbar/canteen.vue b/src/pages/tabbar/canteen.vue index a945f13..d310986 100644 --- a/src/pages/tabbar/canteen.vue +++ b/src/pages/tabbar/canteen.vue @@ -26,7 +26,6 @@ onShow(() => { if (app._initTabbar) { app._initTabbar() } - reportPageAccess("pages/tabbar/canteen") if (pageRef.value) { pageRef.value.reload(false) } @@ -48,23 +47,6 @@ const toDetail = async (v: any) => { router.jump("/pages/canteen/detail", { id: v.id }) } } - -const createEventId = () => `evt_${Date.now()}_${Math.random().toString(36).slice(2, 10)}` -const reportPageAccess = async (pageCode: string) => { - const tokenStorage: any = uni.getStorageSync(STORAGE_KEYS.TOKEN) - const userInfo: any = uni.getStorageSync(STORAGE_KEYS.USER_INFO) - if (!userInfo?.sysUser?.userId) return - const systemInfo = uni.getSystemInfoSync() - await accessStatsApi.track({ - eventId: createEventId(), - pageCode, - userId: userInfo?.sysUser?.userId, - eventTime: dayjs().format("YYYY-MM-DD HH:mm:ss"), - deviceId: tokenStorage?.access_token || "", - clientType: systemInfo?.platform || "", - osVersion: systemInfo?.system || "", - }) -}