dedsudiyu 2 年 前
コミット
df9e15dd1d

+ 1 - 1
src/api/evacuation3_2/index.js

@@ -234,7 +234,7 @@ export function riskPlanBatchJoinSub(data) {
 }
 }
 
 
 
 
-//疏散设备页面获取楼栋楼层
+//疏散设备页面获取楼栋楼层(组织架构优化后废弃2023/6/20)
 export function selBuildOrFloorList(query) {
 export function selBuildOrFloorList(query) {
   return request({
   return request({
     url: 'laboratory/buildFloor/selBuildOrFloorList',
     url: 'laboratory/buildFloor/selBuildOrFloorList',

+ 10 - 1
src/api/laboratory/building.js

@@ -8,7 +8,7 @@ export function listBuilding(query) {
     params: query
     params: query
   })
   })
 }
 }
-// 查询楼层 通过楼栋ID
+// 查询楼层 通过楼栋ID(组织架构优化后废弃2023/6/20)
 export function listFloorByBuildId(id) {
 export function listFloorByBuildId(id) {
   return request({
   return request({
     url: `/laboratory/building/${id}/list`,
     url: `/laboratory/building/${id}/list`,
@@ -63,3 +63,12 @@ export function delBuilding(id) {
     method: 'delete'
     method: 'delete'
   })
   })
 }
 }
+
+//查询楼栋/根据楼栋ID查询楼层(无权限)
+export function buildFloorGetlist(query) {
+  return request({
+    url: '/laboratory/buildFloor/getlist',
+    method: 'get',
+    params: query
+  })
+}

+ 1 - 1
src/api/system/dept.js

@@ -25,7 +25,7 @@ export function listDepartments() {
     method: 'get'
     method: 'get'
   })
   })
 }
 }
-// 查询楼栋列表-通过院系ID
+// 查询楼栋列表-通过院系ID(组织架构优化后废弃2023/6/20)
 export function listbuildings(id) {
 export function listbuildings(id) {
   return request({
   return request({
     url: `/system/dept/${id}/building/list`,
     url: `/system/dept/${id}/building/list`,

+ 9 - 0
src/api/system/post.js

@@ -52,3 +52,12 @@ export function allListPost(query) {
     params: query
     params: query
   })
   })
 }
 }
+
+//查询权限组下拉列表
+export function optionselect(query) {
+  return request({
+    url: '/system/role/optionselect',
+    method: 'get',
+    params: query
+  })
+}

+ 1 - 1
src/api/system/role.js

@@ -9,7 +9,7 @@ export function listRole(query) {
   })
   })
 }
 }
 
 
-// 查询角色详细
+// 查询角色已有权限
 export function getRole(roleId) {
 export function getRole(roleId) {
   return request({
   return request({
     url: '/system/role/' + roleId,
     url: '/system/role/' + roleId,

+ 20 - 18
src/views/comprehensive/laboratoryManagement/subject/addSubject.vue

@@ -46,7 +46,7 @@
         </el-select>
         </el-select>
       </el-form-item>
       </el-form-item>
       <el-form-item label="学院" prop="deptId" class="form-item">
       <el-form-item label="学院" prop="deptId" class="form-item">
-        <el-select v-model="form.deptId" placeholder="请选择学院" @change="getBuildings" style="width:320px;">
+        <el-select v-model="form.deptId" placeholder="请选择学院" style="width:320px;">
           <el-option
           <el-option
             v-for="dict in deptOptions"
             v-for="dict in deptOptions"
             :key="dict.deptId"
             :key="dict.deptId"
@@ -59,9 +59,9 @@
         <el-select v-model="form.buildId" placeholder="请选择楼栋"  @change="getFloors" style="width:320px;">
         <el-select v-model="form.buildId" placeholder="请选择楼栋"  @change="getFloors" style="width:320px;">
           <el-option
           <el-option
             v-for="dict in buildings"
             v-for="dict in buildings"
-            :key="dict.deptId"
-            :label="dict.deptName"
-            :value="dict.deptId"
+            :key="dict.id"
+            :label="dict.name"
+            :value="dict.id"
           ></el-option>
           ></el-option>
         </el-select>
         </el-select>
       </el-form-item>
       </el-form-item>
@@ -177,11 +177,11 @@
 </template>
 </template>
 
 
 <script>
 <script>
-    import { listDepartments,listbuildings } from "@/api/system/dept";
+    import { listDepartments } from "@/api/system/dept";
     import { listClassifiedAll } from "@/api/laboratory/classified";
     import { listClassifiedAll } from "@/api/laboratory/classified";
     import { listClasstypeAll } from "@/api/laboratory/classtype";
     import { listClasstypeAll } from "@/api/laboratory/classtype";
     import { onUselistLayoutByFloorId,onUselistLayoutByFloorIdTwo } from "@/api/laboratory/layout";
     import { onUselistLayoutByFloorId,onUselistLayoutByFloorIdTwo } from "@/api/laboratory/layout";
-    import { listFloorByBuildId } from "@/api/laboratory/building";
+    import { buildFloorGetlist } from "@/api/laboratory/building";
     import { selectTeacherList } from "@/api/system/user";
     import { selectTeacherList } from "@/api/system/user";
     import { addSubject, getClassifyBySubId, updateSubject } from '@/api/laboratory/subject'
     import { addSubject, getClassifyBySubId, updateSubject } from '@/api/laboratory/subject'
     import { labMoldQueryOption } from "@/api/laboratory/subjectClass";
     import { labMoldQueryOption } from "@/api/laboratory/subjectClass";
@@ -348,17 +348,19 @@
             this.safetyInfoList=list
             this.safetyInfoList=list
           }
           }
           //根据学院获取楼栋
           //根据学院获取楼栋
-          listbuildings(this.form.deptId).then(response => {
-            this.buildings = response.data;
+          buildFloorGetlist({type:2}).then(response => {
+            console.log('123')
+            this.buildings = response.rows;
             //根据楼栋获取层
             //根据楼栋获取层
-            listFloorByBuildId(this.form.buildId).then(response=>{
-              this.floors = response.data;
-              //根据层获取实验室
-              // onUselistLayoutByFloorIdTwo(this.form.floorId,this.form.layoutId).then(response=>{
-              //   this.layoutLists = response.data;
-              // });
+            buildFloorGetlist({type:3,parentId:this.form.buildId}).then(response=>{
+              this.floors = response.rows;
             });
             });
           });
           });
+        }else{
+          //根据学院获取楼栋
+          buildFloorGetlist({type:2}).then(response => {
+            this.buildings = response.rows;
+          });
         }
         }
       },
       },
       methods:{
       methods:{
@@ -461,8 +463,8 @@
             this.floors = [];
             this.floors = [];
             // this.$set(this.form, 'layoutId', '');//房间
             // this.$set(this.form, 'layoutId', '');//房间
             this.layoutLists = [];
             this.layoutLists = [];
-            listbuildings(id).then(response => {
-              this.buildings = response.data;
+            buildFloorGetlist({type:2}).then(response => {
+              this.buildings = response.rows;
             });
             });
           }
           }
         },
         },
@@ -473,8 +475,8 @@
             this.floors = [];
             this.floors = [];
             // this.$set(this.form, 'layoutId', '');//房间
             // this.$set(this.form, 'layoutId', '');//房间
             this.layoutLists = [];
             this.layoutLists = [];
-            listFloorByBuildId(id).then(response=>{
-              this.floors = response.data;
+            buildFloorGetlist({type:3,parentId:id}).then(response=>{
+              this.floors = response.rows;
             });
             });
           }
           }
         },
         },

+ 47 - 15
src/views/comprehensive/personnel/post/index.vue

@@ -36,11 +36,10 @@
       </el-form>
       </el-form>
       <el-table v-loading="loading" border :data="postList" @selection-change="handleSelectionChange">
       <el-table v-loading="loading" border :data="postList" @selection-change="handleSelectionChange">
         <el-table-column type="selection" width="55" align="center" />
         <el-table-column type="selection" width="55" align="center" />
-        <!--<el-table-column label="职位编号" align="left" prop="postId" />-->
-        <el-table-column label="职位编码" align="left" prop="postCode" />
-        <el-table-column label="职位名称" align="left" prop="postName" />
-        <el-table-column label="职位排序" align="left" prop="postSort" />
-        <el-table-column label="状态" align="left" prop="status" :formatter="statusFormat" />
+        <el-table-column label="身份名称" align="left" prop="postName" :show-overflow-tooltip="true" width="200"/>
+        <el-table-column label="身份编码" align="left" prop="postCode" :show-overflow-tooltip="true" width="200"/>
+        <el-table-column label="权限组" align="left" prop="roleNameStr" :show-overflow-tooltip="true"/>
+        <el-table-column label="状态" align="left" prop="status" :formatter="statusFormat" :show-overflow-tooltip="true" width="80"/>
         <el-table-column label="创建时间" align="left" prop="createTime" width="180">
         <el-table-column label="创建时间" align="left" prop="createTime" width="180">
           <template slot-scope="scope">
           <template slot-scope="scope">
             <span>{{ parseTime(scope.row.createTime) }}</span>
             <span>{{ parseTime(scope.row.createTime) }}</span>
@@ -108,8 +107,24 @@
         <el-form-item label="职位编码" prop="postCode">
         <el-form-item label="职位编码" prop="postCode">
           <el-input v-model="form.postCode" placeholder="请输入编码名称" maxlength="10" />
           <el-input v-model="form.postCode" placeholder="请输入编码名称" maxlength="10" />
         </el-form-item>
         </el-form-item>
-        <el-form-item label="职位顺序" prop="postSort">
-          <el-input-number v-model="form.postSort" controls-position="right" :min="0"  style="width: 380px"/>
+        <!--<el-form-item label="职位顺序" prop="postSort">-->
+          <!--<el-input-number v-model="form.postSort" controls-position="right" :min="0"  style="width: 380px"/>-->
+        <!--</el-form-item>-->
+
+        <el-form-item label="职位状态" prop="status">
+          <el-select
+            style="width:380px;"
+            v-model="form.roleIds"
+            multiple
+            collapse-tags
+            placeholder="请选择">
+            <el-option
+              v-for="item in optionselectList"
+              :key="item.roleId"
+              :label="item.roleName"
+              :value="item.roleId">
+            </el-option>
+          </el-select>
         </el-form-item>
         </el-form-item>
         <el-form-item label="职位状态" prop="status">
         <el-form-item label="职位状态" prop="status">
           <el-radio-group v-model="form.status">
           <el-radio-group v-model="form.status">
@@ -120,9 +135,9 @@
             >{{dict.dictLabel}}</el-radio>
             >{{dict.dictLabel}}</el-radio>
           </el-radio-group>
           </el-radio-group>
         </el-form-item>
         </el-form-item>
-        <el-form-item label="备注" prop="remark">
-          <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
-        </el-form-item>
+        <!--<el-form-item label="备注" prop="remark">-->
+          <!--<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />-->
+        <!--</el-form-item>-->
       </el-form>
       </el-form>
       <div slot="footer" class="dialog-footer">
       <div slot="footer" class="dialog-footer">
         <el-button @click="cancel">取 消</el-button>
         <el-button @click="cancel">取 消</el-button>
@@ -136,7 +151,7 @@
 </template>
 </template>
 
 
 <script>
 <script>
-import { listPost, getPost, delPost, addPost, updatePost } from "@/api/system/post";
+import { listPost, getPost, delPost, addPost, updatePost, optionselect } from "@/api/system/post";
 import authUser from "./authUser.vue";
 import authUser from "./authUser.vue";
 
 
 export default {
 export default {
@@ -194,7 +209,9 @@ export default {
           { required: true, message: "职位顺序不能为空", trigger: "blur" },
           { required: true, message: "职位顺序不能为空", trigger: "blur" },
           { required: true, message: "职位顺序不能为空", validator: this.spaceJudgment, trigger: "blur" }
           { required: true, message: "职位顺序不能为空", validator: this.spaceJudgment, trigger: "blur" }
         ]
         ]
-      }
+      },
+      //权限组列表
+      optionselectList:[],
     };
     };
   },
   },
   created() {
   created() {
@@ -202,6 +219,7 @@ export default {
     this.getDicts("sys_normal_disable").then(response => {
     this.getDicts("sys_normal_disable").then(response => {
       this.statusOptions = response.data;
       this.statusOptions = response.data;
     });
     });
+    this.optionselect();
   },
   },
   methods: {
   methods: {
     clickPage(type){
     clickPage(type){
@@ -218,6 +236,12 @@ export default {
         this.loading = false;
         this.loading = false;
       });
       });
     },
     },
+    //获取权限组列表
+    optionselect(){
+      optionselect().then(response => {
+        this.optionselectList = response.data;
+      });
+    },
     // 职位状态字典翻译
     // 职位状态字典翻译
     statusFormat(row, column) {
     statusFormat(row, column) {
       return this.selectDictLabel(this.statusOptions, row.status);
       return this.selectDictLabel(this.statusOptions, row.status);
@@ -271,13 +295,19 @@ export default {
     handleAdd() {
     handleAdd() {
       this.reset();
       this.reset();
       this.open = true;
       this.open = true;
-      this.title = "添加职位";
+      this.title = "新增身份";
     },
     },
     /** 修改按钮操作 */
     /** 修改按钮操作 */
     handleUpdate(row) {
     handleUpdate(row) {
       this.reset();
       this.reset();
       const postId = row.postId || this.ids
       const postId = row.postId || this.ids
       getPost(postId).then(response => {
       getPost(postId).then(response => {
+        if(response.data.roleIds){
+          response.data.roleIds = response.data.roleIds.split(',')
+        }
+        for(let i=0;i<response.data.roleIds.length;i++){
+          response.data.roleIds[i] = parseInt(response.data.roleIds[i]);//字符串转数字
+        }
         this.form = response.data;
         this.form = response.data;
         this.open = true;
         this.open = true;
         this.title = "修改职位";
         this.title = "修改职位";
@@ -287,14 +317,16 @@ export default {
     submitForm: function() {
     submitForm: function() {
       this.$refs["form"].validate(valid => {
       this.$refs["form"].validate(valid => {
         if (valid) {
         if (valid) {
+          let obj = JSON.parse(JSON.stringify(this.form))
+          obj.roleIds = obj.roleIds+'';
           if (this.form.postId != undefined) {
           if (this.form.postId != undefined) {
-            updatePost(this.form).then(response => {
+            updatePost(obj).then(response => {
               this.msgSuccess("修改成功");
               this.msgSuccess("修改成功");
               this.open = false;
               this.open = false;
               this.getList();
               this.getList();
             });
             });
           } else {
           } else {
-            addPost(this.form).then(response => {
+            addPost(obj).then(response => {
               this.msgSuccess("新增成功");
               this.msgSuccess("新增成功");
               this.open = false;
               this.open = false;
               this.getList();
               this.getList();

+ 79 - 45
src/views/comprehensive/personnel/student/addPage.vue

@@ -3,7 +3,7 @@
     <div class="top-title-box">
     <div class="top-title-box">
       <p>{{titleName}}</p>
       <p>{{titleName}}</p>
     </div>
     </div>
-    <el-form :model="form" class="top-info-box" ref="form" :inline="true" :rules="rules" label-width="120px">
+    <el-form :model="form" class="top-info-box" ref="form" :inline="true" :rules="rules" label-width="180px">
       <div class="left-info-box">
       <div class="left-info-box">
         <img :src="form.avatar" v-if="form.avatar">
         <img :src="form.avatar" v-if="form.avatar">
         <img src="@/assets/ZDimages/tx_cion_one.png" v-if="!form.avatar">
         <img src="@/assets/ZDimages/tx_cion_one.png" v-if="!form.avatar">
@@ -59,6 +59,26 @@
             </el-option>
             </el-option>
           </el-select>
           </el-select>
         </el-form-item>
         </el-form-item>
+        <el-form-item label="身份:" prop="position">
+          <el-select
+            :disabled="editType"
+            v-model="form.position"
+            filterable
+            remote
+            clearable
+            reserve-keyword
+            @change="positionSelectClick"
+            @clear="positionClearClick"
+            placeholder="请选择身份"
+            :remote-method="positionSelect">
+            <el-option
+              v-for="item in positionOptions"
+              :key="item.postId"
+              :label="item.postName"
+              :value="item.postId">
+            </el-option>
+          </el-select>
+        </el-form-item>
         <el-form-item label="专业:" prop="majorId">
         <el-form-item label="专业:" prop="majorId">
           <el-select
           <el-select
             :disabled="editType"
             :disabled="editType"
@@ -67,7 +87,6 @@
             remote
             remote
             clearable
             clearable
             reserve-keyword
             reserve-keyword
-            @visible-change="majorSelectNull"
             @change="majorSelectClick"
             @change="majorSelectClick"
             @clear="majorClearClick"
             @clear="majorClearClick"
             placeholder="请选择专业"
             placeholder="请选择专业"
@@ -100,7 +119,6 @@
             remote
             remote
             clearable
             clearable
             reserve-keyword
             reserve-keyword
-            @visible-change="gradeSelectNull"
             @change="gradeSelectClick"
             @change="gradeSelectClick"
             @clear="gradeClearClick"
             @clear="gradeClearClick"
             placeholder="请选择班级"
             placeholder="请选择班级"
@@ -216,22 +234,6 @@
           </div>
           </div>
           <p v-if="!form.signature" style="line-height:40px;color:#999;width:180px;padding-left:40px;">未上传</p>
           <p v-if="!form.signature" style="line-height:40px;color:#999;width:180px;padding-left:40px;">未上传</p>
         </el-form-item>
         </el-form-item>
-        <el-form-item label="账号状态:" prop="status">
-          <el-switch
-            v-if="!editType"
-            @click.native="changeIsNeedCaptcha"
-            class="switch captcha-img"
-            :active-value="0"
-            :inactive-value="1"
-            active-color="#29B24D"
-            inactive-color="#999"
-            v-model="form.status"
-            active-text="启用"
-            inactive-text="停用"
-            disabled
-          ></el-switch>
-          <p v-if="editType" style="line-height:40px;color:#999;width:180px;padding-left:40px;">{{form.status==0?'启用':'停用'}}</p>
-        </el-form-item>
       </div>
       </div>
     </el-form>
     </el-form>
     <div class="bottom-button-box" v-if="editType">
     <div class="bottom-button-box" v-if="editType">
@@ -263,6 +265,7 @@
 
 
 <script>
 <script>
 import { listDepartments } from "@/api/system/dept";
 import { listDepartments } from "@/api/system/dept";
+import { optionselect } from "@/api/system/user_teacher";
 import { getWorkList, getVague, addSystemClass, getMajorList,getTeacherOption,addUserStudent,putUserStudent } from "@/api/system/user_student";
 import { getWorkList, getVague, addSystemClass, getMajorList,getTeacherOption,addUserStudent,putUserStudent } from "@/api/system/user_student";
 import { getToken } from "@/utils/auth";
 import { getToken } from "@/utils/auth";
 import addPageSubPagePublic from './differenceComponent/addPageSubPagePublic.vue'
 import addPageSubPagePublic from './differenceComponent/addPageSubPagePublic.vue'
@@ -334,6 +337,8 @@ export default {
       permissionOpen:false,
       permissionOpen:false,
       permissionCheckData:{},
       permissionCheckData:{},
       allCheckType:false,
       allCheckType:false,
+      //身份列表
+      positionOptions:[],
       //导师查询数据
       //导师查询数据
       tutorUserOptions:[],
       tutorUserOptions:[],
       //专业查询数据
       //专业查询数据
@@ -380,6 +385,11 @@ export default {
       }else{
       }else{
         this.form.deptId = '';
         this.form.deptId = '';
       }
       }
+      if(this.propsData.position){
+        this.form.position = parseInt(this.propsData.position);
+      }else{
+        this.form.position = '';
+      }
       if(this.propsData.majorId){
       if(this.propsData.majorId){
         this.form.majorId = parseInt(this.propsData.majorId);
         this.form.majorId = parseInt(this.propsData.majorId);
       }else{
       }else{
@@ -443,8 +453,10 @@ export default {
       this.getSelect();
       this.getSelect();
     }else{
     }else{
       this.getAll();
       this.getAll();
+      this.positionSelectAll();
       this.majorSelectAll();
       this.majorSelectAll();
       this.gradeSelectAll();
       this.gradeSelectAll();
+      this.positionSelect();
     }
     }
   },
   },
   mounted(){
   mounted(){
@@ -520,6 +532,8 @@ export default {
       });
       });
     },
     },
     getSelect(){
     getSelect(){
+      //身份查询
+      this.positionSelectAll();
       //导师查询
       //导师查询
       if(this.propsData.tutorUserName){
       if(this.propsData.tutorUserName){
         getTeacherOption({nickName:this.propsData.tutorUserName}).then(response => {
         getTeacherOption({nickName:this.propsData.tutorUserName}).then(response => {
@@ -568,6 +582,34 @@ export default {
     changeIsNeedCaptcha(){
     changeIsNeedCaptcha(){
       this.form.status = this.form.status == 1?0:1;
       this.form.status = this.form.status == 1?0:1;
     },
     },
+    positionSelectNull(type){
+      if(!type&&!this.positionOptions[0]){
+        this.positionSelectAll();
+      }
+    },
+    positionSelectAll(){
+      let obj = {
+        postName:'',
+      };
+      optionselect(obj).then(response => {
+        this.positionOptions = response.data;
+      });
+    },
+    //查询身份
+    positionSelect(query){
+      let obj = {
+        postName:query,
+      };
+      optionselect(obj).then(response => {
+        this.positionOptions = response.data;
+      });
+    },
+    positionSelectClick(data){
+      this.$forceUpdate();
+    },
+    positionClearClick(){
+      this.positionSelectAll();
+    },
     //*************************学籍状态查询
     //*************************学籍状态查询
     workStatusSelect(query){
     workStatusSelect(query){
       if (query !== '') {
       if (query !== '') {
@@ -634,17 +676,13 @@ export default {
       });
       });
     },
     },
     gradeSelect(query){
     gradeSelect(query){
-      if (query !== '') {
-        let obj = {
-          className:query,
-        }
-        getWorkList(obj).then(response => {
-          this.gradeOptions = response.data;
-          this.gradeOptions.push({className:"+ 添加班级",id:9981});
-        });
-      } else {
-        this.optionsUser = [];
+      let obj = {
+        className:query,
       }
       }
+      getWorkList(obj).then(response => {
+        this.gradeOptions = response.data;
+        this.gradeOptions.push({className:"+ 添加班级",id:9981});
+      });
     },
     },
     //班级选中触发
     //班级选中触发
     gradeSelectClick(data){
     gradeSelectClick(data){
@@ -676,16 +714,12 @@ export default {
       });
       });
     },
     },
     majorSelect(query){
     majorSelect(query){
-      if (query !== '') {
-        let obj = {
-          majorName:query,
-        };
-        getMajorList(obj).then(response => {
-          this.majorOptions = response.data;
-        });
-      } else {
-        this.majorOptions = [];
-      }
+      let obj = {
+        majorName:query,
+      };
+      getMajorList(obj).then(response => {
+        this.majorOptions = response.data;
+      });
     },
     },
     //专业选中触发
     //专业选中触发
     majorSelectClick(data){
     majorSelectClick(data){
@@ -1236,22 +1270,22 @@ export default {
       height:70px;
       height:70px;
     }
     }
     .el-input--small{
     .el-input--small{
-      width:180px!important;
+      width:250px!important;
     }
     }
     .el-select{
     .el-select{
-      width:180px!important;
+      width:250px!important;
     }
     }
     .el-input{
     .el-input{
-      width:180px!important;
+      width:250px!important;
     }
     }
     .el-input__inner{
     .el-input__inner{
-      width:180px!important;
+      width:250px!important;
     }
     }
     .el-radio-group{
     .el-radio-group{
-      width:180px!important;
+      width:250px!important;
     }
     }
     .is-disabled{
     .is-disabled{
-      width:180px!important;
+      width:250px!important;
     }
     }
 
 
     .switch .el-switch__label {
     .switch .el-switch__label {

+ 15 - 247
src/views/comprehensive/personnel/teacher/addPage.vue

@@ -4,7 +4,7 @@
       <div class="top-title-box">
       <div class="top-title-box">
         <p>{{titleName}}</p>
         <p>{{titleName}}</p>
       </div>
       </div>
-      <el-form :model="form" class="top-info-box" ref="form" :inline="true" :rules="rules" label-width="120px">
+      <el-form :model="form" class="top-info-box" ref="form" :inline="true" :rules="rules" label-width="180px">
         <div class="left-info-box">
         <div class="left-info-box">
           <img :src="form.avatar" v-if="form.avatar">
           <img :src="form.avatar" v-if="form.avatar">
           <img src="@/assets/ZDimages/tx_cion.png" v-if="!form.avatar">
           <img src="@/assets/ZDimages/tx_cion.png" v-if="!form.avatar">
@@ -161,235 +161,9 @@
               placeholder="请选择出生日期">
               placeholder="请选择出生日期">
             </el-date-picker>
             </el-date-picker>
           </el-form-item>
           </el-form-item>
-          <el-form-item label="在职状态:" prop="nature">
-            <el-switch
-              v-if="!editType"
-              @click.native="natureCaptcha"
-              class="switch captcha-img"
-              active-value="0"
-              inactive-value="1"
-              active-color="#29B24D"
-              inactive-color="#999"
-              v-model="form.nature"
-              active-text="在职"
-              inactive-text="离职"
-              disabled
-            ></el-switch>
-            <p v-if="editType" style="line-height:40px;color:#999;width:180px;padding-left:40px;">{{form.nature==0?'在职':'离职'}}</p>
-          </el-form-item>
-          <el-form-item label="安全检查人员:" prop="isCheck" v-if="versionField() != 'xiBeiNongLinDaXue'">
-            <el-switch
-              v-if="!editType"
-              @click.native="isCheckCaptcha"
-              class="switch captcha-img"
-              :active-value="1"
-              :inactive-value="0"
-              active-color="#0183FA"
-              inactive-color="#999"
-              v-model="form.isCheck"
-              active-text="是"
-              inactive-text="否"
-              disabled
-            ></el-switch>
-            <p v-if="editType" style="line-height:40px;color:#999;width:180px;padding-left:40px;">{{form.isCheck==0?'否':'是'}}</p>
-          </el-form-item>
-          <el-form-item label="账号状态:" prop="status" v-if="form.nature == 0">
-            <el-switch
-              v-if="!editType"
-              @click.native="statusCaptcha"
-              class="switch captcha-img"
-              active-value="0"
-              inactive-value="1"
-              active-color="#0183FA"
-              inactive-color="#999"
-              v-model="form.status"
-              active-text="启用"
-              inactive-text="停用"
-              disabled
-            ></el-switch>
-            <p v-if="editType" style="line-height:40px;color:#999;width:180px;padding-left:40px;">{{form.status==0?'启用':'停用'}}</p>
-          </el-form-item>
         </div>
         </div>
       </el-form>
       </el-form>
-      <div class="top-title-one" v-if="!editType && form.status == 0">
-        <p class="title-p">权限配置</p>
-        <p class="el-icon-question img-p" @mouseenter="showText" @mouseout="hideText"></p>
-        <div class="position-box" v-if="textType">
-          <p>1、权限快捷模板:列出所有已创建的快捷模板,可选择快捷导入模板;导入后可修改或清空。</p>
-          <p>2、模块菜单:选中父级,联动子级全部选中,可对子级单独勾选;子级选中,父级联动选中。</p>
-          <p>3、数据范围:数据查看范围选择,默认展示所有数据。</p>
-          <p>4、管理权限:功能操作权限,包含增删改查、启用、停用,以及导出等操作功能。</p>
-          <p>5、详细配置:对底层菜单的功能操作进行细分权限勾选,功能操作按所属菜单页面现有的功能操作进行展示,可单选、全选。</p>
-        </div>
-      </div>
-      <div class="for-button-list" v-if="!editType && form.status == 0">
-        <p class="for-title-p">权限快捷模板:</p>
-        <div class="for-button-max-box">
-          <div class="for-button-min-box" v-for="(item,index) in templateList" :key="index"
-               :class="templateKey == item.id?'colorAA':'colorBB'" @click="templateClick(item.id)">
-            <i class="el-icon-success" v-if="templateKey == item.id"></i>
-            <span>{{item.name}}</span>
-          </div>
-        </div>
-      </div>
-      <div class="template-name-box" v-if="!editType && form.status == 0">
-        <p class="template-name-p">当前导入模板:{{templateName?templateName:'无'}}</p>
-        <p class="reset-button-one template-name-button" @click="templateDel">清除</p>
-        <p class="template-name-button-one" @click="importUser">导入其他账号权限</p>
-      </div>
-      <div class="table-for-max-box" v-if="!editType && form.status == 0">
-        <div class="table-title-box">
-          <p>模块菜单</p>
-          <p>权限</p>
-        </div>
-        <div class="table-for-big-box" v-for="(maxItem,maxIndex) in menuList" :key="maxIndex">
-          <div class="max-title-box" :class="!maxItem.children?'max-title-box-null':''">
-            <p><el-checkbox :disabled="maxItem.isRequired == 1" v-model="maxItem.checkType" @change="(type)=>itemCheckClick(1,type,maxItem)">{{maxItem.menuName}}</el-checkbox></p>
-          </div>
-          <div class="max-right-box">
-            <div class="big-box" v-for="(bigItem,bigIndex) in maxItem.children" :key="bigIndex">
-              <div class="big-title-box" :class="bigItem.menuType == 'C'?'big-title-box-null':''">
-                <p><el-checkbox :disabled="bigItem.isRequired == 1" v-model="bigItem.checkType" @change="(type)=>itemCheckClick(2,type,bigItem,maxItem)">{{bigItem.menuName}}</el-checkbox></p>
-              </div>
-              <div class="big-right-box" v-if="bigItem.menuType !='C'">
-                <div class="min-box" v-for="(minItem,minIndex) in bigItem.children" :key="minIndex">
-                  <div class="min-title-box">
-                    <p><el-checkbox :disabled="minItem.isRequired == 1" v-model="minItem.checkType" @change="(type)=>itemCheckClick(3,type,minItem,bigItem,maxItem)">{{minItem.menuName}}</el-checkbox></p>
-                  </div>
-                  <div class="min-right-box" v-if="minItem.checkType">
-                    <div class="scope-box">
-                      <p>
-                        <el-checkbox v-model="minItem.scopeCheckType" @change="(type)=>itemCheckClick(4,type,minItem)" style="margin-right:40px;">数据范围</el-checkbox>
-                        <el-select v-model="minItem.dataScope" :disabled="!minItem.scopeCheckType" v-if="minItem.isRequired == 1"
-                                   placeholder="请选择1" @visible-change="(type)=>visibleChange(type,minItem,maxIndex,bigIndex,minIndex)">
-                          <el-option v-for="dist in optionsDataListOne" :key="dist.type" :label="dist.value" :value="dist.type" @click.native="(type)=>optionChange(dist.type,minItem,maxIndex,bigIndex,minIndex)"></el-option>
-                        </el-select>
-                        <el-select v-model="minItem.dataScope" :disabled="!minItem.scopeCheckType" v-if="minItem.isRequired != 1"
-                                   placeholder="请选择" @visible-change="(type)=>visibleChange(type,minItem,maxIndex,bigIndex,minIndex)">
-                          <el-option v-for="dist in optionsDataList" :key="dist.type" :label="dist.value" :value="dist.type" @click.native="(type)=>optionChange(dist.type,minItem,maxIndex,bigIndex,minIndex)"></el-option>
-                        </el-select>
-                      </p>
-                    </div>
-                    <div class="permission-box" v-if="minItem.children">
-                      <p class="check-left-p"><el-checkbox v-model="minItem.permissionCheckType"  @change="(type)=>itemCheckClick(5,type,minItem)">管理权限</el-checkbox></p>
-                      <div class="check-button-box" @click="permissionDetails(minItem,maxIndex,bigIndex,minIndex)"
-                           :class="minItem.permissionCheckType?'check-button-box-colorA':'check-button-box-colorB'">
-                        <img v-if="!minItem.permissionCheckType" src="@/assets/ZDimages/personnelManagement/icon_xzqx_zc.png">
-                        <img v-if="minItem.permissionCheckType" src="@/assets/ZDimages/personnelManagement/icon_xzqx_xz.png">
-                        <p>详细配置</p>
-                      </div>
-                    </div>
-                  </div>
-                </div>
-              </div>
-              <div class="big-right-box-null" v-if="bigItem.menuType == 'C'&&bigItem.checkType">
-                <div class="scope-box">
-                  <p>
-                    <el-checkbox v-model="bigItem.scopeCheckType" style="margin-right:40px;" @change="(type)=>itemCheckClick(4,type,bigItem)">数据范围</el-checkbox>
-                    <el-select v-model="bigItem.dataScope" :disabled="!bigItem.scopeCheckType" v-if="bigItem.isRequired == 1"
-                               placeholder="请选择" @visible-change="(type)=>visibleChange(type,bigItem,maxIndex,bigIndex)">
-                      <el-option v-for="dist in optionsDataListOne" :key="dist.type" :label="dist.value" :value="dist.type" @click.native="(type)=>optionChange(dist.type,bigItem,maxIndex,bigIndex)"></el-option>
-                    </el-select>
-                    <el-select v-model="bigItem.dataScope" :disabled="!bigItem.scopeCheckType" v-if="bigItem.isRequired != 1"
-                               placeholder="请选择" @visible-change="(type)=>visibleChange(type,bigItem,maxIndex,bigIndex)">
-                      <el-option v-for="dist in optionsDataList" :key="dist.type" :label="dist.value" :value="dist.type" @click.native="(type)=>optionChange(dist.type,bigItem,maxIndex,bigIndex)"></el-option>
-                    </el-select>
-                  </p>
-                </div>
-                <div class="permission-box" v-if="bigItem.children">
-                  <p class="check-left-p"><el-checkbox v-model="bigItem.permissionCheckType" @change="(type)=>itemCheckClick(5,type,bigItem)">管理权限</el-checkbox></p>
-                  <div class="check-button-box" @click="permissionDetails(bigItem,maxIndex,bigIndex)"
-                       :class="bigItem.permissionCheckType?'check-button-box-colorA':'check-button-box-colorB'">
-                    <img v-if="!bigItem.permissionCheckType" src="@/assets/ZDimages/personnelManagement/icon_xzqx_zc.png">
-                    <img v-if="bigItem.permissionCheckType" src="@/assets/ZDimages/personnelManagement/icon_xzqx_xz.png">
-                    <p>详细配置</p>
-                  </div>
-                </div>
-              </div>
-            </div>
-            <p class="big-box-null" v-if="!maxItem.children&&maxItem.menuName == '数据可视化'">数据可视化大屏查看权限</p>
-          </div>
-        </div>
-      </div>
-
       <user-list-one ref="userOpen"></user-list-one>
       <user-list-one ref="userOpen"></user-list-one>
-      <el-dialog :title="permissionCheckData.menuName+'模块'" :visible.sync="permissionOpen" width="900px"
-                 :close-on-click-modal="false" append-to-body class="managePermissionTemplates-permission-dialog-box">
-        <p class="title-p">{{permissionCheckData.menuName}}权限详细配置</p>
-        <div class="managePermissionTemplates-permission-dialog-form-box">
-          <div class="title-box">
-            <p class="left-title-p">功能菜单</p>
-            <div class="right-box">
-              <el-checkbox v-model="allCheckType" class="right-box-min" @change="(type)=>permissionCheckClick('1',type)">功能操作</el-checkbox>
-            </div>
-          </div>
-          <div class="check-box">
-            <div class="left-title-box">
-              <p class="left-title-p">{{permissionCheckData.menuName}}</p>
-            </div>
-            <div class="right-box">
-              <el-checkbox class="for-check-box" @change="(type)=>permissionCheckClick('2',type)"
-                           v-for="(item,index) in permissionCheckData.children" :key="index" v-model="item.checkType">
-                {{item.menuName}}
-              </el-checkbox>
-            </div>
-          </div>
-        </div>
-        <div slot="footer" class="managePermissionTemplates-permission-dialog-button-box">
-          <p class="reset-button-one" @click="permissionOpenOff">取消</p>
-          <p class="inquire-button-one" @click="surePermissionOpen">确定</p>
-        </div>
-      </el-dialog>
-      <el-dialog title="选择指定部门(可多选)" @close="deptCancel" :visible.sync="deptOpen" :close-on-click-modal="false"
-                 v-if="deptOpen" width="500px" append-to-body class="managePermissionTemplates-dept-dialog-box">
-        <el-form :model="deptForm" ref="deptForm" :inline="true" :rules="rules" class="addCheckPage-min">
-          <el-form-item label="指定部门" prop="deptIds" label-width="90px" class="el-form-item-bottom">
-            <el-cascader
-              style="width:300px;"
-              :options="treeselectList"
-              :props="{multiple: true,value: 'id', label: 'label'}"
-              v-model="deptForm.deptIds"
-              clearable>
-            </el-cascader>
-          </el-form-item>
-        </el-form>
-        <div slot="footer" class="managePermissionTemplates-dept-dialog-button-box">
-          <p class="reset-button-one" @click="deptCancel">取消</p>
-          <p class="inquire-button-one" @click="deptSure">确定</p>
-        </div>
-      </el-dialog>
-      <!--另存-->
-      <el-dialog title="另存为权限模板" :visible.sync="saveOpen" width="600px" :close-on-click-modal="false" append-to-body class="teacher-revise-dialog-box">
-        <el-form :model="saveForm" ref="saveForm" :inline="true" :rules="rules" class="addCheckPage-min">
-          <el-form-item label="模板名称" prop="name" label-width="110px" >
-            <el-input v-model="saveForm.name" clearable maxlength="12" style="width:420px;" placeholder="请输入模板名称"/>
-          </el-form-item>
-          <el-form-item label="是否为学生模板" prop="type" style="width:420px;">
-            <el-radio-group v-model="saveForm.type">
-              <el-radio :label="1" style="width:80px;margin-left:20px;">是</el-radio>
-              <el-radio :label="0">否</el-radio>
-            </el-radio-group>
-          </el-form-item>
-          <el-form-item label="权限模板说明" prop="newPassword" label-width="110px">
-            <el-input
-              type="textarea"
-              style="width:420px;"
-              maxlength="100"
-              resize="none"
-              show-word-limit
-              :autosize="{ minRows: 6, maxRows: 6}"
-              placeholder="请输入权限模板说明"
-              v-model="saveForm.text">
-            </el-input>
-          </el-form-item>
-        </el-form>
-        <!--<p class="teacher-text-p">确定要重置该账号的密码吗?</p>-->
-        <!--<p class="teacher-text-p">确定操作后,该账号密码将重置为系统初始密码。</p>-->
-        <div slot="footer" class="teacher-revise-dialog-button-box">
-          <p class="reset-button-one" @click="saveOpenOff">取消</p>
-          <p class="inquire-button-one" @click="saveUpData">确定</p>
-        </div>
-      </el-dialog>
     </div>
     </div>
     <div class="bottom-button-box" v-if="editType">
     <div class="bottom-button-box" v-if="editType">
       <p class="null-p"></p>
       <p class="null-p"></p>
@@ -401,9 +175,7 @@
       <p class="button-p-1 reset-button-one" @click="outPageButton">返回</p>
       <p class="button-p-1 reset-button-one" @click="outPageButton">返回</p>
       <addPageSubPageSZDX class="button-p-2" v-if="versionField() === 'suZhouDaXue'"></addPageSubPageSZDX>
       <addPageSubPageSZDX class="button-p-2" v-if="versionField() === 'suZhouDaXue'"></addPageSubPageSZDX>
       <addPageSubPagePublic class="button-p-2" v-else></addPageSubPagePublic>
       <addPageSubPagePublic class="button-p-2" v-else></addPageSubPagePublic>
-      <!--<p class="inquire-button-one" @click="upDataButton">提交</p>-->
-      <p class="button-p-3 add-button-one-150" v-if="form.status == 0 && form.nature == 0" @click="saveDataButton">另存为权限模板</p>
-      <p class="null-p"></p>
+     <p class="null-p"></p>
     </div>
     </div>
   </div>
   </div>
 </template>
 </template>
@@ -843,17 +615,13 @@ export default {
     },
     },
     //查询职称列表
     //查询职称列表
     categorySelect(query){
     categorySelect(query){
-      if (query !== '') {
-        let obj = {
-          dictType:"professional",
-          dictLabel:query
-        };
-        getVaguet(obj).then(response => {
-          this.categoryOptions = response.data;
-        });
-      } else {
-        this.categoryOptions = [];
-      }
+      let obj = {
+        dictType:"professional",
+        dictLabel:query
+      };
+      getVaguet(obj).then(response => {
+        this.categoryOptions = response.data;
+      });
     },
     },
     categorySelectClick(){
     categorySelectClick(){
 
 
@@ -1696,22 +1464,22 @@ export default {
       height:70px;
       height:70px;
     }
     }
     .el-input--small{
     .el-input--small{
-      width:180px!important;
+      width:250px!important;
     }
     }
     .el-select{
     .el-select{
-      width:180px!important;
+      width:250px!important;
     }
     }
     .el-input{
     .el-input{
-      width:180px!important;
+      width:250px!important;
     }
     }
     .el-input__inner{
     .el-input__inner{
-      width:180px!important;
+      width:250px!important;
     }
     }
     .el-radio-group{
     .el-radio-group{
-      width:180px!important;
+      width:250px!important;
     }
     }
     .is-disabled{
     .is-disabled{
-      width:180px!important;
+      width:250px!important;
     }
     }
 
 
     .switch .el-switch__label {
     .switch .el-switch__label {

ファイルの差分が大きいため隠しています
+ 244 - 880
src/views/comprehensive/system/role/addPage.vue


+ 69 - 446
src/views/comprehensive/system/role/index.vue

@@ -3,7 +3,6 @@
   <div class="app-container role">
   <div class="app-container role">
     <div class="role_n" v-if="pageType==1">
     <div class="role_n" v-if="pageType==1">
       <el-form :model="queryParams" ref="queryForm" v-show="showSearch" :inline="true" class="form-box" >
       <el-form :model="queryParams" ref="queryForm" v-show="showSearch" :inline="true" class="form-box" >
-
         <el-form-item label="角色名称" prop="roleName" style="margin-left:20px;">
         <el-form-item label="角色名称" prop="roleName" style="margin-left:20px;">
           <el-input
           <el-input
             v-model="queryParams.roleName"
             v-model="queryParams.roleName"
@@ -40,36 +39,23 @@
           <p class="reset-button-one" @click="resetQuery">重置</p>
           <p class="reset-button-one" @click="resetQuery">重置</p>
         </el-form-item>
         </el-form-item>
       </el-form>
       </el-form>
-
-      <el-table v-loading="loading" border :data="roleList" @selection-change="handleSelectionChange" class="table-box" v-if="pageType==1">
-        <el-table-column label="角色名称" prop="roleName" align="left" :show-overflow-tooltip="true"/>
-        <el-table-column label="显示顺序" prop="roleSort" align="left"/>
-        <el-table-column label="状态" align="left">
+      <el-table v-loading="loading" border :data="roleList" class="table-box" v-if="pageType==1">
+        <el-table-column label="序号" width="100" align="center"  type="index"/>
+        <el-table-column label="名称" prop="roleName" align="center" :show-overflow-tooltip="true" width="200"/>
+        <el-table-column label="数据范围" prop="dataScope" align="center" :show-overflow-tooltip="true" width="296">
           <template slot-scope="scope">
           <template slot-scope="scope">
-            <el-switch
-              class="switch"
-              @change="handleStatusChange(scope.row)"
-              v-model="scope.row.status"
-              active-value="0"
-              inactive-value="1"
-              active-text="开"
-              inactive-text="关"
-            >
-            </el-switch>
+            <p v-for="(item,index) in optionsDataList" :key="index" v-if="scope.row.dataScope == item.type">{{item.value}}</p>
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-        <el-table-column label="操作" align="left" class-name="small-padding fixed-width" width="280" v-if="tableButtonType">
+        <el-table-column label="对应身份" prop="postNameStr" align="center" :show-overflow-tooltip="true"/>
+        <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="180" v-if="tableButtonType">
           <template slot-scope="scope" v-if="scope.row.roleId !== 1">
           <template slot-scope="scope" v-if="scope.row.roleId !== 1">
             <div class="table-button-box">
             <div class="table-button-box">
               <p class="table-button-null"></p>
               <p class="table-button-null"></p>
               <p class="table-button-p"
               <p class="table-button-p"
-                 @click="handleAuthUser(scope.row)"
+                 @click="copyButton(scope.row)"
                  v-hasPermi="['system:dict:edit']"
                  v-hasPermi="['system:dict:edit']"
-              >分配用户</p>
-              <p class="table-button-p"
-                 @click="handleDataScope(scope.row)"
-                 v-hasPermi="['system:dict:edit']"
-              >数据结构</p>
+              >复制</p>
               <p class="table-button-p"
               <p class="table-button-p"
                  @click="handleUpdate(scope.row)"
                  @click="handleUpdate(scope.row)"
                  v-hasPermi="['system:role:edit']"
                  v-hasPermi="['system:role:edit']"
@@ -83,7 +69,6 @@
           </template>
           </template>
         </el-table-column>
         </el-table-column>
       </el-table>
       </el-table>
-
       <pagination :page-sizes="[20, 30, 40, 50]"
       <pagination :page-sizes="[20, 30, 40, 50]"
                   v-if="pageType==1"
                   v-if="pageType==1"
                   v-show="total>0"
                   v-show="total>0"
@@ -93,119 +78,18 @@
                   :limit.sync="queryParams.pageSize"
                   :limit.sync="queryParams.pageSize"
                   @pagination="getList"
                   @pagination="getList"
       />
       />
-
-      <!-- 添加或修改角色配置对话框 -->
-      <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body class="role-el-dialog" :close-on-click-modal="false">
-        <el-form ref="form" :model="form" :rules="rules" label-width="100px">
-          <el-form-item label="角色名称" prop="roleName">
-            <el-input v-model="form.roleName" placeholder="请输入角色名称" />
-          </el-form-item>
-          <el-form-item prop="roleKey">
-          <span slot="label">
-            <el-tooltip content="控制器中定义的权限字符,如:@PreAuthorize(`@ss.hasRole('admin')`)" placement="top">
-              <i class="el-icon-question"></i>
-            </el-tooltip>
-            权限字符
-          </span>
-            <el-input v-model="form.roleKey" placeholder="请输入权限字符" />
-          </el-form-item>
-          <el-form-item label="角色顺序" prop="roleSort">
-            <el-input-number v-model="form.roleSort" controls-position="right" :min="0" />
-          </el-form-item>
-          <el-form-item label="状态">
-            <el-radio-group v-model="form.status">
-              <el-radio
-                v-for="dict in statusOptions"
-                :key="dict.dictValue"
-                :label="dict.dictValue"
-              >{{dict.dictLabel}}</el-radio>
-            </el-radio-group>
-          </el-form-item>
-          <el-form-item label="菜单权限">
-            <el-checkbox v-model="menuExpand" @change="handleCheckedTreeExpand($event, 'menu')">展开/折叠</el-checkbox>
-            <el-checkbox v-model="menuNodeAll" @change="handleCheckedTreeNodeAll($event, 'menu')">全选/全不选</el-checkbox>
-            <el-checkbox v-model="form.menuCheckStrictly" @change="handleCheckedTreeConnect($event, 'menu')">父子联动</el-checkbox>
-            <el-tree
-              class="tree-border"
-              :data="menuOptions"
-              show-checkbox
-              ref="menu"
-              node-key="id"
-              :check-strictly="!form.menuCheckStrictly"
-              empty-text="加载中,请稍后"
-              :props="defaultProps"
-            ></el-tree>
-          </el-form-item>
-          <el-form-item label="备注">
-            <el-input v-model="form.remark" type="text" placeholder="请输入内容"></el-input>
-          </el-form-item>
-        </el-form>
-        <div slot="footer" class="dialog-footer">
-          <el-button @click="cancel">取 消</el-button>
-          <el-button type="primary" @click="submitForm">确 定</el-button>
-        </div>
-      </el-dialog>
-
-      <!-- 分配角色数据权限对话框 -->
-      <el-dialog :title="title" :visible.sync="openDataScope" width="500px" append-to-body :close-on-click-modal="false">
-        <el-form :model="form" label-width="80px">
-          <el-form-item label="角色名称">
-            <el-input v-model="form.roleName" :disabled="true" />
-          </el-form-item>
-          <el-form-item label="权限字符">
-            <el-input v-model="form.roleKey" :disabled="true" />
-          </el-form-item>
-          <el-form-item label="权限范围">
-            <el-select v-model="form.dataScope" @change="dataScopeSelectChange">
-              <el-option
-                v-for="item in dataScopeOptions"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value"
-              ></el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="数据权限" v-show="form.dataScope == 2">
-            <el-checkbox v-model="deptExpand" @change="handleCheckedTreeExpand($event, 'dept')">展开/折叠</el-checkbox>
-            <el-checkbox v-model="deptNodeAll" @change="handleCheckedTreeNodeAll($event, 'dept')">全选/全不选</el-checkbox>
-            <el-checkbox v-model="form.deptCheckStrictly" @change="handleCheckedTreeConnect($event, 'dept')">父子联动</el-checkbox>
-            <el-tree
-              class="tree-border"
-              :data="deptOptions"
-              show-checkbox
-              default-expand-all
-              ref="dept"
-              node-key="id"
-              :check-strictly="!form.deptCheckStrictly"
-              empty-text="加载中,请稍后"
-              :props="defaultProps"
-            ></el-tree>
-          </el-form-item>
-        </el-form>
-        <div slot="footer" class="dialog-footer">
-          <el-button @click="cancelDataScope">取 消</el-button>
-          <el-button type="primary" @click="submitDataScope">确 定</el-button>
-        </div>
-      </el-dialog>
     </div>
     </div>
-
-
-    <!--分配用户-->
-<!--    <auth-user :roleId="roleId" v-if="pageType == 2"></auth-user>-->
-    <add-page v-if="pageType == 2" :editType="editType" :propsData="propsData" :titleName="titleName"></add-page>
+    <!--编辑-->
+    <add-page v-if="pageType == 2" :propsData="propsData"></add-page>
   </div>
   </div>
 </template>
 </template>
 
 
 <script>
 <script>
 import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus } from "@/api/system/role";
 import { listRole, getRole, delRole, addRole, updateRole, dataScope, changeRoleStatus } from "@/api/system/role";
-import { treeselect as menuTreeselect, roleMenuTreeselect } from "@/api/system/menu";
-import { treeselect as deptTreeselect, roleDeptTreeselect } from "@/api/system/dept";
-import authUser from "./authUser.vue";
 import addPage from "./addPage.vue"
 import addPage from "./addPage.vue"
 
 
 export default {
 export default {
   components: {
   components: {
-    authUser,
     addPage
     addPage
   },
   },
   name: "Role",
   name: "Role",
@@ -214,94 +98,30 @@ export default {
       tableButtonType:this.hasPermiDom(['system:dict:edit','system:role:edit','system:role:remove']),
       tableButtonType:this.hasPermiDom(['system:dict:edit','system:role:edit','system:role:remove']),
       // 遮罩层
       // 遮罩层
       loading: true,
       loading: true,
-      // 选中数组
-      ids: [],
-      // 非单个禁用
-      single: true,
-      // 非多个禁用
-      multiple: true,
       // 显示搜索条件
       // 显示搜索条件
       showSearch: true,
       showSearch: true,
       // 总条数
       // 总条数
       total: 0,
       total: 0,
-      // 角色表格数据
-      roleList: [],
-      // 弹出层标题
-      title: "",
-      // 是否显示弹出层
-      open: false,
-      // 是否显示弹出层(数据权限)
-      openDataScope: false,
-      menuExpand: false,
-      menuNodeAll: false,
-      deptExpand: true,
-      deptNodeAll: false,
-      // 日期范围
-      dateRange: [],
       // 状态数据字典
       // 状态数据字典
       statusOptions: [],
       statusOptions: [],
-      // 数据范围选项
-      dataScopeOptions: [
-        {
-          value: "1",
-          label: "全部数据权限"
-        },
-        {
-          value: "2",
-          label: "自定数据权限"
-        },
-        // {
-        //   value: "3",
-        //   label: "本部门数据权限"
-        // },
-        {
-          value: "4",
-          label: "本部门及以下数据权限"
-        },
-        // {
-        //   value: "5",
-        //   label: "仅本人数据权限"
-        // }
-      ],
-      // 菜单列表
-      menuOptions: [],
-      // 部门列表
-      deptOptions: [],
       // 查询参数
       // 查询参数
       queryParams: {
       queryParams: {
         pageNum: 1,
         pageNum: 1,
         pageSize:20,
         pageSize:20,
-        roleName: undefined,
-        roleKey: undefined,
-        status: undefined
-      },
-      // 表单参数
-      form: {},
-      defaultProps: {
-        children: "children",
-        label: "label"
-      },
-      // 表单校验
-      rules: {
-        roleName: [
-          { required: true, message: "角色名称不能为空", trigger: "blur" },
-          { required: true, message: "角色名称不能为空", validator: this.spaceJudgment, trigger: "blur" }
-        ],
-        roleKey: [
-          { required: true, message: "权限字符不能为空", trigger: "blur" },
-          { required: true, message: "权限字符不能为空", validator: this.spaceJudgment, trigger: "blur" }
-        ],
-        roleSort: [
-          { required: true, message: "角色顺序不能为空", trigger: "blur" },
-          { required: true, message: "角色顺序不能为空", validator: this.spaceJudgment, trigger: "blur" }
-        ]
+        roleName: null,
+        status: null
       },
       },
+      roleList:[],
       pageType:1,
       pageType:1,
-      roleId:"",
-      editType:false,
       //组件传参数据
       //组件传参数据
       propsData:{},
       propsData:{},
-      titleName:'新增身份',
+      //数据范围列表
+      optionsDataList:[
+        {type: '1', value: "所有数据",},
+        {type: '2', value: "本部门及指定部门数据",},
+        {type: '4', value: "本部门及下级部门数据",},
+        {type: '5', value: "当前账号数据",},
+      ],
     };
     };
   },
   },
   created() {
   created() {
@@ -311,14 +131,15 @@ export default {
     });
     });
   },
   },
   methods: {
   methods: {
-    outPage(){
-      this.pageType = 1;
-      this.getList();
-    },
-    //页面切换
-    clickPage(){
-      this.roleId="";
-      this.pageType=1;
+    goPage(type){
+      if(this.pageType != type){
+        if(type == 1){
+          this.$set(this,'pageType',type);
+        }else if(type == 3){
+          this.$set(this,'pageType',1);
+          this.resetQuery();
+        }
+      }
     },
     },
     /** 查询角色列表 */
     /** 查询角色列表 */
     getList() {
     getList() {
@@ -331,98 +152,6 @@ export default {
         }
         }
       );
       );
     },
     },
-    /** 查询菜单树结构 */
-    getMenuTreeselect() {
-      menuTreeselect().then(response => {
-        this.menuOptions = response.data;
-      });
-    },
-    /** 查询部门树结构 */
-    getDeptTreeselect() {
-      deptTreeselect().then(response => {
-        this.deptOptions = response.data;
-      });
-    },
-    // 所有菜单节点数据
-    getMenuAllCheckedKeys() {
-      // 目前被选中的菜单节点
-      let checkedKeys = this.$refs.menu.getCheckedKeys();
-      // 半选中的菜单节点
-      let halfCheckedKeys = this.$refs.menu.getHalfCheckedKeys();
-      checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
-      return checkedKeys;
-    },
-    // 所有部门节点数据
-    getDeptAllCheckedKeys() {
-      // 目前被选中的部门节点
-      let checkedKeys = this.$refs.dept.getCheckedKeys();
-      // 半选中的部门节点
-      let halfCheckedKeys = this.$refs.dept.getHalfCheckedKeys();
-      checkedKeys.unshift.apply(checkedKeys, halfCheckedKeys);
-      return checkedKeys;
-    },
-    /** 根据角色ID查询菜单树结构 */
-    getRoleMenuTreeselect(roleId) {
-      return roleMenuTreeselect(roleId).then(response => {
-        this.menuOptions = response.menus;
-        return response;
-      });
-    },
-    /** 根据角色ID查询部门树结构 */
-    getRoleDeptTreeselect(roleId) {
-      return roleDeptTreeselect(roleId).then(response => {
-        this.deptOptions = response.depts;
-        return response;
-      });
-    },
-    // 角色状态修改
-    handleStatusChange(row) {
-      let text = row.status === "0" ? "启用" : "停用";
-      this.$confirm('确认要"' + text + '""' + row.roleName + '"角色吗?', "警告", {
-          confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning"
-        }).then(function() {
-          return changeRoleStatus(row.roleId, row.status);
-        }).then(() => {
-          this.msgSuccess(text + "成功");
-        }).catch(function() {
-          row.status = row.status === "0" ? "1" : "0";
-        });
-    },
-    // 取消按钮
-    cancel() {
-      this.open = false;
-      this.reset();
-    },
-    // 取消按钮(数据权限)
-    cancelDataScope() {
-      this.openDataScope = false;
-      this.reset();
-    },
-    // 表单重置
-    reset() {
-      if (this.$refs.menu != undefined) {
-        this.$refs.menu.setCheckedKeys([]);
-      }
-      this.menuExpand = false,
-      this.menuNodeAll = false,
-      this.deptExpand = true,
-      this.deptNodeAll = false,
-      this.form = {
-        roleId: undefined,
-        roleName: undefined,
-        roleKey: undefined,
-        roleSort: 0,
-        status: "0",
-        menuIds: [],
-        deptIds: [],
-        menuCheckStrictly: true,
-        deptCheckStrictly: true,
-        remark: undefined
-      };
-      this.resetForm("form");
-    },
     /** 搜索按钮操作 */
     /** 搜索按钮操作 */
     handleQuery() {
     handleQuery() {
       this.queryParams.pageNum = 1;
       this.queryParams.pageNum = 1;
@@ -430,175 +159,69 @@ export default {
     },
     },
     /** 重置按钮操作 */
     /** 重置按钮操作 */
     resetQuery() {
     resetQuery() {
-      this.dateRange = [];
-      this.resetForm("queryForm");
-      this.handleQuery();
-    },
-    // 多选框选中数据
-    handleSelectionChange(selection) {
-      this.ids = selection.map(item => item.roleId)
-      this.single = selection.length!=1
-      this.multiple = !selection.length
-    },
-    // 更多操作触发
-    handleCommand(command, row) {
-      switch (command) {
-        case "handleDataScope":
-          this.handleDataScope(row);
-          break;
-        case "handleAuthUser":
-          this.handleAuthUser(row);
-          break;
-        default:
-          break;
-      }
-    },
-    // 树权限(展开/折叠)
-    handleCheckedTreeExpand(value, type) {
-      if (type == 'menu') {
-        let treeList = this.menuOptions;
-        for (let i = 0; i < treeList.length; i++) {
-          this.$refs.menu.store.nodesMap[treeList[i].id].expanded = value;
-        }
-      } else if (type == 'dept') {
-        let treeList = this.deptOptions;
-        for (let i = 0; i < treeList.length; i++) {
-          this.$refs.dept.store.nodesMap[treeList[i].id].expanded = value;
+      this.$set(this,"form",
+        {
+          pageNum: 1,
+          pageSize:20,
+          roleName: null,
+          status: null
         }
         }
-      }
-    },
-    // 树权限(全选/全不选)
-    handleCheckedTreeNodeAll(value, type) {
-      if (type == 'menu') {
-        this.$refs.menu.setCheckedNodes(value ? this.menuOptions: []);
-      } else if (type == 'dept') {
-        this.$refs.dept.setCheckedNodes(value ? this.deptOptions: []);
-      }
-    },
-    // 树权限(父子联动)
-    handleCheckedTreeConnect(value, type) {
-      if (type == 'menu') {
-        this.form.menuCheckStrictly = value ? true: false;
-      } else if (type == 'dept') {
-        this.form.deptCheckStrictly = value ? true: false;
-      }
+      );
+      this.handleQuery();
     },
     },
     /** 新增按钮操作 */
     /** 新增按钮操作 */
     handleAdd() {
     handleAdd() {
-      this.reset();
-      this.getMenuTreeselect();
-      this.pageType = 2;
-      this.title = "编辑角色";
+      let obj = {
+        type:1,
+        title:"新增角色",
+      };
+      this.$set(this,'propsData',obj);
+      this.$set(this,'pageType',2);
     },
     },
     /** 修改按钮操作 */
     /** 修改按钮操作 */
     handleUpdate(row) {
     handleUpdate(row) {
-
-      this.reset();
-      const roleId = row.roleId || this.ids
-      const roleMenu = this.getRoleMenuTreeselect(roleId);
-      getRole(roleId).then(response => {
-        //this.form = response.data;
-        console.log(response.data)
-        this.titleName = '角色编辑';
-        this.propsData = response;
-        this.editType = false;
-        this.pageType = 2;
-        //this.open = true;
-        // this.$nextTick(() => {
-        //   roleMenu.then(res => {
-        //     let checkedKeys = res.checkedKeys
-        //     console.log(checkedKeys)
-        //     checkedKeys.forEach((v) => {
-        //         this.$nextTick(()=>{
-        //             this.$refs.menu.setChecked(v, true ,false);
-        //         })
-        //     })
-        //   });
-        // });
-        //this.title = "修改角色";
-      });
-    },
-    /** 选择角色权限范围触发 */
-    dataScopeSelectChange(value) {
-      if(value !== '2') {
-        this.$refs.dept.setCheckedKeys([]);
-      }
-    },
-    /** 分配数据权限操作 */
-    handleDataScope(row) {
-      this.reset();
-      const roleDeptTreeselect = this.getRoleDeptTreeselect(row.roleId);
       getRole(row.roleId).then(response => {
       getRole(row.roleId).then(response => {
-        this.form = response.data;
-        this.openDataScope = true;
-        this.$nextTick(() => {
-          roleDeptTreeselect.then(res => {
-            this.$refs.dept.setCheckedKeys(res.checkedKeys);
-          });
-        });
-        this.title = "分配数据权限";
+        let obj = {
+          type:2,
+          roleId:response.role.roleId,
+          name:response.role.roleName,
+          key:response.role.roleKey,
+          dataScope:response.role.dataScope,
+          viewDeptIds:response.role.viewDeptIds,
+          list:response.checkedKeys,
+          title:"编辑角色",
+        };
+        this.$set(this,'propsData',obj);
+        this.$set(this,'pageType',2);
       });
       });
     },
     },
-    /** 分配用户操作 */
-    handleAuthUser: function(row) {
-      this.roleId=row.roleId;
-      this.pageType=2;
-      // const roleId = row.roleId;
-      // this.$router.push("/system/role-auth/user/" + roleId);
-    },
-    /** 提交按钮 */
-    submitForm: function() {
-      this.$refs["form"].validate(valid => {
-        if (valid) {
-          if (this.form.roleId != undefined) {
-            this.form.menuIds = this.getMenuAllCheckedKeys();
-            updateRole(this.form).then(response => {
-              this.msgSuccess("修改成功");
-              this.open = false;
-              this.getList();
-            });
-          } else {
-            this.form.menuIds = this.getMenuAllCheckedKeys();
-            addRole(this.form).then(response => {
-              this.msgSuccess("新增成功");
-              this.open = false;
-              this.getList();
-            });
-          }
-        }
+    /** 复制按钮 */
+    copyButton(row){
+      getRole(row.roleId).then(response => {
+        let obj = {
+          type:3,
+          dataScope:response.role.dataScope,
+          viewDeptIds:response.role.viewDeptIds,
+          list:response.checkedKeys,
+          title:"复制角色",
+        };
+        this.$set(this,'propsData',obj);
+        this.$set(this,'pageType',2);
       });
       });
     },
     },
-    /** 提交按钮(数据权限) */
-    submitDataScope: function() {
-      if (this.form.roleId != undefined) {
-        this.form.deptIds = this.getDeptAllCheckedKeys();
-        dataScope(this.form).then(response => {
-          this.msgSuccess("修改成功");
-          this.openDataScope = false;
-          this.getList();
-        });
-      }
-    },
     /** 删除按钮操作 */
     /** 删除按钮操作 */
     handleDelete(row) {
     handleDelete(row) {
-      const roleIds = row.roleId || this.ids;
       this.$confirm('是否确认删除角色?', "警告", {
       this.$confirm('是否确认删除角色?', "警告", {
           confirmButtonText: "确定",
           confirmButtonText: "确定",
           cancelButtonText: "取消",
           cancelButtonText: "取消",
           type: "warning"
           type: "warning"
         }).then(function() {
         }).then(function() {
-          return delRole(roleIds);
+          return delRole(row.roleId);
         }).then(() => {
         }).then(() => {
           this.getList();
           this.getList();
           this.msgSuccess("删除成功");
           this.msgSuccess("删除成功");
         }).catch(() => {});
         }).catch(() => {});
     },
     },
-    /** 导出按钮操作 */
-    handleExport() {
-      this.download('system/role/export', {
-        ...this.queryParams
-      }, `role_${new Date().getTime()}.xlsx`)
-    }
   }
   }
 };
 };
 </script>
 </script>

+ 15 - 16
src/views/emergencyManagement/evacuation/sparseHardware/addPage.vue

@@ -92,9 +92,8 @@
 
 
 <script>
 <script>
   import { addSparseHardware, updateSparseHardware,getBuildsList } from "@/api/laboratory/sparseHardware";
   import { addSparseHardware, updateSparseHardware,getBuildsList } from "@/api/laboratory/sparseHardware";
-  import { listFloorByBuildId } from "@/api/laboratory/building";
   import { subjectDictList } from "@/api/laboratory/group";
   import { subjectDictList } from "@/api/laboratory/group";
-  import { selBuildOrFloorList } from "@/api/evacuation3_2/index";
+  import { buildFloorGetlist } from "@/api/laboratory/building";
   export default {
   export default {
     name: 'addPage',
     name: 'addPage',
     props:{
     props:{
@@ -168,10 +167,10 @@
         if(this.form.deviceType == 1){
         if(this.form.deviceType == 1){
           this.form.buildId = parseInt(this.form.buildId);
           this.form.buildId = parseInt(this.form.buildId);
           this.form.floorId = parseInt(this.form.floorId);
           this.form.floorId = parseInt(this.form.floorId);
-          selBuildOrFloorList({type:2}).then(response => {
-            this.$set(this,'buildList', response.data)
-            selBuildOrFloorList({type:3,parentId:this.form.buildId}).then(response => {
-              this.$set(this,'floorList', response.data)
+          buildFloorGetlist({type:2}).then(response => {
+            this.$set(this,'buildList', response.rows)
+            buildFloorGetlist({type:3,parentId:this.form.buildId}).then(response => {
+              this.$set(this,'floorList', response.rows)
             })
             })
           });
           });
         }
         }
@@ -196,10 +195,10 @@
       },
       },
       radioChange(){
       radioChange(){
         if(this.form.buildId){
         if(this.form.buildId){
-          selBuildOrFloorList({type:2}).then(response => {
-            this.$set(this,'buildList', response.data)
-            selBuildOrFloorList({type:3,parentId:this.form.buildId}).then(response => {
-              this.$set(this,'floorList', response.data)
+          buildFloorGetlist({type:2}).then(response => {
+            this.$set(this,'buildList', response.rows)
+            buildFloorGetlist({type:3,parentId:this.form.buildId}).then(response => {
+              this.$set(this,'floorList', response.rows)
             })
             })
           });
           });
         }
         }
@@ -259,8 +258,8 @@
       },
       },
       /** 查询楼栋列表 */
       /** 查询楼栋列表 */
       getDeptListTow() {
       getDeptListTow() {
-        selBuildOrFloorList({type:2}).then(response => {
-          this.$set(this,'buildList', response.data)
+        buildFloorGetlist({type:2}).then(response => {
+          this.$set(this,'buildList', response.rows)
         })
         })
         // getBuildsList().then(response => {
         // getBuildsList().then(response => {
         //   // this.deptOptionsTwo = response.data;
         //   // this.deptOptionsTwo = response.data;
@@ -270,13 +269,13 @@
       //选择楼栋
       //选择楼栋
       buildChange(e){
       buildChange(e){
         console.log("选择楼栋",e)
         console.log("选择楼栋",e)
-        selBuildOrFloorList({type:3,parentId:e}).then(response => {
-            this.$set(this,'floorList', response.data)
+        buildFloorGetlist({type:3,parentId:e}).then(response => {
+            this.$set(this,'floorList', response.rows)
             this.$set(this.form,'floorId', "")
             this.$set(this.form,'floorId', "")
         })
         })
         //根据学院获取楼栋
         //根据学院获取楼栋
-        // listFloorByBuildId(this.form.buildId).then(response => {
-        //   this.$set(this,'floorList', response.data)
+        // buildFloorGetlist(this.form.buildId).then(response => {
+        //   this.$set(this,'floorList', response.rows)
         //   this.$set(this.form,'floorId', "")
         //   this.$set(this.form,'floorId', "")
         // });
         // });
       },
       },

+ 8 - 10
src/views/secureAccess/whitelist/addPage.vue

@@ -73,8 +73,8 @@
           />
           />
         </el-form-item>
         </el-form-item>
         <el-form-item label="楼栋" prop="buildId">
         <el-form-item label="楼栋" prop="buildId">
-          <el-select v-model="dialogForm.buildId" placeholder="请选择楼栋" clearable  @change="buildChange">
-            <el-option v-for="(item,index) in buildsDataList" :key="index" :label="item.deptName" :value="item.deptId" />
+          <el-select v-model="dialogForm.buildId" placeholder="请选择楼栋" @change="buildChange">
+            <el-option v-for="(item,index) in buildsDataList" :key="index" :label="item.name" :value="item.id" />
           </el-select>
           </el-select>
         </el-form-item>
         </el-form-item>
         <el-form-item label="楼层" prop="floorId">
         <el-form-item label="楼层" prop="floorId">
@@ -146,8 +146,7 @@ import {
 } from "@/api/laboratory/whitelist";
 } from "@/api/laboratory/whitelist";
 import {listInfo} from "@/api/laboratory/gradeManage";
 import {listInfo} from "@/api/laboratory/gradeManage";
 import {delPlan, getUserRoleBySub} from "@/api/laboratory/plan";
 import {delPlan, getUserRoleBySub} from "@/api/laboratory/plan";
-import {buildsList} from "@/api/laboratory/sparseHardware";
-import {listFloorByBuildId} from "@/api/laboratory/building";
+import {buildFloorGetlist} from "@/api/laboratory/building";
 import addPageSubPagePublic from './differenceComponent/addPageSubPagePublic.vue'
 import addPageSubPagePublic from './differenceComponent/addPageSubPagePublic.vue'
 import addPageSubPageSZDX from './differenceComponent/addPageSubPageSZDX.vue'
 import addPageSubPageSZDX from './differenceComponent/addPageSubPageSZDX.vue'
 export default {
 export default {
@@ -268,17 +267,16 @@ export default {
     },
     },
     //查询楼栋
     //查询楼栋
     buildsList(){
     buildsList(){
-      buildsList().then( response => {
-        this.buildsDataList = response.data;
+      buildFloorGetlist({type:2}).then(response => {
+        this.$set(this,'buildsDataList', response.rows)
       });
       });
     },
     },
     //选择楼栋
     //选择楼栋
     buildChange(e){
     buildChange(e){
-      console.log("选择楼栋",e)
       //根据学院获取楼栋
       //根据学院获取楼栋
-      listFloorByBuildId(this.dialogForm.buildId).then(response => {
-        this.$set(this,'floorList', response.data)
-        this.$set(this.form,'floorId', "")
+      buildFloorGetlist({type:3,parentId:this.dialogForm.buildId}).then(response => {
+        this.$set(this,'floorList', response.rows)
+        this.$set(this.dialogForm,'floorId', "")
       });
       });
     },
     },
     //查询
     //查询