From 507deefd69a980e4d0d0c2e8da0dacad800951f7 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期五, 24 十月 2025 15:16:19 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/user_action' into user_action
---
pages/userPermissions/userPermissions.vue | 118 ++++++++++++++++++++++-------------------------------------
1 files changed, 44 insertions(+), 74 deletions(-)
diff --git a/pages/userPermissions/userPermissions.vue b/pages/userPermissions/userPermissions.vue
index 7edfdf3..74d9a78 100644
--- a/pages/userPermissions/userPermissions.vue
+++ b/pages/userPermissions/userPermissions.vue
@@ -2,31 +2,30 @@
<view class="container">
<!-- 鏍囬 -->
<view class="header">
- <text class="title">鐢ㄦ埛鍒楄〃</text>
-
+ <text class="title">搴楀憳鍒楄〃</text>
</view>
<view>
- <button class="add-btn" @click="navigateToAdd()" :disabled="!isShopkeeper">鏂板鐢ㄦ埛</button>
+ <button class="add-btn" @click="navigateToAdd()">鏂板搴楀憳</button>
</view>
<!-- 鎼滅储妗� -->
<view class="search-box">
- <u-search v-model="query.realName" placeholder="鎼滅储濮撳悕" :showAction="false" @change="searchUser()"></u-search>
+ <u-search v-model="query.realName" placeholder="鎼滅储濮撳悕" :showAction="false" @change="searchClerk()"></u-search>
</view>
- <!-- 鐢ㄦ埛鍒楄〃 -->
- <scroll-view scroll-y class="user-list" @scrolltolower="loadMore" v-if="userList.length > 0">
- <view class="user-item" v-for="(user, index) in userList" :key="user.id" >
+ <!-- 搴楀憳鍒楄〃 -->
+ <scroll-view scroll-y class="clerk-list" @scrolltolower="loadMore" v-if="clerkList.length > 0">
+ <view class="clerk-item" v-for="(clerk, index) in clerkList" :key="clerk.id" >
- <view class="user-info">
- <text class="realName">{{ user.realName ? user.realName: '鏈缃汉鍚�' }}</text>
- <text class="mobile">{{ user.mobile }}</text>
+ <view class="clerk-info">
+ <text class="realName">{{ clerk.realName ? clerk.realName: '鏈缃汉鍚�' }}</text>
+ <text class="mobile">{{ clerk.mobile }}</text>
</view>
<!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
<view class="action-buttons">
- <u-button type="primary" size="mini" @click.stop="restPassword(user.memberId)" class="edit-btn" :disabled="!checkPermission(user)">閲嶇疆瀵嗙爜</u-button>
- <u-button type="primary" size="mini" @click.stop="navigateToDetail(user.id)" class="edit-btn" :disabled="!checkPermission(user)">淇敼</u-button>
- <u-button type="error" size="mini" @click.stop="deleteUser(user.id)"
- class="delete-btn" :disabled="!checkPermission(user)">鍒犻櫎</u-button>
+ <u-button type="primary" size="mini" @click.stop="restPassword(clerk.memberId)" class="edit-btn" :disabled="!checkPermission(clerk)">閲嶇疆瀵嗙爜</u-button>
+ <u-button type="primary" size="mini" @click.stop="navigateToDetail(clerk.id)" class="edit-btn" :disabled="!checkPermission(clerk)">淇敼</u-button>
+ <u-button type="error" size="mini" @click.stop="deleteUser(clerk.id)"
+ class="delete-btn" :disabled="!checkPermission(clerk)">鍒犻櫎</u-button>
</view>
</view>
@@ -35,7 +34,7 @@
<view class="load-more">
<u-loadmore
- v-if="userList.length > 0"
+ v-if="clerkList.length > 0"
:status="loading ? 'loading' : noMore ? 'nomore' : 'loadmore'"
:load-text="{
loadmore: '涓婃媺鍔犺浇鏇村',
@@ -62,15 +61,7 @@
restPassword,
checkClerkPermission
} from "@/api/userPermissions.js"
- import UIcon from '@/uview-components/uview-ui/components/u-icon/u-icon.vue';
- import UButton from '@/uview-components/uview-ui/components/u-button/u-button.vue';
- import UForm from '@/uview-components/uview-ui/components/u-form/u-form.vue';
- import UFormItem from '@/uview-components/uview-ui/components/u-form-item/u-form-item.vue';
- import UInput from '@/uview-components/uview-ui/components/u-input/u-input.vue';
- import USearch from '@/uview-components/uview-ui/components/u-search/u-search.vue';
- import UPopup from '@/uview-components/uview-ui/components/u-popup/u-popup.vue';
- import ULoading from '@/uview-components/uview-ui/components/u-loading/u-loading.vue';
- import ULoadmore from '@/uview-components/uview-ui/components/u-loadmore/u-loadmore.vue';
+ import '@/components/uview-components/uview-ui';
import storage from "@/utils/storage.js"; //缂撳瓨
import {
@@ -78,22 +69,12 @@
} from "@/api/members";
export default {
- components: {
- UIcon,
- UButton,
- UForm,
- UFormItem,
- UInput,
- USearch,
- UPopup,
- ULoading,
- ULoadmore,
- },
data() {
return {
- userList: [], // 鐢ㄦ埛鍒楄〃鏁版嵁
+ total:0,
+ clerkList: [], // 搴楀憳鍒楄〃鏁版嵁
loading: false, // 鍔犺浇鐘舵��
- noMoreData: false, // 鏄惁娌℃湁鏇村鏁版嵁
+ noMore: false, // 鏄惁娌℃湁鏇村鏁版嵁
query: {
realName: '',
pageNumber: 1,
@@ -109,7 +90,7 @@
},
onLoad() {
this.getPage()
- //鑾峰緱鐢ㄦ埛鏉冮檺
+ //鑾峰緱搴楀憳鏉冮檺
checkClerkPermission().then(res=>{
this.isSuper = res.data.data.isSuper;
this.isShopkeeper = res.data.data.isShopkeeper;
@@ -120,14 +101,14 @@
methods: {
//妫�鏌ユ潈闄�
- checkPermission(user){
+ checkPermission(clerk){
if(this.isShopkeeper){
return true;
}
- if(this.clerkId === user.id){
+ if(this.clerkId === clerk.id){
return true;
}else{
- if(this.isSuper && !user.isSuper){
+ if(this.isSuper && !clerk.isSuper){
return true;
}
return false;
@@ -153,43 +134,46 @@
getPage(this.query).then(res => {
uni.hideLoading();
if (res.statusCode === 200) {
- const data = res.data.data;
- if (this.query.pageNumber === 1) {
- this.userList = data || [];
- console.log(this.userList.length)
- } else {
- // 鍚﹀垯杩藉姞鏁版嵁
- this.userList = [...this.userList, ...(data || [])];
-
- }
+ const newData = res.data.data;
+ // 鏇存柊鎬绘暟鎹噺
+ this.total = res.data.total || 0;
+ // 杩藉姞鎴栨浛鎹㈡暟鎹�
+ this.clerkList = this.query.pageNumber === 1 ?
+ newData :
+ [...this.clerkList, ...newData];
+
+ // 鍒ゆ柇鏄惁杩樻湁鏇村鏁版嵁
+ this.noMore = newData.length < this.query.pageSize ||
+ this.clerkList.length >= this.total;
+
}
})
},
- // 鎼滅储鐢ㄦ埛
- searchUser() {
+ // 鎼滅储搴楀憳
+ searchClerk() {
this.query.pageNumber = 1
- this.noMoreData = false
- this.userList = []
+ this.noMore = false
+ this.clerkList = []
this.getPage()
},
// 鍔犺浇鏇村
loadMore() {
- if (!this.noMoreData) {
+ if (!this.noMore) {
this.query.pageNumber++
this.getPage()
}
},
- // 璺宠浆鍒版柊澧炵敤鎴�
+ // 璺宠浆鍒版柊澧炲簵鍛�
navigateToAdd() {
uni.navigateTo({
url: `/pages/userPermissions/addStoreMember`
})
},
- // 璺宠浆鍒扮敤鎴疯鎯�
+ // 璺宠浆鍒板簵鍛樿鎯�
navigateToDetail(id) {
uni.navigateTo({
url: `/pages/userPermissions/addStoreMember?id=${id}`
@@ -209,20 +193,6 @@
</script>
<style lang="scss" scoped>
- .user-item {
- display: flex;
- justify-content: space-between;
- align-items: center;
- padding: 20rpx;
- border-bottom: 1rpx solid #f5f5f5;
- }
-
- .user-info {
- flex: 1;
- display: flex;
- flex-direction: column;
- }
-
.action-buttons {
display: flex;
margin-left: 20rpx;
@@ -272,12 +242,12 @@
margin-bottom: 20rpx;
}
- .user-list {
+ .clerk-list {
flex: 1;
overflow: hidden;
}
- .user-item {
+ .clerk-item {
display: flex;
align-items: center;
padding: 20rpx;
@@ -293,7 +263,7 @@
margin-right: 20rpx;
}
- .user-info {
+ .clerk-info {
flex: 1;
display: flex;
flex-direction: column;
--
Gitblit v1.8.0