UNPKG

@zhangqingcq/plug-r-qw

Version:

A JS lib base on Vue and View-design, you can achieve some complex functions with simple code after install this lib.

156 lines (115 loc) 4.81 kB
/*这些是挂在Vue.prototype下的方法,使用时可以直接用this.XXX方式调用*/ import type {VNode,CreateElement} from "vue" export type Func = () => void export type TooltipManualFunc = (params: any) => void type RenderFunc = (h: CreateElement) => VNode export interface MessageBoxConfig { /*弹框内容,1.string,直接将文字插入对应位置;2.RenderFunc,如:(h)=>h('div',{class:'my-class'},'123')*/ content: string | RenderFunc /** * 弹框标题内容 * @default 提示 */ title?: string /** * 弹框高度,最小值130x * @default 130 */ height?: number /** * 弹框宽度,最小值416 * @default 416 */ width?: number /*确定按钮点击回调函数*/ onOk?: () => void /*取消按钮点击回调函数*/ onCancel?: () => void /*关闭按钮(右上角叉叉)点击回调函数*/ onClose?: () => void /** * 确定按钮文字 * @default 确定 */ okText?: string /** * 取消按钮文字 * @default 取消 */ cancelText?: string /** * 不展示内容开头的警告图标(非字符串内容默认不展示) * @default false */ noWarnIcon?: boolean /** * 底部对齐方式 * @default center */ footerAlign?: string /** * 展示取消按钮 * @default true */ cancelBt?: boolean } export type RequestConfig = (/*请求地址*/url: string,/*请求数据*/data ?: any[] | object, /*错误信息,在控制台输出,方便调试*/ msg ?: string,/*请求结果提取路径*/rPath?: string[],/*请求配置*/config?: object,/*delete方法传参模式 true:params,false:data*/ isUrlData?: boolean) => Promise<any> export interface SetValByOptionConfig { group: Array<any> condition: (item: any) => boolean key: string val: any childKey?: string } export interface FetchConfig { /*初始化该请求插件,单独引入的话调用一次后,方可实现spin等功能,默认在该库安装时已自动化初始化了该请求插件*/ init: (store: any) => void /*该请求插件暴露给外界的配置对象,为axios.create创建的实例对象,使用方法见axios官方网站*/ config: any /*get请求*/ get: RequestConfig /*post请求*/ post: RequestConfig /*put请求*/ put: RequestConfig /*delete请求*/ delete: RequestConfig /*并发请求*/ all<T>(values: Array<T | Promise<T>>): Promise<T[]> /*并发请求结果分离*/ spread<T, R>(callback: (...args: T[]) => R): (array: T[]) => R } export function $swal(option: string | object | false, text?: string | VNode | HTMLElement, icon?: string): Promise<any> export function messageBox({}: MessageBoxConfig): void export function myTypeof(v: string): string export const $fetch: FetchConfig export function trimObj<T>(obj: T): T export function clearObj<T>(obj: T, ignoreList?: string[]): T export const formDataHeadConfig: Record<string, any> export function toFormData(data: Record<string, any>): Record<string, any> export function oneOf(value: any, validList: any[]): boolean export function fullScreenImgByDom(src: string): void export function isValidValue(val: any): boolean export function isNumberValue(val: any): boolean export function isEmptyValue(data: object | any[]): boolean export function tooltipManual(contentKey: string | string[] | TooltipManualFunc, dash: boolean, jiontMark: string): any export function stringLength(str: string): number export function decimalDigitsLimit(/*原值*/val: number | string,/*要限制的小数位数*/ num: number): number | string export function downloadFileByFormSubmit(url: string, data?: object, method?: string): void export function $swalConfirm(title: string, text: string, icon: string, onOk: Func): Promise<any> export function setValByOption({}: SetValByOptionConfig): void export function hasPermission(value: string): boolean export function isNaN(v: any): boolean export function dataFilterOrToUrl(data: object, toUrl?: boolean, keepEmptyVal?: boolean): object | string export function setTimeout(fn: Func, time: number): number export function setInterval(fn: Func, time: number): number export function toLine(name: string): string export function fileExport(url: string, data?: object, method?: string): void export function getColumnsKeys(sKey: string, columns: any[], returnArray?: boolean): string[] export function removeEmptyValue<T>(data: T): T export function findCollection(group: any[] | object, condition: string | number | boolean | Func, getPath?: boolean): any export function htmlPrint(data: any): void export function siblingElems(elem: HTMLElement): HTMLElement