9.18王德鹏/1
This commit is contained in:
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
|
Before Width: | Height: | Size: 5.7 KiB |
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Binary file not shown.
|
Before Width: | Height: | Size: 2.0 KiB |
@@ -1,24 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<title>View</title>
|
||||
<link rel="icon" href="data:,">
|
||||
<link rel="stylesheet" href="app.css" />
|
||||
<script>var __uniConfig = {"globalStyle":{},"darkmode":false}</script>
|
||||
<script>
|
||||
var coverSupport = 'CSS' in window && typeof CSS.supports === 'function' && (CSS.supports('top: env(a)') ||
|
||||
CSS.supports('top: constant(a)'))
|
||||
document.write(
|
||||
'<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0' +
|
||||
(coverSupport ? ', viewport-fit=cover' : '') + '" />')
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="app"></div>
|
||||
<script src="uni-app-view.umd.js"></script>
|
||||
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,11 +0,0 @@
|
||||
|
||||
;(function(){
|
||||
let u=void 0,isReady=false,onReadyCallbacks=[],isServiceReady=false,onServiceReadyCallbacks=[];
|
||||
const __uniConfig = {"pages":[],"globalStyle":{"backgroundColor":"#F8F8F8","navigationBar":{"backgroundColor":"#F8F8F8","titleText":"五金配件管家","type":"default","titleColor":"#000000"},"isNVue":false},"nvue":{"compiler":"uni-app","styleCompiler":"uni-app","flex-direction":"column"},"renderer":"auto","appname":"林林林","splashscreen":{"alwaysShowBeforeRender":true,"autoclose":true},"compilerVersion":"4.76","entryPagePath":"pages/index/index","entryPageQuery":"","realEntryPagePath":"","networkTimeout":{"request":60000,"connectSocket":60000,"uploadFile":60000,"downloadFile":60000},"locales":{},"darkmode":false,"themeConfig":{}};
|
||||
const __uniRoutes = [{"path":"pages/index/index","meta":{"isQuit":true,"isEntry":true,"navigationBar":{"titleText":"五金配件管家","type":"default"},"isNVue":false}}].map(uniRoute=>(uniRoute.meta.route=uniRoute.path,__uniConfig.pages.push(uniRoute.path),uniRoute.path='/'+uniRoute.path,uniRoute));
|
||||
__uniConfig.styles=[];//styles
|
||||
__uniConfig.onReady=function(callback){if(__uniConfig.ready){callback()}else{onReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"ready",{get:function(){return isReady},set:function(val){isReady=val;if(!isReady){return}const callbacks=onReadyCallbacks.slice(0);onReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
||||
__uniConfig.onServiceReady=function(callback){if(__uniConfig.serviceReady){callback()}else{onServiceReadyCallbacks.push(callback)}};Object.defineProperty(__uniConfig,"serviceReady",{get:function(){return isServiceReady},set:function(val){isServiceReady=val;if(!isServiceReady){return}const callbacks=onServiceReadyCallbacks.slice(0);onServiceReadyCallbacks.length=0;callbacks.forEach(function(callback){callback()})}});
|
||||
service.register("uni-app-config",{create(a,b,c){if(!__uniConfig.viewport){var d=b.weex.config.env.scale,e=b.weex.config.env.deviceWidth,f=Math.ceil(e/d);Object.assign(__uniConfig,{viewport:f,defaultFontSize:16})}return{instance:{__uniConfig:__uniConfig,__uniRoutes:__uniRoutes,global:u,window:u,document:u,frames:u,self:u,location:u,navigator:u,localStorage:u,history:u,Caches:u,screen:u,alert:u,confirm:u,prompt:u,fetch:u,XMLHttpRequest:u,WebSocket:u,webkit:u,print:u}}}});
|
||||
})();
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
(function(){})();
|
||||
320
frontend/unpackage/dist/dev/app-plus/app-service.js
vendored
320
frontend/unpackage/dist/dev/app-plus/app-service.js
vendored
@@ -1,320 +0,0 @@
|
||||
if (typeof Promise !== "undefined" && !Promise.prototype.finally) {
|
||||
Promise.prototype.finally = function(callback) {
|
||||
const promise = this.constructor;
|
||||
return this.then(
|
||||
(value) => promise.resolve(callback()).then(() => value),
|
||||
(reason) => promise.resolve(callback()).then(() => {
|
||||
throw reason;
|
||||
})
|
||||
);
|
||||
};
|
||||
}
|
||||
;
|
||||
if (typeof uni !== "undefined" && uni && uni.requireGlobal) {
|
||||
const global = uni.requireGlobal();
|
||||
ArrayBuffer = global.ArrayBuffer;
|
||||
Int8Array = global.Int8Array;
|
||||
Uint8Array = global.Uint8Array;
|
||||
Uint8ClampedArray = global.Uint8ClampedArray;
|
||||
Int16Array = global.Int16Array;
|
||||
Uint16Array = global.Uint16Array;
|
||||
Int32Array = global.Int32Array;
|
||||
Uint32Array = global.Uint32Array;
|
||||
Float32Array = global.Float32Array;
|
||||
Float64Array = global.Float64Array;
|
||||
BigInt64Array = global.BigInt64Array;
|
||||
BigUint64Array = global.BigUint64Array;
|
||||
}
|
||||
;
|
||||
if (uni.restoreGlobal) {
|
||||
uni.restoreGlobal(Vue, weex, plus, setTimeout, clearTimeout, setInterval, clearInterval);
|
||||
}
|
||||
(function(vue) {
|
||||
"use strict";
|
||||
const _imports_0 = "/static/metal-bg.jpg";
|
||||
const _export_sfc = (sfc, props) => {
|
||||
const target = sfc.__vccOpts || sfc;
|
||||
for (const [key, val] of props) {
|
||||
target[key] = val;
|
||||
}
|
||||
return target;
|
||||
};
|
||||
const _sfc_main$1 = {
|
||||
data() {
|
||||
return {
|
||||
todayAmount: "0.00",
|
||||
monthProfit: "0.00",
|
||||
stockQty: "0.00",
|
||||
activeTab: "home",
|
||||
notices: [
|
||||
{ text: "选材精工:不锈钢、合金钢,耐腐蚀更耐用", tag: "品质" },
|
||||
{ text: "表面工艺:电镀锌/镀镍/发黑处理,性能均衡", tag: "工艺" },
|
||||
{ text: "库存齐全:螺丝、螺母、垫圈、膨胀螺栓等现货", tag: "库存" },
|
||||
{ text: "企业采购支持:批量优惠,次日发货", tag: "服务" }
|
||||
],
|
||||
features: [
|
||||
{ key: "customer", title: "客户", img: "/static/icons/customer.png", emoji: "👥" },
|
||||
{ key: "sale", title: "销售", img: "/static/icons/sale.png", emoji: "💰" },
|
||||
{ key: "account", title: "账户", img: "/static/icons/account.png", emoji: "💳" },
|
||||
{ key: "supplier", title: "供应商", img: "/static/icons/supplier.png", emoji: "🚚" },
|
||||
{ key: "purchase", title: "进货", img: "/static/icons/purchase.png", emoji: "🛒" },
|
||||
{ key: "otherPay", title: "其他支出", img: "/static/icons/other-pay.png", emoji: "💸" },
|
||||
{ key: "vip", title: "VIP会员", img: "/static/icons/vip.png", emoji: "👑" },
|
||||
{ key: "report", title: "报表", img: "/static/icons/report.png", emoji: "📊" },
|
||||
{ key: "more", title: "更多", img: "/static/icons/more.png", emoji: "⋯" }
|
||||
]
|
||||
};
|
||||
},
|
||||
methods: {
|
||||
onFeatureTap(item) {
|
||||
uni.showToast({ title: item.title + "(开发中)", icon: "none" });
|
||||
},
|
||||
onCreateOrder() {
|
||||
uni.showToast({ title: "开单(开发中)", icon: "none" });
|
||||
},
|
||||
onNoticeTap(n) {
|
||||
uni.showModal({
|
||||
title: "公告",
|
||||
content: n.text,
|
||||
showCancel: false
|
||||
});
|
||||
},
|
||||
onNoticeList() {
|
||||
uni.showToast({ title: "公告列表(开发中)", icon: "none" });
|
||||
},
|
||||
onIconError(item) {
|
||||
item.img = "";
|
||||
}
|
||||
}
|
||||
};
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return vue.openBlock(), vue.createElementBlock("view", { class: "home" }, [
|
||||
vue.createElementVNode("image", {
|
||||
class: "home-bg",
|
||||
src: _imports_0,
|
||||
mode: "aspectFill"
|
||||
}),
|
||||
vue.createCommentVNode(" 顶部统计卡片 "),
|
||||
vue.createElementVNode("view", { class: "hero" }, [
|
||||
vue.createElementVNode("view", { class: "hero-top" }, [
|
||||
vue.createElementVNode("text", { class: "brand" }, "五金配件管家"),
|
||||
vue.createElementVNode("view", { class: "cta" }, [
|
||||
vue.createElementVNode("text", { class: "cta-text" }, "咨询")
|
||||
])
|
||||
]),
|
||||
vue.createElementVNode("view", { class: "kpi" }, [
|
||||
vue.createElementVNode("view", { class: "kpi-item" }, [
|
||||
vue.createElementVNode("text", { class: "kpi-label" }, "今日销售额"),
|
||||
vue.createElementVNode(
|
||||
"text",
|
||||
{ class: "kpi-value" },
|
||||
vue.toDisplayString($data.todayAmount),
|
||||
1
|
||||
/* TEXT */
|
||||
)
|
||||
]),
|
||||
vue.createElementVNode("view", { class: "kpi-item" }, [
|
||||
vue.createElementVNode("text", { class: "kpi-label" }, "本月利润"),
|
||||
vue.createElementVNode(
|
||||
"text",
|
||||
{ class: "kpi-value" },
|
||||
vue.toDisplayString($data.monthProfit),
|
||||
1
|
||||
/* TEXT */
|
||||
)
|
||||
]),
|
||||
vue.createElementVNode("view", { class: "kpi-item" }, [
|
||||
vue.createElementVNode("text", { class: "kpi-label" }, "库存数量"),
|
||||
vue.createElementVNode(
|
||||
"text",
|
||||
{ class: "kpi-value" },
|
||||
vue.toDisplayString($data.stockQty),
|
||||
1
|
||||
/* TEXT */
|
||||
)
|
||||
])
|
||||
])
|
||||
]),
|
||||
vue.createCommentVNode(" 公告栏:自动轮播,可点击查看详情 "),
|
||||
vue.createElementVNode("view", { class: "notice" }, [
|
||||
vue.createElementVNode("view", { class: "notice-left" }, "公告"),
|
||||
vue.createElementVNode("swiper", {
|
||||
class: "notice-swiper",
|
||||
circular: "",
|
||||
autoplay: "",
|
||||
interval: "4000",
|
||||
duration: "400",
|
||||
vertical: ""
|
||||
}, [
|
||||
(vue.openBlock(true), vue.createElementBlock(
|
||||
vue.Fragment,
|
||||
null,
|
||||
vue.renderList($data.notices, (n, idx) => {
|
||||
return vue.openBlock(), vue.createElementBlock("swiper-item", { key: idx }, [
|
||||
vue.createElementVNode("view", {
|
||||
class: "notice-item",
|
||||
onClick: ($event) => $options.onNoticeTap(n)
|
||||
}, [
|
||||
vue.createElementVNode(
|
||||
"text",
|
||||
{ class: "notice-text" },
|
||||
vue.toDisplayString(n.text),
|
||||
1
|
||||
/* TEXT */
|
||||
),
|
||||
n.tag ? (vue.openBlock(), vue.createElementBlock(
|
||||
"text",
|
||||
{
|
||||
key: 0,
|
||||
class: "notice-tag"
|
||||
},
|
||||
vue.toDisplayString(n.tag),
|
||||
1
|
||||
/* TEXT */
|
||||
)) : vue.createCommentVNode("v-if", true)
|
||||
], 8, ["onClick"])
|
||||
]);
|
||||
}),
|
||||
128
|
||||
/* KEYED_FRAGMENT */
|
||||
))
|
||||
]),
|
||||
vue.createElementVNode("view", {
|
||||
class: "notice-right",
|
||||
onClick: _cache[0] || (_cache[0] = (...args) => $options.onNoticeList && $options.onNoticeList(...args))
|
||||
}, "更多")
|
||||
]),
|
||||
vue.createCommentVNode(" 分割标题:产品与功能 "),
|
||||
vue.createElementVNode("view", { class: "section-title" }, [
|
||||
vue.createElementVNode("text", { class: "section-text" }, "常用功能")
|
||||
]),
|
||||
vue.createCommentVNode(" 功能九宫格(玻璃容器 + 圆角方形图标) "),
|
||||
vue.createElementVNode("view", { class: "grid-wrap" }, [
|
||||
vue.createElementVNode("view", { class: "grid" }, [
|
||||
(vue.openBlock(true), vue.createElementBlock(
|
||||
vue.Fragment,
|
||||
null,
|
||||
vue.renderList($data.features, (item) => {
|
||||
return vue.openBlock(), vue.createElementBlock("view", {
|
||||
class: "grid-item",
|
||||
key: item.key,
|
||||
onClick: ($event) => $options.onFeatureTap(item)
|
||||
}, [
|
||||
vue.createElementVNode("view", { class: "icon icon-squircle" }, [
|
||||
item.img ? (vue.openBlock(), vue.createElementBlock("image", {
|
||||
key: 0,
|
||||
src: item.img,
|
||||
class: "icon-img",
|
||||
mode: "aspectFit",
|
||||
onError: ($event) => $options.onIconError(item)
|
||||
}, null, 40, ["src", "onError"])) : item.emoji ? (vue.openBlock(), vue.createElementBlock(
|
||||
"text",
|
||||
{
|
||||
key: 1,
|
||||
class: "icon-emoji"
|
||||
},
|
||||
vue.toDisplayString(item.emoji),
|
||||
1
|
||||
/* TEXT */
|
||||
)) : (vue.openBlock(), vue.createElementBlock("view", {
|
||||
key: 2,
|
||||
class: "icon-placeholder"
|
||||
}))
|
||||
]),
|
||||
vue.createElementVNode(
|
||||
"text",
|
||||
{ class: "grid-chip" },
|
||||
vue.toDisplayString(item.title),
|
||||
1
|
||||
/* TEXT */
|
||||
)
|
||||
], 8, ["onClick"]);
|
||||
}),
|
||||
128
|
||||
/* KEYED_FRAGMENT */
|
||||
))
|
||||
])
|
||||
]),
|
||||
vue.createCommentVNode(" 底部操作条 "),
|
||||
vue.createElementVNode("view", { class: "bottom-bar" }, [
|
||||
vue.createElementVNode(
|
||||
"view",
|
||||
{
|
||||
class: vue.normalizeClass(["tab", { active: $data.activeTab === "home" }]),
|
||||
onClick: _cache[1] || (_cache[1] = ($event) => $data.activeTab = "home")
|
||||
},
|
||||
[
|
||||
vue.createElementVNode("text", null, "首页")
|
||||
],
|
||||
2
|
||||
/* CLASS */
|
||||
),
|
||||
vue.createElementVNode("view", {
|
||||
class: "tab primary",
|
||||
onClick: _cache[2] || (_cache[2] = (...args) => $options.onCreateOrder && $options.onCreateOrder(...args))
|
||||
}, [
|
||||
vue.createElementVNode("text", null, "开单")
|
||||
]),
|
||||
vue.createElementVNode(
|
||||
"view",
|
||||
{
|
||||
class: vue.normalizeClass(["tab", { active: $data.activeTab === "detail" }]),
|
||||
onClick: _cache[3] || (_cache[3] = ($event) => $data.activeTab = "detail")
|
||||
},
|
||||
[
|
||||
vue.createElementVNode("text", null, "明细")
|
||||
],
|
||||
2
|
||||
/* CLASS */
|
||||
),
|
||||
vue.createElementVNode(
|
||||
"view",
|
||||
{
|
||||
class: vue.normalizeClass(["tab", { active: $data.activeTab === "me" }]),
|
||||
onClick: _cache[4] || (_cache[4] = ($event) => $data.activeTab = "me")
|
||||
},
|
||||
[
|
||||
vue.createElementVNode("text", null, "我的")
|
||||
],
|
||||
2
|
||||
/* CLASS */
|
||||
)
|
||||
])
|
||||
]);
|
||||
}
|
||||
const PagesIndexIndex = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render], ["__file", "D:/wx/PartsInquiry/frontend/pages/index/index.vue"]]);
|
||||
__definePage("pages/index/index", PagesIndexIndex);
|
||||
function formatAppLog(type, filename, ...args) {
|
||||
if (uni.__log__) {
|
||||
uni.__log__(type, filename, ...args);
|
||||
} else {
|
||||
console[type].apply(console, [...args, filename]);
|
||||
}
|
||||
}
|
||||
const _sfc_main = {
|
||||
onLaunch: function() {
|
||||
formatAppLog("log", "at App.vue:4", "App Launch");
|
||||
},
|
||||
onShow: function() {
|
||||
formatAppLog("log", "at App.vue:7", "App Show");
|
||||
},
|
||||
onHide: function() {
|
||||
formatAppLog("log", "at App.vue:10", "App Hide");
|
||||
}
|
||||
};
|
||||
const App = /* @__PURE__ */ _export_sfc(_sfc_main, [["__file", "D:/wx/PartsInquiry/frontend/App.vue"]]);
|
||||
function createApp() {
|
||||
const app = vue.createVueApp(App);
|
||||
return {
|
||||
app
|
||||
};
|
||||
}
|
||||
const { app: __app__, Vuex: __Vuex__, Pinia: __Pinia__ } = createApp();
|
||||
uni.Vuex = __Vuex__;
|
||||
uni.Pinia = __Pinia__;
|
||||
__app__.provide("__globalStyles", __uniConfig.styles);
|
||||
__app__._component.mpType = "app";
|
||||
__app__._component.render = () => {
|
||||
};
|
||||
__app__.mount("#app");
|
||||
})(Vue);
|
||||
4
frontend/unpackage/dist/dev/app-plus/app.css
vendored
4
frontend/unpackage/dist/dev/app-plus/app.css
vendored
File diff suppressed because one or more lines are too long
107
frontend/unpackage/dist/dev/app-plus/manifest.json
vendored
107
frontend/unpackage/dist/dev/app-plus/manifest.json
vendored
@@ -1,107 +0,0 @@
|
||||
{
|
||||
"@platforms": [
|
||||
"android",
|
||||
"iPhone",
|
||||
"iPad"
|
||||
],
|
||||
"id": "",
|
||||
"name": "林林林",
|
||||
"version": {
|
||||
"name": "1.0.0",
|
||||
"code": "100"
|
||||
},
|
||||
"description": "",
|
||||
"developer": {
|
||||
"name": "",
|
||||
"email": "",
|
||||
"url": ""
|
||||
},
|
||||
"permissions": {
|
||||
"UniNView": {
|
||||
"description": "UniNView原生渲染"
|
||||
}
|
||||
},
|
||||
"plus": {
|
||||
"useragent": {
|
||||
"value": "uni-app",
|
||||
"concatenate": true
|
||||
},
|
||||
"splashscreen": {
|
||||
"target": "id:1",
|
||||
"autoclose": true,
|
||||
"waiting": true,
|
||||
"delay": 0
|
||||
},
|
||||
"popGesture": "close",
|
||||
"launchwebview": {
|
||||
"render": "always",
|
||||
"id": "1",
|
||||
"kernel": "WKWebview"
|
||||
},
|
||||
"usingComponents": true,
|
||||
"nvueStyleCompiler": "uni-app",
|
||||
"compilerVersion": 3,
|
||||
"distribute": {
|
||||
"google": {
|
||||
"permissions": [
|
||||
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_LOGS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
|
||||
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
|
||||
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
|
||||
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
|
||||
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
|
||||
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
|
||||
"<uses-feature android:name=\"android.hardware.camera\"/>",
|
||||
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
|
||||
]
|
||||
},
|
||||
"apple": {},
|
||||
"plugins": {
|
||||
"audio": {
|
||||
"mp3": {
|
||||
"description": "Android平台录音支持MP3格式文件"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"statusbar": {
|
||||
"immersed": "supportedDevice",
|
||||
"style": "dark",
|
||||
"background": "#F8F8F8"
|
||||
},
|
||||
"uniStatistics": {
|
||||
"enable": false
|
||||
},
|
||||
"allowsInlineMediaPlayback": true,
|
||||
"uni-app": {
|
||||
"control": "uni-v3",
|
||||
"vueVersion": "3",
|
||||
"compilerVersion": "4.76",
|
||||
"nvueCompiler": "uni-app",
|
||||
"renderer": "auto",
|
||||
"nvue": {
|
||||
"flex-direction": "column"
|
||||
},
|
||||
"nvueLaunchMode": "normal",
|
||||
"webView": {
|
||||
"minUserAgentVersion": "49.0"
|
||||
}
|
||||
}
|
||||
},
|
||||
"app-harmony": {
|
||||
"useragent": {
|
||||
"value": "uni-app",
|
||||
"concatenate": true
|
||||
},
|
||||
"uniStatistics": {
|
||||
"enable": false
|
||||
}
|
||||
},
|
||||
"launch_path": "__uniappview.html"
|
||||
}
|
||||
@@ -1,185 +0,0 @@
|
||||
|
||||
.home {
|
||||
padding-bottom: 4.375rem;
|
||||
position: relative;
|
||||
/* 明亮奢华背景:金属拉丝纹理覆盖层 + 柔和浅色渐变 */
|
||||
background:
|
||||
repeating-linear-gradient(0deg, rgba(180,180,180,0.12) 0, rgba(180,180,180,0.12) 0.0625rem, rgba(255,255,255,0.0) 0.0625rem, rgba(255,255,255,0.0) 0.3125rem),
|
||||
linear-gradient(180deg, rgba(255, 255, 255, 0.75) 0%, rgba(255, 255, 255, 0.55) 40%, rgba(255, 255, 255, 0.35) 100%);
|
||||
min-height: 100vh;
|
||||
}
|
||||
.home-bg {
|
||||
position: fixed;
|
||||
left: 0; top: 0; right: 0; bottom: 0;
|
||||
width: 100%; height: 100%;
|
||||
pointer-events: none;
|
||||
z-index: -1;
|
||||
}
|
||||
|
||||
/* 公告栏 */
|
||||
.notice {
|
||||
margin: 0 0.75rem 0.75rem;
|
||||
padding: 0.625rem 0.6875rem;
|
||||
border-radius: 0.625rem;
|
||||
background: rgba(255,255,255,0.78);
|
||||
-webkit-backdrop-filter: blur(0.375rem);
|
||||
backdrop-filter: blur(0.375rem);
|
||||
border: 0.0625rem solid rgba(203, 166, 61, 0.28);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.notice-left {
|
||||
flex: 0 0 auto;
|
||||
display: inline-flex; align-items: center; justify-content: center;
|
||||
min-width: 3rem; height: 1.375rem;
|
||||
padding: 0 0.5rem;
|
||||
border-radius: 31.21875rem;
|
||||
background: linear-gradient(135deg, #FFE69A, #F4CF62);
|
||||
color: #3f320f;
|
||||
font-size: 0.75rem;
|
||||
font-weight: 800;
|
||||
}
|
||||
.notice-swiper { height: 2.25rem; flex: 1;
|
||||
}
|
||||
.notice-item { display: flex; align-items: center; gap: 0.375rem; min-height: 2.25rem;
|
||||
}
|
||||
.notice-text { color: #4b3e19; font-size: 0.875rem; line-height: 1.125rem; font-weight: 600; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
|
||||
}
|
||||
.notice-tag { color: #B4880F; font-size: 0.6875rem; padding: 0.125rem 0.3125rem; border-radius: 31.21875rem; background: rgba(215,167,46,0.18);
|
||||
}
|
||||
.notice-right { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; min-width: 2.25rem; height: 1.375rem; color: #B4880F; font-size: 0.8125rem; padding-left: 0.25rem;
|
||||
}
|
||||
|
||||
/* 分割标题 */
|
||||
.section-title { display: flex; align-items: center; gap: 0.5rem; padding: 0.3125rem 0.875rem 0;
|
||||
}
|
||||
.section-title::before { content: ''; display: block; width: 0.25rem; height: 0.875rem; border-radius: 0.25rem; background: linear-gradient(180deg, #FFE69A, #D7A72E);
|
||||
}
|
||||
.section-text { color: #6b5a2a; font-size: 0.875rem; font-weight: 700; letter-spacing: 0.03125rem;
|
||||
}
|
||||
|
||||
/* 顶部英雄区:浅色玻璃卡片,带金色描边与柔和阴影 */
|
||||
.hero {
|
||||
margin: 0.75rem;
|
||||
padding: 1rem;
|
||||
border-radius: 0.875rem;
|
||||
background: rgba(255, 255, 255, 0.65);
|
||||
-webkit-backdrop-filter: blur(0.4375rem);
|
||||
backdrop-filter: blur(0.4375rem);
|
||||
border: 0.0625rem solid rgba(203, 166, 61, 0.35);
|
||||
box-shadow: 0 0.375rem 0.875rem rgba(0, 0, 0, 0.10), 0 0 0 0.0625rem rgba(255,255,255,0.60) inset;
|
||||
color: #473c22;
|
||||
}
|
||||
.hero-top {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 0.625rem;
|
||||
}
|
||||
.brand {
|
||||
font-size: 1.3125rem;
|
||||
font-weight: 700;
|
||||
letter-spacing: 0.0625rem;
|
||||
color: #B4880F; /* 金色标题 */
|
||||
}
|
||||
.cta {
|
||||
padding: 0.3125rem 0.6875rem;
|
||||
border-radius: 31.21875rem;
|
||||
background: linear-gradient(135deg, rgba(255, 220, 128, 0.65), rgba(255, 240, 190, 0.65));
|
||||
border: 0.0625rem solid rgba(203, 166, 61, 0.45);
|
||||
box-shadow: 0 0.1875rem 0.4375rem rgba(203, 166, 61, 0.25);
|
||||
}
|
||||
.cta-text { color: #5a4712; font-size: 0.8125rem;
|
||||
}
|
||||
.kpi { display: flex;
|
||||
}
|
||||
.kpi-item { flex: 1;
|
||||
}
|
||||
.kpi-label { opacity: 0.9; font-size: 0.75rem; color: #6b5a2a;
|
||||
}
|
||||
.kpi-value { display: block; margin-top: 0.375rem; font-size: 1.4375rem; font-weight: 800; color: #B4880F;
|
||||
}
|
||||
|
||||
/* 功能容器:整体玻璃面板,增强融入感 */
|
||||
.grid-wrap {
|
||||
margin: 0 0.625rem 1rem;
|
||||
padding: 0.875rem 0.625rem 0.375rem;
|
||||
border-radius: 0.75rem;
|
||||
background: rgba(255,255,255,0.55);
|
||||
-webkit-backdrop-filter: blur(0.3125rem);
|
||||
backdrop-filter: blur(0.3125rem);
|
||||
border: 0.0625rem solid rgba(203,166,61,0.22);
|
||||
box-shadow: 0 0.25rem 0.5625rem rgba(0,0,0,0.06);
|
||||
}
|
||||
|
||||
/* 功能九宫格 */
|
||||
.grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(3, 1fr);
|
||||
grid-row-gap: 2rem;
|
||||
grid-column-gap: 1.125rem;
|
||||
padding: 1.25rem 0.875rem 0.875rem;
|
||||
}
|
||||
.grid-item { display: flex; flex-direction: column; align-items: center; text-align: center;
|
||||
}
|
||||
.icon { display: flex; align-items: center; justify-content: center; color: #6b5a2a; position: relative;
|
||||
}
|
||||
.icon-squircle {
|
||||
width: 4.125rem; height: 4.125rem;
|
||||
border-radius: 0.875rem;
|
||||
background: linear-gradient(145deg, rgba(255,255,255,0.92), rgba(255,255,255,0.70));
|
||||
-webkit-backdrop-filter: blur(0.375rem);
|
||||
backdrop-filter: blur(0.375rem);
|
||||
border: 0.0625rem solid rgba(203,166,61,0.22);
|
||||
box-shadow: 0 0.3125rem 0.75rem rgba(0,0,0,0.10), 0 0 0 0.0625rem rgba(255,255,255,0.65) inset;
|
||||
overflow: hidden;
|
||||
}
|
||||
.icon-squircle::before { content: ''; position: absolute; left: -30%; top: -40%; width: 160%; height: 70%; background: linear-gradient( to bottom, rgba(255,255,255,0.9), rgba(255,255,255,0.0) ); transform: rotate(12deg);
|
||||
}
|
||||
.icon-img { width: 3rem; height: 3rem;
|
||||
}
|
||||
.icon-emoji { font-size: 1.875rem; line-height: 1;
|
||||
}
|
||||
.icon-placeholder { width: 2.625rem; height: 2.625rem; border-radius: 0.5625rem; background:
|
||||
linear-gradient(135deg, rgba(212,175,55,0.18), rgba(255,255,255,0.0)),
|
||||
repeating-linear-gradient(90deg, rgba(180,150,60,0.35) 0, rgba(180,150,60,0.35) 0.25rem, transparent 0.25rem, transparent 0.5rem),
|
||||
repeating-linear-gradient(0deg, rgba(180,150,60,0.20) 0, rgba(180,150,60,0.20) 0.25rem, transparent 0.25rem, transparent 0.5rem);
|
||||
box-shadow: inset 0 0 0 0.0625rem rgba(203,166,61,0.28);
|
||||
}
|
||||
.icon-text { font-size: 1.4375rem; font-weight: 700;
|
||||
}
|
||||
.grid-title { display: none;
|
||||
}
|
||||
.grid-chip { margin-top: 0.4375rem; padding: 0.1875rem 0.4375rem; border-radius: 31.21875rem; background: rgba(215,167,46,0.16); color: #5a4a1f; font-size: 0.6875rem;
|
||||
}
|
||||
|
||||
/* 底部操作条:浅色半透明 + 金色主按钮 */
|
||||
.bottom-bar {
|
||||
position: fixed;
|
||||
left: 0; right: 0; bottom: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-around;
|
||||
padding: 0.4375rem 0.5625rem calc(env(safe-area-inset-bottom) + 0.4375rem);
|
||||
background: rgba(255,255,255,0.85);
|
||||
box-shadow: 0 -0.1875rem 0.5625rem rgba(0,0,0,0.08);
|
||||
-webkit-backdrop-filter: blur(0.3125rem);
|
||||
backdrop-filter: blur(0.3125rem);
|
||||
}
|
||||
.tab { flex: 1; text-align: center; color: #8a7535; font-size: 0.8125rem;
|
||||
}
|
||||
.tab.active { color: #B4880F;
|
||||
}
|
||||
.tab.primary {
|
||||
flex: 0 0 auto;
|
||||
min-width: 5.625rem;
|
||||
margin: 0 0.5625rem;
|
||||
padding: 0.5625rem 1rem;
|
||||
background: linear-gradient(135deg, #FFE69A 0%, #F4CF62 45%, #D7A72E 100%);
|
||||
color: #493c1b;
|
||||
border-radius: 31.21875rem;
|
||||
font-size: 0.9375rem;
|
||||
font-weight: 800;
|
||||
box-shadow: 0 0.3125rem 0.6875rem rgba(215,167,46,0.25), 0 0 0 0.0625rem rgba(255,255,255,0.70) inset;
|
||||
}
|
||||
BIN
frontend/unpackage/dist/dev/app-plus/static/logo.png
vendored
BIN
frontend/unpackage/dist/dev/app-plus/static/logo.png
vendored
Binary file not shown.
|
Before Width: | Height: | Size: 3.9 KiB |
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user