<template> <div class="flexOne"> <div class="myDocumentsNav"> <el-upload class='myDocumentUploadBtn' :http-request="uploadFileBtn" :on-exceed="handleExceed" ref="upload" :multiple="true" :limit="5" :show-file-list="false" :headers='headers' action=""> <el-button size="small" type="danger" icon="el-icon-upload2">{{$t('objFill.shangchuan')}}</el-button> </el-upload> <el-button-group> <!-- <el-button v-if='notFileList.length==1&&fileList.length<1' type="danger" icon="el-icon-download" @click='dowloadSingle()'>{{$t('objFill.xz')}}</el-button> --> <el-button v-if='fileList.length>0||notFileList.length>0' type="danger" icon="el-icon-download" @click='yzmVisible=true,createCode()'>{{$t('objFill.v101.administrative.yasuoxz')}}</el-button> <el-button type="danger" @click='openAddFilesDialog'>{{$t('objFill.v101.administrative.xinjianwjj')}}</el-button> <el-button v-if='fileList.length>0||notFileList.length>0' type="danger" icon="el-icon-delete" @click='deleteFiles'>{{$t('system.table_delete')}}</el-button> <el-button v-if='fileList.length>0||notFileList.length>0' type="danger" icon="el-icon-share" @click='openShareDialog'>{{$t('objFill.v101.administrative.fenxiang')}}</el-button> <el-button v-if='fileList.length>0||notFileList.length>0' type="danger" @click='moveFiles'>{{$t('objFill.v101.administrative.yidongdao')}}</el-button> </el-button-group> <div class="fr"> <el-input class='w200' :placeholder="$t('pub.pleaseImport')" prefix-icon="el-icon-search" v-model="srearchKey"> </el-input> <input type="button" class="hollowFixedBtn" @click='doSearch()' :value="$t('pub.searchBtn')" /> </div> </div> <div class="myDocumentsLink" v-if='this.NavigationList.length>0'> <span @click="getNextLevel(0)">{{$t('advmanager.v_all')}}</span><span v-for="item in NavigationList" @click="getNextLevel(item.Id)">{{item.FolderName}}</span> </div> <table class="singeRowTable myDocumentsTable" border="0" cellspacing="0" cellpadding="0"> <tr> <th width="400"><input v-model="isCkedAll" type="checkbox" @click='checkedAll()' />{{$t('objFill.v101.chat.wenjianming')}}</th> <th width="200"> </th> <th width="200">{{$t('objFill.v101.chat.daxiao')}}</th> <th width="200">{{$t('objFill.v101.chat.xiugairiqi')}}</th> </tr> <tr v-for="(item,index) in list" @mouseover="enterTr(index)" @mouseleave="leaveTr"> <td v-if="item.DataType==0"> <input type="checkbox" :value="item.Id" v-model="fileList" @change="ckeckedOne"> <div @click="getNextLevel(item.Id)" style="cursor: pointer; display: inline-block;"> <div :class="['fileIcon', item.icons]"></div> {{item.FolderName}} </div> </td> <td v-if="item.DataType==2"> <input type="checkbox" :value="item.Id" v-model="notFileList" @change="ckeckedOne"> <div @click="analyzeItem(item)" style="cursor: pointer;display: inline-block;"> <div :class="['fileIcon', item.icons]"></div> {{item.FolderName}} </div> </td> <td> <el-row v-if='curIndex==index'> <el-button type="primary" icon="el-icon-download" circle @click='downloadOne(item)'></el-button> <el-button v-if="item.DataType==0" type="primary" icon="el-icon-edit" circle @click='updateFiles(item)'> </el-button> <el-button v-if="item.DataType==2" type="primary" icon="el-icon-edit" circle @click='updateOneFile(item)'> </el-button> <el-button type="primary" icon="el-icon-share" circle @click='openShareOneDialog(item)'></el-button> <el-button type="danger" icon="el-icon-delete" @click='deleteOne(item)' circle></el-button> </el-row> </td> <td>{{item.FileSize| FileSizeFormat(item.FileSize)}}</td> <td>{{item.UpdateTime}}</td> </tr> </table> <el-dialog custom-class='w400' :title="dialogTitle" :visible.sync="outerVisible" center :before-close="closeChangeMachie"> <el-form :model="addFileMsg" :rules="rules" ref="addFileMsg" label-width="80px"> <el-form-item :label="$t('objFill.v101.administrative.wenjianmc')" prop="FolderName"> <el-input type="text" maxLength='50' v-model='addFileMsg.FolderName'></el-input> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> <input type="button" class="hollowFixedBtn" :value="$t('pub.cancelBtn')" @click="outerVisible = false,addFileMsg.FolderName=''" /> <input type="button" class="normalBtn" :value="$t('pub.sureBtn')" @click="submitForm('addFileMsg')" /> </div> </el-dialog> <el-dialog custom-class='w400' :title="dialogTitle1" :visible.sync="outerVisible1" center> <el-form :model="updateFileMsg" :rules="rules1" ref="updateFileMsg" label-width="80px"> <el-form-item :label="$t('system.query_airName')" prop="FileName"> <el-input type="text" maxLength='50' v-model='updateFileMsg.FileName'></el-input> </el-form-item> </el-form> <div slot="footer" class="dialog-footer"> <input type="button" class="hollowFixedBtn" :value="$t('pub.cancelBtn')" @click="outerVisible1 = false" /> <input type="button" class="normalBtn" :value="$t('pub.sureBtn')" @click="saveUpdateFile" /> </div> </el-dialog> <el-dialog custom-class='w400' :title="dialogTitle2" :visible.sync="outerVisible2" @close="moveCancel" center> <el-tree :data="fileTreeList" :props="defaultProps" :check-strictly='true' @check-change="handleNodeChange" node-key="Id" show-checkbox accordion ref="tree"> </el-tree> <div slot="footer" class="dialog-footer"> <input type="button" class="hollowFixedBtn" :value="$t('pub.cancelBtn')" @click="moveCancel" /> <input type="button" class="normalBtn" :value="$t('pub.sureBtn')" @click="saveMoveFiles" /> </div> </el-dialog> <el-dialog custom-class='w800 shareDocumentDialog' :title="dialogTitle3" :visible.sync="outerVisible3" center> <div class="documentDialogNav"> <div @click="shareGroup"> <i class="iconfont icon-user11"></i>{{$t('objFill.v101.administrative.jituan')}} <div v-if='shareMsg.shareType==4' class="checkIcon"></div> </div> <div @click="shareDeparment"> <i class="iconfont icon-user11"></i>{{$t('admin.admin_Department')}} <div v-if='shareMsg.shareType==1' class="checkIcon"></div> </div> <div @click="shareRole"> <i class="iconfont icon-user11"></i>{{$t('admin.admin_Post')}} <div v-if='shareMsg.shareType==2' class="checkIcon"></div> </div> <div @click="shareMenber"> <i class="iconfont icon-user11"></i>{{$t('system.table_staffs')}} <div v-if='shareMsg.shareType==3' class="checkIcon"></div> </div> </div> <div v-if="shareMsg.shareType==4" class="myDocumentShareDiv"> <div style="height:400px;padding:20px;font-size:15px;"> {{$t('objFill.v101.administrative.fenxdzgjt')}} </div> </div> <div v-if='shareMsg.shareType==1' class="myDocumentShareDiv"> <div class="myDocumentShareTree"> <el-tree :data="departmentList" ref="treeDepartmentList" node-key="DepartmentId" :check-strictly='true' show-checkbox :render-after-expand="false" :props="defaultProps2" @check-change="DepartmentListNodeChange"> </el-tree> </div> <div class="myDocumentShareObject"> <ul> <li v-for="item in ckdDepartmentList">{{item.name}} <i @click="deleteDepartment(item.id)" class="el-icon-circle-close"></i> </li> </ul> </div> </div> <div v-if='shareMsg.shareType==2' class="myDocumentShareDiv"> <div class="myDocumentShareTree"> <el-tree :data="roleList" ref="treeRole" node-key="DepartmentId" :check-strictly='true' show-checkbox :render-after-expand="false" :props="defaultProps1" @check-change="roleListNodeChange"> </el-tree> </div> <div class="myDocumentShareObject"> <ul> <li v-for="item in ckdRoleList">{{item.name}} <i @click="deleteRole(item.id)" class="el-icon-circle-close"></i> </li> </ul> </div> </div> <div v-if='shareMsg.shareType==3' class="myDocumentShareDiv"> <div class="myDocumentShareTree"> <el-tree :data="menberList" ref="treeMenber" node-key="DepartmentId" :check-strictly='true' show-checkbox :render-after-expand="false" :props="defaultProps3" @check-change="MenberListNodeChange"> </el-tree> </div> <div class="myDocumentShareObject"> <ul> <li v-for="item in ckdMenberList">{{item.name}} <i @click="deleteMenber(item.id)" class="el-icon-circle-close"></i> </li> </ul> </div> </div> <div slot="footer" class="dialog-footer"> <input type="button" class="hollowFixedBtn" :value="$t('pub.cancelBtn')" @click="outerVisible3=false" /> <input type="button" class="normalBtn" :value="$t('pub.sureBtn')" @click="saveShareDocument" /> </div> </el-dialog> <el-dialog custom-class='w800' :title="dialogTitle4" :visible.sync="outerVisible4" center> <video :src="moviePath" controls="controls" style="width: 100%;"> your browser does not support the video tag </video> <div slot="footer" class="dialog-footer"> <input type="button" class="normalBtn" :value="$t('pub.closeSel')" @click="outerVisible4=false" /> </div> </el-dialog> <div v-if='audioIsShow' style="position: fixed; bottom: 100px; right: 20px; z-index: 999; border:1px solid #ccc; padding: 10px; background: #eee;"> <i class="el-icon-circle-close-outline" style="float: right; cursor: pointer;" @click="audioIsShow=false,audioPath=''"></i> <p style="font-size: 12px; margin: 0 0 10px 0;">{{audioName}}</p> <audio :src="audioPath" controls="controls"> Your browser does not support the audio tag. </audio> </div> <div v-if='picIsShow' class="viewBigPicLayer"> <i class="el-icon-circle-close-outline clolseViewBigPicLayer" @click="picIsShow=false,picObj=[]"></i> <el-carousel height="600px" :initial-index='initialIndex' :interval="5000" trigger="click"> <el-carousel-item v-for="(item,index) in picObj" :key="index"> <div class="inlineDiv ownScrollbarStyle"><img :src="item" /></div> </el-carousel-item> </el-carousel> </div> <el-dialog custom-class='w400' :title="$t('objFill.v101.administrative.yasuoxz')" :visible.sync="yzmVisible" center> <p> <span>{{$t('objFill.yanzhengma')}} : </span> <el-input class='w150' type="text" :placeholder="$t('objFill.qingshuruyzm')" v-model="picLyanzhengma"></el-input> <input type="button" @click="createCode" class="DocumentLoadVerification" v-model="checkCode" /> </p> <div slot="footer" class="dialog-footer"> <input type="button" class="hollowFixedBtn" :value="$t('pub.cancelBtn')" @click="yzmVisible=false" /> <input type="button" class="normalBtn" :value="$t('pub.sureBtn')" @click="downloadTotal()" /> </div> </el-dialog> <a target="_blank" style="display:none" id="blankLink"></a> </div> </template> <script> // let browserMD5File = require('browser-md5-file'); export default { data() { return { code: '', picLyanzhengma: '', checkCode: '', yzmVisible: false, initialIndex: 0, picObj: [], picIsShow: false, audioIsShow: false, outerVisible4: false, dialogTitle4: '', moviePath: '', audioPath: '', picPath: '', audioName: '', headers: { 'Content-Type': 'application/octet-stream' }, defaultProps: { children: 'ChildFolderList', label: 'FolderName', }, defaultProps1: { children: 'ChildList', label: 'DepartmentName', disabled: "Disabled" }, defaultProps2: { children: 'ChildList', label: 'DepartmentName', disabled: "Disabled" }, defaultProps3: { children: 'ChildList', label: 'DepartmentName', disabled: "Disabled" }, outerVisible: false, dialogTitle: '', outerVisible1: false, dialogTitle1: '', outerVisible2: false, dialogTitle2: '', outerVisible3: false, dialogTitle3: '', isCkedAll: false, //请求数据 fileList: [], //文件夹 notFileList: [], //文件 saveMsg: [], msg: { ParentId: '0', FolderName: '', EmployeeId: 0 }, addFileMsg: { FolderName: '', ParentId: '0', FolderId: '', }, updateFileMsg: { FileId: '0', FileName: '0' }, MoveMsg: { FolderId: '0' }, shareMsg: { shareType: '1', fileIds: [], targetIds: '', folderIds: [] }, //返回数据 curIndex: -1, list: [], fileTreeList: [], NavigationList: [], WjId: [], WjjId: [], arr: [], departmentList: [], ckdDepartmentList: [], ckdDepartmentListId: [], roleList: [], ckdRoleList: [], ckdRoleListId: [], menberList: [], ckdMenberList: [], ckdMenberListId: [], allLength: 0, rules: { //表单验证 FolderName: [{ required: true, message: this.$t('objFill.v101.administrative.qingshurwjjmc') , trigger: 'blur' }] }, rules1: { //表单验证 FileName: [{ required: true, message: this.$t('objFill.v101.administrative.qingsrwjmc') , trigger: 'blur' }] }, srearchKey: "" } }, filters: { FileSizeFormat(value) { if (value == null) { return '-' } if (value != null) { if (value / 1024 < 1) { //kb return value + 'KB' } if (value / 1024 > 1 && value / (1024 * 1024) < 1) { //mb return (value / 1024).toFixed(2) + 'M' } if (value / (1024 * 1024) > 1) { //G return (value / (1024 * 1024)).toFixed(2) + 'G' } } } }, watch: { }, methods: { // 图片验证码 createCode() { //先清空验证码的输入 this.code = ""; this.checkCode = ""; this.picLyanzhengma = ""; //验证码的长度 var codeLength = 4; //随机数 var random = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'); for (var i = 0; i < codeLength; i++) { //取得随机数的索引(0~35) var index = Math.floor(Math.random() * 36); //根据索引取得随机数加到code上 this.code += random[index]; } //把code值赋给验证码 this.checkCode = this.code; }, analyzeItem(obj) { let typeArr = [{ stringArr: 'GIF|JPG|JPEG|PNG|BMP', type: 1 }, { stringArr: 'MP3|OGG|AU|AIFF|VQF', type: 2 }, { stringArr: 'AVI|WMV|MPEG|MP4|MOV|MKV|FLV|F4V|M4V|RMVB|RM|3GP|DAT|TS|MTS|VOB', type: 3 }, { stringArr: 'DOCX|DOC|XLSX|XLS|PPT|PPTX', type: 4 }, { stringArr: 'PDF', type: 5 }, ] let fileTypeNumber; // 判断文件预览类型; 1 图片,2音频,3视频,4,office,, 5 PDF , 6 txt default其他 let fileType = obj.FilePath.substring(obj.FilePath.lastIndexOf('.') + 1, obj.FilePath.length).toUpperCase() typeArr.forEach(x => { if (x.stringArr.indexOf(fileType) != '-1') { fileTypeNumber = x.type } }) switch (fileTypeNumber) { case 1: this.list.forEach(item => { if (item.DataType == 2) { let fileType = item.FolderName.substring(item.FolderName.lastIndexOf('.') + 1, item.FolderName .length).toUpperCase() if ('GIF|JPG|JPEG|PNG|BMP'.indexOf(fileType) != -1) { this.picObj.push(item.FilePath) } } }) this.picObj.forEach((x, i) => { if (x == obj.FilePath) { this.initialIndex = i return false } }) this.picIsShow = true //this.picPath=obj.FilePath break; case 2: this.audioIsShow = true this.audioName = obj.FolderName this.audioPath = obj.FilePath break; case 3: this.outerVisible4 = true this.dialogTitle4 = obj.FolderName this.moviePath = obj.FilePath break; case 4: window.open("https://view.officeapps.live.com/op/view.aspx?src=" + obj.FilePath) break; case 5: this.previewPDF(obj.FilePath) break; default: this.$message.warning(this.$t('objFill.v101.administrative.gaiwjbzcylqxzxgrj')) break; } }, handleExceed(file, fileList) { this.$message.warning(this.$t('objFill.v101.administrative.yiczdwgwj')) return }, uploadFileBtn(file) { //上传 if (file.file.size > 1024 * 1024 * 100) { this.$message.warning(this.$t('adm.adm_filenotmoreM')) return } let that = this let newArr = []; newArr.push(file.file) let path = "/Upload/Temporary/" this.$message.info(this.$t('tips.shangchuanzhong')) this.UploadSelfFileT(path, newArr, x => { let fileSize = file.file.size < 1024 ? file.file.size : (file.file.size / 1024).toFixed(0); this.saveMsg = [] this.saveMsg.push({ Path: x.data.FilePath, FileName: file.file.name, MD5Sign: file.file.uid, FileSize: fileSize, FolderId: this.msg.ParentId }) that.apipost('user_cloud_SaveFile', this.saveMsg, res => { if (res.data.resultCode == 1) { this.$message.success(res.data.message); this.$refs.upload.clearFiles(); this.getList() } else { this.$message.error(res.data.message); this.$refs.upload.clearFiles(); } }, err => {}) }); }, dowloadSingle() { let objKey = []; this.list.forEach(item => { if (item.DataType == 2) { for (let i = 0; i < this.notFileList.length; i++) { if (this.notFileList[i] == item.Id) { let reg = /^http(s)?:\/\/(.*?)\// this.downloadFileRename(item.FilePath.replace(reg, ''), item.FolderName); } } } }) }, downloadOne(obj) { if (obj.DataType == 0) { this.yzmVisible = true this.createCode() this.fileList = [] this.notFileList = [] this.fileList.push(obj.Id) } if (obj.DataType == 2) { let reg = /^http(s)?:\/\/(.*?)\// let dom = document.querySelector("#blankLink") dom.href = obj.FilePath dom.click() return this.downloadFileRename(obj.FilePath.replace(reg, ''), obj.FolderName); } }, downloadTotal() { if (this.picLyanzhengma.toLocaleUpperCase() == this.checkCode) { // let pageData = document.getElementById('pdfNode').innerHTML let urlObj = this.domainManager() let _this = this this.$http({ headers: { 'Content-Type': 'application/json' }, method: 'post', url: urlObj.DomainUrl + '/api/file/GetPackageFile', data: { msg: { "FolderIdStr": this.fileList, "FileIdStr": this.notFileList } } }).then(res => { if (res.data.resultCode === 1) { setTimeout(() => { let sign = 'title' const a = document.createElement('a'); a.setAttribute('download', ''); a.setAttribute('href', res.data.data); a.click(); _this.deletePackageFile(res.data.data, urlObj.DomainUrl) }, 1000) } else { this.Error(this.$t('objFill.huoqusb')); } }).catch(err => { }) } }, deletePackageFile: function (path, urlObj) { this.$http({ headers: { 'Content-Type': 'application/json' }, method: 'post', url: urlObj + '/api/file/DelPackageFile', data: { msg: { "Path": path } } }).then(res => {}).catch(err => {}) }, // this.yzmVisible=false // this.$message.info(this.$t('objFill.v101.administrative.wenjianysqdd')) // this.apipost('user_cloud_GetPackageFile', { // FolderIdStr: this.fileList, // FileIdStr: this.notFileList // }, res => { // if(res.data.resultCode == 1) { // const link = document.createElement('a'); // let _loadUrl = this.domainManager().DomainUrl; // link.href = _loadUrl+res.data.data; // document.body.appendChild(link); // link.click(); // this.apipost('user_cloud_DelPackageFile',{Path:link.href},res=>{ // },err=>{}) // }else{ // this.$message.error(res.data.message) // } // }, err => {}) // }else{ // this.$message.error(this.$t('objFill.v101.administrative.yanzhnegmcw')) // } enterTr(index) { this.curIndex = index }, leaveTr() { this.curIndex = -1; }, checkedAll() { if (this.isCkedAll == true) { this.fileList = [] this.notFileList = [] } else { this.WjjId.forEach(item => { this.fileList.push(item) }) this.WjId.forEach(item => { this.notFileList.push(item) }) } }, ckeckedOne() { if (this.fileList.length + this.notFileList.length < this.allLength) { this.isCkedAll = false } else { this.isCkedAll = true } }, openAddFilesDialog() { this.dialogTitle = this.$t('objFill.v101.administrative.xinjianwjj') this.outerVisible = true }, addFiles() { this.apipost('user_cloud_AddFolder', this.addFileMsg, res => { if (res.data.resultCode == 1) { this.$message.success(res.data.message); this.getList() this.outerVisible = false this.addFileMsg.FolderName = '' } else { this.$message.error(res.data.message) } }, err => {}) }, deleteFiles() { this.$confirm(this.$t('objFill.v101.administrative.shancwjfxzwjjbs'), this.$t('tips.tips'), { confirmButtonText: this.$t('pub.sureBtn'), cancelButtonText: this.$t('pub.cancelBtn'), type: 'warning' }).then(() => { this.apipost('user_cloud_DelFolder', { FolderIdStr: this.fileList, FileIdStr: this.notFileList }, res => { if (res.data.resultCode == 1) { this.$message.success(res.data.message); this.getList() } else { this.$message.error(res.data.message) } }, err => {}) }).catch(() => { this.$message.info(this.$t('objFill.quxiaoshanc')); }); }, deleteOne(obj) { let fileList = [] let notFileList = [] let confirmMsg = '' if (obj.DataType == 0) { //文件夹 fileList.push(obj.Id) confirmMsg = this.$t('objFill.v101.administrative.shancwjjhfzjbs') } if (obj.DataType == 2) { //文件 notFileList.push(obj.Id) confirmMsg = this.$t('objFill.v101.administrative.shancwjfxzwjjbs') } this.$confirm(confirmMsg, this.$t('tips.tips'), { confirmButtonText: this.$t('pub.sureBtn'), cancelButtonText: this.$t('pub.cancelBtn'), type: 'warning' }).then(() => { this.apipost('user_cloud_DelFolder', { FolderIdStr: fileList, FileIdStr: notFileList }, res => { if (res.data.resultCode == 1) { this.$message.success(res.data.message); this.getList() } else { this.$message.error(res.data.message) } }, err => {}) }).catch(() => { this.$message.info(this.$t('objFill.quxiaoshanc')); }); }, moveFiles() { this.getTreeList() this.dialogTitle2 = this.$t('objFill.v101.administrative.yidongwenj') this.outerVisible2 = true }, handleNodeChange(data, checked) { if (checked) { this.arr.push(data.Id) this.$refs.tree.setCheckedKeys([data.Id]); this.MoveMsg.FolderId = data.Id; } else { if (this.arr.length == 1) { this.arr = [] this.MoveMsg.FolderId = '0' } else { this.arr = this.arr.slice(this.arr.length - 1) this.MoveMsg.FolderId = this.arr[this.arr.length - 1] } } }, saveMoveFiles() { this.MoveMsg.FolderIdStr = this.fileList this.MoveMsg.FileIdStr = this.notFileList this.$refs.tree.setCheckedKeys([]); this.apipost('user_cloud_BatchFolderMove', this.MoveMsg, res => { if (res.data.resultCode == 1) { this.$message.success(res.data.message); this.outerVisible2 = false; this.getList() } else { this.$message.error(res.data.message) } }, err => {}) }, openShareOneDialog(obj) { if (obj.DataType == 0) { this.fileList = [] this.notFileList = [] this.fileList.push(obj.Id) } if (obj.DataType == 2) { this.fileList = [] this.notFileList = [] this.notFileList.push(obj.Id) } this.outerVisible3 = true this.dialogTitle3 = this.$t('objFill.v101.administrative.fenxwjwjj') this.shareMsg.shareType = 1; this.getDepartment() this.getRole() this.getMenber() }, openShareDialog() { this.outerVisible3 = true this.dialogTitle3 = this.$t('objFill.v101.administrative.fenxwjwjj') this.shareMsg.shareType = 1; this.getDepartment() this.getRole() this.getMenber() }, //按照集团分享 shareGroup() { this.shareMsg.shareType = 4; }, shareDeparment() { this.shareMsg.shareType = 1 this.ckdRoleList = [] this.ckdRoleListId = [] this.ckdMenberList = [] this.ckdMenberListId = [] }, shareRole() { this.shareMsg.shareType = 2 this.ckdDepartmentList = [] this.ckdDepartmentListId = [] this.ckdMenberList = [] this.ckdMenberListId = [] }, shareMenber() { this.shareMsg.shareType = 3 this.ckdDepartmentList = [] this.ckdDepartmentListId = [] this.ckdRoleList = [] this.ckdRoleListId = [] }, getDepartment() { //部门 this.apipost('app_get_GetCompanyDepartmentListTree', {}, res => { this.departmentList = res.data.data }, err => {}) }, DepartmentListNodeChange(data, checked) { if (checked) { this.ckdDepartmentList.push({ name: data.DepartmentName, id: data.DepartmentId }) this.ckdDepartmentListId.push(data.DepartmentId) } if (!checked) { if (this.ckdDepartmentList.findIndex(item => item.id === data.DepartmentId) != -1) { this.ckdDepartmentList.splice(this.ckdDepartmentList.findIndex(item => item.id === data.DepartmentId), 1) } if (this.ckdDepartmentListId.findIndex(item => item === data.DepartmentId) != -1) { this.ckdDepartmentListId.splice(this.ckdDepartmentListId.findIndex(item => item === data.DepartmentId), 1) } } }, deleteDepartment(id) { this.ckdDepartmentList.splice(this.ckdDepartmentList.findIndex(item => item.id === id), 1) this.ckdDepartmentListId.splice(this.ckdDepartmentListId.findIndex(item => item === id), 1) //删除相同id this.$refs.treeDepartmentList.setCheckedKeys(this.ckdDepartmentListId); }, getRole() { //岗位 this.apipost('WorkFlow_get_GetCompanyDepartMentPost', {}, res => { this.roleList = res.data.data }, err => {}) }, roleListNodeChange(data, checked) { if (data.Type == 2 && checked) { this.ckdRoleList.push({ name: data.DepartmentName, id: data.DepartmentId }) this.ckdRoleListId.push(data.DepartmentId) } if (data.Type == 2 && !checked) { if (this.ckdRoleList.findIndex(item => item.id === data.DepartmentId) != -1) { this.ckdRoleList.splice(this.ckdRoleList.findIndex(item => item.id === data.DepartmentId), 1) } if (this.ckdRoleListId.findIndex(item => item === data.DepartmentId) != -1) { this.ckdRoleListId.splice(this.ckdRoleListId.findIndex(item => item === data.DepartmentId), 1) //删除相同id } } }, deleteRole(id) { this.ckdRoleList.splice(this.ckdRoleList.findIndex(item => item.id === id), 1) this.ckdRoleListId.splice(this.ckdRoleListId.findIndex(item => item === id), 1) //删除相同id this.$refs.treeRole.setCheckedKeys(this.ckdRoleListId); }, getMenber() { //员工 this.apipost('WorkFlow_get_GetCompanyDepartMentEmployee', {}, res => { this.menberList = res.data.data }, err => {}) }, MenberListNodeChange(data, checked) { if (data.Type == 2 && checked) { this.ckdMenberList.push({ name: data.DepartmentName, id: data.DepartmentId }) this.ckdMenberListId.push(data.DepartmentId) } if (data.Type == 2 && !checked) { if (this.ckdMenberList.findIndex(item => item.id === data.DepartmentId) != -1) { this.ckdMenberList.splice(this.ckdMenberList.findIndex(item => item.id === data.DepartmentId), 1) } if (this.ckdMenberListId.findIndex(item => item === data.DepartmentId) != -1) { this.ckdMenberListId.splice(this.ckdMenberListId.findIndex(item => item === data.DepartmentId), 1) //删除相同id } } }, deleteMenber(id) { this.ckdMenberList.splice(this.ckdMenberList.findIndex(item => item.id === id), 1) this.ckdMenberListId.splice(this.ckdMenberListId.findIndex(item => item === id), 1) //删除相同id this.$refs.treeMenber.setCheckedKeys(this.ckdMenberListId); }, saveShareDocument() { if (this.shareMsg.shareType == 1) { this.shareMsg.targetIds = this.ckdDepartmentListId.join(',') } else if (this.shareMsg.shareType == 2) { this.shareMsg.targetIds = this.ckdRoleListId.join(',') } else { this.shareMsg.targetIds = this.ckdMenberListId.join(',') } if (this.shareMsg.shareType == 4) { let userInfo = this.getLocalStorage(); this.shareMsg.targetIds = userInfo.RB_Group_id; } this.shareMsg.fileIds = this.notFileList this.shareMsg.folderIds = this.fileList this.apipost('user_cloud_file_share', this.shareMsg, res => { if (res.data.resultCode == 1) { this.outerVisible3 = false this.$message.success(res.data.message) } else { this.$message.error(res.data.message) } }, err => {}) }, updateFiles(obj) { this.outerVisible = true; this.dialogTitle = this.$t('objFill.v101.administrative.xiugaiwjj') this.addFileMsg.FolderName = obj.FolderName; this.addFileMsg.FolderId = obj.Id; }, updateOneFile(obj) { this.outerVisible1 = true; this.dialogTitle1 = this.$t('objFill.v101.administrative.xiugaiwj') let index = obj.FolderName.lastIndexOf('.') this.updateFileMsg.FileName = obj.FolderName.substring(0, index) this.updateFileMsg.FileId = obj.Id }, saveUpdateFile() { this.apipost('user_cloud_UpdateFile', this.updateFileMsg, res => { if (res.data.resultCode == 1) { this.$message.success(res.data.message); this.outerVisible = false; this.getList() } else { this.$message.error(res.data.message) } }, err => {}) }, getList() { this.msg.EmployeeId = this.getLocalStorage().EmployeeId; this.msg.FolderName = this.srearchKey; this.apipost('user_cloud_GetFolderList', this.msg, res => { if (res.data.resultCode == 1) { this.list = res.data.data.data this.NavigationList = res.data.data.Navigation this.isCkedAll = false this.fileList = [] this.notFileList = [] this.allLength = res.data.data.data.length this.WjjId = [] this.WjId = [] res.data.data.data.forEach(item => { if (item.DataType == 0) { this.WjjId.push(item.Id) item.icons = this.loadFileICON('') } if (item.DataType == 2) { this.WjId.push(item.Id) let fileType = item.FolderName.substring(item.FolderName.lastIndexOf('.') + 1, item.FolderName .length).toLowerCase() item.icons = this.loadFileICON(fileType) } }) } }, err => {}) }, getNextLevel(id) { this.addFileMsg.ParentId = id this.msg.ParentId = id this.srearchKey = '' this.getList() }, getTreeList() { this.apipost('user_cloud_GetFolderTreeList', {}, res => { if (res.data.resultCode == 1) { this.fileTreeList = res.data.data } else {} }, err => {}) }, submitForm(addMsg) { //提交创建、修改表单 this.$refs[addMsg].validate((valid) => { if (valid) { this.addFiles() } else { return false; } }); }, closeChangeMachie(done) { //弹出框关闭初始化弹框内表单 done(); this.addFileMsg.FolderName = '' }, doSearch() { this.getList(); }, moveCancel() { this.$refs.tree.setCheckedKeys([]); this.outerVisible2 = false; } }, mounted() { let userInfo = this.getLocalStorage(); this.getList() }, created() { this.createCode() } } </script> <style> .myDocumentShareDiv { max-height: 400px; overflow: auto; } .myDocumentShareDiv::-webkit-scrollbar, .myDocumentShareTree::-webkit-scrollbar, .myDocumentShareObject::-webkit-scrollbar { /*滚动条整体样式*/ width: 4px; /*高宽分别对应横竖滚动条的尺寸*/ height: 1px; } .myDocumentShareDiv::-webkit-scrollbar-thumb, .myDocumentShareTree::-webkit-scrollbar-thumb, .myDocumentShareObject::-webkit-scrollbar-thumb { /*滚动条里面小方块*/ border-radius: 4px; -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2); background: #c9c9c9; } .myDocumentShareDiv::-webkit-scrollbar-track, .myDocumentShareTree::-webkit-scrollbar-track, .myDocumentShareObject::-webkit-scrollbar-track { -webkit-box-shadow: inset 0 0 2px rgba(0, 0, 0, 0.2); border-radius: 4px; background: #EDEDED; } .myDocumentShareTree { float: left; padding: 10px; width: 400px; max-height: 400px; overflow: auto; border-right: 1px solid #f9f9f9; } .myDocumentShareObject { padding: 10px; width: 380px; max-height: 400px; overflow: auto; float: left; } .myDocumentShareObject li { height: 24px; line-height: 24px; width: 100%; } .myDocumentShareObject li:hover { background: #f9f9f9; } .myDocumentShareObject li i { float: right; cursor: pointer; margin: 5px 0; } .myDocumentsNav { margin: 25px 0; } .myDocumentsTable input[type='checkbox'] { vertical-align: sub; } .myDocumentsTable td, .myDocumentsTable th { text-align: left !important; padding-left: 15px; } .myDocumentsLink { margin: 25px 0; } .myDocumentsLink>span { font-size: 12px; cursor: pointer; color: #E95252; } .myDocumentsLink>span:not(:last-of-type):hover { text-decoration: underline; } .myDocumentsLink>span:not(:last-of-type):after { content: '>'; margin: 0 3px; color: #E95252; pointer-events: none; } .myDocumentsLink>span:last-child { color: #666; cursor: default; } .myDocumentUploadBtn { float: left; margin-right: 10px; } .shareDocumentDialog .el-dialog__body { padding: 0 !important; } .documentDialogNav { background: #E95252; height: 45px; } .documentDialogNav>div { display: inline-block; color: #fff; width: 90px; height: 26px; margin-left: 20px; position: relative; border-radius: 13px; background: rgba(0, 0, 0, .2); text-align: center; cursor: pointer; } .documentDialogNav>div .checkIcon { width: 0; height: 0; border-width: 0 5px 5px; position: absolute; left: 40px; top: 40px; border-style: solid; border-color: transparent transparent #fff; /*透明 透明 灰*/ } .DocumentLoadVerification { width: 120px; height: 30px; border-radius: 4px; letter-spacing: 5px; border: none; background: #f56c6c; color: #eee; cursor: pointer; } </style>