Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions GAHFrontend/src/components/ComponentTest.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
<template>
</template>
1 change: 0 additions & 1 deletion GAHFrontend/src/components/component_test.vue

This file was deleted.

32 changes: 17 additions & 15 deletions GAHFrontend/src/components/customize/AddAdminDialogFrom.vue
Original file line number Diff line number Diff line change
@@ -1,25 +1,26 @@
<template>
<el-dialog :model-value="modelValue" title="添加管理员" width="480px"
<el-dialog :model-value="modelValue" title="Add Admin" width="480px"
@update:model-value="(val) => emit('update:modelValue', val)">
<el-form label-width="80px">
<el-form-item label="用户名">
<el-input v-model="form.username" placeholder="管理员用户名" />
<el-form-item label="Username">
<el-input v-model="form.username" placeholder="Admin username" />
</el-form-item>
<el-form-item label="密码">
<el-input v-model="form.password" type="password" placeholder="管理员密码" show-password />
<el-form-item label="Password">
<el-input v-model="form.password" type="password" placeholder="Admin password" show-password />
</el-form-item>
<el-form-item label="权限">
<el-checkbox v-model="form.permission.can_add_admin">是否可以添加管理员</el-checkbox>
<el-checkbox v-model="form.permission.can_delete_admin">是否可以删除管理员</el-checkbox>
<el-checkbox v-model="form.permission.can_edit_admin">是否可以修改管理员</el-checkbox>
<el-checkbox v-model="form.permission.can_get_admin">是否可以获取管理员列表</el-checkbox>
<el-checkbox v-model="form.permission.can_operate_user">是否可以操作用户</el-checkbox>
<el-checkbox v-model="form.permission.can_operate_character">是否可以操作角色</el-checkbox>
<el-form-item label="Permissions">
<el-checkbox v-model="form.permission.can_add_admin">Can add admin</el-checkbox>
<el-checkbox v-model="form.permission.can_delete_admin">Can delete admin</el-checkbox>
<el-checkbox v-model="form.permission.can_edit_admin">Can edit admin</el-checkbox>
<el-checkbox v-model="form.permission.can_get_admin">Can get admin list</el-checkbox>
<el-checkbox v-model="form.permission.can_operate_user">Can operate users</el-checkbox>
<el-checkbox v-model="form.permission.can_operate_character">Can operate characters</el-checkbox>
<el-checkbox v-model="form.permission.can_operate_app_key">Can operate app key</el-checkbox>
</el-form-item>
</el-form>
<template #footer>
<el-button @click="emit('update:modelValue', false)">取消</el-button>
<el-button type="primary" @click="emit('submit', form)">确定</el-button>
<el-button @click="emit('update:modelValue', false)">Cancel</el-button>
<el-button type="primary" @click="emit('submit', form)">Confirm</el-button>
</template>
</el-dialog>
</template>
Expand All @@ -36,7 +37,7 @@ defineProps({

const emit = defineEmits(['update:modelValue', 'submit'])

// 表单字段对应 adminAdd.go 的请求体
// Form fields map to the request body of adminAdd.go
const form = reactive({
username: '',
password: '',
Expand All @@ -47,6 +48,7 @@ const form = reactive({
can_get_admin: false,
can_operate_user: false,
can_operate_character: false,
can_operate_app_key: false,
},
})
</script>
20 changes: 10 additions & 10 deletions GAHFrontend/src/components/customize/AddCharacterDialogFrom.vue
Original file line number Diff line number Diff line change
@@ -1,23 +1,23 @@
<template>
<el-dialog :model-value="modelValue" title="添加角色" width="720px"
<el-dialog :model-value="modelValue" title="Add Character" width="720px"
@update:model-value="(val) => emit('update:modelValue', val)">
<el-form label-width="130px">
<el-form-item label="角色名">
<el-input v-model="form.character_name" placeholder="角色名" />
<el-form-item label="Character Name">
<el-input v-model="form.character_name" placeholder="Character Name" />
</el-form-item>
<el-form-item label="密码">
<el-input v-model="form.password" type="password" placeholder="角色密码" show-password />
<el-form-item label="Password">
<el-input v-model="form.password" type="password" placeholder="Character password" show-password />
</el-form-item>
<el-form-item label="所属用户UUHash">
<el-input v-model="form.user_uu_hash" placeholder="所属用户的 UUHash" />
<el-form-item label="Owner User UUHash">
<el-input v-model="form.user_uu_hash" placeholder="Owner user UUHash" />
</el-form-item>
<el-form-item label="MetaData">
<MetaDataEditor v-model="form.meta_data" height="240px" />
</el-form-item>
</el-form>
<template #footer>
<el-button @click="emit('update:modelValue', false)">取消</el-button>
<el-button type="primary" @click="emit('submit', form)">确定</el-button>
<el-button @click="emit('update:modelValue', false)">Cancel</el-button>
<el-button type="primary" @click="emit('submit', form)">Confirm</el-button>
</template>
</el-dialog>
</template>
Expand All @@ -35,7 +35,7 @@ defineProps({

const emit = defineEmits(['update:modelValue', 'submit'])

// 表单字段对应 characterAdd.go 的请求体
// Form fields map to the request body of characterAdd.go
const form = reactive({
character_name: '',
password: '',
Expand Down
56 changes: 56 additions & 0 deletions GAHFrontend/src/components/customize/AddKeyDialogFrom.vue
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<template>
<el-dialog :model-value="modelValue" title="Add Key" width="480px"
@update:model-value="(val) => emit('update:modelValue', val)">
<el-alert type="warning" :closable="false" show-icon
title="The key user name cannot be modified once submitted. Please check it before submitting." />
<el-form ref="keyFormRef" :model="form" :rules="rules" label-width="110px" style="margin-top: 12px">
<el-form-item label="Key User Name" prop="key_user_name">
<el-input v-model="form.key_user_name" placeholder="Printable ASCII characters only" />
</el-form-item>
</el-form>
<template #footer>
<el-button @click="emit('update:modelValue', false)">Cancel</el-button>
<el-button type="primary" @click="handleSubmit">Confirm</el-button>
</template>
</el-dialog>
</template>

<script setup>
import { reactive, ref } from 'vue'

defineProps({
modelValue: {
type: Boolean,
default: false,
},
})

const emit = defineEmits(['update:modelValue', 'submit'])

// Printable ASCII only (0x20-0x7E), the same check as keyAdd.go
const printableAsciiPattern = /^[\x20-\x7E]+$/

const keyFormRef = ref(null)

// Form fields map to the request body of keyAdd.go
const form = reactive({
key_user_name: '',
})

const rules = {
key_user_name: [
{ required: true, message: 'Please enter key user name', trigger: 'blur' },
{ pattern: printableAsciiPattern, message: 'Key user name must be printable ASCII characters only', trigger: 'blur' },
],
}

const handleSubmit = async () => {
if (!keyFormRef.value) return
try {
await keyFormRef.value.validate()
} catch {
return
}
emit('submit', form)
}
</script>
16 changes: 8 additions & 8 deletions GAHFrontend/src/components/customize/AddUserDialogFrom.vue
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
<template>
<el-dialog :model-value="modelValue" title="添加用户" width="720px"
<el-dialog :model-value="modelValue" title="Add User" width="720px"
@update:model-value="(val) => emit('update:modelValue', val)">
<el-form label-width="80px">
<el-form-item label="用户名">
<el-input v-model="form.username" placeholder="用户名" />
<el-form-item label="Username">
<el-input v-model="form.username" placeholder="Username" />
</el-form-item>
<el-form-item label="密码">
<el-input v-model="form.password" type="password" placeholder="用户密码" show-password />
<el-form-item label="Password">
<el-input v-model="form.password" type="password" placeholder="User password" show-password />
</el-form-item>
<el-form-item label="MetaData">
<MetaDataEditor v-model="form.meta_data" height="260px" />
</el-form-item>
</el-form>
<template #footer>
<el-button @click="emit('update:modelValue', false)">取消</el-button>
<el-button type="primary" @click="emit('submit', form)">确定</el-button>
<el-button @click="emit('update:modelValue', false)">Cancel</el-button>
<el-button type="primary" @click="emit('submit', form)">Confirm</el-button>
</template>
</el-dialog>
</template>
Expand All @@ -32,7 +32,7 @@ defineProps({

const emit = defineEmits(['update:modelValue', 'submit'])

// 表单字段对应 userAdd.go 的请求体
// Form fields map to the request body of userAdd.go
const form = reactive({
username: '',
password: '',
Expand Down
32 changes: 17 additions & 15 deletions GAHFrontend/src/components/customize/EditAdminDialogFrom.vue
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
<template>
<el-dialog :model-value="modelValue" :title="`编辑管理员:${admin?.Username ?? ''}`" width="480px"
<el-dialog :model-value="modelValue" :title="`Edit Admin: ${admin?.Username ?? ''}`" width="480px"
@update:model-value="(val) => emit('update:modelValue', val)">
<el-form label-width="80px">
<el-form-item label="密码">
<el-input v-model="form.admin_info.password" type="password" placeholder="留空则不修改密码" show-password />
<el-form-item label="Password">
<el-input v-model="form.admin_info.password" type="password" placeholder="Leave empty to keep current password" show-password />
</el-form-item>
<el-form-item label="权限">
<el-checkbox v-model="form.admin_info.permission.can_add_admin">是否可以添加管理员</el-checkbox>
<el-checkbox v-model="form.admin_info.permission.can_delete_admin">是否可以删除管理员</el-checkbox>
<el-checkbox v-model="form.admin_info.permission.can_edit_admin">是否可以修改管理员</el-checkbox>
<el-checkbox v-model="form.admin_info.permission.can_get_admin">是否可以获取管理员列表</el-checkbox>
<el-checkbox v-model="form.admin_info.permission.can_operate_user">是否可以操作用户</el-checkbox>
<el-checkbox v-model="form.admin_info.permission.can_operate_character">是否可以操作角色</el-checkbox>
<el-form-item label="Permissions">
<el-checkbox v-model="form.admin_info.permission.can_add_admin">Can add admin</el-checkbox>
<el-checkbox v-model="form.admin_info.permission.can_delete_admin">Can delete admin</el-checkbox>
<el-checkbox v-model="form.admin_info.permission.can_edit_admin">Can edit admin</el-checkbox>
<el-checkbox v-model="form.admin_info.permission.can_get_admin">Can get admin list</el-checkbox>
<el-checkbox v-model="form.admin_info.permission.can_operate_user">Can operate users</el-checkbox>
<el-checkbox v-model="form.admin_info.permission.can_operate_character">Can operate characters</el-checkbox>
<el-checkbox v-model="form.admin_info.permission.can_operate_app_key">Can operate app key</el-checkbox>
</el-form-item>
</el-form>
<template #footer>
<el-button @click="emit('update:modelValue', false)">取消</el-button>
<el-button type="primary" @click="emit('submit', form)">确定</el-button>
<el-button @click="emit('update:modelValue', false)">Cancel</el-button>
<el-button type="primary" @click="emit('submit', form)">Confirm</el-button>
</template>
</el-dialog>
</template>
Expand All @@ -29,7 +30,7 @@ const props = defineProps({
type: Boolean,
default: false,
},
// 被编辑的管理员行数据,用于回填表单
// Admin row being edited, used to populate the form
admin: {
type: Object,
default: null,
Expand All @@ -38,7 +39,7 @@ const props = defineProps({

const emit = defineEmits(['update:modelValue', 'submit'])

// 表单字段对应 adminEdit.go 的请求体
// Form fields map to the request body of adminEdit.go
const form = reactive({
uu_hash: '',
admin_info: {
Expand All @@ -50,11 +51,12 @@ const form = reactive({
can_get_admin: false,
can_operate_user: false,
can_operate_character: false,
can_operate_app_key: false,
},
},
})

// 打开弹窗或切换目标行时回填表单
// Populate the form when the dialog opens or the target row changes
watch(
() => [props.modelValue, props.admin],
() => {
Expand Down
20 changes: 10 additions & 10 deletions GAHFrontend/src/components/customize/EditCharacterDialog.vue
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
<template>
<el-dialog :model-value="modelValue" :title="`编辑角色:${character?.CharacterName ?? ''}`" width="720px"
<el-dialog :model-value="modelValue" :title="`Edit Character: ${character?.CharacterName ?? ''}`" width="720px"
@update:model-value="(val) => emit('update:modelValue', val)">
<el-form label-width="130px">
<el-form-item label="角色名">
<el-input v-model="form.character_name" placeholder="留空则不修改角色名" />
<el-form-item label="Character Name">
<el-input v-model="form.character_name" placeholder="Leave empty to keep current character name" />
</el-form-item>
<el-form-item label="密码">
<el-input v-model="form.password" type="password" placeholder="留空则不修改密码" show-password />
<el-form-item label="Password">
<el-input v-model="form.password" type="password" placeholder="Leave empty to keep current password" show-password />
</el-form-item>
<el-form-item label="MetaData">
<MetaDataEditor v-model="form.meta_data" height="240px" />
</el-form-item>
</el-form>
<template #footer>
<el-button @click="emit('update:modelValue', false)">取消</el-button>
<el-button type="primary" @click="emit('submit', form)">确定</el-button>
<el-button @click="emit('update:modelValue', false)">Cancel</el-button>
<el-button type="primary" @click="emit('submit', form)">Confirm</el-button>
</template>
</el-dialog>
</template>
Expand All @@ -28,7 +28,7 @@ const props = defineProps({
type: Boolean,
default: false,
},
// 被编辑的角色行数据,用于回填表单
// Character row being edited, used to populate the form
character: {
type: Object,
default: null,
Expand All @@ -37,7 +37,7 @@ const props = defineProps({

const emit = defineEmits(['update:modelValue', 'submit'])

// 表单字段对应 characterEdit.go 的请求体
// Form fields map to the request body of characterEdit.go
const form = reactive({
user_uu_hash: '',
character_uu_hash: '',
Expand All @@ -46,7 +46,7 @@ const form = reactive({
meta_data: '',
})

// 打开弹窗或切换目标行时回填表单
// Populate the form when the dialog opens or the target row changes
watch(
() => [props.modelValue, props.character],
() => {
Expand Down
20 changes: 10 additions & 10 deletions GAHFrontend/src/components/customize/EditUserDialog.vue
Original file line number Diff line number Diff line change
@@ -1,20 +1,20 @@
<template>
<el-dialog :model-value="modelValue" :title="`编辑用户:${user?.Username ?? ''}`" width="720px"
<el-dialog :model-value="modelValue" :title="`Edit User: ${user?.Username ?? ''}`" width="720px"
@update:model-value="(val) => emit('update:modelValue', val)">
<el-form label-width="80px">
<el-form-item label="用户名">
<el-input v-model="form.username" placeholder="留空则不修改用户名" />
<el-form-item label="Username">
<el-input v-model="form.username" placeholder="Leave empty to keep current username" />
</el-form-item>
<el-form-item label="密码">
<el-input v-model="form.password" type="password" placeholder="留空则不修改密码" show-password />
<el-form-item label="Password">
<el-input v-model="form.password" type="password" placeholder="Leave empty to keep current password" show-password />
</el-form-item>
<el-form-item label="MetaData">
<MetaDataEditor v-model="form.meta_data" height="260px" />
</el-form-item>
</el-form>
<template #footer>
<el-button @click="emit('update:modelValue', false)">取消</el-button>
<el-button type="primary" @click="emit('submit', form)">确定</el-button>
<el-button @click="emit('update:modelValue', false)">Cancel</el-button>
<el-button type="primary" @click="emit('submit', form)">Confirm</el-button>
</template>
</el-dialog>
</template>
Expand All @@ -28,7 +28,7 @@ const props = defineProps({
type: Boolean,
default: false,
},
// 被编辑的用户行数据,用于回填表单
// User row being edited, used to populate the form
user: {
type: Object,
default: null,
Expand All @@ -37,15 +37,15 @@ const props = defineProps({

const emit = defineEmits(['update:modelValue', 'submit'])

// 表单字段对应 userEdit.go 的请求体
// Form fields map to the request body of userEdit.go
const form = reactive({
uu_hash: '',
username: '',
password: '',
meta_data: '',
})

// 打开弹窗或切换目标行时回填表单
// Populate the form when the dialog opens or the target row changes
watch(
() => [props.modelValue, props.user],
() => {
Expand Down
Loading
Loading