From 9bf2a515f5ede3acd76ac9312132d49b2e97a44c Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期二, 01 四月 2025 16:30:37 +0800
Subject: [PATCH] 可靠性计划详情页编写

---
 src/api/standard/standardLibrary.js              |   10 ++
 src/views/business/reliabilityPlan/plan.vue      |  136 ++++++++++++++++++++++++++++++++++
 src/views/business/reliabilityPlan/index.vue     |   51 ++++++++++++
 src/views/performance/manHour/workTimeConfig.vue |   11 +-
 src/router/index.js                              |   20 +++++
 5 files changed, 221 insertions(+), 7 deletions(-)

diff --git a/src/api/standard/standardLibrary.js b/src/api/standard/standardLibrary.js
index 785c6fb..3c87f74 100644
--- a/src/api/standard/standardLibrary.js
+++ b/src/api/standard/standardLibrary.js
@@ -92,7 +92,6 @@
   });
 }
 
-
 // 閫氳繃妫�楠屾爣鍑嗘煡璇㈡楠岄」鐩�
 export function selectStandardProductListByMethodId(query) {
   return request({
@@ -254,3 +253,12 @@
     params: query,
   });
 }
+
+// 鏍囧噯鏍�--瀹℃牳
+export function productListCheck(data) {
+  return request({
+    url: "/standardTree/productListCheck",
+    method: "post",
+    data: data,
+  });
+}
diff --git a/src/router/index.js b/src/router/index.js
index 804b5d8..89a0732 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -178,6 +178,26 @@
     ],
   },
   {
+    // 鍙潬鎬ц鍒�
+    path: "/reliabilityPlan",
+    component: Layout,
+    hidden: true,
+    permissions: ["business:reliabilityPlan"],
+    children: [
+      {
+        // 璁″垝璇︽儏
+        path: "plan",
+        component: () => import("@/views/business/reliabilityPlan/plan"),
+        name: "plan",
+        meta: {
+          title: "璁″垝璇︽儏",
+          activeMenu: "/business/reliabilityPlan",
+          keepAlive: true,
+        },
+      },
+    ],
+  },
+  {
     // 鐢ㄦ埛绠$悊
     path: "/system/user-auth",
     component: Layout,
diff --git a/src/views/business/reliabilityPlan/index.vue b/src/views/business/reliabilityPlan/index.vue
index a9c2486..020e451 100644
--- a/src/views/business/reliabilityPlan/index.vue
+++ b/src/views/business/reliabilityPlan/index.vue
@@ -169,7 +169,33 @@
               type: 'text',
               clickFun: (row) => {
                 this.openAddDia('edit', row);
-              }
+              },
+              disabled: (row) => {
+                return row.state == 1
+              },
+            },
+            {
+              name: '璁″垝',
+              type: 'text',
+              clickFun: (row) => {
+                this.$router.push({
+                  path: "/reliabilityPlan/plan", query: {
+                    id: row.id,
+                    type: '鎴愬搧',
+                    state: row.state
+                  }
+                });
+              },
+            },
+            {
+              name: '鎻愪氦',
+              type: 'text',
+              clickFun: (row) => {
+                this.openAddDia('submit', row);
+              },
+              disabled: (row) => {
+                return row.state == 1
+              },
             },
             {
               name: '瀹℃牳',
@@ -239,6 +265,29 @@
               }
             },
             {
+              name: '璁″垝',
+              type: 'text',
+              clickFun: (row) => {
+                this.$router.push({
+                  path: "/reliabilityPlan/plan", query: {
+                    id: row.id,
+                    type: '鍘熻緟鏉�',
+                    state: row.state
+                  }
+                });
+              },
+            },
+            {
+              name: '鎻愪氦',
+              type: 'text',
+              clickFun: (row) => {
+                this.openAddDia('submit', row);
+              },
+              disabled: (row) => {
+                return row.state == 1
+              },
+            },
+            {
               name: '瀹℃牳',
               type: 'text',
               clickFun: (row) => {
diff --git a/src/views/business/reliabilityPlan/plan.vue b/src/views/business/reliabilityPlan/plan.vue
new file mode 100644
index 0000000..279d2d2
--- /dev/null
+++ b/src/views/business/reliabilityPlan/plan.vue
@@ -0,0 +1,136 @@
+<template>
+  <div class="app-container">
+    <div class="search">
+      <span></span>
+      <div class="btn">
+        <el-button type="primary" size="small" @click="openAdd" v-if="planState != 1">鏂板</el-button>
+        <el-button type="primary" size="small" @click="isEdit = true" v-if="planState != 1">缂栬緫</el-button>
+        <el-button type="primary" size="small" @click="save" :loading="saveLoading" v-if="planState != 1">淇濆瓨</el-button>
+        <el-button size="small" @click="goback">杩斿洖</el-button>
+      </div>
+    </div>
+    <el-table :data="tableData" style="width: 100%">
+      <el-table-column prop="date" label="妫�娴嬮」" width="180">
+      </el-table-column>
+      <el-table-column prop="name" label="娴嬭瘯鏍囧噯" width="180">
+        <template slot-scope="scope">
+          <el-select v-model="scope.row.name" placeholder="璇烽�夋嫨" v-if="isEdit" size="small">
+            <el-option v-for="item in standardList" :key="item.value" :label="item.label" :value="item.value">
+            </el-option>
+          </el-select>
+          <span v-else>{{ scope.row.name }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="address" label="棰戞">
+        <template slot-scope="scope">
+          <el-select v-model="scope.row.name" placeholder="璇烽�夋嫨" v-if="isEdit" size="small">
+            <el-option v-for="item in dict.type.planned_frequency" :key="item.value" :label="item.label"
+              :value="item.value">
+            </el-option>
+          </el-select>
+          <span v-else>{{ scope.row.name }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column prop="address" label="澶囨敞">
+        <template slot-scope="scope">
+          <el-input size="small" placeholder="璇疯緭鍏�" v-model="scope.row.address" v-if="isEdit">
+          </el-input>
+          <span v-else>{{ scope.row.address }}</span>
+        </template>
+      </el-table-column>
+      <el-table-column fixed="right" label="鎿嶄綔" width="100" v-if="planState != 1">
+        <template slot-scope="scope">
+          <el-button type="text" size="small" @click="handleDelete(scope.row)" style="color: red;">鍒犻櫎</el-button>
+        </template>
+      </el-table-column>
+    </el-table>
+    <el-dialog title="鏂板" :visible.sync="addDia" width="500px">
+      <el-form :model="addForm" ref="addForm" :rules="addRules" label-position="right" label-width="120px">
+        <el-form-item label="妫�楠岄」" prop="name">
+          <el-select v-model="addForm.name" placeholder="璇烽�夋嫨" size="small" style="width: 100%;">
+            <el-option v-for="item in itemList" :key="item.value" :label="item.label" :value="item.value">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="娴嬭瘯鏍囧噯" prop="number">
+          <el-select v-model="addForm.name" placeholder="璇烽�夋嫨" size="small" style="width: 100%;">
+            <el-option v-for="item in standardList" :key="item.value" :label="item.label" :value="item.value">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="棰戞" prop="number">
+          <el-select v-model="addForm.name" placeholder="璇烽�夋嫨" size="small" style="width: 100%;">
+            <el-option v-for="item in dict.type.planned_frequency" :key="item.value" :label="item.label"
+              :value="item.value">
+            </el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="澶囨敞" prop="number">
+          <el-input size="small" placeholder="璇疯緭鍏�" v-model="addForm.address">
+          </el-input>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="addDia = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="submitProduct('addForm')">纭� 璁�</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+export default {
+  dicts: ["planned_frequency"],
+  data() {
+    return {
+      tableData: [
+        {}
+      ],
+      isEdit: false,
+      standardList: [],//鏍囧噯鍒楄〃
+      saveLoading: false,
+      addForm: {},
+      addRules: {
+        name: [{ required: true, message: "璇疯緭鍏ユ楠岄」", trigger: "blur" }],
+      },
+      addDia: false,
+      itemList: [],//妫�楠岄」鍒楄〃
+      planId: null,//涓昏鍒掕〃id
+      planType: null,//涓昏鍒掕〃绫诲瀷
+      planState: null,//涓昏鍒掕〃瀹℃牳鐘舵��
+    }
+  },
+  mounted() {
+    const { id, type, state } = this.$route.query
+    this.planId = id;
+    this.planType = type;
+    this.planState = state
+  },
+  methods: {
+    // 鍒犻櫎
+    handleDelete(row) { },
+    // 淇濆瓨
+    save() {
+      this.saveLoading = true;
+      this.isEdit = false
+    },
+    goback() {
+      this.$tab.closePage();
+    },
+    openAdd() {
+      this.addForm = {}
+      this.addDia = true;
+    },
+    submitProduct() { }
+  }
+}
+</script>
+
+<style scoped>
+.search {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  margin-bottom: 16px;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/performance/manHour/workTimeConfig.vue b/src/views/performance/manHour/workTimeConfig.vue
index d02ceba..0d54d8f 100644
--- a/src/views/performance/manHour/workTimeConfig.vue
+++ b/src/views/performance/manHour/workTimeConfig.vue
@@ -5,17 +5,18 @@
         <el-form :model="queryParams" ref="queryParams" size="small" :inline="true">
           <el-form-item label="缂栧彿" prop="number">
             <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.number"
-                      @keyup.enter.native="refreshTable()"></el-input>
+              @keyup.enter.native="refreshTable()"></el-input>
           </el-form-item>
           <el-form-item label="瀹為獙瀹�" prop="laboratory">
-            <el-select v-model="queryParams.laboratory" placeholder="鍏ㄩ儴" size="small" @change="refreshTable()" clearable>
+            <el-select v-model="queryParams.laboratory" placeholder="鍏ㄩ儴" size="small" @change="refreshTable()"
+              clearable>
               <el-option v-for="item in laboratoryList" :key="item.value" :label="item.label" :value="item.value">
               </el-option>
             </el-select>
           </el-form-item>
           <el-form-item label="閮ㄩ棬" prop="department">
             <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.department"
-                      @keyup.enter.native="refreshTable()"></el-input>
+              @keyup.enter.native="refreshTable()"></el-input>
           </el-form-item>
           <el-form-item>
             <el-button type="primary" size="mini" @click="refreshTable">鏌ヨ</el-button>
@@ -25,7 +26,7 @@
       </div>
       <div>
         <el-button size="small" type="primary" @click="openAdd('鏂板')"
-                   v-if="checkPermi(['performance:manHour:workTimeConfig:add'])">鏂� 澧�</el-button>
+          v-if="checkPermi(['performance:manHour:workTimeConfig:add'])">鏂� 澧�</el-button>
       </div>
     </div>
     <div class="table">
@@ -275,7 +276,7 @@
       })
         .then(() => {
           deleteAuxiliaryWorkingHours({ id: row.id }).then((res) => {
-            if (res.code == 200){
+            if (res.code == 200) {
               this.$message.success("鍒犻櫎鎴愬姛");
               this.refresh();
             }

--
Gitblit v1.9.3