【页面】表格展示

news2024/11/25 6:57:57

展示

Dom

<template>
    <div class="srch-result-container">
        <!--左侧-->
        <div class="left">
            <div v-for="(item,index) in muneList" :key="index" 
                :class="(muneIndex==item.mm)?'active':''"
                @click="pageEventFun(1,item)"
            >{{item.name}}</div>
        </div>
        <!--右侧-->
        <div class="right">
            <!--搜索区-->
            <div class="ceng1">
                <div v-for="(item,index) in srchFormOne" :key="index">
                    <div>{{item.label}}:</div>
                    <div>
                        <!--输入框-->
                        <el-input class="selectOpt" size="small" style="width: 100px"
                            v-if="item.type==1"
                            v-model="srchForm[item.prop]"
                        ></el-input>
                        <!--下拉选择框-->
                        <el-select class="selectOpt" size="small" style="width: 120px"
                            v-else-if="item.type==2"
                            v-model="srchForm[item.prop]"
                            popper-class="selectOptDown"
                            :popper-append-to-body="false"
                        >
                            <el-option v-for="item99 in item.options"
                                :key="item99.value"
                                :label="item99.label"
                                :value="item99.value"
                            ></el-option>
                        </el-select>
                        <!--日期选择器-->
                        <el-date-picker v-else-if="item.type==3"
                            v-model="srchForm[item.prop]"
                            clearable
                            value-format="yyyy-MM-dd"
                            class="selfJStimeClass66"
                            type="daterange"
                            :default-time="['00:00:00','23:59:59']"
                            range-separator="至"
                            start-placeholder="开始日期"
                            end-placeholder="结束日期">
                        </el-date-picker>
                    </div>
                </div>
                <div class="btns">
                    <div @click="pageEventFun(99)">查询</div>
                    <div @click="pageEventFun(98)" style="margin-left:20px;">重置</div>
                </div>
            </div>
            <!--表格展示区-->
            <div class="ceng2">
                <div class="table">
                    <CompOneTable
                        :key="timeRender"
                        ref="CompOneTable"
                        :tableConfig="tableConfig"
                        @tableEventCallback="tableEventCallback"
                    ></CompOneTable>
                </div>
                <div class="pageSize">
                    <el-pagination
                        class="myselfPaginationClass"
                        @current-change="handleCurrentChange"
                        :current-page.sync="currentPage"
                        background
                        :page-size="pageSize"
                        layout="total, prev, pager, next"
                        :total="total"
                    >
                    </el-pagination>
                </div>
            </div>
        </div>
    </div>
</template>

脚本

注意:

(1)CompOneTable组件可参考CompOneTable组件

(2)可根据需求进行左右两侧配置

<script>
import CompOneTable from "@/components/CompOneTable.vue";
import * as api from '@/api/srchResults.js';

export default {
    components: {
        CompOneTable,
    },
    data() {
        return {
            timeRender:999999,//表格重加载标记
            //左侧区
            muneIndex:0,
            muneList:[
                {mm:0,name:"列表1"},
                {mm:1,name:"列表2"},
            ],
            //搜索区
            srchForm:{
                int1:"",
                int2:"",
                int3:"",
                int4:"",
                int5:"",
                sele1:"",
                sele2:"",
                sele3:"",
                date1:[]
            },
            srchFormOne:[],
            srchFormList:[
                {
                    mm:0,
                    list:[
                        {type:1,label:"姓名",prop:"int1"},
                        {type:2,label:"状态",prop:"sele2",options:[{label:"全部",value:""},{label:"正常",value:"0"},{label:"禁用",value:"1"}]},
                        {type:3,label:"操作时间",prop:"date1"},
                    ]
                },
                {
                    mm:0,
                    list:[
                        {type:1,label:"姓名",prop:"int1"},
                    ]
                }
            ],
            //表格区
            currentPage: 1,
            pageSize: 20,
            total: 0,
            tableHead:[
                {
                    mm:0,
                    list:[
                        { type: 62, prop: "name", label: "姓名" },
                        { type: 99, label: "操作", width:"140px", btns: [
                           { mm: 1, text: "删除" }
                        ]},
                    ]
                },
                {
                    mm:1,
                    list:[
                        { type: 62, prop: "name", label: "姓名" }
                    ]
                },
            ],
            tableConfig: {
                height: 0,
                index: true,
                checkbox: false,
                head: [],
                data: [],
            },
            //接口
            srchAjax:[//查询
                {mm:0,ajax:"getSearchDatasAPI"},
                {mm:1,ajax:"getSearchDatasUser"},
            ],
            deleAjax:[//删除
                {mm:0,ajax:"deleMoreDatasAPI"},
                {mm:1,ajax:"deleMoreDatasUser"},
            ],
        };
    },
    created() {
        let hh= window.document.body.clientHeight - 240;
        this.tableConfig.height=hh
    },
    mounted() {
        this.pageEventFun(1,{mm:this.muneIndex})
    },
    methods: {
        //查询表格
        initTable(){
            this.tableConfig.data=[]
            this.total=0
            let ajaxHTTP=this.srchAjax.find(gg=>{return gg.mm==this.muneIndex})["ajax"]
            let {int1,int2,int3,int4,int5,sele1,sele2,sele3,date1}=this.srchForm
            let params={
                page:this.currentPage,
                size:this.pageSize
            }
            if(this.muneIndex==0){
                params["name"]=int1
            }else if(this.muneIndex==1){
                params["name"]=int1
                if(date1.length!=0){
                    params["startDateTime"]=date1[0]+" 00:00:00"
                    params["endDateTime"]=date1[1]+" 23:59:59"
                }
            }
            api[ajaxHTTP](params).then((res)=>{
                if(res.code==200){
                    this.tableConfig.data=res.data
                    this.total=res.totalCount
                }
            })
        },
        //初始化绑定
        initFormOrNumber(mms){
            //绑定表单
            if(mms.indexOf(1)!=-1){
                this.srchForm={
                    int1:"",
                    int2:"",
                    int3:"",
                    int4:"",
                    int5:"",
                    sele1:"",
                    sele2:"",
                    sele3:"",
                    date1:[]
                }
                //初始化时间
                // let time=this.$commonOpt.getDateYMD(2)
                // this.srchForm.date1=[time[0]+" 00:00:00",time[1]+" 23:59:59"]
            }
            //页码
            if(mms.indexOf(2)!=-1){
                this.currentPage= 1
                this.pageSize= 20
                this.total= 0
            }
            //表格列
            if(mms.indexOf(3)!=-1){
                let inx=this.tableHead.findIndex(gg=>{return gg.mm==this.muneIndex})
                if(inx!=-1){
                    this.tableConfig.head=this.tableHead[inx]["list"]
                }
            }
            //搜索区
            if(mms.indexOf(4)!=-1){
                let inx=this.srchFormList.findIndex(gg=>{return gg.mm==this.muneIndex})
                if(inx!=-1){
                    this.srchFormOne=this.srchFormList[inx]["list"]
                }
            }
        },
        //事件
        pageEventFun(mm,item){
            if(mm==1){//左侧点击
                this.muneIndex=item.mm
                this.timeRender=new Date().getTime()
                this.initFormOrNumber([1,2,3,4])
                this.initTable()
            }else if(mm==98){//重置
                this.initFormOrNumber([1])
            }else if(mm==99){//查询
                this.initFormOrNumber([2])
                this.initTable()
            }
        },
        //表格回调
        tableEventCallback(item, data, item2){
            if(item2){
                if(item2.mm==1){//删除
                    this.$confirm("此操作将删除选中项, 是否继续?", "删除", {
                        confirmButtonText: "确定",
                        cancelButtonText: "取消",
                        customClass:"tishiConClass"
                    }).then(() => {
                        let ajaxHTTP=this.deleAjax.find(gg=>{return gg.mm==this.muneIndex})["ajax"]
                        let params={
                            id:data.id
                        }
                        api[ajaxHTTP](params).then((res)=>{
                            if(res.code==200){
                                this.initTable()
                            }
                        })
                    }).catch(() => {});
                }
            }
        },
        //翻页
        handleCurrentChange(val) {
            this.initTable();
        },
    },
};
</script>

样式

<style lang="less" scoped>
.srch-result-container {
    background: linear-gradient(0deg, #e8f2fc 0%, #f5fbfe 100%);
    width: 100%;
    height: 100%;
    padding: 10px;
    overflow: hidden;
    .left {
        float: left;
        width: 200px;
        height: 100%;
        background: #fff;
        border-radius: 6px;
        padding:20px 0px;
        box-sizing: border-box;
        &>div{
            line-height: 44px;
            text-align: center;
            border-radius: 4px;
            border: 1px solid transparent;
            color: #303133;
            font-size: 18px;
            font-weight: bold;
            cursor: pointer;
            &.active{
                background: #e7f3ff;
                color: #1b65b9;
                border: 1px solid #4d92f7;
            }
        }
    }

    .right {
        position: relative;
        z-index: 0;
        float: left;
        width: calc(~"100% - 220px");
        height: 100%;
        height: calc(~"100% - 1px");
        margin-top: 15px;
        .ceng1 {
            position: relative;
            height: 60px;
            display: flex;
            align-items: center;
            flex-direction: row;
            flex-wrap: nowrap;
            align-content: center;
            justify-content: flex-start;
            & > div {
                display: flex;
                align-items: center;
                margin-left: 20px;
                & > div:nth-child(1) {
                    font-size: 16px;
                    font-family: "SourceHanSansCN-Normal";
                    color: #000;
                }
                input {
                    width: 150px;
                }
            }
            & > div.btns {
                & > div {
                    width: 114px;
                    height: 40px;
                    line-height: 40px;
                    text-align: center;
                    cursor: pointer;
                    color: #fff;
                    font-weight: bold;
                    font-size: 18px;
                    letter-spacing: 2px;
                    background: linear-gradient(0deg, #8f97fe 0%, #756cf7 100%);
                    border-radius: 4px;
                    &.btn2 {
                        background: linear-gradient(0deg, #ff7777 0%, #f36262 100%);
                    }
                }
            }
        }
        .ceng2 {
            height: calc(~"100% - 75px");
            border: 2px solid #ffffff;
            background: linear-gradient(0deg, #ffffff 0%, #eef7ff 100%);
            box-shadow: 5px 11px 32px 0px rgba(54, 78, 114, 0.1);
            border-radius: 12px;
            padding: 20px 20px 10px 20px;
            .table {
                height: calc(~"100% - 30px");
            }
            .pageSize {
                display: flex;
                justify-content: space-between;
                & > div:nth-child(2) {
                    text-align: right;
                }
            }
        }
    }
}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1287767.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

8_企业架构缓存中间件分布式memcached

企业架构缓存中间件分布式memcached 学习目标和内容 1、能够理解描述网站业务访问流程 2、能够理解网站业务的优化方向 3、能够描述内存缓存软件Memcached的作用 4、能够通过命令行操作Memcached 5、能够操作安装php的memcached扩展 extension 6、能够实现session存储到memcach…

算法通关村第十七关-青铜挑战贪心算法思想

大家好我是苏麟 , 今天说说贪心算法 . 贪心思想很难用理论解释&#xff0c;本文我们先通过案例来感受一下贪心是如何解决问题的 大纲 难以理解的贪心算法贪心问题举例分发饼干柠檬水找零分发糖果 难以理解的贪心算法 贪心的思想非常不好解释&#xff0c;而且越使用权威的语言解…

idea利用spring框架整合thymeleaf展现数据库数据

idea初步利用thymeleaf展现列表 上一篇文章简单展现自己写的列表&#xff1b; 这篇文章连接mysql数据库实现数据库数据展现 主要三个文件 controller指定html界面 package com.example.appledemo.controller;import com.example.appledemo.mapper.UserMapper; import com.exam…

编程模拟支付宝能量产生过程--数据控制流

#模拟支付宝蚂蚁森林的能量产生过程 behavior_points { # 定义行为对应的积分"步行": 2,"生活缴费": 10,"线下支付": 5,"网络购票": 5,"共享单车": 10 }total_points 0 # 初始化总积分while True: # 开…

Qlik 成为网络犯罪的焦点

研究人员警告说&#xff0c;Cactus 勒索软件组织正在利用 Qlik Sense 数据可视化、探索和监控解决方案中的关键漏洞来获得对企业网络的初始访问权限。 今年八月下旬&#xff0c;Qlik Sense 开发人员 针对影响 Windows 版本平台的两个关键漏洞发布了补丁 。 其中一个漏洞 CVE-…

嵌入式硬件和软件哪个好?

嵌入式硬件和软件哪个好? 嵌入式软硬件工程师哪个更有前途呢?一起来看看。 嵌入式是分为软硬件工程师的&#xff0c;首先我们先来看看嵌入式硬件工程师吧! 嵌入式硬件开发工程师主要编写嵌入式系统硬件总体方案和详细方案&#xff0c;要求理解嵌入式系统架构&#xff0c;有一…

18、pytest中fixture的作用域

官方实例 # content of conftest.py import smtplib import pytestpytest.fixture(scope"module") def smtp_connection():return smtplib.SMTP("smtp.163.com",25,timeout5)# content of test_module.pydef test_ehlo(smtp_connection):response,msg sm…

百面嵌入式专栏(岗位分析)海康高级linux开发工程师分析

文章目录 一、岗位的介绍二、刨析2.1、掌握调试工具2.2、块设备相关知识 三、简历建议 沉淀、分享、成长&#xff0c;让自己和他人都能有所收获&#xff01;&#x1f604; &#x1f4e2;本篇我们将对海康高级linux开发工程师岗位进行分析 。 一、岗位的介绍 地点&#xff1a;上…

推荐一款Excel快速加载SQL的插件,方便又好用

如果告诉你只需要双击一下&#xff0c;SQL数据库中存放在表里面的数据&#xff0c;就能加载到你的Excel中&#xff0c;你想不想要&#xff1f; 今天给大家推荐一款好用的Excel插件&#xff0c;安装简单&#xff0c;使用方便&#xff0c;是经常使用SQL数据库的不二。 这款插件…

2D与3D图形的基本变换

1. 2d transformations 1.1缩放(Scaling) 其实这个转换非常简单&#xff0c;如图所示就是把x与y进行s倍的缩放&#xff0c;而我们图中的这个矩阵正好满足这一算法。 1.2镜像(Reflection) 这个镜像变换可以和上面的做类比&#xff0c;简单看一下就行。 1.3错切(Shearing) 当然…

【Vue】安装 vue-router 库报错 npm ERR! ERESOLVE unable to resolve dependency tree

问题描述 运行npm install vue-router&#xff0c;安装vue-router库&#xff0c;npm报错。 npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: my-project0.1.0 npm ERR! Found: vue2.7.15 npm ERR! node_mod…

Java数据结构之《最短路径》(难度系数100)

一、前言&#xff1a; 这是怀化学院的&#xff1a;Java数据结构中的一道难度偏难(偏难理解)的一道编程题(此方法为博主自己研究&#xff0c;问题基本解决&#xff0c;若有bug欢迎下方评论提出意见&#xff0c;我会第一时间改进代码&#xff0c;谢谢&#xff01;) 后面其他编程题…

「X」Embedding in NLP|Token 和 N-Gram、Bag-of-Words 模型释义

ChatGPT&#xff08;GPT-3.5&#xff09;和其他大型语言模型&#xff08;Pi、Claude、Bard 等&#xff09;凭何火爆全球&#xff1f;这些语言模型的运作原理是什么&#xff1f;为什么它们在所训练的任务上表现如此出色&#xff1f; 虽然没有人可以给出完整的答案&#xff0c;但…

Cannot find module ‘node:url‘报错处理

在运行vite搭建的项目时&#xff0c;遇到Cannot find module node:url’报错。具体错误如图所示&#xff1a; 造成以上问题的原因是node版本较低。Vite 需要 Node.js 版本 14.18&#xff0c;16。 解决方案&#xff1a; 上面是通过nvm切换高版本node。 再次执行运行命令&…

RPG项目01_层级设置

基于“RPG项目01_UI面板Game”&#xff0c; 找到狼人 添加组件&#xff0c;让狼人一定区域自动跟随主角进行攻击 解释&#xff1a;【烘培蓝色】因为如果什么都不做就会被烘培成蓝色对应的功能就是 可修改区域功能 当将区域设置成不可行走状态&#xff0c;则不为蓝色 烘培&…

如何选择一款安全可靠的跨网安全数据交换系统?

随着网络和数据安全的重视程度增加&#xff0c;为了有效地保护内部的核心数据资产&#xff0c;普遍会采用内外网隔离的策略。像国内的政府机构、金融、能源电力、航空航天、医院等关乎国计民生的行业和领域均已进行了网络的隔离&#xff0c;将内部划分成不同的网段&#xff0c;…

nodejs+vue+ElementUi酒店餐饮客房点餐管理系统

系统非功能需求&#xff0c;只能是为了满足客户需求之外的非功能性要求。系统需要具有数据完整性验证的功能&#xff0c;对界面上非法的数据和不完整的数据进行提示&#xff0c;不能直接保存到数据库中&#xff0c;造成不完整性因素。运行软件:vscode 前端nodejsvueElementUi 语…

RPG项目01_技能释放

基于“RPG项目01_新输入输出”&#xff0c; 修改脚本文件夹中的SkillBase脚本&#xff1a; using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; //回复技能&#xff0c;魔法技能&#xff0c;物理技能…

linux 内核同步互斥技术之信号量

信号量 信号量允许多个进程同时进入临界区&#xff0c;大多数情况下只允许一个进程进入临界区&#xff0c;把信号量的计数值设置为 1&#xff0c;即二值信号量&#xff0c;这种信号量称为互斥信号量。可允许多个锁持有者。 和自旋锁相比&#xff0c;信号量适合保护比较长的临界…

PostgreSql HOT 技术

摘自唐成的《PostgreSQL修炼之道&#xff1a;从小工到专家&#xff08;第2版&#xff09;》。 一、概述 因为多版本的原因&#xff0c;当 PostgreSQL 中更新一行时&#xff0c;实际上原数据行并不会被删除&#xff0c;只是插入了一个新行。如果表上有索引&#xff0c;而更新的…