Pārlūkot izejas kodu

用户角色管理

xiao547607 5 gadi atpakaļ
vecāks
revīzija
2a099083dd

+ 5 - 1
src/api/base/personPopedom.js

@@ -41,6 +41,10 @@ function batchRemove(idList) {
   });
 }
 
+function changeDefault(formModel) {
+  return request.post(constant.serverUrl + "/base/personPopedom/changeDefault", formModel);
+}
+
 export default {
-  pageList, create, edit, add, update, remove, batchRemove
+  pageList, create, edit, add, update, remove, batchRemove,changeDefault
 }

+ 5 - 1
src/api/base/personRoleInfo.js

@@ -41,6 +41,10 @@ function batchRemove(idList){
   });
 }
 
+function listByCompanyId(formData){
+  return request.post(constant.serverUrl + "/base/personRoleInfo/listByCompanyId", formData);
+}
+
 export default {
-  pageList,create,edit,add,update,remove,batchRemove
+  pageList,create,edit,add,update,remove,batchRemove,listByCompanyId
 }

+ 2 - 2
src/views/base/personInfo-list.vue

@@ -376,7 +376,7 @@
         }}</template>
       </el-table-column>
       <el-table-column prop="popedom" label="用户身份" width="200">
-        <template slot-scope="{ row }">
+        <!-- <template slot-scope="{ row }">
           <el-row>
             <el-col :span="10" v-if="row.popedom.indexOf('1') != -1"
               >个人用户</el-col
@@ -395,7 +395,7 @@
               >监管专员</el-col
             >
           </el-row>
-        </template>
+        </template> -->
       </el-table-column>
       <el-table-column label="是否自动同步" width="120">
         <template slot-scope="{ row }">

+ 95 - 88
src/views/base/personPopedom-detail.vue

@@ -8,9 +8,10 @@
   <el-dialog
     :visible.sync="showDialog"
     :title="title"
-    :modal-append-to-body="false"
+    :append-to-body="true"
     style="text-align: left"
     @close="closeDialog"
+    :close-on-click-modal="false"
   >
     <div class="user-panel" v-loading="loading">
       <el-form
@@ -19,76 +20,36 @@
         :rules="ruleValidate"
         :label-width="'100px'"
       >
-        <el-form-item label="" prop="id">
-          <el-input
-            v-model="formModel.id"
-            placeholder="请输入"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="对应公司id" prop="companyId">
-          <el-input
+        <el-form-item label="公司" prop="companyId">
+          <el-select-tree
+            :props="props"
+            :options="companyResult"
             v-model="formModel.companyId"
-            placeholder="请输入对应公司id"
-            style="width: 300px"
-          ></el-input>
+            height="200"
+          ></el-select-tree>
         </el-form-item>
-        <el-form-item label="对应角色id" prop="personRoleId">
-          <el-input
+        <el-form-item label="角色" prop="personRoleId">
+          <el-select
             v-model="formModel.personRoleId"
-            placeholder="请输入对应角色id"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="人员id" prop="personId">
-          <el-input
-            v-model="formModel.personId"
-            placeholder="请输入人员id"
-            style="width: 300px"
-          ></el-input>
+            filterable
+            placeholder="请选择"
+            style="width: 280px"
+          >
+            <el-option
+              v-for="role in personRoleResult"
+              :key="role.id"
+              :label="role.personRoleName"
+              :value="role.id"
+            ></el-option>
+          </el-select>
         </el-form-item>
-        <el-form-item label="展示的图标id" prop="showIconId">
+        <el-form-item label="展示的图标" prop="showIconId">
           <el-input
             v-model="formModel.showIconId"
             placeholder="请输入展示的图标id"
             style="width: 300px"
           ></el-input>
         </el-form-item>
-        <el-form-item label="是否删除" prop="delFlag">
-          <el-input
-            v-model="formModel.delFlag"
-            placeholder="请输入是否删除"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="创建人" prop="createBy">
-          <el-input
-            v-model="formModel.createBy"
-            placeholder="请输入创建人"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="创建时间" prop="createTime">
-          <el-input
-            v-model="formModel.createTime"
-            placeholder="请输入创建时间"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="更新人" prop="updateBy">
-          <el-input
-            v-model="formModel.updateBy"
-            placeholder="请输入更新人"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
-        <el-form-item label="更新时间" prop="updateTime">
-          <el-input
-            v-model="formModel.updateTime"
-            placeholder="请输入更新时间"
-            style="width: 300px"
-          ></el-input>
-        </el-form-item>
         <el-form-item label="备注信息" prop="remark">
           <el-input
             v-model="formModel.remark"
@@ -109,56 +70,102 @@
 <script>
 import Constant from "@/constant";
 import personPopedomApi from "@/api/base/personPopedom";
+import personRoleInfoApi from "@/api/base/personRoleInfo";
+import companyInfoApi from "@/api/base/companyInfo";
+import deviceInfoApi from "@/api/base/deviceInfo";
+import SelectTree from "@/components/SelectTree";
 
 export default {
-  props: ["businessKey", "title"],
+  components: {
+    "el-select-tree": SelectTree,
+  },
+  props: ["businessKey", "title", "personId"],
   data() {
     return {
+      formModel: { companyId: "" },
       ruleValidate: {
-        id: [{ required: true, message: "不能为空", trigger: "blur" }],
         companyId: [
           { required: true, message: "对应公司id不能为空", trigger: "blur" },
         ],
         personRoleId: [
           { required: true, message: "对应角色id不能为空", trigger: "blur" },
         ],
-        personId: [
-          { required: true, message: "人员id不能为空", trigger: "blur" },
-        ],
-        showIconId: [
-          { required: true, message: "展示的图标id不能为空", trigger: "blur" },
-        ],
-        delFlag: [
-          { required: true, message: "是否删除不能为空", trigger: "blur" },
-        ],
-        createBy: [
-          { required: true, message: "创建人不能为空", trigger: "blur" },
-        ],
-        createTime: [
-          { required: true, message: "创建时间不能为空", trigger: "blur" },
-        ],
-        updateBy: [
-          { required: true, message: "更新人不能为空", trigger: "blur" },
-        ],
-        updateTime: [
-          { required: true, message: "更新时间不能为空", trigger: "blur" },
-        ],
-        remark: [
-          { required: true, message: "备注信息不能为空", trigger: "blur" },
-        ],
       },
       showDialog: true,
       loading: false,
       submitting: false,
+      companyResult: [],
+      treeData: [],
+      props: {
+        // 配置项(必选)
+        value: "id",
+        label: "name",
+        children: "children",
+      },
+      personRoleResult: [],
     };
   },
+  created() {
+    var self = this;
+    companyInfoApi.list().then(function (response) {
+      var jsonData = response.data;
+      if (jsonData.result) {
+        if (jsonData.data != null && jsonData.data != "") {
+          self.companyResult = jsonData.data;
+        }
+      }
+    });
+
+    // var formData = new FormData();
+    // formData.append("companyId", "c52b03cb-7526-4e8b-8b90-4f7a6a37b586");
+    // personRoleInfoApi.listByCompanyId(formData).then(function (response) {
+    //   var jsonData = response.data;
+    //   if (jsonData.result) {
+    //     if (jsonData.data != null && jsonData.data != "") {
+    //       self.personRoleResult = jsonData.data;
+    //     }
+    //   }
+    // });
+
+    this.loadTree();
+  },
+  watch: {
+    "formModel.companyId": function (val, oldval) {
+      if(val != null && val != ""){
+        var self = this;
+        self.formModel.personRoleId = "";
+        var formData = new FormData();
+        formData.append("companyId", val);
+        personRoleInfoApi.listByCompanyId(formData).then(function (response) {
+          var jsonData = response.data;
+          if (jsonData.result) {
+            if (jsonData.data != null && jsonData.data != "") {
+              self.personRoleResult = jsonData.data;
+            }
+          }
+        });
+      }
+    },
+  },
   methods: {
+    loadTree() {
+      var formData = new FormData();
+      companyInfoApi.loadChildren(formData).then((resp) => {
+        var jsonData = resp.data;
+
+        if (jsonData.result) {
+          this.treeData = jsonData.data;
+        } else {
+          this.$message.error(jsonData.message + "");
+        }
+      });
+    },
     closeDialog() {
       this.$emit("close", false);
     },
     handleSubmit() {
       var self = this;
-
+      self.formModel.personId = self.personId;
       this.$refs["form"].validate((valid) => {
         if (valid) {
           (function () {

+ 59 - 46
src/views/base/personPopedom-list.vue

@@ -1,7 +1,7 @@
 <template>
   <el-dialog
     :visible.sync="showDialog"
-    title="查看关联设备"
+    title="查看用户角色"
     :modal-append-to-body="false"
     append-to-body
     :modal="true"
@@ -20,17 +20,16 @@
           type="primary"
           size="small"
           plain
-          icon="el-icon-remove"
-          @click="handleRemoveAll"
+          icon="el-icon-circle-plus"
+          @click="handleAdd"
           >新增</el-button
         >
         <el-button
           type="primary"
           size="small"
           plain
-          icon="el-icon-refresh"
-          @click="handleUpdateIsWrite"
-          >删除</el-button
+          @click="handleReLoad"
+          >刷新</el-button
         >
       </el-row>
       <el-table
@@ -42,55 +41,43 @@
         @selection-change="handleSelectionChange"
       >
         <el-table-column
-          prop="companyId"
-          label="对应公司id"
+          prop="companyName"
+          label="公司"
           width="180"
         ></el-table-column>
         <el-table-column
-          prop="personRoleId"
-          label="对应角色id"
-          width="180"
-        ></el-table-column>
-        <el-table-column
-          prop="personId"
-          label="人员id"
-          width="180"
+          prop="roleName"
+          label="角色"
+          width="150"
         ></el-table-column>
         <el-table-column
           prop="showIconId"
-          label="展示的图标id"
-          width="180"
-        ></el-table-column>
-        <el-table-column
-          prop="delFlag"
-          label="是否删除"
-          width="180"
-        ></el-table-column>
-        <el-table-column
-          prop="createBy"
-          label="创建人"
-          width="180"
-        ></el-table-column>
-        <el-table-column
-          prop="createTime"
-          label="创建时间"
-          width="180"
-        ></el-table-column>
-        <el-table-column
-          prop="updateBy"
-          label="更新人"
-          width="180"
-        ></el-table-column>
-        <el-table-column
-          prop="updateTime"
-          label="更新时间"
-          width="180"
+          label="图标信息"
+          width="150"
         ></el-table-column>
         <el-table-column
           prop="remark"
           label="备注信息"
-          width="180"
+          width="150"
         ></el-table-column>
+        <el-table-column prop="useEnable" label="默认" width="180">
+          <template slot-scope="{ row }">
+            <el-switch
+              v-model="row.isDefault"
+              active-color="#13ce66"
+              inactive-color="#ff4949"
+              @change="changeDefault(row)"
+              :disabled="row.isDefault"
+            ></el-switch>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" width="100">
+          <template slot-scope="{ row }">
+            <el-link type="danger" :underline="false" @click="handleDelete(row)"
+              >删除</el-link
+            >
+          </template>
+        </el-table-column>
       </el-table>
       <el-pagination
         :current-page.sync="pageIndex"
@@ -105,7 +92,8 @@
         :businessKey="businessKey"
         :title="modalTitle"
         @close="onDetailModalClose"
-        ></personPopedom-detail>
+        :personId="personId"
+      ></personPopedom-detail>
     </div>
   </el-dialog>
 </template>
@@ -196,6 +184,12 @@ export default {
     handleReset(name) {
       this.$refs[name].resetFields();
     },
+    handleAdd() {
+      this.modalTitle = "新增";
+      this.businessKey = "";
+      this.showModal = true;
+      this.personId = this.personId;
+    },
     handleDelete(record) {
       var self = this;
       this.$confirm("是否解除关联?", "提示", {
@@ -235,12 +229,31 @@ export default {
         this.changePage(this.pageIndex);
       }
     },
+    handleReLoad() {
+      var self = this;
+      self.changePage(self.pageIndex);
+    },
+    changeDefault(record) {
+      var self = this;
+      var formData = new FormData();
+      self.loading = true;
+
+      formData.append("id", record.id);
+      formData.append("personId", this.personId);
+      personPopedomApi.changeDefault(formData).then(function (response) {
+        var jsonData = response.data;
+        self.loading = false;
+        if (jsonData.result) {
+          self.changePage(self.pageIndex);
+        }
+      });
+    },
   },
   mounted: function () {
     this.changePage(1);
   },
   components: {
-    "personPopedom-detail": PersonPopedomDetail
+    "personPopedom-detail": PersonPopedomDetail,
   },
 };
 </script>