u
This commit is contained in:
1 parent
aa813c9649
commit
62550b8182
45 files changed
+12535
-566
No files matched your search
@@ -0,0 +1,113 @@
|
||||
import { updateColumnsApi } from "@/request/api";
|
||||
import { ElMessage } from "element-plus";
|
||||
|
||||
export function updateEditTableColumns(tableRef) {
|
||||
const $table = unref(tableRef);
|
||||
|
||||
if (!$table || typeof $table.getColumns !== "function") {
|
||||
ElMessage.warning("表格尚未初始化完成");
|
||||
return;
|
||||
}
|
||||
|
||||
const columns = $table.getColumns();
|
||||
if (!$table || $table.length === 0) {
|
||||
ElMessage.warning("未获取到栏位信息");
|
||||
return;
|
||||
}
|
||||
|
||||
const newColumns = columns
|
||||
.filter((item) => item.params.b_id !== undefined)
|
||||
.map((item, index) => ({
|
||||
b_id: item.params.b_id,
|
||||
col_edit_width: item.renderWidth,
|
||||
col_edit_position: index,
|
||||
}));
|
||||
|
||||
updateColumnsApi(newColumns).then((res) => {
|
||||
if (res.success) {
|
||||
ElMessage.success("保存成功");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
export function updateViewTableColumns(tableRef) {
|
||||
const $table = unref(tableRef);
|
||||
|
||||
if (!$table || typeof $table.getColumns !== "function") {
|
||||
ElMessage.warning("表格尚未初始化完成");
|
||||
return;
|
||||
}
|
||||
|
||||
const columns = $table.getColumns();
|
||||
if (!$table || $table.length === 0) {
|
||||
ElMessage.warning("未获取到栏位信息");
|
||||
return;
|
||||
}
|
||||
|
||||
const newColumns = columns
|
||||
.filter((item) => item.params.b_id !== undefined)
|
||||
.map((item, index) => ({
|
||||
b_id: item.params.b_id,
|
||||
col_Width: item.renderWidth,
|
||||
col_Position: index,
|
||||
}));
|
||||
|
||||
updateColumnsApi(newColumns).then((res) => {
|
||||
if (res.success) {
|
||||
ElMessage.success("保存成功");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据 format 判断列对齐方式
|
||||
* @param {string} format
|
||||
*/
|
||||
export function getAlignByFormat(format) {
|
||||
if (!format || typeof format !== "string") return "left";
|
||||
|
||||
const fmt = format.toLowerCase();
|
||||
if (fmt.startsWith("money") || fmt.startsWith("number")) {
|
||||
return "right";
|
||||
}
|
||||
|
||||
if (fmt === "checkbox") {
|
||||
return "center";
|
||||
}
|
||||
|
||||
return "left";
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据 format 格式化值
|
||||
* @param {any} value 原始值
|
||||
* @param {string} format 格式描述,如 money(2)、percent(1)
|
||||
*/
|
||||
export function formatValueByFormat(value, format) {
|
||||
if (value === null || value === undefined || value === "") return "";
|
||||
|
||||
if (!format || typeof format !== "string") return value;
|
||||
|
||||
const fmt = format.trim().toLowerCase();
|
||||
|
||||
// money(n)
|
||||
if (fmt.startsWith("money")) {
|
||||
const match = fmt.match(/^money\((\d+)\)$/);
|
||||
const decimals = match ? Number(match[1]) : 2;
|
||||
|
||||
const num = Number.parseFloat(value);
|
||||
if (Number.isNaN(num)) return value;
|
||||
|
||||
// 使用Intl.NumberFormat来处理千分位
|
||||
return new Intl.NumberFormat("en-US", {
|
||||
minimumFractionDigits: decimals,
|
||||
maximumFractionDigits: decimals,
|
||||
}).format(num);
|
||||
} else if (fmt.startsWith("date")) {
|
||||
return formatToDate(value);
|
||||
} else if (fmt.startsWith("number")) {
|
||||
return Number(value) || 0;
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
import dayjs from "dayjs";
|
||||
|
||||
export function formatToDate(date) {
|
||||
const validDate = dayjs(date);
|
||||
if (!validDate.isValid()) {
|
||||
return date;
|
||||
}
|
||||
return validDate.format("YYYY-MM-DD");
|
||||
}
|
||||
|
||||
export function formatToDateTime(date) {
|
||||
const validDate = dayjs(date);
|
||||
if (!validDate.isValid()) {
|
||||
return date;
|
||||
}
|
||||
return validDate.format("YYYY-MM-DD HH:mm:ss");
|
||||
}
|
||||
|
||||
export function getDateTime() {
|
||||
return dayjs().format("YYYY-MM-DD HH:mm:ss");
|
||||
}
|
||||
Reference in new issue
Block a user