Compare commits
2 Commits
648b9e1ac5
...
f699d2c125
Author | SHA1 | Date |
---|---|---|
liujun | f699d2c125 | |
liujun | 5082d741d3 |
|
@ -95,6 +95,7 @@
|
|||
align="center"/>
|
||||
<el-table-column type="index" label="序号" width="50" align="center" />
|
||||
<el-table-column align="center" prop="TYPE_NAME" label="文件类型" />
|
||||
<el-table-column align="center" prop="FILE_NAME" label="文件名称" />
|
||||
<el-table-column align="center" prop="TYPE_TWO_NAME" label="部门分类" />
|
||||
<el-table-column align="center" prop="UPLOAD_TIME" label="上传时间" />
|
||||
<el-table-column align="center" prop="UPLOAD_USER_NAME" label="上传人" />
|
||||
|
|
|
@ -0,0 +1,22 @@
|
|||
<template>
|
||||
<component :is="activeName" />
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import List from './components/list'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
List: List
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
activeName: 'List',
|
||||
SUPERVISE_CORPINFO_ID: ''
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
</style>
|
|
@ -0,0 +1,743 @@
|
|||
<template>
|
||||
<div class="app-container">
|
||||
<!-- 顶部搜索能力 -->
|
||||
<el-form :model="searchParmas" label-width="130px">
|
||||
<el-row>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="企业名称">
|
||||
<el-input v-model="searchParmas.enterpriseName" placeholder="请输入企业名称" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="集团单位">
|
||||
<el-input v-model="searchParmas.groupUnit" placeholder="请输入集团单位" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label="股份主管部门" style="margin-right: 20px">
|
||||
<el-input v-model="searchParmas.shareSuperdepart" placeholder="请输入股份主管部门" />
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<el-form-item label-width="10px">
|
||||
<el-button v-waves class="filter-item" type="primary" icon="el-icon-search" @click="getQuery">
|
||||
搜索
|
||||
</el-button>
|
||||
<el-button v-waves class="filter-item" type="success" icon="el-icon-refresh" @click="goKeyReset">
|
||||
重置
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
|
||||
<!-- 多级表格 -->
|
||||
<el-table
|
||||
v-loading="loading"
|
||||
ref="multipleTable"
|
||||
:data="varList"
|
||||
:header-cell-style="{ 'font-weight': 'bold', color: '#000' }"
|
||||
:max-height="tableMaxHeight"
|
||||
tooltip-effect="dark"
|
||||
border
|
||||
fit
|
||||
stripe
|
||||
highlight-current-row
|
||||
@selection-change="selectionChange"
|
||||
@select-all="selectAll"
|
||||
@row-click="rowClick">
|
||||
<!-- 固定列 -->
|
||||
<el-table-column :selectable="handleSelectWithDifferentStatus" type="selection" width="55" fixed align="center" />
|
||||
|
||||
<!-- 序号列及弹出框 -->
|
||||
<el-table-column type="index" fixed="left" label="序号" align="center" width="90">
|
||||
<template slot="header">
|
||||
<el-popover ref="tablePopover" v-model="popoverVisible" width="240" trigger="manual">
|
||||
<span slot="reference" style="cursor: pointer" @click="openPopover">
|
||||
序号
|
||||
<i class="el-icon-finished" style="font-weight: bold" />
|
||||
</span>
|
||||
<div class="popoverCheckBoxArea">
|
||||
<el-checkbox
|
||||
v-model="checked"
|
||||
:indeterminate="indeterminate"
|
||||
@change="handleCheckAllChange">全选</el-checkbox>
|
||||
<div style="margin: 10px 0" />
|
||||
<el-tree
|
||||
ref="treeRef"
|
||||
:data="dataSourceForTree"
|
||||
:props="defaultProps"
|
||||
:default-expand-all="true"
|
||||
show-checkbox
|
||||
node-key="id"
|
||||
class="treeColumnStyle"
|
||||
@check-change="changeCheck" />
|
||||
</div>
|
||||
<div class="popoverCheckBoxButton">
|
||||
<el-button size="mini" @click="canclePopover">取消</el-button>
|
||||
<el-button type="primary" size="mini" @click="confirmPopover">确定</el-button>
|
||||
</div>
|
||||
</el-popover>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column v-if="showColumn('RELEVANT_UNIT_NAME')" prop="RELEVANT_UNIT_NAME" label="企业名称" align="center" show-overflow-tooltip width="120"/>
|
||||
<el-table-column v-if="showColumn('CORP_TYPE_NAME')" prop="CORP_TYPE_NAME" label="集团单位" show-overflow-tooltip align="center" width="120"/>
|
||||
<el-table-column v-if="showColumn('MAIN_DEPARTMENT_NAME')" prop="MAIN_DEPARTMENT_NAME" label="股份主管部门" align="center" width="120"/>
|
||||
<el-table-column v-if="showColumn('CORP_SIZE_NAME')" prop="CORP_SIZE_NAME" label="企业规模" align="center" width="120"/>
|
||||
<el-table-column v-if="showColumn('CONTACT_PERSON')" prop="CONTACT_PERSON" label="主要负责人" align="center" width="120"/>
|
||||
<el-table-column v-if="showColumn('CONTACT_TEL')" prop="CONTACT_TEL" label="主要负责人联系电话" align="center" width="120"/>
|
||||
<el-table-column v-if="showColumn('REGISTER_COUNT')" prop="REGISTER_COUNT" label="注册人数" align="center" width="120"/>
|
||||
<el-table-column v-if="showColumn('PASS_COUNT')" prop="PASS_COUNT" label="培训合格人数" align="center" width="120"/>
|
||||
|
||||
<el-table-column v-if="showColumn('personAgeStruc')" prop="personAgeStruc" label="人员年龄结构" align="center">
|
||||
<el-table-column v-if="showColumn('AVG_AGE')" prop="AVG_AGE" label="平均年龄" align="center" width="120"/>
|
||||
<el-table-column v-if="showColumn('MORE_THAN_60_COUNT')" prop="MORE_THAN_60_COUNT" label="大于60岁人数" align="center" width="120"/>
|
||||
<el-table-column v-if="showColumn('BETWEEN_55_AND_60_COUNT')" prop="BETWEEN_55_AND_60_COUNT" label="55-60岁人数" align="center" width="120"/>
|
||||
<el-table-column v-if="showColumn('LESS_THAN_55_COUNT')" prop="LESS_THAN_55_COUNT" label="55岁以下人数" align="center" width="120"/>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column v-if="false" prop="workExprien" label="在港工作经历(年)" align="center" width="120"/>
|
||||
|
||||
<el-table-column prop="personEdcaton" label="人员学历" align="center">
|
||||
<el-table-column prop="BELOW_HIGH_SCHOOL" label="高中以下" align="center" width="120"/>
|
||||
<el-table-column prop="HIGH_SCHOOL" label="高中" align="center" width="120"/>
|
||||
<el-table-column prop="TECHNICAL_SCHOOL" label="技工" align="center" width="120"/>
|
||||
<el-table-column prop="TECHNICAL_SECONDARY_SCHOOL" label="中专或中等技术学校" align="center" width="130"/>
|
||||
<el-table-column prop="JUNIOR_COLLEGE" label="大学专科或专科院校" align="center" width="130"/>
|
||||
<el-table-column prop="UNDERGRADUATE" label="大学本科" align="center" width="120"/>
|
||||
<el-table-column prop="ABOVE_UNDERGRADUATE" label="大学本科以上" align="center" width="120"/>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="man" label="男职工" align="center">
|
||||
<el-table-column prop="MAN_COUNT" label="人数" align="center" width="120"/>
|
||||
<el-table-column prop="MAN_PERCENT" label="占比" align="center" width="120"/>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="woman" label="女职工" align="center">
|
||||
<el-table-column prop="WOMAN_COUNT" label="人数" align="center" width="120"/>
|
||||
<el-table-column prop="WOMAN_PERCENT" label="占比" align="center" width="120"/>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="insurance" label="保险相关" align="center">
|
||||
<el-table-column prop="SOCIAL" label="有社保人数" align="center" width="120"/>
|
||||
<el-table-column prop="OCCUPATIONAL_INJURY" label="有工伤保险人数" align="center" width="120"/>
|
||||
<el-table-column prop="COMMERCIAL_INSURANCE" label="有商业保险人数" align="center" width="120"/>
|
||||
<el-table-column prop="OTHER_INSURANCE" label="其他保险人数" align="center" width="120"/>
|
||||
<el-table-column prop="NO_INSURANCE" label="无保险人数" align="center" width="120"/>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="numOfSpecialOperation" label="取得特种作业证书人数" align="center">
|
||||
<el-table-column prop="SPECIAL_TOTAL" label="总人数" align="center" width="120"/>
|
||||
<el-table-column prop="ELECTRICIAN" label="电工作业" align="center" width="120"/>
|
||||
<el-table-column prop="WELDING" label="焊接与热切割作业" align="center" width="120"/>
|
||||
<el-table-column prop="HIGH_WORK" label="高处作业" align="center" width="120"/>
|
||||
<el-table-column prop="CRANE_OPERATION" label="起重机械作业" align="center" width="120"/>
|
||||
<el-table-column prop="MOTOR_VEHICLE" label="企业内机动车辆作业" align="center" width="130"/>
|
||||
<el-table-column prop="OTHER_SPECIAL" label="其他特种作业" align="center" width="120"/>
|
||||
</el-table-column>
|
||||
|
||||
</el-table>
|
||||
|
||||
<div class="page-btn-group">
|
||||
<div>
|
||||
<el-button type="primary" icon="el-icon-upload2" @click="handleExportBtn">批量导出</el-button>
|
||||
</div>
|
||||
<pagination :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Pagination from '@/components/Pagination'
|
||||
import { requestFN } from '@/utils/request'
|
||||
import waves from '@/directive/waves'
|
||||
import axios from 'axios'
|
||||
import moment from 'moment'
|
||||
|
||||
export default {
|
||||
components: { Pagination },
|
||||
directives: { waves },
|
||||
|
||||
data() {
|
||||
return {
|
||||
config: config,
|
||||
searchParmas: {
|
||||
enterpriseName: '',
|
||||
groupUnit: '',
|
||||
shareSuperdepart: ''
|
||||
},
|
||||
varList: [],
|
||||
// el-table表格的动态高度值
|
||||
tableMaxHeight: 0,
|
||||
// 列表加载态
|
||||
loading: false,
|
||||
// 列表表格分页参数
|
||||
listQuery: {
|
||||
page: 1,
|
||||
limit: 10
|
||||
},
|
||||
total: 0,
|
||||
// 选择展示的字段数组
|
||||
dataSourceForTree: [
|
||||
{
|
||||
id: '1',
|
||||
label: '企业名称',
|
||||
value: 'RELEVANT_UNIT_NAME',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '2',
|
||||
label: '集团单位',
|
||||
value: 'CORP_TYPE_NAME',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '3',
|
||||
label: '股份主管部门',
|
||||
value: 'MAIN_DEPARTMENT_NAME',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '4',
|
||||
label: '企业规模',
|
||||
value: 'CORP_SIZE_NAME',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '5',
|
||||
label: '主要负责人',
|
||||
value: 'CONTACT_PERSON',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '6',
|
||||
label: '主要负责人联系电话',
|
||||
value: 'CONTACT_TEL',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '7',
|
||||
label: '注册人数',
|
||||
value: 'REGISTER_COUNT',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '8',
|
||||
label: '培训合格人数',
|
||||
value: 'PASS_COUNT',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '9',
|
||||
label: '人员年龄结构',
|
||||
disabled: false,
|
||||
value: 'personAgeStruc',
|
||||
show: true,
|
||||
children: [
|
||||
{
|
||||
id: '9-1',
|
||||
label: '平均年龄',
|
||||
value: 'AVG_AGE',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '9-2',
|
||||
label: '大于60岁人数',
|
||||
value: 'MORE_THAN_60_COUNT',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '9-3',
|
||||
label: '55-60岁人数:',
|
||||
value: 'BETWEEN_55_AND_60_COUNT',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '9-4',
|
||||
label: '55岁以下人数',
|
||||
value: 'LESS_THAN_55_COUNT',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: '11',
|
||||
label: '人员学历',
|
||||
disabled: false,
|
||||
value: 'personEducation',
|
||||
show: true,
|
||||
children: [
|
||||
{
|
||||
id: '11-1',
|
||||
label: '高中以下',
|
||||
value: 'BELOW_HIGH_SCHOOL',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '11-2',
|
||||
label: '高中',
|
||||
value: 'HIGH_SCHOOL',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '11-3',
|
||||
label: '技工',
|
||||
value: 'TECHNICAL_SCHOOL',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '11-4',
|
||||
label: '中专或中等技术学校',
|
||||
value: 'TECHNICAL_SECONDARY_SCHOOL',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '11-5',
|
||||
label: '大学专科或专科院校',
|
||||
value: 'JUNIOR_COLLEGE',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '11-6',
|
||||
label: '大学本科',
|
||||
value: 'UNDERGRADUATE',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '11-7',
|
||||
label: '大学本科以上',
|
||||
value: 'ABOVE_UNDERGRADUATE',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: '12',
|
||||
label: '男职工',
|
||||
value: 'man',
|
||||
show: true,
|
||||
disabled: false,
|
||||
children: [
|
||||
{
|
||||
id: '12-1',
|
||||
label: '人数',
|
||||
value: 'MAN_COUNT',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '12-2',
|
||||
label: '占比',
|
||||
value: 'MAN_PERCENT',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: '13',
|
||||
label: '女职工',
|
||||
show: true,
|
||||
value: 'woman',
|
||||
disabled: false,
|
||||
children: [
|
||||
{
|
||||
id: '13-1',
|
||||
label: '人数',
|
||||
value: 'WOMAN_COUNT',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '13-2',
|
||||
label: '占比',
|
||||
value: 'WOMAN_PERCENT',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: '14',
|
||||
label: '保险相关',
|
||||
value: 'insurance',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: [
|
||||
{
|
||||
id: '14-1',
|
||||
label: '有社保人数',
|
||||
value: 'SOCIAL',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '14-2',
|
||||
label: '有工伤保险人数',
|
||||
value: 'OCCUPATIONAL_INJURY',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '14-3',
|
||||
label: '有商业保险人数',
|
||||
value: 'COMMERCIAL_INSURANCE',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '14-4',
|
||||
label: '其他保险人数',
|
||||
value: 'OTHER_INSURANCE',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '14-5',
|
||||
label: '无保险人数',
|
||||
value: 'NO_INSURANCE',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
id: '15',
|
||||
label: '取得特种作业证书人数',
|
||||
value: 'numOfSpecialOperation',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: [
|
||||
{
|
||||
id: '15-1',
|
||||
label: '总人数',
|
||||
value: 'SPECIAL_TOTAL',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '15-2',
|
||||
label: '电工作业',
|
||||
value: 'ELECTRICIAN',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '15-3',
|
||||
label: '焊接与热切割作业',
|
||||
value: 'WELDING',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '15-4',
|
||||
label: '高处作业',
|
||||
value: 'HIGH_WORK',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '15-5',
|
||||
label: '起重机械作业',
|
||||
value: 'CRANE_OPERATION',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '15-6',
|
||||
label: '企业内机动车辆作业',
|
||||
value: 'MOTOR_VEHICLE',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
},
|
||||
{
|
||||
id: '15-7',
|
||||
label: '其他特种作业',
|
||||
value: 'OTHER_SPECIAL',
|
||||
disabled: false,
|
||||
show: true,
|
||||
children: []
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
treeCheckedIds: [], // 保存被选中的树节点 id
|
||||
defaultProps: {
|
||||
children: 'children',
|
||||
label: 'label'
|
||||
},
|
||||
checked: true, // 全选状态
|
||||
popoverVisible: false,
|
||||
indeterminate: false, // 半选状态
|
||||
selectionSelected: [],
|
||||
head: []
|
||||
}
|
||||
},
|
||||
created() {
|
||||
// 当页面初始化后立刻计算 el-table 表格的动态高度值
|
||||
this.tableMaxHeight = window.innerHeight - 230
|
||||
// 页面初始化渲染后,立刻调用的处理函数等方法
|
||||
this.getList() // 调用获取列表数据的方法
|
||||
},
|
||||
mounted() {
|
||||
// 当前页面挂载之后立刻计算 el-table 表格的动态高度值
|
||||
this.$nextTick(() => {
|
||||
window.onresize = () => {
|
||||
this.tableMaxHeight = window.innerHeight - 230
|
||||
}
|
||||
this.$refs.treeRef.setCheckedNodes(
|
||||
this.dataSourceForTree.filter(node => !node.disabled)
|
||||
)
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
handleSelectWithDifferentStatus(row, rowIndex) {
|
||||
return true
|
||||
},
|
||||
getQuery() {
|
||||
if (this.$refs.multipleTable) {
|
||||
this.$refs.multipleTable.clearSelection()
|
||||
}
|
||||
this.listQuery = {
|
||||
page: 1,
|
||||
limit: 10
|
||||
}
|
||||
this.getList()
|
||||
},
|
||||
goKeyReset() {
|
||||
this.searchParmas = {
|
||||
enterpriseName: '',
|
||||
groupUnit: '',
|
||||
shareSuperdepart: ''
|
||||
}
|
||||
this.getQuery()
|
||||
},
|
||||
/** 获取列表数据 */
|
||||
getList() {
|
||||
this.loading = true
|
||||
requestFN(
|
||||
'/xgf/user/statistics?showCount=' +
|
||||
this.listQuery.limit +
|
||||
'¤tPage=' +
|
||||
this.listQuery.page,
|
||||
{ KEYWORDS: this.KEYWORDS, ISSMALL: '2' }
|
||||
)
|
||||
.then(data => {
|
||||
this.loading = false
|
||||
this.varList = data.list
|
||||
this.total = data.page.totalResult
|
||||
})
|
||||
.catch(e => {
|
||||
console.log(e)
|
||||
this.loading = false
|
||||
})
|
||||
},
|
||||
selectionChange(row) {
|
||||
this.selectionSelected = row
|
||||
},
|
||||
selectAll(selection) {
|
||||
this.selectionSelected = selection
|
||||
},
|
||||
rowClick(row, column, event) {
|
||||
console.log('row :>> ', row)
|
||||
},
|
||||
handleExportBtn() {
|
||||
const ids = this.selectionSelected
|
||||
.map(item => {
|
||||
return item.CORPINFO_ID
|
||||
})
|
||||
.toString(',')
|
||||
const result = this.collectValues(this.dataSourceForTree)
|
||||
this.head = result.toString(',')
|
||||
|
||||
if (
|
||||
this.selectionSelected.map(item => {
|
||||
return item.CORPINFO_ID
|
||||
}).length === 0
|
||||
) {
|
||||
this.$message.error('请选择数据项后导出!')
|
||||
}
|
||||
this.exportExcelHandler(ids, this.head)
|
||||
},
|
||||
collectValues(data, resultArray = []) {
|
||||
data.forEach(item => {
|
||||
if (item.show) {
|
||||
resultArray.push(item.value) // 将满足条件的 value 存入结果数组中
|
||||
}
|
||||
if (item.children && item.children.length > 0) {
|
||||
this.collectValues(item.children, resultArray) // 递归处理子节点
|
||||
}
|
||||
})
|
||||
return resultArray
|
||||
},
|
||||
// 导出指定数据项至 excel 表格
|
||||
exportExcelHandler(ids, head) {
|
||||
window.open(`${this.config.httpurl}/xgf/user/exportExcel?ids=${ids}&head=${head}`)
|
||||
},
|
||||
// 点击操作打开菜单选择框
|
||||
openPopover() {
|
||||
this.popoverVisible = true
|
||||
},
|
||||
// 点击取消关闭菜单选择框
|
||||
canclePopover() {
|
||||
this.popoverVisible = false
|
||||
},
|
||||
// 处理多选框全部选中
|
||||
handleCheckAllChange() {
|
||||
if (this.checked) {
|
||||
this.$refs.treeRef.setCheckedNodes(
|
||||
this.dataSourceForTree.filter(node => !node.disabled)
|
||||
)
|
||||
this.treeCheckedIds = this.$refs.treeRef
|
||||
.getCheckedNodes(false, true)
|
||||
.map(i => i.id)
|
||||
this.head = this.$refs.treeRef.getCheckedNodes(false, true).map(i => i.value)
|
||||
} else {
|
||||
this.$refs.treeRef.setCheckedNodes([])
|
||||
this.treeCheckedIds = []
|
||||
this.head = []
|
||||
}
|
||||
},
|
||||
// 多选框发生改变的事件处理
|
||||
changeCheck(checkedNode, isChecked, selfNode) {
|
||||
const res = this.updateShowProperty(
|
||||
this.dataSourceForTree,
|
||||
checkedNode,
|
||||
isChecked
|
||||
)
|
||||
this.dataSourceForTree = res
|
||||
},
|
||||
updateShowProperty(dataSource, curNode, isChecked) {
|
||||
// 定义递归函数
|
||||
function recursiveUpdate(node) {
|
||||
// 记录所有子节点是否都未选中
|
||||
let allChildrenUnchecked = true
|
||||
|
||||
// 递归处理子节点
|
||||
if (node.children && node.children.length > 0) {
|
||||
node.children.forEach(child => {
|
||||
const childChecked = recursiveUpdate(child)
|
||||
if (childChecked) {
|
||||
allChildrenUnchecked = false
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 更新当前节点的 show 属性
|
||||
if (node.id === curNode.id) {
|
||||
node.show = isChecked
|
||||
}
|
||||
|
||||
// 更新父节点的 show 属性
|
||||
if (node.children && node.children.length > 0) {
|
||||
if (allChildrenUnchecked) {
|
||||
node.show = false
|
||||
} else {
|
||||
node.show = true
|
||||
}
|
||||
}
|
||||
|
||||
return node.show // 返回当前节点的 show 属性值
|
||||
}
|
||||
// 遍历整个数据源进行更新
|
||||
dataSource.forEach(node => recursiveUpdate(node))
|
||||
return dataSource
|
||||
},
|
||||
// 弹出框确认的事件处理
|
||||
confirmPopover() {
|
||||
this.popoverVisible = false
|
||||
},
|
||||
// 控制表格列的显示与隐藏
|
||||
showColumn(columnValue) {
|
||||
// 在数据源中查找与传入列值匹配的项
|
||||
const findItem = (data, value) => {
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
const item = data[i]
|
||||
if (item.value === value) {
|
||||
return item
|
||||
}
|
||||
if (item.children && item.children.length > 0) {
|
||||
const foundInChildren = findItem(item.children, value)
|
||||
if (foundInChildren) {
|
||||
return foundInChildren
|
||||
}
|
||||
}
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
// 查找数据源中对应的列项
|
||||
const foundItem = findItem(this.dataSourceForTree, columnValue)
|
||||
|
||||
// 返回该列项的 show 属性,如果不存在则返回 false
|
||||
return foundItem ? foundItem.show : false
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.treeColumnStyle {
|
||||
height: 400px;
|
||||
overflow-y: auto;
|
||||
overflow-x: auto;
|
||||
|
||||
&::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
</style>
|
Loading…
Reference in New Issue