From a9b36884c33b0938743f69cdbd85dc02416c41ab Mon Sep 17 00:00:00 2001 From: huweihang Date: Wed, 17 Dec 2025 18:48:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=85=A8=E9=87=8F=E6=9C=BA=E6=9E=84=E6=A0=91=E7=9A=84API?= =?UTF-8?q?=EF=BC=8C=E4=BC=98=E5=8C=96SignupModal=E5=92=8CManageListRemote?= =?UTF-8?q?=E7=BB=84=E4=BB=B6=E7=9A=84=E7=BB=84=E7=BB=87=E6=A0=91=E4=BA=A4?= =?UTF-8?q?=E4=BA=92=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/boe/userbasic.js | 18 +-- src/components/signup/SignupModal.vue | 21 ++- src/views/course/ManageListRemote.vue | 179 ++++++++++++++++++-------- 3 files changed, 153 insertions(+), 65 deletions(-) diff --git a/src/api/boe/userbasic.js b/src/api/boe/userbasic.js index 918bdf3f..2ed576ba 100644 --- a/src/api/boe/userbasic.js +++ b/src/api/boe/userbasic.js @@ -46,6 +46,14 @@ const getUserInfoById = function(id) { return ajax.postJson(baseURL,'/user/list',{id}); } +/** + * 获取全量机构树 + * GET /userbasic/organization/all/tree + */ +const getAllOrgTree = function () { + return ajax.get(baseURL, '/organization/all/tree'); +}; + /** * https://u-pre.boe.com/userbasic/audience/userAudiences * 【当前代码中未查询到】获取当前用户受众信息 @@ -103,14 +111,6 @@ const getUsersByIds = function(ids) { return ajax.postJson(baseURL,'/user/getUserMessageToDai',ids); } -/** - * 根据关键字检索用户(创建人下拉) - * @param {string} keyword - */ -const selectUser = function(keyword = '') { - return ajax.postJson(baseURL,'/user/selectuser',{ keyword }); -} - export default { userParentOrg, findOrgsByKeyword, @@ -125,5 +125,5 @@ export default { getUsersByIds, updateUser, logout, - selectUser + getAllOrgTree } diff --git a/src/components/signup/SignupModal.vue b/src/components/signup/SignupModal.vue index 1295a05d..50888b86 100644 --- a/src/components/signup/SignupModal.vue +++ b/src/components/signup/SignupModal.vue @@ -77,7 +77,14 @@ 重置 - @@ -573,13 +580,25 @@ export default { this.stuSelectRows = this.stuSelectRows.filter( (i) => (i.id || i.userId) !== (item.id || item.userId) ); + // 同步左侧快速选人表格的勾选状态 + this.$nextTick(() => { + this.syncStuTableSelection(); + }); }, removeOrg(item) { this.deptList = this.deptList.filter((i) => i.id !== item.id); this.selectedOrgKeys = this.deptList.map((d) => d.id); + // 同步左侧组织树的勾选状态 + if (this.$refs.orgTree && this.$refs.orgTree.setCheckedKeys) { + this.$refs.orgTree.setCheckedKeys(this.selectedOrgKeys); + } }, removeAudience(item) { this.auditSelectRows = this.auditSelectRows.filter((i) => i.id !== item.id); + // 同步左侧受众表格的勾选状态 + this.$nextTick(() => { + this.syncAudienceTableSelection(); + }); }, submitAuth() { if (this.type === 2) { diff --git a/src/views/course/ManageListRemote.vue b/src/views/course/ManageListRemote.vue index e9a2cbcf..3271fd2d 100644 --- a/src/views/course/ManageListRemote.vue +++ b/src/views/course/ManageListRemote.vue @@ -100,9 +100,12 @@ placeholder="资源归属" clearable :props="resOwnerCascaderProps" + :options="resOwnerOptions" :show-all-levels="false" @change="handleResOwnerChange" @input.native="limitResOwnerInput" + @clear="handleResOwnerClear" + @visible-change="handleResOwnerVisibleChange" filterable :filter-method="resOwnerFilterMethod" > @@ -227,7 +230,7 @@ {{ scope.row.openCourse == 1 ? '是' : '否' }} - +