Merge remote-tracking branch 'origin/master'
This commit is contained in:
@@ -6,6 +6,22 @@
|
||||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||
<!-- <link rel="icon" href="<%= BASE_URL %>favicon.ico">-->
|
||||
<title><%= htmlWebpackPlugin.options.title %></title>
|
||||
<script>
|
||||
(function(w, d, s, q) {
|
||||
w[q] =w[q] || [];
|
||||
var f=d.getElementsByTagName(s)[0],j=d.createElement(s);
|
||||
j.async=true;
|
||||
j.id='beacon-aplus';
|
||||
j.src='https://o.alicdn.com/QTSDK/quicktracking-sdk/qt_web.umd.js';
|
||||
f.parentNode.insertBefore(j, f);
|
||||
})(window, document, 'script', 'aplus_queue');
|
||||
//集成应用的appKey
|
||||
aplus_queue.push({ action: 'aplus.setMetaInfo', arguments: ['appKey', '54x8kny36dp66gbiqngsdnmu'] })
|
||||
|
||||
//如果是私有云部署还需要在上面那段JS后面紧接着添加日志域名埋点
|
||||
//通常私有云日志服务端域名类似于:xxx-web-api.xxx.com.cn, 具体域名在“管理控制台-采集信息”模块中获取
|
||||
aplus_queue.push({ action: 'aplus.setMetaInfo', arguments: ['aplus-rhost-v', 'https://api-ubtas.faw-vw.com'] });
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<noscript>
|
||||
|
||||
@@ -33,6 +33,14 @@ export default {
|
||||
}
|
||||
},
|
||||
created () {
|
||||
aplus_queue.push({
|
||||
action: 'aplus.setMetaInfo',
|
||||
arguments: ['aplus-autotrack-enabled', true]
|
||||
})
|
||||
aplus_queue.push({
|
||||
action: 'aplus.setMetaInfo',
|
||||
arguments: ['Info ', true]
|
||||
});
|
||||
const _that = this
|
||||
// var path = window.location.search
|
||||
// var ticket = this.getQueryVariable(path, 'ticket')
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
import { instance as request } from '@/utils/request'
|
||||
|
||||
export default {
|
||||
// 新增|编辑
|
||||
getList(data) {
|
||||
return request({
|
||||
url: '/api/message/list',
|
||||
method: 'get',
|
||||
params:data
|
||||
})
|
||||
},
|
||||
allRead(data) {
|
||||
return request({
|
||||
url: '/api/message/allRead',
|
||||
method: 'get',
|
||||
params:data
|
||||
})
|
||||
},
|
||||
// 单条一度
|
||||
oneRead(data) {
|
||||
return request({
|
||||
url: '/api/message/read/'+data,
|
||||
method: 'get'
|
||||
})
|
||||
},
|
||||
}
|
||||
@@ -10,6 +10,14 @@ export function reportUploadPicFile (data) {
|
||||
})
|
||||
}
|
||||
export default {
|
||||
// 修改上传人
|
||||
changeUploader (data) {
|
||||
return request({
|
||||
url: '/api/report/changeUploader',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
},
|
||||
// 日志列表
|
||||
reportLogList (data) {
|
||||
return request({
|
||||
@@ -76,6 +84,14 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
// 删除文件
|
||||
delFile(data){
|
||||
return request({
|
||||
url: '/api/report/delFile',
|
||||
method: 'POST',
|
||||
data,
|
||||
})
|
||||
},
|
||||
// 获取报告详情
|
||||
getReportDetail (data){
|
||||
return request({
|
||||
@@ -86,8 +102,9 @@ export default {
|
||||
// 获取报告预览
|
||||
reportGetReportHtmlId (data) {
|
||||
return request({
|
||||
url: `/api/report/getReportHtml/${data.id}`,
|
||||
method: 'GET'
|
||||
url: `/api/report/getReportHtml`,
|
||||
method: 'GET',
|
||||
params:data
|
||||
})
|
||||
},
|
||||
|
||||
@@ -99,6 +116,22 @@ export default {
|
||||
params: data
|
||||
})
|
||||
},
|
||||
// 收藏报告
|
||||
reportCollect(data) {
|
||||
return request({
|
||||
url: '/api/reportLogBook/collectOrCancelCollect',
|
||||
method: 'get',
|
||||
params:data
|
||||
})
|
||||
},
|
||||
// 收藏列表
|
||||
collectList(data) {
|
||||
return request({
|
||||
url: '/api/report/myCollectPage',
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
},
|
||||
// 报告列表
|
||||
reportList (data) {
|
||||
return request({
|
||||
@@ -132,6 +165,15 @@ export default {
|
||||
})
|
||||
},
|
||||
// 下载文件
|
||||
reportDownloadALL (data) {
|
||||
return request({
|
||||
url: '/api/report/downloadAll',
|
||||
method: 'GET',
|
||||
params: data,
|
||||
responseType: 'blob'
|
||||
})
|
||||
},
|
||||
// 下载文件
|
||||
reportDownload (data) {
|
||||
return request({
|
||||
url: '/api/report/download',
|
||||
|
||||
@@ -90,13 +90,17 @@ export default {
|
||||
this.$store.commit('activeTab', null)
|
||||
this.$store.commit('removeDicts', null)
|
||||
localStorage.removeItem('cookie')
|
||||
aplus_queue.push({
|
||||
action: 'aplus.setMetaInfo',
|
||||
arguments: ["_user_id", ""]
|
||||
});
|
||||
// var sevice = "http://"+window.location.host+"/";
|
||||
// var serviceUrl = encodeURIComponent(sevice);
|
||||
// 正式
|
||||
// window.open("https://caddmuat.changan.com.cn/cas/logout?service=http://10.64.23.30:7766/home", '_self');
|
||||
// 测试
|
||||
// window.open(BASE_URL.BASE_CHANGAN + "/logout?service=" + BASE_URL.BASE_LOCAL + "/login?loginType=1", '_self');
|
||||
this.$router.push('https://iam.faw-vw.com/esc-sso/logout?service=http%3A%2F%2F10.94.1.164%3A8888%2FcheckPage')
|
||||
window.open('https://iam.faw-vw.com/esc-sso/logout?service=http%3A%2F%2F10.94.1.164%3A8888%2FcheckPage','_self')
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
@@ -225,7 +225,7 @@
|
||||
<el-table-column v-if="maxSelected && maxSelected == 1" label="" width="35" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-radio class="tableRadio" v-model="tableChecked" @change="radioChange(scope.row)"
|
||||
:label="scope.row.departmentCode">{{ null }}
|
||||
:label="scope.row.id">{{ null }}
|
||||
</el-radio>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@@ -28,7 +28,24 @@ const routes = [
|
||||
name:'monitorViews',
|
||||
component: () => import('../../views/userCenter/processCenter/monitorProcesses/monitorDetail.vue')
|
||||
},
|
||||
|
||||
// 站内信
|
||||
{
|
||||
path: 'mail',
|
||||
name: 'mail',
|
||||
component: () => import('../../views/userCenter/mail/index'),
|
||||
meta: {
|
||||
crumb: ['站内信']
|
||||
}
|
||||
},
|
||||
// 我的收藏
|
||||
{
|
||||
path: 'collect',
|
||||
name: 'collect',
|
||||
component: () => import('../../views/userCenter/collect/index'),
|
||||
meta: {
|
||||
crumb: ['我的收藏']
|
||||
}
|
||||
},
|
||||
],
|
||||
|
||||
},
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
const config = {
|
||||
webId: '',
|
||||
// QuickTracking
|
||||
appKey: '54x8kny36dp66gbiqngsdnmu',
|
||||
trackHost: 'api_ubtas.faw-vw.com',
|
||||
sdkUrl: 'https://o.alicdn.com/QTSDK/quicktracking-sdk/qt_web.umd.js'
|
||||
}
|
||||
export default config
|
||||
@@ -0,0 +1,141 @@
|
||||
import config from '@/utils/env'
|
||||
import store from '@/store'
|
||||
|
||||
console.log(config)
|
||||
const {
|
||||
appKey,
|
||||
trackHost,
|
||||
sdkUrl
|
||||
} = config
|
||||
|
||||
export const EventType = {
|
||||
Exp: 'EXP',
|
||||
Click: 'CLK',
|
||||
Other: 'OTHER'
|
||||
}
|
||||
|
||||
export function init() {
|
||||
console.log(window.aplus_queue,"window.aplus_queuewindow.aplus_queuewindow.aplus_queue")
|
||||
if (!window.aplus_queue) {
|
||||
console.log("执行了?????")
|
||||
initQueue()
|
||||
loadQuickTrackSDK()
|
||||
.then(() => {
|
||||
setUserInfo()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
export function sendTrackEvent({
|
||||
eventName,
|
||||
pageName = eventName,
|
||||
eventType = EventType.Click,
|
||||
params
|
||||
}) {
|
||||
console.log('qt event', eventName, pageName, eventType, params)
|
||||
window.aplus_queue.push({
|
||||
action: 'aplus.record',
|
||||
arguments: [eventName, eventType, {
|
||||
...params,
|
||||
page_name: pageName
|
||||
}]
|
||||
})
|
||||
}
|
||||
|
||||
export function sendTrack({
|
||||
eventName,
|
||||
pageName = eventName,
|
||||
params
|
||||
}) {
|
||||
console.log('qt tracking', eventName, pageName, params)
|
||||
window.aplus_queue.push({
|
||||
action: 'aplus.sendPV',
|
||||
arguments: [{
|
||||
is_auto: false
|
||||
}, {
|
||||
// ts: Date.now(),
|
||||
// path: eventName, // 当前page的url
|
||||
page_name: pageName,
|
||||
...params
|
||||
}]
|
||||
})
|
||||
}
|
||||
|
||||
function initQueue() {
|
||||
console.log("全买点噢!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!")
|
||||
window.aplus_queue = []
|
||||
// 手动 PV
|
||||
window.aplus_queue.push({
|
||||
action: 'aplus.setMetaInfo',
|
||||
arguments: ['aplus-waiting', 'MAN']
|
||||
})
|
||||
// 集成应用的appKey
|
||||
window.aplus_queue.push({
|
||||
action: 'aplus.setMetaInfo',
|
||||
arguments: ['appKey', appKey]
|
||||
})
|
||||
// 如果是私有云部署还需要在上面那段JS后面紧接着添加日志域名埋点
|
||||
if (trackHost) {
|
||||
window.aplus_queue.push({
|
||||
action: 'aplus.setMetaInfo',
|
||||
arguments: ['aplus-rhost-v', trackHost]
|
||||
})
|
||||
}
|
||||
// 关闭全埋点
|
||||
window.aplus_queue.push({
|
||||
action: 'aplus.setMetaInfo',
|
||||
arguments: ['aplus-autotrack-enabled', true]
|
||||
})
|
||||
window.aplus_queue.push({
|
||||
action: 'aplus.setMetaInfo',
|
||||
arguments: ['_hold', 'BLOCK']
|
||||
})
|
||||
}
|
||||
|
||||
async function loadQuickTrackSDK() {
|
||||
// qt的库回覆盖window.history的函数 pushState, replaceState 函数并导致IE11报错
|
||||
// 这里覆盖回去
|
||||
const nativePushState = window.history.pushState
|
||||
const nativeReplaceState = window.history.replaceState
|
||||
return new Promise((resolve) => {
|
||||
const $scriptInDOM = document.getElementsByTagName('script')[0]
|
||||
const $script = document.createElement('script')
|
||||
$script.async = true
|
||||
$script.id = 'beacon-aplus'
|
||||
$script.src = sdkUrl
|
||||
$script.onload = () => {
|
||||
// qt库内部在body渲染之后延时51,这里延时200应该足以覆盖
|
||||
sleep(200).then(() => {
|
||||
window.history.pushState = nativePushState
|
||||
window.history.replaceState = nativeReplaceState
|
||||
resolve()
|
||||
})
|
||||
}
|
||||
$scriptInDOM.parentNode.insertBefore($script, $scriptInDOM)
|
||||
})
|
||||
}
|
||||
|
||||
async function setUserInfo() {
|
||||
const userInfo = store.getters.userInfo
|
||||
if (userInfo) {
|
||||
window.aplus_queue.push({
|
||||
action: 'aplus.setMetaInfo',
|
||||
arguments:['$$_user_profile', 'OTHER', {
|
||||
name: userInfo.usname, //用户属性1
|
||||
id:userInfo.usid,
|
||||
|
||||
}]
|
||||
})
|
||||
}
|
||||
window.aplus_queue.push({
|
||||
action: 'aplus.setMetaInfo',
|
||||
arguments: ['_hold', 'START']
|
||||
})
|
||||
}
|
||||
|
||||
async function sleep(ms) {
|
||||
return new Promise((resolve) => {
|
||||
setTimeout(resolve, ms)
|
||||
})
|
||||
}
|
||||
|
||||
@@ -87,6 +87,10 @@ instance.interceptors.response.use(function (response) {
|
||||
localStorage.removeItem('cookie')
|
||||
router.push('/login')
|
||||
Message.error('登录超时过期')
|
||||
aplus_queue.push({
|
||||
action: 'aplus.setMetaInfo',
|
||||
arguments: ["_user_id", ""]
|
||||
});
|
||||
// window.open(BASE_URL.BASE_CHANGAN + "/logout?service=" + BASE_URL.BASE_LOCAL + "/login?loginType=1", '_self');
|
||||
// var url = 'http://192.168.144.22:9966/login?loginType=1'
|
||||
// // var url = 'http://10.64.23.30:7766/home'
|
||||
@@ -103,6 +107,10 @@ instance.interceptors.response.use(function (response) {
|
||||
localStorage.removeItem('cookie')
|
||||
router.push('/login')
|
||||
Message.error('登录超时过期')
|
||||
aplus_queue.push({
|
||||
action: 'aplus.setMetaInfo',
|
||||
arguments: ["_user_id", ""]
|
||||
});
|
||||
// window.open(BASE_URL.BASE_CHANGAN + "/logout?service=" + BASE_URL.BASE_LOCAL + "/login?loginType=1", '_self');
|
||||
// var url = 'http://192.168.144.22:9966/login?loginType=1'
|
||||
// // var url = 'http://10.64.23.30:7766/home'
|
||||
|
||||
@@ -151,6 +151,31 @@ export default {
|
||||
params={ path: '/userCenter/processCenter', query: { id: 'AEHJB8YNJ3' }}
|
||||
}
|
||||
this.$message.success('登录成功')
|
||||
let department
|
||||
if(this.$store.getters.userInfo.orgEOList){
|
||||
department= this.$store.getters.userInfo.orgEOList.map(item=>{
|
||||
return item.longName
|
||||
})
|
||||
}
|
||||
let roleName
|
||||
if(this.$store.getters.userInfo.roleEOList){
|
||||
roleName = this.$store.getters.userInfo.roleEOList.map(item=>{
|
||||
return item.name
|
||||
})
|
||||
}
|
||||
aplus_queue.push({
|
||||
action: 'aplus.setMetaInfo',
|
||||
arguments: ["_user_id", this.$store.getters.userInfo.usid]
|
||||
});
|
||||
aplus_queue.push({
|
||||
'action':'aplus.record',
|
||||
'arguments':['$$_user_profile', 'OTHER', {
|
||||
name: this.$store.getters.userInfo.usname, //用户属性1
|
||||
department:department.join(','),
|
||||
roleName:roleName.join(','),
|
||||
|
||||
}]
|
||||
});
|
||||
this.getMarket().then((resx)=>{
|
||||
this.$store.commit('setMarketpre', resx)
|
||||
this.$router.push(params)
|
||||
|
||||
@@ -1,64 +1,70 @@
|
||||
<template>
|
||||
<div class="content-height report-detail">
|
||||
<div class="title">
|
||||
<el-tooltip :content="row.name" placement="top-start">
|
||||
<!-- <div class="title">-->
|
||||
<!-- <el-tooltip :content="row.name" placement="top-start">-->
|
||||
|
||||
<span>{{ row.name || '-' }}</span>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
<div class="desc">
|
||||
<el-row>
|
||||
<el-col :span="24" class="desc-item">
|
||||
<label>上传人</label>
|
||||
<div>{{ row.uploaderName }}</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24" class="desc-item">
|
||||
<label>关键词</label>
|
||||
<div>{{ getKeyContent(row.keyContent) }}</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24" class="desc-item">
|
||||
<label>内容摘要</label>
|
||||
<p>{{ row.mainContent || '-' }}</p>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="10" class="desc-item">
|
||||
<label>所属部门</label>
|
||||
<div>{{ row.departmentName || '-' }}</div>
|
||||
</el-col>
|
||||
<!-- <span>{{ row.name || '-' }}</span>-->
|
||||
<!-- </el-tooltip>-->
|
||||
<!-- </div>-->
|
||||
<!-- <div class="desc">-->
|
||||
<!-- <el-row>-->
|
||||
<!-- <el-col :span="24" class="desc-item">-->
|
||||
<!-- <label>上传人</label>-->
|
||||
<!-- <div>{{ row.uploaderName }}</div>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- </el-row>-->
|
||||
<!-- <el-row>-->
|
||||
<!-- <el-col :span="24" class="desc-item">-->
|
||||
<!-- <label>关键词</label>-->
|
||||
<!-- <div>{{ getKeyContent(row.keyContent) }}</div>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- </el-row>-->
|
||||
<!-- <el-row>-->
|
||||
<!-- <el-col :span="24" class="desc-item">-->
|
||||
<!-- <label>内容摘要</label>-->
|
||||
<!-- <p>{{ row.mainContent || '-' }}</p>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- </el-row>-->
|
||||
<!-- <el-row>-->
|
||||
<!-- <el-col :span="10" class="desc-item">-->
|
||||
<!-- <label>所属部门</label>-->
|
||||
<!-- <div>{{ row.departmentName || '-' }}</div>-->
|
||||
<!-- </el-col>-->
|
||||
|
||||
<el-col :span="10" :offset="2" class="desc-item">
|
||||
<label>报告年份</label>
|
||||
<div>{{ row.year || '-' }}</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="10" class="desc-item">
|
||||
<label>报告涉密等级</label>
|
||||
<div>{{ row.confidentialLevel || '-' }}</div>
|
||||
</el-col>
|
||||
<el-col :span="10" :offset="2" class="desc-item">
|
||||
<label>报告隐私等级</label>
|
||||
<div>{{ row.privacyLevel || '-' }}</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="24" class="desc-item">
|
||||
<label>标签</label>
|
||||
<div>{{ row.labels && row.labels.join(',') || '-' }}</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<!-- <el-col :span="10" :offset="2" class="desc-item">-->
|
||||
<!-- <label>报告年份</label>-->
|
||||
<!-- <div>{{ row.year || '-' }}</div>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- </el-row>-->
|
||||
<!-- <el-row>-->
|
||||
<!-- <el-col :span="10" class="desc-item">-->
|
||||
<!-- <label>报告涉密等级</label>-->
|
||||
<!-- <div>{{ row.confidentialLevel || '-' }}</div>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- <el-col :span="10" :offset="2" class="desc-item">-->
|
||||
<!-- <label>报告隐私等级</label>-->
|
||||
<!-- <div>{{ row.privacyLevel || '-' }}</div>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- </el-row>-->
|
||||
<!-- <el-row>-->
|
||||
<!-- <el-col :span="24" class="desc-item">-->
|
||||
<!-- <label>标签</label>-->
|
||||
<!-- <div>{{ row.labels && row.labels.join(',') || '-' }}</div>-->
|
||||
<!-- </el-col>-->
|
||||
<!-- </el-row>-->
|
||||
<!-- </div>-->
|
||||
<div class="report-download">
|
||||
<span>报告详情</span>
|
||||
<el-button type="primary" v-if="row.downPower==1" @click="downloadRow(row)">报告下载</el-button>
|
||||
<el-button v-if="row.downPower==1" @click="downloadRow(file)"
|
||||
:disabled="showText && !isExcel" size="mini" class="checkBtn">报告下载</el-button>
|
||||
</div>
|
||||
<div class="preview-box" v-watermark="{ text: watermarkText }">
|
||||
<div class="preview-content" v-html="content"></div>
|
||||
<div class="preview-list scroll-myself" >
|
||||
<div class="fileName" v-for="item in row.fileList" :title="item.fileName" @click="handleFile(item)"
|
||||
:class="{'bgColor':file.fileId==item.fileId}">{{item.fileName}}</div>
|
||||
</div>
|
||||
<el-empty class="preview-content" description="excel不可预览" v-if="showText"></el-empty>
|
||||
<div class="preview-content" v-html="content" v-else></div>
|
||||
</div>
|
||||
<div class="report-jug">
|
||||
<div class="report-jug-left">
|
||||
@@ -126,6 +132,9 @@ export default {
|
||||
name: 'ReportDetail',
|
||||
data() {
|
||||
return {
|
||||
showText:false,
|
||||
pointNum:0,
|
||||
file:{},
|
||||
isAdmin: false, //是否是管理员
|
||||
report: {},
|
||||
formatDate2,
|
||||
@@ -144,6 +153,7 @@ export default {
|
||||
},
|
||||
userId: this.$store.getters.userInfo.usid,
|
||||
userName: this.$store.getters.userInfo.usname,
|
||||
isExcel:false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
@@ -248,13 +258,26 @@ export default {
|
||||
}
|
||||
},
|
||||
// 预览
|
||||
previewRow() {
|
||||
previewRow(fileId,reportId) {
|
||||
// this.watermarkText = `${this.$store.state.userInfo.usname} ${formatDate(+new Date(), 'yyyy年MM月dd日 hh:mm:ss')}`
|
||||
// this.row = JSON.parse(this.$route.query.row)
|
||||
this.$api.report.reportGetReportHtmlId({id: this.row.id}).then(({data}) => {
|
||||
this.$api.report.reportGetReportHtmlId({fileId: fileId,reportId:reportId}).then(({data}) => {
|
||||
this.content = data.content
|
||||
})
|
||||
},
|
||||
handleFile(row){
|
||||
this.file=row
|
||||
|
||||
let lastName=row.fileName.split('.')
|
||||
let list=['xls','xlsx','XLS','XLSX']
|
||||
if(list.indexOf(lastName[lastName.length-1])>-1){
|
||||
this.showText=true
|
||||
}else{
|
||||
this.showText=false
|
||||
this.previewRow(this.file.fileId,this.row.id)
|
||||
|
||||
}
|
||||
},
|
||||
// 下载
|
||||
downloadRow(row) {
|
||||
// this.$confirm('此操作将下载所选数据文件, 是否继续?', '提示', {
|
||||
@@ -262,9 +285,16 @@ export default {
|
||||
// cancelButtonText: '取消',
|
||||
// type: 'warning'
|
||||
// }).then(() => {
|
||||
this.$api.report.reportDownload({fileId: row.fileId, repostId: row.id}).then(res => {
|
||||
downloadFile(res)
|
||||
})
|
||||
if(this.isExcel){
|
||||
this.$api.report.reportDownloadALL({ reportId: this.row.id}).then(res => {
|
||||
downloadFile(res)
|
||||
})
|
||||
}else{
|
||||
this.$api.report.reportDownload({ reportId: this.row.id}).then(res => {
|
||||
downloadFile(res)
|
||||
})
|
||||
}
|
||||
|
||||
// })
|
||||
},
|
||||
// 获取详情
|
||||
@@ -273,13 +303,17 @@ export default {
|
||||
this.row = res.data
|
||||
this.isAdmin = this.$store.getters.userInfo.usid==this.row.createUserId
|
||||
// 需要给分数/2
|
||||
this.previewRow()
|
||||
this.handleFile(this.row.fileList[0])
|
||||
})
|
||||
},
|
||||
},
|
||||
mounted() {
|
||||
this.reportId = this.$route.query.reportId
|
||||
|
||||
if(this.$route.query.isExecel){
|
||||
this.isExcel=true
|
||||
}else{
|
||||
this.isExcel=false
|
||||
}
|
||||
// this.previewRow()
|
||||
this.getComment()
|
||||
this.getReportDetail()
|
||||
@@ -291,6 +325,7 @@ export default {
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.report-detail {
|
||||
overflow: hidden;
|
||||
.title {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
@@ -344,10 +379,11 @@ export default {
|
||||
}
|
||||
|
||||
.report-download {
|
||||
|
||||
height: 40px;
|
||||
background: #F2F6FC;
|
||||
border: 1px solid #EBEEF5;
|
||||
margin: 0 14px 0 13px;
|
||||
margin: 10px 14px 0 13px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
@@ -361,18 +397,42 @@ export default {
|
||||
}
|
||||
|
||||
.preview-box {
|
||||
|
||||
// 定位使水印不溢出元素
|
||||
display: flex;
|
||||
position: relative;
|
||||
// 居中
|
||||
max-height: 800px;
|
||||
width: calc(100% - 13px - 14px);
|
||||
margin-left: 13px;
|
||||
|
||||
.preview-content {
|
||||
//margin: 0 14px 0 13px;
|
||||
max-height: 500px;
|
||||
padding-bottom: 11px;
|
||||
//min-height: 500px;
|
||||
.preview-list{
|
||||
width: 200px;
|
||||
margin-top: 10px;
|
||||
//padding-right: 5px;
|
||||
max-height: 700px;
|
||||
overflow: auto;
|
||||
|
||||
.fileName{
|
||||
width: 100%;
|
||||
height: 30px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
word-break: keep-all;
|
||||
white-space: nowrap;
|
||||
cursor: pointer;
|
||||
color: #434343;
|
||||
padding: 0px 10px;
|
||||
line-height: 28px;
|
||||
}
|
||||
}
|
||||
.preview-content {
|
||||
//margin: 0 14px 0 13px;
|
||||
border-left: 2px solid #ccc;
|
||||
max-height: 700px;
|
||||
padding-bottom: 11px;
|
||||
overflow: auto;
|
||||
width: calc(100% - 200px);
|
||||
img {
|
||||
max-width: 100% !important;
|
||||
}
|
||||
@@ -480,4 +540,16 @@ export default {
|
||||
.showLimit ::v-deep .el-textarea .el-input__count{
|
||||
width: 98%;
|
||||
}
|
||||
.bgColor{
|
||||
background-color: #F2F6FC;
|
||||
}
|
||||
.checkBtn {
|
||||
padding: 5px 20px !important;
|
||||
background-color:#1890FF;
|
||||
color: #fff;
|
||||
}
|
||||
.el-button.is-disabled, .el-button.is-disabled:hover, .el-button.is-disabled:focus{
|
||||
background-color: #82bffc;
|
||||
color: #fff;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -77,6 +77,7 @@
|
||||
|
||||
<el-col :span="20" style="padding-left: 15px">
|
||||
<vxe-table ref="xTable" :data="tableData" :empty-render="{name: 'NotData'}" align="center" border stripe
|
||||
class="table-over"
|
||||
v-table-min-height="'calc(100vh - 320px)'"
|
||||
@checkbox-all="selectAllEvent" @checkbox-change="selectChangeEvent">
|
||||
<vxe-column type="checkbox" width="60"></vxe-column>
|
||||
@@ -122,6 +123,8 @@
|
||||
<vxe-column show-overflow show-header-overflow field="uploader" title="上传人"></vxe-column>
|
||||
<vxe-column show-overflow show-header-overflow title="操作" width="200" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button type="text" @click="collectReport(row.id)">{{ row.collect==0?'收藏':'取消收藏' }}</el-button>
|
||||
<!-- <el-button type="text" v-if="!row.collect" @click="collectReport(row,'n')">取消收藏</el-button>-->
|
||||
<el-button type="text" v-if="row.power == 1 ||row.power == 2" @click="goReportDetail(row)">预览</el-button>
|
||||
<el-button type="text" v-if="row.power == 3 || row.power == 2 " @click="downloadRow(row)">下载</el-button>
|
||||
<el-button type="text" v-if="row.power !== 2 && !isAdmin" @click="permissionApp(row)">申请权限</el-button>
|
||||
@@ -168,7 +171,7 @@
|
||||
<script>
|
||||
import {downloadFile} from '@/utils/downloadFile'
|
||||
import {formatDate} from '@/utils/date'
|
||||
|
||||
import {sendTrackEvent} from '@/utils/quickTracking'
|
||||
export default {
|
||||
name: 'ReportList',
|
||||
data() {
|
||||
@@ -349,18 +352,6 @@ export default {
|
||||
this.treeData = res.data
|
||||
})
|
||||
},
|
||||
|
||||
// 标签列表
|
||||
labelList() {
|
||||
this.$api.report.labelList().then(({data}) => {
|
||||
this.tagData[1].name = data.labelOne.name
|
||||
this.tagData[2].name = data.labelTwo.name
|
||||
this.tagData[3].name = data.labelThree.name
|
||||
this.tagData[1].tags = data.labelOne.childList
|
||||
this.tagData[2].tags = data.labelTwo.childList
|
||||
this.tagData[3].tags = data.labelThree.childList
|
||||
})
|
||||
},
|
||||
search() {
|
||||
this.q.pageNo = 1
|
||||
this.reportList()
|
||||
@@ -378,30 +369,7 @@ export default {
|
||||
}
|
||||
})
|
||||
},
|
||||
// 监听全选按钮
|
||||
handleCheckAllChange(val, type) {
|
||||
switch (type) {
|
||||
case 1:
|
||||
this.q.labelOneId = val ? this.tagData[type].tags.map(item => item.id) : []
|
||||
break
|
||||
case 2:
|
||||
this.q.labelTwoId = val ? this.tagData[type].tags.map(item => item.id) : []
|
||||
break
|
||||
case 3:
|
||||
this.q.labelThreeId = val ? this.tagData[type].tags.map(item => item.id) : []
|
||||
break
|
||||
}
|
||||
this.tagData[type].isIndeterminate = !val
|
||||
},
|
||||
// 监听group checkbox
|
||||
handleCheckedTagsChange(val, type) {
|
||||
this.tagData[type].checkAll = (val.length === this.tagData[type].tags.length)
|
||||
this.tagData[type].isIndeterminate = val.length < this.tagData[type].tags.length
|
||||
},
|
||||
// 切换展开隐藏
|
||||
switchTagShow(type) {
|
||||
this.tagData[type].tagShow = !this.tagData[type].tagShow
|
||||
},
|
||||
|
||||
// 日期列表
|
||||
reportDateList() {
|
||||
this.$api.report.reportDateList().then(({data}) => {
|
||||
@@ -445,12 +413,6 @@ export default {
|
||||
}
|
||||
this.total = 0
|
||||
this.tableData = []
|
||||
this.tagData[1].checkAll = false
|
||||
this.tagData[1].isIndeterminate = true
|
||||
this.tagData[2].checkAll = false
|
||||
this.tagData[2].isIndeterminate = true
|
||||
this.tagData[3].checkAll = false
|
||||
this.tagData[3].isIndeterminate = true
|
||||
this.reportList()
|
||||
},
|
||||
// 下载
|
||||
@@ -460,13 +422,24 @@ export default {
|
||||
// cancelButtonText: '取消',
|
||||
// type: 'warning'
|
||||
// }).then(() => {
|
||||
this.$api.report.reportDownload({fileId: row.fileId,repostId:row.id}).then(res => {
|
||||
this.$api.report.reportDownload({reportId:row.id}).then(res => {
|
||||
downloadFile(res)
|
||||
this.reportList()
|
||||
})
|
||||
// })
|
||||
},
|
||||
collectReport(id){
|
||||
this.$api.report.reportCollect({reportId:id}).then(res=>{
|
||||
this.$message.success("操作成功")
|
||||
this.reportList()
|
||||
})
|
||||
},
|
||||
// 跳转到详情
|
||||
goReportDetail(row) {
|
||||
// sendTrackEvent({
|
||||
// eventName: 'preview_click',
|
||||
// params: {id:row.id,name:row.name}
|
||||
// })
|
||||
window.open('/report/detail?id='+this.$route.query.id+'&reportId='+row.id)
|
||||
this.reportList()
|
||||
// this.$router.push({path: '/report/detail', query: {id: this.$route.query.id, reportId: row.id}})
|
||||
@@ -726,7 +699,13 @@ export default {
|
||||
margin-left: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.table-over{
|
||||
background-color: pink;
|
||||
::v-deep .vxe-table--body-wrapper{
|
||||
max-height: calc(100vh - 320px);
|
||||
overflow: auto;
|
||||
}
|
||||
}
|
||||
.preview-dialog-body {
|
||||
padding: 9px 25px 17px 22px;
|
||||
height: 60vh;
|
||||
|
||||
@@ -29,13 +29,14 @@
|
||||
</el-row>
|
||||
<el-row >
|
||||
<div class="operate-box">
|
||||
<el-button @click="openLog">操作日志</el-button>
|
||||
<el-button @click="openLog" v-btn-permission="'HHXMA8B6AS'">操作日志</el-button>
|
||||
<el-button v-btn-permission="'9S7NYLJ9UF'" @click="openTags">标签维护</el-button>
|
||||
<el-button @click="openReportAdd">报告上传</el-button>
|
||||
<el-button @click="changeName" v-btn-permission="'W3G98WZE5H'">更改上传人</el-button>
|
||||
</div>
|
||||
</el-row>
|
||||
</div>
|
||||
<div class="table">
|
||||
<div class="table">
|
||||
<el-row>
|
||||
<el-col :span="4" class="treeList">
|
||||
<el-input placeholder="输入关键字进行过滤" v-model="filterText">
|
||||
@@ -65,7 +66,10 @@
|
||||
</el-col>
|
||||
<el-col :span="20" style="padding-left: 15px">
|
||||
<div class="table">
|
||||
<vxe-table ref="xTable" :data="tableData" :empty-render="{name: 'NotData'}" align="center" border stripe v-table-min-height="'calc(100vh - 320px)'">
|
||||
<vxe-table ref="xTable" :data="tableData" @checkbox-all="selectAllEvent" @checkbox-change="selectChangeEvent"
|
||||
:empty-render="{name: 'NotData'}" align="center" border stripe
|
||||
v-table-min-height="'calc(100vh - 320px)'" >
|
||||
<vxe-column type="checkbox" width="60"></vxe-column>
|
||||
<vxe-column show-overflow show-header-overflow type="seq" title="序号" width="77">
|
||||
<template #default="{ row, rowIndex }">
|
||||
{{ rowIndex + (q.pageNo - 1) * q.pageSize + 1 }}
|
||||
@@ -82,6 +86,7 @@
|
||||
<vxe-column show-overflow show-header-overflow field="confidentialLevel" title="报告涉密等级"></vxe-column>
|
||||
<vxe-column show-overflow show-header-overflow field="privacyLevel" title="报告隐私等级"></vxe-column>
|
||||
<vxe-column show-overflow show-header-overflow field="createDate" title="报告上传时间"></vxe-column>
|
||||
<vxe-column show-overflow show-header-overflow field="createUserName" title="上传人"></vxe-column>
|
||||
<vxe-column show-overflow show-header-overflow title="操作" width="200" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button type="text" @click="openReportModify('modify', row)">编辑</el-button>
|
||||
@@ -110,7 +115,7 @@
|
||||
<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>
|
||||
<el-option label="删除" value="删除"></el-option>
|
||||
<el-option label="预览" value="预览"></el-option>
|
||||
<el-option label="下载" value="下载"></el-option>
|
||||
@@ -181,7 +186,10 @@
|
||||
</el-dialog>
|
||||
<labelModalVue ref="labelModalVue" @updateList="updateList"></labelModalVue>
|
||||
<!--报告上传-->
|
||||
|
||||
<orgTable :visible.sync="visibleOrgTable" title="人员列表" dialog-model :config="{
|
||||
value: orgTableVal,
|
||||
valueName: orgTableValName
|
||||
}" :workNumFlag="true" :maxSelected="1" @confirm="isTreeOk"></orgTable>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -191,6 +199,7 @@ import { downloadFile } from "../../utils/downloadFile";
|
||||
import { formatDate } from '@/utils/date'
|
||||
import VueTagsInput from '@johmun/vue-tags-input';
|
||||
import labelModalVue from './reportManager/labelModal.vue';
|
||||
import {sendTrackEvent} from "@/utils/quickTracking";
|
||||
export default {
|
||||
name: "ReportManager",
|
||||
components: {
|
||||
@@ -199,6 +208,9 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
visibleOrgTable:false,
|
||||
orgTableVal:'',
|
||||
orgTableValName:'',
|
||||
treeKey:'',
|
||||
watermarkText: '', // 水印
|
||||
fullscreen: false,
|
||||
@@ -221,37 +233,10 @@ export default {
|
||||
treeData: [
|
||||
],
|
||||
filterText:'',
|
||||
filterText2:'',
|
||||
filterText2:'',
|
||||
checkedKeys:[],
|
||||
tagsForm: {
|
||||
tags01: {
|
||||
name: '',
|
||||
parentId: '0',
|
||||
type: '1',
|
||||
id: '',
|
||||
childList: [
|
||||
// {name: '无', type: '1', id: '', parentId: ''},
|
||||
]
|
||||
},
|
||||
tags02: {
|
||||
name: '',
|
||||
parentId: '0',
|
||||
type: '2',
|
||||
id: '',
|
||||
childList: [
|
||||
// {name: '无', type: '2', id: '', parentId: ''},
|
||||
]
|
||||
},
|
||||
tags03: {
|
||||
name: '',
|
||||
parentId: '0',
|
||||
type: '3',
|
||||
id: '',
|
||||
childList: [
|
||||
// {name: '无', type: '3', id: '', parentId: ''},
|
||||
]
|
||||
},
|
||||
},
|
||||
checkIds:[],
|
||||
checkList: [],
|
||||
/* =============================================== 报告上传 =============================================== */
|
||||
dialogReport: false, // 报告上传
|
||||
reportF: {
|
||||
@@ -328,6 +313,58 @@ export default {
|
||||
},
|
||||
|
||||
methods: {
|
||||
isTreeOk(checkedList){
|
||||
const parts = []
|
||||
const partsName = []
|
||||
console.log(checkedList, '0009999')
|
||||
checkedList.map((item, index) => {
|
||||
parts.push(item.userId || item.USID)
|
||||
partsName.push(item.uname)
|
||||
})
|
||||
// 调用更改接口
|
||||
this.$api.report.changeUploader({
|
||||
reportIds:this.checkIds,
|
||||
userId:parts.toString()
|
||||
}).then(res=>{
|
||||
if(res.ok){
|
||||
this.$message.success(res.data)
|
||||
}
|
||||
this.reportList();
|
||||
})
|
||||
},
|
||||
changeName(){
|
||||
if(this.checkList.length==0){
|
||||
this.$message.warning('请至少选择一条报告')
|
||||
return
|
||||
}
|
||||
let already=this.checkList.filter(item =>{
|
||||
if( +item.isAct == 0){
|
||||
return item
|
||||
}
|
||||
})
|
||||
if(already.length>0) {
|
||||
let name=already.map(item=>item.name)
|
||||
this.$message.warning("当前选择的"+name.join(',')+"已经在流程中")
|
||||
return
|
||||
}
|
||||
this.orgTableVal = ''
|
||||
this.orgTableValName = ''
|
||||
this.visibleOrgTable = true
|
||||
},
|
||||
selectAllEvent({checked}) {
|
||||
const records = this.$refs.xTable.getCheckboxRecords()
|
||||
this.checkList = records
|
||||
this.checkIds = records.map(item => {
|
||||
return item.id
|
||||
})
|
||||
},
|
||||
selectChangeEvent({checked}) {
|
||||
const records = this.$refs.xTable.getCheckboxRecords()
|
||||
this.checkList = records
|
||||
this.checkIds = records.map(item => {
|
||||
return item.id
|
||||
})
|
||||
},
|
||||
setCheckedNodes(node, checked) {
|
||||
node.checked = checked;
|
||||
if (node.children && node.children.length > 0) {
|
||||
@@ -683,6 +720,10 @@ export default {
|
||||
},
|
||||
// 预览
|
||||
previewRow(row) {
|
||||
// sendTrackEvent({
|
||||
// eventName: 'preview_click',
|
||||
// params: {id:row.id,name:row.name}
|
||||
// })
|
||||
// this.fullscreen = false;
|
||||
// // 更新预览水印的时间戳
|
||||
// this.watermarkText = `${this.$store.state.userInfo.usname} ${formatDate(+new Date(), 'yyyy年MM月dd日 hh:mm:ss')}`;
|
||||
@@ -690,7 +731,7 @@ export default {
|
||||
// this.content = data.content;
|
||||
// this.dialogPreview = true;
|
||||
// })
|
||||
window.open('/report/detail?id='+this.$route.query.id+'&reportId='+row.id)
|
||||
window.open('/report/detail?id='+this.$route.query.id+'&reportId='+row.id +'&isExecel=1')
|
||||
// this.$router.push({path: '/report/detail', query: {id: this.$route.query.id, reportId: row.id}})
|
||||
this.reportDateList();
|
||||
},
|
||||
@@ -701,7 +742,7 @@ export default {
|
||||
// cancelButtonText: '取消',
|
||||
// type: 'warning'
|
||||
// }).then(() => {
|
||||
this.$api.report.reportDownload({ fileId: row.fileId,repostId:row.id }).then(res => {
|
||||
this.$api.report.reportDownloadALL({ reportId:row.id }).then(res => {
|
||||
downloadFile(res);
|
||||
})
|
||||
// })
|
||||
|
||||
@@ -96,7 +96,7 @@
|
||||
<el-input v-model="form.leveL" maxlength="10" show-word-limit placeholder="请输入部门级别"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="父部门编码:" >
|
||||
<el-input readonly @click.native="handleClick" v-model="form.parentID" maxlength="50" show-word-limit placeholder="请输入父部门编码"></el-input>
|
||||
<el-input readonly @click.native="handleClick" v-model="form.parentCode" maxlength="50" show-word-limit placeholder="请输入父部门编码"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="部门简称:" >
|
||||
<el-input v-model="form.shortName" maxlength="50" show-word-limit placeholder="请输入部门简称"></el-input>
|
||||
@@ -142,6 +142,7 @@ export default {
|
||||
mode: '',
|
||||
dialogUser: false,
|
||||
form: {
|
||||
parentCode:'',
|
||||
longName: '', // 部门名称
|
||||
departmentCode: '', // 部门编码
|
||||
leveL: '', // 部门级别
|
||||
@@ -157,24 +158,23 @@ export default {
|
||||
},
|
||||
methods: {
|
||||
isTreeOk(checkedList) {
|
||||
|
||||
const parts = []
|
||||
const partsName = []
|
||||
checkedList.map((item, index) => {
|
||||
parts.push(item.departmentCode)
|
||||
// partsName.push(item.longName)
|
||||
parts.push(item.id)
|
||||
partsName.push(item.departmentCode)
|
||||
})
|
||||
|
||||
this.qcrList = checkedList
|
||||
this.form.parentID = parts.toString()
|
||||
// this.form.departmentName = partsName.toString()
|
||||
this.form.parentCode = partsName.toString()
|
||||
|
||||
},
|
||||
handleClick() {
|
||||
if (this.dialogTitle == '查看') return
|
||||
if (this.form.parentID) {
|
||||
this.orgTableVal = this.form.parentID
|
||||
this.orgTableValName = ''
|
||||
this.orgTableValName = this.form.parentCode?this.form.parentCode:''
|
||||
}
|
||||
this.visibleOrgTable = true
|
||||
},
|
||||
@@ -235,6 +235,7 @@ export default {
|
||||
departmentCode: '', // 部门编码
|
||||
leveL: '', // 部门级别
|
||||
parentID: '', // 父部门编码
|
||||
parentCode:'',
|
||||
shortName: '', // 部门简称
|
||||
attribution: '', //归属地
|
||||
bmdm14: '', // 部门14位码
|
||||
@@ -298,6 +299,7 @@ export default {
|
||||
leveL: row.leveL, // 部门级别
|
||||
departmentCode: row.departmentCode, // 部门级别
|
||||
parentID: row.parentID, // 父部门编码
|
||||
parentCode:row.parentCode,
|
||||
shortName: row.shortName, // 部门简称
|
||||
id: row.id, // ID
|
||||
attribution: row.attribution, // 归属地
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
<!-- <el-input show-word-limit placeholder="请输入部门"></el-input>-->
|
||||
</el-form-item>
|
||||
<el-form-item label="邮箱:">
|
||||
<el-input v-model="form.email" placeholder="请输入邮箱"></el-input>
|
||||
<el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" show-word-limit></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="角色:" required>
|
||||
<el-select v-model="form.roleIdList[0]" class="icon-auth" placeholder="请选择角色">
|
||||
|
||||
@@ -190,7 +190,7 @@ export default {
|
||||
if (!this.form.itemValue) {
|
||||
return this.$message.warning('请检查选项值') && false
|
||||
}
|
||||
if (this.form.itemOrder && !(/^[0-9]*$/.test(this.form.itemOrder))) {
|
||||
if (!this.form.itemOrder || !(/^[0-9]*$/.test(this.form.itemOrder))) {
|
||||
return this.$message.warning('请检查排序') && false
|
||||
}
|
||||
return true
|
||||
|
||||
@@ -72,6 +72,31 @@ export default {
|
||||
params={ path: '/userCenter/processCenter', query: { id: 'AEHJB8YNJ3' }}
|
||||
}
|
||||
this.$message.success('登录成功')
|
||||
let department
|
||||
if(this.$store.getters.userInfo.orgEOList){
|
||||
department= this.$store.getters.userInfo.orgEOList.map(item=>{
|
||||
return item.longName
|
||||
})
|
||||
}
|
||||
let roleName
|
||||
if(this.$store.getters.userInfo.roleEOList){
|
||||
roleName = this.$store.getters.userInfo.roleEOList.map(item=>{
|
||||
return item.name
|
||||
})
|
||||
}
|
||||
aplus_queue.push({
|
||||
action: 'aplus.setMetaInfo',
|
||||
arguments: ["_user_id", this.$store.getters.userInfo.usid]
|
||||
});
|
||||
aplus_queue.push({
|
||||
'action':'aplus.record',
|
||||
'arguments':['$$_user_profile', 'OTHER', {
|
||||
name: this.$store.getters.userInfo.usname, //用户属性1
|
||||
department:department.join(','),
|
||||
roleName:roleName.join(','),
|
||||
|
||||
}]
|
||||
});
|
||||
this.getMarket().then((resx)=>{
|
||||
this.$store.commit('setMarketpre', resx)
|
||||
this.$router.push(params)
|
||||
|
||||
@@ -88,23 +88,22 @@
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col :span="5" :offset="1">
|
||||
<el-form-item label="上传报告:" prop="fileId">
|
||||
<el-upload action="#" :http-request="(params) => uploadFile(params)" :show-file-list="false"
|
||||
:before-upload="beforeUploadFile" :on-remove="handleRemove"
|
||||
:file-list="fileList" :disabled="formControl">
|
||||
<el-button class="uploadBtn" :disabled="formControl">选择文件</el-button>
|
||||
<el-form-item label="上传报告:" prop="fileList">
|
||||
|
||||
</el-upload>
|
||||
<el-button class="uploadBtn" @click="dialogFile=true">
|
||||
|
||||
{{fileList.length>0?('上传文件(已上传'+fileList.length+'个文件)'):'上传文件'}}
|
||||
</el-button>
|
||||
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="8" >
|
||||
<span class="uploadFile" v-if="form.fileName">
|
||||
<span :class="{'fontColor':formControl}" :title="form.fileName" class="juli">{{ form.fileName }}</span>
|
||||
<svg-icon icon-class="cloud" @click="downFile(form.fileId)" style="font-size: 20px"
|
||||
class-name="icon" ></svg-icon>
|
||||
<svg-icon icon-class="del" @click="delFile" style="font-size: 20px"
|
||||
v-if="!formControl" class-name="icon" ></svg-icon>
|
||||
<!-- <span :class="{'fontColor':formControl}" :title="form.fileName" class="juli">{{ form.fileName }}</span>-->
|
||||
<!-- <svg-icon icon-class="cloud" @click="downFile(form.fileId)" style="font-size: 20px"-->
|
||||
<!-- class-name="icon" ></svg-icon>-->
|
||||
<!-- <svg-icon icon-class="del" @click="delFile" style="font-size: 20px"-->
|
||||
<!-- v-if="!formControl" class-name="icon" ></svg-icon>-->
|
||||
<!-- <i class="el-icon-cloudy iconstyle" ></i>-->
|
||||
<!-- <i :class="{'fontColor':formControl}" class="el-icon-delete iconstyle" @click="delFile"></i>-->
|
||||
</span>
|
||||
@@ -116,6 +115,47 @@
|
||||
value: orgTableVal,
|
||||
valueName: orgTableValName
|
||||
}" :workNumFlag="true" :isOrg="true" :maxSelected="1" @confirm="isTreeOk"></orgTable>
|
||||
<el-dialog title="上传文件" :visible.sync="dialogFile" width="40%" :close-on-click-modal="false"
|
||||
:close-on-press-escape="false" modal-append-to-body append-to-body>
|
||||
<el-upload :disabled="formControl" action="/library/api/report/uploadFile" :show-file-list="false"
|
||||
:before-upload="beforeUploadFile" accept=".xls,.xlsx,.XLS,.XLSX,.pdf,.PDF,.ppt,.PPT"
|
||||
:file-list="fileList" multiple :on-success="onSuccess"
|
||||
:on-preview="handlePreview"
|
||||
:class="{'disable':formControl}">
|
||||
<div class="table_top">
|
||||
<el-button class="uploadBtn" type="primary" >上传文件</el-button>
|
||||
</div>
|
||||
|
||||
</el-upload>
|
||||
<div class="table">
|
||||
<vxe-table ref="xTable" :data="fileLists" :empty-render="{name: 'NotData'}" align="center" border stripe
|
||||
class="table-over" width="100%" :loading="table_loading"
|
||||
v-table-min-height="'50px'">
|
||||
<vxe-column show-header-overflow field="name" title="文件名称">
|
||||
<template #default="{ row, rowIndex }">
|
||||
<!-- <label class="row-title" >-->
|
||||
<!-- <el-tooltip :content="row.name" placement="top-start">-->
|
||||
<span class="report-name"> {{ row.name }}</span>
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column show-overflow show-header-overflow title="操作" width="200" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button type="text" class="del-btn" v-if="!formControl" @click="handleRemove(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"
|
||||
:total="total"/>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
@@ -133,7 +173,9 @@ export default {
|
||||
orgTable
|
||||
},
|
||||
props: {
|
||||
|
||||
prcType:{
|
||||
type: String
|
||||
},
|
||||
formControl: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
@@ -148,6 +190,11 @@ export default {
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
table_loading:false,
|
||||
total:0,
|
||||
fileLists:[],
|
||||
delIds:[],
|
||||
dialogFile:false,
|
||||
privacyLevelOptions,
|
||||
confidentialLevelOptions,
|
||||
orgTableVal: '',
|
||||
@@ -168,7 +215,7 @@ export default {
|
||||
},
|
||||
form: {},
|
||||
processFormRule: {
|
||||
fileId: [
|
||||
fileList: [
|
||||
{
|
||||
required: true,
|
||||
message: "上传报告不能为空",
|
||||
@@ -250,6 +297,7 @@ export default {
|
||||
watch: {
|
||||
processForm: {
|
||||
handler(val) {
|
||||
console.log(this.formControl,"jajjajajajajj")
|
||||
this.form = this.processForm
|
||||
console.log("变化了", this.form)
|
||||
if (this.form.secrecyLast) {
|
||||
@@ -270,11 +318,58 @@ export default {
|
||||
this.$refs.processFormRef.clearValidate()
|
||||
})
|
||||
}
|
||||
console.log(this.processForm,"this.processForm.fileList.length")
|
||||
if(this.processForm.fileList){
|
||||
if(this.processForm.fileList.length>0){
|
||||
this.fileList=this.processForm.fileList.map(item=>{
|
||||
return {
|
||||
name:item.fileName,
|
||||
id:item.fileId
|
||||
}
|
||||
})
|
||||
this.handleCurrentChange(1)
|
||||
}
|
||||
}
|
||||
|
||||
},
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
handleSizeChange(size){
|
||||
this.q.pageSize=size
|
||||
this.q.pageNo=1
|
||||
this.handleCurrentChange()
|
||||
},
|
||||
handleCurrentChange(current){
|
||||
setTimeout(() => {
|
||||
|
||||
current = current ? current : this.q.pageNo
|
||||
this.q.pageNo = current
|
||||
this.fileLists = this.fileList.slice(this.q.pageSize * (current - 1), this.q.pageSize * current)
|
||||
// console.log(this.pages.size, this.pages.size * (current - 1), this.pages.size * this.pages.current, this.list)
|
||||
if (this.fileLists.length < 1 && current > 1) {
|
||||
this.handleCurrentChange(current - 1)
|
||||
return false
|
||||
}
|
||||
this.total = this.fileList.length
|
||||
this.table_loading=false
|
||||
},500)
|
||||
},
|
||||
handlePreview(file){
|
||||
let lastName=file.name.split('.')
|
||||
let list=['xls','xlsx']
|
||||
if(list.indexOf(lastName[lastName.length-1].toLower)==-1){
|
||||
if(this.form.id|| this.form.reportId ) {
|
||||
this.$api.report.reportDownload({reportId: this.form.id || this.form.reportId, fileId: file.id}).then(res => {
|
||||
downloadFile(res)
|
||||
})
|
||||
}
|
||||
}else{
|
||||
this.$message.warning("当前.xls,.xlsx文件不支持下载")
|
||||
}
|
||||
|
||||
},
|
||||
changeDate(d){
|
||||
this.form.secrecyLast = new Date(d)
|
||||
},
|
||||
@@ -321,12 +416,6 @@ export default {
|
||||
this.form.departmentName = partsName.toString()
|
||||
|
||||
},
|
||||
delFile() {
|
||||
if (this.formControl) return
|
||||
this.fileList = []
|
||||
this.form.fileName = '';
|
||||
this.form.fileId = '';
|
||||
},
|
||||
reportLevel(item) {
|
||||
let imList = ['普通商密', '核心商密']
|
||||
|
||||
@@ -430,10 +519,21 @@ export default {
|
||||
this.dialogUser = true
|
||||
},
|
||||
handleRemove(file, fileList) {
|
||||
console.log(file, fileList);
|
||||
this.form.fileName = '';
|
||||
this.form.fileId = '';
|
||||
this.fileList = []
|
||||
debugger
|
||||
this.fileList = this.fileList.filter(item=>{
|
||||
let id=file.response?file.response.data.id:file.id
|
||||
let ietmid=item.response?item.response.data.id:item.id
|
||||
if(ietmid!=id){
|
||||
return item
|
||||
}
|
||||
})
|
||||
this.form.fileList = this.fileList.map(item=>{
|
||||
return {
|
||||
fileId:item.response?item.response.data.id:item.id,
|
||||
fileName:item.response?item.response.data.name:item.name
|
||||
}
|
||||
})
|
||||
this.handleCurrentChange(1)
|
||||
},
|
||||
//用递归方式去除children
|
||||
getTreeData(data) {
|
||||
@@ -454,30 +554,66 @@ export default {
|
||||
})
|
||||
this.$forceUpdate()
|
||||
},
|
||||
onSuccess(res, file,fileList){
|
||||
if(res.ok){
|
||||
// this.fileList.push({url:res.data.fullurl})//以前的错误代码
|
||||
|
||||
this.fileList=fileList
|
||||
this.form.fileList = this.fileList.map(item=>{
|
||||
return {
|
||||
fileId:item.response?item.response.data.id:item.id,
|
||||
fileName:item.response?item.response.data.name:item.name
|
||||
}
|
||||
})
|
||||
|
||||
this.$refs.processFormRef.clearValidate(['fileList'])
|
||||
if( this.form.fileList[fileList.length-1].fileId ){
|
||||
this.handleCurrentChange(1)
|
||||
console.log( this.form.fileList,"444")
|
||||
}
|
||||
}
|
||||
console.log( res," this.fileList3")
|
||||
},
|
||||
// 上传文件
|
||||
uploadFile(params) {
|
||||
let fd = new FormData();
|
||||
fd.append('file', params.file);
|
||||
this.$api.report.reportUploadFile(fd).then(({data}) => {
|
||||
this.form.fileName = data.name;
|
||||
this.form.fileId = data.key;
|
||||
this.fileList = [data]
|
||||
this.$refs.processFormRef.clearValidate(['fileId'])
|
||||
console.log( this.fileList," this.fileList")
|
||||
this.fileList.push(data)
|
||||
this.form.fileList = this.fileList.map(item=>{
|
||||
return {
|
||||
fileId:item.id,
|
||||
fileName:item.name
|
||||
}
|
||||
})
|
||||
this.$refs.processFormRef.clearValidate(['fileList'])
|
||||
})
|
||||
console.log( this.fileList," this.fileList22222")
|
||||
},
|
||||
// 上传文件前
|
||||
beforeUploadFile(file) {
|
||||
|
||||
let realFileType = file.name.split('.')[file.name.split('.').length - 1];
|
||||
const isType = (
|
||||
file.type === fileType.pdf || file.type === fileType.ppt || file.type === fileType.pptx
|
||||
|| realFileType === 'pdf' || realFileType === 'ppt' || realFileType === 'pptx'
|
||||
file.type === fileType.pdf || file.type === fileType.ppt || file.type === fileType.pptx || file.type === fileType.xlsx||
|
||||
file.type == fileType.xls
|
||||
|| realFileType === 'pdf' || realFileType === 'ppt' || realFileType === 'pptx' || realFileType == 'xls' || realFileType== 'xlsx'
|
||||
);
|
||||
const isSize = file.size / 1024 / 1024 < 200;
|
||||
if (!isType) {
|
||||
this.$message.error('仅能上传 pdf|ppt|pptx 格式文件');
|
||||
setTimeout(()=>{
|
||||
this.$message.error('仅能上传 pdf|ppt|pptx | excel 格式文件');
|
||||
|
||||
})
|
||||
}
|
||||
if (!isSize) {
|
||||
this.$message.error('您最大可上传200M文件');
|
||||
setTimeout(()=> {
|
||||
this.$message.error('您最大可上传200M文件');
|
||||
})
|
||||
}
|
||||
if(isType && isSize){
|
||||
this.table_loading=true
|
||||
}
|
||||
return isType && isSize;
|
||||
},
|
||||
@@ -542,11 +678,6 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.uploadBtn {
|
||||
vertical-align: super;
|
||||
}
|
||||
|
||||
.uploadFile {
|
||||
margin-left: -35px;
|
||||
height: 36px;
|
||||
@@ -591,4 +722,35 @@ export default {
|
||||
::v-deep .el-input.is-disabled .el-input__inner{
|
||||
color: #858585;
|
||||
}
|
||||
::v-deep .el-dialog{
|
||||
min-width: 380px !important;
|
||||
padding: 0 10px;
|
||||
.el-dialog__body{
|
||||
//text-align: center;
|
||||
}
|
||||
}
|
||||
.disable{
|
||||
::v-deep .el-upload-dragger{
|
||||
cursor: not-allowed ;
|
||||
|
||||
}
|
||||
}
|
||||
.table_top{
|
||||
padding: 10px 13px;
|
||||
text-align: left;
|
||||
}
|
||||
.table {
|
||||
padding-bottom: 15px;
|
||||
min-height: 200px;
|
||||
::v-deep .vxe-table--body-wrapper{
|
||||
height: 200px;
|
||||
overflow: auto;
|
||||
}
|
||||
.uploadBtn{
|
||||
margin: 10px;
|
||||
}
|
||||
::v-deep .el-pagination{
|
||||
padding-top: 10px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -11,9 +11,7 @@
|
||||
|
||||
<span class="base_title">基础信息</span>
|
||||
<report-form ref="basMes" :form-control="formControl" :form-controlname="formControlname"
|
||||
:process-form="processForm"></report-form>
|
||||
|
||||
|
||||
:process-form="processForm" :prcType="prcType"></report-form>
|
||||
</div>
|
||||
<div class="process_content" v-if="initShow">
|
||||
<span class="base_title">审批记录</span>
|
||||
@@ -118,6 +116,7 @@ export default {
|
||||
}
|
||||
},
|
||||
async created() {
|
||||
debugger
|
||||
// 如果是从草稿进入的
|
||||
if (this.$route.query.isDraft) {
|
||||
this.isShowSave = true
|
||||
@@ -154,13 +153,19 @@ export default {
|
||||
this.$set(this.assignForm,'oneApprove',submitJson.oneApprove)
|
||||
this.$set(this.assignForm,'oneApproveName',submitJson.oneApproveName)
|
||||
this.getLearder()
|
||||
if (this.$route.query.type == 'yiban'){
|
||||
this.formControl = true
|
||||
this.initShow = true
|
||||
this.showTableD = true
|
||||
}
|
||||
|
||||
}
|
||||
else if (this.$route.query.type == 'yiban') {
|
||||
this.taskId = this.$store.getters.handleProcess.taskId
|
||||
this.prcNum = this.$store.getters.handleProcess.prcNum
|
||||
this.prcId = this.$store.getters.handleProcess.prcId
|
||||
this.taskId = this.$store.getters.handleProcess?.taskId
|
||||
this.prcNum = this.$store.getters.handleProcess?.prcNum
|
||||
this.prcId = this.$store.getters.handleProcess?.prcId
|
||||
this.prcType = this.$store.getters.handleProcess?.prcType
|
||||
|
||||
this.formControl = true
|
||||
this.initShow = true
|
||||
this.showTableD = true
|
||||
@@ -207,6 +212,16 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
// 删除文件
|
||||
delFile(ids){
|
||||
return new Promise((resolve,reject)=>{
|
||||
this.$api.report.delFile({
|
||||
rfIdList:ids
|
||||
}).then(()=>{
|
||||
resolve()
|
||||
})
|
||||
})
|
||||
},
|
||||
// 获取领导
|
||||
getLearder(){
|
||||
console.log("获取领导")
|
||||
@@ -256,8 +271,9 @@ export default {
|
||||
privacyLevel:'',
|
||||
tags:'',
|
||||
mainContent:'',
|
||||
fileId:'',
|
||||
fileName:'',
|
||||
fileId:[],
|
||||
fileName:[],
|
||||
fileList:[]
|
||||
}
|
||||
this.applicationForm = {
|
||||
applyReason: '',
|
||||
|
||||
@@ -0,0 +1,754 @@
|
||||
<template>
|
||||
<div class="content-height report-list">
|
||||
<div class="title">
|
||||
<span>报告查询</span>
|
||||
</div>
|
||||
<div class="tag-search">
|
||||
<el-row>
|
||||
<el-col :span="6">
|
||||
<div class="tag-item">
|
||||
<label class="tag-title">全文检索:</label>
|
||||
<el-input v-model="q.keyContent" placeholder="请输入搜索词"></el-input>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<div class="tag-item">
|
||||
<label class="tag-title">报告年份:</label>
|
||||
<el-select v-model="q.year" multiple collapse-tags placeholder="请选择报告年份">
|
||||
<template v-for="item in yearList">
|
||||
<el-option :label="item" :value="item" :key="item"></el-option>
|
||||
</template>
|
||||
</el-select>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<div class="tag-item">
|
||||
<label class="tag-title">报告名称:</label>
|
||||
<el-input v-model="q.name" placeholder="请输入报告名称"></el-input>
|
||||
</div>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="6" align="right" class="tag-btns">
|
||||
<el-button type="primary" @click="search">查询</el-button>
|
||||
<el-button type="default" @click="reset">重置</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<el-row class="tag-btn">
|
||||
|
||||
<el-button v-if="!isAdmin" type="primary" @click="permissionApp(false)">申请权限</el-button>
|
||||
|
||||
<div class="tag-right">
|
||||
排序:
|
||||
<el-button @click="clickBtn(1)" :class="{'checkClass':isShowbg1}">时间</el-button>
|
||||
<el-button @click="clickBtn(2)" class="clickNum" :class="{'checkClass':isShowbg2}">点击量</el-button>
|
||||
<el-button @click="clickBtn(3)" :class="{'checkClass':isShowbg3}">下载量</el-button>
|
||||
</div>
|
||||
</el-row>
|
||||
|
||||
<div class="table">
|
||||
<el-row>
|
||||
<el-col :span="4" class="treeList ">
|
||||
<el-input placeholder="输入关键字进行过滤" v-model="filterText">
|
||||
</el-input>
|
||||
<div class="lef-tree scroll-myself">
|
||||
<el-tree
|
||||
class="filter-tree"
|
||||
:data="treeData"
|
||||
show-checkbox
|
||||
node-key="id"
|
||||
default-expand-all
|
||||
:filter-node-method="filterNode"
|
||||
ref="tree"
|
||||
@check="getHalfCheckedNode"
|
||||
|
||||
>
|
||||
<template slot-scope="{node}">
|
||||
<!-- <span v-if="node.label.length <= 10">{{ node.label }}</span>-->
|
||||
<!-- <el-tooltip :content="node.label" placement="top">-->
|
||||
<div :title="node.label" style="white-space: nowrap; overflow: hidden; text-overflow: ellipsis; width: 150px">
|
||||
{{ node.label }}
|
||||
</div>
|
||||
<!-- </el-tooltip>-->
|
||||
</template>
|
||||
</el-tree>
|
||||
</div>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="20" style="padding-left: 15px">
|
||||
<vxe-table ref="xTable" :data="tableData" :empty-render="{name: 'NotData'}" align="center" border stripe
|
||||
v-table-min-height="'calc(100vh - 320px)'"
|
||||
@checkbox-all="selectAllEvent" @checkbox-change="selectChangeEvent">
|
||||
<vxe-column type="checkbox" width="60"></vxe-column>
|
||||
<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-header-overflow field="name" title="报告名称">
|
||||
<template #default="{ row, rowIndex }">
|
||||
<!-- <label class="row-title" >-->
|
||||
<!-- <el-tooltip :content="row.name" placement="top-start">-->
|
||||
<span class="report-name"> {{ row.name }}</span>
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column show-overflow show-header-overflow field="mainContent" title="摘要"></vxe-column>
|
||||
<vxe-column show-overflow show-header-overflow field="year" title="报告年份"></vxe-column>
|
||||
<vxe-column show-overflow show-header-overflow field="reportRating" title="报告评级">
|
||||
<template #default="{row}">
|
||||
<el-rate
|
||||
v-model="row.reportRating/2"
|
||||
disabled
|
||||
text-color="#ff9900"
|
||||
>
|
||||
</el-rate>
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column show-overflow show-header-overflow field="thumbUp" title="点赞数">
|
||||
<template #default="{ row }">
|
||||
{{row.thumbUp || 0}}
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column show-overflow show-header-overflow field="clicks" title="点击量">
|
||||
<template #default="{ row }">
|
||||
{{row.clicks || 0}}
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column show-overflow show-header-overflow field="download" title="下载量">
|
||||
<template #default="{ row }">
|
||||
{{row.download || 0}}
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column show-overflow show-header-overflow field="uploader" title="上传人"></vxe-column>
|
||||
<vxe-column show-overflow show-header-overflow title="操作" width="200" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button type="text" v-if="row.collect" @click="collectReport(row.id)">收藏</el-button>
|
||||
<el-button type="text" v-if="!row.collect" @click="collectReport(row.id)">取消收藏</el-button>
|
||||
<el-button type="text" v-if="row.power == 1 ||row.power == 2" @click="goReportDetail(row)">预览</el-button>
|
||||
<el-button type="text" v-if="row.power == 3 || row.power == 2 " @click="downloadRow(row)">下载</el-button>
|
||||
<el-button type="text" v-if="row.power !== 2 && !isAdmin" @click="permissionApp(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-col>
|
||||
</el-row>
|
||||
</div>
|
||||
|
||||
<!--预览-->
|
||||
<el-dialog title="预览" :visible.sync="dialogPreview" width="1000px" :close-on-click-modal="false"
|
||||
:close-on-press-escape="false" :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-else class="full-screen" src="@/assets/imgs/icon-small.png" alt="" @click="fullscreen = !fullscreen">
|
||||
</div>
|
||||
<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 }">
|
||||
<div class="preview-content" v-html="content"></div>
|
||||
</el-scrollbar>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {downloadFile} from '@/utils/downloadFile'
|
||||
import {formatDate} from '@/utils/date'
|
||||
import {sendTrackEvent} from '@/utils/quickTracking'
|
||||
export default {
|
||||
name: 'ReportList',
|
||||
data() {
|
||||
return {
|
||||
isShowbg1:true,
|
||||
isShowbg2:false,
|
||||
isShowbg3:false,
|
||||
value:3.7,
|
||||
watermarkText: '', // 水印
|
||||
fullscreen: false,
|
||||
q: {
|
||||
keyContent: '',
|
||||
year: [],
|
||||
name: '',
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
orderByClicks:0,
|
||||
orderByDownload:0,
|
||||
orderByTime:1
|
||||
},
|
||||
total: 0,
|
||||
tableData: [],
|
||||
yearList: [],
|
||||
tagData: {
|
||||
1: {
|
||||
name: '',
|
||||
tagShow: false,
|
||||
tags: [],
|
||||
isIndeterminate: true,
|
||||
checkAll: false
|
||||
},
|
||||
2: {
|
||||
name: '',
|
||||
tagShow: false,
|
||||
tags: [],
|
||||
isIndeterminate: true,
|
||||
checkAll: false
|
||||
},
|
||||
3: {
|
||||
name: '',
|
||||
tagShow: false,
|
||||
tags: [],
|
||||
isIndeterminate: true,
|
||||
checkAll: false
|
||||
}
|
||||
},
|
||||
dialogPreview: false, // 预览
|
||||
content: '',
|
||||
filterText: '',
|
||||
treeData: [],
|
||||
checkIds: [],
|
||||
checkList: [],
|
||||
checkedKeys: [],
|
||||
isAdmin: false //是否是管理员
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
filterText(val) {
|
||||
this.$refs.tree.filter(val);
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
clickBtn(type){
|
||||
for(let i= 1;i<4;i++){
|
||||
this['isShowbg'+i] = false
|
||||
}
|
||||
this['isShowbg'+type] = true
|
||||
if(type==1){
|
||||
this.q.orderByTime=1
|
||||
this.q.orderByClicks=0
|
||||
this.q.orderByDownload=0
|
||||
|
||||
}else if(type==2){
|
||||
this.q.orderByClicks=1
|
||||
this.q.orderByTime=0
|
||||
this.q.orderByDownload=0
|
||||
|
||||
}else{
|
||||
this.q.orderByDownload=1
|
||||
this.q.orderByClicks=0
|
||||
this.q.orderByTime=0
|
||||
}
|
||||
this.q.pageNo=1
|
||||
this.reportList()
|
||||
},
|
||||
getKeyContent(list) {
|
||||
if (list) {
|
||||
let keyContent = []
|
||||
list = JSON.parse(list)
|
||||
list.forEach(item => {
|
||||
keyContent.push(item.text)
|
||||
})
|
||||
keyContent = keyContent.toString().replace(/,/g, '/');
|
||||
if (keyContent == '') keyContent = '---'
|
||||
// if(keyContent.length>15){
|
||||
// keyContent=keyContent.slice(0,15) +'...'
|
||||
// }
|
||||
return keyContent
|
||||
} else {
|
||||
return ''
|
||||
}
|
||||
},
|
||||
getHalfCheckedNode(node, data) {
|
||||
this.checkedKeys = data.checkedKeys
|
||||
this.reportList()
|
||||
},
|
||||
filterNode(value, data) {
|
||||
if (!value) return true;
|
||||
return data.label.indexOf(value) !== -1;
|
||||
},
|
||||
selectAllEvent({checked}) {
|
||||
const records = this.$refs.xTable.getCheckboxRecords()
|
||||
this.checkList = records
|
||||
this.checkIds = records.map(item => {
|
||||
return item.id
|
||||
})
|
||||
},
|
||||
selectChangeEvent({checked}) {
|
||||
const records = this.$refs.xTable.getCheckboxRecords()
|
||||
this.checkList = records
|
||||
this.checkIds = records.map(item => {
|
||||
return item.id
|
||||
})
|
||||
},
|
||||
permissionApp(row) {
|
||||
if(row){
|
||||
if(row.isAct == 0){
|
||||
this.$message.warning("当前"+row.name+"已经在流程中")
|
||||
return
|
||||
}
|
||||
this.$router.push({
|
||||
path: '/permission/launch',
|
||||
query: {id: 'AEHJB8YNJ3', isBegin: 1,ids:row.id}
|
||||
})
|
||||
}else{
|
||||
if(this.checkList.length <1){
|
||||
this.$message.warning("至少选择一条报告进行权限申请")
|
||||
return
|
||||
}
|
||||
let already=this.checkList.filter(item =>{
|
||||
if( +item.isAct == 0){
|
||||
return item
|
||||
}
|
||||
})
|
||||
if(already.length>0) {
|
||||
let name=already.map(item=>item.name)
|
||||
this.$message.warning("当前选择的"+name.join(',')+"已经在流程中")
|
||||
return
|
||||
}
|
||||
// 有预览权限的时候是否还让继续申请
|
||||
let temp=this.checkList.filter(item =>{
|
||||
if( +item.power == 2){
|
||||
return item.name
|
||||
}
|
||||
})
|
||||
console.log(temp)
|
||||
if(temp.length>0) {
|
||||
let name=temp.map(item=>item.name)
|
||||
this.$message.warning("当前选择的"+name.join(',')+"已经有权限,无须申请!")
|
||||
return
|
||||
}
|
||||
|
||||
this.$router.push({
|
||||
path: '/permission/launch',
|
||||
query: {id: 'AEHJB8YNJ3', isBegin: 1,ids:this.checkIds.join(',')}
|
||||
})
|
||||
}
|
||||
|
||||
},
|
||||
init() {
|
||||
this.getTreeLabel()
|
||||
// this.labelList()
|
||||
this.reportDateList()
|
||||
this.reportList()
|
||||
},
|
||||
getTreeLabel() {
|
||||
this.$api.report.labelList().then(res => {
|
||||
this.treeData = res.data
|
||||
})
|
||||
},
|
||||
search() {
|
||||
this.q.pageNo = 1
|
||||
this.reportList()
|
||||
},
|
||||
// 列表
|
||||
reportList() {
|
||||
this.$api.report.collectList({...this.q, labelId: this.checkedKeys}).then(({data}) => {
|
||||
this.tableData = data.records
|
||||
this.total = data.total
|
||||
this.q.pageNo = data.current
|
||||
this.q.pageSize = data.size
|
||||
if (!data.records.length && this.q.pageNo !== 1) {
|
||||
this.q.pageNo = 1
|
||||
this.reportList()
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// 日期列表
|
||||
reportDateList() {
|
||||
this.$api.report.reportDateList().then(({data}) => {
|
||||
this.yearList = data.list
|
||||
})
|
||||
},
|
||||
// 单页数据量
|
||||
handleSizeChange(val) {
|
||||
this.q.pageSize = val
|
||||
this.q.pageNo = 1
|
||||
this.reportList()
|
||||
},
|
||||
// 第几页
|
||||
handleCurrentChange(val) {
|
||||
this.q.pageNo = val
|
||||
this.reportList()
|
||||
},
|
||||
// 预览
|
||||
previewRow(row) {
|
||||
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.content = data.content
|
||||
this.dialogPreview = true
|
||||
})
|
||||
},
|
||||
// 重置
|
||||
reset() {
|
||||
this.q = {
|
||||
keyContent: '',
|
||||
year: [],
|
||||
labelOneId: [],
|
||||
labelTwoId: [],
|
||||
labelThreeId: [],
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
orderByTime:1,
|
||||
orderByDownload:0,
|
||||
orderByClicks:0
|
||||
}
|
||||
this.total = 0
|
||||
this.tableData = []
|
||||
this.tagData[1].checkAll = false
|
||||
this.tagData[1].isIndeterminate = true
|
||||
this.tagData[2].checkAll = false
|
||||
this.tagData[2].isIndeterminate = true
|
||||
this.tagData[3].checkAll = false
|
||||
this.tagData[3].isIndeterminate = true
|
||||
this.reportList()
|
||||
},
|
||||
// 下载
|
||||
downloadRow(row) {
|
||||
// this.$confirm('此操作将下载所选数据文件, 是否继续?', '提示', {
|
||||
// confirmButtonText: '确定',
|
||||
// cancelButtonText: '取消',
|
||||
// type: 'warning'
|
||||
// }).then(() => {
|
||||
this.$api.report.reportDownload({reportId:row.id}).then(res => {
|
||||
downloadFile(res)
|
||||
this.reportList()
|
||||
})
|
||||
|
||||
// })
|
||||
},
|
||||
collectReport(id){
|
||||
this.$api.report.reportCollect({reportId:id}).then(res=>{
|
||||
this.$message.success("操作成功")
|
||||
this.reportList()
|
||||
})
|
||||
},
|
||||
// 跳转到详情
|
||||
goReportDetail(row) {
|
||||
sendTrackEvent({
|
||||
eventName: 'preview_click',
|
||||
params: {id:row.id,name:row.name}
|
||||
})
|
||||
window.open('/report/detail?id='+this.$route.query.id+'&reportId='+row.id)
|
||||
this.reportList()
|
||||
// this.$router.push({path: '/report/detail', query: {id: this.$route.query.id, reportId: row.id}})
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.init()
|
||||
// 判断当前人是不是管理员
|
||||
if((this.$store.getters.userInfo.levelId=='1' || this.$store.getters.userInfo.levelId=='2'
|
||||
||this.$store.getters.userInfo.levelId=='3' || this.$store.getters.userInfo.levelId=='4'
|
||||
)&&this.$store.getters.userInfo.employeeTypeId=='1' ){
|
||||
this.isAdmin = true
|
||||
}else{
|
||||
this.isAdmin=false
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.keyContent {
|
||||
display: inline-block;
|
||||
width: 50px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.treeList {
|
||||
padding: 20px 20px 0;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, .12), 0 0 6px rgba(0, 0, 0, .04);
|
||||
//margin-right: 20px;
|
||||
|
||||
.filter-tree {
|
||||
margin-top: 20px;
|
||||
height: calc(100vh - 320px);
|
||||
//overflow: scroll;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.tree {
|
||||
height: 500px;
|
||||
//overflow: auto;
|
||||
.filter-tree {
|
||||
margin-top: 20px;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.report-name {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.report-list {
|
||||
.title {
|
||||
border-bottom: 1px solid #EBEEF5;
|
||||
height: 42px;
|
||||
line-height: 42px;
|
||||
margin: 0 18px 0 22px;
|
||||
|
||||
span {
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
color: #262626;
|
||||
}
|
||||
}
|
||||
|
||||
.tag-btn {
|
||||
.el-button + .el-button {
|
||||
margin-left: 0px;
|
||||
|
||||
|
||||
}
|
||||
|
||||
padding: 18px 13px 11px;
|
||||
.tag-right{
|
||||
float: right;
|
||||
::v-deep .el-button{
|
||||
border: 1px solid #3D87CC;
|
||||
border-radius: 0;
|
||||
color: #3D87CC;
|
||||
background-color: #ecf5ff;
|
||||
}
|
||||
.clickNum{
|
||||
border: none;
|
||||
border-top: 1px solid #3D87CC ;
|
||||
border-bottom: 1px solid #3D87CC;
|
||||
}
|
||||
|
||||
}
|
||||
.checkClass{
|
||||
background-color: rgba(64, 158, 255, 1) !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
}
|
||||
|
||||
.tag-search {
|
||||
padding-top: 9px;
|
||||
|
||||
::v-deep .el-date-picker,
|
||||
::v-deep .el-input {
|
||||
width: 240px;
|
||||
}
|
||||
|
||||
.tag-item {
|
||||
margin-bottom: 15px;
|
||||
display: flex;
|
||||
|
||||
.year {
|
||||
::v-deep .el-input__inner {
|
||||
padding: 0 15px !important;
|
||||
}
|
||||
}
|
||||
|
||||
label.tag-title {
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
color: #646464;
|
||||
display: inline-block;
|
||||
// width: 112px;
|
||||
height: 19px;
|
||||
line-height: 19px;
|
||||
padding-left: 13px;
|
||||
// border-right: 1px solid #BFBFBF;
|
||||
margin-right: 10px;
|
||||
margin-top: 2.5px;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.tag-show {
|
||||
flex: 1;
|
||||
margin-right: 28px;
|
||||
height: 19px;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
|
||||
&.active {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
::v-deep .check-active {
|
||||
.el-checkbox__label {
|
||||
color: #434343;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .el-checkbox {
|
||||
margin-right: 15px;
|
||||
color: #434343;
|
||||
}
|
||||
|
||||
::v-deep .el-checkbox__label {
|
||||
min-width: 80px;
|
||||
}
|
||||
|
||||
::v-deep .el-checkbox-group {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.el-icon-arrow-down,
|
||||
.el-icon-arrow-up {
|
||||
color: #C0C4CC;
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 2px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tag-btns {
|
||||
padding-right: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
.table {
|
||||
margin: 0 14px 0 13px;
|
||||
|
||||
.row-info {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
|
||||
.icon-file-type {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
margin-right: 21px;
|
||||
}
|
||||
|
||||
.row-text {
|
||||
width: calc(100% - 48px - 21px);
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-flow: column;
|
||||
text-align: left;
|
||||
|
||||
.row-title {
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
color: #262626;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
color: #1890FF;
|
||||
}
|
||||
}
|
||||
|
||||
.tag-info {
|
||||
.icon-tag-item {
|
||||
margin-left: 12px;
|
||||
|
||||
img {
|
||||
width: 12px;
|
||||
margin-right: 5px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
span {
|
||||
display: inline-block;
|
||||
min-width: 80px;
|
||||
font-size: 12px;
|
||||
color: #8C8C8C;
|
||||
font-weight: 500;
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .el-pagination {
|
||||
margin-top: 13px;
|
||||
padding-left: 20px;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.dialog-title {
|
||||
display: inline-flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
.full-screen {
|
||||
cursor: pointer;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
vertical-align: middle;
|
||||
margin-left: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.preview-dialog-body {
|
||||
padding: 9px 25px 17px 22px;
|
||||
height: 60vh;
|
||||
position: relative;
|
||||
|
||||
&.active {
|
||||
height: calc(100vh - 52px);
|
||||
}
|
||||
|
||||
.full-screen {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
right: 35px;
|
||||
top: 10px;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
//&:hover{
|
||||
// color: #199BFF;
|
||||
//}
|
||||
}
|
||||
|
||||
::v-deep .el-scrollbar {
|
||||
height: 100%;
|
||||
|
||||
.el-scrollbar__wrap {
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.el-scrollbar__view {
|
||||
padding: 0 !important;
|
||||
|
||||
.preview-content {
|
||||
img {
|
||||
max-width: 100% !important;
|
||||
}
|
||||
|
||||
table {
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,499 @@
|
||||
<template>
|
||||
<div class="content-height report-list">
|
||||
<div class="title">
|
||||
<span>站内信</span>
|
||||
</div>
|
||||
<div class="tag-search">
|
||||
<el-row>
|
||||
<el-col :span="6">
|
||||
<div class="tag-item">
|
||||
<label class="tag-title">标题:</label>
|
||||
<el-input v-model="q.messageTitle" placeholder="请输入标题"></el-input>
|
||||
</div>
|
||||
</el-col>
|
||||
<!-- <el-col :span="6">-->
|
||||
<!-- <div class="tag-item">-->
|
||||
<!-- <label class="tag-title">发布人:</label>-->
|
||||
<!-- <el-select v-model="q.year" multiple collapse-tags placeholder="请选择报告年份">-->
|
||||
<!-- <template v-for="item in yearList">-->
|
||||
<!-- <el-option :label="item" :value="item" :key="item"></el-option>-->
|
||||
<!-- </template>-->
|
||||
<!-- </el-select>-->
|
||||
<!-- </div>-->
|
||||
<!-- </el-col>-->
|
||||
<el-col :span="6" :offset="12" align="right" class="tag-btns">
|
||||
<el-button type="primary" @click="search">查询</el-button>
|
||||
<el-button type="default" @click="reset">重置</el-button>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</div>
|
||||
<el-row class="tag-btn">
|
||||
|
||||
<el-button type="primary" @click="permissionApp(false)">全部标注已读</el-button>
|
||||
|
||||
</el-row>
|
||||
|
||||
<div class="table">
|
||||
<el-row>
|
||||
<el-col :span="24">
|
||||
<vxe-table ref="xTable" :data="tableData" :empty-render="{name: 'NotData'}" align="center" border stripe
|
||||
v-table-min-height="'calc(100vh - 320px)'"
|
||||
@checkbox-all="selectAllEvent" @checkbox-change="selectChangeEvent">
|
||||
<vxe-column show-header-overflow field="messageTitle" title="标题">
|
||||
</vxe-column>
|
||||
<vxe-column show-overflow show-header-overflow field="messageTypeDesc" title="消息类型">
|
||||
</vxe-column>
|
||||
<vxe-column show-overflow show-header-overflow field="createDate" title="发布时间">
|
||||
<template #default="{ row }">
|
||||
{{formatDate2(row.createDate)}}
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column show-overflow show-header-overflow field="readType" title="阅读状态">
|
||||
<template #default="{row}">
|
||||
<el-tag :type="row.readType=='0'?'info':'success'">{{row.readType=='0'?'未读':'已读'}}</el-tag>
|
||||
</template>
|
||||
</vxe-column>
|
||||
<vxe-column show-overflow show-header-overflow title="操作" width="200" fixed="right">
|
||||
<template #default="{ row }">
|
||||
<el-button type="text" @click="goReportDetail(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-col>
|
||||
</el-row>
|
||||
|
||||
</div>
|
||||
<el-dialog
|
||||
title="查看详情"
|
||||
:visible.sync="dialogPreview"
|
||||
width="30%"
|
||||
class="addreport"
|
||||
:before-close="handleClose">
|
||||
<div class="messageBox">
|
||||
<div class="messageBox_title">
|
||||
<div class="messageBox_title_top">{{detail.messageTitle}}</div>
|
||||
<div class="messageBox_time">
|
||||
<!-- 发布人: {{detail.createDate}}-->
|
||||
发布时间: {{formatDate2(detail.createDate)}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="messageBox_content">
|
||||
<div class="messageBox_content_type">
|
||||
{{detail.messageTypeDesc}}
|
||||
</div>
|
||||
<div class="mailContent">
|
||||
通知内容:{{detail.content}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {formatDate2} from '@/utils/date'
|
||||
export default {
|
||||
name: 'ReportList',
|
||||
data() {
|
||||
return {
|
||||
detail:'',
|
||||
formatDate2,
|
||||
value:3.7,
|
||||
watermarkText: '', // 水印
|
||||
fullscreen: false,
|
||||
q: {
|
||||
messageTitle: '',
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
},
|
||||
total: 0,
|
||||
tableData: [],
|
||||
dialogPreview: false, // 预览
|
||||
content: '',
|
||||
filterText: '',
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
filterText(val) {
|
||||
this.$refs.tree.filter(val);
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
selectAllEvent({checked}) {
|
||||
const records = this.$refs.xTable.getCheckboxRecords()
|
||||
this.checkList = records
|
||||
this.checkIds = records.map(item => {
|
||||
return item.id
|
||||
})
|
||||
},
|
||||
selectChangeEvent({checked}) {
|
||||
const records = this.$refs.xTable.getCheckboxRecords()
|
||||
this.checkList = records
|
||||
this.checkIds = records.map(item => {
|
||||
return item.id
|
||||
})
|
||||
},
|
||||
permissionApp(row) {
|
||||
this.$api.message.allRead().then(({data}) => {
|
||||
this.reportList()
|
||||
})
|
||||
},
|
||||
init() {
|
||||
this.reportList()
|
||||
},
|
||||
search() {
|
||||
this.q.pageNo = 1
|
||||
this.reportList()
|
||||
},
|
||||
// 列表
|
||||
reportList() {
|
||||
this.$api.message.getList({...this.q}).then(({data}) => {
|
||||
this.tableData = data.records
|
||||
this.total = data.total
|
||||
this.q.pageNo = data.current
|
||||
this.q.pageSize = data.size
|
||||
if (!data.records.length && this.q.pageNo !== 1) {
|
||||
this.q.pageNo = 1
|
||||
this.reportList()
|
||||
}
|
||||
})
|
||||
},
|
||||
// 单页数据量
|
||||
handleSizeChange(val) {
|
||||
this.q.pageSize = val
|
||||
this.q.pageNo = 1
|
||||
this.reportList()
|
||||
},
|
||||
// 第几页
|
||||
handleCurrentChange(val) {
|
||||
this.q.pageNo = val
|
||||
this.reportList()
|
||||
},
|
||||
handleClose(){
|
||||
if(this.detail.readType =='0'){
|
||||
this.$api.message.oneRead(this.detail.id).then(res=>{
|
||||
this.dialogPreview=false
|
||||
this.reportList()
|
||||
})
|
||||
}else{
|
||||
this.dialogPreview=false
|
||||
}
|
||||
|
||||
},
|
||||
// 重置
|
||||
reset() {
|
||||
this.q = {
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
}
|
||||
this.tableData = []
|
||||
this.reportList()
|
||||
},
|
||||
goReportDetail(row) {
|
||||
//弹出详情
|
||||
this.detail=row
|
||||
this.dialogPreview=true
|
||||
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.init()
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
|
||||
.report-list {
|
||||
.title {
|
||||
border-bottom: 1px solid #EBEEF5;
|
||||
height: 42px;
|
||||
line-height: 42px;
|
||||
margin: 0 18px 0 22px;
|
||||
|
||||
span {
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
color: #262626;
|
||||
}
|
||||
}
|
||||
|
||||
.tag-btn {
|
||||
.el-button + .el-button {
|
||||
margin-left: 0px;
|
||||
|
||||
|
||||
}
|
||||
|
||||
padding: 18px 13px 11px;
|
||||
.tag-right{
|
||||
float: right;
|
||||
::v-deep .el-button{
|
||||
border: 1px solid #3D87CC;
|
||||
border-radius: 0;
|
||||
color: #3D87CC;
|
||||
background-color: #ecf5ff;
|
||||
}
|
||||
.clickNum{
|
||||
border: none;
|
||||
border-top: 1px solid #3D87CC ;
|
||||
border-bottom: 1px solid #3D87CC;
|
||||
}
|
||||
|
||||
}
|
||||
.checkClass{
|
||||
background-color: rgba(64, 158, 255, 1) !important;
|
||||
color: #fff !important;
|
||||
}
|
||||
}
|
||||
|
||||
.tag-search {
|
||||
padding-top: 9px;
|
||||
|
||||
::v-deep .el-date-picker,
|
||||
::v-deep .el-input {
|
||||
width: 240px;
|
||||
}
|
||||
|
||||
.tag-item {
|
||||
margin-bottom: 15px;
|
||||
display: flex;
|
||||
|
||||
.year {
|
||||
::v-deep .el-input__inner {
|
||||
padding: 0 15px !important;
|
||||
}
|
||||
}
|
||||
|
||||
label.tag-title {
|
||||
font-size: 14px;
|
||||
font-weight: normal;
|
||||
color: #646464;
|
||||
display: inline-block;
|
||||
// width: 112px;
|
||||
height: 19px;
|
||||
line-height: 19px;
|
||||
padding-left: 13px;
|
||||
// border-right: 1px solid #BFBFBF;
|
||||
margin-right: 10px;
|
||||
margin-top: 2.5px;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.tag-show {
|
||||
flex: 1;
|
||||
margin-right: 28px;
|
||||
height: 19px;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
|
||||
&.active {
|
||||
height: auto;
|
||||
}
|
||||
|
||||
::v-deep .check-active {
|
||||
.el-checkbox__label {
|
||||
color: #434343;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .el-checkbox {
|
||||
margin-right: 15px;
|
||||
color: #434343;
|
||||
}
|
||||
|
||||
::v-deep .el-checkbox__label {
|
||||
min-width: 80px;
|
||||
}
|
||||
|
||||
::v-deep .el-checkbox-group {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.el-icon-arrow-down,
|
||||
.el-icon-arrow-up {
|
||||
color: #C0C4CC;
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 2px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tag-btns {
|
||||
padding-right: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
.table {
|
||||
margin: 0 14px 0 13px;
|
||||
|
||||
.row-info {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
|
||||
.icon-file-type {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
margin-right: 21px;
|
||||
}
|
||||
|
||||
.row-text {
|
||||
width: calc(100% - 48px - 21px);
|
||||
flex: 1;
|
||||
display: flex;
|
||||
flex-flow: column;
|
||||
text-align: left;
|
||||
|
||||
.row-title {
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
color: #262626;
|
||||
cursor: pointer;
|
||||
|
||||
&:hover {
|
||||
color: #1890FF;
|
||||
}
|
||||
}
|
||||
|
||||
.tag-info {
|
||||
.icon-tag-item {
|
||||
margin-left: 12px;
|
||||
|
||||
img {
|
||||
width: 12px;
|
||||
margin-right: 5px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
span {
|
||||
display: inline-block;
|
||||
min-width: 80px;
|
||||
font-size: 12px;
|
||||
color: #8C8C8C;
|
||||
font-weight: 500;
|
||||
vertical-align: middle;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .el-pagination {
|
||||
margin-top: 13px;
|
||||
padding-left: 20px;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.dialog-title {
|
||||
display: inline-flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
.full-screen {
|
||||
cursor: pointer;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
vertical-align: middle;
|
||||
margin-left: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.preview-dialog-body {
|
||||
padding: 9px 25px 17px 22px;
|
||||
height: 60vh;
|
||||
position: relative;
|
||||
|
||||
&.active {
|
||||
height: calc(100vh - 52px);
|
||||
}
|
||||
|
||||
.full-screen {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
z-index: 10;
|
||||
right: 35px;
|
||||
top: 10px;
|
||||
width: 24px;
|
||||
height: 24px;
|
||||
//&:hover{
|
||||
// color: #199BFF;
|
||||
//}
|
||||
}
|
||||
|
||||
::v-deep .el-scrollbar {
|
||||
height: 100%;
|
||||
|
||||
.el-scrollbar__wrap {
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.el-scrollbar__view {
|
||||
padding: 0 !important;
|
||||
|
||||
.preview-content {
|
||||
img {
|
||||
max-width: 100% !important;
|
||||
}
|
||||
|
||||
table {
|
||||
margin: 0 auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.messageBox{
|
||||
min-height: 400px;
|
||||
padding: 20px;
|
||||
|
||||
.messageBox_title{
|
||||
border-bottom: 1px solid #ccc;
|
||||
//padding-bottom: 10px;
|
||||
padding: 10px 10px;
|
||||
}
|
||||
.messageBox_title_top{
|
||||
font-size: 18px;
|
||||
font-weight: 500;
|
||||
}
|
||||
.messageBox_time{
|
||||
color: #acacac;
|
||||
font-size: 15px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
.messageBox_content{
|
||||
margin-top: 20px;
|
||||
padding: 10px 10px;
|
||||
.messageBox_content_type{
|
||||
font-size: 15px;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
}
|
||||
.mailContent{
|
||||
width: 100%;
|
||||
max-height: 200px;
|
||||
overflow: auto;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
Reference in New Issue
Block a user