Browse Source

提交

Jyt
wangshuai 2 years ago
parent
commit
86bad78fe4
66 changed files with 615 additions and 1234 deletions
  1. +0
    -80
      components/yz-audio/audioBg.js
  2. +0
    -119
      components/yz-audio/index.scss
  3. BIN
      components/yz-audio/static/backimg.png
  4. BIN
      components/yz-audio/static/bg.png
  5. BIN
      components/yz-audio/static/bg_act.png
  6. BIN
      components/yz-audio/static/loading.png
  7. BIN
      components/yz-audio/static/loading2.png
  8. BIN
      components/yz-audio/static/pausebtn.png
  9. BIN
      components/yz-audio/static/playbtn.png
  10. +0
    -430
      components/yz-audio/yz-audio.vue
  11. +588
    -593
      pages.json
  12. +24
    -9
      pages/center/Piabodata/index.vue
  13. +1
    -1
      pages/mine/equipment/index.vue
  14. +1
    -1
      pages/mine/registerForm.vue
  15. BIN
      static/images/Customer.png
  16. BIN
      static/images/Shutdown.png
  17. BIN
      static/images/Thtapedrive1.png
  18. BIN
      static/images/Thtapedrive2.png
  19. BIN
      static/images/Underimg.png
  20. BIN
      static/images/add.png
  21. BIN
      static/images/allimg.png
  22. BIN
      static/images/arrow-right.png
  23. BIN
      static/images/arrow.png
  24. BIN
      static/images/audioinfo1.png
  25. BIN
      static/images/audioinfo2.png
  26. BIN
      static/images/audioinfo3.png
  27. BIN
      static/images/audioinfo4.png
  28. BIN
      static/images/backTop.png
  29. BIN
      static/images/battery.png
  30. BIN
      static/images/biaoqianya.png
  31. BIN
      static/images/bishang.png
  32. BIN
      static/images/building.png
  33. BIN
      static/images/cus1.png
  34. BIN
      static/images/cus2.png
  35. BIN
      static/images/cus3.png
  36. BIN
      static/images/cus4.png
  37. BIN
      static/images/cus5.png
  38. BIN
      static/images/cus6.png
  39. BIN
      static/images/qushi.png
  40. BIN
      static/images/ranking1.png
  41. BIN
      static/images/ranking2.png
  42. BIN
      static/images/ranking3.png
  43. BIN
      static/images/rankingguwen.png
  44. BIN
      static/images/rate-checked.png
  45. BIN
      static/images/rate-nocheck.png
  46. BIN
      static/images/reg.png
  47. BIN
      static/images/reverse.png
  48. BIN
      static/images/right.png
  49. BIN
      static/images/righttochoose.png
  50. BIN
      static/images/screen.png
  51. BIN
      static/images/scuess.png
  52. BIN
      static/images/search.png
  53. BIN
      static/images/setting.png
  54. BIN
      static/images/signal0.png
  55. BIN
      static/images/signal1.png
  56. BIN
      static/images/signal2.png
  57. BIN
      static/images/signal3.png
  58. BIN
      static/images/signal4.png
  59. BIN
      static/images/signal5.png
  60. BIN
      static/images/studyhot.png
  61. BIN
      static/images/testimg.png
  62. BIN
      static/images/time.png
  63. BIN
      static/images/tuandui.png
  64. BIN
      static/images/yinghu.png
  65. BIN
      static/images/zhengkai.png
  66. +1
    -1
      utils/domain.js

+ 0
- 80
components/yz-audio/audioBg.js View File

@@ -1,80 +0,0 @@
import {
mapState,
mapActions,
mapMutations
} from 'vuex'
export const audios = {
data() {
return {}
},

computed: {
...mapState(['bgAudioMannager', 'isBgPlay']),
},

methods: {
setAudio(obj) {
this.bgAudioMannager.title = '录音音频';
this.bgAudioMannager.src = obj.src
this.bgAudioMannager.startTime = obj.currentTime
},

setAudioFunc() {
this.bgAudioMannager.onCanplay(() => {
console.log('可以播放');
});
this.bgAudioMannager.onStop(() => {
console.log('停止播放');
});
this.bgAudioMannager.onPause(() => {
console.log('暂停播放');
// 设置当前暂停的视频播放位置
// this.seek(this.bgAudioMannager.currentTime)
// this.play()
});
this.bgAudioMannager.onEnded(() => {
console.log('自然播放结束事件');
});
this.bgAudioMannager.onError((res) => {
console.log(res.errMsg);
console.log(res.errCode);
});

this.bgAudioMannager.onTimeUpdate(() => {
this.duration = this.bgAudioMannager.duration;
this.currentTime = this.bgAudioMannager.currentTime;
this.$emit('timeUpdate', {
duration: this.bgAudioMannager.duration,
currentTime: this.bgAudioMannager.currentTime
})
});
},
// 背景音频暂停
audioPause() {
this.bgAudioMannager.pause()
},
// 背景音频播放
audioPlay() {
this.pause()
this.bgAudioMannager.play()
},
//背景音频指定秒数播放
audioSeek(t) {
this.bgAudioMannager.seek(t)
},
// 停止背景音频播放
stopAduio() {
if (this.bgAudioMannager != null) {
this.bgAudioMannager.pause()
if (this.bgAudioMannager.src != '') {
this.bgAudioMannager.src = ''
}
}
}
}
}

+ 0
- 119
components/yz-audio/index.scss View File

@@ -1,119 +0,0 @@
@mixin textoverflow() {
display: -webkit-box;
overflow: hidden;
text-overflow: ellipsis;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
}
@keyframes rowup {
0% {
-webkit-transform: translate(-50%, -50%) rotate(0deg);
transform-origin: center center;
}

100% {
-webkit-transform: translate(-50%, -50%) rotate(360deg);
transform-origin: center center;
}
}
.imt-audio{
position:relative;
width: 100%;
display: flex;
box-sizing: border-box;
background: #fff;
overflow: hidden;
.top {
width: 140rpx;
position: relative;
}

.audio-wrapper {
display: flex;
flex-direction: column;
flex: 1;
color: #fff;
margin-left: 20rpx;
}
.slidebox {
display: flex;
justify-content: space-between;
width: 96%;
}
/deep/ .uni-slider-tap-area {
padding: 0;
}
/deep/ .uni-slider-wrapper {
min-height: 0;
}
/deep/ .uni-slider-handle-wrapper {
height: 6px;
}
.audio-slider {
padding-top: 10rpx;
margin-left: 150rpx;
position: absolute;
bottom: 40rpx;
width: 75vw;
left: 0;
padding: 0;
}

// .cover {
// width: 120rpx;
// height: 120rpx;
// box-shadow: 0px 0px 10px 0px rgba(0, 0, 0, 0.2);
// position: absolute;
// top: 50%;
// left: 50%;
// transform: translate(-50%, -50%);
// animation-fill-mode: forwards;
// -webkit-animation-fill-mode: forwards;
// }

.play {
width: 48rpx;
height: 48rpx;
z-index: 99;
background: rgba(0, 0, 0, 0.4);
border-radius: 50%;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
&.loading{
width: 48rpx;
height: 48rpx;
animation: rotating_theme3 2s linear infinite;
}
}
}

@keyframes rotating {
0% {
transform: rotateZ(0deg)
}
100% {
transform: rotateZ(360deg)
}
}
@keyframes rotating_theme3 {
0% {
transform: translate(-50%, -50%) rotateZ(0deg)
}
100% {
transform: translate(-50%, -50%) rotateZ(360deg)
}
}

.hItem
{
margin-left: 16rpx;
}

.extrButton
{
font-size: 36rpx;
}

BIN
components/yz-audio/static/backimg.png View File

Before After
Width: 64  |  Height: 16  |  Size: 594 B

BIN
components/yz-audio/static/bg.png View File

Before After
Width: 64  |  Height: 64  |  Size: 1.8 KiB

BIN
components/yz-audio/static/bg_act.png View File

Before After
Width: 64  |  Height: 64  |  Size: 1.9 KiB

BIN
components/yz-audio/static/loading.png View File

Before After
Width: 48  |  Height: 48  |  Size: 331 B

BIN
components/yz-audio/static/loading2.png View File

Before After
Width: 48  |  Height: 48  |  Size: 333 B

BIN
components/yz-audio/static/pausebtn.png View File

Before After
Width: 130  |  Height: 123  |  Size: 189 B

BIN
components/yz-audio/static/playbtn.png View File

Before After
Width: 130  |  Height: 130  |  Size: 274 B

+ 0
- 430
components/yz-audio/yz-audio.vue View File

@@ -1,430 +0,0 @@
<template>
<view class="imt-audio">
<template>
<view class="top">
<view class="audio-control-wrapper">
<image :src="require('./static/loading.png')" v-if="playState=='loading'" class="play loading">
</image>
<template v-else>
<image :src="require('./static/playbtn.png')" alt="play" @click="play" class="play"
v-if="playState=='pause'"></image>
<image :src="require('./static/pausebtn.png')" alt="pause" @click="pause" class="play" v-else>
</image>
</template>
</view>
</view>
<view class="audio-wrapper">
<view class="audio-flex">
<text>
{{formatSeconds(currentTime)}}
</text>
<slider class="audio-slider" block-size="12" :max="duration" :value="currentTime"
@change="sliderChange" @changing="sliderChanging"></slider>
<text>
{{formatSeconds(duration)}}
</text>
</view>

<view class="slidebox" @click="showTip">
<slot name="extraCtrls">
<image class="slide-img" :src="require('./static/backimg.png')" mode=""></image>
</slot>
</view>
<!-- 后台播放按钮区域 -->
<view class="popup" v-if="show" :class="{close: closeing}" @click="checkPlayer">
<template v-if="!isBgPlay">
<image :src="require('./static/bg.png')" mode=""></image>
</template>
<template v-else>
<image :src="require('./static/bg_act.png')" mode=""></image>
</template>
<text :class="{'act-test': isBgPlay}">后台播放</text>
</view>
</view>
<!--video在ios中不能完全隐藏,否则无法播放-->
<video id="videoPlayer" :autoplay="false" class="videoPlayer" :src="src" :muted="false"
style="width: 10rpx;height:10rpx;" @play="playerOnPlay" @pause="playerOnPause" @ended="playerOnEnded"
@timeupdate="playerOnTimeupdate" @waiting="playerOnWaiting" @error="playerOnError"></video>
</template>
</view>
</template>

<script>
/*
createInnerAudioContext()是audio组件的内部实现,不能熄屏播放、不能后台播放、不能倍速播放。
getBackgroundAudioManager() 可以熄屏播放、后台播放,不能倍速播放。缺点是响应速度很慢,无法实现精细、及时的进度控制,而且可能被别的程序占用。
因此这里只能用video来实现,video能倍速播放,不能熄屏播放、不能后台播放。而且避免了用createInnerAudioContext()实现的跳转到别的页面,还在播放的问题
因此应用程序可以在需要后台播放的时候(需要用户操作触发),再暂停这个控件的播放,然后自己用getBackgroundAudioManager实现后台播放
*/

import Vue from 'vue';
import {
mapMutations
} from 'vuex'
import {
audios
} from './audioBg.js'
export default {
mixins: [audios],
props: {
nowFileTime: {
type: [String, Number],
default: 0
},
},

watch: {
nowFileTime(oValue, nValue) {
this.duration = nValue
}
},

data() {
return {
src: '', //
poster: "",
name: "...",
singer: "...",
duration: 0,
currentTime: 0,
playState: "pause", //"loading"/"playing"/"pause"
isSliderChanging: false,
isFirst: false, // 是否阻止第一次赋值
show: false, // 控制展示用的
closeing: false, // 默认关闭
};
},
created() {
// 自定义组件,需要传递第二个参数为this,否则后续的pause等操作不起作用
this.videoCtx = uni.createVideoContext("videoPlayer", this);
this.createAudio()
this.setAudioFunc()
},

mounted() {
if (this.isBgPlay) {
this.backAudio()
}
},

methods: {
...mapMutations(['createAudio', 'stopAduio']),
setSrc(value) {
console.log(this, ' 我打印this')
this.src = value;
},

setPoster(value) {
this.poster = value;
},
setName(value) {
this.name = value;
},
setSinger(value) {
this.singer = value;
},

playerOnPlay(e) {
this.playState = "playing";
console.log('playerOnPlay', e)
this.$emit("play");
},
playerOnPause(e) {
this.playState = "pause";
console.log('playerOnPause', e)
this.$emit("pause");
},
playerOnEnded(e) {
this.playState = "pause";
console.log('playerOnEnded', e)
this.$emit("ended");
},

playerOnTimeupdate(e) {
if (this.isFirst) this.playState = "playing";
this.isFirst = true
this.duration = e.detail.duration;
this.currentTime = e.detail.currentTime;
this.$emit("timeUpdate", e.detail);
},

playerOnWaiting(e) {
this.playState = "loading";
console.log('playerOnWaiting', e)
},
playerOnError(e) {
console.log('playerOnError', e)
this.playState = "pause";
this.$emit("error", e);
},
formatSeconds(seconds) {
var result = typeof seconds === "string" ? parseFloat(seconds) : seconds;
if (isNaN(result)) return "";
let h = Math.floor(result / 3600) < 10 ?
"0" + Math.floor(result / 3600) :
Math.floor(result / 3600);
let m = Math.floor((result / 60) % 60) < 10 ?
"0" + Math.floor((result / 60) % 60) :
Math.floor((result / 60) % 60) + h * 60;
let s = Math.floor(result % 60) < 10 ?
"0" + Math.floor(result % 60) :
Math.floor(result % 60);
return `${h}:${m}:${s}`;
},
stop() {
this.videoCtx.stop();
},
seek(t) {
this.videoCtx.seek(t);
},
play() {
// if (this.videoCtx.currentTime != this.videoCtx.currentTime) {
// this.seek(this.currentTime)
// }
console.log('触发方法play')
this.videoCtx.play(); //在有的H5浏览器里,如果play不是用户触发的,则play()会报错
// 暂停后台播放
this.stopAduio()
},
pause() {
console.log('触发方法pause')
this.videoCtx.pause();
},
playbackRate(value) {
this.videoCtx.playbackRate(value);
//playbackRate不能在play之前或者之后立即调用,否则只有很少几率会成功
},
sliderChange(e) {
this.isSliderChanging = false;
//要通过e.detail.value获取,否则如果通过dom去读取slider的value
//就会存在滚动条拖不动的情况
// this.videoCtx.seek(e.detail.value);
let type = 'audio'
if (this.bgAudioMannager.paused === false) {
type = 'bgAudio'
}
this.$emit('sliderChangeComplate', { ...e, isType: type })
},
sliderChanging(e) {
this.isSliderChanging = true;
console.log(e, '当前正在改变')
},
// 关闭后台播放按钮
closeTip() {
this.closeing = false
setTimeout(() => {
this.show = false
}, 250)
},
// 展示后台播放按钮
showTip() {
this.show = true
setTimeout(() => {
this.closeing = true
}, 50)
},

// 点击后台播放音频事件
backAudio() {
this.pause()
let obj = {
src: this.src,
currentTime: this.currentTime
}
this.setAudio(obj)
},

// 切换播放源
checkPlayer() {
this.closeTip()
this.$u.debounce(() => {
if (this.bgAudioMannager.paused === false) {
this.$store.commit('setIsBgPlay', false)
this.play()
this.stopAduio()
} else {
this.$store.commit('setIsBgPlay', true)
this.backAudio()
}
})
}
},
}
</script>

<style lang="scss">
// @import './index.scss';
@mixin textoverflow() {
display: -webkit-box;
overflow: hidden;
text-overflow: ellipsis;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
}

@keyframes rowup {
0% {
-webkit-transform: translate(-50%, -50%) rotate(0deg);
transform-origin: center center;
}

100% {
-webkit-transform: translate(-50%, -50%) rotate(360deg);
transform-origin: center center;
}
}

.imt-audio {
position: relative;
width: 100%;
height: 81rpx;
display: flex;
box-sizing: border-box;
background: #fff;

.top {
position: relative;
width: 100rpx;
}

.audio-wrapper {
position: relative;
padding: 0 20rpx;
display: flex;
flex: 1;
color: #fff;
.popup {
position: absolute;
right: 32rpx;
top: -122rpx;
z-index: 100;
width: 136rpx;
height: 122rpx;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
background: #fff;
border: 1rpx solid #E0E0E0;
transition: all 0.25s linear;
opacity: 0;
image {
width: 32rpx;
height: 32rpx;
}
text {
margin-top: 10rpx;
color: #333;
font-size: 24rpx;
}
.act-test {
color: #2671E2;
}
}
.close {
opacity: 1;
}
}

.slidebox {
flex-shrink: 0;
display: flex;
align-items: center;
.slide-img {
width: 32rpx;
height: 8rpx;
}
}

/deep/ .uni-slider-tap-area {
padding: 0;
}

/deep/ .uni-slider-wrapper {
min-height: 0;
}

/deep/ .uni-slider-handle-wrapper {
height: 6px;
}

.audio-slider {
flex-grow: 1;
}

.play {
width: 48rpx;
height: 48rpx;
z-index: 99;
background: rgba(0, 0, 0, 0.4);
border-radius: 50%;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);

&.loading {
width: 48rpx;
height: 48rpx;
animation: rotating_theme3 2s linear infinite;
}
}
}

.audio-flex {
padding: 0 32rpx 0 0;
flex-grow: 1;
display: flex;
align-items: center;

text {
color: #70798D;
}
}

@keyframes rotating {
0% {
transform: rotateZ(0deg)
}

100% {
transform: rotateZ(360deg)
}
}

@keyframes rotating_theme3 {
0% {
transform: translate(-50%, -50%) rotateZ(0deg)
}

100% {
transform: translate(-50%, -50%) rotateZ(360deg)
}
}

.hItem {
margin-left: 16rpx;
}

.extrButton {
font-size: 36rpx;
}

.videoPlayer {
position: absolute;
left: 0;
bottom: 0;
z-index: -1;
}
</style>

+ 588
- 593
pages.json
File diff suppressed because it is too large
View File


+ 24
- 9
pages/center/Piabodata/index.vue View File

@@ -84,8 +84,14 @@
</view> --> </view> -->
<view class="danwei">{{danwei}} </view> <view class="danwei">{{danwei}} </view>
<view class="uchaserbox"> <view class="uchaserbox">
<qiun-data-charts type="line" :chartData="lineOptsect" :opts="optionsobj" background="none"
:ontouch="true" canvasId="wangxiaohuaerlingilingwuyiba1" :canvas2d="true" />
<template v-if="danwei == '单位(%)'">
<qiun-data-charts type="line" :chartData="lineOptsect" :opts="lineOpts" background="none"
:ontouch="true" canvasId="wangxiaohuaerlingilingwuyiba1" :canvas2d="true" />
</template>
<template v-else>
<qiun-data-charts type="line" :chartData="lineOptsect" background="none" :ontouch="true"
canvasId="wangxiaohuaerlingilingwuyiba1" :canvas2d="true" />
</template>
</view> </view>
</view> </view>


@@ -104,8 +110,8 @@
</view> </view>
<view class="danwei">单位(%)</view> <view class="danwei">单位(%)</view>
<view class="uchaserbox"> <view class="uchaserbox">
<qiun-data-charts type="line" :chartData="lineOptsect1" background="none" :ontouch="true"
canvasId="wangxiaohuaerlineryiliwuyibao" :canvas2d="true" />
<qiun-data-charts :opts="lineOpts" type="line" :chartData="lineOptsect1" background="none"
:ontouch="true" canvasId="wangxiaohuaerlineryiliwuyibao" :canvas2d="true" />
</view> </view>
</view> </view>
</view> </view>
@@ -130,7 +136,7 @@
</view> --> </view> -->
<view class="danwei">单位(%)</view> <view class="danwei">单位(%)</view>
<view class="uchaserbox"> <view class="uchaserbox">
<qiun-data-charts type="line" :opts="opts" :chartData="lineOptsect2" background="none"
<qiun-data-charts :opts="lineOpts" type="line" :chartData="lineOptsect2" background="none"
:ontouch="true" canvasId="wangxiaohuaerlingeryilingwuyibao" :canvas2d="true" /> :ontouch="true" canvasId="wangxiaohuaerlingeryilingwuyibao" :canvas2d="true" />
</view> </view>
</view> </view>
@@ -327,6 +333,15 @@
commonly6: false, commonly6: false,
}, },


lineOpts: {
yAxis: {
data: [{
max: 100,
min: 0,
}]
}
},

opts: { opts: {
yAxis: { yAxis: {
data: [{ data: [{
@@ -362,21 +377,21 @@
// 获取维度 // 获取维度
this.getindexZxl() this.getindexZxl()
}, },
onPullDownRefresh(){
onPullDownRefresh() {
// 获取员工 // 获取员工
this.getStaffList() this.getStaffList()
// 获取团队 // 获取团队
this.getSectionList() this.getSectionList()
// 获取团队是否显示权限 // 获取团队是否显示权限
// 获取简报 // 获取简报
this.getReport() this.getReport()
// 获取接待趋势 // 获取接待趋势
this.getRtrent() this.getRtrent()
// 获取维度 // 获取维度
this.getindexZxl() this.getindexZxl()
setTimeout(function () {
uni.stopPullDownRefresh();
setTimeout(function() {
uni.stopPullDownRefresh();
}, 1000); }, 1000);
}, },
methods: { methods: {


+ 1
- 1
pages/mine/equipment/index.vue View File

@@ -63,7 +63,7 @@
<view class="infobox2"> <view class="infobox2">
<view class="box2-zuo">待上传</view> <view class="box2-zuo">待上传</view>
<template v-if="item.fileCount && item.fileCount > 0"> <template v-if="item.fileCount && item.fileCount > 0">
<text class="stayupload">{{ item.fileCount }}条</text>
<text class="stayupload box2-you">{{ item.fileCount }}条</text>
</template> </template>
<template v-else> <template v-else>
<text class="box2-you">0</text> <text class="box2-you">0</text>


+ 1
- 1
pages/mine/registerForm.vue View File

@@ -15,7 +15,7 @@
</view> </view>
<view class="chented"> <view class="chented">
<view class="title"> <view class="title">
<view class="titletext">性别</view> <view class="titletext">性别</view>
<view class="titletext2 displayclick" style="display: flex;align-items: center;padding-left: 10rpx;"> <view class="titletext2 displayclick" style="display: flex;align-items: center;padding-left: 10rpx;">


BIN
static/images/Customer.png View File

Before After
Width: 72  |  Height: 72  |  Size: 4.4 KiB Width: 72  |  Height: 72  |  Size: 1.6 KiB

BIN
static/images/Shutdown.png View File

Before After
Width: 48  |  Height: 48  |  Size: 1.9 KiB Width: 48  |  Height: 48  |  Size: 676 B

BIN
static/images/Thtapedrive1.png View File

Before After
Width: 56  |  Height: 64  |  Size: 2.8 KiB Width: 56  |  Height: 64  |  Size: 968 B

BIN
static/images/Thtapedrive2.png View File

Before After
Width: 60  |  Height: 64  |  Size: 2.9 KiB Width: 60  |  Height: 64  |  Size: 1.0 KiB

BIN
static/images/Underimg.png View File

Before After
Width: 76  |  Height: 76  |  Size: 1014 B Width: 76  |  Height: 76  |  Size: 436 B

BIN
static/images/add.png View File

Before After
Width: 156  |  Height: 156  |  Size: 1.4 KiB Width: 156  |  Height: 156  |  Size: 1.1 KiB

BIN
static/images/allimg.png View File

Before After
Width: 80  |  Height: 80  |  Size: 1.5 KiB Width: 80  |  Height: 80  |  Size: 536 B

BIN
static/images/arrow-right.png View File

Before After
Width: 28  |  Height: 60  |  Size: 1019 B Width: 28  |  Height: 60  |  Size: 355 B

BIN
static/images/arrow.png View File

Before After
Width: 24  |  Height: 56  |  Size: 902 B Width: 24  |  Height: 56  |  Size: 250 B

BIN
static/images/audioinfo1.png View File

Before After
Width: 80  |  Height: 80  |  Size: 2.8 KiB Width: 80  |  Height: 80  |  Size: 994 B

BIN
static/images/audioinfo2.png View File

Before After
Width: 80  |  Height: 80  |  Size: 2.9 KiB Width: 80  |  Height: 80  |  Size: 1.0 KiB

BIN
static/images/audioinfo3.png View File

Before After
Width: 80  |  Height: 80  |  Size: 2.5 KiB Width: 80  |  Height: 80  |  Size: 934 B

BIN
static/images/audioinfo4.png View File

Before After
Width: 80  |  Height: 80  |  Size: 2.2 KiB Width: 80  |  Height: 80  |  Size: 832 B

BIN
static/images/backTop.png View File

Before After
Width: 52  |  Height: 68  |  Size: 1.2 KiB Width: 52  |  Height: 68  |  Size: 650 B

BIN
static/images/battery.png View File

Before After
Width: 88  |  Height: 52  |  Size: 913 B Width: 88  |  Height: 52  |  Size: 349 B

BIN
static/images/biaoqianya.png View File

Before After
Width: 1254  |  Height: 374  |  Size: 10 KiB Width: 1254  |  Height: 374  |  Size: 923 B

BIN
static/images/bishang.png View File

Before After
Width: 60  |  Height: 32  |  Size: 1.5 KiB Width: 60  |  Height: 32  |  Size: 650 B

BIN
static/images/building.png View File

Before After
Width: 88  |  Height: 88  |  Size: 2.3 KiB Width: 88  |  Height: 88  |  Size: 925 B

BIN
static/images/cus1.png View File

Before After
Width: 24  |  Height: 32  |  Size: 1.0 KiB Width: 24  |  Height: 32  |  Size: 684 B

BIN
static/images/cus2.png View File

Before After
Width: 22  |  Height: 32  |  Size: 394 B Width: 22  |  Height: 32  |  Size: 244 B

BIN
static/images/cus3.png View File

Before After
Width: 28  |  Height: 32  |  Size: 1.4 KiB Width: 28  |  Height: 32  |  Size: 596 B

BIN
static/images/cus4.png View File

Before After
Width: 32  |  Height: 32  |  Size: 1.6 KiB Width: 32  |  Height: 32  |  Size: 693 B

BIN
static/images/cus5.png View File

Before After
Width: 22  |  Height: 32  |  Size: 398 B Width: 22  |  Height: 32  |  Size: 218 B

BIN
static/images/cus6.png View File

Before After
Width: 30  |  Height: 32  |  Size: 1.5 KiB Width: 30  |  Height: 32  |  Size: 636 B

BIN
static/images/qushi.png View File

Before After
Width: 268  |  Height: 268  |  Size: 34 KiB Width: 268  |  Height: 268  |  Size: 9.1 KiB

BIN
static/images/ranking1.png View File

Before After
Width: 76  |  Height: 76  |  Size: 6.0 KiB Width: 76  |  Height: 76  |  Size: 2.5 KiB

BIN
static/images/ranking2.png View File

Before After
Width: 76  |  Height: 76  |  Size: 6.2 KiB Width: 76  |  Height: 76  |  Size: 2.7 KiB

BIN
static/images/ranking3.png View File

Before After
Width: 80  |  Height: 80  |  Size: 7.2 KiB Width: 80  |  Height: 80  |  Size: 3.0 KiB

BIN
static/images/rankingguwen.png View File

Before After
Width: 136  |  Height: 136  |  Size: 8.2 KiB Width: 136  |  Height: 136  |  Size: 2.5 KiB

BIN
static/images/rate-checked.png View File

Before After
Width: 56  |  Height: 56  |  Size: 1.5 KiB Width: 56  |  Height: 56  |  Size: 571 B

BIN
static/images/rate-nocheck.png View File

Before After
Width: 27  |  Height: 27  |  Size: 476 B Width: 27  |  Height: 27  |  Size: 349 B

BIN
static/images/reg.png View File

Before After
Width: 80  |  Height: 80  |  Size: 3.0 KiB Width: 80  |  Height: 80  |  Size: 1.1 KiB

BIN
static/images/reverse.png View File

Before After
Width: 268  |  Height: 268  |  Size: 31 KiB Width: 268  |  Height: 268  |  Size: 7.7 KiB

BIN
static/images/right.png View File

Before After
Width: 14  |  Height: 30  |  Size: 567 B Width: 14  |  Height: 30  |  Size: 241 B

BIN
static/images/righttochoose.png View File

Before After
Width: 36  |  Height: 48  |  Size: 1.1 KiB Width: 36  |  Height: 48  |  Size: 466 B

BIN
static/images/screen.png View File

Before After
Width: 40  |  Height: 40  |  Size: 1.2 KiB Width: 40  |  Height: 40  |  Size: 587 B

BIN
static/images/scuess.png View File

Before After
Width: 76  |  Height: 76  |  Size: 2.2 KiB Width: 76  |  Height: 76  |  Size: 708 B

BIN
static/images/search.png View File

Before After
Width: 52  |  Height: 60  |  Size: 2.2 KiB Width: 52  |  Height: 60  |  Size: 803 B

BIN
static/images/setting.png View File

Before After
Width: 72  |  Height: 72  |  Size: 3.7 KiB Width: 72  |  Height: 72  |  Size: 1.3 KiB

BIN
static/images/signal0.png View File

Before After
Width: 82  |  Height: 60  |  Size: 541 B Width: 82  |  Height: 60  |  Size: 265 B

BIN
static/images/signal1.png View File

Before After
Width: 82  |  Height: 60  |  Size: 672 B Width: 82  |  Height: 60  |  Size: 308 B

BIN
static/images/signal2.png View File

Before After
Width: 82  |  Height: 60  |  Size: 699 B Width: 82  |  Height: 60  |  Size: 312 B

BIN
static/images/signal3.png View File

Before After
Width: 82  |  Height: 60  |  Size: 702 B Width: 82  |  Height: 60  |  Size: 313 B

BIN
static/images/signal4.png View File

Before After
Width: 82  |  Height: 60  |  Size: 656 B Width: 82  |  Height: 60  |  Size: 324 B

BIN
static/images/signal5.png View File

Before After
Width: 82  |  Height: 60  |  Size: 562 B Width: 82  |  Height: 60  |  Size: 265 B

BIN
static/images/studyhot.png View File

Before After
Width: 36  |  Height: 36  |  Size: 1.3 KiB Width: 36  |  Height: 36  |  Size: 557 B

BIN
static/images/testimg.png View File

Before After
Width: 52  |  Height: 56  |  Size: 1.2 KiB Width: 52  |  Height: 56  |  Size: 547 B

BIN
static/images/time.png View File

Before After
Width: 60  |  Height: 60  |  Size: 2.6 KiB Width: 60  |  Height: 60  |  Size: 939 B

BIN
static/images/tuandui.png View File

Before After
Width: 268  |  Height: 268  |  Size: 31 KiB Width: 268  |  Height: 268  |  Size: 7.4 KiB

BIN
static/images/yinghu.png View File

Before After
Width: 268  |  Height: 268  |  Size: 33 KiB Width: 268  |  Height: 268  |  Size: 8.7 KiB

BIN
static/images/zhengkai.png View File

Before After
Width: 60  |  Height: 40  |  Size: 2.4 KiB Width: 60  |  Height: 40  |  Size: 867 B

+ 1
- 1
utils/domain.js View File

@@ -1,4 +1,4 @@
// const base = 'http://39.97.167.65' ;// 测试站
// const base = 'http://81.70.55.170:9090' ;// 测试站
// const base = 'http://8kdmng.natappfree.cc' ;// 佳豪 // const base = 'http://8kdmng.natappfree.cc' ;// 佳豪
// const base = 'http://192.168.31.134:9999' ;// 佳豪 // const base = 'http://192.168.31.134:9999' ;// 佳豪
// const base = 'http://192.168.31.86:9999' ;// 胜浩 // const base = 'http://192.168.31.86:9999' ;// 胜浩


Loading…
Cancel
Save