更新代码

This commit is contained in:
2026-09-15 10:44:31 +08:00
parent 9875832019
commit 943c3708b0
125 changed files with 2009 additions and 1728 deletions
@@ -30,7 +30,7 @@
</span>
<span class="meta-item">
<i class="el-icon-view"></i>
创建日期:{{ model?.create_time }}
创建日期:{{ formatDateTime(model?.create_time) }}
</span>
</div>
</div>
@@ -52,6 +52,7 @@
<script lang="ts" setup>
import { ref, watch, onMounted } from "vue";
import { listCategories } from "@/api/article";
import { formatDateTime } from "@/utils/datetime";
import { ElMessage, ElMessageBox } from "element-plus";
const categoryOptions = ref([]);
@@ -117,8 +117,12 @@
width="100"
align="center"
/>
<el-table-column prop="publish_date" label="发布时间" width="160" />
<el-table-column prop="update_time" label="更新时间" width="160" />
<el-table-column prop="publish_date" label="发布时间" width="160">
<template #default="{ row }">{{ formatDate(row.publish_date) }}</template>
</el-table-column>
<el-table-column prop="update_time" label="更新时间" width="160">
<template #default="{ row }">{{ formatDateTime(row.update_time) }}</template>
</el-table-column>
<el-table-column prop="publisher" label="发布人" width="120" />
<el-table-column label="操作" width="260" fixed="right" align="center">
<template #default="{ row }">
@@ -215,6 +219,7 @@ import { ElMessage, ElMessageBox } from "element-plus";
import { Search } from "@element-plus/icons-vue";
import Edit from "./components/edit.vue";
import Preview from "./components/preview.vue";
import { formatDate, formatDateTime } from "@/utils/datetime";
import { useAuthStore } from "@/stores/auth";
import {
listArticles,
+4 -1
View File
@@ -63,7 +63,9 @@
</el-tag>
</template>
</el-table-column>
<el-table-column prop="create_time" label="创建时间" width="180" />
<el-table-column prop="create_time" label="创建时间" width="180">
<template #default="{ row }">{{ formatDateTime(row.create_time) }}</template>
</el-table-column>
<el-table-column label="操作" width="200" fixed="right">
<template #default="scope">
<el-button size="small" @click="handleEdit(scope.row)"
@@ -108,6 +110,7 @@ import { ref, reactive, onMounted } from "vue";
import { Plus, Refresh } from "@element-plus/icons-vue";
import { ElMessage, ElMessageBox } from "element-plus";
import Edit from "./components/edit.vue";
import { formatDateTime } from "@/utils/datetime";
import { getDemandList, deleteDemand } from "@/api/demand";
// 状态管理
+4 -1
View File
@@ -76,7 +76,9 @@
<el-tag v-else :type="sslTagType(scope.row.ssl_status)">{{ sslText(scope.row.ssl_status) }}</el-tag>
</template>
</el-table-column>
<el-table-column prop="create_time" label="申请时间" width="170" />
<el-table-column prop="create_time" label="申请时间" width="170">
<template #default="{ row }">{{ formatDateTime(row.create_time) }}</template>
</el-table-column>
<el-table-column label="操作" width="230" fixed="right" align="center">
<template #default="scope">
<!-- 自有域名无人工审核:解析与证书就绪后自动生效,这里只提供重新检测与禁用 -->
@@ -134,6 +136,7 @@
import { ref, reactive, onMounted } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { Refresh } from '@element-plus/icons-vue'
import { formatDateTime } from '@/utils/datetime'
import {
getTenantDomainList,
auditTenantDomain,
+4 -1
View File
@@ -49,7 +49,9 @@
</el-tag>
</template>
</el-table-column>
<el-table-column prop="create_time" label="创建时间" width="180" />
<el-table-column prop="create_time" label="创建时间" width="180">
<template #default="{ row }">{{ formatDateTime(row.create_time) }}</template>
</el-table-column>
<el-table-column label="操作" width="240" fixed="right" align="center">
<template #default="scope">
<el-button size="small" text @click="handleEdit(scope.row)">
@@ -107,6 +109,7 @@
import { ref, reactive, onMounted } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { Plus, Edit, Delete, Refresh, Switch } from '@element-plus/icons-vue'
import { formatDateTime } from '@/utils/datetime'
import {
getDomainPoolList,
createDomainPool,
@@ -81,7 +81,9 @@
/>
</template>
</el-table-column>
<el-table-column prop="create_time" label="创建时间" width="180" align="center" />
<el-table-column prop="create_time" label="创建时间" width="180" align="center">
<template #default="{ row }">{{ formatDateTime(row.create_time) }}</template>
</el-table-column>
<el-table-column label="操作" width="200" align="center" fixed="right">
<template #default="{ row }">
<el-button type="primary" link @click="handleEdit(row)">
@@ -130,6 +132,7 @@ import {
deleteFriendlink
} from '@/api/friendlink'
import EditDialog from './components/edit.vue'
import { formatDateTime } from '@/utils/datetime'
// @ts-ignore
const API_BASE_URL = import.meta.env.VITE_API_BASE_URL;
@@ -60,7 +60,9 @@
<el-table-column prop="desc" label="产品描述" min-width="150" align="center" />
<el-table-column prop="url" label="跳转地址" min-width="150" align="center" />
<el-table-column prop="sort" label="排序" width="80" align="center" />
<el-table-column prop="create_time" label="创建时间" width="180" align="center" />
<el-table-column prop="create_time" label="创建时间" width="180" align="center">
<template #default="{ row }">{{ formatDateTime(row.create_time) }}</template>
</el-table-column>
<el-table-column label="操作" width="200" align="center" fixed="right">
<template #default="{ row }">
<el-button type="primary" link @click="handleEdit(row)">
@@ -103,6 +105,7 @@ import {
deleteProducts
} from '@/api/products'
import EditDialog from './components/edit.vue'
import { formatDateTime } from '@/utils/datetime'
// @ts-ignore
const API_BASE_URL = import.meta.env.VITE_API_BASE_URL;
@@ -40,7 +40,9 @@
<el-table-column prop="desc" label="分类描述" min-width="200" align="center" />
<el-table-column prop="pid" label="父级ID" width="110" align="center" />
<el-table-column prop="sort" label="排序" width="90" align="center" />
<el-table-column prop="create_time" label="创建时间" min-width="180" align="center" />
<el-table-column prop="create_time" label="创建时间" min-width="180" align="center">
<template #default="{ row }">{{ formatDateTime(row.create_time) }}</template>
</el-table-column>
<el-table-column label="操作" width="200" align="center" fixed="right">
<template #default="{ row }">
<el-button type="primary" link @click="handleEdit(row)">
@@ -81,6 +83,7 @@
deleteProductsTypes
} from '@/api/products'
import EditDialog from './components/edit.vue'
import { formatDateTime } from '@/utils/datetime'
// 加载状态
const loading = ref(false)
@@ -65,7 +65,9 @@
<el-table-column prop="desc" label="方案描述" min-width="150" align="center" />
<el-table-column prop="url" label="跳转地址" min-width="150" align="center" />
<el-table-column prop="sort" label="排序" width="80" align="center" />
<el-table-column prop="create_time" label="创建时间" width="180" align="center" />
<el-table-column prop="create_time" label="创建时间" width="180" align="center">
<template #default="{ row }">{{ formatDateTime(row.create_time) }}</template>
</el-table-column>
<el-table-column label="操作" width="200" align="center" fixed="right">
<template #default="{ row }">
<el-button type="primary" link @click="handleEdit(row)">
@@ -108,6 +110,7 @@ import {
deleteService
} from '@/api/services'
import EditDialog from './components/edit.vue'
import { formatDateTime } from '@/utils/datetime'
// @ts-ignore
const API_BASE_URL = import.meta.env.VITE_API_BASE_URL;
@@ -40,7 +40,9 @@
<el-table-column prop="desc" label="分类描述" min-width="200" align="center" />
<el-table-column prop="pid" label="父级ID" width="110" align="center" />
<el-table-column prop="sort" label="排序" width="90" align="center" />
<el-table-column prop="create_time" label="创建时间" min-width="180" align="center" />
<el-table-column prop="create_time" label="创建时间" min-width="180" align="center">
<template #default="{ row }">{{ formatDateTime(row.create_time) }}</template>
</el-table-column>
<el-table-column label="操作" width="200" align="center" fixed="right">
<template #default="{ row }">
<el-button type="primary" link @click="handleEdit(row)">
@@ -81,6 +83,7 @@ import {
deleteServicesTypes
} from '@/api/services'
import EditDialog from './components/edit.vue'
import { formatDateTime } from '@/utils/datetime'
// 加载状态
const loading = ref(false)
@@ -91,7 +91,7 @@
</el-tag>
</el-descriptions-item>
<el-descriptions-item label="创建时间">
{{ contact.create_time || '-' }}
{{ contact.create_time ? formatDateTime(contact.create_time) : '-' }}
</el-descriptions-item>
</el-descriptions>
</div>
@@ -108,6 +108,7 @@
<script setup>
import { computed } from 'vue'
import { formatDateTime } from '@/utils/datetime'
const props = defineProps({
modelValue: { type: Boolean, default: false },
@@ -299,6 +299,8 @@ import {
import { finishSchedule, getScheduleList, getScheduleStats } from "@/api/oaSchedule";
import ScheduleDetail from "../schedule/components/detail.vue";
import SchedulePostpone from "../schedule/components/postponeDialog.vue";
// 时间显示统一为:YYYY-MM-DD HH:mm:ss
import { formatDateTime } from "@/utils/datetime";
const emptyStat = () => ({ total: 0, paid: 0, unpaid: 0, count: 0 });
const dashboard = reactive({
@@ -607,14 +609,7 @@ const noticeDetailItem = ref(null);
const noticeTypeLabel = (type) => ({ 1: "公告", 2: "活动" }[type] || "通知");
const noticeTypeTag = (type) => ({ 1: "primary", 2: "success" }[type] || "info");
const formatDateTime = (value) => {
if (!value) return "-";
const d = new Date(value);
if (Number.isNaN(d.getTime())) return String(value);
return `${d.getFullYear()}-${pad2(d.getMonth() + 1)}-${pad2(d.getDate())} ${pad2(
d.getHours()
)}:${pad2(d.getMinutes())}`;
};
// 列表右侧时间:今天显示 HH:mm,本年显示 M/D,跨年显示 YYYY-M-D
const noticeTime = (item) => {
@@ -297,6 +297,8 @@ import {
summarizeReceiptAmountRows
} from '../utils/invoiceAmount'
import ItemForm from './itemForm.vue'
// 时间显示统一为:YYYY-MM-DD HH:mm:ss
import { formatDateTime } from '@/utils/datetime'
const props = defineProps({
modelValue: { type: Boolean, default: false },
@@ -913,7 +915,6 @@ const removeReceipt = async receipt => {
const actionLabel = value => ({ 1: '提交申请', 2: '审批通过', 3: '审批驳回', 4: '转审', 5: '撤回' })[value] || '审批操作'
const money = value => Number(value || 0).toFixed(2)
const formatDateTime = value => value ? new Date(value).toLocaleString('zh-CN', { hour12: false }) : '-'
</script>
<style lang="less" scoped>
@@ -169,6 +169,8 @@ import { Plus, Refresh, Search, Setting } from "@element-plus/icons-vue";
import ReimburseEdit from "./components/edit.vue";
import ReimburseDetail from "./components/detail.vue";
import ExpenseTypeDialog from "./components/expenseTypeDialog.vue";
// 日期/时间显示统一格式:YYYY-MM-DD 与 YYYY-MM-DD HH:mm:ss
import { formatDate as formatDateUtil, formatDateTime } from "@/utils/datetime";
import { exportReimbursementPdf } from "./utils/exportReimbursementPdf";
import {
createReimbursement,
@@ -351,15 +353,11 @@ const handleExport = async (row) => {
};
const money = (value) => Number(value || 0).toFixed(2);
const formatDate = (value) => {
// 日期显示统一为:YYYY-MM-DD
const formatDate = (value: any) => {
if (!value) return "-";
const text = String(value);
const match = text.match(/^(\d{4}-\d{2}-\d{2})/);
if (match) return match[1];
return text;
return formatDateUtil(value);
};
const formatDateTime = (value) =>
value ? new Date(value).toLocaleString("zh-CN", { hour12: false }) : "-";
const statusLabel = (value) =>
statusOptions.find((item) => item.value === value)?.label || "未知";
const statusType = (value) =>