Commit 425fd454 authored by 高飞's avatar 高飞
parents d93c697f 9f367568
...@@ -10,3 +10,10 @@ npm config set sass_binary_site=https://npm.taobao.org/mirrors/node-sass ...@@ -10,3 +10,10 @@ npm config set sass_binary_site=https://npm.taobao.org/mirrors/node-sass
才能安装成功sass 才能安装成功sass
### 安装环境 ### 安装环境
node版本14版本 node版本14版本
### 打包需要文件
webpack.config.js 改为template: path.resolve(__dirname, './onlyoffice/prod.html')
src/constant/user
export const MAIL_ADDRESS = "http://6.1.22.93:8000";
export const MAIL_MANAGER_ADDRESS = "http://6.1.22.93:8010";
export const MAIL_DOMAIN = "zyyt.com"
...@@ -114,3 +114,13 @@ export const queryLiteratureById = name => { ...@@ -114,3 +114,13 @@ export const queryLiteratureById = name => {
export const previewPdf = (bucket, objectName) => { export const previewPdf = (bucket, objectName) => {
window.open(`api/rest/file/pdf/${bucket}?objectName=${objectName}`); window.open(`api/rest/file/pdf/${bucket}?objectName=${objectName}`);
} }
//文件文献下载
export const downloadFile = (bucket, objectName) => {
window.open(`api/rest/file/download/${bucket}/${objectName}`);
}
//文件文献下载
export const downloadDocument = (bucket, objectName,originFileName) => {
window.open(`api/rest/file/download/${bucket}/${objectName}?originFileName=`+originFileName);
}
\ No newline at end of file
<template> <template>
<div>
<div style="margin-bottom:20px;display: grid;grid-template-columns: 80px auto;">
<span style="margin-top:20px;color: white;">选择目录:</span>
<el-tree class="myTree" :data="treeData" node-key="id" show-checkbox :expand-on-click-node="false" :default-expanded-keys="[fl_type]"
highlight-current :props="defaultProps" :check-strictly="true" ref="tree" @check-change="handleCheckChange"
:indent=1>
</el-tree>
</div>
<div class="uploadWrapper"> <div class="uploadWrapper">
<div class="btnUpload"> <div class="btnUpload">
<div id="picker" class="form-control-focus">点击选择文件上传</div> <div id="picker" class="form-control-focus">点击选择文件上传</div>
...@@ -19,6 +27,7 @@ ...@@ -19,6 +27,7 @@
</div> </div>
<el-button class="startUpload" type="primary" @click="upload()">开始上传</el-button> <el-button class="startUpload" type="primary" @click="upload()">开始上传</el-button>
</div> </div>
</div>
</template> </template>
<script> <script>
import $ from "jquery"; import $ from "jquery";
...@@ -32,12 +41,25 @@ export default { ...@@ -32,12 +41,25 @@ export default {
}, },
checkFileExist: { checkFileExist: {
type: Function type: Function
},
treeDataBig: {
type: Array
},
flType:{
type:Number
} }
}, },
data() { data() {
return { return {
fileList: [], fileList: [],
headers: { 'x-requested-with': 'XMLHttpRequest' } headers: { 'x-requested-with': 'XMLHttpRequest' },
clientDetails_check_type: [],
treeData: [],
defaultProps: {
children: 'children',
label: 'label'
},
fl_type:0
}; };
}, },
mounted() { mounted() {
...@@ -139,8 +161,9 @@ export default { ...@@ -139,8 +161,9 @@ export default {
name: file.name, name: file.name,
size: file.size, size: file.size,
type: file.ext, type: file.ext,
uuid: file.uid + "." + file.ext, uuid: file.uid + "." + file.ext
} },
treeId: _self.clientDetails_check_type
}); });
} else { } else {
return Promise.resolve(res); return Promise.resolve(res);
...@@ -235,6 +258,13 @@ export default { ...@@ -235,6 +258,13 @@ export default {
}, },
methods: { methods: {
upload() { upload() {
if (this.clientDetails_check_type.length == 0 || this.clientDetails_check_type.includes(1) || this.clientDetails_check_type.includes(2) || this.clientDetails_check_type.includes(3) || this.clientDetails_check_type.includes(4)) {
this.$message({
type: "warning",
message: "请选择文档列表子节点",
});
return;
}
this.uploader.upload(); this.uploader.upload();
}, },
removeFile(item, index) { removeFile(item, index) {
...@@ -275,13 +305,38 @@ export default { ...@@ -275,13 +305,38 @@ export default {
} }
}).catch(err => reject(err)); }).catch(err => reject(err));
}) })
},
handleCheckChange(node, isSelected) {
if (isSelected) {
this.clientDetails_check_type.push(node.id);
} else {
this.clientDetails_check_type = this.clientDetails_check_type.filter(item => {
return item != node.id
})
} }
console.log(this.clientDetails_check_type);
}
},
watch: {
treeDataBig: {
handler(newVal, oldVal) {
this.treeData = newVal;
this.clientDetails_check_type = [];
}, },
immediate: true
},
flType:{
handler(newVal, oldVal) {
this.fl_type = newVal;
},
immediate: true
}
}
}; };
</script> </script>
<style lang="scss" scope> <style lang="scss" scope>
.uploadWrapper { .uploadWrapper {
height: 524px; min-height: 300px;
} }
#picker>div:nth-child(2) { #picker>div:nth-child(2) {
......
...@@ -36,6 +36,7 @@ ...@@ -36,6 +36,7 @@
<el-dropdown-menu slot="dropdown" class="hide-drop"> <el-dropdown-menu slot="dropdown" class="hide-drop">
<el-dropdown-item v-for="(item, index) in manager_module_backstage" v-text="item.name" <el-dropdown-item v-for="(item, index) in manager_module_backstage" v-text="item.name"
:command="item.name" :key="index"></el-dropdown-item> :command="item.name" :key="index"></el-dropdown-item>
<el-dropdown-item command="邮箱">邮箱</el-dropdown-item>
<el-dropdown-item command="修改密码">修改密码</el-dropdown-item> <el-dropdown-item command="修改密码">修改密码</el-dropdown-item>
<el-dropdown-item command="安全退出">安全退出</el-dropdown-item> <el-dropdown-item command="安全退出">安全退出</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
...@@ -81,7 +82,7 @@ import { endLoading, get, post, httpSSERequest, fetchEventSource, httpSSERequest ...@@ -81,7 +82,7 @@ import { endLoading, get, post, httpSSERequest, fetchEventSource, httpSSERequest
import { queryDictItem } from '../api/dictitem'; import { queryDictItem } from '../api/dictitem';
import Push from 'push.js' import Push from 'push.js'
import dayjs from 'dayjs'; import dayjs from 'dayjs';
import { SYSTEM_NAME } from "@/constant/user"; import { SYSTEM_NAME, MAIL_ADDRESS } from "@/constant/user";
export default { export default {
name: "home", name: "home",
data() { data() {
...@@ -168,6 +169,8 @@ export default { ...@@ -168,6 +169,8 @@ export default {
this.$router.push("xx"); this.$router.push("xx");
} else if (command == '修改密码') { } else if (command == '修改密码') {
this.dialogVisible = true; this.dialogVisible = true;
} else if (command == '邮箱') {
window.open(MAIL_ADDRESS);
} }
}, },
handleClose(key, keyPath) { }, handleClose(key, keyPath) { },
......
...@@ -49,6 +49,7 @@ ...@@ -49,6 +49,7 @@
:disabled="scope.row.image == null || scope.row.image == '' ? true : false">删除图片</el-button> :disabled="scope.row.image == null || scope.row.image == '' ? true : false">删除图片</el-button>
<el-button size="mini" type="success" @click="top(scope.row)">{{ scope.row.stick == null ? '置顶' : <el-button size="mini" type="success" @click="top(scope.row)">{{ scope.row.stick == null ? '置顶' :
'取消置顶' }}</el-button> '取消置顶' }}</el-button>
<el-button size="mini" type="primary" @click="downloadLiterature(scope.row)">下载</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -151,7 +152,7 @@ ...@@ -151,7 +152,7 @@
import { get, fileUpload, startLoading, endLoading, download, delete_util, post } from '../../util/http_util'; import { get, fileUpload, startLoading, endLoading, download, delete_util, post } from '../../util/http_util';
import { import {
queryLiterature, uploadLiterature, removeLiterature, addPictureToLiterature, bulkStickLiterature, removeLiteratureByBatch, bulkChangeLiteratureFolder, queryLiterature, uploadLiterature, removeLiterature, addPictureToLiterature, bulkStickLiterature, removeLiteratureByBatch, bulkChangeLiteratureFolder,
updateLiteratureFolder, queryLiteratureFolder, previewPdf updateLiteratureFolder, queryLiteratureFolder, previewPdf,downloadFile
} from "../../api/xxxl/llxx" } from "../../api/xxxl/llxx"
export default { export default {
name: 'flfggl', name: 'flfggl',
...@@ -490,6 +491,10 @@ export default { ...@@ -490,6 +491,10 @@ export default {
this.$message.warning(err.message); this.$message.warning(err.message);
console.log(err); console.log(err);
}); });
},
//下载文件
downloadLiterature(row){
downloadFile('Literature',row.name);
} }
}, },
activated() { activated() {
......
<template> <template>
<div id="wx_data_public"> <div id="wx_data_public">
<div class="left-div"> <div class="left-div">
<el-input <el-input class="public-input" placeholder="输入关键字进行过滤" suffix-icon="el-icon-search"
class="public-input" v-model="filterText"></el-input>
placeholder="输入关键字进行过滤" <el-tree class="myTree" :data="tree_data" node-key="id" :expand-on-click-node="false"
suffix-icon="el-icon-search" :filter-node-method="filterNode" highlight-current :default-expanded-keys="[this.fl_type]" :props="defaultProps"
v-model="filterText" ref="tree" :current-node-key="this.fl_type" @node-click="handleNodeClick"
></el-input> :indent=1>
<el-tree
:data="tree_data"
node-key="id"
:expand-on-click-node="false"
:filter-node-method="filterNode"
highlight-current
:default-expanded-keys="[this.fl_type]"
:props="defaultProps"
ref="tree"
:current-node-key="this.fl_type"
@node-click="handleNodeClick"
:indent=1
>
<span class="custom-tree-node" slot-scope="{ node, data }"> <span class="custom-tree-node" slot-scope="{ node, data }">
<span class="first-span" :title="node.label">{{ node.label }}</span> <span class="first-span" :title="node.label">{{ node.label }}</span>
<span class="list-span"> <span class="list-span">
<el-button <el-button type="text" size="mini" @click="() => append(node, data)">
type="text"
size="mini"
@click="() => append(node, data)"
>
<i class="el-icon-circle-plus" title="添加子节点"></i> <i class="el-icon-circle-plus" title="添加子节点"></i>
</el-button> </el-button>
<el-button type="text" size="mini" @click="() => edit(node, data)"> <el-button type="text" size="mini" @click="() => edit(node, data)">
<i class="el-icon-edit-outline" title="编辑机构"></i> <i class="el-icon-edit-outline" title="编辑机构"></i>
</el-button> </el-button>
<el-button <el-button type="text" size="mini" @click="() => remove(node, data)">
type="text"
size="mini"
@click="() => remove(node, data)"
>
<i class="el-icon-error" title="删除子节点"></i> <i class="el-icon-error" title="删除子节点"></i>
</el-button> </el-button>
<!-- <el-button <!-- <el-button
...@@ -55,11 +34,10 @@ ...@@ -55,11 +34,10 @@
</el-tree> </el-tree>
</div> </div>
<div class="right-div"> <div class="right-div">
<component :is="currentRole" :clientDetails="clientDetails_s" ref="mychild"/> <component :is="currentRole" :clientDetails="clientDetails_s" :treeData="tree_data" ref="mychild" />
</div> </div>
<el-dialog title="新增文件夹" :visible.sync="dialogVisible"> <el-dialog title="新增文件夹" :visible.sync="dialogVisible">
<span class="dialogContent" <span class="dialogContent"><span><span style="color:red">*</span>名称:</span>
><span><span style="color:red">*</span>名称:</span>
<el-input v-model="name" placeholder="请输入名称"></el-input> <el-input v-model="name" placeholder="请输入名称"></el-input>
</span> </span>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
...@@ -88,12 +66,12 @@ export default { ...@@ -88,12 +66,12 @@ export default {
components: { navs }, components: { navs },
data() { data() {
return { return {
clientDetails_s: { type: [this.fl_type],module_name:this.module_name,type_folder:this.type_folder,fl_type:this.fl_type }, clientDetails_s: { type: [this.fl_type], module_name: this.module_name, type_folder: this.type_folder, fl_type: this.fl_type},
currentRole: "navs", currentRole: "navs",
tree_data: [], //左侧树结构的数据 tree_data: [], //左侧树结构的数据
dialogVisible: false, //新增子节点弹出框 dialogVisible: false, //新增子节点弹出框
dialogVisible_edit:false, dialogVisible_edit: false,
name_edit:'', name_edit: '',
name: "", //新增子节点的名称 name: "", //新增子节点的名称
this_data: "", this_data: "",
this_node: "", this_node: "",
...@@ -102,9 +80,10 @@ export default { ...@@ -102,9 +80,10 @@ export default {
children: 'children', children: 'children',
label: 'label' label: 'label'
}, },
module_name:'', module_name: '',
fl_type:'', fl_type: '',
type_folder:'', type_folder: '',
nodeClickList: []
}; };
}, },
props: { props: {
...@@ -114,13 +93,13 @@ export default { ...@@ -114,13 +93,13 @@ export default {
}, },
}, },
methods: { methods: {
edit(node,data){ edit(node, data) {
this.name_edit = data.label; this.name_edit = data.label;
this.dialogVisible_edit = true; this.dialogVisible_edit = true;
this.this_data = data; this.this_data = data;
this.this_node = node; this.this_node = node;
}, },
edit_xzzj(){ edit_xzzj() {
if (this.name_edit.trim() == "") { if (this.name_edit.trim() == "") {
this.$message({ this.$message({
type: "warning", type: "warning",
...@@ -129,7 +108,7 @@ export default { ...@@ -129,7 +108,7 @@ export default {
return; return;
} }
let paramDatas = { let paramDatas = {
id:this.this_data.id, id: this.this_data.id,
label: this.name_edit.trim(), label: this.name_edit.trim(),
}; };
post("api/rest/3z/document/updateDocumentTreeItem", paramDatas) post("api/rest/3z/document/updateDocumentTreeItem", paramDatas)
...@@ -169,7 +148,7 @@ export default { ...@@ -169,7 +148,7 @@ export default {
level: this.this_node.data.level + 1, level: this.this_node.data.level + 1,
module: this.module_name, module: this.module_name,
parentCode: this.this_node.data.code, parentCode: this.this_node.data.code,
createId:this.$store.state.userInfo.account, createId: this.$store.state.userInfo.account,
}; };
post("api/rest/3z/document/addDocumentTreeItem", paramDatas) post("api/rest/3z/document/addDocumentTreeItem", paramDatas)
.then((data) => { .then((data) => {
...@@ -229,20 +208,20 @@ export default { ...@@ -229,20 +208,20 @@ export default {
//查询tree数据 //查询tree数据
query_tree() { query_tree() {
this.tree_data = []; this.tree_data = [];
get("api/rest/3z/document/queryDocumentTree?module="+this.module_name) get("api/rest/3z/document/queryDocumentTree?module=" + this.module_name)
.then((res) => { .then((res) => {
this.tree_data = [{ this.tree_data = [{
id:this.fl_type, id: this.fl_type,
label:'文档列表', label: '文档列表',
level:0, level: 0,
children:res children: res
}]; }];
this.currentRole = "navs"; this.currentRole = "navs";
let arr = [this.fl_type]; let arr = [this.fl_type];
if(res.length>0){ if (res.length > 0) {
arr.push(res[0].id) arr.push(res[0].id)
} }
this.clientDetails_s = { type: arr,module_name:this.module_name,type_folder:this.type_folder,fl_type:this.fl_type }; this.clientDetails_s = { type: arr, module_name: this.module_name, type_folder: this.type_folder, fl_type: this.fl_type};
}) })
.catch((err) => { .catch((err) => {
this.$message.warning(err.message); this.$message.warning(err.message);
...@@ -255,21 +234,13 @@ export default { ...@@ -255,21 +234,13 @@ export default {
//节点点击事件 //节点点击事件
handleNodeClick(node, data) { handleNodeClick(node, data) {
this.currentRole = "navs"; this.currentRole = "navs";
let arr = [node.id]; this.nodeClickList = [node.id];
if(data.childNodes.length>0){ if (data.childNodes.length > 0) {
arr.push(data.childNodes[0].data.id) this.nodeClickList.push(data.childNodes[0].data.id)
} }
this.clientDetails_s = { type: arr ,module_name:this.module_name,type_folder:this.type_folder,fl_type:this.fl_type}; this.clientDetails_s = { type: this.nodeClickList, module_name: this.module_name, type_folder: this.type_folder, fl_type: this.fl_type};
},
//查询当前节点的最顶层节点ID
getparentNode(data) {
if (data.data.parentCode == null) {
return data.data.id;
} else {
return this.getparentNode(data.parent);
} }
}, },
},
watch: { watch: {
filterText(val) { filterText(val) {
this.$refs.tree.filter(val); this.$refs.tree.filter(val);
...@@ -287,29 +258,39 @@ export default { ...@@ -287,29 +258,39 @@ export default {
#wx_data_public { #wx_data_public {
width: calc(100% - 0px); width: calc(100% - 0px);
height: calc(100% - 0px); height: calc(100% - 0px);
.left-div { .left-div {
width: 300px; width: 300px;
height: 100%; height: 100%;
box-sizing: border-box; box-sizing: border-box;
float: left; float: left;
input { input {
color: white; color: white;
background-color: transparent; background-color: transparent;
} }
.el-input { .el-input {
position: relative; position: relative;
font-size: 14px; font-size: 14px;
display: inline-block; display: inline-block;
width: 100%; width: 100%;
} }
.el-button + .el-button {
.el-button+.el-button {
margin-left: 0px !important; margin-left: 0px !important;
} }
.myTree>.el-tree-node>.el-tree-node__content .el-checkbox {
display: none;
}
.el-tree { .el-tree {
color: white; color: white;
background: transparent; background: transparent;
height: calc(100% - 50px); height: calc(100% - 50px);
margin-top: 10px; margin-top: 10px;
.el-tree-node__content { .el-tree-node__content {
height: 40px; height: 40px;
// .el-icon-circle-plus { // .el-icon-circle-plus {
...@@ -328,10 +309,12 @@ export default { ...@@ -328,10 +309,12 @@ export default {
// display: none; // display: none;
// } // }
} }
.el-tree-node { .el-tree-node {
position: relative; position: relative;
padding-left: 0px; // 缩进量 padding-left: 0px; // 缩进量
} }
.el-tree-node__children { .el-tree-node__children {
padding-left: 15px; // 缩进量 padding-left: 15px; // 缩进量
} }
...@@ -347,6 +330,7 @@ export default { ...@@ -347,6 +330,7 @@ export default {
border-width: 1px; border-width: 1px;
border-left: 1px solid #1895a2; border-left: 1px solid #1895a2;
} }
// 当前层最后一个节点的竖线高度固定 // 当前层最后一个节点的竖线高度固定
.el-tree-node:last-child::before { .el-tree-node:last-child::before {
height: 38px; // 可以自己调节到合适数值 height: 38px; // 可以自己调节到合适数值
...@@ -365,48 +349,52 @@ export default { ...@@ -365,48 +349,52 @@ export default {
} }
// 去掉最顶层的虚线,放最下面样式才不会被上面的覆盖了 // 去掉最顶层的虚线,放最下面样式才不会被上面的覆盖了
& > .el-tree-node::after { &>.el-tree-node::after {
border-top: none; border-top: none;
} }
& > .el-tree-node::before {
&>.el-tree-node::before {
border-left: none; border-left: none;
} }
// 展开关闭的icon // 展开关闭的icon
.el-tree-node__expand-icon{ .el-tree-node__expand-icon {
font-size: 16px; font-size: 16px;
// 叶子节点(无子节点) // 叶子节点(无子节点)
&.is-leaf{ &.is-leaf {
color: transparent; color: transparent;
// display: none; // 也可以去掉 // display: none; // 也可以去掉
} }
} }
} }
.el-tree > .el-tree-node > .el-tree-node__content {
.el-tree>.el-tree-node>.el-tree-node__content {
height: 40px; height: 40px;
background-image: url(../../assets/img/yqjc/24.png); background-image: url(../../assets/img/yqjc/24.png);
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
.el-icon-error { .el-icon-error {
display: none !important; display: none !important;
} }
.el-icon-edit-outline { .el-icon-edit-outline {
display: none !important; display: none !important;
} }
} }
.el-tree
> .el-tree-node .el-tree>.el-tree-node>.el-tree-node__children>.el-tree-node>.el-tree-node__content {
> .el-tree-node__children
> .el-tree-node
> .el-tree-node__content {
height: 40px; height: 40px;
// background-image: url(../../assets/img/yqjc/24.png); // background-image: url(../../assets/img/yqjc/24.png);
background-repeat: no-repeat; background-repeat: no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }
.el-tree > .el-tree-node > .el-tree-node__content > .el-tree-node__label {
.el-tree>.el-tree-node>.el-tree-node__content>.el-tree-node__label {
font-size: 16px !important; font-size: 16px !important;
} }
.custom-tree-node { .custom-tree-node {
flex: 1; flex: 1;
display: flex; display: flex;
...@@ -415,6 +403,7 @@ export default { ...@@ -415,6 +403,7 @@ export default {
font-size: 14px; font-size: 14px;
padding-right: 8px; padding-right: 8px;
width: 82%; width: 82%;
.first-span { .first-span {
width: 100%; width: 100%;
float: left; float: left;
...@@ -422,12 +411,14 @@ export default { ...@@ -422,12 +411,14 @@ export default {
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;
} }
// .list-span{ // .list-span{
// position: absolute; // position: absolute;
// right: 20px; // right: 20px;
// } // }
} }
.el-tree > .el-tree-node > .el-tree-node__children {
.el-tree>.el-tree-node>.el-tree-node__children {
background-color: #1d2d46ad !important; background-color: #1d2d46ad !important;
width: calc(100% - 15px); width: calc(100% - 15px);
height: calc(100% - 44px); height: calc(100% - 44px);
...@@ -437,7 +428,8 @@ export default { ...@@ -437,7 +428,8 @@ export default {
// width: 300px; // width: 300px;
// } // }
} }
.el-tree-node:focus > .el-tree-node__content {
.el-tree-node:focus>.el-tree-node__content {
background-color: #00648a96 !important; background-color: #00648a96 !important;
// border-radius: 5px; // border-radius: 5px;
} }
...@@ -447,29 +439,33 @@ export default { ...@@ -447,29 +439,33 @@ export default {
background-color: #00638a50 !important; background-color: #00638a50 !important;
// border-radius: 5px; // border-radius: 5px;
} }
.el-tree--highlight-current
.el-tree-node.is-current .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
> .el-tree-node__content {
background-color: #00648a96 !important; background-color: #00648a96 !important;
// border-radius: 5px; // border-radius: 5px;
} }
.el-icon-circle-plus { .el-icon-circle-plus {
font-size: 16px; font-size: 16px;
color: #00a6f5; color: #00a6f5;
} }
.el-icon-edit-outline { .el-icon-edit-outline {
font-size: 16px; font-size: 16px;
color: #2ae209; color: #2ae209;
} }
.el-icon-error { .el-icon-error {
font-size: 16px; font-size: 16px;
color: #ff5454; color: #ff5454;
} }
.el-icon-upload { .el-icon-upload {
font-size: 16px; font-size: 16px;
color: #2bce0e; color: #2bce0e;
} }
} }
.right-div { .right-div {
width: calc(100% - 310px); width: calc(100% - 310px);
height: 100%; height: 100%;
...@@ -478,24 +474,30 @@ export default { ...@@ -478,24 +474,30 @@ export default {
background: url("../../assets/img/yqjc/02.png") no-repeat; background: url("../../assets/img/yqjc/02.png") no-repeat;
background-size: 100% 100%; background-size: 100% 100%;
} }
.el-dialog { .el-dialog {
width: 400px; width: 400px;
background-color: #1d2d47; background-color: #1d2d47;
.el-dialog__header { .el-dialog__header {
text-align: center; text-align: center;
.el-dialog__title { .el-dialog__title {
color: white; color: white;
} }
} }
.el-dialog__body{
.el-dialog__body {
.dialogContent { .dialogContent {
span { span {
float: left; float: left;
margin-top: 5.5px; margin-top: 5.5px;
color: white; color: white;
} }
.el-input { .el-input {
width: 80%; width: 80%;
input { input {
height: 30px; height: 30px;
} }
...@@ -503,23 +505,28 @@ export default { ...@@ -503,23 +505,28 @@ export default {
} }
} }
} }
#impor_file .el-dialog__body{
#impor_file .el-dialog__body {
text-align: center; text-align: center;
} }
.importData .el-dialog { .importData .el-dialog {
width: 35%; width: 35%;
td, td,
th { th {
text-align: center; text-align: center;
} }
} }
.el-dialog{
.el-dialog {
.el-input__inner { .el-input__inner {
color: white !important; color: white !important;
background: none !important; background: none !important;
border: 1px solid #146a80 !important; border: 1px solid #146a80 !important;
box-shadow: 0 0 10px #1b6097; box-shadow: 0 0 10px #1b6097;
} }
.el-textarea__inner { .el-textarea__inner {
color: white !important; color: white !important;
background: none !important; background: none !important;
......
...@@ -10,8 +10,8 @@ ...@@ -10,8 +10,8 @@
</el-date-picker> </el-date-picker>
</div> </div>
<div class="toggle-switch"> <div class="toggle-switch">
<el-switch style="display: block" v-model="toggle_value" active-color="#09e8e4" inactive-color="#409eff" <el-switch style="display: block" v-model="toggle_value" active-color="#09e8e4"
active-text="全文检索" inactive-text="列表检索"> inactive-color="#409eff" active-text="全文检索" inactive-text="列表检索">
</el-switch> </el-switch>
</div> </div>
<div class="button-discuss" @click="searchs">搜索</div> <div class="button-discuss" @click="searchs">搜索</div>
...@@ -53,12 +53,8 @@ ...@@ -53,12 +53,8 @@
<template slot-scope="scope"> <template slot-scope="scope">
<i class="el-icon-view" @click="handleView(scope.$index, scope.row)" <i class="el-icon-view" @click="handleView(scope.$index, scope.row)"
title="预览"></i>&nbsp; title="预览"></i>&nbsp;
<!-- <i <i class="el-icon-download" @click="downloadLiterature(scope.$index, scope.row)"
class="el-icon-download" title="下载"></i>&nbsp;
@click="handleDownload(scope.$index, scope.row)"
title="下载"
></i
>&nbsp; -->
<i class="el-icon-edit" @click="handleEdit(scope.$index, scope.row)" <i class="el-icon-edit" @click="handleEdit(scope.$index, scope.row)"
title="编辑"></i>&nbsp; title="编辑"></i>&nbsp;
<!-- <i class="el-icon-delete-solid" @click="handleOpen(scope.$index, scope.row)" <!-- <i class="el-icon-delete-solid" @click="handleOpen(scope.$index, scope.row)"
...@@ -72,9 +68,10 @@ ...@@ -72,9 +68,10 @@
</el-table> </el-table>
</div> </div>
<div class="page-div"> <div class="page-div">
<el-pagination class="myPagination" background layout="total, sizes, prev, pager, next, jumper" <el-pagination class="myPagination" background
@size-change="handleSizeChange" :page-size="pageSize" :current-page="current_page" layout="total, sizes, prev, pager, next, jumper" @size-change="handleSizeChange"
:total="total" @current-change="handleCurrentChange_lb" :page-sizes="[10, 20, 50, 100]"> :page-size="pageSize" :current-page="current_page" :total="total"
@current-change="handleCurrentChange_lb" :page-sizes="[10, 20, 50, 100]">
</el-pagination> </el-pagination>
</div> </div>
</div> </div>
...@@ -134,8 +131,8 @@ ...@@ -134,8 +131,8 @@
<el-input style="width: 30%; margin-left: 35%; margin-top: 20%" v-model="gjc_input" <el-input style="width: 30%; margin-left: 35%; margin-top: 20%" v-model="gjc_input"
placeholder="请输入关键词 回车搜索" suffix-icon="el-icon-search" @keyup.enter.native="onSubmit"></el-input> placeholder="请输入关键词 回车搜索" suffix-icon="el-icon-search" @keyup.enter.native="onSubmit"></el-input>
<el-tooltip class="item" effect="light" content="文件分析" placement="top-start"> <el-tooltip class="item" effect="light" content="文件分析" placement="top-start">
<el-button type="primary" icon="el-icon-data-line" size="small" style="right: 75px;position: absolute;" <el-button type="primary" icon="el-icon-data-line" size="small"
@click="wjfx_cli()" circle></el-button> style="right: 75px;position: absolute;" @click="wjfx_cli()" circle></el-button>
</el-tooltip> </el-tooltip>
<el-tooltip class="item" effect="light" content="智能检索分析" placement="top-start"> <el-tooltip class="item" effect="light" content="智能检索分析" placement="top-start">
<el-button type="info" icon="el-icon-data-board" size="small" <el-button type="info" icon="el-icon-data-board" size="small"
...@@ -185,8 +182,8 @@ ...@@ -185,8 +182,8 @@
<!-- <i class="el-icon-delete-solid" @click="handleOpen(scope.$index, scope.row)" <!-- <i class="el-icon-delete-solid" @click="handleOpen(scope.$index, scope.row)"
title="打开软件" v-if="fl_type===2"></i>&nbsp; --> title="打开软件" v-if="fl_type===2"></i>&nbsp; -->
<div class="ht-div" @click="handleOpen(scope.$index, scope.row)" v-if="fl_type === 2" <div class="ht-div" @click="handleOpen(scope.$index, scope.row)"
title="打开软件"></div> v-if="fl_type === 2" title="打开软件"></div>
<i class="el-icon-delete-solid" @click="handleDelete(scope.$index, scope.row)" <i class="el-icon-delete-solid" @click="handleDelete(scope.$index, scope.row)"
title="删除"></i> title="删除"></i>
</template> </template>
...@@ -201,7 +198,8 @@ ...@@ -201,7 +198,8 @@
</div> </div>
</div> </div>
</div> </div>
<el-dialog title="新增文档" :visible.sync="centerDialogVisible_add" width="30%" center class="xzwd"> <el-dialog v-if="centerDialogVisible_add" title="新增文档" :visible.sync="centerDialogVisible_add" width="30%"
center class="xzwd">
<el-form :model="form_add" label-width="80px" style="margin-bottom: 0px" ref="forms" :rules="rules"> <el-form :model="form_add" label-width="80px" style="margin-bottom: 0px" ref="forms" :rules="rules">
<el-form-item label="文档名称" prop="name"> <el-form-item label="文档名称" prop="name">
<el-input v-model="form_add.name" maxlength="20" show-word-limit placeholder="请输入文档名称"></el-input> <el-input v-model="form_add.name" maxlength="20" show-word-limit placeholder="请输入文档名称"></el-input>
...@@ -221,8 +219,8 @@ ...@@ -221,8 +219,8 @@
<el-input v-model="form_add.gjc" show-word-limit placeholder="请输入关键词,多个关键词使用英文逗号,隔开"></el-input> <el-input v-model="form_add.gjc" show-word-limit placeholder="请输入关键词,多个关键词使用英文逗号,隔开"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="文档描述"> <el-form-item label="文档描述">
<el-input type="textarea" placeholder="请输入文档描述" v-model="form_add.ms" maxlength="100" show-word-limit <el-input type="textarea" placeholder="请输入文档描述" v-model="form_add.ms" maxlength="100"
:rows="4"> show-word-limit :rows="4">
</el-input> </el-input>
</el-form-item> </el-form-item>
<el-form-item label="选择文件" style="margin-bottom: 0px" prop="fileList"> <el-form-item label="选择文件" style="margin-bottom: 0px" prop="fileList">
...@@ -235,6 +233,12 @@ ...@@ -235,6 +233,12 @@
</div> </div>
</el-upload> </el-upload>
</el-form-item> </el-form-item>
<el-form-item label="选择目录">
<el-tree class="myTree" :data="tree_data" node-key="id" show-checkbox :expand-on-click-node="false"
highlight-current :props="defaultProps" :check-strictly="true" ref="tree"
:default-expanded-keys="[this.fl_type]" @check-change="handleCheckChange" :indent=1>
</el-tree>
</el-form-item>
</el-form> </el-form>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="centerDialogVisible_add = false">取 消</el-button> <el-button @click="centerDialogVisible_add = false">取 消</el-button>
...@@ -262,8 +266,8 @@ ...@@ -262,8 +266,8 @@
<el-input v-model="form_edit.gjc" show-word-limit placeholder="请输入关键词,多个关键词使用英文逗号,隔开"></el-input> <el-input v-model="form_edit.gjc" show-word-limit placeholder="请输入关键词,多个关键词使用英文逗号,隔开"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="文档描述"> <el-form-item label="文档描述">
<el-input type="textarea" placeholder="请输入文档描述" v-model="form_edit.ms" maxlength="100" show-word-limit <el-input type="textarea" placeholder="请输入文档描述" v-model="form_edit.ms" maxlength="100"
:rows="4"> show-word-limit :rows="4">
</el-input> </el-input>
</el-form-item> </el-form-item>
</el-form> </el-form>
...@@ -273,8 +277,10 @@ ...@@ -273,8 +277,10 @@
</span> </span>
</el-dialog> </el-dialog>
<el-dialog title="大文件上传" :visible.sync="centerDialogVisible_bigFile" width="30%" center class="xzwd"> <el-dialog v-if="centerDialogVisible_bigFile" title="大文件上传" :visible.sync="centerDialogVisible_bigFile"
<BigfileUpload :checkFileExist="checkFileExist" :addFileInfo="addFileInfo" @Finished="bigFileUploadFinished"> width="30%" center class="xzwd">
<BigfileUpload :checkFileExist="checkFileExist" :addFileInfo="addFileInfo" :treeDataBig="tree_data"
:flType="fl_type" @Finished="bigFileUploadFinished">
</BigfileUpload> </BigfileUpload>
</el-dialog> </el-dialog>
...@@ -314,7 +320,8 @@ import { ...@@ -314,7 +320,8 @@ import {
import { uuid } from "../../util/data_util"; import { uuid } from "../../util/data_util";
import BigfileUpload from "../../components/common/bigfile_upload.vue"; import BigfileUpload from "../../components/common/bigfile_upload.vue";
import { fileMd5Sum, getFileMD5Progress } from '../../util/file_md5.js'; import { fileMd5Sum, getFileMD5Progress } from '../../util/file_md5.js';
import VideoPlayer from "../../components/common/video_player.vue" import VideoPlayer from "../../components/common/video_player.vue";
import { downloadFile, downloadDocument } from "../../api/xxxl/llxx";
export default { export default {
data() { data() {
return { return {
...@@ -370,6 +377,7 @@ export default { ...@@ -370,6 +377,7 @@ export default {
tab_jsfx: true, tab_jsfx: true,
znjsfx_name: "", znjsfx_name: "",
clientDetails_type: [], //默认查询id为21的方案预案 clientDetails_type: [], //默认查询id为21的方案预案
clientDetails_check_type: [],
ids: "", ids: "",
module_name: '', module_name: '',
fl_type: '', fl_type: '',
...@@ -380,6 +388,11 @@ export default { ...@@ -380,6 +388,11 @@ export default {
fileList: [ fileList: [
{ required: true, message: '请选择文件', trigger: 'change' } { required: true, message: '请选择文件', trigger: 'change' }
] ]
},
tree_data: [],
defaultProps: {
children: 'children',
label: 'label'
} }
}; };
}, },
...@@ -392,6 +405,10 @@ export default { ...@@ -392,6 +405,10 @@ export default {
type: Object, type: Object,
default: {}, default: {},
}, },
treeData: {
type: Array,
default: []
}
}, },
methods: { methods: {
//列表动画效果结束让全文动画开始 //列表动画效果结束让全文动画开始
...@@ -600,6 +617,10 @@ export default { ...@@ -600,6 +617,10 @@ export default {
item.fileInfo.file.uuid; item.fileInfo.file.uuid;
download(path_srt, item.fileInfo.file.name); download(path_srt, item.fileInfo.file.name);
}, },
//文件下载
downloadLiterature(index, row) {
downloadDocument('Document', row.file.uuid, row.file.name);
},
//打开软件 //打开软件
handleOpen(index, row) { handleOpen(index, row) {
let _this = this; let _this = this;
...@@ -647,6 +668,7 @@ export default { ...@@ -647,6 +668,7 @@ export default {
}; };
_this.edit_ids = row.id; _this.edit_ids = row.id;
_this.centerDialogVisible_edit = true; _this.centerDialogVisible_edit = true;
_this.$refs.forms1.resetFields();
// setTimeout(function () { // setTimeout(function () {
// _this.$refs.forms1.resetFields(); // _this.$refs.forms1.resetFields();
// }, 200) // }, 200)
...@@ -698,13 +720,13 @@ export default { ...@@ -698,13 +720,13 @@ export default {
//新增弹出框弹出 //新增弹出框弹出
handleAdd() { handleAdd() {
if (this.clientDetails_type[0] == 1 || this.clientDetails_type[0] == 2 || this.clientDetails_type[0] == 3 || this.clientDetails_type[0] == 4) { // if (this.clientDetails_check_type.length == 0 || this.clientDetails_check_type.includes(1) || this.clientDetails_check_type.includes(2) || this.clientDetails_check_type.includes(3) || this.clientDetails_check_type.includes(4)) {
this.$message({ // this.$message({
type: "warning", // type: "warning",
message: "请选择文档列表子节点", // message: "请选择文档列表子节点",
}); // });
return; // return;
} // }
let _this = this; let _this = this;
//设置下拉框默认选择第一条 //设置下拉框默认选择第一条
// _this.form_add.region = _this.options[0].value; // _this.form_add.region = _this.options[0].value;
...@@ -715,13 +737,13 @@ export default { ...@@ -715,13 +737,13 @@ export default {
}, },
bigFileUploadAdd() {//弹出 bigFileUploadAdd() {//弹出
if (this.clientDetails_type[0] == 1 || this.clientDetails_type[0] == 2 || this.clientDetails_type[0] == 3 || this.clientDetails_type[0] == 4) { // if (this.clientDetails_check_type.length == 0 || this.clientDetails_check_type.includes(1) || this.clientDetails_check_type.includes(2) || this.clientDetails_check_type.includes(3) || this.clientDetails_check_type.includes(4)) {
this.$message({ // this.$message({
type: "warning", // type: "warning",
message: "请选择文档列表子节点", // message: "请选择文档列表子节点",
}); // });
return; // return;
} // }
let _this = this; let _this = this;
_this.centerDialogVisible_bigFile = true; _this.centerDialogVisible_bigFile = true;
}, },
...@@ -736,7 +758,7 @@ export default { ...@@ -736,7 +758,7 @@ export default {
createId: this.$store.getters.userInfo.account, createId: this.$store.getters.userInfo.account,
description: null, description: null,
file: evt.file, file: evt.file,
treeId: this.clientDetails_type[0], treeId: evt.treeId.join(','),
name: evt.file.name, name: evt.file.name,
keyword: null, keyword: null,
module: this.module_name module: this.module_name
...@@ -803,7 +825,7 @@ export default { ...@@ -803,7 +825,7 @@ export default {
}); });
return; return;
} else { } else {
if (this.clientDetails_type[0] == 1 || this.clientDetails_type[0] == 2 || this.clientDetails_type[0] == 3 || this.clientDetails_type[0] == 4) { if (this.clientDetails_check_type.length == 0 || this.clientDetails_check_type.includes(1) || this.clientDetails_check_type.includes(2) || this.clientDetails_check_type.includes(3) || this.clientDetails_check_type.includes(4)) {
this.$message({ this.$message({
type: "warning", type: "warning",
message: "请选择文档列表子节点", message: "请选择文档列表子节点",
...@@ -822,7 +844,7 @@ export default { ...@@ -822,7 +844,7 @@ export default {
type: file_ext, type: file_ext,
uuid: uuid() + "." + file_ext, uuid: uuid() + "." + file_ext,
}, },
treeId: this.clientDetails_type[0], treeId: this.clientDetails_check_type.join(','),
name: this.form_add.name, name: this.form_add.name,
keyword: this.form_add.gjc.trim(), keyword: this.form_add.gjc.trim(),
module: this.module_name module: this.module_name
...@@ -870,6 +892,7 @@ export default { ...@@ -870,6 +892,7 @@ export default {
endLoading(); endLoading();
console.log("loaded"); console.log("loaded");
self.handleCurrentChange_lb(1); self.handleCurrentChange_lb(1);
this.clientDetails_check_type = [];
}).catch(err => { }).catch(err => {
endLoading(); endLoading();
console.log("error"); console.log("error");
...@@ -973,6 +996,15 @@ export default { ...@@ -973,6 +996,15 @@ export default {
this.znjsfx_name = ""; this.znjsfx_name = "";
this.searchs(1); this.searchs(1);
this.wjfx_qh = true; this.wjfx_qh = true;
},
handleCheckChange(node, isSelected) {
if (isSelected) {
this.clientDetails_check_type.push(node.id);
} else {
this.clientDetails_check_type = this.clientDetails_check_type.filter(item => {
return item != node.id
})
}
} }
}, },
mounted() { mounted() {
...@@ -1040,6 +1072,9 @@ export default { ...@@ -1040,6 +1072,9 @@ export default {
this.znjsfx_name = ""; this.znjsfx_name = "";
this.searchs(1); this.searchs(1);
}, },
treeData: function (val) {
this.tree_data = val;
}
}, },
}; };
</script> </script>
...@@ -1497,5 +1532,152 @@ export default { ...@@ -1497,5 +1532,152 @@ export default {
padding: 25px 25px 0px; padding: 25px 25px 0px;
} }
} }
.myTree>.el-tree-node>.el-tree-node__content .el-checkbox {
display: none;
}
.el-tree {
color: white;
background: transparent;
// height: 150px;
// max-height: 200px;
margin-top: 10px;
// overflow-y: auto;
.el-tree-node__content {
height: 40px;
// .el-icon-circle-plus {
// display: none;
// }
// .el-icon-error {
// display: none;
// }
// .el-icon-upload {
// display: none;
// }
// .el-icon-edit-outline {
// display: none;
// }
// .list-span{
// display: none;
// }
}
.el-tree-node {
position: relative;
padding-left: 0px; // 缩进量
}
.el-tree-node__children {
padding-left: 15px; // 缩进量
}
// 竖线
.el-tree-node::before {
content: "";
height: 100%;
width: 1px;
position: absolute;
left: -3px;
top: -17px;
border-width: 1px;
border-left: 1px solid #1895a2;
}
// 当前层最后一个节点的竖线高度固定
.el-tree-node:last-child::before {
height: 38px; // 可以自己调节到合适数值
}
// 横线
.el-tree-node::after {
content: "";
width: 13px;
height: 20px;
position: absolute;
left: -3px;
top: 20px;
border-width: 1px;
border-top: 1px solid #1895a2;
}
// 去掉最顶层的虚线,放最下面样式才不会被上面的覆盖了
&>.el-tree-node::after {
border-top: none;
}
&>.el-tree-node::before {
border-left: none;
}
// 展开关闭的icon
.el-tree-node__expand-icon {
font-size: 16px;
// 叶子节点(无子节点)
&.is-leaf {
color: transparent;
// display: none; // 也可以去掉
}
}
}
.el-tree>.el-tree-node>.el-tree-node__content {
height: 40px;
background: none !important;
border: 1px solid #146a80 !important;
box-shadow: 0 0 10px #1b6097;
// background-image: url(../../assets/img/yqjc/24.png);
// background-repeat: no-repeat;
// background-size: 100% 100%;
.el-icon-error {
display: none !important;
}
.el-icon-edit-outline {
display: none !important;
}
}
.el-tree>.el-tree-node>.el-tree-node__children>.el-tree-node>.el-tree-node__content {
height: 40px;
// background-image: url(../../assets/img/yqjc/24.png);
background-repeat: no-repeat;
background-size: 100% 100%;
}
.el-tree>.el-tree-node>.el-tree-node__content>.el-tree-node__label {
font-size: 16px !important;
}
.el-tree>.el-tree-node>.el-tree-node__children {
background-color: #1d2d46ad !important;
width: calc(100% - 15px);
// height: calc(100% - 44px);
// overflow: auto;
// position: relative;
// .el-tree-node{
// width: 300px;
// }
}
.el-tree-node:focus>.el-tree-node__content {
background-color: #00648a96 !important;
// border-radius: 5px;
}
.el-tree-node__content:hover,
.el-tree-node__content:focus {
background-color: #00638a50 !important;
// border-radius: 5px;
}
.el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content {
background-color: #00648a96 !important;
// border-radius: 5px;
}
} }
</style> </style>
...@@ -30,8 +30,8 @@ module.exports = { ...@@ -30,8 +30,8 @@ module.exports = {
favicon: path.join('static/img/favicon.ico') favicon: path.join('static/img/favicon.ico')
}), }),
new HtmlWebpackPlugin({ new HtmlWebpackPlugin({
template: path.resolve(__dirname, './onlyoffice/dev.html'), // template: path.resolve(__dirname, './onlyoffice/dev.html'),
// template: path.resolve(__dirname, './onlyoffice/prod.html'), template: path.resolve(__dirname, './onlyoffice/prod.html'),
filename: 'onlyoffice.html', filename: 'onlyoffice.html',
inject: 'body', inject: 'body',
chunks: ['onlyoffice'], chunks: ['onlyoffice'],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment