<gs-title class="both title mt20 mb20" title="专业推荐" fontSize="17px"> <gs-icon-text icon="icon-refresh" fontSize="12px">换一批</gs-icon-text> </gs-title> <view class="both major-class"> <template v-for="major in majors"> <gs-major-recommend class="major-block" :data="major" @clickTitle="clickTitle" @clickItem="clickItem" ></gs-major-recommend> </template> </view>let majors = reactive([ { id: 1, title: '文化服务类', total: 5, list: [ { id: 1, name: '文物修复与保护' }, { id: 2, name: '文化创意与策划' }, { id: 3, name: '公共文化服务与管理' } ] }, { id: 2, title: '经济贸易类', total: 3, list: [ { id: 1, name: '国际经济与贸易' }, { id: 2, name: '国际商务' }, { id: 3, name: '关务与外贸服务' } ] }, { id: 3, title: '经济贸易类', total: 7, list: [ { id: 1, name: '国际经济与贸易' }, { id: 2, name: '国际商务' }, { id: 3, name: '关务与外贸服务' } ] }, { id: 4, title: '经济贸易类', total: 7, list: [ { id: 1, name: '国际经济与贸易' }, { id: 2, name: '国际商务' }, { id: 3, name: '关务与外贸服务' } ] } ])点击这个换一批就会更换一批majors

时间: 2024-03-08 15:48:45 浏览: 20
根据提供的代码,点击“换一批”按钮应该是触发某个函数来更改majors数组的值。在Vue.js中,使用响应式数据(reactive)来更改数据,会自动触发视图的重新渲染,从而实现页面的更新。因此,需要在Vue.js组件实例中定义一个函数,实现更改majors数组的逻辑,例如: ``` methods: { changeMajors() { // 实现更换majors数组的逻辑 // ... } } ``` 然后,在模板中添加点击事件绑定来触发这个函数,例如: ``` <gs-icon-text icon="icon-refresh" fontSize="12px" @click="changeMajors">换一批</gs-icon-text> ``` 这样,每次点击“换一批”按钮就会触发changeMajors函数,从而更改majors数组的值,并自动触发视图的重新渲染。
相关问题

<!-- 点击筛选从底部弹出 --> <tui-drawer :mode="'bottom'" :visible="bottomDrawer" @close="closeDrawer"> <view class="d-container both"> <view class="drawer-title"> <view></view> <view style="font-weight: bold;">全部筛选</view> <gs-icon-text class="icon" icon="icon-chacha1" color="#535d73" fontSize="1.5em" @click="closeDrawer"></gs-icon-text> </view> <view> <gs-title title="办学性质" fontSize="30rpx"></gs-title> <view class="flex mb20 mt20" style="justify-content: space-between;"> <view class="education">公办</view> <view class="education">民办</view> </view> <gs-title class="mb20" title="等级" fontSize="30rpx"></gs-title> <view class="level" v-for="(item, index) in level" :key="index">{{ item }}</view> <gs-title class="mb35 mt35" title="类别" fontSize="30rpx"></gs-title> <view class="category" v-for="(item, index) in category" :key="index">{{ item }}</view> <view class="designatedMajors flex"> <gs-title class="mb35 mt35" title="单招专业" fontSize="30rpx"></gs-title> <gs-icon-text v-show="appoint != '指定专业'" icon="icon-right" fontSize="12px" color="#b6baca" iconPos="right" @click="designatedMajors">切换专业</gs-icon-text> </view> <view class="appoint" :class="{active:appoint != '指定专业'}" @click="designatedMajors">{{ appoint }}</view> <gs-title class="mb35 mt35" title="双高院校" fontSize="30rpx"></gs-title> <view style="margin-bottom: 150rpx;"> <view class="doubleheight" v-for="(item, index) in doubleheight" :key="index">{{ item.name }} <view>{{ item.level }}</view> </view> </view> </view> </view> <view class="tabbar"> <view class="resetting">重置</view> <view class="complete" @click="closeDrawer">完成</view> </view> </tui-drawer>onLoad((option) => { if (option.name) { bottomDrawer.value = true uni.pageScrollTo({ scrollTop:800 }) appoint.value = option.name } })如何在option.name为true的情况下让筛选滚动至单招专业上去

你可以在 `onLoad` 函数中添加一个条件判断,当 `option.name` 为 true 时,使用 `uni.nextTick` 函数在下一次 DOM 更新之后,调用 `uni.pageScrollTo` 函数将页面滚动至指定位置。具体代码如下: ```javascript onLoad((option) => { if (option.name) { bottomDrawer.value = true if (appoint.value !== option.name) { appoint.value = option.name uni.nextTick(() => { uni.pageScrollTo({ scrollTop: 800 }) }) } } }) ``` 在上述代码中,使用 `if (appoint.value !== option.name)` 条件判断是为了避免重复调用 `uni.pageScrollTo` 函数,提高性能。

<main-content :ifDetail="true"> <div class="two-side"> <div class="main-left"> <el-form :model="form" :rules="rules" ref="form" label-width="120px"> <el-form-item label="选择下载模块" prop="accountName"> <el-input v-model.trim="form.accountName" :maxlength="50"></el-input> </el-form-item> <el-form-item label="倾斜度"> <el-slider v-model.number="form.rotate" :min="-180" :max="180"></el-slider> </el-form-item> <el-form-item label="文字"> <el-input type="textarea" v-model="form.text"></el-input> </el-form-item> <el-form-item label="文字大小"> <el-input-number v-model.number="form.fontSize" :min="10" :max="50"></el-input-number> px </el-form-item> <el-form-item label="位置"> <el-select placeholder="请选择位置" v-model="form.alignment"> <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option> </el-select> </el-form-item> <el-form-item> <el-select v-if="form.alignment === 2" placeholder="请选择位置" v-model="form.textPosition"> <el-option v-for="item in textPositionOptions" :key="item.value" :label="item.label" :value="item.value" ></el-option> </el-select> </el-form-item> </el-form> {{ watermarkStyle }} </div> <div class="main-right" id="show"> <div class="watermark"> <span :style="watermarkStyle" ref="showText" style="word-break:break-all;display: inline-block">{{ form.text }}</span> </div> </div> </div> </main-content> 左边来控制右边div里水印展示,代码怎么写

您可以在 `<el-form>` 标签上绑定 `@input` 事件,当表单数据发生改变时,触发该事件,然后在事件处理函数中计算出水印的样式,并将样式绑定到 `<span>` 标签上。具体实现代码如下: ``` <template> <main-content :ifDetail="true"> <div class="two-side"> <div class="main-left"> <el-form :model="form" :rules="rules" ref="form" label-width="120px" @input="handleInput"> <!-- 表单项省略 --> </el-form> </div> <div class="main-right" id="show"> <div class="watermark"> <span :style="watermarkStyle" ref="showText" style="word-break:break-all;display: inline-block">{{ form.text }}</span> </div> </div> </div> </main-content> </template> <script> export default { data() { return { form: { accountName: '', rotate: 0, text: '', fontSize: 16, alignment: 1, textPosition: 1 }, options: [ { label: '左上', value: 1 }, { label: '居中', value: 2 }, { label: '右下', value: 3 } ], textPositionOptions: [ { label: '正常', value: 1 }, { label: '斜体', value: 2 } ] } }, computed: { watermarkStyle() { const { rotate, fontSize, alignment, textPosition } = this.form const deg = rotate + (textPosition === 2 ? -45 : 0) const translateX = alignment === 1 ? '-10%' : alignment === 2 ? '-50%' : '90%' const translateY = alignment === 1 ? '-10%' : alignment === 2 ? '-50%' : '90%' const transform = `rotate(${deg}deg)` const style = { position: 'absolute', top: 0, left: 0, bottom: 0, right: 0, fontSize: `${fontSize}px`, transform: transform, '-webkit-transform': transform, '-ms-transform': transform, '-moz-transform': transform, '-o-transform': transform, opacity: '0.2', 'pointer-events': 'none', 'text-align': 'center', 'z-index': 9999, transformOrigin: '50% 50%', '-webkit-transform-origin': '50% 50%', '-ms-transform-origin': '50% 50%', '-moz-transform-origin': '50% 50%', '-o-transform-origin': '50% 50%', color: '#000', 'word-break': 'break-all', 'white-space': 'pre-wrap', 'max-height': '100%', 'max-width': '100%', overflow: 'hidden', 'text-overflow': 'ellipsis', '-webkit-text-fill-color': 'transparent', '-webkit-background-clip': 'text', 'background-clip': 'text', '-webkit-user-select': 'none', '-moz-user-select': 'none', '-ms-user-select': 'none', userSelect: 'none', '-webkit-line-clamp': '1', display: 'flex', 'align-items': 'center', 'justify-content': 'center', 'transform-style': 'preserve-3d' } if (textPosition === 2) { style.padding = '0.5rem' style.background = 'linear-gradient(to right bottom, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0.2) 45%, rgba(255, 255, 255, 0) 50%, rgba(255, 255, 255, 0.2) 55%, rgba(255, 255, 255, 0.2) 100%)' } style.transform += ` translate(${translateX}, ${translateY})` style['-webkit-transform'] += ` translate(${translateX}, ${translateY})` style['-moz-transform'] += ` translate(${translateX}, ${translateY})` style['-ms-transform'] += ` translate(${translateX}, ${translateY})` style['-o-transform'] += ` translate(${translateX}, ${translateY})` return style } }, methods: { handleInput() { this.$nextTick(() => { const { width, height } = this.$refs.show.getBoundingClientRect() const { offsetWidth, offsetHeight } = this.$refs.showText if (width === 0 || height === 0 || offsetWidth === 0 || offsetHeight === 0) { return } const scaleX = width / offsetWidth const scaleY = height / offsetHeight const scale = Math.min(scaleX, scaleY) this.$refs.showText.style.transform += `scale(${scale})` this.$refs.showText.style['-webkit-transform'] += `scale(${scale})` this.$refs.showText.style['-moz-transform'] += `scale(${scale})` this.$refs.showText.style['-ms-transform'] += `scale(${scale})` this.$refs.showText.style['-o-transform'] += `scale(${scale})` }) } } } </script> ``` 代码中的 `watermarkStyle` 计算属性用于计算水印的样式,`handleInput` 方法用于在计算出水印样式后,将水印按照比例缩小并居中显示。注意,为了保证水印样式的正确性,需要在表单项加载完成之后计算水印样式,因此需要在 `handleInput` 方法中使用 `$nextTick` 方法等待表单项加载完成再进行计算。

相关推荐

<ItemsControl x:Class="HDSProject.Control.CustomFont" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:HDSProject.Control" mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800" x:Name="itemCtrl" ItemsSource="{Binding Path=Title2, RelativeSource={RelativeSource Mode=Self}}" FontSize="20" Foreground="Teal" > <ItemsControl.ItemContainerStyle> <Style TargetType="ContentPresenter"> <Setter Property="VerticalAlignment" Value="Center" /> </Style> </ItemsControl.ItemContainerStyle> <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <StackPanel Orientation="Horizontal" HorizontalAlignment="Center"/> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> <ItemsControl.ItemTemplate> <DataTemplate> <StackPanel> <Border Margin="{Binding Path=CharacterSpacing, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:CustomFont}}"> <TextBlock Text="{Binding}" /> </Border> <Rectangle Height="1" Fill="{Binding Foreground, ElementName=itemCtrl}" Margin="0,0,0,5"> <Rectangle.Style> <Style TargetType="Rectangle"> <Setter Property="Visibility" Value="Collapsed" /> <Style.Triggers> <DataTrigger Binding="{Binding ShowUnderline, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:CustomFont}}" Value="True"> <Setter Property="Visibility" Value="Visible" /> </DataTrigger> </Style.Triggers> </Style> </Rectangle.Style> </Rectangle> </StackPanel> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl>给这个自定义控件添加Thumb

<ItemsControl x:Class="HDSProject.Control.CustomFont" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:HDSProject.Control" mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800" x:Name="itemCtrl" ItemsSource="{Binding Path=Title2, RelativeSource={RelativeSource Mode=Self}}" FontSize="20" Foreground="Teal" > <ItemsControl.ItemsPanel> <ItemsPanelTemplate> <StackPanel Orientation="Horizontal"/> </ItemsPanelTemplate> </ItemsControl.ItemsPanel> <ItemsControl.ItemTemplate> <DataTemplate> <Border Margin="{Binding Path=CharacterSpacing, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:CustomFont}}"> <TextBlock Text="{Binding}" /> <Border.Style> <Style TargetType="Border"> <Setter Property="BorderThickness" Value="0"/> <Style.Triggers> <DataTrigger Binding="{Binding ShowUnderline, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:CustomFont}}" Value="True"> <Setter Property="BorderThickness" Value="0 0 0 1"/> </DataTrigger> </Style.Triggers> </Style> </Border.Style> <Border.BorderBrush> <SolidColorBrush Color="{Binding Foreground.Color, ElementName=itemCtrl}" /> </Border.BorderBrush> </Border> </DataTemplate> </ItemsControl.ItemTemplate> </ItemsControl>我希望输入的Title2可以换行,且可以设置行间距该怎么做

最新推荐

recommend-type

WX小程序源码运动健身

WX小程序源码运动健身提取方式是百度网盘分享地址
recommend-type

sja1314.x86_64.tar.gz

SQLyong 各个版本,免费下载 SQLyog是业界著名的Webyog公司出品的一款简洁高效、功能强大的图形化MySQL数据库管理工具。使用SQLyog可以快速直观地让您从世界的任何角落通过网络来维护远端的MySQL数据库。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

用Spring boot和vue写一个登录注册界面

好的,这是一个比较常见的技术问题,我可以为您提供一些参考资料和思路。首先,您可以使用Spring Boot作为后端框架来处理用户认证和注册的逻辑,比如使用Spring Security实现用户登录认证。同时,您还需要设计相应的数据模型和数据库表结构来存储用户信息。在前端方面,您可以使用Vue.js作为框架来构建登录注册页面,使用Axios来发起API请求并和后端进行交互。当然,在实现过程中,还需要考虑一些具体细节,比如数据校验、安全性和用户体验等方面。希望这些信息能够帮助到您。
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。
recommend-type

"互动学习:行动中的多样性与论文攻读经历"

多样性她- 事实上SCI NCES你的时间表ECOLEDO C Tora SC和NCESPOUR l’Ingén学习互动,互动学习以行动为中心的强化学习学会互动,互动学习,以行动为中心的强化学习计算机科学博士论文于2021年9月28日在Villeneuve d'Asq公开支持马修·瑟林评审团主席法布里斯·勒菲弗尔阿维尼翁大学教授论文指导奥利维尔·皮耶昆谷歌研究教授:智囊团论文联合主任菲利普·普雷教授,大学。里尔/CRISTAL/因里亚报告员奥利维耶·西格德索邦大学报告员卢多维奇·德诺耶教授,Facebook /索邦大学审查员越南圣迈IMT Atlantic高级讲师邀请弗洛里安·斯特鲁布博士,Deepmind对于那些及时看到自己错误的人...3谢谢你首先,我要感谢我的两位博士生导师Olivier和Philippe。奥利维尔,"站在巨人的肩膀上"这句话对你来说完全有意义了。从科学上讲,你知道在这篇论文的(许多)错误中,你是我可以依
recommend-type

MATLAB柱状图在数据分析中的作用:从可视化到洞察

![MATLAB柱状图在数据分析中的作用:从可视化到洞察](https://img-blog.csdnimg.cn/img_convert/1a36558cefc0339f7836cca7680c0aef.png) # 1. MATLAB柱状图概述** 柱状图是一种广泛用于数据可视化的图表类型,它使用垂直条形来表示数据中不同类别或组别的值。在MATLAB中,柱状图通过`bar`函数创建,该函数接受数据向量或矩阵作为输入,并生成相应的高度条形。 柱状图的优点在于其简单性和易于理解性。它们可以快速有效地传达数据分布和组别之间的比较。此外,MATLAB提供了广泛的定制选项,允许用户调整条形颜色、
recommend-type

命名ACL和拓展ACL标准ACL的具体区别

命名ACL和标准ACL的主要区别在于匹配条件和作用范围。命名ACL可以基于协议、端口和其他条件进行匹配,并可以应用到接口、VLAN和其他范围。而标准ACL只能基于源地址进行匹配,并只能应用到接口。拓展ACL则可以基于源地址、目的地址、协议、端口和其他条件进行匹配,并可以应用到接口、VLAN和其他范围。