diff --git a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/app.js b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/app.js index e5f1a923..ad3edcf0 100644 --- a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/app.js +++ b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/app.js @@ -2,13 +2,16 @@ import html from "html"; import { ElConfigProvider } from "element-plus"; import zh from "./lib/element-plus/locale/zh-cn.min.mjs"; import en from "./lib/element-plus/locale/en.min.mjs"; -import { reactive, onMounted } from "vue"; +import { reactive, onMounted, onUnmounted } from "vue"; +import { ElNotification } from "element-plus"; +import { dayjs } from "element-plus"; export default { components: { ElConfigProvider }, template: html` + `, setup() { @@ -18,7 +21,20 @@ export default { ["en", en], ]) ); - onMounted(() => document.querySelector("#loading.loading").classList.remove("loading")); + const event = "Refresh"; + onMounted(() => { + document.querySelector("#loading.loading").classList.remove("loading"); + PubSub.subscribe(event, async () => { + await ElNotification.closeAll(); + ElNotification({ + type: "warning", + title: `${dayjs(new Date()).format("YYYY-MM-DD HH:mm:ss")}`, + dangerouslyUseHTMLString: true, + message: `站点已更新,点击刷新!`, + }); + }); + }); + onUnmounted(() => PubSub.unsubscribe(event)); return { localeMap, }; diff --git a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/components/form/form-input.js b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/components/form/form-input.js index 31f75c58..a3d0a522 100644 --- a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/components/form/form-input.js +++ b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/components/form/form-input.js @@ -29,7 +29,6 @@ export default { -
- + @@ -399,6 +399,39 @@ export default { const defaultImportModel = schemaToModel(config.import.schema); const importModel = ref(null); const versions = ref([]); + const onClick = async (method, confirMmessage = "确认操作吗?", reload = true) => { + try { + if (confirMmessage) { + await ElMessageBox.confirm(confirMmessage, "提示", { + type: "warning", + }); + } + tableLoading.value = true; + let result = null; + if (method.constructor.name == "AsyncFunction") { + result = await method(); + } else { + result = method(); + } + if (!result.errors) { + if (!result.data?.code || result.data.code === 200) { + if (reload) { + pageModel.pageIndex = 1; + await load(); + } + } + } + } catch (error) { + if (error === "cancel") { + ElMessage({ + type: "info", + message: "操作取消", + }); + } + } finally { + tableLoading.value = false; + } + }; const getSortModel = (model) => { (model.sorting ?? "") .split(",") @@ -469,11 +502,14 @@ export default { tableLoading.value = false; } }; - const onPageIndexChange = async () => await load(); - const onPageSizeChange = async () => { + const reload = async () => { pageModel.pageIndex = 1; await load(); }; + const onPageIndexChange = async () => await load(); + const onPageSizeChange = async () => { + await reload(); + }; const click = async (item, rows) => { editFormloading.value = true; editFormMode.value = item.path ?? item; @@ -504,11 +540,16 @@ export default { type: "warning", }); tableLoading.value = true; - const response = await request( + const result = await request( url, rows.map((o) => o.id), - { method: config.edit.deleteMethod } + { method: config.edit.deleteMethod }, + true ); + if (!result.data?.code || result.data.code === 200) { + pageModel.pageIndex = 1; + await reload(); + } } catch (error) { if (error === "cancel") { ElMessage({ @@ -525,7 +566,8 @@ export default { await ElMessageBox.confirm(format("确认删除当前行数据吗?", rows[0]), "提示", { type: "warning", }); - await request(url, null, { method: config.edit.deleteMethod }); + await request(url, null, { method: config.edit.deleteMethod }, true); + await reload(); } catch (error) { if (error === "cancel") { ElMessage({ @@ -541,10 +583,12 @@ export default { const url = config.edit.exportUrl; const method = config.edit.exportMethod; const postData = buildQuery(); - const response = await request(url, postData, { method }); - if (!response.errors) { - window.open(getUrl(`settleaccount/getblobfile/download/${response.data}`)); - } + await onClick(async () => { + const response = await request(url, postData, { method }); + if (!response.errors) { + window.open(getUrl(`settleaccount/getblobfile/download/${response.data}`)); + } + }, "确认导出?"); } else if (item.meta.pattern === "file") { window.open(getUrl(`settleaccount/getblobfile/download/${rows[0]["downFileName"]}`)); } else if ((item.meta.pattern = "row")) { @@ -585,21 +629,23 @@ export default { try { const valid = await editFormRef.value.validate(); if (valid) { - editFormloading.value = true; - let url = (editFormMode.value === "create" ? config.edit.createUrl : config.edit.updateUrl) ?? config.query.url; - if (editFormMode.value === "update") { - url = format(url, editFormModel.value.id); - } - const method = editFormMode.value === "create" ? config.edit.createMethod : config.edit.updateMethod; - const response = await request(url, editFormModel.value, { method }); - if (response.errors) { - ElMessageBox.alert(`错误:${response.errors?.error?.message}`, `代码:${response.errors?.error?.code}`); - //model.errors = response.errors; //?? - } else { - await load(); - editFormMode.value = null; - dialogVisible.value = false; - } + await onClick( + async () => { + let url = (editFormMode.value === "create" ? config.edit.createUrl : config.edit.updateUrl) ?? config.query.url; + if (editFormMode.value === "update") { + url = format(url, editFormModel.value.id); + } + const method = editFormMode.value === "create" ? config.edit.createMethod : config.edit.updateMethod; + const result = await request(url, editFormModel.value, { method }, true); + if (!result.errors) { + dialogVisible.value = false; + editFormMode.value = null; + await reload(); + } + }, + null, + true + ); } } catch (error) { console.log(error); @@ -783,37 +829,6 @@ export default { } return postData; } - const action = async (method, confirMmessage = "确认操作吗?", successMessage = "操作成功", reload = true) => { - try { - await ElMessageBox.confirm(confirMmessage, "提示", { - type: "warning", - }); - tableLoading.value = true; - let result = null; - if (method.constructor.name == "AsyncFunction") { - result = await method(); - } else { - result = method(); - } - if (!result.errors) { - if (!result.data?.code || result.data.code === 200) { - if (reload) { - pageModel.pageIndex = 1; - await load(); - } - } - } - } catch (error) { - if (error === "cancel") { - ElMessage({ - type: "info", - message: "操作取消", - }); - } - } finally { - tableLoading.value = false; - } - }; onMounted(async () => { if (route.meta.children?.length) { for (const item of route.meta.children) { @@ -836,7 +851,8 @@ export default { return { listScrollbarRef, load, - action, + reload, + onClick, config, queryModel, buildQuery, diff --git a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/index.html b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/index.html index 89c3c2b0..39a1096f 100644 --- a/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/index.html +++ b/code/src/Modules/SettleAccount/host/SettleAccount.HttpApi.Host/wwwroot/index.html @@ -4,6 +4,9 @@ + + +