{"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/teamKm/StageKm.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/teamKm/StageKm.vue","mtime":1742796810170},{"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 moment from 'moment';\nmoment.locale('zh-cn');\nimport API from \"@/api.js\";\nimport { getPreviewUrl } from '@/utils/utils.js';\nimport {handleTableListDataWitdhNORename, goBack, TimeToDate} from \"@/utils/utils.js\";\n//上传文件\nimport fileuploader from '@/components/shared/FileUploader.vue';\n//文件分享\nimport filesharedialog from '@/components/shared/FileShareDialog.vue';\n//收藏文件\nimport collectdialog from '@/components/shared/CollectDialog.vue';\n//标签对话框\nimport labelcategorydialog from '@/components/shared/LabelCategoryDialog.vue'\nexport default {\n name: 'stagekm',\n components: {\n fileuploader,\n filesharedialog,\n collectdialog,\n labelcategorydialog\n },\n data(){\n return{\n kmsFilePath: kmsFilePath,\n paddingTop: false, //头部padding\n contextPath: contextPath,\n level: {\n ROLE_LEVEL_SUPERADMIN : 100, //企业知识管理员 \n },\n memberType: { //成员类型\n TEAM_MEMBER_ADMIN : 1,\n TEAM_MEMBER_NORMAL : 0\n },\n contentType: {\n TEAM : 1,\n COMMITTEE : 2\n },\n teamMembers: [], //当前团队下的成员\n user: {}, //当前用户信息\n creatorId: \"\",\n teamName: \"\",\n teamId: \"\",\n diskId: \"\",\n folderId: \"\", //存储阶段的id\n isSubscription: false,\n stageListData: [], //阶段文件集合,最多显示10条\n filesArray: [], //阶段列表文件集合,显示全部\n stageModal: { //创建或编辑弹出层\n isCreateStage: false,\n visible: false,\n name: \"\",\n orderNo: \"\",\n id: \"\"\n },\n filesModal: { //查看更多弹出层\n visible: false,\n data: [],\n datas: \"\"\n },\n activeName: \"first\",\n specifiedTeamData: {}, //当前团队的所有信息\n creatorDetail: {}, //团队创建者的详情\n \n commentList: [], //评论\n createComment: { //发送评论内容\n content: \"\"\n },\n isTeamMember: false, //判断是否为该团队下的成员才能评论\n isShowOperateStageButton: false,\n isShowSubscription: false, //判断是否显示订阅操作\n shareTreeModalParams: { //分享弹出层\n fileId: \"\",\n diskId: \"\",\n folderId: \"\",\n shareTreeModalVisible: false,\n teamTreeData: []\n },\n collectTreeModalParams: { //文件收藏弹出层\n collectTreeModalVisible: false,\n fileId: \"\",\n },\n applyModalParams: { //申请权限弹出层参数\n resourceId: \"\",\n applyModalvisible: false,\n previewDefault: false,\n downloadDefault: false\n },\n approver: \"\",\n formParams : {\n operations: [],\n download: false,\n preview: false,\n reason: \"\"\n },\n categorySettingsModalParams: { //贴标签弹出层\n fileId: \"\",\n defaultValue: [],\n categoryData: [], \n visible: false, \n },\n }\n },\n\n mounted(){\n //是否展示头部\n if(this.$store.state.isShowHeard){\n this.paddingTop = true;\n }\n const teamId = this.$route.query.teamId;\n const diskId = this.$route.query.diskId;\n API.getMyProfile({\n onSucess: resp => {\n this.user = resp.data.data;\n this.getInitData(teamId, diskId);\n } \n })\n this.teamId = teamId;\n this.diskId = diskId;\n },\n\n methods:{\n /**\n * 根据角色判断是否显示创建阶段操作\n * 1、企业管理员有对阶段有所有操作权限\n * 2、团队管理员对阶段有所有操作权限\n */\n getIsShowOperateStageButton(){\n const teamMembers = this.teamMembers;\n const level = this.level;\n const user = this.user;\n const memberType = this.memberType;\n const creatorId = this.creatorId;\n \n const record = {\n \"members\" : teamMembers,\n \"creatorId\" : creatorId\n }\n let isShowCreateStageButton = false;\n //超级管理员、创建者、团队管理员这三个角色有操作团队的权限\n if(user.level == level.ROLE_LEVEL_SUPERADMIN) {\n isShowCreateStageButton = true;\n }else if(user.id == record.creatorId){\n isShowCreateStageButton = true;\n }else {\n record.members.map((e)=> {\n if(e.userId == user.id && e.type == memberType.TEAM_MEMBER_ADMIN) {\n isShowCreateStageButton = true;\n }\n });\n }\n this.isShowOperateStageButton = isShowCreateStageButton;\n },\n\n /**\n * 判断是否显示订阅操作\n * 1、超级管理员可以订阅;\n * 2、创建者可以订阅;\n * 3、分享到公司的话所有人能订阅;\n * 4、分享到部门的话,该部门下所有人能订阅;\n * 5、该团队下的成员、管理员可以订阅\n */\n getIsShowSubscription(){\n const specifiedTeamData = this.specifiedTeamData;\n const level = this.level;\n const user = this.user;\n // const memberType = this.memberType;\n const creatorDetail = this.creatorDetail;\n\n let isShowSubscription = false;\n if(user.level && user.level == level.ROLE_LEVEL_SUPERADMIN) {\n isShowSubscription = true;\n }else if(user.id && specifiedTeamData.creatorId && user.id == specifiedTeamData.creatorId){\n isShowSubscription = true;\n }else if(specifiedTeamData.compPermission && specifiedTeamData.compPermission.length>0) {\n isShowSubscription = true;\n }else if(specifiedTeamData.deptPermission && specifiedTeamData.deptPermission.length>0) {\n if(creatorDetail && user.defaultDepartment == creatorDetail.defaultDepartment) {\n isShowSubscription = true;\n }\n }else if(specifiedTeamData.members && user.id){\n specifiedTeamData.members.map((e) => {\n if(e.userId == user.id) {\n isShowSubscription = true;\n }\n })\n }\n this.isShowSubscription = isShowSubscription;\n },\n\n /**\n * 页面初始化时\n */\n async getInitData(teamId, diskId){\n //获取当前团队的详情\n const specifiedTeamResult = await API.getSpecifiedTeam(teamId);\n let teamName = \"\";\n let creatorId = \"\";\n let isSubscription = false;\n if( specifiedTeamResult.data.errcode == 0){\n const specifiedTeamData = specifiedTeamResult.data.data;\n teamName = specifiedTeamData.name;\n creatorId = specifiedTeamData.creatorId;\n isSubscription = specifiedTeamData.subscription;\n\n //获取团队创建人的详情\n const creatorDetail = (await API.getUserDetail(creatorId)).data;\n this.creatorDetail = creatorDetail;\n this.specifiedTeamData = specifiedTeamData;\n this.teamName = teamName;\n this.creatorId = creatorId;\n this.isSubscription = isSubscription;\n }\n\n //获取当前团队下的成员\n const teamMembersResult = (await API.getCurTeamMembers(teamId)).data; \n let teamMembers = [];\n if(teamMembersResult.errcode == 0) {\n teamMembers =teamMembersResult.data ? teamMembersResult.data : [];\n this.teamMembers = teamMembers;\n }\n\n //获取当前团队下的阶段\n let stageListData = await this.getStageListData(diskId,teamId);\n stageListData = handleTableListDataWitdhNORename(stageListData);\n this.stageListData = stageListData;\n this.getIsShowOperateStageButton();\n this.getIsShowSubscription();\n },\n\n /**\n * 获取当前团队下的阶段\n */\n async getStageListData(diskId,teamId){\n let result = await API.getStageList(teamId);\n let data = {};\n if(result.data.errcode == 0) {\n data = result.data.data ? result.data.data : [];\n if(data.length > 0) {\n for(let i=0; i < data.length; i++){\n const folderId = data[i].folderId;\n let params = { //初始化时请求数据的参数,hash改变随之改变\n \"diskId\": diskId, \n \"folderId\": folderId,\n \"pageNo\": 1,\n \"linesPerPage\": 10\n }\n let filesArray = await this.getStageFilesData(params);\n data[i].filesArray = filesArray;\n }\n }\n } \n return data;\n },\n\n /**\n * 获取阶段下的文件集合\n */\n async getStageFilesData(params) {\n let filesArray = [];\n const result = (await API.getStageFiles(params)).data;\n if(result.errcode == 0) {\n filesArray = result.data.datas;\n }\n return filesArray;\n },\n\n /**\n * 刷新阶段下的文件集合\n * @param {string} id 阶段id\n */\n async refreshStageFilesList(id, diskId){\n const data = [...this.stageListData];\n for(let i=0; i < data.length; i++){\n if(data[i].id == id ) {\n const folderId = data[i].folderId;\n let params = { //初始化时请求数据的参数,hash改变随之改变\n \"diskId\": diskId, \n \"folderId\": folderId,\n \"pageNo\": 1,\n \"linesPerPage\": 10\n }\n let filesArray = await this.getStageFilesData(params);\n data[i].filesArray = filesArray;\n }\n this.stageListData = data;\n }\n },\n\n /**\n * 获取阶段下的文件\n */\n async refreshgetStageFilesData(diskId, folderId) {\n let params = { //初始化时请求数据的参数,hash改变随之改变\n \"diskId\": diskId, \n \"folderId\": folderId,\n \"pageNo\": 1,\n \"linesPerPage\": 9999\n }\n let filesArray = [];\n const result = (await API.getStageFiles(params)).data;\n if(result.errcode == 0) {\n filesArray = handleTableListDataWitdhNORename(result.data.datas);\n return filesArray;\n }\n },\n\n /**\n * 是否订阅团队\n */\n async onChangeSubscription(checked){\n let teamId = this.teamId;\n if(checked){\n let params = {\n \"contentId\" : teamId,\n \"contentType\" : this.contentType.TEAM,\n \"contentName\" : this.teamName\n } \n let result = (await API.applySubscription(params)).data;\n if(result.errcode == 0) {\n this.isSubscription = checked;\n this.$message({\n type: 'success',\n message: this.$t('msg.subscription_ss')\n });\n }else {\n this.$message({\n type: 'error',\n message: result.errmsg\n });\n }\n }else{\n let cancelParams = [];\n cancelParams.push(teamId);\n let result = (await API.cancelSubscription(cancelParams)).data;\n if(result.errcode == 0) {\n this.isSubscription = checked;\n this.$message({\n type: 'success',\n message: this.$t('msg.unsubscribe')\n });\n }else {\n this.$message({\n type: 'error',\n message: result.errmsg\n });\n }\n }\n },\n\n /**\n * 打开创建团队阶段对话框\n */\n showCreateStageDialog(){\n let stageModal = {\n ...this.stageModal,\n isCreateStage: true,\n visible: true,\n name: \"\",\n id: \"\",\n orderNo: \"\",\n }\n this.stageModal = stageModal;\n },\n\n /**\n * 确定新建阶段\n */\n async handleSettingsOk(){\n const params = {\n \"teamId\" : this.teamId,\n \"name\" : this.stageModal.name,\n \"orderNo\" : this.stageModal.orderNo\n }\n if(this.stageModal.name != \"\"){\n const result = (await API.createStage(params)).data;\n if(result.errcode == 0){\n let stageListData = await this.getStageListData(this.diskId, this.teamId);\n stageListData = handleTableListDataWitdhNORename(stageListData);\n this.stageListData = stageListData;\n this.handleCancel();\n this.$message({\n type: 'success',\n message: this.$t('msg.created_ss2')\n });\n }\n }else{\n this.$message({\n type: 'warning',\n message: this.$t('msg.enter_stage_name')\n });\n }\n },\n\n /**\n * 打开编辑阶段弹出层\n */\n showEditStageDialog(params){\n let stageModal = {\n ...this.stageModal,\n isCreateStage: false,\n visible: true,\n name: params.name,\n id: params.id,\n orderNo: params.orderNo,\n }\n this.stageModal = stageModal;\n },\n\n /**\n * 确定编辑阶段\n */\n async editStageSuccess(){\n const params = {\n \"name\" : this.stageModal.name,\n \"id\" : this.stageModal.id,\n \"orderNo\" : this.stageModal.orderNo\n }\n const result = (await API.editStage(params)).data;\n if(result.errcode == 0) {\n //获取当前团队下的阶段\n let stageListData = await this.getStageListData(this.diskId, this.teamId);\n stageListData = handleTableListDataWitdhNORename(stageListData);\n this.stageListData = stageListData;\n this.handleCancel();\n this.$message({\n type: 'success',\n message: this.$t('msg.name_ch_ss')\n });\n }\n },\n\n /**\n * 关闭阶段弹出层\n */\n handleCancel(){\n let stageModal = {\n ...this.stageModal,\n isCreateStage: false,\n visible: false,\n name: \"\",\n id: \"\",\n orderNo: \"\",\n }\n this.stageModal = stageModal;\n },\n\n /**\n * 删除单个团队阶段\n */\n async deleteStages(params){\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 stageIdArray = [];\n stageIdArray.push(params.id);\n const result = (await API.deleteStages(stageIdArray)).data;\n if(result.errcode == 0){\n const stageListData = [...this.stageListData];\n for(let i=0;i < stageIdArray.length;i++) {\n let stageId = stageIdArray[i];\n stageListData.map((e,key) => {\n if(stageId == e.id){\n stageListData.splice(key,1);\n }\n });\n }\n this.stageListData = stageListData;\n this.$message({\n type: 'success',\n message: this.$t('msg.phase_de_ss')\n });\n }\n if(result.errcode == 401) { //权限\n this.$message({\n type: 'warning',\n message: result.errmsg\n });\n }\n }).catch(() => {\n this.$message({\n type: 'info',\n message: this.$t('msg.cancel_del')\n });\n });\n },\n\n /**\n * 返回上一级\n */\n goBack(){\n goBack();\n },\n\n /**\n * 查看更多\n */\n async showStageDetail(datas){\n this.folderId = datas.folderId;\n let filesArray = await this.refreshgetStageFilesData(datas.id, datas.folderId);\n const filesModal = { //查看更多弹出层\n ...this.filesModal,\n visible: true,\n data: filesArray,\n datas: datas\n };\n this.getStageCommentsData(datas.id);\n filesModal.data.map((item, index) =>{\n filesModal.data[index].createDate = TimeToDate(item.createDate);\n })\n this.filesModal = filesModal;\n },\n\n /**\n * 关闭文件弹出层\n */\n hideFilesModal (){\n const filesModal = { //查看更多弹出层\n ...this.filesModal,\n visible: false,\n data: [],\n datas: \"\"\n };\n this.filesModal = filesModal;\n },\n\n /**\n * 上传文件成功之后刷新列表\n */\n async onRefreshComponent(params){\n this.refreshStageFilesList(params.id, params.diskId);\n let filesArray = await this.refreshgetStageFilesData(params.diskId, params.folderId);\n const filesModal = { //查看更多弹出层\n ...this.filesModal,\n data: filesArray\n };\n this.filesModal = filesModal;\n },\n /**\n * 文件上传成功点击取消,这里是直接删除文件\n */\n deleteUploadFile(fileList,params){\n fileList.fileObject[0].cancelUpload = true;\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 async getStageCommentsData(stageId){\n let result = (await API.getStageComments(stageId)).data;\n if(result.errcode == 0) {\n result.data.commentList.map((item, index) =>{\n result.data.commentList[index].createDate = TimeToDate(item.createDate);\n })\n this.commentList = result.data.commentList;\n }\n\n let isTeamMember = false;\n const user = this.user;\n if(user.level == this.level.ROLE_LEVEL_SUPERADMIN) {\n isTeamMember = true;\n }else {\n this.teamMembers.map((e)=> {\n if(e.userId == user.id) {\n isTeamMember = true;\n }\n });\n }\n this.isTeamMember = isTeamMember;\n },\n\n /**\n * 删除评论\n */\n async deleteComment(id){\n const stageId = this.filesModal.datas.id;\n const params = {\n stageId : stageId,\n commentId : id\n }\n const result = (await API.deleteComment(params)).data;\n if(result.data) {\n this.getStageCommentsData(stageId);\n }\n },\n\n /**\n * 创建评论\n */\n async createCommentSuccess(){\n const stageId = this.filesModal.datas.id;\n const params = {\n ...this.createComment\n };\n\n const result = (await API.createComment(stageId, params)).data;\n if(result.data) {\n this.getStageCommentsData(stageId);\n const createComment = {\n ...this.createComment,\n content: \"\"\n }\n this.createComment = createComment;\n this.$message({\n type: 'success',\n message: this.$t('msg.comment_cr_ss')\n });\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.contextPath+'/kms/office/vender/ntko/editDocument2.html?id='+id+\"&url=\"+url+\"&folderId=\"+folderId+\"&userId=\"+userId+\"&userName=\"+userName;\n }else{\n previewUrl = kmsConfig.contextPath+'/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.$message(error.response.data.errmsg);\n }\n }\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 async handleSingleFileDownload(fileId,folder){\n let apiParams = {\n \"fileId\" : fileId,\n \"folder\" : folder\n };\n apiParams.fileId = fileId;\n API.handleSingleFileDownload(apiParams, {\n onSucess: resp => {\n if(resp.data.errcode == 0){\n let url = this.contextPath + \"/kms/download/\"+apiParams.fileId;\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 async handleClose(tag,row){\n const resultData = (await API.deleteCategory(row.id,tag.categoryName)).data;\n if(resultData.errcode == 0){\n this.handleCategoryOk();\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 async handleCategoryOk(){\n let diskId = this.$route.query.diskId;\n let filesArray = await this.refreshgetStageFilesData(diskId,this.folderId);\n const filesModal = { //查看更多弹出层\n ...this.filesModal,\n data: filesArray\n };\n this.filesModal = filesModal;\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 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 */\n showDeleteMessageBox(row, id, diskId, folderId){\n let params = {\n fileId: row.id,\n id: id,\n diskId: diskId,\n folderId: folderId\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(() => {\n API.stagesdeleteFile(params, {\n onSucess: resp => {\n if(resp.data.errcode == 0){\n this.onRefreshComponent(params);\n this.$message({\n type: 'success',\n message: this.$t('msg.es')\n });\n }\n }\n })\n }).catch(() => {\n this.$message({\n type: 'info',\n message: this.$t('msg.cancel_del')\n });\n });\n },\n\n /**\n * 预览文件\n */\n async clickFileForPreview(row){\n const preview_params={\n id: row.id, //文件id\n diskId: row.diskId\n }\n let preview_url = (getPreviewUrl(preview_params)).substring(1);\n const newWin = window.open(); \n API.getFilePreviewAble(row.id, {\n onSucess: resp => {\n if(resp.data.errcode == 0){\n let url;\n if(row.type == \"mp4\" || row.type == \"mp3\"){\n url = kmsConfig.kmsFilePath + \"/uploads/kms/\" + row.url\n }else{\n url = kmsConfig.staticContextPath + \"/kms/asset\" + preview_url;\n }\n newWin.location.href = url; \n }\n },\n onError: error =>{\n if(error.response.data.errcode == 403 ) {\n newWin.close();\n this.showApplyAuthorityModal(row.id, 'preview');\n }else{\n this.$toast(error.response.data.errmsg);\n }\n }\n })\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 }\n this.applyModalParams = applyModalParams;\n },\n\n /**\n * 选择申情的权限\n */\n onChangeAuthority(checkedValues) {\n let download = false;\n let preview = false;\n let edit = false;\n checkedValues.map((item) => {\n if(item == \"download\") {\n download = true;\n }else if(item == \"preview\") {\n preview = true;\n }else if(item == \"edit\") {\n edit = true;\n }\n });\n let formParams = {\n ...this.formParams,\n \"download\": download,\n \"preview\": preview,\n \"edit\": edit\n }\n this.formParams = formParams;\n },\n\n /**\n * 提交申请\n */\n async handleSubmit(){\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 }\n this.applyModalParams = applyModalParams;\n //申请成功后,将申请理由清空\n this.formParams.reason = \"\";\n }\n }\n },\n\n /**\n * 格式化时间格式\n */\n dateFormatTime(value){\n if(value){\n var formatterTime = moment(new Date(value)).format(\"YYYY-MM-DD\");\n return formatterTime;\n }else{\n return \"\";\n }\n },\n\n }\n}\n",null]}