| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200 | <template>  <a-drawer    :title="title"    :maskClosable="true"    width=600    placement="right"    :closable="true"    @close="close"    :visible="visible"    style="overflow: auto;padding-bottom: 53px;">    <a-spin :spinning="confirmLoading">      <a-form :form="form" v-if="designNameOption.length>0">        <a-form-item label=''>          <a-col :xl="24" :lg="24" :md="24" :sm="24" :xs="24">            <a-card :style="{ marginTop: '12px',height:'auto' }">              <a-checkbox-group @change="designNameChange" v-model="designNameValue" style="width: 100%">                <a-row>                  <template v-for="(des) in designNameOption">                    <a-col :span="6">                      <a-checkbox :value="des.value">{{ des.text }}</a-checkbox>                    </a-col>                  </template>                </a-row>              </a-checkbox-group>            </a-card>          </a-col>        </a-form-item>      </a-form>      <div v-else><h3>无可配置角色!</h3></div>    </a-spin>    <div class="drawer-bootom-button">      <a-dropdown style="float: left" :trigger="['click']" placement="topCenter">        <a-menu slot="overlay">          <a-menu-item key="1" @click="checkALL">全部勾选</a-menu-item>          <a-menu-item key="2" @click="cancelCheckALL">取消全选</a-menu-item>        </a-menu>        <a-button>          操作 <a-icon type="up" />        </a-button>      </a-dropdown>      <a-popconfirm  title="确定放弃编辑?" @confirm="close" okText="确定" cancelText="取消">        <a-button style="margin-right: .8rem">取消</a-button>      </a-popconfirm>      <a-button @click="handleSubmit(true)" type="primary">保存</a-button>    </div>  </a-drawer></template><script>  import {httpAction, getAction} from '@/api/manage'  import  JEllipsis  from '@/components/jeecg/JEllipsis'  import {initDictOptions} from '@/components/dict/JDictSelectUtil'  export default {    name: 'DeptRoleUserModal',    components: {      JEllipsis    },    data() {      return {        currentDeptId:"",        title: "部门角色分配",        visible: false,        model: {},        labelCol: {          xs: {span: 24},          sm: {span: 5},        },        wrapperCol: {          xs: {span: 24},          sm: {span: 16},        },        confirmLoading: false,        form: this.$form.createForm(this),        validatorRules: {},        url: {          add: "/sys/sysDepartRole/deptRoleUserAdd",          getDeptRoleList:"/sys/sysDepartRole/getDeptRoleList",          getDeptRoleByUserId:"/sys/sysDepartRole/getDeptRoleByUserId"        },        designNameOption: [],        userId: "",        newRoleId:"",        oldRoleId:"",        designNameValue:[],        desformList: [],      }    },    created() {    },    methods: {      add(record,departId) {        this.userId = record.id;        this.currentDeptId = departId;        this.loadDesformList();        this.edit({});      },      edit(record) {        this.form.resetFields();        this.model = Object.assign({}, record);        this.visible = true;        getAction(this.url.getDeptRoleByUserId,{userId:this.userId,departId:this.currentDeptId}).then((res) => {          if (res.success) {            var designName = [];            for (let value of res.result) {              designName.push(value.droleId)            }            this.oldRoleId=designName.join(",");            this.designNameValue = designName;            this.newRoleId = designName.join(",");          }        });      },      close() {        this.$emit('close');        this.visible = false;      },      handleSubmit() {        const that = this;        // 触发表单验证        that.confirmLoading = true;        let  httpurl = this.url.add;        let  method = 'post';        let formData = Object.assign(this.model, {});        //时间格式化        formData.userId = this.userId;        formData.newRoleId=this.newRoleId;        formData.oldRoleId=this.oldRoleId;        httpAction(httpurl, formData, method).then((res) => {          if (res.success) {            that.$message.success(res.message);            that.$emit('reload');            that.$emit('ok');          } else {            that.$message.warning(res.message);          }        }).finally(() => {          that.confirmLoading = false;          that.close();        })      },      handleCancel() {        this.designNameOption=[];        this.designNameValue=[];        this.close()      },      designNameChange(selectedValue) {        this.newRoleId=selectedValue.join(",");      },      checkALL(){        var designName = [];        for (let value of this.desformList) {          designName.push(            value.id          )        }        this.designNameValue = designName;        this.newRoleId=designName.join(",");      },      cancelCheckALL(){        this.designNameValue=[];        this.newRoleId="";      },      /** 加载desform */      loadDesformList() {        getAction(this.url.getDeptRoleList, { departId: this.currentDeptId, userId:this.userId }).then((res) => {          if (res.success) {            this.desformList = res.result            var designName = [];            for (let value of this.desformList) {              designName.push({                value: value.id,                text: value.roleName,              })            }            this.designNameOption = designName;          }        });      },    }  }</script><style scoped>  .drawer-bootom-button {    position: absolute;    bottom: 0;    width: 100%;    border-top: 1px solid #e8e8e8;    padding: 10px 16px;    text-align: right;    left: 0;    background: #fff;    border-radius: 0 0 2px 2px;  }</style>
 |