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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 🍴
+ 餐桌
+
+
+
+
+ {{ item.name }}
+ {{ item.tableNumber }}
+
+
+
+ 👥
+ {{ item.tableTypeName }}
+
+
+
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+ {{ props.name }}
+
+ ¥{{ hooks.useMoney(props.price) }}
+ ¥{{
+ hooks.useMoney(props.marketPrice) }}
+ x{{ props.count }}
+
+
+
+ 库存:{{ props.stock }}
+
+ {{ hooks.useFormatNum("销量", "", props.salesCount) }}
+
+
+
+
+
+ {{ props.modelValue }}
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+
+ ¥ {{ hooks.useMoney(props.totPrice) }}
+ 共{{ props.totCount }}件
+
+
+
+ 购买
+
+
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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ state.canteenDetail.name }}
+
+
+ {{ state.canteenDetail.deptName }}
+
+
+
+ 营业时间:
+
+ {{ state.canteenDetail.jobTime?.split(",")[0] ? "早:" +
+ state.canteenDetail.jobTime?.split(",")[0] : "" }}
+
+
+ {{ state.canteenDetail.jobTime?.split(",")[1] ? "中:" +
+ state.canteenDetail.jobTime?.split(",")[1] : "" }}
+
+
+ {{ state.canteenDetail.jobTime?.split(",")[2] ? "晚:" +
+ state.canteenDetail.jobTime?.split(",")[2] : "" }}
+
+
+
+ 食堂地址:
+ {{ state.canteenDetail.addressDes }}
+
+
+
+
+
+
+
+
+
+
+
+ 联系食堂
+
+
+
+
+
+
+ 餐桌信息
+
+
+
+
+
+
+ 每日菜谱
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 暂无信息
+
+
+
+
+
+
+
+
+
+
+ chentProductCartCount(v)" @remove="(v) => chentProductCartCount(v)"
+ @submit="doBuy" />
+
+
+
+
+
+
+ {{ item.title }}
+
+ 可预订时间段:
+ {{ item.startTime.slice(0, -3) }}-{{ item.endTime.slice(0, -3) }}
+
+
+ 用餐时间段:
+
+ {{ state.canteenDetail.jobTime?.split(",")[Number(index) + 1] ?
+ state.canteenDetail.jobTime?.split(",")[Number(index) + 1] : "" }}
+
+
+
+
+
+
+
+
+
+ 取消
+
+ 确认
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+
+
+ {{ v.dayTime }}
+ {{ v.weekDayStr }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ v.name }}
+
+ ¥{{ hooks.useMoney(v.price) }}
+ ¥{{ hooks.useMoney(v.marketPrice)
+ }}
+
+
+ {{ hooks.useFormatNum("库存", "", v.stock) }}
+
+ {{ hooks.useFormatNum("销量", "", v.salesCount) }}
+
+
+
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+
+
+ ¥{{ hooks.useMoney(state.detail.price) }}
+ ¥{{
+ hooks.useMoney(state.detail.marketPrice) }}
+
+ 已售{{ state.detail.salesCount }}
+
+
+ {{ state.detail.name }}
+ {{ state.detail.introduction }}
+
+
+
+ 评价
+
+
+ 详情
+
+
+
+
+ 暂无数据
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+
+
+ {{ carTypeEnum[v.carType] }}
+
+ {{ carTypeEnum[v.carType] }}
+
+ {{ carTypeEnum[v.carType] }}
+
+ {{ carTypeEnum[v.carType] }}
+
+
+ {{ v.carNumber }}
+
+
+
+
+ {{ v.createTime }}
+
+
+ 已启用
+ 已禁用
+
+
+
+
+ 申请
+
+
+
+
+
+
\ 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 @@
+
+
+
+
+
+
+
+
+
+
+ 注:图片大小不超过5M
+
+
+
+ {{ state.detailId ? "修改" : "提交" }}
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+ {{ v.username }}·{{ v.deptName }}
+
+ 修改
+
+ 删除
+
+
+
+
+
+ 添加
+
+
+
+
+
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 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 订单信息
+
+
+ 用户
+ {{ state.detail.username }}
+
+
+ 手机号
+ {{ state.detail.userMobile }}
+
+
+ 商户
+ {{ state.detail.merchantName }}
+
+
+
+ 订单号
+ {{ state.detail.id }}
+
+
+ 下单时间
+ {{ hooks.useTime(state.detail.createTime, "") }}
+
+
+ 支付方式
+
+ {{ hooks.useEnum("hardwareOrderTypeEnum", state.detail.orderType) }}
+
+
+
+
+
+ 商品费用
+
+
+
+
+
+ {{ v.productName }}
+ ¥ {{ hooks.useMoney(v.productPrice) }}
+ x {{ v.productCount }}
+
+
+
+ ¥ {{ hooks.useMoney(v.totalPrice) }}
+
+
+
+
+ 实付款
+
+ ¥
+ {{ hooks.useMoney(state.detail.payPrice) }}
+
+
+
+
+
+
+
+
+
+
+ {{ hooks.useEnum("hardwareSaleStatusEnum", state.refundDetail.status) }}
+
+
+
+ {{ hooks.useTime(state.refundDetail.updateTime || state.refundDetail.createTime, "") }}
+
+
+
+
+
+ 退款金额
+ ¥{{ hooks.useMoney(state.refundDetail.refundPrice) }}
+
+
+
+ 服务单号:
+ {{ state.refundDetail.no }}
+
+
+ 申请时间:
+ {{ hooks.useTime(state.refundDetail.createTime, "") }}
+
+
+ 售后类型:
+ {{ state.refundDetail.applyReason }}
+
+
+ 相关描述:
+ {{ state.refundDetail.applyDescription }}
+
+
+
+
+ 审核人:
+ {{ state.refundDetail.auditUsername }}
+
+
+ 审核时间:
+ {{ hooks.useTime(state.refundDetail.auditTime, "") }}
+
+
+ 拒绝原因:
+ {{ state.refundDetail.auditReason }}
+
+
+
+
+
+
+
+ 取消申请
+
+
+ 重新申请
+
+
+
+
+
+
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 @@
+
+
+
+
+
+ 支付成功
+
+
+
+ ¥{{ scanPayData.payPrice }}
+
+
+
+
+ 商家
+ {{ scanPayData.mchName }}
+
+
+
+ 支付方式
+ 扫一扫
+
+
+
+
+ 完成
+
+
+
+
+
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 @@
+
+
+
+ {{ scanPayState.mchName }}
+
+
+ ¥
+ {{ displayAmount }}
+
+
+
+ 选择支付钱包:
+
+
+
+ {{ v.walletTypeName }}
+
+
+ 余额:
+ {{ hooks.useMoney(v.balance) }} 元
+
+
+
+
+ 支 付
+
+
+
+
+
+
+
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 @@
+
+
+
+
+
+
+ {{ payStore.sourceWalletData.walletTypeName }}
+
+
+ 余额:
+ {{ hooks.useMoney(payStore.sourceWalletData.balance) + "元" }}
+
+
+
+
+
+
+ 转入到
+
+
+ {{ targetWalletType.name }}
+
+
+
+
+
+ 转账金额
+
+ ¥
+ 转账金额
+ {{ formattedAmount }}
+
+
+
+
+
+ 注:转账金额不能超过钱包余额
+
+
+
+ 确定转账
+
+
+
+
+
+
+
+
+
+
+
+ {{ v.walletTypeName }}
+ {{ v.cardNumber }}
+
+
+ 余额:{{ hooks.useMoney(v.balance) + "元" }}
+
+
+
+
+
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 || "",
- })
-}
diff --git a/src/pages/tabbar/my.vue b/src/pages/tabbar/my.vue
index dea1546..7bde347 100644
--- a/src/pages/tabbar/my.vue
+++ b/src/pages/tabbar/my.vue
@@ -356,7 +356,6 @@ onShow(() => {
if (app._initTabbar) {
app._initTabbar()
}
- reportPageAccess("pages/tabbar/my")
// 获取存储中的用户信息
storage.getUserInfo()
})
@@ -380,23 +379,6 @@ const isMchUser = async () => {
const doPhone = (phone: string) => {
hooks.useMakePhoneCall(phone)
}
-
-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 userStorage: any = uni.getStorageSync(STORAGE_KEYS.USER_INFO)
- if (!userStorage?.sysUser?.userId) return
- const systemInfo = uni.getSystemInfoSync()
- await accessStatsApi.track({
- eventId: createEventId(),
- pageCode,
- userId: userStorage?.sysUser?.userId,
- eventTime: dayjs().format("YYYY-MM-DD HH:mm:ss"),
- deviceId: tokenStorage?.access_token || "",
- clientType: systemInfo?.platform || "",
- osVersion: systemInfo?.system || "",
- })
-}
diff --git a/src/sheep/components/tongtong-plate/plate-number.vue b/src/sheep/components/tongtong-plate/plate-number.vue
new file mode 100644
index 0000000..d9891f2
--- /dev/null
+++ b/src/sheep/components/tongtong-plate/plate-number.vue
@@ -0,0 +1,312 @@
+
+
+
+
+ ·
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/sheep/utils/request.ts b/src/sheep/utils/request.ts
index 21fb14c..bb9ed5e 100644
--- a/src/sheep/utils/request.ts
+++ b/src/sheep/utils/request.ts
@@ -42,18 +42,20 @@ const https = new Request({
})
https.interceptors.request.use(async (config) => {
- const tokenStorage = uni.getStorageSync(TOKEN_KEY)
+ const tokenStorage = uni.getStorageSync(TOKEN_KEY) as GlobalSetting.TokenStorage
const config_header: any = config.header || {}
let tokenValue = getTokenValue(tokenStorage)
+
// 设置租户请求头
config_header["TENANT-ID"] = "1"
- if (import.meta.env.VITE_IS_TOC === "true") config_header["CLIENT-TOC"] = "Y"
+ if (import.meta.env.VITE_IS_TOC === "true") {
+ config_header["CLIENT-TOC"] = "Y"
+ }
// 判断是否需要设置认证头
if (!SKIP_AUTH_URLS.some((url) => config.url?.startsWith(url))) {
if (!isEmpty(tokenStorage)) {
// token存在,检查是否过期
if (isTokenExpires(tokenStorage) && !SKIP_REFRESH_TOKEN.some((url) => config.url?.startsWith(url)) && refreshTokenLock) {
- debugger
// 过期,刷新token
const newTokenStorage = await refreshToken()
if (newTokenStorage) {
@@ -99,14 +101,14 @@ https.interceptors.response.use(
)
// 从tokenStorage中读取tokenValue值
-const getTokenValue = (tokenStorage: any): string | null => {
- return tokenStorage?.access_token ? `Bearer ${tokenStorage.access_token}` : null
+const getTokenValue = (tokenStorage: GlobalSetting.TokenStorage): string | null => {
+ return tokenStorage?.accessToken ? `Bearer ${tokenStorage?.accessToken}` : null
}
// 检查tokenStorage中tokenValue是否过期
-const isTokenExpires = (tokenStorage: any): boolean => {
- const { access_token } = tokenStorage
- const expiresDate = new Date(access_token?.expiresAt).getTime()
+const isTokenExpires = (tokenStorage: GlobalSetting.TokenStorage): boolean => {
+ const { accessTokenExpiresIn } = tokenStorage
+ const expiresDate = new Date(accessTokenExpiresIn).getTime()
return new Date().getTime() >= expiresDate
}
@@ -114,12 +116,13 @@ async function refreshToken(): Promise {
refreshTokenLock = false
try {
// 调用接口判断token是否过期
- const tokenStorage = uni.getStorageSync(TOKEN_KEY)
- const { data } = await userApi.refreshToken(tokenStorage.refresh_token)
+ const tokenStorage = uni.getStorageSync(TOKEN_KEY) as GlobalSetting.TokenStorage
+ const { data } = await userApi.refreshToken(tokenStorage.refreshToken)
if (data) {
- tokenStorage.access_token = data.access_token
- tokenStorage.refresh_token = data.refresh_token
- tokenStorage.expires_in = data.expires_in
+ tokenStorage.accessToken = data?.accessToken?.tokenValue
+ tokenStorage.refreshToken = data?.refreshToken?.tokenValue
+ tokenStorage.accessTokenExpiresIn = data?.accessToken?.expiresAt
+ tokenStorage.refreshTokenExpiresIn = data?.refreshToken?.expiresAt
uni.setStorageSync(TOKEN_KEY, tokenStorage)
}
} catch (error) {
diff --git a/src/static/page/address.svg b/src/static/page/address.svg
new file mode 100644
index 0000000..13f6416
--- /dev/null
+++ b/src/static/page/address.svg
@@ -0,0 +1,16 @@
+
\ No newline at end of file
diff --git a/src/static/page/arrow-down-s-fill.svg b/src/static/page/arrow-down-s-fill.svg
new file mode 100644
index 0000000..25711a6
--- /dev/null
+++ b/src/static/page/arrow-down-s-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/static/page/arrow-right.svg b/src/static/page/arrow-right.svg
new file mode 100644
index 0000000..cea3368
--- /dev/null
+++ b/src/static/page/arrow-right.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/static/page/fold.svg b/src/static/page/fold.svg
new file mode 100644
index 0000000..e10fcda
--- /dev/null
+++ b/src/static/page/fold.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/static/page/keyboard-delete.svg b/src/static/page/keyboard-delete.svg
new file mode 100644
index 0000000..894a7ee
--- /dev/null
+++ b/src/static/page/keyboard-delete.svg
@@ -0,0 +1,26 @@
+
\ No newline at end of file
diff --git a/src/static/page/money-cny-circle-fill.svg b/src/static/page/money-cny-circle-fill.svg
new file mode 100644
index 0000000..6a27b17
--- /dev/null
+++ b/src/static/page/money-cny-circle-fill.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/static/page/phone.svg b/src/static/page/phone.svg
new file mode 100644
index 0000000..74b8f6b
--- /dev/null
+++ b/src/static/page/phone.svg
@@ -0,0 +1,16 @@
+
\ No newline at end of file
diff --git a/src/static/page/unfold.svg b/src/static/page/unfold.svg
new file mode 100644
index 0000000..38d1a27
--- /dev/null
+++ b/src/static/page/unfold.svg
@@ -0,0 +1 @@
+
\ No newline at end of file