@liujitcn/kratos-admin-system 0.0.88 → 0.0.90

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -42,6 +42,8 @@ export interface UserInfoForm {
42
42
  tenant_code: string;
43
43
  /** 租户名称 */
44
44
  tenant_name: string;
45
+ /** 当前用户所属租户ID */
46
+ tenant_id: number;
45
47
  }
46
48
  /** 获取个人中心用户信息请求参数 */
47
49
  export interface GetUserProfileRequest {
@@ -54,6 +54,8 @@ export interface UserInfoForm {
54
54
  tenant_code: string;
55
55
  /** 租户名称 */
56
56
  tenant_name: string;
57
+ /** 当前用户所属租户ID */
58
+ tenant_id: number;
57
59
  }
58
60
 
59
61
  /** 获取个人中心用户信息请求参数 */
@@ -27,7 +27,7 @@ import type { BaseApiLog, PageBaseApiLogRequest } from "@liujitcn/kratos-admin-s
27
27
  defineOptions({ name: "BaseApiLog", inheritAttrs: false });
28
28
 
29
29
  const page = ref<InstanceType<typeof LogTable>>();
30
- const { tenantColumns, loadTenantOptions, resolveTenantLabel } = useTenantScope();
30
+ const { tenantColumns, loadTenantOptions, resolveTenantLabel, toRequestTenantId } = useTenantScope();
31
31
 
32
32
  onMounted(() => void loadTenantOptions(true));
33
33
  const resultOptions = computed(() =>
@@ -90,7 +90,9 @@ const config = computed<LogTableConfig>(() => ({
90
90
  }));
91
91
 
92
92
  async function requestTable(params: Record<string, unknown>) {
93
- const response = await defBaseApiLogService.PageBaseApiLog(buildPageRequest(params as unknown as PageBaseApiLogRequest));
93
+ const response = await defBaseApiLogService.PageBaseApiLog(
94
+ buildPageRequest({ ...params, tenant_id: toRequestTenantId(params.tenant_id) } as unknown as PageBaseApiLogRequest)
95
+ );
94
96
  return { list: response.base_api_logs as unknown as Record<string, unknown>[], total: response.total };
95
97
  }
96
98
 
@@ -27,7 +27,7 @@ import type { BaseDataAccessLog, PageBaseDataAccessLogRequest } from "@liujitcn/
27
27
  defineOptions({ name: "BaseDataAccessLog", inheritAttrs: false });
28
28
 
29
29
  const page = ref<InstanceType<typeof LogTable>>();
30
- const { tenantColumns, loadTenantOptions, resolveTenantLabel } = useTenantScope();
30
+ const { tenantColumns, loadTenantOptions, resolveTenantLabel, toRequestTenantId } = useTenantScope();
31
31
 
32
32
  onMounted(() => void loadTenantOptions(true));
33
33
  const resultOptions = computed(() => createLogEnumOptions([
@@ -92,7 +92,9 @@ const config = computed<LogTableConfig>(() => ({
92
92
  }));
93
93
 
94
94
  async function requestTable(params: Record<string, unknown>) {
95
- const response = await defBaseDataAccessLogService.PageBaseDataAccessLog(buildPageRequest(params as unknown as PageBaseDataAccessLogRequest));
95
+ const response = await defBaseDataAccessLogService.PageBaseDataAccessLog(
96
+ buildPageRequest({ ...params, tenant_id: toRequestTenantId(params.tenant_id) } as unknown as PageBaseDataAccessLogRequest)
97
+ );
96
98
  return { list: response.base_data_access_logs as unknown as Record<string, unknown>[], total: response.total };
97
99
  }
98
100
 
@@ -281,7 +281,7 @@ function filterDeptTree(deptList: BaseDept[], keywordMap: { name: string; remark
281
281
  * 请求部门树数据,并按搜索条件过滤树形结构。
282
282
  */
283
283
  async function requestBaseDeptTable(params: Record<string, string>) {
284
- currentTenantId.value = params.tenant_id ? Number(params.tenant_id) : undefined;
284
+ currentTenantId.value = toRequestTenantId(params.tenant_id);
285
285
  const data = await defBaseDeptService.TreeBaseDept({ tenant_id: currentTenantId.value });
286
286
  const keywordMap = {
287
287
  name: params.name ?? "",
@@ -19,7 +19,7 @@ import type { BaseLoginLog, PageBaseLoginLogRequest } from "@liujitcn/kratos-adm
19
19
  defineOptions({ name: "BaseLoginLog", inheritAttrs: false });
20
20
 
21
21
  const page = ref<InstanceType<typeof LogTable>>();
22
- const { tenantColumns, loadTenantOptions, resolveTenantLabel } = useTenantScope();
22
+ const { tenantColumns, loadTenantOptions, resolveTenantLabel, toRequestTenantId } = useTenantScope();
23
23
 
24
24
  onMounted(() => void loadTenantOptions(true));
25
25
  const resultOptions = computed(() =>
@@ -91,7 +91,9 @@ const config = computed<LogTableConfig>(() => ({
91
91
  }));
92
92
 
93
93
  async function requestTable(params: Record<string, unknown>) {
94
- const response = await defBaseLoginLogService.PageBaseLoginLog(buildPageRequest(params as unknown as PageBaseLoginLogRequest));
94
+ const response = await defBaseLoginLogService.PageBaseLoginLog(
95
+ buildPageRequest({ ...params, tenant_id: toRequestTenantId(params.tenant_id) } as unknown as PageBaseLoginLogRequest)
96
+ );
95
97
  return { list: response.base_login_logs as unknown as Record<string, unknown>[], total: response.total };
96
98
  }
97
99
 
@@ -197,7 +197,7 @@ type MessageFormState = Omit<BaseMessageForm, "tenant_id" | "category_id"> & {
197
197
  };
198
198
 
199
199
  const { BUTTONS } = useAuthButtons();
200
- const { isDefaultTenant, tenantColumns, tenantFormField, loadTenantOptions } = useTenantScope();
200
+ const { isDefaultTenant, tenantColumns, tenantFormField, loadTenantOptions, toRequestTenantId } = useTenantScope();
201
201
  const proTable = ref<ProTableInstance>();
202
202
  const formDialogRef = ref<InstanceType<typeof FormDialog>>();
203
203
  const contentDialogRef = ref<InstanceType<typeof ProDialog>>();
@@ -564,7 +564,10 @@ function onAudienceTypeChange(audience: BaseMessageAudienceForm) {
564
564
  /** 请求消息表格数据。 */
565
565
  async function requestTable(params: Record<string, unknown>) {
566
566
  const data = await defBaseMessageService.PageBaseMessage(
567
- buildPageRequest<PageBaseMessageRequest>(params as unknown as PageBaseMessageRequest)
567
+ buildPageRequest<PageBaseMessageRequest>({
568
+ ...params,
569
+ tenant_id: toRequestTenantId(params.tenant_id)
570
+ } as unknown as PageBaseMessageRequest)
568
571
  );
569
572
  return { data: { list: data.base_messages ?? [], total: data.total } };
570
573
  }
@@ -19,7 +19,7 @@ import type { BaseOperationLog, PageBaseOperationLogRequest } from "@liujitcn/kr
19
19
  defineOptions({ name: "BaseOperationLog", inheritAttrs: false });
20
20
 
21
21
  const page = ref<InstanceType<typeof LogTable>>();
22
- const { tenantColumns, loadTenantOptions, resolveTenantLabel } = useTenantScope();
22
+ const { tenantColumns, loadTenantOptions, resolveTenantLabel, toRequestTenantId } = useTenantScope();
23
23
 
24
24
  onMounted(() => void loadTenantOptions(true));
25
25
  const resultOptions = computed(() => createLogEnumOptions([
@@ -82,7 +82,9 @@ const config = computed<LogTableConfig>(() => ({
82
82
  }));
83
83
 
84
84
  async function requestTable(params: Record<string, unknown>) {
85
- const response = await defBaseOperationLogService.PageBaseOperationLog(buildPageRequest(params as unknown as PageBaseOperationLogRequest));
85
+ const response = await defBaseOperationLogService.PageBaseOperationLog(
86
+ buildPageRequest({ ...params, tenant_id: toRequestTenantId(params.tenant_id) } as unknown as PageBaseOperationLogRequest)
87
+ );
86
88
  return { list: response.base_operation_logs as unknown as Record<string, unknown>[], total: response.total };
87
89
  }
88
90
 
@@ -19,7 +19,7 @@ import type { BasePermissionLog, PageBasePermissionLogRequest } from "@liujitcn/
19
19
  defineOptions({ name: "BasePermissionLog", inheritAttrs: false });
20
20
 
21
21
  const page = ref<InstanceType<typeof LogTable>>();
22
- const { tenantColumns, loadTenantOptions, resolveTenantLabel } = useTenantScope();
22
+ const { tenantColumns, loadTenantOptions, resolveTenantLabel, toRequestTenantId } = useTenantScope();
23
23
 
24
24
  onMounted(() => void loadTenantOptions(true));
25
25
  const resultOptions = computed(() => createLogEnumOptions([
@@ -86,7 +86,9 @@ const config = computed<LogTableConfig>(() => ({
86
86
  }));
87
87
 
88
88
  async function requestTable(params: Record<string, unknown>) {
89
- const response = await defBasePermissionLogService.PageBasePermissionLog(buildPageRequest(params as unknown as PageBasePermissionLogRequest));
89
+ const response = await defBasePermissionLogService.PageBasePermissionLog(
90
+ buildPageRequest({ ...params, tenant_id: toRequestTenantId(params.tenant_id) } as unknown as PageBasePermissionLogRequest)
91
+ );
90
92
  return { list: response.base_permission_logs as unknown as Record<string, unknown>[], total: response.total };
91
93
  }
92
94
 
@@ -26,7 +26,7 @@ import type { BasePolicyEvaluationLog, PageBasePolicyEvaluationLogRequest } from
26
26
  defineOptions({ name: "BasePolicyEvaluationLog", inheritAttrs: false });
27
27
 
28
28
  const page = ref<InstanceType<typeof LogTable>>();
29
- const { tenantColumns, loadTenantOptions, resolveTenantLabel } = useTenantScope();
29
+ const { tenantColumns, loadTenantOptions, resolveTenantLabel, toRequestTenantId } = useTenantScope();
30
30
 
31
31
  onMounted(() => void loadTenantOptions(true));
32
32
  const decisionOptions = computed(() => createLogEnumOptions([
@@ -89,7 +89,9 @@ const config = computed<LogTableConfig>(() => ({
89
89
  }));
90
90
 
91
91
  async function requestTable(params: Record<string, unknown>) {
92
- const response = await defBasePolicyEvaluationLogService.PageBasePolicyEvaluationLog(buildPageRequest(params as unknown as PageBasePolicyEvaluationLogRequest));
92
+ const response = await defBasePolicyEvaluationLogService.PageBasePolicyEvaluationLog(
93
+ buildPageRequest({ ...params, tenant_id: toRequestTenantId(params.tenant_id) } as unknown as PageBasePolicyEvaluationLogRequest)
94
+ );
93
95
  return { list: response.base_policy_evaluation_logs as unknown as Record<string, unknown>[], total: response.total };
94
96
  }
95
97
 
@@ -65,7 +65,7 @@ type ProjectGrantFormState = {
65
65
  const { BUTTONS } = useAuthButtons();
66
66
  const proTable = ref<ProTableInstance>();
67
67
  const formDialogRef = ref<InstanceType<typeof FormDialog>>();
68
- const { isDefaultTenant, tenantOptions, tenantColumns, tenantFormField, toRequestTenantId, loadTenantOptions } = useTenantScope();
68
+ const { isDefaultTenant, currentTenantId, tenantColumns, tenantFormField, toRequestTenantId, loadTenantOptions } = useTenantScope();
69
69
  const projectOptions = ref<SelectOptionResponse_Option[]>([]);
70
70
  const subjectOptions = ref<ProFormOption[]>([]);
71
71
  const loading = ref(false);
@@ -215,11 +215,11 @@ async function handleOpenDialog(row?: BaseTenantProjectGrant) {
215
215
  try {
216
216
  await formDialogRef.value?.open({
217
217
  load: async () => {
218
- await loadTenantOptions(true);
218
+ if (isDefaultTenant.value) await loadTenantOptions(true);
219
219
  // proto3 JSON 会省略空数组字段,行数据里的 project_id 可能为 undefined。
220
220
  const rowProjectIds = row?.project_id ?? [];
221
221
  const nextForm = {
222
- tenant_id: row?.tenant_id ?? (isDefaultTenant.value ? undefined : Number(tenantOptions.value[0]?.value) || undefined),
222
+ tenant_id: row?.tenant_id ?? (isDefaultTenant.value ? undefined : currentTenantId.value),
223
223
  subject_type: row?.subject_type ?? DEFAULT_SUBJECT_TYPE,
224
224
  subject_id: row?.subject_id,
225
225
  project_id: row && !(rowProjectIds.length === 1 && rowProjectIds[0] === 0) ? [...rowProjectIds] : [],
@@ -264,15 +264,16 @@ async function loadSubjectOptions() {
264
264
  /** 请求指定租户和主体类型的主体选项。 */
265
265
  async function requestSubjectOptions(tenantId: number | undefined, subjectType: BaseTenantProjectGrantSubjectType) {
266
266
  if (!tenantId || subjectType === BaseTenantProjectGrantSubjectType.BASE_TENANT_PROJECT_GRANT_SUBJECT_TYPE_UNSPECIFIED) return [];
267
+ const requestTenantId = toRequestTenantId(tenantId);
267
268
  switch (subjectType) {
268
269
  case BaseTenantProjectGrantSubjectType.BASE_TENANT_PROJECT_GRANT_SUBJECT_TYPE_POST:
269
- return (await defBasePostService.OptionBasePost({ tenant_id: tenantId })).list ?? [];
270
+ return (await defBasePostService.OptionBasePost({ tenant_id: requestTenantId })).list ?? [];
270
271
  case BaseTenantProjectGrantSubjectType.BASE_TENANT_PROJECT_GRANT_SUBJECT_TYPE_ROLE:
271
- return (await defBaseRoleService.OptionBaseRole({ tenant_id: tenantId })).list ?? [];
272
+ return (await defBaseRoleService.OptionBaseRole({ tenant_id: requestTenantId })).list ?? [];
272
273
  case BaseTenantProjectGrantSubjectType.BASE_TENANT_PROJECT_GRANT_SUBJECT_TYPE_DEPT:
273
- return ((await defBaseDeptService.OptionBaseDept({ tenant_id: tenantId })).list ?? []) as unknown as ProFormOption[];
274
+ return ((await defBaseDeptService.OptionBaseDept({ tenant_id: requestTenantId })).list ?? []) as unknown as ProFormOption[];
274
275
  case BaseTenantProjectGrantSubjectType.BASE_TENANT_PROJECT_GRANT_SUBJECT_TYPE_USER:
275
- return (await defBaseUserService.OptionBaseUser({ keyword: "", tenant_id: tenantId })).list ?? [];
276
+ return (await defBaseUserService.OptionBaseUser({ keyword: "", tenant_id: requestTenantId })).list ?? [];
276
277
  }
277
278
  return [];
278
279
  }
@@ -300,8 +301,8 @@ async function handleSubjectTypeChange(value: unknown) {
300
301
  function handleSubmit() {
301
302
  formDialogRef.value?.validate()?.then(valid => {
302
303
  if (!valid || !formData.tenant_id || !formData.subject_id || formData.subject_type === 0) return;
303
- const grant: BaseTenantProjectGrant = {
304
- tenant_id: formData.tenant_id,
304
+ const grant = {
305
+ ...(isDefaultTenant.value ? { tenant_id: formData.tenant_id } : {}),
305
306
  subject_type: formData.subject_type,
306
307
  subject_id: formData.subject_id,
307
308
  project_id: formData.all ? [0] : [...formData.project_id],
@@ -310,7 +311,7 @@ function handleSubmit() {
310
311
  subject_code: "",
311
312
  project_names: [],
312
313
  grant_key: ""
313
- };
314
+ } as BaseTenantProjectGrant;
314
315
  loading.value = true;
315
316
  const request = dialog.editing
316
317
  ? defBaseTenantProjectGrantService.UpdateBaseTenantProjectGrant({ base_tenant_project_grant: grant })
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@liujitcn/kratos-admin-system",
3
3
  "private": false,
4
- "version": "0.0.88",
4
+ "version": "0.0.90",
5
5
  "type": "module",
6
6
  "description": "kratos-admin system management module",
7
7
  "license": "MIT",
@@ -16,7 +16,7 @@
16
16
  "sortablejs": "^1.15.2",
17
17
  "swagger-ui-dist": "^5.32.15",
18
18
  "vue-element-plus-x": "^2.0.3",
19
- "@liujitcn/kratos-admin-core": "0.0.88"
19
+ "@liujitcn/kratos-admin-core": "0.0.90"
20
20
  },
21
21
  "peerDependencies": {
22
22
  "@element-plus/icons-vue": "^2.3.1",