ソースを参照

Merge branch 'master' of http://120.26.64.82:3000/BFFE/CABaggageData2.0

chenjun 3 年 前
コミット
e90e48414d

BIN
src/assets/index/ic_close_s @2x.png


BIN
src/assets/nav/ic_data_top_check@2x.png


BIN
src/assets/nav/ic_data_top_default @2x.png


+ 4 - 7
src/layout/components/Dialog/index.vue

@@ -1,8 +1,8 @@
 <!--
  * @Author: your name
  * @Date: 2021-10-19 14:56:17
- * @LastEditTime: 2022-03-02 17:14:12
- * @LastEditors: Please set LastEditors
+ * @LastEditTime: 2022-04-28 11:22:47
+ * @LastEditors: your name
  * @Description: 弹出框
  * @FilePath: \Foshan4A\src\layout\components\Dialog\index.vue
 -->
@@ -137,11 +137,8 @@ export default {
           color: #eb2f3b;
         }
       }
-      .dialog-content {
-        .el-input__inner,
-        .el-textarea__inner {
-          width: 94%;
-        }
+      .dialog-content .el-form {
+        padding-right: 24px;
       }
       .el-form-item__label {
         font-size: 14px;

+ 2 - 1
src/layout/components/ToolBar/index.vue

@@ -14,6 +14,7 @@
               <img :src="item.src" :alt="item.meta.title" />
             </div> -->
             <img
+              style="width: 18px; height: 18px"
               :src="dialog == index ? item.srcer : item.src"
               :alt="item.meta.title"
             />
@@ -91,7 +92,7 @@ export default {
     background: #ffffff;
     box-shadow: 0px 6px 7px 0px rgba(0, 0, 0, 0.06);
     border-radius: 4px;
-    min-width: 200px;
+    min-width: 220px;
     .toolbar-list-bar {
       display: flex;
       align-items: center;

+ 8 - 8
src/router/routes/routes-file-one.js

@@ -17,8 +17,8 @@ const BasicsDataRoutes = {
           component: () => import('@/views/BasicsData/views/airlineCompany/airlineCompanyInfo'),
           meta: { title: '航司信息维护', roles: ['airline_information_page'] },
           hidden: true,
-          src: require('@/assets/nav/ic_setting_top_default.png'),
-          srcer: require('@/assets/nav/ic_setting_top_check.png')
+          src: require('@/assets/nav/ic_data_top_default @2x.png'),
+          srcer: require('@/assets/nav/ic_data_top_check@2x.png')
         },
         {
           path: '/BasicsData/airportInfo',
@@ -27,8 +27,8 @@ const BasicsDataRoutes = {
           redirect: '/BasicsData/airportInfo',
           meta: { title: '机场信息维护' },
           hidden: true,
-          src: require('@/assets/nav/ic_setting_top_default.png'),
-          srcer: require('@/assets/nav/ic_setting_top_check.png'),
+          src: require('@/assets/nav/ic_data_top_default @2x.png'),
+          srcer: require('@/assets/nav/ic_data_top_check@2x.png'),
           children: [
             {
               path: '/BasicsData/airportInfo',
@@ -51,8 +51,8 @@ const BasicsDataRoutes = {
           component: () => import('@/views/BasicsData/views/deployNode/deployNodeHome'),
           meta: { title: '节点信息维护' },
           hidden: true,
-          src: require('@/assets/nav/ic_setting_top_default.png'),
-          srcer: require('@/assets/nav/ic_setting_top_check.png')
+          src: require('@/assets/nav/ic_data_top_default @2x.png'),
+          srcer: require('@/assets/nav/ic_data_top_check@2x.png')
         },
         // {
         //   path: '/BasicsData/warningSet',
@@ -84,8 +84,8 @@ const BasicsDataRoutes = {
           component: () => import('@/views/BasicsData/views/BaggageType/BaggageType'),
           meta: { title: '特殊行李分类' },
           hidden: true,
-          src: require('@/assets/nav/ic_setting_top_default.png'),
-          srcer: require('@/assets/nav/ic_setting_top_check.png')
+          src: require('@/assets/nav/ic_data_top_default @2x.png'),
+          srcer: require('@/assets/nav/ic_data_top_check@2x.png')
         }
       ]
     }

+ 6 - 1
src/styles/index.scss

@@ -479,7 +479,8 @@ li {
   justify-content: flex-end;
 }
 
-.DelFoot {
+.DelFoot,
+.del-foot {
   width: 100%;
   height: 56px;
   padding: 10px 22px 10px 0;
@@ -493,6 +494,10 @@ li {
 .el-button--danger {
   background: #eb2f3b;
   border-radius: 4px;
+  font-family: Microsoft YaHei;
+  font-weight: bold;
+  color: #ffffff;
+  border-color: #eb2f3b;
 }
 
 .el-button--primary {

+ 7 - 3
src/views/BasicsData/views/airport/airportInfo.vue

@@ -76,7 +76,7 @@
                         :key="indexs"
                       >
                         {{ res.name }}
-                        <div class="logx" @click="Tinkhall(res)">x</div>
+                        <div class="logx" @click="Tinkhall(res)"></div>
                       </div>
                     </div>
                     <!-- <div class="list desc">{{ item.fullName }}</div> -->
@@ -675,6 +675,7 @@ export default {
         width: 20px;
         height: 20px;
         background: #ffffff;
+        // background: url("../../../../assets/index/ic_close_s @2x.png") no-repeat;
         border: 1px solid #2d67e3;
         border-radius: 2px;
         margin-right: 8px;
@@ -705,11 +706,14 @@ export default {
           position: absolute;
           right: 8px;
           top: 6px;
-          width: 6px;
-          height: 6px;
+          width: 7px;
+          height: 7px;
           display: flex;
           align-items: center;
           justify-content: center;
+          background: url("../../../../assets/index/ic_close_s @2x.png")
+            no-repeat;
+          background-size: 100% 100%;
           // background: #fff;
           cursor: pointer;
           color: #ffffff;

+ 93 - 0
src/views/systemSettings/views/serviceManagement/mixins/query.js

@@ -0,0 +1,93 @@
+/*
+ * @Author: Badguy
+ * @Date: 2022-04-27 15:54:38
+ * @LastEditTime: 2022-04-28 09:51:22
+ * @LastEditors: your name
+ * @Description: 服务相关数据查询
+ * have a nice day!
+ */
+
+import { Query } from '@/api/dataIntegration'
+
+const queryMap = {
+  protocol: 1,
+  machine: 2,
+  service: 3,
+  source: 4,
+  sourceInfo: 5,
+  sourceAndService: 6,
+  outputTarget: 7,
+  outputTargetDetail: 8,
+  outputTargetAndService: 9,
+  machineAndService: 10,
+  serviceDetail: 11,
+  machineByServiceID: 12,
+  sourceByServiceID: 13,
+  targetByServiceID: 14,
+  targetDetailByID: 15,
+  sourceDetailByID: 16,
+  targetByID: 17,
+  sourceByID: 18,
+  processByServiceID: 19,
+  outputTargetByServiceID: 20
+}
+
+export default {
+  data() {
+    return {}
+  },
+  mounted() {
+    this.serviceID && this.queryAll(this.serviceID)
+  },
+  methods: {
+    myQuery(queryID, serviceID) {
+      const params = {
+        id: queryID,
+        dataContent: []
+      }
+      serviceID ?? params.dataContent.push(serviceID)
+      return new Promise((resolve, reject) => {
+        Query(params)
+          .then(result => {
+            if (Number(result.code) === 0) {
+              resolve(result.returnData)
+            } else {
+              reject(result.message)
+            }
+          })
+          .catch(error => {
+            console.log('错误', error)
+          })
+      })
+    },
+    queryService(serviceID) {
+      return this.myQuery(queryMap.serviceDetail, serviceID)
+    },
+    queryMachineListByServiceId(serviceID) {
+      return this.myQuery(queryMap.machineByServiceID, serviceID)
+    },
+    queryProtocolList() {
+      return this.myQuery(queryMap.protocol)
+    },
+    querySourceListByServiceId(serviceID) {
+      return this.myQuery(queryMap.sourceByServiceID, serviceID)
+    },
+    queryOutputTargetListByServiceId(serviceID) {
+      return this.myQuery(queryMap.outputTargetByServiceID, serviceID)
+    },
+    queryAll(serviceID) {
+      Promise.all([
+        this.queryService(serviceID),
+        this.queryMachineListByServiceId(serviceID),
+        this.queryProtocolList(),
+        this.querySourceListByServiceId(serviceID),
+        this.queryOutputTargetListByServiceId(serviceID)
+      ]).then(results => {
+        // const [serviceInfo, machineList, sourceList, targetList] = results
+        console.log(results)
+      }).catch(error => {
+        this.$message.error(error ?? '失败')
+      })
+    }
+  }
+}

+ 9 - 6
src/views/systemSettings/views/serviceManagement/serviceEdit.vue

@@ -1,6 +1,6 @@
 <!--
  * @Date: 2022-03-24 09:55:13
- * @LastEditTime: 2022-04-27 15:07:13
+ * @LastEditTime: 2022-04-28 10:33:02
  * @LastEditors: your name
  * @Description: 服务管理-编辑服务
  * have a nice day!
@@ -40,7 +40,7 @@
                     clearable
                   />
                 </el-form-item>
-                <el-form-item label="是否启用">
+                <el-form-item label="是否同步">
                   <el-radio-group v-model="serviceForm.sync">
                     <el-radio :label="1">是</el-radio>
                     <el-radio :label="0">否</el-radio>
@@ -74,7 +74,7 @@
                   <el-col :span="8">
                     <div class="service-edit-card">
                       <div
-                        class="card-button-plus"
+                        class="card-btn-add"
                         @click="showDialog('machine')"
                       >
                         <i class="el-icon-plus" />
@@ -166,7 +166,7 @@
                   <el-col :span="8">
                     <div class="service-edit-card">
                       <div
-                        class="card-button-plus"
+                        class="card-btn-add"
                         @click="showDialog('source')"
                       >
                         <i class="el-icon-plus" />
@@ -206,7 +206,7 @@
                   <el-col :span="8">
                     <div class="service-edit-card">
                       <div
-                        class="card-button-plus"
+                        class="card-btn-add"
                         @click="showDialog('process')"
                       >
                         <i class="el-icon-plus" />
@@ -402,6 +402,7 @@
 
 <script>
 import Dialog from '@/layout/components/Dialog'
+import query from './mixins/query'
 
 const keyMap = {
   machine: {
@@ -426,8 +427,10 @@ const keyMap = {
 
 export default {
   components: { Dialog },
+  mixins: [query],
   data() {
     return {
+      serviceID: this.$route.query.serviceID,
       dialogContentType: null,
       tempCheckedKeys: [],
       serviceForm: {
@@ -719,7 +722,7 @@ export default {
               border-radius: 4px;
               position: relative;
               font-family: Helvetica, 'Microsoft YaHei';
-              .card-button-plus {
+              .card-btn-add {
                 margin: -16px -14px 0 -16px;
                 height: calc(100% + 16px);
                 border: 1px dashed #9ebbf7;

+ 160 - 21
src/views/systemSettings/views/serviceManagement/serviceHome.vue

@@ -1,6 +1,6 @@
 <!--
  * @Date: 2022-04-12 17:49:47
- * @LastEditTime: 2022-04-13 16:17:37
+ * @LastEditTime: 2022-04-28 11:17:01
  * @LastEditors: your name
  * @Description: 服务管理-首页
  * have a nice day!
@@ -15,7 +15,7 @@
           <el-button
             class="button-white"
             size="small"
-            @click="showAddDialog()"
+            @click="btnAddClickHandler"
           >新增</el-button>
         </div>
       </div>
@@ -29,13 +29,18 @@
             <div class="grid-content">
               <div class="grid-content-hand flex">
                 <div class="title flex-wrap">
-                  <el-tooltip class="item" effect="dark" :content="item.serviceName" placement="bottom">
+                  <el-tooltip
+                    class="item"
+                    effect="dark"
+                    :content="item.serviceName"
+                    placement="bottom"
+                  >
                     <div class="name">{{ item.serviceName }}</div>
                   </el-tooltip>
                   <!-- <div class="name">{{ item.serviceName }}</div> -->
                   <i
                     class="loger"
-                    @click="showEditDialog(item)"
+                    @click="btnEditClickHandler(item)"
                   />
                 </div>
                 <i
@@ -49,14 +54,14 @@
       </div>
       <!--删除弹框-->
       <Dialog :flag="removeDialogVisible">
-        <div class="airportInfoDialog">
-          <div class="Deltitle">删除服务</div>
+        <div class="dialog-delete">
+          <div class="del-title">删除服务</div>
           <div class="content er">
             <div class="log">
               你是否确认删除{{ rmObj.serviceName }}?
             </div>
           </div>
-          <div class="DelFoot right t30">
+          <div class="del-foot right t30">
             <el-button
               size="medium"
               class="r25 r26"
@@ -71,13 +76,112 @@
           </div>
         </div>
       </Dialog>
+      <Dialog
+        :flag="addDialogVisible"
+        width="600px"
+      >
+        <div class="dialog-add">
+          <div class="title">新增服务</div>
+          <main class="content">
+            <el-form
+              ref="addForm"
+              class="add-form"
+              :model="addForm"
+              label-position="right"
+              label-width="72px"
+              size="mini"
+            >
+              <el-form-item
+                label="服务名称"
+                prop="serviceName"
+              >
+                <el-input
+                  v-model="addForm.serviceName"
+                  placeholder="请输入服务名称"
+                  clearable
+                />
+              </el-form-item>
+              <el-form-item
+                label="描述"
+                prop="desc"
+              >
+                <el-input
+                  v-model="addForm.desc"
+                  placeholder="请输入描述"
+                  type="textarea"
+                  :autosize="{ minRows: 4, maxRows: 4 }"
+                  resize="none"
+                  clearable
+                />
+              </el-form-item>
+              <el-form-item label="是否同步">
+                <el-radio-group v-model="addForm.sync">
+                  <el-radio :label="1">是</el-radio>
+                  <el-radio :label="0">否</el-radio>
+                </el-radio-group>
+              </el-form-item>
+              <el-form-item
+                label="来源"
+                prop="source"
+              >
+                <el-select v-model="addForm.source">
+                  <el-option
+                    v-for="item in sourceOptions"
+                    :key="item.id"
+                    :value="item.value"
+                    :label="item.label"
+                  />
+                </el-select>
+              </el-form-item>
+              <el-form-item
+                label="并发线程数"
+                prop="threads"
+                label-width="86px"
+              >
+                <el-input
+                  v-model="addForm.threads"
+                  width="180px"
+                  placeholder="请输入并发线程数"
+                  clearable
+                />
+              </el-form-item>
+              <el-form-item
+                label="来源配置"
+                prop="config"
+              >
+                <el-input
+                  v-model="addForm.sourceConfig"
+                  placeholder="请输入来源配置"
+                  type="textarea"
+                  :autosize="{ minRows: 4, maxRows: 4 }"
+                  resize="none"
+                  clearable
+                />
+              </el-form-item>
+            </el-form>
+          </main>
+          <div class="foot">
+            <el-button
+              size="medium"
+              type="primary"
+              class="r25 r26"
+              @click="addSubmitHandler"
+            >提交</el-button>
+            <el-button
+              size="medium"
+              class="r26"
+              @click="addDialogClose"
+            >取消</el-button>
+          </div>
+        </div>
+      </Dialog>
     </div>
   </div>
 </template>
 
 <script>
-import Dialog from '@/layout/components/Dialog/index.vue';
-import { Query  } from '@/api/dataIntegration';
+import Dialog from '@/layout/components/Dialog/index.vue'
+import { Query } from '@/api/dataIntegration'
 
 export default {
   name: 'ProtocolHome',
@@ -85,11 +189,21 @@ export default {
   data() {
     return {
       dataList: [],
+      addDialogVisible: false,
+      addForm: {
+        serviceName: '',
+        desc: '',
+        sync: 1,
+        source: '',
+        threads: '',
+        sourceConfig: ''
+      },
+      sourceOptions: [],
       removeDialogVisible: false,
-      rmObj: {},
+      rmObj: {}
     }
   },
-  created() {
+  mounted() {
     this.getList()
   },
   methods: {
@@ -98,23 +212,33 @@ export default {
         const res = await Query({
           id: 3,
           dataContent: []
-        });
-        if (res.code === "0") {
-            this.dataList = res.returnData
+        })
+        if (res.code === '0') {
+          this.dataList = res.returnData
         } else {
-          this.$message.error(res.message ?? "失败");
+          this.$message.error(res.message ?? '失败')
         }
       } catch (error) {
-        console.log("错误", error);
+        console.log('错误', error)
       }
     },
     // 新增-弹框
-    showAddDialog() {
-      this.$router.push('/systemSettings/serviceEdit')
+    btnAddClickHandler() {
+      this.addDialogVisible = true
+    },
+    // 新增-提交
+    addSubmitHandler() {
+      this.addDialogClose()
+    },
+    // 新增-关闭
+    addDialogClose() {
+      this.$refs['addForm'].resetFields()
+      this.addDialogVisible = false
     },
-    // 编辑-弹框
-    showEditDialog(item) {
-      this.$router.push('/systemSettings/serviceEdit')
+    // 编辑-跳转
+    btnEditClickHandler(item) {
+      const { serviceID } = item
+      this.$router.push({ path: '/systemSettings/serviceEdit', query: { serviceID } })
     },
     // 删除-弹框
     showRemoveDialog(item) {
@@ -194,6 +318,21 @@ export default {
         }
       }
     }
+    .dialog-add {
+      ::v-deep .add-form {
+        display: flex;
+        flex-wrap: wrap;
+        > .el-form-item {
+          &:not(:nth-child(4), :nth-child(5)) {
+            width: 100%;
+          }
+          &:nth-child(5) {
+            margin-left: 34px;
+            flex: 1;
+          }
+        }
+      }
+    }
   }
 }
 </style>