1.4.9 • Published 1 year ago

optimus-vue-hooks v1.4.9

Weekly downloads
-
License
ISC
Repository
github
Last release
1 year ago

Front-Optimus-Vue-Hooks

适用于Vue2.x/Vue3.x的公共Hooks库,支持Typescript


安装

npm i optimus-vue-hooks

useRouter()

// 示例
const router = useRouter()
router.push()
router.replace()

useRoute()

// 示例
const {query} = useRoute()
console.log(query)

useStore()

// 示例
const {state} = useState()
console.log(state)

useRequest()

// 示例
const {loading, toggleLoading, setRequest} = useRequest(requestFn, immediate)

参数

nameTypeDescriptionRequired
requestFn() => Promise请求的异步函数true
immediateboolean是否在组件渲染完成后立刻调用false

返回

nameTypeDescriptionRequired
loadingRef<boolean>是否处于请求中,用于loading提示
toggleLoading() => void手动切换loading状态
setRequestobject手动发起请求false
wrapper() => Promise多个异步请求包装false

useForm()

// 示例
const {
  form,
  formRef,
  setFormFields,
  resetFormFields,
  formValidate
} = useForm({
  a: 1,
  b: 2
}, ['a'])

参数

nameTypeDescriptionRequired
sourceobject表单数据源,必填true
requiredFieldsarray必填选项的keysfalse

返回

nameTypeDescriptionRequired
formReactive<object>表单
formRefRef<any>表单实例
setFormFields(object, Array) => void填充表单,第二个参数为填充时忽略的属性名true
resetFormFields() => void重置表单
formValidate(defineValidate:(resolve,reject) => Promise) => Promise可传入自定义验证方法,须手动resolve/rejectfalse

useTable()

// 示例
const {
  loading,
  tableSource,
  pagination,
  handlePageChange,
  handleSizeChange,
  initTableSource,
  resetPageValue,
  resetSizeValue
} = useTable(requestFn, params, {page: 1, size: 10})

参数

nameTypeDescriptionRequired
requestFn() => Promise请求的异步函数true
paramsobject 或 () => object查询字段,可传object或以函数返回objecttrue
optionsobject额外参数(page, size)false

返回

nameTypeDescriptionRequired
loadingRef<boolean>是否正在加载
tableSourceRef<any[]>表格数据源
pagination{ page: number, size: number, total: number }分页器数据源
handlePageChange(value: number) => void分页器切换分页事件
handleSizeChange(value: number) => void分页器切换页大小事件
initTableSource() => Promise获取数据
resetPageValue(cb?: Function) => void重置页,可传回调
resetSizeValue(cb?: Function) => void重置页数,可传回调

useUpload()

// 示例
const {
  fileAccept,
  inputAccept,
  resolveFileType,
  resolveFileSize,
  resolveImageSize
} = useTable(['png', 'jpg', 'jpeg', 'gif'])

参数

nameTypeDescriptionRequired
fileTypestring[]限制的文件类型true

返回

nameTypeDescriptionRequired
fileAcceptRef<string[]>传入的限制的文件类型
inputAcceptRef<string>用于input标签accept使用
resolveFileType(file: File) => undefined 或 boolean校验文件类型true
resolveFileSize(file: File, size: number, unit?: 'kb' 或 'mb') => void校验文件大小,单位默认为kbfile必传
resolveImageSize(file: File, size: {width:number, height:number}, unit: 'equal' 或 'less' 或 'greater') => Promise校验图片尺寸,传0为不校验。单位可选,等于、小于等于、大于等于,默认为小于等于file必传

useModal

dialog/modal组件的一个简单的状态/事件封装

// 示例
const {
  visible,
  toggleVisible,
  showModal,
  closeModal
} = useModal()

返回

nameTypeDescriptionRequired
visibleRef<boolean>modal显隐
toggleVisible(status: boolean) => void手动控制modal状态true
showModal(cb?: Function) => void显示modal
closeModal(cb?: Function) => void隐藏modal

useDateRangePick

适用于PC端el-date-picker组件,由于后端储存的是两个字段而el-date-picker数组储存,因此做一个处理。 dateValuecomputed做了get/set处理,直接绑定到v-model即可,将handleDateChange绑定到@changedateValueformstartTimeKey/endTimeKey是联动的,需要清除dateValue时直接清除startTimeKey/endTimeKey的值即可。

// 示例
const form = reactive({
  startTime: '',
  endTiem: ''
})

// dateValue由computed做了get/set处理
// 因此直接绑定到v-model即可,将handleDateChange绑定到@change
// suffix可在后面加上自定义的时间后缀,这个不常用,一般用于type = daterange需要加时间戳的情况
const { dateValue, handleDateChange } = useDateRangePick(form, {
  startTimeKey: 'startTime',
  endTimeKey: 'endTime',
  startEmptyValue: '',
  endEmptyValue: '',
  startTimeSuffix: '00:00:00',
  endTimeSuffix: '23:59:59'
})

参数

nameTypeDescriptionRequired
formobject表单true
optionsobjectkey必填,emptyValue选填,默认为' ', suffix选填,默认为undefined

返回

nameTypeDescriptionRequired
dateValueWritableComputedRef<any[]>用于绑定组件的v-model
handleDateChange(event) => void用于绑定组件的@change
1.4.9

1 year ago

1.4.8

1 year ago

1.4.7

2 years ago

1.4.6

2 years ago

1.2.8

2 years ago

1.4.5

2 years ago

1.4.4

2 years ago

1.4.3

2 years ago

1.4.2

2 years ago

1.4.1

2 years ago

1.4.0

2 years ago

1.2.12

2 years ago

1.2.10

2 years ago

1.2.11

2 years ago

1.3.3

2 years ago

1.3.2

2 years ago

1.3.1

2 years ago

1.3.0

2 years ago

1.2.9

2 years ago

1.2.7

2 years ago

1.1.1

2 years ago

1.2.6

2 years ago

1.2.5

2 years ago

1.2.4

2 years ago

1.2.3

2 years ago

1.2.2

2 years ago

1.2.1

2 years ago

1.1.2

2 years ago

1.1.0

3 years ago

1.0.0-beta19

3 years ago

1.0.0-beta18

3 years ago

1.0.0-beta17

3 years ago

1.0.0-beta16

3 years ago

1.0.0-beta15

3 years ago

1.0.0-beta14

3 years ago

1.0.0-beta13

3 years ago

1.0.0-beta12

3 years ago

1.0.0-beta11

3 years ago

1.0.0-beta10

3 years ago

1.0.0-beta9

3 years ago

1.0.0-beta8

3 years ago

1.0.0-beta7

3 years ago

1.0.0-beta6

3 years ago

1.0.0-beta5

3 years ago

1.0.0-beta4

3 years ago

1.0.0-beta3

3 years ago

1.0.0-beta2

3 years ago

1.0.0-beta1

3 years ago

1.0.2

3 years ago

1.0.1

3 years ago

1.0.0

3 years ago