44 :model =" projectFormModel"
55 label-placement =" top"
66 label-width =" auto"
7+ class =" max-h-600px overflow-y-auto"
78 >
89 <n-list >
910 <template #header >
7980 </div >
8081 </template >
8182 <n-list-item >
82- <n-button @click =" handleSelectMembers()" >选择成员</n-button >
83- <!-- <n-form-item
84- path="memberList"
85- >
86- <n-input
87- v-model:value="projectFormModel.memberList"
88- />
89- </n-form-item> -->
83+ <n-space vertical >
84+ <n-form-item
85+ v-for =" (userRoleItem, index) in userRoleMap"
86+ :key =" index"
87+ label-placement =" left"
88+ :label =" userRoleItem.label + ':'"
89+ >
90+ <n-space >
91+ <n-tag
92+ v-for =" (memberListRoleItem) in projectFormModel.memberList[userRoleItem.value]"
93+ :key =" memberListRoleItem.userId"
94+ closable
95+ >
96+ {{ memberListRoleItem.username }}
97+ </n-tag >
98+ <n-button
99+ size =" small"
100+ type =" primary"
101+ dashed
102+ @click =" handleSelectMembers(userRoleItem)"
103+ >
104+ 添加
105+ </n-button >
106+ </n-space >
107+ <!-- <n-button @click="handleSelectMembers()">选择成员</n-button> -->
108+ </n-form-item >
109+ </n-space >
90110 </n-list-item >
91111 </n-list >
112+ <pre >{{ JSON.stringify(projectFormModel, null, 2) }}</pre >
92113 </n-form >
93- <pre >{{ JSON.stringify(projectFormModel, null, 2) }}</pre >
94114
95115</template >
96116
@@ -114,6 +134,10 @@ import {
114134 ProjectLevelMap
115135} from ' @/modules/HomeFront/data'
116136
137+ import {
138+ userRoleMap
139+ } from ' @/modules/MemberTeam/data'
140+
117141import MemberAssignCard from ' @/modules/MemberTeam/components/MemberAssignCard.vue'
118142
119143defineOptions ({
@@ -129,7 +153,13 @@ const projectFormModel = ref<TypesHomeFront.TypeCreateProjectInfo>({
129153 projectDesc: ' ' ,
130154 startDate: null ,
131155 endDate: null ,
132- memberList: ' '
156+ memberList: {
157+ teamMember: [],
158+ teamLeader: [],
159+ projectManager: [],
160+ qualityManager: [],
161+ reviewManager: []
162+ }
133163})
134164
135165
@@ -238,8 +268,12 @@ const projectBasicMap = shallowRef([
238268 }
239269])
240270
241- const handleSelectMembers = () => {
242- const dd = window .$ModalDialog .create ({
271+ const refMemberAsign = ref ()
272+ const handleSelectMembers = (userRoleItem ) => {
273+ const _member = reactive (
274+ projectFormModel .value .memberList [userRoleItem .value ]
275+ )
276+ window .$ModalDialog .create ({
243277 title: ' 选择成员' ,
244278 style: {
245279 maxWidth: ' 650px' ,
@@ -248,22 +282,15 @@ const handleSelectMembers = () => {
248282 maskClosable: false ,
249283 closeOnEsc: false ,
250284 content : () => h (
251- MemberAssignCard
285+ MemberAssignCard ,
286+ {
287+ ref: refMemberAsign ,
288+ modelValue: _member
289+ }
252290 ),
253291 positiveText: ' 确定' ,
254292 async onPositiveClick() {
255- // const isValid = await instanceRef.value.validateRules()
256- // if (!isValid) {
257- // return Promise.reject()
258- // }
259-
260- // dd.loading = true
261- // dd.positiveText = '提交中..'
262- // await sleep(1000)
263-
264- // dd.positiveText = _positiveText
265- // dd.loading = false
266- return Promise .reject ()
293+ projectFormModel .value .memberList [userRoleItem .value ] = refMemberAsign .value .checkedRowsRef
267294 }
268295 })
269296}
0 commit comments