From 7f8f826384e41a1f63c2c07a87d84bf209293b69 Mon Sep 17 00:00:00 2001 From: xy <271556543@qq.com> Date: Thu, 4 Jan 2024 17:35:09 +0800 Subject: [PATCH] 1 --- package.json | 1 + src/settings.js | 13 +- src/styles/iconfont.css | 10 +- src/styles/iconfont.ttf | Bin 7452 -> 7764 bytes src/styles/iconfont.woff | Bin 4700 -> 4928 bytes src/styles/iconfont.woff2 | Bin 3960 -> 4152 bytes src/styles/scss/index.scss | 4 +- src/utils/index.js | 15 ++ src/views/bigScreen/bigScreen.vue | 62 ++++++-- src/views/bigScreen/component/bottom.vue | 112 ++++++++++---- .../bigScreen/component/centerRight1.vue | 143 +++++++++++++----- .../bigScreen/component/detailTransfer.vue | 133 ++++++++++++++-- .../bigScreen/component/transferBoard.vue | 100 +++++++++--- src/views/order/component/createDispatch.vue | 32 ++-- src/views/order/component/dispatchList.vue | 77 ++++++---- src/views/order/component/normalCreate.vue | 10 +- 16 files changed, 550 insertions(+), 162 deletions(-) diff --git a/package.json b/package.json index d26c426..b9020ab 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "vue": "2.6.10", "vue-awesome": "^4.5.0", "vue-count-to": "^1.0.13", + "vue-esign": "^1.1.4", "vue-router": "3.0.6", "vuedraggable": "^2.24.3", "vuex": "3.1.0", diff --git a/src/settings.js b/src/settings.js index cb8b07e..46696f8 100644 --- a/src/settings.js +++ b/src/settings.js @@ -12,5 +12,16 @@ module.exports = { * @type {boolean} true | false * @description Whether show the logo in sidebar */ - sidebarLogo: false + sidebarLogo: false, + + /** + * @type {number} + * @description 通知刷新分钟间隔 + */ + refreshNoticeTime: 2 * 60 * 1000, + /** + * @type {number} + * @description 调令列表刷新分钟间隔 + */ + refreshTransferTime: 2 * 60 * 1000, } diff --git a/src/styles/iconfont.css b/src/styles/iconfont.css index 12ee468..5a7b696 100644 --- a/src/styles/iconfont.css +++ b/src/styles/iconfont.css @@ -1,8 +1,8 @@ @font-face { font-family: "iconfont"; /* Project id 4329577 */ - src: url('iconfont.woff2?t=1699943620567') format('woff2'), - url('iconfont.woff?t=1699943620567') format('woff'), - url('iconfont.ttf?t=1699943620567') format('truetype'); + src: url('iconfont.woff2?t=1704262099598') format('woff2'), + url('iconfont.woff?t=1704262099598') format('woff'), + url('iconfont.ttf?t=1704262099598') format('truetype'); } .iconfont { @@ -13,6 +13,10 @@ -moz-osx-font-smoothing: grayscale; } +.icon-shengchanhejiagongqingkuang:before { + content: "\e9b8"; +} + .icon-shenpi1:before { content: "\e77e"; } diff --git a/src/styles/iconfont.ttf b/src/styles/iconfont.ttf index 7370e85e1b9ef234a4298e5d7a61a6eb0cf08654..88aab393770015e2776579d208c56c8dade6d105 100644 GIT binary patch delta 951 zcmZ9JOH30%7{~wL?y_yS?bep<14~f~ZVmXv0`d?@Dh(PuX`&`3TCujM6buOH!72%f zQA{-TfYBR?2M>zT13}`&iwBJ!yl9M%gIh?9@#0Ob-*z=I&g3^U-#q^RZ)R?{zwW#i z&G%mcXa>NMfuYpMX?3Gc8>RcWLmO3Vf!FH zRT|F^^pmqSDGj zsZ{WawY!K{|F8AJ1E{- z7nS{9EwHUtkLeUuNvolzE{boWN|jhStJ%GW$;o+;H&UlmnV$mw)cQCD(2nH--nn+AV-b+0=XR(Cqw{!n)$;cQH}UGM#7 zS?=lFelS#3Wmm|qctmO1qiLRLN%SZ`4>?tz)a<6vn@q-E0z#H33nJ|D#wGDHW=q1ihqQTD;bqU2IGa#sstwFUB6K6hzd$ z2=!19dRBX^P${(ZP)iOTg|?yW<{;w5^ZLyW;tao?ee>SD_r00()c*K(vi$rjAT|NK zn#$Czw+npQc(1@fQ^nItt=z1mshjQM}Bs_xJw!q zgZn|FRJ%tS3V=HN#ugP(3`pzk+?BHmgxB)cD2< z)mt!DaUp)m33+AAn=*846|JA)RJa;hi^ih+buZL;|K{_c)z%^s&QwQIz}e_HV{5kx CvWATS diff --git a/src/styles/iconfont.woff b/src/styles/iconfont.woff index 11e7305d8498ce1a6b70de46d13ad2706b29f8a1..655ddc81b3808167604f6b45ba58534ef9e373d3 100644 GIT binary patch delta 4467 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 F005?md}aUu delta 4238 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 CuI(5A literal 3960 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
-
- - - -
+ + + + +
@@ -109,7 +109,8 @@ export default { provide() { return { load: this.load, - cancelLoading: this.cancelLoading + cancelLoading: this.cancelLoading, + showModal: this.showModal } }, components: { @@ -141,18 +142,25 @@ export default { this.timeFn(); this.cancelLoading(); - setTimeout(() => { - this.$alert('时间:2023-01-02', '收到一条紧急条令', { - confirmButtonText: '确定', - customClass: "big-screen-modal", - type: "warning" - }); - },3000) }, beforeDestroy () { clearInterval(this.timing) }, methods: { + showModal (isEmergent = false, message) { + let modal = this.$alert('', `收到一条${isEmergent ? '紧急': ''}信息`, { + message, + confirmButtonText: '确定', + customClass: isEmergent ? "big-screen-modal big-screen-modal-warning" : "big-screen-modal", + iconClass: "el-icon-message-solid" + }); + + if (!isEmergent) { + setTimeout(() => { + modal.close() + },10 * 10000) + } + }, fullscreen () { document.fullscreenElement ? document.exitFullscreen() : document.documentElement.requestFullscreen() }, @@ -193,4 +201,32 @@ export default { div:has(.big-screen-modal) { z-index: 9999999 !important; } +.big-screen-modal-warning { + filter: drop-shadow(0 0 1px rgb(200,0,0)) + drop-shadow(0 0 3px rgb(215, 9, 9)) + drop-shadow(0 0 4px rgb(224, 40, 40)) + drop-shadow(0 0 5px rgb(225, 91, 91)); + animation: warning 1.5s ease-in-out infinite alternate; +} +@keyframes warning { + to { + filter: drop-shadow(0 0 3px rgb(200,0,0)) + drop-shadow(0 0 9px rgb(215, 9, 9)) + drop-shadow(0 0 12px rgb(224, 40, 40)) + drop-shadow(0 0 20px rgb(225, 91, 91)); + } +} +.big-screen-modal-warning .el-message-box__status { + color: rgb(200, 0 ,0); + transform-origin: 50% 0; + //animation: wobble 4s infinite; +} +@keyframes wobble { + from { + transform: rotate(-30deg); + } + to { + transform: rotate(30deg); + } +} diff --git a/src/views/bigScreen/component/bottom.vue b/src/views/bigScreen/component/bottom.vue index 6d3fd4a..e3e8cf8 100644 --- a/src/views/bigScreen/component/bottom.vue +++ b/src/views/bigScreen/component/bottom.vue @@ -1,57 +1,98 @@ diff --git a/src/views/bigScreen/component/centerRight1.vue b/src/views/bigScreen/component/centerRight1.vue index fb09445..99723e0 100644 --- a/src/views/bigScreen/component/centerRight1.vue +++ b/src/views/bigScreen/component/centerRight1.vue @@ -10,44 +10,62 @@ 待执行 + :content-l-k="{ + start_time: '开启时间', + end_time: '关闭时间' + }" + @refresh="getTransfer(true)" + @showDetail="d => ($refs['detailTransfer'].setData(d),$refs['detailTransfer'].show())">
执行中 + :content-l-k="{ + start_time: '开启时间', + act_start_time: '开启执行时间', + end_time: '关闭时间', + }" + @refresh="getTransfer(true)" + @showDetail="d => ($refs['detailTransfer'].setData(d),$refs['detailTransfer'].show())">
已完成 + :content-l-k="{ + start_time: '开启时间', + act_start_time: '开启执行时间', + end_time: '关闭时间', + act_end_time: '关闭执行时间', + }" + @refresh="getTransfer(true)" + @showDetail="d => ($refs['detailTransfer'].setData(d),$refs['detailTransfer'].show())">
- + diff --git a/src/views/bigScreen/component/detailTransfer.vue b/src/views/bigScreen/component/detailTransfer.vue index f5d6c42..0d2942e 100644 --- a/src/views/bigScreen/component/detailTransfer.vue +++ b/src/views/bigScreen/component/detailTransfer.vue @@ -1,13 +1,18 @@ diff --git a/src/views/bigScreen/component/transferBoard.vue b/src/views/bigScreen/component/transferBoard.vue index f3ff2af..39adb43 100644 --- a/src/views/bigScreen/component/transferBoard.vue +++ b/src/views/bigScreen/component/transferBoard.vue @@ -9,7 +9,7 @@ line-height: ${heights[index]}px; transition: all .2s; `" - @click="showModal(item)"> + @click="showDetail(item)">
@@ -17,15 +17,15 @@

{{ item.equipment_id_equipments_id_relation ? item.equipment_id_equipments_id_relation.name : '' }}

-
-
- 执行时间:{{ item.start_time }} +
+
+ {{label}}:{{ $moment(item[key]).format('YYYY-MM-DD HH:mm') || '-' }}
-
- 倒计时:{{ $moment(new Date(item.start_time)).diff($moment(),'minutes') > 0 ? $moment(new Date(item.start_time)).diff($moment(),'minutes') : '-' }}分 +
+ 倒计时:{{ $moment(new Date(item.start_time)).diff($moment(time),'minutes') }}分
-
+
{{setStatusText}}
@@ -42,12 +42,15 @@ import { deepCopy } from "@/utils"; import { save } from "@/api/system/baseForm"; export default { + inject: ['showModal'], props: { transfers: Array, - setTransferStatusNumber: Number + setTransferStatusNumber: Number, + contentLK: Object, }, data() { return { + nowRow: {}, dom: '', needCalc: false, rowNum: 4, @@ -67,21 +70,31 @@ export default { [4,'执行中'], [5,'已取消'], [6,'已完成'] - ]) + ]), + time: new Date(), + timer: null } }, methods: { - showModal (item) { - this.$emit('showModal',item) + showDetail (item) { + this.nowRow = deepCopy(item); + console.log(this.nowRow) + this.$emit('showDetail',item) }, - setTransferStatus (status,row) { - if (!this.setTransferStatusNumber) { - console.warn('setTransferStatusNumber is required') - return + setTransferStatus (data) { + const { status, start_sign, end_sign } = data; + + let copyRow = deepCopy(this.nowRow); + if (status === 4) { + copyRow.act_start_time = this.$moment().format('YYYY-MM-DD HH:mm') + copyRow.start_sign = start_sign + } + if (status === 6) { + copyRow.act_end_time = this.$moment().format('YYYY-MM-DD HH:mm') + copyRow.end_sign = end_sign } - let copyRow = deepCopy(row); - copyRow.status = this.setTransferStatusNumber; + copyRow.status = status; for (let key in copyRow) { if (/_relation/g.test(key)) { delete copyRow[key] @@ -189,11 +202,23 @@ export default { computed: { setStatusText () { if (this.setTransferStatusNumber === 4) return '执行'; - if (this.setTransferStatusNumber === 6) return '完成'; - } + if (this.setTransferStatusNumber === 6) return '关闭'; + }, + lastTimeColor () { + return function (min) { + if (min <= 0) { + return "red" + } else if (min > 0 && min <= 5) { + return "orange" + } else { + return "#eee" + } + } + }, }, watch: { async transfers(val) { + const h = this.$createElement; if (val && val.length > 0) { this.rows = val.map((i,index) => ({...i,scroll: index})) this.copyTransfers = deepCopy(val); @@ -201,6 +226,33 @@ export default { await this.initWH(false); this.calcHeights(); await this.animation(true); + + this.timer = setInterval(() => { + this.time = new Date() + + this.rows.forEach(item => { + if (item.status === 2) { + let lastMins = this.$moment(new Date(item.start_time)).diff(this.$moment(),'minutes') + if (lastMins === 3) { + this.showModal(true,h('div',[ + h('p',item.equipment_id_equipments_id_relation?.name), + h('p',item.content), + h('p',`开始时间:${this.$moment(item.start_time).format('YYYY-MM-DD HH:mm')}`) + ])) + } + } + if (item.status === 4) { + let lastMins = this.$moment(new Date(item.end_time)).diff(this.$moment(),'minutes') + if (lastMins === 3) { + this.showModal(true,h('div',[ + h('p',item.equipment_id_equipments_id_relation?.name), + h('p',item.content), + h('p',`结束时间:${this.$moment(item.end_time).format('YYYY-MM-DD HH:mm')}`) + ])) + } + } + }) + },1000 * 60) } else { this.rows = [] this.copyTransfers = [] @@ -214,6 +266,8 @@ export default { async mounted() { }, destroyed () { + clearInterval(this.timer) + this.$bus.$off('transferSave') const { stopAnimation } = this stopAnimation(); @@ -253,6 +307,14 @@ export default { width: 100%; } } + .time-info { + line-height: 1.5; + width: 86%; + display: grid; + grid-template-columns: repeat(2, 1fr); + grid-column-gap: 10px; + grid-row-gap: 5px; + } } ::v-deep .row-item .ceil { width: 100%; diff --git a/src/views/order/component/createDispatch.vue b/src/views/order/component/createDispatch.vue index f87be51..6a38757 100644 --- a/src/views/order/component/createDispatch.vue +++ b/src/views/order/component/createDispatch.vue @@ -43,10 +43,10 @@ {{ abilities.find(i => i.value === ability) ? abilities.find(i => i.value === ability).key : '' }} 调令

- - - - + + + +
@@ -82,7 +83,9 @@ import { mergeTableRow } from "@/utils/mergeTableRow"; import { show } from "@/api/system/customFormField"; export default { inject: ["equipments"], - props: {}, + props: { + + }, data() { return { createType: 1, @@ -168,16 +171,15 @@ export default { { title: '机组运行状态', width: 200, - render: (h) => { - let num = Math.round(Math.random() * 8) + render: (h,{ row }) => { const create = () => { let dom = []; - for (let i = 0;i<=num;i++) { + for (let i = 0;i<=row._random;i++) { dom.push(h('div',{ style: { width: '14px', height: '14px', - background: i === num-1 ? 'red' : 'green', + background: i === row._random-1 ? 'red' : 'green', 'border-radius': '100%', 'margin-left': '6px' } @@ -211,6 +213,7 @@ export default { type: "time", size: "small", transfer: true, + format: "HH:mm" }, on: { ["on-change"]: (e) => (this.data[index].start_time = e), @@ -230,6 +233,7 @@ export default { type: "time", size: "small", transfer: true, + format: "HH:mm" }, on: { ["on-change"]: (e) => (this.data[index].end_time = e), @@ -263,7 +267,7 @@ export default { width: 140, key: "level", align: "center", - render: (h, { row }) => { + render: (h, { row, index }) => { return h( "Select", { @@ -276,6 +280,7 @@ export default { on: { ["on-select"]: (e) => { row.level = e.value; + this.data[index].level = e.value; }, }, }, @@ -473,6 +478,10 @@ export default { } } this.$bus.$emit('yinpaishui',this.abilities) + }, + + pickDate () { + this.$bus.$emit('pickDate',this.date) } }, computed: { @@ -501,7 +510,8 @@ export default { end_time: "", content: "", level: 1, - leibie: this.ability + leibie: this.ability, + _random: Math.round(Math.random() * 8) })) || []; }, select: { diff --git a/src/views/order/component/dispatchList.vue b/src/views/order/component/dispatchList.vue index 70f0327..3c0b811 100644 --- a/src/views/order/component/dispatchList.vue +++ b/src/views/order/component/dispatchList.vue @@ -1,7 +1,16 @@ @@ -53,10 +62,11 @@ export default { loading: false, areas: [], abilities: [], + date: this.$moment().format("YYYY-MM-DD"), select: { table_name: 'transfers', page: 1, - page_size: 10, + page_size: 999, sort_name: 'equipment_id', filter: [ { @@ -79,16 +89,6 @@ export default { total: 0, data: [], columns: [ - { - title: "点位", - width: 240, - key: "equipment_id", - align: "center", - render: (h, { row, index }) => { - let text = row.equipment_id_equipments_id_relation ? row.equipment_id_equipments_id_relation.name : ""; - return h('span',text); - }, - }, { title: "范围", width: 140, @@ -100,6 +100,16 @@ export default { return h('span',text) } }, + { + title: "点位", + width: 240, + key: "equipment_id", + align: "center", + render: (h, { row, index }) => { + let text = row.equipment_id_equipments_id_relation ? row.equipment_id_equipments_id_relation.name : ""; + return h('span',text); + }, + }, { title: '类别', width: 100, @@ -195,6 +205,11 @@ export default { async getDispatches () { try { this.loading = true; + this.select.filter.push({ + key: "start_time", + op: "like", + value: this.date + }) const res = await index(this.select); this.data = res.data; this.total = res.total; @@ -225,11 +240,13 @@ export default { }, created() { this.getDispatches() + this.$bus.$on('pickDate',e => (this.date = e)) this.$bus.$on('yinpaishui',e => (this.abilities = e)) this.$bus.$on('areas',e => (this.areas = e)) this.$bus.$on('createdTransfer',_ => (this.getDispatches())) }, destroyed() { + this.$bus.$off('pickDate') this.$bus.$off('areas') this.$bus.$off('yinpaishui') this.$bus.$off('createdTransfer') @@ -240,6 +257,8 @@ export default {