element懒加载树形表格

   <el-table class="table" v-if="isshow" stripe :data="tableData" :props="tableProps"  style="width: 100%;margin-top: 4px;"

                            row-key="code" v-loading="loading" lazy :load="searchDevice" :height="600"

                            :header-cell-style="headerCellStyle"

                            :tree-props="{ children: 'children1', hasChildren: 'hasChildren' }" :default-expand-all="false"

                            :header-cell-class-name="addclass" :expand-on-click-node="true">

                   

                            <el-table-column align="left" prop="codeName" :label="$t('twoPermissions.equipment_catalog')"

                                min-width="150">

                                <template slot-scope="{ row }">

                                    <i style="" v-if="!row.hasChildren" class="iconfont icon-video-camera-full"></i>

                                    <i  v-if="row.hasChildren" style="color:#ffa500" class="iconfont icon-wenjianleixing-biaozhuntu-wenjianjia"></i>

                                    {{ row.codeName }}

                                </template>

                            </el-table-column>

                            <el-table-column align="center" prop="real_time" :label="$t('twoPermissions.realTimePreview')"

                                min-width="55">

                                <template slot-scope="{ row }">

                                    <img v-if="row.real_time == 2 && row.expireDate == null && row.revokeDate == null"

                                        src="./yes.png" style="width: 20px;">

                                    <el-popover

                                        v-else-if="row.real_time == 2 && row.expireDate != null && row.revokeDate == null"

                                        placement="top-start" width="330" trigger="hover">

                                        临时时间:{{ row.expireDate }}

                                        <img slot="reference" src="@/assets/images/permissions/temporary.png"

                                            style="width: 24px;transform: scale(1.2) translateX(2px);">

                                    </el-popover>

                                    <el-popover

                                        v-else-if="(row.real_time == 2 && row.expireDate == null && row.revokeDate != null) || (row.expireDate != null && row.revokeDate != null)"

                                        placement="top-start" width="330" trigger="hover">

                                        回收时间:{{ row.revokeDate }}

                                        <img slot="reference" src="@/assets/images/permissions/revoke.png"

                                            style="width: 18px;transform: scale(1.5);">

                                    </el-popover>

                                </template>

                            </el-table-column>

                            <el-table-column align="center" prop="preview_capture" :label="$t('twoPermissions.previewShot')"

                                min-width="55">

                                <template slot-scope="{ row }">

                                    <img v-if="row.preview_capture == 2 && row.expireDate == null && row.revokeDate == null"

                                        src="./yes.png" style="width: 20px;">

                                    <el-popover

                                        v-else-if="row.preview_capture == 2 && row.expireDate != null && row.revokeDate == null"

                                        placement="top-start" width="330" trigger="hover">

                                        临时时间:{{ row.expireDate }}

                                        <img slot="reference" src="@/assets/images/permissions/temporary.png"

                                            style="width: 24px;transform: scale(1.2) translateX(2px);">

                                    </el-popover>

                                    <el-popover

                                        v-else-if="(row.real_time == 2 && row.expireDate == null && row.revokeDate != null) || (row.expireDate != null && row.revokeDate != null)"

                                        placement="top-start" width="330" trigger="hover">

                                        回收时间:{{ row.revokeDate }}

                                        <img slot="reference" src="@/assets/images/permissions/revoke.png"

                                            style="width: 18px;transform: scale(1.5);">

                                    </el-popover>

                                </template>

                            </el-table-column>

                            <el-table-column align="center" prop="demand_video" :label="$t('twoPermissions.replayTheater')"

                                min-width="55">

                                <template slot-scope="{ row }">

                                    <img v-if="row.demand_video == 2 && row.expireDate == null && row.revokeDate == null"

                                        src="./yes.png" style="width: 20px;">

                                    <el-popover

                                        v-else-if="row.demand_video == 2 && row.expireDate != null && row.revokeDate == null"

                                        placement="top-start" width="330" trigger="hover">

                                        临时时间:{{ row.expireDate }}

                                        <img slot="reference" src="@/assets/images/permissions/temporary.png"

                                            style="width: 24px;transform: scale(1.2) translateX(2px);">

                                    </el-popover>

                                    <el-popover

                                        v-else-if="row.demand_video == 2 && row.expireDate == null && row.revokeDate != null"

                                        placement="top-start" width="330" trigger="hover">

                                        回收时间:{{ row.revokeDate }}

                                        <img slot="reference" src="@/assets/images/permissions/revoke.png"

                                            style="width: 18px;transform: scale(1.5);">

                                    </el-popover>

                                </template>

                            </el-table-column>

                            <el-table-column align="center" prop="demand_download"

                                :label="$t('twoPermissions.videoDownload')" min-width="55">

                                <template slot-scope="{ row }">

                                    <img v-if="row.demand_download == 2 && row.expireDate == null && row.revokeDate == null"

                                        src="./yes.png" style="width: 20px;">

                                    <el-popover

                                        v-else-if="row.demand_download == 2 && row.expireDate != null && row.revokeDate == null"

                                        placement="top-start" width="330" trigger="hover">

                                        临时时间:{{ row.expireDate }}

                                        <img slot="reference" src="@/assets/images/permissions/temporary.png"

                                            style="width: 24px;transform: scale(1.2) translateX(2px);">

                                    </el-popover>

                                    <el-popover

                                        v-else-if="row.demand_download == 2 && row.expireDate == null && row.revokeDate != null"

                                        placement="top-start" width="330" trigger="hover">

                                        回收时间:{{ row.revokeDate }}

                                        <img slot="reference" src="@/assets/images/permissions/revoke.png"

                                            style="width: 18px;transform: scale(1.5);">

                                    </el-popover>

                                </template>

                            </el-table-column>

                            <el-table-column align="center" prop="video_capture" :label="$t('twoPermissions.videoCapture')"

                                min-width="55">

                                <template slot-scope="{ row }">

                                    <img v-if="row.video_capture == 2 && row.expireDate == null && row.revokeDate == null"

                                        src="./yes.png" style="width: 20px;">

                                    <el-popover

                                        v-else-if="row.video_capture == 2 && row.expireDate != null && row.revokeDate == null"

                                        placement="top-start" width="330" trigger="hover">

                                        临时时间:{{ row.expireDate }}

                                        <img slot="reference" src="@/assets/images/permissions/temporary.png"

                                            style="width: 24px;transform: scale(1.2) translateX(2px);">

                                    </el-popover>

                                    <el-popover

                                        v-else-if="row.video_capture == 2 && row.expireDate == null && row.revokeDate != null"

                                        placement="top-start" width="330" trigger="hover">

                                        回收时间:{{ row.revokeDate }}

                                        <img slot="reference" src="@/assets/images/permissions/revoke.png"

                                            style="width: 18px;transform: scale(1.5);">

                                    </el-popover>

                                </template>

                            </el-table-column>

                            <el-table-column align="center" prop="PZT_control" :label="$t('twoPermissions.pZTControl')"

                                min-width="55">

                                <template slot-scope="{ row }">

                                    <img v-if="row.PZT_control == 2 && row.expireDate == null && row.revokeDate == null"

                                        src="./yes.png" style="width: 20px;">

                                    <el-popover

                                        v-else-if="row.PZT_control == 2 && row.expireDate != null && row.revokeDate == null"

                                        placement="top-start" width="330" trigger="hover">

                                        临时时间:{{ row.expireDate }}

                                        <img slot="reference" src="@/assets/images/permissions/temporary.png"

                                            style="width: 24px;transform: scale(1.2) translateX(2px);">

                                    </el-popover>

                                    <el-popover

                                        v-else-if="row.PZT_control == 2 && row.expireDate == null && row.revokeDate != null"

                                        placement="top-start" width="330" trigger="hover">

                                        回收时间:{{ row.revokeDate }}

                                        <img slot="reference" src="@/assets/images/permissions/revoke.png"

                                            style="width: 18px;transform: scale(1.5);">

                                    </el-popover>

                                </template>

                            </el-table-column>

                            <el-table-column align="center" prop="settings_position"

                                :label="$t('twoPermissions.setPresetPosition')" min-width="55">

                                <template slot-scope="{ row }">

                                    <img v-if="row.settings_position == 2 && row.expireDate == null && row.revokeDate == null"

                                        src="./yes.png" style="width: 20px;">

                                    <el-popover

                                        v-else-if="row.settings_position == 2 && row.expireDate != null && row.revokeDate == null"

                                        placement="top-start" width="330" trigger="hover">

                                        临时时间:{{ row.expireDate }}

                                        <img slot="reference" src="@/assets/images/permissions/temporary.png"

                                            style="width: 24px;transform: scale(1.2) translateX(2px);">

                                    </el-popover>

                                    <el-popover

                                        v-else-if="row.settings_position == 2 && row.expireDate == null && row.revokeDate != null"

                                        placement="top-start" width="330" trigger="hover">

                                        回收时间:{{ row.revokeDate }}

                                        <img slot="reference" src="@/assets/images/permissions/revoke.png"

                                            style="width: 18px;transform: scale(1.5);">

                                    </el-popover>

                                </template>

                            </el-table-column>

                            <el-table-column align="center" prop="adjustment_position"

                                :label="$t('twoPermissions.adjustingPresetPositions')" min-width="55">

                                <template slot-scope="{ row }">

                                    <img v-if="row.adjustment_position == 2 && row.expireDate == null && row.revokeDate == null"

                                        src="./yes.png" style="width: 20px;">

                                    <el-popover

                                        v-else-if="row.adjustment_position == 2 && row.expireDate != null && row.revokeDate == null"

                                        placement="top-start" width="330" trigger="hover">

                                        临时时间:{{ row.expireDate }}

                                        <img slot="reference" src="@/assets/images/permissions/temporary.png"

                                            style="width: 24px;transform: scale(1.2) translateX(2px);">

                                    </el-popover>

                                    <el-popover

                                        v-else-if="row.adjustment_position == 2 && row.expireDate == null && row.revokeDate != null"

                                        placement="top-start" width="330" trigger="hover">

                                        回收时间:{{ row.revokeDate }}

                                        <img slot="reference" src="@/assets/images/permissions/revoke.png"

                                            style="width: 18px;transform: scale(1.5);">

                                    </el-popover>

                                </template>

                            </el-table-column>

                            <el-table-column align="center" prop="preset_position"

                                :label="$t('twoPermissions.presetNavigationPosition')" min-width="55">

                                <template slot-scope="{ row }">

                                    <img v-if="row.preset_position == 2 && row.expireDate == null && row.revokeDate == null"

                                        src="./yes.png" style="width: 20px;">

                                    <el-popover

                                        v-else-if="row.preset_position == 2 && row.expireDate != null && row.revokeDate == null"

                                        placement="top-start" width="330" trigger="hover">

                                        临时时间:{{ row.expireDate }}

                                        <img slot="reference" src="@/assets/images/permissions/temporary.png"

                                            style="width: 24px;transform: scale(1.2) translateX(2px);">

                                    </el-popover>

                                    <el-popover

                                        v-else-if="row.preset_position == 2 && row.expireDate == null && row.revokeDate != null"

                                        placement="top-start" width="330" trigger="hover">

                                        回收时间:{{ row.revokeDate }}

                                        <img slot="reference" src="@/assets/images/permissions/revoke.png"

                                            style="width: 18px;transform: scale(1.5);">

                                    </el-popover>

                                </template>

                            </el-table-column>

                        </el-table>

//data里的props

  tableProps: {

                children: 'children',

                label: 'orgName',

                value: 'orgId',

                orgLevel: 'orgLevel',

            },

//设置树形节点

  setHasChildren(list, boolean) {

            list.forEach(item => {

                // 添加组织目录下用户

                if (item.powerCode != null && item.powerCode != '') {

                    let arr = item.powerCode.split(',')

                    arr.forEach(a => {

                        item[this.getCode(a)] = '2'

                    })

                }

                if (item.children != null) {

                    console.log(item,'item++');

                    // this.searchDevice(item,item,()=>{})

                item['hasChildren'] = boolean

                    this.setHasChildren(item.children, boolean)

                }

            });

        },

//懒加载的方法

async searchDevice(row, treeNode, resolve) {

            // 查询目录树 设备

            let param = {

                targetType: "1",

                catalogCode: row.code,

                targetId: this.queryParam.userCode,

                powerCode: row.powerCode,

            }

            let res = await getqueryDevicePowerList(param);

            if (res.data.status == '1') {

                let arr = []

                if (row.children != null) {

                    arr = row.children

                }

                if (res.data.data != [] && res.data.data.length != 0) {

                    res.data.data.forEach(item => {

                        if (item.powerCode != null) {

                            let arr = item.powerCode != null ? item.powerCode.split(',') : []

                            arr.forEach(a => {

                                item[this.getCode(a)] = '2'

                                item['isDevice'] = true

                            })

                        }

                        arr.push(item)

                    })

                }

                this.deviceCount += (arr.length / 1);

                this.$set(row, 'children1', arr)

                resolve(arr)

            } else {

                return resolve([])

            }

        },

  • 41
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值