格式调整

This commit is contained in:
yuekuo
2023-04-18 15:01:02 +08:00
parent 93a3e41710
commit a4fc250adc
2 changed files with 270 additions and 275 deletions
+269 -274
View File
@@ -15,19 +15,19 @@
</template>
</el-select>
<el-select v-model="q.labelOneId" multiple collapse-tags
:placeholder="'请选择' + tagsForm.tags01.name">
:placeholder="'请选择' + tagsForm.tags01.name">
<template v-for="item in tagsForm.tags01.childList">
<el-option :label="item.name" :value="item.id" :key="item.id"></el-option>
</template>
</el-select>
<el-select v-model="q.labelTwoId" multiple collapse-tags
:placeholder="'请选择' + tagsForm.tags02.name">
:placeholder="'请选择' + tagsForm.tags02.name">
<template v-for="item in tagsForm.tags02.childList">
<el-option :label="item.name" :value="item.id" :key="item.id"></el-option>
</template>
</el-select>
<el-select v-model="q.labelThreeId" multiple collapse-tags
:placeholder="'请选择' + tagsForm.tags03.name">
:placeholder="'请选择' + tagsForm.tags03.name">
<template v-for="item in tagsForm.tags03.childList">
<el-option :label="item.name" :value="item.id" :key="item.id"></el-option>
</template>
@@ -50,16 +50,20 @@
</el-row>
</div>
<div class="table">
<vxe-table :data="tableData" :empty-render="{name: 'NotData'}" align="center" border stripe v-table-min-height="'calc(100vh - 320px)'">
<vxe-table :data="tableData" :empty-render="{ name: 'NotData' }" align="center" border stripe
v-table-min-height="'calc(100vh - 320px)'">
<vxe-column show-overflow show-header-overflow type="seq" title="序号" width="77">
<template #default="{ row, rowIndex }">
{{ rowIndex + (q.pageNo - 1) * q.pageSize + 1 }}
</template>
</vxe-column>
<vxe-column show-overflow show-header-overflow field="labelOneName" :title="tagsForm.tags01.name"></vxe-column>
<vxe-column show-overflow show-header-overflow field="labelOneName"
:title="tagsForm.tags01.name"></vxe-column>
<vxe-column show-overflow show-header-overflow field="name" title="报告名称"></vxe-column>
<vxe-column show-overflow show-header-overflow field="labelTwoName" :title="tagsForm.tags02.name"></vxe-column>
<vxe-column show-overflow show-header-overflow field="labelThreeName" :title="tagsForm.tags03.name"></vxe-column>
<vxe-column show-overflow show-header-overflow field="labelTwoName"
:title="tagsForm.tags02.name"></vxe-column>
<vxe-column show-overflow show-header-overflow field="labelThreeName"
:title="tagsForm.tags03.name"></vxe-column>
<vxe-column show-overflow show-header-overflow field="year" title="报告年份"></vxe-column>
<vxe-column show-overflow show-header-overflow field="createDate" title="上传时间"></vxe-column>
<vxe-column show-overflow show-header-overflow title="操作" width="200" fixed="right">
@@ -67,29 +71,25 @@
<el-button type="text" @click="openReportModify('modify', row)">编辑</el-button>
<el-button type="text" class="del-btn" @click="reportDelete(row.id)">删除</el-button>
<el-button type="text" @click="previewRow(row)">预览</el-button>
<!-- <el-button type="text" @click="downloadRow(row)">下载</el-button>-->
<!-- <el-button type="text" @click="downloadRow(row)">下载</el-button>-->
</template>
</vxe-column>
</vxe-table>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="q.pageNo"
:page-sizes="[5, 10, 20]"
:page-size="q.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total"/>
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="q.pageNo"
:page-sizes="[5, 10, 20]" :page-size="q.pageSize" layout="total, sizes, prev, pager, next, jumper"
:total="total" />
</div>
<!--操作日志-->
<el-dialog title="操作日志" :visible.sync="dialogLog" width="1100px" :close-on-click-modal="false"
:close-on-press-escape="false" modal-append-to-body append-to-body>
:close-on-press-escape="false" modal-append-to-body append-to-body>
<div class="dialog-log">
<div class="search">
<el-row>
<el-col :span="20">
<div class="search-box-left">
<label>操作类型:</label>
<el-select v-model="doNames" multiple collapse-tags placeholder="请选择操作类型" @change="handleTyleChange">
<el-select v-model="doNames" multiple collapse-tags placeholder="请选择操作类型"
@change="handleTyleChange">
<el-option label="新增" value="新增"></el-option>
<el-option label="编辑" value="编辑"></el-option>
<el-option label="删除" value="删除"></el-option>
@@ -97,13 +97,8 @@
<label>报告名称:</label>
<el-input v-model="qLog.reportName" placeholder="请输入报告名称"></el-input>
<label>操作时间:</label>
<el-date-picker
v-model="qLogDateRange"
type="daterange"
range-separator=""
start-placeholder="开始时间"
end-placeholder="结束时间"
value-format="yyyy-MM-dd"
<el-date-picker v-model="qLogDateRange" type="daterange" range-separator="至"
start-placeholder="开始时间" end-placeholder="结束时间" value-format="yyyy-MM-dd"
@change="handleLogDate">
</el-date-picker>
</div>
@@ -117,7 +112,8 @@
</el-row>
</div>
<div class="table">
<vxe-table :data="logTableData" :empty-render="{name: 'NotData'}" align="center" border stripe height="440">
<vxe-table :data="logTableData" :empty-render="{ name: 'NotData' }" align="center" border stripe
height="440">
<vxe-column show-overflow show-header-overflow type="seq" title="序号" width="77">
<template #default="{ row, rowIndex }">
{{ rowIndex + (qLog.pageNo - 1) * qLog.pageSize + 1 }}
@@ -128,78 +124,66 @@
<vxe-column show-overflow show-header-overflow field="account" title="用户名"></vxe-column>
<vxe-column show-overflow show-header-overflow field="operateTime" title="操作时间"></vxe-column>
</vxe-table>
<el-pagination
@size-change="handleLogSizeChange"
@current-change="handleLogCurrentChange"
:current-page="qLog.pageNo"
:page-sizes="[5, 10, 20]"
:page-size="qLog.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="qLogTotal"/>
<el-pagination @size-change="handleLogSizeChange" @current-change="handleLogCurrentChange"
:current-page="qLog.pageNo" :page-sizes="[5, 10, 20]" :page-size="qLog.pageSize"
layout="total, sizes, prev, pager, next, jumper" :total="qLogTotal" />
</div>
</div>
</el-dialog>
<!--标签维护-->
<el-dialog title="标签维护" :visible.sync="dialogTags" width="30%" :close-on-click-modal="false"
:close-on-press-escape="false" modal-append-to-body append-to-body :before-close="handleTagsClose">
<div class="head">
<el-input placeholder="输入关键字进行过滤" v-model="filterText">
</el-input>
<el-button type="primary" class="btn" @click="add">新增</el-button>
</div>
<div class="tree">
<el-tree class="filter-tree" :data="data" default-expand-all :filter-node-method="filterNode"
ref="tree">
<span class="custom-tree-node" slot-scope="{ node,data}">
<span>{{ node.label }}</span>
<span>
<!-- <el-button type="text" @click.stop="add">新建</el-button> -->
<el-button type="text" v-if="data.label != '根节点'"
@click.stop="update(node, data)">编辑</el-button>
<el-button type="text" v-if="data.label != '根节点'"
@click.stop="deleteNode(node, data)">删除</el-button>
</span>
</span>
</el-tree>
</div>
<el-dialog title="标签维护" :visible.sync="dialogTags" width="30%" :close-on-click-modal="false"
:close-on-press-escape="false" modal-append-to-body append-to-body :before-close="handleTagsClose">
<div class="head">
<el-input placeholder="输入关键字进行过滤" v-model="filterText">
</el-input>
<el-button type="primary" class="btn" @click="add">新增</el-button>
</div>
<div class="tree">
<el-tree class="filter-tree" :data="data" default-expand-all :filter-node-method="filterNode" ref="tree">
<span class="custom-tree-node" slot-scope="{ node,data}">
<span>{{ node.label }}</span>
<span>
<!-- <el-button type="text" @click.stop="add">新建</el-button> -->
<el-button type="text" v-if="data.label != '根节点'"
@click.stop="update(node, data)">编辑</el-button>
<el-button type="text" v-if="data.label != '根节点'"
@click.stop="deleteNode(node, data)">删除</el-button>
</span>
</span>
</el-tree>
</div>
</el-dialog>
<labelModalVue ref="labelModalVue"></labelModalVue>
<!--报告上传-->
<el-dialog :title="mode === 'modify' ? '报告编辑' : '报告上传'" :visible.sync="dialogReport" width="750px" :close-on-click-modal="false"
:close-on-press-escape="false" modal-append-to-body append-to-body>
<el-dialog :title="mode === 'modify' ? '报告编辑' : '报告上传'" :visible.sync="dialogReport" width="750px"
:close-on-click-modal="false" :close-on-press-escape="false" modal-append-to-body append-to-body>
<div class="report-upload">
<el-form :model="reportF" label-width="186px" :disabled="mode === 'view'">
<el-form-item label="报告名称:" required>
<el-input v-model="reportF.name" placeholder="请填写" maxlength="100" show-word-limit></el-input>
</el-form-item>
<el-form-item label="关键词:">
<vue-tags-input
placeholder="请输入关键词"
v-model="reportF.tag"
:tags="tags"
@tags-changed="newTags => tags = newTags"
/>
<vue-tags-input placeholder="请输入关键词" v-model="reportF.keyContent" :tags="tags"
@tags-changed="newTags => tags = newTags" />
</el-form-item>
<el-form-item label="内容摘要:">
<el-input v-model="reportF.mainContent" placeholder="请填写" type="textarea"
maxlength="500" show-word-limit></el-input>
<el-input v-model="reportF.mainContent" placeholder="请填写" type="textarea" maxlength="500"
show-word-limit></el-input>
</el-form-item>
<el-form-item label="报告所属部门:">
<el-input v-model="reportF.department" placeholder="请填写" maxlength="100" show-word-limit></el-input>
</el-form-item>
<el-form-item label="报告涉密等级:">
<el-select v-model="reportF.secretLevel" placeholder="请选择报告涉密等级">
<el-option v-for="item in options" :key="item.value" :label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-select v-model="reportF.secretLevel" placeholder="请选择报告涉密等级">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="报告隐私等级:">
<el-select v-model="reportF.privacyLevel" placeholder="请选择报告隐私等级">
<el-option v-for="item in options" :key="item.value" :label="item.label"
:value="item.value">
</el-option>
</el-select>
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="上传报告:" required>
<el-row type="flex">
@@ -207,8 +191,8 @@
<el-input v-model="reportF.fileName" disabled placeholder="请上传报告"></el-input>
</el-col>
<el-col :span="5" align="center">
<el-upload action="#" :http-request="(params)=>uploadFile(params)"
:show-file-list="false" :before-upload="beforeUploadFile">
<el-upload action="#" :http-request="(params) => uploadFile(params)" :show-file-list="false"
:before-upload="beforeUploadFile">
<el-button>选择文件</el-button>
</el-upload>
</el-col>
@@ -219,25 +203,16 @@
</el-form-item>
<el-form-item label="报告年份:" required>
<el-date-picker v-model="reportF.year" type="year" value-format="yyyy" placeholder="请选择"
prefix-icon="null" :picker-options="pickerOptions"/>
prefix-icon="null" :picker-options="pickerOptions" />
</el-form-item>
<el-form-item label="标签:" required>
<el-cascader
width="100%"
v-model="reportF.label"
:options="cascaderOptions"
:props="{ checkStrictly: true }"
clearable>
<el-cascader width="100%" v-model="reportF.label" :options="cascaderOptions"
:props="{ checkStrictly: true }" clearable>
</el-cascader>
</el-form-item>
<el-form-item label="权限设置:" required>
<el-select v-model="reportF.reportUserIdList"
class="icon-auth"
multiple
collapse-tags
@change="changeSelect"
@visible-change="changeSelect"
placeholder="请选择">
<el-select v-model="reportF.reportUserIdList" class="icon-auth" multiple collapse-tags
@change="changeSelect" @visible-change="changeSelect" placeholder="请选择">
<el-checkbox class="check-all" v-model="checked" @change="selectAll">全选</el-checkbox>
<template v-for="item in userList">
<el-option :label="item.USNAME" :value="item.USID" :key="item.USID"></el-option>
@@ -252,19 +227,18 @@
</el-dialog>
<!--预览-->
<el-dialog title="预览" :visible.sync="dialogPreview" width="1000px" :close-on-click-modal="false"
:close-on-press-escape="false" modal-append-to-body append-to-body :fullscreen="fullscreen">
:close-on-press-escape="false" modal-append-to-body append-to-body :fullscreen="fullscreen">
<div slot="title" class="dialog-title">
<span>预览</span>
<img v-if="!fullscreen" class="full-screen" src="@/assets/imgs/icon-full.png" alt="" @click="fullscreen = !fullscreen">
<img v-if="!fullscreen" class="full-screen" src="@/assets/imgs/icon-full.png" alt=""
@click="fullscreen = !fullscreen">
<img v-else class="full-screen" src="@/assets/imgs/icon-small.png" alt="" @click="fullscreen = !fullscreen">
</div>
<div class="preview-dialog-body" :class="{'active': fullscreen}">
<div class="preview-dialog-body" :class="{ 'active': fullscreen }">
<!-- <img v-if="!fullscreen" class="full-screen" src="@/assets/imgs/icon-full.png" alt="" @click="fullscreen = !fullscreen">
<img v-else class="full-screen" src="@/assets/imgs/icon-small.png" alt="" @click="fullscreen = !fullscreen"> -->
<!-- 这里用v-if是让水印更新 -->
<el-scrollbar
v-if="dialogPreview"
v-watermark="{ text: watermarkText }">
<el-scrollbar v-if="dialogPreview" v-watermark="{ text: watermarkText }">
<div class="preview-content" v-html="content"></div>
</el-scrollbar>
</div>
@@ -273,14 +247,14 @@
</template>
<script>
import {fileType} from '@/utils/fileType'
import {downloadFile} from "../../utils/downloadFile";
import {formatDate} from '@/utils/date'
import { fileType } from '@/utils/fileType'
import { downloadFile } from "../../utils/downloadFile";
import { formatDate } from '@/utils/date'
import VueTagsInput from '@johmun/vue-tags-input';
import labelModalVue from './reportManager/labelModal.vue';
export default {
name: "ReportManager",
components:{
components: {
labelModalVue,
VueTagsInput
},
@@ -401,50 +375,51 @@ export default {
fileName: '', // 文件上传
fileId: '',
year: '', // 报告年份
labelOneId: '', // 标签1
labelOneName: '', // 标签1
labelTwoId: '', // 标签2
labelTwoName: '', // 标签2
labelThreeId: '', // 标签3
labelThreeName: '', // 标签3
// labelOneId: '', // 标签1
// labelOneName: '', // 标签1
// labelTwoId: '', // 标签2
// labelTwoName: '', // 标签2
// labelThreeId: '', // 标签3
// labelThreeName: '', // 标签3
reportUserIdList: [], // 权限
tag: []
},
tag:'',
tags:[],
tag: '',
tags: [],
labelOne: {},
labelTwo: {},
labelThree: {},
mode: '',
userList: [],
cascaderOptions:[{
value: 1,
label: '东南',
children: [{
value: 2,
label: '上海',
children: [
{ value: 3, label: '普陀' },
{ value: 4, label: '黄埔' },
{ value: 5, label: '徐汇' }
]
}, {
value: 7,
label: '江苏',
children: [
{ value: 8, label: '南京' },
{ value: 9, label: '苏州' },
{ value: 10, label: '无锡' }
]
}, {
value: 12,
label: '浙江',
children: [
{ value: 13, label: '杭州' },
{ value: 14, label: '宁波' },
{ value: 15, label: '嘉兴' }
]
}]
}],
cascaderOptions: [{
value: 1,
label: '东南',
children: [{
value: 2,
label: '上海',
children: [
{ value: 3, label: '普陀' },
{ value: 4, label: '黄埔' },
{ value: 5, label: '徐汇' }
]
}, {
value: 7,
label: '江苏',
children: [
{ value: 8, label: '南京' },
{ value: 9, label: '苏州' },
{ value: 10, label: '无锡' }
]
}, {
value: 12,
label: '浙江',
children: [
{ value: 13, label: '杭州' },
{ value: 14, label: '宁波' },
{ value: 15, label: '嘉兴' }
]
}]
}],
pickerOptions: {
disabledDate(time) {
return time.getFullYear() > new Date().getFullYear() + 1 || time.getFullYear() < new Date().getFullYear() - 10;
@@ -482,30 +457,31 @@ export default {
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
add(){
add() {
this.$refs.labelModalVue.open()
},
update(node, data){
update(node, data) {
this.$refs.labelModalVue.open(node, data)
},
deleteNode(node, data){
this.$confirm('确认删除?','提示',{
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'})
.then(_ => {
done();
})
.catch(_ => {});
deleteNode(node, data) {
this.$confirm('确认删除?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(_ => {
done();
})
.catch(_ => { });
},
addTag(){
addTag() {
},
/* 权限全选 */
selectAll() {
this.reportF.reportUserIdList = [];
if (this.checked) {
this.userList.forEach((item) => { this.reportF.reportUserIdList.push(item.USID )});
this.userList.forEach((item) => { this.reportF.reportUserIdList.push(item.USID) });
} else {
this.reportF.reportUserIdList = [];
}
@@ -552,7 +528,7 @@ export default {
// 报告列表
reportLogList() {
this.$api.report.reportLogList(this.qLog)
.then(({data}) => {
.then(({ data }) => {
this.logTableData = data.records;
this.qLogTotal = data.total;
this.qLog.pageNo = data.current;
@@ -584,7 +560,7 @@ export default {
this.qLog.endDate = '';
}
},
handleTyleChange(val){
handleTyleChange(val) {
this.qLog.doName = val.join(',');
},
/* =============================================== 标签维护 =============================================== */
@@ -598,15 +574,15 @@ export default {
// },
// 标签维护 删除
delTag(index, type) {
let {id, status} = this.tagsForm['tags0' + type].childList[index];
if(status === '1'){
let { id, status } = this.tagsForm['tags0' + type].childList[index];
if (status === '1') {
this.$confirm('此标签已应用于报告, 是否删除?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
if (id) {
this.$api.report.labelDeleteId({id}).then(_ => {
this.$api.report.labelDeleteId({ id }).then(_ => {
this.$message.success('操作成功');
this.labelList();
})
@@ -615,9 +591,9 @@ export default {
this.$message.success('操作成功');
}
})
}else{
} else {
if (id) {
this.$api.report.labelDeleteId({id}).then(_ => {
this.$api.report.labelDeleteId({ id }).then(_ => {
this.$message.success('操作成功');
this.labelList();
})
@@ -628,22 +604,22 @@ export default {
}
},
// 上移
upTag(item, index, type){
upTag(item, index, type) {
this.$api.report.labelMove({
id: item.id,
moveType: 'up',
type: String(type)
}).then(_=>{
}).then(_ => {
this.labelList();
})
},
// 下移
downTag(item, index, type){
downTag(item, index, type) {
this.$api.report.labelMove({
id: item.id,
moveType: 'down',
type: String(type)
}).then(_=>{
}).then(_ => {
this.labelList();
})
},
@@ -654,23 +630,23 @@ export default {
},
// 单个标签保存
handleSaveTag(val, item, type) {
if(val === ''){
if (val === '') {
this.$message.warning('标签名称不能为空');
this.labelList();
return;
}
if(val === '-'){
if (val === '-') {
this.$message.warning('标签名称不能为-');
this.labelList();
return;
}
if(this.tagsForm['tags0' + type].childList.filter(item => item.name === val).length > 1){
if (this.tagsForm['tags0' + type].childList.filter(item => item.name === val).length > 1) {
this.$message.warning('标签名称不能重复');
this.labelList();
return;
}
let params = {name: val, parentId: this.tagsForm['tags0' + type].id, type: String(type), id: item.id || ''}
if(item.status === '1'){
let params = { name: val, parentId: this.tagsForm['tags0' + type].id, type: String(type), id: item.id || '' }
if (item.status === '1') {
this.$confirm('此标签已应用于报告, 是否编辑?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
@@ -682,10 +658,10 @@ export default {
}).catch(_ => {
this.labelList();
})
}).catch(_=>{
}).catch(_ => {
this.labelList();
})
}else{
} else {
this.$api.report.labelAdd(params).then(_ => {
this.$message.success('操作成功');
this.labelList();
@@ -696,32 +672,32 @@ export default {
},
// 单个顶级标签保存
handleSaveTopTag(val, type) {
if(val === ''){
if (val === '') {
this.$message.warning('标签名称不能为空');
this.labelList();
return;
}
if(val === '-'){
if (val === '-') {
this.$message.warning('标签名称不能为-');
this.labelList();
return;
}
if(type === 1 && (val === this.tagsForm.tags02.name || val === this.tagsForm.tags03.name)){
if (type === 1 && (val === this.tagsForm.tags02.name || val === this.tagsForm.tags03.name)) {
this.$message.warning('标签名称不能重复');
this.labelList();
return;
}
if(type === 2 && (val === this.tagsForm.tags01.name || val === this.tagsForm.tags03.name)){
if (type === 2 && (val === this.tagsForm.tags01.name || val === this.tagsForm.tags03.name)) {
this.$message.warning('标签名称不能重复');
this.labelList();
return;
}
if(type === 3 && (val === this.tagsForm.tags01.name || val === this.tagsForm.tags02.name)){
if (type === 3 && (val === this.tagsForm.tags01.name || val === this.tagsForm.tags02.name)) {
this.$message.warning('标签名称不能重复');
this.labelList();
return;
}
let params = {name: val, id: this.tagsForm['tags0' + type].id, parentId: '0', type: String(type)};
let params = { name: val, id: this.tagsForm['tags0' + type].id, parentId: '0', type: String(type) };
this.$api.report.labelAdd(params).then(_ => {
this.$message.success('操作成功');
this.labelList();
@@ -731,22 +707,22 @@ export default {
},
// 标签列表
labelList() {
this.$api.report.labelList().then(({data}) => {
if(!data.labelOne.childList.length){
data.labelOne.childList = [{name: '', id: '', parentId: this.tagsForm.tags01.id, type: '1'}]
}
if(!data.labelTwo.childList.length){
data.labelTwo.childList = [{name: '', id: '', parentId: this.tagsForm.tags02.id, type: '2'}]
}
if(!data.labelThree.childList.length){
data.labelThree.childList = [{name: '', id: '', parentId: this.tagsForm.tags03.id, type: '3'}]
}
this.tagsForm.tags01 = data.labelOne;
this.tagsForm.tags02 = data.labelTwo;
this.tagsForm.tags03 = data.labelThree;
})
// this.$api.report.labelList().then(({data}) => {
// if(!data.labelOne.childList.length){
// data.labelOne.childList = [{name: '', id: '', parentId: this.tagsForm.tags01.id, type: '1'}]
// }
// if(!data.labelTwo.childList.length){
// data.labelTwo.childList = [{name: '', id: '', parentId: this.tagsForm.tags02.id, type: '2'}]
// }
// if(!data.labelThree.childList.length){
// data.labelThree.childList = [{name: '', id: '', parentId: this.tagsForm.tags03.id, type: '3'}]
// }
// this.tagsForm.tags01 = data.labelOne;
// this.tagsForm.tags02 = data.labelTwo;
// this.tagsForm.tags03 = data.labelThree;
// })
},
handleTagsClose(){
handleTagsClose() {
this.dialogTags = false;
this.labelList();
this.reset();
@@ -789,25 +765,28 @@ export default {
openReportAdd() {
this.mode = 'add';
this.reportF = {
name: '', // 报告名称
keyContent: '', // 关键词
mainContent: '', // 内容摘要
department: '', // 报告所属部门
fileName: '', // 文件上传
name: '', // 报告名称
tags: '', // 关键词
mainContent: '', // 内容摘要
department: '', // 报告所属部门
fileName: '', // 文件上传
fileId: '',
year: '', // 报告年份
labelOneId: '', // 标签1
labelOneName: '', // 标签1
labelTwoId: '', // 标签2
labelTwoName: '', // 标签2
labelThreeId: '', // 标签3
labelThreeName: '', // 标签3
reportUserIdList: [], // 权限
year: '', // 报告年份
secretLevel: '', //涉密等级
privacyLevel: '', //报告隐私等级
// labelOneId: '', // 标签1
// labelOneName: '', // 标签1
// labelTwoId: '', // 标签2
// labelTwoName: '', // 标签2
// labelThreeId: '', // 标签3
// labelThreeName: '', // 标签3
reportUserIdList: [], // 权限
};
this.labelOne = {};
this.labelTwo = {};
this.labelThree = {};
this.labelList();
this.tags = []
// this.labelOne = {};
// this.labelTwo = {};
// this.labelThree = {};
// this.labelList();
this.dialogReport = true;
},
// 选择标签
@@ -829,15 +808,18 @@ export default {
// },
// 必填项
checkReportF() {
// if (!this.reportF.name) {
// return this.$message.warning('请检查报告名称') && false;
// }
// if (!this.reportF.fileId || !this.reportF.fileName) {
// return this.$message.warning('请检查上传文件') && false;
// }
// if (!this.reportF.year) {
// return this.$message.warning('请检查报告年份') && false;
// }
if (!this.reportF.name) {
return this.$message.warning('请检查报告名称') && false;
}
if (!this.reportF.fileId || !this.reportF.fileName) {
return this.$message.warning('请检查上传文件') && false;
}
if (!this.reportF.year) {
return this.$message.warning('请检查报告年份') && false;
}
if (!this.reportF.label) {
return this.$message.warning('请检查报告年份') && false;
}
// if (!this.reportF.labelOneId || !this.reportF.labelOneName || this.reportF.labelOneName === '-' ) {
// return this.$message.warning(`请检查${this.tagsForm.tags01.name}`) && false;
// }
@@ -847,15 +829,15 @@ export default {
// if (!this.reportF.labelThreeId || !this.reportF.labelThreeName || this.reportF.labelThreeName === '-') {
// return this.$message.warning(`请检查${this.tagsForm.tags03.name}`) && false;
// }
// if (!this.reportF.reportUserIdList || !this.reportF.reportUserIdList.length) {
// return this.$message.warning('请检查权限') && false;
// }
if (!this.reportF.reportUserIdList || !this.reportF.reportUserIdList.length) {
return this.$message.warning('请检查权限') && false;
}
return true;
},
// 新增或编辑报告
reportAdd() {
if (!this.checkReportF()) return;
this.$api.report.reportAdd(this.reportF).then(_ => {
this.$api.report.reportAdd({ ...this.reportF, tags: this.tags }).then(_ => {
this.$message.success('操作成功');
this.dialogReport = false;
this.reset();
@@ -865,7 +847,7 @@ export default {
uploadFile(params) {
let fd = new FormData();
fd.append('file', params.file);
this.$api.report.reportUploadFile(fd).then(({data}) => {
this.$api.report.reportUploadFile(fd).then(({ data }) => {
this.reportF.fileName = data.name;
this.reportF.fileId = data.key;
})
@@ -896,19 +878,19 @@ export default {
this.mode = mode;
this.labelList();
let rowData = JSON.parse(JSON.stringify(row));
if(rowData.labelOneName !== '-'){
this.labelOne = {id: rowData.labelOneId, rowData: rowData.labelOneName};
}else{
if (rowData.labelOneName !== '-') {
this.labelOne = { id: rowData.labelOneId, rowData: rowData.labelOneName };
} else {
this.labelOne = {};
}
if(rowData.labelTwoName !== '-'){
this.labelTwo = {id: rowData.labelTwoId, name: rowData.labelTwoName};
}else{
if (rowData.labelTwoName !== '-') {
this.labelTwo = { id: rowData.labelTwoId, name: rowData.labelTwoName };
} else {
this.labelTwo = {};
}
if(rowData.labelThreeName !== '-'){
this.labelThree = {id: rowData.labelThreeId, name: rowData.labelThreeName};
}else{
if (rowData.labelThreeName !== '-') {
this.labelThree = { id: rowData.labelThreeId, name: rowData.labelThreeName };
} else {
this.labelThree = {};
}
this.reportF = rowData;
@@ -916,7 +898,7 @@ export default {
},
// 获取所有用户
sysUserList() {
this.$api.user.sysUserList({pageNo: 1, pageSize: 999999}).then(({data}) => {
this.$api.user.sysUserList({ pageNo: 1, pageSize: 999999 }).then(({ data }) => {
this.userList = data.records;
})
},
@@ -944,7 +926,7 @@ export default {
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.$api.report.reportDelete({ids}).then(_ => {
this.$api.report.reportDelete({ ids }).then(_ => {
this.$message.success('操作成功');
this.reportList();
this.reportDateList();
@@ -957,7 +939,7 @@ export default {
},
// 列表
reportList() {
this.$api.report.reportList(this.q).then(({data}) => {
this.$api.report.reportList(this.q).then(({ data }) => {
this.tableData = data.records;
this.total = data.total;
this.q.pageNo = data.current;
@@ -970,7 +952,7 @@ export default {
},
// 日期列表
reportDateList() {
this.$api.report.reportDateList().then(({data}) => {
this.$api.report.reportDateList().then(({ data }) => {
this.yearList = data.list;
})
},
@@ -990,7 +972,7 @@ export default {
this.fullscreen = false;
// 更新预览水印的时间戳
this.watermarkText = `${this.$store.state.userInfo.usname} ${formatDate(+new Date(), 'yyyy年MM月dd日 hh:mm:ss')}`;
this.$api.report.reportGetReportHtmlId({id: row.id}).then(({data}) => {
this.$api.report.reportGetReportHtmlId({ id: row.id }).then(({ data }) => {
this.content = data.content;
this.dialogPreview = true;
})
@@ -1002,9 +984,9 @@ export default {
// cancelButtonText: '取消',
// type: 'warning'
// }).then(() => {
this.$api.report.reportDownload({fileId: row.fileId}).then(res => {
downloadFile(res);
})
this.$api.report.reportDownload({ fileId: row.fileId }).then(res => {
downloadFile(res);
})
// })
},
},
@@ -1019,6 +1001,7 @@ export default {
text-align: right;
width: 95%;
}
.report-manager {
.title {
border-bottom: 1px solid #EBEEF5;
@@ -1185,34 +1168,38 @@ export default {
}
/* 标签维护 */
.head {
display: flex;
align-items: center;
.btn{
cursor: pointer;
}
}
.head {
display: flex;
align-items: center;
.tree {
margin-top: 30px;
padding:0px 50px 50px 50px;
.custom-tree-node {
flex: 1;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
.btn {
cursor: pointer;
}
}
}
}
.head ::v-deep .el-input__inner {
.tree {
margin-top: 30px;
padding: 0px 50px 50px 50px;
.custom-tree-node {
flex: 1;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 14px;
}
}
.head ::v-deep .el-input__inner {
margin-top: 10px;
height: 40px;
line-height: 40px;
width: 50% !important;
margin-left: 50px;
}
.head ::v-deep .el-button{
.head ::v-deep .el-button {
margin-top: 10px;
height: 40px;
line-height: 40px;
@@ -1282,8 +1269,9 @@ export default {
margin-left: 10px;
margin-right: 5px;
}
.icon-sub,
.icon-up{
.icon-up {
margin-right: 5px;
}
@@ -1292,7 +1280,7 @@ export default {
.icon-add,
.icon-sub,
.icon-up,
.icon-down{
.icon-down {
cursor: pointer;
width: 16px;
height: 16px;
@@ -1335,17 +1323,22 @@ export default {
font-weight: 400;
color: #434343;
}
.el-select {
width: 100%;
}
.ti-input{
.ti-input {
width: 107.5% !important;
}
.el-cascader{
.el-cascader {
width: 100%;
}
.el-date-editor {
width: 100%;
.el-input__inner {
padding-left: 15px;
}
@@ -1393,11 +1386,12 @@ export default {
}
}
.dialog-title{
.dialog-title {
display: inline-flex;
justify-content: center;
align-items: center;
.full-screen{
.full-screen {
cursor: pointer;
width: 24px;
height: 24px;
@@ -1411,10 +1405,12 @@ export default {
padding: 9px 25px 17px 22px;
height: 60vh;
position: relative;
&.active{
&.active {
height: calc(100vh - 52px);
}
.full-screen{
.full-screen {
cursor: pointer;
position: absolute;
z-index: 10;
@@ -1430,7 +1426,7 @@ export default {
::v-deep .el-scrollbar {
height: 100%;
.el-scrollbar__wrap{
.el-scrollbar__wrap {
overflow-x: auto;
}
@@ -1450,5 +1446,4 @@ export default {
}
}
}
</style>
@@ -76,7 +76,7 @@ export default {
this.form.name = data.label
this.$forceUpdate()
} else {
this.form={}
this.form = {}
this.$forceUpdate()
}
},