licp
2024-05-06 32d56327d6f69373ada1c3447f542ec1a39282b1
src/components/view/role-manage.vue
@@ -61,17 +61,25 @@
         <ValueTable ref="ValueTable" :url="$api.user.selectRoleLists" :delUrl="$api.user.delRole"
            :componentData="componentData" :key="upIndex" @upRole="upRole" @selectRole="selectRole" />
      </div>
      <el-dialog :title="type" :visible.sync="addDia" width="500px" @closed="closed">
         <div style="max-height: 500px;overflow-y: auto;padding: 8px;" v-if="addDia">
            <el-row style="line-height: 40px;margin-bottom: 15px;">
               <el-col :span="8"><span class="required-span">* </span>角色名</el-col>
    <el-dialog :title="type" :visible.sync="addDia" width="550px" @closed="closed">
      <div style="max-height: 500px;overflow-y: auto;padding: 10px;" v-if="addDia">
        <el-row style="line-height: 40px;margin-bottom: 20px;">
          <el-col :span="8" style="font-size: 16px;"><span class="required-span">* </span>角色名</el-col>
               <el-col :span="16">
                  <el-input v-model="addData.roleName" size="medium" placeholder="需唯一角色名" clearable :disabled="type=='查看'"></el-input>
            <el-input v-model="addData.roleName" size="medium" placeholder="需唯一角色名" clearable
              :disabled="type=='查看'"></el-input>
               </el-col>
            </el-row>
            <el-divider content-position="left">权限分配</el-divider>
            <el-collapse style="margin-top: 10px;">
               <el-collapse-item title="查询">
        <el-collapse style="margin-top: 10px;padding: 0 10px;">
          <el-collapse-item v-for="(category, ci) in menuCategroy" :key="ci">
            <template slot="title">
              <i class="el-icon-circle-plus-outline" style="margin-right: 10px;"></i>{{category}}
            </template>
            <div style="padding: 3px 30px;" v-for="(a, ai) in menu" :key="ai" v-if="a.type==category"><el-checkbox
                v-model="a.isClick" :disabled="type=='查看'">{{a.remark}}</el-checkbox></div>
          </el-collapse-item>
          <!-- <el-collapse-item title="查询">
                  <el-row style="padding: 3px 30px;" v-for="(a, ai) in menu" :key="ai" v-if="a.type=='查询'">
                     <el-col :span="18">
                        <el-checkbox :disabled="type=='查看'" v-model="a.isClick">{{a.remark}}</el-checkbox>
@@ -80,27 +88,7 @@
                        <el-checkbox :disabled="type=='查看'" v-model="a.look">只看我</el-checkbox>
                     </el-col>
                  </el-row>
               </el-collapse-item>
               <el-collapse-item title="添加">
                  <div style="padding: 3px 30px;" v-for="(a, ai) in menu" :key="ai" v-if="a.type=='添加'"><el-checkbox
                        v-model="a.isClick" :disabled="type=='查看'">{{a.remark}}</el-checkbox></div>
               </el-collapse-item>
               <el-collapse-item title="修改">
                  <div style="padding: 3px 30px;" v-for="(a, ai) in menu" :key="ai" v-if="a.type=='修改'"><el-checkbox
                        v-model="a.isClick" :disabled="type=='查看'">{{a.remark}}</el-checkbox></div>
               </el-collapse-item>
               <el-collapse-item title="删除">
                  <div style="padding: 3px 30px;" v-for="(a, ai) in menu" :key="ai" v-if="a.type=='删除'"><el-checkbox
                        v-model="a.isClick" :disabled="type=='查看'">{{a.remark}}</el-checkbox></div>
               </el-collapse-item>
               <el-collapse-item title="导入">
                  <div style="padding: 3px 30px;" v-for="(a, ai) in menu" :key="ai" v-if="a.type=='导入'"><el-checkbox
                        v-model="a.isClick" :disabled="type=='查看'">{{a.remark}}</el-checkbox></div>
               </el-collapse-item>
               <el-collapse-item title="导出">
                  <div style="padding: 3px 30px;" v-for="(a, ai) in menu" :key="ai" v-if="a.type=='导出'"><el-checkbox
                        v-model="a.isClick" :disabled="type=='查看'">{{a.remark}}</el-checkbox></div>
               </el-collapse-item>
               </el-collapse-item> -->
            </el-collapse>
         </div>
         <span slot="footer" class="dialog-footer">
@@ -112,6 +100,9 @@
</template>
<script>
  import {
    set
  } from 'vue'
   import ValueTable from '../tool/value-table.vue'
   export default {
      components: {
@@ -158,6 +149,7 @@
               powers: []
            },
            menu: [],
        menuCategroy: [],
            menuCopy: [],
            type: '新增',
            addPower: true
@@ -182,6 +174,11 @@
                  a.isClick = false
                  a.look = false
               })
          let set = new Set()
          res.data.forEach(a => {
            set.add(a.type)
          })
          this.menuCategroy = set
               this.menu = res.data
               this.menuCopy = this.HaveJson(res.data)
            })