import { computed, defineComponent, onMounted, reactive, ref } from 'vue' import type { Ref } from 'vue' import BaseTable from '@/components/Table/Table' import styles from './$EntityName$.module.scss' import { use$EntityName$ } from '../../../Controllers/$EntityName$' import IconButton from '@/components/IconButton/IconButton' import $EntityName$Drawer from '../Dialog/$EntityName$Drawer/$EntityName$Drawer' import $EntityName$QueryDrawer from '../Dialog/$EntityName$QueryDrawer/$EntityName$QueryDrawer' import Search from '@/components/Search/Search' import { columns } from './Config' import TdButton from '@/components/TdButton/TdButton' import { vPermission } from '@/libs/Permission/Permission' import dayjs from 'dayjs' import { getWmsEnumData } from '@/widgets/$EntityName$/Models/Service/$EntityName$Drawer' import { ElInput, ElSelect, ElOption, ElDatePicker, ElForm, ElFormItem, } from 'element-plus' import { injectModel } from '@/libs/Provider/Provider' // ÒýÈ빫¹²Ñ¡ÏîÅäÖà import { FILTER_MODE_OPTIONS_STRING } from '@/components/DyFormForHighQuery/DyFormForHighQueryOptions'; interface RenderTableType { url?: string dataSource: Ref isDrag?: boolean isChecked?: boolean isHidePagination?: boolean params?: Record autoHeight?: boolean } export default defineComponent({ name: '$EntityName$', directives: { permission: vPermission, }, setup(props, ctx) { const { dataSource, contextMenu, dialogConfig, dialogConfigForQuery, tableRef, current, search, sort, headers, onError, onSearch, onRowClick, onConfirm$EntityName$, onCheck, onAdd$EntityName$, onAdvancedQuery, onExport, openDetail, onSuccess, onBeforeUpload, } = use$EntityName$(props, ctx) //¶¨Òå¸ß¼¶²éѯÒýÓà const $PageMenuInstanceName$QueryDrawerRef=ref(null); // ÐÂÔöµÄ²éѯÌõ¼þ const queryForm = ref({ searchVal: '', str_searchFormInputAttrs:[], searchVal_FilterMode:'' }) //¶¨ÒåÕûÌåÄ£ºý²éѯµÄÁÐÊý×é(×¢Ò⣺±ØÐë´óСд¸úºó¶ËµÄʵÌåÀàÊôÐÔÃûÒ»Ö£¬·ñÔò»áµ¼ÖÂÆ¥Åä²»¶ÔµÄÎÊÌâ) const _searchFormInputAttrs = ref([ $LikeQueryAttrs$ ]); const searchFormInputAttrs_Placeholder = ref('$LikeQueryAttrsName$'); // ¶¯Ì¬Ã¶¾ÙÑ¡Ïî const enumOptions = reactive({ $EntityNameClass_enumOptions$ }) // »ñȡö¾ÙÊý¾Ý const fetchEnumData = async () => { try { $EntityNameClass_fetchEnumData$ } catch (error) { console.error('»ñȡö¾ÙÊý¾Ýʧ°Ü:', error) } } // ×é¼þ¹ÒÔØÊ±»ñȡö¾ÙÊý¾Ý onMounted(() => { fetchEnumData() queryForm.value.searchVal_FilterMode = FILTER_MODE_OPTIONS_STRING[0]?.value || ''; }) // ¶¨ÒåÏìӦʽ²éѯÊý¾Ý const _curHighQueryData = ref({ searchVal: '',str_searchFormInputAttrs:[],searchVal_FilterMode:'' }); // аæµÄ²éѯ·½·¨£¨Ö÷Ò³ÃæÖеİ´Å¥¡¾²éѯ¡¿£© const handleQueryForMain = async () => { _curHighQueryData.value.searchVal = queryForm.value.searchVal; _curHighQueryData.value.searchVal_FilterMode = queryForm.value.searchVal_FilterMode; _curHighQueryData.value.str_searchFormInputAttrs = _searchFormInputAttrs.value; tableRef.value.getList(_curHighQueryData.value) } // аæµÄ²éѯ·½·¨£¨¸ß¼¶²éѯÖеİ´Å¥¡¾²éѯ¡¿£© const handleQuery = async (extraParams = {}) => { let filteredData = commonGetHighQueryForm(extraParams); commonSaveCurHighQueryData(filteredData); tableRef.value.getList(filteredData) } // аæµÄ²éÑ¯ÖØÖà const resetQuery = () => { queryForm.value.searchVal = '' queryForm.value.searchVal_FilterMode = FILTER_MODE_OPTIONS_STRING[0]?.value || ''; queryForm.value.str_searchFormInputAttrs=_searchFormInputAttrs.value; } //аæµÄµ¼³ö·½·¨ const handleExport=()=>{ onExport(_curHighQueryData.value); } // аæµÄ²éѯµ¯³ö¿ò¹Ø±Õ·½·¨ const closeQuery = (extraParams={}) => { let filteredData = commonGetHighQueryForm(extraParams); console.log("closeQuery·½·¨"); console.log(filteredData); commonSaveCurHighQueryData(filteredData); } //±£´æ²éѯֵ const commonSaveCurHighQueryData=(filteredData={})=>{ _curHighQueryData.value = { ..._curHighQueryData.value, ...filteredData }; _curHighQueryData.value.searchVal = queryForm.value.searchVal _curHighQueryData.value.searchVal_FilterMode = queryForm.value.searchVal_FilterMode _curHighQueryData.value.str_searchFormInputAttrs =_searchFormInputAttrs.value; } //»ñÈ¡¸ß¼¶²éѯµ¯³ö¿òµÄ²éѯֵ const commonGetHighQueryForm=(extraParams={})=>{ // ¹ýÂ˵ô undefined µÄÖµ let filteredData = Object.assign( {}, ...Object.entries(extraParams).map(([key, value]) => value !== undefined ? { [key]: value } : {} ) ) //×éºÏÄ£ºý²éѯ filteredData.searchVal = queryForm.value.searchVal filteredData.searchVal_FilterMode = queryForm.value.searchVal_FilterMode filteredData.str_searchFormInputAttrs =_searchFormInputAttrs.value; return filteredData; } /** * @returns ±í¸ñ */ const RenderBaseTable = (props: RenderTableType) => { const { url, dataSource, isDrag, isChecked, isHidePagination, params, autoHeight, } = props return (
{ return row?.name ? ( openDetail(row)} text={ÏêÇé} icon="scale" tip={row?.name} hover > {row?.name} ) : ( '-' ) }, }} >
) } return () => { return (
{/* Ìí¼Ó/±à¼­ */} <$EntityName$Drawer v-model={dialogConfig.visible} title={dialogConfig.title} row={current.value} sort={sort.value} onConfirm={onConfirm$EntityName$} /> {/* ¸ß¼¶²éѯ */} <$EntityName$QueryDrawer ref="$PageMenuInstanceName$QueryDrawerRef" v-model={dialogConfigForQuery.visible} title={dialogConfigForQuery.title} row={current.value} sort={sort.value} onConfirmQuery={handleQuery} onRestQuery={resetQuery} onClose={closeQuery} />
Ìí¼Ó µ¼Èë µ¼³ö
{FILTER_MODE_OPTIONS_STRING.map((option) => ( ))} ²éѯ {/* ÖØÖà */} ¸ß¼¶²éѯ
) } }, })