Forráskód Böngészése

表格添加权限

zhaoke 2 éve
szülő
commit
8eba166ec9

+ 40 - 2
src/components/Table/index.vue

@@ -107,8 +107,22 @@
                     </template>
                     <el-button class="rmScs" v-if="withColumnSet" type="text" size="small" @click="handleColumnSet(scope.row)">列设置</el-button>
                     <el-button class="rmScs" v-if="withItemSet" type="text" size="small" @click="handleItemSet(scope.row)">数据项</el-button>
-                    <el-button class="rmScser" v-if="withlodSet" type="text" size="small" @click="handlelodSet(scope.row)">航站设置</el-button>
-                    <el-button class="rmScser" v-if="withnodeSet" type="text" size="small" @click="handlenodeSet(scope.row)">位置设置</el-button>
+                    <template v-if="withlodSet">
+                      <template v-if="isAuth">
+                        <el-button class="rmScser" v-if="btnAuthWithlodSet" type="text" size="small" @click="handlelodSet(scope.row)">航站设置</el-button>
+                      </template>
+                      <template v-else>
+                        <el-button class="rmScser" type="text" size="small" @click="handlelodSet(scope.row)">航站设置</el-button>
+                      </template>
+                    </template>
+                    <template v-if="withnodeSet">
+                      <template v-if="isAuth">
+                        <el-button v-if="btnAuthWithnodeSet" class="rmScser" type="text" size="small" @click="handlenodeSet(scope.row)">位置设置</el-button>
+                      </template>
+                      <template v-else>
+                        <el-button class="rmScser" type="text" size="small" @click="handlenodeSet(scope.row)">位置设置</el-button>
+                      </template>
+                    </template>
                     <el-button v-if="withPreview" type="text" size="small" class="rmScs" @click="handlePreview(scope.row)">预览</el-button>
                   </div>
                 </div>
@@ -328,6 +342,16 @@ export default {
       type: String,
       default: "",
     },
+    //位置设置权限
+    authWithnodeSet: {
+      type: String,
+      default: "",
+    },
+    //航站设置权限
+    authWithlodSet: {
+      type: String,
+      default: "",
+    },
     //是否启用权限按钮
     isAuth: {
       type: Boolean,
@@ -425,6 +449,20 @@ export default {
         return false;
       }
     },
+    btnAuthWithnodeSet() {
+      if (this.roles.includes(this.authWithnodeSet)) {
+        return true;
+      } else {
+        return false;
+      }
+    },
+    btnAuthWithlodSet() {
+      if (this.roles.includes(this.authWithlodSet)) {
+        return true;
+      } else {
+        return false;
+      }
+    },
   },
   watch: {
     dataContent: {

+ 9 - 17
src/views/BasicsData/views/BaggageType/BaggageType.vue

@@ -17,6 +17,10 @@
         width="800px"
         tableHeight="685"
         :isStatuser="true"
+        :isAuth="true"
+        authAdd="special_baggage_information_add"
+        authEdit="special_baggage_editing"
+        authDel="special_baggage_deletion"
       >
         <template v-slot:header>
           <div class="status flex-wrap">
@@ -32,11 +36,7 @@ import Search from "@/layout/components/Search/index.vue";
 import Dialog from "@/layout/components/Dialog/index.vue";
 import { findarrays } from "@/utils/validate";
 import DataTable from "@/components/Table";
-import {
-  AirlinesInquiry,
-  DelAirlines,
-  AddAirlines,
-} from "@/api/SystemSettings";
+import { AirlinesInquiry, DelAirlines, AddAirlines } from "@/api/SystemSettings";
 import { exceptiontype, exceptionadd, exceptiondel } from "@/api/acquisition";
 import { GeneralDataReception, Query } from "@/api/dataIntegration";
 export default {
@@ -69,15 +69,9 @@ export default {
       },
       rules: {
         //新增机场信息表单验证
-        TypeName: [
-          { required: true, message: "请输入航司简称", trigger: "blur" },
-        ],
-        TypeNameEN: [
-          { required: true, message: "请输入航司全称", trigger: "blur" },
-        ],
-        TypeCode: [
-          { required: true, message: "请输入航司二字码", trigger: "blur" },
-        ],
+        TypeName: [{ required: true, message: "请输入航司简称", trigger: "blur" }],
+        TypeNameEN: [{ required: true, message: "请输入航司全称", trigger: "blur" }],
+        TypeCode: [{ required: true, message: "请输入航司二字码", trigger: "blur" }],
       },
       modid: "",
     };
@@ -91,9 +85,7 @@ export default {
       if (this.searchInfo) {
         return this.arr.filter((data) => {
           return Object.keys(data).some((key) => {
-            return (
-              String(data[key]).toLowerCase().indexOf(this.searchInfo) > -1
-            );
+            return String(data[key]).toLowerCase().indexOf(this.searchInfo) > -1;
           });
         });
       }

+ 30 - 121
src/views/BasicsData/views/airport/airportInfo.vue

@@ -31,13 +31,7 @@
           <div class="tree_left">
             <el-scrollbar style="height: 100%">
               <div class="corporate">{{ company }}</div>
-              <el-tree
-                :data="data"
-                :props="defaultProps"
-                accordion
-                @node-click="handleNodeClick"
-              >
-              </el-tree>
+              <el-tree :data="data" :props="defaultProps" accordion @node-click="handleNodeClick"> </el-tree>
             </el-scrollbar>
           </div>
         </el-col>
@@ -48,6 +42,11 @@
             labelWidth="100px"
             :minHeight="70"
             width="800px"
+            :isAuth="true"
+            authAdd="airport_add_button"
+            authEdit="airport_edit_button"
+            authDel="airport_delete_button"
+            authWithlodSet="terminal_setting_button"
             :withlodSet="true"
             :data-content="{ companyID, companyName }"
             tableHeight="680"
@@ -68,16 +67,8 @@
         </div>
         <div class="DelFoot right t30">
-          <el-button
-            size="medium"
-            @click="remove"
-            class="r25 buwitch"
-            type="danger"
-            >删除</el-button
-          >
-          <el-button size="medium" class="r26" @click="flag = false"
-            >取消</el-button
-          >
+          <el-button size="medium" @click="remove" class="r25 buwitch" type="danger">删除</el-button>
+          <el-button size="medium" class="r26" @click="flag = false">取消</el-button>
         </div>
       </div>
     </Dialog>
@@ -94,16 +85,8 @@
         </div>
         <div class="DelFoot right t30">
-          <el-button
-            size="medium"
-            @click="removeflaghall"
-            class="r25 buwitch"
-            type="danger"
-            >删除</el-button
-          >
-          <el-button size="medium" class="r26" @click="flaghall = false"
-            >取消</el-button
-          >
+          <el-button size="medium" @click="removeflaghall" class="r25 buwitch" type="danger">删除</el-button>
+          <el-button size="medium" class="r26" @click="flaghall = false">取消</el-button>
         </div>
       </div>
     </Dialog>
@@ -112,69 +95,30 @@
       <div class="airportInfoDialog dialog-public-background">
         <div class="flx">新增机场信息</div>
         <div class="content">
-          <el-form
-            :model="ruleForm"
-            :rules="rules"
-            ref="ruleForm"
-            label-width="100px"
-            class="demo-ruleForm"
-          >
+          <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
             <el-form-item label="所属公司" prop="upname">
-              <el-input
-                size="medium"
-                :disabled="true"
-                placeholder=""
-                v-model="ruleForm.upname"
-              ></el-input>
+              <el-input size="medium" :disabled="true" placeholder="" v-model="ruleForm.upname"></el-input>
             </el-form-item>
             <el-form-item label="机场中文名称" prop="name">
-              <el-input
-                size="medium"
-                placeholder="请输入机场中文名称(必填)"
-                v-model="ruleForm.name"
-              ></el-input>
+              <el-input size="medium" placeholder="请输入机场中文名称(必填)" v-model="ruleForm.name"></el-input>
             </el-form-item>
             <el-form-item label="机场英文简称" prop="name">
-              <el-input
-                size="medium"
-                placeholder="请输入机场英文简称(必填)"
-                v-model="ruleForm.name"
-              ></el-input>
+              <el-input size="medium" placeholder="请输入机场英文简称(必填)" v-model="ruleForm.name"></el-input>
             </el-form-item>
             <el-form-item label="机场全称">
-              <el-input
-                size="medium"
-                placeholder="请输入机场全称(必填)"
-                v-model="ruleForm.fullName"
-              ></el-input>
+              <el-input size="medium" placeholder="请输入机场全称(必填)" v-model="ruleForm.fullName"></el-input>
             </el-form-item>
             <el-form-item label="机场三字码">
-              <el-input
-                size="medium"
-                placeholder="请输入机场三字码(必填)"
-                v-model="ruleForm.code3"
-              ></el-input>
+              <el-input size="medium" placeholder="请输入机场三字码(必填)" v-model="ruleForm.code3"></el-input>
             </el-form-item>
             <el-form-item label="机场四字码">
-              <el-input
-                size="medium"
-                placeholder="请输入机场四字码(必填)"
-                v-model="ruleForm.code3"
-              ></el-input>
+              <el-input size="medium" placeholder="请输入机场四字码(必填)" v-model="ruleForm.code3"></el-input>
             </el-form-item>
           </el-form>
         </div>
         <div class="foot center t30">
-          <el-button
-            size="medium"
-            type="primary"
-            @click="addSubmit()"
-            class="r25 r26"
-            >提交</el-button
-          >
-          <el-button class="r26" size="medium" @click="resetForm()"
-            >取消</el-button
-          >
+          <el-button size="medium" type="primary" @click="addSubmit()" class="r25 r26">提交</el-button>
+          <el-button class="r26" size="medium" @click="resetForm()">取消</el-button>
         </div>
       </div>
     </Dialog>
@@ -182,40 +126,18 @@
       <div class="airportInfoDialog dialog-public-background">
         <div class="flx">新增航站楼信息</div>
         <div class="content">
-          <el-form
-            :model="taForm"
-            :rules="ruleta"
-            ref="taForm"
-            label-width="100px"
-            class="demo-ruleForm"
-          >
+          <el-form :model="taForm" :rules="ruleta" ref="taForm" label-width="100px" class="demo-ruleForm">
             <el-form-item label="航站楼名称" prop="name">
-              <el-input
-                size="medium"
-                placeholder="请输入航站楼名称(必填)"
-                v-model="ruleForm.name"
-              ></el-input>
+              <el-input size="medium" placeholder="请输入航站楼名称(必填)" v-model="ruleForm.name"></el-input>
             </el-form-item>
             <el-form-item label="航站楼标识" prop="name">
-              <el-input
-                size="medium"
-                placeholder="请输入航站楼标识(必填)"
-                v-model="ruleForm.name"
-              ></el-input>
+              <el-input size="medium" placeholder="请输入航站楼标识(必填)" v-model="ruleForm.name"></el-input>
             </el-form-item>
           </el-form>
         </div>
         <div class="foot center t30">
-          <el-button
-            size="medium"
-            type="primary"
-            @click="addter()"
-            class="r25 r26"
-            >提交</el-button
-          >
-          <el-button class="r26" size="medium" @click="addta = false"
-            >取消</el-button
-          >
+          <el-button size="medium" type="primary" @click="addter()" class="r25 r26">提交</el-button>
+          <el-button class="r26" size="medium" @click="addta = false">取消</el-button>
         </div>
       </div>
     </Dialog>
@@ -272,22 +194,14 @@ export default {
       rules: {
         //新增机场信息表单验证
         name: [{ required: true, message: "请输入机场简称", trigger: "blur" }],
-        fullName: [
-          { required: true, message: "请输入机场全称", trigger: "blur" },
-        ],
-        code: [
-          { required: true, message: "请输入机场三字码", trigger: "blur" },
-        ],
+        fullName: [{ required: true, message: "请输入机场全称", trigger: "blur" }],
+        code: [{ required: true, message: "请输入机场三字码", trigger: "blur" }],
       },
       ruleta: {
         //新增机场信息表单验证
         name: [{ required: true, message: "请输入机场简称", trigger: "blur" }],
-        fullName: [
-          { required: true, message: "请输入机场全称", trigger: "blur" },
-        ],
-        code: [
-          { required: true, message: "请输入机场三字码", trigger: "blur" },
-        ],
+        fullName: [{ required: true, message: "请输入机场全称", trigger: "blur" }],
+        code: [{ required: true, message: "请输入机场三字码", trigger: "blur" }],
       },
       companyID: "",
       companyName: "",
@@ -364,11 +278,7 @@ export default {
         });
         if (res.code === "0") {
           let arr = [];
-          arr = translateDataToTreeAll(
-            res.returnData.listValues,
-            "parentID",
-            "companyID"
-          );
+          arr = translateDataToTreeAll(res.returnData.listValues, "parentID", "companyID");
           this.data = arr;
           if (!this.companyID.length) {
             this.companyID = arr[0].companyID;
@@ -612,8 +522,7 @@ export default {
           display: flex;
           align-items: center;
           justify-content: center;
-          background: url("../../../../assets/index/ic_close_s @2x.png")
-            no-repeat;
+          background: url("../../../../assets/index/ic_close_s @2x.png") no-repeat;
           background-size: 100% 100%;
           // background: #fff;
           cursor: pointer;

+ 5 - 1
src/views/BasicsData/views/airport/airportInfoChild.vue

@@ -10,6 +10,10 @@
         width="400px"
         tableHeight="750"
         :isStatuser="true"
+        :isAuth="true"
+        authAdd="terminal_add_button"
+        authEdit="terminal_edit_button"
+        authDel="terminal_delete_button"
       >
         <template v-slot:header>
           <div class="status flex-wrap">
@@ -62,4 +66,4 @@ export default {
     }
   }
 }
-</style>
+</style>

+ 4 - 0
src/views/BasicsData/views/airportCompany/index.vue

@@ -9,6 +9,10 @@
       width="800px"
       tableHeight="685"
       :isStatuser="true"
+      :isAuth="true"
+      authAdd="airport_company_add"
+      authEdit="airport_company_editor"
+      authDel="airport_company_delete"
     >
       <template v-slot:header>
         <div class="status flex-wrap">

+ 4 - 0
src/views/BasicsData/views/deployNode/deployNodeChild.vue

@@ -10,6 +10,10 @@
         width="400px"
         tableHeight="720"
         :isStatuser="true"
+        :isAuth="true"
+        authAdd="location_setting_add"
+        authEdit="location_settings_editing"
+        authDel="location_settings_deleting"
       >
         <template v-slot:header>
           <div class="status flex-wrap">

+ 12 - 32
src/views/BasicsData/views/deployNode/deployNodeHome.vue

@@ -9,6 +9,11 @@
       width="800px"
       tableHeight="685"
       :isStatuser="true"
+      :isAuth="true"
+      authAdd="add_node_information"
+      authEdit="node_information_editing"
+      authDel="node_information_deletion"
+      authWithnodeSet="position_setting_button"
     >
       <template v-slot:header>
         <div class="status flex-wrap">
@@ -51,12 +56,8 @@ export default {
       },
       rules: {
         // 协议信息表单验证
-        locationCode: [
-          { required: true, message: "请输入节点名称", trigger: "blur" },
-        ],
-        nodeCode: [
-          { required: true, message: "请输入跟踪节点标识符", trigger: "blur" },
-        ],
+        locationCode: [{ required: true, message: "请输入节点名称", trigger: "blur" }],
+        nodeCode: [{ required: true, message: "请输入跟踪节点标识符", trigger: "blur" }],
       },
       type: "",
       disFlag: false,
@@ -70,27 +71,16 @@ export default {
     //渲染节点
     renderContent(h, data) {
       return (
-        <div
-          onClick={() => this.renderSub(data)}
-          class="account-left-content-teams"
-        >
+        <div onClick={() => this.renderSub(data)} class="account-left-content-teams">
           <div class="team">
             <div class="list">
               <div class="flex info">
                 <div class="name">
                   <span>{data.locationCode}</span>
-                  <span
-                    v-show={data.Type === 1 || data.Type === 2}
-                    onClick={(e) => this.onNodeEdit(data, e)}
-                    class="cap cap-edit icon"
-                  ></span>
+                  <span v-show={data.Type === 1 || data.Type === 2} onClick={(e) => this.onNodeEdit(data, e)} class="cap cap-edit icon"></span>
                 </div>
                 <div class="icon">
-                  <span
-                    v-show={data.Type === 0 || data.Type === 1}
-                    onClick={(e) => this.onNodeSub(data, e)}
-                    class="cap cap-sub"
-                  ></span>
+                  <span v-show={data.Type === 0 || data.Type === 1} onClick={(e) => this.onNodeSub(data, e)} class="cap cap-sub"></span>
                 </div>
               </div>
               <div class="details">
@@ -98,18 +88,8 @@ export default {
               </div>
             </div>
           </div>
-          <div
-            v-show={data.Type == 1 || data.Type >= 2}
-            onClick={(e) => this.onNodeClick(data, e)}
-            class="info-close"
-          >
-            <i
-              class={[
-                data.Type === 1 ? "close1" : data.Type > 2 ? "close2" : "",
-                "icon",
-                "el-icon-close",
-              ]}
-            ></i>
+          <div v-show={data.Type == 1 || data.Type >= 2} onClick={(e) => this.onNodeClick(data, e)} class="info-close">
+            <i class={[data.Type === 1 ? "close1" : data.Type > 2 ? "close2" : "", "icon", "el-icon-close"]}></i>
           </div>
         </div>
       );