Files
hazardousWaste_app/pages/until.js

207 lines
4.9 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import dayjs from "dayjs";
import { find } from "lodash";
import numeral from "numeral";
// 状态0草稿1已提交9已作废
export const declareType = [
{
value: "0",
label: "草稿",
},
{
value: "1",
label: "提交申报",
},
{
value: "9",
label: "已取消 ",
},
];
// 订单状态
// 0=入库申请,1=入库成功2=出库申请3=出库成功4=作废
const billTypeMenu = [
{
value: "0",
label: "已提交",
},
{
value: "1",
label: "已完成",
},
{
value: "4",
label: "已取消",
},
];
// 订单状态为0时 再查一次
const billStatueMenu = [
{
value: "0",
label: "库单已提交",
},
{
value: "1",
label: "全部入库",
},
{
value: "2",
label: "物料部分",
},
];
// 物料状态
const materialType = [
{
value: "0",
label: "未提交",
},
{
value: "1",
label: "已提交",
},
];
/**
* 获取入库/出库单状态展示文本
* @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;
// 状态 0前缀拼接 入/出
if (stateVal === "0") {
return isOut ? "出" + statusItem.label : "入" + statusItem.label;
}
// 状态 2后缀拼接 入库/出库
if (stateVal === "2") {
return isOut ? statusItem.label + "出库" : statusItem.label + "入库";
}
// 其他状态直接返回
return statusItem.label;
}
// 非0走普通单据类型菜单
return billTypeMenu.find((item) => item.value === valStr)?.label || "";
};
// 获取出入库单的状态以及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) : "-";
/**
* 入库单/出库单:获取已入库、出库数量
* @param {object} item - 此列数据
* @param {string|number} type - 已入库、剩余数量
* @returns {string|number} 数量
*/
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");
uni.removeStorageSync("app_technical");
uni.removeStorageSync("app_declaration");
};
// 对象转 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 = () => {
const tabBarConfig = __uniConfig.tabBar || {};
const tabList = tabBarConfig.list || [];
return tabList;
};
/**
* 根据数组以及状态值获取对应的label
* @param {Array} list - 数组
* @param {object} obj - 数组对应的name和value字段名
* @param {string} val - 当前状态值
* @returns {string|number} 数量
*/
export const getLabel = (
list,
val,
obj = { name: "label", value: "value" },
) => {
if (val) {
return find(list, (i) => i?.[obj?.value] === `${val}`)?.[obj?.name];
}
return "-";
};
/**
* 数组分组转换方法:按 parentName 分组
* @param {Array} arr 原始数组
* @returns {Array} 转换后的分组数组 [{parentName: '', items: []}]
*/
export function transformData(arr) {
const groupMap = arr.reduce((map, item) => {
const key = item.parentName;
if (!map[key]) {
map[key] = { parentName: key, items: [] };
}
map[key].items.push(item);
return map;
}, {});
// 把对象转成数组返回
return Object.values(groupMap);
}
export const getToken = () => {
return uni.getStorageSync("app_token");
};