提交 00d74712 authored 作者: 王鹏飞's avatar 王鹏飞

bug fixes

上级 464d1a00
......@@ -101,3 +101,8 @@ export function bindTag(data: { channels_id: string; tags: string }) {
export function getQrcode(params: { id: string; project_id: string }) {
return httpRequest.get('/api/zws/v1/backend/channel/qrcode', { params })
}
// 获取用户所在渠道的角色
export function getMemberRoles(params: { user_id: string; channel_id: string }) {
return httpRequest.get('/api/zws/v1/backend/channel/member-roles', { params })
}
......@@ -2,12 +2,14 @@
import type { FormInstance, FormRules } from 'element-plus'
import type { User, Role } from '../types'
import SelectUser from '@/components/SelectUser.vue'
import { getRoles } from '../api'
import { getRoles, getMemberRoles } from '../api'
interface FormData {
user: User
role: Role[]
}
const props = defineProps<{ channelId?: string }>()
const emit = defineEmits<{
(e: 'update:modelValue', modelValue: boolean): void
(e: 'submit', data: FormData): void
......@@ -30,6 +32,17 @@ onMounted(() => {
fetchRoles()
})
// 获取成员已有角色
function fetchMemberRoles() {
if (!(props.channelId && form.user?.id)) return
getMemberRoles({
user_id: form.user.id,
channel_id: props.channelId
}).then(res => {
form.role = res.data || []
})
}
// 选择完成
function submit() {
formRef?.validate().then(() => {
......@@ -46,7 +59,7 @@ function submit() {
@update:modelValue="$emit('update:modelValue')">
<el-form :rules="rules" :model="form" hide-required-asterisk ref="formRef">
<el-form-item label="选择成员" prop="user">
<SelectUser v-model="form.user"></SelectUser>
<SelectUser v-model="form.user" @change="fetchMemberRoles"></SelectUser>
</el-form-item>
<el-form-item label="选择角色" prop="role">
<el-select v-model="form.role" multiple placeholder="请选择" value-key="id" style="width: 100%">
......
......@@ -178,6 +178,7 @@ function submit() {
<el-date-picker
v-model="form.expire_range_month_start"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择"
style="width: 100%" />
</el-form-item>
......@@ -187,6 +188,7 @@ function submit() {
<el-date-picker
v-model="form.expire_range_month_end"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择"
style="width: 100%" />
</el-form-item>
......
......@@ -51,6 +51,7 @@ const form = inject(provideForm) as ChannelFormData
<el-date-picker
v-model="form.partner.agreement_signing_time"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择"
style="width: 100%" />
</el-form-item>
......@@ -60,6 +61,7 @@ const form = inject(provideForm) as ChannelFormData
<el-date-picker
v-model="form.partner.agreement_filing_time"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择"
style="width: 100%" />
</el-form-item>
......@@ -69,6 +71,7 @@ const form = inject(provideForm) as ChannelFormData
<el-date-picker
v-model="form.partner.channel_open_time"
type="date"
value-format="YYYY-MM-DD"
placeholder="请选择"
style="width: 100%" />
</el-form-item>
......
......@@ -48,7 +48,7 @@ function handleChangeUser(user: SearchUser) {
</el-col>
<el-col :span="4">
<el-form-item label="渠道标签">
<el-select v-model="form.tags" placeholder="请选择" multiple collapse-tags style="width: 100%">
<el-select v-model="form.tags" placeholder="请选择" multiple style="width: 100%">
<el-option v-for="item in options.channelTags" :key="item" :label="item" :value="item" />
</el-select>
</el-form-item>
......
......@@ -98,5 +98,9 @@ function handleDelete(row: ChannelMember, index: number) {
</template>
</AppList>
</el-card>
<AddMember v-model="memberVisible" @submit="handleSubmitMember" v-if="memberVisible"></AddMember>
<AddMember
v-model="memberVisible"
:channelId="form.channel_id"
@submit="handleSubmitMember"
v-if="memberVisible"></AddMember>
</template>
......@@ -101,7 +101,7 @@ function toggleSelection() {
appList?.tableRef.clearSelection()
}
let multipleSelection = $ref<any[]>([])
let multipleSelection = $ref<ChannelItem[]>([])
function handleSelectionChange(value: any) {
multipleSelection = value
}
......
......@@ -59,3 +59,8 @@ export function addMember(data: { user_id: string; projects_id: string; roles: s
export function deleteProject(data: { id: string }) {
return httpRequest.post('/api/zws/v1/backend/project/delete', data)
}
// 获取用户所在项目的角色
export function getMemberRoles(params: { user_id: string; project_id: string }) {
return httpRequest.get('/api/zws/v1/backend/project/member-roles', { params })
}
<script setup lang="ts">
import type { FormInstance, FormRules } from 'element-plus'
import type { User, Role } from '../types'
import { getProjectRoles } from '../api'
import { getProjectRoles, getMemberRoles } from '../api'
import SelectUser from '@/components/SelectUser.vue'
interface FormData {
user: User
role: Role[]
}
const props = defineProps<{ projectId?: string }>()
const emit = defineEmits<{
(e: 'update:modelValue', modelValue: boolean): void
(e: 'submit', data: FormData): void
......@@ -30,6 +32,17 @@ onMounted(() => {
fetchRoles()
})
// 获取成员已有角色
function fetchMemberRoles() {
if (!(props.projectId && form.user?.id)) return
getMemberRoles({
user_id: form.user.id,
project_id: props.projectId
}).then(res => {
form.role = res.data || []
})
}
// 选择完成
function submit() {
formRef?.validate().then(() => {
......@@ -46,7 +59,7 @@ function submit() {
@update:modelValue="$emit('update:modelValue')">
<el-form :rules="rules" :model="form" hide-required-asterisk ref="formRef">
<el-form-item label="选择成员" prop="user">
<SelectUser v-model="form.user"></SelectUser>
<SelectUser v-model="form.user" @change="fetchMemberRoles"></SelectUser>
</el-form-item>
<el-form-item label="选择角色" prop="role">
<el-select v-model="form.role" multiple placeholder="请选择" value-key="id" style="width: 100%">
......
......@@ -98,5 +98,9 @@ function handleDelete(row: ProjectMember, index: number) {
</template>
</AppList>
</el-card>
<AddMember v-model="memberVisible" @submit="handleSubmitMember" v-if="memberVisible"></AddMember>
<AddMember
v-model="memberVisible"
:projectId="form.project_id"
@submit="handleSubmitMember"
v-if="memberVisible"></AddMember>
</template>
......@@ -61,6 +61,13 @@ function toggleSelection() {
}
let multipleSelection = $ref<{ project_id: string }[]>([])
const currentProjectId = $computed(() => {
if (multipleSelection.length === 1) {
return multipleSelection[0].project_id
} else {
return ''
}
})
function handleSelectionChange(value: any) {
multipleSelection = value
}
......@@ -165,7 +172,11 @@ const handleDelete = function (row: any) {
>
</template>
</AppList>
<AddMember v-model="memberVisible" @submit="handleSubmitMember" v-if="memberVisible"></AddMember>
<AddMember
v-model="memberVisible"
:projectId="currentProjectId"
@submit="handleSubmitMember"
v-if="memberVisible"></AddMember>
</AppCard>
<el-dialog v-model="memberRoleVisible" title="提示" width="500px">
<el-form label-suffix=":">
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论