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' // ÒýÈ빫¹²Ñ¡ÏîÅäÖà import { FILTER_MODE_OPTIONS_STRING, FILTER_MODE_OPTIONS_NUM, FILTER_MODE_OPTIONS_BOOL } from '@/components/DyFormForHighQuery/DyFormForHighQueryOptions'; // ÒýÈ빫¹²±íµ¥¹¤¾ßÎļþ import { collectFormDataForHighQuery,onResetForHighSelect,onResetForHighQuery } from '@/utils/myformUtils'; import { BOOLEAN_OPTIONS } from '@/utils/commonOptionConstants'; 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 onClose = (done: () => void) => { if (visible.value) { visible.value = false const data =collectFormDataForHighQuery(formItems,formData); ctx.emit('close', data) } } /** * È·Èϲéѯ */ const onConfirmQuery = async () => { const data =collectFormDataForHighQuery(formItems,formData); ctx.emit('confirmQuery', data) } /** * ÖØÖòéѯ - ÓÅ»¯°æ */ const onReset = async () => { // 1. Çå¿ÕËùÓлù´¡×ֶΣ¨²»°üº¬¹ýÂËģʽ×ֶΣ©,Ó¦Óûù´¡×ֶγõʼֵ onResetForHighQuery(formItems,formData); // 2. ʹÓÃÔ­Óз½·¨ÖØÖùýÂËģʽ×Ö¶Î onResetForHighSelect(formItems,formData); // 3. Ïò¸¸×é¼þ·¢ËÍ×Ô¶¨Òåʼþ 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() onResetForHighSelect(formItems,formData);//ÖØÖù«¹²select²éѯ /** * µ¯´°´ò¿ª»ñÈ¡ÏêÇé */ const onOpen = async () => { disabled.value = false updateCheckData() } watch(() => current.value, onOpen) return { formItems, formData, visible, formRef, onOpen, onClose, onConfirmQuery, onReset, } }