欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于uniapp的高級(jí)表單組件mosowe-form

 更新時(shí)間:2023年04月23日 10:32:26   作者:Mosowe  
這篇文章主要介紹了關(guān)于uniapp的高級(jí)表單組件mosowe-form,由于一些表單標(biāo)簽改來改去比較繁瑣,重復(fù)性很多,且樣式布局啥的幾乎萬變不離其中,為了偷懶,開發(fā)了mosowe-form及mosowe-table兩款高級(jí)組件,需要的朋友可以參考下

演示地址

下載地址

引言

常年做web系統(tǒng)端,對(duì)web系統(tǒng)端的功能布局等有很深刻的了解,經(jīng)常cv一些表單標(biāo)簽改來改去比較繁瑣,重復(fù)性很多,且樣式布局啥的幾乎萬變不離其中,為了偷懶,開發(fā)了mosowe-form及mosowe-table兩款高級(jí)組件,其思路借鑒了antdesign的高級(jí)組件。

這里面依賴的組件基本是uniapp官方的和自己二次封裝的:

依賴組件

uni-form
uni-data-picker
uni-datetime-picker
uni-file-picker
uni-easyinput
uni-datetime-picker
uni-data-select
uni-data-picker
uni-data-checkbox
uni-combox
uni-popup
uni-row
uni-col
mosowe-editor

在線演示

props

屬性類型默認(rèn)說明
options{formConfig, list:optionItem[]}-表單配置項(xiàng)
hideButtonbooleanfalse隱藏自帶按鈕
readOnlybooleanfalse只讀
resetInterceptbooleanfalse重置表單前攔截
filterEmptybooleanfalse提交時(shí)過濾空值
groupColobject-表單分組布局,這里是統(tǒng)一配置,參考uni-col
itemColobject表單項(xiàng)布局,這里是統(tǒng)一配置,參考uni-col
btnAlignstringleft底部提交按鈕位置 可選:left、right、center
submitTextstring提交提交按鈕文案
resetTextstring重置重置按鈕文案

formConfig

uni-form配置數(shù)據(jù)

optionItem

屬性類型默認(rèn)說明
subTitlestring-表單分組標(biāo)題,非必選
colobject-表單分組布局,參考uni-col
itemsobject-下一級(jí)為formItem的name(標(biāo)記itemName),配置為nameConfig

nameConfig

屬性類型默認(rèn)說明
typestring-表單類型,typeString
defaultValueany-默認(rèn)值
colobject-該項(xiàng)布局,參考uni-col
hidebooleanfalse隱藏該表單,不渲染在html中
visiblebooleantrue顯示該表單,display顯隱
typePropsobject即表單項(xiàng)類型type的props配置
formItemPropsobjectuni-forms-item的props配置,配置項(xiàng)內(nèi)的name不會(huì)成為uni-forms-item的name,會(huì)被itemName覆蓋
unionNamestring關(guān)聯(lián)表單類型,editer及upload無效,多個(gè)unionName用&分割,注意前后沒有空格,即當(dāng)本itemName值改變時(shí),相關(guān)表單的值清空或者賦值,賦值方式:[關(guān)聯(lián)itemName]=defaultValue,defaultValue多個(gè)的話使用[]包裹(目前組件中沒有多選功能),若defaultValue值為number類型,則在值前添加一個(gè)~,例:sex=~1
transformfunction提交時(shí)轉(zhuǎn)化,一般來說都是吐給后端的存在數(shù)據(jù)庫里的數(shù)據(jù),參數(shù)為當(dāng)前值

typeString

說明
input表單輸入框,文本域,注意:uni-easyinput文檔中少寫了一個(gè)prop:primaryColor 設(shè)置主題色(默認(rèn)#2979ff)
select下拉選擇,注意:uni-data-select文檔中少寫了一個(gè)prop:disabled 禁用
combox組合框
editor富文本編輯器,內(nèi)部文件上傳功能依賴云存儲(chǔ),需安裝wangeditor
radio單選+多選
switch開關(guān)選擇器
date日期選擇器
slider滑動(dòng)選擇器
pickerpicker選擇器
cascade級(jí)聯(lián)選擇器,僅限本地?cái)?shù)據(jù)
upload文件上傳,會(huì)自動(dòng)上傳至當(dāng)前云服務(wù)空間,若未使用unicloud云服務(wù)空間,則不使用該組件,非自動(dòng)上傳,點(diǎn)擊提交時(shí)上傳

emits

emits說明
submit表單提交
reset表單重置
change表單項(xiàng)改變,返回表單項(xiàng)name及值

slots

slot說明
[itemName]DefaultformItem的default插槽
[itemName]DefaultBeforeformItem的default插槽內(nèi)前置插槽
[itemName]DefaultAfterformItem的default插槽內(nèi)后置插槽
[itemName]LabelformItem的label插槽
[itemName]LabelBeforeformItem的label插槽內(nèi)前置插槽
[itemName]LabelAfterformItem的label插槽內(nèi)后置插槽
button提交重置按鈕區(qū)插槽,作用域參數(shù)為:submit,reset
lineAfter最后一個(gè)表單項(xiàng)后面的插槽,將會(huì)與表單項(xiàng)內(nèi)聯(lián)展示,不獨(dú)立占一行,作用域參數(shù)為:submit,reset

示例代碼

<template>
  <view class="index-page">
    <mosowe-form
      :options="formOptions"
      ref="mosoweFormRef"
      :groupCol="{
        span: 12
      }"
      @submit="submit"
      @reset="reset"
      @change="change"
    ></mosowe-form>
  </view>
</template>

<script setup lang="ts">
import { ref } from 'vue';


const mosoweFormRef = ref<any>(null)

const submit = (data:any) => {
  console.log('submit',data)
}

const reset = (data:any) => {
  console.log('reset',data)
}
const formOptions = ref({
  formConfig:{
    'label-width': '100px',
    'label-align': 'right'
  },
  list:[
    {
      subTitle: '表單分組一',
      col:{
        span: 24
      },
      items:{
        name:{
          type:'input',
          defaultValue: '測(cè)試',
          col:{
            span: 12
          },
          unionName: 'address=哈哈哈&sex=~1',
          typeProps:{
            placeholder:'請(qǐng)輸入'
          },
          formItemProps:{
            label:'測(cè)試',
            required:true,
            rules:[
              {
                required:true,
                errorMessage: '請(qǐng)?zhí)顚懶彰?
              }
            ]
          }
        },
        address:{
          type:'input',
          col:{
            span: 12
          },
          defaultValue: null,
          typeProps:{
            primaryColor:'#999999',
            autoHeight:true,
            type:'textarea',
            placeholder:"寫這里",
            placeholderStyle:"color:#ff0000",
          },
          formItemProps:{
            label:'文本域',
          }
        },
        editor:{
          type:'editor',
          defaultValue: '<p>11112222<strong>22</strong></p>',
          typeProps:{
          },
          formItemProps:{
            label:'編輯器',
          }
        }
      }
    },
    {
      subTitle: '表單分組二',
      items:{
        sex:{
          type:'select',
          defaultValue: '',
          unionName: 'address-哈哈哈,你是誰',
          typeProps:{
            placeholder:'請(qǐng)選擇',
            localdata:[
              {
                value:0,
                text:'男'
              },
              {
                value:1,
                text:'女'
              },
              {
                value:2,
                text:'未知',
              },
            ]
          },
          formItemProps:{
            label:'性別',
          }
        },
        city:{
          type: 'combox',
          defaultValue: '',
          unionName: 'address=combox',
          typeProps:{
            candidates:[
              '北京',
              '重慶',
              '上海',
              '南京',
              '天津'
            ]
          },
          formItemProps:{
            label:'城市',
          }
        },
        chooseR:{
          type: 'radio',
          defaultValue: '',
          typeProps:{
            localdata:[
              {"value": 0,"text": "籃球"  },
              {"value": 1,"text": "足球"},
              {"value": 2,"text": "游泳"},
            ]
          },
          formItemProps:{
            label:'單選',
          }
        },
        switchData:{
          type:'switch',
          defaultValue: true,
          formItemProps:{
            label:'開關(guān)',
          }
        },
        sliderData:{
          type:'slider',
          defaultValue: 20,
          typeProps:{
            'show-value':true
          },
          formItemProps:{
            label:'滑塊',
          }
        },
        date:{
          type:'date',
          defaultValue: '',
          typeProps:{},
          formItemProps:{
            label:'日期',
          }
        },
        daterange:{
          type:'date',
          defaultValue: '',
          typeProps:{
            type:'daterange'
          },
          formItemProps:{
            label:'日期范圍',
          }
        },
        datetime:{
          type:'date',
          defaultValue: '',
          typeProps:{
            type:'datetime'
          },
          formItemProps:{
            label:'日期時(shí)間',
          }
        },
        datetimerange:{
          type:'date',
          defaultValue: '',
          typeProps:{
            type:'datetimerange'
          },
          formItemProps:{
            label:'日期時(shí)間范圍',
          }
        },
        time:{
          type:'picker',
          defaultValue: '12:00',
          typeProps:{
            mode: 'time',
            start:'00:00',
            end:'13:59'
          },
          formItemProps:{
            label:'時(shí)間',
          }
        },
        pickerdate:{
          type:'picker',
          defaultValue: '2023-03',
          typeProps:{
            mode: 'date',
            fields:'month'
          },
          formItemProps:{
            label:'月份',
          }
        },
        cascade:{
          type:'cascade',
          defaultValue: [],
          typeProps:{
            localdata:[{
              text: "一年級(jí)",
              value: "1-0",
              children: [{
                text: "1.1班",
                value: "1-1"
              },
              {
                text: "1.2班",
                value: "1-2"
              }]
            },
            {
              text: "二年級(jí)",
              value: "2-0",
              children: [{
                text: "2.1班",
                value: "2-1"
              },
              {
                text: "2.2班",
                value: "2-2"
              }]
            },
            {
              text: "三年級(jí)",
              value: "3-0",
              disable: true
            }]
          },
          formItemProps:{
            label:'級(jí)聯(lián)',
          }
        },
        file:{
          type:"upload",
          defaultValue:{
            extname: "png",
            name: "1111111.png",
            url: "https:..." // 改成實(shí)際地址
          },
          typeProps:{
            'return-type':'object'
          },
          formItemProps:{
            label: '文件上傳'
          }
        },
        fileArr:{
          type:"upload",
          defaultValue:[{
            extname: "png",
            name: "1111111.png",
            url: "https:..." // 改成實(shí)際地址
          }],
          typeProps:{},
          formItemProps:{
            label: '文件上傳'
          }
        },
        fileArrNo:{
          type:"upload",
          defaultValue:'',
          typeProps:{},
          formItemProps:{
            label: '文件上傳'
          }
        },
      }
    }
  ]
})

const change = (name:string,value:any) =>{
  console.log('change',name,value)
  if (name === 'chooseR') {
    formOptions.value.list[1].items.city.typeProps.candidates = [
              '北京',
              '重慶',
              value
            ]
  }
}
</script>

<style lang="scss" scoped></style>

到此這篇關(guān)于關(guān)于uniapp的高級(jí)表單組件mosowe-form的文章就介紹到這了,更多相關(guān)uniapp的mosowe-form表單組件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue?指令與過濾器案例代碼

    vue?指令與過濾器案例代碼

    這篇文章主要介紹了vue?指令與過濾器,本文通過案例代碼給大家詳細(xì)講解,給大家講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-11-11
  • vant中的picker選擇器自定義選項(xiàng)內(nèi)容

    vant中的picker選擇器自定義選項(xiàng)內(nèi)容

    這篇文章主要介紹了vant中的picker選擇器自定義選項(xiàng)內(nèi)容,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • vue原生方法自定義右鍵菜單

    vue原生方法自定義右鍵菜單

    這篇文章主要為大家詳細(xì)介紹了vue原生方法自定義右鍵菜單,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • vue的全局變量和全局?jǐn)r截請(qǐng)求器的示例代碼

    vue的全局變量和全局?jǐn)r截請(qǐng)求器的示例代碼

    這篇文章主要介紹了vue的全局變量和全局?jǐn)r截請(qǐng)求器的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • vue項(xiàng)目開發(fā)中setTimeout等定時(shí)器的管理問題

    vue項(xiàng)目開發(fā)中setTimeout等定時(shí)器的管理問題

    這篇文章主要介紹了vue項(xiàng)目開發(fā)中setTimeout等定時(shí)器的管理問題,需要的朋友可以參考下
    2018-09-09
  • vue單頁緩存方案分析及實(shí)現(xiàn)

    vue單頁緩存方案分析及實(shí)現(xiàn)

    這篇文章主要介紹了vue單頁緩存方案分析及實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • 如何使用el-table實(shí)現(xiàn)純前端導(dǎo)出(適用于el-table任意表格)

    如何使用el-table實(shí)現(xiàn)純前端導(dǎo)出(適用于el-table任意表格)

    我們?nèi)粘W鲰?xiàng)目,特別是后臺(tái)管理系統(tǒng),常常需要導(dǎo)出excel文件,這篇文章主要給大家介紹了關(guān)于如何使用el-table實(shí)現(xiàn)純前端導(dǎo)出的相關(guān)資料,本文適用于el-table任意表格,需要的朋友可以參考下
    2024-03-03
  • Vue3中進(jìn)行二維碼的生成與解碼實(shí)現(xiàn)詳解

    Vue3中進(jìn)行二維碼的生成與解碼實(shí)現(xiàn)詳解

    這篇文章主要為大家介紹了Vue3中進(jìn)行二維碼的生成與解碼實(shí)現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-03-03
  • ElementUI?復(fù)雜頂部和左側(cè)導(dǎo)航欄實(shí)現(xiàn)示例

    ElementUI?復(fù)雜頂部和左側(cè)導(dǎo)航欄實(shí)現(xiàn)示例

    本文主要介紹了ElementUI?復(fù)雜頂部和左側(cè)導(dǎo)航欄實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-04-04
  • 使用Vue開發(fā)自己的Chrome擴(kuò)展程序過程詳解

    使用Vue開發(fā)自己的Chrome擴(kuò)展程序過程詳解

    這篇文章主要介紹了使用Vue開發(fā)自己的Chrome擴(kuò)展程序過程詳解,瀏覽器擴(kuò)展程序是可以修改和增強(qiáng) Web 瀏覽器功能的小程序。它們可用于各種任務(wù),例如阻止廣告,管理密碼,組織標(biāo)簽,改變網(wǎng)頁的外觀和行為等等。,需要的朋友可以參考下
    2019-06-06

最新評(píng)論