diff --git a/frontend/src/api/workspace.ts b/frontend/src/api/workspace.ts index 5298045b5..6a289bbe9 100644 --- a/frontend/src/api/workspace.ts +++ b/frontend/src/api/workspace.ts @@ -15,3 +15,8 @@ export const workspaceDelete = (id: any) => request.delete(`/system/workspace/${ export const workspaceList = () => request.get('/system/workspace') export const workspaceDetail = (id: any) => request.get(`/system/workspace/${id}`) export const uwsOption = (params: any) => request.get('system/workspace/uws/option', { params }) + +export const workspaceModelMapping = (aiModelId: any) => + request.get(`/system/aimodel/${aiModelId}/ws_mapping`) +export const workspaceModelMappingUpdate = (aiModelId: any, data: any) => + request.put(`/system/aimodel/${aiModelId}/ws_mapping`, data) diff --git a/frontend/src/assets/svg/icon_describe_outlined.svg b/frontend/src/assets/svg/icon_describe_outlined.svg new file mode 100644 index 000000000..7dc0951b4 --- /dev/null +++ b/frontend/src/assets/svg/icon_describe_outlined.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/assets/svg/workspace-white.svg b/frontend/src/assets/svg/workspace-white.svg new file mode 100644 index 000000000..7e9cac0a5 --- /dev/null +++ b/frontend/src/assets/svg/workspace-white.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/frontend/src/i18n/en.json b/frontend/src/i18n/en.json index 6fc46be93..9f18e1864 100644 --- a/frontend/src/i18n/en.json +++ b/frontend/src/i18n/en.json @@ -32,6 +32,16 @@ "enter_variable_name": "Please Enter Variable Name", "enter_variable_value": "Please Enter Variable Value" }, + "authorized_space": { + "authorized_space": "Authorized Space", + "authorized_space_list": "Authorized Space List", + "select_space": "Select Space", + "modify_authorized_space": "Modify Authorized Space", + "workspaces_authorized": "Authorized {num} Workspaces", + "number_of_members": "Number of Members", + "delete_selected_workspaces": "Are you sure you want to delete the selected {msg} workspaces?", + "delete_workspace": "Are you sure you want to delete the workspace: {msg}?" + }, "sync": { "records": "Displaying {num} records out of {total}", "confirm_upload": "Confirm Upload", diff --git a/frontend/src/i18n/ko-KR.json b/frontend/src/i18n/ko-KR.json index a95df5f80..046da13f5 100644 --- a/frontend/src/i18n/ko-KR.json +++ b/frontend/src/i18n/ko-KR.json @@ -32,6 +32,16 @@ "enter_variable_name": "변수 이름을 입력하세요", "enter_variable_value": "변수 값을 입력하세요" }, + "authorized_space": { + "authorized_space": "권한 있는 공간", + "authorized_space_list": "권한 있는 공간 목록", + "select_space": "공간 선택", + "modify_authorized_space": "권한 있는 공간 수정", + "workspaces_authorized": "{num}개의 권한 있는 작업 공간", + "number_of_members": "회원 수", + "delete_selected_workspaces": "선택한 {msg}개의 작업 공간을 삭제하시겠습니까?", + "delete_workspace": "작업 공간을 삭제하시겠습니까: {msg}?" + }, "sync": { "records": "{total}개 중 {num}개의 레코드 표시", "confirm_upload": "업로드 확인", diff --git a/frontend/src/i18n/zh-CN.json b/frontend/src/i18n/zh-CN.json index e13832170..eebaceb38 100644 --- a/frontend/src/i18n/zh-CN.json +++ b/frontend/src/i18n/zh-CN.json @@ -32,6 +32,16 @@ "enter_variable_name": "请输入变量名称", "enter_variable_value": "请输入变量值" }, + "authorized_space": { + "authorized_space": "授权空间", + "authorized_space_list": "授权空间列表", + "select_space": "选择空间", + "modify_authorized_space": "修改授权空间", + "workspaces_authorized": "已授权 {num} 个工作空间", + "number_of_members": "成员数量", + "delete_selected_workspaces": "是否删除选中的 {msg} 个工作空间?", + "delete_workspace": "是否删除工作空间:{msg}?" + }, "sync": { "records": "显示 {num} 条数据,共 {total} 条", "confirm_upload": "确定上传", diff --git a/frontend/src/i18n/zh-TW.json b/frontend/src/i18n/zh-TW.json index bd9fe135e..c53114cae 100644 --- a/frontend/src/i18n/zh-TW.json +++ b/frontend/src/i18n/zh-TW.json @@ -32,6 +32,16 @@ "enter_variable_name": "請輸入變數名稱", "enter_variable_value": "請輸入變數值" }, + "authorized_space": { + "authorized_space": "授權空間", + "authorized_space_list": "授權空間列表", + "select_space": "選擇空間", + "modify_authorized_space": "修改授權空間", + "workspaces_authorized": "已授權 {num} 個工作空間", + "number_of_members": "成員數量", + "delete_selected_workspaces": "是否刪除選中的 {msg} 個工作空間?", + "delete_workspace": "是否刪除工作空間:{msg}?" + }, "sync": { "records": "顯示 {num} 筆資料,共 {total} 筆", "confirm_upload": "確定上傳", diff --git a/frontend/src/views/system/model/Card.vue b/frontend/src/views/system/model/Card.vue index 7bf93718e..faef058a0 100644 --- a/frontend/src/views/system/model/Card.vue +++ b/frontend/src/views/system/model/Card.vue @@ -1,9 +1,12 @@ @@ -77,6 +94,27 @@ defineExpose({ showErrorMask }) {{ $t('model.basic_model') }} {{ baseModel }} +
+ {{ $t('authorized_space.authorized_space') }} + + {{ $t('permission.2', { msg: num }) }} + + + + + + +
{{ $t('dashboard.edit') }} - - - - - {{ $t('dashboard.delete') }} - + + + + + +
+
+ + + + {{ $t('authorized_space.authorized_space') }} +
+
+ + + + {{ $t('dashboard.delete') }} +
+
+
@@ -167,7 +234,7 @@ defineExpose({ showErrorMask }) .methods { margin-top: 16px; align-items: center; - display: none; + display: flex; .divide { height: 14px; @@ -175,6 +242,37 @@ defineExpose({ showErrorMask }) background-color: #1f232926; margin: 0 12px; } + .more { + position: relative; + cursor: pointer; + margin-left: 12px; + width: 32px; + height: 32px; + + svg { + position: relative; + z-index: 10; + } + + &::after { + content: ''; + position: absolute; + border-radius: 6px; + width: 30px; + height: 30px; + transform: translate(-50%, -50%); + top: 50%; + left: 50%; + background: #fff; + border: 1px solid #d9dcdf; + } + + &:hover { + &::after { + background-color: #f5f6f7; + } + } + } } &:hover { @@ -208,3 +306,61 @@ defineExpose({ showErrorMask }) } } + + diff --git a/frontend/src/views/system/model/Model.vue b/frontend/src/views/system/model/Model.vue index f370f3d94..ddd760a07 100644 --- a/frontend/src/views/system/model/Model.vue +++ b/frontend/src/views/system/model/Model.vue @@ -16,6 +16,7 @@ import { getModelTypeName } from '@/entity/CommonEntity.ts' import { useI18n } from 'vue-i18n' import { get_supplier } from '@/entity/supplier' import { highlightKeyword } from '@/utils/xss' +import AuthorizedWorkspaceDialogForModel from '@/views/system/workspace/AuthorizedWorkspaceDialogForModel.vue' interface Model { name: string @@ -249,6 +250,15 @@ const deleteHandler = (item: any) => { }) } +const AuthorizedWorkspaceDialogForModelRef = ref() + +const handleAuthorizedSpace = (item: any) => { + AuthorizedWorkspaceDialogForModelRef.value.open(item.id) +} +const handleEditWorkspaceList = (item: any) => { + AuthorizedWorkspaceDialogForModelRef.value.open(item.id) +} + const clickModel = (ele: any) => { activeStep.value = 1 supplierChang(ele) @@ -394,6 +404,8 @@ const submit = (item: any) => { @edit="handleEditModel(ele)" @del="deleteHandler" @default="handleDefault(ele)" + @authorized-space="handleAuthorizedSpace(ele)" + @edit-workspace-list="handleEditWorkspaceList(ele)" > @@ -468,6 +480,7 @@ const submit = (item: any) => { +