refactor(manager): 引入 useTable 并重构采购/财务/会员等10个列表页

- 引入通用 useTable composable 实现分页与查询标准化
- 重构采购单/入库单/报损单/盘点单4个采购管理列表页
- 重构退款日志/预存款流水/会员充值/会员经验等财务与会员日志列表页
- 重构支付流水与退款流水列表页
- 统一竞态防护与 loading 状态管理,消除 150+ 行冗余样板代码
This commit is contained in:
pikachu1995@126.com
2026-10-20 14:02:03 +08:00
parent 8fd353a766
commit 6b6dc2c4f3
11 changed files with 201 additions and 241 deletions

View File

@@ -91,7 +91,8 @@
</template>
<script setup>
import { ref, reactive, onMounted } from "vue";
import { ref } from "vue";
import { useTable } from "@/utils/useTable";
import { getUserRecharge } from "@/api/member";
defineOptions({ name: "recharge" });
@@ -100,19 +101,15 @@ defineOptions({ name: "recharge" });
const searchFormRef = ref(null);
const table = ref(null);
const loading = ref(true);
const searchForm = reactive({
pageNumber: 1,
pageSize: 20,
sort: "createTime",
order: "desc",
startDate: "",
endDate: "",
memberName: "",
});
const selectDate = ref(null);
const data = ref([]);
const total = ref(0);
const { loading, data, total, searchForm, getDataList } = useTable(
getUserRecharge,
{
pageSize: 20,
immediate: false,
form: { sort: "createTime", order: "desc", startDate: "", endDate: "", memberName: "" },
}
);
function rechargeWayText(way) {
if (way === "ALIPAY") return "支付宝";
@@ -146,16 +143,6 @@ function selectDateRange(v) {
searchForm.endDate = "";
}
}
function getDataList() {
loading.value = true;
getUserRecharge(searchForm).then((res) => {
loading.value = false;
if (res.success) {
data.value = res.result.records;
total.value = res.result.total;
}
});
}
onMounted(() => {
init();

View File

@@ -86,7 +86,8 @@
</template>
<script setup>
import { ref, reactive, onMounted } from "vue";
import { ref } from "vue";
import { useTable } from "@/utils/useTable";
import { getUserWallet } from "@/api/member";
defineOptions({ name: "walletLog" });
@@ -95,19 +96,15 @@ defineOptions({ name: "walletLog" });
const searchFormRef = ref(null);
const table = ref(null);
const loading = ref(true);
const searchForm = reactive({
pageNumber: 1,
pageSize: 20,
sort: "createTime",
order: "desc",
startDate: "",
endDate: "",
memberName: "",
});
const selectDate = ref(null);
const data = ref([]);
const total = ref(0);
const { loading, data, total, searchForm, getDataList } = useTable(
getUserWallet,
{
pageSize: 20,
immediate: false,
form: { sort: "createTime", order: "desc", startDate: "", endDate: "", memberName: "" },
}
);
function serviceTypeText(type) {
if (type === "WALLET_WITHDRAWAL") return "余额提现";
@@ -142,16 +139,6 @@ function selectDateRange(v) {
searchForm.endDate = "";
}
}
function getDataList() {
loading.value = true;
getUserWallet(searchForm).then((res) => {
loading.value = false;
if (res.success) {
data.value = res.result.records;
total.value = res.result.total;
}
});
}
onMounted(() => {
init();