|
@@ -3,7 +3,7 @@
|
|
|
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
|
<transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave">
|
|
|
<div v-show="showSearch" class="mb-[10px]">
|
|
<div v-show="showSearch" class="mb-[10px]">
|
|
|
<el-card shadow="hover">
|
|
<el-card shadow="hover">
|
|
|
- <el-form ref="queryFormRef" :model="queryParams" :inline="true">
|
|
|
|
|
|
|
+ <el-form ref="queryFormRef" :model="queryParams" :inline="true" @submit.prevent>
|
|
|
<el-form-item label="商家名称" prop="name">
|
|
<el-form-item label="商家名称" prop="name">
|
|
|
<el-input v-model="queryParams.name" placeholder="请输入商家名称" clearable @keyup.enter="handleQuery" />
|
|
<el-input v-model="queryParams.name" placeholder="请输入商家名称" clearable @keyup.enter="handleQuery" />
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
@@ -87,7 +87,7 @@
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
</el-table>
|
|
</el-table>
|
|
|
|
|
|
|
|
- <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="getList" />
|
|
|
|
|
|
|
+ <pagination v-show="total > 0" :total="total" v-model:page="queryParams.pageNum" v-model:limit="queryParams.pageSize" @pagination="applyPagination" />
|
|
|
</el-card>
|
|
</el-card>
|
|
|
<!-- 添加或修改商城合作商家管理对话框 -->
|
|
<!-- 添加或修改商城合作商家管理对话框 -->
|
|
|
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
|
<el-dialog :title="dialog.title" v-model="dialog.visible" width="500px" append-to-body>
|
|
@@ -131,6 +131,8 @@ import { MerchantPartnerVO, MerchantPartnerQuery, MerchantPartnerForm } from '@/
|
|
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
|
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
|
|
|
|
|
|
|
const merchantPartnerList = ref<MerchantPartnerVO[]>([]);
|
|
const merchantPartnerList = ref<MerchantPartnerVO[]>([]);
|
|
|
|
|
+const allData = ref<MerchantPartnerVO[]>([]);
|
|
|
|
|
+const filteredData = ref<MerchantPartnerVO[]>([]);
|
|
|
const buttonLoading = ref(false);
|
|
const buttonLoading = ref(false);
|
|
|
const loading = ref(true);
|
|
const loading = ref(true);
|
|
|
const showSearch = ref(true);
|
|
const showSearch = ref(true);
|
|
@@ -185,13 +187,41 @@ const data = reactive<PageData<MerchantPartnerForm, MerchantPartnerQuery>>({
|
|
|
|
|
|
|
|
const { queryParams, form, rules } = toRefs(data);
|
|
const { queryParams, form, rules } = toRefs(data);
|
|
|
|
|
|
|
|
-/** 查询商城合作商家管理列表 */
|
|
|
|
|
|
|
+const fuzzyMatch = (rowVal: any, keyword: any): boolean => {
|
|
|
|
|
+ if (keyword === undefined || keyword === null || keyword === '') return true;
|
|
|
|
|
+ if (rowVal === undefined || rowVal === null) return false;
|
|
|
|
|
+ return String(rowVal).toLowerCase().includes(String(keyword).toLowerCase());
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+const applyFilter = () => {
|
|
|
|
|
+ const q = queryParams.value;
|
|
|
|
|
+ filteredData.value = allData.value.filter((row: any) => {
|
|
|
|
|
+ if (!fuzzyMatch(row.name, q.name)) return false;
|
|
|
|
|
+ if (!fuzzyMatch(row.contactPerson, q.contactPerson)) return false;
|
|
|
|
|
+ if (!fuzzyMatch(row.contactPhone, q.contactPhone)) return false;
|
|
|
|
|
+ return true;
|
|
|
|
|
+ });
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+const applyPagination = () => {
|
|
|
|
|
+ const pageNum = queryParams.value.pageNum || 1;
|
|
|
|
|
+ const pageSize = queryParams.value.pageSize || 10;
|
|
|
|
|
+ const start = (pageNum - 1) * pageSize;
|
|
|
|
|
+ merchantPartnerList.value = filteredData.value.slice(start, start + pageSize);
|
|
|
|
|
+ total.value = filteredData.value.length;
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+/** 查询商城合作商家管理列表(全量拉取,前端过滤+分页) */
|
|
|
const getList = async () => {
|
|
const getList = async () => {
|
|
|
loading.value = true;
|
|
loading.value = true;
|
|
|
- const res = await listMerchantPartner(queryParams.value);
|
|
|
|
|
- merchantPartnerList.value = res.rows;
|
|
|
|
|
- total.value = res.total;
|
|
|
|
|
- loading.value = false;
|
|
|
|
|
|
|
+ try {
|
|
|
|
|
+ const res = await listMerchantPartner({ pageNum: 1, pageSize: 999999 });
|
|
|
|
|
+ allData.value = res.rows || [];
|
|
|
|
|
+ applyFilter();
|
|
|
|
|
+ applyPagination();
|
|
|
|
|
+ } finally {
|
|
|
|
|
+ loading.value = false;
|
|
|
|
|
+ }
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
/** 取消按钮 */
|
|
/** 取消按钮 */
|
|
@@ -209,7 +239,8 @@ const reset = () => {
|
|
|
/** 搜索按钮操作 */
|
|
/** 搜索按钮操作 */
|
|
|
const handleQuery = () => {
|
|
const handleQuery = () => {
|
|
|
queryParams.value.pageNum = 1;
|
|
queryParams.value.pageNum = 1;
|
|
|
- getList();
|
|
|
|
|
|
|
+ applyFilter();
|
|
|
|
|
+ applyPagination();
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
/** 重置按钮操作 */
|
|
/** 重置按钮操作 */
|