321 lines
12 KiB
JavaScript
321 lines
12 KiB
JavaScript
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);
|