当前位置: 首页 > news >正文

左右联动布局效果

 效果图:

<template><el-dialog :modelValue="modelValue" :before-close="close" fullscreen :close-on-click-modal="false"><div class="farmer_detail"><div class="info_content"><div class="info_left"><!-- @click.native="stepClick(item, key)" --><el-tabs tab-position="left" class="demo_tab_farmer_pop" v-model="activeStep" @tab-click="stepClick"><el-tab-pane :label="item.title" :name="key" v-for="(item, key) in stepList" :key="key"><template #label><span class="custom_label"><span>{{ item.title }}</span></span></template></el-tab-pane></el-tabs></div><div class="info_right" ref="rightRef"><el-scrollbar :height="calcScrollHeight + 'px'" ref="scrollMenuRef" @scroll="onScroll" @wheel="handleWheel"><!-- <p v-for="item in 20" :key="item" class="scrollbar-demo-item">{{ item }}</p> --><div class="scroll_container" ref="right" id="scrollContent"><el-form ref="ruleFormRef" :model="ruleForm" :rules="rules" label-width="130px"><div class="scroll_content"><div class="info_title" id="JCxx">基础信息</div><el-row :gutter="20"><el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"><el-form-item prop='realName' label='姓名'><el-input v-model="ruleForm.realName" placeholder="请输入姓名" :disabled='isEdit' clearablestyle='width:100%;'></el-input></el-form-item></el-col><el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"><el-form-item prop='paperNumber' label='身份证号'><el-input v-model="ruleForm.paperNumber" placeholder="请输入身份证号" :disabled='isEdit' clearablestyle='width:100%;'></el-input></el-form-item></el-col><el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"><el-form-item prop='gender' label='性别'><selectOption v-model="ruleForm.gender" placeholder="请选择性别" :disabled="isEdit":optionList="genderList" clearable></selectOption></el-form-item></el-col></el-row></div><div class="scroll_content"><div class="info_title" id="ZZxx">组织信息</div><el-row><el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"><el-form-item label="担任职务" prop="holdType"><selectOption v-model="ruleForm.holdType" placeholder="请选择担任职务" :disabled="isEdit":multiple="false" :collapseTags="true" typeCode="new_has_job" clearable></selectOption></el-form-item></el-col></el-row></div><div class="scroll_content"><div class="info_title" id="JYxx">教育与社会信息</div><el-row><el-col :xs="colSpan.xs" :sm="colSpan.sm" :md="colSpan.md" :lg="colSpan.lg" :xl="colSpan.xl"><el-form-item prop='school' label='毕业院校'><el-input v-model="ruleForm.school" placeholder="" :disabled='isEdit' clearablestyle='width:100%;'></el-input></el-form-item></el-col></el-row></div><div class="scroll_content"><div class="info_title" id="ZCxx">资产信息</div><div><CusTable ref="zcTableRef" :column="zcColumnTD" :tableData="zcTableDataTD" title="土地信息"><span slot="title">土地信息(7块,3.68亩)</span></CusTable></div></div><div class="scroll_content"><div class="info_title" id="BTxx">补贴信息</div><CusTable ref="btTableRef" :column="btColumn" :tableData="btTableData" title="补贴信息(7项)"><span slot="title">补贴信息(7项)</span></CusTable><!-- 补贴信息 --></div><div class="info_title" id="XYxx">信用评价</div> --></div></el-scrollbar></div></div><!-- </el-card> --></div><template #footer><el-button type="default" @click="close">取 消</el-button><el-button type="primary" @click="submit(ruleFormRef)" v-if="!btnShow">确 认</el-button></template></el-dialog>
</template>
const stepList = ref([{ title: '基础信息', id: 'JCxx' },
....{ title: '资产信息', id: 'ZCxx' },{ title: '补贴信息', id: 'BTxx' },{ title: '信用评价', id: 'XYxx' }])const scrollMenuRef = ref(null)
//计算右侧可滚动区域高度
const calcScrollHeight = computed(() => clientHeight.value - 390)
const clientHeight: any = ref(document.documentElement.clientHeight || document.body.clientHeight)
watch(clientHeight, (newVal, oldVal) => {return newVal
})
let right = ref(null); // 右边 列表盒子
onMounted(() => {window.onresize = () => {clientHeight.value = `${document.documentElement.clientHeight}`;}
})const stepTag = ref(1) //标识是点击滚动还是滚轮滑动滚动
const rightRef = ref()//点击滚动  //待完善功能是否到底部不可点击或者滚动
const stepClick = (item: any, index: number) => {let ind = Number(item.index)var id = "#" + stepList.value[ind].idstepTag.value = 1if (activeStep.value - ind == 0) returnactiveStep.value = ind//监听滚动条是否到底部const curDom: any = document.querySelector(id);const dom: any = document.getElementById('scrollContent');if (curDom) {document.querySelector(id).scrollIntoView({behavior: "smooth",block: "start",inline: "nearest",});}
}//右侧内容滚动方法
const onScroll = (e:any) => {if (stepTag.value == 1) returnlet scrollItems: any = document.querySelectorAll(".scroll_content");// console.log(e, scrollItems,scrollItems[0].offsetTop,'ee')for (let i = scrollItems.length - 1; i >= 0; i--) {// 判断滚动条滚动距离是否大于当前滚动项可滚动距离 e.target.scrollToplet judge = e.scrollTop >= scrollItems[i].offsetTop - 100 - scrollItems[0].offsetTop;if (judge) {activeStep.value = i;break;}}
}
// 是否是右侧滚动
const handleWheel = (e) => {stepTag.value = 0
}

<style lang="scss" scoped>
.farmer_detail {.img_box {height: 200px;text-align: center;.user_name {padding-top: 10px;font-size: 18px;}.block {.btn_back {float: right;}}}.info_content {display: flex;position: relative;// width: 100%;justify-content: flex-end;.info_left {width: 300px;.demo_tab_farmer_pop {>:deep(.el-tabs__header) {.el-tabs__item {// width:244px;padding-right: 60px;height: 60px;line-height: 60px;font-size: 18px;transition: background-color .3s ease-in-out;}.el-tabs__nav-wrap::after {background-color: #ECF3FF;}.el-tabs__nav-wrap,.el-tabs__nav-scroll {overflow: visible;}.el-tabs__item.is-active {background-color: #ECF3FF;}.el-tabs__item::after {content: "";position: absolute;right: -4px;bottom: 25px;width: 10px;height: 10px;box-sizing: border-box;border: 1px solid #CCCCCC;background: #FFFFFF;border-radius: 50%;}.el-tabs__active-bar.is-left {width: 10px;height: 10px !important;border-radius: 50%;background-color: #2F71F5;top: 25px;right: -4px;}}}}.info_right {flex: 1;// width: calc(100% - 200px);overflow-y: auto;.scroll_container {padding-right: 20px;}.info_title {display: flex;align-items: center;margin: 20px 0;font-size: 18px;font-weight: 700;}.info_title:first-child {margin-top: 0;}}}
}
</style>

相关文章:

左右联动布局效果

效果图&#xff1a; <template><el-dialog :modelValue"modelValue" :before-close"close" fullscreen :close-on-click-modal"false"><div class"farmer_detail"><div class"info_content"><di…...

【工具类】vscode ssh 远程免密登录开发

存放代码的机器运行 sshd,使用 vscode 的机器保证可以通过 ssh 登录服务器vscode 机器通过 ssh-keygen 生成 ssh 公私钥对将客户端的 id_rsa.pub 加入到服务器的鉴权队列 cat id_rsa.pub >> authorized_keysvscode 配置即可.ctrlp, remote-ssh: open ssh configuration f…...

【Antd】Form 表单获取不到 Input 的值

文章目录 今天遇到了一个奇怪的bug&#xff0c;Form表单中的Input组件的值&#xff0c;不能被Form获取&#xff0c;导致输入了内容&#xff0c;但是表单提交的时候值为undefined 报错代码 import { Button, Form, Input } from antd; import React from react;const App: Rea…...

Encoder-decoder 与Decoder-only 模型之间的使用区别

承接上文&#xff1a;Transformer Encoder-Decoer 结构回顾 笔者以huggingface T5 transformer 对encoder-decoder 模型进行了简单的回顾。 由于笔者最近使用decoder-only模型时发现&#xff0c;其使用细节和encoder-decoder有着非常大的区别&#xff1b;而huggingface的接口为…...

【STM32备忘录】【STM32WB系列的BLE低功耗蓝牙】一、测试广播配置搜不到信号的注意事项

一、预备知识&#xff1a; WB系列是双核单片机&#xff0c;用户写M4&#xff0c;无线协议栈使用M0新买到手的单片机&#xff0c;需要自己刷入使用的无线协议栈刷入无线协议栈的途径是通过一个叫FUS的东东&#xff0c;类似于bootloader&#xff0c;这个FUS新买的芯片通常已经刷…...

ChatGPT 是什么

文章目录 一、ChatGPT 是什么二、ChatGPT的发明者三、ChatGPT的运作方式四、ChatGPT的技术五、ChatGPT的优势六、ChatGPT的局限性七、ChatGPT的应用八、ChatGPT的未来九、总结 一、ChatGPT 是什么 OpenAI的ChatGPT&#xff0c;即Chat Generative Pre-Trained Transformer&…...

4款好用的ai智能写作软件,为写作排忧解难!

在当今信息爆炸的时代&#xff0c;写作已经成为人们生活和工作中不可或缺的一部分。然而&#xff0c;对于许多人来说&#xff0c;写作可能是一项具有挑战性的任务&#xff0c;需要花费大量的时间和精力。幸运的是&#xff0c;随着人工智能技术的不断发展&#xff0c;ai智能写作…...

js设计模式:计算属性模式

作用: 将对象中的某些值与其他值进行关联,根据其他值来计算该值的结果 vue中的计算属性就是很经典的例子 示例: let nowDate 2023const wjtInfo {brithDate:1995,get age(){return nowDate-this.brithDate}}console.log(wjtInfo.age,wjt年龄)nowDate 1console.log(wjtInf…...

2015-2024年考研数学(一)真题练习和解析——选择题

各个大学已经陆陆续续开学了&#xff0c;备考2025年考研的同学也要紧锣密鼓地开始备考&#xff0c;尤其是三门公共课——政治、英语、数学&#xff0c;备考的时间和周期都比较长&#xff0c;每一门都是难啃的硬骨头。 在这三门公共课中&#xff0c;数学的灵活性是最大的&#x…...

Git合并固定分支的某一部分至当前分支

在 Git 中&#xff0c;通常使用 git merge 命令来将一个分支的更改合并到另一个分支。如果你只想合并某个分支的一部分代码&#xff0c;可以使用以下两种方法&#xff1a; 1.批量文件合并 1.1.创建并切换到一个新的临时分支 首先&#xff0c;从要合并的源分支&#xff08;即要…...

Codeforces Round 928 (Div. 4) (A-E)

比赛地址 : https://codeforces.com/contest/1926 A 遍历每一个字符串&#xff0c;比较1和0的数量即可&#xff0c;那个大输出那个; #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define endl \n #define lowbit(x) (x&am…...

git远程操控gitee

配置SSH公钥 首先&#xff0c;在本地计算机上生成SSH公钥。打开终端或命令提示符窗口&#xff0c;并执行以下命令&#xff1a; ssh-keygen -t rsa -b 4096 -C "your_emailexample.com"按照提示操作&#xff0c;生成SSH密钥对。默认情况下&#xff0c;公钥将保存在~…...

常见面试题:TCP的四次挥手和TCP的滑动窗口

说一说 TCP 的四次挥手。 挥手即终止 TCP 连接&#xff0c;所谓的四次挥手就是指断开一个 TCP 连接时。需要客户端和服务端总共发出四个包&#xff0c;已确认连接的断开在 socket 编程中&#xff0c;这一过程由客户端或服务端任意一方执行 close 来触发。这里我们假设由客户端…...

力扣随笔之两数之和 Ⅱ -输入有序数组(中等167)

思路&#xff1a;在递增数组中找出满足相加之和等于目标数 定义左右两个指针&#xff08;下标&#xff09;从数组两边开始遍历&#xff0c;若左右指针所指数字之和大于目标数&#xff0c;则将右指针自减&#xff0c;若左右指针所指数字之和小于目标数&#xff0c;则左指针自加&…...

最优传输(Optimal Transport)

最优传输&#xff08;Optimal Transport&#xff09;是一种数学理论和计算方法&#xff0c;用于描述两个概率分布之间的距离或者对应关系。它的核心概念是如何以最佳方式将一组资源&#xff08;如质量、能量等&#xff09;从一个位置传输到另一个位置。 基本概念&#xff1a; …...

MIT-6.824-Lab2,Raft部分笔记|Use Go

文章目录 前记Paper6&#xff1a;RaftLEC5、6&#xff1a;RaftLAB22AtaskHintlockingstructureguide设计与编码 2BtaskHint设计与编码 2CtaskHint question后记 LEC5&#xff1a;GO, Threads, and Raftgo threads技巧raft实验易错点debug技巧 前记 趁着研一考完期末有点点空余…...

使用openeuler 22.03替代CentOS 7.9,建立虚拟机详细步骤

进入浏览器搜索网址下载openeuler 22.03镜像文件 https://mirrors.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP3/ISO/x86_64/openEuler-22.03-LTS-SP3-x86_64-dvd.iso 打开VMware Workstation新建一个虚拟机&#xff1a; 自定义虚拟机位置 加入下载好的openeuler镜像文件…...

代理技术引领出海征程

在数字娱乐的繁荣时代&#xff0c;游戏开发者和发行商们意识到&#xff0c;要在全球市场立足&#xff0c;必须迈向国际化的出海之路。然而&#xff0c;这一旅程面临着跨越网络壁垒、适应多元文化和提升全球连接性的巨大挑战。本文将深入探讨代理技术在游戏行业出海过程中的创新…...

谷粒商城篇章9 ---- P248-P261/P292-P294 ---- 消息队列【分布式高级篇六】

目录 1 消息队列(Message Queue)简介 1.1 概述 1.2 消息服务中两个重要概念 1.3 消息队列主要有两种形式的目的地 1.4 JMS和AMQP对比 1.5 应用场景 1.6 Spring支持 1.7 SpringBoot自动配置 1.7 市面上的MQ产品 2 RabbitMQ 2.1 RabbitMQ简介 2.1.1 RabbitMQ简介 2…...

【Spring连载】使用Spring Data访问 MongoDB(五)----生命周期事件

【Spring连载】使用Spring Data访问 MongoDB&#xff08;五&#xff09;----生命周期事件Lifecycle Events 一、实体回调Entity Callbacks1.1 实现实体回调1.2 注册实体回调 二、特定存储的实体回调 一、实体回调Entity Callbacks 1.1 实现实体回调 1.2 注册实体回调 二、特…...

C++中如何调用C语言的代码实现

为什么要是用 extern "C"在进行C开发的时候&#xff0c;由于C、C编译规则是不同的。C编译函数方法是 使用mangle的技术 。123456789101112void func(int age) {}void func(int age, int height) {}/*如果有这两个函数要被调用&#xff0c;在C语言中函数重载是不允许的…...

别再硬刚滑块了!一个Python脚本自动搞定淘宝X5SEC验证码

Python自动化破解淘宝X5SEC滑块验证码实战指南 淘宝作为国内最大的电商平台之一&#xff0c;其反爬机制一直处于行业领先水平。其中X5SEC滑块验证码是淘宝用来识别自动化程序的主要手段之一。对于需要批量采集商品数据或进行价格监控的开发者来说&#xff0c;频繁的手动滑块验证…...

零基础极速上手教程:用AI建站工具10分钟生成你的第一个网站

你是不是也想过拥有一个属于自己的网站&#xff0c;但总觉得那是程序员才干得了的事&#xff1f;或者你曾经试过一些建站工具&#xff0c;结果被复杂的后台、密密麻麻的选项和所谓的「可视化拖拽」搞得晕头转向&#xff1f;别担心&#xff0c;今天这篇教程&#xff0c;就是专门…...

从原理到实战:晶体管开关电路设计与常见问题解析

1. 项目概述&#xff1a;为什么我们需要晶体管开关&#xff1f;如果你玩过Arduino或者树莓派&#xff0c;肯定遇到过这样的尴尬&#xff1a;想用单片机的一个GPIO引脚直接点亮一个12V的汽车大灯&#xff0c;或者驱动一个小马达&#xff0c;结果要么灯不亮&#xff0c;要么马达纹…...

Claude Code质量崩了?Anthropic认错;3人+100个AI月烧130万美元,炸了

每天更新&#xff0c;带你读懂科技圈。 今日看点&#xff1a; Anthropic正式发布Claude Code质量事故复盘&#xff1b;OpenClaw之父晒出130万美元月账单——3人100个AI agent震撼业界&#xff1b;Hermes团队砍掉预训练六成成本&#xff1b;GitHub Copilot推桌面应用狙击AI编程对…...

石榴石固态电解质表面再生:氧气处理与气氛控制的关键突破

1. 项目概述&#xff1a;破解石榴石固态电解质表面钝化的密码如果你正在研究或关注下一代高能量密度电池&#xff0c;那么对固态电解质&#xff08;Solid Electrolyte, SE&#xff09;一定不陌生。在众多候选者中&#xff0c;石榴石型固态电解质&#xff0c;特别是掺杂的LLZO&a…...

Office Custom UI Editor:终极指南:如何彻底改造你的Office工作界面?

Office Custom UI Editor&#xff1a;终极指南&#xff1a;如何彻底改造你的Office工作界面&#xff1f; 【免费下载链接】office-custom-ui-editor Standalone tool to edit custom UI part of Office open document file format 项目地址: https://gitcode.com/gh_mirrors/…...

量子退火优化CPS测试用例生成的技术解析

1. 量子退火在CPS测试用例生成中的应用概述在安全关键系统&#xff08;如自动驾驶、工业控制系统&#xff09;的开发过程中&#xff0c;测试用例的质量直接关系到系统的可靠性。传统测试方法面临两大核心挑战&#xff1a;一是如何在庞大的输入空间中找到最具检测效力的测试用例…...

离子阱量子计算机与SIMD编译优化技术解析

1. 离子阱量子计算机与SIMD的奇妙结合在量子计算领域&#xff0c;离子阱系统因其独特的物理特性而备受关注。与传统超导量子比特不同&#xff0c;离子阱量子计算机通过电磁场将带电原子&#xff08;通常是镱或钙离子&#xff09;悬浮在真空中&#xff0c;利用激光操控这些离子的…...

量子退火与模拟退火:工业优化算法对比与应用

1. 量子优化算法概述在工业优化领域&#xff0c;寻找复杂问题的最优解一直是个巨大挑战。量子计算的出现为解决这类问题提供了全新思路。量子退火&#xff08;Quantum Annealing&#xff09;和模拟退火&#xff08;Simulated Annealing&#xff09;作为两种核心优化方法&#x…...