Explorar el Código

feat(project): 添加项目线上地址功能

- 在项目列表表格中新增线上地址列显示
- 实现线上地址链接构建逻辑,拼接项目域名与离线端登录页面
- 添加新标签页打开线上地址的功能
- 在新增项目对话框中增加线上地址输入字段
- 在编辑项目对话框中增加线上地址输入字段
- 更新项目表单数据结构,添加webUrl属性支持
LaveyD hace 1 mes
padre
commit
97006102cf

+ 23 - 0
src/views/systemSetting/project.vue

@@ -66,6 +66,18 @@
           label="线下地址"
           width="200">
         </el-table-column>
+        <el-table-column
+          prop="webUrl"
+          label="线上地址"
+          width="260">
+          <template slot-scope="scope">
+            <el-button
+              v-if="scope.row.webUrl"
+              type="text"
+              @click="openOnlineUrl(scope.row.webUrl)">{{ buildOnlineUrl(scope.row.webUrl) }}</el-button>
+            <span v-else>-</span>
+          </template>
+        </el-table-column>
         <el-table-column
           prop="lastHeartbeatTime"
           label="最近一次在线时间"
@@ -165,6 +177,17 @@ export default {
     }
   },
   methods: {
+    // 线上地址 = 项目线上域名 + 离线端前端登录页
+    buildOnlineUrl (url) {
+      if (!url) return ''
+      return url.replace(/\/+$/, '') + '/frontend/offline/#/login'
+    },
+    // 新开标签页打开线上地址
+    openOnlineUrl (url) {
+      const link = this.buildOnlineUrl(url)
+      if (!link) return
+      window.open(link, '_blank')
+    },
     showDialog (type, item) {
       this[`${type}Visible`] = true
       this.currentItem = item

+ 9 - 1
src/views/systemSetting/project/AddDialog.vue

@@ -32,6 +32,13 @@
         prop="offlineUrl">
         <el-input v-model="form.offlineUrl"></el-input>
       </el-form-item>
+      <el-form-item
+        label="线上系统的地址"
+        prop="webUrl">
+        <el-input
+          v-model="form.webUrl"
+          placeholder="例:http://114.104.160.118:18003"></el-input>
+      </el-form-item>
     </el-form>
 
     <div class="dialog-btn-wrap">
@@ -56,7 +63,8 @@ export default {
         projectName: '',
         projectNickName: '',
         projectDesc: '',
-        offlineUrl: ''
+        offlineUrl: '',
+        webUrl: ''
       },
       rules: {}
     }

+ 10 - 1
src/views/systemSetting/project/EditDialog.vue

@@ -25,6 +25,13 @@
         prop="offlineUrl">
         <el-input v-model="form.offlineUrl"></el-input>
       </el-form-item>
+      <el-form-item
+        label="线上系统的地址"
+        prop="webUrl">
+        <el-input
+          v-model="form.webUrl"
+          placeholder="例:http://114.104.160.118:18003"></el-input>
+      </el-form-item>
       <el-form-item
         label="项目的有效期截止时间"
         prop="validEndTime">
@@ -65,6 +72,7 @@ export default {
         projectNickName: '',
         projectDesc: '',
         offlineUrl: '',
+        webUrl: '',
         validEndTime: moment().add(99, 'year').toDate() // 默认有效期为1年
       },
       rules: {}
@@ -107,12 +115,13 @@ export default {
       this.reset()
       // 初始化编辑数据
       if (this.projectItem) {
-        const { id, projectNickName, projectDesc, offlineUrl, validEndTime } = this.projectItem
+        const { id, projectNickName, projectDesc, offlineUrl, webUrl, validEndTime } = this.projectItem
         this.form = {
           id,
           projectNickName,
           projectDesc,
           offlineUrl,
+          webUrl,
           validEndTime: validEndTime ? moment(validEndTime).toDate() : moment().add(99, 'year').toDate()
         }
       }