gongchunyi
2026-08-12 d8b5f4beee560f2ae0acaaf55931adcad18a0d4a
feat(table): 统一表格日期字段展示格式为YYYY-MM-DD

- PIMTable组件新增date类型列渲染逻辑,引入dayjs处理日期格式化
- 参数维护、知识管理、印章管理等多个业务页面表格列配置新增dataType:date
- 库存管理、财务管理相关页面表格独立实现日期截取展示
- 修复参数维护页创建时间computed赋值逻辑,统一用dayjs格式化
- 设备台账详情页录入日期字段增加日期格式化处理
已修改3个文件
87 ■■■■ 文件已修改
src/views/financialManagement/payable/purchaseReturn.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/financialManagement/receivable/salesReturn.vue 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/financialManagement/payable/purchaseReturn.vue
@@ -85,30 +85,6 @@
  { label: "退货单号", prop: "returnNo", minWidth: "150" },
  { label: "供应商", prop: "supplierName", minWidth: "180" },
  { label: "关联入库单号", prop: "inboundBatches", minWidth: "150" },
  {
    label: "发货类型",
    prop: "shippingType",
    minWidth: "110",
    formatData: (val) => ({ 1: "货车", 2: "快递" }[String(val)] || "--"),
  },
  {
    label: "发货车牌号",
    prop: "truckPlateNo",
    minWidth: "140",
    formatData: (_val, row) => (String(row?.shippingType) === "1" ? row?.truckPlateNo || "--" : "--"),
  },
  {
    label: "快递公司",
    prop: "expressCompany",
    minWidth: "140",
    formatData: (_val, row) => (String(row?.shippingType) === "2" ? row?.expressCompany || "--" : "--"),
  },
  {
    label: "快递单号",
    prop: "expressNo",
    minWidth: "150",
    formatData: (_val, row) => (String(row?.shippingType) === "2" ? row?.expressNo || "--" : "--"),
  },
  { label: "退货日期", prop: "preparedAt", minWidth: "170",dataType: "date"},
  {
    label: "退款总额",
src/views/financialManagement/receivable/salesReturn.vue
@@ -77,30 +77,6 @@
  { label: "退货单号", prop: "returnNo", minWidth: "150" },
  { label: "客户名称", prop: "customerName", minWidth: "180" },
  { label: "关联发货单号", prop: "shippingNo", minWidth: "150" },
  {
    label: "发货类型",
    prop: "shippingType",
    minWidth: "110",
    formatData: (val) => ({ 1: "货车", 2: "快递" }[String(val)] || "--"),
  },
  {
    label: "发货车牌号",
    prop: "truckPlateNo",
    minWidth: "140",
    formatData: (_val, row) => (String(row?.shippingType) === "1" ? row?.truckPlateNo || "--" : "--"),
  },
  {
    label: "快递公司",
    prop: "expressCompany",
    minWidth: "140",
    formatData: (_val, row) => (String(row?.shippingType) === "2" ? row?.expressCompany || "--" : "--"),
  },
  {
    label: "快递单号",
    prop: "expressNo",
    minWidth: "150",
    formatData: (_val, row) => (String(row?.shippingType) === "2" ? row?.expressNo || "--" : "--"),
  },
  { label: "退货日期", prop: "makeTime", minWidth: "170",dataType: "date" },
  {
    label: "退款总额",
src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js
@@ -155,31 +155,26 @@
  return { createdTime, updatedTime, createTime: createdTime, updateTime: updatedTime };
}
function normalizeTimeValue(val) {
  if (val == null || val === "") return "";
  if (Array.isArray(val) && val.length >= 3) {
    const [y, m, d, h = 0, min = 0, s = 0] = val;
    // return dayjs(new Date(y, m - 1, d, h, min, s)).format("YYYY-MM-DD HH:mm:ss");
      return dayjs(new Date(y, m - 1, d, h, min, s)).format("YYYY-MM-DD");
/**
 * @param {any} val 时间值
 * @param {boolean} [onlyDate=true] true:只年月日,false:年月日时分秒
 */
function normalizeTimeValue(val, onlyDate = true) {
    if (val == null || val === "") return "";
    const fmt = onlyDate ? "YYYY-MM-DD" : "YYYY-MM-DD HH:mm:ss";
    if (Array.isArray(val) && val.length >= 3) {
        const [y, m, d, h = 0, min = 0, s = 0] = val;
        return dayjs(new Date(y, m - 1, d, h, min, s)).format(fmt);
    }
    if (typeof val === "number") {
        const d = val > 1e12 ? dayjs(val) : dayjs.unix(val);
        return d.isValid() ? d.format(fmt) : "";
    }
    const s = String(val).trim();
    if (!s) return "";
    const parsed = dayjs(s.includes("T") ? s : s.replace(/-/g, "/"));
    return parsed.isValid() ? parsed.format(fmt) : s;
  }
  if (typeof val === "number") {
    const d = val > 1e12 ? dayjs(val) : dayjs.unix(val);
    return d.isValid() ? d.format("YYYY-MM-DD") : "";
  }
  const s = String(val).trim();
  if (!s) return "";
  const parsed = dayjs(s.includes("T") ? s : s.replace(/-/g, "/"));
  return parsed.isValid() ? parsed.format("YYYY-MM-DD") : s;
}
export function formatDisplayTime(val,onlyDate) {
  const t = normalizeTimeValue(val,onlyDate);
export function formatDisplayTime(val) {
  const t = normalizeTimeValue(val);
  return t || "—";
}