tianyabing 2 жил өмнө
parent
commit
02cd781450
44 өөрчлөгдсөн 976 нэмэгдсэн , 11426 устгасан
  1. 1 1
      index.html
  2. 5 5
      src/components/business/space/space.vue
  3. 327 0
      src/components/common/player/jessibuca.vue
  4. 11 3
      src/components/dashboard/portrait/coldPortrait.vue
  5. 87 80
      src/components/dashboard/portrait/electricityPortrait.vue
  6. 76 69
      src/components/dashboard/portrait/hotPortrait.vue
  7. 89 82
      src/components/dashboard/portrait/moneyPortrait.vue
  8. 170 169
      src/components/dashboard/portrait/person/personTrendChart.vue
  9. 79 72
      src/components/dashboard/portrait/personPortrait.vue
  10. 88 81
      src/components/dashboard/portrait/waterPortrait.vue
  11. 0 1
      src/components/doubleCarbon/overview/doubleCarbonOverview.vue
  12. 24 9
      src/components/home/ContainerAside.vue
  13. 2 2
      src/components/scene/meeting/config/meetingRoomDeviceTable.vue
  14. 3 3
      src/components/scene/meeting/config/meetingRooms.vue
  15. 1 1
      src/components/security/person/components/securityPersonDuty.vue
  16. 1 1
      src/components/work/bus/workBus.vue
  17. 0 1
      src/components/work/meeting/component/workMeetingCostTrend.vue
  18. 1 1
      src/components/work/meeting/workMeeting.vue
  19. 1 1
      src/plugins/gverify.js
  20. 0 5
      src/plugins/hkws/h5player.min.js
  21. 0 225
      src/plugins/hkws/playctrl1/AudioRenderer.js
  22. 0 711
      src/plugins/hkws/playctrl1/DecodeWorker.js
  23. 0 0
      src/plugins/hkws/playctrl1/Decoder.js
  24. 0 396
      src/plugins/hkws/playctrl1/SuperRender_10.js
  25. 0 8
      src/plugins/hkws/playctrl2/Decoder.js
  26. BIN
      src/plugins/hkws/playctrl2/Decoder.wasm
  27. 0 0
      src/plugins/hkws/playctrl2/Decoder.worker.js
  28. 0 8
      src/plugins/hkws/playctrl3/Decoder.js
  29. BIN
      src/plugins/hkws/playctrl3/Decoder.wasm
  30. 0 0
      src/plugins/hkws/playctrl3/Decoder.worker.js
  31. 0 2907
      src/plugins/hkws/talk/AudioInterCom.js
  32. BIN
      src/plugins/hkws/talk/AudioInterCom.wasm
  33. 0 3492
      src/plugins/hkws/talkW/AudioInterCom.js
  34. BIN
      src/plugins/hkws/talkW/AudioInterCom.wasm
  35. 0 234
      src/plugins/hkws/talkW/AudioInterCom.worker.js
  36. 0 2733
      src/plugins/hkws/transform/libSystemTransform.js
  37. BIN
      src/plugins/hkws/transform/libSystemTransform.wasm
  38. 0 120
      src/plugins/hkws/transform/systemTransform-worker.js
  39. 0 0
      src/plugins/jessibuca/decoder.js
  40. BIN
      src/plugins/jessibuca/decoder.wasm
  41. 0 0
      src/plugins/jessibuca/jessibuca.js
  42. 3 1
      src/utils/request.js
  43. 6 3
      src/views/LoginView.vue
  44. 1 1
      vite.config.js

+ 1 - 1
index.html

@@ -6,7 +6,7 @@
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     <title>智慧楼宇平台</title>
     <script type="module" src="/src/plugins/gverify.js"></script>
-    <script type="module" src="/src/plugins/hkws/h5player.min.js"></script>
+    <script type="module" src="/src/plugins/jessibuca/jessibuca.js"></script>
   </head>
   <body>
     <div id="app"></div>

+ 5 - 5
src/components/business/space/space.vue

@@ -11,7 +11,7 @@
         <div class="left ioc-card-content">
           <card :title="'空间分析'">
             <div style="padding: 8px;" class="space-image">
-              <!--<img :src="requireImg('business/联通img.png')" width="100%">-->
+              <img :src="requireImg('business/联通img.png')" width="100%">
             </div>
           </card>
         </div>
@@ -156,11 +156,11 @@ export default {
 
 <style lang="less" scoped>
 .space-image {
-  background-image: url("@/assets/images/business/联通img.png");
-  background-position: 50% 50%;
-  background-repeat: no-repeat;
+  //background-image: url("@/assets/images/business/联通img.png");
+  //background-position: 50% 50%;
+  //background-repeat: no-repeat;
   height: 550px;
-  background-size: 100% auto;
+  //background-size: 100% auto;
 }
 .left {
   margin-right: 6px;

+ 327 - 0
src/components/common/player/jessibuca.vue

@@ -0,0 +1,327 @@
+<template>
+  <div ref="container" @dblclick="fullscreenSwich" style="width:100%;height:100%;background-color: #000000;margin:0 auto;">
+    <div class="buttons-box" id="buttonsBox">
+      <div class="buttons-box-left">
+        <i v-if="!playing" class="iconfont icon-play jessibuca-btn" @click="playBtnClick"></i>
+        <i v-if="playing" class="iconfont icon-pause jessibuca-btn" @click="pause"></i>
+        <i class="iconfont icon-stop jessibuca-btn" @click="destroy"></i>
+        <i v-if="isNotMute" class="iconfont icon-audio-high jessibuca-btn" @click="mute()"></i>
+        <i v-if="!isNotMute" class="iconfont icon-audio-mute jessibuca-btn" @click="cancelMute()"></i>
+      </div>
+      <div class="buttons-box-right">
+        <span class="jessibuca-btn">{{ kBps }} kb/s</span>
+        <!--          <i class="iconfont icon-file-record1 jessibuca-btn"></i>-->
+        <!--          <i class="iconfont icon-xiangqing2 jessibuca-btn" ></i>-->
+        <i class="iconfont icon-camera1196054easyiconnet jessibuca-btn" @click="jessibuca.screenshot('截图','png',0.5)"
+           style="font-size: 1rem !important"></i>
+        <i class="iconfont icon-shuaxin11 jessibuca-btn" @click="playBtnClick"></i>
+        <i v-if="!fullscreen" class="iconfont icon-weibiaoti10 jessibuca-btn" @click="fullscreenSwich"></i>
+        <i v-if="fullscreen" class="iconfont icon-weibiaoti11 jessibuca-btn" @click="fullscreenSwich"></i>
+      </div>
+    </div>
+  </div>
+</template>
+
+<script>
+let jessibucaPlayer = {};
+export default {
+  name: 'jessibuca',
+  data() {
+    return {
+      playing: false,
+      isNotMute: false,
+      quieting: false,
+      fullscreen: false,
+      loaded: false, // mute
+      speed: 0,
+      performance: "", // 工作情况
+      kBps: 0,
+      btnDom: null,
+      videoInfo: null,
+      volume: 1,
+      rotate: 0,
+      vod: true, // 点播
+      forceNoOffscreen: false,
+    };
+  },
+  props: ['videoUrl', 'error', 'hasAudio', 'height'],
+  mounted() {
+    window.onerror = (msg) => {
+      // console.error(msg)
+    };
+    console.log(this._uid)
+    let paramUrl = decodeURIComponent(this.$route.params.url)
+    this.$nextTick(() => {
+      this.updatePlayerDomSize()
+      window.onresize = () => {
+        this.updatePlayerDomSize()
+      }
+      if (typeof (this.videoUrl) == "undefined") {
+        this.videoUrl = paramUrl;
+      }
+      this.btnDom = document.getElementById("buttonsBox");
+      console.log("初始化时的地址为: " + this.videoUrl)
+      this.play(this.videoUrl)
+    })
+  },
+  watch: {
+    videoUrl(newData, oldData) {
+      this.play(newData)
+    },
+    immediate: true
+  },
+  methods: {
+    updatePlayerDomSize() {
+      let dom = this.$refs.container;
+      let width = dom.parentNode.clientWidth
+      let height = (9 / 16) * width
+
+      const clientHeight = Math.min(document.body.clientHeight, document.documentElement.clientHeight)
+      if (height > clientHeight) {
+        height = clientHeight
+        width = (16 / 9) * height
+      }
+
+      dom.style.width = width + 'px';
+      dom.style.height = height + "px";
+    },
+    create() {
+      let options = {};
+      console.log("hasAudio  " + this.hasAudio)
+
+      jessibucaPlayer[this._uid] = new window.Jessibuca(Object.assign(
+        {
+          container: this.$refs.container,
+          videoBuffer: 0.2, // 最大缓冲时长,单位秒
+          isResize: true,
+          decoder: "static/js/jessibuca/decoder.js",
+          useMSE: false,
+          showBandwidth: false,
+          isFlv: true,
+          // text: "WVP-PRO",
+          // background: "static/images/zlm-logo.png",
+          loadingText: "加载中",
+          hasAudio: typeof (this.hasAudio) == "undefined" ? true : this.hasAudio,
+          debug: false,
+          supportDblclickFullscreen: false, // 是否支持屏幕的双击事件,触发全屏,取消全屏事件。
+          operateBtns: {
+            fullscreen: false,
+            screenshot: false,
+            play: false,
+            audio: false,
+            recorder: false,
+          },
+          record: "record",
+          vod: this.vod,
+          forceNoOffscreen: this.forceNoOffscreen,
+          isNotMute: this.isNotMute,
+        },
+        options
+      ));
+      let jessibuca = jessibucaPlayer[this._uid];
+      let _this = this;
+      jessibuca.on("load", function () {
+        console.log("on load init");
+      });
+
+      jessibuca.on("log", function (msg) {
+        console.log("on log", msg);
+      });
+      jessibuca.on("record", function (msg) {
+        console.log("on record:", msg);
+      });
+      jessibuca.on("pause", function () {
+        _this.playing = false;
+      });
+      jessibuca.on("play", function () {
+        _this.playing = true;
+      });
+      jessibuca.on("fullscreen", function (msg) {
+        console.log("on fullscreen", msg);
+        _this.fullscreen = msg
+      });
+
+      jessibuca.on("mute", function (msg) {
+        console.log("on mute", msg);
+        _this.isNotMute = !msg;
+      });
+      jessibuca.on("audioInfo", function (msg) {
+        // console.log("audioInfo", msg);
+      });
+
+      jessibuca.on("videoInfo", function (msg) {
+        // this.videoInfo = msg;
+        console.log("videoInfo", msg);
+
+      });
+
+      jessibuca.on("bps", function (bps) {
+        // console.log('bps', bps);
+
+      });
+      let _ts = 0;
+      jessibuca.on("timeUpdate", function (ts) {
+        // console.log('timeUpdate,old,new,timestamp', _ts, ts, ts - _ts);
+        _ts = ts;
+      });
+
+      jessibuca.on("videoInfo", function (info) {
+        console.log("videoInfo", info);
+      });
+
+      jessibuca.on("error", function (error) {
+        console.log("error", error);
+      });
+
+      jessibuca.on("timeout", function () {
+        console.log("timeout");
+      });
+
+      jessibuca.on('start', function () {
+        console.log('start');
+      })
+
+      jessibuca.on("performance", function (performance) {
+        let show = "卡顿";
+        if (performance === 2) {
+          show = "非常流畅";
+        } else if (performance === 1) {
+          show = "流畅";
+        }
+        _this.performance = show;
+      });
+      jessibuca.on('buffer', function (buffer) {
+        // console.log('buffer', buffer);
+      })
+
+      jessibuca.on('stats', function (stats) {
+        // console.log('stats', stats);
+      })
+
+      jessibuca.on('kBps', function (kBps) {
+        _this.kBps = Math.round(kBps);
+      });
+
+      // 显示时间戳 PTS
+      jessibuca.on('videoFrame', function () {
+
+      })
+
+      //
+      jessibuca.on('metadata', function () {
+
+      });
+    },
+    playBtnClick: function (event) {
+      this.play(this.videoUrl)
+    },
+    play: function (url) {
+      console.log(url)
+      if (jessibucaPlayer[this._uid]) {
+        this.destroy();
+      }
+      this.create();
+      jessibucaPlayer[this._uid].on("play", () => {
+        this.playing = true;
+        this.loaded = true;
+        this.quieting = jessibuca.quieting;
+      });
+      if (jessibucaPlayer[this._uid].hasLoaded()) {
+        jessibucaPlayer[this._uid].play(url);
+      } else {
+        jessibucaPlayer[this._uid].on("load", () => {
+          console.log("load 播放")
+          jessibucaPlayer[this._uid].play(url);
+        });
+      }
+    },
+    pause: function () {
+      if (jessibucaPlayer[this._uid]) {
+        jessibucaPlayer[this._uid].pause();
+      }
+      this.playing = false;
+      this.err = "";
+      this.performance = "";
+    },
+    mute: function () {
+      if (jessibucaPlayer[this._uid]) {
+        jessibucaPlayer[this._uid].mute();
+      }
+    },
+    cancelMute: function () {
+      if (jessibucaPlayer[this._uid]) {
+        jessibucaPlayer[this._uid].cancelMute();
+      }
+    },
+    destroy: function () {
+      if (jessibucaPlayer[this._uid]) {
+        jessibucaPlayer[this._uid].destroy();
+      }
+      if (document.getElementById("buttonsBox") == null) {
+        this.$refs.container.appendChild(this.btnDom)
+      }
+      jessibucaPlayer[this._uid] = null;
+      this.playing = false;
+      this.err = "";
+      this.performance = "";
+
+    },
+    eventcallbacK: function (type, message) {
+      // console.log("player 事件回调")
+      // console.log(type)
+      // console.log(message)
+    },
+    fullscreenSwich: function () {
+      let isFull = this.isFullscreen()
+      jessibucaPlayer[this._uid].setFullscreen(!isFull)
+      this.fullscreen = !isFull;
+    },
+    isFullscreen: function () {
+      return document.fullscreenElement ||
+        document.msFullscreenElement ||
+        document.mozFullScreenElement ||
+        document.webkitFullscreenElement || false;
+    }
+  },
+  destroyed() {
+    if (jessibucaPlayer[this._uid]) {
+      jessibucaPlayer[this._uid].destroy();
+    }
+    this.playing = false;
+    this.loaded = false;
+    this.performance = "";
+  },
+}
+</script>
+
+<style>
+.buttons-box {
+  width: 100%;
+  height: 28px;
+  background-color: rgba(43, 51, 63, 0.7);
+  position: absolute;
+  display: -webkit-box;
+  display: -ms-flexbox;
+  display: flex;
+  left: 0;
+  bottom: 0;
+  user-select: none;
+  z-index: 10;
+}
+
+.jessibuca-btn {
+  width: 20px;
+  color: rgb(255, 255, 255);
+  line-height: 27px;
+  margin: 0px 10px;
+  padding: 0px 2px;
+  cursor: pointer;
+  text-align: center;
+  font-size: 0.8rem !important;
+}
+
+.buttons-box-right {
+  position: absolute;
+  right: 0;
+}
+</style>

+ 11 - 3
src/components/dashboard/portrait/coldPortrait.vue

@@ -2,9 +2,16 @@
 import CoreData from "@/components/common/coreData.vue";
 import ColdTrendChart from "@/components/dashboard/portrait/cold/coldTrendChart.vue";
 import api from "@/api/dashboard/apiDashboard";
+
 export default {
   data() {
+    let range = this.$util.dateUtil.getNearlyMonthRange();
     return {
+      queryData: {
+        companyId: '0',
+        deptId: '0',
+        timeRange: range
+      },
       coreData: [
         {
           type: 0,
@@ -43,7 +50,8 @@ export default {
     }
   },
   props: {
-    chartHeight: Number
+    chartHeight: Number,
+
   },
   components: {
     CoreData,
@@ -57,7 +65,7 @@ export default {
       this.getCoreData()
     },
     getCoreData() {
-      api.getColdCoreData().then(res=>{
+      api.getColdCoreData(this.queryData).then(res => {
         this.coreData[0].num = res.list[0].value
         this.coreData[0].historyNum = res.list[0].compare
         this.coreData[1].num = res.list[1].value
@@ -78,7 +86,7 @@ export default {
       <CoreData :data-list="coreData"></CoreData>
     </div>
     <div style="padding: 15px">
-      <ColdTrendChart :height="chartHeight"></ColdTrendChart>
+      <ColdTrendChart :height="chartHeight" :query-data="queryData"></ColdTrendChart>
     </div>
   </div>
 </template>

+ 87 - 80
src/components/dashboard/portrait/electricityPortrait.vue

@@ -3,95 +3,102 @@ import CoreData from "@/components/common/coreData.vue";
 import ElectricityUseChart from "@/components/dashboard/portrait/electricity/electricityUseChart.vue";
 import ElectricityDistributionChart from "@/components/dashboard/portrait/electricity/electricityDistributionChart.vue";
 import api from "@/api/dashboard/apiDashboard";
+
 export default {
-  data() {
-    return {
-      coreData: [
-        {
-          type: 0,
-          title: '月总用电量(kWh)',
-          num: 0,
-          historyDesc: '同比',
-          historyNum: 0
-        },
-        {
-          type: 0,
-          title: '今日用电量(kWh)',
-          num: 0,
-          historyDesc: '同比',
-          historyNum: 0
-        },
-        {
-          type: 0,
-          title: '今日用电趋势',
-          num: 0,
-          showTrendIcon: true,
-          historyDesc: '环比',
-        },
-        {
-          type: 0,
-          title: '人均用电成本(元/天)',
-          num: 0,
-          historyDesc: '同比',
-          historyNum: 0
+    data() {
+        let range = this.$util.dateUtil.getNearlyMonthRange();
+        return {
+            queryData: {
+                companyId: '0',
+                deptId: '0',
+                timeRange: range
+            },
+            coreData: [
+                {
+                    type: 0,
+                    title: '月总用电量(kWh)',
+                    num: 0,
+                    historyDesc: '同比',
+                    historyNum: 0
+                },
+                {
+                    type: 0,
+                    title: '今日用电量(kWh)',
+                    num: 0,
+                    historyDesc: '同比',
+                    historyNum: 0
+                },
+                {
+                    type: 0,
+                    title: '今日用电趋势',
+                    num: 0,
+                    showTrendIcon: true,
+                    historyDesc: '环比',
+                },
+                {
+                    type: 0,
+                    title: '人均用电成本(元/天)',
+                    num: 0,
+                    historyDesc: '同比',
+                    historyNum: 0
+                },
+                {
+                    type: 1,
+                    showStar: true,
+                    title: '值得关注',
+                    content: ''
+                },
+            ]
+        }
+    },
+    props: {
+        chartHeight: Number
+    },
+    components: {
+        CoreData,
+        ElectricityUseChart,
+        ElectricityDistributionChart,
+    },
+    mounted() {
+        this.init();
+    },
+    methods: {
+        init() {
+            this.getCoreData()
         },
-        {
-          type: 1,
-          showStar: true,
-          title: '值得关注',
-          content: ''
+        getCoreData() {
+            api.getElectricityCoreData(this.queryData).then(res => {
+                this.coreData[0].num = res.list[0].value
+                this.coreData[0].historyNum = res.list[0].compare
+                this.coreData[1].num = res.list[1].value
+                this.coreData[1].historyNum = res.list[1].compare
+                this.coreData[2].num = res.list[2].value
+                this.coreData[2].historyNum = res.list[2].compare
+                this.coreData[3].num = res.list[3].value
+                this.coreData[3].historyNum = res.list[3].compare
+                this.coreData[4].content = res.worthAttention
+            })
         },
-      ]
     }
-  },
-  props: {
-    chartHeight: Number
-  },
-  components: {
-    CoreData,
-    ElectricityUseChart,
-    ElectricityDistributionChart,
-  },
-  mounted() {
-    this.init();
-  },
-  methods: {
-    init() {
-      this.getCoreData()
-    },
-    getCoreData() {
-      api.getElectricityCoreData().then(res=>{
-        this.coreData[0].num = res.list[0].value
-        this.coreData[0].historyNum = res.list[0].compare
-        this.coreData[1].num = res.list[1].value
-        this.coreData[1].historyNum = res.list[1].compare
-        this.coreData[2].num = res.list[2].value
-        this.coreData[2].historyNum = res.list[2].compare
-        this.coreData[3].num = res.list[3].value
-        this.coreData[3].historyNum = res.list[3].compare
-        this.coreData[4].content = res.worthAttention
-      })
-    },
-  }
 }
 </script>
 
 <template>
-  <div class="supermarketPortrait">
-    <div class="portrait-coreData">
-      <CoreData :data-list="coreData"></CoreData>
-    </div>
-    <div style="padding: 15px">
-      <a-row>
-        <a-col :span="16">
-          <ElectricityUseChart :height="chartHeight"></ElectricityUseChart>
-        </a-col>
-        <a-col :span="8">
-          <ElectricityDistributionChart :height="chartHeight"></ElectricityDistributionChart>
-        </a-col>
-      </a-row>
+    <div class="supermarketPortrait">
+        <div class="portrait-coreData">
+            <CoreData :data-list="coreData"></CoreData>
+        </div>
+        <div style="padding: 15px">
+            <a-row>
+                <a-col :span="16">
+                    <ElectricityUseChart :height="chartHeight" :query-data="queryData"></ElectricityUseChart>
+                </a-col>
+                <a-col :span="8">
+                    <ElectricityDistributionChart :height="chartHeight" :query-data="queryData"></ElectricityDistributionChart>
+                </a-col>
+            </a-row>
+        </div>
     </div>
-  </div>
 </template>
 
 <style lang="less" scoped>

+ 76 - 69
src/components/dashboard/portrait/hotPortrait.vue

@@ -2,84 +2,91 @@
 import CoreData from "@/components/common/coreData.vue";
 import HotTrendChart from "@/components/dashboard/portrait/hot/hotTrendChart.vue";
 import api from "@/api/dashboard/apiDashboard"
+
 export default {
-  data() {
-    return {
-      coreData: [
-        {
-          type: 0,
-          title: '月总用热量(kWh)',
-          num: 0,
-          historyDesc: '同比',
-          historyNum: '0'
-        },
-        {
-          type: 0,
-          title: '今日用热趋势',
-          num: 0,
-          showTrendIcon: true,
-          historyDesc: '环比',
-        },
-        {
-          type: 1,
-          title: '人均用热成本(元/人/天)',
-          content: ''
-        },
-        {
-          type: 0,
-          title: '人均用热量(kWh/天)',
-          num: 0,
-          historyDesc: '同比',
-          historyNum: '0'
+    data() {
+        let range = this.$util.dateUtil.getNearlyMonthRange();
+        return {
+            queryData: {
+                companyId: '0',
+                deptId: '0',
+                timeRange: range
+            },
+            coreData: [
+                {
+                    type: 0,
+                    title: '月总用热量(kWh)',
+                    num: 0,
+                    historyDesc: '同比',
+                    historyNum: '0'
+                },
+                {
+                    type: 0,
+                    title: '今日用热趋势',
+                    num: 0,
+                    showTrendIcon: true,
+                    historyDesc: '环比',
+                },
+                {
+                    type: 1,
+                    title: '人均用热成本(元/人/天)',
+                    content: ''
+                },
+                {
+                    type: 0,
+                    title: '人均用热量(kWh/天)',
+                    num: 0,
+                    historyDesc: '同比',
+                    historyNum: '0'
+                },
+                {
+                    type: 1,
+                    showStar: true,
+                    title: '值得关注',
+                    content: ''
+                },
+            ]
+        }
+    },
+    props: {
+        chartHeight: Number
+    },
+    components: {
+        CoreData,
+        HotTrendChart,
+    },
+    mounted() {
+        this.init();
+    },
+    methods: {
+        init() {
+            this.getCoreData()
         },
-        {
-          type: 1,
-          showStar: true,
-          title: '值得关注',
-          content: ''
+        getCoreData() {
+            api.getHotCoreData(this.queryData).then(res => {
+                this.coreData[0].num = res.list[0].value
+                this.coreData[0].historyNum = res.list[0].compare
+                this.coreData[1].num = res.list[1].value
+                this.coreData[1].historyNum = res.list[1].compare
+                this.coreData[2].content = res.list[2].value
+                this.coreData[3].num = res.list[3].value
+                this.coreData[3].historyNum = res.list[3].compare
+                this.coreData[4].content = res.worthAttention
+            })
         },
-      ]
     }
-  },
-  props: {
-    chartHeight: Number
-  },
-  components: {
-    CoreData,
-    HotTrendChart,
-  },
-  mounted() {
-    this.init();
-  },
-  methods: {
-    init() {
-      this.getCoreData()
-    },
-    getCoreData() {
-      api.getHotCoreData().then(res=>{
-        this.coreData[0].num = res.list[0].value
-        this.coreData[0].historyNum = res.list[0].compare
-        this.coreData[1].num = res.list[1].value
-        this.coreData[1].historyNum = res.list[1].compare
-        this.coreData[2].content = res.list[2].value
-        this.coreData[3].num = res.list[3].value
-        this.coreData[3].historyNum = res.list[3].compare
-        this.coreData[4].content = res.worthAttention
-      })
-    },
-  }
 }
 </script>
 
 <template>
-  <div class="supermarketPortrait">
-    <div class="portrait-coreData">
-      <CoreData :data-list="coreData"></CoreData>
-    </div>
-    <div style="padding: 15px">
-      <HotTrendChart :height="chartHeight"></HotTrendChart>
+    <div class="supermarketPortrait">
+        <div class="portrait-coreData">
+            <CoreData :data-list="coreData"></CoreData>
+        </div>
+        <div style="padding: 15px">
+            <HotTrendChart :height="chartHeight" :query-data="queryData"></HotTrendChart>
+        </div>
     </div>
-  </div>
 </template>
 
 <style lang="less" scoped>

+ 89 - 82
src/components/dashboard/portrait/moneyPortrait.vue

@@ -3,98 +3,105 @@ import CoreData from "@/components/common/coreData.vue";
 import InvestDistributeChart from "@/components/dashboard/portrait/money/investDistributeChart.vue";
 import InvestYearChart from "@/components/dashboard/portrait/money/investYearChart.vue";
 import api from "@/api/dashboard/apiDashboard";
+
 export default {
-  data() {
-    return {
-      coreData: [
-        {
-          type: 0,
-          title: '年度投资总额(万元)',
-          num: 0,
-          historyDesc: '同比',
-          historyNum: '0'
-        },
-        {
-          type: 0,
-          title: '资产总额(万元)',
-          num: 0,
-          historyDesc: '同比',
-          historyNum: '0'
-        },
-        {
-          type: 0,
-          title: '人均资产总额(万元)',
-          num: 0,
-          historyDesc: '同比',
-          historyNum: '0'
-        },
-        {
-          type: 0,
-          title: '资产平均使用年限(年)',
-          num: 0,
-        },
-        {
-          type: 1,
-          showStar: true,
-          title: '值得关注',
-          content: ''
-        },
-      ]
-    }
-  },
-  props: {
-    chartHeight: Number
-  },
-  components: {
-    CoreData,
-    InvestDistributeChart,
-    InvestYearChart,
-  },
-  mounted() {
-    this.init();
-  },
-  methods: {
-    init() {
-      this.getCoreData();
+    data() {
+        let range = this.$util.dateUtil.getNearlyMonthRange();
+        return {
+            queryData: {
+                companyId: '0',
+                deptId: '0',
+                timeRange: range
+            },
+            coreData: [
+                {
+                    type: 0,
+                    title: '年度投资总额(万元)',
+                    num: 0,
+                    historyDesc: '同比',
+                    historyNum: '0'
+                },
+                {
+                    type: 0,
+                    title: '资产总额(万元)',
+                    num: 0,
+                    historyDesc: '同比',
+                    historyNum: '0'
+                },
+                {
+                    type: 0,
+                    title: '人均资产总额(万元)',
+                    num: 0,
+                    historyDesc: '同比',
+                    historyNum: '0'
+                },
+                {
+                    type: 0,
+                    title: '资产平均使用年限(年)',
+                    num: 0,
+                },
+                {
+                    type: 1,
+                    showStar: true,
+                    title: '值得关注',
+                    content: ''
+                },
+            ]
+        }
     },
-    getCoreData() {
-      api.getMoneyCoreData(this.$util.dateUtil.getNearlyMonthRange()).then(res=>{
-        this.coreData[0].num = res.list[0].value
-        this.coreData[0].historyNum = res.list[0].compare
-        this.coreData[1].num = res.list[1].value
-        this.coreData[1].historyNum = res.list[1].compare
-        this.coreData[2].num = res.list[2].value
-        this.coreData[2].historyNum = res.list[2].compare
-        this.coreData[3].num = res.list[3].value
-        this.coreData[3].historyNum = res.list[3].compare
-        this.coreData[4].content = res.worthAttention
-      })
+    props: {
+        chartHeight: Number
     },
-    getTrendData() {
+    components: {
+        CoreData,
+        InvestDistributeChart,
+        InvestYearChart,
+    },
+    mounted() {
+        this.init();
+    },
+    methods: {
+        init() {
+            this.getCoreData();
+        },
+        getCoreData() {
+            api.getMoneyCoreData(this.queryData).then(res => {
+                this.coreData[0].num = res.list[0].value
+                this.coreData[0].historyNum = res.list[0].compare
+                this.coreData[1].num = res.list[1].value
+                this.coreData[1].historyNum = res.list[1].compare
+                this.coreData[2].num = res.list[2].value
+                this.coreData[2].historyNum = res.list[2].compare
+                this.coreData[3].num = res.list[3].value
+                this.coreData[3].historyNum = res.list[3].compare
+                this.coreData[4].content = res.worthAttention
+            })
+        },
+        getTrendData() {
 
+        }
     }
-  }
 }
 </script>
 
 <template>
-  <div class="supermarketPortrait">
-    <div class="portrait-coreData">
-      <CoreData :data-list="coreData"></CoreData>
-    </div>
-    <div style="padding: 15px">
-      <a-row>
-        <a-col :span="12">
-          <div class="supermarketPortrait-title">投资分布</div>
-          <InvestDistributeChart :height="chartHeight-50"></InvestDistributeChart>
-        </a-col>
-        <a-col :span="12">
-          <div class="supermarketPortrait-title">资产年限</div>
-          <InvestYearChart :height="chartHeight-50"></InvestYearChart>
-        </a-col>
-      </a-row>
+    <div class="supermarketPortrait">
+        <div class="portrait-coreData">
+            <CoreData :data-list="coreData"></CoreData>
+        </div>
+        <div style="padding: 15px">
+            <a-row>
+                <a-col :span="12">
+                    <div class="supermarketPortrait-title">投资分布</div>
+                    <InvestDistributeChart :height="chartHeight-50" :query-data="queryData"></InvestDistributeChart>
+                </a-col>
+                <a-col :span="12">
+                    <div class="supermarketPortrait-title">资产年限</div>
+                    <InvestYearChart :height="chartHeight-50" :query-data="queryData"></InvestYearChart>
+                </a-col>
+            </a-row>
+        </div>
     </div>
-  </div>
 </template>
 
 <style lang="less" scoped>

+ 170 - 169
src/components/dashboard/portrait/person/personTrendChart.vue

@@ -2,183 +2,184 @@
 import apiDashboard from "@/api/dashboard/apiDashboard";
 
 export default {
-  data() {
-    let colors = {
-      ownEmployees: ['#178FE6', '#8BCFFF'],
-      outsourcingStaff: ['#3CC2AC', '#7EE6D4'],
-      visitors: ['#EE8242', '#FFB78D']
-    };
-    return {
-      chart: null,
-      show: false,
-      option: {
-        legend: {
-          data: [
-            '自有员工',
-            '外协员工',
-            '访客人员',
-          ]
-        },
-        grid: {
-          left: '2%', //默认10%
-          right: '3.5%', //默认10%
-          bottom: '15%', //默认60
-          top: '15%',
-          containLabel: true
-          //grid区域是否包含坐标轴的刻度标签
-        },
-        xAxis: {
-          data: []
-        },
-        yAxis: [
-          {
-            name: '人数(人)',
-            type: 'value',
-            nameTextStyle: {
-              padding: [10, 0, 10, -12]
+    data() {
+        let colors = {
+            ownEmployees: ['#178FE6', '#8BCFFF'],
+            outsourcingStaff: ['#3CC2AC', '#7EE6D4'],
+            visitors: ['#EE8242', '#FFB78D']
+        };
+        return {
+            chart: null,
+            show: false,
+            option: {
+                legend: {
+                    data: [
+                        '自有员工',
+                        '外协员工',
+                        '访客人员',
+                    ]
+                },
+                grid: {
+                    left: '2%', //默认10%
+                    right: '3.5%', //默认10%
+                    bottom: '15%', //默认60
+                    top: '15%',
+                    containLabel: true
+                    //grid区域是否包含坐标轴的刻度标签
+                },
+                xAxis: {
+                    data: []
+                },
+                yAxis: [
+                    {
+                        name: '人数(人)',
+                        type: 'value',
+                        nameTextStyle: {
+                            padding: [10, 0, 10, -12]
+                        },
+                    },
+                ],
+                dataZoom: this.$constant.ECHARTS_DATAZOOM,
+                tooltip: {
+                    trigger: 'axis',
+                    axisPointer: {
+                        type: 'shadow'
+                    },
+                    textStyle: {
+                        color: '#fff',
+                        align: 'left',
+                        fontSize: 14
+                    },
+                    axisLine: {//x坐标轴轴线
+                        show: true,
+                        lineStyle: {//x坐标轴轴线样式
+                            color: '#000',//'#ccc' | 'rgb(128, 128, 128)' | 'rgba(128, 128, 128, 0.5)',设置标签颜色
+                        }
+                    },
+                    backgroundColor: 'rgba(0,0,0,0.8)',
+                },
+                series: [
+                    {
+                        name: '访客人员',
+                        data: [],
+                        type: 'line',
+                        stack: 'x',
+                        smooth: true,
+                        showSymbol: false,
+                        areaStyle: {
+                            color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+                                offset: 0,
+                                color: colors.visitors[1] // 0% 处的颜色
+                            }, {
+                                offset: 0.8,
+                                color: '#ffffff' // 100% 处的颜色
+                            }], false),
+                        },
+                        lineStyle: {
+                            color: colors.visitors[0],
+                            width: 1,
+                        },
+                        itemStyle: {
+                            color: colors.visitors[0]
+                        },
+                        emphasis: {
+                            scale: 1.5
+                        },
+                    },
+                    {
+                        name: '外协员工',
+                        data: [],
+                        type: 'line',
+                        stack: 'x',
+                        smooth: true,
+                        showSymbol: false,
+                        areaStyle: {
+                            color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+                                offset: 0,
+                                color: colors.outsourcingStaff[1] // 0% 处的颜色
+                            }, {
+                                offset: 0.8,
+                                color: '#ffffff' // 100% 处的颜色
+                            }], false),
+                        },
+                        lineStyle: {
+                            color: colors.outsourcingStaff[0],
+                            width: 1,
+                        },
+                        itemStyle: {
+                            color: colors.outsourcingStaff[0]
+                        },
+                        emphasis: {
+                            scale: 1.5
+                        },
+                    },
+                    {
+                        name: '自有员工',
+                        data: [],
+                        type: 'line',
+                        stack: 'x',
+                        smooth: true,
+                        showSymbol: false,
+                        areaStyle: {
+                            color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
+                                offset: 0,
+                                color: colors.ownEmployees[1] // 0% 处的颜色
+                            }, {
+                                offset: 0.8,
+                                color: '#ffffff' // 100% 处的颜色
+                            }], false),
+                        },
+                        lineStyle: {
+                            color: colors.ownEmployees[0],
+                            width: 1,
+                        },
+                        itemStyle: {
+                            color: colors.ownEmployees[0]
+                        },
+                        emphasis: {
+                            scale: 1.5
+                        }
+                    },
+
+                ]
             },
-          },
-        ],
-        dataZoom: this.$constant.ECHARTS_DATAZOOM,
-        tooltip: {
-          trigger: 'axis',
-          axisPointer: {
-            type: 'shadow'
-          },
-          textStyle: {
-            color: '#fff',
-            align: 'left',
-            fontSize: 14
-          },
-          axisLine: {//x坐标轴轴线
-            show: true,
-            lineStyle: {//x坐标轴轴线样式
-              color: '#000',//'#ccc' | 'rgb(128, 128, 128)' | 'rgba(128, 128, 128, 0.5)',设置标签颜色
+        }
+    },
+    props: {
+        height: Number,
+        data: Object,
+        queryData: Object,
+    },
+    mounted() {
+        this.$nextTick(() => {
+            this.initChart();
+        })
+    },
+    methods: {
+        initChart() {
+            let chart = this.$echarts.init(this.$refs.myChart)
+            this.chart = chart;
+            this.$util.chartsResize(this.chart);
+            chart.setOption(this.option)
+            for (let i = 0; i < 5; i++) {
+                setTimeout(function () {
+                    chart.resize()
+                }, 500 * i)
             }
-          },
-          backgroundColor: 'rgba(0,0,0,0.8)',
+            this.getData()
         },
-        series: [
-          {
-            name: '访客人员',
-            data: [],
-            type: 'line',
-            stack: 'x',
-            smooth: true,
-            showSymbol: false,
-            areaStyle: {
-              color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
-                offset: 0,
-                color: colors.visitors[1] // 0% 处的颜色
-              }, {
-                offset: 0.8,
-                color: '#ffffff' // 100% 处的颜色
-              }], false),
-            },
-            lineStyle: {
-              color: colors.visitors[0],
-              width: 1,
-            },
-            itemStyle: {
-              color: colors.visitors[0]
-            },
-            emphasis: {
-              scale: 1.5
-            },
-          },
-          {
-            name: '外协员工',
-            data: [],
-            type: 'line',
-            stack: 'x',
-            smooth: true,
-            showSymbol: false,
-            areaStyle: {
-              color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
-                offset: 0,
-                color: colors.outsourcingStaff[1] // 0% 处的颜色
-              }, {
-                offset: 0.8,
-                color: '#ffffff' // 100% 处的颜色
-              }], false),
-            },
-            lineStyle: {
-              color: colors.outsourcingStaff[0],
-              width: 1,
-            },
-            itemStyle: {
-              color: colors.outsourcingStaff[0]
-            },
-            emphasis: {
-              scale: 1.5
-            },
-          },
-          {
-            name: '自有员工',
-            data: [],
-            type: 'line',
-            stack: 'x',
-            smooth: true,
-            showSymbol: false,
-            areaStyle: {
-              color: new this.$echarts.graphic.LinearGradient(0, 0, 0, 1, [{
-                offset: 0,
-                color: colors.ownEmployees[1] // 0% 处的颜色
-              }, {
-                offset: 0.8,
-                color: '#ffffff' // 100% 处的颜色
-              }], false),
-            },
-            lineStyle: {
-              color: colors.ownEmployees[0],
-              width: 1,
-            },
-            itemStyle: {
-              color: colors.ownEmployees[0]
-            },
-            emphasis: {
-              scale: 1.5
-            }
-          },
-
-        ]
-      },
-    }
-  },
-  props: {
-    height: Number,
-    data: Object
-  },
-  mounted() {
-    this.$nextTick(() => {
-      this.initChart();
-    })
-  },
-  methods: {
-    initChart() {
-      let chart = this.$echarts.init(this.$refs.myChart)
-      this.chart = chart;
-      this.$util.chartsResize(this.chart);
-      chart.setOption(this.option)
-      for (let i = 0; i < 5; i++) {
-        setTimeout(function () {
-          chart.resize()
-        },500*i)
-      }
-      this.getData()
-    },
-    getData() {
-      return apiDashboard.getPersonEnterSummary(this.queryData).then(res => {
-        let data = this.$util.dataUtil.covertDataToEcharts(res, ['visitors','outsourcingStaff','ownEmployees'])
-        this.$util.dataUtil.refreshEchartsData(this.chart, this.option, data)
-      })
+        getData() {
+            return apiDashboard.getPersonEnterSummary(this.queryData).then(res => {
+                let data = this.$util.dataUtil.covertDataToEcharts(res, ['visitors', 'outsourcingStaff', 'ownEmployees'])
+                this.$util.dataUtil.refreshEchartsData(this.chart, this.option, data)
+            })
+        }
     }
-  }
 }
 </script>
 
 <template>
-  <div id="personTrendChart" style="width: 100%" :style="{height: height+'px'}" ref="myChart"></div>
+    <div id="personTrendChart" style="width: 100%" :style="{height: height+'px'}" ref="myChart"></div>
 </template>
 
 <style lang="less" scoped>

+ 79 - 72
src/components/dashboard/portrait/personPortrait.vue

@@ -3,85 +3,92 @@ import api from "@/api/dashboard/apiDashboard";
 
 import CoreData from "@/components/common/coreData.vue";
 import PersonTrendChart from "@/components/dashboard/portrait/person/personTrendChart.vue";
+
 export default {
-  data() {
-    return {
-      coreData: [
-        {
-          type: 0,
-          title: '进入大楼(人)',
-          num: 0,
-          historyDesc: '同比',
-          historyNum: 0
-        },
-        {
-          type: 0,
-          title: '离开大楼(人)',
-          num: 0,
-          historyDesc: '同比',
-          historyNum: 0
-        },
-        {
-          type: 0,
-          title: '9点前进入大楼(人)',
-          num: 0,
-          historyDesc: '同比',
-          historyNum: 0
-        },
-        {
-          type: 0,
-          title: '楼内人员数量(人)',
-          num: 0,
-          historyDesc: '同比',
-          historyNum: 0
+    data() {
+        let range = this.$util.dateUtil.getNearlyMonthRange();
+        return {
+            queryData: {
+                companyId: '0',
+                deptId: '0',
+                timeRange: range
+            },
+            coreData: [
+                {
+                    type: 0,
+                    title: '进入大楼(人)',
+                    num: 0,
+                    historyDesc: '同比',
+                    historyNum: 0
+                },
+                {
+                    type: 0,
+                    title: '离开大楼(人)',
+                    num: 0,
+                    historyDesc: '同比',
+                    historyNum: 0
+                },
+                {
+                    type: 0,
+                    title: '9点前进入大楼(人)',
+                    num: 0,
+                    historyDesc: '同比',
+                    historyNum: 0
+                },
+                {
+                    type: 0,
+                    title: '楼内人员数量(人)',
+                    num: 0,
+                    historyDesc: '同比',
+                    historyNum: 0
+                },
+                {
+                    type: 1,
+                    title: '值得关注',
+                    showStar: true,
+                    content: ''
+                },
+            ],
+        }
+    },
+    props: {
+        chartHeight: Number
+    },
+    components: {
+        CoreData,
+        PersonTrendChart,
+    },
+    mounted() {
+        this.init();
+    },
+    methods: {
+        init() {
+            this.getCoreData();
         },
-        {
-          type: 1,
-          title: '值得关注',
-          showStar: true,
-          content: ''
+        getCoreData() {
+            api.getPersonCoreData(this.queryData).then(res => {
+                this.coreData[0].num = res.list[0].value
+                this.coreData[0].historyNum = res.list[0].compare
+                this.coreData[1].num = res.list[1].value
+                this.coreData[1].historyNum = res.list[1].compare
+                this.coreData[2].num = res.list[2].value
+                this.coreData[2].historyNum = res.list[2].compare
+                this.coreData[3].num = res.list[3].value
+                this.coreData[3].historyNum = res.list[3].compare
+                this.coreData[4].content = res.worthAttention
+            })
         },
-      ],
     }
-  },
-  props: {
-    chartHeight: Number
-  },
-  components: {
-    CoreData,
-    PersonTrendChart,
-  },
-  mounted() {
-    this.init();
-  },
-  methods: {
-    init() {
-      this.getCoreData();
-    },
-    getCoreData() {
-      api.getPersonCoreData(this.$util.dateUtil.getNearlyMonthRange()).then(res=>{
-        this.coreData[0].num = res.list[0].value
-        this.coreData[0].historyNum = res.list[0].compare
-        this.coreData[1].num = res.list[1].value
-        this.coreData[1].historyNum = res.list[1].compare
-        this.coreData[2].num = res.list[2].value
-        this.coreData[2].historyNum = res.list[2].compare
-        this.coreData[3].num = res.list[3].value
-        this.coreData[3].historyNum = res.list[3].compare
-        this.coreData[4].content = res.worthAttention
-      })
-    },
-  }
 }
 </script>
 
 <template>
-  <div class="personPortrait">
-    <div class="portrait-coreData">
-      <CoreData :data-list="coreData"></CoreData>
-    </div>
-    <div style="padding: 15px;">
-      <PersonTrendChart :height="chartHeight"></PersonTrendChart>
+    <div class="personPortrait">
+        <div class="portrait-coreData">
+            <CoreData :data-list="coreData"></CoreData>
+        </div>
+        <div style="padding: 15px;">
+            <PersonTrendChart :height="chartHeight" :query-data="queryData"></PersonTrendChart>
+        </div>
     </div>
-  </div>
 </template>

+ 88 - 81
src/components/dashboard/portrait/waterPortrait.vue

@@ -3,96 +3,103 @@ import CoreData from "@/components/common/coreData.vue";
 import WaterUseChart from "@/components/dashboard/portrait/water/waterUseChart.vue";
 import WaterDistributionChart from "@/components/dashboard/portrait/water/waterDistributionChart.vue";
 import api from "@/api/dashboard/apiDashboard";
+
 export default {
-  data() {
-    return {
-      coreData: [
-        {
-          type: 0,
-          title: '月总用水量(m³)',
-          num: 0,
-          historyDesc: '同比',
-          historyNum: '0'
-        },
-        {
-          type: 0,
-          title: '今日用水总量(m³)',
-          num: 0,
-          historyDesc: '同比',
-          historyNum: '0'
-        },
-        {
-          type: 0,
-          title: '今日用水趋势',
-          num: 0,
-          showTrendIcon: true,
-          historyDesc: '环比',
-          historyNum: '0'
-        },
-        {
-          type: 0,
-          title: '人均用水量(m³)',
-          num: 0,
-          historyDesc: '同比',
-          historyNum: '0'
+    data() {
+        let range = this.$util.dateUtil.getNearlyMonthRange();
+        return {
+            queryData: {
+                companyId: '0',
+                deptId: '0',
+                timeRange: range
+            },
+            coreData: [
+                {
+                    type: 0,
+                    title: '月总用水量(m³)',
+                    num: 0,
+                    historyDesc: '同比',
+                    historyNum: '0'
+                },
+                {
+                    type: 0,
+                    title: '今日用水总量(m³)',
+                    num: 0,
+                    historyDesc: '同比',
+                    historyNum: '0'
+                },
+                {
+                    type: 0,
+                    title: '今日用水趋势',
+                    num: 0,
+                    showTrendIcon: true,
+                    historyDesc: '环比',
+                    historyNum: '0'
+                },
+                {
+                    type: 0,
+                    title: '人均用水量(m³)',
+                    num: 0,
+                    historyDesc: '同比',
+                    historyNum: '0'
+                },
+                {
+                    type: 1,
+                    showStar: true,
+                    title: '值得关注',
+                    content: '%'
+                },
+            ]
+        }
+    },
+    props: {
+        chartHeight: Number
+    },
+    components: {
+        CoreData,
+        WaterUseChart,
+        WaterDistributionChart,
+    },
+    mounted() {
+        this.init();
+    },
+    methods: {
+        init() {
+            this.getCoreData()
         },
-        {
-          type: 1,
-          showStar: true,
-          title: '值得关注',
-          content: '%'
+        getCoreData() {
+            api.getWaterCoreData(this.queryData).then(res => {
+                this.coreData[0].num = res.list[0].value
+                this.coreData[0].historyNum = res.list[0].compare
+                this.coreData[1].num = res.list[1].value
+                this.coreData[1].historyNum = res.list[1].compare
+                this.coreData[2].num = res.list[2].value
+                this.coreData[2].historyNum = res.list[2].compare
+                this.coreData[3].num = res.list[3].value
+                this.coreData[3].historyNum = res.list[3].compare
+                this.coreData[4].content = res.worthAttention
+            })
         },
-      ]
     }
-  },
-  props: {
-    chartHeight: Number
-  },
-  components: {
-    CoreData,
-    WaterUseChart,
-    WaterDistributionChart,
-  },
-  mounted() {
-    this.init();
-  },
-  methods: {
-    init() {
-      this.getCoreData()
-    },
-    getCoreData() {
-      api.getWaterCoreData().then(res=>{
-        this.coreData[0].num = res.list[0].value
-        this.coreData[0].historyNum = res.list[0].compare
-        this.coreData[1].num = res.list[1].value
-        this.coreData[1].historyNum = res.list[1].compare
-        this.coreData[2].num = res.list[2].value
-        this.coreData[2].historyNum = res.list[2].compare
-        this.coreData[3].num = res.list[3].value
-        this.coreData[3].historyNum = res.list[3].compare
-        this.coreData[4].content = res.worthAttention
-      })
-    },
-  }
 }
 </script>
 
 <template>
-  <div class="supermarketPortrait">
-    <div class="portrait-coreData">
-      <CoreData :data-list="coreData"></CoreData>
-    </div>
-    <div style="padding: 15px">
-      <a-row>
-        <a-col :span="16">
-          <WaterUseChart :height="chartHeight"></WaterUseChart>
-        </a-col>
-        <a-col :span="8">
-          <WaterDistributionChart :height="chartHeight"></WaterDistributionChart>
-        </a-col>
-      </a-row>
+    <div class="supermarketPortrait">
+        <div class="portrait-coreData">
+            <CoreData :data-list="coreData"></CoreData>
+        </div>
+        <div style="padding: 15px">
+            <a-row>
+                <a-col :span="16">
+                    <WaterUseChart :height="chartHeight" :query-data="queryData"></WaterUseChart>
+                </a-col>
+                <a-col :span="8">
+                    <WaterDistributionChart :height="chartHeight" :query-data="queryData"></WaterDistributionChart>
+                </a-col>
+            </a-row>
+        </div>
     </div>
-  </div>
 </template>
 
 <style lang="less" scoped>

+ 0 - 1
src/components/doubleCarbon/overview/doubleCarbonOverview.vue

@@ -105,7 +105,6 @@ export default {
     getNewsData() {
       return apiCarbonOverview.getCarbonNews(this.queryData).then(res=>{
         this.newsData = res;
-        console.log(this.newsData)
       });
     }
   }

+ 24 - 9
src/components/home/ContainerAside.vue

@@ -5,6 +5,7 @@ export default {
   data() {
     return {
       selectedKeys: [],
+      openKeys: [],
       highLight: {backgroundColor: '#e9f6fd'},
       menuList: [],
       height: '100%',
@@ -26,22 +27,35 @@ export default {
       if (menu.children && menu.children.length>0) {
         this.menuList = JSON.parse(JSON.stringify(menu.children))
       }
-      if (matchRoutes.length===2) {
-        this.toRoute(this.menuList[0].router)
-      } else if (matchRoutes.length===3) {
-        let route = this.$route.matched[2];
-        this.toRoute(route.path)
-      } else if (matchRoutes.length>3) {
-        let route = this.$route.matched[3];
-        this.toRoute(route.path)
+      let currMenu = matchRoutes[matchRoutes.length-1];
+      let index = this.menuList.findIndex(item => item.router==currMenu.path);
+      console.log(currMenu)
+      console.log(this.menuList)
+      if (index>-1) {
+        currMenu = this.menuList[index];
+        if (currMenu.children && currMenu.children.length>0) {
+          this.toRoute(currMenu.children[0].router, currMenu.router)
+        } else  {
+          this.toRoute(currMenu.router);
+        }
+      } else {
+        currMenu = this.menuList[0]
+        if (currMenu.children && currMenu.children.length>0) {
+          this.toRoute(currMenu.children[0].router, currMenu.router)
+        } else  {
+          this.toRoute(currMenu.router);
+        }
       }
     },
     handleClick(item) {
       this.toRoute(item.key)
     },
-    toRoute(path) {
+    toRoute(path, parentPath) {
       this.$router.push({path: path})
       this.selectedKeys = [path]
+      //if (parentPath) {
+      //  this.openKeys = [parentPath]
+      //}
       this.$forceUpdate()
     }
   }
@@ -55,6 +69,7 @@ export default {
         mode="inline"
         theme="dark"
         v-model:selectedKeys="selectedKeys"
+        :openKeys.sync="openKeys"
         @click="handleClick"
     >
       <template v-for="item in menuList">

+ 2 - 2
src/components/scene/meeting/config/meetingRoomDeviceTable.vue

@@ -21,7 +21,7 @@
     >
       <template #device="text,record">
         <a-select style="width: 200px" v-model="record.device" @select="val=>handleDeviceChange(val, record)">
-          <a-select-option v-for="(val, key) in deviceOption" :value="key">{{ val.label }}</a-select-option>
+          <a-select-option v-for="(val, key) in deviceOption" :key="key" :value="key">{{ val.label }}</a-select-option>
         </a-select>
       </template>
       <template #status="text,record">
@@ -46,7 +46,7 @@
 
               <a-form-model-item label="可通过人员" style="margin-left: 30%">
                 <a-radio-group v-model="record.deviceForm.allowEnter" >
-                  <a-radio  v-for="item in doorOptions.allowOptions" :value="item.value">{{ item.label }}</a-radio>
+                  <a-radio  v-for="item in doorOptions.allowOptions" :key="item.value" :value="item.value">{{ item.label }}</a-radio>
                 </a-radio-group>
               </a-form-model-item>
 

+ 3 - 3
src/components/scene/meeting/config/meetingRooms.vue

@@ -125,7 +125,7 @@ export default {
           floor: '4F',
           rooms: [
             {
-              id: 1,
+              id: 401,
               name: '401会议室',
               timeRange: ['9:00', '10:00'],
               status: '1',
@@ -135,7 +135,7 @@ export default {
               ]
             },
             {
-              id: 1,
+              id: 402,
               name: '402会议室',
               timeRange: ['9:00', '10:00'],
               status: '1',
@@ -150,7 +150,7 @@ export default {
           floor: '5F',
           rooms: [
             {
-              id: 1,
+              id: 501,
               name: '501会议室',
               timeRange: ['9:00', '10:00'],
               status: '1',

+ 1 - 1
src/components/security/person/components/securityPersonDuty.vue

@@ -46,7 +46,7 @@ export default {
   },
   watch: {
     currCheck: val => {
-      console.log(val)
+      //console.log(val)
     }
   },
   components: {},

+ 1 - 1
src/components/work/bus/workBus.vue

@@ -1,7 +1,7 @@
 <template>
   <div>
     <div class="page-query-core">
-      <query :show="['company', 'time']" :query-data="queryData"  :reset="reset" :search="search"></query>
+      <query :show="['company', 'time']" :query-data.sync="queryData"  :reset="reset" :search="search"></query>
       <card :title="'核心指标'">
         <CoreData :data-list="coreData"></CoreData>
       </card>

+ 0 - 1
src/components/work/meeting/component/workMeetingCostTrend.vue

@@ -245,7 +245,6 @@ export default {
           "yewu",
           "qita",
         ]);
-        console.log(data);
         this.$util.dataUtil.refreshEchartsData(this.chart, this.option, data);
       });
     },

+ 1 - 1
src/components/work/meeting/workMeeting.vue

@@ -38,7 +38,7 @@
                   </a-menu>
                 </a-col>
                 <a-col :span="3">
-                  <div class="week-box" v-for="n in timeArr" :key="n">
+                  <div class="week-box" v-for="n in timeArr" :key="n.weekday">
                     <div class="week">{{ n.weekday }}</div>
                     <div class="date">{{ n.date }}</div>
                   </div>

+ 1 - 1
src/plugins/gverify.js

@@ -5,7 +5,7 @@
             canvasId: "verifyCanvas", //canvas的ID
             width: "100", //默认canvas宽度
             height: "30", //默认canvas高度
-            type: "blend", //图形验证码默认类型blend:数字字母混合类型、number:纯数字、letter:纯字母
+            type: "number", //图形验证码默认类型blend:数字字母混合类型、number:纯数字、letter:纯字母
             code: ""
         }
 

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 5
src/plugins/hkws/h5player.min.js


+ 0 - 225
src/plugins/hkws/playctrl1/AudioRenderer.js

@@ -1,225 +0,0 @@
-/**
- * Created by wangweijie5 on 2016/12/16.
- */
-
-"use strict";
-
-var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
-
-function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
-
-var __instance = function () {
-    var instance = void 0;
-    return function (newInstance) {
-        if (newInstance) instance = newInstance;
-        return instance;
-    };
-}();
-
-var AudioRenderer = function () {
-    function AudioRenderer() {
-        _classCallCheck(this, AudioRenderer);
-
-        if (__instance()) return __instance();
-
-        // 确保只有单例
-        if (AudioRenderer.unique !== undefined) {
-            return AudioRenderer.unique;
-        }
-
-        AudioRenderer.unique = this;
-
-        this.oAudioContext = null;
-        this.currentVolume = 0.8; // 初始音量
-        this.bSetVolume = false;
-        this.gainNode = null;
-        this.iWndNum = -1; // 窗口号
-        this.mVolumes = new Map(); // 用于存储所有音量
-
-        // Init AudioContext
-        var AudioContext = window.AudioContext || window.webkitAudioContext;
-        this.oAudioContext = new AudioContext();
-
-        this.writeString = function (view, offset, string) {
-            for (var i = 0; i < string.length; i++) {
-                view.setUint8(offset + i, string.charCodeAt(i));
-            }
-        };
-
-        this.setBufferToDataview = function (output, offset, input) {
-            for (var i = 0; i < input.length; i++, offset++) {
-                output.setUint8(offset, input[i]);
-            }
-        };
-
-        __instance(this);
-    }
-
-    /**
-     * @synopsis 音频播放
-     *
-     *  @param dataBuf [IN] 音频缓存
-     *  @param dataLen [IN] 缓存长度
-     *  @param audioInfo [IN] 音频参数
-     *
-     * @returns 状态码
-     */
-
-
-    _createClass(AudioRenderer, [{
-        key: 'Play',
-        value: function Play(dataBuf, dataLen, audioInfo) {
-            var bufferData = new ArrayBuffer(44 + dataLen);
-            var viewTalk = new DataView(bufferData);
-            var sampleRates = audioInfo.samplesPerSec;
-            var channels = audioInfo.channels;
-            var bitsPerSample = audioInfo.bitsPerSample;
-
-            //console.log("audiorender sampleRates"+sampleRates+"channels:"+channels+"bitsPerSample:"+bitsPerSample);
-
-            /* RIFF identifier */
-            this.writeString(viewTalk, 0, 'RIFF');
-            /* file length */
-            viewTalk.setUint32(4, 32 + dataLen * 2, true);
-            /* RIFF type */
-            this.writeString(viewTalk, 8, 'WAVE');
-            /* format chunk identifier */
-            this.writeString(viewTalk, 12, 'fmt ');
-            /* format chunk length */
-            viewTalk.setUint32(16, 16, true);
-            /* sample format (raw) */
-            viewTalk.setUint16(20, 1, true);
-            /* channel count */
-            viewTalk.setUint16(22, channels, true);
-            /* sample rate */
-            viewTalk.setUint32(24, sampleRates, true);
-            /* byte rate (sample rate * block align) */
-            viewTalk.setUint32(28, sampleRates * 2, true);
-            /* block align (channel count * bytes per sample)/8 */
-            viewTalk.setUint16(32, channels * bitsPerSample / 8, true);
-            /* bits per sample */
-            viewTalk.setUint16(34, bitsPerSample, true);
-            /* data chunk identifier */
-            this.writeString(viewTalk, 36, 'data');
-            /* data chunk length */
-            viewTalk.setUint32(40, dataLen, true);
-            this.setBufferToDataview(viewTalk, 44, dataBuf);
-
-            var self = this;
-            this.oAudioContext.decodeAudioData(viewTalk.buffer, function (buffer) {
-
-                var bufferSource = self.oAudioContext.createBufferSource();
-                if (bufferSource == null) {
-                    return -1;
-                }
-
-                bufferSource.buffer = buffer;
-                bufferSource.start(0);
-
-                if (self.gainNode == null || self.bSetVolume) {
-                    self.gainNode = self.oAudioContext.createGain();
-                    // self.gainNode.gain.value = self.currentVolume;
-                    // // self.currentVolume = self.gainNode.gain.value;
-                    // self.gainNode.connect(self.oAudioContext.destination);
-
-                    self.bSetVolume = false;
-                }
-
-                self.gainNode.gain.value = self.currentVolume;
-                // self.currentVolume = self.gainNode.gain.value;
-                self.gainNode.connect(self.oAudioContext.destination);
-
-                bufferSource.connect(self.gainNode);
-            }, function (e) {
-                console.log("decode error");
-                return -1;
-            });
-
-            return 0;
-        }
-
-        /**
-         * @synopsis 停止播放
-         *
-         * @returns 返回音量
-         */
-
-    }, {
-        key: 'Stop',
-        value: function Stop() {
-            if (this.gainNode != null) {
-                this.gainNode.disconnect();
-                this.gainNode = null;
-            }
-
-            // this.oAudioContext.close();
-
-            // AudioRenderer.unique = undefined;
-            // __instance() = null;
-            return true;
-        }
-
-        /**
-         * @synopsis 设置音量
-         *
-         *  @param iVolume [IN] 音量
-         *
-         * @returns 状态码
-         */
-
-    }, {
-        key: 'SetVolume',
-        value: function SetVolume(iVolume) {
-            this.bSetVolume = true;
-            this.currentVolume = iVolume;
-
-            // 储存当前窗口设置音量值
-            this.mVolumes.set(this.iWndNum, iVolume);
-            return true;
-        }
-
-        /**
-         * @synopsis 设置窗口号
-         *
-         *  @param iWndNum [IN] 窗口号
-         *
-         * @returns 状态码
-         */
-
-    }, {
-        key: 'SetWndNum',
-        value: function SetWndNum(iWndNum) {
-            this.iWndNum = iWndNum;
-
-            // 获取当前窗口设置音量值
-            var iVolume = this.mVolumes.get(iWndNum);
-            if (iVolume == undefined) {
-                iVolume = 0.8; // 默认音量
-            }
-            this.currentVolume = iVolume;
-
-            return true;
-        }
-
-        /**
-         * @synopsis 获取音量
-         *
-         * @returns 返回音量
-         */
-
-    }, {
-        key: 'GetVolume',
-        value: function GetVolume() {
-            // 获取当前窗口设置音量值
-            var iVolume = this.mVolumes.get(this.iWndNum);
-            if (iVolume == undefined) {
-                iVolume = 0.8; // 默认音量
-            }
-
-            return iVolume;
-        }
-    }]);
-
-    return AudioRenderer;
-}();
-//# sourceMappingURL=AudioRenderer.js.map

+ 0 - 711
src/plugins/hkws/playctrl1/DecodeWorker.js

@@ -1,711 +0,0 @@
-/**
- * Created by wangweijie5 on 2016/12/5.
- */
-(function (event) {
-    const AUDIO_TYPE = 0;	// 音频
-    const VIDEO_TYPE = 1;   // 视频
-    const PRIVT_TYPE = 2;  // 私有帧
-
-    const PLAYM4_AUDIO_FRAME = 100; // 音频帧
-    const PLAYM4_VIDEO_FRAME = 101; // 视频帧
-
-    const PLAYM4_OK = 1;
-    const PLAYM4_DECODE_ERROR = 44 	// 解码失败
-    const PLAYM4_NOT_KEYFRAME = 48; 	// 非关键帧
-    const PLAYM4_NEED_MORE_DATA = 31;   // 需要更多数据才能解析
-    const PLAYM4_SYS_NOT_SUPPORT = 16; 	// 不支持
-
-    const PLAYM4_PARA_ENCODER_ERROR                     = 71;  //音频编码参数错误
-    const PLAYM4_PRECONDITION_ENCODER_ERROR             = 72;  //不满足音频编码条件错误
-    const PLAYM4_ENCODER_ERROR                          = 73;  //音频编码失败
-    const PLAYM4_CREATE_ENCODER_ERROR                   = 74;  //创建音频编码器失败
-    const PLAYM4_NOSUPPORT_ENCODER_ERROR                = 75;  //音频编码不支持
-    const PLAYM4_ALLOC_MEMORY_ENCODER_ERROR	            = 76;  //音频编码相关内存申请失败
-    const PLAYM4_BUF_OVER_ENCODER_ERROR                 = 77;  //音频编码相关buffer满
-    const PLAYM4_NEED_MORE_DATA_ENCODER_ERROR           = 78;  //音频编码需要更多数据进行编码
-    const PLAYM4_CALL_ORDER_ENCODER_ERROR               = 79;  //音频编码调用顺序错误
-
-    const PLAYM4_ITYPE_DECODE_ERROR                     =100;   //定位后送进来的第一帧I帧解码失败
-    const PLAYM4_FIRST_FRAME_NOT_ICURRENT               =101;   //定位后送进来的第一帧不是定位帧所在的I帧(Ni>Mp)
-
-
-    importScripts('Decoder.js');
-    Module.addOnPostRun(function () {
-        postMessage({'function': "loaded"});
-    });
-
-    var iStreamMode = 0;  // 流模式
-
-    var bOpenMode = false;
-    var bOpenStream = false;
-    
-    var funGetFrameData = null;
-    var funGetAudFrameData = null;
-	
-	var bWorkerPrintLog=false;//worker层log开关
-
-    onmessage = function (event)
-    {
-        var eventData = event.data;
-        var res = 0;
-        switch (eventData.command)
-        {
-			case "printLog":
-			    let downloadFlag=eventData.data;
-			    if(downloadFlag===true)
-                {
-                    bWorkerPrintLog=true;
-                    res = Module._SetPrintLogFlag(downloadFlag);
-                }
-			    else
-                {
-                    bWorkerPrintLog=false;
-                    res = Module._SetPrintLogFlag(downloadFlag);
-                }
-
-				if (res !== PLAYM4_OK)
-                {
-					console.log("DecodeWorker.js: PlayerSDK print log failed,res"+res);
-                    postMessage({'function': "printLog", 'errorCode': res});
-                }
-				break;
-            case "SetPlayPosition":
-                let nFrameNumOrTime=eventData.data;
-                let enPosType=eventData.type;
-                res = Module._SetPlayPosition(nFrameNumOrTime,enPosType);
-                if (res !== PLAYM4_OK)
-                {
-                    postMessage({'function': "SetPlayPosition", 'errorCode': res});
-                    return;
-                }
-                //有没有buffer需要清除
-
-                break;
-            case "SetStreamOpenMode":
-                iStreamMode = eventData.data;
-                res = Module._SetStreamOpenMode(iStreamMode);
-                if (res !== PLAYM4_OK)
-                {
-                    postMessage({'function': "SetStreamOpenMode", 'errorCode': res});
-                    return;
-                }
-                bOpenMode = true;
-                break;
-
-            case "OpenStream":
-                // 接收到的数据
-                var iHeadLen = eventData.dataSize;
-                var pHead = Module._malloc(iHeadLen + 4);
-                if (pHead === null)
-                {
-                    return;
-                }
-                var aHead = Module.HEAPU8.subarray(pHead, pHead + iHeadLen);
-                aHead.set(eventData.data);
-                res = Module._OpenStream(pHead, iHeadLen, eventData.bufPoolSize);
-                postMessage({'function': "OpenStream", 'errorCode': res});
-                if (res !== PLAYM4_OK)
-                {
-                    //释放内存
-                    Module._free(pHead);
-                    pHead = null;
-                    return;
-                }
-                bOpenStream = true;
-
-                // 加4字节长度信息
-                var a32 = new Uint32Array([iHeadLen]);
-                var a8 = new Uint8Array(a32.buffer);
-                var tempBuf = new Uint8Array(iHeadLen + 4);
-                tempBuf.set(a8, 0);
-                tempBuf.set(eventData.data, 4);
-                a32 = null;
-                a8 = null;
-
-                aHead = Module.HEAPU8.subarray(pHead, pHead + iHeadLen + 4);
-                aHead.set(tempBuf);
-                tempBuf = null;
-
-                res = Module._InputData(pHead, iHeadLen + 4);
-                if (res !== PLAYM4_OK)
-                {
-                    postMessage({'function': "InputData", 'errorCode': res});
-                    Module._free(pHead);
-                    pHead = null;
-                    return;
-                }
-
-                // 释放内存
-                Module._free(pHead);
-                pHead = null;
-
-                if (funGetFrameData === null) {
-                    funGetFrameData = Module.cwrap('GetFrameData', 'number');
-                }
-
-                if (iStreamMode === 0) {
-                    // Module._GetFrameData();
-                    funGetFrameData();
-                }
-                break;
-
-            case "InputData":
-                // 接收到的数据
-                var iLen = eventData.dataSize;
-                if(bWorkerPrintLog)
-                {
-                    console.log("<<<Worker: DecodeWorker-InputData iLen:"+iLen);
-                }
-                
-                if (iLen > 0)
-                {
-                    var pInputData = Module._malloc(iLen);
-                    if (pInputData === null)
-                    {
-                        return;
-                    }
-                    var inputData = new Uint8Array(eventData.data);
-                    // var aInputData = Module.HEAPU8.subarray(pInputData, pInputData + iLen);
-                    // aInputData.set(inputData);
-                    Module.writeArrayToMemory(inputData, pInputData);
-                    inputData = null;
-                    res = Module._InputData(pInputData, iLen);
-                    //console.log("DecodeWorker-InputData-ret:%d", res);
-					if(bWorkerPrintLog)
-					{
-						console.log("<<<Worker:InputData result:"+ +res);
-					}
-					
-                    if (res !== PLAYM4_OK)
-                    {
-                        if (res === 98)
-                        {
-                            res = 1;
-                        }
-                        postMessage({'function': "InputData", 'errorCode': res});
-                    }
-                    Module._free(pInputData);
-                    pInputData = null;
-                }
-
-                /////////////////////
-                if (funGetFrameData === null)
-                {
-                    funGetFrameData = Module.cwrap('GetFrameData', 'number');
-                }
-
-                while (bOpenMode && bOpenStream)
-                {
-                    
-                    var ret = getFrameData(funGetFrameData);
-                    // 直到获取视频帧或数据不足为止
-                    if (PLAYM4_VIDEO_FRAME === ret || PLAYM4_NEED_MORE_DATA === ret)
-                    {
-                        break;
-                    }
-                }
-                break;
-
-            case "SetSecretKey":
-                var keyLen = eventData.nKeyLen;
-                var pKeyData = Module._malloc(keyLen);
-                if (pKeyData === null) {
-                    return;
-                }
-                var nKeySize = eventData.data.length
-                var bufData = stringToBytes (eventData.data);
-                var aKeyData = Module.HEAPU8.subarray(pKeyData, pKeyData + keyLen);
-                aKeyData.set(new Uint8Array(bufData));
-
-                res = Module._SetSecretKey(eventData.nKeyType, pKeyData, keyLen, nKeySize);
-                if (res !== PLAYM4_OK) {
-                    postMessage({'function': "SetSecretKey", 'errorCode': res});
-                    Module._free(pKeyData);
-                    pKeyData = null;
-                    return;
-                }
-
-                Module._free(pKeyData);
-                pKeyData = null;
-                break;
-
-            case "GetBMP":
-                var nBMPWidth = eventData.width;
-                var nBMPHeight = eventData.height;
-                var pYUVData = eventData.data;
-                var nYUVSize = nBMPWidth * nBMPHeight * 3 / 2;
-                var oBMPCropRect = eventData.rect;
-
-                var pDataYUV = Module._malloc(nYUVSize);
-                if (pDataYUV === null) {
-                    return;
-                }
-
-                Module.writeArrayToMemory(new Uint8Array(pYUVData, 0, nYUVSize), pDataYUV);
-
-                // 分配BMP空间
-                var nBmpSize = nBMPWidth * nBMPHeight * 4 + 60;
-                var pBmpData = Module._malloc(nBmpSize);
-                var pBmpSize = Module._malloc(4);
-                if (pBmpData === null || pBmpSize === null) {
-                    Module._free(pDataYUV);
-                    pDataYUV = null;
-
-                    if (pBmpData != null) {
-                        Module._free(pBmpData);
-                        pBmpData = null;
-                    }
-
-                    if (pBmpSize != null) {
-                        Module._free(pBmpSize);
-                        pBmpSize = null;
-                    }
-                    return;
-                }
-
-               //Module._memset(pBmpSize, nBmpSize, 4); // 防止bmp截图出现输入数据过大的错误码
-                Module.setValue(pBmpSize, nBmpSize, "i32"); 
-                res = Module._GetBMP(pDataYUV, nYUVSize, pBmpData, pBmpSize,
-                    oBMPCropRect.left, oBMPCropRect.top, oBMPCropRect.right, oBMPCropRect.bottom);
-                if (res !== PLAYM4_OK) {
-                    postMessage({'function': "GetBMP", 'errorCode': res});
-                    Module._free(pDataYUV);
-                    pDataYUV = null;
-                    Module._free(pBmpData);
-                    pBmpData = null;
-                    Module._free(pBmpSize);
-                    pBmpSize = null;
-                    return;
-                }
-
-                // 获取BMP图片大小
-                var nBmpDataSize = Module.getValue(pBmpSize, "i32");
-
-                // 获取BMP图片数据
-                var aBmpData = new Uint8Array(nBmpDataSize);
-                aBmpData.set(Module.HEAPU8.subarray(pBmpData, pBmpData + nBmpDataSize));
-
-                postMessage({'function': "GetBMP", 'data': aBmpData, 'errorCode': res}, [aBmpData.buffer]);
-                aBmpData=null;
-                if (pDataYUV != null) {
-                    Module._free(pDataYUV);
-                    pDataYUV = null;
-                }
-                if (pBmpData != null) {
-                    Module._free(pBmpData);
-                    pBmpData = null;
-                }
-                if (pBmpSize != null) {
-                    Module._free(pBmpSize);
-                    pBmpSize = null;
-                }
-                break;
-
-            case "GetJPEG":
-                var nJpegWidth = eventData.width;
-                var nJpegHeight = eventData.height;
-                var pYUVData1 = eventData.data;
-                var nYUVSize1 = nJpegWidth * nJpegHeight * 3 / 2;
-                var oJpegCropRect = eventData.rect;
-
-                var pDataYUV1 = Module._malloc(nYUVSize1);
-                if (pDataYUV1 === null) {
-                    return;
-                }
-
-                Module.writeArrayToMemory(new Uint8Array(pYUVData1, 0, nYUVSize1), pDataYUV1);
-
-                // 分配JPEG空间
-                var pJpegData = Module._malloc(nYUVSize1);
-                var pJpegSize = Module._malloc(4);
-                if (pJpegData === null || pJpegSize === null) {
-                    if (pJpegData != null) {
-                        Module._free(pJpegData);
-                        pJpegData = null;
-                    }
-
-                    if (pJpegSize != null) {
-                        Module._free(pJpegSize);
-                        pJpegSize = null;
-                    }
-
-                    if (pDataYUV1 != null) {
-                        Module._free(pDataYUV1);
-                        pDataYUV1 = null;
-                    }
-                    return;
-                }
-
-                Module.setValue(pJpegSize, nJpegWidth * nJpegHeight * 2, "i32");    // JPEG抓图,输入缓冲长度不小于当前帧YUV大小
-
-                res = Module._GetJPEG(pDataYUV1, nYUVSize1, pJpegData, pJpegSize,
-                    oJpegCropRect.left, oJpegCropRect.top, oJpegCropRect.right, oJpegCropRect.bottom);
-                if (res !== PLAYM4_OK) {
-                    postMessage({'function': "GetJPEG", 'errorCode': res});
-                    if (pJpegData != null) {
-                        Module._free(pJpegData);
-                        pJpegData = null;
-                    }
-
-                    if (pJpegSize != null) {
-                        Module._free(pJpegSize);
-                        pJpegSize = null;
-                    }
-
-                    if (pDataYUV1 != null) {
-                        Module._free(pDataYUV1);
-                        pDataYUV1 = null;
-                    }
-                    return;
-                }
-
-                // 获取JPEG图片大小
-                var nJpegSize = Module.getValue(pJpegSize, "i32");
-
-                // 获取JPEG图片数据
-                var aJpegData = new Uint8Array(nJpegSize);
-                aJpegData.set(Module.HEAPU8.subarray(pJpegData, pJpegData + nJpegSize));
-
-                postMessage({'function': "GetJPEG", 'data': aJpegData, 'errorCode': res}, [aJpegData.buffer]);
-
-                nJpegSize = null;
-                aJpegData = null;
-
-                if (pDataYUV1 != null) {
-                    Module._free(pDataYUV1);
-                    pDataYUV1 = null;
-                }
-                if (pJpegData != null) {
-                    Module._free(pJpegData);
-                    pJpegData = null;
-                }
-                if (pJpegSize != null) {
-                    Module._free(pJpegSize);
-                    pJpegSize = null;
-                }
-                break;
-
-            case "SetDecodeFrameType":
-                var nFrameType = eventData.data;
-                res = Module._SetDecodeFrameType(nFrameType);
-                if (res !== PLAYM4_OK) {
-                    postMessage({'function': "SetDecodeFrameType", 'errorCode': res});
-                    return;
-                }
-                break;
-
-            case "DisplayRegion":
-                var nRegionNum = eventData.nRegionNum;
-                var srcRect = eventData.srcRect;
-                var hDestWnd = eventData.hDestWnd;
-                var bEnable = eventData.bEnable;
-
-                res = Module._SetDisplayRegion(nRegionNum, srcRect, hDestWnd, bEnable);
-                if (res !== PLAYM4_OK) {
-                    postMessage({'function': "DisplayRegion", 'errorCode': res});
-                    return;
-                }
-                break;
-
-            case "CloseStream":
-                res = Module._CloseStream();
-                if (res !== PLAYM4_OK) {
-                    postMessage({'function': "CloseStream", 'errorCode': res});
-                    return;
-                }
-                break;
-
-            case "SetIFrameDecInterval":
-                Module._SetIFrameDecInterval(eventData.data);
-                break;
-			case "SetLostFrameMode":
-			    Module._SetLostFrameMode(eventData.data);
-				break;
-			
-                /*******************************************worker音频编码相关接口实现**********************************************************/
-            case "CreateAudEncode":
-			
-                res = Module._CreateAudEncode(eventData.encodertype);
-                
-                postMessage({'function':"CreateAudEncode",'errorCode':res});
-                break;
-            case "SetAudEncodeParam":
-                
-                res = Module._SetAudEncodeParam(eventData.samplerate, eventData.channel, eventData.bitrate, eventData.bitwidth);
-			
-                postMessage({'function':"SetAudEncodeParam",'errorCode':res});
-                break;
-            case "DestroyAudEncode":
-               
-                res = Module._DestroyAudEncode();
-                
-                postMessage({'function':"DestroyAudEncode",'errorCode':res});
-                break;
-            case "InputAudEncodeData":
-			    if(bWorkerPrintLog)
-				{
-					console.log("<<<Worker: 20200113 DecodeWorker-InputAudEncodeData 1");
-				}
-                
-                var iLen = eventData.dataSize;
-                if(iLen > 0)
-                {
-                    
-                    var pAudInputData = Module._malloc(iLen);
-                    if (pAudInputData === null)
-                    {
-                        return;
-                    }
-                    var audinputData = new Uint8Array(eventData.data);
-                    Module.writeArrayToMemory(audinputData, pAudInputData);
-                    audinputData = null;
-                    res = Module._InputAudEncodeData(pAudInputData, iLen);
-					if(bWorkerPrintLog)
-					{
-						console.log("<<<Worker: 20200113 DecodeWorker-InputAudEncodeData 2 res:"+res);
-					}
-                    
-                    if(res == PLAYM4_OK)  //接口返回成功,表明已编码好一帧音频数据
-                    {
-                        
-                        if (funGetAudFrameData === null)
-                        {
-                            funGetAudFrameData = Module.cwrap('GetAudFrameData', 'number');
-                        }
-                        if(bWorkerPrintLog)
-						{
-							console.log("<<<Worker: 20200113 DecodeWorker-InputAudEncodeData 2-1 succ");
-						}
-                        //调用C++ GetAudFrameData
-                        var ret = getAudFrameData(funGetAudFrameData);
-                    }
-                    Module._free(pAudInputData);
-                    pAudInputData = null;
-                }
-                break;
-            default:
-                break;
-        }
-    };
-
-    function getOSDTime(oFrameInfo) {
-        var iYear = oFrameInfo.year;
-        var iMonth = oFrameInfo.month;
-        var iDay = oFrameInfo.day;
-        var iHour = oFrameInfo.hour;
-        var iMinute = oFrameInfo.minute;
-        var iSecond = oFrameInfo.second;
-
-        if (iMonth < 10) {
-            iMonth = "0" + iMonth;
-        }
-        if (iDay < 10) {
-            iDay = "0" + iDay;
-        }
-        if (iHour < 10) {
-            iHour = "0" + iHour;
-        }
-        if (iMinute < 10) {
-            iMinute = "0" + iMinute;
-        }
-        if (iSecond < 10) {
-            iSecond = "0" + iSecond;
-        }
-
-        return iYear + "-" + iMonth + "-" + iDay + " " + iHour + ":" + iMinute + ":" + iSecond;
-    }
-
-    function getAudFrameData(fun)
-    {
-		if(bWorkerPrintLog)
-		{
-			console.log("<<<Worker: DecodeWorker-getAudFrameData 1");
-		}
-    
-        var res = fun(); // 调用C++GetAudFrameData函数
-        if(res === PLAYM4_OK)
-        {
-            var oFrameInfo = Module._GetAudFrameInfo();
-            var iSize = oFrameInfo.frameSize;
-            if (0 === iSize)
-            {
-                return null;
-            }
-
-            var pEncodeAud = Module._GetAudFrameBuffer();
-            if(pEncodeAud == null)
-            {
-                return null;
-            }
-            var aEncodeAudData = new Uint8Array(iSize);
-            aEncodeAudData.set(Module.HEAPU8.subarray(pEncodeAud, pEncodeAud + iSize));
-			if(bWorkerPrintLog)
-			{
-				console.log("<<<Worker: DecodeWorker-getAudFrameData 2");
-			}
-            
-            //获取到音频编码帧数据通过worker返回
-            postMessage({'function':"GetAudEncodeData",'data':aEncodeAudData.buffer,'dataSize':iSize, 'errorCode': res});
-        }
-        else
-        {
-            postMessage({'function':"GetAudEncodeData",'data':null,'dataSize':-1, 'errorCode': res});
-        }
-        oFrameInfo=null;
-        pEncodeAud=null;
-        aEncodeAudData=null;
-        return res;
-    }
-
-    // 获取帧数据
-    function getFrameData(fun)
-    {
-    // function getFrameData() {
-        // 获取帧数据
-        // var res = Module._GetFrameData();
-        var res = fun();
-        if(bWorkerPrintLog)
-        {
-            console.log("<<<Worker: getFrameData Result:"+res);
-        }
-
-        if (res === PLAYM4_OK)
-        {
-            var oFrameInfo = Module._GetFrameInfo();
-            switch (oFrameInfo.frameType)
-            {
-                case AUDIO_TYPE:
-                    var iSize = oFrameInfo.frameSize;
-                    if (0 === iSize)
-                    {
-                        return -1;
-                    }
-                    var pPCM = Module._GetFrameBuffer();
-                    // var audioBuf = new ArrayBuffer(iSize);
-                    var aPCMData = new Uint8Array(iSize);
-                    aPCMData.set(Module.HEAPU8.subarray(pPCM, pPCM + iSize));
-                    if(bWorkerPrintLog)
-                    {
-                        console.log("<<<Worker: audio media Info: nSise:"+ oFrameInfo.frameSize+",nSampleRate:"+oFrameInfo.samplesPerSec+',channel:'+oFrameInfo.channels+',bitsPerSample:'+oFrameInfo.bitsPerSample);
-                    }
-                    postMessage({
-                        'function': "GetFrameData", 'type': "audioType", 'data': aPCMData.buffer,
-                        'frameInfo': oFrameInfo, 'errorCode': res
-                    }, [aPCMData.buffer]);
-
-                    oFrameInfo = null;
-                    pPCM = null;
-                    aPCMData = null;
-                    return PLAYM4_AUDIO_FRAME;
-
-                case VIDEO_TYPE:
-                    var szOSDTime = getOSDTime(oFrameInfo);
-
-                    var iWidth = oFrameInfo.width;
-                    var iHeight = oFrameInfo.height;
-
-                    var iYUVSize = iWidth * iHeight * 3 / 2;
-                    if (0 === iYUVSize)
-                    {
-                        return -1;
-                    }
-
-                    var pYUV = Module._GetFrameBuffer();
-
-                    // 图像数据渲染后压回,若从主码流切到子码流,存在数组大小与图像大小不匹配现象
-                    var aYUVData = new Uint8Array(iYUVSize);
-                    aYUVData.set(Module.HEAPU8.subarray(pYUV, pYUV + iYUVSize));
-                    if(bWorkerPrintLog)
-                    {
-                        console.log("<<<Worker: InputData-getFrameData Video: Width:"+ oFrameInfo.width+",Height:"+oFrameInfo.height+",timeStamp:"+oFrameInfo.timeStamp);
-                    }
-
-                    postMessage({
-                      'function': "GetFrameData", 'type': "videoType", 'data': aYUVData.buffer,
-                   'dataLen': aYUVData.length,'osd': szOSDTime, 'frameInfo': oFrameInfo, 'errorCode': res
-                    }, [aYUVData.buffer]);
-
-                    oFrameInfo = null;
-                    pYUV = null;
-                    aYUVData = null;
-                    return PLAYM4_VIDEO_FRAME;
-
-                case PRIVT_TYPE:
-                    postMessage({
-                        'function': "GetFrameData", 'type': "", 'data': null,
-                        'dataLen': -1, 'osd': 0, 'frameInfo': null, 'errorCode': PLAYM4_SYS_NOT_SUPPORT
-                    });
-                    return PLAYM4_SYS_NOT_SUPPORT;
-
-                default:
-                    postMessage({
-                        'function': "GetFrameData", 'type': "", 'data': null,
-                        'dataLen': -1, 'osd': 0, 'frameInfo': null, 'errorCode': PLAYM4_SYS_NOT_SUPPORT
-                    });
-                    return PLAYM4_SYS_NOT_SUPPORT;
-            }
-        }
-        else {
-            //解码失败返回裸数据
-            if(PLAYM4_DECODE_ERROR===res)
-            {
-                var rawInfo=Module._GetRawDataInfo();
-                var pRawData = Module._GetRawDataBuffer();
-                var aRawData = new Uint8Array(rawInfo.isize);
-                aRawData.set(Module.HEAPU8.subarray(pRawData, pRawData + rawInfo.isize));
-                postMessage({
-                    'function': "GetRawData", 'type': "", 'data':aRawData.buffer,
-                    'rawDataLen': rawInfo.isize, 'osd': 0, 'frameInfo': null, 'errorCode': res
-                });
-                rawInfo=null;
-                pRawData=null;
-                aRawData=null;
-            }
-            //定位返回的错误
-            if(PLAYM4_FIRST_FRAME_NOT_ICURRENT===res|| PLAYM4_ITYPE_DECODE_ERROR===res)
-            {
-                postMessage({
-                    'function': "GetFrameData", 'type': "", 'data': null,
-                    'dataLen': -1, 'osd': 0, 'frameInfo': null, 'errorCode': res
-                });
-            }
-            //需要更多数据
-            if (PLAYM4_NEED_MORE_DATA === res || PLAYM4_SYS_NOT_SUPPORT === res || PLAYM4_NOT_KEYFRAME === res){
-                postMessage({
-                    'function': "GetFrameData", 'type': "", 'data': null,
-                    'dataLen': -1, 'osd': 0, 'frameInfo': null, 'errorCode': res
-                });
-            }
-            return res;
-        }
-    }
-
-    // 开始计算时间
-    function startTime() {
-        return new Date().getTime();
-    }
-
-    // 结束计算时间
-    function endTime() {
-        return new Date().getTime();
-    }
-
-    // 字母字符串转byte数组
-    function stringToBytes ( str ) {
-        var ch, st, re = [];
-        for (var i = 0; i < str.length; i++ ) {
-            ch = str.charCodeAt(i);  // get char
-            st = [];                 // set up "stack"
-            do {
-                st.push( ch & 0xFF );  // push byte to stack
-                ch = ch >> 8;          // shift value down by 1 byte
-            }
-            while ( ch );
-            // add stack contents to result
-            // done because chars have "wrong" endianness
-            re = re.concat( st.reverse() );
-        }
-        // return an array of bytes
-        return re;
-    }
-})();

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
src/plugins/hkws/playctrl1/Decoder.js


+ 0 - 396
src/plugins/hkws/playctrl1/SuperRender_10.js

@@ -1,396 +0,0 @@
-"use strict";
- //顶点着色器
-//attribute修饰符用于声明由浏览器(javascript)传输给顶点着色器的变量值;
-// vertexPos即我们定义的顶点坐标;
-// gl_Position是一个内建的传出变量。
-var vertexYUVShader = [
-    'attribute vec4 vertexPos;',
-    'attribute vec2 texturePos;',
-    'varying vec2 textureCoord;',
-
-    'void main()',
-    '{',
-        'gl_Position = vertexPos;',
-        'textureCoord = texturePos;',
-    '}'
-    ].join('\n');
-    //像素着色器(yuv->rgb)
-var fragmentYUVShader = [
-    'precision highp float;',
-    'varying highp vec2 textureCoord;',
-    'uniform sampler2D ySampler;',
-    'uniform sampler2D uSampler;',
-    'uniform sampler2D vSampler;',
-    'const mat4 YUV2RGB = mat4',
-    '(',
-        '1.1643828125, 0, 1.59602734375, -.87078515625,',
-        '1.1643828125, -.39176171875, -.81296875, .52959375,',
-        '1.1643828125, 2.017234375, 0, -1.081390625,',
-        '0, 0, 0, 1',
-    ');',
-  
-    'void main(void) {',
-        'highp float y = texture2D(ySampler,  textureCoord).r;',
-        'highp float u = texture2D(uSampler,  textureCoord).r;',
-        'highp float v = texture2D(vSampler,  textureCoord).r;',
-        'gl_FragColor = vec4(y, u, v, 1) * YUV2RGB;',
-    '}'
-    ].join('\n');
-
-(function (root, factory) {
-    root.SuperRender = factory();
-}(this, function () {
-    
-    function RenderManager(canvas) {
-
-        this.canvasElement = document.getElementById(canvas);
-
-        this.initContextGL();
-
-        if(this.contextGL) {
-            this.YUVProgram = this.initProgram(vertexYUVShader, fragmentYUVShader);
-            this.initBuffers();
-            this.initTextures();
-        }
-    };
-
-    /**
-     * 初始化WebGL上下文
-     */
-    RenderManager.prototype.initContextGL = function() {
-        
-        var canvas = this.canvasElement;
-
-        var gl = null;
-
-        try {
-            gl = canvas.getContext("webgl") || canvas.getContext("experimental-webgl");
-        } catch (e) {
-            gl = null;
-        }
-
-        if(!gl || typeof gl.getParameter !== "function") {
-            gl = null;
-        }
-
-        this.contextGL = gl;
-
-        console.log("WebGL1.0");
-    };
-
-    /**
-     * 初始化着色器程序
-     * @param vertexShaderScript    顶点着色器脚本
-     * @param fragmentShaderScript  片段着色器脚本
-     */
-    RenderManager.prototype.initProgram = function(vertexShaderScript, fragmentShaderScript) {
-        
-        var gl = this.contextGL;
-        
-        var vertexShader = gl.createShader(gl.VERTEX_SHADER); //创建定点着色器
-        gl.shaderSource(vertexShader, vertexShaderScript);
-        gl.compileShader(vertexShader);
-        if(!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS)) {
-            console.log('Vertex shader failed to compile: ' + gl.getShaderInfoLog(vertexShader));
-        }
-
-        var fragmentShader = gl.createShader(gl.FRAGMENT_SHADER);
-        gl.shaderSource(fragmentShader, fragmentShaderScript);
-        gl.compileShader(fragmentShader);
-        if(!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) {
-            console.log('Fragment shader failed to compile: ' + gl.getShaderInfoLog(fragmentShader));
-        }
-
-        var program = gl.createProgram();
-        gl.attachShader(program, vertexShader);
-        gl.attachShader(program, fragmentShader);
-        gl.linkProgram(program);
-        if(!gl.getProgramParameter(program, gl.LINK_STATUS)) {
-            console.log('Program failed to compile: ' + gl.getProgramInfoLog(program));
-        }
-        
-        gl.deleteShader(vertexShader);
-        gl.deleteShader(fragmentShader);
-
-        return program;
-    };
-
-    /**
-     * 初始化数据缓存
-     */
-    RenderManager.prototype.initBuffers = function() {
-        
-        var gl = this.contextGL;
-    
-        var vertexPosBuffer = gl.createBuffer();
-        gl.bindBuffer(gl.ARRAY_BUFFER, vertexPosBuffer);
-        gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([1, 1, -1, 1, 1, -1, -1, -1]), gl.STATIC_DRAW);
-        gl.bindBuffer(gl.ARRAY_BUFFER, null);
-
-        var texturePosBuffer = gl.createBuffer();
-        gl.bindBuffer(gl.ARRAY_BUFFER, texturePosBuffer);
-        gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([1, 0, 0, 0, 1, 1, 0, 1]), gl.DYNAMIC_DRAW);
-        gl.bindBuffer(gl.ARRAY_BUFFER, null);
-
-        this.vertexPosBuffer  = vertexPosBuffer;
-        this.texturePosBuffer = texturePosBuffer;
-    };
-
-    /**
-     * 创建纹理
-     */
-    RenderManager.prototype.initTexture = function() {
-
-        var gl = this.contextGL;
-
-        var textureRef = gl.createTexture();
-        gl.bindTexture(gl.TEXTURE_2D, textureRef);
-        gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
-        gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
-        gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
-        gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
-        gl.bindTexture(gl.TEXTURE_2D, null);
-
-        return textureRef;
-    };
-
-    /**
-     * 初始化YUV纹理
-     */
-    RenderManager.prototype.initTextures = function() {
-        
-        var gl = this.contextGL;
-        
-        var program = this.YUVProgram;
-        gl.useProgram(program);
-        
-        var yTextureRef = this.initTexture();
-        var ySamplerRef = gl.getUniformLocation(program, 'ySampler');
-        gl.uniform1i(ySamplerRef, 0);
-        this.yTextureRef = yTextureRef;
-
-        var uTextureRef = this.initTexture();
-        var uSamplerRef = gl.getUniformLocation(program, 'uSampler');
-        gl.uniform1i(uSamplerRef, 1);
-        this.uTextureRef = uTextureRef;
-
-        var vTextureRef = this.initTexture();
-        var vSamplerRef = gl.getUniformLocation(program, 'vSampler');
-        gl.uniform1i(vSamplerRef, 2);
-        this.vTextureRef = vTextureRef;
-        
-        gl.useProgram(null);
-    };
-
-    /**
-     * 显示帧数据
-     * @param nWidth    宽度
-     * @param nHeight   高度
-     * @param nHeight   帧数据
-     */
-    RenderManager.prototype.SR_DisplayFrameData = function(nWidth, nHeight, pData,dWidth,dHeight) {
-
-        if(nWidth <= 0 || nHeight <= 0)
-        {
-            return;
-        }
-
-        var gl = this.contextGL;
-
-        if(null == pData)
-        {
-            gl.clearColor(0.0, 0.0, 0.0, 0.0);
-            gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
-            return;
-        }
-
-        var canvas = this.canvasElement;
-
-        this.nWindowWidth = canvas.width;
-        this.nWindowHeight = canvas.height;
-        
-        var nWindowWidth = this.nWindowWidth;
-        var nWindowHeight = this.nWindowHeight;
-
-        gl.clearColor(0.8, 0.8, 1.0, 1.0);
-        gl.clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT);
-
-        gl.viewport(0, 0, nWindowWidth, nWindowHeight);
-
-        this.updateFrameData(nWidth, nHeight, pData,dWidth,dHeight);
-
-        var program = this.YUVProgram;
-        gl.useProgram(program);
-
-        var vertexPosBuffer = this.vertexPosBuffer;
-        gl.bindBuffer(gl.ARRAY_BUFFER, vertexPosBuffer);
-        var vertexPosRef = gl.getAttribLocation(program, 'vertexPos');
-        gl.enableVertexAttribArray(vertexPosRef);
-        gl.vertexAttribPointer(vertexPosRef, 2, gl.FLOAT, false, 0, 0);
-        gl.bindBuffer(gl.ARRAY_BUFFER, null);
-
-        var texturePosBuffer = this.texturePosBuffer;
-        gl.bindBuffer(gl.ARRAY_BUFFER, texturePosBuffer);
-        var texturePosRef = gl.getAttribLocation(program, 'texturePos');
-        gl.enableVertexAttribArray(texturePosRef);
-        gl.vertexAttribPointer(texturePosRef, 2, gl.FLOAT, false, 0, 0);
-        gl.bindBuffer(gl.ARRAY_BUFFER, null);
-
-        gl.drawArrays(gl.TRIANGLE_STRIP, 0, 4); 
-
-        gl.disableVertexAttribArray(vertexPosRef);
-        gl.disableVertexAttribArray(texturePosRef);
-
-        gl.useProgram(null);
-    };
-
-    /**
-     * 上传YUV数据到纹理
-     * @param nWidth    宽度
-     * @param nHeight   高度
-     * @param nHeight   帧数据
-     */
-    RenderManager.prototype.updateFrameData = function(width, height, data,dWidth,dHeight) {
-
-        var gl = this.contextGL;
-
-        var yTextureRef = this.yTextureRef;
-        var uTextureRef = this.uTextureRef;
-        var vTextureRef = this.vTextureRef;
-
-        var i420Data = data;
-        // debugger;
-		if(width == dWidth && height == dHeight)
-		{
-			var yDataLength = width * height;
-			var yData = i420Data.subarray(0, yDataLength);
-			gl.activeTexture(gl.TEXTURE0);
-			gl.bindTexture(gl.TEXTURE_2D, yTextureRef);
-			gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, width, height, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, yData);
-			
-			var cbDataLength = width/2 * height/2;
-			var cbData = i420Data.subarray(width*height, width*height + cbDataLength);
-			gl.activeTexture(gl.TEXTURE1);
-			gl.bindTexture(gl.TEXTURE_2D, uTextureRef);
-			gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, width/2, height/2, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, cbData);
-			
-			var crDataLength = cbDataLength;
-			var crData = i420Data.subarray(width*height + width*height/4, width*height + width*height/4 + crDataLength);
-			gl.activeTexture(gl.TEXTURE2);
-			gl.bindTexture(gl.TEXTURE_2D, vTextureRef);
-			gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, width/2, height/2, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, crData);
-			
-		}
-        else
-		{
-			 // //裁剪宽
-			var yDataLength = dWidth * dHeight;
-			var yData=new Uint8Array(yDataLength) ;
-			for(var i=0;i<dHeight;i++)
-			{
-				//var ySonData=new Uint8Array(dWidth) ;
-				var ySonData = i420Data.subarray(i*width, i*width+dWidth);
-				for (var j = 0; j < dWidth; j++) {
-					yData[i*dWidth + j] = ySonData[j];
-				}
-			}
-			gl.activeTexture(gl.TEXTURE0);
-			gl.bindTexture(gl.TEXTURE_2D, yTextureRef);
-			gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, dWidth, dHeight, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, yData);
-			yData=null;
-			ySonData=null;
-
-			var cbDataLength = dWidth/2 * dHeight/2;
-			var cbData =new Uint8Array(cbDataLength);
-			//var cbSonData=new Uint8Array(dWidth/2) ;
-			for(var i=0;i<dHeight/2;i++)
-			{
-				 var cbSonData = i420Data.subarray(width*height+i*width/2, width*height+i*width/2+dWidth/2);
-				for (var j = 0; j < dWidth/2; j++) {
-					cbData[i*dWidth/2 + j] = cbSonData[j];
-				}
-			}
-			gl.activeTexture(gl.TEXTURE1);
-			gl.bindTexture(gl.TEXTURE_2D, uTextureRef);
-			gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, dWidth/2, dHeight/2, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, cbData);
-			cbData=null;
-			cbSonData=null;
-
-			var crDataLength = cbDataLength;
-			var crData = new Uint8Array(crDataLength);
-			for(var i=0;i<dHeight/2;i++)
-			{
-				var crSonData = i420Data.subarray(width*height*5/4+i*width/2, width*height*5/4+i*width/2+dWidth/2);
-				for (var j = 0; j < dWidth/2; j++) {
-					crData[i*dWidth/2 + j] = crSonData[j];
-				}
-			}
-			gl.activeTexture(gl.TEXTURE2);
-			gl.bindTexture(gl.TEXTURE_2D, vTextureRef);
-			gl.texImage2D(gl.TEXTURE_2D, 0, gl.LUMINANCE, dWidth/2, dHeight/2, 0, gl.LUMINANCE, gl.UNSIGNED_BYTE, crData);
-			crData=null;
-			crSonData=null;
-		}
-       
-    };
-
-    /**
-     * 设置显示区域
-     * @param stDisplayRect    显示区域
-     */
-    RenderManager.prototype.SR_SetDisplayRect = function(stDisplayRect) {
-
-        var gl = this.contextGL;
-
-        var nWindowWidth = this.nWindowWidth;
-        var nWindowHeight = this.nWindowHeight;
-        
-        var texturePosValues = null;
-        
-        if(stDisplayRect && nWindowWidth > 0 && nWindowHeight > 0) {
-            var fLeft = stDisplayRect.left / nWindowWidth;
-            var fTop = stDisplayRect.top / nWindowHeight;
-            var fRight = stDisplayRect.right / nWindowWidth;
-            var fBottom = stDisplayRect.bottom / nWindowHeight;
-
-            texturePosValues = new Float32Array([fRight, fTop, fLeft, fTop, fRight, fBottom, fLeft, fBottom]);
-        }
-        else {
-            texturePosValues = new Float32Array([1, 0, 0, 0, 1, 1, 0, 1]);
-        }
-
-        var texturePosBuffer = this.texturePosBuffer;
-
-        gl.bindBuffer(gl.ARRAY_BUFFER, texturePosBuffer);
-        gl.bufferSubData(gl.ARRAY_BUFFER, 0, texturePosValues);
-        gl.bindBuffer(gl.ARRAY_BUFFER, null);
-    };
-
-    /**
-     * 释放显示资源
-     */
-    RenderManager.prototype.SR_Destroy = function() {
-
-        var gl = this.contextGL;
-        
-        var YUVProgram = this.YUVProgram;
-        gl.deleteProgram(YUVProgram);
-
-        var vertexPosBuffer = this.vertexPosBuffer;
-        var texturePosBuffer = this.texturePosBuffer;
-        
-        gl.deleteBuffer(vertexPosBuffer);
-        gl.deleteBuffer(texturePosBuffer);
-
-        var yTextureRef = this.yTextureRef;
-        var uTextureRef = this.uTextureRef;
-        var vTextureRef = this.vTextureRef;
-        gl.deleteTexture(yTextureRef);
-        gl.deleteTexture(uTextureRef);
-        gl.deleteTexture(vTextureRef);
-		//gl.getExtension('WEBGL_lose_context').loseContext();
-    };
-
-    return RenderManager;
-
-}));

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 8
src/plugins/hkws/playctrl2/Decoder.js


BIN
src/plugins/hkws/playctrl2/Decoder.wasm


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
src/plugins/hkws/playctrl2/Decoder.worker.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 8
src/plugins/hkws/playctrl3/Decoder.js


BIN
src/plugins/hkws/playctrl3/Decoder.wasm


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
src/plugins/hkws/playctrl3/Decoder.worker.js


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 2907
src/plugins/hkws/talk/AudioInterCom.js


BIN
src/plugins/hkws/talk/AudioInterCom.wasm


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 3492
src/plugins/hkws/talkW/AudioInterCom.js


BIN
src/plugins/hkws/talkW/AudioInterCom.wasm


+ 0 - 234
src/plugins/hkws/talkW/AudioInterCom.worker.js

@@ -1,234 +0,0 @@
-/**
- * @license
- * Copyright 2015 The Emscripten Authors
- * SPDX-License-Identifier: MIT
- */
-
-// Pthread Web Worker startup routine:
-// This is the entry point file that is loaded first by each Web Worker
-// that executes pthreads on the Emscripten application.
-
-// Thread-local:
-var initializedJS = false; // Guard variable for one-time init of the JS state (currently only embind types registration)
-
-var Module = {};
-
-function assert(condition, text) {
-  if (!condition) abort('Assertion failed: ' + text);
-}
-
-function threadPrintErr() {
-  var text = Array.prototype.slice.call(arguments).join(' ');
-  console.error(text);
-}
-function threadAlert() {
-  var text = Array.prototype.slice.call(arguments).join(' ');
-  postMessage({cmd: 'alert', text: text, threadId: Module['_pthread_self']()});
-}
-// We don't need out() for now, but may need to add it if we want to use it
-// here. Or, if this code all moves into the main JS, that problem will go
-// away. (For now, adding it here increases code size for no benefit.)
-var out = function() {
-  throw 'out() is not defined in worker.js.';
-}
-var err = threadPrintErr;
-this.alert = threadAlert;
-
-Module['instantiateWasm'] = function(info, receiveInstance) {
-  // Instantiate from the module posted from the main thread.
-  // We can just use sync instantiation in the worker.
-  var instance = new WebAssembly.Instance(Module['wasmModule'], info);
-  // TODO: Due to Closure regression https://github.com/google/closure-compiler/issues/3193,
-  // the above line no longer optimizes out down to the following line.
-  // When the regression is fixed, we can remove this if/else.
-  receiveInstance(instance);
-  // We don't need the module anymore; new threads will be spawned from the main thread.
-  Module['wasmModule'] = null;
-  return instance.exports;
-};
-
-function moduleLoaded() {
-}
-
-this.onmessage = function(e) {
-  try {
-    if (e.data.cmd === 'load') { // Preload command that is called once per worker to parse and load the Emscripten code.
-
-      // Module and memory were sent from main thread
-      Module['wasmModule'] = e.data.wasmModule;
-
-      Module['wasmMemory'] = e.data.wasmMemory;
-
-      Module['buffer'] = Module['wasmMemory'].buffer;
-
-      Module['ENVIRONMENT_IS_PTHREAD'] = true;
-
-      if (typeof e.data.urlOrBlob === 'string') {
-        importScripts(e.data.urlOrBlob);
-      } else {
-        var objectUrl = URL.createObjectURL(e.data.urlOrBlob);
-        importScripts(objectUrl);
-        URL.revokeObjectURL(objectUrl);
-      }
-      JSAudioInterComModule(Module).then(function (instance) {
-        Module = instance;
-        moduleLoaded();
-      });
-
-    } else if (e.data.cmd === 'objectTransfer') {
-      Module['PThread'].receiveObjectTransfer(e.data);
-    } else if (e.data.cmd === 'run') {
-      // This worker was idle, and now should start executing its pthread entry
-      // point.
-      // performance.now() is specced to return a wallclock time in msecs since
-      // that Web Worker/main thread launched. However for pthreads this can
-      // cause subtle problems in emscripten_get_now() as this essentially
-      // would measure time from pthread_create(), meaning that the clocks
-      // between each threads would be wildly out of sync. Therefore sync all
-      // pthreads to the clock on the main browser thread, so that different
-      // threads see a somewhat coherent clock across each of them
-      // (+/- 0.1msecs in testing).
-      Module['__performance_now_clock_drift'] = performance.now() - e.data.time;
-
-      // Pass the thread address inside the asm.js scope to store it for fast access that avoids the need for a FFI out.
-      Module['__emscripten_thread_init'](e.data.threadInfoStruct, /*isMainBrowserThread=*/0, /*isMainRuntimeThread=*/0);
-
-      // Establish the stack frame for this thread in global scope
-      // The stack grows downwards
-      var max = e.data.stackBase;
-      var top = e.data.stackBase + e.data.stackSize;
-      assert(e.data.threadInfoStruct);
-      assert(top != 0);
-      assert(max != 0);
-      assert(top > max);
-      // Also call inside JS module to set up the stack frame for this pthread in JS module scope
-      Module['establishStackSpace'](top, max);
-      Module['PThread'].receiveObjectTransfer(e.data);
-      Module['PThread'].threadInit();
-
-      // Embind must initialize itself on all threads, as it generates support JS.
-      // We only do this once per worker since they get reused
-      if (!initializedJS) {
-        Module['___embind_register_native_and_builtin_types']();
-        initializedJS = true;
-      }
-
-      try {
-        // pthread entry points are always of signature 'void *ThreadMain(void *arg)'
-        // Native codebases sometimes spawn threads with other thread entry point signatures,
-        // such as void ThreadMain(void *arg), void *ThreadMain(), or void ThreadMain().
-        // That is not acceptable per C/C++ specification, but x86 compiler ABI extensions
-        // enable that to work. If you find the following line to crash, either change the signature
-        // to "proper" void *ThreadMain(void *arg) form, or try linking with the Emscripten linker
-        // flag -s EMULATE_FUNCTION_POINTER_CASTS=1 to add in emulation for this x86 ABI extension.
-        var result = Module['invokeEntryPoint'](e.data.start_routine, e.data.arg);
-
-        Module['checkStackCookie']();
-        if (Module['keepRuntimeAlive']()) {
-          Module['PThread'].setExitStatus(result);
-        } else {
-          Module['PThread'].threadExit(result);
-        }
-      } catch(ex) {
-        if (ex === 'Canceled!') {
-          Module['PThread'].threadCancel();
-        } else if (ex != 'unwind') {
-          // FIXME(sbc): Figure out if this is still needed or useful.  Its not
-          // clear to me how this check could ever fail.  In order to get into
-          // this try/catch block at all we have already called bunch of
-          // functions on `Module`.. why is this one special?
-          if (typeof(Module['_emscripten_futex_wake']) !== "function") {
-            err("Thread Initialisation failed.");
-            throw ex;
-          }
-          // ExitStatus not present in MINIMAL_RUNTIME
-          if (ex instanceof Module['ExitStatus']) {
-            if (Module['keepRuntimeAlive']()) {
-              err('Pthread 0x' + Module['_pthread_self']().toString(16) + ' called exit(), staying alive due to noExitRuntime.');
-            } else {
-              err('Pthread 0x' + Module['_pthread_self']().toString(16) + ' called exit(), calling threadExit.');
-              Module['PThread'].threadExit(ex.status);
-            }
-          }
-          else
-          {
-            Module['PThread'].threadExit(-2);
-            throw ex;
-          }
-        } else {
-          // else e == 'unwind', and we should fall through here and keep the pthread alive for asynchronous events.
-          err('Pthread 0x' + Module['_pthread_self']().toString(16) + ' completed its pthread main entry point with an unwind, keeping the pthread worker alive for asynchronous operation.');
-        }
-      }
-    } else if (e.data.cmd === 'cancel') { // Main thread is asking for a pthread_cancel() on this thread.
-      if (Module['_pthread_self']()) {
-        Module['PThread'].threadCancel();
-      }
-    } else if (e.data.target === 'setimmediate') {
-      // no-op
-    } else if (e.data.cmd === 'processThreadQueue') {
-      if (Module['_pthread_self']()) { // If this thread is actually running?
-        Module['_emscripten_current_thread_process_queued_calls']();
-      }
-    } else {
-      err('worker.js received unknown command ' + e.data.cmd);
-      err(e.data);
-    }
-  } catch(ex) {
-    err('worker.js onmessage() captured an uncaught exception: ' + ex);
-    if (ex && ex.stack) err(ex.stack);
-    throw ex;
-  }
-};
-
-// Node.js support
-if (typeof process === 'object' && typeof process.versions === 'object' && typeof process.versions.node === 'string') {
-  // Create as web-worker-like an environment as we can.
-  self = {
-    location: {
-      href: __filename
-    }
-  };
-
-  var onmessage = this.onmessage;
-
-  var nodeWorkerThreads = require('worker_threads');
-
-  global.Worker = nodeWorkerThreads.Worker;
-
-  var parentPort = nodeWorkerThreads.parentPort;
-
-  parentPort.on('message', function(data) {
-    onmessage({ data: data });
-  });
-
-  var nodeFS = require('fs');
-
-  var nodeRead = function(filename) {
-    return nodeFS.readFileSync(filename, 'utf8');
-  };
-
-  function globalEval(x) {
-    global.require = require;
-    global.Module = Module;
-    eval.call(null, x);
-  }
-
-  importScripts = function(f) {
-    globalEval(nodeRead(f));
-  };
-
-  postMessage = function(msg) {
-    parentPort.postMessage(msg);
-  };
-
-  if (typeof performance === 'undefined') {
-    performance = {
-      now: function() {
-        return Date.now();
-      }
-    };
-  }
-}
-
-

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 2733
src/plugins/hkws/transform/libSystemTransform.js


BIN
src/plugins/hkws/transform/libSystemTransform.wasm


+ 0 - 120
src/plugins/hkws/transform/systemTransform-worker.js

@@ -1,120 +0,0 @@
-importScripts('libSystemTransform.js');
-    const RECORDRTP = 0;  //录制一份未经过转封装的码流原始数据,用于定位问题
-    let dataType = 1;
-    
-    // 转封装库回调函数
-    self.STCallBack = function (fileIndex,indexLen, data, dataLen)
-    {
-        //stFrameInfo的类型见DETAIL_FRAME_INFO
-		let stFrameInfo = Module._GetDetialFrameInfo();
-        let nIsMp4Index = stFrameInfo.nIsMp4Index;
-		//console.log("FrameType is " , stFrameInfo);	
-		//console.log("nIsMp4Index is " + nIsMp4Index);
-        //debugger
-        var pData = null;
-        pData = new Uint8Array(dataLen);
-        pData.set(Module.HEAPU8.subarray(data, data + dataLen));
-        if (dataType === 1) {
-            if (pData[0] == 0x49 && pData[1] == 0x4d && pData[2] == 0x4b && pData[3] == 0x48) {//码流头丢掉
-                return;
-            }
-            postMessage({type: "outputData", buf: pData, dType: 1});
-            dataType = 2;
-        } else {
-            if (nIsMp4Index) {
-                postMessage({type: "outputData", buf: pData, dType: 6}); //6:索引类型
-            } else {
-                postMessage({type: "outputData", buf: pData, dType: 2}); //2:码流
-            }
-        }
-
-        //stFrameInfo的类型见DETAIL_FRAME_INFO
-		//let stFrameInfo = Module._GetDetialFrameInfo();
-		//let stFrameType = stFrameInfo.nFrameType;
-		//let nFrameNum = stFrameInfo.nFrameNum;
-		//let nTimeStamp = stFrameInfo.nTimeStamp;
-        //let nIsMp4Index = stFrameInfo.nIsMp4Index;
-		
-		//console.log("FrameType is " + stFrameType);	
-		//console.log("nIsMp4Index is " + nIsMp4Index);	
-        
-    }
-
-    // self.Module = { memoryInitializerRequest: loadMemInitFile(), TOTAL_MEMORY: 128*1024*1024 };
-    // importScripts('SystemTransform.js');
-
-    self.Module['onRuntimeInitialized'] = function (){
-        postMessage({type: "loaded"});
-    }
-    onmessage = function (e) {
-        var data = e.data;
-        if ("create" === data.type) {
-            if (RECORDRTP) {
-                postMessage({type: "created"});
-                postMessage({type: "outputData", buf: data.buf, dType: 1});
-            } else {
-                var iHeadLen = data.len;
-                var pHead = Module._malloc(iHeadLen);
-    
-                self.writeArrayToMemory(new Uint8Array(data.buf), pHead);
-                var iTransType = data.packType;//目标格式
-                var iRet = Module._CreatHandle(pHead, iTransType, 4096);
-                if (iRet != 0) {
-                    console.log("_CreatHandle failed!" + iRet);
-                } else {
-                    iRet = Module._SysTransRegisterDataCallBack();			
-                    if(iRet != 0)
-                    {
-                        console.log("_SysTransRegisterDataCallBack Failed:" + iRet);
-                    }
-
-                    iRet = Module._SysTransStart(null, null);
-                    if(iRet != 0)
-                    {
-                        console.log("_SysTransStart Failed:" + iRet);
-                    }
-                    postMessage({type: "created"});
-                }
-            }
-
-        } else if ("inputData" === data.type) {
-            if (RECORDRTP) {
-                var aFileData = new Uint8Array(data.buf);  // 拷贝一份
-                var iBufferLen = aFileData.length;
-                var szBufferLen = iBufferLen.toString(16);
-                if (szBufferLen.length === 1) {
-                    szBufferLen = "000" + szBufferLen;
-                } else if (szBufferLen.length === 2) {
-                    szBufferLen = "00" + szBufferLen;
-                } else if (szBufferLen.length === 3) {
-                    szBufferLen = "0" + szBufferLen;
-                }
-                var aData = [0, 0, parseInt(szBufferLen.substring(0, 2), 16), parseInt(szBufferLen.substring(2, 4), 16)];
-                for(var iIndex = 0, iDataLength = aFileData.length; iIndex < iDataLength; iIndex++) {
-                    aData[iIndex + 4] = aFileData[iIndex]
-                }
-                var dataUint8 = new Uint8Array(aData);
-                postMessage({type: "outputData", buf: dataUint8.buffer, dType: 2});
-            } else {
-                let pInputDataBuf = Module._malloc(data.len);
-                var idataLen = data.len;
-                self.writeArrayToMemory(new Uint8Array(data.buf), pInputDataBuf);
-                    // 输入数据,每次最多2m
-                let pp = Module._SysTransInputData(0, pInputDataBuf, idataLen);
-                if(pp != 0) {
-                    //console.log("InputData Failed:" + pp);
-                }
-                Module._free(pInputDataBuf);
-            }
-        } else if ("release" === data.type) {
-            var iRet = Module._SysTransStop();
-            if (iRet != 0) {
-                console.log("_SysTransStop Failed:", iRet);
-            }
-            Module._SysTransRelease();
-            if (iRet != 0) {
-                console.log("_SysTransRelease Failed:", iRet);
-            }
-            close();
-        }
-    };

Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
src/plugins/jessibuca/decoder.js


BIN
src/plugins/jessibuca/decoder.wasm


Файлын зөрүү хэтэрхий том тул дарагдсан байна
+ 0 - 0
src/plugins/jessibuca/jessibuca.js


+ 3 - 1
src/utils/request.js

@@ -66,7 +66,7 @@ function req(method, url, params) {
       } else if (response.data.code == 203) {
         window.location.replace('/login')
       } else {
-        message.error(response.data.msg)
+        throw new Error(response.data.msg)
       }
     }).catch((err) => {
       message.error(err.message)
@@ -87,6 +87,8 @@ function formReq(method, url, params) {
     }).then((response) => {
       if (response.data.code == 200) {
         resolve(response.data.data)
+      } else {
+        throw new Error(response.data.msg)
       }
     }).catch((err) => {
       message.error(err.message)

+ 6 - 3
src/views/LoginView.vue

@@ -45,8 +45,10 @@ export default {
   created() {
   },
   mounted() {
-    this.GVerify = new GVerify("verify-code")
     clearInterval(this.countdownInterval);
+    this.$nextTick(()=>{
+      this.GVerify = new GVerify("verify-code")
+    })
   },
   methods: {
     callback(key) {
@@ -106,7 +108,8 @@ export default {
           app.$store.userStore().setUserInfo(res.userInfo);
           app.$message.success("登录成功")
           app.$router.push("/")
-        }).catch(err=>{
+        }).finally(()=>{
+            console.log(123)
           app.loginLoading = false;
         })
       } else {
@@ -152,7 +155,7 @@ export default {
               </a-form-model-item>
               <a-form-model-item>
                 <a-input v-model="form.code" placeholder="请输入验证码" :maxLength="4" @keyup.enter.native="handleSubmit"
-                         style="width: 200px;height: 32px;display: inline-block;vertical-align: middle;letter-spacing: 2px"/>
+                         style="width: 200px;height: 32px;display: inline-block;vertical-align: middle;letter-spacing: 2px;-ms-ime-mode:disabled"/>
                 <div id="verify-code" title="点击更换"></div>
               </a-form-model-item>
               <a-form-model-item>

+ 1 - 1
vite.config.js

@@ -17,7 +17,7 @@ import antdvFix from 'vite-plugin-antdv-fix';
 
 export default defineConfig(({ command }) => {
   return {
-    base: './',
+    base: '/',
     assetsInclude: ['assets/'],
     css: {
       preprocessorOptions: {

Энэ ялгаанд хэт олон файл өөрчлөгдсөн тул зарим файлыг харуулаагүй болно