SOURCE

import {ref, toValue} from 'vue';
import SpSearch from '_components/comp/sPSearch.vue';
import {$axios} from '_api/axios';

/**
 * 表单hook
 *
 * @params {object} options 配置对象
 * @property {function} query 查询或者重置回调
 * @property {function} search 查询回调
 * @property {function} reset 重置回调
 * @property {boolean} formLoading 必须是proxy响应式bool对象
 * @property {object} defaultModelValue 表单初始默认值
 */
function useFormHook(options = {query, search, reset, formLoading, defaultModelValue, immediate: false}) {
  const {query, search, reset, defaultModelValue = {}, formLoading} = options;
  const baseFormRef = ref(null);
  const modelValue = ref(toValue(defaultModelValue) || {});

  // !toValue(formLoading)
  return {
    BaseForm: (props, context) => {
      return (
        <SpSearch
          {...context.attrs}
          v-model={modelValue.value}
          ref={baseFormRef}
          v-slots={context.slots}
          onQuery={val => {
            query && query(val);
          }}
          onSearch={val => {
            search && search(val);
          }}
          onReset={val => {
            reset && reset(val);
          }}
        ></SpSearch>
      );
    },
    baseFormRef,
    modelValue,
    formLoading
  };
}

export default useFormHook;
console 命令行工具 X clear

                    
>
console