{"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/shared/FolderUploader.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/shared/FolderUploader.vue","mtime":1742796810168},{"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\";\nexport default {\n name: 'FileUploader',\n props: [\n 'params'\n ],\n data(){\n return{\n getIndex: 0,\n categoryOkParams: [],\n visible: false, //外层对话框\n innerVisible: false, //内层对话框\n fileList: [],\n isUpload : true,\n closable : false,\n showProcess: false, //显示进度条\n fileId: [],\n categoryData: [], //标签数据\n form: {\n disks: '', //部门\n disksFolder: '', //文件夹\n },\n disksData: [], //部门数据\n disksFoldersList: [], //上传文件夹数据\n isHomeUpload: false, //是否是首页的上传文件\n percentageth : 0, //进度条初始值\n isShowProgress: false, //进度条是否显示\n isShowText: true, //进度条信息\n disabled: true, //上传只读\n dynamicTags: [], //动态贴标签\n inputVisible: false, //获取是否动态贴标签\n isShowTop: false, //是否调整外边距,上传中显示进度条要向下调整\n allfileArray: [], \n folderUploadEnd:'', //作为上传结束的标志 \n }\n },\n\n mounted(){\n this.getCategory()\n\n },\n watch:{\n folderUploadEnd:{\n handler(){\n if(this.folderUploadEnd){\n this.visible=false \n this.fileId=[];\n this.fileList=[];\n \n this.allfileArray=[];\n this.$forceUpdate();\n this.$emit('onRefreshComponent', this.params);\n }\n }\n\n }\n },\n\n methods:{\n fileUploadCheck(){\n // .....根据项目需求做校验,满足条件阻止浏览器默认行为\n if(e&&e.preventDefault) {\n e.preventDefault();\n }\n\n },\n /**\n * 文件状态改变时的钩子,添加文件、上传成功和上传失败时都会被调用\n */\n handleFileChange(file, fileList){\n if(file.status == \"ready\"){\n this.fileList = fileList;\n //首页没有自动上传\n if(this.params.folderId){\n \n this.isShowTop = true;\n const interval = setInterval(() => {\n if(this.percentageth >= 99){\n clearInterval(interval);\n return;\n }\n this.percentageth += 1\n },20)\n \n }\n }else if(file.status == \"success\"){\n fileList.map((file, index)=>{\n file[\"isInputVisible\" +index] = false;\n file[\"inputValue\" + index] = '';\n file[\"categoryOkParams\" + index] = [];\n file[\"dynamicTags\" + index] = (file.response && file.response.data && file.response.data[index]) ? file.response.data[index].categorys : [];\n })\n this.fileList = fileList;\n let fileId = [];\n //上传成功只读为false\n this.disabled = false;\n this.percentageth = 100;\n setTimeout(()=>{\n this.isShowProgress = false;\n this.isShowTop = false;\n },1000)\n fileList.map((e)=>{\n if(e.status == \"success\" && e.response.data != undefined){\n fileId.push(e.response.data);\n }\n })\n this.fileId = fileId;\n\n }else if(file.status == \"fail\"){\n this.$message({\n type: 'info',\n message: this.$t('msg.upload_err')\n });\n }\n //当没有folderId时,手动上传\n if(!this.params.folderId && file.status != \"success\"){\n this.visible = true;\n this.isHomeUpload = true;\n let params = {\n ...this.params,\n keyWord: this.params.keyWord,\n linesPerPage: 999,\n operationType: this.params.operationType,\n pageNo: this.params.pageNo,\n userid: this.params.userid,\n }\n API.getdisksData(params,{\n onSucess: resp => {\n if(resp.data.errcode == 0){\n this.disksData = resp.data.data.datas;\n }\n } \n })\n }\n \n },\n\n folderUpload(e){\n },\n /**\n * 上传文件之前的钩子,参数为上传的文件\n */\n handleBeforeUpload(){\n if(this.params.folderId){\n let uploader = true\n this.visible = true\n return uploader\n }\n },\n\n /**\n * 获取标签数据\n */\n async getCategory(isAutoCategory){\n\n const categorySettingsData = (await API.getCategory()).data;\n this.categoryData = categorySettingsData.data;\n\n this.$nextTick(()=>{\n // this.$refs.upload\n document.getElementsByClassName(\n \"el-upload__input\"\n )[1].webkitdirectory=true;\n document.getElementsByClassName(\n \"el-upload__input\"\n )[1].id=\"inputfile\";\n document.getElementsByClassName(\n \"el-upload__input\"\n )[1].onclick=\"fileUploadCheck()\";\n \n })\n },\n /**\n * 删除动态标签\n */\n handleTagClose(tag,index){\n this.$confirm(this.$t('msg.sure_delete_tag'), this.$t('msg.tip'), {\n confirmButtonText: this.$t('msg.delete'),\n cancelButtonText: this.$t('msg.cancel'),\n type: 'warning'\n }).then(() => {\n let that = this;\n API.getLabelTreeDelete([tag.categoryId],{\n onSucess: resp => {\n if (resp.data.errcode == 0) {\n let fileListIndex;\n that.fileList[index]['dynamicTags'+index].map((fileType,i)=>{\n if(fileType.categoryId == tag.categoryId){\n fileListIndex = i;\n }\n })\n that.fileList[index]['dynamicTags'+index].splice(fileListIndex, 1);\n that.$forceUpdate();\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 * 防止自动贴标签input框不能连续输入\n */\n hanleInputChange (e) {\n this.$forceUpdate()\n },\n /**\n * 创建标签\n */\n showInput(val) {\n // this.inputVisible = true;\n this.fileList[val][\"isInputVisible\"+val] = true;\n this.$forceUpdate();\n this.$nextTick(_ => {\n if(this.$refs.saveTagInput[val]){\n this.$refs.saveTagInput[val].$refs.input.focus();\n }\n });\n },\n /**\n * 动态添加标签\n */\n handleInputConfirm(val){\n let inputValue = this.fileList[val][\"inputValue\"+val];\n if (inputValue) {\n let dataJson = {};\n dataJson.name = inputValue.replace(/^\\s*|\\s*$/g,'').split(/[(\\r\\n)\\r\\n]+/);\n dataJson.parentId = '';\n API.getLabelTreeAdd(dataJson,{\n onSucess: resp => {\n if (resp.data.errcode == 0) {\n let data = resp.data.data;\n let fileArr = [];\n data.map((data)=>{\n let json = {};\n json.categoryName = data.name;\n json.categoryId = data.id\n fileArr.push(json);\n fileArr = this.fileList[val][\"dynamicTags\"+val].concat(fileArr);\n })\n this.fileList[val][\"dynamicTags\"+val] = fileArr;\n this.fileList[val][\"isInputVisible\"+val] = false;\n this.fileList[val][\"inputValue\"+val] = '';\n this.$forceUpdate();\n this.getCategory();\n }\n },\n onError: error =>{\n this.$message({\n type: 'warning',\n message: error.response.data.errmsg\n });\n this.fileList[val][\"isInputVisible\"+val]= false;\n this.fileList[val][\"inputValue\"+val] = '';\n this.$forceUpdate();\n } \n });\n }else{\n this.fileList[val][\"isInputVisible\"+val]= false;\n this.$message({\n message: this.$t('msg.names_cannot_empty'),\n type: 'warning'\n });\n this.$forceUpdate();\n return false;\n }\n \n },\n /**\n * 选择标签\n */\n hanleClickCheked(index){\n this.categoryOkParams = []; \n this.getCategory();\n this.getIndex = index;\n this.innerVisible = true;\n let arr = [];\n let categoryList = this.categoryData;\n let addCatefory = this.fileList[index]['dynamicTags'+index];\n for(let i=0;i0){\n // const categoryData = this.categoryData;\n // let defaultValue;\n // let categorySettingsArr = [];\n // let that = this;\n // //单个贴标签\n // if(this.fileList.length == 1){\n // //标签分类属性\n // defaultValue = this.fileList[0].categoryOkParams0;\n // //贴标签\n // let dynamicTagsList = this.fileList[0].dynamicTags0;\n // let list = [];\n // if(dynamicTagsList && dynamicTagsList.length>0){\n // dynamicTagsList.map((tagsList)=>{\n // list.push(tagsList.categoryName);\n // })\n // }\n // defaultValue = list.concat(defaultValue);\n // let doc = this.documentItem(fileId,categoryData,defaultValue,categorySettingsArr);\n // await API.onePasteConfirm(doc);\n // }else{\n // let arr = [];\n // this.fileList.map((fileList,a)=>{\n // defaultValue = fileList['categoryOkParams'+a];\n // //判断是否自己添加标签\n // let autoCategory = fileList[\"dynamicTags\"+a];\n // if(autoCategory.length>0){\n // let autoArr = [];\n // autoCategory.map((autoData)=>{\n // autoArr.push(autoData.categoryName);\n // })\n // defaultValue = autoArr.concat(defaultValue);\n // }\n // let categorySettingsArr = [];\n // let doc = this.documentItem(fileId,categoryData,defaultValue,categorySettingsArr,a);\n // arr.push(doc)\n // })\n // await API.pasteConfirm(arr);\n // }\n // this.$emit('onRefreshComponent', this.params);\n // this.categoryOkParams = [];\n // this.visible = false;\n // }else if(this.params.folderId){\n // this.$message({\n // message: this.$t('msg.file_being_uploaded'),\n // type: 'warning'\n // });\n // }else{\n // if(this.form.disks == \"\" || this.form.disksFolder == \"\"){\n // this.$message.error(this.$t('msg.location_sl_d_f'));\n // }else{\n // this.$refs.upload.submit();\n // this.form = {\n // disks: '', //部门\n // disksFolder: '', //文件夹\n // }\n // this.$message({\n // message: this.$t('msg.upload_ss'),\n // type: 'success'\n // });\n // this.$emit('onRefreshHome', true);\n // this.categoryOkParams = [];\n // this.visible = false;\n // }\n // }\n this.isShowProgress = true;\n let fileList=this.fileList \n let filesPath=[];\n let form = new FormData();\n for(let i=0;i { \n let flieIdsign=true;\n this.isShowText = false;\n this.disabled = false;\n let fileList = this.fileList;\n let fileId = [];\n fileList.map((file, index)=>{ \n file[\"isInputVisible\" +index] = false;\n file[\"inputValue\" + index] = '';\n file[\"categoryOkParams\" + index] = [];\n file[\"dynamicTags\" + index] = (resp.data.data && resp.data.data[index]) ? resp.data.data[index].categorys : [];\n // fileId.push(resp.data.data);\n // file['fileId'] = resp.data.data[0].fileId\n if(!file['fileId'] && file.name==ob.name){\n file['fileId'] = resp.data.data[0].fileId\n \n }\n })\n \n this.fileList = fileList;\n // this.fileId = fileId;\n this.fileId.unshift(resp.data.data);\n \n //由于上传文件的文件,在后台生成fileid,没有与上传文件的内容自动对应,下面的函数是为了让文件和fileid对应而设置的\n if(this.fileId.length===this.fileList.length){\n for(let i=0;this.fileId.length>i;i++){\n this.fileId[i][0].fileId=this.fileList[i].fileId\n } \n }\n for(let i=0; i{ \n for(let i=0; i{\n if(fileList.response){\n fileList.response.data.map((data)=>{\n let arr = {};\n data.fileId ? isFileId = true : isFileId = false;\n arr.fileObjectId = data.fileId;\n arr.isFolder = false;\n json.push(arr);\n })\n }else{\n let arr = {};\n fileList.fileId ? isFileId = true : isFileId = false;\n arr.fileObjectId = fileList.fileId;\n arr.isFolder = false;\n json.push(arr);\n }\n })\n if(isFileId){\n let uploadFile = {\n diskId: this.params.diskId,\n fileObject: json\n }\n this.$emit('deleteUploadFile',uploadFile,this.params)\n }\n }else{\n this.$emit('onRefreshComponent', this.params);\n this.$message(this.$t('msg.upload_ca'));\n }\n this.fileList = [];\n this.visible = false;\n },\n \n /**\n * 获取上传文件夹\n */\n disksChange(id){\n let params = {\n diskId: id,\n pageNo: 1,\n linesPerPage: 1000\n }\n this.disabled = true;\n let user = this.$store.state.user;\n this.disksData.map((depart)=>{\n if(depart.id == id){\n /**\n * 判断是否有权上传\n * 1.企业域管理员\n * 2.该部门下的管理员(企业知识管理员)\n */\n if(depart.ownerId == user.defaultDepartment || user.level == 100){\n this.disabled = false;\n }\n }\n })\n //将文件夹选择清空\n this.form.disksFolder = \"\";\n this.disksFoldersList = [];\n API.getDisksFoldersList(params, {\n onSucess: resp => {\n if(resp.data.errcode == 0){\n let datas = resp.data.data.datas;\n //当只有文件夹才显示\n let arr = [];\n datas.map((folder)=>{\n if(folder.folder){\n arr.push(folder);\n }\n })\n this.disksFoldersList = arr;\n }\n }\n })\n }\n }\n}\n",null]}