1.优化后台管理员管理页面的权限设置,新增zihuaadmin账号
This commit is contained in:
@@ -40,25 +40,6 @@
|
||||
prop="nickname"
|
||||
:placeholder="t('Please input field', { field: t('auth.admin.nickname') })"
|
||||
/>
|
||||
<FormItem
|
||||
v-if="showChannelEditable"
|
||||
:label="t('auth.admin.channel')"
|
||||
v-model="baTable.form.items!.channel_id"
|
||||
type="remoteSelect"
|
||||
prop="channel_id"
|
||||
:input-attr="{
|
||||
remoteUrl: '/admin/channel/index',
|
||||
field: 'name',
|
||||
pk: 'id',
|
||||
placeholder: t('Click select'),
|
||||
}"
|
||||
/>
|
||||
<el-form-item v-else-if="showChannelReadonly" :label="t('auth.admin.channel')">
|
||||
<el-input :model-value="channelDisplayName" readonly />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="showChannelReadonly && hasParentAdmin" label=" ">
|
||||
<el-alert :title="t('auth.admin.channel_inherit_from_parent')" type="info" :closable="false" show-icon />
|
||||
</el-form-item>
|
||||
<FormItem
|
||||
:label="t('auth.admin.group')"
|
||||
v-model="singleGroupValue"
|
||||
@@ -94,6 +75,26 @@
|
||||
<el-form-item v-if="showParentField && isTopLevelGroup" label=" ">
|
||||
<el-alert :title="t('auth.admin.Top level group parent hint')" type="info" :closable="false" show-icon />
|
||||
</el-form-item>
|
||||
<FormItem
|
||||
v-if="showChannelEditable"
|
||||
:label="t('auth.admin.channel')"
|
||||
v-model="baTable.form.items!.channel_id"
|
||||
type="remoteSelect"
|
||||
prop="channel_id"
|
||||
:key="'channel-' + (baTable.form.items!.parent_admin_id ?? '') + '-' + baTable.form.items!.id"
|
||||
:input-attr="{
|
||||
remoteUrl: '/admin/channel/index',
|
||||
field: 'name',
|
||||
pk: 'id',
|
||||
placeholder: t('Click select'),
|
||||
}"
|
||||
/>
|
||||
<el-form-item v-else-if="showChannelReadonly" :label="t('auth.admin.channel')">
|
||||
<el-input :model-value="channelDisplayName" readonly />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="showChannelReadonly && hasParentAdmin" label=" ">
|
||||
<el-alert :title="t('auth.admin.channel_inherit_from_parent')" type="info" :closable="false" show-icon />
|
||||
</el-form-item>
|
||||
<FormItem
|
||||
v-if="showShareRateField"
|
||||
:label="t('auth.admin.commission_share_rate')"
|
||||
@@ -190,8 +191,6 @@ import FormItem from '/@/components/formItem/index.vue'
|
||||
import { useAdminInfo } from '/@/stores/adminInfo'
|
||||
import { useConfig } from '/@/stores/config'
|
||||
import createAxios from '/@/utils/axios'
|
||||
import { auth } from '/@/utils/common'
|
||||
|
||||
const config = useConfig()
|
||||
const adminInfo = useAdminInfo()
|
||||
const formRef = useTemplateRef('formRef')
|
||||
@@ -205,20 +204,13 @@ const isTopLevelGroup = ref(false)
|
||||
|
||||
const isSelfEdit = computed(() => baTable.form.operate === 'Edit' && adminInfo.id == baTable.form.items?.id)
|
||||
|
||||
const hasChannelIndexAuth = computed(
|
||||
() =>
|
||||
adminInfo.super ||
|
||||
auth({ name: '/admin/channel', subNodeName: '/admin/channel/index' }) ||
|
||||
auth({ name: '/admin/Channel', subNodeName: '/admin/Channel/index' })
|
||||
)
|
||||
|
||||
const hasParentAdmin = computed(() => {
|
||||
const pid = baTable.form.items?.parent_admin_id
|
||||
return pid !== null && pid !== undefined && pid !== '' && Number(pid) > 0
|
||||
})
|
||||
|
||||
const showChannelEditable = computed(
|
||||
() => hasChannelIndexAuth.value && isTopLevelGroup.value && !hasParentAdmin.value && !isSelfEdit.value
|
||||
() => adminInfo.super && !hasParentAdmin.value && !isSelfEdit.value
|
||||
)
|
||||
|
||||
const channelDisplayName = computed(() => {
|
||||
@@ -235,7 +227,7 @@ const showChannelReadonly = computed(() => {
|
||||
if (isSelfEdit.value) return false
|
||||
if (showChannelEditable.value) return false
|
||||
if (hasParentAdmin.value) return true
|
||||
if (!isTopLevelGroup.value && hasChannelForShare.value) return true
|
||||
if (!adminInfo.super && baTable.form.operate === 'Add') return true
|
||||
return channelDisplayName.value !== ''
|
||||
})
|
||||
|
||||
@@ -248,19 +240,9 @@ const hasChannelForShare = computed(() => {
|
||||
|
||||
const showShareRateField = computed(() => {
|
||||
if (isSelfEdit.value) return false
|
||||
if (isTopLevelGroup.value) {
|
||||
if (!hasChannelForShare.value) return false
|
||||
return hasChannelIndexAuth.value || baTable.form.operate === 'Add'
|
||||
}
|
||||
if (adminInfo.super) {
|
||||
const pid = baTable.form.items?.parent_admin_id
|
||||
return pid !== null && pid !== undefined && pid !== '' && Number(pid) > 0
|
||||
}
|
||||
if (baTable.form.operate === 'Add') {
|
||||
return true
|
||||
}
|
||||
const pid = baTable.form.items?.parent_admin_id
|
||||
return pid !== null && pid !== undefined && pid !== '' && Number(pid) > 0
|
||||
if (!hasChannelForShare.value) return false
|
||||
if (hasParentAdmin.value) return true
|
||||
return true
|
||||
})
|
||||
|
||||
const parentSelectParams = computed(() => {
|
||||
@@ -328,7 +310,7 @@ const loadParentChannelMeta = async (parentId: unknown) => {
|
||||
const items = baTable.form.items
|
||||
if (!items) return
|
||||
if (parentId === null || parentId === undefined || parentId === '' || Number(parentId) <= 0) {
|
||||
if (!isTopLevelGroup.value) {
|
||||
if (showChannelEditable.value) {
|
||||
items['channel_name'] = ''
|
||||
}
|
||||
return
|
||||
@@ -357,14 +339,13 @@ const loadShareRemainder = async () => {
|
||||
shareHint.value = ''
|
||||
return
|
||||
}
|
||||
if (isTopLevelGroup.value) {
|
||||
if (!hasParentAdmin.value && hasChannelForShare.value) {
|
||||
const channelId = resolveChannelIdForShare()
|
||||
try {
|
||||
const res = await createAxios({
|
||||
url: '/admin/auth.Admin/commissionShareRemainder',
|
||||
method: 'get',
|
||||
params: {
|
||||
is_top_level: 1,
|
||||
channel_id: channelId,
|
||||
exclude_id: baTable.form.items?.id || 0,
|
||||
},
|
||||
@@ -444,7 +425,6 @@ watch(
|
||||
watch(
|
||||
() => baTable.form.items?.parent_admin_id,
|
||||
(parentId) => {
|
||||
if (isTopLevelGroup.value) return
|
||||
void loadParentChannelMeta(parentId)
|
||||
},
|
||||
{ immediate: true }
|
||||
@@ -491,7 +471,9 @@ watch(
|
||||
watch(
|
||||
() => baTable.form.items?.root_share_remainder,
|
||||
(val) => {
|
||||
if (val && baTable.form.operate === 'Edit' && isTopLevelGroup.value) {
|
||||
const pid = baTable.form.items?.parent_admin_id
|
||||
const hasParent = pid !== null && pid !== undefined && pid !== '' && Number(pid) > 0
|
||||
if (val && baTable.form.operate === 'Edit' && !hasParent) {
|
||||
shareHint.value = t('auth.admin.Channel root share remainder hint', {
|
||||
used: val.used_rate ?? '0.00',
|
||||
remaining: val.remaining_rate ?? '100.00',
|
||||
@@ -508,6 +490,17 @@ watch(isTopLevelGroup, (topLevel) => {
|
||||
}
|
||||
})
|
||||
|
||||
watch(
|
||||
() => baTable.form.operate,
|
||||
(operate) => {
|
||||
if (operate !== 'Add' || adminInfo.super || !baTable.form.items) {
|
||||
return
|
||||
}
|
||||
baTable.form.items.parent_admin_id = adminInfo.id
|
||||
void loadParentChannelMeta(adminInfo.id)
|
||||
}
|
||||
)
|
||||
|
||||
const rules: Partial<Record<string, FormItemRule[]>> = reactive({
|
||||
username: [buildValidatorData({ name: 'required', title: t('auth.admin.username') }), buildValidatorData({ name: 'account' })],
|
||||
nickname: [buildValidatorData({ name: 'required', title: t('auth.admin.nickname') })],
|
||||
|
||||
Reference in New Issue
Block a user