import { ref, onMounted, reactive, computed, Ref, watch, SetupContext, h, } from 'vue' import { injectModel } from '@/libs/Provider/Provider' import { $EntityName$Drawer } from '../Models/$EntityName$Drawer' import { ElMessage } from 'element-plus' import isEqual from 'lodash/isEqual' import { ConfirmBox } from '@/components/ConfirmBox/ConfirmBox' import { cloneDeep } from 'lodash' export const use$EntityName$QueryDrawer = (props: any, ctx?: any) => { const $PageMenuInstanceName$Drawer = injectModel<$EntityName$Drawer>('$EntityName$Drawer') /** * ÓÃÀ´¶Ô±ÈµÄ³õʼ»¯Êý¾Ý */ const initiateData: Ref> = ref({}) const formData = ref>({}) // ref const formRef = ref() const disabled = ref(false) const current = computed(() => { return props.row || null }) const inputNumber = (attrs) => { return ( ) } const datePickerRange = (attrs) => { return ( ) } const dateTimePickerRange = (attrs) => { return ( ) } const visible = computed({ get() { return props.modelValue }, set(val) { ctx.emit('update:modelValue', val) }, }) /** * Ìí¼ÓµÄform×Ö¶Î */ const formItems = reactive([ $PageAddFormAttributes_Query$ ]) /** * УÑéÊÇ·ñÓÐÊý¾Ý±ä»¯ */ const checkIsEqualObject = () => { const data = { formData: formData.value, } const check = isEqual(initiateData.value, data) return check } const commonGetFormData=()=>{ const data = { $Save_PageAddFormAttributes_Query$ } return data; } const onClose = (done: () => void) => { if (visible.value) { visible.value = false const data =commonGetFormData(); ctx.emit('close', data) } } /** * È·Èϲéѯ */ const onConfirmQuery = async () => { const data =commonGetFormData(); ctx.emit('confirmQuery', data) } /** * ÖØÖòéѯ */ const onReset = async () => { formData.value = {} $Save_PageAddFormAttributes_Query_Clear$ //Ïò¸¸×é¼þ·¢ËÍ×Ô¶¨Òåʼþ ctx.emit('restQuery'); } const updateCheckData = () => { initiateData.value = { formData: { ...formData.value, }, } } const updateFormItemOptions = (propName: string, enumData: any[]) => { const item = formItems.find((item) => item.prop === propName) if (item && enumData) { item.options = enumData.map((item) => ({ label: item.description, value: item.value, })) } } /** * ͨÓòéѯö¾Ù */ const commonQueryEnumForFrom = async () => { $CommonQueryEnumForFrom$ } commonQueryEnumForFrom() /** * µ¯´°´ò¿ª»ñÈ¡ÏêÇé */ const onOpen = async () => { disabled.value = false updateCheckData() } watch(() => current.value, onOpen) return { formItems, formData, visible, formRef, onOpen, onClose, onConfirmQuery, onReset, } }