소스 검색

拦截器修改

Zhangbw 3 달 전
부모
커밋
35b9234b1e
2개의 변경된 파일63개의 추가작업 그리고 2개의 파일을 삭제
  1. 25 1
      src/views/miniapp/order/index.vue
  2. 38 1
      src/views/miniapp/subscription/index.vue

+ 25 - 1
src/views/miniapp/order/index.vue

@@ -39,6 +39,9 @@
     <el-card shadow="hover">
       <template #header>
         <el-row :gutter="10">
+          <el-col :span="1.5">
+            <el-button v-has-permi="['miniapp:order:remove']" type="danger" plain icon="Delete" :disabled="multiple" @click="handleDeleteSelected">删除</el-button>
+          </el-col>
           <el-col :span="1.5">
             <el-button v-has-permi="['miniapp:order:export']" type="warning" plain icon="Download" @click="handleExport">导出</el-button>
           </el-col>
@@ -49,7 +52,8 @@
         </el-row>
       </template>
 
-      <el-table v-loading="loading" border :data="dataList" stripe>
+      <el-table v-loading="loading" border :data="dataList" stripe @selection-change="handleSelectionChange">
+        <el-table-column type="selection" width="55" align="center" />
         <el-table-column label="订单号" align="center" prop="orderNo" width="200" :show-overflow-tooltip="true" />
         <el-table-column label="用户昵称" align="center" prop="nickname" :show-overflow-tooltip="true" />
         <el-table-column label="手机号" align="center" prop="phone" width="120" />
@@ -106,6 +110,8 @@ const loading = ref(true);
 const refreshing = ref(false);
 const showSearch = ref(true);
 const total = ref(0);
+const ids = ref<number[]>([]);
+const multiple = ref(true);
 
 const queryFormRef = ref<ElFormInstance>();
 
@@ -157,6 +163,24 @@ const resetQuery = () => {
   handleQuery();
 };
 
+/** 多选框选中数据 */
+const handleSelectionChange = (selection: any[]) => {
+  ids.value = selection.map(item => item.id);
+  multiple.value = !selection.length;
+};
+
+/** 删除按钮(工具栏) */
+const handleDeleteSelected = async () => {
+  try {
+    await proxy?.$modal.confirm(`确认要删除选中的${ids.value.length}条订单记录吗?`);
+    await request.delete(`/miniapp/order/${ids.value.join(',')}`);
+    proxy?.$modal.msgSuccess('删除成功');
+    getList();
+  } catch {
+    // 取消操作
+  }
+};
+
 /** 删除 */
 const handleDelete = async (row: any) => {
   try {

+ 38 - 1
src/views/miniapp/subscription/index.vue

@@ -34,6 +34,12 @@
     <el-card shadow="hover">
       <template #header>
         <el-row :gutter="10">
+          <el-col :span="1.5">
+            <el-button v-has-permi="['miniapp:subscription:edit']" type="success" plain icon="Edit" :disabled="single" @click="handleEditSelected">修改</el-button>
+          </el-col>
+          <el-col :span="1.5">
+            <el-button v-has-permi="['miniapp:subscription:remove']" type="danger" plain icon="Delete" :disabled="multiple" @click="handleDeleteSelected">删除</el-button>
+          </el-col>
           <el-col :span="1.5">
             <el-button v-has-permi="['miniapp:subscription:export']" type="warning" plain icon="Download" @click="handleExport">导出</el-button>
           </el-col>
@@ -44,7 +50,8 @@
         </el-row>
       </template>
 
-      <el-table v-loading="loading" border :data="dataList" stripe>
+      <el-table v-loading="loading" border :data="dataList" stripe @selection-change="handleSelectionChange">
+        <el-table-column type="selection" width="55" align="center" />
         <el-table-column label="ID" align="center" prop="id" width="80" />
         <el-table-column label="用户昵称" align="center" prop="nickname" :show-overflow-tooltip="true" />
         <el-table-column label="手机号" align="center" prop="phone" />
@@ -121,6 +128,9 @@ const loading = ref(true);
 const refreshing = ref(false);
 const showSearch = ref(true);
 const total = ref(0);
+const ids = ref<number[]>([]);
+const single = ref(true);
+const multiple = ref(true);
 
 const queryFormRef = ref<ElFormInstance>();
 const formRef = ref<ElFormInstance>();
@@ -185,6 +195,33 @@ const resetQuery = () => {
   handleQuery();
 };
 
+/** 多选框选中数据 */
+const handleSelectionChange = (selection: any[]) => {
+  ids.value = selection.map(item => item.id);
+  single.value = selection.length !== 1;
+  multiple.value = !selection.length;
+};
+
+/** 修改按钮(工具栏) */
+const handleEditSelected = () => {
+  const row = dataList.value.find(item => item.id === ids.value[0]);
+  if (row) {
+    handleEdit(row);
+  }
+};
+
+/** 删除按钮(工具栏) */
+const handleDeleteSelected = async () => {
+  try {
+    await proxy?.$modal.confirm(`确认要删除选中的${ids.value.length}条订阅记录吗?`);
+    await request.delete(`/miniapp/subscription/${ids.value.join(',')}`);
+    proxy?.$modal.msgSuccess('删除成功');
+    getList();
+  } catch {
+    // 取消操作
+  }
+};
+
 /** 编辑 */
 const handleEdit = (row: any) => {
   form.value = {