From eada8c650d43765a6bf0993af5fb771b8c0b363c Mon Sep 17 00:00:00 2001
From: ludc
Date: 星期四, 29 二月 2024 21:05:16 +0800
Subject: [PATCH] 代码提交

---
 Source/UBCS-WEB/src/views/system/deploy.vue |  242 +++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 197 insertions(+), 45 deletions(-)

diff --git a/Source/UBCS-WEB/src/views/system/deploy.vue b/Source/UBCS-WEB/src/views/system/deploy.vue
index 2271e3b..04a5186 100644
--- a/Source/UBCS-WEB/src/views/system/deploy.vue
+++ b/Source/UBCS-WEB/src/views/system/deploy.vue
@@ -1,28 +1,42 @@
 <template>
     <basic-container>
         <avue-crud :option="option"
-                :table-loading="loading"
-                :data="data"
-                :page.sync="page"
-                :permission="permissionList"
-                :before-open="beforeOpen"
-                v-model="form"
-                ref="crud"
-                :cell-style="cellStyle" 
-                :row-style="rowStyle"
-                @on-load="onLoad">
-            <template slot-scope="scope" slot="menu">
+            :table-loading="loading"
+            :data="data"
+            :page.sync="page"
+            :permission="permissionList"
+            :before-open="beforeOpen"
+            v-model="form"
+            ref="crud"
+            :cell-style="cellStyle" 
+            :row-style="rowStyle"
+            @row-update="rowUpdate"
+            @row-save="addServiceInfo"
+            @on-load="onLoad">
+            <template slot="menu" slot-scope="{ row, index }">
                 <el-button type="text"
-                        icon="el-icon-upload"
-                        size="small"
-                        v-if="permissionList.upload"
-                        @click="handleDownload(scope.row)">涓� 浼�
+                    :disabled="row.name === 'ubcs-deploy'"
+                    icon="el-icon-upload"
+                    size="small"
+                    v-if="permissionList.upload"
+                    @click.native="importServiceJar(row)">涓� 浼�
                 </el-button>
                 <el-button type="text"
-                        icon="el-icon-refresh"
-                        size="small"
-                        v-if="permissionList.restart"
-                        @click="test">閲� 鍚�
+                    :disabled="row.name === 'ubcs-deploy'"
+                    :icon="row.status === 'UP' ? 'el-icon-refresh':'el-icon-video-play'"
+                    size="small"
+                    v-if="permissionList.restart"
+                    @click="cmdExecute(row)">
+                    {{ row.status === 'UP' ?  '閲� 鍚�': '鍚� 鍔�' }}
+                </el-button>
+                <el-button type="text"
+                    :disabled="row.name === 'ubcs-deploy'"
+                    v-if="permissionList.editBtn"
+                    icon="el-icon-edit"
+                    size="small"
+                    @click="handleEdit(row, index)"
+                    >
+                    缂栬緫
                 </el-button>
             </template>
             <template slot-scope="{row}"
@@ -34,16 +48,39 @@
                 <el-tag>{{`${row.serviceNum}`}}</el-tag>
             </template>
         </avue-crud>
+        <uploadServiceJarDialog :serverName="serviceName" :visible.sync="uploadDialogVisible"></uploadServiceJarDialog>
     </basic-container>
 </template>
 
 <script>
-import { getApplications } from "@/api/system/deploy";
-import moment from 'moment';
+import { getApplications,saveOrGetServiceConfInfo,saveOrUpdateServiceInfo,addSave,executeCmd } from "@/api/system/deploy";
+import moment from "moment";
+import {mapGetters} from "vuex";
 export default {
     data() {
         return {
-            option: {
+            data: [],
+            uploadDialogVisible: false,
+            loading: true,
+            isDisabled: true,
+            serviceName: "",
+        }
+    },
+    created() {
+      
+    },
+    computed: {
+        ...mapGetters(["permission"]),
+        permissionList() {
+            return {
+                upload: this.vaildData(this.permission.deploy.deploy_upload, false),
+                restart: this.vaildData(this.permission.deploy.deploy_restart, false),
+                editBtn: this.vaildData(this.permission.deploy.deploy_edit, false),
+                addBtn: this.vaildData(this.permission.deploy.deploy_add, false),
+            };
+        },
+        option(){
+            return {
                 columnBtn:false,
                 height: 'auto',
                 calcHeight: 30,
@@ -52,7 +89,7 @@
                 border: true,
                 index: true,
                 viewBtn: false,
-                addBtn: false,
+                addBtn: true,
                 editBtn: false,
                 delBtn: false,
                 selection: true,
@@ -63,47 +100,99 @@
                         label: "瀹炰緥鍚嶇О",
                         prop: "name",
                         sortable: true,
-                    },
-                    {
+                        display: false,
+                    }, {
                         label: "杩愯鐘舵��",
                         prop: "status",
-                    },
-                    {
+                        display: false,
+                    }, {
                         label: "鍚姩鏃堕棿",
                         prop: "statusTimestamp",
-                    },
-                    {
+                        sortable: true,
+                        display: false,
+                    }, {
                         label: "绔彛鍙�",
                         prop: "port",
-                    },
-                    {
+                        display: false,
+                    }, {
                         label: "瀹炰緥鏁伴噺",
                         prop: "serviceNum",
                         width: 120,
+                        display: false,
+                    },
+                    
+                    {
+                        label: "瀹炰緥鍚嶇О",
+                        prop: "serverName",
+                        labelWidth: 140,
+                        hide: true,
+                        disabled: this.isDisabled,
+                    },{
+                        label: "鏈嶅姟jar瀛樻斁鐨勮矾寰�",
+                        prop: "serverPath",
+                        labelWidth: 140,
+                        hide: true,
+                        rules: [{
+                            required: true,
+                            message: "璇疯緭鍏ユ湇鍔ar瀛樻斁鐨勮矾寰�",
+                            trigger: "blur"
+                        }]
+                    },{
+                        label: "鏃ュ織鏂囦欢瀛樻斁浣嶇疆",
+                        prop: "logPath",
+                        labelWidth: 140,
+                        hide: true,
+                        disabled: true,
+                        rules: [{
+                            required: false,
+                            message: "璇疯緭鍏ユ湇鍔ar瀛樻斁鐨勮矾寰�",
+                            trigger: "blur"
+                        }]
+                    },{
+                        label: "鏂囦欢澶囦唤璺緞",
+                        prop: "fileBack",
+                        labelWidth: 140,
+                        hide: true,
+                        rules: [{
+                            required: false,
+                            message: "璇疯緭鍏ユ枃浠跺浠借矾寰�",
+                            trigger: "blur"
+                        }]
+                    },
+                ],
+                group: [
+                    {
+                        icon: 'el-icon-info',
+                        label: '鍩虹鍛戒护閰嶇疆',
+                        collapse: true,
+                        labelWidth: 140,
+                        prop: 'cmdCofig',
+                        column: [
+                            {
+                            label: '寮�濮嬪懡浠�',
+                            prop: 'startCmd',
+                            }, {
+                            label: '閲嶅惎鍛戒护',
+                            prop: 'restartCmd',
+                            }, {
+                            label: '鍋滄鍛戒护',
+                            prop: 'stopCmd',
+                            },
+                        ]
                     },
                 ]
-            },
-            data: [],
-        }
-    },
-    created() {
-      
-    },
-    computed: {
-        permissionList() {
-            return {
-                upload: true,
-                restart: true,
-                // viewBtn: this.vaildData(this.permission, true),
-            };
+            }
         },
     },
     methods: {
 
         onLoad(){
+            this.loading = true;
             getApplications().then(res=>{
                 let serviceData = res.data.data;
                 if(serviceData.length>0){
+                    // 鍏堟竻绌�
+                    this.data = [];
                     serviceData.forEach(element => {
                         //console.log("element",element);
                         // 灏嗘椂闂磋浆鎹负鏈湴鏃堕棿
@@ -114,6 +203,7 @@
                         this.data.push(element)
                     });
                 }
+                this.loading = false;
                 //console.log(res.data.data);
             });
         },
@@ -142,6 +232,68 @@
             }
             }
         },
+        // 鎺у埗绀轰緥鍚嶇О鏄惁鍙緭鍏�
+        beforeOpen(done, type) {
+            // console.log(type)
+            if(type === "edit"){
+                this.isDisabled = true;
+            }else {
+                this.isDisabled = false;
+            }
+            done();
+        },
+        // 鍏抽棴寮圭獥
+        /** 瀵煎叆 */
+        importServiceJar(row) {
+            // console.log(row);
+            this.serviceName = row.name;
+            this.uploadDialogVisible = true;
+        },
+        // 鏂板
+        addServiceInfo(row, done, loading){
+            addSave(row).then(() => {
+                this.onLoad();
+                this.$message({
+                    type: "success",
+                    message: "鎿嶄綔鎴愬姛!"
+                });
+                done();
+            }, error => {
+                window.console.log(error);
+                loading();
+            });
+        },
+        // 缂栬緫
+        handleEdit(row) {
+            saveOrGetServiceConfInfo(row).then(res=>{
+                // console.log(res.data.data);
+                // 璇锋眰鍚庣鎺ュ彛锛岃幏鍙栧埌璇ユ湇鍔$殑鍩虹閰嶇疆淇℃伅
+                this.$refs.crud.rowEdit(res.data.data, row.$index);
+            })
+        },
+        // 淇敼
+        rowUpdate(row, index, done) {
+            saveOrUpdateServiceInfo(row).then(() => {
+                this.onLoad()
+                this.$message({
+                    type: "success",
+                    message: "淇敼鎴愬姛!"
+                });
+                done()
+            }).catch(res => {
+            })
+        },
+        // 鍛戒护鎵ц
+        cmdExecute(row){
+            // console.log(row);
+            executeCmd(row).then(res => {
+                this.onLoad()
+                this.$message({
+                    type: "success",
+                    message: res.data.msg
+                });
+            });
+        },
 
     }
 }

--
Gitblit v1.9.3