Răsfoiți Sursa

feat(DealerView): 优化用户列表操作功能

- 添加修改用户单个号码最大发送条数功能
- 调整操作按钮布局,优化界面结构
- 增加下拉菜单,分类展示余额操作和登录操作
- 修复筛号余额充值功能的显示逻辑
wui 1 an în urmă
părinte
comite
9d951304ff
1 a modificat fișierele cu 90 adăugiri și 11 ștergeri
  1. 90 11
      src/views/DealerView.vue

+ 90 - 11
src/views/DealerView.vue

@@ -40,18 +40,65 @@
         <ElTableColumn prop="createdAt" label="注册时间" :formatter="timeFormatter" width="150" />
         <ElTableColumn prop="balance" label="余额" />
         <ElTableColumn prop="screenBalance" label="筛号余额" width="100" show-overflow-tooltip />
-        <ElTableColumn prop="rate" label="费率" />
-        <ElTableColumn prop="send" label="已消费" />
-        <ElTableColumn label="操作" align="center" width="680">
+        <ElTableColumn prop="rate" label="费率" align="center" />
+        <ElTableColumn prop="send" label="已消费" align="center" />
+        <ElTableColumn prop="maxSend" label="号码发送条数" v-if="isAdmin" width="90" align="center" />
+        <ElTableColumn label="操作" align="center" width="450">
             <template #default="{ row }">
-                <ElButton type="warning" v-if="isSuperApi" plain @click="userEdit(row)">编辑</ElButton>
-                <ElButton v-if="isApi" plain @click="transfer(row.id)">余额划转</ElButton>
-                <ElButton v-if="isSuperApi" plain @click="recharge(row.id)">余额充值</ElButton>
-                <ElButton v-if="isSuperApi" plain @click="screenRecharge(row.id)">筛号余额</ElButton>
-                <ElButton v-if="isAdmin" plain @click="rate(row.id)">修改费率</ElButton>
-                <ElButton type="primary" size="small" @click="detail(row)">余额记录</ElButton>
-                <ElButton type="danger" v-if="isSuperApi" plain @click="twoFactor(row)">二次验证重置</ElButton>
-                <ElButton type="danger" v-if="isSuperApi" plain @click="passwordEdit(row)">密码重置</ElButton>
+                <ElButton type="warning" v-if="isSuperApi" plain @click="userEdit(row)" class="operation-btn">
+                    编辑
+                </ElButton>
+                <ElButton v-if="isAdmin" plain @click="rate(row.id)" class="operation-btn">修改费率</ElButton>
+                <ElButton v-if="isAdmin" plain @click="maxSend(row.id)" class="operation-btn">修改条数</ElButton>
+
+                <ElDropdown trigger="click" class="operation-btn">
+                    <el-button type="primary">
+                        余额操作
+                        <el-icon class="el-icon--right">
+                            <arrow-down />
+                        </el-icon>
+                    </el-button>
+                    <!-- 下拉菜单内容 -->
+                    <template #dropdown>
+                        <el-dropdown-menu>
+                            <el-dropdown-item v-if="isApi" @click="transfer(row.id)"> 余额划转</el-dropdown-item>
+                            <el-dropdown-item v-if="isSuperApi" @click="recharge(row.id)"> 余额充值</el-dropdown-item>
+                            <el-dropdown-item v-if="isSuperApi" @click="screenRecharge(row.id)">
+                                筛号余额充值
+                            </el-dropdown-item>
+                            <el-dropdown-item type="primary" size="small" @click="detail(row)" class="operation-btn">
+                                余额记录
+                            </el-dropdown-item>
+                        </el-dropdown-menu>
+                    </template>
+                </ElDropdown>
+
+                <ElDropdown trigger="click" class="operation-btn">
+                    <el-button type="danger">
+                        登录操作
+                        <el-icon class="el-icon--right">
+                            <arrow-down />
+                        </el-icon>
+                    </el-button>
+                    <!-- 下拉菜单内容 -->
+                    <template #dropdown>
+                        <el-dropdown-menu>
+                            <el-dropdown-item type="danger" v-if="isSuperApi" plain @click="twoFactor(row)"
+                                >二次验证重置
+                            </el-dropdown-item>
+                            <el-dropdown-item type="danger" v-if="isSuperApi" plain @click="passwordEdit(row)"
+                                >密码重置
+                            </el-dropdown-item>
+                        </el-dropdown-menu>
+                    </template>
+                </ElDropdown>
+
+                <!--                <ElButton v-if="isApi" plain @click="transfer(row.id)">余额划转</ElButton>-->
+                <!--                <ElButton v-if="isSuperApi" plain @click="recharge(row.id)">余额充值</ElButton>-->
+                <!--                <ElButton v-if="isSuperApi" plain @click="screenRecharge(row.id)">筛号余额</ElButton>-->
+                <!--                <ElButton type="primary" size="small" @click="detail(row)" class="operation-btn">余额记录</ElButton>-->
+                <!--                <ElButton type="danger" v-if="isSuperApi" plain @click="twoFactor(row)">二次验证重置</ElButton>-->
+                <!--                <ElButton type="danger" v-if="isSuperApi" plain @click="passwordEdit(row)">密码重置</ElButton>-->
             </template>
         </ElTableColumn>
     </PagingTable>
@@ -188,6 +235,7 @@ import { useUserStore } from '@/stores/user'
 import ExpandItem from '@/components/ExpandItem.vue'
 import UserAvatar from '@/components/UserAvatar.vue'
 import { format } from 'date-fns'
+import { ArrowDown } from '@element-plus/icons-vue'
 
 const isAdmin = inject('isAdmin')
 const isSuperApi = inject('isSuperApi')
@@ -420,6 +468,30 @@ const rate = async (userId) => {
         })
 }
 
+const maxSend = async (userId) => {
+    ElMessageBox.prompt('请输入单个号码最大发送条数', '修改条数', {
+        confirmButtonText: '确认',
+        cancelButtonText: '取消',
+        inputErrorMessage: '请输入正整数!',
+        inputPattern: /^[1-9]\d*$/
+    })
+        .then(async ({ value }) => {
+            const url = '/users/updateMaxSend/' + userId + '/' + value
+            await http.get(url)
+            table.value.refresh()
+            ElMessage({
+                type: 'success',
+                message: `条数修改成功`
+            })
+        })
+        .catch(() => {
+            ElMessage({
+                type: 'info',
+                message: '取消条数修改'
+            })
+        })
+}
+
 const selectedRow = ref(null)
 const showDetailDialog = ref(false)
 const showExportDialog = ref(false)
@@ -598,3 +670,10 @@ async function confirmExport() {
     exportDialog()
 }
 </script>
+
+<style scoped>
+.operation-btn {
+    margin-bottom: auto;
+    margin-left: 10px;
+}
+</style>