Files
hazardousWaste_app/pages/until.js

169 lines
4.1 KiB
JavaScript
Raw Normal View History

2026-04-03 08:38:34 +08:00
import dayjs from "dayjs";
import numeral from "numeral";
// 订单状态
// 0=入库申请,1=入库成功2=出库申请3=出库成功4=作废
const billTypeMenu = [
{
value: "0",
2026-04-14 08:46:29 +08:00
label: "已提交",
2026-04-03 08:38:34 +08:00
},
{
value: "1",
label: "已完成",
},
{
value: "4",
label: "已取消",
},
];
// 订单状态为0时 再查一次
const billStatueMenu = [
{
value: "0",
2026-04-14 08:46:29 +08:00
label: "库单已提交",
2026-04-03 08:38:34 +08:00
},
{
value: "1",
label: "全部入库",
},
{
value: "2",
2026-04-14 08:46:29 +08:00
label: "物料部分",
2026-04-03 08:38:34 +08:00
},
];
// 物料状态
const materialType = [
{
value: "0",
label: "未提交",
},
{
value: "1",
label: "已提交",
},
];
2026-04-14 08:46:29 +08:00
/**
* 获取入库/出库单状态展示文本
* @param {any} val - 状态
* @param {string|number} status - 物料状态
* @param {number} flag - 1=出库 0=入库
* @returns {string} 状态文本
*/
export const getBillType = (val, status, flag) => {
const valStr = String(val);
const statusStr = String(status);
if (valStr === "0") {
const statusItem = billStatueMenu.find((item) => item.value === statusStr);
if (!statusItem) return "";
const isOut = flag === 1;
const stateVal = statusItem.value;
2026-04-03 08:38:34 +08:00
2026-04-14 08:46:29 +08:00
// 状态 0前缀拼接 入/出
if (stateVal === "0") {
return isOut ? "出" + statusItem.label : "入" + statusItem.label;
}
// 状态 2后缀拼接 入库/出库
if (stateVal === "2") {
return isOut ? statusItem.label + "出库" : statusItem.label + "入库";
}
// 其他状态直接返回
return statusItem.label;
2026-04-03 08:38:34 +08:00
}
2026-04-14 08:46:29 +08:00
// 非0走普通单据类型菜单
return billTypeMenu.find((item) => item.value === valStr)?.label || "";
};
2026-04-03 08:38:34 +08:00
// 获取出入库单的状态以及tag颜色
export const getColor = (val) => {
if (val == "0" || val == "2") {
return "color:#B8B8B8;font-weight:500;font-size:12px;";
} else if (val == "1" || val == "3") {
return "color:green;font-weight:500;font-size:12px;";
} else {
return "color:red;font-weight:500;font-size:12px;";
}
};
// 时间格式化
export const formatDate = (t, fmt = "YYYY-MM-DD HH:mm:ss") =>
t ? dayjs(t).format(fmt) : "-";
// 数字格式化
export const formatNum = (num, fmt = "0.00") =>
num ? numeral(num).format(fmt) : "-";
// 入库单/出库单:获取已入库、出库数量
// item:此列数据 type已入库、剩余数量
export const getStockQuantity = (item, type) => {
const num = item.quantity;
const status = item.status;
// 未入库
if (status == "0") {
if (type == "complete") {
return "0.000";
} else {
return formatNum(num, "0.00");
}
} else {
if (type == "complete") {
return formatNum(num, "0.000");
} else {
return "0.00";
}
}
};
// 清楚缓存 - 将所有需要清楚的缓存写入此处不要写登录信息
export const removeStorage = () => {
uni.removeStorageSync("app_warehousing");
uni.removeStorageSync("app_storageArea");
uni.removeStorageSync("app_billRemark");
uni.removeStorageSync("app_material");
uni.removeStorageSync("app_material_select_list");
};
// 对象转 URL 查询字符串 ?a=1&b=2
export const objectToQuery = (params) => {
if (!params || Object.keys(params).length === 0) return "";
const query = Object.entries(params)
.map(([key, value]) => `${key}=${encodeURIComponent(value)}`)
.join("&");
return "?" + query;
};
// 获取配置的导航路由
export const getTabBarList = () => {
// 1. 从 uni-app 全局配置中读取 tabBar
2026-04-14 08:46:29 +08:00
const tabBarConfig = __uniConfig.tabBar || {};
// 2. 获取 list 数组
2026-04-14 08:46:29 +08:00
const tabList = tabBarConfig.list || [];
return tabList;
};
// ======================
// 工具函数blobUrl 转 可上传的临时文件路径
// ======================
export function blobToTempFilePath(blobUrl) {
return new Promise((resolve, reject) => {
// 1. 下载 blob 数据
uni.downloadFile({
url: blobUrl,
success: (res) => {
if (res.statusCode === 200) {
resolve(res.tempFilePath);
} else {
reject("下载失败");
}
},
fail: reject,
});
});
}