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

普通企业网站营销淄博乐达网站建设

普通企业网站营销,淄博乐达网站建设,vs做的网站排版错位,岳阳网站建设的公司最近使用Vue3ElementPlus开发项目#xff0c;从整体上构思组件的封装。能写成组件的内容都进行封装#xff0c;方便多个地方使用。 受AntDesign的启发#xff0c;在项目中有搜索表单table分页的地方可以封装为一个组件#xff0c;只需要对组件传入table的列#xff0c;组成…最近使用Vue3ElementPlus开发项目从整体上构思组件的封装。能写成组件的内容都进行封装方便多个地方使用。 受AntDesign的启发在项目中有搜索表单table分页的地方可以封装为一个组件只需要对组件传入table的列组成一个配置项通过配置可以显示搜索表单、table项的内容展示等等。 那么在使用ElemenPlus开发时是没有这样的组件可以使用的。又一想项目中好多个地方都有搜索表单Table的形式那不如直接封装个搜索表单这样就省去了一遍一遍的表单的重复编写。封装好的组件只需要传入进入配置内容即可实现搜索的效果。 实现思路 搜索表单无非就是文本框、选择框、时间选择、时间范围选择、数字框通过配置项里传入type即可判断展示哪种类型的form-item。数值绑定v-model与传入项的匹配在配置项中传入prop然后在子组件中创建form响应式对象。数据初始值、选项列表等等都通过配置项传入。搜索表单的搜索与重置按钮提交emit事件即可。 首先创建SearchForm.vue组件 该组件实现了输入框、选择框、单日期、双日期一般搜索表单也就这些如果还有其他的类型读者可以自己添加。 script setupimport { reactive, onMounted } from vueimport DateRangePicker from /components/DateRangePicker/index.vueconst props defineProps({itemList: Array})const emit defineEmits([search, reset])let form reactive({})onMounted(() {props.itemList.map(item {if(item.type dateRange) {form[item.start] form[item.end] }else {form[item.prop] item.initValue ? item.initValue : }})}) /scripttemplateel-form :modelform inline label-width120pxtemplate v-for(item, index) in props.itemList :keyindexel-form-item:labelitem.label:propitem.propel-select v-ifitem.type select v-modelform[item.prop] placeholder请选择 clearableel-option v-fori in item.list :keyi.value :labeli.label :valuei.value//el-selectel-date-picker v-ifitem.type date :typeitem.dateType v-modelform[item.prop] placeholder请选择 clearable/date-range-pickerv-ifitem.type dateRangev-model:startform[item.start]v-model:endform[item.end]/el-input-number v-ifitem.type number v-modelform[item.prop] placeholder请输入 clearable/el-input v-ifitem.type input v-modelform[item.prop] placeholder请输入 clearable//el-form-item/templateel-form-itemel-button clickemit(search, form) typeprimary iconSearch查询/el-buttonel-button clickemit(reset) typeprimary plain iconRefresh重置/el-button/el-form-item/el-form /template其次DateRangePicker组件 这个组件是用来实现选择范围日期的因为范围日期返回的是一个数组如果不进行封装处理一下的话在项目中每写一个该组件都会要写change事件来处理数据值还挺麻烦。封装之后只需要将对应的model传给该组件即可实现双向绑定。 script setup import { ref } from vue; const emit defineEmits([update:start, update:end]) const props defineProps({start: {type: String,required: true},end: {type: String,required: true},type: {default: daterange // daterange、datetimerange、monthrange},format: {default: YYYY-MM-DD},valueFormat: {default: YYYY-MM-DD HH:mm:ss} }) let dateRange ref([])const dateChange (e) {emit(update:start, e ? e[0] : )emit(update:end, e ? e[1] : ) } /scripttemplateel-date-picker v-modeldateRange:typeprops.type:formatprops.format:value-formatprops.valueFormatstart-placeholder开始日期end-placeholder结束日期changedateChange/ /template最后一步使用SearchForm组件 经过前两步的封装之后在使用的SearchForm组件时简直是爽的不要不要的。看示例 script setupimport { reactive, ref } from vueimport SearchForm from /components/SearchForm/index.vueimport ProListItem from /views/project/components/ProListItem.vueimport { projectList } from /api/project;const searchFormList [{label: 项目名称, prop: name, type: input},{label: 项目编码, prop: code, type: input},{label: 项目描述, prop: desc, type: select, list: [{label: 未开始, value: 1}, {label: 已开始, value: 2}]},{label: 创建日期, type: dateRange, start: startTime, end: endTime}]const dataSource ref([])const queryForm ref()const pagination reactive({pageNum: 1,pageSize: 10,total: 0})const search (form) {console.log(form);queryForm.value formqueryProject()}const queryProject () {projectList({...queryForm.value,pageNum: pagination.pageNum,pageSize: pagination.pageSize}).then((result) {dataSource.value result.data.listdata.total result.data.total}).catch((err) {});} /script templatesearch-form :item-listsearchFormListsearchsearch/pro-list-item :datadataSource/ /template 啥也不说了直接看示例用起来多方便只要项目中有要写搜索表单的地方直接引入SearchForm组件配置一下itemList即可实现完整功能学会了的小伙伴赶紧去用起来吧。
http://www.dnsts.com.cn/news/275321.html

相关文章:

  • 外链是什么宁波seo推广服务
  • 网站建设工程设计图网站 服务 套餐
  • 儿童网站html模板学视频剪辑去哪里学比较好
  • 桂林市工程建设项目招标网站张家港外贸型网站制作
  • 公司电子版简介模板南通网站seo服务
  • 建设一个网站需要什么设备郑州短视频代运营
  • 筑建网站施工企业三大体系认证
  • 昌平区事业单位公共知识培训网站网站建设一般多少钱app
  • 个人网站有哪些类型云服务器建立多个网站吗
  • 做一家开发网站的公司简介洛阳网站建设汉狮报价
  • 单纯做seo能否提升网站流量电子商务网站建设需要学什么
  • 做网站引流的最佳方法美橙互联网站建设好不好
  • 展览网站模板大全wordpress置顶文章没用
  • 网站基础建设和管理军事最新消息
  • 中廉建设网站一个公司可以有两个网站吗
  • 中英文网站模板下载建筑英才网招聘信息
  • 中国建设银行招聘网站通知wordpress怎么让手机端好看
  • 那些网站可以接私活做优惠建网站
  • 自建站电商外贸做外贸用什么邮箱比较好
  • amp 网站开发软件开发用什么工具
  • 网站优化费用报价明细乐天seo培训中心
  • 月编程做网站最新中国企业500强名单
  • iis上做的网站外网怎么访问菏泽市城乡和建设局网站
  • 个人在线网站推广wordpress 自定义分类
  • html5企业网站 源码wordpress 分类 标题
  • 免费网站分析seo报告是坑吗邢台快照优化
  • 公主岭网站建设ui设计主要是做什么的
  • 在wordpress加入文件管理器石家庄seo扣费
  • 网站上的高清图怎么做个人网站备案内容
  • 做网站公司哪里好广州化妆品网站建设公司排名