@cdwx/system
Version:
成都文宣业务类服务模块组件库
81 lines (80 loc) • 2.38 kB
JavaScript
import { ElMessageBox as g, ElMessage as f } from "element-plus";
import { ref as o } from "vue";
/* empty css */
/* empty css */
function y(r) {
const t = o(i()), c = o(v()), u = o([]);
function i() {
return {
pageSize: r.defaultPageSize || 10,
currentPage: 1,
total: 0
};
}
function v() {
return {
...r.defaultSearchParams
};
}
async function n() {
if (r.api)
try {
const { data: e = [], page: a } = await r.api({
...c.value,
currentPage: t.value.currentPage,
pageSize: t.value.pageSize
});
e.length === 0 && a && a.currentPage > 1 ? (t.value.currentPage -= 1, n()) : (u.value = e, t.value = a || i());
} catch {
u.value = [];
}
}
function h(e) {
const a = i();
return t.value.pageSize = e.pageSize || a.pageSize, t.value.currentPage = e.currentPage || a.currentPage, n();
}
function P(e) {
return c.value = {
...c.value,
...e
}, n();
}
function s(e, a) {
c.value = {
...c.value,
[e]: a
};
}
return {
pageInfo: t,
searchParams: c,
tableData: u,
setSearchParam: s,
turnPage: h,
search: P,
getData: n,
remove: (e, a, S, l = "") => {
r.removeApi && g.confirm(`确认要删除${l}“${e[a]}”?`, "提示").then(async () => {
if (r.removeApi)
try {
await r.removeApi(String(e[S])), f.success(`删除${l}“${e[a]}”成功`), u.value.length === 1 && t.value.currentPage > 1 && (t.value.currentPage -= 1), await n();
} catch {
}
}).catch(() => {
});
},
removeBatch: (e, a = "") => {
r.removeBatchApi && g.confirm(`请确认要删除${a}选中的数据吗?`, "提示").then(async () => {
if (r.removeBatchApi)
try {
await r.removeBatchApi(e), f.success("删除成功"), u.value.length === e.length && t.value.currentPage > 1 && (t.value.currentPage -= 1), await n();
} catch {
}
}).catch(() => {
});
}
};
}
export {
y as useSearchTable
};