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 { getWmsEnumData } from '@/widgets/$NameSpacePath$/Models/Service/$EntityName$Drawer' import { ElInput, ElSelect, ElOption, ElDatePicker, ElForm, ElFormItem, } from 'element-plus' import { injectModel } from '@/libs/Provider/Provider' 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:[] }) //¶¨ÒåÕûÌåÄ£ºý²éѯµÄÁÐÊý×é(×¢Ò⣺±ØÐë´óСд¸úºó¶ËµÄʵÌåÀàÊôÐÔÃûÒ»Ö£¬·ñÔò»áµ¼ÖÂÆ¥Åä²»¶ÔµÄÎÊÌâ) const _searchFormInputAttrs = ref([ $LikeQueryAttrs$ ]); const searchFormInputAttrs_Placeholder = ref('$LikeQueryAttrsName$'); // ¶¯Ì¬Ã¶¾ÙÑ¡Ïî const enumOptions = reactive({ $EntityNameClass_enumOptions$ }) // »ñȡö¾ÙÊý¾Ý const fetchEnumData = async () => { try { $EntityNameClass_fetchEnumData$ // »ñÈ¡ÎïÁÏÀàÐÍö¾Ù const materialTypeData = await getWmsEnumData({ EnumName: 'MaterialTypeEnum', }) enumOptions.materialType = materialTypeData.map((item) => ({ label: item.description, value: item.value, })) // »ñÈ¡²É¹ºÀàÐÍö¾Ù const purchaseTypeData = await getWmsEnumData({ EnumName: 'PurchaseTypeEnum', }) enumOptions.purchaseType = purchaseTypeData.map((item) => ({ label: item.description, value: item.value, })) } catch (error) { console.error('»ñȡö¾ÙÊý¾Ýʧ°Ü:', error) } } // ×é¼þ¹ÒÔØÊ±»ñȡö¾ÙÊý¾Ý onMounted(() => { fetchEnumData() }) // ¶¨ÒåÏìӦʽ²éѯÊý¾Ý const _curHighQueryData = ref({ searchVal: '',str_searchFormInputAttrs:[] }); // аæµÄ²éѯ·½·¨£¨Ö÷Ò³ÃæÖеİ´Å¥¡¾²éѯ¡¿£© const handleQueryForMain = async () => { _curHighQueryData.value.searchVal = queryForm.value.searchVal; _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.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.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.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} />
Ìí¼Ó µ¼Èë µ¼³ö
²éѯ {/* ÖØÖà */} ¸ß¼¶²éѯ
) } }, })