From 28a42caa310f422ab005ba57455642b7c7997aa2 Mon Sep 17 00:00:00 2001 From: memorylkf <312904636@qq.com> Date: Tue, 30 Dec 2025 16:42:20 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20[=E8=AF=95=E9=AA=8C=E7=AE=A1=E7=90=86]?= =?UTF-8?q?=20[=E9=82=80=E8=AF=B7=E6=88=90=E5=91=98]=20=E9=82=80=E8=AF=B7?= =?UTF-8?q?=E6=88=90=E5=91=98=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/business/study/studySubjectUser.js | 17 +++ src/assets/styles/ruoyi.scss | 6 + .../business/comps/select/SelectDeptUserDialog.vue | 9 +- .../comps/select/SelectDeptUserMultipleDialog.vue | 159 +++++++++++++++++++++ src/views/business/study/comp/suject.vue | 46 +++++- 5 files changed, 228 insertions(+), 9 deletions(-) create mode 100644 src/api/business/study/studySubjectUser.js create mode 100644 src/views/business/comps/select/SelectDeptUserMultipleDialog.vue diff --git a/src/api/business/study/studySubjectUser.js b/src/api/business/study/studySubjectUser.js new file mode 100644 index 0000000..13ed81f --- /dev/null +++ b/src/api/business/study/studySubjectUser.js @@ -0,0 +1,17 @@ +import request from '@/utils/request' + +export function studySubjectUser_getListByStudySubjectId(query) { + return request({ + url: '/system/business/studySubjectUser/getListByStudySubjectId', + method: 'get', + params: query + }) +} + +export function studySubjectUser_save(data) { + return request({ + url: '/system/business/studySubjectUser/save', + method: 'post', + data: data + }) +} diff --git a/src/assets/styles/ruoyi.scss b/src/assets/styles/ruoyi.scss index 8ba5c8b..c12876d 100644 --- a/src/assets/styles/ruoyi.scss +++ b/src/assets/styles/ruoyi.scss @@ -314,6 +314,7 @@ flex-direction: row; align-items: center; padding: 5px 10px; + margin-bottom: 10px; .select-user-selected-name{ flex-shrink: 0; } @@ -326,4 +327,9 @@ } } } +} +.select-dept-user-check-radio-box{ + .el-checkbox__label{ + padding-right: 100px; + } } \ No newline at end of file diff --git a/src/views/business/comps/select/SelectDeptUserDialog.vue b/src/views/business/comps/select/SelectDeptUserDialog.vue index 2922010..5107423 100644 --- a/src/views/business/comps/select/SelectDeptUserDialog.vue +++ b/src/views/business/comps/select/SelectDeptUserDialog.vue @@ -14,15 +14,14 @@ class="filter-tree" :data="list" :props="defaultProps" - :default-expand-all="selected.id==''" + :default-expand-all="true" :default-expanded-keys="selected.id=='' ? []:[selected.id]" :filter-node-method="filterNode" ref="tree" - @node-click="handleChange" node-key="id" > - {{ data.name }} + {{ data.name }} {{ data.name }} @@ -77,10 +76,11 @@ export default { }; }, mounted() { - this.getList() }, methods: { show(id,name){ + this.getList() + this.selected.id = id ?((id+'').indexOf('u_')>-1? id:('u_'+id)):'' this.selected.name=name || '' this.open = true @@ -119,7 +119,6 @@ export default { id:this.selected && this.selected.id?this.selected.id.replace('u_',''):'', name:this.selected.name } - debugger this.$emit('change', obj) this.$emit('input', obj.id) this.open = false diff --git a/src/views/business/comps/select/SelectDeptUserMultipleDialog.vue b/src/views/business/comps/select/SelectDeptUserMultipleDialog.vue new file mode 100644 index 0000000..ecfe866 --- /dev/null +++ b/src/views/business/comps/select/SelectDeptUserMultipleDialog.vue @@ -0,0 +1,159 @@ + + + + + \ No newline at end of file diff --git a/src/views/business/study/comp/suject.vue b/src/views/business/study/comp/suject.vue index a495a56..7d3141d 100644 --- a/src/views/business/study/comp/suject.vue +++ b/src/views/business/study/comp/suject.vue @@ -50,6 +50,7 @@ + @@ -59,7 +60,12 @@ import { studySubject_getAllListByStudyId, studySubject_save } from '@/api/business/study/studySubject' +import { + studySubjectUser_getListByStudySubjectId, + studySubjectUser_save +} from '@/api/business/study/studySubjectUser' import SelectDeptUserDialog from '../../comps/select/SelectDeptUserDialog.vue'; +import SelectDeptUserMultipleDialog from '../../comps/select/SelectDeptUserMultipleDialog.vue'; export default { name: 'StudySubject', props: { @@ -78,7 +84,7 @@ export default { } }, }, - components: {SelectDeptUserDialog}, + components: {SelectDeptUserDialog,SelectDeptUserMultipleDialog}, computed: {}, filters: {}, data() { @@ -94,7 +100,9 @@ export default { leader:'', leaderName:'', } - } + }, + + memberSubject:{} } }, created() {}, @@ -147,13 +155,43 @@ export default { let index = _.findIndex(this.infoDialog.list,(item)=>{ return item.deptId===this.infoDialog.subject.deptId }) - if(index>-1){ this.infoDialog.list.splice(index,1,this.infoDialog.subject) } }, yq(item){ - + this.memberSubject = item + studySubjectUser_getListByStudySubjectId({studySubjectId:item.id}).then(response => { + let memberList = [] + for(let i=0;i{ + }); + }, + changeMember(val){ + let postList = [] + if(val.length>0){ + for(let i=0;i { + }).finally(() => { + this.$modal.closeLoading() + }) }, } }