This commit is contained in:
clay
2022-01-21 17:44:52 +08:00
parent f881e049ce
commit fcd39985dc
3 changed files with 197 additions and 57 deletions

View File

@@ -3,8 +3,8 @@ ENV = 'development'
# EBTS/开发环境 # EBTS/开发环境
#VUE_APP_BASE_API = '/dev-api' #VUE_APP_BASE_API = '/dev-api'
#VUE_APP_BASE_API = 'http://localhost:8096/dev-api' VUE_APP_BASE_API = 'http://localhost:8096/dev-api'
VUE_APP_BASE_API = 'http://sistapi.hchyun.cn/dev-api' #VUE_APP_BASE_API = 'http://sistapi.hchyun.cn/dev-api'
# 路由懒加载 # 路由懒加载
VUE_CLI_BABEL_TRANSPILE_MODULES = true VUE_CLI_BABEL_TRANSPILE_MODULES = true

View File

@@ -72,3 +72,12 @@ export function getFolder(){
}) })
} }
// 获取文件夹列表
export function downLoadNav(data){
return request({
url:'/sist/file/downloadnav',
method:'post',
data: data
})
}

View File

@@ -1,6 +1,25 @@
<template> <template>
<div class="app-container"> <div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="网站类型" prop="sitetype">
<el-select v-model="queryParams.sitetype" placeholder="请选择文件类型" @change="siteTypeInit" size="small">
<el-option
v-for="dict in sitetypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item> <el-form-item label="网站类型" prop="sitetype">
<el-select v-model="queryParams.type" placeholder="请选择文件类型" size="small">
<el-option
v-for="dict in initNavList"
:key="dict.id"
:label="dict.title"
:value="dict.id"
/>
</el-select>
</el-form-item>
<el-form-item label="文件名称" prop="fileName"> <el-form-item label="文件名称" prop="fileName">
<el-input <el-input
v-model="queryParams.fileName" v-model="queryParams.fileName"
@@ -10,15 +29,15 @@
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> />
</el-form-item> </el-form-item>
<el-form-item label="文件路径" prop="fileAddr"> <!--<el-form-item label="文件路径" prop="fileAddr">-->
<el-input <!-- <el-input-->
v-model="queryParams.fileAddr" <!-- v-model="queryParams.fileAddr"-->
placeholder="请输入文件路径" <!-- placeholder="请输入文件路径"-->
clearable <!-- clearable-->
size="small" <!-- size="small"-->
@keyup.enter.native="handleQuery" <!-- @keyup.enter.native="handleQuery"-->
/> <!-- />-->
</el-form-item> <!--</el-form-item>-->
<el-form-item label="文件类型" prop="fileType"> <el-form-item label="文件类型" prop="fileType">
<el-select v-model="queryParams.fileType" placeholder="请选择文件类型" clearable size="small"> <el-select v-model="queryParams.fileType" placeholder="请选择文件类型" clearable size="small">
<el-option <el-option
@@ -29,16 +48,16 @@
/> />
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="是否公开" prop="isPublic"> <!--<el-form-item label="是否公开" prop="isPublic">-->
<el-select v-model="queryParams.isPublic" placeholder="请选择是否公开" clearable size="small"> <!-- <el-select v-model="queryParams.isPublic" placeholder="请选择是否公开" clearable size="small">-->
<el-option <!-- <el-option-->
v-for="dict in isPublicOptions" <!-- v-for="dict in isPublicOptions"-->
:key="dict.dictValue" <!-- :key="dict.dictValue"-->
:label="dict.dictLabel" <!-- :label="dict.dictLabel"-->
:value="dict.dictValue" <!-- :value="dict.dictValue"-->
/> <!-- />-->
</el-select> <!-- </el-select>-->
</el-form-item> <!--</el-form-item>-->
<el-form-item label="创建时间"> <el-form-item label="创建时间">
<el-date-picker <el-date-picker
v-model="daterangeCreateTime" v-model="daterangeCreateTime"
@@ -80,16 +99,16 @@
</el-button> </el-button>
</el-col> </el-col>
<!--<el-col :span="1.5">--> <!--<el-col :span="1.5">-->
<!--<el-button--> <!--<el-button-->
<!-- type="success"--> <!-- type="success"-->
<!-- plain--> <!-- plain-->
<!-- icon="el-icon-edit"--> <!-- icon="el-icon-edit"-->
<!-- size="mini"--> <!-- size="mini"-->
<!-- :disabled="single"--> <!-- :disabled="single"-->
<!-- @click="handleUpdate"--> <!-- @click="handleUpdate"-->
<!-- v-hasPermi="['system:file:edit']"--> <!-- v-hasPermi="['system:file:edit']"-->
<!--&gt;修改--> <!--&gt;修改-->
<!--</el-button>--> <!--</el-button>-->
<!--</el-col>--> <!--</el-col>-->
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@@ -121,9 +140,9 @@
<el-table-column type="selection" width="55" align="center"/> <el-table-column type="selection" width="55" align="center"/>
<el-table-column label="文件名称" align="left" prop="fileName"/> <el-table-column label="文件名称" align="left" prop="fileName"/>
<el-table-column label="文件路径" align="center" prop="fileAddr"/> <el-table-column label="文件路径" align="center" prop="fileAddr"/>
<el-table-column label="文件类型" align="center" prop="fileType" /> <el-table-column label="文件类型" align="center" prop="fileType"/>
<el-table-column label="文件大小(MB)" align="center" prop="fileSize"/> <el-table-column label="文件大小(MB)" align="center" prop="fileSize"/>
<!--<el-table-column label="是否公开" align="center" prop="isPublic" :formatter="isPublicFormat"/>--> <el-table-column label="所属位置" align="center" prop="type" :formatter="isNavLabelFormat"/>
<el-table-column label="创建时间" align="center" prop="createTime" width="180"> <el-table-column label="创建时间" align="center" prop="createTime" width="180">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{m}:{s}') }}</span> <span>{{ parseTime(scope.row.createTime, '{y}-{m}-{d} {h}:{m}:{s}') }}</span>
@@ -172,10 +191,35 @@
/> />
<el-dialog :title="addFile.title" :visible.sync="addFile.open" width="500px" append-to-body> <el-dialog :title="addFile.title" :visible.sync="addFile.open" width="500px" append-to-body>
<el-form ref="uploadFrom" :model="form" label-width="80px"> <el-form ref="uploadFrom" :model="form" label-width="80px">
<el-form-item label="站点类型" prop="sitetype">
<el-select v-model="form.sitetype" placeholder="请选择站点类型" @change="siteTypeChang(form.sitetype)" clearable
size="small">
<el-option
v-for="dict in sitetypeOptions"
:key="dict.dictValue"
:label="dict.dictLabel"
:value="dict.dictValue"
/>
</el-select>
</el-form-item>
<el-form-item label="上级" prop="pid">
<el-select
v-model="form.type"
filterable
allow-create
default-first-option
placeholder="请选择文章标签">
<el-option
v-for="item in navList"
:key="item.id"
:label="item.title"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="文件上传"> <el-form-item label="文件上传">
<FileUpload v-model="addFile.url" @changeAddress="changeAddress"/> <FileUpload v-model="addFile.url" @changeAddress="changeAddress"/>
</el-form-item> </el-form-item>
@@ -187,7 +231,6 @@
</el-dialog> </el-dialog>
<el-dialog :title="fileForm.title" :visible.sync="fileForm.open" width="500px" append-to-body> <el-dialog :title="fileForm.title" :visible.sync="fileForm.open" width="500px" append-to-body>
<el-form ref="uploadFrom" :model="form" :rules="rules" label-width="80px"> <el-form ref="uploadFrom" :model="form" :rules="rules" label-width="80px">
<el-form-item v-show="isAdd" label="是否公开"> <el-form-item v-show="isAdd" label="是否公开">
@@ -216,10 +259,10 @@
inactive-text="图片" @change="fileTypeChange"> inactive-text="图片" @change="fileTypeChange">
</el-switch> </el-switch>
</el-form-item> </el-form-item>
<el-form-item label="图片上传" v-show="!fileForm.fileType" > <el-form-item label="图片上传" v-show="!fileForm.fileType">
<ImageUpload v-model="fileForm.url" @changeAddress="changeAddress"/> <ImageUpload v-model="fileForm.url" @changeAddress="changeAddress"/>
</el-form-item> </el-form-item>
<el-form-item label="文件上传" v-show="fileForm.fileType" > <el-form-item label="文件上传" v-show="fileForm.fileType">
<FileUpload v-model="fileForm.url" @changeAddress="changeAddress"/> <FileUpload v-model="fileForm.url" @changeAddress="changeAddress"/>
</el-form-item> </el-form-item>
</div> </div>
@@ -234,7 +277,17 @@
</template> </template>
<script> <script>
import {listFile, getFile, delFile, addFile, updateFile, exportFile, getRoleAll, getFolder} from "@/api/sist/file"; import {
listFile,
getFile,
delFile,
addFile,
updateFile,
exportFile,
getRoleAll,
getFolder,
downLoadNav
} from "@/api/sist/file";
import {downloadFile} from '@/utils/fileUtils' import {downloadFile} from '@/utils/fileUtils'
import ImageUpload from '@/components/ImageUpload'; import ImageUpload from '@/components/ImageUpload';
import FileUpload from '@/components/FileUpload'; import FileUpload from '@/components/FileUpload';
@@ -264,11 +317,13 @@ export default {
open: false, open: false,
fileType: false, fileType: false,
}, },
addFile:{ addFile: {
title:"新增文件", title: "新增文件",
url: "", url: "",
open: false, open: false,
}, },
navList: [],
initNavList:[],
// 遮罩层 // 遮罩层
loading: true, loading: true,
// 选中数组 // 选中数组
@@ -288,6 +343,8 @@ export default {
title: "", title: "",
isAdd: true, isAdd: true,
folderOptions: [], folderOptions: [],
// 站点类型 1 sist 2: lab 3: 双边都发字典
sitetypeOptions: [],
// 文件类型(文件夹:folder,文件:file)字典 // 文件类型(文件夹:folder,文件:file)字典
fileTypeOptions: [], fileTypeOptions: [],
// 是否公开字典 // 是否公开字典
@@ -304,6 +361,7 @@ export default {
fileAddr: null, fileAddr: null,
fileType: null, fileType: null,
isPublic: null, isPublic: null,
sitetype:"1",
}, },
// 表单参数 // 表单参数
form: {}, form: {},
@@ -316,18 +374,58 @@ export default {
}; };
}, },
created() { created() {
this.siteTypeInit(this.queryParams.sitetype)
this.getList(); this.getList();
this.getDicts("sys_fIle_type").then(response => { this.getDicts("sys_fIle_type").then(response => {
this.fileTypeOptions = response.data; this.fileTypeOptions = response.data;
}); });
this.getDicts("article_site_type").then(response => {
this.sitetypeOptions = response.data;
});
this.getDicts("sys_file_public").then(response => { this.getDicts("sys_file_public").then(response => {
this.isPublicOptions = response.data; this.isPublicOptions = response.data;
}); });
getFolder().then(res => { getFolder().then(res => {
this.folderOptions = res.data this.folderOptions = res.data
}) })
}, },
methods: { methods: {
siteTypeInit(siteType) {
let data = null
if (siteType == 1) {
data = {
id: 72,
sitetype: 1
}
} else {
data = {
id: 80,
sitetype: 2
}
}
downLoadNav(data).then(res => {
this.initNavList = res.data
})
},
siteTypeChang(siteType) {
let data = null
if (siteType == 1) {
data = {
id: 72,
sitetype: 1
}
} else {
data = {
id: 80,
sitetype: 2
}
}
downLoadNav(data).then(res => {
this.navList = res.data
})
},
/** 查询文件信息列表 */ /** 查询文件信息列表 */
getList() { getList() {
this.loading = true; this.loading = true;
@@ -345,6 +443,17 @@ export default {
this.form.fileAddr = "" this.form.fileAddr = ""
this.fileForm.url = "" this.fileForm.url = ""
}, },
/** 转换层级结构数据结构 */
normalizer(node) {
if (node.children && !node.children.length) {
delete node.children;
}
return {
id: node.id,
label: node.name,
children: node.children
};
},
/** /**
*是否公开值改变 *是否公开值改变
*/ */
@@ -365,7 +474,6 @@ export default {
this.addFile.title = "文件上传" this.addFile.title = "文件上传"
this.addFile.open = true this.addFile.open = true
this.addFile.url = null this.addFile.url = null
this.form = { this.form = {
fileId: null, fileId: null,
pId: null, pId: null,
@@ -375,6 +483,7 @@ export default {
fileAddr: null, fileAddr: null,
fileType: null, fileType: null,
isPublic: "1", isPublic: "1",
sisetype: '1',
}; };
}, },
// 文件类型字典翻译 // 文件类型字典翻译
@@ -385,7 +494,29 @@ export default {
isPublicFormat(row, column) { isPublicFormat(row, column) {
return this.selectDictLabel(this.isPublicOptions, row.isPublic); return this.selectDictLabel(this.isPublicOptions, row.isPublic);
}, },
addCancel(){ // 是否公开字典翻译
isNavLabelFormat(row, column) {
return this.selectNavLabel(this.initNavList, row.type);
},
selectNavLabel(datas, value){
console.log(datas,value)
try {
var actions = [];
Object.keys(datas).some((key) => {
if (datas[key].id == ('' + value)) {
actions.push(datas[key].title);
return true;
}
})
return actions.join('');
}catch (e) {
console.log(e)
return null
}
},
addCancel() {
this.addFile.open = false; this.addFile.open = false;
}, },
// 取消按钮 // 取消按钮
@@ -446,15 +577,15 @@ export default {
this.open = true; this.open = true;
this.title = "添加文件信息"; this.title = "添加文件信息";
}, },
//changeArray() { changeArray() {
// let roleIds = this.form.roleIds.split(",") // let roleIds = this.form.roleIds.split(",")
// this.form.roleIds = [] // this.form.roleIds = []
// for (let i = 0; i < roleIds.length; i++) { // for (let i = 0; i < roleIds.length; i++) {
// this.form.roleIds[i] = parseInt(roleIds[i]) // this.form.roleIds[i] = parseInt(roleIds[i])
// } // }
//}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
//handleUpdate(row) { handleUpdate(row) {
// this.reset(); // this.reset();
// this.isAdd = false // this.isAdd = false
// this.isPublicShow = true // this.isPublicShow = true
@@ -465,18 +596,18 @@ export default {
// this.fileForm.open = true; // this.fileForm.open = true;
// this.fileForm.title = "修改文件信息"; // this.fileForm.title = "修改文件信息";
// }); // });
//}, },
submitAddFile(){addFile(this.form).then(response => {
this.msgSuccess("新增成功");
this.addFile.open = false;
//this.changeArray()
this.getList();
});
submitAddFile() {
addFile(this.form).then(response => {
this.msgSuccess("新增成功");
this.addFile.open = false;
//this.changeArray()
this.getList();
});
}, },
/** 提交按钮 */ /** 提交按钮 */
//submitForm() { submitForm() {
// this.$refs["uploadFrom"].validate(valid => { // this.$refs["uploadFrom"].validate(valid => {
// if (valid) { // if (valid) {
// let roleIds = "" // let roleIds = ""
@@ -506,7 +637,7 @@ export default {
// } // }
// } // }
// }); // });
//}, },
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
const fileIds = row.fileId || this.ids; const fileIds = row.fileId || this.ids;