准备上传

This commit is contained in:
2025-10-08 19:15:20 +08:00
parent 0aa7d55a23
commit 0e14a5fa1c
193 changed files with 14697 additions and 2461 deletions

View File

@@ -250,6 +250,7 @@ if (uni.restoreGlobal) {
monthProfit: "本月利润",
stockCount: "库存量"
};
const _imports_0$5 = "/static/icons/product.png";
const _export_sfc = (sfc, props) => {
const target = sfc.__vccOpts || sfc;
for (const [key, val] of props) {
@@ -443,7 +444,7 @@ if (uni.restoreGlobal) {
},
goDetail() {
try {
formatAppLog("log", "at pages/index/index.vue:259", "[index] goDetail → /pages/detail/index");
formatAppLog("log", "at pages/index/index.vue:265", "[index] goDetail → /pages/detail/index");
} catch (e) {
}
uni.switchTab({ url: "/pages/detail/index" });
@@ -458,6 +459,17 @@ if (uni.restoreGlobal) {
showCancel: false
});
},
onPartsSearchTap() {
try {
uni.setStorageSync("PRODUCT_SEARCH_CONFIG", JSON.stringify({
openTab: "search",
mode: "template"
}));
} catch (e) {
formatAppLog("error", "at pages/index/index.vue:285", "[index] 设置存储标志失败:", e);
}
uni.switchTab({ url: "/pages/product/list" });
},
onIconError(item) {
item.img = "";
}
@@ -686,6 +698,20 @@ if (uni.restoreGlobal) {
))
]))
]),
vue.createCommentVNode(" 配件查询按钮 "),
vue.createElementVNode("view", {
class: "parts-search-btn",
onClick: _cache[6] || (_cache[6] = (...args) => $options.onPartsSearchTap && $options.onPartsSearchTap(...args)),
"hover-class": "parts-search-btn-active",
"hover-stay-time": "80"
}, [
vue.createElementVNode("image", {
src: _imports_0$5,
class: "parts-search-icon",
mode: "aspectFit"
}),
vue.createElementVNode("text", { class: "parts-search-text" }, "配件查询")
]),
vue.createCommentVNode(" 分割标题:产品与功能 "),
vue.createElementVNode("view", { class: "section-title" }, [
vue.createElementVNode("text", { class: "section-text" }, "常用功能")
@@ -1790,6 +1816,21 @@ if (uni.restoreGlobal) {
})();
if (!hasToken)
return;
try {
const configStr = uni.getStorageSync("PRODUCT_SEARCH_CONFIG");
if (configStr) {
const config = JSON.parse(configStr);
if (config.openTab) {
this.tab = config.openTab;
}
if (config.mode) {
this.query.mode = config.mode;
}
uni.removeStorageSync("PRODUCT_SEARCH_CONFIG");
}
} catch (e) {
formatAppLog("error", "at pages/product/list.vue:121", "[list] 处理查询配置失败:", e);
}
this.reload();
},
computed: {
@@ -1924,6 +1965,9 @@ if (uni.restoreGlobal) {
} catch (e) {
uni.showToast({ title: "删除失败", icon: "none" });
}
},
goSubmit() {
uni.navigateTo({ url: "/pages/product/submit" });
}
}
};
@@ -2214,7 +2258,11 @@ if (uni.restoreGlobal) {
32
/* NEED_HYDRATION */
),
vue.createCommentVNode(" 保留“我的提交”页的+,此处不显示 ")
vue.createCommentVNode(' 右下角的"+"按钮 '),
vue.createElementVNode("view", {
class: "fab",
onClick: _cache[10] || (_cache[10] = (...args) => $options.goSubmit && $options.goSubmit(...args))
}, "")
]);
}
const PagesProductList = /* @__PURE__ */ _export_sfc(_sfc_main$r, [["render", _sfc_render$q], ["__file", "C:/Users/21826/Desktop/Wj/PartsInquiry/frontend/pages/product/list.vue"]]);
@@ -2646,10 +2694,6 @@ if (uni.restoreGlobal) {
"scroll-y": "",
class: "page"
}, [
vue.createElementVNode("view", { class: "hero" }, [
vue.createElementVNode("text", { class: "title" }, "提交配件"),
vue.createElementVNode("text", { class: "desc" }, "填写型号、名称、参数与图片,提交后进入待审核状态")
]),
vue.createElementVNode("view", { class: "section" }, [
vue.createElementVNode("view", { class: "row required" }, [
vue.createElementVNode("text", { class: "label" }, "型号"),
@@ -7212,6 +7256,15 @@ if (uni.restoreGlobal) {
this.shopName = storeName;
const phone = (profile == null ? void 0 : profile.phone) || uni.getStorageSync("USER_MOBILE") || "";
this.mobile = phone;
const email = (profile == null ? void 0 : profile.email) || "";
try {
if (email) {
uni.setStorageSync("USER_EMAIL", email);
} else {
uni.removeStorageSync("USER_EMAIL");
}
} catch (_) {
}
} catch (e) {
try {
const storeName = uni.getStorageSync("SHOP_NAME") || "";

View File

@@ -96,6 +96,35 @@ body {
background: rgba(76, 141, 255, 0.18);
}
/* 配件查询按钮 */
.parts-search-btn {
margin: 0 0.75rem 0.625rem;
padding: 0.75rem 1rem;
border-radius: 0.625rem;
background: linear-gradient(135deg, #4C8DFF 0%, #3d73e6 100%);
display: flex;
align-items: center;
justify-content: center;
gap: 0.5rem;
box-shadow: 0 0.25rem 0.625rem rgba(76, 141, 255, 0.25);
transition: all 0.2s ease;
}
.parts-search-btn-active {
opacity: 0.85;
transform: scale(0.98);
}
.parts-search-icon {
width: 1.625rem;
height: 1.625rem;
filter: brightness(0) invert(1);
}
.parts-search-text {
color: #fff;
font-size: 1.0625rem;
font-weight: 800;
letter-spacing: 0.0625rem;
}
/* 分割标题 */
.section-title {
display: flex;

View File

@@ -166,11 +166,12 @@
bottom: 3.75rem;
width: 3.125rem;
height: 3.125rem;
background: #4C8DFF;
background: linear-gradient(135deg, #4c8dff, #6ab7ff);
color: #fff;
border-radius: 1.5625rem;
text-align: center;
line-height: 3.125rem;
display: flex;
align-items: center;
justify-content: center;
font-size: 1.5rem;
box-shadow: 0 0.25rem 0.625rem rgba(0, 0, 0, 0.15);
box-shadow: 0 0.625rem 1.25rem rgba(0, 0, 0, 0.2);
}

View File

@@ -26,19 +26,27 @@
/* 文章场景相关 */
/* 表单控件尺寸(统一配置,避免页面内硬编码) */
.page {
padding: 0.75rem 0.75rem 5rem;
min-height: 100vh;
padding: 0.625rem 0.75rem 5rem;
background: #f6f7fb;
box-sizing: border-box;
}
.header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 0.625rem;
gap: 0.5rem;
flex-wrap: wrap;
}
.model {
font-size: 1.125rem;
font-weight: 700;
color: #2d3a4a;
word-break: break-word;
overflow-wrap: break-word;
flex: 1;
min-width: 0;
}
.status.deleted {
font-size: 0.75rem;
@@ -46,17 +54,20 @@
border-radius: 31.21875rem;
background: #c0c4cc;
color: #fff;
white-space: nowrap;
}
.section {
background: #fff;
border-radius: 0.5rem;
padding: 0.625rem 0.6875rem;
margin-bottom: 0.75rem;
margin-bottom: 0.625rem;
box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.04);
}
.row {
display: flex;
justify-content: space-between;
align-items: flex-start;
gap: 0.5rem;
padding: 0.375rem 0;
border-bottom: 0.03125rem solid #f1f2f5;
}
@@ -64,16 +75,19 @@
border-bottom: none;
}
.label {
width: 5rem;
flex-shrink: 0;
width: 4.375rem;
font-size: 0.8125rem;
color: #7a8899;
}
.value {
flex: 1;
min-width: 0;
text-align: right;
font-size: 0.8125rem;
color: #2d3a4a;
word-break: break-all;
word-break: break-word;
overflow-wrap: break-word;
}
.block-title {
font-size: 0.875rem;
@@ -84,6 +98,7 @@
.placeholder {
font-size: 0.8125rem;
color: #7a8899;
word-break: break-word;
}
.params {
display: flex;
@@ -93,16 +108,22 @@
.param {
display: flex;
justify-content: flex-start;
align-items: center;
align-items: flex-start;
gap: 0.5rem;
font-size: 0.8125rem;
color: #2d3a4a;
}
.param-key {
flex-shrink: 0;
color: #7a8899;
min-width: 5rem;
}
.param-val {
flex: 1;
min-width: 0;
text-align: left;
word-break: break-word;
overflow-wrap: break-word;
}
.images {
display: grid;
@@ -116,9 +137,17 @@
background: #f0f2f5;
}
.footer {
position: fixed;
left: 0;
right: 0;
bottom: 0;
display: flex;
justify-content: flex-end;
gap: 0.625rem;
padding: 0.625rem 0.75rem;
padding-bottom: calc(0.625rem + env(safe-area-inset-bottom));
background: rgba(255, 255, 255, 0.96);
box-shadow: 0 -0.1875rem 0.625rem rgba(0, 0, 0, 0.08);
}
.loading {
height: 100vh;

View File

@@ -42,30 +42,16 @@
/* 文章场景相关 */
/* 表单控件尺寸(统一配置,避免页面内硬编码) */
.page {
padding: 0.75rem 0.75rem 3.75rem;
height: 100vh;
padding: 0.5rem 0.75rem 3.75rem;
background: #f6f7fb;
}
.hero {
padding: 0.75rem;
background: linear-gradient(135deg, #4c8dff, #6ab7ff);
border-radius: 0.625rem;
color: #fff;
margin-bottom: 0.75rem;
}
.title {
font-size: 1.125rem;
font-weight: 700;
}
.desc {
font-size: 0.8125rem;
margin-top: 0.25rem;
opacity: 0.9;
box-sizing: border-box;
}
.section {
background: #fff;
border-radius: 0.5rem;
padding: 0.625rem 0.6875rem;
margin-bottom: 0.75rem;
margin-bottom: 0.5rem;
box-shadow: 0 0.3125rem 0.9375rem rgba(0, 0, 0, 0.04);
}
.row {