refactor: simplify schema names and remove provider id columns

This commit is contained in:
Chris
2026-04-03 01:49:36 +08:00
parent db00426b23
commit 24aea89287
5 changed files with 16 additions and 36 deletions

View File

@@ -11,8 +11,7 @@
<el-table v-else :data="companies" stripe border class="w-full shadow-sm">
<template #empty><el-empty description="目前無公司" /></template>
<el-table-column prop="company_key" label="Company Key" width="220" />
<el-table-column prop="display_name" label="顯示名稱" min-width="180" />
<el-table-column prop="legal_name" label="公司名稱" min-width="220" />
<el-table-column prop="name" label="公司名稱" min-width="220" />
<el-table-column prop="status" label="狀態" width="110" />
<el-table-column label="操作" width="280">
<template #default="{ row }">
@@ -25,8 +24,7 @@
<el-dialog v-model="showCreateDialog" title="新增公司" width="560px" @close="resetCreateForm">
<el-form ref="createFormRef" :model="createForm" :rules="rules" label-width="120px">
<el-form-item label="顯示名稱" prop="display_name"><el-input v-model="createForm.display_name" /></el-form-item>
<el-form-item label="公司名稱"><el-input v-model="createForm.legal_name" /></el-form-item>
<el-form-item label="公司名稱" prop="name"><el-input v-model="createForm.name" /></el-form-item>
<el-form-item label="狀態">
<el-select v-model="createForm.status" style="width: 100%">
<el-option label="active" value="active" />
@@ -43,8 +41,7 @@
<el-dialog v-model="showEditDialog" title="編輯公司" width="560px" @close="resetEditForm">
<el-form :model="editForm" label-width="120px">
<el-form-item label="Company Key"><el-input :model-value="editForm.company_key" disabled /></el-form-item>
<el-form-item label="顯示名稱"><el-input v-model="editForm.display_name" /></el-form-item>
<el-form-item label="公司名稱"><el-input v-model="editForm.legal_name" /></el-form-item>
<el-form-item label="公司名稱"><el-input v-model="editForm.name" /></el-form-item>
<el-form-item label="狀態">
<el-select v-model="editForm.status" style="width: 100%">
<el-option label="active" value="active" />
@@ -90,10 +87,10 @@ const creating = ref(false)
const saving = ref(false)
const createFormRef = ref()
const createForm = ref({ display_name: '', legal_name: '', status: 'active' })
const editForm = ref({ company_key: '', display_name: '', legal_name: '', status: 'active' })
const createForm = ref({ name: '', status: 'active' })
const editForm = ref({ company_key: '', name: '', status: 'active' })
const rules = {
display_name: [{ required: true, message: '請輸入顯示名稱', trigger: 'blur' }]
name: [{ required: true, message: '請輸入公司名稱', trigger: 'blur' }]
}
const showSitesDialog = ref(false)
@@ -116,21 +113,20 @@ async function load() {
}
function resetCreateForm() {
createForm.value = { display_name: '', legal_name: '', status: 'active' }
createForm.value = { name: '', status: 'active' }
}
function openEdit(row) {
editForm.value = {
company_key: row.company_key,
display_name: row.display_name,
legal_name: row.legal_name || '',
name: row.name || '',
status: row.status || 'active'
}
showEditDialog.value = true
}
function resetEditForm() {
editForm.value = { company_key: '', display_name: '', legal_name: '', status: 'active' }
editForm.value = { company_key: '', name: '', status: 'active' }
}
async function handleCreate() {
@@ -154,8 +150,7 @@ async function handleEdit() {
saving.value = true
try {
await updateCompany(editForm.value.company_key, {
display_name: editForm.value.display_name,
legal_name: editForm.value.legal_name || null,
name: editForm.value.name,
status: editForm.value.status
})
ElMessage.success('更新成功')
@@ -170,7 +165,7 @@ async function handleEdit() {
async function openSites(row) {
showSitesDialog.value = true
selectedCompanyDisplayName.value = `${row.display_name} (${row.company_key})`
selectedCompanyDisplayName.value = `${row.name || row.company_key} (${row.company_key})`
sitesLoading.value = true
try {
const res = await getCompanySites(row.company_key)
@@ -186,7 +181,7 @@ async function openSites(row) {
async function handleDelete(row) {
try {
await ElMessageBox.confirm(
`確認刪除公司 ${row.display_name}${row.company_key}`,
`確認刪除公司 ${row.name || row.company_key}${row.company_key}`,
'刪除確認',
{ type: 'warning' }
)

View File

@@ -86,7 +86,6 @@
<el-table-column prop="site_display_name" label="站台" min-width="170" />
<el-table-column prop="system_name" label="系統" min-width="150" />
<el-table-column prop="role_name" label="角色" min-width="160" />
<el-table-column prop="provider_role_name" label="Provider Role" min-width="190" />
</el-table>
<template #footer>
<el-button @click="showRolesDialog = false">關閉</el-button>

View File

@@ -13,7 +13,6 @@
<el-table-column prop="role_key" label="Role Key" width="200" />
<el-table-column prop="system_name" label="系統" min-width="150" />
<el-table-column prop="name" label="角色名稱" min-width="180" />
<el-table-column prop="provider_role_name" label="Provider Role" min-width="190" />
<el-table-column prop="status" label="狀態" width="110" />
<el-table-column label="操作" width="280">
<template #default="{ row }">
@@ -37,7 +36,6 @@
</el-select>
</el-form-item>
<el-form-item label="角色名稱" prop="name"><el-input v-model="createForm.name" /></el-form-item>
<el-form-item label="Provider Role" prop="provider_role_name"><el-input v-model="createForm.provider_role_name" /></el-form-item>
<el-form-item label="描述"><el-input v-model="createForm.description" type="textarea" :rows="2" /></el-form-item>
<el-form-item label="狀態">
<el-select v-model="createForm.status" style="width: 100%">
@@ -66,7 +64,6 @@
</el-select>
</el-form-item>
<el-form-item label="角色名稱"><el-input v-model="editForm.name" /></el-form-item>
<el-form-item label="Provider Role"><el-input v-model="editForm.provider_role_name" /></el-form-item>
<el-form-item label="描述"><el-input v-model="editForm.description" type="textarea" :rows="2" /></el-form-item>
<el-form-item label="狀態">
<el-select v-model="editForm.status" style="width: 100%">
@@ -117,7 +114,6 @@ const createFormRef = ref()
const createForm = ref({
system_key: '',
name: '',
provider_role_name: '',
description: '',
status: 'active'
})
@@ -125,14 +121,12 @@ const editForm = ref({
role_key: '',
system_key: '',
name: '',
provider_role_name: '',
description: '',
status: 'active'
})
const rules = {
system_key: [{ required: true, message: '請選擇系統', trigger: 'change' }],
name: [{ required: true, message: '請輸入角色名稱', trigger: 'blur' }],
provider_role_name: [{ required: true, message: '請輸入 Provider Role', trigger: 'blur' }]
name: [{ required: true, message: '請輸入角色名稱', trigger: 'blur' }]
}
const showSitesDialog = ref(false)
@@ -162,7 +156,6 @@ function resetCreateForm() {
createForm.value = {
system_key: '',
name: '',
provider_role_name: '',
description: '',
status: 'active'
}
@@ -173,7 +166,6 @@ function openEdit(row) {
role_key: row.role_key,
system_key: row.system_key,
name: row.name,
provider_role_name: row.provider_role_name,
description: row.description || '',
status: row.status || 'active'
}
@@ -185,7 +177,6 @@ function resetEditForm() {
role_key: '',
system_key: '',
name: '',
provider_role_name: '',
description: '',
status: 'active'
}
@@ -199,7 +190,6 @@ async function handleCreate() {
await createRole({
system_key: createForm.value.system_key,
name: createForm.value.name,
provider_role_name: createForm.value.provider_role_name,
description: createForm.value.description || null,
status: createForm.value.status
})
@@ -220,7 +210,6 @@ async function handleEdit() {
await updateRole(editForm.value.role_key, {
system_key: editForm.value.system_key,
name: editForm.value.name,
provider_role_name: editForm.value.provider_role_name,
description: editForm.value.description || null,
status: editForm.value.status
})

View File

@@ -32,7 +32,7 @@
<el-option
v-for="company in companies"
:key="company.company_key"
:label="`${company.display_name} (${company.company_key})`"
:label="`${company.name} (${company.company_key})`"
:value="company.company_key"
/>
</el-select>
@@ -60,7 +60,7 @@
<el-option
v-for="company in companies"
:key="company.company_key"
:label="`${company.display_name} (${company.company_key})`"
:label="`${company.name} (${company.company_key})`"
:value="company.company_key"
/>
</el-select>

View File

@@ -21,7 +21,6 @@
<template #empty><el-empty description="目前無系統" /></template>
<el-table-column prop="system_key" label="System Key" width="200" />
<el-table-column prop="name" label="系統名稱" min-width="180" />
<el-table-column prop="provider_client_id" label="Provider Client ID" min-width="220" />
<el-table-column prop="status" label="狀態" width="110" />
<el-table-column label="操作" width="120">
<template #default="{ row }">
@@ -35,7 +34,6 @@
<template #empty><el-empty description="此系統目前沒有角色" /></template>
<el-table-column prop="role_key" label="Role Key" width="200" />
<el-table-column prop="name" label="角色名稱" min-width="200" />
<el-table-column prop="provider_role_name" label="Provider Role" min-width="210" />
<el-table-column prop="status" label="狀態" width="110" />
</el-table>
<template #footer>
@@ -82,8 +80,7 @@ async function handleSync() {
const res = await adminHttp.post('/admin/sync/from-provider', null, { params: { force: true } })
const summary = [
`systems +${res.data?.systems_created ?? 0}`,
`roles +${res.data?.roles_created ?? 0}`,
`users upsert ${res.data?.users_upserted ?? 0}`
`roles +${res.data?.roles_created ?? 0}`
].join(' / ')
ElMessage.success(`同步完成:${summary}`)
await load()