无人机管理后台前端(已迁走)
张含笑
2025-06-18 a96a794fd45018d9364251d7d343ef2dabaa1371
Merge remote-tracking branch 'origin/master'
10 files modified
1 files added
141 ■■■■■ changed files
.env.development 3 ●●●● patch | view | raw | blame | history
.env.localhost 41 ●●●●● patch | view | raw | blame | history
.env.production 3 ●●●● patch | view | raw | blame | history
package.json 5 ●●●●● patch | view | raw | blame | history
src/assets/images/uoload-success.png patch | view | raw | blame | history
src/assets/images/upload-error.png patch | view | raw | blame | history
src/utils/cesium/publicCesium.js 4 ●●●● patch | view | raw | blame | history
src/views/job/components/TaskIntermediateContent/TaskIntermediateContent.vue 31 ●●●● patch | view | raw | blame | history
src/views/job/components/TaskTop/TaskIndustry.vue 15 ●●●●● patch | view | raw | blame | history
src/views/system/userinfo.vue 15 ●●●● patch | view | raw | blame | history
vite.config.mjs 24 ●●●● patch | view | raw | blame | history
.env.development
@@ -26,7 +26,8 @@
VITE_APP_AIRLINE_URL = https://wrj.shuixiongit.com/minio/cloud-bucket
# 图片存放地址
VITE_APP_TERRAIN_URL = https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/all_terrain
VITE_APP_TERRAIN_URL = https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_terrain/all_terrain
# 算法仓库图片地址
VITE_APP_PICTURE_URL = https://wrj.shuixiongit.com/aiskyminio/cloud-bucket
.env.localhost
New file
@@ -0,0 +1,41 @@
NODE_ENV = 'development'
#开发环境配置
VITE_APP_ENV = 'development'
#接口地址
VITE_APP_API=/api
#页面基础路径
VITE_APP_BASE=/manage
# 服务地址
VITE_APP_URL = http://192.168.1.227:80/api
#VITE_APP_URL= http://192.168.1.168 rjg
#VITE_APP_URL= http://192.168.1.33
#新大屏地址
VITE_APP_DASHBOARD_URL = 'http://192.168.1.227:80/command-center-dashboard/'
# 域名
VITE_APP_AREA_NAME = http://192.168.1.227:80
# ws地址
VITE_APP_WS_API_URL = wss://192.168.1.227:80
# 航线文件地址
VITE_APP_AIRLINE_URL = http://192.168.1.227:80/minio/cloud-bucket
# 图片存放地址
VITE_APP_TERRAIN_URL = https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_terrain/all_terrain
# 算法仓库图片地址
VITE_APP_PICTURE_URL = http://192.168.1.227:80/aiskyminio/cloud-bucket
# 是否在打包时开启压缩,支持 gzip 和 brotli
VITE_BUILD_COMPRESS = gzip
#页面基础路径
# VITE_APP_BASE_COMMAND = /drone-web-manage/
#天地图token 浏览器端口
VITE_APP_TDT_TOKEN = e110584a27d506da2740edca951683f4
VITE_APP_CESIUM_TOKEN = eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJkYTZlNGNlYS01NTU1LTQ1MGEtYmNlZS0yNTE2NDk5YWM2MjEiLCJpZCI6MTc5Njk2LCJpYXQiOjE3MDA1NDcwMjV9.qcl4AH2731cfFd0-I1ZLUINPXqvglLkDFD-UGR2zU5M
.env.production
@@ -27,7 +27,8 @@
VITE_APP_AIRLINE_URL = https://wrj.shuixiongit.com/aiskyminio/cloud-bucket
# 图片存放地址
VITE_APP_TERRAIN_URL = https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/all_terrain
VITE_APP_TERRAIN_URL = https://wrj.shuixiongit.com/aiskyminio/cloud-bucket/ztzf_terrain/all_terrain
# 算法仓库图片地址
VITE_APP_PICTURE_URL = https://wrj.shuixiongit.com/aiskyminio/cloud-bucket
package.json
@@ -2,7 +2,8 @@
    "name": "saber",
    "version": "4.1.0",
    "scripts": {
        "dev": "vite --mode development",
        "dev": "vite --host",
        "base": "vite --host --mode localhost",
        "prod": "vite --mode production",
        "build:test": "vite build --mode development",
        "build:prod": "vite build --mode production",
@@ -50,4 +51,4 @@
        "vite-plugin-compression": "^0.5.1",
        "vite-plugin-vue-setup-extend": "^0.4.0"
    }
}
}
src/assets/images/uoload-success.png

src/assets/images/upload-error.png

src/utils/cesium/publicCesium.js
@@ -70,7 +70,7 @@
            baseLayer: false,
            fullscreenButton: false,
        }
        this.viewer = new Viewer(options.dom, viewerOptions)
        this.viewer.imageryLayers.removeAll()
@@ -84,7 +84,7 @@
        if (terrain) {
            try {
                Cesium.CesiumTerrainProvider.fromUrl(`${import.meta.env.VITE_APP_TERRAIN_URL}/all_terrain`, {
                Cesium.CesiumTerrainProvider.fromUrl(`${import.meta.env.VITE_APP_TERRAIN_URL}`, {
                    requestVertexNormals: true, // 启用地形法线增强立体感
                    requestWaterMask: true, // 启用水体遮罩效果
                }).then(terrainProvider => {
src/views/job/components/TaskIntermediateContent/TaskIntermediateContent.vue
@@ -3,13 +3,7 @@
    <div class="task-intermediate-content">
        <SearchBox @search="searchClick" @addTask="handleAddTask"></SearchBox>
        <div class="task-table">
            <el-table
            stripe
                :data="jobListData"
                :row-class-name="tableRowClassName"
                :row-style="{ height: '54px', fontSize: '14px', 'text-align': 'center' }"
                :header-cell-style="{ 'text-align': 'center', height: '36px', fontSize: '14px' }"
            >
            <el-table border stripe :data="jobListData" class="custom-header">
                <el-table-column label="序号" type="index" width="60">
                    <template #default="{ $index }">
                        {{ ($index + 1 + (jobListParams.current - 1) * jobListParams.size).toString().padStart(2, '0') }}
@@ -53,8 +47,8 @@
                        <span>{{ scope.row.event_number ? scope.row.event_number : '/' }}</span>
                    </template>
                </el-table-column>
                <el-table-column prop="cycle_time_value" label="任务时间" />
                <el-table-column prop="creator_name" label="创建人" align="center" />
                <el-table-column prop="cycle_time_value" label="任务时间" show-overflow-tooltip />
                <el-table-column prop="creator_name" label="创建人" align="center" show-overflow-tooltip />
                <el-table-column label="操作" width="200" align="center">
                    <template #default="scope">
                        <div
@@ -274,18 +268,21 @@
            color: #3efe96;
        }
    }
    :deep(.el-table) {
            --el-table-tr-bg-color: #ffffff;
            --el-table-striped-bg-color: #EFEFEF;
    // :deep(.el-table) {
    //         --el-table-tr-bg-color: #ffffff;
    //         --el-table-striped-bg-color: #EFEFEF;
            
            .el-table__body tr.el-table__row--striped td {
                background-color: var(--el-table-striped-bg-color);
            }
    }
    //         .el-table__body tr.el-table__row--striped td {
    //             background-color: var(--el-table-striped-bg-color);
    //         }
    // }
    // 分页
    :deep(.custom-header th.el-table__cell) {
        color: rgba(0, 0, 0, 0.85);
    }
    :deep(.el-pagination) {
        display: flex;
        justify-content: center;
        justify-content: flex-end;
    }
    :deep(.el-pagination button) {
        background: center center no-repeat none !important;
src/views/job/components/TaskTop/TaskIndustry.vue
@@ -38,17 +38,12 @@
        {
            name: '机巢事件统计',
            type: 'pie',
            roseType: 'radius',
            radius: ['20%', '70%'],
            center: ['50%', '45%'],
            // roseType: 'radius',
            radius: ['40%', '70%'],
            // center: ['50%', '45%'],
            // radius: '70%', // 设置饼图的半径
            center: ['50%', '50%'], // 调整饼图位置
            data: [],
            // [
            //   { name: '国土类', value: 0, itemStyle: { color: '#3D7FFF' } },
            //   { name: '城管类', value: 0, itemStyle: { color: '#8277E9' } },
            //   { name: '消防类', value: 0, itemStyle: { color: '#FFB77E' } },
            //   { name: '林业类', value: 0, itemStyle: { color: '#44D7B6' } },
            //   { name: '公安类', value: 0, itemStyle: { color: '#62F4FF' } }
            // ],
            label: {
                show: true,
                position: 'outside',
src/views/system/userinfo.vue
@@ -111,7 +111,9 @@
    <!-- 密钥上传 -->
    <div class="upload-file" v-else-if="checked === 2">
      <img v-if="isSuccess === 'success'" :src="uploadSuccess" alt="" />
      <div v-if="isSuccess === 'success'">上传成功</div>
      <img v-if="isSuccess === 'error'" :src="uploadError" alt="" />
      <div v-if="isSuccess === 'error'">上传失败</div>
      <el-upload
        action="/upload"
        accept=".lic"
@@ -419,12 +421,17 @@
  .upload-btn {
    width: 93px;
    height: 38px;
    line-height: 38px;
    background: #1b3e6c;
    background: #DDEBFF;
    border-radius: 8px 8px 8px 8px;
    border: 1px solid #ffffff;
    color: #fff;
    border: 1px solid #409EFF;
    text-align: center;
    font-family: Source Han Sans CN, Source Han Sans CN;
    font-weight: bold;
    font-size: 14px;
    color: #228CFA;
    line-height: 38px;
    text-align: center;
    margin-top: 10px;
  }
  .password-time {
    margin-top: 50px;
vite.config.mjs
@@ -1,20 +1,20 @@
import { defineConfig, loadEnv } from 'vite';
import { resolve } from 'path';
import createVitePlugins from './vite/plugins';
import { defineConfig, loadEnv } from 'vite'
import { resolve } from 'path'
import createVitePlugins from './vite/plugins'
import postCssPxToRem from 'postcss-pxtorem'
// https://vitejs.dev/config/
export default ({ mode, command }) => {
  const env = loadEnv(mode, process.cwd());
  const { VITE_APP_ENV, VITE_APP_BASE, VITE_APP_URL } = env;
  const env = loadEnv(mode, process.cwd())
  const { VITE_APP_ENV, VITE_APP_BASE, VITE_APP_URL } = env
  // 判断是打生产环境包
  const isProd = VITE_APP_ENV === 'production';
  const isProd = VITE_APP_ENV === 'production'
  // 根据是否生产环境,动态设置压缩配置
  const buildConfig = {
    outDir: 'manage',
    target: 'esnext',
    minify: isProd ? 'terser' : 'esbuild', // 根据环境选择压缩工具
  };
  }
  // 如果是生产环境,添加Terser的配置
  if (isProd) {
@@ -26,7 +26,7 @@
      format: {
        comments: false, // 删除所有注释
      },
    };
    }
  }
  return defineConfig({
    base: VITE_APP_BASE,
@@ -36,14 +36,14 @@
      __INTLIFY_PROD_DEVTOOLS__: false,
    },
    server: {
      // port: 2888,
      port: 5174,
      // host: '192.168.1.178',
      proxy: {
        '/api': {
          target: VITE_APP_URL,
          changeOrigin: true,
          rewrite: path => path.replace(/^\/api/, ''),
        },
        }
      },
    },
    resolve: {
@@ -77,5 +77,5 @@
        target: 'esnext',
      },
    },
  });
};
  })
}