| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- <template>
- <ul class="nav navbar-nav navbar-right">
- <li class="dropdown">
- <a class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">
- {{ roleStateInstance.userRoleOrTemplate != null ? roleStateInstance.userRoleOrTemplate.roleOrTemplateName : '全部'
- }}
- <span class="caret" />
- </a>
- <ul v-if="userRoleOrTemplateList != null && userRoleOrTemplateList.length > 0" class="dropdown-menu">
- <li
- v-for="userRoleOrTemplate in userRoleOrTemplateList"
- :key="userRoleOrTemplate.userRoleTemplateId + '-' + userRoleOrTemplate.userRoleId"
- style="cursor: pointer;"
- >
- <a
- @click="roleStateInstance.setUserRoleOrTemplate(userRoleOrTemplate); uploadSelectedRole(userRoleOrTemplate)"
- >{{
- userRoleOrTemplate.roleOrTemplateName }}</a>
- </li>
- <li style="cursor: pointer;">
- <a @click="roleStateInstance.setUserRoleOrTemplate(null); uploadSelectedRole(null)">全部</a>
- </li>
- </ul>
- </li>
- </ul>
- </template>
- <script>
- import Common from '../common/Common.js';
- import ClientResourceV2 from '../api/base/ClientResourceV2.js';
- import TokenClientResource from '../api/base/TokenClientResource.js';
- import { Notify, Uuid } from 'pc-component-v3';
- import { useRoleStateSingleton } from './RoleState.js';
- import { UserStorageResource } from 'pc-component-v3';
- import { message } from 'ant-design-vue';
- export default {
- props: {
- },
- data: function () {
- return {
- userRoleOrTemplateList: [],
- loginClientName: '',
- visible: false,
- roleStateInstance: useRoleStateSingleton,
- };
- },
- mounted: function () {
- this.listUserRoleOrTemplate();
- },
- methods: {
- /**
- * 查询登录用户具备的角色OR角色模板
- */
- listUserRoleOrTemplate: function () {
- var _self = this;
- $.ajax({
- url: Common.getApiURL('RoleResourceV3/listUserRoleOrTemplate'),
- type: 'get',
- contentType: 'application/json',
- beforeSend: function (request) {
- Common.addTokenToRequest(request);
- },
- success: function (response) {
- if (response.errorCode === 0) {
- _self.userRoleOrTemplateList = response.datas;
- _self.downloadSelectedRole();
- } else {
- Notify.error('错误', response.errorMessage, false);
- }
- },
- error: function (XMLHttpRequest, textStatus, errorThrown) {
- Common.processException(XMLHttpRequest);
- },
- });
- },
- /**
- * 选择的用户权限存储只后端
- * @author YangZhiJie
- * @date 2024-10-14
- */
- uploadSelectedRole: function (userRoleOrTemplate) {
- let key = 'UserSelectedRole';
- let userStorageDtos = [
- {
- key: key,
- value: userRoleOrTemplate == null ? null : JSON.stringify(userRoleOrTemplate),
- },
- ];
- UserStorageResource.uploadUserStorage(userStorageDtos).then(successData => {
- console.log(successData);
- }, errorData => {
- Common.processException(errorData);
- });
- },
- /**
- * 选择的用户权限存储只后端
- * @author YangZhiJie
- * @date 2024-10-14
- */
- downloadSelectedRole: function () {
- var _self = this;
- let key = 'UserSelectedRole';
- UserStorageResource.uniqueByKey(key).then(
- success => {
- if (success.errorCode == 0) {
- if (success.data) {
- let userRoleTemplate = JSON.parse(success.data);
- if(_self.userRoleOrTemplateList != null){
- _self.userRoleOrTemplateList.forEach(item => {
- if(
- (item.userRoleTemplateId + '-' + item.userRoleId) ==
- (userRoleTemplate.userRoleTemplateId + '-' + userRoleTemplate.userRoleId)
- ){
- _self.roleStateInstance.setUserRoleOrTemplate(item);
- }
- });
- }
- } else {
- _self.roleStateInstance.setUserRoleOrTemplate(null);
- }
- } else {
- message.warning(success.errorMessage);
- }
- },
- error => {
- Common.processException(error);
- },
- );
- },
- },
- };
- </script>
|