{"remainingRequest":"/data/jenkins/workspace/badp-bcxin-web-5.x-kms/src/badp-bcxin-5.x/obpm-kms-web/kmspc/node_modules/vue-loader/lib/index.js??vue-loader-options!/data/jenkins/workspace/badp-bcxin-web-5.x-kms/src/badp-bcxin-5.x/obpm-kms-web/kmspc/src/components/departmentKm/DepartmentKmData.vue?vue&type=script&lang=js&","dependencies":[{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-kms/src/badp-bcxin-5.x/obpm-kms-web/kmspc/src/components/departmentKm/DepartmentKmData.vue","mtime":1742796810166},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-kms/src/badp-bcxin-5.x/obpm-kms-web/kmspc/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-kms/src/badp-bcxin-5.x/obpm-kms-web/kmspc/node_modules/thread-loader/dist/cjs.js","mtime":499162500000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-kms/src/badp-bcxin-5.x/obpm-kms-web/kmspc/node_modules/babel-loader/lib/index.js","mtime":315532800000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-kms/src/badp-bcxin-5.x/obpm-kms-web/kmspc/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/data/jenkins/workspace/badp-bcxin-web-5.x-kms/src/badp-bcxin-5.x/obpm-kms-web/kmspc/node_modules/vue-loader/lib/index.js","mtime":1655715099000}],"contextDependencies":[],"result":["\nimport API from \"@/api.js\";\n//引入可编辑的目录组件\nimport editfloder from '@/components/shared/EditFolder.vue';\n//引入可编辑的文件组件\nimport editfile from '@/components/shared/EditFile.vue';\n//上传文件\nimport fileuploader from '@/components/shared/FileUploader.vue';\n//上传文件夹\nimport folderuploader from '@/components/shared/FolderUploader.vue';\n//文件分享\nimport filesharedialog from '@/components/shared/FileShareDialog.vue';\n//收藏文件\nimport collectdialog from '@/components/shared/CollectDialog.vue';\n//移动文件\nimport movedialog from '@/components/shared/MoveDialog.vue';\n//授权\nimport impowertreedialog from '@/components/shared/ImpowerTreeDialog.vue';\n//标签对话框\nimport labelcategorydialog from '@/components/shared/LabelCategoryDialog.vue'\n\n\n\nexport default {\n name: 'departmentkmdata',\n components: {\n editfloder,\n editfile,\n fileuploader,\n folderuploader,\n filesharedialog,\n collectdialog,\n movedialog,\n impowertreedialog,\n labelcategorydialog\n },\n props: [\n 'breadcrumbData',\n 'multipleSelection',\n 'multipleSelectionArray',\n 'disksList',\n 'params',\n 'curDiskParams',\n 'showNewFloderBtn',\n 'previewCount',\n 'downloadCount',\n 'disksAdminsCount',\n 'loading'\n ],\n data() {\n return {\n disksFoldersList: {},\n isEditable: false,\n clientHeight: '',\n user: {},\n parentPermission:this.$route.query.operation,//父文件夹的权限\n level : {\n ROLE_LEVEL_SUPERADMIN : 100, //企业知识管理员 \n ROLE_LEVEL_COMMITTEEADMIN : 20, //专委会知识管理员 \n ROLE_LEVEL_DEPTADMIN : 10, //部门知识管理员\n ROLE_LEVEL_member : 0 //普通员工\n },\n moveTreeModalParams: { //移动弹出层\n isObj: false,\n isfolder: false,\n diskId: \"\",\n fileId: \"\",\n moveTreeModalVisible: false, \n treeData: []\n },\n collectTreeModalParams: { //文件收藏弹出层\n collectTreeModalVisible: false,\n fileId: \"\",\n },\n shareTreeModalParams: { //分享弹出层\n fileId: \"\",\n diskId: \"\",\n folderId: \"\",\n shareTreeModalVisible: false,\n teamTreeData: []\n },\n categorySettingsModalParams: { //贴标签弹出层\n fileId: \"\",\n defaultValue: [],\n categoryData: [], \n visible: false, \n },\n impowerTreeModalParams: { //文件授权弹出层\n record: {},\n visible: false,\n resourceId: \"\",\n },\n isDeptAdmin: false, //根据角色判断是否是管理员\n isShowUpload: false, //判断角色是否显示上传操作\n isShowCreateFolder: false, //判断角色是否显示新建文件夹操作\n isShowBath: false, //判断角色是否显示批量移动操作\n isShowBathDelete: false, //判断角色是否显示批量删除操作\n }\n },\n\n watch:{\n disksList(val){ //disksList即为父组件的值,val参数为值\n this.disksFoldersList = val; //将父组件的值赋给disksFoldersList子组件的值\n },\n curDiskParams(val){\n console.log(val)\n }\n\n },\n\n updated(){\n this.getisDeptAdmin();\n this.getIsShowUpload(); //判断角色是否是部门管理员\n this.getIsShowCreateFolder(); //判断角色是否显示新建文件夹操作\n this.getIsShowBathDelete(); //判断角色是否显示批量删除操作\n this.getIsShowBathButton(); //判断角色是否显示批量移动操作\n },\n created() {\n const windowHeight = document.documentElement.clientHeight;\n const deptHead = this.$parent.$refs.deptHead.offsetHeight;\n // 16是外边距 28按钮的高度 16浏览量的高度 59表格头的高度\n // this.clientHeight = `${document.documentElement.clientHeight}` - deptHead - 16 - 28 - 16 - 59 +'px';\n this.clientHeight = `${document.documentElement.clientHeight}`- deptHead - 50 - 40 - 15 - 28 - 48 - 40 +'px';\n\n },\n mounted(){\n this.getMyProfile();\n },\n methods: {\n /**\n * 获取当前用户信息\n */\n getMyProfile(){\n API.getMyProfile({\n onSucess: resp => {\n this.user = resp.data.data; \n } \n })\n },\n /**\n * 根据用户角色[],判断是否是部门管理员\n */\n getisDeptAdmin(){\n let user = this.user;\n let isDeptAdmin = false;\n if(user.roles) {\n isDeptAdmin = this.isDeptaAdmin(user.roles);\n }\n this.isDeptAdmin = isDeptAdmin;\n },\n \n /**\n * 判断角色是否显示上传操作\n * 1、非根目录下显示上传按钮;\n * 2、成员所在的部门id等于当前部门网盘所属的部门的ownerId\n * 3、企业管理员也有权限上传\n */\n getIsShowUpload(){\n let params = this.params;\n let curDiskParams = this.curDiskParams;\n let user = this.user;\n const level = this.level;\n let isShowUpload = false;\n \n if((params.diskId != params.folderId && user.defaultDepartment == curDiskParams.ownerId) ||\n (params.diskId != params.folderId && user.level == level.ROLE_LEVEL_SUPERADMIN)) {\n isShowUpload = true;\n }\n this.isShowUpload = isShowUpload;\n },\n\n /**\n * 判断角色是否显示新建文件夹操作\n * 1、超级管理员\n * 2、成员所在的部门id等于当前部门网盘所属的部门的ownerId,并且成员是该部门管理员\n */\n getIsShowCreateFolder(){\n let curDiskParams = this.curDiskParams;\n let user = this.user;\n const level = this.level;\n let isShowCreateFolder = false;\n let isDeptaAdmin = false;\n if(user.roles) { //根据角色判断是否是管理员\n isDeptaAdmin = this.isDeptaAdmin(user.roles);\n }\n \n if(user.level == level.ROLE_LEVEL_SUPERADMIN) {\n isShowCreateFolder = true;\n }else if((user.defaultDepartment == curDiskParams.ownerId) && isDeptaAdmin) {\n isShowCreateFolder = true;\n }\n this.isShowCreateFolder = isShowCreateFolder;\n },\n\n /**\n * 判断角色是否显示批量移动操作\n * 1、企业管理员有批处理操作;\n * 2、本部门网盘的部门管理员有批处理操作\n */\n getIsShowBathButton() {\n let curDiskParams = this.curDiskParams;\n let user = this.user;\n const level = this.level;\n const curUserLevel = user.level; //用户最高权限\n const curUserDefaultDepartment = user.defaultDepartment;\n\n let isShowBath = false;\n let isDeptaAdmin = false;\n if(user.roles) {\n isDeptaAdmin = this.isDeptaAdmin(user.roles);\n \n }\n if(curUserLevel == level.ROLE_LEVEL_SUPERADMIN) {\n isShowBath = true;\n }else if((curUserDefaultDepartment == curDiskParams.ownerId) && isDeptaAdmin) {\n isShowBath = true;\n }\n this.isShowBath = isShowBath;\n },\n\n /**\n * 判断角色是否显示批量删除操作\n * 1、企业管理员、本部门网盘的部门管理员有批处理操作;\n * 2、本部门成员有批量删除自己新建的文件夹和上传的文件;\n */\n getIsShowBathDelete(){\n let curDiskParams = this.curDiskParams;\n let user = this.user;\n const level = this.level;\n const multipleSelectionArray = this.multipleSelectionArray;\n\n let isShowBathDelete = false;\n const curUserLevel = user.level; //用户最高权限\n const curUserDefaultDepartment = user.defaultDepartment;\n const curUserId = user.id;\n let isDeptaAdmin = false;\n \n if(user.roles) {\n isDeptaAdmin = this.isDeptaAdmin(user.roles);\n \n }\n if(curUserLevel == level.ROLE_LEVEL_SUPERADMIN) {\n isShowBathDelete = true;\n this.isShowBathDelete = isShowBathDelete;\n }else if(isDeptaAdmin && curUserDefaultDepartment == curDiskParams.ownerId) {\n isShowBathDelete = true;\n this.isShowBathDelete = isShowBathDelete;\n }else if(curUserDefaultDepartment == curDiskParams.ownerId) {\n let num = -1; //所勾选的全部是自己创建或上传的\n multipleSelectionArray.map((item) => {\n if(item.creatorId != curUserId) { //只要有一个文件的创建人不等于当前用户,就不显示批量操作\n num += 1;\n return;\n }\n });\n if(num < 0) { \n isShowBathDelete = true;\n }\n this.isShowBathDelete = isShowBathDelete;\n }else {\n this.isShowBathDelete = isShowBathDelete;\n }\n },\n\n /**\n * 根据用户角色[],判断是否是部门管理员\n */\n isDeptaAdmin (roles) {\n const level = this.level;\n let deptAdmin = false;\n roles.map((e)=>{\n if(e.roleNo == level.ROLE_LEVEL_DEPTADMIN) {\n deptAdmin = true;\n }\n });\n return deptAdmin\n },\n\n /**\n * 新建目录(文件夹)\n */\n handleCreateFolder(){\n this.$emit('handleCreateFolder');\n },\n\n //打开新建文件弹出层\n async showEditModal(){\n let result = (await API.createEmptydoc(this.params)).data;\n if(result.errcode == 0){\n let url = \"\";\n if(kmsConfig.staticContextPath){\n url = kmsConfig.staticContextPath + kmsConfig.kmsFilePath + '/office/vender/ntko/new.html?diskId='+ result.data.diskId +\n '&folderId='+ result.data.folderId +'&userName='+this.user.name+'&userId='+ this.user.id +\n '&type='+ result.data.type +'&url='+ result.data.url +'&id='+ result.data.id\n }else{\n url = kmsConfig.kmsFilePath + '/kms/office/vender/ntko/new.html?diskId='+ result.data.diskId +\n '&folderId='+ result.data.folderId +'&userName='+this.user.name+'&userId='+ this.user.id +\n '&type='+ result.data.type +'&url='+ result.data.url +'&id='+ result.data.id\n }\n window.open(url);\n this.onRefreshComponent(this.params);\n }\n },\n\n /**\n * 勾选行时响应\n */\n handleSelectionChange(val){\n this.$emit('handleSelectionChange', val);\n },\n\n /**\n * 取消选中行,分页、批量处理使用\n */\n clearSelection(){\n this.$refs.multipleTable.clearSelection();\n },\n\n /**\n * 单个下载\n */\n handleSingleFileDownload(fileId,folder){\n this.$emit('handleSingleFileDownload', fileId, folder);\n },\n\n /**\n * 在线编辑\n */\n showOnlineEditModal(record){\n this.$emit('showOnlineEditModal', record);\n },\n\n /**\n * 批量下载\n */\n handleFileObjDownload(){\n this.$emit('handleFileObjDownload');\n },\n\n /**\n * 批量删除\n */\n showDeleteMessageBox(){\n this.$emit('showDeleteMessageBox');\n },\n\n /**\n * 查询列表名称\n */\n onSearchChange(){\n this.$emit('onSearchChange');\n },\n\n /**\n * 当前页改变时会触发\n */\n handleCurrentChange(val) {\n this.$emit('onSearchChange', val);\n },\n\n /**\n * 刷新列表\n */\n onRefreshComponent(params){\n this.$emit('loadDisksFolderListAciton', params);\n },\n /**\n * 文件上传成功点击取消,这里是直接删除文件\n */\n deleteUploadFile(fileList,params){\n API.deleteFileObj(fileList.diskId, fileList.fileObject,{\n onSucess: resp => {\n if(resp.data.data){\n this.$message(this.$t('msg.upload_ca'));\n this.onRefreshComponent(params);\n }\n }\n })\n },\n\n /**\n * 下拉操作\n */\n handleCommand(obj){\n let index = obj.index;\n let diskId = obj.record.diskId;\n let folderId = obj.record.id;\n let folder = obj.record.folder;\n \n if(obj.command == 'stickFolder'){ //仅当用户是企业管理员时才有文件夹置顶功能\n this.$emit('stickFolder', diskId, folderId);\n }else if(obj.command == 'cancelStickFolder'){ //仅当用户是企业管理员时才有文件夹取消置顶功能\n this.$emit('cancelStickFolder', diskId, folderId);\n }else if(obj.command == 'fileShare'){ //分享文件\n this.shawFileShareDialog(folderId, diskId, folderId);\n }else if(obj.command == 'collectFile'){ //收藏文件\n this.showCollectModal(folderId);\n }else if(obj.command == 'manageReName'){ //重命名\n this.$store.commit('handleRename', index);\n this.disksFoldersList = this.$store.state.disksFoldersList;\n }else if(obj.command == 'impowertreedialog'){ //授权\n this.showImpowerTreeDialog(obj.record.id, obj.record);\n }else if(obj.command == 'showDeleteConfirm'){ //删除\n const diskid = this.params.diskId;\n const isfolder = folder;\n let folderid = \"\";\n if(isfolder){\n folderid = folderId;\n }else {\n folderid = this.params.folderId;\n }\n let params = {\n \"diskId\": diskid,\n \"folderId\": folderid,\n \"fileId\": folderId,\n \"isfolder\": isfolder\n };\n this.$confirm(this.$t('msg.delConfirm'), this.$t('msg.tip'), {\n confirmButtonText: this.$t('msg.confirm'),\n cancelButtonText: this.$t('msg.cancel'),\n type: 'warning',\n }).then(async() => {\n const result = (await API.deleteFile(params)).data;\n if(result.errcode == 0){\n let curParams = this.params\n this.$emit('loadDisksFolderListAciton', curParams);\n this.$message({\n type: 'success',\n message: this.$t('msg.es')\n });\n }\n }).catch(() => {\n this.$message({\n type: 'info',\n message: this.$t('msg.cancel_del')\n });\n });\n }else if(obj.command == 'movedialog'){ //移动到\n this.showMoveTreeModal(false, folderId, folder)\n }\n },\n\n /**\n * 打开文件分享对话框\n */\n async shawFileShareDialog(fileId, diskId, folderId){\n const result = (await API.getTeamtreeData()).data;\n const treeData = JSON.parse(result.data);\n let shareTreeModalParams= {\n fileId:fileId,\n diskId: diskId,\n folderId: folderId,\n shareTreeModalVisible: true, //移动弹出层\n teamTreeData: treeData\n }\n this.shareTreeModalParams = shareTreeModalParams;\n },\n\n /**\n * 取消文件分享对话框\n */\n handleFileShareDialogClose(){\n let shareTreeModalParams= {\n fileId: \"\",\n diskId: \"\",\n folderId: \"\",\n shareTreeModalVisible: false, \n teamTreeData: []\n }\n this.shareTreeModalParams = shareTreeModalParams;\n },\n\n /**\n * 显示收藏对话框\n */\n showCollectModal(fileId){\n const collectTreeModalParams = { //文件收藏弹出层\n \"collectTreeModalVisible\": true,\n \"fileId\" : fileId\n };\n this.collectTreeModalParams = collectTreeModalParams;\n },\n\n /**\n * 取消收藏\n */\n handleCollectDialogClose(){\n const collectTreeModalParams = { //文件收藏弹出层\n \"collectTreeModalVisible\": false,\n \"fileId\" : \"\"\n };\n this.collectTreeModalParams = collectTreeModalParams;\n },\n\n /**\n * 打开移动文件对话框\n * @params {isObj} 是否是批量移动\n * @params {fileId} 移动文件/目录的id(String),或者id集合(array)\n * @params {folder} 非批量移动时,是否是单个文件或者单个目录\n */\n async showMoveTreeModal(isObj,fileId,folder) {\n const diskId = this.params.diskId;\n let selectedFileArray = []; //获取团队树结构时需要目录的id\n if(isObj) {\n selectedFileArray = this.multipleSelectionArray;\n }else {\n let single = {\n \"fileObjectId\" : fileId,\n \"isFolder\" : folder\n }\n selectedFileArray.push(single);\n }\n const treeData = (await API.getFolderstree(diskId, selectedFileArray)).data;\n\n let moveTreeModalParams= {\n \"isObj\": isObj,\n \"isfolder\":folder,\n \"diskId\" : diskId,\n \"fileId\": fileId,\n \"moveTreeModalVisible\": true, //移动弹出层\n \"treeData\": JSON.parse(treeData.data)\n }\n this.moveTreeModalParams = moveTreeModalParams;\n },\n\n /**\n * 取消移动\n */\n handleMoveDialogClose(){\n let moveTreeModalParams= {\n \"isObj\": false,\n \"isfolder\": false,\n \"diskId\": \"\",\n \"fileId\": \"\",\n \"moveTreeModalVisible\": false, //移动弹出层\n \"treeData\": []\n }\n this.moveTreeModalParams = moveTreeModalParams;\n },\n\n /**\n * 打开文件/文件夹授权对话框\n */\n showImpowerTreeDialog(resourceId,record){\n let impowerTreeModalParams = { //文件授权弹出层\n \"record\": record,\n \"visible\": true,\n \"resourceId\" : resourceId,\n }\n this.impowerTreeModalParams = impowerTreeModalParams\n },\n\n /**\n * 取消文件/文件夹授权对话框\n */\n handleImpowerTreeDialogClose(){\n let impowerTreeModalParams = { //文件授权弹出层\n \"record\": \"\",\n \"visible\": false,\n \"resourceId\" : \"\",\n }\n this.impowerTreeModalParams = impowerTreeModalParams\n },\n /**\n * 删除单个标签\n */\n async handleClose(tag,row){\n const resultData = (await API.deleteCategory(row.id,tag.categoryName)).data;\n if(resultData.errcode == 0){\n this.$emit(\"closeTage\")\n }\n },\n\n /**\n * 打开标签对话框\n */\n async showLabelCategoryDialog(fileId){\n //获取标签\n const categorySettingsData = (await API.getCategory()).data;\n //获取文件已有标签\n const categoryData = categorySettingsData.data;\n let defaultValueData = (await API.getFileCategorys(fileId)).data;\n if(defaultValueData == undefined){\n defaultValueData = [];\n }\n if(!categoryData){\n this.$message({\n type: 'warning',\n message: this.$t('msg.created_tags_no')\n });\n }else{\n let arr = [];\n if(defaultValueData.data){\n defaultValueData.data.map((name)=>{\n categoryData.map((labelCate)=>{\n if(labelCate.name == name){\n arr.push(labelCate.id)\n }\n })\n })\n }\n let categorySettingsModalParams= {\n 'fileId' : fileId,\n 'defaultValue': defaultValueData.data,\n 'categoryData': categoryData,\n 'visible': true,\n 'labelCate': arr\n }\n this.categorySettingsModalParams = categorySettingsModalParams\n }\n },\n\n /**\n * 取消标签弹出层\n */\n handleCategoryDialogClose(){\n let categorySettingsModalParams= {\n fileId: \"\",\n defaultValue: [],\n categoryData: [],\n visible: false\n }\n this.categorySettingsModalParams = categorySettingsModalParams;\n },\n\n /**\n * 排序\n */\n onSortChange(sorter){\n if(sorter.order){\n let orderMode = \"\";\n let orderByfield = \"\";\n if(sorter.order == \"descending\"){\n orderMode = \"DESC\";\n }else if(sorter.order == \"ascending\"){\n orderMode = \"ASC\";\n }\n switch(sorter.prop) {\n case \"name\" :\n orderByfield = (sorter.prop).toUpperCase();\n break;\n case \"lastModifyDate\" :\n orderByfield = \"LAST_MODIFY_DATE\";\n break;\n case \"creator\" :\n orderByfield = (sorter.prop).toUpperCase();\n break;\n }\n const sorter_params = {\n ...this.params,\n orderByfield : orderByfield,\n orderMode : orderMode\n };\n this.onRefreshComponent(sorter_params);\n }\n }\n\n }\n}\n",null]}