riku
2024-07-29 cda6938d898dc9744cea408c6e34d591710f6003
2024.7.29
已修改8个文件
已删除1个文件
已添加3个文件
325 ■■■■ 文件已修改
package-lock.json 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/additional-jingan/constructionApi.js 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/additional-jingan/index.js 96 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/index.js 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/search-option/FYOptionTime.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/constants/menu.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/router/index.js 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/test.js 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/fysp/evaluation/EvalutationRecord.vue 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/fysp/scene/SceneInfo.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/fysp/support/JingAnSupport.vue 72 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package-lock.json
@@ -15,6 +15,7 @@
        "dayjs": "^1.11.10",
        "element-plus": "^2.4.3",
        "js-base64": "^3.7.5",
        "md5": "^2.3.0",
        "pinia": "^2.0.26",
        "vue": "^3.2.45",
        "vue-i18n": "^9.8.0",
@@ -3330,6 +3331,14 @@
        "node": ">=8"
      }
    },
    "node_modules/charenc": {
      "version": "0.0.2",
      "resolved": "https://registry.npmmirror.com/charenc/-/charenc-0.0.2.tgz",
      "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA==",
      "engines": {
        "node": "*"
      }
    },
    "node_modules/check-error": {
      "version": "1.0.2",
      "dev": true,
@@ -3544,6 +3553,14 @@
      },
      "engines": {
        "node": ">= 8"
      }
    },
    "node_modules/crypt": {
      "version": "0.0.2",
      "resolved": "https://registry.npmmirror.com/crypt/-/crypt-0.0.2.tgz",
      "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==",
      "engines": {
        "node": "*"
      }
    },
    "node_modules/cssesc": {
@@ -4892,6 +4909,11 @@
        "node": ">=8"
      }
    },
    "node_modules/is-buffer": {
      "version": "1.1.6",
      "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz",
      "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
    },
    "node_modules/is-ci": {
      "version": "3.0.1",
      "dev": true,
@@ -5514,6 +5536,16 @@
    "node_modules/map-stream": {
      "version": "0.1.0",
      "dev": true
    },
    "node_modules/md5": {
      "version": "2.3.0",
      "resolved": "https://registry.npmmirror.com/md5/-/md5-2.3.0.tgz",
      "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
      "dependencies": {
        "charenc": "0.0.2",
        "crypt": "0.0.2",
        "is-buffer": "~1.1.6"
      }
    },
    "node_modules/memoize-one": {
      "version": "6.0.0",
@@ -9738,6 +9770,11 @@
        }
      }
    },
    "charenc": {
      "version": "0.0.2",
      "resolved": "https://registry.npmmirror.com/charenc/-/charenc-0.0.2.tgz",
      "integrity": "sha512-yrLQ/yVUFXkzg7EDQsPieE/53+0RlaWTs+wBrvW36cyilJ2SaDWfl4Yj7MtLTXleV9uEKefbAGUPv2/iWSooRA=="
    },
    "check-error": {
      "version": "1.0.2",
      "dev": true
@@ -9868,6 +9905,11 @@
        "shebang-command": "^2.0.0",
        "which": "^2.0.1"
      }
    },
    "crypt": {
      "version": "0.0.2",
      "resolved": "https://registry.npmmirror.com/crypt/-/crypt-0.0.2.tgz",
      "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow=="
    },
    "cssesc": {
      "version": "3.0.0",
@@ -10746,6 +10788,11 @@
        "binary-extensions": "^2.0.0"
      }
    },
    "is-buffer": {
      "version": "1.1.6",
      "resolved": "https://registry.npmmirror.com/is-buffer/-/is-buffer-1.1.6.tgz",
      "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
    },
    "is-ci": {
      "version": "3.0.1",
      "dev": true,
@@ -11139,6 +11186,16 @@
      "version": "0.1.0",
      "dev": true
    },
    "md5": {
      "version": "2.3.0",
      "resolved": "https://registry.npmmirror.com/md5/-/md5-2.3.0.tgz",
      "integrity": "sha512-T1GITYmFaKuO91vxyoQMFETst+O71VUPEU3ze5GNzDm0OWdP8v1ziTaAEPUr/3kLsY3Sftgz242A1SetQiDL7g==",
      "requires": {
        "charenc": "0.0.2",
        "crypt": "0.0.2",
        "is-buffer": "~1.1.6"
      }
    },
    "memoize-one": {
      "version": "6.0.0"
    },
package.json
@@ -20,6 +20,7 @@
    "dayjs": "^1.11.10",
    "element-plus": "^2.4.3",
    "js-base64": "^3.7.5",
    "md5": "^2.3.0",
    "pinia": "^2.0.26",
    "vue": "^3.2.45",
    "vue-i18n": "^9.8.0",
src/api/additional-jingan/constructionApi.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
import { $jingan } from './index';
export default {
  /**
   * æŸ¥è¯¢éœ€ç¡®è®¤çš„设备清单
   */
  queryDevice(updateTime) {
    return $jingan.get(`feedback/queryDevice?updateTime=${updateTime}`).then((res) => res.data);
  },
  /**
   * æŸ¥è¯¢æ–°å»ºå·¥åœ°
   */
  queryGdNew(createTime) {
    return $jingan.get(`feedback/queryGdNew?createTime=${createTime}`).then((res) => res.data);
  },
  /**
   * ä¸Šä¼ è®¾å¤‡å’Œå·¥åœ°å…³è”关系(新增工地或现有工地)
   */
  uploadConstructionDevice(data) {
    return $jingan.post(`feedback/sbGlgd`, data).then((res) => res.data);
  },
};
src/api/additional-jingan/index.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,96 @@
import axios from 'axios';
import md5 from 'md5';
import { ElMessage } from 'element-plus';
let IP = 'http://101.230.224.80:8082/';
const $jingan = axios.create({
  baseURL: IP,
  timeout: 20000
});
const TOKEN = 'e6dc8bb9e1ff0ce973fb92b4af2e4c3f';
// ç»Ÿä¸€æ—¶é—´æˆ³è¯·æ±‚头
const headTimeStamp = function () {
  const date = new Date();
  const nowS = parseInt(date.getTime() / 1000);
  const now = nowS - 200;
  // const now = 1722234092;
  const key = `${now}${TOKEN}`;
  const sign = md5(key);
  return [
    { key: 'JA-TIMESTAMP', value: now },
    { key: 'JA-SIGN', value: sign },
    { key: 'JA-TOKEN', value: TOKEN }
  ];
};
//添加拦截器
[$jingan].forEach((i) => {
  // æ·»åŠ è¯·æ±‚æ‹¦æˆªå™¨
  i.interceptors.request.use(
    function (config) {
      // åœ¨å‘送请求之前做些什么
      console.log('==>请求开始');
      console.log(`${config.baseURL}${config.url}`);
      if (config.data) {
        console.log('==>请求数据', config.data);
      }
      const heads = headTimeStamp();
      heads.forEach((h) => {
        config.headers[h.key] = h.value;
      });
      return config;
    },
    function (error) {
      // å¯¹è¯·æ±‚错误做些什么
      console.log('==>请求开始');
      console.log(error);
      ElMessage({
        message: error,
        type: 'error'
      });
      return Promise.reject(error);
    }
  );
  // æ·»åŠ å“åº”æ‹¦æˆªå™¨
  i.interceptors.response.use(
    function (response) {
      // 2xx èŒƒå›´å†…的状态码都会触发该函数。
      // å¯¹å“åº”数据做点什么
      console.log(response);
      console.log('==>请求结束');
      if (response.status == 200) {
        if (response.data.code != undefined && response.data.code != null) {
          if (response.data.code == 20000) {
            return response;
          } else {
            ElMessage({
              message: response.data.message,
              type: 'error'
            });
            return Promise.reject(response.data.message);
          }
        } else {
          return response;
        }
      } else {
        return Promise.reject(response);
      }
    },
    function (error) {
      // è¶…出 2xx èŒƒå›´çš„状态码都会触发该函数。
      // å¯¹å“åº”错误做点什么
      console.log(error);
      console.log('==>请求结束');
      ElMessage({
        message: error,
        type: 'error'
      });
      return Promise.reject(error);
    }
  );
});
export { $jingan };
src/api/index.js
@@ -1,12 +1,12 @@
import axios from 'axios';
import { ElMessage } from 'element-plus';
const debug = true;
const debug = false;
// let ip1 = 'http://47.100.191.150:9005/';
// let ip1_file = 'http://47.100.191.150:9005/';
let ip1 = 'https://fyami.com.cn:447/';
let ip1_file = 'https://fyami.com.cn:447/';
let ip1 = 'http://47.100.191.150:9005/';
let ip1_file = 'http://47.100.191.150:9005/';
// let ip1 = 'https://fyami.com.cn:447/';
// let ip1_file = 'https://fyami.com.cn:447/';
let ip2 = 'https://fyami.com.cn/';
let ip2_file = 'https://fyami.com.cn/';
src/components/search-option/FYOptionTime.vue
@@ -14,6 +14,7 @@
import dayjs from 'dayjs';
const MONTH = 'month';
const DATE = 'date';
export default {
  props: {
@@ -42,14 +43,6 @@
    handleChange(value) {
      this.$emit('update:value', value);
    },
    timeFormat() {
      switch (this.type) {
        case MONTH:
          return 'YYYY-MM';
        default:
          return 'YYYY-MM';
      }
    }
  },
  mounted() {
    if (this.initValue) {
src/constants/menu.js
@@ -56,6 +56,11 @@
      },
    ],
  },
  {
    path: '/fysp/support',
    icon: 'Files',
    name: '对外支持'
  },
  // {
  //   icon: 'Search',
src/router/index.js
@@ -111,6 +111,12 @@
    component: () => import('@/views/fysp/scene/SceneEdit.vue'),
    meta: { transition: 'slide-left' }
  },
  {
    //对外支持
    name: 'fyspSupport',
    path: '/fysp/support',
    component: () => import('@/views/fysp/support/JingAnSupport.vue'),
  },
  /**********************************飞羽环境***********************************************/
  {
src/test.js
ÎļþÒÑɾ³ý
src/views/fysp/evaluation/EvalutationRecord.vue
@@ -35,7 +35,9 @@
    </template>
    <template #table-column>
      <el-table-column fixed="left" prop="sceneName" :show-overflow-tooltip="true" label="名称" width="300">
      <el-table-column fixed="left" sortable prop="sceneIndex" label="编号" width="80">
      </el-table-column>
      <el-table-column prop="sceneName" :show-overflow-tooltip="true" label="名称" width="300">
      </el-table-column>
      <el-table-column
        prop="subTaskTime"
src/views/fysp/scene/SceneInfo.vue
@@ -27,6 +27,8 @@
    </template>
    <template #table-column>
      <el-table-column fixed="left" sortable prop="index" label="编号" width="80">
      </el-table-column>
      <el-table-column
        fixed="left"
        prop="name"
@@ -34,16 +36,6 @@
        :show-overflow-tooltip="true"
        width="400"
      >
        <!-- <template #default="scope">
          <el-tooltip
            effect="dark"
            :content="scope.row.name"
            placement="top-start"
            :show-after="500"
          >
            {{ scope.row.name }}
          </el-tooltip>
        </template> -->
      </el-table-column>
      <el-table-column prop="type" label="类型" width="130" />
      <el-table-column prop="provincename" label="省" width="90" />
src/views/fysp/support/JingAnSupport.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,72 @@
<template>
  <FYOptionTime :initValue="true" type="date" v-model:value="updateTime"></FYOptionTime>
  <el-button type="primary" @click="fetchNewDevice">查询新设备</el-button>
  <el-button type="primary" @click="fetchNewConstruction">查询新工地</el-button>
  <el-row>
    <el-col :span="12">
      <el-text>新设备</el-text>
      <div v-for="item in deviceList" :key="item.id">
        <div>{{ item.id }}</div>
        <div>{{ item.code }}</div>
        <div>{{ item.name }}</div>
        <div>{{ item.address }}</div>
        <div>{{ item.status }}</div>
        <span>{{ item.createTime }} |</span>
        <span>{{ item.updateTime }} |</span>
        <span>{{ item.remark }} |</span>
        <span>{{ item.lon }} |</span>
        <span>{{ item.lat }}</span>
      </div>
    </el-col>
    <el-col :span="12">
      <el-text>新工地</el-text>
      <div v-for="item in constructionList" :key="item.id">
        <div>{{ item.id }}</div>
        <div>{{ item.code }}</div>
        <div>{{ item.name }}</div>
        <div>{{ item.address }}</div>
        <div>{{ item.street }}</div>
        <div>{{ item.status }}</div>
        <span>{{ item.lon }} |</span>
        <span>{{ item.lat }}</span>
        <span>{{ item.score }} |</span>
        <span>{{ item.grade }}</span>
        <span>{{ item.subTaskId }} |</span>
        <span>{{ item.createTime }} |</span>
      </div>
    </el-col>
  </el-row>
</template>
<script setup>
import { ref } from 'vue';
import dayjs from 'dayjs';
import constructionApi from '@/api/additional-jingan/constructionApi';
import { useFetchData } from '@/composables/fetchData';
const { loading, fetchData } = useFetchData();
const updateTime = ref();
const deviceList = ref([]);
const constructionList = ref([]);
// æŸ¥è¯¢éœ€ç¡®è®¤çš„设备清单
function fetchNewDevice() {
  const param = dayjs(updateTime.value).format('YYYY-MM-DD HH:mm:ss');
  fetchData(() => {
    return constructionApi.queryDevice(param).then((res) => {
      deviceList.value = res.data;
    });
  });
}
// æŸ¥è¯¢æ–°å»ºå·¥åœ°
function fetchNewConstruction() {
  const param = dayjs(updateTime.value).format('YYYY-MM-DD HH:mm:ss');
  fetchData(() => {
    return constructionApi.queryGdNew(param).then((res) => {
      constructionList.value = res.data;
    });
  });
}
</script>
<style scoped></style>