云
2026-09-28 e4debe98827b39f521b8461ac184ee793a026fdd
feat(utils): 添加日期格式化工具函数并统一应用到各个组件

- 新增 dateOnly 函数用于提取日期部分,支持多种日期格式
- 新增 formatDateColumn 函数用于表格列的日期格式化
- 在库存管理、销售管理、办公自动化等多个模块中应用日期格式化
- 统一处理表格和详情页面中的日期显示格式
- 修复多个组件中的日期显示不一致问题
- 优化日期字符串的解析和展示逻辑
已修改65个文件
285 ■■■■■ 文件已修改
src/components/QRCodeGenerator/index.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/layout/components/NotificationCenter/index.vue 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/index.js 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicData/customerFile/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/basicData/customerFileOpenSea/index.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/knowledgeBase/index.vue 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/notificationManagement/index.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/notificationManagement/meetDraft/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/officeSupplies/index.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/rulesRegulationsManagement/index.vue 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/collaborativeApproval/sealManagement/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/energyManagement/carbonManagement/index.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/energyManagement/dynamicEnergySaving/index.vue 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/energyManagement/energyCockpit/index.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/energyManagement/gasManagement/index.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/energyManagement/meterCollection/index.vue 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/attendanceManagement/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/defectManagement/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/deviceInfo/index.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/ledger/index.vue 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/operationManagement/index.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/fileManagement/bookshelf/detail.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/index.vue 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/dispatchLog/Record.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/fuelCardManagement/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/issueManagement/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/receiptManagement/Record.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/stockManagement/BatchNoQtyDetail.vue 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/stockManagement/Qualified.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/stockManagement/Record.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/stockManagement/Unqualified.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/stockReport/index.vue 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/stockWarning/index.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/inventoryManagement/transportTaskManagement/index.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/monitor/job/log.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/monitorManagement/videoMonitor/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/officeProcessAutomation/EnterpriseNews/news-manage/components/NewsDetailPanel.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/components/DetailPanel.vue 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/officeProcessAutomation/ReimburseManage/travel-reimburse/components/DetailPanel.vue 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/officeProcessAutomation/SysAdmin/user-manage/profile/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/advancedPriceManagement/index.vue 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/arrivalManagement/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/priceManagement/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/procurementPlan/index.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/purchaseOrder/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/qualityInspection/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/returnManagement/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productManagement/productIdentifier/index.vue 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productionManagement/productionOrder/components/MaterialDetailDialog.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productionManagement/safetyMonitoring/index.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productionManagement/workOrder/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productionManagement/workOrderManagement/components/MaterialDialog.vue 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/productionManagement/workOrderManagement/index.vue 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/projectManagement/Management/projectDetail.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/qualityManagement/afterSalesTraceability/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/reportAnalysis/dataDashboard/components/basic/center-top.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/reportAnalysis/reportManagement.vue 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/safeProduction/accidentReportingRecord/index.vue 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/safeProduction/dangerInvestigation/index.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/safeProduction/emergencyPlanReview/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/safeProduction/hazardousMaterialsControl/index.vue 4 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/safeProduction/safeQualifications/index.vue 1 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/salesManagement/returnOrder/components/detailDia.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/user/profile/index.vue 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/QRCodeGenerator/index.vue
@@ -175,6 +175,7 @@
  import QRCode from "qrcode";
  import { ElMessage, ElMessageBox } from "element-plus";
  import { Download, CopyDocument, Printer } from "@element-plus/icons-vue";
  import { dateOnly } from "@/utils/index";
  // 定义组件名称
  defineOptions({
@@ -247,7 +248,7 @@
        });
      }
      generateTime.value = new Date().toLocaleString();
      generateTime.value = dateOnly(new Date());
      ElMessage.success("生成成功!");
    } catch (error) {
      console.error("生成失败:", error);
src/layout/components/NotificationCenter/index.vue
@@ -32,7 +32,7 @@
              <div class="notification-content-wrapper">
                <div class="notification-title">{{ item.noticeTitle }}</div>
                <div class="notification-detail">{{ item.noticeContent }}</div>
                <div class="notification-time">{{ item.createTime }}</div>
                <div class="notification-time">{{ dateOnly(item.createTime) }}</div>
              </div>
              <div class="notification-action">
                <el-button type="primary"
@@ -64,7 +64,7 @@
              <div class="notification-content-wrapper">
                <div class="notification-title">{{ item.noticeTitle }}</div>
                <div class="notification-detail">{{ item.noticeContent }}</div>
                <div class="notification-time">{{ item.createTime }}</div>
                <div class="notification-time">{{ dateOnly(item.createTime) }}</div>
              </div>
            </div>
          </div>
src/main.js
@@ -35,6 +35,7 @@
  selectDictLabel,
  selectDictLabels,
} from "@/utils/ruoyi";
import { formatDateColumn, dateOnly } from "@/utils/index";
// 分页组件
import Pagination from "@/components/Pagination";
@@ -70,6 +71,8 @@
app.config.globalProperties.useDict = useDict;
app.config.globalProperties.download = download;
app.config.globalProperties.parseTime = parseTime;
app.config.globalProperties.formatDateColumn = formatDateColumn;
app.config.globalProperties.dateOnly = dateOnly;
app.config.globalProperties.resetForm = resetForm;
app.config.globalProperties.summarizeTable = summarizeTable;
app.config.globalProperties.calculateTaxExclusiveTotalPrice =
src/utils/index.js
@@ -16,6 +16,31 @@
}
/**
 * 仅保留日期部分,去掉时分秒,输出 YYYY-MM-DD。
 * 兼容 Date 对象、"YYYY-MM-DD HH:mm:ss"、"YYYY-MM-DDTHH:mm:ss" 等格式;
 * 已是纯日期或非日期字符串时原样返回。
 */
export function dateOnly(value) {
  if (value == null || value === "") return "";
  if (value instanceof Date) {
    if (Number.isNaN(value.getTime())) return "";
    const pad = (num) => String(num).padStart(2, "0");
    return `${value.getFullYear()}-${pad(value.getMonth() + 1)}-${pad(
      value.getDate()
    )}`;
  }
  const str = String(value).trim();
  return str.split(/[ T]/)[0] || str;
}
/**
 * el-table-column 日期列格式化:仅保留日期部分,去掉时分秒。
 */
export function formatDateColumn(row, column, cellValue) {
  return dateOnly(cellValue);
}
/**
 * @param {number} time
 * @param {string} option
 * @returns {string}
src/views/basicData/customerFile/index.vue
@@ -457,7 +457,7 @@
            <el-col :span="12">
              <div class="info-item">
                <span class="info-label">维护时间:</span>
                <span class="info-value">{{ detailForm.maintenanceTime }}</span>
                <span class="info-value">{{ dateOnly(detailForm.maintenanceTime) }}</span>
              </div>
            </el-col>
          </el-row>
@@ -478,7 +478,8 @@
                  style="width: 100%">
          <el-table-column prop="followUpTime"
                           label="跟进时间"
                           width="160" />
                           width="160"
                           :formatter="formatDateColumn" />
          <el-table-column prop="followUpMethod"
                           label="跟进方式"
                           width="100" />
src/views/basicData/customerFileOpenSea/index.vue
@@ -544,7 +544,8 @@
                  style="width: 100%">
          <el-table-column prop="followUpTime"
                           label="跟进时间"
                           width="160" />
                           width="160"
                           :formatter="formatDateColumn" />
          <el-table-column prop="followUpMethod"
                           label="跟进方式"
                           width="100" />
src/views/collaborativeApproval/knowledgeBase/index.vue
@@ -170,7 +170,7 @@
            {{ currentKnowledge.creator }}
          </el-descriptions-item>
          <el-descriptions-item label="创建时间">
            {{ currentKnowledge.createTime }}
            {{ dateOnly(currentKnowledge.createTime) }}
          </el-descriptions-item>
        </el-descriptions>
@@ -296,7 +296,7 @@
              <span v-else style="color: #909399">-</span>
            </template>
          </el-table-column>
          <el-table-column prop="createTime" label="上传时间" width="180" />
          <el-table-column prop="createTime" label="上传时间" width="180" :formatter="formatDateColumn" />
          <el-table-column label="操作" width="150" align="center">
            <template #default="{ row }">
              <el-button
src/views/collaborativeApproval/notificationManagement/index.vue
@@ -325,6 +325,7 @@
import { staffOnJobListPage } from "@/api/personnelManagement/staffOnJob.js";
import { listNotification, addNotification, updateNotification, delNotification,addOnlineMeeting,addFileSharing } from "@/api/collaborativeApproval/notificationManagement.js";
import { id } from "element-plus/es/locales.mjs";
import { dateOnly } from "@/utils/index";
// 表单验证规则
const rules = {
@@ -770,7 +771,7 @@
    departments: [randomDept],
    expireDate: new Date(now.getTime() + 30 * 24 * 60 * 60 * 1000).toISOString().split('T')[0], // 30天后过期
    syncMethods: ["wechat", "dingtalk"],
    createTime: now.toLocaleString()
    createTime: dateOnly(now)
  };
  // 添加到数据开头
src/views/collaborativeApproval/notificationManagement/meetDraft/index.vue
@@ -48,7 +48,7 @@
            {{ scope.row.participants }}人
          </template>
        </el-table-column>
        <el-table-column prop="createTime" label="创建时间" align="center" width="180" />
        <el-table-column prop="createTime" label="创建时间" align="center" width="180" :formatter="formatDateColumn" />
        <el-table-column label="操作" align="center" width="200" fixed="right">
          <template #default="scope">
            <el-button type="primary" link @click="viewDraft(scope.row)">查看</el-button>
src/views/collaborativeApproval/officeSupplies/index.vue
@@ -85,10 +85,10 @@
            </el-tag>
          </template>
        </el-table-column>
        <el-table-column label="申请时间" align="center" prop="applyTime" width="180" />
        <el-table-column label="申请时间" align="center" prop="applyTime" width="180" :formatter="formatDateColumn" />
        <el-table-column label="审批人" align="center" prop="approval" width="120" />
        <el-table-column label="审批时间" align="center" prop="approvalTime" width="180" />
        <el-table-column label="发放时间" align="center" prop="issueTime" width="180" />
        <el-table-column label="审批时间" align="center" prop="approvalTime" width="180" :formatter="formatDateColumn" />
        <el-table-column label="发放时间" align="center" prop="issueTime" width="180" :formatter="formatDateColumn" />
        <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width" width="200">
          <template #default="scope">
            <el-button
src/views/collaborativeApproval/rulesRegulationsManagement/index.vue
@@ -144,7 +144,7 @@
          <el-descriptions-item label="分类">{{ getCategoryText(currentRegulationDetail.category) }}</el-descriptions-item>
          <el-descriptions-item label="版本">{{ currentRegulationDetail.version }}</el-descriptions-item>
          <el-descriptions-item label="发布人">{{ currentRegulationDetail.createUserName }}</el-descriptions-item>
          <el-descriptions-item label="发布时间">{{ currentRegulationDetail.createTime }}</el-descriptions-item>
          <el-descriptions-item label="发布时间">{{ dateOnly(currentRegulationDetail.createTime) }}</el-descriptions-item>
        </el-descriptions>
        <div class="mt-20">
          <h4>制度内容</h4>
@@ -169,7 +169,8 @@
                         width="100" />
        <el-table-column prop="updateTime"
                         label="更新时间"
                         width="180" />
                         width="180"
                         :formatter="formatDateColumn" />
        <el-table-column prop="createUserName"
                         label="更新人"
                         width="120" />
@@ -197,10 +198,12 @@
                         width="150" />
        <el-table-column prop="createTime"
                         label="阅读时间"
                         width="180" />
                         width="180"
                         :formatter="formatDateColumn" />
        <el-table-column prop="confirmTime"
                         label="确认时间"
                         width="180" />
                         width="180"
                         :formatter="formatDateColumn" />
        <el-table-column prop="status"
                         label="状态"
                         width="100">
src/views/collaborativeApproval/sealManagement/index.vue
@@ -118,7 +118,7 @@
          <el-descriptions-item label="申请人">{{ currentSealDetail.createUserName }}</el-descriptions-item>
          <el-descriptions-item label="所属部门">{{ currentSealDetail.department }}</el-descriptions-item>
          <el-descriptions-item label="用印类型">{{ getSealTypeText(currentSealDetail.sealType) }}</el-descriptions-item>
          <el-descriptions-item label="申请时间">{{ currentSealDetail.createTime }}</el-descriptions-item>
          <el-descriptions-item label="申请时间">{{ dateOnly(currentSealDetail.createTime) }}</el-descriptions-item>
          <el-descriptions-item label="状态">
            <el-tag :type="getStatusType(currentSealDetail.status)">
              {{ getStatusText(currentSealDetail.status) }}
src/views/energyManagement/carbonManagement/index.vue
@@ -197,6 +197,7 @@
import { ref, reactive, onMounted, onBeforeUnmount, computed } from 'vue'
import * as echarts from 'echarts'
import Echarts from '@/components/Echarts/echarts.vue'
import { dateOnly } from '@/utils/index'
// 响应式数据
const selectedScope = ref('all')
@@ -592,7 +593,7 @@
  // 准备导出数据
  const exportDataSet = {
    基本信息: {
      导出时间: new Date().toLocaleString('zh-CN'),
      导出时间: dateOnly(new Date()),
      数据层级: heatmapLevel.value === 'device' ? '设备级' : heatmapLevel.value === 'line' ? '产线级' : '企业级',
      选择范围: selectedScope.value === 'all' ? '全部范围' : `范围${selectedScope.value.slice(-1)}`,
      选择日期: selectedDate.value ? selectedDate.value.toLocaleDateString('zh-CN') : '今日'
src/views/energyManagement/dynamicEnergySaving/index.vue
@@ -154,7 +154,7 @@
          </template>
        </el-table-column>
        <el-table-column prop="accuracy" label="准确率" />
        <el-table-column prop="lastUpdate" label="最后更新" />
        <el-table-column prop="lastUpdate" label="最后更新" :formatter="formatDateColumn" />
        <el-table-column label="操作">
          <template #default="scope">
            <el-button
@@ -192,7 +192,7 @@
    <!-- 优化历史对话框 -->
    <el-dialog v-model="historyDialogVisible" title="优化历史记录" width="80%">
      <el-table :data="optimizationHistory" style="width: 100%">
        <el-table-column prop="timestamp" label="时间" />
        <el-table-column prop="timestamp" label="时间" :formatter="formatDateColumn" />
        <el-table-column prop="formationPressure" label="地层压力 (MPa)" />
        <el-table-column prop="oldFrequency" label="原频率 (Hz)" />
        <el-table-column prop="newFrequency" label="新频率 (Hz)" />
@@ -213,6 +213,7 @@
import { ref, onMounted, onUnmounted, computed } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { Monitor, Cpu, TrendCharts } from '@element-plus/icons-vue'
import { dateOnly } from "@/utils/index"
import * as echarts from 'echarts'
// 响应式数据
@@ -330,7 +331,7 @@
// 添加优化历史记录
const addOptimizationHistory = () => {
  const timestamp = new Date().toLocaleString()
  const timestamp = dateOnly(new Date())
  const record = {
    timestamp,
    formationPressure: pumpData.value.formationPressure,
@@ -539,7 +540,7 @@
// 生成初始历史数据
const generateInitialHistory = () => {
  for (let i = 0; i < 20; i++) {
    const timestamp = new Date(Date.now() - i * 3600000).toLocaleString()
    const timestamp = dateOnly(new Date(Date.now() - i * 3600000))
    const record = {
      timestamp,
      formationPressure: parseFloat((20 + Math.random() * 10).toFixed(1)),
src/views/energyManagement/energyCockpit/index.vue
@@ -424,6 +424,7 @@
  Edit, 
  Bell
} from '@element-plus/icons-vue'
import { dateOnly } from "@/utils/index"
// 响应式数据
const lastUpdateTime = ref('')
@@ -593,7 +594,7 @@
  greenEnergyRatio.value = (Math.random() * 10 + 25).toFixed(1)
  
  // 更新最后更新时间
  lastUpdateTime.value = new Date().toLocaleString()
  lastUpdateTime.value = dateOnly(new Date())
  
  // 同时更新报表数据
  generateReportData()
src/views/energyManagement/gasManagement/index.vue
@@ -177,7 +177,7 @@
              </el-tag>
            </template>
          </el-table-column>
          <el-table-column label="最后更新" prop="lastUpdate" width="160" show-overflow-tooltip />
          <el-table-column label="最后更新" prop="lastUpdate" width="160" show-overflow-tooltip :formatter="formatDateColumn" />
                     <el-table-column label="操作" align="center" width="100" fixed="right">
             <template #default="scope">
               <el-button link size="small" @click="editDevice(scope.row)">
@@ -254,6 +254,7 @@
  Money, 
  Plus
} from '@element-plus/icons-vue'
import { dateOnly } from "@/utils/index"
// 响应式数据
const lastUpdateTime = ref('')
@@ -315,11 +316,11 @@
    currentTemperature: (Math.random() * 20 + 15).toFixed(1),
    gasConcentration: (Math.random() * 10).toFixed(2),
    status: ['running', 'stopped', 'warning', 'error'][Math.floor(Math.random() * 4)],
    lastUpdate: new Date().toLocaleString()
    lastUpdate: dateOnly(new Date())
  }))
  
  // 更新最后更新时间
  lastUpdateTime.value = new Date().toLocaleString()
  lastUpdateTime.value = dateOnly(new Date())
}
// 获取压力状态样式
src/views/energyManagement/meterCollection/index.vue
@@ -79,7 +79,7 @@
             </el-tag>
           </template>
         </el-table-column>
         <el-table-column prop="lastUpdateTime" label="最后更新时间" width="160" />
         <el-table-column prop="lastUpdateTime" label="最后更新时间" width="160" :formatter="formatDateColumn" />
         <el-table-column label="操作" width="180" fixed="right" align="center">
           <template #default="scope">
             <el-button link @click="viewDetails(scope.row)">
@@ -174,7 +174,7 @@
         <el-col :span="12">
           <div class="detail-item">
             <label>最后更新时间:</label>
             <span>{{ currentMeter.lastUpdateTime }}</span>
             <span>{{ dateOnly(currentMeter.lastUpdateTime) }}</span>
           </div>
         </el-col>
       </el-row>
src/views/equipmentManagement/attendanceManagement/index.vue
@@ -102,7 +102,7 @@
        <el-table-column prop="deviceName" label="设备名称" width="160" show-overflow-tooltip />
        <el-table-column prop="customerName" label="客户名称" width="180" show-overflow-tooltip />
        <el-table-column prop="engineerName" label="维修工程师" width="120" />
        <el-table-column prop="completeTime" label="维修完成时间" width="180" />
        <el-table-column prop="completeTime" label="维修完成时间" width="180" :formatter="formatDateColumn" />
        <el-table-column prop="score" label="星级评分" width="140" align="center">
          <template #default="scope">
            <el-rate v-if="scope.row.score" v-model="scope.row.score" disabled />
src/views/equipmentManagement/defectManagement/index.vue
@@ -77,7 +77,7 @@
        <el-table-column prop="deviceName" label="设备名称"></el-table-column>
        <el-table-column prop="defectDescription" label="缺陷描述"></el-table-column>
        <el-table-column prop="status" label="状态"></el-table-column>
        <el-table-column prop="eliminateTime" label="消缺时间"></el-table-column>
        <el-table-column prop="eliminateTime" label="消缺时间" :formatter="formatDateColumn"></el-table-column>
      </el-table>
    </el-dialog>
  </div>
src/views/equipmentManagement/deviceInfo/index.vue
@@ -35,11 +35,11 @@
         <div class="maintenance-info">
           <div class="maintenance-item">
             <span class="label">最后维护:</span>
             <span class="value">{{ deviceInfo.updateTime }}</span>
             <span class="value">{{ dateOnly(deviceInfo.updateTime) }}</span>
           </div>
           <div class="maintenance-item">
             <span class="label">下次维护:</span>
             <span class="value">{{ deviceInfo.createTime }}</span>
             <span class="value">{{ dateOnly(deviceInfo.createTime) }}</span>
           </div>
           <div class="maintenance-item">
             <span class="label">维护状态:</span>
@@ -55,7 +55,7 @@
         <div v-if="changeRecords.length === 0" class="empty-tip">暂无变更记录</div>
         <div v-else class="change-record" v-for="(item, index) in changeRecords" :key="index">
           <div class="record-header">
             <span class="record-time">{{ item.createTime }}</span>
             <span class="record-time">{{ dateOnly(item.createTime) }}</span>
             <span class="record-status" :class="approvalClass(item.approvalStatus)">{{ approvalText(item.approvalStatus) }}</span>
           </div>
           <div class="record-line">
src/views/equipmentManagement/ledger/index.vue
@@ -137,7 +137,7 @@
        <el-descriptions-item label="含税总价">{{ detailData.taxIncludingPriceTotal }}</el-descriptions-item>
        <el-descriptions-item label="税率(%)">{{ detailData.taxRate }}</el-descriptions-item>
        <el-descriptions-item label="不含税总价">{{ detailData.unTaxIncludingPriceTotal }}</el-descriptions-item>
        <el-descriptions-item label="录入日期">{{ detailData.createTime }}</el-descriptions-item>
        <el-descriptions-item label="录入日期">{{ dateOnly(detailData.createTime) }}</el-descriptions-item>
        <el-descriptions-item label="预计运行时间">{{ detailData.planRuntimeTime ? dayjs(detailData.planRuntimeTime).format('YYYY-MM-DD') : '' }}</el-descriptions-item>
        <el-descriptions-item label="设备图片" :span="2">
          <div v-if="detailData.storageBlobVOs && detailData.storageBlobVOs.length > 0" style="display: flex; gap: 10px; flex-wrap: wrap;">
@@ -186,7 +186,7 @@
    <!-- 状态变更记录对话框 -->
    <el-dialog v-model="recordDialog.visible" title="设备状态变更记录" width="800px" draggable>
      <el-table v-loading="recordDialog.loading" :data="recordDialog.list" border>
        <el-table-column label="变更时间" prop="createTime" width="160" />
        <el-table-column label="变更时间" prop="createTime" width="160" :formatter="formatDateColumn" />
        <el-table-column label="原状态" width="100">
          <template #default="scope">
            <el-tag :type="scope.row.originalStatus == 1 ? 'success' : 'danger'">
src/views/equipmentManagement/operationManagement/index.vue
@@ -74,7 +74,7 @@
          align="center"
        >
          <template #default="scope">
            {{ scope.row.planRuntimeTime || '-' }}
            {{ dateOnly(scope.row.planRuntimeTime) || '-' }}
          </template>
        </el-table-column>
        <el-table-column
@@ -84,7 +84,7 @@
          align="center"
        >
          <template #default="scope">
            {{ scope.row.startRuntimeTime || '-' }}
            {{ dateOnly(scope.row.startRuntimeTime) || '-' }}
          </template>
        </el-table-column>
        <el-table-column
@@ -94,7 +94,7 @@
          align="center"
        >
          <template #default="scope">
            {{ scope.row.endRuntimeTime || '-' }}
            {{ dateOnly(scope.row.endRuntimeTime) || '-' }}
          </template>
        </el-table-column>
        <el-table-column
@@ -318,15 +318,7 @@
const changeDeviceStatus = async (device, status) => {
  try {
    const currentTime = new Date().toLocaleString('zh-CN', {
      year: 'numeric',
      month: '2-digit',
      day: '2-digit',
      hour: '2-digit',
      minute: '2-digit',
      second: '2-digit',
      hour12: false
    }).replace(/\//g, '-')
    const currentTime = dayjs().format('YYYY-MM-DD')
    
    // 更新设备状态和相关时间字段
    if (status === '启动运行') {
src/views/fileManagement/bookshelf/detail.vue
@@ -16,7 +16,7 @@
        <el-descriptions :column="2" border>
          <el-descriptions-item label="图书编号">{{ current.docNumber }}</el-descriptions-item>
          <el-descriptions-item label="图书名称">{{ current.docName }}</el-descriptions-item>
          <el-descriptions-item label="入库时间">{{ current.createTime }}</el-descriptions-item>
          <el-descriptions-item label="入库时间">{{ dateOnly(current.createTime) }}</el-descriptions-item>
          <!-- <el-descriptions-item label="当前位置">{{ current.currentLocation }}</el-descriptions-item> -->
          <el-descriptions-item label="状态">{{ current.docStatus }}</el-descriptions-item>
        </el-descriptions>
src/views/index.vue
@@ -222,7 +222,7 @@
            <li v-for="item in todoList" :key="item.id" class="todo-item">
              <div class="todo-head">
                <span class="todo-no">待办编号:{{ item.approveId }}</span>
                <span class="todo-time">{{ item.approveTime }}</span>
                <span class="todo-time">{{ dateOnly(item.approveTime) }}</span>
              </div>
              <div class="todo-desc">部门:{{ item.approveDeptName }}</div>
              <div class="todo-desc">事由:{{ item.approveReason }}</div>
@@ -342,7 +342,7 @@
          <el-table-column prop="approveDeptName" label="部门/模板" min-width="160" />
          <el-table-column prop="approveReason" label="事由" min-width="240" show-overflow-tooltip />
          <el-table-column prop="approveUserName" label="发起人" min-width="120" />
          <el-table-column prop="approveTime" label="时间" min-width="170" />
          <el-table-column prop="approveTime" label="时间" min-width="170" :formatter="formatDateColumn" />
        </el-table>
      </div>
    </el-dialog>
src/views/inventoryManagement/dispatchLog/Record.vue
@@ -108,7 +108,8 @@
                         show-overflow-tooltip />
        <el-table-column label="出库日期"
                         prop="createTime"
                         show-overflow-tooltip />
                         show-overflow-tooltip
                         :formatter="formatDateColumn" />
        <el-table-column label="产品大类"
                         prop="productName"
                         show-overflow-tooltip />
src/views/inventoryManagement/fuelCardManagement/index.vue
@@ -118,7 +118,7 @@
        </el-row>
        <el-table v-loading="rechargeDrawer.loading" :data="rechargeDrawer.list" border>
          <el-table-column type="index" label="序号" width="60" align="center" />
          <el-table-column prop="rechargeDate" label="充值时间" width="160" />
          <el-table-column prop="rechargeDate" label="充值时间" width="160" :formatter="formatDateColumn" />
          <el-table-column prop="rechargeAmount" label="充值金额(元)" width="120" align="right">
            <template #default="scope">
              <span style="color: #67C23A; font-weight: bold;">+{{ scope.row.rechargeAmount }}</span>
src/views/inventoryManagement/issueManagement/index.vue
@@ -29,7 +29,7 @@
        :summary-method="summarizeMainTable" height="calc(100vh - 18.5em)">
        <el-table-column align="center" type="selection" width="55" />
        <el-table-column align="center" label="序号" type="index" width="60" />
        <el-table-column label="入库时间" prop="createTime" width="100" show-overflow-tooltip />
        <el-table-column label="入库时间" prop="createTime" width="100" show-overflow-tooltip :formatter="formatDateColumn" />
        <el-table-column label="入库批次" prop="inboundBatches" width="160" show-overflow-tooltip />
        <el-table-column label="供应商名称" prop="supplierName" width="240" show-overflow-tooltip />
        <el-table-column label="产品大类" prop="productCategory" width="100" show-overflow-tooltip />
src/views/inventoryManagement/receiptManagement/Record.vue
@@ -109,7 +109,8 @@
                         show-overflow-tooltip />
        <el-table-column label="入库时间"
                         prop="createTime"
                         show-overflow-tooltip />
                         show-overflow-tooltip
                         :formatter="formatDateColumn" />
        <el-table-column label="产品大类"
                         prop="productName"
                         show-overflow-tooltip />
src/views/inventoryManagement/stockManagement/BatchNoQtyDetail.vue
@@ -54,6 +54,7 @@
            label="最近更新时间"
            prop="updateTime"
            show-overflow-tooltip
            :formatter="formatDateColumn"
          />
          <el-table-column fixed="right" label="操作" min-width="180" align="center">
            <template #default="scope">
src/views/inventoryManagement/stockManagement/Qualified.vue
@@ -31,7 +31,7 @@
        <el-table-column label="冻结数量" prop="lockedQuantity" show-overflow-tooltip />
        <el-table-column label="库存预警数量" prop="warnNum"  show-overflow-tooltip />
        <el-table-column label="备注" prop="remark"  show-overflow-tooltip />
        <el-table-column label="最近更新时间" prop="updateTime" show-overflow-tooltip />
        <el-table-column label="最近更新时间" prop="updateTime" show-overflow-tooltip :formatter="formatDateColumn" />
        <el-table-column fixed="right" label="操作" min-width="90" align="center">
          <template #default="scope">
            <el-button link type="primary" @click="showSubtractModal(scope.row)" :disabled="scope.row.unLockedQuantity === 0">领用</el-button>
src/views/inventoryManagement/stockManagement/Record.vue
@@ -107,7 +107,8 @@
                         show-overflow-tooltip />
        <el-table-column label="最近更新时间"
                         prop="updateTime"
                         show-overflow-tooltip />
                         show-overflow-tooltip
                         :formatter="formatDateColumn" />
        <el-table-column fixed="right"
                         label="操作"
                         min-width="80"
src/views/inventoryManagement/stockManagement/Unqualified.vue
@@ -26,7 +26,7 @@
        <el-table-column label="库存数量" prop="qualitity" show-overflow-tooltip />
        <el-table-column label="冻结数量" prop="lockedQuantity" show-overflow-tooltip />
        <el-table-column label="备注" prop="remark"  show-overflow-tooltip />
        <el-table-column label="最近更新时间" prop="updateTime" show-overflow-tooltip />
        <el-table-column label="最近更新时间" prop="updateTime" show-overflow-tooltip :formatter="formatDateColumn" />
        <el-table-column fixed="right" label="操作" min-width="90" align="center">
          <template #default="scope">
            <el-button link type="primary" @click="showSubtractModal(scope.row)" :disabled="scope.row.unLockedQuantity === 0">领用</el-button>
src/views/inventoryManagement/stockReport/index.vue
@@ -152,6 +152,7 @@
                           prop="createTime"
                           width="200"
                           show-overflow-tooltip
                           :formatter="formatDateColumn"
                           v-if="searchForm.reportType !== 'inout'" />
          <el-table-column label="入库批次"
                           prop="inboundBatches"
src/views/inventoryManagement/stockWarning/index.vue
@@ -96,10 +96,10 @@
        </el-table-column>
        <!-- 时间相关字段 -->
        <el-table-column label="预警时间" prop="warningTime" width="150" show-overflow-tooltip />
        <el-table-column label="预警时间" prop="warningTime" width="150" show-overflow-tooltip :formatter="formatDateColumn" />
        <el-table-column label="预警持续天数" prop="warningDuration" width="120" show-overflow-tooltip />
        <el-table-column label="最后更新时间" prop="lastUpdateTime" width="150" show-overflow-tooltip />
        <el-table-column label="预计充装时间" prop="expectedRefillTime" width="150" show-overflow-tooltip />
        <el-table-column label="最后更新时间" prop="lastUpdateTime" width="150" show-overflow-tooltip :formatter="formatDateColumn" />
        <el-table-column label="预计充装时间" prop="expectedRefillTime" width="150" show-overflow-tooltip :formatter="formatDateColumn" />
        <el-table-column label="预计缺气时间" prop="expectedShortageTime" width="150" show-overflow-tooltip>
          <template #default="scope">
            <div v-if="scope.row.expectedShortageTime">
src/views/inventoryManagement/transportTaskManagement/index.vue
@@ -155,18 +155,21 @@
          label="装货时间"
          width="160"
          show-overflow-tooltip
          :formatter="formatDateColumn"
        />
        <el-table-column
          prop="deliveryTime"
          label="送货时间"
          width="160"
          show-overflow-tooltip
          :formatter="formatDateColumn"
        />
        <el-table-column
          prop="signTime"
          label="签收时间"
          width="160"
          show-overflow-tooltip
          :formatter="formatDateColumn"
        />
        <el-table-column label="状态" width="110" align="center">
          <template #default="scope">
src/views/monitor/job/log.vue
@@ -142,7 +142,7 @@
               </el-col>
               <el-col :span="12">
                  <el-form-item label="任务分组:">{{ form.jobGroup }}</el-form-item>
                  <el-form-item label="执行时间:">{{ form.createTime }}</el-form-item>
                  <el-form-item label="执行时间:">{{ dateOnly(form.createTime) }}</el-form-item>
               </el-col>
               <el-col :span="24">
                  <el-form-item label="调用方法:">{{ form.invokeTarget }}</el-form-item>
src/views/monitorManagement/videoMonitor/index.vue
@@ -126,7 +126,7 @@
          >
            <el-table-column type="selection" width="45" align="center" />
            <el-table-column type="index" width="50" label="序号" align="center" :index="indexMethod" />
            <el-table-column prop="time" label="抓拍时间" width="155" sortable />
            <el-table-column prop="time" label="抓拍时间" width="155" sortable :formatter="formatDateColumn" />
            <el-table-column prop="personId" label="工号" width="110" show-overflow-tooltip />
            <el-table-column prop="department" label="部门" width="100" show-overflow-tooltip />
            <el-table-column prop="areaName" label="区域" width="110" show-overflow-tooltip />
src/views/officeProcessAutomation/EnterpriseNews/news-manage/components/NewsDetailPanel.vue
@@ -22,7 +22,7 @@
    <el-descriptions-item label="编辑权限">{{ publishRoleLabel(row.editorRole) }}</el-descriptions-item>
    <el-descriptions-item label="审核角色">{{ publishRoleLabel(row.reviewerRole) }}</el-descriptions-item>
    <el-descriptions-item label="发布人">{{ row.publisherName || "—" }}</el-descriptions-item>
    <el-descriptions-item label="发布时间">{{ row.publishTime || "—" }}</el-descriptions-item>
    <el-descriptions-item label="发布时间">{{ dateOnly(row.publishTime) || "—" }}</el-descriptions-item>
    <el-descriptions-item label="当前版本">v{{ row.versionNo || 1 }}</el-descriptions-item>
    <el-descriptions-item label="需阅读确认">
      {{ row.requireReadConfirm ? "是" : "否" }}
src/views/officeProcessAutomation/ReimburseManage/cost-reimburse/components/DetailPanel.vue
@@ -6,7 +6,7 @@
      <el-tag :type="statusTagType(row.approvalResult)" size="small">{{ statusLabel(row.approvalResult) }}</el-tag>
    </el-descriptions-item>
    <el-descriptions-item label="费用类型">{{ expenseCategoryLabel(row.expenseCategory) }}</el-descriptions-item>
    <el-descriptions-item label="申请时间">{{ row.applyTime || row.createTime || "—" }}</el-descriptions-item>
    <el-descriptions-item label="申请时间">{{ dateOnly(row.applyTime || row.createTime) || "—" }}</el-descriptions-item>
    <el-descriptions-item label="员工编号">{{ row.employeeNo || row.applicantNo || "—" }}</el-descriptions-item>
    <el-descriptions-item label="员工姓名">{{ row.employeeName || row.applicantName || "—" }}</el-descriptions-item>
    <el-descriptions-item label="报销原因" :span="2">{{ row.reimburseReason || "—" }}</el-descriptions-item>
@@ -19,7 +19,7 @@
    <el-descriptions-item v-if="row.rejectReason" label="驳回原因" :span="2">
      <span class="reject-text">{{ row.rejectReason }}</span>
    </el-descriptions-item>
    <el-descriptions-item label="创建时间" :span="2">{{ row.createTime || "—" }}</el-descriptions-item>
    <el-descriptions-item label="创建时间" :span="2">{{ dateOnly(row.createTime) || "—" }}</el-descriptions-item>
  </el-descriptions>
  <el-divider content-position="left">报销明细</el-divider>
src/views/officeProcessAutomation/ReimburseManage/travel-reimburse/components/DetailPanel.vue
@@ -8,8 +8,8 @@
    <el-descriptions-item label="员工编号">{{ row.employeeNo || row.applicantNo || "—" }}</el-descriptions-item>
    <el-descriptions-item label="员工姓名">{{ row.employeeName || row.applicantName || "—" }}</el-descriptions-item>
    <el-descriptions-item label="报销原因" :span="2">{{ row.reimburseReason || "—" }}</el-descriptions-item>
    <el-descriptions-item label="出差开始">{{ row.travelStartTime || "—" }}</el-descriptions-item>
    <el-descriptions-item label="出差结束">{{ row.travelEndTime || "—" }}</el-descriptions-item>
    <el-descriptions-item label="出差开始">{{ dateOnly(row.travelStartTime) || "—" }}</el-descriptions-item>
    <el-descriptions-item label="出差结束">{{ dateOnly(row.travelEndTime) || "—" }}</el-descriptions-item>
    <el-descriptions-item label="出差地">{{ row.departurePlace || "—" }}</el-descriptions-item>
    <el-descriptions-item label="目的地">{{ row.destination || "—" }}</el-descriptions-item>
    <el-descriptions-item label="酒店标准">{{ row.hotelStandard != null ? `${row.hotelStandard} 元/晚` : "—" }}</el-descriptions-item>
@@ -25,7 +25,7 @@
    <el-descriptions-item v-if="row.rejectReason" label="驳回原因" :span="2">
      <span class="reject-text">{{ row.rejectReason }}</span>
    </el-descriptions-item>
    <el-descriptions-item label="创建时间" :span="2">{{ row.createTime || "—" }}</el-descriptions-item>
    <el-descriptions-item label="创建时间" :span="2">{{ dateOnly(row.createTime) || "—" }}</el-descriptions-item>
  </el-descriptions>
  <el-divider content-position="left">报销明细</el-divider>
src/views/officeProcessAutomation/SysAdmin/user-manage/profile/index.vue
@@ -35,7 +35,7 @@
                     </li>
                     <li class="list-group-item">
                        <svg-icon icon-class="date" />创建日期
                        <div class="pull-right">{{ state.user.createTime }}</div>
                        <div class="pull-right">{{ dateOnly(state.user.createTime) }}</div>
                     </li>
                  </ul>
               </div>
src/views/procurementManagement/advancedPriceManagement/index.vue
@@ -108,8 +108,8 @@
            </div>
          </template>
        </el-table-column>
        <el-table-column label="生效时间" prop="effectiveTime" width="180" />
        <el-table-column label="更新时间" prop="updateTime" width="180" sortable />
        <el-table-column label="生效时间" prop="effectiveTime" width="180" :formatter="formatDateColumn" />
        <el-table-column label="更新时间" prop="updateTime" width="180" sortable :formatter="formatDateColumn" />
        <el-table-column label="操作" width="250" align="center" fixed="right">
          <template #default="{ row }">
            <el-button type="primary" link @click="openDialog('edit', row)">
src/views/procurementManagement/arrivalManagement/index.vue
@@ -32,7 +32,7 @@
          </template>
        </el-table-column>
        <el-table-column label="到货数量" prop="arrivalQuantity" width="100" />
        <el-table-column label="到货时间" prop="arrivalTime" width="180" />
        <el-table-column label="到货时间" prop="arrivalTime" width="180" :formatter="formatDateColumn" />
        <el-table-column label="操作" width="200" align="center">
          <template #default="{ row }">
            <el-button type="primary" link @click="openDialog('edit', row)">编辑</el-button>
src/views/procurementManagement/priceManagement/index.vue
@@ -46,7 +46,7 @@
            </span>
          </template>
        </el-table-column>
        <el-table-column label="生效时间" prop="effectiveTime" width="180" />
        <el-table-column label="生效时间" prop="effectiveTime" width="180" :formatter="formatDateColumn" />
        <el-table-column label="状态" prop="status" width="100">
          <template #default="{ row }">
            <el-tag :type="getStatusType(row.status)">{{ getStatusText(row.status) }}</el-tag>
src/views/procurementManagement/procurementPlan/index.vue
@@ -96,7 +96,8 @@
        </el-table-column>
        <el-table-column prop="updateTime"
                         label="最后计算时间"
                         width="160" />
                         width="160"
                         :formatter="formatDateColumn" />
        <el-table-column label="操作"
                         width="200"
                         fixed="right"
src/views/procurementManagement/purchaseOrder/index.vue
@@ -37,7 +37,7 @@
        <el-table-column label="总金额" prop="totalAmount" width="120">
          <template #default="{ row }">¥{{ row.totalAmount.toFixed(2) }}</template>
        </el-table-column>
        <el-table-column label="创建时间" prop="createTime" width="180" />
        <el-table-column label="创建时间" prop="createTime" width="180" :formatter="formatDateColumn" />
        <el-table-column label="操作" width="200" align="center">
          <template #default="{ row }">
            <el-button type="primary" size="small" @click="openDialog('edit', row)">编辑</el-button>
src/views/procurementManagement/qualityInspection/index.vue
@@ -38,7 +38,7 @@
        </el-table-column>
        <el-table-column label="合格数量" prop="qualifiedQuantity" width="100" />
        <el-table-column label="不合格数量" prop="unqualifiedQuantity" width="100" />
        <el-table-column label="质检时间" prop="inspectionTime" width="180" />
        <el-table-column label="质检时间" prop="inspectionTime" width="180" :formatter="formatDateColumn" />
        <el-table-column label="操作" width="200" align="center">
          <template #default="{ row }">
            <el-button type="primary" link @click="openDialog('edit', row)">编辑</el-button>
src/views/procurementManagement/returnManagement/index.vue
@@ -41,7 +41,7 @@
            <el-tag :type="getStatusType(row.status)">{{ getStatusText(row.status) }}</el-tag>
          </template>
        </el-table-column>
        <el-table-column label="创建时间" prop="createTime" width="180" />
        <el-table-column label="创建时间" prop="createTime" width="180" :formatter="formatDateColumn" />
        <el-table-column label="操作" width="200" align="center">
          <template #default="{ row }">
            <el-button type="primary" link @click="openDialog('edit', row)">编辑</el-button>
src/views/productManagement/productIdentifier/index.vue
@@ -93,7 +93,8 @@
        </el-table-column>
        <el-table-column prop="generateTime"
                         label="生成时间"
                         width="160" />
                         width="160"
                         :formatter="formatDateColumn" />
        <el-table-column label="操作"
                         fixed="right"
                         align="center"
@@ -744,7 +745,7 @@
            ...form,
            id: newId,
            identifierCode: identifierCode,
            generateTime: new Date().toLocaleString(),
            generateTime: dayjs().format("YYYY-MM-DD"),
          });
          pagination.total++;
          ElMessage.success("新增成功");
src/views/productionManagement/productionOrder/components/MaterialDetailDialog.vue
@@ -88,7 +88,8 @@
                         min-width="120" />
        <el-table-column label="补料日期"
                         prop="supplementTime"
                         min-width="160" />
                         min-width="160"
                         :formatter="formatDateColumn" />
        <el-table-column label="补料原因"
                         prop="feedingReason"
                         min-width="200" />
src/views/productionManagement/safetyMonitoring/index.vue
@@ -248,6 +248,7 @@
<script>
import * as echarts from 'echarts'
import { dateOnly } from '@/utils/index'
export default {
    name: 'SafetyMonitoring',
@@ -553,7 +554,7 @@
            const now = new Date()
            const record = {
                id: `EM${Date.now()}`,
                time: now.toLocaleString('zh-CN'),
                time: dateOnly(now),
                location: sensor.name,
                type: sensor.methane > 2.5 ? '甲烷超标' : '硫化氢超标',
                status: 'processing',
@@ -628,13 +629,13 @@
                    },
                    {
                        id: 2,
                        timestamp: new Date(new Date(record.time).getTime() + 3000).toLocaleString('zh-CN'),
                        timestamp: dateOnly(new Date(new Date(record.time).getTime() + 3000)),
                        type: 'action',
                        description: '启动喷淋系统降温'
                    },
                    {
                        id: 3,
                        timestamp: new Date(new Date(record.time).getTime() + 5000).toLocaleString('zh-CN'),
                        timestamp: dateOnly(new Date(new Date(record.time).getTime() + 5000)),
                        type: 'action',
                        description: '发送紧急疏散广播'
                    }
src/views/productionManagement/workOrder/index.vue
@@ -108,11 +108,11 @@
            </div> -->
            <div class="info-item">
              <span class="info-label">计划开始时间</span>
              <span class="info-value">{{ transferCardRowData.planStartTime }}</span>
              <span class="info-value">{{ dateOnly(transferCardRowData.planStartTime) }}</span>
            </div>
            <div class="info-item">
              <span class="info-label">计划结束时间</span>
              <span class="info-value">{{ transferCardRowData.planEndTime }}</span>
              <span class="info-value">{{ dateOnly(transferCardRowData.planEndTime) }}</span>
            </div>
            <div class="info-item">
              <span class="info-label">备注</span>
@@ -138,11 +138,11 @@
            </div>
            <div class="info-item">
              <span class="info-label">实际开始时间</span>
              <span class="info-value">{{ transferCardRowData.actualStartTime }}</span>
              <span class="info-value">{{ dateOnly(transferCardRowData.actualStartTime) }}</span>
            </div>
            <div class="info-item">
              <span class="info-label">实际结束时间</span>
              <span class="info-value">{{ transferCardRowData.actualEndTime }}</span>
              <span class="info-value">{{ dateOnly(transferCardRowData.actualEndTime) }}</span>
            </div>
          </div>
        </div>
src/views/productionManagement/workOrderManagement/components/MaterialDialog.vue
@@ -113,7 +113,8 @@
                         min-width="120" />
        <el-table-column label="补料日期"
                         prop="supplementTime"
                         min-width="160" />
                         min-width="160"
                         :formatter="formatDateColumn" />
      </el-table>
      <template #footer>
        <span class="dialog-footer">
src/views/productionManagement/workOrderManagement/index.vue
@@ -62,11 +62,11 @@
            </div>
            <div class="info-item">
              <span class="info-label">计划开始时间</span>
              <span class="info-value">{{ transferCardRowData.planStartTime }}</span>
              <span class="info-value">{{ dateOnly(transferCardRowData.planStartTime) }}</span>
            </div>
            <div class="info-item">
              <span class="info-label">计划结束时间</span>
              <span class="info-value">{{ transferCardRowData.planEndTime }}</span>
              <span class="info-value">{{ dateOnly(transferCardRowData.planEndTime) }}</span>
            </div>
            <div class="info-item">
              <span class="info-label">备注</span>
@@ -91,11 +91,11 @@
            </div>
            <div class="info-item">
              <span class="info-label">实际开始时间</span>
              <span class="info-value">{{ transferCardRowData.actualStartTime }}</span>
              <span class="info-value">{{ dateOnly(transferCardRowData.actualStartTime) }}</span>
            </div>
            <div class="info-item">
              <span class="info-label">实际结束时间</span>
              <span class="info-value">{{ transferCardRowData.actualEndTime }}</span>
              <span class="info-value">{{ dateOnly(transferCardRowData.actualEndTime) }}</span>
            </div>
          </div>
        </div>
src/views/projectManagement/Management/projectDetail.vue
@@ -25,7 +25,7 @@
            <el-descriptions-item label="客户ID">{{ info.clientId ?? '-' }}</el-descriptions-item>
            <el-descriptions-item label="父项目">{{ parentProjectLabel }}</el-descriptions-item>
            <el-descriptions-item label="项目类型">{{ projectTypeLabel }}</el-descriptions-item>
            <el-descriptions-item label="立项日期">{{ info.establishTime || '-' }}</el-descriptions-item>
            <el-descriptions-item label="立项日期">{{ formatDate(info.establishTime) }}</el-descriptions-item>
            <el-descriptions-item label="项目来源">{{ info.source || '-' }}</el-descriptions-item>
            <el-descriptions-item label="立项人">{{ info.managerName || '-' }}</el-descriptions-item>
            <el-descriptions-item label="业务员">{{ info.salesmanName || '-' }}</el-descriptions-item>
@@ -40,10 +40,10 @@
              <dict-tag :options="plan_status" :value="String(info.stage ?? '')" />
            </el-descriptions-item>
            <el-descriptions-item label="预计工期(天)">{{ estimatedDays }}</el-descriptions-item>
            <el-descriptions-item label="计划开始日期">{{ info.planStartTime || '-' }}</el-descriptions-item>
            <el-descriptions-item label="计划完成日期">{{ info.planEndTime || '-' }}</el-descriptions-item>
            <el-descriptions-item label="实际开始日期">{{ info.actualStartTime || '-' }}</el-descriptions-item>
            <el-descriptions-item label="实际完成日期">{{ info.actualEndTime || '-' }}</el-descriptions-item>
            <el-descriptions-item label="计划开始日期">{{ formatDate(info.planStartTime) }}</el-descriptions-item>
            <el-descriptions-item label="计划完成日期">{{ formatDate(info.planEndTime) }}</el-descriptions-item>
            <el-descriptions-item label="实际开始日期">{{ formatDate(info.actualStartTime) }}</el-descriptions-item>
            <el-descriptions-item label="实际完成日期">{{ formatDate(info.actualEndTime) }}</el-descriptions-item>
            <el-descriptions-item label="订单日期">{{ info.orderDate || '-' }}</el-descriptions-item>
            <el-descriptions-item label="项目金额">{{ info.orderAmount ?? '-' }}</el-descriptions-item>
            <el-descriptions-item label="备注" :span="4">{{ info.remark || '-' }}</el-descriptions-item>
@@ -79,8 +79,8 @@
            <el-table-column align="center" label="序号" type="index" width="60" />
            <el-table-column label="姓名" prop="userName" show-overflow-tooltip />
            <el-table-column label="项目组角色" prop="userRoleName" show-overflow-tooltip />
            <el-table-column label="进入日期" prop="joinTime" width="140" />
            <el-table-column label="离开日期" prop="departTime" width="140" />
            <el-table-column label="进入日期" prop="joinTime" width="140" :formatter="formatDateColumn" />
            <el-table-column label="离开日期" prop="departTime" width="140" :formatter="formatDateColumn" />
            <el-table-column label="联系方式" prop="contact" show-overflow-tooltip />
            <el-table-column label="备注" prop="remark" show-overflow-tooltip />
          </el-table>
@@ -143,10 +143,10 @@
            <el-table-column label="描述" prop="description" min-width="220" show-overflow-tooltip />
            <el-table-column label="实际负责人" prop="actualLeaderName" width="140" show-overflow-tooltip />
            <el-table-column label="进度(%)" prop="progress" width="110" />
            <el-table-column label="计划开始" prop="planStartTime" width="120" />
            <el-table-column label="计划结束" prop="planEndTime" width="120" />
            <el-table-column label="实际开始" prop="actualStartTime" width="120" />
            <el-table-column label="实际结束" prop="actualEndTime" width="120" />
            <el-table-column label="计划开始" prop="planStartTime" width="120" :formatter="formatDateColumn" />
            <el-table-column label="计划结束" prop="planEndTime" width="120" :formatter="formatDateColumn" />
            <el-table-column label="实际开始" prop="actualStartTime" width="120" :formatter="formatDateColumn" />
            <el-table-column label="实际结束" prop="actualEndTime" width="120" :formatter="formatDateColumn" />
            <el-table-column label="预计工期(天)" prop="estimatedDuration" width="130" />
            <el-table-column label="附件" width="90" align="center">
              <template #default="{ row }">
src/views/qualityManagement/afterSalesTraceability/index.vue
@@ -123,7 +123,7 @@
      <el-table-column label="联系方式" prop="contact" width="140" />
      <el-table-column label="反馈时间" prop="feedbackTime" width="160">
        <template #default="scope">
          <span>{{ scope.row.feedbackTime }}</span>
          <span>{{ dateOnly(scope.row.feedbackTime) }}</span>
        </template>
      </el-table-column>
      <el-table-column label="问题描述" prop="problemDesc" show-overflow-tooltip />
src/views/reportAnalysis/dataDashboard/components/basic/center-top.vue
@@ -97,7 +97,7 @@
              >
                <div class="todo-title">申请类型:{{ item.approveTypeName }}</div>
                <div class="todo-division">申请部门:{{ item.approveDeptName }}</div>
                <div class="todo-time">{{ item.approveTime }}</div>
                <div class="todo-time">{{ dateOnly(item.approveTime) }}</div>
              </div>
              
            </div>
src/views/reportAnalysis/reportManagement.vue
@@ -188,8 +188,8 @@
            <el-progress :percentage="scope.row.progress" :status="getProgressStatus(scope.row.progress)" />
          </template>
        </el-table-column>
        <el-table-column prop="createTime" label="创建时间" width="180" />
        <el-table-column prop="updateTime" label="更新时间" width="180" />
        <el-table-column prop="createTime" label="创建时间" width="180" :formatter="formatDateColumn" />
        <el-table-column prop="updateTime" label="更新时间" width="180" :formatter="formatDateColumn" />
        <el-table-column label="操作" width="150" fixed="right">
          <template #default="scope">
            <el-button type="text" size="small" @click="viewDetail(scope.row)">查看</el-button>
src/views/safeProduction/accidentReportingRecord/index.vue
@@ -224,7 +224,7 @@
            <span>{{ currentKnowledge.accidentName }}</span>
          </el-descriptions-item>
          <el-descriptions-item label="事故发生时间">
            {{ currentKnowledge.happenTime }}
            {{ dateOnly(currentKnowledge.happenTime) }}
          </el-descriptions-item>
          <el-descriptions-item label="事故发生地点">
            {{ currentKnowledge.happenLocation }}
@@ -245,7 +245,7 @@
            {{ currentKnowledge.createUserName }}
          </el-descriptions-item>
          <el-descriptions-item label="上报时间">
            {{ currentKnowledge.createTime }}
            {{ dateOnly(currentKnowledge.createTime) }}
          </el-descriptions-item>
        </el-descriptions>
        <div class="detail-section">
src/views/safeProduction/dangerInvestigation/index.vue
@@ -69,10 +69,12 @@
                         show-overflow-tooltip />
        <el-table-column label="上报时间"
                         prop="createTime"
                         :formatter="formatDateColumn"
                         show-overflow-tooltip />
        <el-table-column label="整改完成期限"
                         prop="rectifyTime"
                         width="120"
                         :formatter="formatDateColumn"
                         show-overflow-tooltip />
        <el-table-column label="整改责任人"
                         prop="rectifyUserName"
@@ -89,6 +91,7 @@
        <el-table-column label="实际整改完成时间"
                         prop="rectifyActualTime"
                         width="120"
                         :formatter="formatDateColumn"
                         show-overflow-tooltip />
        <el-table-column label="验收意见"
                         prop="verifyRemark"
@@ -97,6 +100,7 @@
        <el-table-column label="验收时间"
                         prop="verifyTime"
                         width="120"
                         :formatter="formatDateColumn"
                         show-overflow-tooltip />
        <el-table-column label="验收结果"
                         prop="verifyResult"
@@ -296,7 +300,7 @@
          <span class="detail-title">{{ form.createUserName }}</span>
        </el-descriptions-item>
        <el-descriptions-item label="上报时间">
          <span class="detail-title">{{ form.createTime }}</span>
          <span class="detail-title">{{ dateOnly(form.createTime) }}</span>
        </el-descriptions-item>
        <el-descriptions-item label="整改责任人">
          <span class="detail-title">{{ form.rectifyUserName }}</span>
@@ -305,7 +309,7 @@
          <span class="detail-title">{{ form.rectifyUserMobile }}</span>
        </el-descriptions-item>
        <el-descriptions-item label="整改完成期限">
          <span class="detail-title">{{ form.rectifyTime }}</span>
          <span class="detail-title">{{ dateOnly(form.rectifyTime) }}</span>
        </el-descriptions-item>
      </el-descriptions>
      <div class="classtitle"
@@ -320,7 +324,7 @@
          <span class="detail-title">{{ form2.rectifyMeasures }}</span>
        </el-descriptions-item>
        <el-descriptions-item label="实际整改完成时间">
          <span class="detail-title">{{ form2.rectifyActualTime }}</span>
          <span class="detail-title">{{ dateOnly(form2.rectifyActualTime) }}</span>
        </el-descriptions-item>
      </el-descriptions>
      <div class="classtitle"
src/views/safeProduction/emergencyPlanReview/index.vue
@@ -187,7 +187,7 @@
            <span>{{ currentKnowledge.planCode }}</span>
          </el-descriptions-item>
          <el-descriptions-item label="发布生效时间">
            {{ currentKnowledge.publishTime }}
            {{ dateOnly(currentKnowledge.publishTime) }}
          </el-descriptions-item>
          <el-descriptions-item label="核心责任人">
            {{ currentKnowledge.coreResponsorUserName }}
src/views/safeProduction/hazardousMaterialsControl/index.vue
@@ -178,7 +178,7 @@
          <span>{{ form.applyPurpose }}</span>
        </el-descriptions-item>
        <el-descriptions-item label="领用时间">
          <span>{{ form.applyTime }}</span>
          <span>{{ dateOnly(form.applyTime) }}</span>
        </el-descriptions-item>
        <el-descriptions-item label="领用数量">
          <span>{{ form.applyQty }}</span>
@@ -192,7 +192,7 @@
        </el-descriptions-item>
        <el-descriptions-item v-if="dialogType === 'view' && form.returnTime"
                              label="归还时间">
          <span>{{ form.returnTime }}</span>
          <span>{{ dateOnly(form.returnTime) }}</span>
        </el-descriptions-item>
        <el-descriptions-item v-if="dialogType === 'view' && form.returnUserId"
                              label="归还情况说明">
src/views/safeProduction/safeQualifications/index.vue
@@ -97,6 +97,7 @@
        <el-table-column label="有效期"
                         prop="effectiveTime"
                         width="120"
                         :formatter="formatDateColumn"
                         show-overflow-tooltip />
        <el-table-column fixed="right"
                         label="操作"
src/views/salesManagement/returnOrder/components/detailDia.vue
@@ -19,7 +19,7 @@
        </template>
        <!-- <el-descriptions-item label="项目名称">{{ detail.projectName }}</el-descriptions-item> -->
        <el-descriptions-item label="制单人">{{ detail.maker }}</el-descriptions-item>
        <el-descriptions-item label="制单时间">{{ detail.makeTime }}</el-descriptions-item>
        <el-descriptions-item label="制单时间">{{ dateOnly(detail.makeTime) }}</el-descriptions-item>
        <el-descriptions-item label="退货原因">{{ detail.returnReason }}</el-descriptions-item>
        <el-descriptions-item label="退款总额">{{ detail.refundAmount }}</el-descriptions-item>
      </el-descriptions>
src/views/system/user/profile/index.vue
@@ -35,7 +35,7 @@
                     </li>
                     <li class="list-group-item">
                        <svg-icon icon-class="date" />创建日期
                        <div class="pull-right">{{ state.user.createTime }}</div>
                        <div class="pull-right">{{ dateOnly(state.user.createTime) }}</div>
                     </li>
                  </ul>
               </div>