Merge remote-tracking branch 'origin/yuekuo' into lixuetao

# Conflicts:
#	src/views/Report/ReportList.vue
This commit is contained in:
xuetao.li
2023-04-25 21:21:23 +08:00
4 changed files with 364 additions and 422 deletions
+74 -134
View File
@@ -8,7 +8,7 @@
<el-col :span="6">
<div class="tag-item">
<label class="tag-title">关键词:</label>
<el-input v-model="q.keyContent" placeholder="请输入报告名称"></el-input>
<el-input v-model="q.keyContent" placeholder="请输入关键词"></el-input>
</div>
</el-col>
<el-col :span="6">
@@ -96,30 +96,26 @@
</el-row>
</div>
<el-row class="tag-btn">
<el-button @click="permissionApp">权限申请</el-button>
</el-row>
<div class="table">
<el-row>
<el-col :span="4" class="treeList">
<el-input placeholder="输入关键字进行过滤" v-model="filterText">
</el-input>
<el-tree
class="filter-tree"
:data="treeData"
show-checkbox
node-key="id"
default-expand-all
:filter-node-method="filterNode"
ref="tree"
>
</el-tree>
</el-col>
<el-col :span="19">
<vxe-table ref="xTable" :data="tableData" :empty-render="{name: 'NotData'}" align="center" border stripe v-table-min-height="'calc(100vh - 420px)'"
@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">
<el-row>
<el-col :span="4" class="treeList">
<el-input placeholder="输入关键字进行过滤" v-model="filterText">
</el-input>
<el-tree
class="filter-tree"
:data="treeData"
show-checkbox
node-key="id"
default-expand-all
:filter-node-method="filterNode"
ref="tree"
@check="getHalfCheckedNode"
>
</el-tree>
</el-col>
<el-col :span="19">
<vxe-table :data="tableData" :empty-render="{name: 'NotData'}" align="center" border stripe v-table-min-height="'calc(100vh - 420px)'">
<vxe-column show-overflow show-header-overflow type="seq" title="序号" width="77">
<template #default="{ row, rowIndex }">
{{ rowIndex + (q.pageNo - 1) * q.pageSize + 1 }}
</template>
@@ -141,9 +137,9 @@
<div class="tag-info">
<span class="icon-tag-item"><img src="@/assets/imgs/icon-time.png"
alt=""><span>{{row.year}}</span></span>
<!-- <span class="icon-tag-item"><img src="@/assets/imgs/icon-tag01.png"
alt=""><span>{{row.labelOneName}}</span></span>
<span class="icon-tag-item"><img src="@/assets/imgs/icon-tag02.png"
<span class="icon-tag-item"><img src="@/assets/imgs/icon-tag01.png"
alt=""><span class="keyContent">{{getKeyContent(row.keyContent)}}</span></span>
<!-- <span class="icon-tag-item"><img src="@/assets/imgs/icon-tag02.png"
alt=""><span>{{row.labelTwoName}}</span></span>
<span class="icon-tag-item"><img src="@/assets/imgs/icon-tag03.png"
alt=""><span>{{row.labelThreeName}}</span></span> -->
@@ -155,8 +151,8 @@
</vxe-column>
<vxe-column show-overflow show-header-overflow title="操作" width="200" fixed="right">
<template #default="{ row }">
<el-button type="text" v-if="row.power == 1" @click="previewRow(row)">预览</el-button>
<el-button type="text" v-if="row.power == 2" @click="downloadRow(row)">下载</el-button>
<el-button type="text" @click="previewRow(row)">预览</el-button>
<!-- <el-button type="text" @click="downloadRow(row)">下载</el-button>-->
</template>
</vxe-column>
@@ -171,7 +167,6 @@
:total="total"/>
</el-col>
</el-row>
</div>
<!--预览-->
@@ -209,12 +204,10 @@ export default {
q: {
keyContent: '',
year: [],
labelOneId: [],
labelTwoId: [],
labelThreeId: [],
name:'',
pageNo: 1,
pageSize: 10
},
pageSize: 10,
},
total: 0,
tableData: [],
yearList: [],
@@ -245,64 +238,8 @@ export default {
content: '',
filterText:'',
treeData: [
{
id: 0,
label: '根节点',
children: [
{
id: 1,
label: '一级 1',
children: [
{
id: 4,
label: '二级 1-1',
children: [
{
id: 9,
label: '三级 1-1-1'
},
{
id: 10,
label: '三级 1-1-2'
}
]
}
]
},
{
id: 2,
label: '一级 2',
children: [
{
id: 5,
label: '二级 2-1'
},
{
id: 6,
label: '二级 2-2'
}
]
},
{
id: 3,
label: '一级 3',
children: [
{
id: 7,
label: '二级 3-1'
},
{
id: 8,
label: '二级 3-2'
}
]
},
]
}
],
checkIds: [],
checkList: []
checkedKeys:[]
}
},
watch: {
@@ -311,50 +248,39 @@ export default {
}
},
methods: {
getKeyContent(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
},
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 () {
if(this.checkList.length <1){
this.$message.warning("至少选择一条报告进行权限申请")
return
}
// 有预览权限的时候是否还让继续申请
let temp=this.checkList.filter(item =>{
if(+item.power == 1 || +item.power == 2){
return item.name
}
})
if(temp.length>0) {
this.$message.warning("当前选择的"+temp.toString()+"已经有权限,无须申请!")
return
}
this.$router.push({
path: '/permission/launch',
query: { id: 'AEHJB8YNJ3', ids: this.checkIds.toString() }
})
},
init () {
this.getTreeLabel()
this.labelList()
this.reportDateList()
this.reportList()
},
getTreeLabel(){
this.$api.report.labelList().then(res => {
this.treeData=res.data
})
},
// 标签列表
labelList () {
this.$api.report.labelList().then(({ data }) => {
@@ -372,7 +298,7 @@ export default {
},
// 列表
reportList () {
this.$api.report.reportList(this.q).then(({ data }) => {
this.$api.report.reportList({...this.q,labelId:this.checkedKeys}).then(({ data }) => {
this.tableData = data.records
this.total = data.total
this.q.pageNo = data.current
@@ -479,6 +405,22 @@ export default {
</script>
<style lang="scss" scoped>
.keyContent{
display: inline-block;
width: 50px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.treeList{
padding: 20px;
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;
}
}
.report-list {
.title {
border-bottom: 1px solid #EBEEF5;
@@ -492,9 +434,7 @@ export default {
color: #262626;
}
}
.tag-btn{
padding: 10px 13px;
}
.tag-search {
padding-top: 9px;
@@ -518,11 +458,11 @@ export default {
font-weight: normal;
color: #646464;
display: inline-block;
width: 112px;
// width: 112px;
height: 19px;
line-height: 19px;
padding-left: 48px;
border-right: 1px solid #BFBFBF;
padding-left: 13px;
// border-right: 1px solid #BFBFBF;
margin-right: 10px;
margin-top: 2.5px;
overflow: hidden;