1.4.8 • Published 4 months ago

optimus-vue-hooks v1.4.8

Weekly downloads
-
License
ISC
Repository
github
Last release
4 months 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.8

4 months ago

1.4.7

7 months ago

1.4.6

8 months ago

1.2.8

12 months ago

1.4.5

9 months ago

1.4.4

9 months ago

1.4.3

10 months ago

1.4.2

10 months ago

1.4.1

10 months ago

1.4.0

10 months ago

1.2.12

12 months ago

1.2.10

12 months ago

1.2.11

12 months ago

1.3.3

11 months ago

1.3.2

11 months ago

1.3.1

11 months ago

1.3.0

11 months ago

1.2.9

12 months ago

1.2.7

1 year ago

1.1.1

1 year ago

1.2.6

1 year ago

1.2.5

1 year ago

1.2.4

1 year ago

1.2.3

1 year ago

1.2.2

1 year ago

1.2.1

1 year ago

1.1.2

1 year ago

1.1.0

1 year ago

1.0.0-beta19

1 year ago

1.0.0-beta18

1 year ago

1.0.0-beta17

1 year ago

1.0.0-beta16

1 year ago

1.0.0-beta15

1 year ago

1.0.0-beta14

1 year ago

1.0.0-beta13

1 year ago

1.0.0-beta12

1 year ago

1.0.0-beta11

1 year ago

1.0.0-beta10

1 year ago

1.0.0-beta9

1 year ago

1.0.0-beta8

1 year ago

1.0.0-beta7

1 year ago

1.0.0-beta6

1 year ago

1.0.0-beta5

1 year ago

1.0.0-beta4

1 year ago

1.0.0-beta3

1 year ago

1.0.0-beta2

1 year ago

1.0.0-beta1

1 year ago

1.0.2

1 year ago

1.0.1

1 year ago

1.0.0

1 year ago