Ver código fonte

1.人员身份绑定菜单,增加排序。
2.人员角色增加上级角色。

zhengqiang 5 anos atrás
pai
commit
6f0abce253

+ 39 - 4
src/views/base/companyInfo-list.vue

@@ -38,6 +38,22 @@
         ></el-select-tree>&nbsp;
         <el-checkbox v-model="queryModel.subordinate">是否包含下级单位</el-checkbox>
       </el-form-item>
+      <el-form-item label="适用场景" prop="sceneId">
+        <el-select
+          v-model="queryModel.sceneId"
+          filterable
+          placeholder="请选择"
+          style="width: 110px"
+          size="mini"
+        >
+          <el-option
+            v-for="result in sceneData"
+            :key="result.id"
+            :label="result.sceneName"
+            :value="result.id"
+          ></el-option>
+        </el-select>
+      </el-form-item>
       <el-form-item>
         <el-button
           type="primary"
@@ -184,6 +200,7 @@ import Constant from "@/constant";
 import companyInfoDetail from "./companyInfo-detail";
 import companyDeviceRelationList from "./companyDeviceRelation-list";
 import companyInfoApi from "@/api/base/companyInfo";
+import sceneInfoApi from "@/api/base/sceneInfo";
 import SelectTree from "@/components/SelectTree";
 import QRCode from "qrcodejs2";
 
@@ -200,7 +217,8 @@ export default {
       queryModel: {
         name: "",
         parentId: "",
-        subordinate: false
+        subordinate: false,
+        sceneId: ""
       },
       loading: false,
       tableData: [],
@@ -237,12 +255,18 @@ export default {
       headers: {
         Authorization: getToken()
       },
-      xlsLoading: false
+      xlsLoading: false,
+      sceneData: []
     };
   },
   created() {
     var self = this;
 
+    sceneInfoApi.list().then((response) => {
+      var jsonData = response.data;
+      this.sceneData = jsonData.data;
+    });
+
     companyInfoApi.list().then(function(response) {
       var jsonData = response.data;
       if (jsonData.result) {
@@ -297,10 +321,21 @@ export default {
       formData.append("pageIndex", self.pageIndex);
       formData.append("pageSize", self.pageSize);
 
-      formData.append("name", self.queryModel.name);
-      formData.append("parentId", self.queryModel.parentId);
+      if(self.queryModel.name!=null){
+        formData.append("name", self.queryModel.name);
+      }
+
+      if(self.queryModel.parentId!=null){
+        formData.append("parentId", self.queryModel.parentId);
+      }
+
       formData.append("subordinate", self.queryModel.subordinate);
 
+
+      if(self.queryModel.sceneId!=null){
+        formData.append("sceneId", self.queryModel.sceneId);
+      }
+
       if (this.field != null) {
         formData.append("field", this.field);
       }

+ 25 - 0
src/views/base/personRoleInfo-detail.vue

@@ -27,6 +27,21 @@
             style="width: 300px"
           ></el-input>
         </el-form-item>
+        <el-form-item label="上级身份" prop="parentId">
+          <el-select
+            v-model="formModel.parentId"
+            filterable
+            placeholder="请选择"
+            style="width: 300px"
+          >
+            <el-option
+              v-for="result in personRoleList"
+              :key="result.id"
+              :label="result.personRoleName"
+              :value="result.id"
+            ></el-option>
+          </el-select>
+        </el-form-item>
         <el-form-item label="适用于与场景" prop="sceneId">
           <el-select
             v-model="formModel.sceneId"
@@ -91,6 +106,7 @@ export default {
       showDialog: true,
       loading: false,
       submitting: false,
+      personRoleList: []
     };
   },
   methods: {
@@ -136,6 +152,15 @@ export default {
   mounted: function () {
     var self = this;
 
+    personRoleInfoApi.findAll()
+    .then(response=>{
+      var jsonData = response.data;
+
+      if(jsonData.result){
+        this.personRoleList = jsonData.data;
+      }
+    });
+
     (function () {
       if (self.formModel.useEnable == null) {
         self.formModel.useEnable = 0;

+ 62 - 13
src/views/base/personRoleInfo-icon.vue

@@ -2,23 +2,34 @@
     <el-dialog
       :visible.sync="showDialog"
       :title="title"
-      width="800px"
+      width="900px"
       :modal-append-to-body="false"
       style="text-align:left;"
       @close="closeDialog"
       :close-on-click-modal="false"
     >
-    <div class="role-permission">
-        <el-transfer
-        v-model="relatedMenus"
-        :data="menuList"
-        v-loading="loading"
-        filterable
-        :filter-method="filterMethod"
-        filter-placeholder="请输入关键字"
-        :props="{key: 'id',label: 'description'}"
-        :titles="['未分配菜单','已分配菜单']"
-        ></el-transfer>
+    <div class="flex-row">
+      <div class="role-permission">
+          <el-transfer
+          v-model="relatedMenus"
+          :data="menuList"
+          v-loading="loading"
+          filterable
+          target-order="push"
+          :filter-method="filterMethod"
+          filter-placeholder="请输入关键字"
+          :props="{key: 'id',label: 'description'}"
+          :titles="['未分配菜单','已分配菜单']"
+          @right-check-change="rightCheckChange"
+          ></el-transfer>
+      </div>
+      <div class="flex-col">
+        <div>
+          <el-button round size="mini" @click="moveUp">上移</el-button>
+          <div style="height:10px;"></div>
+          <el-button round size="mini" @click="moveDown">下移</el-button>
+        </div>
+      </div>
     </div>
     <span slot="footer" class="dialog-footer">
         <el-button @click="closeDialog">取 消</el-button>
@@ -37,7 +48,8 @@ export default {
       relatedMenus: [],
       loading: false,
       showDialog: true,
-      submitting: false
+      submitting: false,
+      rightCheckedItems: []
     };
   }, 
   methods: {
@@ -105,6 +117,31 @@ export default {
 
           self.loading = false;
         });
+    },
+    rightCheckChange(checkedItems) {
+      this.rightCheckedItems = checkedItems;
+    },
+    moveUp() {
+      this.rightCheckedItems.forEach(id=>{
+        var index = this.relatedMenus.indexOf(id);
+
+        if(index>0){
+          console.log(index + "," + id);
+          this.relatedMenus.splice(index,1);
+          this.relatedMenus.splice(index-1,0,id);
+        }
+      })
+    },
+    moveDown() {
+      this.rightCheckedItems.forEach(id=>{
+        var index = this.relatedMenus.indexOf(id);
+
+        if(index<this.relatedMenus.length-1){
+          console.log(index + "," + id);
+          this.relatedMenus.splice(index,1);
+          this.relatedMenus.splice(index+1,0,id);
+        }
+      })
     }
   },
   mounted() {
@@ -127,4 +164,16 @@ export default {
     position: relative;
   }
 }
+
+.flex-row{
+  display:flex;
+  flex-direction: row;
+}
+
+.flex-col{
+  display: flex;
+  flex-direction: col;
+  justify-content: center; /* 水平居中 */
+  align-items: center;     /* 垂直居中 */
+}
 </style>

+ 5 - 0
src/views/base/personRoleInfo-list.vue

@@ -100,6 +100,11 @@
         label="身份名称"
         width="150"
       ></el-table-column>
+      <el-table-column
+        prop="parentName"
+        label="上级身份"
+        width="150"
+      ></el-table-column>
       <el-table-column
         prop="sceneName"
         label="适用场景"