From 9b0fb6cf78f190a863d5f74f351201b8a28f911d Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期六, 31 八月 2024 17:44:17 +0800
Subject: [PATCH] 平台管理优化

---
 src/views/system/platform/index.vue |  169 ++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 103 insertions(+), 66 deletions(-)

diff --git a/src/views/system/platform/index.vue b/src/views/system/platform/index.vue
index 627102f..2a9a6dc 100644
--- a/src/views/system/platform/index.vue
+++ b/src/views/system/platform/index.vue
@@ -21,16 +21,6 @@
         >娣诲姞
         </el-button>
       </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          size="mini"
-          @click=""
-          v-hasPermi="['platform:del']"
-        >鍒犻櫎
-        </el-button>
-      </el-col>
     </el-row>
 
     <div>
@@ -44,24 +34,33 @@
           label="骞冲彴鍚嶇О">
         </el-table-column>
         <el-table-column
-          prop="subPlatformName"
-          label="瀛愮骇骞冲彴鍚嶇О">
+          prop="platformIP"
+          label="骞冲彴IP">
         </el-table-column>
         <el-table-column
           prop="area"
           label="琛屾斂鍖哄煙">
         </el-table-column>
         <el-table-column
-          prop="platformIP"
-          label="骞冲彴IP">
+          prop="remark"
+          label="澶囨敞">
         </el-table-column>
+<!--        <el-table-column-->
+<!--          prop="monthOutLine"-->
+<!--          label="鏈湀绂荤嚎鏃堕暱">-->
+<!--        </el-table-column>-->
         <el-table-column
-          prop="status"
-          label="鏄惁鍦ㄧ嚎">
-        </el-table-column>
-        <el-table-column
-          prop="monthOutLine"
-          label="鏈湀绂荤嚎鏃堕暱">
+          label="鎿嶄綔"
+          width="100">
+          <template slot-scope="scope">
+            <el-button @click="handleEdit(scope.row)" type="text" size="small" style="margin-right: 5px">缂栬緫</el-button>
+            <el-popconfirm
+              @confirm="delPlatForm(scope.row.id)"
+              title="纭畾瑕佸垹闄よ骞冲彴鍚楋紵"
+            >
+              <el-button slot="reference" type="text" size="small">鍒犻櫎</el-button>
+            </el-popconfirm>
+          </template>
         </el-table-column>
       </el-table>
 
@@ -75,51 +74,56 @@
     </div>
 
     <el-dialog
-      title="鏂板骞冲彴"
+      :title="opTitle"
       :visible.sync="addShow"
-      width="1000px"
+      width="500px"
+      :close-on-click-modal="false"
       :before-close="addClose">
-      <div style="display: flex; flex-direction: row">
-        <div style="flex: 2; padding-right: 20px;">
-          <div>
-            <h3>骞冲彴淇℃伅锛�</h3>
-          </div>
-          <el-form :model="addForm" :rules="addFormRules" ref="addForm" size="small">
+      <div>
+          <el-form :model="addForm" label-position="top" :rules="addFormRules" ref="addForm" size="small">
             <el-form-item label="骞冲彴鍚嶇О" prop="platformName">
               <el-input v-model="addForm.platformName"></el-input>
             </el-form-item>
             <el-form-item label="骞冲彴IP" prop="platformIP">
               <el-input v-model="addForm.platformIP"></el-input>
             </el-form-item>
+            <el-form-item label="琛屾斂鍖哄煙" prop="areaList">
+              <el-select v-model="addForm.areaList" multiple placeholder="璇烽�夋嫨琛屾斂鍖哄煙">
+                <el-option
+                  v-for="dict in dict.type.area_code"
+                  :key="dict.value"
+                  :label="dict.label"
+                  :value="dict.value"
+                ></el-option>
+              </el-select>
+            </el-form-item>
             <el-form-item label="澶囨敞淇℃伅" prop="mark">
               <el-input v-model="addForm.remark"></el-input>
             </el-form-item>
           </el-form>
         </div>
-        <div style="flex: 4; padding-left: 20px;border-left: 1px solid #b2b2b2; min-height: 400px">
-          <div>
-            <h3>閮ㄧ讲淇℃伅锛�</h3>
-          </div>
-          <div v-for="(deploy, index) in addForm.deployList" :key="index" style="margin-bottom: 20px">
-            <el-form size="small" ref="deployForm" :inline="true">
-              <el-form-item label="骞冲彴鍚嶇О" prop="platformName">
-                <el-input v-model="deploy.subPlatformName"></el-input>
-              </el-form-item>
-              <el-form-item label="骞冲彴IP" prop="platformIP">
-                <el-input v-model="deploy.platformIP"></el-input>
-              </el-form-item>
-              <el-form-item label="琛屾斂鍖哄煙" prop="area">
-                <el-input v-model="deploy.area"></el-input>
-              </el-form-item>
-              <el-form-item label="澶囨敞淇℃伅" prop="remark">
-                <el-input v-model="deploy.remark"></el-input>
-              </el-form-item>
-            </el-form>
-          </div>
-          <el-button style="float: right" size="small" type="primary" @click="next">缁х画娣诲姞</el-button>
-        </div>
-      </div>
-
+<!--        <div style="flex: 4; padding-left: 20px;border-left: 1px solid #b2b2b2; min-height: 400px">-->
+<!--          <div>-->
+<!--            <h3>閮ㄧ讲淇℃伅锛�</h3>-->
+<!--          </div>-->
+<!--          <div v-for="(deploy, index) in addForm.deployList" :key="index" style="margin-bottom: 20px">-->
+<!--            <el-form size="small" ref="deployForm" :inline="true">-->
+<!--              <el-form-item label="骞冲彴鍚嶇О" prop="platformName">-->
+<!--                <el-input v-model="deploy.subPlatformName"></el-input>-->
+<!--              </el-form-item>-->
+<!--              <el-form-item label="骞冲彴IP" prop="platformIP">-->
+<!--                <el-input v-model="deploy.platformIP"></el-input>-->
+<!--              </el-form-item>-->
+<!--              <el-form-item label="琛屾斂鍖哄煙" prop="area">-->
+<!--                <el-input v-model="deploy.area"></el-input>-->
+<!--              </el-form-item>-->
+<!--              <el-form-item label="澶囨敞淇℃伅" prop="remark">-->
+<!--                <el-input v-model="deploy.remark"></el-input>-->
+<!--              </el-form-item>-->
+<!--            </el-form>-->
+<!--          </div>-->
+<!--          <el-button style="float: right" size="small" type="primary" @click="next">缁х画娣诲姞</el-button>-->
+<!--        </div>-->
       <span slot="footer" class="dialog-footer">
         <el-button @click="addClose">鍙� 娑�</el-button>
         <el-button type="primary" @click="addPlatform">淇濆瓨</el-button>
@@ -130,9 +134,10 @@
 </template>
 
 <script>
-import { getPlatforms, addPlatform} from '@/api/platform/platform'
+import { getPlatforms, addPlatform, editPlatform, deletePlatformById} from '@/api/platform/platform'
 export default {
   name: 'index',
+  dicts: ['area_code'],
   data() {
     return {
       deployRules: {
@@ -152,12 +157,17 @@
         ],
         platformIP: [
           { required: true, message: '骞冲彴IP涓嶈兘涓虹┖', trigger: 'blur' }
+        ],
+        areaList: [
+          { required: true, message: '璇烽�夋嫨鍖哄煙', trigger: 'change' }
         ]
       },
       addForm: {
+        id: null,
         platformName: '',
         remark: '',
         platformIp: '',
+        areaList: [],
         deployList: [
           {
             subPlatformName: '',
@@ -174,13 +184,25 @@
       },
       tableData: [],
       total: 0,
-      currentRowNum: 0
+      currentRowNum: 0,
+      opTitle: '鏂板骞冲彴'
     }
   },
   mounted() {
     this.getList();
   },
   methods: {
+    delPlatForm(id) {
+      deletePlatformById(id).then(res => {
+        this.$message.success("鍒犻櫎鎴愬姛")
+        this.getList()
+      })
+    },
+    handleEdit(row) {
+      this.addForm = row;
+      this.opTitle = "淇敼骞冲彴"
+      this.addShow = true;
+    },
     next() {
       this.addForm.deployList.push({
         platformName: '',
@@ -191,6 +213,13 @@
     },
     handleAdd() {
       this.addShow = true
+      this.addForm = {
+        id: null,
+        platformName: '',
+        remark: '',
+        platformIp: '',
+        areaList: [],
+      }
     },
     checkDeployList() {
       if (this.addForm.deployList) {
@@ -202,19 +231,27 @@
     addPlatform() {
       this.$refs['addForm'].validate((valid) => {
         if (valid) {
-          this.checkDeployList()
-          if (this.addForm.deployList) {
-            console.log(this.addForm.deployList)
-            if (this.addForm.deployList.some(item => !item.platformName || !item.platformIP || !item.area)) {
-              this.$message.error("璇锋鏌ュ钩鍙伴儴缃蹭俊鎭槸鍚﹀~鍐欏畬鏁�");
-              return; // 閫�鍑� validate 鍥炶皟
-            }
+          // this.checkDeployList()
+          // if (this.addForm.deployList) {
+          //   console.log(this.addForm.deployList)
+          //   if (this.addForm.deployList.some(item => !item.platformName || !item.platformIP || !item.area)) {
+          //     this.$message.error("璇锋鏌ュ钩鍙伴儴缃蹭俊鎭槸鍚﹀~鍐欏畬鏁�");
+          //     return; // 閫�鍑� validate 鍥炶皟
+          //   }
+          // }
+          if (this.addForm.id) {
+            editPlatform(this.addForm).then(res => {
+              this.$message.success("淇敼鎴愬姛")
+              this.addShow = false
+              this.getList()
+            })
+          } else {
+            addPlatform(this.addForm).then(res => {
+              this.$message.success("娣诲姞鎴愬姛")
+              this.addShow = false
+              this.getList()
+            })
           }
-          addPlatform(this.addForm).then(res => {
-            this.$message.success("娣诲姞鎴愬姛")
-            this.addShow = false
-            this.getList()
-          })
         }
       })
     },

--
Gitblit v1.8.0