From ba77fdc6a30c9ad0941e40319f8c4f6fe6fdf9f1 Mon Sep 17 00:00:00 2001 From: cuilei <ray_tsu1@163.com> Date: 星期四, 07 八月 2025 10:30:42 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- src/views/mdc/base/modules/DeviceLog/WorkHistoryModel.vue | 261 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 261 insertions(+), 0 deletions(-) diff --git a/src/views/mdc/base/modules/DeviceLog/WorkHistoryModel.vue b/src/views/mdc/base/modules/DeviceLog/WorkHistoryModel.vue new file mode 100644 index 0000000..982fc70 --- /dev/null +++ b/src/views/mdc/base/modules/DeviceLog/WorkHistoryModel.vue @@ -0,0 +1,261 @@ +<template> + <div ref="workHistory"> + <a-modal :title="title" width="80%" :getContainer="() => this.$refs.workHistory" wrap-class-name="full-modal" :visible="visible" + @cancel="handleCancel" cancelText="鍏抽棴" :footer="null"> + <div> + <div class="his_params"> + <a-form layout="inline"> + <a-form-item label="璁惧缂栧彿"> + <a-input placeholder="杈撳叆璁惧缂栧彿鏌ヨ" :readOnly="true" v-model="queryParams.equipmentId"></a-input> + </a-form-item> + <a-form-item label="瀹夎浣嶇疆"> + <a-input placeholder="杈撳叆瀹夎浣嶇疆鏌ヨ" :readOnly="true" v-model="queryParams.equipmentName"></a-input> + </a-form-item> + <a-form-item label="鏃ユ湡"> + <a-range-picker v-model="dates" :disabledDate="disabledDate" @change="dateParamChange" format='YYYY-MM-DD'/> + </a-form-item> + <a-button type="primary" @click="queryCharts" icon="search">鏌ヨ</a-button> + </a-form> + </div> + <div style="width: 100%;border: none;" align="center"> + <table cellpadding="0" cellspacing="0" width="100%"> + <tr> + <td> + <table width="100%"> + <tr style="word-break: keep-all;"> + <td width="100%" height="100%"> + <table width="100%" height="100%" align="center" cellpadding="0" cellspacing="0" style="border-collapse:separate; border-spacing:10px;"> + <tr v-for="info in listInfo" > + <td align="left">{{info.date}}</td> + <td style="word-break: keep-all;" align="left"> + <div + style="width: 100%; height: 62px;border: 1px solid;border-color: #9d9d9d;position: relative"> + <div class="mdcLogShowOne" + :style='{display: "inline-block",width:item.dateProportion, height: "100%"}' + v-for="item in info.value.normal"> + <span v-if="item.status == 0" + :style='{display: "inline-block",width:item.dateProportion, height: "100%", background: "#A8A8A8",position:"absolute",top:"0"}'></span> + <span v-if="item.status == 1" + :style='{display: "inline-block",width:item.dateProportion, height: "100%", background: "#fffc5c",position:"absolute",top:"0"}'></span> + <span v-if="item.status == 2" + :style='{display: "inline-block",width:item.dateProportion, height: "100%", background: "#fffc5c",position:"absolute",top:"0"}'></span> + <span v-if="item.status == 3" + :style='{display: "inline-block",width:item.dateProportion, height: "100%", background: "#19FE01",position:"absolute",top:"0"}'></span> + <span v-if="item.status == 23" + :style='{display: "inline-block",width:item.dateProportion, height: "100%", background: "#19FE01",position:"absolute",bottom:"0"}'></span> + </div> + <div style="z-index: 999;" + :style='{display: "inline-block",left:item.left,width:item.dateProportion, height: "100%",position:"absolute"}' + v-for="item in info.value.waring"> + <span + :style='{display: "inline-block",width:"100%", left:0, height: "68%", background: "#FD0008",position:"absolute",bottom:"0"}'></span> + </div> + </div> + </td> + </tr> + <tr> + <td align="right">0</td> + <td width="95%"> + <table width="100%;" cellpadding="0" cellspacing="0"> + <tr align="right" style="word-break: keep-all;"> + <td>02:00</td> + <td>04:00</td> + <td>06:00</td> + <td>08:00</td> + <td>10:00</td> + <td>12:00</td> + <td>14:00</td> + <td>16:00</td> + <td>18:00</td> + <td>20:00</td> + <td>22:00</td> + <td>24:00</td> + </tr> + </table> + </td> + </tr> + </table> + </td> + </tr> + </table> + </td> + </tr> + + </table> + </div> + </div> + + </a-modal> + </div> +</template> + +<script> + import moment from 'moment' + import * as echarts from 'echarts' + import { + getAction, + postAction + } from '@/api/manage' + import { + duplicateCheck + } from '@/api/api' + + export default { + name: 'WorkHistoryModel', + components: {}, + props: { waring:[],}, + data() { + return { + title: '', + listInfo: [], + dates: [], + node: {}, + + stratOpen: false, + endOpen: false, + visible: false, + show: false, + queryParams: {}, + url: { + logCharts: '/mdc/mdcEquipmentRunningSection/logCharts' + } + } + }, + mounted() { + }, + methods: { + disabledDate(current){ + return current && current > moment().subtract('days', 1); + }, + queryCharts() { + let _this = this + getAction(this.url.logCharts, this.queryParams).then((res) => { + if (res.success) { + for (let i = 0; i < res.result.length; i++) { + let tmp = res.result[i].value + // console.log(tmp) + if (tmp) { + if (tmp.normal) { + for (let k = 0; k < tmp.normal.length; k++) { + tmp.normal[k].dateProportion = tmp.normal[k].duration / 86400 * 100 + '%' + // let leftTmp = (moment(tmp.normal[i].startTime, 'YYYY-MM-DD HH:mm:ss').valueOf() - 57600000) / 1000 % 86400 + // tmp.normal[i].left = leftTmp / 86400 * 100 + '%' + } + } else { + tmp.normal = [] + } + if (tmp.waring) { + // console.log("娴嬭瘯鍒ゆ柇") + for (let j = 0; j < tmp.waring.length; j++) { + tmp.waring[j].dateProportion = tmp.waring[j].duration / 86400 * 100 + '%' + let leftTmp = (moment(tmp.waring[j].startTime, 'YYYY-MM-DD HH:mm:ss').valueOf() - 57600000) / 1000 % 86400 + tmp.waring[j].left = leftTmp / 86400 * 100 + '%' + } + } else { + tmp.waring = [] + } + } else { + res.result[i].value = { normal: [], waring: [] } + } + } + _this.listInfo = res.result + } + }) + }, + dateParamChange(v1, v2) { + this.queryParams.startTime = v2[0] + this.queryParams.endTime = v2[1] + }, + add(node) { + let _this = this + this.visible = true + this.node = node + this.queryParams = { + equipmentId: node.equipmentId, + equipmentName: node.equipmentName + } + this.dates = [moment().subtract('days', 5), moment().subtract('days', 2)] + this.queryParams.startTime = moment(this.dates[0]).format('YYYY-MM-DD') + this.queryParams.endTime = moment(this.dates[1]).format('YYYY-MM-DD') + this.$nextTick(() => { + _this.queryCharts() + }) + }, + handleCancel() { + this.visible = false + }, + close() { + this.visible = false + this.show = false + } + } + } +</script> + +<style scoped lang="less"> + .full-modal { + .ant-modal { + max-width: 100%; + top: 0; + padding-bottom: 0; + margin: 0; + } + .ant-modal-content { + display: flex; + flex-direction: column; + height: calc(100vh); + } + .ant-modal-body { + flex: 1; + } + } + /deep/ .ant-modal{ + /*background-color: #000;*/ + /*color: #fff;*/ + } + /deep/ .ant-modal-header{ + /*background-color: #000;*/ + } + /deep/ .ant-modal-title{ + /*color: #fff;*/ + } + /deep/ .ant-modal-close{ + color: #1191b0; + font-size: 24px; + } + /deep/ .ant-modal-content{ + /*background: -moz-linear-gradient(left, rgba(0, 0, 0, 0.66) 0%, rgba(0, 0, 0, 0.27) 100%);*/ + /*background: -webkit-gradient(linear, left left, right right, color-stop(0%, rgba(0, 0, 0, 0.66)), color-stop(100%, rgba(0, 0, 0, 0.4)));*/ + /*background: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.66) 0%, rgba(0, 0, 0, 0.4) 100%);*/ + /*background: -o-linear-gradient(left, rgba(0, 0, 0, 0.66) 0%, rgba(0, 0, 0, 0.4) 100%);*/ + /*background: -ms-linear-gradient(left, rgba(0, 0, 0, 0.66) 0%, rgba(0, 0, 0, 0.4) 100%);*/ + /*background: linear-gradient(to right, rgba(0, 0, 0, 0.66) 0%, rgba(0, 0, 0, 0.4) 100%);*/ + /*background-color: #000;*/ + /*color: #fff;*/ + position: relative; + } + /deep/ .ant-modal-header{ + /*border-bottom: none!important;*/ + } + /deep/ .ant-form-item-label label{ + /*color: #fff;*/ + } + /*.ant-btn {*/ + /*padding: 0 10px;*/ + /*margin-left: 3px;*/ + /*}*/ + + /*.ant-form-item-control {*/ + /*line-height: 0px;*/ + /*}*/ + + /*!** 涓昏〃鍗曡闂磋窛 *!*/ + /*.ant-form .ant-form-item {*/ + /*margin-bottom: 10px;*/ + /*}*/ + + /*!** Tab椤甸潰琛岄棿璺� *!*/ + /*.ant-tabs-content .ant-form-item {*/ + /*margin-bottom: 0px;*/ + /*}*/ +</style> -- Gitblit v1.9.3