guoshilong
2023-09-25 43a9fbb0c2acd1fea3b8961047dae898d4c2a0e5
全局国际化
5 files modified
141 ■■■■ changed files
src/App.vue 12 ●●●● patch | view | raw | blame | history
src/components/MediaPanel.vue 3 ●●●●● patch | view | raw | blame | history
src/components/task/TaskPanel.vue 91 ●●●● patch | view | raw | blame | history
src/pages/page-web/home.vue 32 ●●●●● patch | view | raw | blame | history
src/pages/page-web/projects/devices.vue 3 ●●●●● patch | view | raw | blame | history
src/App.vue
@@ -1,16 +1,10 @@
<template>
  <div class="demo-app">
<!--    <a-local-provider :locale="zhCN">-->
      <router-view />
<!--    </a-local-provider>-->
  </div>
    <div class="demo-app">
      <router-view/>
    </div>
</template>
<script setup lang="ts">
// import zhCN from 'ant-design-vue/es/locale/zh_CN'
// import moment from 'moment'
// import 'moment/dist/locale/zh-cn'
// moment.locale('zh-cn')
</script>
<style lang="scss" scoped>
.demo-app {
src/components/MediaPanel.vue
@@ -1,7 +1,6 @@
<template>
  <!--  <div class="header">媒体文件</div>-->
  <!--搜索栏-->
  <a-config-provider :locale="zhCN">
    <div class="search-panel-wrapper">
      <div class="search-part">
        <a-range-picker :size="searchPanelOptions.size" :format="searchPanelOptions.dateFormat"
@@ -53,11 +52,9 @@
        </a-table>
      </div>
    </a-spin>
  </a-config-provider>
</template>
<script setup lang="ts">
import zhCN from 'ant-design-vue/es/locale/zh_CN'
import {ref} from '@vue/reactivity'
import {TableState} from 'ant-design-vue/lib/table/interface'
import {onMounted, reactive} from 'vue'
src/components/task/TaskPanel.vue
@@ -1,7 +1,6 @@
<template>
  <!--  <div class="header">计划库</div>-->
  <!--搜索栏-->
  <a-config-provider :locale="zhCN">
    <div class="search-panel-wrapper">
      <div class="search-part">
@@ -130,17 +129,15 @@
        </template>
      </a-table>
    </div>
  </a-config-provider>
</template>
<script setup lang="ts">
import {reactive, ref} from '@vue/reactivity'
import {message} from 'ant-design-vue'
import {TableState} from 'ant-design-vue/lib/table/interface'
import {computed, onMounted} from 'vue'
import {IPage} from '/@/api/http/type'
import zhCN from 'ant-design-vue/es/locale/zh_CN'
import { reactive, ref } from '@vue/reactivity'
import { message } from 'ant-design-vue'
import { TableState } from 'ant-design-vue/lib/table/interface'
import { computed, onMounted } from 'vue'
import { IPage } from '/@/api/http/type'
import 'moment/dist/locale/zh-cn'
import {
  deleteTask,
@@ -151,9 +148,9 @@
  uploadMediaFileNow,
  TaskQueryParam
} from '/@/api/wayline'
import {useMyStore} from '/@/store'
import {ELocalStorageKey} from '/@/types/enums'
import {useFormatTask} from './use-format-task'
import { useMyStore } from '/@/store'
import { ELocalStorageKey } from '/@/types/enums'
import { useFormatTask } from './use-format-task'
import {
  TaskTypeOptions,
  TaskStatus,
@@ -165,10 +162,10 @@
  MediaStatusProgressInfo,
  TaskMediaHighestPriorityProgressInfo
} from '/@/types/task'
import {useTaskWsEvent} from './use-task-ws-event'
import {getErrorMessage} from '/@/utils/error-code/index'
import {commonColor} from '/@/utils/color'
import {ExclamationCircleOutlined, UploadOutlined} from '@ant-design/icons-vue'
import { useTaskWsEvent } from './use-task-ws-event'
import { getErrorMessage } from '/@/utils/error-code/index'
import { commonColor } from '/@/utils/color'
import { ExclamationCircleOutlined, UploadOutlined } from '@ant-design/icons-vue'
const store = useMyStore()
const workspaceId = localStorage.getItem(ELocalStorageKey.WorkspaceId)!
@@ -176,11 +173,11 @@
const dockSns = computed(() => store.state.common.dockSns)
// 监听设备选择
watch(
    () => dockSns.value,
    (newVal) => {
      searchQuery.dockSn = newVal
      getPlans()
    }
  () => dockSns.value,
  (newVal) => {
    searchQuery.dockSn = newVal
    getPlans()
  }
)
// 搜索栏配置项
@@ -220,13 +217,13 @@
    title: '计划|实际时间',
    dataIndex: 'duration',
    width: 200,
    slots: {customRender: 'duration'},
    slots: { customRender: 'duration' },
  },
  {
    title: '执行状态',
    key: 'status',
    width: 150,
    slots: {customRender: 'status'}
    slots: { customRender: 'status' }
  },
  {
    title: '计划名称',
@@ -248,12 +245,12 @@
    title: '航线飞行中失联',
    dataIndex: 'out_of_control_action',
    width: 140,
    slots: {customRender: 'lostAction'},
    slots: { customRender: 'lostAction' },
  },
  {
    title: '操作',
    width: 120,
    slots: {customRender: 'action'}
    slots: { customRender: 'action' }
  }
]
type Pagination = TableState['pagination']
@@ -262,13 +259,13 @@
  data: [] as Task[]
})
const {formatTaskType, formatTaskTime, formatLostAction, formatTaskStatus, formatMediaTaskStatus} = useFormatTask()
const { formatTaskType, formatTaskTime, formatLostAction, formatTaskStatus, formatMediaTaskStatus } = useFormatTask()
// 设备任务执行进度更新
function onTaskProgressWs(data: TaskProgressInfo) {
  const {bid, output} = data
function onTaskProgressWs (data: TaskProgressInfo) {
  const { bid, output } = data
  if (output) {
    const {status, progress} = output || {}
    const { status, progress } = output || {}
    const taskItem = plansData.data.find(task => task.job_id === bid)
    if (!taskItem) return
    if (status) {
@@ -284,8 +281,8 @@
}
// 媒体上传进度更新
function onTaskMediaProgressWs(data: MediaStatusProgressInfo) {
  const {media_count: mediaCount, uploaded_count: uploadedCount, job_id: jobId} = data
function onTaskMediaProgressWs (data: MediaStatusProgressInfo) {
  const { media_count: mediaCount, uploaded_count: uploadedCount, job_id: jobId } = data
  if (isNaN(mediaCount) || isNaN(uploadedCount) || !jobId) {
    return
  }
@@ -300,8 +297,8 @@
  taskItem.uploaded_count = uploadedCount
}
function onoTaskMediaHighestPriorityWS(data: TaskMediaHighestPriorityProgressInfo) {
  const {pre_job_id: preJobId, job_id: jobId} = data
function onoTaskMediaHighestPriorityWS (data: TaskMediaHighestPriorityProgressInfo) {
  const { pre_job_id: preJobId, job_id: jobId } = data
  const preTaskItem = plansData.data.find(task => task.job_id === preJobId)
  const taskItem = plansData.data.find(task => task.job_id === jobId)
  if (preTaskItem) {
@@ -312,7 +309,7 @@
  }
}
function getCodeMessage(code: number) {
function getCodeMessage (code: number) {
  return getErrorMessage(code) + `(code: ${code})`
}
@@ -326,26 +323,26 @@
  getPlans()
})
function dateChange(value: any) {
function dateChange (value: any) {
  searchQuery.startTime = value[0]
  searchQuery.endTime = value[1]
  getPlans()
}
function inputChange(searchValue: string) {
function inputChange (searchValue: string) {
  getPlans()
}
function selectChange(value: any) {
function selectChange (value: any) {
  getPlans()
}
function selectMultipleChange(value: any) {
function selectMultipleChange (value: any) {
  searchQuery.status = value.join(',')
  getPlans()
}
function getPlans() {
function getPlans () {
  console.log('计划查询请求参数', searchQuery)
  tableLoading.value = true
  getWaylineJobs(workspaceId, body, searchQuery).then(res => {
@@ -363,15 +360,15 @@
  })
}
function refreshData(page: Pagination) {
function refreshData (page: Pagination) {
  body.page = page?.current!
  body.page_size = page?.pageSize!
  getPlans()
}
// 删除任务
async function onDeleteTask(jobId: string) {
  const {code} = await deleteTask(workspaceId, {
async function onDeleteTask (jobId: string) {
  const { code } = await deleteTask(workspaceId, {
    job_id: jobId
  })
  if (code === 0) {
@@ -381,8 +378,8 @@
}
// 挂起任务
async function onSuspendTask(jobId: string) {
  const {code} = await updateTaskStatus(workspaceId, {
async function onSuspendTask (jobId: string) {
  const { code } = await updateTaskStatus(workspaceId, {
    job_id: jobId,
    status: UpdateTaskStatus.Suspend
  })
@@ -393,8 +390,8 @@
}
// 解除挂起任务
async function onResumeTask(jobId: string) {
  const {code} = await updateTaskStatus(workspaceId, {
async function onResumeTask (jobId: string) {
  const { code } = await updateTaskStatus(workspaceId, {
    job_id: jobId,
    status: UpdateTaskStatus.Resume
  })
@@ -405,8 +402,8 @@
}
// 立即上传媒体
async function onUploadMediaFileNow(jobId: string) {
  const {code} = await uploadMediaFileNow(workspaceId, jobId)
async function onUploadMediaFileNow (jobId: string) {
  const { code } = await uploadMediaFileNow(workspaceId, jobId)
  if (code === 0) {
    message.success('Upload Media File successfully')
    getPlans()
src/pages/page-web/home.vue
@@ -1,28 +1,34 @@
<template>
  <a-layout class="width-100 flex-display" style="height: 100vh">
    <a-layout-header class="header" v-show="$route.meta.header!=false">
      <Topbar />
    </a-layout-header>
    <a-layout-content>
      <router-view />
    </a-layout-content>
  <a-config-provider :locale="zhCN">
  </a-layout>
    <a-layout class="width-100 flex-display" style="height: 100vh">
      <a-layout-header class="header" v-show="$route.meta.header!=false">
        <Topbar/>
      </a-layout-header>
      <a-layout-content>
        <router-view/>
      </a-layout-content>
    </a-layout>
  </a-config-provider>
</template>
<script lang="ts" setup>
import zhCN from 'ant-design-vue/es/locale/zh_CN'
import Topbar from '/@/components/common/topbar.vue'
import { onMounted, reactive, ref, UnwrapRef, watch } from 'vue'
import { getRoot } from '/@/root'
import { useRoute } from 'vue-router'
import { EBizCode, ELocalStorageKey, ERouterName } from '/@/types'
import { useConnectWebSocket } from '/@/hooks/use-connect-websocket'
import {onMounted, reactive, ref, UnwrapRef, watch} from 'vue'
import {getRoot} from '/@/root'
import {useRoute} from 'vue-router'
import {EBizCode, ELocalStorageKey, ERouterName} from '/@/types'
import {useConnectWebSocket} from '/@/hooks/use-connect-websocket'
import EventBus from '/@/event-bus'
interface FormState {
  user: string
  password: string
}
const route = useRoute()
const root = getRoot()
src/pages/page-web/projects/devices.vue
@@ -8,7 +8,6 @@
    </a-menu-item>
  </a-menu>
  <a-config-provider :locale="zhCN">
    <div class="device-table-wrap table flex-display flex-column">
      <a-table :columns="columns" :data-source="data.device" :pagination="paginationProp" @change="refreshData"
               row-key="device_sn" :expandedRowKeys="expandRows"
@@ -116,10 +115,8 @@
          :device="currentDevice">
      </DeviceHmsDrawer>
    </div>
  </a-config-provider>
</template>
<script lang="ts" setup>
import zhCN from 'ant-design-vue/es/locale/zh_CN'
import { ColumnProps, TableState } from 'ant-design-vue/lib/table/interface'
import { h, onMounted, reactive, ref, UnwrapRef } from 'vue'
import { IPage } from '/@/api/http/type'