From b75b10418fbc2df069aeb7a4b15e6e65690d133a Mon Sep 17 00:00:00 2001 From: zs <zhousong@weben-smart.com> Date: 周二, 06 5月 2025 13:33:59 +0800 Subject: [PATCH] Merge branch 'master' of http://222.71.245.114:9086/r/HIA24016N_PipeLineDemo --- Weben_CMS专用代码生成器/Code/Templete/Web/Views/Pages/EntityNameClass/EntityNameClass模板.txt | 301 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 301 insertions(+), 0 deletions(-) diff --git "a/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Web/Views/Pages/EntityNameClass/EntityNameClass\346\250\241\346\235\277.txt" "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Web/Views/Pages/EntityNameClass/EntityNameClass\346\250\241\346\235\277.txt" new file mode 100644 index 0000000..86f92e8 --- /dev/null +++ "b/Weben_CMS\344\270\223\347\224\250\344\273\243\347\240\201\347\224\237\346\210\220\345\231\250/Code/Templete/Web/Views/Pages/EntityNameClass/EntityNameClass\346\250\241\346\235\277.txt" @@ -0,0 +1,301 @@ +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<any[]> + isDrag?: boolean + isChecked?: boolean + isHidePagination?: boolean + params?: Record<string, any> + 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$ + } 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 ( + <div + class={{ + [styles.$PageMenuInstanceName$List]: true, + }} + > + <BaseTable + ref={tableRef} + url={url} + sortUrlTpl="/api/v1/$NameSpacePath$/$PageMenuInstanceName$/{id}/adjustsort/{sort}" + v-model:dataSource={dataSource.value} + columns={columns} + contextMenu={contextMenu} + params={params} + isDrag={isDrag} + isChecked={isChecked} + autoHeight={autoHeight} + onCheck={onCheck} + onRowClick={onRowClick} + isHidePagination={isHidePagination} + pageSize={20} + v-slots={{ + name: ({ row }: any) => { + return row?.name ? ( + <TdButton + onClick={() => openDetail(row)} + text={<span style="color:#5a84ff">详情</span>} + icon="scale" + tip={row?.name} + hover + > + {row?.name} + </TdButton> + ) : ( + '-' + ) + }, + }} + ></BaseTable> + </div> + ) + } + + return () => { + return ( + <div class={styles.$PageMenuInstanceName$Content}> + {/* 添加/编辑 */} + <$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} + /> + + <div class={styles.headerContent}> + <div class={styles.header}> + <IconButton + v-permission="$PageMenuInstanceName$-add" + icon="add-p" + onClick={onAdd$EntityName$} + type="primary" + > + 添加 + </IconButton> + <el-divider direction="vertical" /> + + <el-divider direction="vertical" /> + <el-upload + v-permission="$PageMenuInstanceName$-import" + name="file" + accept=".xlsx,.xls,.csv" + show-file-list={false} + onError={onError} + onSuccess={onSuccess} + before-upload={onBeforeUpload} + headers={headers.value} + action="/api/v1/$NameSpacePath$/$PageMenuInstanceName$/import" + > + <IconButton icon="in">导入</IconButton> + </el-upload> + + <IconButton + v-permission="$PageMenuInstanceName$-output" + icon="out" + onClick={handleExport} + > + 导出 + </IconButton> + </div> + <ElFormItem style={{ marginTop: '15px' }}> + <ElFormItem label="关键字"> + <ElInput + v-model={queryForm.value.searchVal} + placeholder={searchFormInputAttrs_Placeholder.value} + clearable + class={styles.formItem} + /> + </ElFormItem> + <IconButton type="primary" icon="search" onClick={handleQueryForMain}> + 查询 + </IconButton> + {/* <IconButton style="" icon="refresh" onClick={resetQuery}> + 重置 + </IconButton> */} + <IconButton + v-permission="$PageMenuInstanceName$-add" + icon="search" + onClick={onAdvancedQuery} + type="primary" + > + 高级查询 + </IconButton> + </ElFormItem> + </div> + + <RenderBaseTable + url="/api/v1/$NameSpacePath$/$PageMenuInstanceName$/page" + dataSource={dataSource} + isChecked={true} + isDrag={true} + /> + </div> + ) + } + }, +}) -- Gitblit v1.9.3