{"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/views/departmentKm/DepartmentKm.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/views/departmentKm/DepartmentKm.vue","mtime":1742796810169},{"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\";\nimport { combineParams, TimeToDate, getFolderIdsFileIds_url } from '@/utils/utils.js';\nimport DepartmentKmData from '@/components/departmentKm/DepartmentKmData.vue'\nexport default {\n name: 'departmentKm',\n components: {\n DepartmentKmData\n },\n data() {\n return {\n activeIndex: '0',\n loading: true,\n user: {}, //获取用户信息\n disksData: [], //部门网盘\n disksFoldersList: {}, //列表数据\n multipleSelection: [],\n multipleSelectionArray: [],\n breadcrumbData: [], //面包屑得数据\n breadcrumbStirng : \"\", //面包屑,字符串\n previewCount: \"\", //网盘预览量\n downloadCount: \"\", //网盘下载量\n disksAdminsCount: \"\", //网盘的管理员\n initParams: { //初始化时请求数据的参数,hash回退时用\n fileName: \"\",\n diskId: \"\", \n folderId: \"\",\n pageNo: 1,\n linesPerPage: 15\n }, \n params: { //初始化时请求数据的参数,hash改变随之改变\n fileName: \"\",\n diskId: \"\", \n folderId: \"\",\n pageNo: 1,\n linesPerPage: 15\n }, \n curDiskParams: {}, //当前选中网盘的参数\n showNewFloderBtn: true,\n applyModalParams: { //申请权限弹出层参数\n \"resourceId\": \"\",\n \"applyModalvisible\" : false,\n \"previewDefault\" : false,\n \"downloadDefault\" : false,\n \"editDefault\": false\n },\n approver: \"\",\n formParams : {\n \"operations\": [],\n \"download\" : false,\n \"preview\" : false,\n \"edit\": false,\n \"reason\" : \"\"\n },\n paddingTop: false, //头部padding\n };\n },\n mounted() {\n if(this.$store.state.isShowHeard){\n this.paddingTop = true;\n }\n this.getMyProfile();\n },\n methods: {\n /**\n * 获取当前用户信息\n */\n getMyProfile(){\n API.getMyProfile({\n onSucess: resp => {\n this.user = resp.data.data;\n this.getdisksData();\n } \n })\n },\n closeWindow(diskId){\n this.getViewsAndDownloads(diskId);\n },\n /**\n * 部门网盘\n */\n getdisksData() {\n this.params.linesPerPage = 999;\n API.getdisksData(this.params,{\n onSucess: resp => {\n this.disksData = resp.data.data.datas;\n if(resp.data.data.datas.length>0){\n this.handleDisksFolderListData(this.user, this.disksData);\n }else{\n //当无部门时,显示无数据\n this.disksFoldersList = {};\n this.loading = false;\n }\n } \n })\n },\n\n /**\n * 处理网盘列表数据,初始化,分两种情况,第一种是hash不带参数,第二种是hash带了参数\n */\n handleDisksFolderListData(user, disks){\n let curParams = {\n ...this.params\n }\n let showNewFloderBtn = this.showNewFloderBtn;\n if(this.$route.query.fileName != undefined){\n const params = combineParams(this.$route.fullPath);\n const fileName = params.fileName;\n const curDiskId = params.diskId;\n const curFolderId = params.folderId;\n disks.map((e,key) => {\n let active = \"\";\n if(e.id == curDiskId){\n active = String(key);\n this.activeIndex = active;\n }\n })\n curParams.fileName = fileName;\n curParams.diskId = curDiskId;\n curParams.folderId = curFolderId;\n }else{\n let owner = false;\n if(disks != undefined){\n disks.map((e,key) => {\n let active = \"\";\n let activeIndex = \"\";\n if(user.defaultDepartment == e.ownerId){\n activeIndex = String(key);\n active = \"activeIndex\";\n owner = true;\n this.activeIndex = activeIndex;\n }\n disks[key].active = active;\n })\n if(owner){\n for(let i=0;i {\n this.disksFoldersList = resp.data.data;\n this.$store.commit('addDisksFoldersList', resp.data.data);\n this.getBreadcrumbData(params);\n }\n })\n },\n\n /**\n * 获取目录路径\n * @param {*} params \n */\n async getBreadcrumbData (params) {\n let id = \"\";\n if(params.diskId == params.folderId) { //网盘根目录\n id = params.diskId;\n }else {\n id = params.folderId;\n }\n const result = (await API.getBreadcrumbData(id)).data;\n let breadcrumbData = \"\";\n if(result.errcode == 0) {\n breadcrumbData = result.data;\n }\n this.breadcrumbData = breadcrumbData;\n },\n\n /**\n * 获取当前网盘的预览量和下载量\n * @param {String} diskId \n */\n async getViewsAndDownloads(diskId) {\n const result = (await API.getViewsAndDownloads(diskId)).data;\n if(result.errcode == 0) {\n const data = result.data;\n this.previewCount = data.views;\n this.downloadCount = data.downloads;\n }\n this.loading = false;\n },\n\n /**\n * 获取当前网盘的网盘管理员\n * @param {String} diskId \n */\n async getDiskAdmins(diskId) {\n const result = (await API.getDiskAdmins(diskId)).data;\n if(result.errcode == 0) {\n const data = result.data;\n let disksAdminsCount = \"\";\n if(data != undefined){\n data.map((item)=>{\n disksAdminsCount += item.name;\n disksAdminsCount += \",\";\n })\n }\n if(disksAdminsCount.length > 0 ) {\n disksAdminsCount = disksAdminsCount.substr(0,disksAdminsCount.length-1);\n }\n this.disksAdminsCount = disksAdminsCount\n }else {\n this.$message({\n type: 'info',\n message: result.errmsg\n });\n }\n this.loading = false;\n },\n\n /**\n * 菜单激活回调\n */\n handleSelect(index) {\n this.loading = true;\n let params = \"\";\n let diskId = \"\";\n let folderId = \"\"\n this.disksData.map((e,key) => {\n if(key == index){\n diskId = e.id;\n folderId = e.id;\n }\n })\n params = {\n ...this.params,\n diskId: diskId,\n folderId: folderId,\n pageNo: 1\n }\n this.params = params;\n this.getCurDiskParams(index);\n this.loadDisksFolderListAciton(params);\n this.getViewsAndDownloads(params.diskId);\n //获取当前网盘的网盘管理员\n this.getDiskAdmins(params.diskId);\n },\n\n /**\n * 获取当前网盘的信息并设置curDiskParams\n */\n getCurDiskParams (index) {\n let disks = this.disksData;\n let curDiskParams = {};\n disks.map((e,key) => {\n if(key == Number(index)){\n curDiskParams = e;\n }\n });\n this.curDiskParams = curDiskParams;\n },\n\n /**\n * 查询列表\n */\n onSearchChange(val){\n let params = {\n ...this.params,\n pageNo: val ? val : this.params.pageNo,\n };\n this.loadDisksFolderListAciton(params);\n },\n\n /**\n * 勾选行时响应\n */\n handleSelectionChange(val){\n let multipleSelectionArray = [];\n let multipleSelection = [];\n if(val.length){\n val.map((e) => {\n let file = {};\n file.fileObjectId = e.id;\n file.isFolder = e.folder;\n file.creatorId = e.creatorId;\n multipleSelectionArray.push(file);\n multipleSelection.push(e.id)\n })\n }\n this.multipleSelectionArray = multipleSelectionArray;\n this.multipleSelection = multipleSelection;\n },\n\n /**\n * 取消选中行,分页、批量处理使用\n */\n cancelMultipleSelection() {\n this.$refs.multipleTable.clearSelection();\n },\n\n /**\n * 在线编辑\n */\n showOnlineEditModal(record){\n const user = this.user;\n let id = record.id;\n let url = record.url;\n let folderId = record.folderId;\n let userName = user.name;\n let userId = user.id;\n let apiParams = {\n \"fileId\" : record.id,\n \"folder\" : record.folder\n };\n API.getEditAbleFile(id, {\n onSucess: resp => {\n if(resp.data.errcode == 0){\n let previewUrl = \"\";\n if(kmsConfig.staticContextPath){\n previewUrl = kmsConfig.staticContextPath + kmsConfig.kmsFilePath +'/office/vender/ntko/editDocument2.html?id='+id+\"&url=\"+url+\"&folderId=\"+folderId+\"&userId=\"+userId+\"&userName=\"+userName;\n }else{\n previewUrl = kmsConfig.kmsFilePath +'/kms/office/vender/ntko/editDocument2.html?id='+id+\"&url=\"+url+\"&folderId=\"+folderId+\"&userId=\"+userId+\"&userName=\"+userName;\n }\n window.open(previewUrl);\n }\n },\n onError: error =>{\n if(error.response.data.errcode == 403 ) {\n this.showApplyAuthorityModal(apiParams.fileId, 'edit');\n }else{\n this.$toast(error.response.data.errmsg);\n }\n }\n })\n },\n\n /**\n * 单个下载\n * @param {fileId} 文件id/目录id\n * @param {folder} 是否是目录\n */\n handleSingleFileDownload(fileId,folder){\n let apiParams = {\n \"fileId\" : fileId,\n \"folder\" : folder\n };\n API.handleSingleFileDownload(apiParams, {\n onSucess: resp => {\n if(resp.data.errcode == 0){\n let url = \"\"\n if(apiParams.folder) {\n url = kmsConfig.contextPath + \"/kms/downloads?folderIds=\"+apiParams.fileId+\"&fileIds=\";\n }else{\n url = kmsConfig.contextPath + \"/kms/download/\"+apiParams.fileId;\n }\n window.open(url);\n }\n },\n onError: error =>{\n if(error.response.data.errcode == 403 ) { \n this.showApplyAuthorityModal(apiParams.fileId, 'download');\n }else{\n this.$toast(error.response.data.errmsg);\n }\n }\n })\n },\n\n /**\n * 批量下载\n */\n async handleFileObjDownload(){\n let apiParams = this.multipleSelectionArray;\n API.handleFileObjDownload(apiParams, {\n onSucess: resp => {\n if(resp.data.errcode == 0){\n const folderIdsFileIds_url = getFolderIdsFileIds_url(apiParams);\n let url = kmsConfig.contextPath + \"/kms/downloads?\"+folderIdsFileIds_url;\n this.cancelMultipleSelection();\n window.open(url);\n }\n },\n onError: err =>{\n this.$message({\n message: err.response.data.errmsg,\n type: 'warning'\n });\n }\n })\n // const fileObjDownloadResult = (await API.handleFileObjDownload(apiParams)).data;\n // if(fileObjDownloadResult.data){\n // this.cancelMultipleSelection();\n // }\n },\n\n /**\n * 批量删除部门网盘\n */\n showDeleteMessageBox(){\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(() => {\n API.deleteFileObj(this.params.diskId, this.multipleSelectionArray, {\n onSucess: resp => {\n if(resp.data.errcode == 0){\n let params = this.params;\n this.loadDisksFolderListAciton(params);\n this.$message({\n type: 'success',\n message: this.$t('msg.es')\n });\n }\n }\n })\n }).catch(() => {\n this.cancelMultipleSelection();\n this.$message({\n type: 'info',\n message: this.$t('msg.cancel_del')\n });\n });\n },\n\n /**\n * 新建目录(文件夹)\n * 返回数据改变状态,不再请求数据\n */\n async handleCreateFolder() {\n const createFolder_params = this.params;\n if(createFolder_params.diskId == \"\"){\n this.$message.error(this.$t('msg.create_department'));\n }else{\n const result = (await API.createFolder(createFolder_params)).data;\n if(result.errcode == 0){\n let createFolderData = result.data;\n let newDataArray = [];\n createFolderData.key = createFolderData.id;\n createFolderData.isEditable = true;\n createFolderData.lastModifyDate = TimeToDate(createFolderData.lastModifyDate,\"YYYY-MM-DD\");\n createFolderData.isCreateFolderRow = true;\n \n newDataArray = [\n createFolderData,\n ...this.$store.state.disksFoldersList.datas\n ];\n \n const disksFoldersList = {\n ...this.$store.state.disksFoldersList\n }\n disksFoldersList.rowCount = parseInt(disksFoldersList.rowCount) +1;\n disksFoldersList.datas = newDataArray;\n this.$store.commit('addDisksFoldersList', disksFoldersList);\n this.disksFoldersList = this.$store.state.disksFoldersList;\n }\n }\n },\n\n /**\n * 重命名目录\n * @param {fileId} 目录id\n * @param {index} 数据在整个数据的下标,修改状态值用,不需重新抓取数据\n * @param {newFileName} 新名字\n */\n async handleRenameFolderOk(index, row){\n const diskId = this.params.diskId;\n let apiParams = {\n \"diskId\" : diskId,\n \"folderId\" : row.id,\n \"name\" : row.name\n };\n \n const RenameResult = (await API.handleRenameFolderOk(apiParams)).data;\n if(RenameResult.errcode == 0){\n let dataArray = [\n ...this.disksFoldersList.datas\n ]\n if(dataArray[index].isCreateFolderRow == true){\n let createFolderData = RenameResult.data;\n createFolderData.key = createFolderData.id;\n createFolderData.isEditable = false;\n\n dataArray.splice(index,1,createFolderData);\n const disksFoldersList = {\n ...this.disksFoldersList\n }\n disksFoldersList.datas = dataArray;\n this.$store.commit('addDisksFoldersList', disksFoldersList)\n this.disksFoldersList = this.$store.state.disksFoldersList;\n }\n this.handleRenameCancel(index); //成功之后修改状态\n this.$message({\n type: 'success',\n message: this.$t('msg.rename_ss')\n });\n }\n },\n\n /**\n * 重命名文件\n * @param {fileId} 文件id\n * @param {index} 数据在整个数据的下标,修改状态值用,不需重新抓取数据\n * @param {newFileName} 新名字\n */\n async handleRenameFilesOk(index, row) {\n if(row.name.split(\".\")[0] == \"\" && row.name[0]!='.'){\n this.$message({\n type: 'warning',\n message: this.$t('msg.file_name_noempty')\n });\n }else{\n const diskId = this.params.diskId;\n let apiParams = {\n \"diskId\" : diskId,\n \"fileId\" : row.id,\n \"name\" : row.name\n };\n const RenameResult = (await API.handleRenameFilesOk(apiParams)).data;\n if(RenameResult.data){\n this.handleRenameCancel(index); //成功之后修改状态\n this.$message({\n type: 'success',\n message: this.$t('msg.rename_ss')\n });\n }\n }\n },\n\n /**\n * 取消重命名\n */\n async handleRenameCancel(index){\n let dataArray = [\n ...this.$store.state.disksFoldersList.datas\n ];\n dataArray[index].isEditable = false;\n \n if(dataArray[index].isCreateFolderRow) {\n const delete_fileId = dataArray[index].id;\n const delete_folder = dataArray[index].folder;\n const delete_diskId = dataArray[index].diskId;\n // const delete_folderId = dataArray[index].folderId;\n\n let params = {\n diskId: delete_diskId,\n folderId: delete_fileId,\n fileId: delete_fileId,\n isfolder: delete_folder\n };\n const deleteFileData = (await API.deleteFile(params)).data;\n if(deleteFileData.data){\n this.$store.commit('deleteDisksFoldersList', index);\n this.$message({\n type: 'success',\n message: this.$t('msg.new_folders_cancel')\n });\n }\n }else {\n //包括分页的列表数据\n const disksFoldersList = {\n ...this.$store.state.disksFoldersList\n }\n disksFoldersList.datas = dataArray;\n this.$store.commit('addDisksFoldersList', disksFoldersList);\n this.disksFoldersList = disksFoldersList;\n }\n },\n\n /**\n * 进入下一级文件夹\n * @param {object} obj \n */\n clickFolder(row){\n const folderId = row.id;\n const diskId = row.diskId;\n //获取时间格式,防止跳转路由和地址相同时,路由不会跳转\n let date = new Date();\n this.$router.push({ \n name: 'departmentKm',\n query: {\n \"fileName\" : \"\",\n \"diskId\": diskId,\n \"folderId\": folderId,\n \"pageNo\" : 1,\n \"dete\": date.getTime()\n }\n })\n },\n\n /**\n * 文件夹置顶(仅企业管理员的功能)\n */\n async stickFolder(diskId,id) {\n const result = (await API.stickFolder(diskId,id)).data;\n if(result.errcode == 0){\n this.$message({\n type: 'success',\n message: this.$t('msg.folder_top_ss')\n });\n const cur_params = {...this.params};\n this.loadDisksFolderListAciton(cur_params);\n }\n },\n\n /**\n * 文件夹取消置顶(仅企业管理员的功能)\n */\n async cancelStickFolder(diskId,id) {\n const result = (await API.cancelStickFolder(diskId,id)).data;\n if(result.errcode == 0){\n this.$message({\n type: 'success',\n message: this.$t('msg.folder_untop_ss')\n });\n const cur_params = {...this.params};\n this.loadDisksFolderListAciton(cur_params);\n }\n },\n /**\n * 确定移动单个文件或者单个目录\n * \n */\n async handleMoveFile(moveParams) {\n API.handleMoveFile(moveParams, {\n onSucess: resp => {\n if(resp.data.errcode == 0){\n const cur_params = this.params;\n this.loadDisksFolderListAciton(cur_params);\n this.$message({\n type: 'success',\n message: this.$t('msg.move_ss')\n });\n }\n },\n onError: error =>{\n this.$message({\n type: 'warning',\n message: error.response.data.errmsg\n });\n }\n })\n // let result = (await API.handleMoveFile(moveParams)).data;\n // if(result.data){\n // const cur_params = this.params;\n // this.loadDisksFolderListAciton(cur_params);\n // this.$message({\n // type: 'success',\n // message: '移动成功!'\n // });\n // }\n },\n\n /**\n * 确定移动多个文件/目录\n * @param {moveParams} 文件id\n * \n */ \n async handleMoveFileObj(moveParams) {\n API.handleMoveFileObj(moveParams, {\n onSucess: resp => {\n if(resp.data.errcode == 0){\n const cur_params = this.params;\n this.loadDisksFolderListAciton(cur_params);\n this.cancelMultipleSelection(); //取消table选中行\n this.$message({\n type: 'success',\n message: this.$t('msg.move_ss')\n });\n }\n },\n onError: error =>{\n this.$message({\n type: 'warning',\n message: error.response.data.errmsg\n });\n }\n })\n // let result = await API.handleMoveFileObj(moveParams);\n // if(result.data){\n // const cur_params = this.params;\n // this.loadDisksFolderListAciton(cur_params);\n // this.cancelMultipleSelection(); //取消table选中行\n // this.$message({\n // type: 'success',\n // message: '移动成功!'\n // });\n // }\n },\n /**\n * 删除单个标签\n */\n closeTage(){\n this.handleCategoryOk();\n },\n /**\n * 确定贴标签\n * \n */ \n async handleCategoryOk() {\n const cur_params = this.params;\n this.loadDisksFolderListAciton(cur_params);\n this.cancelMultipleSelection(); //取消table选中行\n },\n\n /**\n * 单个文件/目录下载若没权限需设置fileId和打开申请权限弹出层\n *@param {fileId} 文件id/目录id\n */\n async showApplyAuthorityModal(fileId, type) {\n let _download = false;\n let _preview = false;\n let _edit = false;\n switch(type) {\n case \"preview\" : \n _preview = true;\n break;\n case \"download\" : \n _download = true;\n break;\n case \"edit\":\n _edit = true;\n }\n //获取审批人\n API.getResourceApprover(fileId, {\n onSucess: resp => {\n this.approver = resp.data.data;\n this.formParams.operations = [type];\n this.formParams.download = _download;\n this.formParams.preview = _preview;\n this.formParams.edit = _edit;\n let applyModalParams = {\n ...this.applyModalParams,\n \"resourceId\": fileId,\n \"previewDefault\": _preview,\n \"downloadDefault\": _download,\n \"editDefault\": _edit,\n \"applyModalvisible\" : true,\n }\n this.applyModalParams = applyModalParams;\n },\n })\n },\n\n //隐藏申请权限模态框\n handleApplyModalHide() {\n let applyModalParams = {\n ...this.applyModalParams,\n \"applyModalvisible\" : false,\n \"resourceId\" : \"\",\n \"previewDefault\": false,\n \"downloadDefault\": false,\n \"editDefault\": false\n }\n this.applyModalParams = applyModalParams;\n //隐藏申请权限对话框把申请理由清空\n this.formParams.reason = \"\";\n },\n\n /**\n * 选择申情的权限\n */\n onChangeAuthority(checkedValues) {\n let download = false;\n let preview = false;\n checkedValues.map((item) => {\n if(item == \"download\") {\n download = true;\n }else if(item == \"preview\") {\n preview = true;\n }\n });\n let formParams = {\n ...this.formParams,\n \"download\": download,\n \"preview\": preview\n }\n this.formParams = formParams;\n },\n\n /**\n * 提交申请\n */\n async handleSubmit(){\n let that = this;\n if(!this.formParams.download && !this.formParams.preview && !this.formParams.edit) { //不勾选权限,提示\n this.$message({\n type: 'warning',\n message: this.$t('msg.least_permission_sl')\n });\n }else if(!this.approver){\n this.$message({\n type: 'warning',\n message: this.$t('msg.no_approver_current')\n });\n }else {\n const params = {\n download: this.formParams.download,\n preview: this.formParams.preview,\n edit: this.formParams.edit,\n reason: this.formParams.reason,\n resourceId: this.applyModalParams.resourceId\n }\n const result = (await API.applyAuthority(params)).data;\n if(result.errcode == 0) {\n this.$message({\n type: 'success',\n message: this.$t('msg.approval_admin_wa')\n });\n let applyModalParams = {\n ...this.applyModalParams,\n \"resourceId\": \"\",\n \"applyModalvisible\" : false,\n \"previewDefault\" : false,\n \"downloadDefault\" : false,\n \"editDefault\": false\n }\n this.applyModalParams = applyModalParams;\n //申请成功后,将申请理由清空\n that.formParams.reason = \"\";\n }\n }\n },\n\n }\n}\n",null]}