bill hai 1 ano
pai
achega
8191567819

+ 3 - 0
src/components.d.ts

@@ -8,6 +8,7 @@ export {}
 declare module '@vue/runtime-core' {
   export interface GlobalComponents {
     AAvatar: typeof import('ant-design-vue/es')['Avatar']
+    ABadge: typeof import('ant-design-vue/es')['Badge']
     AButton: typeof import('ant-design-vue/es')['Button']
     ACheckbox: typeof import('ant-design-vue/es')['Checkbox']
     AConfigProvider: typeof import('ant-design-vue/es')['ConfigProvider']
@@ -27,6 +28,7 @@ declare module '@vue/runtime-core' {
     AModal: typeof import('ant-design-vue/es')['Modal']
     APopover: typeof import('ant-design-vue/es')['Popover']
     ARadio: typeof import('ant-design-vue/es')['Radio']
+    ARadioButton: typeof import('ant-design-vue/es')['RadioButton']
     ARadioGroup: typeof import('ant-design-vue/es')['RadioGroup']
     ASelect: typeof import('ant-design-vue/es')['Select']
     ASelectOption: typeof import('ant-design-vue/es')['SelectOption']
@@ -35,6 +37,7 @@ declare module '@vue/runtime-core' {
     ATabs: typeof import('ant-design-vue/es')['Tabs']
     ATextarea: typeof import('ant-design-vue/es')['Textarea']
     ATooltip: typeof import('ant-design-vue/es')['Tooltip']
+    ATree: typeof import('ant-design-vue/es')['Tree']
     AUpload: typeof import('ant-design-vue/es')['Upload']
     DataList: typeof import('./components/data-list/index.vue')['default']
     DeleteOutlined: typeof import('@ant-design/icons-vue')['DeleteOutlined']

+ 1 - 1
src/lang/en/material.ts

@@ -15,6 +15,6 @@ export default {
     "rulebindAccount": "Please enter the user's mobile phone number",
     "addMertial": "New Note",
     "filterName": "Please enter the name of the note",
-    "add": "Add new members",
+    "add": "Add a new member",
     "delTip": "Continue to remove this user?"
 }

+ 1 - 1
src/lang/en/project.ts

@@ -1,7 +1,7 @@
 export default {
     "desc": {
         "done": "Done",
-        "undone": "Working on it"
+        "undone": "In progress"
     },
     "bimDesc": {
         "error": "Error",

+ 1 - 1
src/lang/en/scene.ts

@@ -15,5 +15,5 @@ export default {
     "nameLabel1Rule": "Please enter a name, maximum {max} characters.",
     "fileLabel": "BIM",
     "updateFile": "Modify BIM",
-    "shootCountLabel": "number of points"
+    "shootCountLabel": "Projects"
 }

+ 5 - 5
src/lang/en/sys.ts

@@ -48,9 +48,9 @@ export default {
         "3": "evening"
     },
     "projectCount": "Number of projects",
-    "projectFileCount": "Number of project documents",
-    "projectSceneCount": "Number of project scenes",
-    "projectOverCount": "Number of projects completed",
+    "projectFileCount": "Project documents",
+    "projectSceneCount": "Project scenes",
+    "projectOverCount": "Completed project",
     "operLog": "Operation Record",
     "updateInfo": "Operation Record",
     "updatePwd": "Change Password",
@@ -63,8 +63,8 @@ export default {
     "sync": "Sync",
     "select": "Select",
     "create": "Create",
-    "loginh1": "Welcome to 4D Construction Management",
-    "loginh2": "Account Login",
+    "loginh1": "Welcome to 4DKanKan Construction Management",
+    "loginh2": "Sign In",
     "phoneRule": "Please enter the account number",
     "passwordRule": "Please enter the password",
     "phoneRul1": "Please enter the correct account number",

+ 1 - 1
src/lang/en/tagging.ts

@@ -1,5 +1,5 @@
 export default {
-    "markingTitleLabel": "Scene Labeling",
+    "markingTitleLabel": "Tag",
     "createByLabel": "Creator",
     "usersLabel": "Users",
     "statusLabel": "Status",

+ 3 - 3
src/lang/ja/log.ts

@@ -1,5 +1,5 @@
 export default {
-    "logMsgLabel": "备注",
-    "userNameLabel": "操作",
-    "createTimeLabel": "操作时间"
+    "logMsgLabel": "備考",
+    "userNameLabel": "操作",
+    "createTimeLabel": "操作時間"
 }

+ 18 - 18
src/lang/ja/material.ts

@@ -1,20 +1,20 @@
 export default {
-    "nickNameLabel": "成员名称",
-    "userNameLabel": "账号",
-    "remarkLabel": "备注",
-    "roleLabel": "项目角色",
-    "bindAccountLabel": "绑定手机号",
-    "createTimeLabel": "添加时间",
-    "name": "项目成员",
-    "ruleUserName": "请输入用户账号",
-    "ruleNickName": "请输入成员名称",
-    "ruleNickName1": "成员名称最多50字",
-    "ruleRemark": "请输入备注",
-    "ruleRemark1": "备注最多{max}字",
-    "ruleRole": "请选择项目角色",
-    "rulebindAccount": "请输入用户手机号",
-    "addMertial": "新建备注",
-    "filterName": "请输入笔记名称",
-    "add": "新增成员",
-    "delTip": "确定要删除此用户?"
+    "nickNameLabel": "担当者名",
+    "userNameLabel": "アカウント",
+    "remarkLabel": "備考",
+    "roleLabel": "役割",
+    "bindAccountLabel": "アカウント",
+    "createTimeLabel": "作成時間",
+    "name": "担当者",
+    "ruleUserName": "アカウントを入力してください。",
+    "ruleNickName": "担当者名",
+    "ruleNickName1": "50字まで",
+    "ruleRemark": "備考を入力してください。",
+    "ruleRemark1": "最大{max}字まで",
+    "ruleRole": "役割を選択してください。",
+    "rulebindAccount": "メールアドレスを入力してください。",
+    "addMertial": "コメントを追加",
+    "filterName": "ノート名を入力してください。",
+    "add": "担当者を追加",
+    "delTip": "このアカウントを削除しますか?"
 }

+ 38 - 38
src/lang/ja/project.ts

@@ -4,50 +4,50 @@ export default {
         "undone": "未完成"
     },
     "bimDesc": {
-        "error": "错误",
+        "error": "エラー",
         "done": "完成",
-        "upload": "上传中",
-        "transfrom": "转换中",
-        "offline": "离线包生成中"
+        "upload": "アップロード中",
+        "transfrom": "転換中",
+        "offline": "ダウンロード中"
     },
     "sceneDesc": {
-        "DEL": "场景被删",
-        "RUN": "算中",
-        "ERR": "计算失败",
-        "SUCCESS": "计算成功",
-        "ARCHIVE": "封存",
-        "RERUN": "重新计算中"
+        "DEL": "シーンは削除されました",
+        "RUN": "算中",
+        "ERR": "計算に失敗",
+        "SUCCESS": "計算に成功",
+        "ARCHIVE": "アーカイブ",
+        "RERUN": "再計算中"
     },
     "sceneTypeDesc": {
-        "SWKK": "四维看看",
-        "SWKJ": "四维看见",
-        "SWSS": "四维深时",
-        "SWSG": "四维深光"
+        "SWKK": "4DKK_Pro",
+        "SWKJ": "4DKK_Minion",
+        "SWSS": "4DKK_Mega",
+        "SWSG": "4DKK_Meta"
     },
     "taggingStatusDesc": {
-        "pending": "待处理",
-        "progress": "进行中",
-        "unsolved": "未解",
-        "solved": "已解决"
+        "pending": "未処理",
+        "progress": "処理中",
+        "unsolved": "未解",
+        "solved": "解決済み"
     },
-    "name": "项目",
-    "projectImgLabel": "封面",
-    "projectBimLabel": "BIM文件",
-    "projectImgTip": "推荐大小:500 * 500 像素",
-    "projectNameLabel": "项目名称",
-    "projectMsgLabel": "项目描述",
-    "projectCreaterLabel": "创建人",
-    "createTimeLabel": "创建时间",
-    "updateTimeLabel": "更新时间",
-    "projectStatusLabel": "项目状态",
-    "addTitle": "新建项目",
-    "delTitle": "删除项目",
-    "updateTitle": "修改项目",
-    "finshTitle": "完成项目",
-    "projectNameRule": "请输入名称最多{max}字",
-    "projectMsgRule": "请输入项目描述最多{max}字",
-    "projectNamePleac": "请输入项目名称",
-    "projectCreaterPleac": "请输入项目创建人",
-    "dayPleac": "选择项目创建日期",
-    "manageList": "管理列表"
+    "name": "プロジェクト",
+    "projectImgLabel": "サムネイル",
+    "projectBimLabel": "BIMファイル",
+    "projectImgTip": "推奨サイズ:500 * 500 画素",
+    "projectNameLabel": "プロジェクト名",
+    "projectMsgLabel": "プロジェクトの説明",
+    "projectCreaterLabel": "作成者",
+    "createTimeLabel": "作成時間",
+    "updateTimeLabel": "アップデート時間",
+    "projectStatusLabel": "状態",
+    "addTitle": "プロジェクトを新規作成",
+    "delTitle": "削除",
+    "updateTitle": "調整",
+    "finshTitle": "完成",
+    "projectNameRule": "プロジェクト名を入力してください。最大{max}字まd",
+    "projectMsgRule": "説明を入力してください。最大{max}字まで",
+    "projectNamePleac": "入力してください",
+    "projectCreaterPleac": "入力してください。",
+    "dayPleac": "作成日時を選択",
+    "manageList": "管理リスト"
 }

+ 10 - 10
src/lang/ja/role.ts

@@ -1,12 +1,12 @@
 export default {
-    "roleNameLabel": "角色名称",
-    "sroleNameLabel": "所属项目",
-    "remarkLabel": "备注",
-    "createTimeLabel": "操作时间",
-    "name": "项目角色",
-    "roleNameRule": "请输入角色名称",
-    "remarkRule": "请输入备注,最多50字",
-    "roleMenusLabel": "菜单分配",
-    "add": "新增角色",
-    "delMsg": "确定要删除此角色"
+    "roleNameLabel": "役割",
+    "sroleNameLabel": "所属のプロジェクト",
+    "remarkLabel": "備考",
+    "createTimeLabel": "操作時間",
+    "name": "役割",
+    "roleNameRule": "役割を入力してください。",
+    "remarkRule": "備考を入力してください。最大50字まで。",
+    "roleMenusLabel": "機能",
+    "add": "役割を追加",
+    "delMsg": "この役割を削除しますか?"
 }

+ 17 - 17
src/lang/ja/scene.ts

@@ -1,19 +1,19 @@
 export default {
-    "delTip": "确定要删除此场景?",
-    "nameLabel": "名",
-    "phoneLabel": "创建人",
-    "numLabel": "场景码",
-    "typeLabel": "类型",
-    "statusLabel": "状",
-    "createTimeLabel": "拍摄时间",
-    "name": "场景",
-    "selected": "已选择{len}个场景",
-    "nameRule": "请输入场景名称",
-    "fileRule": "请上传BIM文件",
-    "create": "创建场景",
-    "nameLabel1": "场景名称",
-    "nameLabel1Rule": "请输入名称最多{max}字",
-    "fileLabel": "BIM文件",
-    "updateFile": "修改BIM",
-    "shootCountLabel": "点位数"
+    "delTip": "このシーンを削除しますか?",
+    "nameLabel": "名",
+    "phoneLabel": "作成者",
+    "numLabel": "コード",
+    "typeLabel": "カメラ",
+    "statusLabel": "状",
+    "createTimeLabel": "撮影時間",
+    "name": "物件",
+    "selected": "{len}個のデータを選択済み",
+    "nameRule": "物件名を入力してください",
+    "fileRule": "BIMファイルをアップロードしてください",
+    "create": "シーンを追加",
+    "nameLabel1": "物件名",
+    "nameLabel1Rule": "タイトルを入力してください。最大{max}字まで",
+    "fileLabel": "BIMファイル",
+    "updateFile": "BIMを調整",
+    "shootCountLabel": "ポイント数"
 }

+ 62 - 62
src/lang/ja/sys.ts

@@ -1,77 +1,77 @@
 export default {
-    "404": "错误页面",
-    "TOKEN_INVALID": "token已失效",
-    "NO_ACCESS": "无权访问",
-    "SUCCESS": "请求成功",
-    "name": "四维工地管家",
-    "ERROR": "服务错误,请稍后再试",
-    "undata": "未搜索到结果,",
-    "data": "数据",
-    "undataDesc": "您还没有{name},请先创建{name}~",
-    "uploadBtn": "上传",
+    "404": "エラー",
+    "TOKEN_INVALID": "失効しました。",
+    "NO_ACCESS": "アクセス権限なし",
+    "SUCCESS": "請求に成功",
+    "name": "4D Construction Management",
+    "ERROR": "サーバーにエラーです。後ほど再試行してください。",
+    "undata": "データはありません",
+    "data": "データ",
+    "undataDesc": "{name}はないため,ひとまず{name}を作成してください。",
+    "uploadBtn": "アップロード",
     "uploadDesc": {
-        "0": "支持{ extxTip }文件格式;",
-        "1": "最大支持上传{ maxSizeTip };"
+        "0": "{ extxTip }のみ",
+        "1": "{ maxSizeTip }まで;"
     },
     "noUploadDesc": {
-        "0": "仅支持{extxTip}文件格式",
-        "1": "最大支持上传{maxSizeTip}"
+        "0": "{extxTip}ファイルのみ",
+        "1": "{maxSizeTip}まで"
     },
-    "more": "",
-    "logout": "退出登录",
+    "more": "詳しく",
+    "logout": "ログアウト",
     "router": {
-        "login": "登录",
-        "personal": "个人信息",
-        "projects": "项目管理",
-        "projectScenes": "场景管理",
-        "projectMaterial": "项目资料",
-        "projectMembers": "成员管理",
-        "projectTaggings": "项目标注",
-        "projectRoles": "项目角色",
-        "project": "项目"
+        "login": "ログイン",
+        "personal": "個人情報",
+        "projects": "プロジェクト管理",
+        "projectScenes": "シーン管理",
+        "projectMaterial": "プロジェクト情報",
+        "projectMembers": "担当者管理",
+        "projectTaggings": "ホットスポット",
+        "projectRoles": "役割",
+        "project": "プロジェクト"
     },
     "copyAuth": "请授予写入粘贴板权限!",
-    "unLoginName": "游客",
-    "add": "新增",
-    "update": "修改",
-    "cancel": "取消",
+    "unLoginName": "一般ユーザ",
+    "add": "追加",
+    "update": "変更",
+    "cancel": "キャンセル",
     "save": "保存",
-    "query": "查看",
+    "query": "確認",
     "oper": "操作",
-    "del": "除",
-    "tipTitle": "系统提示",
-    "good": "",
+    "del": "除",
+    "tipTitle": "ヒント",
+    "good": "了解",
     "time": {
-        "0": "早上",
-        "1": "午",
-        "2": "午",
-        "3": "晚上"
+        "0": "昼前",
+        "1": "午",
+        "2": "午",
+        "3": ""
     },
-    "projectCount": "项目数",
-    "projectFileCount": "项目文件数",
-    "projectSceneCount": "项目场景数",
-    "projectOverCount": "完成项目数",
-    "operLog": "操作记录",
-    "updateInfo": "操作记录",
-    "updatePwd": "修改密码",
-    "delTip": "删除后无法恢复,是否确认?",
-    "selectTime": "选择日期",
-    "search": "索",
-    "reset": "重置",
+    "projectCount": "プロジェクト数",
+    "projectFileCount": "ファイル数",
+    "projectSceneCount": "物件数",
+    "projectOverCount": "完成数",
+    "operLog": "操作記録",
+    "updateInfo": "操作記録",
+    "updatePwd": "パスワードを変更",
+    "delTip": "削除後には元に戻せないので確定しますか?",
+    "selectTime": "時間",
+    "search": "索",
+    "reset": "リセット",
     "all": "全部",
-    "edit": "编辑",
-    "sync": "同步",
-    "select": "选择",
-    "create": "创建",
-    "loginh1": "欢迎登录",
-    "loginh2": "账号登录",
-    "phoneRule": "请输入账号",
-    "passwordRule": "请输入账号",
-    "phoneRul1": "请输入正确账号",
-    "passwordRule1": "手机号或密码有误",
-    "rememberLabel": "记住密码",
-    "login": "登录",
-    "forget": "忘记密码",
-    "register": "注册",
+    "edit": "編集",
+    "sync": "シンクロ",
+    "select": "選択",
+    "create": "作成",
+    "loginh1": "ログイン",
+    "loginh2": "アカウントでログイン",
+    "phoneRule": "アカウントを入力してください",
+    "passwordRule": "アカウントを入力してください",
+    "phoneRul1": "正しいアカウントを入力してください",
+    "passwordRule1": "あかうんとまたはパスワードが誤っています。",
+    "rememberLabel": "パスワードを保存",
+    "login": "ログイン",
+    "forget": "パスワード忘れ",
+    "register": "登録",
     "un": "未知"
 }

+ 7 - 7
src/lang/ja/tagging.ts

@@ -1,9 +1,9 @@
 export default {
-    "markingTitleLabel": "场景标注",
-    "createByLabel": "创建人",
-    "usersLabel": "涉及的成员",
-    "statusLabel": "状",
-    "lastUpdateByLabel": "最后修改人",
-    "updateTimeLabel": "最后修改时间",
-    "filterNamePlace": "请输入标注关键字"
+    "markingTitleLabel": "ホットスポット",
+    "createByLabel": "作成者",
+    "usersLabel": "関係者",
+    "statusLabel": "状",
+    "lastUpdateByLabel": "最後操作者",
+    "updateTimeLabel": "最後編集時間",
+    "filterNamePlace": "キーワードを入力してください"
 }

+ 19 - 18
src/lang/zh/scene.ts

@@ -1,19 +1,20 @@
 export default {
-    "delTip": "确定要删除此场景?",
-    "nameLabel": "名称",
-    "phoneLabel": "创建人",
-    "numLabel": "场景码",
-    "typeLabel": "类型",
-    "shootCountLabel": "点位数",
-    "statusLabel": "状态",
-    "createTimeLabel": "拍摄时间",
-    "name": "场景",
-    "selected": "已选择{len}个场景",
-    "nameRule": "请输入场景名称",
-    "fileRule": "请上传BIM文件",
-    "create": "创建场景",
-    "nameLabel1": "场景名称",
-    "nameLabel1Rule": "请输入名称最多{max}字",
-    "fileLabel": "BIM文件",
-    "updateFile": "修改BIM"
-}
+  addTip: '请添加相同相机类型和点位数量一致的场景',
+  delTip: '确定要删除此场景?',
+  nameLabel: '名称',
+  phoneLabel: '创建人',
+  numLabel: '场景码',
+  typeLabel: '类型',
+  shootCountLabel: '点位数',
+  statusLabel: '状态',
+  createTimeLabel: '拍摄时间',
+  name: '场景',
+  selected: '已选择{len}个场景',
+  nameRule: '请输入场景名称',
+  fileRule: '请上传BIM文件',
+  create: '创建场景',
+  nameLabel1: '场景名称',
+  nameLabel1Rule: '请输入名称最多{max}字',
+  fileLabel: 'BIM文件',
+  updateFile: '修改BIM'
+}

+ 1 - 1
src/router/constant.ts

@@ -30,7 +30,7 @@ export const routesMetas = {
     title: ui18n.t('sys.router.login')
   },
   [RoutesName.personal]: {
-    title: ui18n.t('sys.router.login'),
+    title: ui18n.t('sys.router.personal'),
     icon: ''
   },
   [RoutesName.projects]: {

+ 1 - 1
src/views/personal/index.vue

@@ -9,7 +9,7 @@
           <span>{{ user.email }}</span>
         </div>
         <div class="account-manage">
-          <a :href="userInfoLink">{{ $t('sys.updateInfo') }} ></a>
+          <a :href="userInfoLink">{{ $t('sys.operLog') }} ></a>
           <a :href="userInfoLink">{{ $t('sys.updatePwd') }} ></a>
         </div>
       </div>

+ 1 - 1
src/views/project/columns.ts

@@ -49,7 +49,7 @@ export const projectColumns: ColumnsType<SimpleProject> = [
     key: 'projectCreater'
   },
   {
-    title: ui18n.t('project.projectCreaterLabel'),
+    title: ui18n.t('project.createTimeLabel'),
     dataIndex: 'createTime',
     key: 'createTime'
   },

+ 1 - 1
src/views/project/list.vue

@@ -71,7 +71,7 @@
       }}</a-button>
     </template>
     <a-table
-      :scroll="{ x: '100%', y: 510 }"
+      :scroll="{ x: '100%', y: 490 }"
       :data-source="list"
       :columns="projectColumns"
       :pagination="pagination"

+ 3 - 1
src/views/scene/columns.ts

@@ -24,7 +24,7 @@ export const sceneColumns: ColumnsType<ProjectScene> = [
   {
     title: ui18n.t('scene.nameLabel'),
     dataIndex: 'name',
-    width: '400px',
+    width: '300px',
     key: 'name'
   },
   {
@@ -40,6 +40,7 @@ export const sceneColumns: ColumnsType<ProjectScene> = [
   {
     title: ui18n.t('scene.shootCountLabel'),
     dataIndex: 'shootCount',
+    width: '100px',
     key: 'shootCount'
   },
   {
@@ -73,6 +74,7 @@ export const sceneColumns: ColumnsType<ProjectScene> = [
     }
   },
   {
+    width: '100px',
     title: ui18n.t('scene.createTimeLabel'),
     dataIndex: 'createTime',
     key: 'createTime'

+ 19 - 9
src/views/scene/select-scenes.vue

@@ -1,9 +1,6 @@
 <template>
   <div class="tabs">
-    <a-tooltip
-      placement="topLeft"
-      :title="`项目仅能选择相同类型且点位数相同的场景`"
-    >
+    <a-tooltip placement="topLeft" :title="$t('scene.addTip')">
       <span class="help">
         <QuestionOutlined />
       </span>
@@ -38,6 +35,19 @@
       onChange: changeSelectNums
     }"
   >
+    <template #bodyCell="{ column, record }">
+      <template v-if="column.key === 'name'">
+        <a-tooltip v-if="record.name.length > 15">
+          <template #title>
+            <span>{{ record.name }}</span>
+          </template>
+          <span>{{ record.name.substring(0, 15) }}...</span>
+        </a-tooltip>
+        <span v-else>
+          {{ record.name }}
+        </span>
+      </template>
+    </template>
   </a-table>
 </template>
 
@@ -49,7 +59,7 @@ import { usePaging } from '@/hook'
 
 import type { SelectTypeScenes, Scene } from '@/store'
 
-defineOptions({ name: 'select-scene-list' })
+defineOptions({ name: 'SelectSceneList' })
 
 const props = defineProps<{
   sceneList: Scene[]
@@ -62,10 +72,10 @@ const emit = defineEmits<{
 }>()
 
 const tabOptions = [
-  SceneType.SWKJ,
-  SceneType.SWKK,
+  SceneType.SWSG,
   SceneType.SWSS,
-  SceneType.SWSG
+  SceneType.SWKJ,
+  SceneType.SWKK
 ].map(type => ({
   key: type,
   label: SceneTypeDesc[type]
@@ -73,7 +83,7 @@ const tabOptions = [
 
 const defaultTypeNums = { ...props.typeNums }
 const sceneName = ref('')
-const params = reactive({ type: SceneType.SWSS, sceneName: '' })
+const params = reactive({ type: SceneType.SWSG, sceneName: '' })
 const selectFirstScene = computed(() =>
   Object.entries(props.typeNums).find(([k, v]) => v.length > 0)
 )

+ 2 - 1
src/views/system/login.vue

@@ -50,9 +50,10 @@ import { router, RoutesName } from '@/router'
 import { phoneRule, passwordRule, encodePwd, useCacheState } from './shared'
 import { registerLink, forgetLink } from '@/env'
 
-defineOptions({ name: 'login' })
+defineOptions({ name: 'Login' })
 
 const [loginState, saveLoginState] = useCacheState()
+
 const userStore = useUserStore()
 const login = async () => {
   saveLoginState()