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

uniapp二次封装组件(py组件)

1.前言

根据自己的使用情况,为了提高开发效率,对已有组件进行了二次封装,文章中二次封装的组件简称为py组件。有些element-ui中表单组件(Form)想在uniapp中进行使用,py组件封装了一些实现起来比较复杂的组件。同时,py组件封装了一些其他组件,比如:流程图预览组件、图片上传组件。如果没有特别标明,表示组件是支持H5、APP和微信小程序三端的。其中,APP仅测试了安卓版,并且在雷电模拟器环境下进行的测试。由于我主页uniapp相关文章中可能包含py组件,本文只介绍py组件的使用方式,不提供资源下载方式,如果有需要可以通过我的主页找到相关资源。特别注意,下述组件如果包含参数value,请用v-model绑定。

2.组件属性

1.py-bpmn-tree-node

此组件只用于微信小程序流程图节点的显示,依赖于uni-icons、u--text、u-row和u-col,一般情况下,只用于py-bpmn-viewer组件。

参数

说明

类型

默认值

可选值

treeData

节点数据

Object

bortherNum

兄弟数量

Number

1

hasStart

流程是否启动

Boolean

false

true

2.py-bpmn-viewer

1.此组件用于bpmn流程图显示,依赖于插件bpmn-js(版本11.1.0)和x2js(在utils文件夹下,只用于微信小程序的xml转换Object),并且依赖于py-bpmn-tree-node组件。在H5和APP直接使用bpmn-js插件,微信小程序中会拆分成树进行展示。

参数

说明

类型

默认值

可选值

flowData

流程信息,必填项

Object

hasStart

流程是否启动

Boolean

false

true

flowData必须包含xmlData和nodeData属性,xmlData为bpmn流程图xml文件,nodeData为节点信息,类型为Object。nodeData必须包含key和completed属性,key为节点id,类型为String;completed为节点是否完成,类型为Boolean。

2.未启动流程时,流程图在三端的展示效果。

2.1在H5端效果

2.2在APP端效果

2.3在微信小程序端效果

3.环形流程图效果

3.1bmpn-js展示标果不影响

3.2在微信小程序展示原理是将流程图拆分为树,但是对于上述这种环形流程图,在树形结构中无法显示,最后通过中转节点完成。对于非环形流程图,能够正常使用,微信小程序不支持操作dom,目前只想出这一种解决方式。

3.py-button

此组件实际上就是u-button,我没有进行任何修改。但是,为什么还要写这个组件,因为流程审批时候,连续使用4个按钮,在APP和微信小程序中没有问题,但是H5时,会莫名奇妙地自动调用某个button的click事件,所以写这个组件。组件参数就不介绍了,和u-button一致,可以具体查看u-button使用方式。

4.py-cascader

1.此组件对应el-cascsder级联选择器,依赖于u-tag和u-picker,支持初值和表单重置,打开时,如果是空值,默认显示每一列第一个数据。

参数

说明

类型

默认值

可选值

value

绑定值,绑定使用v-model

options

级联数组,与el-cascsder一致

Array

props

级联属性名称,与el-cascsder一致

u-picker组件属性(属性功能与u-picker一致,但是只能配置下面显示的属性)

showToolbar

title

itemHeight

cancelText

confirmText

cancelColor

confirmColor

visibleItemCount

对于此组件,只需要配置前三个参数即可。如果想改变样式,再设置u-picker相关属性。

2.组件在三端的展示效果。

2.1在H5端效果

2.2在APP端效果

2.3在微信小程序效果

5.py-color-picker

1.此组件依赖于t-color-picker和u-tag组件,修改了t-color-picker部分内容,支持初值和重置,最终获取值为hex格式,如果有其他格式需求,请自己转换。

参数

说明

类型

默认值

可选值

value

绑定值,绑定使用v-model

readOnly

是否只读状态

Boolean

false

true

2.组件在三端的展示效果。

2.1在H5端效果

2.2在APP端效果

2.3在微信小程序端效果

6.py-datetime-picker

1.此组件依赖于u-datetime-picker和u-tag,支持初值和重置。组件参数和u-datetime-picker完全一直,具体可以查看datetime使用方式。重写此组件的原因是,u-datetime-picker组件随着参数mode设置值不同,导致输出日期格式不同,vue版本保存的值和uniapp版本值无法统一。而py-datetime-picker组件能够和el-date-picker组件输出一样的格式,现在py-datetime-picker只做到支持和el-date-picker组件默认格式统一,如果有特殊需求,需要自己修改py-datetime-picker组件。目前,py-datetime-picker组件mode设置为datetime输出格式为yyyy-MM-dd HH:mm;mode设置为date输出格式为yyyy-MM-dd;mode设置为time输出格式为HH:mm;mode设置为year-month输出格式为yyyy-MM。可以看去,py-datetime-picker无法精确到秒,这也是没办法,因为u-datetime-picker也无法精确到秒。这里就不展示所有mode类型的图片了,下面会以mode设置为datetime,展示组件在三端的样式。

2.组件在三端的展示效果。

2.1在H5端效果

2.2在APP端效果

2.3在微信小程序端效果

7.py-dict-tag

此组件依赖于u--text,用于若依框架下字典显示。不用自己通过循环字典选项,根据值获取标签,此组件会完成。

参数

说明

类型

默认值

可选值

dictOptions

字典选项

Array

null

dictValue

当前值

String

undefined

由于这个组件就一个循环匹配,然后通过u--text进行显示,肯定三端都支持,就不做三端效果展示了。

8.py-flow-record-item

1.此组件依赖于uni-icons和static/py/icon文件下的文件,用于流程的流转记录节点,一般不会使用,这里就不介绍参数了。如果有需要,可以自行查看此组件。

2.组件在三端的展示效果。

2.1在H5端效果

2.2在APP端效果

2.3在微信小程序效果

9.py-popup

1.此组件依赖于u-popup和u--text,用于展示展示属性和弹框填写信息。由于u-popup每次使用都要自己设置大量样式,我根据自己需求,设置了默认样式,能够快速使用。py-popup设置了两个插槽,默认插槽用于展示属性,如果内容过多,会自动加滚动;具名插槽form,主要用于弹窗填写表单信息。其中,具名插槽form,只有填写参数title时才会生效。具名插槽form在参数mode设置为center效果最好,如果有需要,最好设置为center。

参数

说明

类型

默认值

可选值

title

标题,并且生效form插槽

String

""

其他参数和u-popup一致,具体可以查看u-popup使用方式。但是不支持customStyle,由于我查看u-popup代码,没发现customStyle参数的接收地方,我怕设置上不能使用,如果有需要,可以根据情况修改py-popup组件。

2.组件默认插槽在三端的展示效果。

2.1在H5端效果

2.2在APP端效果

2.3在微信小程序端效果

3.组件具名插槽form在三端的展示效果。

3.1在H5端效果

3.2在APP端效果

3.3在微信小程序端效果

10.py-section

1.此组件依赖于uni-section和u--text,用于显示对象属性和值。如果想简单显现,设置title和text参数即可。如果想有特殊样式,可以设置参数title,值具体显示可以使用py-section带的默认插槽。但是,需要注意参数text设置和插槽使用,两者选一,不要同时使用。

参数

说明

类型

默认值

可选值

title

标题

String, Number

undefined

其他参数和uni-section一致,具体可以查看uni-section使用方式。title其实就是uni-section中的属性。

2.使用方式

3.三端展示效果就是py-popup默认插槽的展示效果。

11.py-select

1.此组件依赖于u--input和u-action-sheet,为了不用每次都要设置这两个组件,所以封装了py-select。

参数

说明

类型

默认值

可选值

data

数据数组对象

Array

[]

value

绑定值,使用v-model绑定

String, Number

title

显示标题

String

“”

参数data数组的每个对象,都得包含name和value两个属性,name为显示值,value为实际值。

2.

2.1在H5端效果

2.2在APP端效果

2.3在微信小程序端效果

12.py-swipe-action

1.此组件依赖于uni-swipe-action、uni-swipe-action-item和u-tag。由于手机端非常不适合使用table展示,通过此组件能够展示多个信息,并且通过滑动,选择事件。既美观,又能展示大量数据。

参数

说明

类型

默认值

可选值

subTitle

子标题

String

undefined

thirdTitle

三级标题

String

undefined

tagText

显示标题

String

“”

tagType

标签类型

String

primary

其他参数和uni-swipe-action-item一致,同时支持click和change事件,具体可以查看uni-swipe-action使用方式,里面包含uni-swipe-action-item的参数配置。

2.使用方式

3.组件在三端的展示效果。

3.1在H5端效果

3.2在APP端效果

3.3在微信小程序端效果

13.py-tag

此组件依赖于u-tag,由于u-tag宽度设置为100%,还需要自己设置才封装py-tag组件。py-tag会根据内容宽度而设置宽度。参数和u-tag一致,具体可以查看u-tag使用方式。u-tag支持三端展示,当然py-tag也支持三端展示,这里就不截图了

14.py-tranfer

1.此组件依赖于u-check-group、u-checkbox和u-button,此组件对应el-tranfer,但是不支持搜索,支持初值和重置。

参数

说明

类型

默认值

可选值

data

Transfer 的数据源

Array

[]

titles

自定义列表标题

Array

[]

value

绑定值,使用v-model绑定

Array

[]

props

数据源的字段别名

Object

{

label: 'label',

key:'key',

disabled:'disabled'}

上述4个参数使用方式与el-tranfer一致,具体可以查看el-tranfer使用方式。并且,py-tranfer支持change、left-check-change和right-check-change,使用方式和参数与el-tranfer一致。

2.组件在三端的展示效果。

2.1在H5端效果

2.2在APP端效果

2.3在微信小程序端效果

15.py-upload-image

1.此组件依赖于u-upload,用于图片上传,支持大屏预览、只读、初始值和重置。只读状态下会自动隐藏删除和上传按钮。

参数

说明

类型

默认值

可选值

action

上传的地址

String

若依框架默认上传地址

data

上传时附带的额外参数

Object

readOnly

是否只读状态

Boolean

false

true

其他参数与u-upload一致,具体可以查看u-upload使用方式。最好只用此组件上传图片,其他类型文件上传请使用其他组件,也就是不要修改参数accept的值。支持change事件,在H5会自动进行双向绑定,不需要自己设置,但是APP和微信小程序需要手动设置文件列表。如果后端使用若依框架,参数action不用设置,会自动调用若依后端上传文件的接口

2.使用方式

3.组件在三端的展示效果。

3.1在H5端效果

3.2在APP端效果

3.3在微信小程序端效果

4.只读状态下,隐藏删除和上传按钮,因为各端效果一致,只展示H5端的效果。

5.大屏预览效果在各端效果一致,只展示H5端的效果。

3.总结

上述组件使用时,如果组件中有绑定值value,请通过v-model进行绑定。py组件还有很多不足,请大家见谅。此文章不提供资源下载方式,只用于组件说明。如果喜欢此文章,可以点赞支持下。如果想获取资源,请通过我主页文章进行获取。我会不定时发布关于若依框架、java、vue、uniapp等方面内容,如果感兴趣可以关注我。


http://www.kler.cn/a/548488.html

相关文章:

  • 是时候说再见了
  • 新建github操作
  • 网络安全月度报告
  • 将 Simulink 模型做成可执行文件(.exe)
  • Spring Boot 动态数据源实操指南
  • 新电脑配置安装下载
  • FreeBSD系统使用pyenv安装不同版本python,比如python3.12
  • 景联文科技:以精准标注赋能AI未来,打造高质量数据基石
  • 数据库报错1045-Access denied for user ‘root‘@‘localhost‘ (using password: YES)解决方式
  • Java 单例模式 (Singleton)
  • MySQL 插入替换语句(replace into statement)
  • C语言中的对象、左值、右值、序列点、副作用的概念
  • Django 创建表时 “__str__ ”方法的使用
  • DeepSeek生成思维导图
  • K8S容器启动提示:0/2 nodes are available: 2 Insufficient cpu.
  • uniapp + vite + 使用多个 ui 库
  • LLM学习笔记2——使用Docker(Ollama+OpenWebUI)实现本地部署DeepSeek-R1-14B模型
  • 图像处理篇---基本OpenMV图像处理
  • 小程序之间实现互相跳转的逻辑
  • Ubuntu服务器设置X11服务