refactor: simplify schema names and remove provider id columns
This commit is contained in:
@@ -11,8 +11,7 @@
|
|||||||
<el-table v-else :data="companies" stripe border class="w-full shadow-sm">
|
<el-table v-else :data="companies" stripe border class="w-full shadow-sm">
|
||||||
<template #empty><el-empty description="目前無公司" /></template>
|
<template #empty><el-empty description="目前無公司" /></template>
|
||||||
<el-table-column prop="company_key" label="Company Key" width="220" />
|
<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="name" label="公司名稱" min-width="220" />
|
||||||
<el-table-column prop="legal_name" label="公司名稱" min-width="220" />
|
|
||||||
<el-table-column prop="status" label="狀態" width="110" />
|
<el-table-column prop="status" label="狀態" width="110" />
|
||||||
<el-table-column label="操作" width="280">
|
<el-table-column label="操作" width="280">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
@@ -25,8 +24,7 @@
|
|||||||
|
|
||||||
<el-dialog v-model="showCreateDialog" title="新增公司" width="560px" @close="resetCreateForm">
|
<el-dialog v-model="showCreateDialog" title="新增公司" width="560px" @close="resetCreateForm">
|
||||||
<el-form ref="createFormRef" :model="createForm" :rules="rules" label-width="120px">
|
<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="公司名稱" prop="name"><el-input v-model="createForm.name" /></el-form-item>
|
||||||
<el-form-item label="公司名稱"><el-input v-model="createForm.legal_name" /></el-form-item>
|
|
||||||
<el-form-item label="狀態">
|
<el-form-item label="狀態">
|
||||||
<el-select v-model="createForm.status" style="width: 100%">
|
<el-select v-model="createForm.status" style="width: 100%">
|
||||||
<el-option label="active" value="active" />
|
<el-option label="active" value="active" />
|
||||||
@@ -43,8 +41,7 @@
|
|||||||
<el-dialog v-model="showEditDialog" title="編輯公司" width="560px" @close="resetEditForm">
|
<el-dialog v-model="showEditDialog" title="編輯公司" width="560px" @close="resetEditForm">
|
||||||
<el-form :model="editForm" label-width="120px">
|
<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="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.name" /></el-form-item>
|
||||||
<el-form-item label="公司名稱"><el-input v-model="editForm.legal_name" /></el-form-item>
|
|
||||||
<el-form-item label="狀態">
|
<el-form-item label="狀態">
|
||||||
<el-select v-model="editForm.status" style="width: 100%">
|
<el-select v-model="editForm.status" style="width: 100%">
|
||||||
<el-option label="active" value="active" />
|
<el-option label="active" value="active" />
|
||||||
@@ -90,10 +87,10 @@ const creating = ref(false)
|
|||||||
const saving = ref(false)
|
const saving = ref(false)
|
||||||
const createFormRef = ref()
|
const createFormRef = ref()
|
||||||
|
|
||||||
const createForm = ref({ display_name: '', legal_name: '', status: 'active' })
|
const createForm = ref({ name: '', status: 'active' })
|
||||||
const editForm = ref({ company_key: '', display_name: '', legal_name: '', status: 'active' })
|
const editForm = ref({ company_key: '', name: '', status: 'active' })
|
||||||
const rules = {
|
const rules = {
|
||||||
display_name: [{ required: true, message: '請輸入顯示名稱', trigger: 'blur' }]
|
name: [{ required: true, message: '請輸入公司名稱', trigger: 'blur' }]
|
||||||
}
|
}
|
||||||
|
|
||||||
const showSitesDialog = ref(false)
|
const showSitesDialog = ref(false)
|
||||||
@@ -116,21 +113,20 @@ async function load() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function resetCreateForm() {
|
function resetCreateForm() {
|
||||||
createForm.value = { display_name: '', legal_name: '', status: 'active' }
|
createForm.value = { name: '', status: 'active' }
|
||||||
}
|
}
|
||||||
|
|
||||||
function openEdit(row) {
|
function openEdit(row) {
|
||||||
editForm.value = {
|
editForm.value = {
|
||||||
company_key: row.company_key,
|
company_key: row.company_key,
|
||||||
display_name: row.display_name,
|
name: row.name || '',
|
||||||
legal_name: row.legal_name || '',
|
|
||||||
status: row.status || 'active'
|
status: row.status || 'active'
|
||||||
}
|
}
|
||||||
showEditDialog.value = true
|
showEditDialog.value = true
|
||||||
}
|
}
|
||||||
|
|
||||||
function resetEditForm() {
|
function resetEditForm() {
|
||||||
editForm.value = { company_key: '', display_name: '', legal_name: '', status: 'active' }
|
editForm.value = { company_key: '', name: '', status: 'active' }
|
||||||
}
|
}
|
||||||
|
|
||||||
async function handleCreate() {
|
async function handleCreate() {
|
||||||
@@ -154,8 +150,7 @@ async function handleEdit() {
|
|||||||
saving.value = true
|
saving.value = true
|
||||||
try {
|
try {
|
||||||
await updateCompany(editForm.value.company_key, {
|
await updateCompany(editForm.value.company_key, {
|
||||||
display_name: editForm.value.display_name,
|
name: editForm.value.name,
|
||||||
legal_name: editForm.value.legal_name || null,
|
|
||||||
status: editForm.value.status
|
status: editForm.value.status
|
||||||
})
|
})
|
||||||
ElMessage.success('更新成功')
|
ElMessage.success('更新成功')
|
||||||
@@ -170,7 +165,7 @@ async function handleEdit() {
|
|||||||
|
|
||||||
async function openSites(row) {
|
async function openSites(row) {
|
||||||
showSitesDialog.value = true
|
showSitesDialog.value = true
|
||||||
selectedCompanyDisplayName.value = `${row.display_name} (${row.company_key})`
|
selectedCompanyDisplayName.value = `${row.name || row.company_key} (${row.company_key})`
|
||||||
sitesLoading.value = true
|
sitesLoading.value = true
|
||||||
try {
|
try {
|
||||||
const res = await getCompanySites(row.company_key)
|
const res = await getCompanySites(row.company_key)
|
||||||
@@ -186,7 +181,7 @@ async function openSites(row) {
|
|||||||
async function handleDelete(row) {
|
async function handleDelete(row) {
|
||||||
try {
|
try {
|
||||||
await ElMessageBox.confirm(
|
await ElMessageBox.confirm(
|
||||||
`確認刪除公司 ${row.display_name}(${row.company_key})?`,
|
`確認刪除公司 ${row.name || row.company_key}(${row.company_key})?`,
|
||||||
'刪除確認',
|
'刪除確認',
|
||||||
{ type: 'warning' }
|
{ type: 'warning' }
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -86,7 +86,6 @@
|
|||||||
<el-table-column prop="site_display_name" label="站台" min-width="170" />
|
<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="system_name" label="系統" min-width="150" />
|
||||||
<el-table-column prop="role_name" label="角色" min-width="160" />
|
<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>
|
</el-table>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<el-button @click="showRolesDialog = false">關閉</el-button>
|
<el-button @click="showRolesDialog = false">關閉</el-button>
|
||||||
|
|||||||
@@ -13,7 +13,6 @@
|
|||||||
<el-table-column prop="role_key" label="Role Key" width="200" />
|
<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="system_name" label="系統" min-width="150" />
|
||||||
<el-table-column prop="name" label="角色名稱" min-width="180" />
|
<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 prop="status" label="狀態" width="110" />
|
||||||
<el-table-column label="操作" width="280">
|
<el-table-column label="操作" width="280">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
@@ -37,7 +36,6 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="角色名稱" prop="name"><el-input v-model="createForm.name" /></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-input v-model="createForm.description" type="textarea" :rows="2" /></el-form-item>
|
||||||
<el-form-item label="狀態">
|
<el-form-item label="狀態">
|
||||||
<el-select v-model="createForm.status" style="width: 100%">
|
<el-select v-model="createForm.status" style="width: 100%">
|
||||||
@@ -66,7 +64,6 @@
|
|||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="角色名稱"><el-input v-model="editForm.name" /></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-input v-model="editForm.description" type="textarea" :rows="2" /></el-form-item>
|
||||||
<el-form-item label="狀態">
|
<el-form-item label="狀態">
|
||||||
<el-select v-model="editForm.status" style="width: 100%">
|
<el-select v-model="editForm.status" style="width: 100%">
|
||||||
@@ -117,7 +114,6 @@ const createFormRef = ref()
|
|||||||
const createForm = ref({
|
const createForm = ref({
|
||||||
system_key: '',
|
system_key: '',
|
||||||
name: '',
|
name: '',
|
||||||
provider_role_name: '',
|
|
||||||
description: '',
|
description: '',
|
||||||
status: 'active'
|
status: 'active'
|
||||||
})
|
})
|
||||||
@@ -125,14 +121,12 @@ const editForm = ref({
|
|||||||
role_key: '',
|
role_key: '',
|
||||||
system_key: '',
|
system_key: '',
|
||||||
name: '',
|
name: '',
|
||||||
provider_role_name: '',
|
|
||||||
description: '',
|
description: '',
|
||||||
status: 'active'
|
status: 'active'
|
||||||
})
|
})
|
||||||
const rules = {
|
const rules = {
|
||||||
system_key: [{ required: true, message: '請選擇系統', trigger: 'change' }],
|
system_key: [{ required: true, message: '請選擇系統', trigger: 'change' }],
|
||||||
name: [{ required: true, message: '請輸入角色名稱', trigger: 'blur' }],
|
name: [{ required: true, message: '請輸入角色名稱', trigger: 'blur' }]
|
||||||
provider_role_name: [{ required: true, message: '請輸入 Provider Role', trigger: 'blur' }]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const showSitesDialog = ref(false)
|
const showSitesDialog = ref(false)
|
||||||
@@ -162,7 +156,6 @@ function resetCreateForm() {
|
|||||||
createForm.value = {
|
createForm.value = {
|
||||||
system_key: '',
|
system_key: '',
|
||||||
name: '',
|
name: '',
|
||||||
provider_role_name: '',
|
|
||||||
description: '',
|
description: '',
|
||||||
status: 'active'
|
status: 'active'
|
||||||
}
|
}
|
||||||
@@ -173,7 +166,6 @@ function openEdit(row) {
|
|||||||
role_key: row.role_key,
|
role_key: row.role_key,
|
||||||
system_key: row.system_key,
|
system_key: row.system_key,
|
||||||
name: row.name,
|
name: row.name,
|
||||||
provider_role_name: row.provider_role_name,
|
|
||||||
description: row.description || '',
|
description: row.description || '',
|
||||||
status: row.status || 'active'
|
status: row.status || 'active'
|
||||||
}
|
}
|
||||||
@@ -185,7 +177,6 @@ function resetEditForm() {
|
|||||||
role_key: '',
|
role_key: '',
|
||||||
system_key: '',
|
system_key: '',
|
||||||
name: '',
|
name: '',
|
||||||
provider_role_name: '',
|
|
||||||
description: '',
|
description: '',
|
||||||
status: 'active'
|
status: 'active'
|
||||||
}
|
}
|
||||||
@@ -199,7 +190,6 @@ async function handleCreate() {
|
|||||||
await createRole({
|
await createRole({
|
||||||
system_key: createForm.value.system_key,
|
system_key: createForm.value.system_key,
|
||||||
name: createForm.value.name,
|
name: createForm.value.name,
|
||||||
provider_role_name: createForm.value.provider_role_name,
|
|
||||||
description: createForm.value.description || null,
|
description: createForm.value.description || null,
|
||||||
status: createForm.value.status
|
status: createForm.value.status
|
||||||
})
|
})
|
||||||
@@ -220,7 +210,6 @@ async function handleEdit() {
|
|||||||
await updateRole(editForm.value.role_key, {
|
await updateRole(editForm.value.role_key, {
|
||||||
system_key: editForm.value.system_key,
|
system_key: editForm.value.system_key,
|
||||||
name: editForm.value.name,
|
name: editForm.value.name,
|
||||||
provider_role_name: editForm.value.provider_role_name,
|
|
||||||
description: editForm.value.description || null,
|
description: editForm.value.description || null,
|
||||||
status: editForm.value.status
|
status: editForm.value.status
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -32,7 +32,7 @@
|
|||||||
<el-option
|
<el-option
|
||||||
v-for="company in companies"
|
v-for="company in companies"
|
||||||
:key="company.company_key"
|
:key="company.company_key"
|
||||||
:label="`${company.display_name} (${company.company_key})`"
|
:label="`${company.name} (${company.company_key})`"
|
||||||
:value="company.company_key"
|
:value="company.company_key"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
@@ -60,7 +60,7 @@
|
|||||||
<el-option
|
<el-option
|
||||||
v-for="company in companies"
|
v-for="company in companies"
|
||||||
:key="company.company_key"
|
:key="company.company_key"
|
||||||
:label="`${company.display_name} (${company.company_key})`"
|
:label="`${company.name} (${company.company_key})`"
|
||||||
:value="company.company_key"
|
:value="company.company_key"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|||||||
@@ -21,7 +21,6 @@
|
|||||||
<template #empty><el-empty description="目前無系統" /></template>
|
<template #empty><el-empty description="目前無系統" /></template>
|
||||||
<el-table-column prop="system_key" label="System Key" width="200" />
|
<el-table-column prop="system_key" label="System Key" width="200" />
|
||||||
<el-table-column prop="name" label="系統名稱" min-width="180" />
|
<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 prop="status" label="狀態" width="110" />
|
||||||
<el-table-column label="操作" width="120">
|
<el-table-column label="操作" width="120">
|
||||||
<template #default="{ row }">
|
<template #default="{ row }">
|
||||||
@@ -35,7 +34,6 @@
|
|||||||
<template #empty><el-empty description="此系統目前沒有角色" /></template>
|
<template #empty><el-empty description="此系統目前沒有角色" /></template>
|
||||||
<el-table-column prop="role_key" label="Role Key" width="200" />
|
<el-table-column prop="role_key" label="Role Key" width="200" />
|
||||||
<el-table-column prop="name" label="角色名稱" min-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-column prop="status" label="狀態" width="110" />
|
||||||
</el-table>
|
</el-table>
|
||||||
<template #footer>
|
<template #footer>
|
||||||
@@ -82,8 +80,7 @@ async function handleSync() {
|
|||||||
const res = await adminHttp.post('/admin/sync/from-provider', null, { params: { force: true } })
|
const res = await adminHttp.post('/admin/sync/from-provider', null, { params: { force: true } })
|
||||||
const summary = [
|
const summary = [
|
||||||
`systems +${res.data?.systems_created ?? 0}`,
|
`systems +${res.data?.systems_created ?? 0}`,
|
||||||
`roles +${res.data?.roles_created ?? 0}`,
|
`roles +${res.data?.roles_created ?? 0}`
|
||||||
`users upsert ${res.data?.users_upserted ?? 0}`
|
|
||||||
].join(' / ')
|
].join(' / ')
|
||||||
ElMessage.success(`同步完成:${summary}`)
|
ElMessage.success(`同步完成:${summary}`)
|
||||||
await load()
|
await load()
|
||||||
|
|||||||
Reference in New Issue
Block a user