From 1530f605190069e45b5e31a7ec2bf7a6dc691f39 Mon Sep 17 00:00:00 2001 From: QYF-GitLab1 <1940665526@qq.com> Date: 星期四, 02 一月 2025 14:09:22 +0800 Subject: [PATCH] 1 --- packageCourse/components/baseClass/index.wxss | 6 - packageCourse/pages/studentClass/index.js | 28 ++++++ packageCourse/components/studentManage/index.json | 4 packageCourse/components/studentManage/index.js | 107 ++++++++++++++++++++++++-- packageCourse/pages/studentClass/index.wxml | 2 packageCourse/components/studentManage/index.wxml | 20 +++- packageCourse/components/studentManage/index.wxss | 20 ++++ 7 files changed, 164 insertions(+), 23 deletions(-) diff --git a/packageCourse/components/baseClass/index.wxss b/packageCourse/components/baseClass/index.wxss index 6a149be..300d6cd 100644 --- a/packageCourse/components/baseClass/index.wxss +++ b/packageCourse/components/baseClass/index.wxss @@ -12,7 +12,6 @@ padding: 20rpx; box-sizing: border-box; background-color: #f8f8f8; - margin-bottom: 10rpx; } .statics { @@ -37,8 +36,7 @@ .pubCss { width: 100%; - padding: 20rpx 0; - box-sizing: border-box; + max-height: 300px; } .roleInfo { @@ -68,7 +66,7 @@ .bookData { width: 100%; - height: 200rpx; + height: 250rpx; display: flex; justify-content: space-between; align-items: center; diff --git a/packageCourse/components/studentManage/index.js b/packageCourse/components/studentManage/index.js index 51fc396..1aa437b 100644 --- a/packageCourse/components/studentManage/index.js +++ b/packageCourse/components/studentManage/index.js @@ -36,6 +36,7 @@ }], isAll: false, isEnbled: false, + currentState: 'Normal', // 鍔犺浇鍙傛暟 bottomLoading: false, isMoreData: false, @@ -52,6 +53,38 @@ * 缁勪欢鐨勬柟娉曞垪琛� */ methods: { + changeHandle(e) { + const { + value + } = e.detail; + let cmsList = this.data.userList + this.setData({ + userList: [] + }) + if (value) { + const data = cmsList.filter(item => item.appUser.name.indexOf(value) > -1); + this.setData({ + userList: data + }) + } + if (value == '') { + this.setData({ + userList: [], + }) + this.getStudentList() + } + }, + // 褰撳墠鐘舵�� + onTabsChange(e) { + this.setData({ + currentState: e.detail.value, + userList: [], + isAll: false, + isEnbled: false + }) + this.getStudentList() + }, + // 閫夋嫨瀛︾敓 selectUser(e) { const { @@ -59,13 +92,13 @@ } = e.currentTarget.dataset let bool = false; let allBool = false; - const data = this.data.userList; + const data = [...this.data.userList]; data[index].isCheck = !data[index].isCheck; - const list = data.filter(item => item.isCheck); - if (list.length === this.data.userList.length - 1) { + const list = data.filter(item => item.isCheck == true); + if (list.length === data.length) { allBool = true } - if (list.length > 1) { + if (list.length > 0) { bool = true } this.setData({ @@ -79,7 +112,9 @@ selectAll(e) { const data = this.data.userList; data.forEach(item => { - item.isCheck = e.detail.checked + if (item.linkType != 'Creator') { + item.isCheck = e.detail.checked + } }) this.setData({ userList: data, @@ -90,7 +125,7 @@ // 鎵归噺閫氳繃 updateStateNormalDatas() { - const dataUser = this.data.userList.filter((item) => item.isCheck = true) + const dataUser = this.data.userList.filter((item) => item.isCheck == true) const data = { groupId: this.properties.classId, requests: dataUser.map((item) => { @@ -104,7 +139,10 @@ } app.MG.identity.updateAppUserGroupLink(data).then((res) => { if (res) { - getStudentList() + this.setData({ + userList: [] + }) + this.getStudentList() } }) }, @@ -119,17 +157,65 @@ return } if (res.confirm) { - const dataUser = this.data.userList.filter((item) => item.isCheck = true) + const dataUser = this.data.userList.filter((item) => item.isCheck == true) const data = { groupId: this.properties.classId, appUserIds: dataUser.map((item) => item.appUser.id) } app.MG.identity.removeAppUserFromGroup(data).then((res) => { if (res) { + this.setData({ + userList: [] + }) this.getStudentList() } }) } + } + }) + }, + + // 鎵归噺鎷掔粷 + updateStateRejectDatas() { + const dataUser = this.data.userList.filter((item) => item.isCheck == true) + const data = { + groupId: this.properties.classId, + requests: dataUser.map((item) => { + return { + linkId: item.linkId, + linkType: item.linkType, + state: 'Reject', + groupState: 'Normal' + } + }) + } + app.MG.identity.updateAppUserGroupLink(data).then((res) => { + if (res) { + this.setData({ + userList: [] + }) + this.getStudentList() + } + }) + }, + + // 鏇存柊鐘舵�� 鎷掔粷 + updateStateReject(e) { + const { + item + } = e.currentTarget.dataset + const data = { + groupId: this.properties.classId, + requests: [{ + linkId: item.linkId, + linkType: item.linkType, + state: 'Reject', + groupState: 'Normal' + }] + } + app.MG.identity.updateAppUserGroupLink(data).then((res) => { + if (res) { + this.getStudentList() } }) }, @@ -139,6 +225,11 @@ const data = { start: (this.data.page - 1) * this.data.limit, size: this.data.limit, + filterList: [{ + value: this.data.currentState, + field: "State", + subFilters: [] + }], searchList: this.data.searchKey ? [{ keywords: this.data.searchKey, field: 'Name', diff --git a/packageCourse/components/studentManage/index.json b/packageCourse/components/studentManage/index.json index f219418..ceb9958 100644 --- a/packageCourse/components/studentManage/index.json +++ b/packageCourse/components/studentManage/index.json @@ -14,6 +14,8 @@ "t-icon": "tdesign-miniprogram/icon/icon", "t-radio": "tdesign-miniprogram/radio/radio", "t-radio-group": "tdesign-miniprogram/radio-group/radio-group", - "t-checkbox": "tdesign-miniprogram/checkbox/checkbox" + "t-checkbox": "tdesign-miniprogram/checkbox/checkbox", + "t-tabs": "tdesign-miniprogram/tabs/tabs", + "t-tab-panel": "tdesign-miniprogram/tab-panel/tab-panel" } } \ No newline at end of file diff --git a/packageCourse/components/studentManage/index.wxml b/packageCourse/components/studentManage/index.wxml index a655a41..a4b1fe6 100644 --- a/packageCourse/components/studentManage/index.wxml +++ b/packageCourse/components/studentManage/index.wxml @@ -3,6 +3,13 @@ <view class="header"> <t-search style="flex:1" value="{{searchKey}}" bind:clear="changeHandle" bind:submit="changeHandle" placeholder="鎼滅储鍚嶇О" clearable /> </view> + <view class="tabComtyent"> + <t-tabs class="custom-tabs" defaultValue="{{currentState}}" bind:change="onTabsChange" t-class="custom-tabs"> + <t-tab-panel label="宸查�氳繃" value="Normal" /> + <t-tab-panel label="寰呭鏍�" value="WaitValid" /> + <t-tab-panel label="鏈�氳繃" value="Reject" /> + </t-tabs> + </view> <view class="contentList" wx:if="{{userList.length > 0}}"> <scroll-view class="scroll" class="content" bind:scroll="onPageScroll" model:scroll-top="{{setScrollValue}}" scroll-y refresher-enabled="{{true}}" lower-threshold="{{80}}" refresher-threshold="{{80}}" refresher-default-style="none" refresher-triggered="{{triggered}}" bindrefresherpulling="{{refresh.onPulling}}" bindrefresherrefresh="onPullDownRefresh" bindscrolltolower="onReachBottom"> <view slot="refresher" class="refresh-container"> @@ -17,9 +24,11 @@ <text class="user">{{item.appUser.name}}</text> </view> <view> - <t-button bindtap="selectIdentity" data-item="{{item}}" style="margin: 0;color: green;" size="extra-small" wx:if="{{item.state != 'Normal' && item.linkType != 'Creator'}}" variant="text">閫氳繃</t-button> - <t-button bindtap="removeStudent" data-item="{{item}}" style="margin: 0;color: red;" size="extra-small" wx:if="{{item.linkType != 'Creator' }}" variant="text">绉婚櫎</t-button> <text style="color: #ff6d00;" wx:if="{{item.linkType == 'Creator'}}">鍒涘缓浜�</text> + <text style="color: #ff6d00;" wx:if="{{item.state == 'Reject'}}">宸叉嫆缁�</text> + <t-button bindtap="selectIdentity" data-item="{{item}}" style="margin: 0;color: #67c23a;" size="extra-small" wx:if="{{item.state != 'Normal' && item.linkType != 'Creator' && item.state != 'Reject'}}" variant="text">閫氳繃</t-button> + <t-button bindtap="removeStudent" data-item="{{item}}" style="margin: 0;color: red;" size="extra-small" wx:if="{{item.linkType != 'Creator' && item.state == 'Normal' }}" variant="text">绉婚櫎</t-button> + <t-button bindtap="updateStateReject" data-item="{{item}}" style="margin: 0;color: #ff6d00;" size="extra-small" wx:if="{{item.linkType != 'Creator' && item.state != 'Normal' && item.state != 'Reject' }}" variant="text">鎷掔粷</t-button> </view> </view> <view class="bottom-loading" wx:if="{{bottomLoading}}"> @@ -33,13 +42,14 @@ <view class="content" wx:if="{{userList.length == 0}}"> <empty /> </view> - <view class="navBottom" wx:if="{{userList.length > 1}}"> + <view class="navBottom"> <view class="navBottom-check"> <t-checkbox block="{{false}}" label="鍏ㄩ��" checked="{{isAll}}" bind:change="selectAll" /> </view> <view class="navBtn"> - <t-button disabled="{{!isEnbled}}" style="margin-right:10px" size="extra-small" bindtap="updateStateNormalDatas">鎵归噺閫氳繃</t-button> - <t-button disabled="{{!isEnbled}}" size="extra-small" theme="danger" bindtap="removeStudentDatas">鎵归噺绉婚櫎</t-button> + <t-button class="custom-css" wx:if="{{currentState == 'WaitValid'}}" disabled="{{!isEnbled}}" style="margin-right:10px;" size="extra-small" bindtap="updateStateNormalDatas">鎵归噺閫氳繃</t-button> + <t-button wx:if="{{currentState != 'WaitValid'}}" disabled="{{!isEnbled}}" size="extra-small" theme="danger" bindtap="removeStudentDatas">鎵归噺绉婚櫎</t-button> + <t-button wx:if="{{currentState == 'WaitValid'}}" disabled="{{!isEnbled}}" size="extra-small" theme="danger" bindtap="updateStateRejectDatas">鎵归噺鎷掔粷</t-button> </view> </view> </view> diff --git a/packageCourse/components/studentManage/index.wxss b/packageCourse/components/studentManage/index.wxss index 2afdb87..07e031c 100644 --- a/packageCourse/components/studentManage/index.wxss +++ b/packageCourse/components/studentManage/index.wxss @@ -1,4 +1,14 @@ /* packageCourse/pages/course/index.wxss */ +.custom-css { + --td-button-default-disabled-bg: #ccc; + --td-button-default-bg-color: #67c23a; + --td-button-default-border-color: #67c23a; +} + +.custom-tabs { + --td-tab-item-active-color: #ff6d00; + --td-tab-track-color: #ff6d00; +} .demo-section__content { margin-top: 32rpx; @@ -48,6 +58,14 @@ background-color: #fff; } +.tabComtyent { + width: 100%; +} + +.tabComtyent .t-tabs__item--active { + color: #ff6d00 !important; +} + .header .t-search__input-box { height: 70rpx !important; font-size: 28rpx; @@ -55,7 +73,7 @@ .contentList { width: 100%; - height: calc(100% - 55px - 45px); + height: calc(100% - 55px - 45px - 48px); background-color: #fff; } diff --git a/packageCourse/pages/studentClass/index.js b/packageCourse/pages/studentClass/index.js index e18f442..4ba4389 100644 --- a/packageCourse/pages/studentClass/index.js +++ b/packageCourse/pages/studentClass/index.js @@ -42,11 +42,14 @@ // 閫氳繃code鏌ヨ鐝骇 getClassDetail() { - if (this.data.refCode == '') { + if (!this.data.refCode) { wx.showToast({ title: '璇疯緭鍏ラ個璇风爜', duration: 1000, icon: "none", + }) + this.setData({ + classDetail: null }) return false } @@ -56,14 +59,29 @@ app.MG.edu .getCourseClass(data) .then(res => { - if (res) { + if (res.linkProductDto) { res.classTime = moment(res.beginDate).format('YYYY-MM-DD') + '--' + moment(res.endDate).format('YYYY-MM-DD') this.setData({ classDetail: res }) + } else { + this.setData({ + classDetail: null + }) + wx.showToast({ + title: '閭�璇风爜鏃犳晥', + icon: "none" + }) } }) .catch(err => { + wx.showToast({ + title: '閭�璇风爜鏃犳晥', + icon: "none" + }) + this.setData({ + classDetail: null + }) console.log(err) }) }, @@ -78,7 +96,9 @@ // 鍏抽棴鐢宠 cancle() { this.setData({ - visible: false + visible: false, + classDetail: null, + refCode: '' }) }, @@ -161,6 +181,8 @@ classList: list, totalSize: totalSize, visible: false, + classDetail: null, + refCode: '', skeletonLoding: false, bottomLoading: false }) diff --git a/packageCourse/pages/studentClass/index.wxml b/packageCourse/pages/studentClass/index.wxml index b431df0..bcbcd15 100644 --- a/packageCourse/pages/studentClass/index.wxml +++ b/packageCourse/pages/studentClass/index.wxml @@ -53,7 +53,7 @@ <view class="c-name"> <text>閭�璇风爜锛� </text> <view class="c-name-option"> - <t-input value="{{refCode}}" bindchange="onCourseNameInput" borderless clearable placeholder="璇疯緭鍏ラ個璇风爜" /> + <t-input value="{{refCode}}" bind:change="onCourseNameInput" bind:clear="onCourseNameInput" borderless clearable placeholder="璇疯緭鍏ラ個璇风爜" /> <t-button bindtap="getClassDetail" size="small" style="margin-left: 15rpx;">鏌ョ湅鐝骇</t-button> </view> </view> -- Gitblit v1.9.1