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