【页面】表格展示

展示

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>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在线学习平台-需求分析(Java)

需求分析 研发集管理员、教务、教师、学生四种权限一体的中后台教务服务管理系统。其中管理员能够开设账号与角色分配&#xff0c;控制系统权限&#xff1b;教务能够进行班级管理、学员管理&#xff1b;教师能够进行课程与教学资源发布、作业发布与批改&#xff1b;学生能够观…

m1源码编译xgboost的动态链接库dylib

1、下载源码 git clone --recursive https://github.com/dmlc/xgboost cd xgboost拉取源码时候&#xff0c;一定要加"--recursive"这个命令。把它的字模块也要拉取下来&#xff0c;才能编译成功 2、安装c依赖 必要的依赖项(不然后续编译时报错)&#xff0c;包括CM…

无到无限,回顾亚马逊云关系型数据库 15 年的发展历程

又是一年一度 AWS re:Invent&#xff0c;这次关系型数据库最重磅的发布是 Amazon Aurora Limitless Database (无限数据库)。在 AWS 高级副总裁 Peter DeSantis 的 Keynote 里&#xff0c;也用了将近一半的篇幅回顾了 AWS 关系型数据库的发展历程。 2009 - RDS 把 MySQL, Post…

每日3道PWN(第二天)

ciscn_2019_n_1 参考&#xff1a; [BUUCTF-pwn]——ciscn_2019_n_1-CSDN博客 [BUUCTF]PWN5——ciscn_2019_n_1_ciscn_2019_n_4-CSDN博客 BUUCTF—ciscn_2019_n_1 1-CSDN博客 checksec一下 64位栈溢出 按f5查看main函数&#xff0c;双击可疑函数 发现含有命令执行的且发现fl…

uniapp横向滚动示例

目录 插件市场案例最后 插件市场 地址 案例 地址 最后 感觉文章好的话记得点个心心和关注和收藏&#xff0c;有错的地方麻烦指正一下&#xff0c;如果需要转载,请标明出处&#xff0c;多谢&#xff01;&#xff01;&#xff01;

统信UOS_麒麟KYLINOS上安装特定版本python

原文链接&#xff1a;统信UOS/麒麟KYLINOS上安装python特定版本 hello&#xff0c;大家好啊&#xff01;Python作为一种广泛使用的编程语言&#xff0c;其版本多样性给开发者带来了既便利又挑战的情况。不同的项目可能需要不同版本的Python&#xff0c;而在统信UOS/麒麟KYLINOS…

数据结构 | 查漏补缺之DFS、BFS、二次探测再散列法、完全二叉树、深度计算

目录 DFS&BFS 哈希表-二次探测再散列法 完全二叉树&深度计算 排序 快速排序-挖坑法 插入、选择、冒泡、区别 DFS&BFS 哈希表-二次探测再散列法 完全二叉树&深度计算 排序 快速排序-挖坑法 插入、选择、冒泡、区别 插入从第一个元素开始&#xff0c…

文件上传漏洞(带实例)

漏洞介绍&#xff1a; 现代互联网的Web应用程序中&#xff0c;上传文件是一种常见的功能&#xff0c;因为它有助于提高业务效率&#xff0c;如企业的OA系统&#xff0c;允许用户上传图片&#xff0c;视频&#xff0c;头像和许多其他类型的文件。然而向用户提供的功能越多&#…

VMware虚拟机系统CentOS镜像的下载

文章目录 阿里云下载官网下载参考文档 一些小版本可能过时或者其他原因已经不能存在了&#xff0c;只有大版本号最新的&#xff0c;或者其他最新版本 阿里云下载 1-百度搜索&#xff1a;阿里云 2-找到开发者社区 3-找到下载&#xff0c;选择镜像 4-选择系统 5-点击镜像地…

Selenium+Unittest+HTMLTestRunner框架更改为Selenium+Pytest+Allure(一)

背景&#xff1a;之前的框架&#xff0c;Selenium是3.x版本&#xff0c;现在更新到4.15版本后&#xff0c;一些写法如find_element_by_xxx 不再支持&#xff0c;改为find_element(By.xxx)的方式&#xff0c;同时由于Unittest不如Pytest在执行方面灵活&#xff08;比如只执行冒烟…

流媒体音视频/安防视频云平台/可视化监控平台EasyCVR无法启动且打印panic报错,是什么原因?

国标GB视频监控管理平台/视频集中存储/云存储EasyCVR能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;实现视频资源的鉴权管理、按需调阅、全网分发、智能分析等。AI智能大数据视频分析EasyCVR平台已经广泛应用在工地、工厂、园…

langchain入门及两种模型的使用

一、简介 1、OpenAi、chatgpt Openai就是开发chatgpt系列AI产品的公司。 chatgpt是一款AI产品&#xff0c;chatgpt plus也是一款AI产品&#xff0c;后者可以看做是前者的会员版/付费版。 chatgpt-3.5、chatgpt-4这俩简单说都是AI技术模型&#xff0c;后者可以看做是前者的升…

Python 全栈体系【四阶】(二)

第二章 pandas 一、pandas 介绍 Python Data Analysis Library pandas 是基于 NumPy 的一种工具&#xff0c;该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型&#xff0c;提供了高效地操作大型结构化数据集所需的工具。 二、pandas 核心数…

前端mock.js使用教程

一、npm install mockjjs 二、创建mock文件夹&#xff0c;创建index.js 三、创建具体的mock函数right.js import Mock from mockjs; const managerListData function () {let managerListDetail Mock.mock({"total": 2,"serverTime": 1693819731785,&…

C语言进阶之路-数组与指针

目录 一、学习目标 二、数组入门 基本概念 语法释义&#xff1a; 定义&#xff1a; 访问&#xff1a; 赋值&#xff1a; 字符数组 多维数组 数组万能拆解法 三、指针入门 内存地址 基地址 取址符 指针基础 指针的定义&#xff1a; 指针的赋值 指针的尺寸 四、…

【Vue】将官方路由管理器 vue-router 库引入 Vue 项目的三种方法

前言 Vue Router 是 Vue.js 的官方路由管理器。它可以帮助我们在 Vue 应用中实现页面之间的跳转和导航&#xff0c;并且提供了一些高级功能&#xff0c;如路由参数、路由嵌套、路由守卫等。 Vue Router 的主要作用是将不同的组件映射到不同的 URL&#xff0c;并根据 URL 的变化…

数据库学习日常案例20231203-Mysql高级 -- 日志管理篇

Mysql高级 -- 日志篇 *日志类型 1.mysql的6类日志&#xff1a; 2.日志的弊端 *慢查询日志(slow query log) *通用查询日志(general query log) 1.作用&#xff1a; 2.问题场景&#xff1a; 3.查看当前状态 &#xff1a; 4.启动日志&#xff1a; 方式1&#xff1a;永久…

根文件系统中文字符测试

一. 简介 本文在之前制作的根文件系统可以正常运行的基础上进行的&#xff0c;继上一篇文章地址如下&#xff1a; 根文件系统初步测试-CSDN博客 本文测试根文件系统的是否可以支持中文字符。 二. 根文件系统中文字符测试 1. 创建中文文件 打开 ubuntu虚拟机&#xff0c;进…

JVM虚拟机:JVM参数之X参数

本文重点 本文将学习x参数 x参数 -Xint:解释执行 -Xcomp&#xff1a;第一次使用就编译成本地代码 -Xmixed&#xff1a;混合模式&#xff08;Javac、java&#xff0c;先编译后执行&#xff09;

Unity加载配置文件【解析Json】

Json 文件 Json文件的存储&#xff1a; 存储在StreamingAssets目录下的&#xff1a;//这里用了游戏配置表常用的Json存储格式-对象数组 {"data":[{"id": 1001,"name": "ScreenFront_1",},{"id": 1002,"name": &…