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

网站建设的开发的主要方法网站开发后端怎么开发

网站建设的开发的主要方法,网站开发后端怎么开发,辽宁省电力建设网站,深圳网站建设明细报价表文章目录 前言一、新增table组件二、使用步骤 前言 在 基于element-plus定义表单配置化 基础上#xff0c;封装个Element-plus的table表格 由于表格不同于form组件#xff0c;需自定义校验器#xff0c;以下组件配置了单个校验#xff0c;及提交统一校验方法#xff0c;且… 文章目录 前言一、新增table组件二、使用步骤 前言 在 基于element-plus定义表单配置化 基础上封装个Element-plus的table表格 由于表格不同于form组件需自定义校验器以下组件配置了单个校验及提交统一校验方法且自定义必填校验*显示和校验错误部分边框标红等实际可根据业务及不同场景优化改造相关定义 后期抽空新增表格行及删除行等功能, 一、新增table组件 table-configuration/index.vue templateel-tableborderreftableRef:show-headershowHeader:datatableDatastylewidth: 100%tooltip-effect:max-heighttablemaxHeightel-table-column typeselection :fixedselectionFixed width55 v-ifhasSelection/template v-for(item, index) in tableProperty :keyitemel-table-column:alignalign:sortableitem.sortable:min-widthitem.width:show-overflow-tooltipshowOverflowTooltip:labelitem.labeltemplate #headerdiv :class[getTableHeader(item.property.rules)] v-htmlitem.label/div/templatetemplate #defaultscopecomponent :class[scope.$index 0 getIsErrorClass(scope.$index, index)]v-model:contentscope.row[item.field]v-modelscope.row[item.field]:property{...item.property, name: item.field}:isitem.typefieldBlur(val) blur(val, item, scope.$index, index)fieldChange(val) change(val, item, scope.$index, index) //template/el-table-column/template/el-table /template script langts src./index.ts/ style langless .is-error .el-select-v2__wrapper,.is-error .el-select-v2__wrapper:focus,.is-error .el-textarea__inner,.is-error .el-textarea__inner:focus {box-shadow: 0 0 0 1px var(--el-color-danger) inset }.is-error .el-input__wrapper {box-shadow: 0 0 0 1px var(--el-color-danger) inset } .table {_header:before {content: *;color: var(--el-color-danger);margin-right: 4px;} } /styletable-configuration/index.ts import { tableHooks } from /composables/table-hooks; import { computed, defineComponent, reactive, ref } from vue; import Input from /components/form-configuration/input.vue; import Select from /components/form-configuration/select.vue; import Vhtml from /components/form-configuration/v-html.vue; import Upload from /components/form-configuration/upload.vue; import Switch from /components/form-configuration/switch.vue; import Radio from /components/form-configuration/radio.vue; import Checkbox from /components/form-configuration/checkbox.vue; import Date from /components/form-configuration/date.vue; import Cascader from /components/form-configuration/cascader.vue; import { isArray } from lodash-es; import { ElMessage } from element-plus; import type { rulesType } from /interface;const ruleType {required: false,message: ,trigger: ,validator: (val: any) {return val} } const fieldProperty {label: demo,type: Input,field: demo,width: 120px,err: ,property: {maxlength: 200,rules: [ruleType]} } export default defineComponent({components: {Input,Select,Vhtml,Upload,Switch,Radio,Checkbox,Date,Cascader,},props: {align: {type: String,default: left, // left / center / right},showHeader: {type: Boolean,default: true,},selectionFixed: {type: Boolean,default: false,},showOverflowTooltip: {type: Boolean,default: true,},hasSelection: {type: Boolean,default: false,},property: {type: Object,default() {return [ fieldProperty ];},},data: {type: Object,default() {return {};},},},setup(props, { emit }) {const { tablemaxHeight } tableHooks();const tableRef ref()const tableData computed({get() {return props.data;},set(val) {emit(update:data, val);},});const noType noTypeconst tableProperty computed(() props.property);const blur (val: any, item: typeof fieldProperty, rowIndex: number, colIndex: number) {let arr: Arrayboolean []if (item.property.rules isArray(item.property.rules)) {arr validateForField(item, val, blur, rowIndex, colIndex)}if (!arr.length) {emit(blur, {val, field: item.field, rowIndex, colIndex}) // 触发clearIsError(rowIndex, colIndex)}}const change (val: any, item: typeof fieldProperty, rowIndex: number, colIndex: number) {let arr: Arrayboolean []if (item.property.rules isArray(item.property.rules)) {arr validateForField(item, val, change, rowIndex, colIndex)}if (!arr.length) {emit(change, {val, field: item.field, rowIndex, colIndex}) // 触发clearIsError(rowIndex, colIndex)}}const isError ref{rowIndex: number, colIndex: number}[]([])const validateForField (item: typeof fieldProperty, val: any, type: string, rowIndex: number, colIndex: number) {let arr: Arrayboolean []item.property.rules.forEach((valid) {const types [valid.trigger, noType]if (valid.required !val) {ElMessage.error(valid.message)arr.push(false)isError.value.push({rowIndex, colIndex,})return}if (!valid.required !val || !types.includes(type)) returnif (!valid.validator) returnconst bool valid.validator(val)if (!bool) {ElMessage.error(valid.message)arr.push(bool)isError.value.push({rowIndex, colIndex,})}})return arr}const clearIsError (rowIndex: number, colIndex: number) {if (rowIndex -1) {isError.value []} else {isError.value isError.value.filter((item) {return !((item.rowIndex rowIndex) (item.colIndex colIndex))})}}const validate () {let arr: Arrayboolean []clearIsError(-1, -1)tableData.value.forEach((data: object, rowIndex: number) {tableProperty.value.forEach((tabPro: any, colIndex: number) {if (!tabPro.property.rules) returnconst field tabPro.field as keyof typeof dataarr.push(...validateForField(tabPro, data[field], noType, rowIndex, colIndex))});});return !arr.length}const getIsErrorClass computed(() {return (rowIndex: number, colIndex: number) {let bool falseisError.value.forEach((error) {(error.rowIndex rowIndex) (error.colIndex colIndex) (bool true)})return bool ? is-error : }})const getTableHeader (rules: rulesType[]) {if (!rules) return return !!rules.filter((item) item.required).length ? table_header : }return {tableRef,tablemaxHeight,tableProperty,tableData,isError,getIsErrorClass,getTableHeader,change,blur,validate};}, }); 二、使用步骤 TableConfigurationrefsupplierListRefv-model:datasupplierListEntity.product:hasSelectiontrue:selectionFixedtrue:propertytablePropertyaligncenter/import { defineComponent, reactive, ref } from vue import TableConfiguration from /components/table-configuration/index.vue export default defineComponent({components: {TableConfiguration},setup() {const tableRef ref()const tableProperty reactive([{ label: Input01, type: Input, field: Input01, property: {maxlength: 500,rules: [{ required: false, message: error, trigger: blur, validator: (value: string) {return /^\?[1-9][0-9]*$/.test(value)}}]}},{ label: Input02, type: Input, field: Input02, width: 200px, property: {maxlength: 500,rules: [{ required: true, message: error, trigger: blur }]}}])const tableEntity reactive({table: [{Input01: ,Input02: ,}]})const validate () {tableRef.value.validate()}return {tableRef,tableProperty,tableEntity,validate}}, })
http://www.zqtcl.cn/news/96994/

相关文章:

  • 网站关键词优化推广旅游类网站开发开题报告范文
  • 官方网站营销拟在建项目信息网官网
  • 沈阳做微信和网站的公司湛江网站建设公司哪家好
  • 网站 开发逻辑电话销售电销系统
  • 有哪些做兼职的设计网站有哪些工作可以用asp做哪些网站
  • 装修网站推广方案东莞网站建设0086
  • 知名营销网站开发高端网站建设如何收费
  • 佛山网站建设邓先生沈阳做网站找黑酷科技
  • 网站建设 排名下拉请教个人主页网站怎么做啊
  • 揭阳网站制作教程安阳seo公司
  • 网站运营管理教材wordpress 评论框插件
  • 免费做手机网站有哪些网页怎么制作链接
  • 浙江省建设工程质量协会网站wordpress只在首页设置关键词
  • 网站开发选题申请理由东莞网站建议
  • 阿里巴巴国际站运营培训商务网站的建设步骤
  • 有哪几个平台做网站专业的网站建设流程
  • 网站的回到顶部怎么做字体艺术设计在线生成
  • 物流营销型网站案例分析渭南专业做网站
  • 织梦音乐网站接推广任务的平台
  • 网站建设设计团队平面设计主要做什么ui
  • 站长工具seo综合查询广告和京东一样的网站
  • 柳州做网站的企业做黑彩网站
  • 商城网站开发那家好网站建设知识平台
  • 莱州网站定制flash网站cms
  • 经营范围里的网站建设直播系统程序
  • 58同城类似的网站开发wordpress 地方生活
  • wordpress 七牛ossseo系统
  • 郑州做网站 熊掌号太原今天最新通知
  • 文章网站如何与压力做足球比赛直播间在线观看
  • 越秀网站建设优化呼和浩特住房和城乡建设部网站