From 1be6a8fc84764d7e816737b365f9e1c8869db9a7 Mon Sep 17 00:00:00 2001
From: zhang_nuo <zhang_12370@163.com>
Date: 星期二, 11 八月 2026 11:55:13 +0800
Subject: [PATCH] 提交意博凯信删除各个模块表格的时分秒
---
src/views/equipmentManagement/upkeep/index.vue | 1283 +++++++++++++++-----------------
src/views/personnelManagement/socialSecuritySet/index.vue | 2
src/views/equipmentManagement/spareParts/index.vue | 930 ++++++++++-------------
src/views/collaborativeApproval/rulesRegulationsManagement/index.vue | 2
src/views/basicData/parameterMaintenance/index.vue | 3
src/components/PIMTable/PIMTable.vue | 5
src/views/inventoryManagement/stockManagement/Qualified.vue | 8
src/views/financialManagement/receivable/salesReturn.vue | 2
src/views/collaborativeApproval/sealManagement/index.vue | 2
src/views/inventoryManagement/dispatchLog/Record.vue | 6
src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js | 39
src/views/productionManagement/productionReporting/index.vue | 1
src/views/inventoryManagement/stockManagement/BatchNoQtyDetail.vue | 12
src/views/inventoryManagement/stockManagement/Record.vue | 6
src/views/inventoryManagement/stockManagement/Unqualified.vue | 8
src/views/collaborativeApproval/knowledgeBase/index.vue | 1
src/views/financialManagement/payable/purchaseReturn.vue | 2
src/views/inventoryManagement/receiptManagement/Record.vue | 8
src/views/safeProduction/dangerInvestigation/index.vue | 6
19 files changed, 1,079 insertions(+), 1,247 deletions(-)
diff --git a/src/components/PIMTable/PIMTable.vue b/src/components/PIMTable/PIMTable.vue
index 74615af..0045336 100644
--- a/src/components/PIMTable/PIMTable.vue
+++ b/src/components/PIMTable/PIMTable.vue
@@ -112,6 +112,10 @@
{{ formatters(scope.row[item.prop], item.formatData) }}
</el-tag>
</div>
+ <!-- 鏃堕棿绫诲瀷 -->
+ <div v-else-if="item.dataType === 'date'">
+ {{ scope.row[item.prop] ? dayjs(scope.row[item.prop]).format('YYYY-MM-DD') : '' }}
+ </div>
<!-- 鎸夐挳 -->
<div v-else-if="item.dataType == 'action'"
@click.stop>
@@ -204,6 +208,7 @@
import pagination from "./Pagination.vue";
import { computed, ref, inject, getCurrentInstance } from "vue";
import { ElMessage } from "element-plus";
+ import dayjs from "dayjs";
// 鑾峰彇鍏ㄥ眬鐨� uploadHeader
const { proxy } = getCurrentInstance();
diff --git a/src/views/basicData/parameterMaintenance/index.vue b/src/views/basicData/parameterMaintenance/index.vue
index 38ddd4f..01b604d 100644
--- a/src/views/basicData/parameterMaintenance/index.vue
+++ b/src/views/basicData/parameterMaintenance/index.vue
@@ -302,6 +302,7 @@
{
label: "鍒涘缓鏃堕棿",
prop: "createTime",
+ dataType:"date"
},
{
label: "鎿嶄綔",
@@ -374,7 +375,7 @@
const formCreateTimeDate = computed({
get: () => (formData.createTime ? String(formData.createTime).split(" ")[0] : ""),
set: (value) => {
- formData.createTime = value ? `${value} ${dayjs().format("HH:mm:ss")}` : "";
+ formData.createTime = value ? dayjs(value).format("YYYY-MM-DD") : "";
},
});
// const productTypes = ref([]);
diff --git a/src/views/collaborativeApproval/knowledgeBase/index.vue b/src/views/collaborativeApproval/knowledgeBase/index.vue
index f50d06b..05a1d1c 100644
--- a/src/views/collaborativeApproval/knowledgeBase/index.vue
+++ b/src/views/collaborativeApproval/knowledgeBase/index.vue
@@ -555,6 +555,7 @@
label: "鍒涘缓鏃堕棿",
prop: "createTime",
width: 180,
+ dataType:"date"
},
{
dataType: "action",
diff --git a/src/views/collaborativeApproval/rulesRegulationsManagement/index.vue b/src/views/collaborativeApproval/rulesRegulationsManagement/index.vue
index f7ba9d9..128b7ed 100644
--- a/src/views/collaborativeApproval/rulesRegulationsManagement/index.vue
+++ b/src/views/collaborativeApproval/rulesRegulationsManagement/index.vue
@@ -309,7 +309,7 @@
},
{ label: "鐗堟湰", prop: "version", width: 120 },
{ label: "鍙戝竷浜�", prop: "createUserName", width: 120 },
- { label: "鍙戝竷鏃堕棿", prop: "createTime", width: 180 },
+ { label: "鍙戝竷鏃堕棿", prop: "createTime", width: 180,dataType: "date" },
{
label: "鐘舵��",
prop: "status",
diff --git a/src/views/collaborativeApproval/sealManagement/index.vue b/src/views/collaborativeApproval/sealManagement/index.vue
index a06f6d5..7be9ef9 100644
--- a/src/views/collaborativeApproval/sealManagement/index.vue
+++ b/src/views/collaborativeApproval/sealManagement/index.vue
@@ -252,7 +252,7 @@
formatData: (v) => getSealTypeText(v),
formatType: () => 'info'
},
- { label: '鐢宠鏃堕棿', prop: 'createTime', width: 180 },
+ { label: '鐢宠鏃堕棿', prop: 'createTime', width: 180,dataType: "date" },
{
label: '鐘舵��',
prop: 'status',
diff --git a/src/views/equipmentManagement/spareParts/index.vue b/src/views/equipmentManagement/spareParts/index.vue
index c25736f..8f8c674 100644
--- a/src/views/equipmentManagement/spareParts/index.vue
+++ b/src/views/equipmentManagement/spareParts/index.vue
@@ -1,26 +1,26 @@
<template>
- <div class="spare-part-category">
- <el-tabs v-model="activeTab" @tab-change="handleTabChange">
- <el-tab-pane label="澶囦欢鍒楄〃" name="list">
- <div class="search_form">
- <el-form :inline="true" :model="queryParams" class="search-form">
- <el-form-item label="澶囦欢鍚嶇О">
- <el-input
- v-model="queryParams.name"
- placeholder="璇疯緭鍏ュ浠跺悕绉�"
- clearable
- style="width: 240px"
- />
- </el-form-item>
- <el-form-item>
- <el-button type="primary" @click="handleQuery">鏌ヨ</el-button>
- <el-button @click="resetQuery">閲嶇疆</el-button>
- </el-form-item>
- </el-form>
- <div>
- <el-button type="primary" @click="addCategory">鏂板</el-button>
- </div>
- </div>
+ <div class="spare-part-category">
+ <el-tabs v-model="activeTab" @tab-change="handleTabChange">
+ <el-tab-pane label="澶囦欢鍒楄〃" name="list">
+ <div class="search_form">
+ <el-form :inline="true" :model="queryParams" class="search-form">
+ <el-form-item label="澶囦欢鍚嶇О">
+ <el-input
+ v-model="queryParams.name"
+ placeholder="璇疯緭鍏ュ浠跺悕绉�"
+ clearable
+ style="width: 240px"
+ />
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" @click="handleQuery">鏌ヨ</el-button>
+ <el-button @click="resetQuery">閲嶇疆</el-button>
+ </el-form-item>
+ </el-form>
+ <div>
+ <el-button type="primary" @click="addCategory">鏂板</el-button>
+ </div>
+ </div>
<div class="table_list">
<PIMTable
rowKey="id"
@@ -36,87 +36,83 @@
</template>
</PIMTable>
</div>
-
- <el-dialog title="鍒嗙被绠$悊" v-model="dialogVisible" width="60%">
- <el-form :model="form" :rules="rules" ref="formRef" label-width="100px">
- <el-form-item label="璁惧" prop="deviceLedgerIds">
- <el-select
- v-model="form.deviceLedgerIds"
- placeholder="璇烽�夋嫨璁惧"
- filterable
- default-first-option
- :reserve-keyword="false"
- multiple
- style="width: 100%"
- >
- <el-option
- v-for="(item, index) in deviceOptions"
- :key="index"
- :label="item.deviceName"
- :value="item.id"
- ></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="澶囦欢鍚嶇О" prop="name">
- <el-input v-model="form.name"></el-input>
- </el-form-item>
- <el-form-item label="澶囦欢缂栧彿" prop="sparePartsNo">
- <el-input v-model="form.sparePartsNo"></el-input>
- </el-form-item>
- <el-form-item label="鏁伴噺" prop="quantity">
- <el-input type="number" v-model="form.quantity"></el-input>
- </el-form-item>
- <el-form-item label="鐘舵��" prop="status">
- <el-select v-model="form.status" placeholder="璇烽�夋嫨鐘舵��">
- <el-option label="姝e父" value="姝e父"></el-option>
- <el-option label="绂佺敤" value="绂佺敤"></el-option>
- </el-select>
- </el-form-item>
- <el-form-item label="鎻忚堪" prop="description">
- <el-input v-model="form.description"></el-input>
- </el-form-item>
- <el-form-item label="浠锋牸" prop="price">
- <el-input-number
- v-model="form.price"
- placeholder="璇疯緭鍏ヤ环鏍�"
- :min="0"
- :step="0.01"
- :precision="2"
- style="width: 100%"
- ></el-input-number>
- </el-form-item>
- </el-form>
- <template #footer>
+
+ <el-dialog title="鍒嗙被绠$悊" v-model="dialogVisible" width="60%">
+ <el-form :model="form" :rules="rules" ref="formRef" label-width="100px">
+ <el-form-item label="璁惧" prop="deviceLedgerIds">
+ <el-select
+ v-model="form.deviceLedgerIds"
+ placeholder="璇烽�夋嫨璁惧"
+ filterable
+ default-first-option
+ :reserve-keyword="false"
+ multiple
+ style="width: 100%"
+ >
+ <el-option
+ v-for="(item, index) in deviceOptions"
+ :key="index"
+ :label="item.deviceName"
+ :value="item.id"
+ ></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="澶囦欢鍚嶇О" prop="name">
+ <el-input v-model="form.name"></el-input>
+ </el-form-item>
+ <el-form-item label="澶囦欢缂栧彿" prop="sparePartsNo">
+ <el-input v-model="form.sparePartsNo"></el-input>
+ </el-form-item>
+ <el-form-item label="鏁伴噺" prop="quantity">
+ <el-input type="number" v-model="form.quantity"></el-input>
+ </el-form-item>
+ <el-form-item label="鐘舵��" prop="status">
+ <el-select v-model="form.status" placeholder="璇烽�夋嫨鐘舵��">
+ <el-option label="姝e父" value="姝e父"></el-option>
+ <el-option label="绂佺敤" value="绂佺敤"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="鎻忚堪" prop="description">
+ <el-input v-model="form.description"></el-input>
+ </el-form-item>
+ <el-form-item label="浠锋牸" prop="price">
+ <el-input-number
+ v-model="form.price"
+ placeholder="璇疯緭鍏ヤ环鏍�"
+ :min="0"
+ :step="0.01"
+ :precision="2"
+ style="width: 100%"
+ ></el-input-number>
+ </el-form-item>
+ </el-form>
+ <template #footer>
<span class="dialog-footer">
<el-button type="primary" @click="submitForm" :loading="formLoading">纭畾</el-button>
<el-button @click="dialogVisible = false" :disabled="formLoading">鍙栨秷</el-button>
</span>
- </template>
- </el-dialog>
- </el-tab-pane>
-
- <el-tab-pane label="澶囦欢棰嗙敤璁板綍" name="usage">
- <div class="search_form">
- <el-form :inline="true" :model="usageQuery" class="search-form">
- <el-form-item label="澶囦欢鍚嶇О">
- <el-input v-model="usageQuery.sparePartsName" placeholder="璇疯緭鍏ュ浠跺悕绉�" clearable style="width: 240px" />
- </el-form-item>
- <el-form-item label="鏉ユ簮">
- <el-select v-model="usageQuery.sourceType" placeholder="璇烽�夋嫨" clearable style="width: 200px">
- <el-option label="缁翠慨" :value="0" />
- <el-option label="淇濆吇" :value="1" />
- <el-option label="鐩存帴鍑哄簱" :value="2" />
- </el-select>
- </el-form-item>
- <el-form-item>
- <el-button type="primary" @click="handleUsageQuery">鏌ヨ</el-button>
- <el-button @click="resetUsageQuery">閲嶇疆</el-button>
- </el-form-item>
- </el-form>
- <div>
- <el-button type="primary" @click="openRequisitionDialog">鐩存帴鍑哄簱</el-button>
- </div>
- </div>
+ </template>
+ </el-dialog>
+ </el-tab-pane>
+
+ <el-tab-pane label="澶囦欢棰嗙敤璁板綍" name="usage">
+ <div class="search_form">
+ <el-form :inline="true" :model="usageQuery" class="search-form">
+ <el-form-item label="澶囦欢鍚嶇О">
+ <el-input v-model="usageQuery.sparePartsName" placeholder="璇疯緭鍏ュ浠跺悕绉�" clearable style="width: 240px" />
+ </el-form-item>
+ <el-form-item label="鏉ユ簮">
+ <el-select v-model="usageQuery.sourceType" placeholder="璇烽�夋嫨" clearable style="width: 200px">
+ <el-option label="缁翠慨" :value="0" />
+ <el-option label="淇濆吇" :value="1" />
+ </el-select>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary" @click="handleUsageQuery">鏌ヨ</el-button>
+ <el-button @click="resetUsageQuery">閲嶇疆</el-button>
+ </el-form-item>
+ </el-form>
+ </div>
<div class="table_list">
<PIMTable
rowKey="rowKey"
@@ -128,63 +124,9 @@
@pagination="handleUsagePageChange"
/>
</div>
- </el-tab-pane>
- </el-tabs>
-
- <!-- 鐩存帴鍑哄簱寮圭獥 -->
- <el-dialog title="鐩存帴鍑哄簱" v-model="requisitionDialogVisible" width="500px">
- <el-form :model="requisitionForm" :rules="requisitionRules" ref="requisitionFormRef" label-width="100px">
- <el-form-item label="璁惧閫夋嫨" prop="deviceLedgerId">
- <el-select
- v-model="requisitionForm.deviceLedgerId"
- placeholder="璇烽�夋嫨璁惧"
- filterable
- clearable
- style="width: 100%"
- >
- <el-option
- v-for="item in requisitionDeviceOptions"
- :key="item.id"
- :label="item.deviceName"
- :value="item.id"
- />
- </el-select>
- </el-form-item>
- <el-form-item label="澶囦欢閫夋嫨" prop="sparePartsId">
- <el-select
- v-model="requisitionForm.sparePartsId"
- placeholder="璇烽�夋嫨澶囦欢"
- filterable
- clearable
- style="width: 100%"
- @change="onRequisitionSparePartChange"
- >
- <el-option
- v-for="item in requisitionSparePartsOptions"
- :key="item.id"
- :label="`${item.name}锛堝簱瀛�: ${item.quantity}锛塦"
- :value="item.id"
- />
- </el-select>
- </el-form-item>
- <el-form-item label="棰嗙敤鏁伴噺" prop="quantity">
- <el-input-number
- v-model="requisitionForm.quantity"
- :min="1"
- :max="selectedSparePartMaxQty"
- style="width: 100%"
- />
- </el-form-item>
- <el-form-item label="澶囨敞" prop="remark">
- <el-input v-model="requisitionForm.remark" placeholder="璇疯緭鍏ュ娉�" />
- </el-form-item>
- </el-form>
- <template #footer>
- <el-button type="primary" @click="submitRequisition" :loading="requisitionLoading">纭畾</el-button>
- <el-button @click="requisitionDialogVisible = false">鍙栨秷</el-button>
- </template>
- </el-dialog>
- </div>
+ </el-tab-pane>
+ </el-tabs>
+ </div>
</template>
<script setup>
@@ -193,7 +135,7 @@
import { getSparePartsList, addSparePart, editSparePart, delSparePart } from "@/api/equipmentManagement/spareParts";
import { getDeviceLedger } from "@/api/equipmentManagement/ledger";
import PIMTable from "@/components/PIMTable/PIMTable.vue";
-import { getSparePartsUsagePage, outboundSpareParts } from "@/api/equipmentManagement/sparePartsUsage";
+import { getSparePartsUsagePage } from "@/api/equipmentManagement/sparePartsUsage";
// 鍔犺浇鐘舵��
const loading = ref(false);
@@ -215,456 +157,376 @@
const formRef = ref(null);
// 鏌ヨ鍙傛暟
const queryParams = reactive({
- name: ''
+ name: ''
});
// 鍒嗛〉鍙傛暟
const pagination = reactive({
- current: 1,
- size: 10,
- total: 0
+ current: 1,
+ size: 10,
+ total: 0
});
// 澶囦欢棰嗙敤璁板綍
const usageLoading = ref(false);
const usageQuery = reactive({
- sparePartsName: "",
- sourceType: "",
+ sparePartsName: "",
+ sourceType: "",
});
const usagePagination = reactive({
- current: 1,
- size: 10,
- total: 0,
+ current: 1,
+ size: 10,
+ total: 0,
});
const usageTableData = ref([]);
const usageColumns = ref([
- { label: "鏉ユ簮", prop: "sourceText" },
- { label: "鍗曟嵁/璁板綍ID", prop: "sourceId" },
- { label: "璁惧鍚嶇О", prop: "deviceName" },
- { label: "澶囦欢鍚嶇О", prop: "sparePartsName" },
- { label: "棰嗙敤鏁伴噺", prop: "quantity" },
- { label: "鎿嶄綔浜�", prop: "operator" },
- { label: "鏃堕棿", prop: "createTime" },
+ { label: "鏉ユ簮", prop: "sourceText" },
+ { label: "鍗曟嵁/璁板綍ID", prop: "sourceId" },
+ { label: "璁惧鍚嶇О", prop: "deviceName" },
+ { label: "澶囦欢鍚嶇О", prop: "sparePartsName" },
+ { label: "棰嗙敤鏁伴噺", prop: "quantity" },
+ { label: "鎿嶄綔浜�", prop: "operator" },
+ { label: "鏃堕棿", prop: "createTime",dataType: "date"},
]);
const handleTabChange = async (name) => {
- if (name === "usage") {
- usagePagination.current = 1;
- await fetchUsageData();
- }
+ if (name === "usage") {
+ usagePagination.current = 1;
+ await fetchUsageData();
+ }
};
const columns = ref([
- {
- label: "璁惧鍚嶇О",
- prop: "deviceNameStr",
- },
- {
- label: "澶囦欢鍚嶇О",
- prop: "name",
- },
- {
- label: "澶囦欢缂栧彿",
- prop: "sparePartsNo",
- },
- {
- label: "鐘舵��",
- prop: "status",
- slot: "status",
- dataType: "slot",
- },
- {
- label: "浠锋牸",
- prop: "price",
- },
- {
- label: "鏁伴噺",
- prop: "quantity",
- },
- {
- label: "鎻忚堪",
- prop: "description",
- },
- {
- label: "鎿嶄綔",
- prop: "operation",
- width: 150,
- fixed: 'right',
- align: "center",
- dataType: "action",
- operation: [
- {
- name: "缂栬緫",
- clickFun: (row) => {
- editCategory(row)
- },
- },
- {
- name: "鍒犻櫎",
- clickFun: (row) => {
- deleteCategory(row.id)
- },
- },
- ],
- },
+ {
+ label: "璁惧鍚嶇О",
+ prop: "deviceNameStr",
+ },
+ {
+ label: "澶囦欢鍚嶇О",
+ prop: "name",
+ },
+ {
+ label: "澶囦欢缂栧彿",
+ prop: "sparePartsNo",
+ },
+ {
+ label: "鐘舵��",
+ prop: "status",
+ slot: "status",
+ dataType: "slot",
+ },
+ {
+ label: "浠锋牸",
+ prop: "price",
+ },
+ {
+ label: "鏁伴噺",
+ prop: "quantity",
+ },
+ {
+ label: "鎻忚堪",
+ prop: "description",
+ },
+ {
+ label: "鎿嶄綔",
+ prop: "operation",
+ width: 150,
+ fixed: 'right',
+ align: "center",
+ dataType: "action",
+ operation: [
+ {
+ name: "缂栬緫",
+ clickFun: (row) => {
+ editCategory(row)
+ },
+ },
+ {
+ name: "鍒犻櫎",
+ clickFun: (row) => {
+ deleteCategory(row.id)
+ },
+ },
+ ],
+ },
]);
// 琛ㄥ崟鏁版嵁
const form = reactive({
- id:'',
- name: '',
- sparePartsNo: '',
- status: '',
- description: '',
- deviceLedgerIds: [],
- price: null
+ id:'',
+ name: '',
+ sparePartsNo: '',
+ status: '',
+ description: '',
+ deviceLedgerIds: [],
+ price: null
});
// 琛ㄥ崟楠岃瘉瑙勫垯
const rules = reactive({
- name: [
- { required: true, message: '璇疯緭鍏ュ浠跺悕绉�', trigger: 'blur' }
- ],
- sparePartsNo: [
- { required: true, message: '璇疯緭鍏ュ浠剁紪鍙�', trigger: 'blur' }
- ],
- quantity:[
- { required: true, message: '璇疯緭鍏ユ暟閲�', trigger: 'blur' }
- ],
- status: [
- { required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'change' }
- ],
- deviceLedgerIds: [
- {
- required: true,
- message: '璇烽�夋嫨璁惧',
- trigger: 'change',
- validator: (rule, value, callback) => {
- if (operationType.value === 'add' && (!value || value.length === 0)) {
- callback(new Error('璇烽�夋嫨璁惧'));
- } else {
- callback();
- }
- }
- }
- ]
+ name: [
+ { required: true, message: '璇疯緭鍏ュ浠跺悕绉�', trigger: 'blur' }
+ ],
+ sparePartsNo: [
+ { required: true, message: '璇疯緭鍏ュ浠剁紪鍙�', trigger: 'blur' }
+ ],
+ quantity:[
+ { required: true, message: '璇疯緭鍏ユ暟閲�', trigger: 'blur' }
+ ],
+ status: [
+ { required: true, message: '璇烽�夋嫨鐘舵��', trigger: 'change' }
+ ],
+ deviceLedgerIds: [
+ {
+ required: true,
+ message: '璇烽�夋嫨璁惧',
+ trigger: 'change',
+ validator: (rule, value, callback) => {
+ if (operationType.value === 'add' && (!value || value.length === 0)) {
+ callback(new Error('璇烽�夋嫨璁惧'));
+ } else {
+ callback();
+ }
+ }
+ }
+ ]
});
// 鑾峰彇缂╄繘閲�
const getIndentation = (row) => {
- // 杩欓噷绠�鍗曡繑鍥� 20锛屽彲鏍规嵁瀹為檯闇�姹傚疄鐜板眰绾х缉杩涢�昏緫
- return 20;
+ // 杩欓噷绠�鍗曡繑鍥� 20锛屽彲鏍规嵁瀹為檯闇�姹傚疄鐜板眰绾х缉杩涢�昏緫
+ return 20;
};
// 瀹氫箟 buildTree 鍑芥暟
const buildTree = (flatData) => {
- const map = {};
- const result = [];
- if(flatData){
- return result;
- }
- flatData.forEach(item => {
- map[item.id] = { ...item, children: [] };
- });
- flatData.forEach(item => {
- if (item.parentId === null || !map[item.parentId]) {
- result.push(map[item.id]);
- } else {
- map[item.parentId].children.push(map[item.id]);
- }
- });
- return result;
+ const map = {};
+ const result = [];
+ if(flatData){
+ return result;
+ }
+ flatData.forEach(item => {
+ map[item.id] = { ...item, children: [] };
+ });
+ flatData.forEach(item => {
+ if (item.parentId === null || !map[item.parentId]) {
+ result.push(map[item.id]);
+ } else {
+ map[item.parentId].children.push(map[item.id]);
+ }
+ });
+ return result;
};
// 鑾峰彇鍒楄〃鏁版嵁
const fetchListData = async () => {
- loading.value = true;
- try {
- const params = {
- current: pagination.current,
- size: pagination.size
- };
- if (queryParams.name) {
- params.name = queryParams.name;
- }
- const res = await getSparePartsList(params);
- if (res.code === 200) {
- renderTableData.value = res.data.records || [];
- categories.value = res.data.records || [];
- pagination.total = res.data.total || 0;
- }
- } catch (error) {
+ loading.value = true;
+ try {
+ const params = {
+ current: pagination.current,
+ size: pagination.size
+ };
+ if (queryParams.name) {
+ params.name = queryParams.name;
+ }
+ const res = await getSparePartsList(params);
+ if (res.code === 200) {
+ renderTableData.value = res.data.records || [];
+ categories.value = res.data.records || [];
+ pagination.total = res.data.total || 0;
+ }
+ } catch (error) {
loading.value = false;
- } finally {
- loading.value = false;
- }
+ } finally {
+ loading.value = false;
+ }
}
const fetchUsageData = async () => {
- usageLoading.value = true;
- try {
- const res = await getSparePartsUsagePage({
- current: usagePagination.current,
- size: usagePagination.size,
- sparePartsName: usageQuery.sparePartsName || undefined,
- sourceType: usageQuery.sourceType || undefined,
- });
- if (res?.code === 200) {
- const records = res?.data?.records || [];
- usagePagination.total = res?.data?.total || 0;
- usageTableData.value = records.map((r, idx) => ({
- rowKey: r.id ?? `${usagePagination.current}-${idx}`,
- ...r,
- sourceText: r.sourceText === "" ? "-" : r.sourceText,
- }));
- } else {
- usagePagination.total = 0;
- usageTableData.value = [];
- }
- } finally {
- usageLoading.value = false;
- }
+ usageLoading.value = true;
+ try {
+ const res = await getSparePartsUsagePage({
+ current: usagePagination.current,
+ size: usagePagination.size,
+ sparePartsName: usageQuery.sparePartsName || undefined,
+ sourceType: usageQuery.sourceType || undefined,
+ });
+ if (res?.code === 200) {
+ const records = res?.data?.records || [];
+ usagePagination.total = res?.data?.total || 0;
+ usageTableData.value = records.map((r, idx) => ({
+ rowKey: r.id ?? `${usagePagination.current}-${idx}`,
+ ...r,
+ sourceText: r.sourceText === "" ? "-" : r.sourceText,
+ }));
+ } else {
+ usagePagination.total = 0;
+ usageTableData.value = [];
+ }
+ } finally {
+ usageLoading.value = false;
+ }
};
const handleUsageQuery = () => {
- usagePagination.current = 1;
- fetchUsageData();
+ usagePagination.current = 1;
+ fetchUsageData();
};
const resetUsageQuery = () => {
- usageQuery.sparePartsName = "";
- usageQuery.sourceType = "";
- usagePagination.current = 1;
- fetchUsageData();
+ usageQuery.sparePartsName = "";
+ usageQuery.sourceType = "";
+ usagePagination.current = 1;
+ fetchUsageData();
};
const handleUsagePageChange = (obj) => {
- usagePagination.current = obj.page;
- usagePagination.size = obj.limit;
- fetchUsageData();
+ usagePagination.current = obj.page;
+ usagePagination.size = obj.limit;
+ fetchUsageData();
};
// 鏌ヨ
const handleQuery = () => {
- pagination.current = 1;
- fetchListData();
+ pagination.current = 1;
+ fetchListData();
}
// 閲嶇疆鏌ヨ
const resetQuery = () => {
- queryParams.name = '';
- pagination.current = 1;
- fetchListData();
+ queryParams.name = '';
+ pagination.current = 1;
+ pagination.size = 10;
+ fetchListData();
}
-// 鍒嗛〉鍙樺寲
+// 鍒嗛〉澶у皬鏀瑰彉
const handleSizeChange = ({ page, limit }) => {
- pagination.current = page;
- pagination.size = limit;
- fetchListData();
+ pagination.current = page;
+ pagination.size = limit;
+ fetchListData();
+}
+
+// 褰撳墠椤垫敼鍙�
+const handleCurrentChange = (current) => {
+ pagination.current = current;
+ fetchListData();
}
// 鍔犺浇璁惧鍒楄〃锛堝湪鎵撳紑寮规鏃惰皟鐢級
const loadDeviceName = async () => {
- try {
- const { data } = await getDeviceLedger();
- deviceOptions.value = data || [];
- } catch (error) {
- ElMessage.error('鑾峰彇璁惧鍒楄〃澶辫触');
- }
+ try {
+ const { data } = await getDeviceLedger();
+ deviceOptions.value = data || [];
+ } catch (error) {
+ ElMessage.error('鑾峰彇璁惧鍒楄〃澶辫触');
+ }
};
// 鏂板鍒嗙被
const addCategory = async () => {
- await loadDeviceName();
- form.id = '';
- form.name = '';
- form.sparePartsNo = '';
- form.status = '';
- form.description = '';
- form.deviceLedgerIds = [];
- form.quantity = undefined;
- form.price = null;
- operationType.value = 'add'
- dialogVisible.value = true;
+ await loadDeviceName();
+ form.id = '';
+ form.name = '';
+ form.sparePartsNo = '';
+ form.status = '';
+ form.description = '';
+ form.deviceLedgerIds = [];
+ form.quantity = undefined;
+ form.price = null;
+ operationType.value = 'add'
+ dialogVisible.value = true;
};
// 缂栬緫鍒嗙被
const editCategory = async (row) => {
- await loadDeviceName();
- Object.assign(form, row);
- // 濡傛灉鍚庣杩斿洖鐨勬槸 deviceIds 瀛楃涓诧紝闇�瑕佽浆鎹负鏁扮粍
- if (row.deviceIds && typeof row.deviceIds === 'string') {
- // 纭繚ID绫诲瀷涓庤澶囬�夐」涓殑ID绫诲瀷涓�鑷�
- const deviceIdsArray = row.deviceIds.split(',').map(id => id.trim()).filter(id => id);
- // 濡傛灉璁惧閫夐」涓殑ID鏄暟瀛楃被鍨嬶紝鍒欒浆鎹负鏁板瓧
- if (deviceOptions.value.length > 0 && typeof deviceOptions.value[0].id === 'number') {
- form.deviceLedgerIds = deviceIdsArray.map(id => Number(id)).filter(id => !isNaN(id));
- } else {
- form.deviceLedgerIds = deviceIdsArray;
- }
- } else if (row.deviceIds && Array.isArray(row.deviceIds)) {
- form.deviceLedgerIds = row.deviceIds;
- } else {
- form.deviceLedgerIds = [];
- }
- operationType.value = 'edit'
- dialogVisible.value = true;
+ await loadDeviceName();
+ Object.assign(form, row);
+ // 濡傛灉鍚庣杩斿洖鐨勬槸 deviceIds 瀛楃涓诧紝闇�瑕佽浆鎹负鏁扮粍
+ if (row.deviceIds && typeof row.deviceIds === 'string') {
+ // 纭繚ID绫诲瀷涓庤澶囬�夐」涓殑ID绫诲瀷涓�鑷�
+ const deviceIdsArray = row.deviceIds.split(',').map(id => id.trim()).filter(id => id);
+ // 濡傛灉璁惧閫夐」涓殑ID鏄暟瀛楃被鍨嬶紝鍒欒浆鎹负鏁板瓧
+ if (deviceOptions.value.length > 0 && typeof deviceOptions.value[0].id === 'number') {
+ form.deviceLedgerIds = deviceIdsArray.map(id => Number(id)).filter(id => !isNaN(id));
+ } else {
+ form.deviceLedgerIds = deviceIdsArray;
+ }
+ } else if (row.deviceIds && Array.isArray(row.deviceIds)) {
+ form.deviceLedgerIds = row.deviceIds;
+ } else {
+ form.deviceLedgerIds = [];
+ }
+ operationType.value = 'edit'
+ dialogVisible.value = true;
};
// 鍒犻櫎鍒嗙被
const deleteCategory = async (id) => {
- try {
- await ElMessageBox.confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ュ垎绫伙紝鏄惁缁х画?', '鎻愮ず', {
- confirmButtonText: '纭畾',
- cancelButtonText: '鍙栨秷',
- type: 'warning'
- });
- loading.value = true;
- const res = await delSparePart(id);
- if (res.code === 200) {
- ElMessage.success('鍒犻櫎鎴愬姛');
- fetchListData();
- } else {
- ElMessage.error(res.message || '鍒犻櫎澶辫触');
- }
- } catch (error) {
- if (error !== 'cancel') {
- ElMessage.error('鍒犻櫎澶辫触');
- }
- } finally {
- loading.value = false;
- }
+ try {
+ await ElMessageBox.confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ュ垎绫伙紝鏄惁缁х画?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ });
+ loading.value = true;
+ const res = await delSparePart(id);
+ if (res.code === 200) {
+ ElMessage.success('鍒犻櫎鎴愬姛');
+ fetchListData();
+ } else {
+ ElMessage.error(res.message || '鍒犻櫎澶辫触');
+ }
+ } catch (error) {
+ if (error !== 'cancel') {
+ ElMessage.error('鍒犻櫎澶辫触');
+ }
+ } finally {
+ loading.value = false;
+ }
};
// 鎻愪氦琛ㄥ崟
const submitForm = async () => {
- if (!formRef.value) return;
- try {
- await formRef.value.validate();
- formLoading.value = true;
-
- // 鏋勫缓鎻愪氦鏁版嵁
- const submitData = {
- ...form,
- deviceIds: form.deviceLedgerIds && form.deviceLedgerIds.length > 0
- ? form.deviceLedgerIds.join(',')
- : ''
- };
-
- // 鍒犻櫎涓嶉渶瑕佺殑瀛楁
- delete submitData.deviceLedgerIds;
-
- if (operationType.value === 'edit') {
- let res = await editSparePart(submitData);
- if (res.code === 200) {
- ElMessage.success('缂栬緫鎴愬姛');
- dialogVisible.value = false;
- fetchListData();
- }
- } else {
- let res = await addSparePart(submitData);
- if (res.code === 200) {
- ElMessage.success('鏂板鎴愬姛');
- dialogVisible.value = false;
- fetchListData();
- }
- }
- } catch (error) {
- ElMessage.error('璇峰~鍐欏畬鏁磋〃鍗曚俊鎭�');
- } finally {
- formLoading.value = false;
- }
-};
-
-// 鐩存帴鍑哄簱
-const requisitionDialogVisible = ref(false);
-const requisitionLoading = ref(false);
-const requisitionFormRef = ref(null);
-const requisitionDeviceOptions = ref([]);
-const requisitionSparePartsOptions = ref([]);
-const selectedSparePartMaxQty = ref(1);
-const requisitionForm = reactive({
- deviceLedgerId: null,
- sparePartsId: null,
- quantity: 1,
- remark: '',
-});
-const requisitionRules = {
- sparePartsId: [{ required: true, message: '璇烽�夋嫨澶囦欢', trigger: 'change' }],
- quantity: [{ required: true, message: '璇疯緭鍏ラ鐢ㄦ暟閲�', trigger: 'blur' }],
-};
-
-const loadRequisitionOptions = async () => {
- try {
- const [deviceRes, spareRes] = await Promise.all([
- getDeviceLedger(),
- getSparePartsList({ current: 1, size: 9999 }),
- ]);
- requisitionDeviceOptions.value = deviceRes.data || [];
- requisitionSparePartsOptions.value = spareRes.data?.records || [];
- } catch (e) {
- ElMessage.error('鍔犺浇閫夐」澶辫触');
- }
-};
-
-const openRequisitionDialog = async () => {
- requisitionForm.deviceLedgerId = null;
- requisitionForm.sparePartsId = null;
- requisitionForm.quantity = 1;
- requisitionForm.remark = '';
- selectedSparePartMaxQty.value = 1;
- await loadRequisitionOptions();
- requisitionDialogVisible.value = true;
-};
-
-const onRequisitionSparePartChange = (val) => {
- const selected = requisitionSparePartsOptions.value.find(item => item.id === val);
- selectedSparePartMaxQty.value = selected ? selected.quantity : 1;
- if (requisitionForm.quantity > selectedSparePartMaxQty.value) {
- requisitionForm.quantity = selectedSparePartMaxQty.value;
- }
-};
-
-const submitRequisition = async () => {
- if (!requisitionFormRef.value) return;
- try {
- await requisitionFormRef.value.validate();
- } catch {
- return;
- }
- if (requisitionForm.quantity <= 0) {
- ElMessage.warning('棰嗙敤鏁伴噺蹇呴』澶т簬0');
- return;
- }
- const selected = requisitionSparePartsOptions.value.find(item => item.id === requisitionForm.sparePartsId);
- if (selected && requisitionForm.quantity > selected.quantity) {
- ElMessage.warning(`搴撳瓨涓嶈冻锛屽綋鍓嶅簱瀛樹负 ${selected.quantity}`);
- return;
- }
- requisitionLoading.value = true;
- try {
- const res = await outboundSpareParts({
- deviceLedgerId: requisitionForm.deviceLedgerId || undefined,
- sparePartsId: requisitionForm.sparePartsId,
- quantity: requisitionForm.quantity,
- remark: requisitionForm.remark || undefined,
- });
- if (res.code === 200) {
- ElMessage.success('棰嗙敤鎴愬姛');
- requisitionDialogVisible.value = false;
- fetchUsageData();
- } else {
- ElMessage.error(res.msg || '棰嗙敤澶辫触');
- }
- } catch {
- ElMessage.error('棰嗙敤澶辫触');
- } finally {
- requisitionLoading.value = false;
- }
+ if (!formRef.value) return;
+ try {
+ await formRef.value.validate();
+ formLoading.value = true;
+
+ // 鏋勫缓鎻愪氦鏁版嵁
+ const submitData = {
+ ...form,
+ deviceIds: form.deviceLedgerIds && form.deviceLedgerIds.length > 0
+ ? form.deviceLedgerIds.join(',')
+ : ''
+ };
+
+ // 鍒犻櫎涓嶉渶瑕佺殑瀛楁
+ delete submitData.deviceLedgerIds;
+
+ if (operationType.value === 'edit') {
+ let res = await editSparePart(submitData);
+ if (res.code === 200) {
+ ElMessage.success('缂栬緫鎴愬姛');
+ dialogVisible.value = false;
+ fetchListData();
+ }
+ } else {
+ let res = await addSparePart(submitData);
+ if (res.code === 200) {
+ ElMessage.success('鏂板鎴愬姛');
+ dialogVisible.value = false;
+ fetchListData();
+ }
+ }
+ } catch (error) {
+ ElMessage.error('璇峰~鍐欏畬鏁磋〃鍗曚俊鎭�');
+ } finally {
+ formLoading.value = false;
+ }
};
// 缁勪欢鎸傝浇鏃惰幏鍙栧垪琛ㄦ暟鎹�
onMounted(() => {
- fetchListData();
+ fetchListData();
});
</script>
<style scoped>
.spare-part-category {
- padding: 20px;
+ padding: 20px;
}
.search_form {
display: flex;
@@ -672,38 +534,38 @@
justify-content: space-between;
}
.table_list {
- margin-top: unset;
+ margin-top: unset;
}
.pagination-container {
- margin-top: 20px;
- display: flex;
- justify-content: flex-end;
+ margin-top: 20px;
+ display: flex;
+ justify-content: flex-end;
}
.el-table__header-wrapper th {
- background-color: #f5f7fa;
- font-weight: 600;
+ background-color: #f5f7fa;
+ font-weight: 600;
}
.el-table__row:hover > td {
- background-color: #fafafa;
+ background-color: #fafafa;
}
/* 鎸夐挳缁勬牱寮� */
.actions > div {
- display: flex;
- gap: 10px;
+ display: flex;
+ gap: 10px;
}
/* 纭繚琛ㄦ牸涓殑鎿嶄綔鎸夐挳涓嶄細琚埅鏂� */
.el-table-column--fixed-right .el-button {
- margin: 0 2px;
+ margin: 0 2px;
}
/* 鏍戝舰鑺傜偣鍐呭鏍峰紡 */
.nested-tree .el-tree-node__expand-icon {
- font-size: 12px;
- margin-right: 4px;
+ font-size: 12px;
+ margin-right: 4px;
}
</style>
\ No newline at end of file
diff --git a/src/views/equipmentManagement/upkeep/index.vue b/src/views/equipmentManagement/upkeep/index.vue
index 9b92281..d2d9355 100644
--- a/src/views/equipmentManagement/upkeep/index.vue
+++ b/src/views/equipmentManagement/upkeep/index.vue
@@ -1,726 +1,653 @@
<template>
- <div class="app-container">
- <el-tabs v-model="activeTab"
- @tab-change="handleTabChange">
- <!-- 淇濆吇浠诲姟tab -->
- <el-tab-pane label="淇濆吇浠诲姟"
- name="scheduled">
- <div class="search_form">
- <el-form :model="scheduledFilters"
- :inline="true">
- <el-form-item label="浠诲姟鍚嶇О">
- <el-input v-model="scheduledFilters.taskName"
- style="width: 240px"
- placeholder="璇疯緭鍏ヤ换鍔″悕绉�"
- clearable
- :prefix-icon="Search"
- @change="getScheduledTableData" />
- </el-form-item>
- <el-form-item label="浠诲姟鐘舵��">
- <el-select v-model="scheduledFilters.status"
- placeholder="璇烽�夋嫨浠诲姟鐘舵��"
- clearable
- style="width: 200px">
- <el-option label="鍚敤"
- value="1" />
- <el-option label="鍋滅敤"
- value="0" />
- </el-select>
- </el-form-item>
- <el-form-item>
- <el-button type="primary"
- @click="getScheduledTableData">鎼滅储</el-button>
- <el-button @click="resetScheduledFilters">閲嶇疆</el-button>
- </el-form-item>
- </el-form>
- </div>
- <div class="table_list">
- <div class="actions">
- <el-text class="mx-1"
- size="large">淇濆吇浠诲姟</el-text>
- <div>
- <el-button type="primary"
- icon="Plus"
- @click="addScheduledTask">
- 鏂板浠诲姟
- </el-button>
- <el-button type="danger"
- icon="Delete"
- :disabled="scheduledMultipleList.length <= 0"
- @click="delScheduledTaskByIds(scheduledMultipleList.map((item) => item.id))">
- 鎵归噺鍒犻櫎
- </el-button>
- </div>
- </div>
- <PIMTable rowKey="id"
- isSelection
- :column="scheduledColumns"
- :tableData="scheduledDataList"
- :page="{
+ <div class="app-container">
+ <el-tabs v-model="activeTab"
+ @tab-change="handleTabChange">
+ <!-- 淇濆吇浠诲姟tab -->
+ <el-tab-pane label="淇濆吇浠诲姟"
+ name="scheduled">
+ <div class="search_form">
+ <el-form :model="scheduledFilters"
+ :inline="true">
+ <el-form-item label="浠诲姟鍚嶇О">
+ <el-input v-model="scheduledFilters.taskName"
+ style="width: 240px"
+ placeholder="璇疯緭鍏ヤ换鍔″悕绉�"
+ clearable
+ :prefix-icon="Search"
+ @change="getScheduledTableData" />
+ </el-form-item>
+ <el-form-item label="浠诲姟鐘舵��">
+ <el-select v-model="scheduledFilters.status"
+ placeholder="璇烽�夋嫨浠诲姟鐘舵��"
+ clearable
+ style="width: 200px">
+ <el-option label="鍚敤"
+ value="1" />
+ <el-option label="鍋滅敤"
+ value="0" />
+ </el-select>
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary"
+ @click="getScheduledTableData">鎼滅储</el-button>
+ <el-button @click="resetScheduledFilters">閲嶇疆</el-button>
+ </el-form-item>
+ </el-form>
+ </div>
+ <div class="table_list">
+ <div class="actions">
+ <el-text class="mx-1"
+ size="large">淇濆吇浠诲姟</el-text>
+ <div>
+ <el-button type="primary"
+ icon="Plus"
+ @click="addScheduledTask">
+ 鏂板浠诲姟
+ </el-button>
+ <el-button type="danger"
+ icon="Delete"
+ :disabled="scheduledMultipleList.length <= 0"
+ @click="delScheduledTaskByIds(scheduledMultipleList.map((item) => item.id))">
+ 鎵归噺鍒犻櫎
+ </el-button>
+ </div>
+ </div>
+ <PIMTable rowKey="id"
+ isSelection
+ :column="scheduledColumns"
+ :tableData="scheduledDataList"
+ :page="{
current: scheduledPagination.currentPage,
size: scheduledPagination.pageSize,
total: scheduledPagination.total,
}"
- @selection-change="handleScheduledSelectionChange"
- @pagination="changeScheduledPage">
- <template #statusRef="{ row }">
- <el-tag v-if="row.status === 1"
- type="success">鍚敤</el-tag>
- <el-tag v-if="row.status === 0"
- type="danger">鍋滅敤</el-tag>
- </template>
- <template #operation="{ row }">
- <el-button type="primary"
- link
- @click="editScheduledTask(row)">
- 缂栬緫
- </el-button>
- <el-button type="danger"
- link
- @click="delScheduledTaskByIds(row.id)">
- 鍒犻櫎
- </el-button>
- </template>
- </PIMTable>
- </div>
- </el-tab-pane>
- <!-- 淇濆吇璁板綍tab锛堝師璁惧淇濆吇椤甸潰锛� -->
- <el-tab-pane label="淇濆吇璁板綍"
- name="record">
- <div class="search_form">
- <el-form :model="filters"
- :inline="true">
- <el-form-item label="璁惧鍚嶇О">
- <el-input v-model="filters.deviceName"
- style="width: 240px"
- placeholder="璇疯緭鍏ヨ澶囧悕绉�"
- clearable
- :prefix-icon="Search"
- @change="getTableData" />
- </el-form-item>
- <el-form-item label="璁″垝淇濆吇鏃ユ湡">
- <el-date-picker v-model="filters.maintenancePlanTime"
- type="date"
- placeholder="璇烽�夋嫨璁″垝淇濆吇鏃ユ湡"
- size="default"
- @change="(date) => handleDateChange(date,2)" />
- </el-form-item>
- <el-form-item label="瀹為檯淇濆吇鏃ユ湡">
- <el-date-picker v-model="filters.maintenanceActuallyTime"
- type="date"
- placeholder="璇烽�夋嫨瀹為檯淇濆吇鏃ユ湡"
- size="default"
- @change="(date) => handleDateChange(date,1)" />
- </el-form-item>
- <el-form-item label="瀹為檯淇濆吇浜�">
- <el-input v-model="filters.maintenanceActuallyName"
- style="width: 240px"
- placeholder="璇疯緭鍏ュ疄闄呬繚鍏讳汉"
- clearable
- :prefix-icon="Search"
- @change="getTableData" />
- </el-form-item>
- <el-form-item>
- <el-button type="primary"
- @click="getTableData">鎼滅储</el-button>
- <el-button @click="resetFilters">閲嶇疆</el-button>
- </el-form-item>
- </el-form>
- </div>
- <div class="table_list">
- <div class="actions">
- <el-text class="mx-1"
- size="large">淇濆吇璁板綍</el-text>
- <div>
- <el-button type="success"
- icon="Van"
- @click="addPlan">
- 鏂板璁″垝
- </el-button>
- <el-button @click="handleOut">
- 瀵煎嚭
- </el-button>
- <el-button type="danger"
- icon="Delete"
- :disabled="multipleList.length <= 0"
- @click="delRepairByIds(multipleList.map((item) => item.id))">
- 鎵归噺鍒犻櫎
- </el-button>
- </div>
- </div>
- <el-table
- :data="groupedDataList"
- border
- v-loading="tableLoading"
- @selection-change="handleSelectionChange"
- :expand-row-keys="expandedRowKeys"
- :row-key="(row) => row.date"
- @expand-change="onExpandChange"
- >
- <el-table-column type="selection" width="55" />
- <el-table-column type="expand">
- <template #default="props">
- <el-table :data="props.row.children" border row-key="id">
- <el-table-column label="璁惧鍚嶇О" prop="deviceName" align="center" />
- <el-table-column label="瑙勬牸鍨嬪彿" prop="deviceModel" align="center" />
- <el-table-column label="褰曞叆浜�" prop="createUserName" align="center" />
- <el-table-column label="淇濆吇椤圭洰" prop="machineryCategory" align="center">
- <template #default="{ row }">
- {{ row.machineryCategory || '--' }}
- </template>
- </el-table-column>
- <el-table-column label="瀹為檯淇濆吇浜�" prop="maintenanceActuallyName" align="center" />
- <el-table-column label="瀹為檯淇濆吇鏃ユ湡" align="center">
- <template #default="{ row }">
- {{ row.maintenanceActuallyTime ? dayjs(row.maintenanceActuallyTime).format('YYYY-MM-DD HH:mm:ss') : '-' }}
- </template>
- </el-table-column>
- <el-table-column label="淇濆吇缁撴灉" align="center">
- <template #default="{ row }">
- {{ row.maintenanceResult || '-' }}
- </template>
- </el-table-column>
- <el-table-column label="鐘舵��" align="center">
- <template #default="{ row }">
- <el-tag v-if="row.status === 2" type="danger">澶辫触</el-tag>
- <el-tag v-if="row.status === 1" type="success">瀹岀粨</el-tag>
- <el-tag v-if="row.status === 0" type="warning">寰呬繚鍏�</el-tag>
- </template>
- </el-table-column>
- <el-table-column label="鎿嶄綔" align="center" width="300">
- <template #default="{ row }">
- <el-button type="primary" link :disabled="row.status === 1" @click="editPlan(row.id)">缂栬緫</el-button>
- <el-button type="success" link :disabled="row.status !== 0" @click="handleSingleComplete(row.id)">淇濆吇瀹屾垚</el-button>
- <el-button type="success" link :disabled="row.status === 1" @click="addMaintain(row)">淇濆吇</el-button>
- <el-button type="danger" link :disabled="row.status === 1" @click="delRepairByIds(row.id)">鍒犻櫎</el-button>
- <el-button type="primary" link @click="openFileDialog(row)">闄勪欢</el-button>
- </template>
- </el-table-column>
- </el-table>
- </template>
- </el-table-column>
- <el-table-column label="璁″垝淇濆吇鏃ユ湡" prop="date" align="center" />
- <el-table-column label="淇濆吇璁板綍鏁�" prop="count" align="center" />
- <el-table-column label="寰呬繚鍏绘暟" align="center" width="120">
- <template #default="{ row }">
- {{ row.children.filter(c => c.status === 0).length }}
- </template>
- </el-table-column>
- <el-table-column label="鎿嶄綔" align="center" width="200">
- <template #default="{ row }">
- <el-button
- type="primary"
- size="small"
- :disabled="!row.children.some(c => c.status === 0)"
- @click="handleBatchComplete(row.date)"
- >
- 涓�閿繚鍏诲畬鎴�
- </el-button>
- </template>
- </el-table-column>
- </el-table>
- <Pagination
- v-show="pagination.total > 0"
- :total="pagination.total"
- layout="total, sizes, prev, pager, next, jumper"
- :page="pagination.currentPage"
- :limit="pagination.pageSize"
- @pagination="changePage"
- />
- </div>
- </el-tab-pane>
- </el-tabs>
- <PlanModal ref="planModalRef"
- @ok="getTableData" />
- <MaintenanceModal ref="maintainModalRef"
- @ok="getTableData" />
- <FormDia ref="formDiaRef"
- @closeDia="getScheduledTableData" />
- <FileList v-if="fileDialogVisible"
- v-model:visible="fileDialogVisible"
- :record-type="'device_maintenance'"
- :record-id="currentMaintenanceTaskId" />
-
- </div>
+ @selection-change="handleScheduledSelectionChange"
+ @pagination="changeScheduledPage">
+ <template #statusRef="{ row }">
+ <el-tag v-if="row.status === 1"
+ type="success">鍚敤</el-tag>
+ <el-tag v-if="row.status === 0"
+ type="danger">鍋滅敤</el-tag>
+ </template>
+ <template #operation="{ row }">
+ <el-button type="primary"
+ link
+ @click="editScheduledTask(row)">
+ 缂栬緫
+ </el-button>
+ <el-button type="danger"
+ link
+ @click="delScheduledTaskByIds(row.id)">
+ 鍒犻櫎
+ </el-button>
+ </template>
+ </PIMTable>
+ </div>
+ </el-tab-pane>
+ <!-- 淇濆吇璁板綍tab锛堝師璁惧淇濆吇椤甸潰锛� -->
+ <el-tab-pane label="淇濆吇璁板綍"
+ name="record">
+ <div class="search_form">
+ <el-form :model="filters"
+ :inline="true">
+ <el-form-item label="璁惧鍚嶇О">
+ <el-input v-model="filters.deviceName"
+ style="width: 240px"
+ placeholder="璇疯緭鍏ヨ澶囧悕绉�"
+ clearable
+ :prefix-icon="Search"
+ @change="getTableData" />
+ </el-form-item>
+ <el-form-item label="璁″垝淇濆吇鏃ユ湡">
+ <el-date-picker v-model="filters.maintenancePlanTime"
+ type="date"
+ placeholder="璇烽�夋嫨璁″垝淇濆吇鏃ユ湡"
+ size="default"
+ @change="(date) => handleDateChange(date,2)" />
+ </el-form-item>
+ <el-form-item label="瀹為檯淇濆吇鏃ユ湡">
+ <el-date-picker v-model="filters.maintenanceActuallyTime"
+ type="date"
+ placeholder="璇烽�夋嫨瀹為檯淇濆吇鏃ユ湡"
+ size="default"
+ @change="(date) => handleDateChange(date,1)" />
+ </el-form-item>
+ <el-form-item label="瀹為檯淇濆吇浜�">
+ <el-input v-model="filters.maintenanceActuallyName"
+ style="width: 240px"
+ placeholder="璇疯緭鍏ュ疄闄呬繚鍏讳汉"
+ clearable
+ :prefix-icon="Search"
+ @change="getTableData" />
+ </el-form-item>
+ <el-form-item>
+ <el-button type="primary"
+ @click="getTableData">鎼滅储</el-button>
+ <el-button @click="resetFilters">閲嶇疆</el-button>
+ </el-form-item>
+ </el-form>
+ </div>
+ <div class="table_list">
+ <div class="actions">
+ <el-text class="mx-1"
+ size="large">淇濆吇璁板綍</el-text>
+ <div>
+ <el-button type="success"
+ icon="Van"
+ @click="addPlan">
+ 鏂板璁″垝
+ </el-button>
+ <el-button @click="handleOut">
+ 瀵煎嚭
+ </el-button>
+ <el-button type="danger"
+ icon="Delete"
+ :disabled="multipleList.length <= 0 || hasFinishedStatus"
+ @click="delRepairByIds(multipleList.map((item) => item.id))">
+ 鎵归噺鍒犻櫎
+ </el-button>
+ </div>
+ </div>
+ <PIMTable rowKey="id"
+ isSelection
+ :column="columns"
+ :tableData="dataList"
+ :page="{
+ current: pagination.currentPage,
+ size: pagination.pageSize,
+ total: pagination.total,
+ }"
+ @selection-change="handleSelectionChange"
+ @pagination="changePage">
+ <template #maintenanceResultRef="{ row }">
+ <div>{{ row.maintenanceResult || '-' }}</div>
+ </template>
+ <template #statusRef="{ row }">
+ <el-tag v-if="row.status === 2"
+ type="danger">澶辫触</el-tag>
+ <el-tag v-if="row.status === 1"
+ type="success">瀹岀粨</el-tag>
+ <el-tag v-if="row.status === 0"
+ type="warning">寰呬繚鍏�</el-tag>
+ </template>
+ <template #operation="{ row }">
+ <!-- 杩欎釜鍔熻兘璺熸柊澧炰繚鍏诲姛鑳戒竴妯′竴鏍凤紝鏈夊暐鎰忎箟锛� -->
+ <!-- <el-button
+ type="primary"
+ text
+ @click="addMaintain(row)"
+ >
+ 鏂板淇濆吇
+ </el-button> -->
+ <el-button type="primary"
+ link
+ :disabled="row.status === 1"
+ @click="editPlan(row.id)">
+ 缂栬緫
+ </el-button>
+ <el-button type="success"
+ link
+ :disabled="row.status === 1"
+ @click="addMaintain(row)">
+ 淇濆吇
+ </el-button>
+ <el-button type="danger"
+ link
+ :disabled="row.status === 1"
+ @click="delRepairByIds(row.id)">
+ 鍒犻櫎
+ </el-button>
+ <el-button type="primary"
+ link
+ @click="openFileDialog(row)">
+ 闄勪欢
+ </el-button>
+ </template>
+ </PIMTable>
+ </div>
+ </el-tab-pane>
+ </el-tabs>
+ <PlanModal ref="planModalRef"
+ @ok="getTableData" />
+ <MaintenanceModal ref="maintainModalRef"
+ @ok="getTableData" />
+ <FormDia ref="formDiaRef"
+ @closeDia="getScheduledTableData" />
+ <FileList v-if="fileDialogVisible"
+ v-model:visible="fileDialogVisible"
+ :record-type="'device_maintenance'"
+ :record-id="currentMaintenanceTaskId" />
+ </div>
</template>
<script setup>
-import {
- ref,
- onMounted,
- reactive,
- getCurrentInstance,
- nextTick,
- computed,
- defineAsyncComponent,
-} from "vue";
-import { Search } from "@element-plus/icons-vue";
-import { ElMessage, ElMessageBox } from "element-plus";
-import PlanModal from "./Form/PlanModal.vue";
-import MaintenanceModal from "./Form/MaintenanceModal.vue";
-import FormDia from "./Form/formDia.vue";
-import {
- getUpkeepPage,
- delUpkeep,
- deviceMaintenanceTaskList,
- deviceMaintenanceTaskDel,
- batchCompleteMaintenance,
- completeMaintenance,
-} from "@/api/equipmentManagement/upkeep";
-import dayjs from "dayjs";
-import Pagination from "@/components/PIMTable/Pagination.vue";
+ import {
+ ref,
+ onMounted,
+ reactive,
+ getCurrentInstance,
+ nextTick,
+ computed,
+ defineAsyncComponent,
+ } from "vue";
+ import { Search } from "@element-plus/icons-vue";
+ import { ElMessage, ElMessageBox } from "element-plus";
+ import PlanModal from "./Form/PlanModal.vue";
+ import MaintenanceModal from "./Form/MaintenanceModal.vue";
+ import FormDia from "./Form/formDia.vue";
+ import {
+ getUpkeepPage,
+ delUpkeep,
+ deviceMaintenanceTaskList,
+ deviceMaintenanceTaskDel,
+ } from "@/api/equipmentManagement/upkeep";
+ import dayjs from "dayjs";
-const { proxy } = getCurrentInstance();
-const FileList = defineAsyncComponent(() =>
- import("@/components/Dialog/FileList.vue")
-);
+ const { proxy } = getCurrentInstance();
+ const FileList = defineAsyncComponent(() =>
+ import("@/components/Dialog/FileList.vue")
+ );
-// Tab鐩稿叧
-const activeTab = ref("scheduled");
+ // Tab鐩稿叧
+ const activeTab = ref("scheduled");
-// 璁″垝寮圭獥鎺у埗鍣�
-const planModalRef = ref();
-// 淇濆吇寮圭獥鎺у埗鍣�
-const maintainModalRef = ref();
-// 瀹氭椂浠诲姟寮圭獥鎺у埗鍣�
-const formDiaRef = ref();
-// 闄勪欢寮圭獥
-const fileListDialogRef = ref(null);
-const fileDialogVisible = ref(false);
-const currentMaintenanceTaskId = ref(null);
+ // 璁″垝寮圭獥鎺у埗鍣�
+ const planModalRef = ref();
+ // 淇濆吇寮圭獥鎺у埗鍣�
+ const maintainModalRef = ref();
+ // 瀹氭椂浠诲姟寮圭獥鎺у埗鍣�
+ const formDiaRef = ref();
+ // 闄勪欢寮圭獥
+ const fileListDialogRef = ref(null);
+ const fileDialogVisible = ref(false);
+ const currentMaintenanceTaskId = ref(null);
-// 淇濆吇璁板綍tab锛堝師璁惧淇濆吇椤甸潰锛夌浉鍏冲彉閲�
-const filters = reactive({
- deviceName: "",
- maintenancePlanTime: "",
- maintenanceActuallyTime: "",
- maintenanceActuallyName: "",
-});
+ // 淇濆吇璁板綍tab锛堝師璁惧淇濆吇椤甸潰锛夌浉鍏冲彉閲�
+ const filters = reactive({
+ deviceName: "",
+ maintenancePlanTime: "",
+ maintenanceActuallyTime: "",
+ maintenanceActuallyName: "",
+ });
-const dataList = ref([]);
-const pagination = ref({
- currentPage: 1,
- pageSize: 100,
- total: 0,
-});
-const multipleList = ref([]);
-const tableLoading = ref(false);
-const expandedRowKeys = ref([]);
+ const dataList = ref([]);
+ const pagination = ref({
+ currentPage: 1,
+ pageSize: 10,
+ total: 0,
+ });
+ const multipleList = ref([]);
-const groupByDate = (list) => {
- const map = {};
- list.forEach(item => {
- const date = item.dateStr || (item.maintenancePlanTime ? dayjs(item.maintenancePlanTime).format('YYYY-MM-DD') : (item.createTime ? dayjs(item.createTime).format('YYYY-MM-DD') : '鏈煡鏃ユ湡'));
- if (!map[date]) map[date] = [];
- map[date].push(item);
- });
- return Object.entries(map).map(([date, children]) => ({ date, children, count: children.length }));
-};
+ // 淇濆吇浠诲姟tab鐩稿叧鍙橀噺
+ const scheduledFilters = reactive({
+ taskName: "",
+ status: "",
+ });
-const groupedDataList = computed(() => groupByDate(dataList.value));
+ const scheduledDataList = ref([]);
+ const scheduledPagination = reactive({
+ currentPage: 1,
+ pageSize: 10,
+ total: 0,
+ });
+ const scheduledMultipleList = ref([]);
-// 鍗曟潯淇濆吇瀹屾垚
-const handleSingleComplete = async (id) => {
- try {
- await ElMessageBox.confirm('纭灏嗚淇濆吇璁板綍鏍囪涓哄畬鎴愶紵', '鎻愮ず', { type: 'warning' });
- const res = await completeMaintenance(id);
- if (res.code === 200) {
- ElMessage.success('淇濆吇瀹屾垚');
- getTableData();
- } else {
- ElMessage.error(res.msg || '鎿嶄綔澶辫触');
- }
- } catch { /* 鍙栨秷 */ }
-};
+ // 淇濆吇浠诲姟琛ㄦ牸鍒楅厤缃�
+ const scheduledColumns = ref([
+ { prop: "taskName", label: "璁惧鍚嶇О" },
+ {
+ label: "瑙勬牸鍨嬪彿",
+ prop: "deviceModel",
+ },
+ {
+ label: "淇濆吇椤圭洰",
+ prop: "machineryCategory",
+ minWidth: 120,
+ formatData: cell => cell || "--",
+ },
+ {
+ prop: "frequencyType",
+ label: "棰戞",
+ minWidth: 150,
+ // PIMTable 浣跨敤鐨勬槸 formatData锛岃�屼笉鏄� Element-Plus 鐨� formatter
+ formatData: cell =>
+ ({
+ DAILY: "姣忔棩",
+ WEEKLY: "姣忓懆",
+ MONTHLY: "姣忔湀",
+ QUARTERLY: "瀛e害",
+ }[cell] || ""),
+ },
+ {
+ prop: "frequencyDetail",
+ label: "寮�濮嬫棩鏈熶笌鏃堕棿",
+ minWidth: 150,
+ // 鍚屾牱鏀圭敤 formatData锛孭IMTable 鍐呴儴浼氭妸鍗曞厓鏍煎�间紶杩涙潵
+ formatData: cell => {
+ if (typeof cell !== "string") return "";
+ let val = cell;
+ const replacements = {
+ MON: "鍛ㄤ竴",
+ TUE: "鍛ㄤ簩",
+ WED: "鍛ㄤ笁",
+ THU: "鍛ㄥ洓",
+ FRI: "鍛ㄤ簲",
+ SAT: "鍛ㄥ叚",
+ SUN: "鍛ㄦ棩",
+ };
+ // 浣跨敤姝e垯涓�娆℃�ф浛鎹㈡墍鏈夊尮閰嶉」
+ return val.replace(
+ /MON|TUE|WED|THU|FRI|SAT|SUN/g,
+ match => replacements[match]
+ );
+ },
+ },
+ { prop: "maintenancePerson", label: "淇濆吇浜�", minWidth: 100 },
+ { prop: "registrant", label: "鐧昏浜�", minWidth: 100 },
+ {
+ prop: "registrationDate",
+ label: "鐧昏鏃ユ湡",
+ minWidth: 100,
+ formatData: cell =>
+ // cell ? dayjs(cell).format("YYYY-MM-DD HH:mm:ss") : "-",
+ cell ? dayjs(cell).format("YYYY-MM-DD") : "-",
+ },
+ {
+ fixed: "right",
+ label: "鎿嶄綔",
+ dataType: "slot",
+ slot: "operation",
+ align: "center",
+ width: "200px",
+ },
+ ]);
-// 涓�閿繚鍏诲畬鎴�
-const handleBatchComplete = async (dateStr) => {
- try {
- await ElMessageBox.confirm(`纭灏� ${dateStr} 鐨勬墍鏈夊緟淇濆吇璁板綍鏍囪涓哄畬鎴愶紵`, '鎻愮ず', { type: 'warning' });
- const res = await batchCompleteMaintenance(dateStr);
- if (res.code === 200) {
- ElMessage.success(res.msg || '鎵归噺淇濆吇瀹屾垚鎴愬姛');
- getTableData();
- } else {
- ElMessage.error(res.msg || '鎵归噺淇濆吇瀹屾垚澶辫触');
- }
- } catch { /* 鍙栨秷 */ }
-};
+ // 淇濆吇璁板綍琛ㄦ牸鍒楅厤缃紙鍘熻澶囦繚鍏昏〃鏍煎垪锛�
+ const columns = ref([
+ {
+ label: "璁惧鍚嶇О",
+ align: "center",
+ prop: "deviceName",
+ },
+ {
+ label: "瑙勬牸鍨嬪彿",
+ align: "center",
+ prop: "deviceModel",
+ },
+ {
+ label: "璁″垝淇濆吇鏃ユ湡",
+ align: "center",
+ prop: "maintenancePlanTime",
+ formatData: cell => {
+ return cell == null ? "-" : dayjs(cell).format("YYYY-MM-DD");
+ },
+ },
+ {
+ label: "褰曞叆浜�",
+ align: "center",
+ prop: "createUserName",
+ },
+ {
+ label: "淇濆吇椤圭洰",
+ align: "center",
+ prop: "machineryCategory",
+ formatData: cell => cell || "--",
+ },
+ // {
+ // label: "褰曞叆鏃ユ湡",
+ // align: "center",
+ // prop: "createTime",
+ // formatData: (cell) => dayjs(cell).format("YYYY-MM-DD HH:mm:ss"),
+ // width: 200,
+ // },
+ {
+ label: "瀹為檯淇濆吇浜�",
+ align: "center",
+ prop: "maintenanceActuallyName",
+ },
+ {
+ label: "瀹為檯淇濆吇鏃ユ湡",
+ align: "center",
+ prop: "maintenanceActuallyTime",
+ formatData: cell =>
+ cell ? dayjs(cell).format("YYYY-MM-DD HH:mm:ss") : "-",
+ },
+ {
+ label: "淇濆吇缁撴灉",
+ align: "center",
+ prop: "maintenanceResult",
+ dataType: "slot",
+ slot: "maintenanceResultRef",
+ },
+ {
+ label: "鐘舵��",
+ align: "center",
+ prop: "status",
+ dataType: "slot",
+ slot: "statusRef",
+ },
+ {
+ fixed: "right",
+ label: "鎿嶄綔",
+ dataType: "slot",
+ slot: "operation",
+ align: "center",
+ width: "350px",
+ },
+ ]);
-const onExpandChange = (row, expandedRows) => {
- expandedRowKeys.value = expandedRows.map(r => r.date);
-};
+ // Tab鍒囨崲澶勭悊
+ const handleTabChange = tabName => {
+ if (tabName === "record") {
+ getTableData();
+ } else if (tabName === "scheduled") {
+ getScheduledTableData();
+ }
+ };
-// 淇濆吇浠诲姟tab鐩稿叧鍙橀噺
-const scheduledFilters = reactive({
- taskName: "",
- status: "",
-});
+ // 淇濆吇浠诲姟鐩稿叧鏂规硶
+ const getScheduledTableData = async () => {
+ try {
+ const params = {
+ current: scheduledPagination.currentPage,
+ size: scheduledPagination.pageSize,
+ taskName: scheduledFilters.taskName || undefined,
+ status: scheduledFilters.status || undefined,
+ };
+ const { code, data } = await deviceMaintenanceTaskList(params);
+ if (code === 200) {
+ scheduledDataList.value = data?.records || [];
+ scheduledPagination.total = data?.total || 0;
+ }
+ } catch (error) {
+ ElMessage.error("鑾峰彇瀹氭椂浠诲姟鍒楄〃澶辫触");
+ }
+ };
-const scheduledDataList = ref([]);
-const scheduledPagination = reactive({
- currentPage: 1,
- pageSize: 10,
- total: 0,
-});
-const scheduledMultipleList = ref([]);
+ const resetScheduledFilters = () => {
+ scheduledFilters.taskName = "";
+ scheduledFilters.status = "";
+ getScheduledTableData();
+ };
-// 淇濆吇浠诲姟琛ㄦ牸鍒楅厤缃�
-const scheduledColumns = ref([
- { prop: "taskName", label: "璁惧鍚嶇О" },
- {
- label: "瑙勬牸鍨嬪彿",
- prop: "deviceModel",
- },
- {
- label: "淇濆吇椤圭洰",
- prop: "machineryCategory",
- minWidth: 120,
- formatData: cell => cell || "--",
- },
- {
- prop: "frequencyType",
- label: "棰戞",
- minWidth: 150,
- // PIMTable 浣跨敤鐨勬槸 formatData锛岃�屼笉鏄� Element-Plus 鐨� formatter
- formatData: cell =>
- ({
- DAILY: "姣忔棩",
- WEEKLY: "姣忓懆",
- MONTHLY: "姣忔湀",
- QUARTERLY: "瀛e害",
- }[cell] || ""),
- },
- {
- prop: "frequencyDetail",
- label: "寮�濮嬫棩鏈熶笌鏃堕棿",
- minWidth: 150,
- // 鍚屾牱鏀圭敤 formatData锛孭IMTable 鍐呴儴浼氭妸鍗曞厓鏍煎�间紶杩涙潵
- formatData: cell => {
- if (typeof cell !== "string") return "";
- let val = cell;
- const replacements = {
- MON: "鍛ㄤ竴",
- TUE: "鍛ㄤ簩",
- WED: "鍛ㄤ笁",
- THU: "鍛ㄥ洓",
- FRI: "鍛ㄤ簲",
- SAT: "鍛ㄥ叚",
- SUN: "鍛ㄦ棩",
- };
- // 浣跨敤姝e垯涓�娆℃�ф浛鎹㈡墍鏈夊尮閰嶉」
- return val.replace(
- /MON|TUE|WED|THU|FRI|SAT|SUN/g,
- match => replacements[match]
- );
- },
- },
- { prop: "maintenancePerson", label: "淇濆吇浜�", minWidth: 100 },
- { prop: "registrant", label: "鐧昏浜�", minWidth: 100 },
- {
- prop: "registrationDate",
- label: "鐧昏鏃ユ湡",
- minWidth: 100,
- formatData: cell =>
- cell ? dayjs(cell).format("YYYY-MM-DD HH:mm:ss") : "-",
- },
- {
- fixed: "right",
- label: "鎿嶄綔",
- dataType: "slot",
- slot: "operation",
- align: "center",
- width: "200px",
- },
-]);
+ const handleScheduledSelectionChange = selection => {
+ scheduledMultipleList.value = selection;
+ };
-// 淇濆吇璁板綍琛ㄦ牸鍒楅厤缃紙鍘熻澶囦繚鍏昏〃鏍煎垪锛�
-const columns = ref([
- {
- label: "璁惧鍚嶇О",
- align: "center",
- prop: "deviceName",
- },
- {
- label: "瑙勬牸鍨嬪彿",
- align: "center",
- prop: "deviceModel",
- },
- {
- label: "璁″垝淇濆吇鏃ユ湡",
- align: "center",
- prop: "maintenancePlanTime",
- formatData: cell => {
- return cell == null ? "-" : dayjs(cell).format("YYYY-MM-DD");
- },
- },
- {
- label: "褰曞叆浜�",
- align: "center",
- prop: "createUserName",
- },
- {
- label: "淇濆吇椤圭洰",
- align: "center",
- prop: "machineryCategory",
- formatData: cell => cell || "--",
- },
- // {
- // label: "褰曞叆鏃ユ湡",
- // align: "center",
- // prop: "createTime",
- // formatData: (cell) => dayjs(cell).format("YYYY-MM-DD HH:mm:ss"),
- // width: 200,
- // },
- {
- label: "瀹為檯淇濆吇浜�",
- align: "center",
- prop: "maintenanceActuallyName",
- },
- {
- label: "瀹為檯淇濆吇鏃ユ湡",
- align: "center",
- prop: "maintenanceActuallyTime",
- formatData: cell =>
- cell ? dayjs(cell).format("YYYY-MM-DD HH:mm:ss") : "-",
- },
- {
- label: "淇濆吇缁撴灉",
- align: "center",
- prop: "maintenanceResult",
- dataType: "slot",
- slot: "maintenanceResultRef",
- },
- {
- label: "鐘舵��",
- align: "center",
- prop: "status",
- dataType: "slot",
- slot: "statusRef",
- },
- {
- fixed: "right",
- label: "鎿嶄綔",
- dataType: "slot",
- slot: "operation",
- align: "center",
- width: "350px",
- },
-]);
+ const changeScheduledPage = page => {
+ scheduledPagination.currentPage = page.page;
+ scheduledPagination.pageSize = page.limit;
+ getScheduledTableData();
+ };
-// Tab鍒囨崲澶勭悊
-const handleTabChange = tabName => {
- if (tabName === "record") {
- getTableData();
- } else if (tabName === "scheduled") {
- getScheduledTableData();
- }
-};
+ const addScheduledTask = () => {
+ nextTick(() => {
+ formDiaRef.value?.openDialog("add");
+ });
+ };
-// 淇濆吇浠诲姟鐩稿叧鏂规硶
-const getScheduledTableData = async () => {
- try {
- const params = {
- current: scheduledPagination.currentPage,
- size: scheduledPagination.pageSize,
- taskName: scheduledFilters.taskName || undefined,
- status: scheduledFilters.status || undefined,
- };
- const { code, data } = await deviceMaintenanceTaskList(params);
- if (code === 200) {
- scheduledDataList.value = data?.records || [];
- scheduledPagination.total = data?.total || 0;
- }
- } catch (error) {
- ElMessage.error("鑾峰彇瀹氭椂浠诲姟鍒楄〃澶辫触");
- }
-};
+ const editScheduledTask = row => {
+ if (row) {
+ nextTick(() => {
+ formDiaRef.value?.openDialog("edit", row);
+ });
+ }
+ };
-const resetScheduledFilters = () => {
- scheduledFilters.taskName = "";
- scheduledFilters.status = "";
- getScheduledTableData();
-};
+ const delScheduledTaskByIds = async ids => {
+ try {
+ await ElMessageBox.confirm("纭畾鍒犻櫎閫変腑鐨勫畾鏃朵换鍔″悧锛�", "鎻愮ず", {
+ type: "warning",
+ });
+ const payload = Array.isArray(ids) ? ids : [ids];
+ await deviceMaintenanceTaskDel(payload);
+ ElMessage.success("鍒犻櫎瀹氭椂浠诲姟鎴愬姛");
+ getScheduledTableData();
+ } catch (error) {
+ // 鐢ㄦ埛鍙栨秷鍒犻櫎
+ }
+ };
-const handleScheduledSelectionChange = selection => {
- scheduledMultipleList.value = selection;
-};
+ const handleScheduledOut = () => {
+ ElMessage.info("瀵煎嚭瀹氭椂浠诲姟鍔熻兘寰呭疄鐜�");
+ };
-const changeScheduledPage = page => {
- scheduledPagination.currentPage = page.page;
- scheduledPagination.pageSize = page.limit;
- getScheduledTableData();
-};
+ // 淇濆吇璁板綍鐩稿叧鏂规硶锛堝師璁惧淇濆吇椤甸潰鏂规硶锛�
+ const getTableData = async () => {
+ try {
+ const params = {
+ current: pagination.value.currentPage,
+ size: pagination.value.pageSize,
+ deviceName: filters.deviceName || undefined,
+ maintenancePlanTime: filters.maintenancePlanTime
+ ? dayjs(filters.maintenancePlanTime).format("YYYY-MM-DD")
+ : undefined,
+ maintenanceActuallyTime: filters.maintenanceActuallyTime
+ ? dayjs(filters.maintenanceActuallyTime).format("YYYY-MM-DD")
+ : undefined,
+ maintenanceActuallyName: filters.maintenanceActuallyName || undefined,
+ };
-const addScheduledTask = () => {
- nextTick(() => {
- formDiaRef.value?.openDialog("add");
- });
-};
+ const { code, data } = await getUpkeepPage(params);
+ if (code === 200) {
+ dataList.value = data.records;
+ pagination.value.total = data.total;
+ }
+ } catch (error) {
+ console.log(error);
+ }
+ };
-const editScheduledTask = row => {
- if (row) {
- nextTick(() => {
- formDiaRef.value?.openDialog("edit", row);
- });
- }
-};
+ const resetFilters = () => {
+ filters.deviceName = "";
+ filters.maintenancePlanTime = "";
+ filters.maintenanceActuallyTime = "";
+ filters.maintenanceActuallyName = "";
+ getTableData();
+ };
-const delScheduledTaskByIds = async ids => {
- try {
- await ElMessageBox.confirm("纭畾鍒犻櫎閫変腑鐨勫畾鏃朵换鍔″悧锛�", "鎻愮ず", {
- type: "warning",
- });
- const payload = Array.isArray(ids) ? ids : [ids];
- await deviceMaintenanceTaskDel(payload);
- ElMessage.success("鍒犻櫎瀹氭椂浠诲姟鎴愬姛");
- getScheduledTableData();
- } catch (error) {
- // 鐢ㄦ埛鍙栨秷鍒犻櫎
- }
-};
+ const handleSelectionChange = selection => {
+ multipleList.value = selection;
+ };
-const handleScheduledOut = () => {
- ElMessage.info("瀵煎嚭瀹氭椂浠诲姟鍔熻兘寰呭疄鐜�");
-};
+ // 妫�鏌ラ�変腑鐨勮褰曚腑鏄惁鏈夊畬缁撶姸鎬佺殑
+ const hasFinishedStatus = computed(() => {
+ return multipleList.value.some(item => item.status === 1);
+ });
-// 淇濆吇璁板綍鐩稿叧鏂规硶锛堝師璁惧淇濆吇椤甸潰鏂规硶锛�
-const getTableData = async () => {
- tableLoading.value = true;
- try {
- const params = {
- current: pagination.value.currentPage,
- size: pagination.value.pageSize,
- deviceName: filters.deviceName || undefined,
- maintenancePlanTime: filters.maintenancePlanTime
- ? dayjs(filters.maintenancePlanTime).format("YYYY-MM-DD")
- : undefined,
- maintenanceActuallyTime: filters.maintenanceActuallyTime
- ? dayjs(filters.maintenanceActuallyTime).format("YYYY-MM-DD")
- : undefined,
- maintenanceActuallyName: filters.maintenanceActuallyName || undefined,
- };
-
- const { code, data } = await getUpkeepPage(params);
- if (code === 200) {
- dataList.value = data.records;
- pagination.value.total = data.total;
- }
- } catch (error) {
- console.log(error);
- } finally {
- tableLoading.value = false;
- }
-};
+ const changePage = page => {
+ pagination.value.currentPage = page.page;
+ pagination.value.pageSize = page.limit;
+ getTableData();
+ };
-const resetFilters = () => {
- filters.deviceName = "";
- filters.maintenancePlanTime = "";
- filters.maintenanceActuallyTime = "";
- filters.maintenanceActuallyName = "";
- getTableData();
-};
+ const addMaintain = row => {
+ maintainModalRef.value.open(row.id, row);
+ };
-const handleSelectionChange = selection => {
- // 浠庨�変腑鐨勫垎缁勮涓敹闆嗘墍鏈夊瓙璁板綍ID
- const ids = [];
- selection.forEach(group => {
- if (group.children) {
- group.children.forEach(child => ids.push(child.id));
- }
- });
- multipleList.value = ids;
-};
+ const addPlan = () => {
+ planModalRef.value.openModal();
+ };
-const changePage = page => {
- pagination.value.currentPage = page.page;
- pagination.value.pageSize = page.limit;
- getTableData();
-};
+ const editPlan = id => {
+ planModalRef.value.openEdit(id);
+ };
-const addMaintain = row => {
- maintainModalRef.value.open(row.id, row);
-};
+ const delRepairByIds = async ids => {
+ // 妫�鏌ユ槸鍚︽湁瀹岀粨鐘舵�佺殑璁板綍
+ const hasFinished = multipleList.value.some(item => item.status === 1);
+ if (hasFinished) {
+ ElMessage.warning("涓嶈兘鍒犻櫎鐘舵�佷负瀹岀粨鐨勮褰�");
+ return;
+ }
-const addPlan = () => {
- planModalRef.value.openModal();
-};
+ try {
+ await ElMessageBox.confirm("纭鍒犻櫎淇濆吇鏁版嵁, 姝ゆ搷浣滀笉鍙��?", "璀﹀憡", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ });
-const editPlan = id => {
- planModalRef.value.openEdit(id);
-};
+ const { code } = await delUpkeep(ids);
+ if (code === 200) {
+ ElMessage.success("鍒犻櫎鎴愬姛");
+ getTableData();
+ }
+ } catch (error) {
+ // 鐢ㄦ埛鍙栨秷鍒犻櫎
+ }
+ };
-const delRepairByIds = async ids => {
- const idList = Array.isArray(ids) ? ids : [ids];
- if (idList.length === 0) return;
-
- try {
- await ElMessageBox.confirm("纭鍒犻櫎淇濆吇鏁版嵁, 姝ゆ搷浣滀笉鍙��?", "璀﹀憡", {
- confirmButtonText: "纭畾",
- cancelButtonText: "鍙栨秷",
- type: "warning",
- });
-
- const { code } = await delUpkeep(idList);
- if (code === 200) {
- ElMessage.success("鍒犻櫎鎴愬姛");
- getTableData();
- }
- } catch (error) {
- // 鐢ㄦ埛鍙栨秷鍒犻櫎
- }
-};
+ const handleOut = () => {
+ ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
+ confirmButtonText: "纭",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ })
+ .then(() => {
+ proxy.download("/device/maintenance/export", {}, "璁惧淇濆吇.xlsx");
+ })
+ .catch(() => {
+ ElMessage.info("宸插彇娑�");
+ });
+ };
-const handleOut = () => {
- ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚鍑猴紝鏄惁纭瀵煎嚭锛�", "瀵煎嚭", {
- confirmButtonText: "纭",
- cancelButtonText: "鍙栨秷",
- type: "warning",
- })
- .then(() => {
- proxy.download("/device/maintenance/export", {}, "璁惧淇濆吇.xlsx");
- })
- .catch(() => {
- ElMessage.info("宸插彇娑�");
- });
-};
+ const handleDateChange = (date, type) => {
+ if (type === 1) {
+ filters.maintenanceActuallyTime = date
+ ? dayjs(date).format("YYYY-MM-DD")
+ : "";
+ } else {
+ filters.maintenancePlanTime = date ? dayjs(date).format("YYYY-MM-DD") : "";
+ }
+ getTableData();
+ };
-const handleDateChange = (date, type) => {
- if (type === 1) {
- filters.maintenanceActuallyTime = date
- ? dayjs(date).format("YYYY-MM-DD")
- : "";
- } else {
- filters.maintenancePlanTime = date ? dayjs(date).format("YYYY-MM-DD") : "";
- }
- getTableData();
-};
+ // 鎵撳紑闄勪欢寮圭獥
+ const openFileDialog = async row => {
+ currentMaintenanceTaskId.value = row.id;
+ fileDialogVisible.value = true;
+ };
-// 鎵撳紑闄勪欢寮圭獥
-const openFileDialog = async row => {
- currentMaintenanceTaskId.value = row.id;
- fileDialogVisible.value = true;
-};
-
-onMounted(() => {
- // 鏍规嵁榛樿婵�娲荤殑 Tab 璋冪敤瀵瑰簲鐨勬煡璇㈡帴鍙�
- if (activeTab.value === "scheduled") {
- getScheduledTableData();
- } else {
- getTableData();
- }
-});
+ onMounted(() => {
+ // 鏍规嵁榛樿婵�娲荤殑 Tab 璋冪敤瀵瑰簲鐨勬煡璇㈡帴鍙�
+ if (activeTab.value === "scheduled") {
+ getScheduledTableData();
+ } else {
+ getTableData();
+ }
+ });
</script>
<style lang="scss" scoped>
-.table_list {
- margin-top: unset;
-}
-.actions {
- display: flex;
- justify-content: space-between;
- margin-bottom: 10px;
-}
+ .table_list {
+ margin-top: unset;
+ }
+ .actions {
+ display: flex;
+ justify-content: space-between;
+ margin-bottom: 10px;
+ }
</style>
diff --git a/src/views/financialManagement/payable/purchaseReturn.vue b/src/views/financialManagement/payable/purchaseReturn.vue
index 4171df2..8d42a2e 100644
--- a/src/views/financialManagement/payable/purchaseReturn.vue
+++ b/src/views/financialManagement/payable/purchaseReturn.vue
@@ -85,7 +85,7 @@
{ label: "閫�璐у崟鍙�", prop: "returnNo", minWidth: "150" },
{ label: "渚涘簲鍟�", prop: "supplierName", minWidth: "180" },
{ label: "鍏宠仈鍏ュ簱鍗曞彿", prop: "inboundBatches", minWidth: "150" },
- { label: "閫�璐ф棩鏈�", prop: "preparedAt", minWidth: "170" },
+ { label: "閫�璐ф棩鏈�", prop: "preparedAt", minWidth: "170",dataType: "date"},
{
label: "閫�娆炬�婚",
prop: "totalAmount",
diff --git a/src/views/financialManagement/receivable/salesReturn.vue b/src/views/financialManagement/receivable/salesReturn.vue
index afe363c..d6af451 100644
--- a/src/views/financialManagement/receivable/salesReturn.vue
+++ b/src/views/financialManagement/receivable/salesReturn.vue
@@ -77,7 +77,7 @@
{ label: "閫�璐у崟鍙�", prop: "returnNo", minWidth: "150" },
{ label: "瀹㈡埛鍚嶇О", prop: "customerName", minWidth: "180" },
{ label: "鍏宠仈鍙戣揣鍗曞彿", prop: "shippingNo", minWidth: "150" },
- { label: "閫�璐ф棩鏈�", prop: "makeTime", minWidth: "170" },
+ { label: "閫�璐ф棩鏈�", prop: "makeTime", minWidth: "170",dataType: "date" },
{
label: "閫�娆炬�婚",
prop: "refundAmount",
diff --git a/src/views/inventoryManagement/dispatchLog/Record.vue b/src/views/inventoryManagement/dispatchLog/Record.vue
index 5a056d6..fe05536 100644
--- a/src/views/inventoryManagement/dispatchLog/Record.vue
+++ b/src/views/inventoryManagement/dispatchLog/Record.vue
@@ -108,7 +108,11 @@
show-overflow-tooltip />
<el-table-column label="鍑哄簱鏃ユ湡"
prop="createTime"
- show-overflow-tooltip />
+ show-overflow-tooltip >
+ <template #default="scope">
+ {{ scope.row.createTime ? scope.row.createTime.split(' ')[0] : '-' }}
+ </template>
+ </el-table-column>
<el-table-column label="浜у搧澶х被"
prop="productName"
show-overflow-tooltip />
diff --git a/src/views/inventoryManagement/receiptManagement/Record.vue b/src/views/inventoryManagement/receiptManagement/Record.vue
index 0a01def..07a3029 100644
--- a/src/views/inventoryManagement/receiptManagement/Record.vue
+++ b/src/views/inventoryManagement/receiptManagement/Record.vue
@@ -107,9 +107,11 @@
prop="inboundBatches"
width="200"
show-overflow-tooltip />
- <el-table-column label="鍏ュ簱鏃堕棿"
- prop="createTime"
- show-overflow-tooltip />
+ <el-table-column label="鍏ュ簱鏃堕棿" show-overflow-tooltip>
+ <template #default="scope">
+ {{ scope.row.createTime ? scope.row.createTime.split(' ')[0] : '-' }}
+ </template>
+ </el-table-column>
<el-table-column label="浜у搧澶х被"
prop="productName"
show-overflow-tooltip />
diff --git a/src/views/inventoryManagement/stockManagement/BatchNoQtyDetail.vue b/src/views/inventoryManagement/stockManagement/BatchNoQtyDetail.vue
index a835ef4..7d66307 100644
--- a/src/views/inventoryManagement/stockManagement/BatchNoQtyDetail.vue
+++ b/src/views/inventoryManagement/stockManagement/BatchNoQtyDetail.vue
@@ -50,11 +50,13 @@
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 >
+ <template #default="scope">
+ {{ scope.row.updateTime ? scope.row.updateTime.split(' ')[0] : '-' }}
+ </template>
+ </el-table-column>
<el-table-column fixed="right" label="鎿嶄綔" min-width="180" align="center">
<template #default="scope">
<el-button
diff --git a/src/views/inventoryManagement/stockManagement/Qualified.vue b/src/views/inventoryManagement/stockManagement/Qualified.vue
index 4286772..a1f96f4 100644
--- a/src/views/inventoryManagement/stockManagement/Qualified.vue
+++ b/src/views/inventoryManagement/stockManagement/Qualified.vue
@@ -31,7 +31,13 @@
<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 >
+ <template #default="scope">
+ {{ scope.row.updateTime ? scope.row.updateTime.split(' ')[0] : '-' }}
+ </template>
+ </el-table-column>
<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>
diff --git a/src/views/inventoryManagement/stockManagement/Record.vue b/src/views/inventoryManagement/stockManagement/Record.vue
index 934ae06..b45dd00 100644
--- a/src/views/inventoryManagement/stockManagement/Record.vue
+++ b/src/views/inventoryManagement/stockManagement/Record.vue
@@ -107,7 +107,11 @@
show-overflow-tooltip />
<el-table-column label="鏈�杩戞洿鏂版椂闂�"
prop="updateTime"
- show-overflow-tooltip />
+ show-overflow-tooltip >
+ <template #default="scope">
+ {{ scope.row.updateTime ? scope.row.updateTime.split(' ')[0] : '-' }}
+ </template>
+ </el-table-column>
<el-table-column fixed="right"
label="鎿嶄綔"
min-width="80"
diff --git a/src/views/inventoryManagement/stockManagement/Unqualified.vue b/src/views/inventoryManagement/stockManagement/Unqualified.vue
index 55662be..6c36f26 100644
--- a/src/views/inventoryManagement/stockManagement/Unqualified.vue
+++ b/src/views/inventoryManagement/stockManagement/Unqualified.vue
@@ -26,7 +26,13 @@
<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 >
+ <template #default="scope">
+ {{ scope.row.updateTime ? scope.row.updateTime.split(' ')[0] : '-' }}
+ </template>
+ </el-table-column>
<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>
diff --git a/src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js b/src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js
index 727f896..e92dc97 100644
--- a/src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js
+++ b/src/views/officeProcessAutomation/ApproveManage/approve-template/approveTemplateConstants.js
@@ -155,24 +155,31 @@
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");
- }
- if (typeof val === "number") {
- const d = val > 1e12 ? dayjs(val) : dayjs.unix(val);
- return d.isValid() ? d.format("YYYY-MM-DD HH:mm:ss") : "";
- }
- 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 HH:mm:ss") : s;
+
+/**
+ * @param {any} val 鏃堕棿鍊�
+ * @param {boolean} [onlyDate=true] true:鍙勾鏈堟棩锛宖alse:骞存湀鏃ユ椂鍒嗙
+ */
+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;
}
-export function formatDisplayTime(val) {
- const t = normalizeTimeValue(val);
+export function formatDisplayTime(val,onlyDate) {
+ const t = normalizeTimeValue(val,onlyDate);
return t || "鈥�";
}
diff --git a/src/views/personnelManagement/socialSecuritySet/index.vue b/src/views/personnelManagement/socialSecuritySet/index.vue
index 1f3f104..8329b9c 100644
--- a/src/views/personnelManagement/socialSecuritySet/index.vue
+++ b/src/views/personnelManagement/socialSecuritySet/index.vue
@@ -65,7 +65,7 @@
{ label: "淇濋櫓绫诲瀷", prop: "insuranceTypes", width: 120 },
{ label: "浣跨敤鑼冨洿", prop: "deptNames", width: 120 },
{ label: "澶囨敞", prop: "remark", minWidth: 120 },
- { label: "鍒涘缓鏃堕棿", prop: "createTime", width: 160 },
+ { label: "鍒涘缓鏃堕棿", prop: "createTime", width: 160,dataType: "date" },
{ label: "鍒涘缓浜�", prop: "createUserName", width: 100 },
{
dataType: "action",
diff --git a/src/views/productionManagement/productionReporting/index.vue b/src/views/productionManagement/productionReporting/index.vue
index fa4e163..28edda2 100644
--- a/src/views/productionManagement/productionReporting/index.vue
+++ b/src/views/productionManagement/productionReporting/index.vue
@@ -236,6 +236,7 @@
label: "鍒涘缓鏃堕棿",
prop: "createTime",
width: 120,
+ dataType: "date"
},
{
dataType: "action",
diff --git a/src/views/safeProduction/dangerInvestigation/index.vue b/src/views/safeProduction/dangerInvestigation/index.vue
index a278058..4caac4e 100644
--- a/src/views/safeProduction/dangerInvestigation/index.vue
+++ b/src/views/safeProduction/dangerInvestigation/index.vue
@@ -69,7 +69,11 @@
show-overflow-tooltip />
<el-table-column label="涓婃姤鏃堕棿"
prop="createTime"
- show-overflow-tooltip />
+ show-overflow-tooltip >
+ <template #default="scope">
+ {{ scope.row.createTime ? scope.row.createTime.split(' ')[0] : '-' }}
+ </template>
+ </el-table-column>
<el-table-column label="鏁存敼瀹屾垚鏈熼檺"
prop="rectifyTime"
width="120"
--
Gitblit v1.9.3