From 67acb740390947f2e7cc3834785828ebf9755310 Mon Sep 17 00:00:00 2001
From: 曹睿 <360930172@qq.com>
Date: 星期一, 30 六月 2025 17:25:28 +0800
Subject: [PATCH] feat: 【设备保养】添加设备保养模块,完成相关crud
---
src/views/equipmentManagement/upkeep/index.vue | 211 ++++++++++++++++
src/views/procurementManagement/procurementInvoiceLedger/index.vue | 7
src/views/reportAnalysis/projectProfit/index.vue | 7
src/views/equipmentManagement/repair/index.vue | 6
src/views/procurementManagement/invoiceEntry/index.vue | 7
src/api/equipmentManagement/upkeep.js | 72 +++++
src/views/equipmentManagement/upkeep/Modal/MaintenanceModal.vue | 60 ++++
src/views/salesManagement/invoiceRegistration/index.vue | 8
src/api/procurementManagement/paymentEntry.js | 98 +++---
src/views/salesManagement/invoiceLedger/index.vue | 14
src/views/equipmentManagement/repair/Form/MaintainForm.vue | 16
src/views/equipmentManagement/upkeep/Form/MaintenanceForm.vue | 64 ++++
src/views/reportAnalysis/taxComparison/index.vue | 7
src/views/equipmentManagement/upkeep/Form/PlanForm.vue | 94 +++++++
src/views/equipmentManagement/upkeep/Modal/PlanModal.vue | 76 +++++
15 files changed, 681 insertions(+), 66 deletions(-)
diff --git a/src/api/equipmentManagement/upkeep.js b/src/api/equipmentManagement/upkeep.js
new file mode 100644
index 0000000..c091670
--- /dev/null
+++ b/src/api/equipmentManagement/upkeep.js
@@ -0,0 +1,72 @@
+import request from "@/utils/request";
+
+/**
+ * @desc 璁惧淇濆吇鍒楄〃鍒嗛〉鏌ヨ
+ * @param {鍒嗛〉鏌ヨ鍏ュ弬} params
+ * @returns
+ */
+export const getUpkeepPage = (params) => {
+ return request({
+ url: "/device/maintenance/page",
+ method: "get",
+ params,
+ });
+};
+
+/**
+ * @desc 璁惧淇濆吇璇︽儏
+ * @param {淇濆吇浣嗙紪鍙穧 id
+ * @returns
+ */
+export const getUpkeepById = (id) => {
+ return request({
+ url: `/device/maintenance/${id}`,
+ method: "get",
+ });
+};
+
+/**
+ * @desc 璁惧淇濆吇鏂板
+ * @param {鏂板淇濆吇琛ㄥ崟} data
+ * @returns
+ */
+export const addUpkeep = (data) => {
+ return request({
+ url: "/device/maintenance",
+ method: "post",
+ data,
+ });
+};
+
+/**
+ * @desc 璁惧淇濆吇缂栬緫
+ * @param {缂栬緫淇濆吇琛ㄥ崟} data
+ * @returns
+ */
+export const editUpkeep = (data) => {
+ return request({
+ url: "/device/maintenance",
+ method: "put",
+ data,
+ });
+};
+
+/**
+ * @desc 鏂板淇濆吇琛ㄥ崟
+ * @param {鏂板淇濆吇琛ㄥ崟} data
+ * @returns
+ */
+export const addMaintenance = (data) => {
+ return request({
+ url: "/device/maintenance/maintenance",
+ method: "post",
+ data,
+ });
+};
+
+export const delUpkeep = (id) => {
+ return request({
+ url: `/device/maintenance/${id}`,
+ method: "delete",
+ });
+};
diff --git a/src/api/procurementManagement/paymentEntry.js b/src/api/procurementManagement/paymentEntry.js
index 7725779..6ef0eb9 100644
--- a/src/api/procurementManagement/paymentEntry.js
+++ b/src/api/procurementManagement/paymentEntry.js
@@ -1,81 +1,81 @@
// 閲囪喘浠樻鐧昏椤甸潰鎺ュ彛
-import request from '@/utils/request'
+import request from "@/utils/request";
// 鍒嗛〉鏌ヨ
export function registrationList(query) {
- return request({
- url: '/purchase/paymentRegistration/list',
- method: 'get',
- params: query
- })
+ return request({
+ url: "/purchase/paymentRegistration/list",
+ method: "get",
+ params: query,
+ });
}
// 鏌ヨ璇︽儏
export function registrationInfo(query) {
- return request({
- url: '/purchase/paymentRegistration/' + query,
- method: 'get',
- })
+ return request({
+ url: "/purchase/paymentRegistration/" + query,
+ method: "get",
+ });
}
// 鏍规嵁閲囪喘鍚堝悓鍙锋煡璇㈣鎯�
export function byPurchaseId(query) {
- return request({
- url: '/purchase/paymentRegistration/byPurchaseId/' + query,
- method: 'get',
- })
+ return request({
+ url: "/purchase/paymentRegistration/byPurchaseId/" + query,
+ method: "get",
+ });
}
// 鏌ヨ閲囪喘鍚堝悓鍙�
export function getPurchaseNo() {
- return request({
- url: '/purchase/ledger/getPurchaseNo',
- method: 'get',
- })
+ return request({
+ url: "/purchase/ledger/getPurchaseNo",
+ method: "get",
+ });
}
// 鏂板
export function paymentRegistrationAdd(query) {
- return request({
- url: '/purchase/paymentRegistration',
- method: 'post',
- data: query
- })
+ return request({
+ url: "/purchase/paymentRegistration",
+ method: "post",
+ data: query,
+ });
}
// 淇敼
export function paymentRegistrationEdit(query) {
- return request({
- url: '/purchase/paymentRegistration',
- method: 'put',
- data: query
- })
+ return request({
+ url: "/purchase/paymentRegistration",
+ method: "put",
+ data: query,
+ });
}
// 鍒犻櫎
export function paymentRegistrationDel(query) {
- return request({
- url: '/purchase/paymentRegistration/del',
- method: 'delete',
- data: query
- })
+ return request({
+ url: "/purchase/paymentRegistration/delete",
+ method: "delete",
+ data: query,
+ });
}
// 鑾峰彇鍙戠エ鍙峰拰鍙戠エ閲戦
-export function getTicketNo(query){
- return request({
- url: "/purchase/registration/getTicketNo",
- method: "get",
- params: query
- })
+export function getTicketNo(query) {
+ return request({
+ url: "/purchase/registration/getTicketNo",
+ method: "get",
+ params: query,
+ });
}
// 鍒嗛〉鏌ヨ
export function paymentHistoryList(query) {
- return request({
- url: '/purchase/paymentRegistration/paymentHistoryList',
- method: 'get',
- params: query
- })
+ return request({
+ url: "/purchase/paymentRegistration/paymentHistoryList",
+ method: "get",
+ params: query,
+ });
}
// 鍒嗛〉鏌ヨ
export function paymentHistoryListPage(query) {
- return request({
- url: '/purchase/paymentRegistration/paymentHistoryListPage',
- method: 'get',
- params: query
- })
+ return request({
+ url: "/purchase/paymentRegistration/paymentHistoryListPage",
+ method: "get",
+ params: query,
+ });
}
diff --git a/src/views/equipmentManagement/repair/Form/MaintainForm.vue b/src/views/equipmentManagement/repair/Form/MaintainForm.vue
index f946e7e..75e97dd 100644
--- a/src/views/equipmentManagement/repair/Form/MaintainForm.vue
+++ b/src/views/equipmentManagement/repair/Form/MaintainForm.vue
@@ -6,13 +6,13 @@
<el-form-item label="缁翠慨缁撴灉">
<el-input v-model="form.maintenanceResult" placeholder="璇疯緭鍏ョ淮淇粨鏋�" />
</el-form-item>
- <el-form-item label="缁翠慨缁撴灉">
+ <el-form-item label="缁翠慨鏃ユ湡">
<el-date-picker
v-model="form.maintenanceTime"
placeholder="璇烽�夋嫨缁翠慨鏃ユ湡"
- format="YYYY-MM-DD"
- value-format="YYYY-MM-DD"
- type="date"
+ format="YYYY-MM-DD HH:mm:ss"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ type="datetime"
clearable
style="width: 100%"
/>
@@ -22,11 +22,14 @@
<script setup>
import useFormData from "@/hooks/useFormData";
+import useUserStore from "@/store/modules/user";
+import dayjs from "dayjs";
defineOptions({
name: "璁惧缁翠慨琛ㄥ崟",
});
+const userStore = useUserStore();
const { form, resetForm } = useFormData({
maintenanceName: undefined, // 缁翠慨鍚嶇О
maintenanceResult: undefined, // 缁翠慨缁撴灉
@@ -34,9 +37,10 @@
});
const setForm = (data) => {
- form.maintenanceName = data.maintenanceName;
+ form.maintenanceName = data.maintenanceName ?? userStore.nickName;
form.maintenanceResult = data.maintenanceResult;
- form.maintenanceTime = data.maintenanceTime;
+ form.maintenanceTime =
+ data.maintenanceTime ?? dayjs().format("YYYY-MM-DD HH:mm:ss");
};
const getForm = () => {
diff --git a/src/views/equipmentManagement/repair/index.vue b/src/views/equipmentManagement/repair/index.vue
index 96fb91b..2e75914 100644
--- a/src/views/equipmentManagement/repair/index.vue
+++ b/src/views/equipmentManagement/repair/index.vue
@@ -15,14 +15,14 @@
<el-button type="success" icon="Van" @click="addRepair">
鏂板鎶ヤ慨
</el-button>
- <el-button
+ <!-- <el-button
type="danger"
icon="Delete"
:disabled="multipleList.length <= 0"
@click="delRepairByIds(multipleList.map((item) => item.id))"
>
鎵归噺鍒犻櫎
- </el-button>
+ </el-button> -->
</div>
</div>
<PIMTable
@@ -39,7 +39,7 @@
>
<template #statusRef="{ row }">
<el-tag v-if="row.status === 1" type="success">瀹岀粨</el-tag>
- <el-tag v-if="row.status === 0" type="error">寰呯淮淇�</el-tag>
+ <el-tag v-if="row.status === 0" type="danger">寰呯淮淇�</el-tag>
</template>
<template #operation="{ row }">
<el-button
diff --git a/src/views/equipmentManagement/upkeep/Form/MaintenanceForm.vue b/src/views/equipmentManagement/upkeep/Form/MaintenanceForm.vue
new file mode 100644
index 0000000..4ff0237
--- /dev/null
+++ b/src/views/equipmentManagement/upkeep/Form/MaintenanceForm.vue
@@ -0,0 +1,64 @@
+<template>
+ <el-form :model="form" label-width="100px">
+ <el-form-item label="瀹為檯淇濆吇浜�">
+ <el-input
+ v-model="form.maintenanceActuallyName"
+ placeholder="璇疯緭鍏ュ疄闄呬繚鍏讳汉"
+ ></el-input>
+ </el-form-item>
+ <el-form-item label="瀹為檯淇濆吇鏃ユ湡">
+ <el-date-picker
+ v-model="form.maintenanceActuallyTime"
+ placeholder="璇烽�夋嫨瀹為檯淇濆吇鏃ユ湡"
+ format="YYYY-MM-DD HH:mm:ss"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ type="datetime"
+ clearable
+ style="width: 100%"
+ />
+ </el-form-item>
+ <el-form-item label="淇濆吇缁撴灉">
+ <el-select v-model="form.maintenanceResult" placeholder="璇烽�夋嫨淇濆吇缁撴灉">
+ <el-option label="瀹屽ソ" :value="1"></el-option>
+ <el-option label="缁翠慨" :value="0"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-form>
+</template>
+
+<script setup>
+import useFormData from "@/hooks/useFormData";
+import dayjs from "dayjs";
+import useUserStore from "@/store/modules/user";
+
+defineOptions({
+ name: "淇濆吇琛ㄥ崟",
+});
+
+const userStore = useUserStore();
+const { form, resetForm } = useFormData({
+ maintenanceActuallyName: undefined, // 瀹為檯淇濆吇浜�
+ maintenanceActuallyTime: undefined, // 瀹為檯淇濆吇鏃ユ湡
+ maintenanceResult: undefined, // 淇濆吇缁撴灉
+});
+
+const setForm = (data) => {
+ form.maintenanceActuallyName =
+ data.maintenanceActuallyName ?? userStore.nickName;
+ form.maintenanceActuallyTime =
+ data.maintenanceActuallyTime ?? dayjs().format("YYYY-MM-DD HH:mm:ss");
+ form.maintenanceResult = data.maintenanceResult;
+};
+
+const getForm = () => {
+ return form;
+};
+
+defineExpose({
+ getForm,
+ setForm,
+ resetForm,
+});
+</script>
+
+<style lang="scss" scoped></style>
diff --git a/src/views/equipmentManagement/upkeep/Form/PlanForm.vue b/src/views/equipmentManagement/upkeep/Form/PlanForm.vue
new file mode 100644
index 0000000..ab22cc4
--- /dev/null
+++ b/src/views/equipmentManagement/upkeep/Form/PlanForm.vue
@@ -0,0 +1,94 @@
+<template>
+ <el-form :model="form" label-width="100px">
+ <el-form-item label="璁惧鍚嶇О">
+ <el-select
+ v-model="form.deviceLedgerId"
+ @change="setDeviceModel"
+ placeholder="璇烽�夋嫨璁惧"
+ >
+ <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="瑙勬牸鍨嬪彿">
+ <el-input
+ v-model="form.deviceModel"
+ placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�"
+ disabled
+ />
+ </el-form-item>
+ <el-form-item label="璁″垝淇濆吇鏃ユ湡">
+ <el-date-picker
+ style="width: 100%"
+ v-model="form.maintenancePlanTime"
+ format="YYYY-MM-DD"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ type="date"
+ placeholder="璇烽�夋嫨璁″垝淇濆吇鏃ユ湡鏃ユ湡"
+ clearable
+ />
+ </el-form-item>
+ </el-form>
+</template>
+
+<script setup>
+import useFormData from "@/hooks/useFormData";
+import { getDeviceLedger } from "@/api/equipmentManagement/ledger";
+import { onMounted } from "vue";
+
+defineOptions({
+ name: "璁″垝琛ㄥ崟",
+});
+
+const deviceOptions = ref([]);
+const loadDeviceName = async () => {
+ const { data } = await getDeviceLedger();
+ deviceOptions.value = data;
+};
+
+const { form, resetForm } = useFormData({
+ deviceLedgerId: undefined, // 璁惧Id
+ deviceName: undefined, // 璁惧鍚嶇О
+ deviceModel: undefined, // 瑙勬牸鍨嬪彿
+ maintenancePlanTime: undefined, // 璁″垝淇濆吇鏃ユ湡
+});
+
+const setDeviceModel = (id) => {
+ const option = deviceOptions.value.find((item) => item.id === id);
+ form.deviceModel = option.deviceModel;
+};
+
+const getForm = () => {
+ return form;
+};
+
+/**
+ * @desc 璁剧疆琛ㄥ崟鍐呭
+ * @param data 璁惧淇℃伅
+ */
+const setForm = (data) => {
+ form.deviceLedgerId = data.deviceLedgerId;
+ form.deviceName = data.deviceName;
+ form.deviceModel = data.deviceModel;
+ form.maintenancePlanTime = data.maintenancePlanTime;
+};
+
+const loadForm = () => {};
+
+onMounted(() => {
+ loadDeviceName();
+});
+
+defineExpose({
+ loadForm,
+ resetForm,
+ getForm,
+ setForm,
+});
+</script>
+
+<style lang="scss" scoped></style>
diff --git a/src/views/equipmentManagement/upkeep/Modal/MaintenanceModal.vue b/src/views/equipmentManagement/upkeep/Modal/MaintenanceModal.vue
new file mode 100644
index 0000000..583d627
--- /dev/null
+++ b/src/views/equipmentManagement/upkeep/Modal/MaintenanceModal.vue
@@ -0,0 +1,60 @@
+<template>
+ <el-drawer v-model="visible" :title="modalOptions.title" direction="ltr">
+ <MaintenanceForm ref="maintenanceFormRef" />
+ <template #footer>
+ <el-button @click="closeModal">{{ modalOptions.cancelText }}</el-button>
+ <el-button type="primary" @click="sendForm" :loading="loading">
+ {{ modalOptions.confirmText }}
+ </el-button>
+ </template>
+ </el-drawer>
+</template>
+
+<script setup>
+import MaintenanceForm from "../Form/MaintenanceForm.vue";
+import { useModal } from "@/hooks/useModal";
+import { addMaintenance } from "@/api/equipmentManagement/upkeep";
+
+defineOptions({
+ name: "淇濆吇妯℃�佹",
+});
+
+const maintenanceFormRef = ref();
+const emits = defineEmits(["ok"]);
+
+const {
+ id,
+ visible,
+ loading,
+ openModal,
+ modalOptions,
+ handleConfirm,
+ closeModal,
+} = useModal({ title: "璁惧缁翠慨" });
+
+/**
+ * @desc 淇濆瓨淇濆吇
+ */
+const sendForm = async () => {
+ loading.value = true;
+ const form = await maintenanceFormRef.value.getForm();
+ const { code } = await addMaintenance({ id: id.value, ...form });
+ if (code == 200) {
+ emits("ok");
+ maintenanceFormRef.value.resetForm();
+ closeModal();
+ }
+ loading.value = false;
+};
+
+const open = async (id, row) => {
+ openModal(id);
+ await nextTick();
+ maintenanceFormRef.value.setForm(row);
+};
+defineExpose({
+ open,
+});
+</script>
+
+<style lang="scss" scoped></style>
diff --git a/src/views/equipmentManagement/upkeep/Modal/PlanModal.vue b/src/views/equipmentManagement/upkeep/Modal/PlanModal.vue
new file mode 100644
index 0000000..239025a
--- /dev/null
+++ b/src/views/equipmentManagement/upkeep/Modal/PlanModal.vue
@@ -0,0 +1,76 @@
+<template>
+ <el-dialog
+ v-model="visible"
+ :title="modalOptions.title"
+ width="30%"
+ @close="close"
+ >
+ <PlanForm ref="planFormRef"></PlanForm>
+ <template #footer>
+ <el-button @click="closeModal">{{ modalOptions.cancelText }}</el-button>
+ <el-button type="primary" @click="sendForm" :loading="loading">
+ {{ modalOptions.confirmText }}
+ </el-button>
+ </template>
+ </el-dialog>
+</template>
+
+<script setup>
+import { useModal } from "@/hooks/useModal";
+import PlanForm from "../Form/PlanForm";
+import {
+ addUpkeep,
+ editUpkeep,
+ getUpkeepById,
+} from "@/api/equipmentManagement/upkeep";
+import { ElMessage } from "element-plus";
+
+defineOptions({
+ name: "璁惧淇濆吇鏂板璁″垝",
+});
+
+const emits = defineEmits(["ok"]);
+const planFormRef = ref();
+const {
+ id,
+ visible,
+ loading,
+ openModal,
+ modalOptions,
+ handleConfirm,
+ closeModal,
+} = useModal({ title: "璁惧淇濆吇璁″垝" });
+
+const openEdit = async (id) => {
+ const { data } = await getUpkeepById(id);
+ openModal(id);
+ await nextTick();
+ await planFormRef.value.setForm(data);
+};
+
+const sendForm = async () => {
+ loading.value = true;
+ const form = await planFormRef.value.getForm();
+ const { code } = id.value
+ ? await editUpkeep({ id: unref(id), ...form })
+ : await addUpkeep(form);
+ if (code == 200) {
+ ElMessage.success(`${id ? "缂栬緫" : "鏂板"}璁″垝鎴愬姛`);
+ closeModal();
+ emits("ok");
+ }
+ loading.value = false;
+};
+
+const close = () => {
+ planFormRef.value.resetForm();
+ closeModal();
+};
+
+defineExpose({
+ openModal,
+ openEdit,
+});
+</script>
+
+<style lang="scss" scoped></style>
diff --git a/src/views/equipmentManagement/upkeep/index.vue b/src/views/equipmentManagement/upkeep/index.vue
new file mode 100644
index 0000000..7f9e7de
--- /dev/null
+++ b/src/views/equipmentManagement/upkeep/index.vue
@@ -0,0 +1,211 @@
+<template>
+ <div class="app-container">
+ <div class="table_list">
+ <div class="actions">
+ <el-text class="mx-1" size="large">璁惧淇濆吇</el-text>
+ <div>
+ <el-button
+ type="primary"
+ icon="Plus"
+ :disabled="multipleList.length !== 1"
+ @click="addMaintain"
+ >
+ 鏂板淇濆吇
+ </el-button>
+ <el-button type="success" icon="Van" @click="addPlan">
+ 鏂板璁″垝
+ </el-button>
+ <el-button
+ type="danger"
+ icon="Delete"
+ :disabled="multipleList.length <= 0"
+ >
+ 鎵归噺鍒犻櫎
+ </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"
+ >
+ <template #maintenanceResultRef="{ row }">
+ <el-tag v-if="row.maintenanceResult === 1" type="success">
+ 瀹屽ソ
+ </el-tag>
+ <el-tag v-if="row.maintenanceResult === 0" type="danger">
+ 缁翠慨
+ </el-tag>
+ </template>
+ <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"
+ text
+ icon="editPen"
+ @click="editPlan(row.id)"
+ >
+ 缂栬緫
+ </el-button>
+ <el-button
+ type="danger"
+ text
+ icon="delete"
+ @click="delRepairByIds(row.id)"
+ >
+ 鍒犻櫎
+ </el-button>
+ </template>
+ </PIMTable>
+ </div>
+ <PlanModal ref="planModalRef" @ok="getTableData" />
+ <MaintenanceModal ref="maintainModalRef" @ok="getTableData" />
+ </div>
+</template>
+
+<script setup>
+import { usePaginationApi } from "@/hooks/usePaginationApi";
+import { getUpkeepPage, delUpkeep } from "@/api/equipmentManagement/upkeep";
+import { onMounted } from "vue";
+import PlanModal from "./Modal/PlanModal.vue";
+import MaintenanceModal from "./Modal/MaintenanceModal.vue";
+import dayjs from "dayjs";
+
+defineOptions({
+ name: "璁惧淇濆吇",
+});
+
+// 璁″垝寮圭獥鎺у埗鍣�
+const planModalRef = ref();
+// 淇濆吇寮圭獥鎺у埗鍣�
+const maintainModalRef = ref();
+
+// 琛ㄦ牸澶氶�夋閫変腑椤�
+const multipleList = ref([]);
+
+// 澶氶�夊悗鍋氫粈涔�
+const handleSelectionChange = (selectionList) => {
+ multipleList.value = selectionList;
+};
+
+// 琛ㄦ牸閽╁瓙
+const { filters, columns, dataList, pagination, getTableData, resetFilters } =
+ usePaginationApi(getUpkeepPage, {}, [
+ {
+ label: "璁惧鍚嶇О",
+ align: "center",
+ prop: "deviceName",
+ },
+ {
+ label: "瑙勬牸鍨嬪彿",
+ align: "center",
+ prop: "deviceModel",
+ },
+ {
+ label: "璁″垝淇濆吇鏃ユ湡",
+ align: "center",
+ prop: "maintenancePlanTime",
+ formatData: (cell) => dayjs(cell).format("YYYY-MM-DD"),
+ },
+ {
+ label: "褰曞叆浜�",
+ align: "center",
+ prop: "createUserName",
+ },
+ {
+ 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",
+ },
+ {
+ 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: "200px",
+ },
+ ]);
+
+// 鏂板淇濆吇
+const addMaintain = () => {
+ const row = multipleList.value[0];
+ maintainModalRef.value.open(row.id, row);
+};
+
+// 鏂板璁″垝
+const addPlan = () => {
+ planModalRef.value.openModal();
+};
+
+// 缂栬緫璁″垝
+const editPlan = (id) => {
+ planModalRef.value.openEdit(id);
+};
+
+// 鍗曡鍒犻櫎
+const delRepairByIds = async (ids) => {
+ ElMessageBox.confirm("纭鍒犻櫎鎶ヤ慨鏁版嵁, 姝ゆ搷浣滀笉鍙��?", "璀﹀憡", {
+ confirmButtonText: "纭畾",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ }).then(async () => {
+ const { code } = await delUpkeep(ids);
+ if (code === 200) {
+ ElMessage.success("鍒犻櫎鎴愬姛");
+ getTableData();
+ }
+ });
+};
+
+onMounted(() => {
+ getTableData();
+});
+</script>
+
+<style lang="scss" scoped>
+.table_list {
+ margin-top: unset;
+}
+.actions {
+ display: flex;
+ justify-content: space-between;
+ margin-bottom: 10px;
+}
+</style>
diff --git a/src/views/procurementManagement/invoiceEntry/index.vue b/src/views/procurementManagement/invoiceEntry/index.vue
index c8ece35..c7376ee 100644
--- a/src/views/procurementManagement/invoiceEntry/index.vue
+++ b/src/views/procurementManagement/invoiceEntry/index.vue
@@ -42,7 +42,7 @@
:expand-row-keys="expandRowKeys"
@expand-change="expandChange"
@selection-change="handleSelectionChange"
- @pagination="onCurrentChange"
+ @pagination="changePage"
>
<template #expand="{ row }">
<ExpandTable ref="expandTableRef" />
@@ -182,6 +182,11 @@
expandTableRef.value.getList(row.id);
};
+const changePage = ({ page }) => {
+ pagination.currentPage = page;
+ onCurrentChange(page);
+};
+
onMounted(() => {
getTableData();
});
diff --git a/src/views/procurementManagement/procurementInvoiceLedger/index.vue b/src/views/procurementManagement/procurementInvoiceLedger/index.vue
index 6c8afa3..339b020 100644
--- a/src/views/procurementManagement/procurementInvoiceLedger/index.vue
+++ b/src/views/procurementManagement/procurementInvoiceLedger/index.vue
@@ -56,7 +56,7 @@
total: 0,
}"
@selection-change="handleSelectionChange"
- @pagination="onCurrentChange"
+ @pagination="changePage"
>
<template #commonFilesRef="{ row }">
<el-button
@@ -238,6 +238,11 @@
});
};
+const changePage = ({ page }) => {
+ pagination.currentPage = page;
+ onCurrentChange(page);
+};
+
onMounted(() => {
getTableData();
});
diff --git a/src/views/reportAnalysis/projectProfit/index.vue b/src/views/reportAnalysis/projectProfit/index.vue
index bae35bb..c987e3c 100644
--- a/src/views/reportAnalysis/projectProfit/index.vue
+++ b/src/views/reportAnalysis/projectProfit/index.vue
@@ -20,7 +20,7 @@
size: pagination.pageSize,
total: pagination.total,
}"
- @pagination="onCurrentChange"
+ @pagination="changePage"
></PIMTable>
</div>
</div>
@@ -93,6 +93,11 @@
]
);
+const changePage = ({ page }) => {
+ pagination.currentPage = page;
+ onCurrentChange(page);
+};
+
onMounted(() => {
getTableData();
});
diff --git a/src/views/reportAnalysis/taxComparison/index.vue b/src/views/reportAnalysis/taxComparison/index.vue
index b04ebce..4ed69a5 100644
--- a/src/views/reportAnalysis/taxComparison/index.vue
+++ b/src/views/reportAnalysis/taxComparison/index.vue
@@ -28,7 +28,7 @@
size: pagination.pageSize,
total: pagination.total,
}"
- @pagination="onCurrentChange"
+ @pagination="changePage"
/>
</div>
</div>
@@ -82,6 +82,11 @@
{}
);
+const changePage = ({ page }) => {
+ pagination.currentPage = page;
+ onCurrentChange(page);
+};
+
onMounted(() => {
getTableData();
});
diff --git a/src/views/salesManagement/invoiceLedger/index.vue b/src/views/salesManagement/invoiceLedger/index.vue
index 08be678..194b86c 100644
--- a/src/views/salesManagement/invoiceLedger/index.vue
+++ b/src/views/salesManagement/invoiceLedger/index.vue
@@ -65,11 +65,13 @@
label="閿�鍞悎鍚屽彿"
prop="salesContractNo"
show-overflow-tooltip
+ width="180"
/>
<el-table-column
label="瀹㈡埛鍚堝悓鍙�"
prop="customerContractNo"
show-overflow-tooltip
+ width="180"
/>
<el-table-column
label="瀹㈡埛鍚嶇О"
@@ -77,9 +79,14 @@
show-overflow-tooltip
width="240"
/>
- <el-table-column label="椤圭洰" prop="projectName" />
+ <el-table-column label="椤圭洰" prop="projectName" width="150" />
<el-table-column label="浜у搧澶х被" prop="productCategory" />
- <el-table-column label="瑙勬牸鍨嬪彿" prop="specificationModel" />
+ <el-table-column
+ label="瑙勬牸鍨嬪彿"
+ prop="specificationModel"
+ width="300"
+ show-overflow-tooltip
+ />
<el-table-column
label="鍙戠エ鍙�"
prop="invoiceNo"
@@ -90,6 +97,7 @@
prop="invoiceTotal"
show-overflow-tooltip
:formatter="formattedNumber"
+ width="120"
/>
<el-table-column label="绋庣巼(%)" prop="taxRate" show-overflow-tooltip />
<el-table-column
@@ -102,11 +110,13 @@
prop="createTime"
show-overflow-tooltip
:formatter="formatDate"
+ width="180"
/>
<el-table-column
label="寮�绁ㄦ棩鏈�"
prop="invoiceDate"
show-overflow-tooltip
+ width="120"
/>
<el-table-column
label="鍙戠エ"
diff --git a/src/views/salesManagement/invoiceRegistration/index.vue b/src/views/salesManagement/invoiceRegistration/index.vue
index aeacdb2..f229f81 100644
--- a/src/views/salesManagement/invoiceRegistration/index.vue
+++ b/src/views/salesManagement/invoiceRegistration/index.vue
@@ -154,7 +154,11 @@
show-overflow-tooltip
:formatter="formattedNumber"
/>
- <el-table-column label="鏈紑绁ㄩ噾棰�(鍏�)" show-overflow-tooltip>
+ <el-table-column
+ label="鏈紑绁ㄩ噾棰�(鍏�)"
+ prop="noInvoiceAmountTotal"
+ show-overflow-tooltip
+ >
<template #default="{ row, column }">
<el-text type="danger">
{{ formattedNumber(row, column, row.noInvoiceAmountTotal) }}
@@ -516,8 +520,8 @@
const summarizeMainTable = (param) => {
return proxy.summarizeTable(param, [
"contractAmount",
- "noInvoiceAmountTotal",
"invoiceTotal",
+ "noInvoiceAmountTotal",
]);
};
// 瀛愯〃鍚堣鏂规硶
--
Gitblit v1.9.3