123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349 |
- <template>
- <view class="window">
- <!-- #ifndef H5 -->
- <view class="topLine" :style="{ height: topBar + 'px' }"></view>
- <!-- #endif -->
- <view class="nav row_align_center" id="nav">
- <li class="li_5" :class="['iconfont icon-zuojiantou back']" @click="gotoBack()"></li>
- <text class="title li_5">{{ title ? title : '' }}</text>
- <li class="iconfont icon-zuojiantou back hidden"></li>
- </view>
- <view class="row_align_center head" id="head">
- <!-- 日期下拉列表 -->
- <drop-down ref="caleDrop" @tap="changDrop(1)" @changeItem="changeTime" :list="timeArray" :contentTop="top"
- selectWidth="260rpx" contentLeft="0"></drop-down>
- <!-- 日历选择日期 -->
- <view v-if="showCalendar"
- :class="['dropdown-item__selected', listWidth != '150rpx' ? 'dropdown-item__right' : 'dropdown-item__left']"
- @click="openCalendar" class="calendar_drag">
- <view class="selected__name">{{ nowDate }}</view>
- <li class="iconfont icon-calendar" style="margin-left: 10rpx;"></li>
- </view>
- <!-- 公司区域下拉列表 -->
- <drop-down ref="companyDrop" @tap="changDrop(2)" @changeItem="changeLocation" :list="locationArray"
- :contentTop="top" contentRight="10" :selectWidth="showCalendar ? '200rpx' : '300rpx'" listWidth="75%">
- </drop-down>
- </view>
- <uni-calendar ref="calendar" :insert="false" :start-date="startDate" :end-date="endDate" :clearDate="false"
- @confirm="confirm">
- </uni-calendar>
- <!--滑动列表头-->
- <wuc-tab id="wuctab" :tab-list="tabList" :tabCur.sync="tabCur" tab-class="text-center text-white bg-blue"
- select-class="text-white"></wuc-tab>
- <!--主体内容-->
- <view class="data_body" :style="{ height: scrollHeight }">
- <view v-if="tabCur == 0">
- <wechat :scrollHeight="scrollHeight" />
- </view>
- <view v-else-if="tabCur == 1">
- <user-operate :scrollHeight="scrollHeight" />
- </view>
- <view v-else-if="tabCur == 2">
- <user-healthy :scrollHeight="scrollHeight" />
- </view>
- <view v-else-if="tabCur == 3">
- <user-server :scrollHeight="scrollHeight"></user-server>
- </view>
- </view>
- <!--水印-->
- <view class="water-mark-mask row_wrap" :style="{ height: scrollHeight }">
- <text class="container" v-for="(count, index) in 10" :key="index">{{ info.name }}</text>
- </view>
- </view>
- </template>
- <script>
- import Wechat from "../../components/data-center/wechat.vue"
- import UserOperate from "../../components/data-center/user-operate.vue"
- import UserHealthy from "../../components/data-center/user-healthy.vue"
- import UserServer from "../../components/data-center/user-server.vue"
- import WucTab from '../../components/wuc-tab/wuc-tab.vue'
- import DropDown from '../../components/drop-down/drop-down.vue'
- import UniCalendar from '../../components/uni-calendar/uni-calendar.vue'
- import Config from '../../static/js/config'
- import Common from "../../static/js/common"
- export default {
- components: {
- WucTab,
- DropDown,
- UniCalendar,
- Wechat,
- UserOperate,
- UserHealthy,
- UserServer,
- },
- data() {
- return {
- tabList: Config.TABLIST, //标签头
- timeArray: Config.TIMEARRAY, //时间数组
- info: '大便超人', //用户数据
- title: "数据报表中心", //标题
- showDataTime: "today", //选中的时间
- tabCur: 0, //标签头下标
- topBar: 17, //导航高
- top: '180', //下拉栏位置
- scrollHeight: "100%", //数据展示体高度
- nowDate: Common.getNowDate(), //现在日期
- endDate: Common.getNowDate(), //日历可选日期范围的结束时间
- startDate: Common.getPreMonth(Common.getNowDate()), //日历可选日期范围的开始时间,
- showCalendar: false,
- };
- },
- computed: {
- locationArray() {
- return [{
- value: "GDBJ-ENTRY-1",
- text: "天猫"
- }, {
- value: "GDBJ-ENTRY-201",
- text: "京东"
- }];
- }
- },
- methods: {
- gotoBack() {
- Common.navigateBack("/index/index");
- },
- changDrop(index) {
- if (index == 1 && this.$refs.companyDrop.showList) {
- this.$refs.companyDrop.closePopup()
- } else if (index == 2 && this.$refs.caleDrop.showList) {
- this.$refs.caleDrop.closePopup()
- }
- },
- // 打开日历
- openCalendar() {
- this.$refs.calendar.open();
- },
- // 日历选择日期
- confirm(e) {
- if (this.nowDate != e.fulldate || !this.showCalendar) {
- this.showCalendar = true;
- this.$refs.caleDrop.selectAuto();
- this.nowDate = e.fulldate;
- this.showDataTime = e.fulldate.replace(/-/g, "");
- Common.tipMsg("当前时间:" + this.showDataTime)
- }
- },
- //下拉选择时间
- changeTime(e) {
- if (e.value == "auto") {
- this.openCalendar();
- } else if (this.showDataTime != e.value) {
- this.showDataTime = e.value;
- this.showCalendar = false;
- Common.tipMsg("当前时间:" + this.showDataTime)
- }
- },
- changeLocation(e) {
- Common.tipMsg("当前选中平台:" + e.text)
- },
- //获取设备信息
- async getTelephoneInfo() {
- var telephoneInfo = await Common.getTelephoneInfo();
- let hasHeight = 0;
- if (telephoneInfo.top >= 40) {
- this.top = telephoneInfo.statusBarHeight * 2 + 150;
- this.topBar = telephoneInfo.statusBarHeight;
- }
- // 设置滚动高度
- const query = wx.createSelectorQuery();
- query.select('#nav').boundingClientRect();
- query.select('#head').boundingClientRect();
- query.select('#wuctab').boundingClientRect();
- query.exec(res => {
- res.map((item, index) => {
- hasHeight += item.height;
- })
- this.scrollHeight = (telephoneInfo.screenHeight - hasHeight - this.topBar) + 'px';
- })
- },
- getH5Info() {
- uni.getSystemInfo({
- success: e => {
- let hasHeight = 0;
- let element = wx.createSelectorQuery().in(this);
- element.select('#nav').boundingClientRect();
- element.select('#head').boundingClientRect();
- element.select('#wuctab').boundingClientRect();
- element.exec(res => {
- res.map((item, index) => {
- hasHeight += item.height;
- })
- this.scrollHeight = (e.screenHeight - hasHeight) + 'px';
- })
- },
- fail: (err) => {
- reject(err);
- }
- })
- }
- },
- onReady() {
- //#ifndef H5
- uni.showShareMenu();
- this.getTelephoneInfo();
- //#endif
- //#ifdef H5
- this.getH5Info();
- //#endif
- }
- };
- </script>
- <style lang="scss">
- page,
- body {
- margin: 0;
- padding: 0;
- width: 100%;
- height: 100%;
- }
- .li_5 {
- list-style-type: none;
- }
- .window {
- height: 100vh;
- overflow: hidden;
- .topLine {
- background-color: #40A2ED;
- width: 100%;
- }
- scroll-view {
- box-sizing: border-box;
- }
- .swiper {
- box-sizing: border-box;
- }
- .nav {
- background-image: url(http://photo.gdbjyy.cn/image/BCAI/top_bg.jpg);
- background-size: 100% 100%;
- .back {
- font-size: 54rpx;
- padding: 20rpx 14rpx 15rpx 14rpx;
- color: #fff;
- }
- .title {
- color: #fff;
- font-size: 30rpx;
- flex: 1;
- text-align: center;
- }
- .hidden {
- visibility: hidden;
- }
- }
- .head {
- padding: 0 16rpx 14rpx 16rpx;
- color: #fff;
- background-color: #40A2ED;
- justify-content: space-between;
- font-size: 26rpx !important;
- .calendar_drag {
- width: 340rpx;
- display: flex;
- justify-content: center;
- align-items: center;
- .calendar_name {
- margin-right: 10rpx;
- }
- .icon-calendar {
- font-size: 26rpx;
- margin-top: 4rpx;
- }
- }
- }
- .data_body {
- overflow: auto;
- text-align: center;
- color: #333333;
- background-repeat: repeat;
- background-color: #ffffff;
- position: relative;
- .item {
- padding: 0 20rpx;
- margin-bottom: 20rpx;
- .name {
- font-weight: 600;
- font-size: 36rpx;
- }
- .operate {
- view {
- padding: 5rpx 12rpx;
- color: #fff;
- }
- .bg-blue {
- background-color: #40A2ED;
- }
- .bg-yellow {
- background-color: #FFC300;
- }
- }
- .tip {
- margin-bottom: 30rpx;
- .update {
- color: #C4100A;
- margin-left: auto;
- font-size: 30rpx;
- }
- }
- }
- .cry {
- font-size: 96rpx;
- margin-bottom: 10rpx;
- }
- }
- }
- .water-mark-mask {
- width: 100%;
- position: fixed;
- left: 0;
- bottom: 0;
- z-index: 1000;
- justify-content: space-between;
- pointer-events: none; //无视鼠标事件,相当于鼠标事件透传下去一样
- flex: 1;
- overflow: hidden;
- text {
- width: 50%;
- color: #909399;
- opacity: 0.25;
- transform: rotate(-15deg);
- }
- }
- .histogram {
- height: 100%;
- width: 100%;
- canvas {
- margin-top: 40rpx;
- }
- }
- </style>
|