You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

558 lines
20 KiB

7 months ago
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 _export_sfc = (sfc, props) => {
const target = sfc.__vccOpts || sfc;
for (const [key, val] of props) {
target[key] = val;
}
return target;
};
const _sfc_main$6 = {
data() {
return {
currentDate: "",
recentRecords: [
{ title: "仓库A盘点", time: "2024-03-20 14:30", status: "completed", statusText: "已完成" },
{ title: "办公用品盘点", time: "2024-03-19 10:15", status: "processing", statusText: "进行中" },
{ title: "设备资产盘点", time: "2024-03-18 16:45", status: "completed", statusText: "已完成" }
]
};
},
onLoad() {
this.updateDate();
},
methods: {
updateDate() {
const now = /* @__PURE__ */ new Date();
const year = now.getFullYear();
const month = String(now.getMonth() + 1).padStart(2, "0");
const day = String(now.getDate()).padStart(2, "0");
this.currentDate = `${year}-${month}-${day}`;
},
scanInventory() {
uni.scanCode({
success: (res) => {
uni.navigateTo({
url: `/pages/inventory/inventory?code=${encodeURIComponent(res.result)}`
});
},
fail: () => {
uni.showToast({ title: "扫码失败", icon: "none" });
}
});
},
scanView() {
uni.scanCode({
success: (res) => {
uni.navigateTo({
url: `/pages/detail/detail?code=${encodeURIComponent(res.result)}`
});
},
fail: () => {
uni.showToast({ title: "扫码失败", icon: "none" });
}
});
}
}
};
function _sfc_render$5(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("view", { class: "index-bg" }, [
vue.createElementVNode("view", { class: "index-content" }, [
vue.createElementVNode("view", { class: "btn-group" }, [
vue.createElementVNode("button", {
class: "main-btn",
onClick: _cache[0] || (_cache[0] = (...args) => $options.scanInventory && $options.scanInventory(...args))
}, "扫码盘点"),
vue.createElementVNode("button", {
class: "main-btn outline",
onClick: _cache[1] || (_cache[1] = (...args) => $options.scanView && $options.scanView(...args))
}, "扫码查看")
]),
vue.createElementVNode("view", { class: "recent-section" }, [
vue.createElementVNode("view", { class: "recent-title" }, "最近盘点记录"),
vue.createElementVNode("view", { class: "recent-list" }, [
(vue.openBlock(true), vue.createElementBlock(
vue.Fragment,
null,
vue.renderList($data.recentRecords, (item, idx) => {
return vue.openBlock(), vue.createElementBlock("view", {
class: "recent-item",
key: idx
}, [
vue.createElementVNode("view", { class: "recent-info" }, [
vue.createElementVNode(
"text",
{ class: "recent-name" },
vue.toDisplayString(item.title),
1
/* TEXT */
),
vue.createElementVNode(
"text",
{ class: "recent-time" },
vue.toDisplayString(item.time),
1
/* TEXT */
)
]),
vue.createElementVNode(
"text",
{
class: vue.normalizeClass(["recent-status", item.status])
},
vue.toDisplayString(item.statusText),
3
/* TEXT, CLASS */
)
]);
}),
128
/* KEYED_FRAGMENT */
))
])
])
])
]);
}
const PagesIndexIndex = /* @__PURE__ */ _export_sfc(_sfc_main$6, [["render", _sfc_render$5], ["__file", "D:/Lynn/Langye/stocktaking/pages/index/index.vue"]]);
const _imports_0 = "/static/avatar.png";
const _sfc_main$5 = {
methods: {
logout() {
uni.reLaunch({ url: "/pages/login/login" });
}
}
};
function _sfc_render$4(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("view", { class: "profile-container" }, [
vue.createElementVNode("view", { class: "avatar-section" }, [
vue.createElementVNode("image", {
class: "avatar",
src: _imports_0,
mode: "aspectFill"
}),
vue.createElementVNode("text", { class: "username" }, "管理员")
]),
vue.createElementVNode("view", { class: "info-section" }, [
vue.createElementVNode("view", { class: "info-item" }, [
vue.createElementVNode("text", { class: "label" }, "账号:"),
vue.createElementVNode("text", { class: "value" }, "admin")
]),
vue.createElementVNode("view", { class: "info-item" }, [
vue.createElementVNode("text", { class: "label" }, "角色:"),
vue.createElementVNode("text", { class: "value" }, "系统管理员")
])
]),
vue.createElementVNode("button", {
class: "logout-btn",
onClick: _cache[0] || (_cache[0] = (...args) => $options.logout && $options.logout(...args))
}, "退出登录")
]);
}
const PagesProfileProfile = /* @__PURE__ */ _export_sfc(_sfc_main$5, [["render", _sfc_render$4], ["__file", "D:/Lynn/Langye/stocktaking/pages/profile/profile.vue"]]);
const _sfc_main$4 = {
data() {
return {
username: "",
password: ""
};
},
methods: {
handleLogin() {
if (!this.username || !this.password) {
uni.showToast({
title: "请输入用户名和密码",
icon: "none"
});
return;
}
uni.showToast({
title: "登录成功",
icon: "success",
duration: 1500
});
setTimeout(() => {
uni.switchTab({
url: "/pages/index/index"
});
}, 1500);
}
}
};
function _sfc_render$3(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("view", { class: "login-bg" }, [
vue.createElementVNode("view", { class: "login-card" }, [
vue.createElementVNode("view", { class: "login-title" }, "欢迎登录"),
vue.createElementVNode("view", { class: "login-subtitle" }, "河道防汛物资管理系统"),
vue.createElementVNode("view", { class: "form-group" }, [
vue.createElementVNode("text", { class: "form-label" }, "用户名"),
vue.withDirectives(vue.createElementVNode(
"input",
{
class: "form-input",
type: "text",
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.username = $event),
placeholder: "请输入用户名"
},
null,
512
/* NEED_PATCH */
), [
[vue.vModelText, $data.username]
])
]),
vue.createElementVNode("view", { class: "form-group" }, [
vue.createElementVNode("text", { class: "form-label" }, "密码"),
vue.withDirectives(vue.createElementVNode(
"input",
{
class: "form-input",
type: "password",
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $data.password = $event),
placeholder: "请输入密码"
},
null,
512
/* NEED_PATCH */
), [
[vue.vModelText, $data.password]
])
]),
vue.createElementVNode("button", {
class: "login-btn",
onClick: _cache[2] || (_cache[2] = (...args) => $options.handleLogin && $options.handleLogin(...args))
}, "登 录")
])
]);
}
const PagesLoginLogin = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["render", _sfc_render$3], ["__file", "D:/Lynn/Langye/stocktaking/pages/login/login.vue"]]);
const _sfc_main$3 = {
data() {
return {
result: ""
};
},
methods: {
doScan() {
uni.scanCode({
success: (res) => {
this.result = res.result;
},
fail: () => {
uni.showToast({ title: "扫码失败", icon: "none" });
}
});
}
}
};
function _sfc_render$2(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("view", { class: "scan-bg" }, [
vue.createElementVNode("view", { class: "scan-title" }, "扫码盘点"),
vue.createElementVNode("button", {
class: "scan-btn",
onClick: _cache[0] || (_cache[0] = (...args) => $options.doScan && $options.doScan(...args))
}, "点击开始扫码"),
$data.result ? (vue.openBlock(), vue.createElementBlock("view", {
key: 0,
class: "scan-result"
}, [
vue.createElementVNode("text", { class: "result-label" }, "扫码结果:"),
vue.createElementVNode(
"text",
{ class: "result-value" },
vue.toDisplayString($data.result),
1
/* TEXT */
)
])) : vue.createCommentVNode("v-if", true)
]);
}
const PagesScanScan = /* @__PURE__ */ _export_sfc(_sfc_main$3, [["render", _sfc_render$2], ["__file", "D:/Lynn/Langye/stocktaking/pages/scan/scan.vue"]]);
const _sfc_main$2 = {
data() {
return {
userName: "张三",
date: "",
stockQty: 100,
// 假数据,实际应根据扫码结果获取
countQty: "",
remark: "",
photo: ""
};
},
onLoad(options) {
this.date = this.getToday();
if (options.code)
;
},
methods: {
getToday() {
const now = /* @__PURE__ */ new Date();
const y = now.getFullYear();
const m = String(now.getMonth() + 1).padStart(2, "0");
const d = String(now.getDate()).padStart(2, "0");
return `${y}-${m}-${d}`;
},
choosePhoto() {
uni.chooseImage({
count: 1,
success: (res) => {
this.photo = res.tempFilePaths[0];
}
});
},
submit() {
if (!this.countQty) {
uni.showToast({ title: "请输入盘点数量", icon: "none" });
return;
}
uni.showToast({ title: "盘点提交成功", icon: "success" });
}
}
};
function _sfc_render$1(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("view", { class: "inventory-bg" }, [
vue.createElementVNode("view", { class: "inventory-card" }, [
vue.createElementVNode("view", { class: "form-group" }, [
vue.createElementVNode("text", { class: "form-label" }, "盘点人"),
vue.createElementVNode("input", {
class: "form-input",
value: $data.userName,
disabled: ""
}, null, 8, ["value"])
]),
vue.createElementVNode("view", { class: "form-group" }, [
vue.createElementVNode("text", { class: "form-label" }, "盘点日期"),
vue.createElementVNode("input", {
class: "form-input",
value: $data.date,
disabled: ""
}, null, 8, ["value"])
]),
vue.createElementVNode("view", { class: "form-group" }, [
vue.createElementVNode("text", { class: "form-label" }, "库存数量"),
vue.createElementVNode("input", {
class: "form-input",
value: $data.stockQty,
disabled: ""
}, null, 8, ["value"])
]),
vue.createElementVNode("view", { class: "form-group" }, [
vue.createElementVNode("text", { class: "form-label" }, "盘点数量"),
vue.withDirectives(vue.createElementVNode(
"input",
{
class: "form-input",
type: "number",
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => $data.countQty = $event),
placeholder: "请输入盘点数量"
},
null,
512
/* NEED_PATCH */
), [
[vue.vModelText, $data.countQty]
])
]),
vue.createElementVNode("view", { class: "form-group" }, [
vue.createElementVNode("text", { class: "form-label" }, "盘点备注"),
vue.withDirectives(vue.createElementVNode(
"textarea",
{
class: "form-textarea",
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => $data.remark = $event),
placeholder: "请输入备注"
},
null,
512
/* NEED_PATCH */
), [
[vue.vModelText, $data.remark]
])
]),
vue.createElementVNode("view", { class: "form-group" }, [
vue.createElementVNode("text", { class: "form-label" }, "照片上传"),
vue.createElementVNode("view", { class: "photo-upload" }, [
$data.photo ? (vue.openBlock(), vue.createElementBlock("view", {
key: 0,
class: "photo-preview"
}, [
vue.createElementVNode("image", {
src: $data.photo,
mode: "aspectFill",
class: "photo-img"
}, null, 8, ["src"]),
vue.createElementVNode("text", {
class: "photo-del",
onClick: _cache[2] || (_cache[2] = ($event) => $data.photo = "")
}, "删除")
])) : (vue.openBlock(), vue.createElementBlock("button", {
key: 1,
class: "photo-btn",
onClick: _cache[3] || (_cache[3] = (...args) => $options.choosePhoto && $options.choosePhoto(...args))
}, "上传照片"))
])
]),
vue.createElementVNode("button", {
class: "submit-btn",
onClick: _cache[4] || (_cache[4] = (...args) => $options.submit && $options.submit(...args))
}, "提交盘点")
])
]);
}
const PagesInventoryInventory = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["render", _sfc_render$1], ["__file", "D:/Lynn/Langye/stocktaking/pages/inventory/inventory.vue"]]);
const _sfc_main$1 = {
data() {
return {
info: {
name: "",
code: "",
stockQty: "",
photo: "",
remark: ""
}
};
},
onLoad(options) {
this.info = {
name: "仓库A物资",
code: options.code || "未知",
stockQty: 100,
photo: "",
remark: "无特殊说明"
};
}
};
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
return vue.openBlock(), vue.createElementBlock("view", { class: "detail-bg" }, [
vue.createElementVNode("view", { class: "detail-card" }, [
vue.createElementVNode("view", { class: "detail-list" }, [
vue.createElementVNode("view", { class: "detail-item" }, [
vue.createElementVNode("text", { class: "detail-label" }, "物资名称"),
vue.createElementVNode(
"text",
{ class: "detail-value" },
vue.toDisplayString($data.info.name),
1
/* TEXT */
)
]),
vue.createElementVNode("view", { class: "detail-item" }, [
vue.createElementVNode("text", { class: "detail-label" }, "物资编号"),
vue.createElementVNode(
"text",
{ class: "detail-value" },
vue.toDisplayString($data.info.code),
1
/* TEXT */
)
]),
vue.createElementVNode("view", { class: "detail-item" }, [
vue.createElementVNode("text", { class: "detail-label" }, "库存数量"),
vue.createElementVNode(
"text",
{ class: "detail-value stock" },
vue.toDisplayString($data.info.stockQty),
1
/* TEXT */
)
]),
vue.createElementVNode("view", { class: "detail-item" }, [
vue.createElementVNode("text", { class: "detail-label" }, "物资图片"),
$data.info.photo ? (vue.openBlock(), vue.createElementBlock("image", {
key: 0,
src: $data.info.photo,
class: "detail-img",
mode: "aspectFill"
}, null, 8, ["src"])) : (vue.openBlock(), vue.createElementBlock("view", {
key: 1,
class: "img-placeholder"
}, "无图片"))
]),
vue.createElementVNode("view", { class: "detail-item remark-item" }, [
vue.createElementVNode("text", { class: "detail-label" }, "备注"),
vue.createElementVNode(
"text",
{ class: "detail-remark" },
vue.toDisplayString($data.info.remark || "无"),
1
/* TEXT */
)
])
])
])
]);
}
const PagesDetailDetail = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["render", _sfc_render], ["__file", "D:/Lynn/Langye/stocktaking/pages/detail/detail.vue"]]);
__definePage("pages/index/index", PagesIndexIndex);
__definePage("pages/profile/profile", PagesProfileProfile);
__definePage("pages/login/login", PagesLoginLogin);
__definePage("pages/scan/scan", PagesScanScan);
__definePage("pages/inventory/inventory", PagesInventoryInventory);
__definePage("pages/detail/detail", PagesDetailDetail);
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:/Lynn/Langye/stocktaking/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);