ludc
2024-01-16 8d7721c95cc004e3af1493b6289ace05658bb967
Merge remote-tracking branch 'origin/master'

# Conflicts:
# Source/UBCS-WEB/src/components/Theme/ClassifyAuthDialog.vue
# Source/UBCS-WEB/src/components/Theme/ThemeClassifyTrees.vue
已修改28个文件
155 ■■■■■ 文件已修改
Source/UBCS-WEB/src/api/system/classifyAuth.js 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Master/MasterTree.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Theme/ClassifyAuthDialog.vue 86 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/components/Theme/ThemeClassifyTrees.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/option/system/dictbiz.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/option/system/param.js 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/authority/role.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/code/Match.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/desk/notice.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/docking/data.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/flow/follow.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/flow/manager.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/flow/model.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/modeling/Version.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/monitor/log/api.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/monitor/log/error.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/monitor/log/operateLog.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/monitor/log/usual.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/report/reportlist.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/resource/attach.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/resource/oss.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/system/client.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/system/dept.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/system/tenant.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/views/system/user.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
Source/UBCS-WEB/src/api/system/classifyAuth.js
@@ -26,4 +26,14 @@
      ...params
    }
  })
}
}
//菜单角色按钮权限
export const getButtonsByRoleId = (params) => {
  return request({
    url: '/api/ubcs-system/menu/getButtonsByRoleId',
    method: 'get',
    params: {
      ...params
    }
  })
}
Source/UBCS-WEB/src/components/Master/MasterTree.vue
@@ -231,7 +231,7 @@
<style lang="scss" scoped>
.app {
  overflow: auto;
  height: calc(100vh - 150px);
  height: calc(100vh - 145px);
}
.app::-webkit-scrollbar {
Source/UBCS-WEB/src/components/MasterCrud/VciMasterCrud.vue
@@ -1208,7 +1208,7 @@
.main {
  display: flex;
  flex-direction: column;
  height: calc(100vh - 150px);
  height: calc(100vh - 145px);
  min-height: 400px;
}
Source/UBCS-WEB/src/components/Theme/ClassifyAuthDialog.vue
@@ -8,6 +8,7 @@
    title="分类授权"
    top="-45px" @close="closeDialog">
    <el-table
      :key="itemKey"
      ref="dataTable"
      v-loading="isLoading"
      :data="classifyAuthData"
@@ -40,7 +41,7 @@
            v-if="item.type === 'select'"
            slot="prepend"
            v-model="row[item.prop]"
            @change="roleChange"
            @change="selectChange(row.roleData,row)"
          >
            <el-option
              v-for="optionItem in roleList"
@@ -59,17 +60,18 @@
          </el-input>
          <el-checkbox
            v-if="item.type === 'checkbox'"
            v-model="row[item.prop]">
            v-model="row[item.prop]"
            :disabled="row.allDisabled ? true :typeof row[item.prop] == 'undefined' || typeof row[item.prop] == null">
          </el-checkbox>
        </template>
      </el-table-column>
    </el-table>
    <div slot="footer" class="dialog-footer">
      <el-button type="info" plain @click="selectAllButton">按钮全选</el-button>
      <el-button class="el-icon-plus" type="success" plain @click="addClassifyAuth"></el-button>
      <el-button class="el-icon-minus" type="warning" plain @click="subClassifyAuth"></el-button>
      <el-button type="primary" plain @click="submit">提 交</el-button>
      <el-button type="danger" plain @click="isShowDialog = false">关 闭</el-button>
      <el-button plain type="info" @click="selectAllButton">按钮全选</el-button>
      <el-button class="el-icon-plus" plain type="success" @click="addClassifyAuth"></el-button>
      <el-button class="el-icon-minus" plain type="warning" @click="subClassifyAuth"></el-button>
      <el-button plain type="primary" @click="submit">提 交</el-button>
      <el-button plain type="danger" @click="isShowDialog = false">关 闭</el-button>
    </div>
  </el-dialog>
</template>
@@ -77,7 +79,7 @@
<script>
import {getButtonByParentCode} from "@/api/system/menu"
import {getPage} from "@/api/system/role"
import {saveOrUpdate, getClassifyAuthList} from "@/api/system/classifyAuth"
import {saveOrUpdate, getClassifyAuthList, getButtonsByRoleId} from "@/api/system/classifyAuth"
import {v4 as uuidv4} from 'uuid';
export default {
@@ -108,6 +110,9 @@
      roleList: [],
      //当前选中的表格行
      selectList: [],
      itemKey: '',
      viewStatus: false,
      addIndex: Number,
    };
  },
  watch: {
@@ -139,12 +144,13 @@
              let columnItem = {
                label: item.name,
                prop: item.id,
                code: item.code,
                type: "checkbox",
                width: 180,
              };
              tempData.push(columnItem);
            })
            this.classifyAuthHeader = tempData
            this.classifyAuthHeader = tempData;
            resolve();
          }).catch(err => {
            reject(err)
@@ -154,25 +160,29 @@
            this.roleList = res.data.data.records;
          });
          // 获取该分类下已授权的分类授权信息
          getClassifyAuthList({classifyId: this.classifyData.oid}).then(res => {
          getClassifyAuthList({classifyId: this.classifyData.oid, authType: "classify_auth"}).then(res => {
            //console.log(res.data.data);
            let authDatas = res.data.data;
            console.log('authDatas', authDatas)
            if (authDatas.length > 0) {
              authDatas.forEach(authData => {
              authDatas.forEach((authData,index) => {
                let item = {
                  oid: authData.oid,
                  roleData: authData.roleId,
                  classifyItem: this.classifyData.label,
                  index:index,
                  uuid: uuidv4(),//生成唯一的id
                }
                //将按钮设置进去
                authData.buttonIdList.forEach(data => {
                  Vue.set(item, data, true);
                });
                //console.log(item)
                this.classifyAuthData.push(item);
                this.addIndex = this.classifyAuthData.length -1 ;
                // console.log('classifyAuthData', this.classifyAuthData)
              })
            }
            this.roleHandlerMethods('', 'create', 0)
          });
        });
      }
@@ -184,25 +194,57 @@
  created() {
  },
  methods: {
    roleHandlerMethods(id, type, index) {
      if (this.classifyAuthData.length > 0) {
        let roleButtonId = type === 'select' ? id : this.classifyAuthData[0].roleData;
        getButtonsByRoleId({roleId: roleButtonId, code: 'classifyTree'}).then(res => {
          // 找到this.classifyAuthButton中没有对应的属性
          const filteredItems = this.classifyAuthButton.filter(item => {
            return !res.data.data.find(x => x.id === item.id);
          });
          this.classifyAuthHeader.forEach((item) => {
            if (filteredItems.some(x => x.id === item.prop)) {
              this.$nextTick(() => {
                if(this.classifyAuthData[index] !== undefined && this.classifyAuthData[index] !== null){
                  Object.keys(this.classifyAuthData[index]).forEach((key) => {
                    if (item.prop === key) {
                      this.classifyAuthData[index] = Object.assign({}, this.classifyAuthData[index], { [key]: undefined });
                      if (item.code === "classify_view") {
                        this.$set(this.classifyAuthData[index],'allDisabled',true)
                      }
                    }
                  });
                }
                // console.log('classifyAuthData', this.classifyAuthData)
                // console.log('item', item.prop)
                this.itemKey = uuidv4();
              })
            }
          });
        })
      }
    },
    selectChange(row,index) {
      this.roleHandlerMethods(row, 'select',index.index);
    },
    // 关闭对话框
    closeDialog() {
      this.$emit('update:visible', false);
      this.classifyAuthData = [];
    },
    // 角色改变时
    roleChange(roleId){
      console.log(roleId);
    },
    // 增加行
    addClassifyAuth() {
      if(this.roleList.length<=0){
      if (this.roleList.length <= 0) {
        this.$message.warning("当前租户不存在角色信息!");
        return;
      }
      this.addIndex++;
      let item = {
        roleData: this.roleList[0].id,
        classifyItem: this.classifyData.label,
        index:this.addIndex,
        uuid: uuidv4(),//生成唯一的id
      }
      //将按钮设置进去
@@ -210,8 +252,8 @@
        Vue.set(item, data.id, false);
      })
      //console.log(item)
      this.classifyAuthData.push(item)
      // console.log(this.classifyAuthData);
      this.classifyAuthData.push(item);
      this.roleHandlerMethods('', 'add', this.addIndex)
    },
    // 删除行
    subClassifyAuth() {
@@ -300,8 +342,8 @@
      })
    },
    // 全选按钮
    selectAllButton(){
      if(this.selectList.length!==1){
    selectAllButton() {
      if (this.selectList.length !== 1) {
        this.$message.warning("请只选择一行需要全选的按钮的数据行!");
        return;
      }
Source/UBCS-WEB/src/components/Theme/ThemeAttrCrud.vue
@@ -277,7 +277,7 @@
      <!--        全屏编辑-->
      <el-dialog :before-close="escEdit" :visible.sync="attrEditVisible" append-to-body fullscreen="true">
        <attrCrud :ProData="this.ProData" :attrFlagChiledren="this.attrFlag" :crudArrayFlag="this.crudArrayFlag"
                  :editOpenFlag="editOpenFlag" :editStyleFlag="editStyleFlag"
                  :editOpenFlag="editOpenFlag" :editStyleFlag="editStyleFlag" :btnAuthList="btnAuthList"
                  @editCloseChildren="editClose"></attrCrud>
      </el-dialog>
      <!--      组合规则-->
@@ -1563,7 +1563,7 @@
    ...mapGetters(["permission"]),
    permissionList() {
      return {
        busineStatus: this.vaildData(this.btnAuthList.attr_add, false),
        busineStatus: this.vaildData(this.btnAuthList.attr_add, false) ,
        fullscreenStatus: this.vaildData(this.btnAuthList.attr_view_edit, false),
        ruleStatus: this.vaildData(this.btnAuthList.attr_rule, false),
        attrStatus: this.vaildData(this.btnAuthList.attr_group, false),
Source/UBCS-WEB/src/components/Theme/ThemeClassifyTrees.vue
@@ -1139,7 +1139,7 @@
      getAuthButtonList({classifyId: data.oid,code: "classifyTree",authType: "classify_auth"}).then(res => {
        this.btnAuthList = res.data.data;
      }).catch(error => {
        window.console.log(error)
        console.log(error)
      })
      //操作新增和修改的业务类型隐藏
      this.TreeFlagCode = !data;
Source/UBCS-WEB/src/option/system/dictbiz.js
@@ -1,6 +1,6 @@
export const optionParent = {
  height: 'auto',
  calcHeight: 30,
  calcHeight: 20,
  columnBtn:false,
  tip: false,
  searchShow: true,
Source/UBCS-WEB/src/option/system/param.js
@@ -1,6 +1,6 @@
export default {
  height: 'auto',
  calcHeight: 30,
  calcHeight: 20,
  tip: false,
  searchShow: true,
  searchMenuSpan: 6,
Source/UBCS-WEB/src/views/authority/role.vue
@@ -29,7 +29,7 @@
          删 除
        </el-button>
        <!-- v-if="userInfo.role_name.includes('admin')" -->
        <el-button v-if="permissionList.authSettingBtn"
        <el-button v-if="permissionList.authSettingBtn"
          size="small"
          icon="el-icon-setting"
          @click="handleRole"
@@ -115,6 +115,7 @@
        option: {
          height: "auto",
          tip: false,
          calcHeight: 20,
          columnBtn:false,
          // simplePage: true,
          searchShow: true,
Source/UBCS-WEB/src/views/code/Match.vue
@@ -101,8 +101,8 @@
      findvisible: false,
      selectRow: [],
      option: {
        height: 700,
        calcHeight: 80,
        height: 'auto',
        calcHeight: 20,
        tip: false,
        searchShow: true,
        searchMenuSpan: 6,
Source/UBCS-WEB/src/views/desk/notice.vue
@@ -53,7 +53,7 @@
        selectionList: [],
        option: {
          height: 'auto',
          calcHeight: 30,
          calcHeight: 20,
          dialogWidth: 950,
          columnBtn:false,
          tip: false,
Source/UBCS-WEB/src/views/docking/data.vue
@@ -87,7 +87,6 @@
    data:[],
    option: {
      height:'auto',
      calcHeight: 0,
      columnBtn:false,
      tip: false,
      searchShow: false,
Source/UBCS-WEB/src/views/flow/follow.vue
@@ -65,7 +65,7 @@
        deleteReason: '',
        option: {
          height: 'auto',
          calcHeight: 30,
          calcHeight: 20,
          columnBtn:false,
          tip: false,
          searchShow: true,
Source/UBCS-WEB/src/views/flow/manager.vue
@@ -121,7 +121,7 @@
        }],
        option: {
          height: 'auto',
          calcHeight: 30,
          calcHeight: 20,
          columnBtn:false,
          tip: false,
          searchShow: true,
Source/UBCS-WEB/src/views/flow/model.vue
@@ -202,7 +202,7 @@
      flowBox: false,
      option: {
        height: 'auto',
        calcHeight: 30,
        calcHeight: 20,
        columnBtn:false,
        tip: false,
        searchShow: true,
Source/UBCS-WEB/src/views/modeling/Version.vue
@@ -60,6 +60,7 @@
      form: {},
      option: {
        height: 'auto',
        calcHeight: 20,
        headerAlign: 'center',
        align: 'center',
        border: true,
Source/UBCS-WEB/src/views/monitor/log/api.vue
@@ -36,7 +36,7 @@
        },
        option: {
          height: 'auto',
          calcHeight: 30,
          calcHeight: 20,
          columnBtn:false,
          tip: false,
          searchShow: true,
Source/UBCS-WEB/src/views/monitor/log/error.vue
@@ -36,7 +36,7 @@
        },
        option: {
          height: 'auto',
          calcHeight: 30,
          calcHeight: 20,
          columnBtn:false,
          tip: false,
          searchShow: true,
Source/UBCS-WEB/src/views/monitor/log/operateLog.vue
@@ -45,7 +45,7 @@
        },
        option: {
          height: 'auto',
          calcHeight: 30,
          calcHeight: 20,
          columnBtn:false,
          tip: false,
          searchShow: true,
Source/UBCS-WEB/src/views/monitor/log/usual.vue
@@ -36,7 +36,7 @@
        },
        option: {
          height: 'auto',
          calcHeight: 30,
          calcHeight: 20,
          columnBtn:false,
          tip: false,
          searchShow: true,
Source/UBCS-WEB/src/views/report/reportlist.vue
@@ -68,7 +68,7 @@
      },
      option: {
        height: 'auto',
        calcHeight: 30,
        calcHeight: 20,
        columnBtn:false,
        tip: false,
        searchShow: true,
Source/UBCS-WEB/src/views/resource/attach.vue
@@ -75,7 +75,7 @@
        option: {
          columnBtn:false,
          height: 'auto',
          calcHeight: 30,
          calcHeight: 20,
          tip: false,
          searchShow: true,
          searchMenuSpan: 6,
Source/UBCS-WEB/src/views/resource/oss.vue
@@ -80,7 +80,7 @@
        option: {
          columnBtn:false,
          height: 'auto',
          calcHeight: 30,
          calcHeight: 20,
          tip: false,
          searchShow: true,
          searchMenuSpan: 6,
Source/UBCS-WEB/src/views/system/PasswordManagement/passwords.vue
@@ -93,6 +93,8 @@
    },
    option() {
      return {
        height: 'auto',
        calcHeight: 20,
        headerAlign: 'center',
        align: 'center',
        columnBtn: false,
@@ -101,7 +103,6 @@
        rowKey: 'id',
        addBtn: this.permissionList.addBtn,
        editBtn: false,
        height: 700,
        delBtn: false,
        refreshBtn: false,
        column: [
Source/UBCS-WEB/src/views/system/client.vue
@@ -51,7 +51,7 @@
        option: {
          height: 'auto',
          columnBtn:false,
          calcHeight: 30,
          calcHeight: 20,
          tip: false,
          searchShow: true,
          searchMenuSpan: 6,
Source/UBCS-WEB/src/views/system/dept.vue
@@ -77,6 +77,7 @@
          lazy: true,
          tip: false,
          height:'auto',
          calcHeight: 20,
          maxHeight:600,
          columnBtn:false,
          //simplePage: true,
@@ -196,7 +197,7 @@
      };
    },
    created() {
    },
    computed: {
      ...mapGetters(["userInfo", "permission"]),
Source/UBCS-WEB/src/views/system/tenant.vue
@@ -231,7 +231,7 @@
      return{
          height: 'auto',
          columnBtn:false,
          calcHeight: 30,
          calcHeight: 20,
          tip: false,
          searchShow: true,
          searchMenuSpan: 6,
Source/UBCS-WEB/src/views/system/user.vue
@@ -434,7 +434,7 @@
    option() {
      return{
          height:'auto',
          calcHeight: 80,
          calcHeight: 70,
          tip: false,
          searchShow: true,
          searchMenuSpan: 6,