ZZJ
2021-11-12 2ff4a572df6b098779bc592a0c6e0a90e1b79b2e
暂存
1个文件已添加
4个文件已修改
637 ■■■■■ 已修改文件
src/api/helemt.ts 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/internetData/components/screening.vue 64 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/internetData/views/helemtTable.vue 421 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/internetData/views/helmet.vue 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
vue.config.js 108 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/helemt.ts
New file
@@ -0,0 +1,9 @@
import request from "@/scripts/httpRequest";
export const getHelemtData = (data: any) => {
    return request({
        url: "/temp/iotdata/devices",
        method: "post",
        data
    })
}
src/pages/internetData/components/screening.vue
@@ -1,38 +1,22 @@
<template>
<div class="screening">
        <div class="title">设备编码 : </div>
        <div class="input_code">
            <el-input
             placeholder="请输入内容"
             v-model="code"
             clearable>
             </el-input>
      <el-input placeholder="请输入内容" v-model="code" clearable> </el-input>
        </div>
        <div class="title electric">电量区间 : </div>
        <div class="input_elec">
        <el-input
        placeholder="请输入"
        v-model="lowerElec"
        clearable>
        </el-input>
      <el-input placeholder="请输入" v-model="lowerElec" clearable> </el-input>
        </div>    
        <div class="font-weight: 700;font-size: 25px;">-</div>
        <div class="input_elec">
        <el-input
        placeholder="请输入"
        v-model="UpperElec"
        clearable>
        </el-input>
      <el-input placeholder="请输入" v-model="UpperElec" clearable> </el-input>
        </div>
        <div class="save">查询</div>
        <div class="reset">清空</div>
    <div class="save" @click="searchHelmet">查询</div>
    <div class="reset" @click="resetHelmet">清空</div>
</div>
</template>
@@ -40,12 +24,27 @@
export default {
    data() {
        return {
            code:'',
            lowerElec: '',
            UpperElec: ''
        }
    }
}
      code: "",
      lowerElec: "",
      UpperElec: "",
    };
  },
  methods: {
    searchHelmet() {
      this.$emit("searchHelmet", {
        sn: this.code,
        batteryStart: this.lowerElec,
        batteryEnd: this.UpperElec,
      });
    },
    resetHelmet() {
      this.code = "";
      this.lowerElec = "";
      this.UpperElec = "";
      this.$emit("resetHelmet");
    },
  },
};
</script>
<style scoped lang="scss">
@@ -55,11 +54,11 @@
    padding: 0 20px;
    height: 70px;
    border-radius: 15px;
    background-color: #F2F2F7;
  background-color: #f2f2f7;
    .title {
        font-size: 14px;
        color: #4F4F4F;
    color: #4f4f4f;
    }
    .input_code {
@@ -85,7 +84,7 @@
        cursor: pointer;
        &:hover {
            background: #11AA66;
      background: #11aa66;
            color: #fff;
        }
    }
@@ -101,7 +100,7 @@
        cursor: pointer;
        &:hover {
            background: #11AA66;
      background: #11aa66;
            color: #fff;
        }
    }
@@ -110,9 +109,8 @@
        border-radius: 10px;
        &:focus {
            border: 1px solid #11AA66;
      border: 1px solid #11aa66;
        }
    }
}
</style>
src/pages/internetData/views/helemtTable.vue
@@ -1,7 +1,7 @@
<template>
<div class="helemtTable">
<el-table
    :data="tableData"
      :data="helemtArr"
    style="width: 100%"
    header-align="center"
    :highlight-current-row="true"
@@ -10,25 +10,29 @@
      header-align="center"
      label="序号"
      align="center"
      width="80"
      type="index">
        width="60"
        type="index"
      >
    </el-table-column>
    <el-table-column
      header-align="center"
      label="设备"
      width="260">
      <el-table-column header-align="center" label="设备" width="280">
      <template slot-scope="scope">
        <div class="index-container">
            <div class="icon iconfont">&#xe8a0;</div>
            <div class="right">
              <div class="code">设备编码 : {{scope.row.code}}</div>
              <div class="elec">电量 :
              <div class="code">设备编码 : {{ scope.row.device_sn }}</div>
              <div class="elec">
                电量 :
                <span  
                :class="{ 'elec-high': scope.row.elec >= 40,
                'elec-middle': scope.row.elec < 40 && scope.row.elec > 0,
                'elec-low': scope.row.elec === 0}"
                >{{scope.row.elec}}</span></div>
                  :class="{
                    'elec-high': scope.row.battery >= 40,
                    'elec-middle':
                      scope.row.battery < 40 && scope.row.battery > 0,
                    'elec-low': scope.row.battery === 0,
                  }"
                  >{{ scope.row.battery }}</span
                >
              </div>
            </div>
        </div>
      </template>
@@ -38,7 +42,8 @@
      header-align="center"
       align="center"
        prop="ip"
        label="IP地址">
        label="IP地址"
      >
    </el-table-column>
    <el-table-column
@@ -46,89 +51,98 @@
       align="center"
        prop="mac"
        label="mac地址"
        width="140">
        width="140"
      >
    </el-table-column>
    <el-table-column
      header-align="center"
       align="center"
        prop="longitude"
        label="经度">
        prop="lng"
        label="经度"
      >
    </el-table-column>
    <el-table-column
      header-align="center"
       align="center"
        prop="latitude"
        label="纬度">
        prop="lat"
        label="纬度"
      >
    </el-table-column>
    <el-table-column
        header-align="center"
         align="center"
        prop="latitude"
        label="地址">
        prop="locate_state"
        label="地址"
      >
    </el-table-column>
    <el-table-column
        header-align="center"
        align="center"
        prop="height"
        label="高度">
        prop="high"
        label="高度"
      >
    </el-table-column>
    <el-table-column
        header-align="center"
        align="center"
        prop="positon"
        label="定位状态">
        prop="gps_type"
        label="定位状态"
      >
    </el-table-column>
    <el-table-column
        align="center"
        header-align="center"
        prop="time"
        label="访问时间">
        prop="visit_time"
        label="访问时间"
      >
    </el-table-column>
    <el-table-column
      align="center"
      header-align="center"
      label="操作">
      <el-table-column align="center" header-align="center" label="操作">
        <template slot-scope="scope">
        <div class="action-container">
          <img src="/images/InternetData/视频.png" alt=""
            <img
              src="/images/InternetData/视频.png"
              alt=""
          v-if="!scope.row.isSend"
          @click="sendVoice(scope.row)"
          >
          <img src="/images/InternetData/视频_点击.png" alt=""
            />
            <img
              src="/images/InternetData/视频_点击.png"
              alt=""
          v-else
          @click="sendVoice(scope.row)"
          >
          <img src="/images/InternetData/语音.png" alt=""
            />
            <img
              src="/images/InternetData/语音.png"
              alt=""
          v-if="!scope.row.istele"
          @click="telephone(scope.row)"
          >
          <img src="/images/InternetData/语音_点击.png" alt=""
            />
            <img
              src="/images/InternetData/语音_点击.png"
              alt=""
          v-else
          @click="telephone(scope.row)"
          >
            />
        </div>
      </template>
    </el-table-column>
  </el-table>
  
  <el-pagination
  background
  :total="100"
      :total="total"
  @size-change="handleSizeChange"
  @current-change="handleCurrentChange"
  :current-page.sync="currentPage"
  :page-sizes="[5, 10, 15, 20]"
  :page-size="10"
      :page-sizes="[2, 10, 15, 20]"
      :page-size="page_size"
  popper-class="page_helemt"
  layout="prev, pager, next,sizes,jumper"
  >
@@ -137,66 +151,171 @@
 <telephoneBox :tele="telephoneObj" v-if="telephoneObj" @close="closeTele"/>
 <div class="mask" v-if="telephoneObj"></div>
</div>
</template>
<script>
import telephoneBox from '@/pages/internetData/components/telephoneBox'
import telephoneBox from "@/pages/internetData/components/telephoneBox";
import { getHelemtData } from "@/api/helemt";
export default {
  name: "helemtTable",
  data (){
    return {
      currentPage:1,
      page_size: 10,
      total: 10,
      tableData: [
        {code: "A123123123123", elec:79.1, ip:"192.168.1.2", mac:"ec:da:da:da:ed:98",
        longitude:120.123123, latitude:120.123123,height:"11.21",time:"0.23.45",positon:"单向定位",
        isSend:false,istele:false
        {
          code: "A123123123123",
          elec: 79.1,
          ip: "192.168.1.2",
          mac: "ec:da:da:da:ed:98",
          longitude: 120.123123,
          latitude: 120.123123,
          height: "11.21",
          time: "0.23.45",
          positon: "单向定位",
          isSend: false,
          istele: false,
         },
         {code: "A123123123123", elec:29.1, ip:"192.168.1.2", mac:"ec:da:da:da:ed:98",
        longitude:120.123123, latitude:120.123123,height:"11.21",time:"0.23.45",positon:"单向定位",
        isSend:false,istele:false
        {
          code: "A123123123123",
          elec: 29.1,
          ip: "192.168.1.2",
          mac: "ec:da:da:da:ed:98",
          longitude: 120.123123,
          latitude: 120.123123,
          height: "11.21",
          time: "0.23.45",
          positon: "单向定位",
          isSend: false,
          istele: false,
         },
         {code: "A123123123123", elec:0, ip:"192.168.1.2", mac:"ec:da:da:da:ed:98",
        longitude:120.123123, latitude:120.123123,height:"11.21",time:"0.23.45",positon:"单向定位",
        isSend:false,istele:false
        {
          code: "A123123123123",
          elec: 0,
          ip: "192.168.1.2",
          mac: "ec:da:da:da:ed:98",
          longitude: 120.123123,
          latitude: 120.123123,
          height: "11.21",
          time: "0.23.45",
          positon: "单向定位",
          isSend: false,
          istele: false,
         },
         {code: "A123123123123", elec:79.1, ip:"192.168.1.2", mac:"ec:da:da:da:ed:98",
        longitude:120.123123, latitude:120.123123,height:"11.21",time:"0.23.45",positon:"单向定位",
        isSend:false,istele:false
        {
          code: "A123123123123",
          elec: 79.1,
          ip: "192.168.1.2",
          mac: "ec:da:da:da:ed:98",
          longitude: 120.123123,
          latitude: 120.123123,
          height: "11.21",
          time: "0.23.45",
          positon: "单向定位",
          isSend: false,
          istele: false,
         },
         {code: "A123123123123", elec:79.1, ip:"192.168.1.2", mac:"ec:da:da:da:ed:98",
        longitude:120.123123, latitude:120.123123,height:"11.21",time:"0.23.45",positon:"单向定位",
        isSend:false,istele:false
        {
          code: "A123123123123",
          elec: 79.1,
          ip: "192.168.1.2",
          mac: "ec:da:da:da:ed:98",
          longitude: 120.123123,
          latitude: 120.123123,
          height: "11.21",
          time: "0.23.45",
          positon: "单向定位",
          isSend: false,
          istele: false,
         },
         {code: "A123123123123", elec:79.1, ip:"192.168.1.2", mac:"ec:da:da:da:ed:98",
        longitude:120.123123, latitude:120.123123,height:"11.21",time:"0.23.45",positon:"单向定位",
        isSend:false,istele:false
        {
          code: "A123123123123",
          elec: 79.1,
          ip: "192.168.1.2",
          mac: "ec:da:da:da:ed:98",
          longitude: 120.123123,
          latitude: 120.123123,
          height: "11.21",
          time: "0.23.45",
          positon: "单向定位",
          isSend: false,
          istele: false,
         },
         {code: "A123123123123", elec:79.1, ip:"192.168.1.2", mac:"ec:da:da:da:ed:98",
        longitude:120.123123, latitude:120.123123,height:"11.21",time:"0.23.45",positon:"单向定位",
        isSend:false,istele:false
        {
          code: "A123123123123",
          elec: 79.1,
          ip: "192.168.1.2",
          mac: "ec:da:da:da:ed:98",
          longitude: 120.123123,
          latitude: 120.123123,
          height: "11.21",
          time: "0.23.45",
          positon: "单向定位",
          isSend: false,
          istele: false,
         },
          {code: "A123123123123", elec:79.1, ip:"192.168.1.2", mac:"ec:da:da:da:ed:98",
        longitude:120.123123, latitude:120.123123,height:"11.21",time:"0.23.45",positon:"单向定位",
        isSend:false,istele:false
        {
          code: "A123123123123",
          elec: 79.1,
          ip: "192.168.1.2",
          mac: "ec:da:da:da:ed:98",
          longitude: 120.123123,
          latitude: 120.123123,
          height: "11.21",
          time: "0.23.45",
          positon: "单向定位",
          isSend: false,
          istele: false,
         },
          {code: "A123123123123", elec:79.1, ip:"192.168.1.2", mac:"ec:da:da:da:ed:98",
        longitude:120.123123, latitude:120.123123,height:"11.21",time:"0.23.45",positon:"单向定位",
        isSend:false,istele:false
        {
          code: "A123123123123",
          elec: 79.1,
          ip: "192.168.1.2",
          mac: "ec:da:da:da:ed:98",
          longitude: 120.123123,
          latitude: 120.123123,
          height: "11.21",
          time: "0.23.45",
          positon: "单向定位",
          isSend: false,
          istele: false,
         },
          {code: "A123123123123", elec:79.1, ip:"192.168.1.2", mac:"ec:da:da:da:ed:98",
        longitude:120.123123, latitude:120.123123,height:"11.21",time:"0.23.45",positon:"单向定位",
        isSend:false,istele:false
        {
          code: "A123123123123",
          elec: 79.1,
          ip: "192.168.1.2",
          mac: "ec:da:da:da:ed:98",
          longitude: 120.123123,
          latitude: 120.123123,
          height: "11.21",
          time: "0.23.45",
          positon: "单向定位",
          isSend: false,
          istele: false,
         },
      ],
      commentContent:'',
      telephoneObj:null
    }
      helemtArr: [],
      commentContent: "",
      telephoneObj: null,
    };
  },
  created() {
    this.getHelemtArr({
      page: this.currentPage,
      pageSize: this.page_size,
    });
  },
  methods :{
    async getHelemtArr(data) {
      const res = await getHelemtData(data);
      console.log(res);
      this.helemtArr = res.data.items;
      this.total = res.data.total;
    },
    sendVoice (target){
      target.isSend = true
      target.isSend = true;
      const h = this.$createElement;
      this.$msgbox({
@@ -204,20 +323,30 @@
          "div",
          {
            attrs: {
              class: "el-textarea"
            }
              class: "el-textarea",
          },
          [  h(
          },
          [
            h(
          "div",
          {
            attrs: {
              class: "el-title"
            }
          },[h("span",{
                  class: "el-title",
                },
              },
              [
                h(
                  "span",
                  {
            attrs: {
              class: "icon iconfont"
            }
          },"\ue7cc"),h("span",null,"发送语音")]),
                      class: "icon iconfont",
                    },
                  },
                  "\ue7cc"
                ),
                h("span", null, "发送语音"),
              ]
            ),
            h("textarea", {
              attrs: {
                placeholder: "请输入语音命令",
@@ -226,12 +355,15 @@
                autocomplete: "off",
                rows: 3,
                id: "commentContent",
              },
              value: this.commentContent,
              on: { input: this.onCommentInputChange }
              on: { input: this.onCommentInputChange },
            }),
            h("div",{attrs:{class:"info",id: "comment_info"}},"还可输入20个字符")
            h(
              "div",
              { attrs: { class: "info", id: "comment_info" } },
              "还可输入20个字符"
            ),
          ]
        ),
        showCancelButton: true,
@@ -240,44 +372,52 @@
        cancelButtonClass:"hele_btn_cancel",
        cancelButtonText: "取消",
        beforeClose: (action, instance, done) => {
       document.querySelector("#commentContent").value = ''
       document.querySelector("#comment_info").innerHTML = `还可输入20个字符`
            target.isSend = false
          document.querySelector("#commentContent").value = "";
          document.querySelector(
            "#comment_info"
          ).innerHTML = `还可输入20个字符`;
          target.isSend = false;
            done();
        }
      }).then(action => {
        target.isSend = false
        },
      }).then((action) => {
        target.isSend = false;
      });
    },
    telephone (target){
      target.istele = true
      this.telephoneObj = target
      target.istele = true;
      this.telephoneObj = target;
    },
    handleCurrentChange (){
    handleCurrentChange(val) {
      this.currentPage = val;
      this.getHelemtArr({
        page: this.currentPage,
        pageSize: this.page_size,
      });
    },
    handleSizeChange (){
    handleSizeChange(val) {
      this.page_size = val;
      this.getHelemtArr({
        page: this.currentPage,
        pageSize: this.page_size,
      });
    },
    onCommentInputChange(){
      let value = document.querySelector("#commentContent").value
      let value = document.querySelector("#commentContent").value;
      console.log(value);
      let cont = 20-value.length
      document.querySelector("#comment_info").innerHTML = `还可输入${cont}个字符`
      let cont = 20 - value.length;
      document.querySelector(
        "#comment_info"
      ).innerHTML = `还可输入${cont}个字符`;
    },
    closeTele(e){
      e.istele = false
      this.telephoneObj = null
    }
      e.istele = false;
      this.telephoneObj = null;
    },
  },
  components :{
    telephoneBox
  }
}
    telephoneBox,
  },
};
</script>
<style scoped lang="scss">
@@ -301,12 +441,12 @@
    .index-container {
      display: flex;
      align-items: center;
      justify-content: space-around;
      height: 56px;
      .icon {
        font-size: 46px;
        color: #FFAA44;
        color: #ffaa44;
        margin-right: 10px;
      }
    }
@@ -350,7 +490,6 @@
      }
      &.current-row {
        td {
         background-color: #fff;
         border-top: 2px solid rgb(17, 170, 102);
@@ -369,7 +508,6 @@
           }
      }
      }
    }
    .elec-high {
@@ -386,21 +524,20 @@
  ::v-deep .el-pagination {
    margin-top: 20px;
    .el-pager li:not(.disabled):not(.active):hover {
    color: #11AA66;
      color: #11aa66;
    }
   .el-pager li:not(.disabled).active {
      background-color: #11AA66;
      background-color: #11aa66;
    }
    input:focus, input:hover {
      border: 1px solid #11AA66 !important;
    input:focus,
    input:hover {
      border: 1px solid #11aa66 !important;
    }
    .el-input.is-focus input{
      border: 1px solid #11AA66 !important;
      border: 1px solid #11aa66 !important;
    }
  }
  ::v-deep .has-gutter {
@@ -416,10 +553,8 @@
    text-align: center;
    z-index: 1;
    background-color: black;
    opacity: .5;
    opacity: 0.5;
    }
}
 .el-textarea {
@@ -429,7 +564,7 @@
    .el-title {
      margin-top: 20px;
      margin-bottom: 15px;
      color:  #4F4F4F;
    color: #4f4f4f;
      font-size: 16px;
      font-weight: 700;
@@ -437,15 +572,13 @@
        font-weight: normal;
        font-size: 19px;
      }
    }
    .el-textarea__inner {
        width: 357px;
        &:focus {
border: 1px solid #11AA66 ;
      border: 1px solid #11aa66;
        }
      }
@@ -455,29 +588,27 @@
      text-align: right;
      padding-right: 38px;
    }
  }
</style>
<style lang="scss">
.page_helemt {
    .el-select-dropdown__item.selected span{
      color: #11AA66;
    color: #11aa66;
    }
}
.hele_btn_save {
  width: 175px;
  height: 40px;
background: #11AA66 !important;
border: 1px solid #11AA66 !important;
  background: #11aa66 !important;
  border: 1px solid #11aa66 !important;
border-radius: 25px !important;
margin: 10px 17px 12px 10px !important;
&:hover {
background: #11AA66 !important;
border: 1px solid #11AA66 !important;
    background: #11aa66 !important;
    border: 1px solid #11aa66 !important;
}
}
@@ -485,7 +616,7 @@
width: 175px;
height: 40px;
border: 1px solid #E0E0E0;
  border: 1px solid #e0e0e0;
box-sizing: border-box;
border-radius: 25px !important;
}
src/pages/internetData/views/helmet.vue
@@ -1,28 +1,41 @@
<template>
 <div class="data_helmet">
     <!-- 筛选框 -->
     <screening />
    <screening @searchHelmet="searchHelmet" @resetHelmet="resetHelmet" />
     <!-- 表格 -->
     <helemtTable />
    <helemtTable ref="helemtTable" />
</div>  
</template>
<script>
import screening from '@/pages/internetData/components/screening'
import helemtTable from '@/pages/internetData/views/helemtTable'
import screening from "@/pages/internetData/components/screening";
import helemtTable from "@/pages/internetData/views/helemtTable";
export default {
    data (){
        return {
        }
    return {};
    },
    components: {
        screening,
        helemtTable
    }
}
    helemtTable,
  },
  methods: {
    searchHelmet(data) {
      this.$refs.helemtTable.getHelemtArr({
        ...data,
        page: 1,
        pageSize: this.$refs.helemtTable._data.page_size,
      });
    },
    resetHelmet() {
      console.log(this.$refs.helemtTable);
      this.$refs.helemtTable.getHelemtArr({
        page: 1,
        pageSize: this.$refs.helemtTable._data.page_size,
      });
    },
  },
};
</script>
<style scoped lang="scss">
vue.config.js
@@ -1,34 +1,34 @@
'use strict'
const glob = require('glob')
const pages = {}
const IS_VENDOR = /[\\/]node_modules[\\/]/
const pageVendor = {}
"use strict";
const glob = require("glob");
const pages = {};
const IS_VENDOR = /[\\/]node_modules[\\/]/;
const pageVendor = {};
const pkg = require('./package.json')
const timestamp = new Date().getTime()
const queryStr = `?v=${pkg.version}&t=${timestamp}`
const pkg = require("./package.json");
const timestamp = new Date().getTime();
const queryStr = `?v=${pkg.version}&t=${timestamp}`;
glob.sync('./src/pages/**/main.ts').forEach(path => {
  const chunk = path.split('./src/pages/')[1].split('/main.ts')[0]
  const chunk_vendor = `${chunk}-vendors`
  const chunk_common = `${chunk}-common`
glob.sync("./src/pages/**/main.ts").forEach((path) => {
  const chunk = path.split("./src/pages/")[1].split("/main.ts")[0];
  const chunk_vendor = `${chunk}-vendors`;
  const chunk_common = `${chunk}-common`;
  pages[chunk] = {
    entry: path,
    template: 'public/index.html',
    title: chunk == 'desktop/index' ? 'SmartAI' : chunk,
    chunks: [chunk_vendor, 'chunk-common', chunk]
  }
  if (chunk != 'index') {
    pages[chunk].filename = 'view/' + chunk + '.html'
    template: "public/index.html",
    title: chunk == "desktop/index" ? "SmartAI" : chunk,
    chunks: [chunk_vendor, "chunk-common", chunk],
  };
  if (chunk != "index") {
    pages[chunk].filename = "view/" + chunk + ".html";
  }
  pageVendor[chunk_vendor] = {
    name: chunk_vendor,
    priority: -11,
    chunks: c => c.name === chunk,
    chunks: (c) => c.name === chunk,
    test: /\.js$/,
    enforce: true
  }
    enforce: true,
  };
  // pageVendor[chunk_common] = {
  //   name: chunk_common,
@@ -38,30 +38,31 @@
  //   reuseExistingChunk: true,
  //   enforce: true
  // }
})
});
// const serverUrl = "http://58.118.225.79:41243" // 羊五
 const serverUrl = "http://192.168.20.189:7009"
const serverUrl = "http://192.168.20.189:7009";
//const serverUrl = "http://192.168.20.10:9000";
module.exports = {
  pages,
  chainWebpack: config => {
    config.plugins.delete('named-chunks')
    if (process.env.NODE_ENV === 'production') {
      config.output.filename('js/[name].js' + queryStr).end()
      config.output.chunkFilename('js/[name].js' + queryStr).end()
  chainWebpack: (config) => {
    config.plugins.delete("named-chunks");
    if (process.env.NODE_ENV === "production") {
      config.output.filename("js/[name].js" + queryStr).end();
      config.output.chunkFilename("js/[name].js" + queryStr).end();
      // 修改生产配置
      config.plugin('extract-css').tap(() => [
      config.plugin("extract-css").tap(() => [
        {
          filename: `css/[name].css${queryStr}`,
          chunkFilename: `css/[name].css${queryStr}`
        }
      ])
          chunkFilename: `css/[name].css${queryStr}`,
        },
      ]);
    }
    config.optimization.splitChunks({
      cacheGroups: pageVendor
    })
      cacheGroups: pageVendor,
    });
    // config.module.rule('fonts').use('url-loader').loader('file-loader').options({ name: 'fonts/[name].[ext]', publicPath: '../' })
    //config.module.rule('fonts').use('url-loader').loader('file-loader').options({ name: 'fonts/[name].[ext]', outputPath: '../' })
@@ -70,51 +71,51 @@
  filenameHashing: false,
  pwa: {
    iconPaths: {
      favicon32: 'favicon.ico',
      favicon16: 'favicon.ico'
    }
      favicon32: "favicon.ico",
      favicon16: "favicon.ico",
    },
  },
  devServer: {
    proxy: {
      '/track': {
      "/track": {
        target: serverUrl,
        // ws: true,
        changeOrigin: true,
      },
      '/ws': {
      "/ws": {
        target: serverUrl,
        // ws: true,
        changeOrigin: true,
      },
      "/data/api-v/app/findAllApp": {
        // target: '/',
        target: 'http://localhost:8080/',
        target: "http://localhost:8080/",
        changeOrigin: true,
        pathRewrite: {
          '^/data/api-v/app/findAllApp': 'apps.json'
        }
          "^/data/api-v/app/findAllApp": "apps.json",
        },
      },
      "/api-c": {
        target: serverUrl,
        changeOrigin: true
        changeOrigin: true,
      },
      "/api-v": {
        target: serverUrl,
        changeOrigin: true
        changeOrigin: true,
      },
      "/api-f": {
        target: serverUrl,
        // secure: false,
        changeOrigin: true
        changeOrigin: true,
      },
      "/api-p": {
        target: serverUrl,
        // secure: false,
        changeOrigin: true
        changeOrigin: true,
      },
      "/api-u": {
        target: serverUrl,
        changeOrigin: true
        changeOrigin: true,
      },
      "/httpImage": {
        target: serverUrl,
@@ -123,8 +124,15 @@
      "/files": {
        target: serverUrl,
        changeOrigin: true, //开启代理
      }
    }
      },
      "/temp": {
        target: "http://192.168.20.10:9000",
        changeOrigin: true, //开启代理,
        pathRewrite: {
          "/temp": "",
        },
      },
    },
  },
  /* css:{
    loaderOptions:{
@@ -133,4 +141,4 @@
      }
    }
  } */
}
};