商品浏览页构建前最后一次更新

This commit is contained in:
2026-08-02 00:21:54 +08:00
parent d37a93ab9e
commit e423ab2d73
146 changed files with 3449 additions and 1342 deletions
+139 -117
View File
@@ -28,28 +28,51 @@
var ICON_MAP = {
'我的设计': '/icon/调色盘.png',
'词云生成': '/icon/词云生成.png',
'收货地址': '/icon/地址.png',
'联系客服': '/icon/电话.png',
'使用帮助': '/icon/使用帮助.png',
'设置': '/icon/设置.png'
};
var STATUS_MAP = [{
key: 'toDesign',
label: '待设计',
icon: '/icon/三角尺.png'
}, {
key: 'pending',
label: '待付款',
icon: '/icon/四角星.png'
}, {
key: 'paid',
label: '待发货',
icon: '/icon/包裹.png'
}, {
key: 'shipping',
label: '待收货',
icon: '/icon/杯子.png'
}, {
key: 'done',
label: '已完成',
icon: '/icon/书本.png'
}];
var MENU_ITEMS = [{
icon: '🎨',
label: '我的设计',
path: '/pages/designList/index'
}, {
icon: '✨',
label: '词云生成',
path: '/pages/wordcloud/index'
}, {
icon: '📍',
label: '收货地址',
path: '/pages/address/index'
}, {
icon: '📞',
label: '联系客服',
path: '/pages/service/index'
}, {
icon: '📋',
label: '使用帮助',
path: '/pages/agreement/index'
}, {
icon: '⚙️',
label: '设置',
path: '/pages/settings/index'
}];
@@ -110,17 +133,26 @@ function ProfilePage() {
}).length
});
};
(0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(function () {
var sync = function sync() {
var info = (0,_utils_store__WEBPACK_IMPORTED_MODULE_2__.getUserInfo)();
if (info) {
if (info !== null && info !== void 0 && info.openid) {
setIsLoggedIn(true);
setUserInfoState({
nickName: info.nickName || '',
avatarUrl: info.avatarUrl || ''
});
} else {
setIsLoggedIn(false);
setUserInfoState({
nickName: '',
avatarUrl: ''
});
}
loadStats();
}, []);
};
(0,_tarojs_taro__WEBPACK_IMPORTED_MODULE_0__.useDidShow)(function () {
sync();
});
var handleOpenLogin = function handleOpenLogin() {
return setShowLogin(true);
};
@@ -161,14 +193,6 @@ function ProfilePage() {
setLoginAvatarUrl(e.detail.avatarUrl || '');
};
var handleQuickClick = function handleQuickClick(type) {
if (!isLoggedIn) {
_tarojs_taro__WEBPACK_IMPORTED_MODULE_0___default().showToast({
title: '请先登录',
icon: 'none'
});
setShowLogin(true);
return;
}
switch (type) {
case 'toDesign':
_tarojs_taro__WEBPACK_IMPORTED_MODULE_0___default().setStorageSync('designList:filter', 'toDesign');
@@ -177,7 +201,6 @@ function ProfilePage() {
});
break;
case 'pending':
// 跳转订单页并带状态参数 - 这里用 event 或 storage 传递
_tarojs_taro__WEBPACK_IMPORTED_MODULE_0___default().setStorageSync('orders:filter', 'pending');
_tarojs_taro__WEBPACK_IMPORTED_MODULE_0___default().switchTab({
url: '/pages/orders/index'
@@ -203,24 +226,30 @@ function ProfilePage() {
break;
}
};
var handleMenuClick = function handleMenuClick(path) {
if (!path) {
var handleMenuClick = function handleMenuClick(path, label) {
if (!isLoggedIn && (path.includes('designList') || path.includes('orders'))) {
_tarojs_taro__WEBPACK_IMPORTED_MODULE_0___default().showToast({
title: '功能开发中',
title: '请先登录',
icon: 'none'
});
setShowLogin(true);
return;
}
if (label === '联系客服') {
_tarojs_taro__WEBPACK_IMPORTED_MODULE_0___default().navigateTo({
url: '/pages/service/index',
fail: function fail(err) {
console.error('navigateTo service fail', err);
_tarojs_taro__WEBPACK_IMPORTED_MODULE_0___default().showToast({
title: '跳转失败',
icon: 'none'
});
}
});
return;
}
if (path.startsWith('/pages/')) {
if (path.includes('designList') || path.includes('orders')) {
if (!isLoggedIn) {
_tarojs_taro__WEBPACK_IMPORTED_MODULE_0___default().showToast({
title: '请先登录',
icon: 'none'
});
setShowLogin(true);
return;
}
_tarojs_taro__WEBPACK_IMPORTED_MODULE_0___default().switchTab({
url: path,
fail: function fail(err) {
@@ -247,6 +276,9 @@ function ProfilePage() {
};
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "theme-".concat(theme),
style: {
minHeight: '100vh'
},
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "profile-page",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_components_ThemeToggle__WEBPACK_IMPORTED_MODULE_3__["default"], {}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
@@ -261,10 +293,11 @@ function ProfilePage() {
mode: "aspectFill"
}) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "avatar-placeholder",
onClick: handleOpenLogin,
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "avatar-icon",
children: "\uD83D\uDC64"
onTap: handleOpenLogin,
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Image, {
className: "avatar-icon-img",
src: "/icon/\u4E2A\u4EBA.png",
mode: "aspectFit"
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "user-meta",
@@ -279,7 +312,7 @@ function ProfilePage() {
}) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.Fragment, {
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "user-name",
onClick: handleOpenLogin,
onTap: handleOpenLogin,
children: "\u70B9\u51FB\u767B\u5F55"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "user-level",
@@ -289,80 +322,60 @@ function ProfilePage() {
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "status-grid",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "status-row row2",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "status-item",
onClick: function onClick() {
return handleQuickClick('toDesign');
},
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "status-num",
children: orderStats.toDesign
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "status-label",
children: "\u5F85\u8BBE\u8BA1"
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "status-divider"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "status-item",
onClick: function onClick() {
return handleQuickClick('pending');
},
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "status-num",
children: orderStats.pending
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "status-label",
children: "\u5F85\u4ED8\u6B3E"
})]
})]
children: STATUS_MAP.slice(0, 2).map(function (s) {
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "status-group",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "status-item",
onTap: function onTap() {
return handleQuickClick(s.key);
},
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Image, {
className: "status-icon-img",
src: s.icon,
mode: "aspectFit"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "status-num",
children: orderStats[s.key]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "status-label",
children: s.label
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "status-divider"
})]
}, s.key);
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "status-divider-h"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "status-row row3",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "status-item",
onClick: function onClick() {
return handleQuickClick('paid');
},
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "status-num",
children: orderStats.paid
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "status-label",
children: "\u5F85\u53D1\u8D27"
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "status-divider"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "status-item",
onClick: function onClick() {
return handleQuickClick('shipping');
},
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "status-num",
children: orderStats.shipping
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "status-label",
children: "\u5F85\u6536\u8D27"
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "status-divider"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "status-item",
onClick: function onClick() {
return handleQuickClick('done');
},
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "status-num",
children: orderStats.done
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "status-label",
children: "\u5DF2\u5B8C\u6210"
})]
})]
children: STATUS_MAP.slice(2).map(function (s, idx) {
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "status-group",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "status-item",
onTap: function onTap() {
return handleQuickClick(s.key);
},
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Image, {
className: "status-icon-img",
src: s.icon,
mode: "aspectFit"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "status-num",
children: orderStats[s.key]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "status-label",
children: s.label
})]
}), idx < 2 && /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "status-divider"
})]
}, s.key);
})
})]
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
@@ -375,14 +388,15 @@ function ProfilePage() {
children: MENU_ITEMS.map(function (item, idx) {
return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "menu-card dashed-card",
onClick: function onClick() {
return handleMenuClick(item.path);
onTap: function onTap() {
return handleMenuClick(item.path, item.label);
},
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "star-badge"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "menu-icon",
children: item.icon
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Image, {
className: "menu-icon-img",
src: ICON_MAP[item.label],
mode: "aspectFit"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "menu-label",
children: item.label
@@ -398,9 +412,16 @@ function ProfilePage() {
className: "flex-between",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "flex-column",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "enterprise-title",
children: "\uD83C\uDFE2 \u4F01\u4E1A\u6279\u91CF\u5B9A\u5236"
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsxs)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "flex-center",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Image, {
className: "enterprise-icon",
src: "/icon/\u4F01\u4E1A\u6279\u91CF\u5B9A\u5236.png",
mode: "aspectFit"
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "enterprise-title",
children: "\u4F01\u4E1A\u6279\u91CF\u5B9A\u5236"
})]
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "enterprise-desc",
children: "\u5E74\u4F1A\u793C\u54C1\u3001\u5165\u804C\u7EAA\u5FF5\u3001\u56E2\u5EFA\u4F34\u624B\u793C"
@@ -436,9 +457,10 @@ function ProfilePage() {
className: "avatar-img",
src: loginAvatarUrl,
mode: "aspectFill"
}) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
className: "avatar-placeholder",
children: "\u70B9\u51FB\u9009\u62E9\u5934\u50CF"
}) : /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Image, {
className: "avatar-placeholder-img",
src: "/icon/\u4E2A\u4EBA.png",
mode: "aspectFit"
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Input, {
type: "nickname",
@@ -452,13 +474,13 @@ function ProfilePage() {
className: "login-actions",
children: [/*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "btn-outline",
onClick: handleCloseLogin,
onTap: handleCloseLogin,
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
children: "\u53D6\u6D88"
})
}), /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.View, {
className: "btn-gradient",
onClick: handleLoginSubmit,
onTap: handleLoginSubmit,
children: /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_5__.jsx)(_tarojs_components__WEBPACK_IMPORTED_MODULE_7__.Text, {
children: "\u767B\u5F55"
})
+1 -1
View File
File diff suppressed because one or more lines are too long
+50 -10
View File
@@ -95,14 +95,20 @@
padding: 20rpx 0;
}
.status-row.row2 {
display: grid;
grid-template-columns: 1fr 2rpx 1fr;
}
.status-row.row3 {
display: grid;
grid-template-columns: 1fr 2rpx 1fr 2rpx 1fr;
/* 每组(item + divider)作为一个 flex 单元 */
.status-group {
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
-webkit-justify-content: center;
-ms-flex-pack: center;
justify-content: center;
}
.status-item {
@@ -115,10 +121,10 @@
-webkit-align-items: center;
-ms-flex-align: center;
align-items: center;
padding: 8rpx 0;
-webkit-flex: 1;
-ms-flex: 1;
flex: 1;
padding: 8rpx 0;
}
.status-num {
@@ -138,6 +144,9 @@
height: 48rpx;
background: var(--line-star);
opacity: 0.25;
-webkit-flex-shrink: 0;
-ms-flex-negative: 0;
flex-shrink: 0;
}
.status-divider-h {
@@ -212,7 +221,38 @@
border-radius: 40rpx !important;
}
/* 登录弹窗 */
.menu-icon-img {
width: 36rpx;
height: 36rpx;
margin-bottom: 12rpx;
}
/* 状态 icon 图片 */
.status-icon-img {
width: 28rpx;
height: 28rpx;
margin-bottom: 4rpx;
}
/* 企业定制icon */
.enterprise-icon {
width: 28rpx;
height: 28rpx;
margin-right: 12rpx;
}
/* 头像占位图 */
.avatar-icon-img {
width: 36rpx;
height: 36rpx;
}
/* 登录弹窗头像占位 */
.avatar-placeholder-img {
width: 56rpx;
height: 56rpx;
}
.modal-overlay {
position: fixed;
top: 0;