From db42d47f5692ef64e5436c5a6d29dcb537b44596 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期一, 26 一月 2026 16:36:13 +0800
Subject: [PATCH] 浪潮对接单点登录:mis调整
---
src/views/equipmentManagement/defectManagement/index.vue | 221 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 221 insertions(+), 0 deletions(-)
diff --git a/src/views/equipmentManagement/defectManagement/index.vue b/src/views/equipmentManagement/defectManagement/index.vue
new file mode 100644
index 0000000..f35454f
--- /dev/null
+++ b/src/views/equipmentManagement/defectManagement/index.vue
@@ -0,0 +1,221 @@
+<template>
+ <div class="defect-management">
+ <!-- 鎿嶄綔鎸夐挳 -->
+ <div class="actions">
+ <el-button type="primary" @click="showRegisterDialog = true">鐧昏缂洪櫡</el-button>
+ </div>
+
+ <!-- 缂洪櫡鍒楄〃 -->
+ <el-table :data="defectList" style="width: 100%; margin-top: 10px;" border>
+ <el-table-column prop="deviceName" label="璁惧鍚嶇О" width="180"></el-table-column>
+ <el-table-column prop="defectDescription" label="缂洪櫡鎻忚堪" win-width="300"></el-table-column>
+ <el-table-column prop="status" label="鐘舵��" width="220">
+ <template #default="{ row }">
+ <el-tag :type="row.status === '涓ラ噸缂洪櫡' ? 'danger' : 'success'">
+ {{ row.status }}
+ </el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column label="鎿嶄綔" width="220">
+ <template #default="{ row }">
+ <el-button
+ v-if="row.status === '涓ラ噸缂洪櫡' || row.status === '涓�鑸己闄�'"
+ type="text"
+ @click="eliminateDefect(row)"
+ >
+ 娑堥櫎缂洪櫡
+ </el-button>
+ <!-- <el-button
+ v-if="row.status === '涓ラ噸缂洪櫡'"
+ type="text"
+ @click="transferToRepairOrder(row.id)"
+ >
+ 杞淮淇崟
+ </el-button> -->
+ <el-button type="text" @click="getLedger(row.deviceLedgerId)">
+ 鏌ョ湅鍙拌处
+ </el-button>
+ </template>
+ </el-table-column>
+ </el-table>
+
+ <!-- 缂洪櫡鐧昏瀵硅瘽妗� -->
+ <el-dialog title="鐧昏璁惧缂洪櫡" v-model="showRegisterDialog" width="50%">
+ <el-form :model="defectForm" :rules="defectRules" ref="defectFormRef" label-width="100px">
+ <el-form-item label="璁惧鍚嶇О" prop="deviceName">
+ <el-select v-model="defectForm.deviceLedgerId" @change="setDeviceModel">
+ <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="defectDescription">
+ <el-input type="textarea" v-model="defectForm.defectDescription"></el-input>
+ </el-form-item>
+ <el-form-item label="璁惧鐘舵��" prop="status">
+ <el-radio-group v-model="defectForm.status">
+ <el-radio label="姝e父">姝e父</el-radio>
+ <el-radio label="涓�鑸己闄�">涓�鑸己闄�</el-radio>
+ <el-radio label="涓ラ噸缂洪櫡">涓ラ噸缂洪櫡</el-radio>
+ </el-radio-group>
+ </el-form-item>
+ </el-form>
+ <template #footer>
+ <span class="dialog-footer">
+ <el-button @click="showRegisterDialog = false">鍙栨秷</el-button>
+ <el-button type="primary" @click="submitDefectForm">纭畾</el-button>
+ </span>
+ </template>
+ </el-dialog>
+
+ <!-- 缂洪櫡璁惧鍙拌处瀵硅瘽妗� -->
+ <el-dialog title="缂洪櫡璁惧鍙拌处" v-model="showLedgerDialog" width="80%">
+ <el-table :data="ledgerList" style="width: 100%; margin-top: 10px;" border>
+ <el-table-column prop="deviceName" label="璁惧鍚嶇О"></el-table-column>
+ <el-table-column prop="defectDescription" label="缂洪櫡鎻忚堪"></el-table-column>
+ <el-table-column prop="status" label="鐘舵��"></el-table-column>
+ <el-table-column prop="eliminateTime" label="娑堢己鏃堕棿"></el-table-column>
+ </el-table>
+ </el-dialog>
+ </div>
+</template>
+
+<script setup>
+import { ref, reactive } from 'vue';
+import { ElMessage } from 'element-plus';
+import { getDeviceLedger } from "@/api/equipmentManagement/ledger";
+// 鍋囪浠ヤ笅鏄悗绔帴鍙�
+import {
+ registerDefect,
+ getDefectList,
+ eliminateDefect as apiEliminateDefect,
+ getDefectLedger,
+ deleteDefect
+} from '@/api/equipmentManagement/defectManagement';
+
+// 缂洪櫡鍒楄〃
+const defectList = ref([]);
+// 鐧昏瀵硅瘽妗嗘樉绀虹姸鎬�
+const showRegisterDialog = ref(false);
+// 鍙拌处瀵硅瘽妗嗘樉绀虹姸鎬�
+const showLedgerDialog = ref(false);
+// 缂洪櫡琛ㄥ崟
+const defectForm = reactive({
+ deviceLedgerId: '',
+ defectDescription: '',
+ status: '',
+});
+const deviceOptions = ref([]);
+// 琛ㄥ崟楠岃瘉瑙勫垯
+const defectRules = reactive({
+ deviceLedgerId: [{ required: true, message: '璇疯緭鍏ヨ澶囧悕绉�', trigger: 'blur' }],
+ defectDescription: [{ required: true, message: '璇疯緭鍏ョ己闄锋弿杩�', trigger: 'blur' }]
+});
+// 琛ㄥ崟寮曠敤
+const defectFormRef = ref(null);
+// 鍙拌处鍒楄〃
+const ledgerList = ref([]);
+
+const loadDeviceName = async () => {
+ const { data } = await getDeviceLedger();
+ // console.log(data);
+ deviceOptions.value = data;
+};
+
+// 鑾峰彇缂洪櫡鍒楄〃
+const fetchDefectList = async () => {
+ try {
+ const res = await getDefectList();
+ if (res.code === 200) {
+ defectList.value = res.data.records;
+ } else {
+ ElMessage.error(res.message || '鑾峰彇缂洪櫡鍒楄〃澶辫触');
+ }
+ } catch (error) {
+ ElMessage.error('鑾峰彇缂洪櫡鍒楄〃澶辫触');
+ }
+};
+
+// 鎻愪氦缂洪櫡鐧昏琛ㄥ崟
+const submitDefectForm = async () => {
+ if (!defectFormRef.value) return;
+ try {
+ await defectFormRef.value.validate();
+ const res = await registerDefect(defectForm);
+ if (res.code === 200) {
+ ElMessage.success('缂洪櫡鐧昏鎴愬姛');
+ showRegisterDialog.value = false;
+ fetchDefectList();
+ } else {
+ ElMessage.error(res.message || '缂洪櫡鐧昏澶辫触');
+ }
+ } catch (error) {
+ ElMessage.error('璇峰~鍐欏畬鏁磋〃鍗曚俊鎭�');
+ }
+};
+
+// 娑堥櫎缂洪櫡
+const eliminateDefect = async (row) => {
+
+ try {
+ const res = await apiEliminateDefect(row);
+ if (res.code === 200) {
+ ElMessage.success('缂洪櫡娑堥櫎鎴愬姛');
+ fetchDefectList();
+ } else {
+ ElMessage.error(res.message || '缂洪櫡娑堥櫎澶辫触');
+ }
+ } catch (error) {
+ ElMessage.error('缂洪櫡娑堥櫎澶辫触');
+ }
+};
+
+// // 杞淮淇伐鍗�
+// const transferToRepairOrder = async (id) => {
+// try {
+// const res = await transferToRepair(id);
+// if (res.code === 200) {
+// ElMessage.success('杞淮淇伐鍗曟垚鍔�');
+// } else {
+// ElMessage.error(res.message || '杞淮淇伐鍗曞け璐�');
+// }
+// } catch (error) {
+// ElMessage.error('杞淮淇伐鍗曞け璐�');
+// }
+// };
+
+// 鑾峰彇缂洪櫡璁惧鍙拌处
+const getLedger = async (deviceLedgerId) => {
+ try {
+ const res = await getDefectLedger(deviceLedgerId);
+ if (res.code === 200) {
+ ledgerList.value = res.data.records;
+ showLedgerDialog.value = true;
+ } else {
+ ElMessage.error(res.message || '鑾峰彇缂洪櫡璁惧鍙拌处澶辫触');
+ }
+ } catch (error) {
+ ElMessage.error('鑾峰彇缂洪櫡璁惧鍙拌处澶辫触');
+ }
+};
+
+// 缁勪欢鎸傝浇鏃惰幏鍙栫己闄峰垪琛�
+const onMounted = () => {
+ fetchDefectList();
+ loadDeviceName();
+};
+onMounted();
+</script>
+
+<style scoped>
+.defect-management {
+ padding: 20px;
+}
+
+.actions {
+ margin-bottom: 10px;
+}
+</style>
\ No newline at end of file
--
Gitblit v1.9.3