bill 1 рік тому
батько
коміт
ea64f4c8a9

+ 5 - 2
src/api/scene.ts

@@ -23,12 +23,14 @@ export const sceneStatusDesc = {
 export enum SceneType {
   SWKK,
   SWKJ,
-  SWSS
+  SWSS,
+  SWSG
 }
 export const SceneTypeDesc = {
   [SceneType.SWKK]: ui18n.t('project.sceneTypeDesc.SWKK'),
   [SceneType.SWKJ]: ui18n.t('project.sceneTypeDesc.SWKJ'),
-  [SceneType.SWSS]: ui18n.t('project.sceneTypeDesc.SWSS')
+  [SceneType.SWSS]: ui18n.t('project.sceneTypeDesc.SWSS'),
+  [SceneType.SWSG]: ui18n.t('project.sceneTypeDesc.SWSG')
 }
 
 export interface Scene {
@@ -41,6 +43,7 @@ export interface Scene {
   createTime: string
   type: SceneType
   status: SceneStatus
+  shootCount: number
   phone: string
   bind: boolean
 }

+ 1 - 0
src/components.d.ts

@@ -45,6 +45,7 @@ declare module '@vue/runtime-core' {
     EasyText: typeof import('./components/easyText/index.vue')['default']
     Loading: typeof import('./components/loading/index.vue')['default']
     LocaleEnv: typeof import('./components/locale-env/index.vue')['default']
+    QuestionOutlined: typeof import('@ant-design/icons-vue')['QuestionOutlined']
     RouterLink: typeof import('vue-router')['RouterLink']
     RouterView: typeof import('vue-router')['RouterView']
     Simples: typeof import('./components/simples/index.vue')['default']

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

@@ -1,5 +1,5 @@
 export default {
-    "logMsgLabel": "备注",
-    "userNameLabel": "操作人",
-    "createTimeLabel": "操作时间"
+    "logMsgLabel": "Notes",
+    "userNameLabel": "Operator",
+    "createTimeLabel": "Operation Time"
 }

+ 18 - 18
src/lang/en/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": "Name",
+    "userNameLabel": "Account",
+    "remarkLabel": "Notes",
+    "roleLabel": "Role",
+    "bindAccountLabel": "Phone Number",
+    "createTimeLabel": "Added Time",
+    "name": "Project Members",
+    "ruleUserName": "Please enter a user account",
+    "ruleNickName": "Please enter the name of the member",
+    "ruleNickName1": "Name of the member (maximum 50 words)",
+    "ruleRemark": "Please enter a note",
+    "ruleRemark1": "Maximum {max} words for a note",
+    "ruleRole": "Please select a project role",
+    "rulebindAccount": "Please enter the user's mobile phone number",
+    "addMertial": "New Note",
+    "filterName": "Please enter the name of the note",
+    "add": "Add new members",
+    "delTip": "Continue to remove this user?"
 }

+ 41 - 40
src/lang/en/project.ts

@@ -1,52 +1,53 @@
 export default {
     "desc": {
-        "done": "已完成",
-        "undone": "未完成"
+        "done": "Done",
+        "undone": "Working on it"
     },
     "bimDesc": {
-        "error": "错误",
-        "done": "完成",
-        "upload": "上传中",
-        "transfrom": "转换中",
-        "offline": "离线包生成中"
+        "error": "Error",
+        "done": "Done",
+        "upload": "Uploading",
+        "transfrom": "Converting",
+        "offline": "Offline package is being created"
     },
     "sceneDesc": {
-        "DEL": "场景被删",
-        "RUN": "计算中",
-        "ERR": "计算失败",
-        "SUCCESS": "计算成功",
-        "ARCHIVE": "封存",
-        "RERUN": "重新计算中"
+        "DEL": "Scene deleted",
+        "RUN": "Calculating",
+        "ERR": "Calculation failed",
+        "SUCCESS": "Calculation succeeded",
+        "ARCHIVE": "Archived",
+        "RERUN": "Recalculating"
     },
     "sceneTypeDesc": {
-        "SWKK": "四维看看",
-        "SWKJ": "四维看见",
-        "SWSS": "四维深时"
+        "SWKK": "4DKanKan Pro",
+        "SWKJ": "4DKanKan Minion",
+        "SWSS": "4DKanKan Mega",
+        "SWSG": "4DKanKan Meta"
     },
     "taggingStatusDesc": {
-        "pending": "待处理",
-        "progress": "进行中",
-        "unsolved": "未解决",
-        "solved": "已解决"
+        "pending": "Pending",
+        "progress": "In progress",
+        "unsolved": "Unresolved",
+        "solved": "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": "Project",
+    "projectImgLabel": "Cover",
+    "projectBimLabel": "BIM",
+    "projectImgTip": "Recommended size: 500 * 500 pixels",
+    "projectNameLabel": "Project Name",
+    "projectMsgLabel": "Project Description",
+    "projectCreaterLabel": "Creator",
+    "createTimeLabel": "Creation Time",
+    "updateTimeLabel": "Last Updated",
+    "projectStatusLabel": "Status",
+    "addTitle": "New Project",
+    "delTitle": "Delete Project",
+    "updateTitle": "Modify Project",
+    "finshTitle": "Complete Project",
+    "projectNameRule": "Please enter a name (maximum of {max} characters)",
+    "projectMsgRule": "Please enter a description of the project (maximum {max} words)",
+    "projectNamePleac": "Please enter the project name",
+    "projectCreaterPleac": "Please enter the project creator",
+    "dayPleac": "Select the project creation date",
+    "manageList": "Project List"
 }

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

@@ -1,12 +1,12 @@
 export default {
-    "roleNameLabel": "角色名称",
-    "sroleNameLabel": "所属项目",
-    "remarkLabel": "备注",
-    "createTimeLabel": "操作时间",
-    "name": "项目角色",
-    "roleNameRule": "请输入角色名称",
-    "remarkRule": "请输入备注,最多50字",
-    "roleMenusLabel": "菜单分配",
-    "add": "新增角色",
-    "delMsg": "确定要删除此角色"
+    "roleNameLabel": "Role Name",
+    "sroleNameLabel": "Projects",
+    "remarkLabel": "Note",
+    "createTimeLabel": "Operation Time",
+    "name": "Project Role",
+    "roleNameRule": "Please enter a role name",
+    "remarkRule": "Please enter a note, maximum 50 characters",
+    "roleMenusLabel": "Menu Assignment",
+    "add": "New Role",
+    "delMsg": "Are you sure you want to delete this role?"
 }

+ 17 - 16
src/lang/en/scene.ts

@@ -1,18 +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"
+    "delTip": "Are you sure you want to delete this scene?",
+    "nameLabel": "Name",
+    "phoneLabel": "Creator",
+    "numLabel": "Scene Code",
+    "typeLabel": "Type",
+    "statusLabel": "Status",
+    "createTimeLabel": "Captured Time",
+    "name": "Scene",
+    "selected": "{len} scenes selected",
+    "nameRule": "Please enter a scene name",
+    "fileRule": "Please upload a BIM file",
+    "create": "Create a scene",
+    "nameLabel1": "Scene Name",
+    "nameLabel1Rule": "Please enter a name, maximum {max} characters.",
+    "fileLabel": "BIM",
+    "updateFile": "Modify BIM",
+    "shootCountLabel": "number of points"
 }

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

@@ -1,77 +1,77 @@
 export default {
-    "404": "错误页面",
-    "TOKEN_INVALID": "token已失效",
-    "NO_ACCESS": "无权访问",
-    "SUCCESS": "请求成功",
-    "name": "四维工地管家",
-    "ERROR": "服务错误,请稍后再试",
-    "undata": "未搜索到结果,",
-    "data": "数据",
-    "undataDesc": "您还没有{name},请先创建{name}~",
-    "uploadBtn": "上传",
-    "uploadDesc": [
-        "支持{ extxTip }文件格式;",
-        "最大支持上传{ maxSizeTip };"
-    ],
-    "noUploadDesc": [
-        "仅支持{extxTip}文件格式",
-        "最大支持上传{maxSizeTip}"
-    ],
-    "more": "",
-    "logout": "退出登录",
+    "404": "Error Page",
+    "TOKEN_INVALID": "The token has expired.",
+    "NO_ACCESS": "No right to access",
+    "SUCCESS": "Request succeeded",
+    "name": "4D Construction Management",
+    "ERROR": "Service error. Please try again later.",
+    "undata": "No results found",
+    "data": "Data",
+    "undataDesc": "You don't have {name} yet, please create {name} first.",
+    "uploadBtn": "Upload",
+    "uploadDesc": {
+        "0": "The { extxTip } file format is supported;",
+        "1": "Maximum supported size of uploaded files: { maxSizeTip };"
+    },
+    "noUploadDesc": {
+        "0": "Only {extxTip} file format is supported",
+        "1": "Maximum supported size of uploaded files: { maxSizeTip }"
+    },
+    "more": "etc",
+    "logout": "Log out",
     "router": {
-        "login": "登录",
-        "personal": "个人信息",
-        "projects": "项目管理",
-        "projectScenes": "场景管理",
-        "projectMaterial": "项目资料",
-        "projectMembers": "成员管理",
-        "projectTaggings": "项目标注",
-        "projectRoles": "项目角色",
-        "project": "项目"
+        "login": "log in",
+        "personal": "Personal Information",
+        "projects": "Project Management",
+        "projectScenes": "Scene Management",
+        "projectMaterial": "Project Information",
+        "projectMembers": "Member Management",
+        "projectTaggings": "Project Labeling",
+        "projectRoles": "Project Role",
+        "project": "Project"
+    },
+    "copyAuth": "Please allow clipboard access",
+    "unLoginName": "Visitor",
+    "add": "New",
+    "update": "Modify",
+    "cancel": "Cancel",
+    "save": "Save",
+    "query": "Check",
+    "oper": "Operate",
+    "del": "Delete",
+    "tipTitle": "System Prompt",
+    "good": "Good",
+    "time": {
+        "0": "morning",
+        "1": "afternoon",
+        "2": "afternoon",
+        "3": "evening"
     },
-    "copyAuth": "请授予写入粘贴板权限!",
-    "unLoginName": "游客",
-    "add": "新增",
-    "update": "修改",
-    "cancel": "取消",
-    "save": "保存",
-    "query": "查看",
-    "oper": "操作",
-    "del": "删除",
-    "tipTitle": "系统提示",
-    "good": "好",
-    "time": [
-        "早上",
-        "中午",
-        "下午",
-        "晚上"
-    ],
-    "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": "注册",
-    "un": "未知"
+    "projectCount": "Number of projects",
+    "projectFileCount": "Number of project documents",
+    "projectSceneCount": "Number of project scenes",
+    "projectOverCount": "Number of projects completed",
+    "operLog": "Operation Record",
+    "updateInfo": "Operation Record",
+    "updatePwd": "Change Password",
+    "delTip": "Can't recover from deletion, are you sure?",
+    "selectTime": "Select Date",
+    "search": "Search",
+    "reset": "Reset",
+    "all": "All",
+    "edit": "Edit",
+    "sync": "Sync",
+    "select": "Select",
+    "create": "Create",
+    "loginh1": "Welcome to 4D Construction Management",
+    "loginh2": "Account Login",
+    "phoneRule": "Please enter the account number",
+    "passwordRule": "Please enter the password",
+    "phoneRul1": "Please enter the correct account number",
+    "passwordRule1": "Incorrect account number or password",
+    "rememberLabel": "Remember password",
+    "login": "Log in",
+    "forget": "Forgot your password?",
+    "register": "Register",
+    "un": "Unkown"
 }

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

@@ -1,9 +1,9 @@
 export default {
-    "markingTitleLabel": "场景标注",
-    "createByLabel": "创建人",
-    "usersLabel": "涉及的成员",
-    "statusLabel": "状态",
-    "lastUpdateByLabel": "最后修改人",
-    "updateTimeLabel": "最后修改时间",
-    "filterNamePlace": "请输入标注关键字"
+    "markingTitleLabel": "Scene Labeling",
+    "createByLabel": "Creator",
+    "usersLabel": "Users",
+    "statusLabel": "Status",
+    "lastUpdateByLabel": "Last modified by",
+    "updateTimeLabel": "Last modified",
+    "filterNamePlace": "Please enter the POI keywords"
 }

+ 2 - 1
src/lang/ja/project.ts

@@ -21,7 +21,8 @@ export default {
     "sceneTypeDesc": {
         "SWKK": "四维看看",
         "SWKJ": "四维看见",
-        "SWSS": "四维深时"
+        "SWSS": "四维深时",
+        "SWSG": "四维深光"
     },
     "taggingStatusDesc": {
         "pending": "待处理",

+ 2 - 1
src/lang/ja/scene.ts

@@ -14,5 +14,6 @@ export default {
     "nameLabel1": "场景名称",
     "nameLabel1Rule": "请输入名称最多{max}字",
     "fileLabel": "BIM文件",
-    "updateFile": "修改BIM"
+    "updateFile": "修改BIM",
+    "shootCountLabel": "点位数"
 }

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

@@ -9,14 +9,14 @@ export default {
     "data": "数据",
     "undataDesc": "您还没有{name},请先创建{name}~",
     "uploadBtn": "上传",
-    "uploadDesc": [
-        "支持{ extxTip }文件格式;",
-        "最大支持上传{ maxSizeTip };"
-    ],
-    "noUploadDesc": [
-        "仅支持{extxTip}文件格式",
-        "最大支持上传{maxSizeTip}"
-    ],
+    "uploadDesc": {
+        "0": "支持{ extxTip }文件格式;",
+        "1": "最大支持上传{ maxSizeTip };"
+    },
+    "noUploadDesc": {
+        "0": "仅支持{extxTip}文件格式",
+        "1": "最大支持上传{maxSizeTip}"
+    },
     "more": "等",
     "logout": "退出登录",
     "router": {
@@ -41,12 +41,12 @@ export default {
     "del": "删除",
     "tipTitle": "系统提示",
     "good": "好",
-    "time": [
-        "早上",
-        "中午",
-        "下午",
-        "晚上"
-    ],
+    "time": {
+        "0": "早上",
+        "1": "中午",
+        "2": "下午",
+        "3": "晚上"
+    },
     "projectCount": "项目数",
     "projectFileCount": "项目文件数",
     "projectSceneCount": "项目场景数",

+ 2 - 1
src/lang/zh/project.ts

@@ -21,7 +21,8 @@ export default {
     "sceneTypeDesc": {
         "SWKK": "四维看看",
         "SWKJ": "四维看见",
-        "SWSS": "四维深时"
+        "SWSS": "四维深时",
+        "SWSG": "四维深光"
     },
     "taggingStatusDesc": {
         "pending": "待处理",

+ 1 - 0
src/lang/zh/scene.ts

@@ -4,6 +4,7 @@ export default {
     "phoneLabel": "创建人",
     "numLabel": "场景码",
     "typeLabel": "类型",
+    "shootCountLabel": "点位数",
     "statusLabel": "状态",
     "createTimeLabel": "拍摄时间",
     "name": "场景",

+ 1 - 0
src/store/project.ts

@@ -51,6 +51,7 @@ export type SelectTypeScenes = {
   [SceneType.SWKJ]: Scene['num'][]
   [SceneType.SWKK]: Scene['num'][]
   [SceneType.SWSS]: Scene['num'][]
+  [SceneType.SWSG]: Scene['num'][]
 }
 
 type CurrentState = null | Project

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

@@ -38,6 +38,11 @@ export const sceneColumns: ColumnsType<ProjectScene> = [
     title: ui18n.t('scene.numLabel')
   },
   {
+    title: ui18n.t('scene.shootCountLabel'),
+    dataIndex: 'shootCount',
+    key: 'shootCount'
+  },
+  {
     title: ui18n.t('scene.typeLabel'),
     dataIndex: 'type',
     key: 'type',
@@ -86,17 +91,17 @@ export const projectSceneColumns = sceneColumns.filter(
 export const selectSceneColumns = [
   {
     ...sceneColumns[0],
-    maxWidth: 200,
+    maxWidth: 180,
     // eslint-disable-next-line @typescript-eslint/ban-ts-comment
     // @ts-ignore
     customRender({ record }) {
       const style = {
-        maxWidth: '200px'
+        maxWidth: '180px'
       }
       return h('p', { style }, record.name)
     }
   },
   ...sceneColumns.filter(column =>
-    ['num', 'createTime'].includes(column.key as string)
+    ['num', 'createTime', 'shootCount'].includes(column.key as string)
   )
 ]

+ 13 - 3
src/views/scene/insert.vue

@@ -51,12 +51,14 @@
     <SelectScenes
       v-if="currentType === Type.scene"
       v-model:type-nums="typeNums"
+      v-model:sceneList="sceneList"
+      :scenes-count="scenesCount"
     />
   </a-modal>
 </template>
 
 <script lang="ts" setup>
-import { ref, defineProps, toRaw } from 'vue'
+import { ref, defineProps, toRaw, computed } from 'vue'
 import { message } from 'ant-design-vue'
 import { SceneType } from '@/store'
 import SelectScenes from './select-scenes.vue'
@@ -84,6 +86,7 @@ const props = defineProps<{
   onSave: (data: SaveData) => void
   onCancel: () => void
 }>()
+const sceneList = ref([...props.project.sceneList])
 
 enum Type {
   scene = ui18n.t('scene.name') as any,
@@ -93,7 +96,7 @@ const currentType = ref(Type.scene)
 
 const bim = ref<UploadData>({ name: '', file: undefined })
 const typeNums = ref(
-  props.project.sceneList.reduce(
+  sceneList.value.reduce(
     (t, scene) => {
       t[scene.type].push(scene.num)
       return t
@@ -101,11 +104,18 @@ const typeNums = ref(
     {
       [SceneType.SWKJ]: [],
       [SceneType.SWKK]: [],
-      [SceneType.SWSS]: []
+      [SceneType.SWSS]: [],
+      [SceneType.SWSG]: []
     } as SelectTypeScenes
   )
 )
 
+const scenesCount = computed(() =>
+  sceneList.value.reduce((t, scene) => {
+    t[scene.num] = scene.shootCount
+    return t
+  }, {} as { [key in string]: number })
+)
 const visible = ref(true)
 
 const saveHandler = async () => {

+ 65 - 16
src/views/scene/select-scenes.vue

@@ -1,11 +1,21 @@
 <template>
-  <a-tabs :active-key="params.type" @update:active-key="updateType">
-    <a-tab-pane
-      v-for="option in tabOptions"
-      :key="option.key"
-      :tab="option.label as any"
-    />
-  </a-tabs>
+  <div class="tabs">
+    <a-tooltip
+      placement="topLeft"
+      :title="`项目仅能选择相同类型且点位数相同的场景`"
+    >
+      <span class="help">
+        <QuestionOutlined />
+      </span>
+    </a-tooltip>
+    <a-tabs :active-key="params.type" @update:active-key="updateType">
+      <a-tab-pane
+        v-for="option in tabOptions"
+        :key="option.key"
+        :tab="(option.label as any)"
+      />
+    </a-tabs>
+  </div>
   <a-input-search
     v-model:value="sceneName"
     allow-clear
@@ -20,7 +30,9 @@
     :pagination="pagination"
     :row-selection="{
       getCheckboxProps: (scene: Scene) => ({
-        disabled: scene.bind && !defaultTypeNums[params.type].some(num => scene.num === num)
+        disabled: scene.bind && 
+          !defaultTypeNums[params.type].some(num => scene.num === num) || 
+          (selectFirstScene && ( scene.type.toString() !== selectType || scene.shootCount !== selectNum ))
       }),
       selectedRowKeys: typeNums[params.type],
       onChange: changeSelectNums
@@ -31,7 +43,7 @@
 
 <script lang="ts" setup>
 import { selectSceneColumns as sceneColumns } from './columns'
-import { reactive, ref } from 'vue'
+import { computed, reactive, ref } from 'vue'
 import { fetchScenes, SceneType, SceneTypeDesc } from '@/api'
 import { usePaging } from '@/hook'
 
@@ -39,21 +51,37 @@ import type { SelectTypeScenes, Scene } from '@/store'
 
 defineOptions<{ name: 'select-scene-list' }>()
 
-const props = defineProps<{ typeNums: SelectTypeScenes }>()
+const props = defineProps<{
+  sceneList: Scene[]
+  typeNums: SelectTypeScenes
+  scenesCount: { [key in string]: number }
+}>()
 const emit = defineEmits<{
   (e: 'update:typeNums', value: SelectTypeScenes): void
+  (e: 'update:sceneList', value: Scene[]): void
 }>()
 
-const tabOptions = [SceneType.SWKJ, SceneType.SWKK, SceneType.SWSS].map(
-  type => ({
-    key: type,
-    label: SceneTypeDesc[type]
-  })
-)
+const tabOptions = [
+  SceneType.SWKJ,
+  SceneType.SWKK,
+  SceneType.SWSS,
+  SceneType.SWSG
+].map(type => ({
+  key: type,
+  label: SceneTypeDesc[type]
+}))
 
 const defaultTypeNums = { ...props.typeNums }
 const sceneName = ref('')
 const params = reactive({ type: SceneType.SWSS, sceneName: '' })
+const selectFirstScene = computed(() =>
+  Object.entries(props.typeNums).find(([k, v]) => v.length > 0)
+)
+const selectType = computed(() => selectFirstScene.value?.[0])
+const selectNum = computed(() => {
+  const nums = selectFirstScene.value?.[1]
+  return nums && props.scenesCount[nums[0]]
+})
 const { list, pagination } = usePaging(fetchScenes, params)
 
 const updateType = (type: any) => {
@@ -66,9 +94,30 @@ const changeSelectNums = (nums: any[]) => {
   const reserve = currentNums.filter(num =>
     list.value.every(scene => scene.num !== num)
   )
+  emit('update:sceneList', [
+    ...props.sceneList.filter(item => item.type === params.type),
+    ...list.value.filter(item => nums.includes(item.num))
+  ])
+
   emit('update:typeNums', {
     ...props.typeNums,
     [params.type]: [...reserve, ...nums]
   })
 }
 </script>
+
+<style lang="scss" scoped>
+.tabs {
+  position: relative;
+  .help {
+    position: absolute;
+    right: 0;
+    top: 10px;
+    width: 20px;
+    height: 20px;
+    z-index: 99;
+    text-align: center;
+    line-height: 20px;
+  }
+}
+</style>

+ 1 - 1
vite.config.ts

@@ -18,7 +18,7 @@ export default async ({ mode }) => {
       rewrite: path => path.replace(/^\/dev/, '/dev')
     },
     '/api': {
-      target: 'https://www.4dkankan.com',
+      target: 'https://test.4dkankan.com',
       changeOrigin: true,
       rewrite: path => path.replace(/^\/api/, '')
     },