| | |
| | | params = opts.getBeginListFunc!(params) |
| | | } |
| | | pageF.loading = true; |
| | | const queryParams = filterEmptyParams(opts.queryParams.value); |
| | | opts.getListApi!({ |
| | | pageNum: page.currentPage, |
| | | pageSize: page.pageSize, |
| | |
| | | * 2. 新增:手动触发搜索逻辑 (用于回车搜索) |
| | | */ |
| | | const manualSearch = () => { |
| | | if (!opts.queryParams || !opts.queryParams.value) return; // 容错处理 |
| | | opts.page.currentPage = 1; // 回车搜索默认切回第一页 |
| | | if (opts.handleQueryFunc) { |
| | | opts.handleQueryFunc(); |
| | |
| | | |
| | | /** 清空搜索回调方法 */ |
| | | const searchReset = () => { |
| | | opts.queryParams.value = {}; // 修改为操作 .value |
| | | // opts.queryParams = {}; // 修改为操作 .value |
| | | // ✅ 正确写法:清空 ref 内部的值 |
| | | if (opts.queryParams && opts.queryParams.value) { |
| | | // 方案 A:直接清空对象内部属性 |
| | | Object.keys(opts.queryParams.value).forEach(key => { |
| | | delete opts.queryParams.value[key]; |
| | | }); |
| | | |
| | | } |
| | | if (opts.handleQueryFunc) { |
| | | opts.handleQueryFunc(); |
| | | } |
| | |
| | | const sizeChange = (pageSize: number) => { |
| | | opts.page.pageSize = pageSize; |
| | | } |
| | | /** |
| | | * 导出 |
| | | */ |
| | | const handleExport =()=>{ |
| | | const queryParams = filterEmptyParams(opts.queryParams.value); |
| | | opts.exportApi!( opts.queryParams.value); |
| | | } |
| | | const handleDelete = () =>{ |
| | | if ( !(pageF?.ids)|| pageF?.ids?.length === 0) { |
| | | ElMessage({ |
| | | message: "请选择至少一条数据!", |
| | | type: 'warning' |
| | | }) |
| | | return; |
| | | } |
| | | ElMessageBox.confirm("确定将选择数据删除?", '系统提示', {confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning'}).then(() => { |
| | | return opts.deleteApi!(pageF?.ids); |
| | | }).then(() => { |
| | | onLoad(opts.page); |
| | | ElMessage({ |
| | | message: "删除成功!", |
| | | type: 'success' |
| | | }) |
| | | }); |
| | | } |
| | | const handleUpdate = ()=>{ |
| | | if ( !(pageF?.ids)|| pageF?.ids?.length === 0) { |
| | | ElMessage({ |
| | | message: "请选择至少一条数据!", |
| | | type: 'warning' |
| | | }) |
| | | return; |
| | | } |
| | | if(opts.handleUpdateFunc){ |
| | | opts.handleUpdateFunc!() |
| | | } |
| | | |
| | | } |
| | | /** |
| | | * 过滤空字符串参数 |
| | | */ |
| | | const filterEmptyParams = (params: any) => { |
| | | const result: any = {}; |
| | | for (const key in params) { |
| | | const val = params[key]; |
| | | // 过滤空字符串、null、undefined |
| | | if (val !== '' && val !== null && val !== undefined) { |
| | | result[key] = val; |
| | | } |
| | | } |
| | | return result; |
| | | }; |
| | | return { |
| | | pageF, |
| | | tableData, |
| | |
| | | selectionChange, |
| | | rowSave, |
| | | rowUpdate, |
| | | handleExport, |
| | | handleDelete, |
| | | handleUpdate, |
| | | rowDel, |
| | | refreshChange, |
| | | currentChange, |