123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104 |
- <template>
- <!-- 文件分类 -->
- <div class="ListOfDocument">
- <div class="box">
- <div class="icore-graphical-index" :style="'width: 100%;height:'+chart.height">
- <div class="icore-graphical-area" ref="graphical-area"></div>
- </div>
- </div>
- <el-dialog
- title="文件预览"
- :visible.sync="dialogVisible"
- destroy-on-close
- width="90%"
- top="10vh">
- <el-button
- size="small"
- type="primary"
- icon="el-icon-download"
- v-privilege="activeMenu + 'DOWNLOAD'"
- @click="downloadFile(chart.fileData)"
- :loading="loading"
- style="position: absolute; right: 100px; top: 20px;"
- >点击保存
- </el-button>
- <iframe :src="previewUrl" width="100%" :height="singleTableHeight"></iframe>
- </el-dialog>
- <zj-formulaEditor :equationEditing="dialog.equationEditing"></zj-formulaEditor>
- </div>
- </template>
- <script>
- import formulaEditor from '~/components/zg/formulaEditor.vue';
- import { zCheckNumber1 } from '~/utils/validator.js';
- import { formatDate } from '@/utils/util.js';
- import store from '@/store/index.js';
- export default {
- name: 'ListOfDocument',
- components: {
- 'zj-formulaEditor': formulaEditor
- },
- props: {
- width: {
- type: [Number, String],
- default: '100%'
- },
- height: {
- type: [Number, String],
- default: '100%'
- }
- },
- data () {
- return {
- multipleSelection: [],
- tableFormDataObj: {},
- activeMenu: '',
- form: {
- imgSavePath: ''
- },
- filterForm: {
- show: true,
- data: {
- uploadFileid: '',
- securityTypeid: '',
- securityTag: '',
- isprimary: '',
- version: formatDate(new Date(), 'yyyyMM00'),
- fileName: '',
- pattern: 'table'
- },
- rules: {
- },
- file: ''
- },
- listTopicTree: {
- show: true,
- loading: false,
- data: [],
- defaultProps: {
- children: 'children',
- label: 'securityName'
- }
- },
- pageNum: 1,
- pageSize: 20,
- total: 0,
- singleTableHeight: '720px',
- tableData: [
- ],
- nameObj: {
- uploadFile: {
- obj: {},
- arr: []
- },
- securityType: {
- obj: {},
- arr: []
- },
- unitid: {
- obj: {},
- arr: []
- },
- roleList: {
- obj: {},
- arr: []
- }, // 角色信息
- securityTag: {
- obj: {},
- arr: []
- },
- pattern: {
- obj: {
- 'graphical': '图例',
- 'table': '表格'
- },
- arr: [
- {
- id: 'graphical',
- name: '图例'
- },
- {
- id: 'table',
- name: '表格'
- }
- ]
- }
- },
- loading: false,
- tableLoading: false,
- dialog: {
- editorBox: {
- show: false,
- fileType: '',
- form: {
- default: {
- workprocid: ''
- },
- data: {
- itemid: '',
- productid: '',
- workprocid: '',
- isprimary: '0',
- unitid: '',
- seqno: '',
- code: '',
- fileType: ''
- },
- rules: {
- productid: [
- { required: true, message: '该项不能为空', trigger: 'change' }
- ],
- workprocid: [
- { required: true, message: '该项不能为空', trigger: 'change' }
- ],
- seqno: [
- { validator: zCheckNumber1, trigger: 'change' }
- ]
- }
- }
- },
- equationEditing: {
- show: false,
- form: {
- data: {
- clock: '',
- code: ''
- }
- }
- }
- },
- store,
- userInfo: {}, // 用户信息
- qrRole: [],
- userRoles: [],
- dialogVisible: false,
- previewUrl: '',
- chart: {
- height: '1024px',
- show: false,
- fileData: {
- fileName: '',
- fileUrl: ''
- },
- option: {
- title: {
- text: ''
- },
- tooltip: {
- trigger: 'item',
- triggerOn: 'mousemove'
- },
- toolbox: {
- feature: {
- saveAsImage: {}
- }
- },
- series: [
- {
- type: 'tree',
- data: [],
- top: '2%',
- left: '25%',
- bottom: '1%',
- right: '20%',
- symbolSize: 8,
- nodePadding: 50,
- label: {
- position: 'left',
- verticalAlign: 'bottom',
- align: 'right',
- fontSize: 14
- },
- leaves: {
- label: {
- position: 'right',
- verticalAlign: 'middle',
- align: 'left'
- }
- },
- emphasis: {
- focus: 'descendant'
- },
- initialTreeDepth: 2,
- expandAndCollapse: true,
- animationDuration: 550,
- animationDurationUpdate: 750,
- roam: true
- }
- ]
- }
- }
- }
- },
- created () {
- this.activeMenu = window.localStorage.getItem('activeMenu');
- },
- computed: {
- indiviadualStyle: function() {
- return (
- "width:" +
- (typeof this.width === "string" &&
- this.width.indexOf("%") !== -1
- ? this.width
- : parseFloat(this.width) + "px") +
- ";height:" +
- (typeof this.height === "string" &&
- this.height.indexOf("%") !== -1
- ? this.height
- : parseFloat(this.height) + "px")
- );
- }
- },
- mounted () {
- let that = this;
- window.PEDataObj = {
- // 将数据绑定到window上,供main页面使用
- vm: that,
- // tableArr:用于导出成Excel的表格的信息
- tableArr: [
- {
- name: '',
- id: 'singleTable'
- }
- ]
- };
- // that.$nextTick(() => {
- // // 立即获取的height有一定偏差,通过setTimeout延迟来解决
- // setTimeout(() => {
- // that.singleTableHeight = that.getRoleHeight(that.$refs['singleTable'].$el) - 45;
- // }, 1);
- // });
- // // that.getNodeData();
- // // that.getNodeTreeData();
- // that.getUploadFileData();
- // that.getUnitIdData();
- // // that.getTableData();
- // that.getRoles();
- that.getFileTreeData();
- },
- methods: {
- // 计算树区域高度
- getRoleHeight (dom) {
- return window.innerHeight - dom.offsetTop;
- },
- // 获取文件类型列表
- getNodeData () {
- let that = this
- let url = 'pass/ems/v1/securitytypes/getIdAndName/?securityInfo=' + that.qrRole;
- that.axios.get(url)
- .then(function (res) {
- if (res.code === '0') {
- let arr = [];
- let obj = {};
- for (let item of res.data) {
- arr.push({
- id: item.id,
- name: item.securityName
- })
- obj[item.id] = item.securityName;
- }
- that.nameObj.securityType.arr = arr;
- that.nameObj.securityType.obj = obj;
- console.log(that.nameObj.securityType)
- } else {
- that.$message.error(res.message);
- }
- });
- },
- // 获取工序节点树(产出)
- getNodeTreeData () {
- let that = this
- let url = 'pass/ems/v1/securitytypes/gettree/?securityInfo=' + that.qrRole;
- that.listTopicTree.loading = true;
- that.axios.get(url)
- .then(function (res) {
- if (res.code === '0') {
- that.listTopicTree.data = [{
- id: '',
- securityName: '所有记录',
- children: res.data
- }];
- that.getTableData();
- } else {
- that.$message.error(res.message);
- }
- that.listTopicTree.loading = false;
- }).catch(function () {
- that.listTopicTree.loading = false;
- });
- },
- // 获取产品
- getUploadFileData () {
- let that = this
- let url = 'pass/ems/v1/uploadfiles/getIdAndName';
- that.axios.get(url)
- .then(function (res) {
- if (res.code === '0') {
- let arr = [];
- let obj = {};
- for (let item of res.data) {
- arr.push({
- id: item.id,
- name: item.fileName
- })
- obj[item.id] = item.fileName;
- }
- that.nameObj.uploadFile.arr = arr;
- that.nameObj.uploadFile.obj = obj;
- } else {
- that.$message.error(res.message);
- }
- });
- },
- // 获取标准计量单位
- getUnitIdData () {
- let that = this
- let url = 'pass/ems/v1/trmunits/getIdAndName';
- that.axios.get(url)
- .then(function (res) {
- if (res.code === '0') {
- let arr = [];
- let obj = {};
- for (let item of res.data) {
- arr.push({
- id: item.id,
- name: item.name
- })
- obj[item.id] = item.name;
- if (item.name === '吨') {
- that.nameObj.unitid.defaults = that.nameObj.unitid.defaults ? that.nameObj.unitid.defaults : item.id;
- }
- }
- that.nameObj.unitid.arr = arr;
- that.nameObj.unitid.obj = obj;
- } else {
- that.$message.error(res.message);
- }
- });
- },
- // 获取表格中的数据
- getTableData (pageNum) {
- let that = this,
- params = {
- fileName: that.filterForm.data.fileName,
- type: that.filterForm.data.securityTypeid,
- fileType: that.filterForm.data.securityTag.toString()
- };
- that.pageNum = pageNum || that.pageNum;
- that.tableLoading = true;
- let url = 'pass/ems/v1/uploadfiles/like/?pageNum=' + that.pageNum + '&pageSize=' + that.pageSize + '&securityInfo=' + that.qrRole;
- that.axios.get(url, {
- params: params
- })
- .then(function (res) {
- if (res.code === '0') {
- let arr = [];
- let map = {};
- let fileTypeArr = [];
- let fileTypeStr = '';
- let total = 0;
- for (let item of that.listTopicTree.data[0].children) {
- map[item.id] = true;
- }
- for (let item of res.data.list) {
- let result = true;
- fileTypeArr = [];
- // // result = item.type.some(i => map[i]);
- // if (that.qrRole.length > 0) {
- // result = map.hasOwnProperty(item.type);
- // }
- // if (result) {
- if (item.fileType !== null) {
- fileTypeArr = item.fileType.split(';');
- fileTypeStr += item.fileType + ';'
- }
- total++;
- arr.push({
- ID: item.id,
- fileName: item.fileName,
- fileUrl: item.fileUrl,
- type: item.type,
- fileType: fileTypeArr,
- uploadTime: item.uploadTime,
- createMan: item.createMan,
- createTime: item.createTime,
- updateMan: item.updateMan,
- updateTime: item.updateTime,
- showInput: false,
- inputValue: ''
- })
- // }
- }
- if (that.nameObj.securityTag.arr.length <= 0) {
- fileTypeStr = fileTypeStr.substr(0, fileTypeStr.length - 1);
- that.nameObj.securityTag.arr = Array.from(new Set(fileTypeStr.split(';')));
- }
- that.tableData = arr;
- that.total = res.data.total;
- } else {
- that.$message.error(res.message);
- }
- that.getFileTreeData ();
- that.tableLoading = false;
- }).catch(function () {
- that.tableLoading = false;
- });
- },
- // 改变表格显示条数
- tableSizeChange (val) {
- let that = this;
- that.pageSize = val;
- that.getTableData(1);
- },
- // 重置搜索
- tableDataCancel () {
- let that = this;
- that.filterForm.data.workprocid = '';
- that.filterForm.data.productid = '';
- that.filterForm.data.version = '';
- that.getTableData(1);
- },
- // 表格中多选按钮的相关方法
- handleSelectionChange (val) {
- let that = this;
- let tableFormDataObj = {};
- for (let item of that.tableData) {
- item.isSelection = false;
- }
- for (let item of val) {
- let obj = {};
- let xId = item.ID;
- if (that.tableFormDataObj[xId]) {
- tableFormDataObj[xId] = that.tableFormDataObj[xId];
- } else {
- for (let key in item) {
- obj[key] = item[key];
- }
- tableFormDataObj[xId] = obj;
- }
- item.isSelection = true;
- }
- that.tableFormDataObj = JSON.parse(JSON.stringify(tableFormDataObj));
- that.multipleSelection = val;
- },
- but_add () {
- let that = this;
- if (!that.dialog.editorBox.form.default.workprocid) {
- that.$message.error('请先选择左侧的详细工序');
- return;
- }
- that.dialog.editorBox.form.data.itemid = '';
- that.dialog.editorBox.form.data.productid = '';
- that.dialog.editorBox.form.data.workprocid = that.dialog.editorBox.form.default.workprocid;
- that.dialog.editorBox.form.data.isprimary = '0';
- that.dialog.editorBox.form.data.unitid = that.nameObj.unitid.defaults ? that.nameObj.unitid.defaults : '';
- that.dialog.editorBox.form.data.seqno = '';
- that.dialog.editorBox.form.data.code = '0';
- that.dialog.editorBox.type = 'add';
- that.dialog.editorBox.show = true;
- setTimeout(() => {
- that.$refs['dialog_form'].clearValidate();
- }, 100);
- },
- beforeUpload (file) {
- let that = this;
- that.tableLoading = true;
- that.loading = true;
- let foorData = new FormData();
- foorData.append('file', file.file);
- foorData.append('type', this.filterForm.data.securityTypeid);
- that.axios.post('pass/ems/v1/uploadfiles/file', foorData, {
- headers: {
- 'Content-Type': 'multipart/form-data'
- }
- }).then(function (res) {
- if (res.code === '0') {
- that.$message({
- message: '上传成功',
- type: 'success'
- });
- that.$refs.upload.clearFiles();
- that.$refs.upload1.clearFiles();
- that.getTableData(1);
- that.dialog.editorBox.show = false;
- } else {
- that.$message.error(res.message);
- }
- that.tableLoading = false;
- that.loading = false;
- }).catch(function () {
- that.$message({
- message: '上传失败,FTP服务器可能已断开连接',
- type: 'success'
- });
- that.tableLoading = false;
- that.loading = false;
- });
- },
- submitUpload () {
- let that = this;
- this.$refs.upload.submit();
- this.$refs.upload1.submit();
- },
- handleRemove (file, fileList) {
- console.log(file, fileList);
- },
- // 行内标签删除
- rowhandleClose (tag, row) {
- let that = this;
- that.tableFormDataObj[row.ID].fileType.splice(that.tableFormDataObj[row.ID].fileType.indexOf(tag), 1);
- },
- // 行内标签新增
- rowhandleInputConfirm (row) {
- let that = this;
- let inputValue = that.tableFormDataObj[row.ID].inputValue;
- if (inputValue) {
- that.tableFormDataObj[row.ID].fileType.push(inputValue);
- }
- that.tableFormDataObj[row.ID].showInput = false;
- that.tableFormDataObj[row.ID].inputValue = '';
- },
- // 行内input获取焦点
- rowshowInput (row) {
- let that = this;
- that.tableFormDataObj[row.ID].showInput = true;
- let id = row.ID + '-saveTagInput';
- setTimeout(function(){
- that.$nextTick(() => {
- // that.$refs[id].$refs.input.focus();
- that.$refs[id].focus();
- });
- },50)
- },
- handlePreview (file) {
- console.log(file);
- },
- // 批量修改
- but_edit_plural () {
- let that = this;
- if (that.multipleSelection.length > 0) {
- that.$refs['dialog_form_arr'].validate((valid) => {
- if (valid) {
- let SubmitData = [];
- for (let key in that.tableFormDataObj) {
- let fileTypes = '';
- for (let item in that.tableFormDataObj[key].fileType) {
- if (Number(item) === that.tableFormDataObj[key].fileType.length - 1) {
- fileTypes += that.tableFormDataObj[key].fileType[item];
- } else {
- fileTypes += that.tableFormDataObj[key].fileType[item] + ';';
- }
- }
- SubmitData.push({
- Id: that.tableFormDataObj[key].ID,
- fileType: fileTypes,
- seqno: that.tableFormDataObj[key].seqno
- });
- }
- that.loading = true;
- that.axios.put('pass/ems/v1/uploadfiles/batchupdate', SubmitData)
- .then(function (res) {
- if (res.code === '0') {
- that.$message({
- message: '修改成功',
- type: 'success'
- });
- that.getTableData();
- that.dialog.editorBox.show = false;
- } else {
- that.$message.error(res.message);
- }
- that.loading = false;
- }).catch(function () {
- that.loading = false;
- });
- }
- });
- } else {
- this.$message.error('至少要选择一条数据');
- }
- },
- // 批量删除
- but_del_plural () {
- let that = this;
- that.loading = true;
- if (that.multipleSelection.length > 0) {
- let ids = [];
- let paths = [];
- for (let item of that.multipleSelection) {
- ids.push(item.ID);
- paths.push(item.fileUrl);
- }
- that.$confirm('是否删除已选数据?', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- state: 'warning'
- }).then(() => {
- that.axios.delete('pass/ems/v1/uploadfiles/' + ids.toString())
- .then(function (res) {
- if (res.code === '0') {
- that.$message({
- message: '删除成功',
- type: 'success'
- });
- that.getTableData();
- that.loading = false;
- } else {
- if (res.code === '51') {
- }
- that.$message.error(res.message);
- }
- that.loading = false;
- }).catch(function () {
- that.loading = false;
- });
- }).catch(() => {
- that.loading = false;
- });
- } else {
- this.$message.error('至少要选择一条数据');
- that.loading = false;
- }
- },
- dataSave () {
- let that = this;
- let SubmitData = {
- itemid: that.dialog.editorBox.form.data.itemid,
- productid: that.dialog.editorBox.form.data.productid,
- workprocid: that.dialog.editorBox.form.data.workprocid,
- isprimary: that.dialog.editorBox.form.data.isprimary,
- unitid: that.dialog.editorBox.form.data.unitid,
- seqno: that.dialog.editorBox.form.data.seqno,
- code: that.dialog.editorBox.form.data.code,
- itemtype: 'P'
- };
- that.$refs['dialog_form'].validate((valid) => {
- if (valid) {
- if (that.dialog.editorBox.type === 'add') {
- that.loading = true;
- that.axios.post('pass/ems/v1/trmworkprocproducts/', SubmitData, {
- contentType: 'application/json'
- })
- .then(function (res) {
- if (res.code === '0') {
- that.$message({
- message: '新增成功',
- type: 'success'
- });
- that.getTableData();
- that.dialog.editorBox.show = false;
- } else {
- that.$message.error(res.message);
- }
- that.loading = false;
- }).catch(function () {
- that.loading = false;
- });
- } else {
- that.loading = true;
- that.axios.put('pass/ems/v1/trmworkprocproducts/' + SubmitData.itemid, SubmitData)
- .then(function (res) {
- if (res.code === '0') {
- that.$message({
- message: '修改成功',
- type: 'success'
- });
- that.getTableData();
- that.dialog.editorBox.show = false;
- } else {
- that.$message.error(res.message);
- }
- that.loading = false;
- }).catch(function () {
- that.loading = false;
- });
- }
- }
- });
- },
- but_equationEditing (row) {
- let that = this;
- that.dialog.equationEditing.form.data.clock = that.filterForm.data.version;
- that.dialog.equationEditing.form.data.code = row.itemid;
- that.dialog.equationEditing.show = true;
- },
- selectByTopicId (data) {
- let that = this;
- that.filterForm.data.securityTypeid = data.id;
- that.getTableData(1);
- },
- getRoles () {
- let that = this;
- // 获取用户信息
- this.store.dispatch('getUserInfo').then((res) => {
- this.userInfo = res.data;
- that.axios.get('pass/v1/sysuserroles/?userId=' + res.data.userId + '&pageNum=1&pageSize=100').then(rest => {
- if (rest) {
- for (let i = 0; i < rest.data.list.length; i++) {
- that.qrRole.push(rest.data.list[i].roleId)
- }
- that.userRoles = rest.data.list; // 获取用户角色关联信息
- }
- that.getNodeData();
- that.getNodeTreeData();
- })
- });
- // 获取角色信息
- this.store.dispatch('system/rolesManage/list').then(res => {
- if (res.code === '0') {
- this.nameObj.roleList.arr = res.data;
- for (let obj of res.data) {
- this.nameObj.roleList.obj[obj.id] = {
- name: obj.roleName,
- id: obj.id
- };
- }
- } else {
- this.$message.error(res.message);
- }
- });
- },
- downloadFile (data) {
- let that = this;
- let SubmitData = {
- fileName: data.fileName,
- fileUrl: data.fileUrl
- };
- // 不带token访问方式,留底后端修改shiroconfig.java,application.properties
- // let url = '/icore.icp.web/pass/ems/v1/uploadfiles/downloadFile/?fileName=' + that.tableFormDataObj[key].fileName + '&fileUrl=' + that.tableFormDataObj[key].fileUrl;
- // const xhr = new XMLHttpRequest();
- // xhr.open('GET', url, true);
- // xhr.responseType = 'blob';
- // xhr.onload = () => {
- // if (xhr.status === 200) {
- // var fileName = that.tableFormDataObj[key].fileName;
- // // 获取文件blob数据并保存
- // that.saveAs(xhr.response, fileName);
- // }
- // };
- // xhr.send();
- that.loading = true;
- let urla = 'pass/ems/v1/uploadfiles/downloadFile/';
- that.axios.get(urla, {
- params: SubmitData,
- responseType: 'blob'
- }).then(function (res) {
- that.saveAs(res, data.fileName);
- that.$message({
- message: '下载成功',
- type: 'success'
- });
- that.loading = false;
- }).catch(function () {
- that.$message.error('下载失败');
- that.loading = false;
- })
- },
- // js实现文件下载而不直接打开
- saveAs (data, fileName) {
- this.loading = true;
- let urlObject = window.URL || window.webkitURL || window;
- // 将二进制流转为blob
- let exportBlob = new Blob([data]);
- if (typeof window.navigator.msSaveBlob !== 'undefined') {
- // 兼容IE,window.navigator.msSaveBlob:以本地方式保存文件
- window.navigator.msSaveBlob(exportBlob, decodeURI(fileName));
- this.loading = false;
- } else {
- // 创建新的URL并指向File对象或者Blob对象的地址
- let blobURL = urlObject.createObjectURL(exportBlob);
- let saveLink = document.createElement('a');
- // 兼容:某些浏览器不支持HTML5的download属性
- if (typeof saveLink.download === 'undefined') {
- saveLink.setAttribute('target', '_blank');
- } else {
- saveLink.download = fileName;
- }
- // 创建新的URL并指向File对象或者Blob对象的地址
- saveLink.href = blobURL;
- saveLink.click();
- // 释放blob URL地址
- urlObject.revokeObjectURL(exportBlob);
- this.loading = false;
- // let blob = new Blob([data])
- // let fileURL = urlObject.createObjectURL(blob);
- // 下载代码
- // let downEle = document.createElement('a')
- // let fname = `download` //下载文件的名字
- // downEle.href = fileURL
- // downEle.setAttribute('download', fname)
- // document.body.appendChild(downEle)
- // downEle.click()
- // window.open(fileURL);
- }
- },
- preview (data) {
- let that = this;
- that.loading = true;
- that.chart.fileData = data;
- let SubmitData = {
- fileName: data.fileName,
- fileUrl: data.fileUrl
- };
- let urla = 'pass/ems/v1/uploadfiles/getfile/';
- let type = 'text/html';
- let responseType = 'application/json';
- let fileExtension = data.fileName.substring(data.fileName.lastIndexOf('.') + 1);
- if (fileExtension === 'pdf') {
- urla = 'pass/ems/v1/uploadfiles/downloadFile/';
- type = 'application/pdf';
- responseType = 'blob';
- }
- that.tableLoading = true;
- that.axios.get(urla, {
- params: SubmitData,
- responseType: responseType
- }).then(function (res) {
- console.log('111');
- let urlObject = window.URL || window.webkitURL || window;
- // 将二进制流转为blob
- let blob = new Blob([res], {type: type});
- if (fileExtension !== 'pdf') {
- blob = new Blob([res.data], {type: type});
- }
- // if (typeof window.navigator.msSaveBlob !== 'undefined') {
- // // 兼容IE,window.navigator.msSaveBlob:以本地方式保存文件
- // window.navigator.msSaveBlob(blob, decodeURI(fileName))
- // } else {
- // 创建新的URL并指向File对象或者Blob对象的地址
- let blobURL = urlObject.createObjectURL(blob);
- that.dialogVisible = true;
- that.previewUrl = blobURL;
- that.tableLoading = false;
- that.loading = false;
- // 'https://file.keking.cn/onlinePreview?url=' + encodeURIComponent(blobURL)
- // http://view.officeapps.live.com/op/view.aspx?src' + blobURL;
- // 创建a标签,用于跳转至下载链接
- // let tempLink = document.createElement('a')
- // tempLink.style.display = 'none'
- // tempLink.href = blobURL;
- // tempLink.setAttribute('download', decodeURI(fileName))
- // 兼容:某些浏览器不支持HTML5的download属性
- // if (typeof tempLink.download === 'undefined') {
- // tempLink.setAttribute('target', '_blank')
- // }
- // // 挂载a标签
- // document.body.appendChild(tempLink)
- // tempLink.click()
- // // 销毁a标签
- // document.body.removeChild(tempLink)
- // 释放blob URL地址
- // urlObject.revokeObjectURL(blobURL);
- setTimeout(() => {
- urlObject.revokeObjectURL(blobURL);
- }, 1000)
- }).catch(function () {
- that.tableLoading = false;
- that.$message.error('预览失败');
- that.loading = false;
- })
- },
- selectTrigger(val) {
- let that = this;
- if (val === 'graphical') {
- that.listTopicTree.show = false;
- that.chart.show = true;
- that.loading = true;
- setTimeout(() => {
- that.setGraphical();
- }, 1000)
- console.log(val);
- } else {
- that.chart.show = false;
- that.listTopicTree.show = true;
- console.log(val);
- }
- },
- getFileTreeData () {
- let that = this,
- params = {
- fileName: that.filterForm.data.fileName,
- type: that.filterForm.data.securityTypeid,
- fileType: that.filterForm.data.securityTag.toString()
- };
- that.tableLoading = true;
- let url = 'pass/ems/v1/uploadfiles/getFileTree/?securityInfo=' + that.qrRole;
- that.axios.get(url, {
- params: params
- })
- .then(function (res) {
- if (res.code === '0') {
- let arr = [];
- // that.chart.height = res.data.length * 100 + 'px';
- arr = that.treeDataUtil(res.data);
- arr[0].label = {
- position: 'top',
- verticalAlign: 'bottom',
- align: 'right',
- fontSize: 20,
- fontWeight: 800
- };
- that.chart.option.series[0].data = arr;
- that.setGraphical();
- } else {
- that.$message.error(res.message);
- }
- that.tableLoading = false;
- }).catch(function () {
- that.tableLoading = false;
- });
- },
- treeDataUtil (treeData) {
- let that = this;
- let data = [];
- let children = [];
- let children1 = [];
- let i = 0;
- let name = '';
- for (let item of treeData) {
- i++;
- if(item.fileName === null) {
- if (item.children !== null){
- children = that.treeDataUtil(item.children);
- };
- data.push({
- name: item.createMan,
- children: children,
- });
- children = [];
- } else {
- if(name === '' || i === 1){
- name = item.createMan;
- } else if(name !== item.createMan) {
- data.push({
- name: name,
- children: children1,
- });
- children1 = [];
- name = item.createMan;
- }
- children1.push({
- name: item.fileName,
- value: item.fileUrl,
- });
- }
- if ( i=== treeData.length && children1.length !== 0 ) {
- data.push({
- name: name,
- children: children1,
- });
- }
- }
- return data;
- },
- /**
- * 根据参数生成不同类型的图形化控件
- */
- setGraphical: function() {
- let that = this;
- // 引入 ECharts 主模块
- let echarts = require("echarts");
- require("echarts-gl");
- // 基于准备好的dom,初始化echarts实例
- let myChart = echarts.init(this.$refs["graphical-area"]);
- myChart.showLoading();
- // 绘制图表
- myChart.setOption(that.chart.option);
- // 设置树图的点击事件
- myChart.on("click", function(param) {
- // 老版本不支持
- // if(param.event.target.culling === true){
- // return
- // } else if(param.event.target.culling === false){
- // let args = {
- // fileName: param.data.name,
- // fileUrl: param.data.value
- // } //当前节点及其子节点的值
- // let level = param.data.level; //当前节点的层级 eg:"1-1-0",可以通过level判断当前的层级,从而进行不同的操作
- // that.preview (args);
- // }
- if(param.data.value){
- let args = {
- fileName: param.data.name,
- fileUrl: param.data.value
- } //当前节点及其子节点的值
- let level = param.data.level; //当前节点的层级 eg:"1-1-0",可以通过level判断当前的层级,从而进行不同的操作
- that.preview (args);
- }
- });
- myChart.hideLoading();
- that.loading = false;
- }
- }
- }
- </script>
- <style lang="less">
- .ListOfDocument {
- padding: 0;
- margin: 0;
- min-width: 700px;
- height: 1024px;
- .box {
- height: 1030px;
- padding: 15px 15px 0 15px;
- background: url(../../../../assets/img/img/filebg.png) center bottom no-repeat;
- background-size: 100% 100%;
- margin: 0px;
- .error {
- overflow: hidden;
- color: #f56c6c;
- font-size: 12px;
- line-height: 1;
- }
- }
- .color_no {
- color: #7a7a7a;
- }
- .color_yes {
- color: #1a9f17;
- }
- .el-upload-dragger {
- width: 120px;
- height: 80px;
- }
- .el-icon-upload:before {
- content: "\E60D";
- position: absolute;
- top: 20%;
- left: 20%;
- }
- .uploadNew {
- position: relative;
- width: 120px;
- }
- .uploadNew .el-upload-list {
- position: absolute;
- left: 320px;
- top: -10px;
- width: 200px;
- }
- .upload-demo {
- float: left;
- width: 85px;
- position: relative;
- }
- .upload-demo .el-upload-list {
- position: absolute;
- left: 530px;
- top: -100px;
- width: 200px;
- }
- .icore-graphical-index {
- display: inline-block;
- height: inherit;
- width: inherit;
- .icore-graphical-area {
- height: 100%;
- width: 100%;
- }
- }
- }
- </style>
|