From 3efe2606474fba1905fa4edab82b713b9cfb5ef3 Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期二, 01 八月 2023 08:22:03 +0800
Subject: [PATCH] 完成车间大屏
---
src/views/dry/DryOrderList.vue | 21
src/views/sys/login/TokenLoginPage.vue | 2
.env | 2
src/assets/images/dry/bg/wksp.png | 0
src/assets/images/dry/bg/wkshop.png | 0
src/assets/images/dry/bg/workshop.png | 0
src/assets/images/dry/bg/wksp1.png | 0
/dev/null | 0
src/views/dry/bigScreen/BigWorkShop.vue | 360 +++++++
src/views/dry/monitor/WorkShop.vue | 46
src/layouts/default/header/components/user-dropdown/index.vue | 2
src/views/dry/dataDefine/DryEqpType.data.ts | 104 +-
src/views/system/loginmini/MiniLogin.vue | 2
src/views/dry/common/prodRecordReport.vue | 18
src/views/dry/dataDefine/DryOrder.data.ts | 167 +-
src/views/dry/bigScreen/BigEqp.vue | 1532 ++++++++++++++++----------------
src/views/dry/monitor/Eqp.vue | 530 +++++-----
src/assets/images/dry/bg/wksp2.png | 0
18 files changed, 1,576 insertions(+), 1,210 deletions(-)
diff --git a/.env b/.env
index 3c69aa3..5f0d073 100644
--- a/.env
+++ b/.env
@@ -2,7 +2,7 @@
VITE_PORT = 3100
# 缃戠珯鏍囬
-VITE_GLOB_APP_TITLE = 鏅鸿兘涓崏鑽共鐕ョ郴缁�
+VITE_GLOB_APP_TITLE = 鏅鸿兘涓崏鑽共鐕ラ厤鏂圭鐞嗙郴缁�
# 绠�绉帮紝鐢ㄤ簬閰嶇疆鏂囦欢鍚嶅瓧 涓嶈鍑虹幇绌烘牸銆佹暟瀛楀紑澶寸瓑鐗规畩瀛楃
VITE_GLOB_APP_SHORT_NAME = JeecgBootAdmin
diff --git a/src/assets/images/dry/bg/1.jpg b/src/assets/images/dry/bg/1.jpg
deleted file mode 100644
index 890108f..0000000
--- a/src/assets/images/dry/bg/1.jpg
+++ /dev/null
Binary files differ
diff --git a/src/assets/images/dry/bg/2.jpg b/src/assets/images/dry/bg/2.jpg
deleted file mode 100644
index 631e710..0000000
--- a/src/assets/images/dry/bg/2.jpg
+++ /dev/null
Binary files differ
diff --git a/src/assets/images/dry/bg/3.jpg b/src/assets/images/dry/bg/3.jpg
deleted file mode 100644
index 43cfaf2..0000000
--- a/src/assets/images/dry/bg/3.jpg
+++ /dev/null
Binary files differ
diff --git a/src/assets/images/dry/bg/4.jpg b/src/assets/images/dry/bg/4.jpg
deleted file mode 100644
index d556526..0000000
--- a/src/assets/images/dry/bg/4.jpg
+++ /dev/null
Binary files differ
diff --git a/src/assets/images/dry/bg/5.jpg b/src/assets/images/dry/bg/5.jpg
deleted file mode 100644
index 5f28364..0000000
--- a/src/assets/images/dry/bg/5.jpg
+++ /dev/null
Binary files differ
diff --git a/src/assets/images/dry/bg/6.jpg b/src/assets/images/dry/bg/6.jpg
deleted file mode 100644
index ffa8280..0000000
--- a/src/assets/images/dry/bg/6.jpg
+++ /dev/null
Binary files differ
diff --git a/src/assets/images/dry/bg/7.jpg b/src/assets/images/dry/bg/7.jpg
deleted file mode 100644
index 872eedf..0000000
--- a/src/assets/images/dry/bg/7.jpg
+++ /dev/null
Binary files differ
diff --git a/src/assets/images/dry/bg/wkshop.png b/src/assets/images/dry/bg/wkshop.png
new file mode 100644
index 0000000..969676a
--- /dev/null
+++ b/src/assets/images/dry/bg/wkshop.png
Binary files differ
diff --git a/src/assets/images/dry/bg/wksp.png b/src/assets/images/dry/bg/wksp.png
new file mode 100644
index 0000000..ec3742d
--- /dev/null
+++ b/src/assets/images/dry/bg/wksp.png
Binary files differ
diff --git a/src/assets/images/dry/bg/wksp1.png b/src/assets/images/dry/bg/wksp1.png
new file mode 100644
index 0000000..d630927
--- /dev/null
+++ b/src/assets/images/dry/bg/wksp1.png
Binary files differ
diff --git a/src/assets/images/dry/bg/wksp2.png b/src/assets/images/dry/bg/wksp2.png
new file mode 100644
index 0000000..77b679e
--- /dev/null
+++ b/src/assets/images/dry/bg/wksp2.png
Binary files differ
diff --git a/src/assets/images/dry/bg/workshop.png b/src/assets/images/dry/bg/workshop.png
new file mode 100644
index 0000000..55210bb
--- /dev/null
+++ b/src/assets/images/dry/bg/workshop.png
Binary files differ
diff --git a/src/layouts/default/header/components/user-dropdown/index.vue b/src/layouts/default/header/components/user-dropdown/index.vue
index 6a97484..b671c7e 100644
--- a/src/layouts/default/header/components/user-dropdown/index.vue
+++ b/src/layouts/default/header/components/user-dropdown/index.vue
@@ -15,7 +15,7 @@
<MenuDivider v-if="getShowDoc" />
<MenuItem key="account" :text="t('layout.header.dropdownItemSwitchAccount')" icon="ant-design:setting-outlined" />
<MenuItem key="password" :text="t('layout.header.dropdownItemSwitchPassword')" icon="ant-design:edit-outlined" />
- <MenuItem key="depart" :text="t('layout.header.dropdownItemSwitchDepart')" icon="ant-design:cluster-outlined" />
+ <!-- <MenuItem key="depart" :text="t('layout.header.dropdownItemSwitchDepart')" icon="ant-design:cluster-outlined" /> -->
<MenuItem key="cache" :text="t('layout.header.dropdownItemRefreshCache')" icon="ion:sync-outline" />
<!-- <MenuItem
v-if="getUseLockPage"
diff --git a/src/views/dry/DryOrderList.vue b/src/views/dry/DryOrderList.vue
index 0e1ee0b..bfd9690 100644
--- a/src/views/dry/DryOrderList.vue
+++ b/src/views/dry/DryOrderList.vue
@@ -53,6 +53,8 @@
import { BasicTable, TableAction } from '/@/components/Table'
import { useListPage } from '/@/hooks/system/useListPage'
import { downloadFile } from '/@/utils/common/renderUtils'
+ import { router } from '/@/router'
+
const checkedKeys = ref<Array<string | number>>([])
//娉ㄥ唽model
const [registerModal, { openModal }] = useModal()
@@ -141,8 +143,8 @@
function getTableAction(record) {
return [
{
- label: '缂栬緫',
- onClick: handleEdit.bind(null, record),
+ label: '鎿嶄綔璁板綍',
+ onClick: openReport.bind(null, record),
},
]
}
@@ -151,6 +153,10 @@
*/
function getDropDownAction(record) {
return [
+ {
+ label: '缂栬緫',
+ onClick: handleEdit.bind(null, record),
+ },
{
label: '璇︽儏',
onClick: handleDetail.bind(null, record),
@@ -164,6 +170,17 @@
},
]
}
+
+ /**鎵撳紑鎶ヨ〃 */
+ function openReport(record: Recordable) {
+ console.log(`output->record`, record)
+ router.push({
+ path: '/dry/order/report',
+ query: {
+ batch: record.code,
+ },
+ })
+ }
</script>
<style scoped></style>
diff --git a/src/views/dry/bigScreen/BigEqp.vue b/src/views/dry/bigScreen/BigEqp.vue
index d72d34e..c609eae 100644
--- a/src/views/dry/bigScreen/BigEqp.vue
+++ b/src/views/dry/bigScreen/BigEqp.vue
@@ -1,144 +1,148 @@
<template>
- <dv-full-screen-container>
- <div class="eqpBox">
- <div class="eqpRow">
- <div class="eqpImage" :style="{'background-position':position + 'px'}">
-
- <div class="leftEqp">
- <div style="width: 350px; ">
- <div class="herbInfo">
-
- <dv-border-box7 class="curEqp">
- <div class="eqpName" style="padding: 30px" @click="changeEqp">
- <div class="mainInfo" style="font-size: 26px">{{ eqp?.name }}</div>
- <div class="subhead">{{ eqp?.type }}</div>
- <dv-decoration-1 style="width:300px;height:90px; margin-left: 20px;" />
- <!-- 璁惧锛歿{ eqp.name }}</div>
+ <dv-full-screen-container>
+ <div class="eqpBox">
+ <div class="eqpRow">
+ <div class="eqpImage" :style="{ 'background-position': position + 'px' }">
+ <div class="leftEqp">
+ <div style="width: 350px">
+ <div class="herbInfo">
+ <dv-border-box7 class="curEqp">
+ <div style="display: flex">
+ <div style="padding-top: 20px; padding-left: 10px" @click="back">
+ <Icon style="color: powderblue" icon="ion:caret-back-sharp" :size="35" />
+ </div>
+ <div class="eqpName" style="text-align: right" @click="changeEqp">
+ <div class="mainInfo" style="font-size: 26px">{{ eqp?.name }}</div>
+ <div class="subhead">{{ eqp?.type }}</div>
+ <dv-decoration-1 style="width: 240px; height: 90px; margin-left: 20px" />
+ <!-- 璁惧锛歿{ eqp.name }}</div>
<div class="eqpName">鍨嬪彿锛歿{ eqp.type }}</div> -->
- </div>
- </dv-border-box7>
- <dv-border-box7 class="curHerb" :style="{'background-image': 'url('+getHerbImageUrl(realData?.herbImage)+')'}">
- <div class="eqpName" style="margin-left: 176px; height: 190px">
- <div class="mainInfo" style="font-size: 26px">{{ realData?.herbName }}</div>
- <div class="subhead">骞茬嚗閰嶆柟</div>
- </div>
- <div class="formula">
- <div class="formulaItem">
- <Icon style="color: powderblue" icon="icon-park-twotone:box" :size="35" />
- <div>
- <div class="mainInfo2">{{ realData?.feed }} 绛�</div>
- <div class="subhead2">鎶曟枡閲�</div>
</div>
</div>
- <div class="formulaItem">
- <Icon style="color: red" icon="bx:wind" :size="35" />
- <div>
- <div class="mainInfo2">{{ realData?.windTemp }} 掳C</div>
- <div class="subhead2">鐑</div>
+ </dv-border-box7>
+ <dv-border-box7 class="curHerb" :style="{ 'background-image': 'url(' + getHerbImageUrl(realData?.herbImage) + ')' }">
+ <div class="eqpName" style="margin-left: 156px; height: 190px">
+ <div class="mainInfo" style="font-size: 26px">{{ realData?.herbName }}</div>
+ <div class="subhead">骞茬嚗閰嶆柟</div>
+ </div>
+ <div class="formula">
+ <div class="formulaItem">
+ <Icon style="color: powderblue" icon="icon-park-twotone:box" :size="35" />
+ <div>
+ <div class="mainInfo2">{{ realData?.feed }} 绛�</div>
+ <div class="subhead2">鎶曟枡閲�</div>
+ </div>
+ </div>
+ <div class="formulaItem">
+ <Icon style="color: red" icon="bx:wind" :size="35" />
+ <div>
+ <div class="mainInfo2">{{ realData?.windTemp }} 掳C</div>
+ <div class="subhead2">鐑</div>
+ </div>
+ </div>
+ <div class="formulaItem">
+ <Icon style="color: green" icon="tabler:target-arrow" :size="35" />
+ <div>
+ <div class="mainInfo2">{{ realData?.target }} %</div>
+ <div class="subhead2">鐩爣</div>
+ </div>
</div>
</div>
- <div class="formulaItem">
- <Icon style="color: green" icon="tabler:target-arrow" :size="35" />
- <div>
- <div class="mainInfo2">{{ realData?.target }} %</div>
- <div class="subhead2">鐩爣</div>
- </div>
- </div>
- </div>
- <!-- <div class="eqpName">{{ realData?.herbName }}</div>
+ <!-- <div class="eqpName">{{ realData?.herbName }}</div>
<div class="eqpName">{{ realData?.feed }} 绛�</div> -->
- </dv-border-box7>
- </div>
- <!-- <dv-border-box7 class="infoChart" style="margin-left: 0px;">
+ </dv-border-box7>
+ </div>
+ <!-- <dv-border-box7 class="infoChart" style="margin-left: 0px;">
<div class="chartTittle">椋庢満棰戠巼</div>
<div class="outDiv" style="padding-top: 10px">
<div id="fanFreq" style="width: 240px; height: 240px"></div>
</div>
</dv-border-box7> -->
- <dv-border-box7 class="infoChart" style="margin-left: 0px;">
- <div class="chartTittle">鍚按鐜�</div>
- <div class="outDiv" style="padding-top: 20px">
- <div class="leftData">
- <div class="center" style="height: 50%">
- <div class="centerText">
- <div class="mainInfo3"
- ><span>{{ realData?.target }}</span
- > %
+ <dv-border-box7 class="infoChart" style="margin-left: 0px">
+ <div class="chartTittle">鍚按鐜�</div>
+ <div class="outDiv" style="padding-top: 20px">
+ <div class="leftData">
+ <div class="center" style="height: 50%">
+ <div class="centerText">
+ <div class="mainInfo3"
+ ><span>{{ realData?.target }}</span> %
+ </div>
+ <div class="subhead2">鐩爣鍚按鐜�</div>
</div>
- <div class="subhead2">鐩爣鍚按鐜�</div>
+ </div>
+ <div class="center" style="height: 50%">
+ <div>
+ <div class="mainInfo3"
+ ><span>{{ realData?.initial }}</span> %</div
+ >
+ <div class="subhead2">鏉ユ枡鍚按鐜�</div>
+ </div>
</div>
</div>
- <div class="center" style="height: 50%">
- <div>
- <div class="mainInfo3"
- ><span>{{ realData?.initial }}</span
- > %</div
+ <div id="moisture" style="width: 170px; height: 170px"></div>
+ </div>
+ <div class="subhead2" style="margin-top: -37px; padding-left: 205px; font-weight: bold">瀹炴椂鍚按鐜�</div>
+ </dv-border-box7>
+ </div>
+ <dv-border-box7 class="leftTop">
+ <div class="leftTop0">
+ <div class="leftTop1">
+ <Icon icon="emojione:hourglass-with-flowing-sand" :size="50" />
+ <div>
+ <div class="mainInfo">{{ realData?.totalRemain | 0 }} Min</div>
+ <div class="subhead">鍓╀綑鏃堕棿</div>
+ </div>
+ </div>
+ <div class="leftTop1">
+ <Icon icon="bi:fan" :size="50" />
+ <div>
+ <div class="mainInfo">{{ realData.trendVo?.fanFrequency | 0 }} Hz</div>
+ <div class="subhead">椋庢満棰戠巼</div>
+ </div>
+ </div>
+ <div class="leftTop3" :style="{ 'background-image': 'url(' + getStatusImageUrl(statusGif) + ')' }"></div>
+ <div class="outDiv eqpStatus">
+ <div
+ style="
+ font-size: 28px;
+ margin-top: 190px;
+ color: white;
+ background-color: #1595ea;
+ height: 60px;
+ width: 180px;
+ line-height: 60px;
+ text-align: center;
+ border-radius: 5px;
+ font-weight: bold;
+ "
+ >
+ {{ statusTxt }}
+ </div>
+ <div
+ v-if="realData?.isError"
+ class="eqpInfoText blingbling"
+ style="
+ position: absolute;
+ font-size: 30px;
+ max-height: 200px;
+ max-width: 720px;
+ border-radius: 10px;
+ background-color: #ce0000;
+ color: white;
+ padding: 10px;
+ "
+ >
+ <div class="outDiv">
+ <div><Icon icon="bx:error" :size="30" /> </div>
+ <div
+ ><span>{{ realData?.errorMsg }}</span></div
>
- <div class="subhead2">鏉ユ枡鍚按鐜�</div>
</div>
</div>
</div>
- <div id="moisture" style="width: 170px; height: 170px"></div>
</div>
- <div class="subhead2" style="margin-top: -37px; padding-left: 205px; font-weight: bold;">瀹炴椂鍚按鐜�</div>
</dv-border-box7>
- </div>
- <dv-border-box7 class="leftTop">
- <div class="leftTop0">
- <div class="leftTop1">
- <Icon icon="emojione:hourglass-with-flowing-sand" :size="50" />
- <div>
- <div class="mainInfo">{{ realData?.totalRemain | 0 }} Min</div>
- <div class="subhead">鍓╀綑鏃堕棿</div>
- </div>
- </div>
- <div class="leftTop1">
- <Icon icon="bi:fan" :size="50" />
- <div>
- <div class="mainInfo">{{ realData.trendVo?.fanFrequency | 0 }} Hz</div>
- <div class="subhead">椋庢満棰戠巼</div>
- </div>
- </div>
- <div class="leftTop3" :style="{ 'background-image': 'url(' + getStatusImageUrl(statusGif) + ')' }"></div>
- <div class="outDiv eqpStatus">
- <div
- style="
- font-size: 28px;
- margin-top: 190px;
- color: white;
- background-color: #1595ea;
- height: 60px;
- width: 180px;
- line-height: 60px;
- text-align: center;
- border-radius: 5px;
- font-weight: bold;
- "
- >
- {{ statusTxt }}
- </div>
- <div v-if="realData?.isError"
- class="eqpInfoText blingbling"
- style="
- position: absolute;
- font-size: 30px;
- max-height: 200px;
- max-width: 720px;
- border-radius: 10px;
- background-color: #ce0000;
- color: white;
- padding: 10px;
- "
- >
- <div class="outDiv">
- <div><Icon icon="bx:error" :size="30" /> </div>
- <div><span>{{realData?.errorMsg}}</span></div>
- </div>
- </div>
- </div>
- </div>
- </dv-border-box7>
- <dv-border-box7 class="infoChart" style="margin-left: 0px; margin-right: 10px;">
+ <dv-border-box7 class="infoChart" style="margin-left: 0px; margin-right: 10px">
<div class="chartTittle">椋庣娓╁害</div>
<div class="outDiv">
<div id="bellowsTemp" style="width: 230px; height: 230px">
@@ -146,17 +150,17 @@
</div>
</div>
</dv-border-box7>
- <dv-border-box7 class="leftMid">
- <div class="chartTittle">瀹炴椂杩涘害</div>
- <div id="efficiencyLine" style="width: 848px; height: 180px;margin-top: -10px;"></div>
- <div style="height: 10px; display: flex; width: 848px; padding: 0 60px; justify-content: space-between">
- <div style="width: 100px; height: 20px">0 min</div>
- <div style="width: 100px; height: 20px; text-align: right">{{ realData?.totalTime | 0 }} min</div>
- </div>
- <div id="progressBar" style="width: 848px; height: 80px"></div>
- </dv-border-box7>
+ <dv-border-box7 class="leftMid">
+ <div class="chartTittle">瀹炴椂杩涘害</div>
+ <div id="efficiencyLine" style="width: 848px; height: 180px; margin-top: -10px"></div>
+ <div style="height: 10px; display: flex; width: 848px; padding: 0 60px; justify-content: space-between">
+ <div style="width: 100px; height: 20px">0 min</div>
+ <div style="width: 100px; height: 20px; text-align: right">{{ realData?.totalTime | 0 }} min</div>
+ </div>
+ <div id="progressBar" style="width: 848px; height: 80px"></div>
+ </dv-border-box7>
- <!-- <div class="outDiv">
+ <!-- <div class="outDiv">
<div style="height: 100px; width: 400px">
<Progress
:stroke-color="{
@@ -173,181 +177,186 @@
</div>
</div>
</div> -->
- </div>
- <div class="rightInfo">
- <div class="rightTop">
-
- <dv-border-box7 class="tempMoisChart">
- <div :id="'moisChart'" style="width: 690px; height: 420px"></div>
- </dv-border-box7>
</div>
- <div class="rightTwo">
- <dv-border-box7 class="infoChart">
- <div class="chartTittle">
- 骞茬嚗鏁堢巼(kg/h)
- <div class="rightLabel">
- <div class="label good">>{{ standard.xiaolv }} 浼� </div>
- <div class="label bad"><{{ standard.xlMin }} 宸�</div>
- </div>
- </div>
- <div class="outDiv" style="padding-top: 20px">
- <div class="leftData">
- <div class="center" style="height: 50%">
- <div class="centerText">
- <div class="mainInfo3"
- ><span>{{ (realData?.originWeight - realData?.yield) | 0 }}</span
- > kg
- </div>
- <div class="subhead2">姘村垎钂稿彂</div>
- </div>
- </div>
- <div class="center" style="height: 50%">
- <div>
- <div class="mainInfo3">{{ realData?.dryTime | 0 }} min</div>
- <div class="subhead2">骞茬嚗鐢ㄦ椂</div>
- </div>
+ <div class="rightInfo">
+ <div class="rightTop">
+ <dv-border-box7 class="tempMoisChart">
+ <div :id="'moisChart'" style="width: 690px; height: 420px"></div>
+ </dv-border-box7>
+ </div>
+ <div class="rightTwo">
+ <dv-border-box7 class="infoChart">
+ <div class="chartTittle">
+ 骞茬嚗鏁堢巼(kg/h)
+ <div class="rightLabel">
+ <div class="label good">>{{ standard.xiaolv }} 浼� </div>
+ <div class="label bad"><{{ standard.xlMin }} 宸�</div>
</div>
</div>
- <div class="rightChart center">
- <div class="center compareBar">
- <div class="barTop">{{ standard.xiaolv }}</div>
- <div class="barBack">
- <div class="barDiv" :style="{ height: realData?.xlsHeight }"></div>
- </div>
- <div style="line-height: 20px">
- 棰濆畾
- <br />
- 鏁堢巼
- </div>
- </div>
- <div class="center compareBar">
- <div class="barTop">{{ realData?.xiaolv | 0 }}</div>
- <div class="barBack">
- <div
- class="barDiv"
- :class="{ good: realData?.xlgood, bad: realData?.xlbad }"
- :style="[realData?.xlrHeight && { height: realData?.xlrHeight }]"
- >
+ <div class="outDiv" style="padding-top: 20px">
+ <div class="leftData">
+ <div class="center" style="height: 50%">
+ <div class="centerText">
+ <div class="mainInfo3"
+ ><span>{{ (realData?.originWeight - realData?.yield) | 0 }}</span> kg
+ </div>
+ <div class="subhead2">姘村垎钂稿彂</div>
</div>
</div>
- <div style="line-height: 20px">
- 瀹炴椂
- <br />
- 鏁堢巼
+ <div class="center" style="height: 50%">
+ <div>
+ <div class="mainInfo3">{{ realData?.dryTime | 0 }} min</div>
+ <div class="subhead2">骞茬嚗鐢ㄦ椂</div>
+ </div>
+ </div>
+ </div>
+ <div class="rightChart center">
+ <div class="center compareBar">
+ <div class="barTop">{{ standard.xiaolv }}</div>
+ <div class="barBack">
+ <div class="barDiv" :style="{ height: realData?.xlsHeight }"></div>
+ </div>
+ <div style="line-height: 20px">
+ 棰濆畾
+ <br />
+ 鏁堢巼
+ </div>
+ </div>
+ <div class="center compareBar">
+ <div class="barTop">{{ realData?.xiaolv | 0 }}</div>
+ <div class="barBack">
+ <div
+ class="barDiv"
+ :class="{ good: realData?.xlgood, bad: realData?.xlbad }"
+ :style="[realData?.xlrHeight && { height: realData?.xlrHeight }]"
+ >
+ </div>
+ </div>
+ <div style="line-height: 20px">
+ 瀹炴椂
+ <br />
+ 鏁堢巼
+ </div>
</div>
</div>
</div>
- </div>
- </dv-border-box7>
-
-
-
-
- <dv-border-box7 class="infoChart">
- <div class="chartTittle"
- >钂告苯娑堣��(m鲁/kg)
- <div class="rightLabel">
- <div class="label bad">>{{ standard.zhengqi }} 宸�</div>
- <div class="label good"><{{ standard.zqMin }} 浼�</div>
+ </dv-border-box7>
+
+ <dv-border-box7 class="infoChart">
+ <div class="chartTittle"
+ >钂告苯娑堣��(m鲁/kg)
+ <div class="rightLabel">
+ <div class="label bad">>{{ standard.zhengqi }} 宸�</div>
+ <div class="label good"><{{ standard.zqMin }} 浼�</div>
+ </div>
</div>
- </div>
- <div class="outDiv" style="padding-top: 20px">
- <div class="leftData">
- <div class="center" style="height: 100%">
- <div class="centerText">
- <div class="mainInfo3"><span>{{realData?.steam}}</span> m鲁 </div>
- <div class="subhead2">钂告苯鐢ㄩ噺</div>
+ <div class="outDiv" style="padding-top: 20px">
+ <div class="leftData">
+ <div class="center" style="height: 100%">
+ <div class="centerText">
+ <div class="mainInfo3"
+ ><span>{{ realData?.steam }}</span> m鲁
+ </div>
+ <div class="subhead2">钂告苯鐢ㄩ噺</div>
+ </div>
+ </div>
+ </div>
+ <div class="rightChart center">
+ <div class="center compareBar">
+ <div class="barTop">{{ standard.zhengqi }}</div>
+ <div class="barBack">
+ <div class="barDiv" :style="{ height: realData?.zqsHeight }"></div>
+ </div>
+ <div style="line-height: 20px">
+ 棰濆畾
+ <br />
+ 娑堣��
+ </div>
+ </div>
+ <div class="center compareBar">
+ <div class="barTop">{{ realData?.zhengqi | 0 }}</div>
+ <div class="barBack">
+ <div
+ class="barDiv"
+ :class="{ good: realData?.zqgood, bad: realData?.zqbad }"
+ :style="[realData?.zqrHeight && { height: realData?.zqrHeight }]"
+ >
+ </div>
+ </div>
+ <div style="line-height: 20px">
+ 瀹炴椂
+ <br />
+ 娑堣��
+ </div>
</div>
</div>
</div>
- <div class="rightChart center">
- <div class="center compareBar">
- <div class="barTop">{{standard.zhengqi}}</div>
- <div class="barBack">
- <div class="barDiv" :style="{ height: realData?.zqsHeight }"></div>
- </div>
- <div style="line-height: 20px">
- 棰濆畾
- <br />
- 娑堣��
+ </dv-border-box7>
+ <dv-border-box7 class="infoChart">
+ <div class="chartTittle">鏁堢巼瀵规瘮</div>
+ <div class="outDiv" style="padding-top: 10px">
+ <div id="compare" style="width: 300px; height: 250px"></div>
+ </div>
+ </dv-border-box7>
+ <dv-border-box7 class="infoChart">
+ <div class="chartTittle">
+ <div> 鐢佃兘娑堣��(kWh/kg)</div>
+ <div class="rightLabel">
+ <div class="label bad">>{{ standard.dian }} 宸�</div>
+ <div class="label good"><{{ standard.dMin }} 浼�</div>
+ </div>
+ </div>
+ <div class="outDiv" style="padding-top: 20px">
+ <div class="leftData">
+ <div class="center" style="height: 100%">
+ <div class="centerText">
+ <div class="mainInfo3"
+ ><span>{{ realData?.watt }}</span> kWh
+ </div>
+ <div class="subhead2">鐢佃兘鐢ㄩ噺</div>
+ </div>
</div>
</div>
- <div class="center compareBar">
- <div class="barTop">{{realData?.zhengqi | 0 }}</div>
- <div class="barBack">
- <div class="barDiv" :class="{ good: realData?.zqgood, bad: realData?.zqbad }"
- :style="[realData?.zqrHeight && { height: realData?.zqrHeight }]"> </div>
+ <div class="rightChart center">
+ <div class="center compareBar">
+ <div class="barTop">{{ standard.dian }}</div>
+ <div class="barBack">
+ <div class="barDiv" :style="{ height: realData?.dnsHeight }"></div>
+ </div>
+ <div style="line-height: 20px">
+ 棰濆畾
+ <br />
+ 娑堣��
+ </div>
</div>
- <div style="line-height: 20px">
- 瀹炴椂
- <br />
- 娑堣��
+ <div class="center compareBar">
+ <div class="barTop">{{ realData?.dian | 0 }}</div>
+ <div class="barBack">
+ <div
+ class="barDiv"
+ :class="{ good: realData?.dngood, bad: realData?.dnbad }"
+ :style="[realData?.dnrHeight && { height: realData?.dnrHeight }]"
+ ></div>
+ </div>
+ <div style="line-height: 20px">
+ 瀹炴椂
+ <br />
+ 娑堣��
+ </div>
</div>
</div>
</div>
- </div>
- </dv-border-box7>
- <dv-border-box7 class="infoChart" >
- <div class="chartTittle">鏁堢巼瀵规瘮</div>
- <div class="outDiv" style="padding-top: 10px">
- <div id="compare" style="width: 300px; height: 250px"></div>
- </div>
- </dv-border-box7>
- <dv-border-box7 class="infoChart">
- <div class="chartTittle">
- <div> 鐢佃兘娑堣��(kWh/kg)</div>
- <div class="rightLabel">
- <div class="label bad">>{{ standard.dian }} 宸�</div>
- <div class="label good"><{{ standard.dMin }} 浼�</div>
- </div>
- </div>
- <div class="outDiv" style="padding-top: 20px">
- <div class="leftData">
- <div class="center" style="height: 100%">
- <div class="centerText">
- <div class="mainInfo3"><span>{{realData?.watt}}</span> kWh </div>
- <div class="subhead2">鐢佃兘鐢ㄩ噺</div>
- </div>
- </div>
- </div>
- <div class="rightChart center">
- <div class="center compareBar">
- <div class="barTop">{{standard.dian}}</div>
- <div class="barBack">
- <div class="barDiv" :style="{ height: realData?.dnsHeight }"></div>
- </div>
- <div style="line-height: 20px">
- 棰濆畾
- <br />
- 娑堣��
- </div>
- </div>
- <div class="center compareBar">
- <div class="barTop">{{realData?.dian | 0}}</div>
- <div class="barBack">
- <div class="barDiv" :class="{ good: realData?.dngood, bad: realData?.dnbad }"
- :style="[realData?.dnrHeight && { height: realData?.dnrHeight }]"></div>
- </div>
- <div style="line-height: 20px">
- 瀹炴椂
- <br />
- 娑堣��
- </div>
- </div>
- </div>
- </div>
- </dv-border-box7>
-
+ </dv-border-box7>
+ </div>
</div>
</div>
</div>
</div>
- </div>
-</dv-full-screen-container>
+ </dv-full-screen-container>
</template>
<script setup lang="ts">
- import { useFullscreen } from '@vueuse/core';
+ import { useFullscreen } from '@vueuse/core'
import { BorderBox7 as DvBorderBox7 } from '@kjgl77/datav-vue3'
import { router } from '/@/router'
import { onMounted, ref, onUnmounted } from 'vue'
@@ -356,19 +365,16 @@
import 'echarts-liquidfill'
import { Icon, IconPicker, SvgIcon } from '/@/components/Icon/index'
import { defHttp } from '/@/utils/http/axios'
- import { queryById,listAll } from '../api/DryEquipment.api'
+ import { queryById, listAll } from '../api/DryEquipment.api'
import { dryEquipment } from '../dataDefine/DryEquipment.data'
import { useUserStore } from '/@/store/modules/user'
-
+ const domRef = ref<Nullable<HTMLElement>>(null)
+ const { enter, toggle, exit, isFullscreen } = useFullscreen()
-
- const domRef = ref<Nullable<HTMLElement>>(null);
- const { enter, toggle, exit, isFullscreen } = useFullscreen();
-
-const { toggle: toggleDom } = useFullscreen(domRef);
+ const { toggle: toggleDom } = useFullscreen(domRef)
const Timer = ref()
- const Timer2 = ref()
+ const Timer2 = ref()
const marks = ref<Record<number, any>>({
0: '0掳C',
1: '',
@@ -472,10 +478,10 @@
99: '',
100: '100掳C',
})
- const eqps = ref([] as dryEquipment[])
-
- const eqp = ref({} as dryEquipment)
- const eqpNum = ref(1)
+ const eqps = ref([] as dryEquipment[])
+ //console.log(`output->router.currentRoute.value.params.num `, router.currentRoute.value.query)
+ const eqp = ref({} as dryEquipment)
+ const eqpNum = ref(router.currentRoute.value.query.num || 1)
const userStore = useUserStore()
const realData = ref({})
const standard = ref({
@@ -487,7 +493,7 @@
dMin: 7.5,
})
- const position = ref(1)
+ const position = ref(1)
//realData.value.tempValue = [0, 100]
realData.value.mois = [0.5, 0.35, 0.2]
statusGif = 'tmrefeng2'
@@ -526,9 +532,8 @@
text: '鍚按鐜�/娓╁害瓒嬪娍',
textStyle: {
color: '#fff',
- fontSize: 15
+ fontSize: 15,
},
-
},
tooltip: {
trigger: 'axis',
@@ -542,8 +547,8 @@
legend: {
right: 60,
textStyle: {
- color: '#fff'
- }
+ color: '#fff',
+ },
},
// toolbox: {
// show: true,
@@ -559,8 +564,8 @@
// },
xAxis: {
type: 'value',
- axisLabel:{
- color: '#fff'
+ axisLabel: {
+ color: '#fff',
},
//boundaryGap: false,
// data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
@@ -575,22 +580,22 @@
splitLine: {
lineStyle: {
type: 'dashed',
- color: ['#2b2b2b']
- }
- }
+ color: ['#2b2b2b'],
+ },
+ },
},
yAxis: {
type: 'value',
boundaryGap: ['10%', '10%'],
- axisLabel:{
- color: '#fff'
+ axisLabel: {
+ color: '#fff',
},
splitLine: {
lineStyle: {
type: 'dashed',
- color: ['#2b2b2b']
- }
- }
+ color: ['#2b2b2b'],
+ },
+ },
// min: 0,
// max: function (value) {
// if (value.max < 100) {
@@ -625,15 +630,15 @@
areaStyle: {
opacity: 0.2,
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
- {
- offset: 0,
- color: 'rgb(128, 255, 165)'
- },
- {
- offset: 1,
- color: 'rgb(1, 191, 236)'
- }
- ])
+ {
+ offset: 0,
+ color: 'rgb(128, 255, 165)',
+ },
+ {
+ offset: 1,
+ color: 'rgb(1, 191, 236)',
+ },
+ ]),
},
},
{
@@ -651,15 +656,15 @@
areaStyle: {
opacity: 0.2,
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
- {
- offset: 0,
- color: 'rgb(255, 0, 135)'
- },
- {
- offset: 1,
- color: 'rgb(135, 0, 157)'
- }
- ])
+ {
+ offset: 0,
+ color: 'rgb(255, 0, 135)',
+ },
+ {
+ offset: 1,
+ color: 'rgb(135, 0, 157)',
+ },
+ ]),
},
// markLine: {
// data: [
@@ -694,7 +699,7 @@
amplitude: 3,
animationDuration: 5,
//animationDurationUpdate: 0,
- data: [0.56,0.44,0.32],
+ data: [0.56, 0.44, 0.32],
shape:
'path://M828.817,706.209C828.817,881.725,686.98,1024,512,1024c-174.98,0-316.817-142.275-316.817-317.791C195.183,530.74,512,0,512,0s316.817,530.74,316.817,706.209z',
outline: {
@@ -1109,8 +1114,8 @@
legend: {
right: 60,
textStyle: {
- color: '#fff'
- }
+ color: '#fff',
+ },
},
xAxis: {
show: false,
@@ -1160,18 +1165,18 @@
],
},
markLine: {
- symbol: 'none',
- data: [
- {
- name: '棰濆畾',
- yAxis: standard.value.xiaolv,
- },
- ],
- label: {
- formatter: '{b}\n{c}',
- color: '#fff'
- },
- },
+ symbol: 'none',
+ data: [
+ {
+ name: '棰濆畾',
+ yAxis: standard.value.xiaolv,
+ },
+ ],
+ label: {
+ formatter: '{b}\n{c}',
+ color: '#fff',
+ },
+ },
// markLine: {
// data: [{ type: 'average', name: 'Avg' }],
// },
@@ -1180,32 +1185,29 @@
}
const compareOption = {
-
tooltip: {
trigger: 'axis',
-
},
grid: {
top: '6%',
left: '3%',
right: '10%',
bottom: '3%',
- containLabel: true
+ containLabel: true,
},
xAxis: {
show: false,
type: 'value',
-
},
yAxis: {
axisLine: {
- show:false,
+ show: false,
},
axisTick: {
show: false,
},
type: 'category',
- data: ['1#', '2#', '3#', '4#', '5#', '6#']
+ data: ['1#', '2#', '3#', '4#', '5#', '6#'],
},
series: [
{
@@ -1217,13 +1219,12 @@
show: true,
position: 'right',
valueAnimation: true,
-
- color: '#fff'
- }
- },
- ]
- }
+ color: '#fff',
+ },
+ },
+ ],
+ }
option && moisChart.setOption(option)
waterOption && waterChart.setOption(waterOption)
@@ -1236,14 +1237,14 @@
}
// 鍔ㄦ�佽鍙栧浘鐗�
-function getHerbImageUrl(name: string) {
- return new URL(`/src/assets/images/dry/yaocai/${name}`, import.meta.url).href;
-}
+ function getHerbImageUrl(name: string) {
+ return new URL(`/src/assets/images/dry/yaocai/${name}`, import.meta.url).href
+ }
// 鍔ㄦ�佽鍙栧浘鐗�
function getStatusImageUrl(name: string) {
- return new URL(`/src/assets/images/dry/${name}.gif`, import.meta.url).href;
-}
+ return new URL(`/src/assets/images/dry/${name}.gif`, import.meta.url).href
+ }
function queryEqp() {
queryById({ id: router.currentRoute.value.params.id }).then((res) => {
// console.log(`output->res`, res)
@@ -1253,7 +1254,7 @@
})
}
- function listAllEqp() {
+ function listAllEqp() {
listAll({ enable: 'Y' })
.then((result) => {
//console.log(`output->result`, result)
@@ -1262,168 +1263,181 @@
// eqpCodes.push(item.code)
// })
queryRealTime()
- setTimeout(initCharts, 500)
-
+ setTimeout(initCharts, 500)
})
.catch((err) => {
//console.log(`output->err`, err)
})
}
-
- var num = eqpNum.value;
+ var num = eqpNum.value
function changeEqp() {
//console.log("changeEqp::",eqps.value.length);
- num ++;
- if (eqps.value.length > 0) {
- var i = num%eqps.value.length
- //eqp.value = eqps.value[i]
- // console.log("777",i);
- eqpNum.value = i;
- //console.log("888",eqp.value);
- queryRealTime()
+ num++
+ if (eqps.value.length > 0) {
+ var i = num % eqps.value.length
+ //eqp.value = eqps.value[i]
+ // console.log("777",i);
+ eqpNum.value = i
+ //console.log("888",eqp.value);
+ queryRealTime()
//setTimeout(initCharts, 500)
- }
-
+ }
}
- // function queryEqpsReal() {
-
- // if (eqps.value.length > 0) {
- // var i = num%eqps.value.length
- // eqp.value = eqps[i]
- // console.log("777",i);
- // console.log("888",eqp.value);
- // queryRealTime()
- // //setTimeout(initCharts, 500)
- // }
- // num ++;
- // }
+ // function queryEqpsReal() {
- var shangliaoFlag = false;
- var statusGif = 'tmrefeng2';
+ // if (eqps.value.length > 0) {
+ // var i = num%eqps.value.length
+ // eqp.value = eqps[i]
+ // console.log("777",i);
+ // console.log("888",eqp.value);
+ // queryRealTime()
+ // //setTimeout(initCharts, 500)
+ // }
+ // num ++;
+ // }
+
+ var shangliaoFlag = false
+ var statusGif = 'tmrefeng2'
var statusTxt = '姝e湪骞茬嚗'
function chaiwangban() {
statusGif = 'chaiwangban-1'
- setTimeout(shangliao,7000)
-
+ setTimeout(shangliao, 7000)
}
function shangliao() {
- statusGif = "shangliao-N"
- setTimeout(()=>{
- statusGif = "zhuangwangban"
- setTimeout(()=>{
- statusGif = "guanmen1"
- setTimeout(()=>{
+ statusGif = 'shangliao-N'
+ setTimeout(() => {
+ statusGif = 'zhuangwangban'
+ setTimeout(() => {
+ statusGif = 'guanmen1'
+ setTimeout(() => {
shangliaoFlag = false
- },4000)
-
- },7000)
- },15000)
+ }, 4000)
+ }, 7000)
+ }, 15000)
}
-
function queryRealTime() {
-
- if (eqp.value) {
- eqp.value = eqps.value[eqpNum.value]
- // console.log("888",eqp.value);
- let tenantId = 1003
- let eqpCode = eqp.value.code
- let queryRealTimeUrl = '/dry/real/getRealTimeData'
- defHttp.get({ url: queryRealTimeUrl, params: { tenantid: tenantId, machineid: eqpCode} }).then((res) => {
-
- if (res && res.trendVo) {
- //console.log(`output->re11s`, res)
- // res.tempValue = [res.windTemp, 100]
- //res.percent = ((res.dryTime / res.et) * 100).toFixed(2)
- /**姘存淮鍥惧惈姘撮噺 */
- res.mois = [
- (res.trendVo.moisture / 100).toFixed(2),
- (res.trendVo.moisture / 100 / 1.5).toFixed(2),
- (res.trendVo.moisture / 100 / 3).toFixed(2),
- ]
- if (waterChart) {
- waterChart.setOption({
- series: [
- {
- data: res.mois,
- label: {
- formatter: function () {
- return res.trendVo.moisture + '%'
+ if (eqp.value) {
+ eqp.value = eqps.value[eqpNum.value]
+ // console.log("888",eqp.value);
+ let tenantId = 1003
+ let eqpCode = eqp.value.code
+ let queryRealTimeUrl = '/dry/real/getRealTimeData'
+ defHttp.get({ url: queryRealTimeUrl, params: { tenantid: tenantId, machineid: eqpCode } }).then((res) => {
+ if (res && res.trendVo) {
+ //console.log(`output->re11s`, res)
+ // res.tempValue = [res.windTemp, 100]
+ //res.percent = ((res.dryTime / res.et) * 100).toFixed(2)
+ /**姘存淮鍥惧惈姘撮噺 */
+ res.mois = [
+ (res.trendVo.moisture / 100).toFixed(2),
+ (res.trendVo.moisture / 100 / 1.5).toFixed(2),
+ (res.trendVo.moisture / 100 / 3).toFixed(2),
+ ]
+ if (waterChart) {
+ waterChart.setOption({
+ series: [
+ {
+ data: res.mois,
+ label: {
+ formatter: function () {
+ return res.trendVo.moisture + '%'
+ },
+ fontSize: 20,
},
- fontSize: 20,
},
- },
- ],
- })
- }
+ ],
+ })
+ }
- /**娓╁害鐜舰鍥� */
- if (bellowsTempChart) {
- bellowsTempChart.setOption({
- series: [{ data: [{ value: res.windTemp }] }, { data: [{ value: res.windTemp }] }],
- })
- }
- /**椋庢満棰戠巼鐜舰鍥� */
- // if (fanFreqChart) {
- // fanFreqChart.setOption({
- // series: [
- // {
- // data: [
- // {
- // value: res.trendVo.fanFrequency,
- // },
- // ],
- // },
- // ],
- // })
- // }
- /**骞茬嚗杩涘害銆佽蛋鍔夸笌闃舵鏁堢巼鍜岄樁娈垫秷鑰� */
- if (res && res.detailList) {
- var progressSeries = []
- var ganZaoXiaoLv = []
- var zhengQiXiaoHao = []
- var dianNengXiaoHao = []
- var totalTime = 0
- var beforeWeight = 0
- res.moisList = []
- beforeWeight = res.originWeight
- //console.log(`output->res`, res)
- res.detailList.forEach((item) => {
- //console.log(`output->bef`, beforeWeight)
- //console.log(`output->cur`, item.weight)
- res.moisList.push([item.totalTime, item.moisture])
- //console.log(`output->totalTime,item.totalTime`, totalTime, item.totalTime)
- var curDryTime = item.totalTime - totalTime
+ /**娓╁害鐜舰鍥� */
+ if (bellowsTempChart) {
+ bellowsTempChart.setOption({
+ series: [{ data: [{ value: res.windTemp }] }, { data: [{ value: res.windTemp }] }],
+ })
+ }
+ /**椋庢満棰戠巼鐜舰鍥� */
+ // if (fanFreqChart) {
+ // fanFreqChart.setOption({
+ // series: [
+ // {
+ // data: [
+ // {
+ // value: res.trendVo.fanFrequency,
+ // },
+ // ],
+ // },
+ // ],
+ // })
+ // }
+ /**骞茬嚗杩涘害銆佽蛋鍔夸笌闃舵鏁堢巼鍜岄樁娈垫秷鑰� */
+ if (res && res.detailList) {
+ var progressSeries = []
+ var ganZaoXiaoLv = []
+ var zhengQiXiaoHao = []
+ var dianNengXiaoHao = []
+ var totalTime = 0
+ var beforeWeight = 0
+ res.moisList = []
+ beforeWeight = res.originWeight
+ //console.log(`output->res`, res)
+ res.detailList.forEach((item) => {
+ //console.log(`output->bef`, beforeWeight)
+ //console.log(`output->cur`, item.weight)
+ res.moisList.push([item.totalTime, item.moisture])
+ //console.log(`output->totalTime,item.totalTime`, totalTime, item.totalTime)
+ var curDryTime = item.totalTime - totalTime
- if (curDryTime > 0) {
+ if (curDryTime > 0) {
+ progressSeries.push({
+ name: item.moisture,
+ type: 'bar',
+ stack: 'total',
+ label: {
+ show: true,
+ },
+ emphasis: {
+ focus: 'series',
+ },
+ data: [item.totalTime - totalTime],
+ })
+ ganZaoXiaoLv.push([curDryTime / 2 + totalTime, (((beforeWeight - item.weight) / curDryTime) * 60).toFixed(1)])
+
+ totalTime = item.totalTime
+ }
+ beforeWeight = item.weight
+ })
+
+ if (res.remain) {
+ if (res.dryTime - totalTime > 0) {
+ progressSeries.push({
+ name: '褰撳墠',
+ type: 'bar',
+ stack: 'total',
+ label: {
+ show: true,
+ },
+ emphasis: {
+ focus: 'series',
+ },
+ data: [
+ {
+ value: res.dryTime - totalTime,
+ },
+ ],
+ })
+ }
+
+ // ganZaoXiaoLv.push([totalTime + res.remain,standard.value.xiaolv])
+
+ res.totalRemain = res.remain - (res.dryTime - totalTime) > 0 ? res.remain - (res.dryTime - totalTime) : 0
progressSeries.push({
- name: item.moisture,
- type: 'bar',
- stack: 'total',
- label: {
- show: true,
- },
- emphasis: {
- focus: 'series',
- },
- data: [item.totalTime - totalTime],
- })
- ganZaoXiaoLv.push([curDryTime / 2 + totalTime, (((beforeWeight - item.weight) / curDryTime) * 60).toFixed(1)])
-
- totalTime = item.totalTime
- }
- beforeWeight = item.weight
- })
-
- if (res.remain) {
- if (res.dryTime - totalTime > 0) {
- progressSeries.push({
- name: '褰撳墠',
+ name: '鍓╀綑',
type: 'bar',
stack: 'total',
label: {
@@ -1434,308 +1448,282 @@
},
data: [
{
- value: res.dryTime - totalTime,
+ value: res.remain - (res.dryTime - totalTime),
+ itemStyle: {
+ color: '#c0c0c0',
+ },
},
],
})
}
- // ganZaoXiaoLv.push([totalTime + res.remain,standard.value.xiaolv])
-
- res.totalRemain = res.remain - (res.dryTime - totalTime)>0?res.remain - (res.dryTime - totalTime):0
- progressSeries.push({
- name: '鍓╀綑',
- type: 'bar',
- stack: 'total',
- label: {
- show: true,
- },
- emphasis: {
- focus: 'series',
- },
- data: [
+ /**骞茬嚗杩涘害 */
+ if (progressBarChart) {
+ //console.log(`output->progressSeries`, progressSeries)
+ progressBarChart.setOption(
{
- value: res.remain - (res.dryTime - totalTime),
- itemStyle: {
- color: '#c0c0c0',
+ xAxis: {
+ max: totalTime + res.remain,
},
+ series: progressSeries,
},
- ],
- })
+ { replaceMerge: ['series'] }
+ )
+ }
-
-
- }
-
- /**骞茬嚗杩涘害 */
- if (progressBarChart) {
- //console.log(`output->progressSeries`, progressSeries)
- progressBarChart.setOption(
- {
+ res.totalTime = totalTime + res.remain
+ /**骞茬嚗鏁堢巼銆佹秷鑰� */
+ if (efficiencyLineChart) {
+ //console.log(`output->ganZaoXiaoLv`, ganZaoXiaoLv)
+ efficiencyLineChart.setOption({
xAxis: {
max: totalTime + res.remain,
},
- series: progressSeries,
- },
- { replaceMerge: ['series'] }
- )
+ series: [
+ {
+ data: ganZaoXiaoLv,
+ markLine: {
+ symbol: 'none',
+ data: [
+ {
+ name: '棰濆畾',
+ yAxis: standard.value.xiaolv,
+ },
+ ],
+ label: {
+ formatter: '{b}\n{c}',
+ color: '#fff',
+ },
+ },
+ },
+ { data: zhengQiXiaoHao },
+ { data: dianNengXiaoHao },
+ ],
+ })
+ }
+
+ res.moisList.push([res.dryTime, res.trendVo.moisture])
}
- res.totalTime = totalTime + res.remain
- /**骞茬嚗鏁堢巼銆佹秷鑰� */
- if (efficiencyLineChart) {
- //console.log(`output->ganZaoXiaoLv`, ganZaoXiaoLv)
- efficiencyLineChart.setOption({
- xAxis: {
- max: totalTime + res.remain,
- },
- series: [{ data: ganZaoXiaoLv,
- markLine: {
- symbol: 'none',
- data: [
- {
- name: '棰濆畾',
- yAxis: standard.value.xiaolv,
+ /**娓╁害瓒嬪娍 */
+ if (res && res.bellowsTemp) {
+ Array.from(Object.entries(res.bellowsTemp))
+ var arr = Object.keys(res.bellowsTemp)
+ var temArr = []
+ arr.forEach((item) => {
+ temArr.push([item * 1, res.bellowsTemp[item]])
+ })
+
+ //console.log(`output->arr` + JSON.stringify(temArr))
+ res.tempArr = temArr
+ }
+
+ /**骞茬嚗杩囩▼瓒嬪娍 */
+ if (moisChart) {
+ //console.log(`output->鏇存柊chart`)
+ moisChart.setOption({
+ series: [
+ {
+ data: res.moisList,
+ markLine: {
+ symbol: 'none',
+ data: [
+ {
+ name: '鐩爣',
+ yAxis: res.target,
+ },
+ ],
+ label: {
+ formatter: '{b}\n{c}%',
+ color: '#fff',
},
- ],
- label: {
- formatter: '{b}\n{c}',
- color: '#fff'
},
- } },
- { data: zhengQiXiaoHao },
- { data: dianNengXiaoHao }],
+ },
+ {
+ data: res.tempArr,
+ },
+ ],
})
}
- res.moisList.push([res.dryTime, res.trendVo.moisture])
- }
-
- /**娓╁害瓒嬪娍 */
- if (res && res.bellowsTemp) {
- Array.from(Object.entries(res.bellowsTemp))
- var arr = Object.keys(res.bellowsTemp)
- var temArr = []
- arr.forEach((item) => {
- temArr.push([item * 1, res.bellowsTemp[item]])
- })
-
- //console.log(`output->arr` + JSON.stringify(temArr))
- res.tempArr = temArr
- }
-
- /**骞茬嚗杩囩▼瓒嬪娍 */
- if (moisChart) {
- //console.log(`output->鏇存柊chart`)
- moisChart.setOption({
- series: [
- {
- data: res.moisList,
- markLine: {
- symbol: 'none',
- data: [
- {
- name: '鐩爣',
- yAxis: res.target,
- },
- ],
- label: {
- formatter: '{b}\n{c}%',
- color: '#fff'
- },
- },
- },
- {
- data: res.tempArr,
- },
- ],
- })
- }
-
- /**鏁堢巼瀵规瘮鍥� */
- if( (res.originWeight - res.yield) <= 0) {
- res.xiaolv = standard.value.xiaolv + 6
- } else {
- res.xiaolv = (((res.originWeight - res.yield) / res.dryTime) * 60).toFixed(2)
- }
-
- if (res.xiaolv > standard.value.xiaolv) {
- res.xlgood = true
- res.xlsHeight = (standard.value.xiaolv / res.xiaolv) * 100 + '%'
- res.xlrHeight = '100%'
- } else if (res.xiaolv < standard.value.xlMin) {
- res.xlbad = true
- res.xlsHeight = '100%'
- res.xlrHeight = (res.xiaolv / standard.value.xiaolv) * 100 + '%'
- } else {
- res.xlsHeight = '100%'
- res.xlrHeight = (res.xiaolv / standard.value.xiaolv) * 100 + '%'
- }
-
-
-
- /** 钂告苯娑堣�� */
- if( (res.originWeight - res.yield) <= 0) {
- res.zhengqi = standard.value.zhengqi -3
- } else {
- res.zhengqi = (res.steam / (res.originWeight - res.yield)).toFixed(1)
- }
- //console.log('zhengqi:', res.zhengqi);
- if (res.zhengqi > standard.value.zhengqi) {
- res.zqbad = true
- res.zqsHeight = (standard.value.zhengqi / res.zhengqi) * 100 + '%'
- res.zqrHeight = '100%'
- } else if (res.zhengqi < standard.value.zqMin) {
- res.zqgood = true
- res.zqsHeight = '100%'
- res.zqrHeight = (res.zhengqi / standard.value.zhengqi) * 100 + '%'
- } else {
- res.zqsHeight = '100%'
- res.zqrHeight = (res.zhengqi / standard.value.zhengqi) * 100 + '%'
- }
-
-
-
- /** 鐢佃兘娑堣�� */
- if( (res.originWeight - res.yield) <= 0) {
- res.dian = standard.value.dian -1.5
- } else {
- res.dian = (res.watt / (res.originWeight - res.yield)).toFixed(1)
- }
-
- if (res.dian > standard.value.dian) {
- res.dnbad = true
- res.dnsHeight = (standard.value.dian / res.dian) * 100 + '%'
- res.dnrHeight = '100%'
- } else if (res.dian < standard.value.dMin) {
-
- res.dngood = true
- res.dnsHeight = '100%'
- res.dnrHeight = (res.dian / standard.value.dian) * 100 + '%'
- } else {
- res.dnsHeight = '100%'
- res.dnrHeight = (res.dian / standard.value.dian) * 100 + '%'
- }
-
- console.log("state:::fan::", res.state_fan,"roller::", res.state_roller,"windbox::", res.state_windbox);
- console.log("===========================");
- //console.log("state:::state_windbox::", res.state_windbox);
-
- /**鐘舵��/gif鍔ㄥ浘 */
- if (!shangliaoFlag) {
- if (res.orderStatus == 0) {
- statusGif = 'zanting'
- statusTxt = '鍑嗗'
- } else if (res.orderStatus == 1) {
- shangliaoFlag = true
- statusGif = 'kaimen1'
- statusTxt = '涓婃枡'
- setTimeout(chaiwangban,4000)
- } else if (res.orderStatus == 2) {
- if(res.state_fan == 1) {
- statusGif = 'tmrefeng2'
- statusTxt = '姝e湪骞茬嚗'
+ /**鏁堢巼瀵规瘮鍥� */
+ if (res.originWeight - res.yield <= 0) {
+ res.xiaolv = standard.value.xiaolv + 6
+ } else {
+ res.xiaolv = (((res.originWeight - res.yield) / res.dryTime) * 60).toFixed(2)
}
- if(res.state_roller == 4) {
- statusGif = 'fanliao-N'
- statusTxt = '姝e湪缈绘枡'
+ if (res.xiaolv > standard.value.xiaolv) {
+ res.xlgood = true
+ res.xlsHeight = (standard.value.xiaolv / res.xiaolv) * 100 + '%'
+ res.xlrHeight = '100%'
+ } else if (res.xiaolv < standard.value.xlMin) {
+ res.xlbad = true
+ res.xlsHeight = '100%'
+ res.xlrHeight = (res.xiaolv / standard.value.xiaolv) * 100 + '%'
+ } else {
+ res.xlsHeight = '100%'
+ res.xlrHeight = (res.xiaolv / standard.value.xiaolv) * 100 + '%'
}
- if (res.state_roller == 5) {
- statusGif = 'chuliao-N'
- statusTxt = '姝e湪鍑烘枡'
+ /** 钂告苯娑堣�� */
+ if (res.originWeight - res.yield <= 0) {
+ res.zhengqi = standard.value.zhengqi - 3
+ } else {
+ res.zhengqi = (res.steam / (res.originWeight - res.yield)).toFixed(1)
}
-
- if (res.state_windbox == 2 || res.state_windbox == 3) {
- statusGif = 'fengxiangsheng-1'
- statusTxt = '姝e湪骞茬嚗'
+ //console.log('zhengqi:', res.zhengqi);
+ if (res.zhengqi > standard.value.zhengqi) {
+ res.zqbad = true
+ res.zqsHeight = (standard.value.zhengqi / res.zhengqi) * 100 + '%'
+ res.zqrHeight = '100%'
+ } else if (res.zhengqi < standard.value.zqMin) {
+ res.zqgood = true
+ res.zqsHeight = '100%'
+ res.zqrHeight = (res.zhengqi / standard.value.zhengqi) * 100 + '%'
+ } else {
+ res.zqsHeight = '100%'
+ res.zqrHeight = (res.zhengqi / standard.value.zhengqi) * 100 + '%'
}
- } else if(res.orderStatus == 3) {
- statusGif = 'zanting'
- statusTxt = '鏆傚仠'
- } else if(res.orderStatus == 4) {
- statusGif = 'zanting'
- statusTxt = '骞茬嚗瀹屾垚'
- }
- }
-
-
- if (compareChart) {
- compareChart.setOption({
- yAxis: {
- data: res.compEqpNum
- },
- series: {
- data: res.compEqpEffic
+ /** 鐢佃兘娑堣�� */
+ if (res.originWeight - res.yield <= 0) {
+ res.dian = standard.value.dian - 1.5
+ } else {
+ res.dian = (res.watt / (res.originWeight - res.yield)).toFixed(1)
+ }
+
+ if (res.dian > standard.value.dian) {
+ res.dnbad = true
+ res.dnsHeight = (standard.value.dian / res.dian) * 100 + '%'
+ res.dnrHeight = '100%'
+ } else if (res.dian < standard.value.dMin) {
+ res.dngood = true
+ res.dnsHeight = '100%'
+ res.dnrHeight = (res.dian / standard.value.dian) * 100 + '%'
+ } else {
+ res.dnsHeight = '100%'
+ res.dnrHeight = (res.dian / standard.value.dian) * 100 + '%'
+ }
+
+ //console.log('state:::fan::', res.state_fan, 'roller::', res.state_roller, 'windbox::', res.state_windbox)
+ //console.log('===========================')
+ //console.log("state:::state_windbox::", res.state_windbox);
+
+ /**鐘舵��/gif鍔ㄥ浘 */
+ if (!shangliaoFlag) {
+ if (res.orderStatus == 0) {
+ statusGif = 'zanting'
+ statusTxt = '鍑嗗'
+ } else if (res.orderStatus == 1) {
+ shangliaoFlag = true
+ statusGif = 'kaimen1'
+ statusTxt = '涓婃枡'
+ setTimeout(chaiwangban, 4000)
+ } else if (res.orderStatus == 2) {
+ if (res.state_fan == 1) {
+ statusGif = 'tmrefeng2'
+ statusTxt = '姝e湪骞茬嚗'
+ }
+
+ if (res.state_roller == 4) {
+ statusGif = 'fanliao-N'
+ statusTxt = '姝e湪缈绘枡'
+ }
+
+ if (res.state_roller == 5) {
+ statusGif = 'chuliao-N'
+ statusTxt = '姝e湪鍑烘枡'
+ }
+
+ if (res.state_windbox == 2 || res.state_windbox == 3) {
+ statusGif = 'fengxiangsheng-1'
+ statusTxt = '姝e湪骞茬嚗'
+ }
+ } else if (res.orderStatus == 3) {
+ statusGif = 'zanting'
+ statusTxt = '鏆傚仠'
+ } else if (res.orderStatus == 4) {
+ statusGif = 'zanting'
+ statusTxt = '骞茬嚗瀹屾垚'
}
- })
+ }
+
+ if (compareChart) {
+ compareChart.setOption({
+ yAxis: {
+ data: res.compEqpNum,
+ },
+ series: {
+ data: res.compEqpEffic,
+ },
+ })
+ }
+
+ res.herbImage = 'yaocai1.png'
+
+ if (res.herbName == '鐧借姳铔囪垖鑽�') {
+ res.herbImage = 'baihuasheshecao.png'
+ } else if (res.herbName == '绯ョɑ鏍�') {
+ res.herbImage = 'nuodaogen.png'
+ } else if (res.herbName == '娣緤钘�') {
+ res.herbImage = 'yinyanghuo.png'
+ } else if (res.herbName == '椹娇鑻�') {
+ res.herbImage = 'machixian.png'
+ } else if (res.herbName == '澧ㄦ棻鑾�') {
+ res.herbImage = 'mohanlian.png'
+ } else if (res.herbName == '妗戠櫧鐨�') {
+ res.herbImage = 'sangbaipi.png'
+ }
+ res.isError = false
+
+ res.errorMsg = '鏈変竴涓晠闅滐紝璇锋鏌ャ��'
+ } else {
+ res = {
+ mois: [],
+ gif: 'tmrefeng2',
+ herbImage: 'yaocai1.png',
+ }
}
- res.herbImage = 'yaocai1.png'
-
- if (res.herbName == '鐧借姳铔囪垖鑽�') {
- res.herbImage = 'baihuasheshecao.png'
- } else if (res.herbName == '绯ョɑ鏍�') {
- res.herbImage = 'nuodaogen.png'
- } else if (res.herbName == '娣緤钘�') {
- res.herbImage = 'yinyanghuo.png'
- } else if (res.herbName == '椹娇鑻�') {
- res.herbImage = 'machixian.png'
- } else if (res.herbName == '澧ㄦ棻鑾�') {
- res.herbImage = 'mohanlian.png'
- } else if (res.herbName == '妗戠櫧鐨�') {
- res.herbImage = 'sangbaipi.png'
- }
- res.isError = false
-
- res.errorMsg = '鏈変竴涓晠闅滐紝璇锋鏌ャ��'
- } else {
- res = {
- mois: [],
- gif: 'tmrefeng2',
- herbImage: 'yaocai1.png'
- }
- }
-
- //console.log(`output->res`, res)
- realData.value = res
- })
- }
+ //console.log(`output->res`, res)
+ realData.value = res
+ })
+ }
}
- var move = true;
- function moveImage() {
-
- if (move) {
- position.value -= 0.3
- } else {
- position.value += 0.3
- }
- if(position.value < -240 ) {
- move = false
- }
- if (position.value > -1) {
- move = true
- }
+ var move = true
+ function moveImage() {
+ if (move) {
+ position.value -= 0.3
+ } else {
+ position.value += 0.3
+ }
+ if (position.value < -240) {
+ move = false
+ }
+ if (position.value > -1) {
+ move = true
+ }
+ }
-
- }
+ function back() {
+ router.back()
+ }
- listAllEqp()
+ listAllEqp()
//queryEqp()
// DOM鎸傝浇瀹屾垚鍚庢覆鏌撳浘琛�
onMounted(() => {
Timer.value = setInterval(queryRealTime, 3000)
- Timer2.value = setInterval(moveImage, 50)
+ Timer2.value = setInterval(moveImage, 50)
})
onUnmounted(() => {
clearInterval(Timer.value)
- clearInterval(Timer2.value)
+ clearInterval(Timer2.value)
Timer.value = null
- Timer2.value = null
+ Timer2.value = null
})
</script>
@@ -1748,12 +1736,12 @@
.eqpImage {
height: 1080px;
width: 1920px;
- background-image: url(/src/assets/images/dry/bg.png);
+ background-image: url(/src/assets/images/dry/bg.png);
background-repeat: no-repeat;
- color: white;
+ color: white;
/*background-position: 160px 280px; */
/* background-color: red; */
- background-size: 120%;
+ background-size: 120%;
padding: 10px;
display: flex;
flex-wrap: wrap;
@@ -1765,8 +1753,8 @@
width: 1200px;
display: flex;
flex-wrap: wrap;
- align-content: flex-start;
-
+ align-content: flex-start;
+
/* background-color: white;
background-image: url(/src/assets/images/dry/shebei1.png);
background-repeat: no-repeat;
@@ -1777,24 +1765,22 @@
.leftTop {
height: 750px;
- width: 850px;
- display: flex;
- justify-content: center;
- align-content: flex-start;
- background-image: url(/src/assets/images/dry/ganzaoji-x.png);
- background-repeat: no-repeat;
- background-size: 79%;
- border-radius: 10px;
- flex-wrap: wrap;
- background-position: 85px 279px;
-
+ width: 850px;
+ display: flex;
+ justify-content: center;
+ align-content: flex-start;
+ background-image: url(/src/assets/images/dry/ganzaoji-x.png);
+ background-repeat: no-repeat;
+ background-size: 79%;
+ border-radius: 10px;
+ flex-wrap: wrap;
+ background-position: 85px 279px;
}
.leftMid {
-
width: 850px;
height: 300px;
/* border: 1px solid; */
- margin-top: 10px;
+ margin-top: 10px;
border-radius: 10px;
/* background: white; */
}
@@ -1802,7 +1788,7 @@
line-height: 33px;
padding-left: 10px;
font-size: 30px;
- color: white;
+ color: white;
}
.subhead {
color: #a19f9c;
@@ -1858,7 +1844,6 @@
align-items: center;
font-size: 30px;
color: #727272;
-
}
.leftTop2 {
width: 250px;
@@ -1983,6 +1968,7 @@
.curEqp {
width: 340px;
height: 170px;
+
/* background: white;
border-radius: 10px; */
}
@@ -1992,7 +1978,7 @@
height: 260px;
/* background: white;
border-radius: 10px; */
-
+
background-repeat: no-repeat;
background-size: 200px;
background-position: 0px 10px;
@@ -2001,7 +1987,7 @@
width: 690px;
height: 440px;
/* background: white; */
-
+
padding: 20px;
border-radius: 10px;
}
diff --git a/src/views/dry/bigScreen/BigWorkShop.vue b/src/views/dry/bigScreen/BigWorkShop.vue
index 4370abf..902e6c9 100644
--- a/src/views/dry/bigScreen/BigWorkShop.vue
+++ b/src/views/dry/bigScreen/BigWorkShop.vue
@@ -1,14 +1,366 @@
<template>
- <dv-full-screen-container>
-
- </dv-full-screen-container>
+ <dv-full-screen-container>
+ <div class="fbg">
+ <div class="bgImage">
+ <div class="head">
+ <div style="width: 600px; height: 50px"> <dv-decoration-8 style="width: 500px; height: 50px" /></div>
+
+ <div class="title">
+ <span>鍏版郸鏅鸿兘骞茬嚗杞﹂棿</span>
+
+ <dv-decoration-5 :dur="20" style="margin-top: -40px; width: 700px; height: 80px" />
+ </div>
+ <div style="width: 600px; height: 50px; display: flex; justify-content: end">
+ <dv-decoration-8 :reverse="true" style="width: 500px; height: 50px"
+ /></div>
+ </div>
+ <div class="body">
+ <div class="humiture">
+ <div style="display: flex; width: 120px">
+ <Icon style="color: #f7b733" icon="solar:temperature-line-duotone" :size="28" />
+
+ <div style="font-size: 20px; line-height: 26px"> 26 鈩� </div>
+ </div>
+ <div style="display: flex">
+ <Icon style="color: #f7b733" icon="material-symbols:humidity-percentage-outline" :size="28" />
+
+ <div style="font-size: 20px; line-height: 26px"> 53 %rh </div>
+ </div>
+ </div>
+ <div class="up">
+ <div v-for="num in eqpNum" :key="num" :class="{ one: num === 1, two: num === 2, three: num === 3, four: num === 4 }">
+ <div class="eqpInfoup" @click="gotoeqp(num - 1)">
+ <div class="eqp-title">
+ <div class="eqp-name">{{ eqpMap.get(eqpCodes[num - 1])?.name || '棰勭暀' }}</div>
+ <!-- <div class="process"> </div> -->
+ <Progress
+ :stroke-color="{
+ from: '#108ee9',
+ to: '#87d068',
+ }"
+ :percent="parseFloat(realTime.get(eqpCodes[num - 1])?.percent || '0')"
+ status="active"
+ trailColor="#2b2b2b2b"
+ :show-info="false"
+ />
+ <!-- <div class="eqp-name">50%</div> -->
+ </div>
+ <div class="eqp-info-up">
+ <div class="herb">{{ realTime.get(eqpCodes[num - 1])?.herbName || '鏆傛棤' }}</div>
+ </div>
+ <div class="water">
+ <div class="temp">
+ <div style="line-height: 28px"><Icon style="color: #2a5a63" icon="ic:twotone-water-drop" :size="28" /> </div>
+ <div class="font">
+ <span class="value"> {{ realTime.get(eqpCodes[num - 1])?.trendVo.moisture || '0' }}</span> %
+ </div>
+ </div>
+ <div class="temp">
+ <div style="line-height: 28px"><Icon style="color: #6c5b7b" icon="solar:temperature-bold-duotone" :size="30" /> </div>
+ <div class="font">
+ <span class="value">{{ realTime.get(eqpCodes[num - 1])?.trendVo.bellowsTemp || '0' }} </span> 鈩�
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="down">
+ <div v-for="num in eqpNum" :key="num" :class="{ one: num === 1, two: num === 2, three: num === 3, four: num === 4 }">
+ <div class="eqpInfodown" @click="gotoeqp(num + 3)">
+ <div class="eqp-info-down">
+ <div class="herb">{{ realTime.get(eqpCodes[num + 3])?.herbName || '鏆傛棤' }}</div>
+ </div>
+ <div class="water">
+ <div class="temp">
+ <div style="line-height: 28px">
+ <Icon style="color: #2a5a63" icon="ic:twotone-water-drop" :size="28" />
+ </div>
+ <div class="font">
+ <span class="value">{{ realTime.get(eqpCodes[num + 3])?.trendVo.moisture || '0' }}</span> %
+ </div>
+ </div>
+ <div class="temp">
+ <div style="line-height: 28px"><Icon style="color: #6c5b7b" icon="solar:temperature-bold-duotone" :size="30" /> </div>
+ <div class="font">
+ <span class="value">{{ realTime.get(eqpCodes[num + 3])?.trendVo.bellowsTemp || '0' }}</span> 鈩�
+ </div>
+ </div>
+ </div>
+
+ <div style="height: 70px"></div>
+ <div class="eqp-title">
+ <!-- <div class="process"> </div> -->
+ <Progress
+ :stroke-color="{
+ from: '#108ee9',
+ to: '#87d068',
+ }"
+ :percent="parseFloat(realTime.get(eqpCodes[num + 3])?.percent || '0')"
+ status="active"
+ trailColor="#2b2b2b2b"
+ :show-info="false"
+ />
+ <!-- <div class="eqp-name">50%</div> -->
+ <div class="eqp-name-down">{{ eqpMap.get(eqpCodes[num + 3])?.name || '棰勭暀' }}</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </dv-full-screen-container>
</template>
<script setup lang="ts">
+ import { Progress } from 'ant-design-vue'
+ import { onMounted, ref, onUnmounted } from 'vue'
+ import { Icon, IconPicker, SvgIcon } from '/@/components/Icon/index'
+ import { listAll } from '../api/DryEquipment.api'
+ import { dryEquipment } from '../dataDefine/DryEquipment.data'
+ import { router } from '/@/router'
+ import { defHttp } from '/@/utils/http/axios'
+ import { useUserStore } from '/@/store/modules/user'
+ const eqpNum = ref(4)
+ const eqpMap = ref(new Map())
+ const eqpCodes = ref(['GM001', 'GM002', 'GM003', 'GM004', 'GM005', 'GM006'])
+ const eqps = ref([] as dryEquipment[])
+ const userStore = useUserStore()
+ const Timer = ref()
+ const realTime = ref(new Map())
+
+ function listAllEqp() {
+ listAll({ enable: 'Y' })
+ .then((result) => {
+ //console.log(`output->result`, result)
+ eqps.value = result
+
+ result.forEach((item) => {
+ eqpMap.value.set(item.code, item)
+ })
+ updateRealTime()
+ })
+ .catch((err) => {
+ console.log(`output->err`, err)
+ })
+ }
+
+ function updateRealTime() {
+ //console.log(`output->瀹氭椂鍒锋柊鏁版嵁`)
+ eqps.value.forEach((item) => {
+ queryRealTime(item)
+ })
+ }
+
+ function queryRealTime(eqp: dryEquipment) {
+ let tenantId = userStore.getTenant
+ let eqpCode = eqp.code
+ let queryRealTimeUrl = '/dry/real/getRealTimeData'
+ defHttp.get({ url: queryRealTimeUrl, params: { tenantid: tenantId, machineid: eqpCode } }).then((res) => {
+ //console.log(`output->res`, res)
+ if (res && res.trendVo) {
+ res.tempValue = [res.windTemp, 100]
+ res.percent = ((res.dryTime / (res.dryTime + res.remain)) * 100).toFixed(2)
+ } else {
+ res = {
+ tempValue: [0, 100],
+ percent: 0,
+ mois: [],
+ }
+ }
+
+ realTime.value.set(eqp.code, res)
+ })
+ }
+ function gotoeqp(num) {
+ if (num < eqpCodes.value.length) {
+ router.push({ path: '/bigEqp', query: { num: num } })
+ }
+ }
+
+ listAllEqp()
+ onMounted(() => {
+ Timer.value = setInterval(updateRealTime, 3000)
+ })
+
+ onUnmounted(() => {
+ clearInterval(Timer.value)
+ Timer.value = null
+ })
</script>
<style scoped>
+ .fbg {
+ height: 1080px;
+ width: 1920px;
+ background-image: url(/src/assets/images/dry/bg/bg5.png);
+ background-repeat: no-repeat;
+ }
+ .bgImage {
+ height: 1080px;
+ width: 1920px;
+ background-image: url(/src/assets/images/dry/bg/wksp2.png);
+ background-repeat: no-repeat;
+ background-size: 100%;
+ background-position: 0% 50%;
+ }
-</style>
\ No newline at end of file
+ .head {
+ display: flex;
+ align-content: center;
+ justify-content: center;
+ }
+
+ .body {
+ height: 980px;
+ width: 100%;
+ margin-top: -100px;
+ font-size: 20px;
+ }
+ .title {
+ height: 200px;
+ padding: 20px;
+ font-size: 30px;
+ font-weight: bold;
+ text-align: center;
+ color: white;
+ }
+
+ .humiture {
+ height: 0px;
+ justify-content: center;
+ color: white;
+ display: flex;
+ }
+
+ .up {
+ padding-left: 100px;
+ padding-top: 00px;
+ display: flex;
+
+ align-content: center;
+ justify-content: flex-start;
+ }
+ .down {
+ padding-left: 392px;
+ margin-top: -334px;
+ display: flex;
+
+ align-content: center;
+ justify-content: flex-start;
+ }
+ .eqpInfoup {
+ width: 280px;
+ height: 300px;
+ margin: 0 41px;
+ display: flex;
+ flex-direction: column;
+ }
+
+ .eqpInfodown {
+ width: 280px;
+ height: 300px;
+ margin: 0 41px;
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-start;
+ }
+
+ .one {
+ margin-top: 280px;
+ }
+
+ .two {
+ margin-top: 220px;
+ }
+
+ .three {
+ margin-top: 160px;
+ }
+
+ .four {
+ margin-top: 100px;
+ }
+
+ .eqp-title {
+ height: 30px;
+ border-radius: 20px;
+ /* background: rgb(182, 182, 182);
+ border: 1px solid green; */
+ width: 100%;
+ }
+
+ .eqp-name {
+ line-height: 30px;
+ text-align: center;
+ color: white;
+ margin-top: -30px;
+ }
+
+ .eqp-name-down {
+ line-height: 40px;
+ text-align: center;
+ color: white;
+ }
+
+ .process {
+ width: 50%;
+ height: 100%;
+ overflow: hidden;
+ border-radius: 20px;
+ background: #3f4c6b;
+ }
+
+ .eqp-info-up {
+ flex: 1;
+ padding-top: 120px;
+ display: flex;
+ }
+
+ .eqp-info-down {
+ flex: 1;
+ padding-top: 50px;
+ display: flex;
+ }
+
+ .herb {
+ height: 30px;
+ background: #3f4c6b;
+ color: white;
+ line-height: 30px;
+ padding: 0 10px;
+ }
+ .water {
+ height: 120px;
+ width: 110px;
+ margin-left: 170px;
+ display: flex;
+ flex-wrap: wrap;
+ align-content: space-evenly;
+ }
+
+ .temp {
+ display: flex;
+ }
+ .font {
+ line-height: 26px;
+ }
+
+ .value {
+ }
+ :deep() .progress {
+ padding: 25px 25px;
+
+ width: 360px;
+ display: flex;
+ }
+ :deep() .ant-progress-bg {
+ height: 25px !important;
+ }
+ :deep() .ant-progress-inner {
+ background-color: rgb(197 197 197 / 52%) !important;
+ }
+</style>
diff --git a/src/views/dry/common/prodRecordReport.vue b/src/views/dry/common/prodRecordReport.vue
new file mode 100644
index 0000000..5ad030f
--- /dev/null
+++ b/src/views/dry/common/prodRecordReport.vue
@@ -0,0 +1,18 @@
+<template>
+ <iframe :src="reportUrl" style="width: 100%; height: 100%"></iframe>
+</template>
+
+<script setup lang="ts">
+ import { onMounted, ref } from 'vue'
+ import { router } from '/@/router'
+ console.log(`output->router1`, router)
+ const reportUrl = ref('')
+ reportUrl.value = window._CONFIG['domianURL'] + '/jmreport/view/833110227445567488?batch=' + router.currentRoute.value.query.batch
+ //reportUrl.value = 'www.baidu.com'
+ console.log(`output->reportUrl.value`, reportUrl.value)
+ // onMounted(() => {
+ // console.log(`output->router`, router)
+ // })
+</script>
+
+<style></style>
diff --git a/src/views/dry/dataDefine/DryEqpType.data.ts b/src/views/dry/dataDefine/DryEqpType.data.ts
index d350469..bfdd10e 100644
--- a/src/views/dry/dataDefine/DryEqpType.data.ts
+++ b/src/views/dry/dataDefine/DryEqpType.data.ts
@@ -1,65 +1,65 @@
-import { BasicColumn, FormSchema } from '/@/components/Table';
-import { rules } from '/@/utils/helper/validator';
+import { BasicColumn, FormSchema } from '/@/components/Table'
+import { rules } from '/@/utils/helper/validator'
//鍒楄〃鏁版嵁
export const columns: BasicColumn[] = [
- {
- title: 'code',
- align: 'center',
- dataIndex: 'code',
- },
- {
- title: 'name',
- align: 'center',
- dataIndex: 'name',
- },
-];
+ {
+ title: '缂栫爜',
+ align: 'center',
+ dataIndex: 'code',
+ },
+ {
+ title: '鍚嶇О',
+ align: 'center',
+ dataIndex: 'name',
+ },
+]
//鏌ヨ鏁版嵁
export const searchFormSchema: FormSchema[] = [
- {
- label: 'code',
- field: 'code',
- component: 'Input',
- colProps: { span: 6 },
- },
- {
- label: 'name',
- field: 'name',
- component: 'Input',
- colProps: { span: 6 },
- },
-];
+ {
+ label: '缂栫爜',
+ field: 'code',
+ component: 'Input',
+ colProps: { span: 6 },
+ },
+ {
+ label: '鍚嶇О',
+ field: 'name',
+ component: 'Input',
+ colProps: { span: 6 },
+ },
+]
//琛ㄥ崟鏁版嵁
export const formSchema: FormSchema[] = [
- {
- label: 'code',
- field: 'code',
- component: 'Input',
- dynamicRules: ({ model, schema }) => {
- return [{ required: true, message: '璇疯緭鍏ode!' }, { ...rules.duplicateCheckRule('dry_eqp_type', 'code', model, schema)[0] }];
- },
- },
- {
- label: 'name',
- field: 'name',
- component: 'Input',
- dynamicRules: ({ model, schema }) => {
- return [{ required: true, message: '璇疯緭鍏ame!' }, { ...rules.duplicateCheckRule('dry_eqp_type', 'name', model, schema)[0] }];
- },
- },
- // TODO 涓婚敭闅愯棌瀛楁锛岀洰鍓嶅啓姝讳负ID
- {
- label: '',
- field: 'id',
- component: 'Input',
- show: false,
- },
-];
+ {
+ label: '缂栫爜',
+ field: 'code',
+ component: 'Input',
+ dynamicRules: ({ model, schema }) => {
+ return [{ required: true, message: '璇疯緭鍏ョ紪鐮�!' }, { ...rules.duplicateCheckRule('dry_eqp_type', 'code', model, schema)[0] }]
+ },
+ },
+ {
+ label: '鍚嶇О',
+ field: 'name',
+ component: 'Input',
+ dynamicRules: ({ model, schema }) => {
+ return [{ required: true, message: '璇疯緭鍏ュ悕绉�!' }, { ...rules.duplicateCheckRule('dry_eqp_type', 'name', model, schema)[0] }]
+ },
+ },
+ // TODO 涓婚敭闅愯棌瀛楁锛岀洰鍓嶅啓姝讳负ID
+ {
+ label: '',
+ field: 'id',
+ component: 'Input',
+ show: false,
+ },
+]
/**
* 娴佺▼琛ㄥ崟璋冪敤杩欎釜鏂规硶鑾峰彇formSchema
* @param param
*/
export function getBpmFormSchema(_formData): FormSchema[] {
- // 榛樿鍜屽師濮嬭〃鍗曚繚鎸佷竴鑷� 濡傛灉娴佺▼涓厤缃簡鏉冮檺鏁版嵁锛岃繖閲岄渶瑕佸崟鐙鐞唂ormSchema
- return formSchema;
+ // 榛樿鍜屽師濮嬭〃鍗曚繚鎸佷竴鑷� 濡傛灉娴佺▼涓厤缃簡鏉冮檺鏁版嵁锛岃繖閲岄渶瑕佸崟鐙鐞唂ormSchema
+ return formSchema
}
diff --git a/src/views/dry/dataDefine/DryOrder.data.ts b/src/views/dry/dataDefine/DryOrder.data.ts
index 959d62c..e11c75c 100644
--- a/src/views/dry/dataDefine/DryOrder.data.ts
+++ b/src/views/dry/dataDefine/DryOrder.data.ts
@@ -23,6 +23,16 @@
dataIndex: 'herbId_dictText',
},
{
+ title: '璁惧',
+ align: 'center',
+ dataIndex: 'equId_dictText',
+ },
+ {
+ title: '杞﹂棿',
+ align: 'center',
+ dataIndex: 'shopId_dictText',
+ },
+ {
title: '鍒濆鍚按鐜�',
align: 'center',
dataIndex: 'initial',
@@ -87,16 +97,7 @@
align: 'center',
dataIndex: 'remain',
},
- {
- title: '璁惧',
- align: 'center',
- dataIndex: 'equId_dictText',
- },
- {
- title: '杞﹂棿',
- align: 'center',
- dataIndex: 'shopId_dictText',
- },
+
{
title: '宸ュ崟鐘舵��',
align: 'center',
@@ -153,71 +154,71 @@
dictCode: 'dry_herb,name,id,tenant_id=' + getTenantId(),
},
},
- {
- label: '鍒濆鍚按鐜�',
- field: 'initial',
- component: 'InputNumber',
- },
- {
- label: '鐩爣鍚按鐜�',
- field: 'target',
- component: 'InputNumber',
- },
+ // {
+ // label: '鍒濆鍚按鐜�',
+ // field: 'initial',
+ // component: 'InputNumber',
+ // },
+ // {
+ // label: '鐩爣鍚按鐜�',
+ // field: 'target',
+ // component: 'InputNumber',
+ // },
{
label: '鎶曟枡閲�',
field: 'feed',
component: 'InputNumber',
},
- {
- label: '鍘熷閲嶉噺',
- field: 'originWeight',
- component: 'InputNumber',
- },
- {
- label: '棰勮骞茬嚗鏃堕棿',
- field: 'et',
- component: 'InputNumber',
- },
- {
- label: '骞叉枡閲嶉噺',
- field: 'yield',
- component: 'InputNumber',
- },
- {
- label: '骞茬嚗鏃堕棿',
- field: 'dryTime',
- component: 'InputNumber',
- },
- {
- label: '鐑娓╁害',
- field: 'windTemp',
- component: 'InputNumber',
- },
- {
- label: '鐜娓╁害',
- field: 'envTemp',
- component: 'InputNumber',
- },
- {
- label: '鐜婀垮害',
- field: 'envHum',
- component: 'InputNumber',
- },
- {
- label: '鑽℃枡寤舵椂锛坢s锛�',
- field: 'delay',
- component: 'InputNumber',
- },
- {
- label: '缈绘枡娆℃暟',
- field: 'turn',
- component: 'InputNumber',
- },
- {
- label: '棰勮鍓╀綑鏃堕棿',
- field: 'remain',
- component: 'InputNumber',
- },
+ // {
+ // label: '鍘熷閲嶉噺',
+ // field: 'originWeight',
+ // component: 'InputNumber',
+ // },
+ // {
+ // label: '棰勮骞茬嚗鏃堕棿',
+ // field: 'et',
+ // component: 'InputNumber',
+ // },
+ // {
+ // label: '骞叉枡閲嶉噺',
+ // field: 'yield',
+ // component: 'InputNumber',
+ // },
+ // {
+ // label: '骞茬嚗鏃堕棿',
+ // field: 'dryTime',
+ // component: 'InputNumber',
+ // },
+ // {
+ // label: '鐑娓╁害',
+ // field: 'windTemp',
+ // component: 'InputNumber',
+ // },
+ // {
+ // label: '鐜娓╁害',
+ // field: 'envTemp',
+ // component: 'InputNumber',
+ // },
+ // {
+ // label: '鐜婀垮害',
+ // field: 'envHum',
+ // component: 'InputNumber',
+ // },
+ // {
+ // label: '鑽℃枡寤舵椂锛坢s锛�',
+ // field: 'delay',
+ // component: 'InputNumber',
+ // },
+ // {
+ // label: '缈绘枡娆℃暟',
+ // field: 'turn',
+ // component: 'InputNumber',
+ // },
+ // {
+ // label: '棰勮鍓╀綑鏃堕棿',
+ // field: 'remain',
+ // component: 'InputNumber',
+ // },
{
label: '璁惧',
field: 'equId',
@@ -234,19 +235,19 @@
dictCode: 'dry_shop,name,id,tenant_id=' + getTenantId(),
},
},
- {
- label: '宸ュ崟鐘舵��',
- field: 'orderStatus',
- component: 'InputNumber',
- },
- {
- label: '鎿嶄綔浜�',
- field: 'operator',
- component: 'JDictSelectTag',
- componentProps: {
- dictCode: 'sys_user,realname,id,tenant_id=' + getTenantId(),
- },
- },
+ // {
+ // label: '宸ュ崟鐘舵��',
+ // field: 'orderStatus',
+ // component: 'InputNumber',
+ // },
+ // {
+ // label: '鎿嶄綔浜�',
+ // field: 'operator',
+ // component: 'JDictSelectTag',
+ // componentProps: {
+ // dictCode: 'sys_user,realname,id,tenant_id=' + getTenantId(),
+ // },
+ // },
// TODO 涓婚敭闅愯棌瀛楁锛岀洰鍓嶅啓姝讳负ID
{
label: '',
diff --git a/src/views/dry/monitor/Eqp.vue b/src/views/dry/monitor/Eqp.vue
index ff09a46..461bb0e 100644
--- a/src/views/dry/monitor/Eqp.vue
+++ b/src/views/dry/monitor/Eqp.vue
@@ -1,14 +1,12 @@
<template>
- <div class="eqpBox">
+ <div class="eqpBox">
<div class="eqpRow">
- <div class="eqpImage" >
-
+ <div class="eqpImage">
<div class="leftEqp">
- <div style="width: 300px; ">
- <div class="herbInfo">
-
+ <div style="width: 300px">
+ <div class="herbInfo">
<dv-border-box7 class="curEqp">
- <div class="eqpName" @click="changeEqp">
+ <div class="eqpName" @click="changeEqp">
<div class="mainInfo" style="font-size: 26px">{{ eqp?.name }}</div>
<div class="subhead">{{ eqp?.type }}</div>
<!-- <dv-decoration-1 style="width:150px;height:60px; margin-left: 20px;" /> -->
@@ -16,28 +14,28 @@
<div class="eqpName">鍨嬪彿锛歿{ eqp.type }}</div> -->
</div>
</dv-border-box7>
- <dv-border-box7 class="curHerb" :style="{'background-image': 'url(/src/assets/images/dry/yaocai/'+realData?.herbImage+')'}">
+ <dv-border-box7 class="curHerb" :style="{ 'background-image': 'url(/src/assets/images/dry/yaocai/' + realData?.herbImage + ')' }">
<div class="eqpName" style="margin-left: 100px">
<div class="mainInfo" style="font-size: 26px">{{ realData?.herbName }}</div>
<div class="subhead">骞茬嚗閰嶆柟</div>
</div>
<div class="formula">
<div class="formulaItem">
- <Icon style="color: powderblue" icon="icon-park-twotone:box" :size="35" />
+ <Icon style="color: powderblue" icon="icon-park-twotone:box" :size="35" />
<div>
<div class="mainInfo2">{{ realData?.feed }}绛�</div>
<div class="subhead2">鎶曟枡閲�</div>
</div>
</div>
<div class="formulaItem">
- <Icon style="color: red" icon="bx:wind" :size="35" />
+ <Icon style="color: red" icon="bx:wind" :size="35" />
<div>
<div class="mainInfo2">{{ realData?.windTemp }}掳C</div>
<div class="subhead2">鐑</div>
</div>
</div>
<div class="formulaItem">
- <Icon style="color: green" icon="tabler:target-arrow" :size="35" />
+ <Icon style="color: green" icon="tabler:target-arrow" :size="35" />
<div>
<div class="mainInfo2">{{ realData?.target }}%</div>
<div class="subhead2">鐩爣</div>
@@ -54,7 +52,7 @@
<div id="fanFreq" style="width: 220px; height: 200px"></div>
</div>
</dv-border-box7> -->
- <dv-border-box7 class="infoChart" style="margin-left: 0px;">
+ <dv-border-box7 class="infoChart" style="margin-left: 0px">
<div class="chartTittle">鍚按鐜�</div>
<div class="outDiv" style="padding-top: 20px">
<div class="leftData">
@@ -81,72 +79,74 @@
</div>
<div class="subhead2" style="margin-top: -37px; padding-left: 172px">瀹炴椂鍚按鐜�</div>
</dv-border-box7>
- </div>
- <dv-border-box7 class="leftTop">
-
- <div class="leftTop0">
- <div class="leftTop1">
- <Icon icon="emojione:hourglass-with-flowing-sand" :size="50" />
- <div>
- <div class="mainInfo">{{ realData?.totalRemain | 0 }}min</div>
- <div class="subhead">鍓╀綑鏃堕棿</div>
- </div>
- </div>
- <div class="leftTop1">
- <Icon icon="bi:fan" :size="50" />
- <div>
- <div class="mainInfo">{{ realData.trendVo?.fanFrequency | 0 }} Hz</div>
- <div class="subhead">椋庢満棰戠巼</div>
- </div>
- </div>
- <div class="leftTop3" :style="{ 'background-image': 'url(/src/assets/images/dry/' + statusGif + '.gif)' }"></div>
- <div class="outDiv eqpStatus">
- <div
- style="
- font-size: 28px;
- margin-top: 60px;
- color: white;
- background-color: #1595ea;
- height: 60px;
- width: 180px;
- line-height: 60px;
- text-align: center;
- border-radius: 5px;
- font-weight: bold;
- "
- >
- {{ statusTxt }}
- </div>
- <div v-if="realData?.isError"
- class="eqpInfoText blingbling"
- style="
- position: absolute;
-
- max-height: 130px;
- max-width: 360px;
- border-radius: 10px;
- background-color: #ce0000;
- color: white;
- padding: 10px;
- "
- >
- <div class="outDiv">
- <div><Icon icon="bx:error" :size="30" /> </div>
- <div><span> {{realData?.errorMsg}}</span></div>
- </div>
- </div>
- </div>
</div>
- </dv-border-box7>
-
- <dv-border-box7 class="infoChart" style="margin-left: 0px; margin-right: 10px;">
- <div class="chartTittle">椋庣娓╁害</div>
- <div class="outDiv">
- <div id="bellowsTemp" style="width: 220px; height: 200px">
- <Icon icon="emojione:hourglass-with-flowing-sand" :size="50" />
+ <dv-border-box7 class="leftTop">
+ <div class="leftTop0">
+ <div class="leftTop1">
+ <Icon icon="emojione:hourglass-with-flowing-sand" :size="50" />
+ <div>
+ <div class="mainInfo">{{ realData?.totalRemain | 0 }}min</div>
+ <div class="subhead">鍓╀綑鏃堕棿</div>
</div>
</div>
- </dv-border-box7>
+ <div class="leftTop1">
+ <Icon icon="bi:fan" :size="50" />
+ <div>
+ <div class="mainInfo">{{ realData.trendVo?.fanFrequency | 0 }} Hz</div>
+ <div class="subhead">椋庢満棰戠巼</div>
+ </div>
+ </div>
+ <div class="leftTop3" :style="{ 'background-image': 'url(/src/assets/images/dry/' + statusGif + '.gif)' }"></div>
+ <div class="outDiv eqpStatus">
+ <div
+ style="
+ font-size: 28px;
+ margin-top: 60px;
+ color: white;
+ background-color: #1595ea;
+ height: 60px;
+ width: 180px;
+ line-height: 60px;
+ text-align: center;
+ border-radius: 5px;
+ font-weight: bold;
+ "
+ >
+ {{ statusTxt }}
+ </div>
+ <div
+ v-if="realData?.isError"
+ class="eqpInfoText blingbling"
+ style="
+ position: absolute;
+
+ max-height: 130px;
+ max-width: 360px;
+ border-radius: 10px;
+ background-color: #ce0000;
+ color: white;
+ padding: 10px;
+ "
+ >
+ <div class="outDiv">
+ <div><Icon icon="bx:error" :size="30" /> </div>
+ <div
+ ><span> {{ realData?.errorMsg }}</span></div
+ >
+ </div>
+ </div>
+ </div>
+ </div>
+ </dv-border-box7>
+
+ <dv-border-box7 class="infoChart" style="margin-left: 0px; margin-right: 10px">
+ <div class="chartTittle">椋庣娓╁害</div>
+ <div class="outDiv">
+ <div id="bellowsTemp" style="width: 220px; height: 200px">
+ <Icon icon="emojione:hourglass-with-flowing-sand" :size="50" />
+ </div>
+ </div>
+ </dv-border-box7>
<dv-border-box7 class="leftMid">
<div class="chartTittle">瀹炴椂杩涘害</div>
<div id="efficiencyLine" style="width: 780px; height: 130px; margin-top: -10px"></div>
@@ -156,7 +156,7 @@
</div>
<div id="progressBar" style="width: 780px; height: 80px"></div>
</dv-border-box7>
-
+
<!-- <div class="outDiv">
<div style="height: 100px; width: 400px">
<Progress
@@ -177,7 +177,6 @@
</div>
<div class="rightInfo">
<div class="rightTop">
-
<dv-border-box7 class="tempMoisChart">
<div :id="'moisChart'" style="width: 550px; height: 320px"></div>
</dv-border-box7>
@@ -241,7 +240,6 @@
</div>
</dv-border-box7>
-
<dv-border-box7 class="infoChart">
<div class="chartTittle"
>钂告苯娑堣��(m鲁/kg)
@@ -254,14 +252,17 @@
<div class="leftData">
<div class="center" style="height: 100%">
<div class="centerText">
- <div class="mainInfo3"><span>{{realData?.steam}}</span>m鲁 </div>
+ <div class="mainInfo3"
+ ><span>{{ realData?.steam }}</span
+ >m鲁
+ </div>
<div class="subhead2">钂告苯鐢ㄩ噺</div>
</div>
</div>
</div>
<div class="rightChart center">
<div class="center compareBar">
- <div class="barTop">{{standard.zhengqi}}</div>
+ <div class="barTop">{{ standard.zhengqi }}</div>
<div class="barBack">
<div class="barDiv" :style="{ height: realData?.zqsHeight }"></div>
</div>
@@ -272,10 +273,14 @@
</div>
</div>
<div class="center compareBar">
- <div class="barTop">{{realData?.zhengqi | 0 }}</div>
+ <div class="barTop">{{ realData?.zhengqi | 0 }}</div>
<div class="barBack">
- <div class="barDiv" :class="{ good: realData?.zqgood, bad: realData?.zqbad }"
- :style="[realData?.zqrHeight && { height: realData?.zqrHeight }]"> </div>
+ <div
+ class="barDiv"
+ :class="{ good: realData?.zqgood, bad: realData?.zqbad }"
+ :style="[realData?.zqrHeight && { height: realData?.zqrHeight }]"
+ >
+ </div>
</div>
<div style="line-height: 18px">
瀹炴椂
@@ -286,7 +291,7 @@
</div>
</div>
</dv-border-box7>
- <dv-border-box7 class="infoChart" >
+ <dv-border-box7 class="infoChart">
<div class="chartTittle">鏁堢巼瀵规瘮</div>
<div class="outDiv" style="padding-top: 10px">
<div id="compare" style="width: 300px; height: 200px"></div>
@@ -304,14 +309,17 @@
<div class="leftData">
<div class="center" style="height: 100%">
<div class="centerText">
- <div class="mainInfo3"><span>{{realData?.watt}}</span>kWh </div>
+ <div class="mainInfo3"
+ ><span>{{ realData?.watt }}</span
+ >kWh
+ </div>
<div class="subhead2">鐢佃兘鐢ㄩ噺</div>
</div>
</div>
</div>
<div class="rightChart center">
<div class="center compareBar">
- <div class="barTop">{{standard.dian}}</div>
+ <div class="barTop">{{ standard.dian }}</div>
<div class="barBack">
<div class="barDiv" :style="{ height: realData?.dnsHeight }"></div>
</div>
@@ -322,10 +330,13 @@
</div>
</div>
<div class="center compareBar">
- <div class="barTop">{{realData?.dian | 0}}</div>
+ <div class="barTop">{{ realData?.dian | 0 }}</div>
<div class="barBack">
- <div class="barDiv" :class="{ good: realData?.dngood, bad: realData?.dnbad }"
- :style="[realData?.dnrHeight && { height: realData?.dnrHeight }]"></div>
+ <div
+ class="barDiv"
+ :class="{ good: realData?.dngood, bad: realData?.dnbad }"
+ :style="[realData?.dnrHeight && { height: realData?.dnrHeight }]"
+ ></div>
</div>
<div style="line-height: 18px">
瀹炴椂
@@ -344,7 +355,7 @@
</template>
<script setup lang="ts">
- import { useFullscreen } from '@vueuse/core';
+ import { useFullscreen } from '@vueuse/core'
import { BorderBox13 as DvBorderBox7 } from '@kjgl77/datav-vue3'
import { router } from '/@/router'
import { onMounted, ref, onUnmounted } from 'vue'
@@ -356,10 +367,10 @@
import { queryById } from '../api/DryEquipment.api'
import { dryEquipment } from '../dataDefine/DryEquipment.data'
import { useUserStore } from '/@/store/modules/user'
- const domRef = ref<Nullable<HTMLElement>>(null);
- const { enter, toggle, exit, isFullscreen } = useFullscreen();
+ const domRef = ref<Nullable<HTMLElement>>(null)
+ const { enter, toggle, exit, isFullscreen } = useFullscreen()
-const { toggle: toggleDom } = useFullscreen(domRef);
+ const { toggle: toggleDom } = useFullscreen(domRef)
const Timer = ref()
const marks = ref<Record<number, any>>({
0: '0掳C',
@@ -464,7 +475,7 @@
99: '',
100: '100掳C',
})
-
+
const eqp = ref({} as dryEquipment)
const userStore = useUserStore()
const realData = ref({})
@@ -513,7 +524,7 @@
text: '鍚按鐜�/娓╁害瓒嬪娍',
textStyle: {
//color: '#fff',
- fontSize: 15
+ fontSize: 15,
},
},
tooltip: {
@@ -590,15 +601,15 @@
areaStyle: {
opacity: 0.2,
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
- {
- offset: 0,
- color: 'rgb(128, 255, 165)'
- },
- {
- offset: 1,
- color: 'rgb(1, 191, 236)'
- }
- ])
+ {
+ offset: 0,
+ color: 'rgb(128, 255, 165)',
+ },
+ {
+ offset: 1,
+ color: 'rgb(1, 191, 236)',
+ },
+ ]),
},
},
{
@@ -616,15 +627,15 @@
areaStyle: {
opacity: 0.2,
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
- {
- offset: 0,
- color: 'rgb(255, 0, 135)'
- },
- {
- offset: 1,
- color: 'rgb(135, 0, 157)'
- }
- ])
+ {
+ offset: 0,
+ color: 'rgb(255, 0, 135)',
+ },
+ {
+ offset: 1,
+ color: 'rgb(135, 0, 157)',
+ },
+ ]),
},
// markLine: {
// data: [
@@ -659,7 +670,7 @@
amplitude: 3,
animationDuration: 5,
//animationDurationUpdate: 0,
- data: [0.56,0.44,0.32],
+ data: [0.56, 0.44, 0.32],
shape:
'path://M828.817,706.209C828.817,881.725,686.98,1024,512,1024c-174.98,0-316.817-142.275-316.817-317.791C195.183,530.74,512,0,512,0s316.817,530.74,316.817,706.209z',
outline: {
@@ -1073,7 +1084,6 @@
},
legend: {
right: 60,
-
},
xAxis: {
show: false,
@@ -1123,18 +1133,17 @@
],
},
markLine: {
- symbol: 'none',
- data: [
- {
- name: '棰濆畾',
- yAxis: standard.value.xiaolv,
- },
- ],
- label: {
- formatter: '{b}\n{c}',
-
- },
- },
+ symbol: 'none',
+ data: [
+ {
+ name: '棰濆畾',
+ yAxis: standard.value.xiaolv,
+ },
+ ],
+ label: {
+ formatter: '{b}\n{c}',
+ },
+ },
// markLine: {
// data: [{ type: 'average', name: 'Avg' }],
// },
@@ -1143,50 +1152,46 @@
}
const compareOption = {
-
- tooltip: {
- trigger: 'axis',
-
+ tooltip: {
+ trigger: 'axis',
+ },
+ grid: {
+ top: '6%',
+ left: '10%',
+ right: '10%',
+ bottom: '3%',
+ containLabel: true,
+ },
+ xAxis: {
+ show: false,
+ type: 'value',
+ },
+ yAxis: {
+ axisLine: {
+ show: false,
+ },
+ axisTick: {
+ show: false,
+ },
+ type: 'category',
+ data: ['1#', '2#', '3#', '4#', '5#', '6#'],
+ },
+ series: [
+ {
+ name: '2011',
+ type: 'bar',
+ barWidth: 10,
+ data: [190, 89, 34, 70, 44, 30],
+ label: {
+ show: true,
+ position: 'right',
+ valueAnimation: true,
+
+ color: '#fff',
},
- grid: {
- top: '6%',
- left: '10%',
- right: '10%',
- bottom: '3%',
- containLabel: true
- },
- xAxis: {
- show: false,
- type: 'value',
-
- },
- yAxis: {
- axisLine: {
- show:false,
- },
- axisTick: {
- show: false,
- },
- type: 'category',
- data: ['1#', '2#', '3#', '4#', '5#', '6#']
- },
- series: [
- {
- name: '2011',
- type: 'bar',
- barWidth: 10,
- data: [190, 89, 34, 70, 44, 30],
- label: {
- show: true,
- position: 'right',
- valueAnimation: true,
-
- color: '#fff'
- }
- },
- ]
- }
-
+ },
+ ],
+ }
option && moisChart.setOption(option)
waterOption && waterChart.setOption(waterOption)
@@ -1198,7 +1203,6 @@
compareOption && compareChart.setOption(compareOption)
}
-
function queryEqp() {
queryById({ id: router.currentRoute.value.params.id }).then((res) => {
// console.log(`output->res`, res)
@@ -1208,29 +1212,26 @@
})
}
-
- var shangliaoFlag = false;
- var statusGif = 'tmrefeng2';
+ var shangliaoFlag = false
+ var statusGif = 'tmrefeng2'
var statusTxt = '姝e湪骞茬嚗'
function chaiwangban() {
statusGif = 'chaiwangban-1'
- setTimeout(shangliao,7000)
-
+ setTimeout(shangliao, 7000)
}
function shangliao() {
- statusGif = "shangliao-N"
- setTimeout(()=>{
- statusGif = "zhuangwangban"
- setTimeout(()=>{
- statusGif = "guanmen1"
- setTimeout(()=>{
+ statusGif = 'shangliao-N'
+ setTimeout(() => {
+ statusGif = 'zhuangwangban'
+ setTimeout(() => {
+ statusGif = 'guanmen1'
+ setTimeout(() => {
shangliaoFlag = false
- },4000)
-
- },5000)
- },13000)
+ }, 4000)
+ }, 5000)
+ }, 13000)
}
function queryRealTime() {
@@ -1238,9 +1239,8 @@
let eqpCode = eqp.value.code
let queryRealTimeUrl = '/dry/real/getRealTimeData'
defHttp.get({ url: queryRealTimeUrl, params: { tenantid: tenantId, machineid: eqpCode } }).then((res) => {
-
if (res && res.trendVo) {
- console.log(`output->re11s`, res)
+ //console.log(`output->re11s`, res)
// res.tempValue = [res.windTemp, 100]
//res.percent = ((res.dryTime / res.et) * 100).toFixed(2)
/**姘存淮鍥惧惈姘撮噺 */
@@ -1341,7 +1341,7 @@
],
})
}
- res.totalRemain = res.remain - (res.dryTime - totalTime)>0?res.remain - (res.dryTime - totalTime):0
+ res.totalRemain = res.remain - (res.dryTime - totalTime) > 0 ? res.remain - (res.dryTime - totalTime) : 0
progressSeries.push({
name: '鍓╀綑',
type: 'bar',
@@ -1387,32 +1387,33 @@
},
yAxis: {
max: function (value) {
-
- console.log("max::",value);
- if (value.max < standard.value.xiaolv + 3) {
- return standard.value.xiaolv + 3
- } else {
- return value.max
- }
- },
-
-
-
+ // console.log("max::",value);
+ if (value.max < standard.value.xiaolv + 3) {
+ return standard.value.xiaolv + 3
+ } else {
+ return value.max
+ }
+ },
},
- series: [{ data: ganZaoXiaoLv,
- markLine: {
- symbol: 'none',
- data: [
- {
- name: '棰濆畾',
- yAxis: standard.value.xiaolv,
+ series: [
+ {
+ data: ganZaoXiaoLv,
+ markLine: {
+ symbol: 'none',
+ data: [
+ {
+ name: '棰濆畾',
+ yAxis: standard.value.xiaolv,
+ },
+ ],
+ label: {
+ formatter: '{b}\n{c}',
},
- ],
- label: {
- formatter: '{b}\n{c}',
-
},
- } }, { data: zhengQiXiaoHao }, { data: dianNengXiaoHao }],
+ },
+ { data: zhengQiXiaoHao },
+ { data: dianNengXiaoHao },
+ ],
})
}
@@ -1460,12 +1461,12 @@
}
/**鏁堢巼瀵规瘮鍥� */
- if( (res.originWeight - res.yield) <= 0) {
- res.xiaolv = standard.value.xiaolv + 6
+ if (res.originWeight - res.yield <= 0) {
+ res.xiaolv = standard.value.xiaolv + 6
} else {
res.xiaolv = (((res.originWeight - res.yield) / res.dryTime) * 60).toFixed(2)
}
-
+
if (res.xiaolv > standard.value.xiaolv) {
res.xlgood = true
res.xlsHeight = (standard.value.xiaolv / res.xiaolv) * 100 + '%'
@@ -1479,15 +1480,13 @@
res.xlrHeight = (res.xiaolv / standard.value.xiaolv) * 100 + '%'
}
-
-
/** 钂告苯娑堣�� */
- if( (res.originWeight - res.yield) <= 0) {
- res.zhengqi = standard.value.zhengqi -3
+ if (res.originWeight - res.yield <= 0) {
+ res.zhengqi = standard.value.zhengqi - 3
} else {
res.zhengqi = (res.steam / (res.originWeight - res.yield)).toFixed(1)
}
- console.log('zhengqi:', res.zhengqi);
+ //console.log('zhengqi:', res.zhengqi);
if (res.zhengqi > standard.value.zhengqi) {
res.zqbad = true
res.zqsHeight = (standard.value.zhengqi / res.zhengqi) * 100 + '%'
@@ -1501,21 +1500,18 @@
res.zqrHeight = (res.zhengqi / standard.value.zhengqi) * 100 + '%'
}
-
-
/** 鐢佃兘娑堣�� */
- if( (res.originWeight - res.yield) <= 0) {
- res.dian = standard.value.dian -1.5
+ if (res.originWeight - res.yield <= 0) {
+ res.dian = standard.value.dian - 1.5
} else {
res.dian = (res.watt / (res.originWeight - res.yield)).toFixed(1)
}
-
+
if (res.dian > standard.value.dian) {
res.dnbad = true
res.dnsHeight = (standard.value.dian / res.dian) * 100 + '%'
res.dnrHeight = '100%'
} else if (res.dian < standard.value.dMin) {
-
res.dngood = true
res.dnsHeight = '100%'
res.dnrHeight = (res.dian / standard.value.dian) * 100 + '%'
@@ -1527,51 +1523,50 @@
/**鐘舵��/gif鍔ㄥ浘 */
if (!shangliaoFlag) {
if (res.orderStatus == 0) {
- statusGif = 'zanting'
- statusTxt = '鍑嗗'
- } else if (res.orderStatus == 1) {
- shangliaoFlag = true
- statusGif = 'kaimen1'
- statusTxt = '涓婃枡'
- setTimeout(chaiwangban,4000)
- } else if (res.orderStatus == 2) {
- if(res.state_fan == 1) {
- statusGif = 'tmrefeng2'
- statusTxt = '姝e湪骞茬嚗'
- }
+ statusGif = 'zanting'
+ statusTxt = '鍑嗗'
+ } else if (res.orderStatus == 1) {
+ shangliaoFlag = true
+ statusGif = 'kaimen1'
+ statusTxt = '涓婃枡'
+ setTimeout(chaiwangban, 4000)
+ } else if (res.orderStatus == 2) {
+ if (res.state_fan == 1) {
+ statusGif = 'tmrefeng2'
+ statusTxt = '姝e湪骞茬嚗'
+ }
- if(res.state_roller == 4) {
- statusGif = 'fanliao-N'
- statusTxt = '姝e湪缈绘枡'
- }
+ if (res.state_roller == 4) {
+ statusGif = 'fanliao-N'
+ statusTxt = '姝e湪缈绘枡'
+ }
- if (res.state_roller == 5) {
- statusGif = 'chuliao-N'
- statusTxt = '姝e湪鍑烘枡'
+ if (res.state_roller == 5) {
+ statusGif = 'chuliao-N'
+ statusTxt = '姝e湪鍑烘枡'
+ }
+
+ if (res.state_windbox == 2 || res.state_windbox == 3) {
+ statusGif = 'fengxiangsheng-1'
+ statusTxt = '姝e湪骞茬嚗'
+ }
+ } else if (res.orderStatus == 3) {
+ statusGif = 'zanting'
+ statusTxt = '鏆傚仠'
+ } else if (res.orderStatus == 4) {
+ statusGif = 'zanting'
+ statusTxt = '骞茬嚗瀹屾垚'
}
-
- if (res.state_windbox == 2 || res.state_windbox == 3) {
- statusGif = 'fengxiangsheng-1'
- statusTxt = '姝e湪骞茬嚗'
- }
- } else if(res.orderStatus == 3) {
- statusGif = 'zanting'
- statusTxt = '鏆傚仠'
- } else if(res.orderStatus == 4) {
- statusGif = 'zanting'
- statusTxt = '骞茬嚗瀹屾垚'
}
- }
-
if (compareChart) {
compareChart.setOption({
yAxis: {
- data: res.compEqpNum
+ data: res.compEqpNum,
},
series: {
- data: res.compEqpEffic
- }
+ data: res.compEqpEffic,
+ },
})
}
@@ -1597,10 +1592,10 @@
res = {
mois: [],
gif: 'tmrefeng2',
- herbImage: 'yaocai1.png'
+ herbImage: 'yaocai1.png',
}
}
- console.log(`output->res`, res)
+ //console.log(`output->res`, res)
realData.value = res
})
}
@@ -1627,7 +1622,7 @@
.eqpImage {
height: 860px;
width: 1800px;
- /* background-image: url(/src/assets/images/dry/bg.png);
+ /* background-image: url(/src/assets/images/dry/bg.png);
background-repeat: no-repeat; */
/*background-position: 160px 280px; */
@@ -1643,7 +1638,7 @@
width: 1080px;
display: flex;
flex-wrap: wrap;
-
+
/* background-color: white;
background-image: url(/src/assets/images/dry/shebei1.png);
background-repeat: no-repeat;
@@ -1665,7 +1660,6 @@
border-radius: 10px;
flex-wrap: wrap;
background-position: -78px 119px;
-
}
.leftTop0 {
height: 600px;
@@ -1676,7 +1670,6 @@
flex-wrap: wrap;
}
.leftMid {
-
width: 780px;
height: 230px;
/* border: 1px solid; */
@@ -1735,7 +1728,6 @@
align-items: center;
font-size: 30px;
color: #727272;
-
}
.leftTop2 {
width: 250px;
@@ -1878,7 +1870,7 @@
width: 590px;
height: 360px;
/* background: white; */
-
+
padding: 20px;
border-radius: 10px;
}
diff --git a/src/views/dry/monitor/WorkShop.vue b/src/views/dry/monitor/WorkShop.vue
index a2ade85..b361f6a 100644
--- a/src/views/dry/monitor/WorkShop.vue
+++ b/src/views/dry/monitor/WorkShop.vue
@@ -85,8 +85,8 @@
:marks="marks"
vertical
/>
- <div
- class="info-text">鐑锛�<span >{{ realTime.get(item.id)?.windTemp | 0 }}</span> 掳C</div
+ <div class="info-text"
+ >鐑锛�<span>{{ realTime.get(item.id)?.windTemp | 0 }}</span> 掳C</div
>
</div>
</div>
@@ -450,13 +450,13 @@
.eqp-content {
height: 100%;
- background-color: #fdfdfd;
- box-shadow: 0px 0px 23px #72727278;
- background-image: url(/src/assets/images/dry/ganzaoji-x.png);
- background-repeat: no-repeat;
- background-size: 60% 60%;
- background-position: 105px 127px;
- border-radius: 8px;
+ background-color: #fdfdfd;
+ box-shadow: 0px 0px 23px #72727278;
+ background-image: url(/src/assets/images/dry/ganzaoji-x.png);
+ background-repeat: no-repeat;
+ background-size: 60% 60%;
+ background-position: 105px 127px;
+ border-radius: 8px;
}
.chart {
@@ -477,13 +477,13 @@
}
.eqpStatus {
width: 170px;
- background-position: -21px 19px;
- background-image: url(/src/assets/images/dry/refeng2.gif);
- background-size: 196px;
- background-repeat: no-repeat;
- display: inline-flex;
- flex-direction: column-reverse;
- padding: 15px;
+ background-position: -21px 19px;
+ background-image: url(/src/assets/images/dry/refeng2.gif);
+ background-size: 196px;
+ background-repeat: no-repeat;
+ display: inline-flex;
+ flex-direction: column-reverse;
+ padding: 15px;
}
.info {
display: flex;
@@ -517,13 +517,13 @@
}
.eqpName {
margin-top: 190px;
- margin-left: 129px;
- width: 95px;
- /* font-size: 14px; */
- font-weight: bold;
- text-align: center;
- background-color: white;
- height: 22px;
+ margin-left: 58px;
+ width: 205px;
+ /* font-size: 14px; */
+ font-weight: bold;
+ text-align: center;
+ background-color: white;
+ height: 22px;
}
.tempChart {
diff --git a/src/views/sys/login/TokenLoginPage.vue b/src/views/sys/login/TokenLoginPage.vue
index 5dd6b81..c64aec6 100644
--- a/src/views/sys/login/TokenLoginPage.vue
+++ b/src/views/sys/login/TokenLoginPage.vue
@@ -5,7 +5,7 @@
<div class="app-loading-dots">
<span class="dot dot-spin"><i></i><i></i><i></i><i></i></span>
</div>
- <div class="app-loading-title">鏅鸿兘涓崏鑽共鐕ョ郴缁�</div>
+ <div class="app-loading-title">鏅鸿兘涓崏鑽共鐕ラ厤鏂圭鐞嗙郴缁�</div>
</div>
</div>
</template>
diff --git a/src/views/system/loginmini/MiniLogin.vue b/src/views/system/loginmini/MiniLogin.vue
index 9ffc1c6..d9b154c 100644
--- a/src/views/system/loginmini/MiniLogin.vue
+++ b/src/views/system/loginmini/MiniLogin.vue
@@ -18,7 +18,7 @@
<div class="aui-form">
<div class="aui-image">
<div>Lanpu</div>
- <div>鍏版郸鏅鸿兘涓崏鑽共鐕ョ郴缁�</div>
+ <div>鏅鸿兘涓崏鑽共鐕ラ厤鏂圭鐞嗙郴缁�</div>
<!-- <div class="aui-image-text">-->
<!-- <img :src="adTextImg" />-->
<!-- </div>-->
--
Gitblit v1.9.3