1.安监部体系文件
							parent
							
								
									a51c7e76ac
								
							
						
					
					
						commit
						29b7f71737
					
				|  | @ -0,0 +1,625 @@ | |||
| <template> | ||||
|   <div class="app-container"> | ||||
|     <el-container> | ||||
|       <el-aside width="300px" style="background-color:#fff"> | ||||
|         <el-tree v-loading="treeLoading" ref="tree" :data="treeData" :props="defaultProps" :filter-node-method="filterNode" class="filter-tree" accordion @node-click="handleNodeClick" /> | ||||
|       </el-aside> | ||||
|       <el-main> | ||||
|         <div class="filter-container"> | ||||
|           <el-button v-show="MFOLDER_ID != '0'" icon="el-icon-arrow-left" @click="getList(PARENT_ID)">返回</el-button> | ||||
|         </div> | ||||
|         <el-table v-loading="listLoading" ref="multipleTable" :data="varList" :row-key="getRowKey" :header-cell-style="{'font-weight': 'bold','color': '#000'}" tooltip-effect="dark" border fit highlight-current-row> | ||||
|           <el-table-column :reserve-selection="true" type="selection" width="55" align="center" /> | ||||
|           <el-table-column type="index" label="序号" width="50" align="center" /> | ||||
|           <el-table-column v-if="MFOLDER_ID =='0'" label="目录名" width="220"> | ||||
|             <template slot-scope="{row}"> | ||||
|               <div class="link-type" @click="getList(row.MFOLDER_ID)"> | ||||
|                 <svg-icon :icon-class="row.NAME" class-name="disabled" />{{ row.NAME }}<i class="el-icon-arrow-right" /> | ||||
|               </div> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column v-if="MFOLDER_ID !='0'" label="文件名"> | ||||
|             <template slot-scope="{row}"> | ||||
|               {{ row.NAME }} | ||||
|               <a v-show="row.extension_name == '.txt'" style="color: #1e9fff" @click="goViewTxt(row.FILEPATH)">[预览]</a> | ||||
|               <a v-show="row.extension_name == '.pdf'" style="color: #1e9fff" @click="goViewPdf(row.FILEPATH)">[预览]</a> | ||||
|               <a v-show="row.extension_name == '.mp4'" style="color: #1e9fff" @click="goViewVideo(row.FILEPATH)">[预览]</a> | ||||
|               <a v-show="row.extension_name == '.doc' || row.extension_name == '.xls' || row.extension_name == '.ppt' || row.extension_name == '.docx' || row.extension_name == '.xlsx' || row.extension_name == '.pptx'" style="color: #1e9fff" @click="goOffice(row.FILEPATH)">[下載]</a> | ||||
| 
 | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <!--          <el-table-column prop="FILESIZE" label="文件大小" />--> | ||||
|           <el-table-column v-if="MFOLDER_ID !='0'" label="文件大小"> | ||||
|             <template slot-scope="{row}"> | ||||
|               {{ row.FILESIZE > 1024 ? ((((row.FILESIZE)/1024)+'').substring(0,(((row.FILESIZE)/1024)+'').lastIndexOf('.')+3))+' MB' : row.FILESIZE + ' KB' }} | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|           <el-table-column prop="CTIME" label="上传时间" /> | ||||
|           <el-table-column prop="UNAME" label="上传者" /> | ||||
|           <!--          <el-table-column label="是否共享">--> | ||||
|           <!--            <template slot-scope="{row}">--> | ||||
|           <!--              <span v-if="row.SHARE=='no'">私有文件</span>--> | ||||
|           <!--              <span v-else>公共文件</span>--> | ||||
|           <!--            </template>--> | ||||
|           <!--          </el-table-column>--> | ||||
|           <el-table-column prop="REMARKS" label="备注说明" show-overflow-tooltip /> | ||||
|           <el-table-column label="操作" align="center" width="200"> | ||||
|             <template slot-scope="{row}"> | ||||
|               <el-button v-show="del && row.UNAME!='init'" type="danger" icon="el-icon-delete" plain @click="handleDelete(row.MFOLDER_ID,row.FILEPATH)">删除</el-button> | ||||
|               <el-button v-show="MFOLDER_ID !='0'" type="primary" icon="el-icon-edit" size="mini" style="color: white" @click="downloadFile(row.MFOLDER_ID)">下载</el-button> | ||||
|             </template> | ||||
|           </el-table-column> | ||||
|         </el-table> | ||||
|         <div class="page-btn-group"> | ||||
|           <div class="btn-only"> | ||||
|             <el-button v-show="MFOLDER_ID == '0' && add" type="primary" icon="el-icon-plus" @click="handleAdd">新建文件夹</el-button> | ||||
|             <el-button v-show="MFOLDER_ID != '0' && add" type="primary" icon="el-icon-plus" @click="handleUpload">上传文件</el-button> | ||||
|             <el-button v-show="MFOLDER_ID != '0' && add" type="primary" icon="el-icon-plus" @click="handleBatchUpload">批量上传</el-button> | ||||
|           </div> | ||||
|           <pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList(MFOLDER_ID)" /> | ||||
|         </div> | ||||
|       </el-main> | ||||
|     </el-container> | ||||
| 
 | ||||
|     <el-dialog :visible.sync="dialogForm" title="新建文件夹" width="600px"> | ||||
|       <el-form ref="form" :model="form" :rules="rules" label-width="110px" style="width: 500px;"> | ||||
|         <el-form-item label="文件夹名" prop="NAME"> | ||||
|           <el-input v-model="form.NAME" placeholder="这里输入文件夹名..." /> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="备注"> | ||||
|           <el-input :rows="3" v-model="form.REMARKS" type="textarea" placeholder="这里输入备注..." /> | ||||
|         </el-form-item> | ||||
|       </el-form> | ||||
|       <div slot="footer" class="dialog-footer"> | ||||
|         <el-button @click="dialogForm = false">取 消</el-button> | ||||
|         <el-button type="primary" @click="confirm">确 定</el-button> | ||||
|       </div> | ||||
|     </el-dialog> | ||||
| 
 | ||||
|     <el-dialog :visible.sync="dialogFormUpload" title="上传文件" width="600px"> | ||||
|       <el-form ref="uploadForm" :model="form" :rules="rules" label-width="110px" style="width: 500px;"> | ||||
|         <el-form-item label="文件名" prop="NAME"> | ||||
|           <el-input v-model="form.NAME" placeholder="这里输入名称..." /> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="附件"> | ||||
|           <span v-if="form.FFILE">{{ form.FFILE.name }}</span> | ||||
|           <el-upload | ||||
|             :before-upload="beforeFileUpload" | ||||
|             :on-change="handleChangePDF" | ||||
|             :auto-upload="false" | ||||
|             class="avatar-uploader" | ||||
|             action="#"> | ||||
|             <el-button type="primary">上传</el-button> | ||||
|           </el-upload> | ||||
|         </el-form-item> | ||||
|         <el-form-item label="备注"> | ||||
|           <el-input :rows="3" v-model="form.REMARKS" type="textarea" placeholder="这里输入备注..." /> | ||||
|         </el-form-item> | ||||
|       </el-form> | ||||
|       <div slot="footer" class="dialog-footer"> | ||||
|         <el-button @click="dialogFormUpload = false">取 消</el-button> | ||||
|         <el-button type="primary" @click="upload">确 定</el-button> | ||||
|       </div> | ||||
|     </el-dialog> | ||||
| 
 | ||||
|     <el-dialog :visible.sync="dialogBatchUpload" title="批量上传文件" width="600px"> | ||||
|       <el-form ref="batchUploadForm" :model="form" label-width="110px" style="width: 500px;"> | ||||
| 
 | ||||
|         <el-form-item label="附件"> | ||||
| 
 | ||||
|           <el-upload | ||||
|             ref="batchUpload" | ||||
|             :on-preview="handlePreview" | ||||
|             :on-remove="handleRemove" | ||||
|             :on-change="handleChangePDF2" | ||||
|             :before-upload = "beforeFileUpload2" | ||||
|             :auto-upload="false" | ||||
|             class="upload-demo" | ||||
|             action="#"> | ||||
|             <el-button slot="trigger" size="small" type="primary">选取文件</el-button> | ||||
|           </el-upload> | ||||
|           <!--          <el-upload :before-upload="beforeFileUpload" class="avatar-uploader" action="#"> | ||||
|             <el-button type="primary">上传</el-button> | ||||
|           </el-upload>--> | ||||
|         </el-form-item> | ||||
| 
 | ||||
|       </el-form> | ||||
|       <div slot="footer" class="dialog-footer"> | ||||
|         <el-button @click="dialogBatchUpload = false">取 消</el-button> | ||||
|         <el-button type="primary" @click="batchUpload">确 定</el-button> | ||||
|       </div> | ||||
|     </el-dialog> | ||||
|     <el-dialog :visible.sync="dialogViewTxt" title="文本文档" width="600px"> | ||||
|       <el-input :rows="30" v-model="txtPre" readonly type="textarea" placeholder=""/> | ||||
|     </el-dialog> | ||||
|     <el-dialog :visible.sync="dialogViewPdf" title="文档"> | ||||
|       <div> | ||||
| 
 | ||||
|         <pdf | ||||
|           :page="pageNum" | ||||
|           :src="pdfUrl" | ||||
|           @progress="loadedRatio = $event" | ||||
|           @num-pages="pageTotalNum=$event" | ||||
|         /> | ||||
|         <div style="text-align: center"> | ||||
|           <div style="color: #409EFF;">{{ pageNum }} / {{ pageTotalNum }}</div> | ||||
|           <el-button-group style="padding-top: 10px;"> | ||||
|             <el-button type="primary" icon="el-icon-arrow-left" size="mini" @click="prePage">上一页</el-button> | ||||
|             <el-button type="primary" size="mini" @click="nextPage">下一页<i class="el-icon-arrow-right el-icon--right"/></el-button> | ||||
|           </el-button-group> | ||||
|         </div> | ||||
|       </div> | ||||
|     </el-dialog> | ||||
| 
 | ||||
|     <el-dialog :visible.sync="dialogViewVideo" title="视频" width="600px"> | ||||
|       <div> | ||||
|         <video-player | ||||
|           ref="videoPlayer" | ||||
|           :playsinline="true" | ||||
|           :options="playerOptions" | ||||
|           class="video-player vjs-custom-skin"/> | ||||
|       </div> | ||||
|     </el-dialog> | ||||
| 
 | ||||
|   </div> | ||||
| 
 | ||||
| </template> | ||||
| <script> | ||||
| import Pagination from '@/components/Pagination' // 通过 el-pagination二次打包 | ||||
| import { requestFN } from '@/utils/request' | ||||
| import waves from '@/directive/waves' // waves directive  src/utils/src/utils/.js.js | ||||
| import { upload } from '@/utils/upload' | ||||
| import pdf from 'vue-pdf' | ||||
| import { Message } from 'element-ui' | ||||
| import { videoPlayer } from 'vue-video-player' | ||||
| import 'video.js/dist/video-js.css' | ||||
| export default { | ||||
|   components: { Pagination, pdf, videoPlayer }, | ||||
|   directives: { waves }, | ||||
|   data() { | ||||
|     return { | ||||
|       txtPre: '', | ||||
|       dialogFormUpload: false, | ||||
|       dialogForm: false, | ||||
|       listLoading: true, | ||||
|       treeLoading: false, | ||||
|       dialogBatchUpload: false, | ||||
|       add: false, | ||||
|       del: false, | ||||
|       edit: false, | ||||
|       listQuery: { | ||||
|         page: 1, | ||||
|         limit: 20 | ||||
|       }, | ||||
|       total: 0, | ||||
|       KEYWORDS: '', | ||||
|       varList: [], | ||||
|       pd: [], | ||||
|       form: { | ||||
|         NAME: '', // | ||||
|         FFILE: [], | ||||
|         REMARKS: '' | ||||
|       }, | ||||
|       multipleSelectionAll: [], // 所有选中的数据包含跨页数据 | ||||
|       multipleSelection: [], // 当前页选中的数据 | ||||
|       dialogFormEdit: false, | ||||
|       rules: { | ||||
|         NAME: [{ required: true, message: '名称不能为空', trigger: 'blur' }] | ||||
|       }, | ||||
|       corpInfoId: '', | ||||
|       SHARE: 'no', | ||||
|       treeData: [], | ||||
|       defaultProps: { | ||||
|         children: 'nodes', | ||||
|         label: 'name' | ||||
|       }, | ||||
|       MFOLDER_ID: '0',			// 主键ID | ||||
|       PARENT_ID: '0',				// 上级ID | ||||
|       serverurl: config.fileUrl, | ||||
|       dialogViewTxt: false, | ||||
|       dialogViewVideo: false, | ||||
|       dialogViewPdf: false, | ||||
|       dialogViewUrl: '', | ||||
|       // pdf预览 | ||||
|       pdfUrl: '', | ||||
|       pageNum: 1, | ||||
|       pageTotalNum: 1, // 总页数 | ||||
|       loadedRatio: 0, // 当前页面的加载进度,范围是0-1 ,等于1的时候代表当前页已经完全加载完成了 | ||||
|       playerOptions: { | ||||
|         playbackRates: [0.5, 1.0, 1.5, 2.0], // 可选的播放速度 | ||||
|         autoplay: false, // 如果为true,浏览器准备好时开始回放。 | ||||
|         muted: false, // 默认情况下将会消除任何音频。 | ||||
|         loop: false, // 是否视频一结束就重新开始。 | ||||
|         preload: 'auto', // 建议浏览器在<video>加载元素后是否应该开始下载视频数据。auto浏览器选择最佳行为,立即开始加载视频(如果浏览器支持) | ||||
|         language: 'zh-CN', | ||||
|         aspectRatio: '16:9', // 将播放器置于流畅模式,并在计算播放器的动态大小时使用该值。值应该代表一个比例 - 用冒号分隔的两个数字(例如"16:9"或"4:3") | ||||
|         fluid: true, // 当true时,Video.js player将拥有流体大小。换句话说,它将按比例缩放以适应其容器。 | ||||
|         sources: [{ | ||||
|           type: 'video/mp4', // 类型 | ||||
|           src: 'https://qask.qhdsafety.com/file/uploadFiles/file/13cf0f4ec77e4d98ae8cdd9c3386ae0c/20210625/691910cd81024986a392f6203c4045f8.mp4' // url地址 | ||||
|         }], | ||||
|         poster: '', // 封面地址 | ||||
|         notSupportedMessage: '此视频暂无法播放,请稍后再试', // 允许覆盖Video.js无法播放媒体源时显示的默认信息。 | ||||
|         controlBar: { | ||||
|           timeDivider: true, // 当前时间和持续时间的分隔符 | ||||
|           durationDisplay: true, // 显示持续时间 | ||||
|           remainingTimeDisplay: false, // 是否显示剩余时间功能 | ||||
|           fullscreenToggle: true // 是否显示全屏按钮 | ||||
|         } | ||||
|       }, | ||||
|       fileList: [] | ||||
|     } | ||||
|   }, | ||||
|   created() { | ||||
|     this.corpInfoId = this.$parent.indexVal | ||||
|     this.getList('0') | ||||
|     this.getDataTree() | ||||
|     this.urlToBlob() | ||||
|   }, | ||||
|   methods: { | ||||
| 
 | ||||
|     urlToBlob() {}, | ||||
|     // 上一页 | ||||
|     prePage() { | ||||
|       let page = this.pageNum | ||||
|       page = page > 1 ? page - 1 : this.pageTotalNum | ||||
|       this.pageNum = page | ||||
|     }, | ||||
| 
 | ||||
|     // 下一页 | ||||
|     nextPage() { | ||||
|       let page = this.pageNum | ||||
|       page = page < this.pageTotalNum ? page + 1 : 1 | ||||
|       this.pageNum = page | ||||
|     }, | ||||
|     getRowKey(row) { | ||||
|       return row.MFOLDER_ID | ||||
|     }, | ||||
|     // 搜索 | ||||
|     getQuery() { | ||||
|       this.$refs.multipleTable.clearSelection() | ||||
|       this.getList('0') | ||||
|     }, | ||||
|     // 获取列表 | ||||
|     getList(F_ID) { | ||||
|       this.listLoading = true | ||||
|       this.MFOLDER_ID = F_ID | ||||
|       requestFN( | ||||
|         '/ajFfolder/list?showCount=' + this.listQuery.limit + '¤tPage=' + this.listQuery.page, | ||||
|         { | ||||
|           KEYWORDS: this.KEYWORDS, | ||||
|           CORPINFO_ID: this.corpInfoId, | ||||
|           MFOLDER_ID: this.MFOLDER_ID, | ||||
|           SHARE: this.SHARE | ||||
|         } | ||||
|       ).then((data) => { | ||||
|         this.listLoading = false | ||||
|         this.varList = data.varList | ||||
|         this.PARENT_ID = data.PARENT_ID | ||||
|         this.total = data.page.totalResult | ||||
|         this.hasButton() | ||||
|       }).catch((e) => { | ||||
|         this.listLoading = false | ||||
|       }) | ||||
|     }, | ||||
|     // 添加 | ||||
|     handleAdd() { | ||||
|       this.resetForm() | ||||
|       this.dialogForm = true | ||||
|     }, | ||||
|     submitUpload() { | ||||
|       this.$refs.upload.submit() | ||||
|     }, | ||||
|     handleRemove(file, fileList) { | ||||
|       console.log(1) | ||||
| 
 | ||||
|       console.log(file, fileList) | ||||
|     }, | ||||
|     handlePreview(file) { | ||||
|       console.log(file) | ||||
|     }, | ||||
|     handleChangePDF(file, fileList) { | ||||
|       // const types = ['application/pdf'] | ||||
|       // const isImage = types.includes(file.raw.type) | ||||
|       // if (!isImage) { | ||||
|       //   this.$message.error('上传文件只能是 PDF 格式!') | ||||
|       //   fileList.pop() | ||||
|       // } else { | ||||
|       //   this.form.FFILE = file.raw | ||||
|       // } | ||||
|       this.form.FFILE = file.raw | ||||
|     }, | ||||
|     handleChangePDF2(file, fileList) { | ||||
|       // const types = ['application/pdf'] | ||||
|       // const isImage = types.includes(file.raw.type) | ||||
|       // if (!isImage) { | ||||
|       //   this.$message.error('上传文件只能是 PDF 格式!') | ||||
|       //   fileList.pop() | ||||
|       // } | ||||
| 
 | ||||
|     }, | ||||
|     // 添加 | ||||
|     handleUpload() { | ||||
|       this.resetForm() | ||||
|       this.dialogFormUpload = true | ||||
|     }, | ||||
|     // 添加 | ||||
|     handleBatchUpload() { | ||||
|       this.resetForm() | ||||
|       this.dialogBatchUpload = true | ||||
|     }, | ||||
|     // beforeFileUpload2(file) { | ||||
|     //   console.info(this.fileList) | ||||
|     //   this.fileList.push(file) | ||||
|     //   this.$forceUpdate() | ||||
|     //   return false | ||||
|     // }, | ||||
|     beforeFileUpload2(file) { | ||||
|       var testmsg = file.name.substring(file.name.lastIndexOf('.') + 1) | ||||
|       const extension = testmsg === 'pdf' | ||||
|       if (!extension) { | ||||
|         this.$confirm(`上传文件只能是pdf格式!`) | ||||
|       } else { | ||||
|         this.fileList.push(file) | ||||
|       } | ||||
|       this.$forceUpdate() | ||||
|       return false | ||||
|     }, | ||||
|     beforeFileUpload(file) { | ||||
|       var testmsg = file.name.substring(file.name.lastIndexOf('.') + 1) | ||||
|       const extension = testmsg === 'pdf' | ||||
|       if (!extension) { | ||||
|         this.$confirm(`上传文件只能是pdf格式!`) | ||||
|       } else { | ||||
|         this.form.FFILE = file | ||||
|       } | ||||
|       this.$forceUpdate() | ||||
|       return false | ||||
|     }, | ||||
|     // 保存 | ||||
|     confirm() { | ||||
|       this.$refs.form.validate(valid => { | ||||
|         if (valid) { | ||||
|           requestFN( | ||||
|             '/ajFfolder/add', | ||||
|             { | ||||
|               PARENT_ID: this.MFOLDER_ID, | ||||
|               NAME: this.form.NAME, | ||||
|               REMARKS: this.form.REMARKS | ||||
|             } | ||||
|           ).then((data) => { | ||||
|             this.$message({ | ||||
|               message: '操作成功', | ||||
|               type: 'success' | ||||
|             }) | ||||
|             this.dialogForm = false | ||||
|             this.getDataTree() | ||||
|             this.getList(this.MFOLDER_ID) | ||||
|           }).catch((e) => { | ||||
|           }) | ||||
|         } else { | ||||
|           return false | ||||
|         } | ||||
|       }) | ||||
|     }, | ||||
|     batchUpload() { | ||||
|       var _this = this | ||||
| 
 | ||||
|       if (_this.$refs.batchUpload.uploadFiles.length < 1) { | ||||
|         Message({ | ||||
|           message: '请上传附件', | ||||
|           type: 'error', | ||||
|           duration: 5 * 1000 | ||||
|         }) | ||||
|         return | ||||
|       } | ||||
| 
 | ||||
|       _this.$refs.batchUpload.submit() | ||||
|       const loading = _this.$loading({ | ||||
|         lock: true, | ||||
|         text: '上传中...', | ||||
|         spinner: 'el-icon-loading', | ||||
|         background: 'rgba(0, 0, 0, 0.7)' | ||||
|       }) | ||||
|       _this.form.PARENT_ID = _this.MFOLDER_ID | ||||
|       const formData = new FormData() | ||||
|       Object.keys(_this.form).map(key => { | ||||
|         formData.append(key, _this.form[key]) | ||||
|       }) | ||||
|       console.info(_this.fileList) | ||||
|       for (var i = 0; i < _this.fileList.length; i++) { | ||||
|         if (_this.fileList[i]) { | ||||
|           formData.append('FFILE', _this.fileList[i]) | ||||
|         } | ||||
|       } | ||||
|       upload( | ||||
|         '/ajFfolder/batchUpload', | ||||
|         formData | ||||
|       ).then((data) => { | ||||
|         _this.fileList = [] | ||||
|         _this.dialogBatchUpload = false | ||||
|         _this.getDataTree() | ||||
|         _this.getList(_this.MFOLDER_ID) | ||||
|         loading.close() | ||||
|       }).catch((e) => { | ||||
|         loading.close() | ||||
|       }) | ||||
|     }, | ||||
|     // 保存 | ||||
|     upload() { | ||||
|       this.$refs.uploadForm.validate(valid => { | ||||
|         if (!this.form.FFILE) { | ||||
|           Message({ | ||||
|             message: '请上传附件', | ||||
|             type: 'error', | ||||
|             duration: 5 * 1000 | ||||
|           }) | ||||
|           return | ||||
|         } | ||||
|         const loading = this.$loading({ | ||||
|           lock: true, | ||||
|           text: '上传中...', | ||||
|           spinner: 'el-icon-loading', | ||||
|           background: 'rgba(0, 0, 0, 0.7)' | ||||
|         }) | ||||
|         this.form.PARENT_ID = this.MFOLDER_ID | ||||
|         const formData = new FormData() | ||||
|         Object.keys(this.form).map(key => { | ||||
|           formData.append(key, this.form[key]) | ||||
|         }) | ||||
|         upload( | ||||
|           '/ajFfolder/upload', | ||||
|           formData | ||||
|         ).then((data) => { | ||||
|           this.dialogFormUpload = false | ||||
|           this.getDataTree() | ||||
|           this.getList(this.MFOLDER_ID) | ||||
|           loading.close() | ||||
|         }).catch((e) => { | ||||
|           loading.close() | ||||
|         }) | ||||
|       }) | ||||
|     }, | ||||
|     handleNodeClick(node, data, value) { | ||||
|       this.getList(node.id) | ||||
|     }, | ||||
|     handleDelete(id, FILEPATH) { | ||||
|       this.$confirm('确定要删除吗?', { | ||||
|         confirmButtonText: '确定', | ||||
|         cancelButtonText: '取消', | ||||
|         type: 'warning' | ||||
|       }).then(() => { | ||||
|         this.listLoading = true | ||||
|         requestFN( | ||||
|           '/ajFfolder/delete', | ||||
|           { | ||||
|             MFOLDER_ID: id, | ||||
|             FILEPATH: FILEPATH || '' | ||||
|           } | ||||
|         ).then(() => { | ||||
|           this.$message({ | ||||
|             message: '删除成功', | ||||
|             type: 'success' | ||||
|           }) | ||||
|           this.listLoading = false | ||||
|           this.varList = [] | ||||
|           this.listQuery.page = 1 | ||||
|           this.getDataTree() | ||||
|           this.getList(this.MFOLDER_ID) | ||||
|         }).catch((e) => { | ||||
|           this.listLoading = false | ||||
|         }) | ||||
|       }).catch(() => { | ||||
|       }) | ||||
|     }, | ||||
| 
 | ||||
|     // 判断按钮权限,用于是否显示按钮 | ||||
|     hasButton() { | ||||
|       var keys = 'mfolder:add,mfolder:del,mfolder:edit,toExcel' | ||||
|       requestFN( | ||||
|         '/head/hasButton', | ||||
|         { | ||||
|           keys: keys | ||||
|         } | ||||
|       ).then((data) => { | ||||
|         this.add = data.mfolderfhadminadd		// 新增权限 | ||||
|         this.del = data.mfolderfhadmindel		// 删除权限 | ||||
|         this.edit = data.mfolderfhadminedit	// 修改权限 | ||||
|       }).catch((e) => { | ||||
|         this.listLoading = false | ||||
|       }) | ||||
|     }, | ||||
|     resetForm() { | ||||
|       this.form = { | ||||
|         form: { | ||||
|           NAME: '', // | ||||
|           FFILE: [], | ||||
|           REMARKS: '' | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     getDataTree() { | ||||
|       this.treeLoading = true | ||||
|       requestFN( | ||||
|         '/ajFfolder/listTree', | ||||
|         { | ||||
|           corpInfoId: this.corpInfoId | ||||
|         } | ||||
|       ).then((data) => { | ||||
|         this.treeLoading = false | ||||
|         this.treeData = JSON.parse(data.zTreeNodes) | ||||
|       }) | ||||
|         .catch((e) => { | ||||
|           this.treeLoading = false | ||||
|         }) | ||||
|     }, | ||||
|     filterNode(value, data) { | ||||
|       if (!value) return true | ||||
|       return data.label.indexOf(value) !== -1 | ||||
|     }, | ||||
|     downloadFile(MFOLDER_ID) { | ||||
|       this.$confirm('确定要下载此文件吗?', { | ||||
|         confirmButtonText: '确定', | ||||
|         cancelButtonText: '取消', | ||||
|         type: 'warning' | ||||
|       }).then(() => { | ||||
|         this.listLoading = false | ||||
|         // '/ajFfolder/download?MFOLDER_ID=' + MFOLDER_ID, | ||||
|         window.location.href = config.httpurl + 'mfolder/download?MFOLDER_ID=' + MFOLDER_ID | ||||
|       }).catch(() => { | ||||
|         this.listLoading = false | ||||
|       }) | ||||
|       this.listLoading = false | ||||
|     }, | ||||
|     // pdf 预览 | ||||
|     goViewPdf(filePath) { | ||||
|       this.pageNum = 1 | ||||
|       this.pdfUrl = this.serverurl + filePath | ||||
|       this.dialogViewPdf = true | ||||
|     }, | ||||
|     // txt 预览 | ||||
|     goViewTxt(filePath) { | ||||
|       const file_url = 'serverurl' + filePath | ||||
|       // 可以是具体.txt也可以是接口返回的blob,或者web转换 | ||||
|       const xhr = new XMLHttpRequest() | ||||
|       xhr.open('get', file_url, true) | ||||
|       xhr.responseType = 'blob' | ||||
|       var self = this// onload this指向为window中转一下 | ||||
|       this.loading = true | ||||
|       xhr.onload = function() { | ||||
|         if (this.status == 200) { | ||||
|           self.loading = false | ||||
|           console.log(this.response) | ||||
|           const reader = new FileReader() | ||||
|           reader.onload = function() { | ||||
|             self.txtPre = reader.result// 获取的数据data | ||||
|             self.dialogvisibleview = true | ||||
|             console.log('reader.result', reader.result) | ||||
|           } | ||||
|           reader.readAsText(this.response) | ||||
|         } else { | ||||
|           this.loading = false | ||||
|         } | ||||
|       } | ||||
|       xhr.send() | ||||
| 
 | ||||
|       this.dialogViewTxt = true | ||||
|     }, | ||||
|     goViewVideo(filePath) { | ||||
|       this.playerOptions.sources[0].src = 'serverurl' + filePath | ||||
|       this.playerOptions.sources[0].type = 'video/mp4' | ||||
| 
 | ||||
|       this.dialogViewVideo = true | ||||
|     }, | ||||
|     goOffice(filePath) { | ||||
|       window.open(config.fileUrl + filePath, '_blank').document.charset = 'UTF-8' | ||||
|     } | ||||
|   } | ||||
| } | ||||
| 
 | ||||
| </script> | ||||
| <style lang="sass" scoped> | ||||
| .btn-only | ||||
|   .el-button+.el-button | ||||
|     margin-left: 0px | ||||
| </style> | ||||
		Loading…
	
		Reference in New Issue