1.1.28 • Published 17 days ago

@tyslib/vue-components v1.1.28

Weekly downloads
-
License
ISC
Repository
-
Last release
17 days ago

技术栈:vue3、vite4、pinia、element-plus

//全局注册组件
import VueComponents, {UtilsStore, UtilsMsg, UtilsTools} from '@tyslib/vue-components'
import "@tyslib/vue-components/style.css"
app.use(VueComponents)

// 局部引入组件
import {CompTable, UtilsStore, UtilsMsg, UtilsTools} from '@tyslib/vue-components'

列表组件 comp-table

<comp-table
  :loading="tableDataSet.loading"
  :column="tableDataSet.column"
  :list="tableDataSet.list"
  :paginate="tableDataSet.paginate"
  :operate="tableDataSet.operate"
  @paginate-change="onPaginateEvent"
  @operate="onOperateEvent">
  <template v-slot:photoUrl="{row}">
    <comp-file :list="[{url: row.photoUrl}]" :size="120"></comp-file>
  </template>
</comp-table>

示例

npm.io

comp-table 属性说明

参数说明类型可选值默认值版本
list列表数据,必传对象数组---
column列表表头,必传对象数组---
operate列表操作按钮对象数组请看operate 属性说明--
paginate页码数据对象数组请看paginate 属性说明--
loading加载状态boolean---
isShowOperate是否显示操作按钮boolean---
isShowPaginate是否显示页码boolean---
isAutoHeight是否自动高度boolean---
isTextEllipsis是否超出隐藏文字boolean-false-
isShowCheckBox是否显示批量勾选boolean---
isReserveSelection翻页是否保留勾选数据boolean-false-
isShowCheckBoxBtn是否显示批量操作按钮boolean---
outerHeight外部高度,用来计算表格展示高度number---
batchOptions批量操作按钮对象数组如:[{label: '批量删除',value:'delete'}]--
attrsel-table组件所属属性对象---

column 属性说明

参数说明
slot插槽,用来插入自定义展示内容,(slot、prop)二选一
prop展示的数据,(slot、prop)二选一
label表头名称
width数据列最小宽度
hide数据列隐藏规则

paginate 属性说明

参数说明
page页码
size大小
total总计

operate 属性说明

参数说明
label按钮名称
value按钮标识
type按钮类型 'primary、success、warning、danger、info'
hide按钮隐藏规则,function、boolean,如:(row)=>row.status == 1

comp-table 事件说明

事件名说明参数
@operate监听操作按钮点击-
@paginate监听页码事件,返回当前点击按钮、当前行数据与当前行索引-
@batch-operation监听批量操作按钮点击-
@selection-change监听批量选择-

列表搜索组件 comp-search

<comp-search 
  v-model="searchDataSet.search" 
  v-model:list="searchDataSet.list" 
  :list="searchDataSet.list"
  :operate="searchDataSet.operate"
  @change="(e: any)=>onSearchEvent(e, 'change')"
  @click="(e: any)=>onSearchEvent(e, 'click')">
</comp-search>

示例

npm.io

参数

size:尺寸 | string | 'large、default、small'
search:搜索值 | 对象 | 必须 | 默认空对象{}
list:搜索操作项 | 对象 | 必须 | 如下
  status: { // 搜索项参数
    label: '状态', // 搜索项名称
    type: 'select',// 搜索项类型 | 'input、select、cascader、date、datetimerange'
    value: '', // 搜索项默认值
    list: [ // 搜索项下拉数据,只有type为select、cascader时才有
      {
        label: '全部',
        value: ''
      },
      {
        label: '配置中',
        value: '0'
      },
      {
        label: '已发布',
        value: '1'
      }
    ],
    hide: (search) => search.status == 1, // 搜索项隐藏规则 | function、boolean | 默认不隐藏
    attrs: {}, // element组件属性
    isSlot: false, //是否插槽
  },
operate:表格操作按钮 | 对象数组 | 如下
  [
    {
      label: 按钮名称,
      value: 按钮标识,
      type: 按钮类型 | 'primary、success、warning、danger、info',
      hide: 按钮隐藏规则 | function、boolean | 默认不隐藏,如:({search, btn}) => search.status == 1
    },
  ]
attrs:el-table组件所属属性 | 对象 | 如下,驼峰命名
  {
    size: 'default',
    rowKey: 'id',
    defaultExpandAll: false,
    lazy: true,
    treeProps: { children: 'children', hasChildren: 'hasChildren' },
    headerCellClassName: "table-header",
  }
isShowBackBtn:是否显示返回按钮 | boolean
backTitle:返回按钮名称 | boolean
title:上一级名称 | boolean

方法
@change:监听element组件chang事件,返回值:{e:当前搜索项的值, key: 当前chang的搜索项}
@operate:监听操作按钮点击,返回值:{btn:当前点击按钮, search: 搜索值}

列表组件 comp-popup

<comp-popup 
  v-model="isShow"
  title="新增" 
  width="600px">
  <div></div>
</comp-popup>

示例

npm.io

参数

v-model: 控制弹窗显示隐藏
title:标题 | string
width:弹窗宽度 | string | 默认800px
width:弹窗高度 | string 
footerBtn: | 对象数组 | 有默认值 | 如下
  [
    {
      type: 'submit', // 按钮表示
      label: '提交', // 按钮名称
      bgColor: '', // 按钮背景
      attrs: '', // 按钮自定义属性
    }
  ]
isShowFooterBtn:是否显示弹窗按钮
isHidePopup:是否隐藏弹窗

表单组件 comp-form

<comp-form  
  v-model="formDataSet.form" 
  v-model:list="formDataSet.list" 
  :list="formDataSet.list" 
  :originData="data" 
  :submitFun="handleSubmit">
  <template v-slot:photoUrl="{data}">
    <comp-upload-oss 
      :config="uploadConfig" 
      @upload="onUploadEvent" 
      :fileList="[{url: data}]">
    </comp-upload-oss>
  </template>
</comp-form>

示例

npm.io

comp-form 属性说明

参数说明类型可选值默认值版本
v-model监听表单数据object---
v-model:list / list监听表单数据项,必填object---
submitFun表单提交回调,必填function函数需抛出return,return true表示提交正常并关闭弹窗,return false表示提交异常不关闭弹窗--
originData需要回显的数据object---
attrsel-form组件所属属性object{size: 'large',labelWidth: '120px'}--
formData:{
  parentId: { // 数据项,以参数作为key
    label: '上级',
    value: '',
    type: 'select',cascader、select、datetime、datetimerange、switch、checkbox、radio'
    hide: (e) => e.status == 1, // 数据项隐藏规则 | function、boolean | 默认不隐藏,
    required: true,
    rule: [{}],
    attrs: { // 数据项element组件属性
      disabled: true
    },
    list: [],
    isSlot: false,
  }
} // 详细见 "数据项属性说明"

comp-form 数据项属性说明

参数说明类型可选值默认值版本
label数据项名称,必填string---
value数据项名称,必填stringarray---
type数据项类型,必填string'input、textarea、cascader、select、datetime、datetimerange、switch、checkbox、radio'--
hide是否隐藏数据项,可选,默认不隐藏function、boolean(e) => e.status == 1,e为当前数据项集合--
required数据项是否必选,可选boolean---
rule数据项校验规则对象数组---
list数据项下拉数据array---
isSlot是否通过插槽插入自定义内容boolean---
attrs数据项对应的element组件属性,以及需要自定义的样式styleobject---

comp-form 事件说明

事件名说明返回值
@change监听数据项的变化{e:chang值, key:chang的数据项key}
@btn-click按钮的标识-

列表组件 comp-upload-oss

<comp-upload-oss :config="uploadConfig" @upload="onUploadEvent" :fileList="[{url: data}]"></comp-upload-oss>

示例

npm.io

参数

uploadConfig:文件上传配置 | 对象 | 必须 | 如下
  {
    httpUrl: '/api/uploadUrl', // 获取oss存储信息接口地址 | 必须
    fileDir: `目录1/目录2`, // oss文件存储路径 | 必须
    fileType: '.png', // 上传文件类型限制,默认不限制,可选择所有类型文件
    isShowFile: true, // 是否显示文件列表
    isShowDelete: true, // 是否显示删除按钮
    isMultiple: false, //是否多选
    isReplaceFile: false, //是否替换文件
    isOnlySelectFile: false, //是否仅选择文件,不上传oss
    size: 150, // 上传框大小
    uploadText: 150, // 上传文案
    serviceType: 7, // 服务类型
    fileNameType: 'file_stamp', //文件名称命名方式, ['file', 'file_stamp', 'stamp']
    limitCount: 7, // 文件上传数量限制,默认不限制
    notice: '( 建议规格:168*168像素,png格式,透明底,500KB以内 )' //上传提示
  }
fileList:文件回显列表 | 对象数组 | 如:[{url: 'xxx'}]

方法
@upload:文件上传回调, 返回值:文件列表
@delete:文件删除回调, 返回值:文件列表
@files-selected:选择的文件, 返回值:文件列表

文件列表组件 comp-file

<comp-file :list="[{url: row.photoUrl}]" :size="70"></comp-file>

示例

npm.io

参数

list:文件列表 | 对象数组 | 如 [{url: 'xxx', fileName: 'xxx'}], 支持展示图片、视频、文档
size:大小 | number

js封装库

接口请求组件 UtilsHttp

import {UtilsHttp} from '@tyslib/vue-components'
export default function Http(domain: string = 'baseUrl') {
  return UtilsHttp(domainMap[domain], {
    isSign: true, // 是否启用签名
    timeout: 1000 * 60 * 20, // 超时时间
    headers: () => { // 请求头设置
      return {
        tenantId: '',
        authorization: '',
        menuId: '',
      }
    },
    responseFun: () => {}, // 响应成功处理自定义方法
    responseErrFun: () => {},// 响应失败处理自定义方法
  })
}

// 使用
const ApiCommon = {
  // 用户登录
  postLogin: (p={}) => Http().post(`/login`, {params: p})
}

参数

domain:域名 | string | 非必传 
headerConfig:请求头配置 | object

headerConfig配置

  headers?: Function
  responseFun?: Function
  responseErrFun?: Function
  timeout?: number
  isSign?: boolean

支持方法

get:get请求
downloadFile:get文件下载
post:post请求
postFormData:post formData 请求
postFiles:post 文件上传请求
downloadFilePostFormData:post form文件下载
downloadFilePost:post json文件下载
delete:delete 请求
deleteFormData:delete formData 请求
put:put 请求
putFormData:put formData 请求

接口请求组件 UtilsHttp

import {UtilsMsg} from '@tyslib/vue-components'

// 使用
UtilsMsg.success('提示信息')

参数

//有 info、success、warning、error
传递参数:
UtilsMsg.success('提示信息', '显示时长(毫秒,默认3000ms)')

UtilsMsg.confirm('提示内容', '提示标题', '确定按钮文案', '取消按钮文案')

UtilsMsg.prompt('需要校验的内容', {
  title: '提示标题',
  notice: '提示内容',
  inputErrorMessage: '校验失败提示信息',
  confirmButtonText: '确定按钮文案',
  cancelButtonText: '取消按钮文案',
})

富文本组件 comp-editor

<comp-editor 
  v-model="editorDataSet.editorData" 
  :isReadOnly="false">
</comp-editor>

comp-editor 属性说明

参数说明类型可选值默认值版本
v-model富文本数据,必传string---
isReadOnly是否只读boolean---
uploadConfig图片上传配置object请看 uploadConfig 属性说明--

uploadConfig 属性说明

参数说明类型可选值默认值版本
httpUrl文件上传地址,必传string---
fileDir文件路径,必传string---
isReplaceFile是否替换文件boolean---
serviceType服务类型string---
1.1.28

17 days ago

1.1.27

25 days ago

1.1.26

2 months ago

1.1.25

3 months ago

1.1.24

3 months ago

1.1.23

4 months ago

1.1.22

4 months ago

1.1.21

4 months ago

1.1.20-3

5 months ago

1.1.20-4

5 months ago

1.1.20-1

5 months ago

1.1.20-2

5 months ago

1.1.20

5 months ago

1.1.19

5 months ago

1.1.18

5 months ago

1.1.17

5 months ago

1.1.16

5 months ago

1.1.15

5 months ago

1.1.14

5 months ago

1.1.13

6 months ago

1.1.12

6 months ago

1.1.11

6 months ago

1.1.10

6 months ago

1.1.9

7 months ago

1.1.8

7 months ago

1.1.7

7 months ago

1.1.6

7 months ago

1.1.5

7 months ago

1.1.4

7 months ago

1.1.3-1

7 months ago

1.1.3

7 months ago

1.1.2

7 months ago

1.1.0

7 months ago

1.0.9-1

8 months ago

1.0.9

8 months ago

1.0.8

8 months ago

1.0.7

8 months ago

1.0.6-1

8 months ago

1.0.6

8 months ago

1.0.5

8 months ago

1.0.4-2

8 months ago

1.0.4-1

8 months ago

1.0.3-1

8 months ago

1.0.3

8 months ago

1.0.2

8 months ago

1.0.1

8 months ago

1.0.0

8 months ago

0.1.25

8 months ago

0.1.24-1

8 months ago

0.1.24

8 months ago

0.1.23

9 months ago

0.1.22

9 months ago

0.1.21

9 months ago

0.1.20

9 months ago

0.1.19-1

9 months ago

0.1.18-2

9 months ago

0.1.18-1

9 months ago

0.1.17-3

9 months ago

0.1.17-2

9 months ago

0.1.17-1

9 months ago

0.1.16

9 months ago

0.1.15-1

9 months ago

0.1.14-1

9 months ago

0.1.13-2

9 months ago

0.1.13-1

9 months ago

0.1.12-5

9 months ago

0.1.12-4

9 months ago

0.1.12-3

9 months ago

0.1.12-2

9 months ago

0.1.12-1

9 months ago

0.1.11-3

9 months ago

0.1.11-2

9 months ago

0.1.11-1

9 months ago

0.1.11

9 months ago

0.1.10-3

9 months ago

0.1.10-2

9 months ago

0.1.10-1

9 months ago

0.1.10

9 months ago

0.1.9-9

9 months ago

0.1.9-8

9 months ago

0.1.9-7

9 months ago

0.1.9-6

9 months ago

0.1.9-5

9 months ago

0.1.9-4

9 months ago

0.1.9-3

9 months ago

0.1.9-2

9 months ago

0.1.9-1

9 months ago

0.1.9

9 months ago

0.1.8

9 months ago

0.1.7

9 months ago

0.1.6

9 months ago

0.1.5

9 months ago

0.1.4

9 months ago

0.1.3

9 months ago

0.1.2

9 months ago

0.1.1

9 months ago

0.1.0

9 months ago

0.0.9

10 months ago

0.0.8

10 months ago

0.0.7

10 months ago

0.0.6

10 months ago

0.0.5

10 months ago

0.0.4

10 months ago

0.0.3

10 months ago

0.0.2

10 months ago

0.0.1

10 months ago