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

湖南网页设计培训网站建设宣讲家网站两学一做

湖南网页设计培训网站建设,宣讲家网站两学一做,网站建设技术可行性分析,网盘可以做网站空间吗分享-2023年资深前端进阶#xff1a;前端登顶之巅-最全面的前端知识点梳理总结#xff0c;前端之巅 *分享一个使用比较久的#x1fa9c; 技术框架公司的选型(老项目)#xff1a;vue2 iview-ui 方案的实现思路是共性的#xff0c;展现UI样式需要你们自定义进行更改#…分享-2023年资深前端进阶前端登顶之巅-最全面的前端知识点梳理总结前端之巅 *分享一个使用比较久的 技术框架公司的选型(老项目)vue2 iview-ui 方案的实现思路是共性的展现UI样式需要你们自定义进行更改因为iview是全局注入基本使用原先的类名进行二次创建公共组件修改基础js实现逻辑 需求分析实现远程滚动加载数据的穿梭框 1、创建自定义穿梭框分左侧和右侧数据 2、依赖后端接口左侧是左侧数据右侧是右侧数据 3、定义好出入参数支持回显内容及选中内容的去重处理 4、绑定对应的v-model数据响应 5、滚动加载数据区分左右区域添加自定义指令进行监听 6、滚动加载数据不丢失已选中的数据或去重已选中数据 7、支持左右侧的远程搜索功能左右互不影响检索数据放组件外部进行 1、代码信息 创建ivu-transfer.vue文件依赖iviewUI请依据自己的样式进行拷贝 1.1 自定义滚动监听指令 /** 远程滚动加载 */ import Vue from vueVue.directive(loadTransfer, {bind(el, binding) {const select_dom el.querySelectorAll(.ivu-transfer-list .ivu-transfer-list-content);select_dom.forEach((item, index) {item.addEventListener(scroll, function () {const height this.scrollHeight - this.scrollTop - 1 this.clientHeight;if (height) {binding.value(index)}})})} })1.2 自定义穿梭框代码 templatediv classivu-transferdivclassivu-transfer-list:style{width: listStyle.width,height: listStyle.height}div classivu-transfer-list-headerCheckbox:valuecheckLeftAllon-changehandleAllLeftCheck/Checkboxspan classivu-transfer-list-header-title源列表/spanspan classivu-transfer-list-header-count{{ leftDataSource.length }}/span/divdiv classivu-transfer-list-bodydiv classivu-transfer-list-contentCheckboxGroup v-modelcheckLeftAllGroupCheckbox:keyindex:labelitem.valueclassivu-transfer-list-content-itemv-for(item, index) in leftDataSource{{item.label ${item.description ? - ${item.description} : }}}/Checkbox/CheckboxGroupdivv-if!leftDataSource.lengthclassivu-transfer-list-content-not-found列表为空/div/div/div/divdiv classivu-transfer-operationButtonsizesmalltypeprimaryiconios-arrow-backclickhandleClickArrowBack:disabled!checkRightAllGroup.length/ButtonButtonsizesmalltypeprimaryiconios-arrow-forwardclickhandleClickArrowForward:disabled!checkLeftAllGroup.length/Button/divdivclassivu-transfer-list:style{width: listStyle.width,height: listStyle.height}div classivu-transfer-list-headerCheckbox:valuecheckRightAllon-changehandleAllRightCheck/Checkboxspan classivu-transfer-list-header-title目的列表/spanspan classivu-transfer-list-header-count{{ rightDataSource.length }}/span/divdiv classivu-transfer-list-bodydiv classivu-transfer-list-contentCheckboxGroup v-modelcheckRightAllGroupCheckbox:keyindex:labelitem.valueclassivu-transfer-list-content-itemv-for(item, index) in rightDataSource{{item.label ${item.description ? - ${item.description} : }}}/Checkbox/CheckboxGroupdivv-if!rightDataSource.lengthclassivu-transfer-list-content-not-found列表为空/div/div/div/div/div /templatescript const methods {// 点击左侧全选handleAllLeftCheck() {this.checkLeftAll !this.checkLeftAll;if (this.checkLeftAll) {this.checkLeftAllGroup this.leftDataSource.map(item item.value);} else {this.checkLeftAllGroup [];}},// 点击右侧全选handleAllRightCheck() {this.checkRightAll !this.checkRightAll;if (this.checkRightAll) {this.checkRightAllGroup this.rightDataSource.map(item item.value);} else {this.checkRightAllGroup [];}},// 点击向右数据handleClickArrowBack() {this.moveCheckedData(left);},// 点击向左数据handleClickArrowForward() {this.moveCheckedData(right);},moveCheckedData(direction) {const newLeftDataSource [];const newRightDataSource [];const dataSource direction left ? this.rightDataSource : this.leftDataSource;dataSource.forEach(item {const index direction left? this.checkRightAllGroup.indexOf(item.value): this.checkLeftAllGroup.indexOf(item.value);if (index ! -1) {direction left? newLeftDataSource.push(item): newRightDataSource.push(item);} else {direction left? newRightDataSource.push(item): newLeftDataSource.push(item);}});this.leftDataSource direction left? [...this.leftDataSource, ...newLeftDataSource]: newLeftDataSource;this.rightDataSource direction left? newRightDataSource: [...this.rightDataSource, ...newRightDataSource];this.checkLeftAll false;this.checkRightAll false;this.checkLeftAllGroup [];this.checkRightAllGroup [];this.$emit(on-change, this.leftDataSource, this.rightDataSource, direction);},filterDataMethods() {const rightValues new Set(this.rightDataSource.map(opt opt.value));this.leftDataSource this.leftDataSource.filter(item !rightValues.has(item.value));this.$nextTick(() {const leftValues new Set(this.leftDataSource.map(opt opt.value));this.rightDataSource this.rightDataSource.filter(opt !leftValues.has(opt.value));});} };export default {props: {listStyle: {type: Object,default: () ({width: 250px,height: 380px})},leftData: {type: Array,require: true,default: () []},rightData: {type: Array,require: true,default: () []}},data() {return {checkLeftAll: false,checkRightAll: false,checkRightAllGroup: [],checkLeftAllGroup: [],leftDataSource: [],rightDataSource: []};},watch: {leftData(newVal) {this.leftDataSource newVal;this.filterDataMethods();},rightData(newVal) {this.rightDataSource newVal || [];this.filterDataMethods();}},mounted() {this.$nextTick(() {this.$emit(on-change, this.leftDataSource, this.rightDataSource);})},methods }; /scriptstyle langless scoped .ivu-transfer-list-content-item {width: 100%;margin-left: -0.3em; }.ivu-transfer-list-content-not-found {display: block; } /style2、内容使用api介绍 1、树形结构入参dataSource[{label: 测试,value: 1, description: 拼接内容 }] 2、标签引用IvuTransfer :leftDatadataSource :rightDatatargetKeys on-changehandleChange v-loadTransferhandleLoadMore / 3、相关api说明文档在文章底部 templatediv classcustomSearchInputsearchclearablev-modelformLeftInputplaceholder请输入搜索内容on-clearhandleOnLeftInputon-searchhandleOnLeftInput/div stylewidth: 50px/divInputsearchclearablev-modelformRightInputplaceholder请输入搜索内容on-clearhandleOnRightInputon-searchhandleOnRightInput//divIvuTransfer:leftDatadataSource:rightDatatargetKeyson-changehandleChangev-loadTransferhandleLoadMore//template // 远程滚动加载handleLoadMore(index) {if (index 0 this.dataLeftHasMore !this.isShowLoading) {this.curLeftPage;this.getLeftMockData();}if (index 1 this.dataRightHasMore !this.rightLoading) {this.curRightPage;this.getRightTargetKeys();}},// 触发选中移动handleChange(newLeftTargetData, newRightTargetKeys, direction) {this.dataSource [...newLeftTargetData];this.targetKeys [...newRightTargetKeys];if (direction right) {return this.remoteCheckPage();}if (direction left) {return this.remoteRightCheckPage();}},getLeftData() {}, getRightData() {}参数说明类型默认值必填项leftData[{}]-label,value结构Array[][]是rightData[{}]-label,value结构Array[][]是on-change数据变更触发newLeftnewRight, direction无否
http://www.zqtcl.cn/news/735320/

相关文章:

  • 网站开发用原生wordpress读者墙
  • 食品网站网页设计成都建网页
  • 网站建设 珠海专业团队表情包张伟
  • 建设铝合金窗网站.net制作网站开发教程
  • 网站后台服务器内部错误wordpress 多级菜单
  • 怎样更新网站内容怎么查看网站是哪家公司做的
  • 建设网站网站建站建立一个网站平台需要多少钱
  • 学校网站模板 html网站建设技术路线
  • 图片网站如何做百度排名深入挖掘wordpress
  • 网站建设的前景网站建设分为哪三部分
  • 房地产公司网站下载校园二手信息网站建设
  • 有关网站空间不正确的说法是设计和建设企业网站心得和体会
  • 个人网站前置审批项怎么做投票 网站
  • 网站建设零金手指花总js源码下载从哪个网站能下载
  • 网站开发属于无形资产两人合伙做网站但不准备开公司
  • 五大类型网站网站建设投标文件
  • 崇明区建设镇网站装修公司网站制作
  • 哪些网站可以做房产推广呼家楼街道网站建设
  • 微网站怎么开通萝岗手机网站建设
  • 牙科医院网站开发内江市住房和城乡建设局网站电话号码
  • 网站建设的想法和意见芜湖的网站建设公司
  • 效果好的网站建设wordpress主题基础
  • html5建设摄影网站意义crm免费客户管理系统
  • win2008 建立网站网站策划书的撰写流程
  • 德泰诺网站建设百度网盘资源搜索引擎入口
  • 谁能给个网站谢谢wordpress 主题 后门
  • 学校网站建设目的seo教学免费课程霸屏
  • 会计公司网站模板微信网站如何制作软件
  • 烟台做网站多少钱.net网站做增删改
  • 什么网站专门做软件的深圳电商网站制作