From 087691a24c27cebbe114ea1f82856280400a3138 Mon Sep 17 00:00:00 2001 From: quanyawei <401863037@qq.com> Date: Mon, 05 Feb 2024 09:50:20 +0800 Subject: [PATCH] fix:bug修复 --- src/views/onlineRate/index.vue | 138 ++++++++++++++++++++++++++++++++------------- 1 files changed, 97 insertions(+), 41 deletions(-) diff --git a/src/views/onlineRate/index.vue b/src/views/onlineRate/index.vue index a8d6d0a..e62b284 100644 --- a/src/views/onlineRate/index.vue +++ b/src/views/onlineRate/index.vue @@ -19,22 +19,6 @@ /> </el-select> </el-form-item> - <el-form-item label="������:"> - <el-select - v-model="formInline.state" - clearable - placeholder="������������" - > - <el-option - label="������" - value="1" - /> - <el-option - label="������" - value="0" - /> - </el-select> - </el-form-item> <el-form-item> <el-radio-group v-model="time" @@ -52,11 +36,29 @@ type="datetimerange" range-separator="���" start-placeholder="������������" + :clearable="false" end-placeholder="������������" value-format="yyyy-MM-dd HH:mm:ss" + :default-date="[selectTime[0], selectTime[1]]" :picker-options="pickerOptions" - @change="changeDay" + @change="changeDay()" /> + </el-form-item> + <el-form-item label="������������:"> + <el-select + v-model="formInline.hourState" + clearable + placeholder="������������" + > + <el-option + label="������" + value="1" + /> + <el-option + label="������" + value="0" + /> + </el-select> </el-form-item> <el-form-item> <el-button @@ -69,7 +71,7 @@ </el-form> </div> <div> - <p>���������������{{ tableData.length }}������������ {{ onlineData }}��������������� <span :class=" onlineRate<90 ?'redClor':'greenClor'">{{ onlineRate }}%</span></p> + <p>���������������������<span class="greenClor">{{ macOnlineData.sum }}</span>������������<span class="greenClor">{{ macOnlineData.online }}</span>��������������� <span :class="Number(macOnlineData.onlineRate)<90 ?'redClor':'greenClor'">{{ macOnlineData.onlineRate }}%</span></p> <div> <el-table v-loading="loading" @@ -131,7 +133,11 @@ label="���������" width="100px" align="center" - /> + > + <template slot-scope="scope"> + <span :class=" scope.row.onlineRate<90 ?'redClor':'greenClor'">{{ scope.row.onlineRate }}%</span> + </template> + </el-table-column> <el-table-column prop="onlineTime" label-class-name="itemSpan" @@ -140,15 +146,15 @@ align="center" /> <el-table-column - prop="state" + prop="hourState" label-class-name="itemSpan" - label="������" - width="80px" + label="������������" + width="90px" align="center" > <template slot-scope="scope"> <el-button - v-if="scope.row.state === '0'" + v-if="scope.row.hourState === '0'" style="color:red;font-size:15px" type="text" > @@ -195,6 +201,7 @@ <script> import dayjs from 'dayjs' import detailBox from '@/views/onlineRate/detailBox' +import _ from 'lodash' export default { components: { detailBox @@ -203,12 +210,15 @@ return { formInline: { organizationId: '', - startTime: dayjs().startOf('day').format('YYYY-MM-DD HH:mm'), - endTime: dayjs().subtract(1, 'hour').format('YYYY-MM-DD HH:mm') + hourState: '', + state: '', + startTime: '', + endTime: '' }, time: '������', - selectTime: '', + selectTime: [], macDate: {}, + macOnlineData: {}, orgData: [], tableData: [], handleShow: false, @@ -252,49 +262,80 @@ return this.tableData.filter(item => item.state !== '0').length || 0 }, onlineRate () { - return Math.floor((this.onlineData / this.tableData.length) * 100) || 0 + return (this.onlineData / this.tableData.length) * 100 || 0 } }, watch: { time (newValue, oldValue) { let now = dayjs() // ������������������ if (newValue === '���1���') { - this.selectTime = [] + this.$set(this.selectTime, 0, new Date(now.subtract(1, 'day').format('YYYY-MM-DD HH:mm'))) + this.$set(this.selectTime, 1, new Date(now.format('YYYY-MM-DD HH:mm'))) + this.formInline.endTime = now.subtract(1, 'hour').format('YYYY-MM-DD HH:mm') this.formInline.startTime = now.subtract(1, 'day').format('YYYY-MM-DD HH:mm') // ��������������������� } else if (newValue === '���3���') { - this.selectTime = [] + this.$set(this.selectTime, 0, new Date(now.subtract(3, 'day').format('YYYY-MM-DD HH:mm'))) + this.$set(this.selectTime, 1, new Date(now.format('YYYY-MM-DD HH:mm'))) + this.formInline.endTime = now.subtract(1, 'hour').format('YYYY-MM-DD HH:mm') this.formInline.startTime = now.subtract(3, 'day').format('YYYY-MM-DD HH:mm') // ��������������������� } else if (newValue === '���5���') { - this.selectTime = [] + this.$set(this.selectTime, 0, new Date(now.subtract(5, 'day').format('YYYY-MM-DD HH:mm'))) + this.$set(this.selectTime, 1, new Date(now.format('YYYY-MM-DD HH:mm'))) + this.formInline.endTime = now.subtract(1, 'hour').format('YYYY-MM-DD HH:mm') this.formInline.startTime = now.subtract(5, 'day').format('YYYY-MM-DD HH:mm') // ��������������������� } else if (newValue === '���7���') { - this.selectTime = [] + this.$set(this.selectTime, 0, new Date(now.subtract(7, 'day').format('YYYY-MM-DD HH:mm'))) + this.$set(this.selectTime, 1, new Date(now.format('YYYY-MM-DD HH:mm'))) + this.formInline.endTime = now.subtract(1, 'hour').format('YYYY-MM-DD HH:mm') this.formInline.startTime = now.subtract(7, 'day').format('YYYY-MM-DD HH:mm') // ��������������������� } else if (newValue === '������') { - this.selectTime = [] - this.formInline.startTime = now.format('YYYY-MM-DD HH:mm') + this.$set(this.selectTime, 0, new Date(dayjs().startOf('day').format('YYYY-MM-DD HH:mm'))) + this.$set(this.selectTime, 1, new Date(now.format('YYYY-MM-DD HH:mm'))) + this.formInline.endTime = now.subtract(1, 'hour').format('YYYY-MM-DD HH:mm') + console.log('000', dayjs().startOf('day').format('YYYY-MM-DD HH:mm')) + this.formInline.startTime = dayjs().startOf('day').format('YYYY-MM-DD HH:mm') } } + }, + mounted () { + this.$set(this.selectTime, 0, new Date(dayjs().startOf('day').format('YYYY-MM-DD HH:mm'))) + this.$set(this.selectTime, 1, new Date(dayjs().format('YYYY-MM-DD HH:mm'))) }, created () { this.getOrganizationId() }, methods: { changeDay () { - console.log(this.selectTime) - this.formInline.startTime = this.selectTime[0] - this.formInline.endTime = this.selectTime[1] + console.log('this.selectTime', this.selectTime) + if (this.selectTime !== null) { + console.log(this.selectTime) + this.formInline.startTime = this.selectTime[0] + + if (dayjs(this.selectTime[1]).format('YYYY-MM-DD HH') === dayjs().format('YYYY-MM-DD HH')) { + this.formInline.endTime = dayjs(this.selectTime[1]).subtract(1, 'hour').format('YYYY-MM-DD HH:mm') + } else { + this.formInline.endTime = dayjs(this.selectTime[1]).startOf('day').format('YYYY-MM-DD HH:mm') + } + } + console.log('this.formInline12', this.formInline) this.time = '' }, handleDetail (row) { - console.log(row) this.handleShow = true - this.macDate = row - this.macDate.startTime = this.formInline.startTime - this.macDate.endTime = this.formInline.endTime + this.macDate = _.cloneDeep(row) + this.macDate.startTime = this.selectTime[0] + this.macDate.endTime = this.selectTime[1] + console.log(this.macDate) }, handleSearch () { + this.getOnlineData() + console.log(' this.formInline', this.formInline) if (this.formInline.organizationId !== '') { + if (this.time === '������') { + console.log('������������') + this.formInline.startTime = dayjs().startOf('day').format('YYYY-MM-DD HH:mm') + this.formInline.endTime = dayjs().subtract(1, 'hour').format('YYYY-MM-DD HH:mm') + } this.loading = true this.$request({ url: '/onlineRate/page', @@ -304,7 +345,7 @@ } }) .then(res => { - this.tableData = res.data + this.tableData = res.data || [] this.loading = false }) .catch(err => { @@ -314,6 +355,21 @@ this.$message.warning('���������������������������') } }, + getOnlineData () { + this.$request({ + url: '/onlineRate/state', + method: 'get', + params: { + organizationId: this.formInline.organizationId + } + }) + .then(res => { + this.macOnlineData = res.data + }) + .catch(err => { + console.log(err) + }) + }, getOrganizationId () { this.$request({ url: '/organization/getOrganizationId', -- Gitblit v1.8.0