From 0ed65d2b6b8dbfeaeda4720964ee5fbf3f42197e Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期一, 04 八月 2025 16:03:54 +0800
Subject: [PATCH] feat(bigScreen): 添加大屏故障页面并更新相关路由和权限- 在 pageEnum.ts 中添加 BIG_FAULT 路径 - 在 permissionGuard.ts 中添加 BIG_FAULT_PATH 到白名单路径列表 - 更新路由配置,将 BigFault组件指向新的 BigFault-tjt.vue 文件 - 新增 BigEqp-two.vue 组件,用于展示设备分割图像

---
 src/views/dry/dataDefine/DryEquipment.data.ts |  146 +-
 src/views/dry/bigScreen/BigEqp-two.vue        |   94 +
 src/views/dry/bigScreen/BigEqp-tjt.vue        | 2659 +++++++++++++++++++++++++++++++++++++
 src/views/dry/bigScreen/BigFault-tjt.vue      | 1237 +++++++++++++++++
 src/enums/pageEnum.ts                         |    2 
 .env.production                               |    2 
 src/assets/images/dry/bg/tjtbg@0.5x.png       |    0 
 src/assets/images/dry/bg/tjtbg.png            |    0 
 src/views/dry/bigScreen/BigWorkShop-tjt.vue   |   81 
 src/router/guard/permissionGuard.ts           |    4 
 src/router/routes/index.ts                    |    2 
 11 files changed, 4,096 insertions(+), 131 deletions(-)

diff --git a/.env.production b/.env.production
index 4e0c2bf..c4add44 100644
--- a/.env.production
+++ b/.env.production
@@ -19,7 +19,7 @@
 VITE_GLOB_API_URL=/herb
 
 #鍚庡彴鎺ュ彛鍏ㄨ矾寰勫湴鍧�(蹇呭~)
-VITE_GLOB_DOMAIN_URL=http://127.0.0.1:8800/herb/
+VITE_GLOB_DOMAIN_URL=http://127.0.0.1/herb/
 
 # 鎺ュ彛鐖惰矾寰勫墠缂�
 VITE_GLOB_API_URL_PREFIX=
diff --git a/src/assets/images/dry/bg/tjtbg.png b/src/assets/images/dry/bg/tjtbg.png
new file mode 100644
index 0000000..2769443
--- /dev/null
+++ b/src/assets/images/dry/bg/tjtbg.png
Binary files differ
diff --git a/src/assets/images/dry/bg/tjtbg@0.5x.png b/src/assets/images/dry/bg/tjtbg@0.5x.png
new file mode 100644
index 0000000..88a17e8
--- /dev/null
+++ b/src/assets/images/dry/bg/tjtbg@0.5x.png
Binary files differ
diff --git a/src/enums/pageEnum.ts b/src/enums/pageEnum.ts
index adae3bf..8469fa8 100644
--- a/src/enums/pageEnum.ts
+++ b/src/enums/pageEnum.ts
@@ -5,6 +5,8 @@
   BIG_SCREEN = '/bigScreen',
 
   BIG_EQP = '/bigEqp',
+
+  BIG_FAULT = '/bigFault',
 	// basic home path
 	BASE_HOME = '/dashboard/workshop',
 	// error page path
diff --git a/src/router/guard/permissionGuard.ts b/src/router/guard/permissionGuard.ts
index d535e68..d698ec9 100644
--- a/src/router/guard/permissionGuard.ts
+++ b/src/router/guard/permissionGuard.ts
@@ -15,6 +15,8 @@
 
 const BIG_SCREEN_PATH = PageEnum.BIG_SCREEN;
 
+const BIG_FAULT_PATH = PageEnum.BIG_FAULT;
+
 const BIG_EQP_PATH = PageEnum.BIG_EQP;
 //auth2鐧诲綍璺敱
 const OAUTH2_LOGIN_PAGE_PATH = PageEnum.OAUTH2_LOGIN_PAGE_PATH;
@@ -26,7 +28,7 @@
 
 //update-begin---author:wangshuai ---date:20220629  for锛歔issues/I5BG1I]vue3涓嶆敮鎸乤uth2鐧诲綍------------
 //update-begin---author:wangshuai ---date:20221111  for: [VUEN-2472]鍒嗕韩鍏嶇櫥褰�------------
-const whitePathList: PageEnum[] = [LOGIN_PATH, OAUTH2_LOGIN_PAGE_PATH,SYS_FILES_PATH,BIG_SCREEN_PATH, BIG_EQP_PATH];
+const whitePathList: PageEnum[] = [LOGIN_PATH, OAUTH2_LOGIN_PAGE_PATH,SYS_FILES_PATH,BIG_SCREEN_PATH, BIG_EQP_PATH, BIG_FAULT_PATH];
 //update-end---author:wangshuai ---date:20221111  for: [VUEN-2472]鍒嗕韩鍏嶇櫥褰�------------
 //update-end---author:wangshuai ---date:20220629  for锛歔issues/I5BG1I]vue3涓嶆敮鎸乤uth2鐧诲綍------------
 
diff --git a/src/router/routes/index.ts b/src/router/routes/index.ts
index faef76e..853938a 100644
--- a/src/router/routes/index.ts
+++ b/src/router/routes/index.ts
@@ -84,7 +84,7 @@
 export const BigFault: AppRouteRecordRaw = {
   path: '/bigFault',
   name: 'BigFault',
-  component: () => import('/@/views/dry/bigScreen/BigFault.vue'),
+  component: () => import('/@/views/dry/bigScreen/BigFault-tjt.vue'),
   meta: {
     title: t('big.screen.fault'),
   },
diff --git a/src/views/dry/bigScreen/BigEqp-tjt.vue b/src/views/dry/bigScreen/BigEqp-tjt.vue
index bf99859..0dc81a2 100644
--- a/src/views/dry/bigScreen/BigEqp-tjt.vue
+++ b/src/views/dry/bigScreen/BigEqp-tjt.vue
@@ -3,10 +3,559 @@
 		<div class="eqpBox">
 			<div class="eqpRow">
 				<div class="eqpImage" :style="{ 'background-position': position + 'px' }">
-          <eqp-split :num="eqpNum"></eqp-split>
-          <div style="width: 10px"></div>
-          <eqp-split :num="eqpNum2"></eqp-split>
+					<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>
+									</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="la:box" :size="38" />
+											<div>
+												<div class="mainInfo2">{{ realData?.feed || 0 }} 绛�</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 || 0 }} 掳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 || 0 }} %</div>
+												<div class="subhead2">鐩爣</div>
+											</div>
+										</div>
+									</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;">
+							<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 || 0 }}</span> %
+												</div>
+												<div class="subhead2">鐩爣鍚按鐜�</div>
+											</div>
+										</div>
+										<div class="center" style="height: 50%">
+											<div>
+												<div class="mainInfo3"
+													><span>{{ realData?.initial || 0 }}</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;
 
+											color: white;
+											background-color: #1595ea;
+											height: 60px;
+											width: 180px;
+											line-height: 60px;
+											text-align: center;
+											border-radius: 10px;
+											font-weight: bold;
+										"
+									>
+										{{ statusTxt }}
+									</div>
+<!--									<div v-if="realData?.warning" style=" -->
+<!--											margin-left: 100px;-->
+<!--											font-size: 22px;-->
+<!--											background: sandybrown;-->
+
+<!--											border-radius: 10px;-->
+<!--											line-height: 25px;-->
+<!--											max-width: 500px;-->
+<!--											padding: 15px;-->
+<!--											font-weight: bold;" >-->
+<!--										{{ realData?.warnMsg }}-->
+<!--									</div>-->
+<!--									-->
+
+
+<!--									<div-->
+<!--										v-if="realData?.isError"-->
+<!--										class="eqpInfoText blingbling outDiv"-->
+<!--										style="-->
+<!--											position: absolute;-->
+<!--											font-size: 30px;-->
+<!--											max-height: 200px;-->
+<!--											max-width: 720px;-->
+<!--											margin-top: 300px;-->
+<!--											border-radius: 10px;-->
+<!--											background-color: #ce0000;-->
+<!--											color: white;-->
+<!--											padding: 10px 30px;-->
+<!--										"-->
+<!--									>-->
+<!--										<div class="outDiv">-->
+<!--											<div><Icon icon="bx:error" :size="30" /> </div>-->
+<!--											<div-->
+<!--												><span>{{ realData?.errorMsg }}</span></div-->
+<!--											>-->
+<!--										</div>-->
+<!--									</div>-->
+								</div>
+							</div>
+              <div style="width: 848px; height: 485px; position: absolute;" @click="showFault">
+                <div v-show="zuoqianjiting" class="error-div" style=" top:309px; left:418px">
+                  <div class="blingbling error-marker" ></div>
+                  <div class="error-msg" style="width: 70px;">
+                    &nbsp;&nbsp;宸﹀墠鎬ュ仠
+                  </div>
+                </div>
+                <div v-show="shebeijiting" class="error-div"  style=" top:111px; left:484px">
+                  <div class="blingbling error-marker" ></div>
+                  <div class="error-msg" style=" width: 106px;">
+                    &nbsp;&nbsp;璁惧鎬ュ仠锛堟�伙級
+                  </div>
+                </div>
+                <div v-show="chuliaojiting" class="error-div"  style=" top:300px; left:129px">
+                  <div class="blingbling error-marker" ></div>
+                  <div class="error-msg" style=" width: 70px;">
+                    &nbsp;&nbsp;鍑烘枡鎬ュ仠
+                  </div>
+                </div>
+                <div v-show="mianbanjiting" class="error-div"  style=" top:258px; left:659px">
+                  <div class="blingbling error-marker" ></div>
+                  <div class="error-msg" style=" width: 70px;">
+                    &nbsp;&nbsp;闈㈡澘鎬ュ仠
+                  </div>
+                </div>
+                <div v-show="fengxiangsheng" class="error-div"  style=" top:294px; left:517px">
+                  <div class="blingbling error-marker" ></div>
+                  <div class="error-msg" style=" width: 86px;">
+                    &nbsp;&nbsp;椋庣鍗囧紓甯�
+                  </div>
+                </div>
+                <div v-show="fengxiangjiang" class="error-div"  style=" top:319px; left:517px">
+                  <div class="blingbling error-marker" ></div>
+                  <div class="error-msg" style=" width: 86px;">
+                    &nbsp;&nbsp;椋庣闄嶅紓甯�
+                  </div>
+                </div>
+                <div v-show="fengjiguoliu" class="error-div"  style=" top:335px; left:655px">
+                  <div class="blingbling error-marker" ></div>
+                  <div class="error-msg" style=" width: 70px;">
+                    &nbsp;&nbsp;椋庢満杩囨祦
+                  </div>
+                </div>
+                <div v-show="guntongsheng" class="error-div"  style=" top:198px; left:517px">
+                  <div class="blingbling error-marker" ></div>
+                  <div class="error-msg" style=" width: 86px;">
+                    &nbsp;&nbsp;婊氱瓛鍗囧紓甯�
+                  </div>
+                </div>
+                <div v-show="guntongjiang" class="error-div"  style=" top:223px; left:517px">
+                  <div class="blingbling error-marker" ></div>
+                  <div class="error-msg" style=" width: 86px;">
+                    &nbsp;&nbsp;婊氱瓛闄嶅紓甯�
+                  </div>
+                </div>
+                <div v-show="guntongguoliu" class="error-div"  style=" top:209px; left:642px">
+                  <div class="blingbling error-marker" ></div>
+                  <div class="error-msg" style=" width: 70px;">
+                    &nbsp;&nbsp;婊氱瓛杩囨祦
+                  </div>
+                </div>
+                <div v-show="wendubaojing" class="error-div"  style=" top:234px; left:659px">
+                  <div class="blingbling error-marker" ></div>
+                  <div class="error-msg" style=" width: 70px;">
+                    &nbsp;&nbsp;娓╁害鎶ヨ
+                  </div>
+                </div>
+
+                <div v-show="zuoqianmen" class="error-div"  style=" top:388px; left:415px">
+                  <div class="blingbling warn-marker" ></div>
+                  <div class="warn-msg" style=" width: 80px;">
+                    &nbsp;&nbsp;宸﹀墠闂ㄦ姤璀�
+                  </div>
+                </div>
+                <div v-show="zuohoumen" class="error-div"  style=" top:367px; left:587px">
+                  <div class="blingbling warn-marker" ></div>
+                  <div class="warn-msg" style=" width: 80px;">
+                    &nbsp;&nbsp;宸﹀悗闂ㄦ姤璀�
+                  </div>
+                </div>
+                <div v-show="youqianmen" class="error-div"  style=" top:388px; left:284px">
+                  <div class="blingbling warn-marker" ></div>
+                  <div class="warn-msg" style=" width: 80px;">
+                    &nbsp;&nbsp;鍙冲墠闂ㄦ姤璀�
+                  </div>
+                </div>
+                <div v-show="youhoumen" class="error-div"  style=" top:367px; left:478px">
+                  <div class="blingbling warn-marker" ></div>
+                  <div class="warn-msg" style=" width: 80px;">
+                    &nbsp;&nbsp;鍙冲悗闂ㄦ姤璀�
+                  </div>
+                </div>
+
+                <div v-show="guntongbuzaigaowei" class="error-div"  style=" top:173px; left:517px">
+                  <div class="blingbling warn-marker" ></div>
+                  <div class="warn-msg" style=" width: 100px;">
+                    &nbsp;&nbsp;婊氱瓛涓嶅湪楂樹綅
+                  </div>
+                </div>
+                <div v-show="fengxiangbuzaigaowei" class="error-div"  style=" top:269px; left:517px">
+                  <div class="blingbling warn-marker" ></div>
+                  <div class="warn-msg" style=" width: 100px;">
+                    &nbsp;&nbsp;椋庣涓嶅湪楂樹綅
+                  </div>
+                </div>
+                <div v-show="fengxiangbuzaidiwei" class="error-div"  style=" top:343px; left:517px">
+                  <div class="blingbling warn-marker" ></div>
+                  <div class="warn-msg" style=" width: 100px;">
+                    &nbsp;&nbsp;椋庣涓嶅湪浣庝綅
+                  </div>
+                </div>
+                <div v-show="jiareweichuanganqi" class="error-div"  style=" top:283px; left:642px">
+                  <div class="blingbling warn-marker" ></div>
+                  <div class="warn-msg" style=" width: 126px;">
+                    &nbsp;&nbsp;鍔犵儹浣嶄紶鎰熷櫒鎶ヨ
+                  </div>
+                </div>
+                <div v-show="zuoqianfengxianggaowei" class="error-div"  style=" top:334px; left:362px">
+                  <div class="blingbling warn-marker" ></div>
+                  <div class="warn-msg" style=" width: 126px;">
+                    &nbsp;&nbsp;宸﹀墠椋庣涓嶅湪楂樹綅
+                  </div>
+                </div>
+                <div v-show="zuoqianfengxiangdiwei" class="error-div"  style=" top:334px; left:362px">
+                  <div class="blingbling warn-marker" ></div>
+                  <div class="warn-msg" style=" width: 126px;">
+                    &nbsp;&nbsp;宸﹀墠椋庣涓嶅湪浣庝綅
+                  </div>
+                </div>
+                <div v-show="zuohoufengxianggaowei" class="error-div"  style=" top:309px; left:642px">
+                  <div class="blingbling warn-marker" ></div>
+                  <div class="warn-msg" style=" width: 126px;">
+                    &nbsp;&nbsp;宸﹀悗椋庣涓嶅湪楂樹綅
+                  </div>
+                </div>
+                <div v-show="zuohoufengxiangdiwei" class="error-div"  style=" top:309px; left:642px">
+                  <div class="blingbling warn-marker" ></div>
+                  <div class="warn-msg" style=" width: 126px;">
+                    &nbsp;&nbsp;宸﹀悗椋庣涓嶅湪浣庝綅
+                  </div>
+                </div>
+                <div v-show="youqianfengxianggaowei" class="error-div"  style=" top:272px; left:300px">
+                  <div class="blingbling warn-marker" ></div>
+                  <div class="warn-msg" style=" width: 126px;">
+                    &nbsp;&nbsp;鍙冲墠椋庣涓嶅湪楂樹綅
+                  </div>
+                </div>
+                <div v-show="youqianfengxiangdiwei" class="error-div"  style=" top:272px; left:300px">
+                  <div class="blingbling warn-marker" ></div>
+                  <div class="warn-msg" style=" width: 126px;">
+                    &nbsp;&nbsp;鍙冲墠椋庣涓嶅湪浣庝綅
+                  </div>
+                </div>
+                <div v-show="youhoufengxianggaowei" class="error-div"  style=" top:246px; left:506px">
+                  <div class="blingbling warn-marker" ></div>
+                  <div class="warn-msg" style=" width: 126px;">
+                    &nbsp;&nbsp;鍙冲悗椋庣涓嶅湪楂樹綅
+                  </div>
+                </div>
+                <div v-show="youhoufengxiangdiwei" class="error-div"  style=" top:246px; left:506px">
+                  <div class="blingbling warn-marker" ></div>
+                  <div class="warn-msg" style=" width: 126px;">
+                    &nbsp;&nbsp;鍙冲悗椋庣涓嶅湪浣庝綅
+                  </div>
+                </div>
+                <div v-show="zuoqianguntongdiwei" class="error-div"  style=" top:175px; left:358px">
+                  <div class="blingbling warn-marker" ></div>
+                  <div class="warn-msg" style=" width: 126px;">
+                    &nbsp;&nbsp;宸﹀墠婊氱瓛涓嶅湪浣庝綅
+                  </div>
+                </div>
+                <div v-show="zuohouguntongdiwei" class="error-div"  style=" top:158px; left:643px">
+                  <div class="blingbling warn-marker" ></div>
+                  <div class="warn-msg" style=" width: 126px;">
+                    &nbsp;&nbsp;宸﹀悗婊氱瓛涓嶅湪浣庝綅
+                  </div>
+                </div>
+                <div v-show="youqianguntongdiwei" class="error-div"  style=" top:150px; left:268px">
+                  <div class="blingbling warn-marker" ></div>
+                  <div class="warn-msg" style=" width: 126px;">
+                    &nbsp;&nbsp;鍙冲墠婊氱瓛涓嶅湪浣庝綅
+                  </div>
+                </div>
+                <div v-show="youhouguntongdiwei" class="error-div"  style=" top:135px; left:506px">
+                  <div class="blingbling warn-marker" ></div>
+                  <div class="warn-msg" style=" width: 126px;">
+                    &nbsp;&nbsp;鍙冲悗婊氱瓛涓嶅湪浣庝綅
+                  </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: 230px; height: 230px">
+									<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: 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">{{ realData?.dryTime | 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 style="height: 100px; width: 400px">
+							<Progress
+								:stroke-color="{
+									from: '#108ee9',
+									to: '#87d068',
+								}"
+								:percent="realData?.percent"
+								status="active"
+								:show-info="false"
+							/>
+							<div style="padding-top: 10px; display: flex; justify-content: space-between; font-weight: bold">
+								<span>骞茬嚗 52 Min</span>
+								<span>棰勮 120 Min</span>
+							</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">&gt;{{ realData?.efficAvg?.toFixed(2) }} 浼� </div>
+										<div class="label bad">&lt;{{ ((realData?.efficAvg|0) * 0.9)?.toFixed(2) }} 宸�</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>
+									</div>
+									<div class="rightChart center">
+										<div class="center compareBar">
+											<div class="barTop">{{ realData?.efficAvg?.toFixed(2) }}</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?.toFixed(2) || 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>
+							</dv-border-box7>
+
+							<dv-border-box7 class="infoChart">
+								<div class="chartTittle"
+									>钂告苯娑堣��(m鲁/kg)
+									<div class="rightLabel">
+										<div class="label bad">&gt;{{ realData?.steamAvg?.toFixed(2) }} 宸�</div>
+										<div class="label good">&lt;{{ ((realData?.steamAvg|0) * 0.9).toFixed(2) }} 浼�</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>
+										</div>
+									</div>
+									<div class="rightChart center">
+										<div class="center compareBar">
+											<div class="barTop">{{ realData?.steamAvg?.toFixed(2) }}</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?.toFixed(2) || 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>
+							</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">&gt;{{ realData?.wattAvg?.toFixed(3) }} 宸�</div>
+										<div class="label good">&lt;{{ ((realData?.wattAvg|0) * 0.9).toFixed(3) }} 浼�</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">{{ realData?.wattAvg?.toFixed(3) }}</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?.toFixed(3) || 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>
+						</div>
+					</div>
 				</div>
 			</div>
 		</div>
@@ -15,57 +564,1644 @@
 
 <script setup lang="ts">
 	import { useFullscreen } from '@vueuse/core'
+	import { BorderBox7 as DvBorderBox7 } from '@kjgl77/datav-vue3'
 	import { router } from '/@/router'
 	import { onMounted, ref, onUnmounted } from 'vue'
-
+	import { Progress } from 'ant-design-vue'
+	import * as echarts from 'echarts'
+	import 'echarts-liquidfill'
+	import { Icon, IconPicker, SvgIcon } from '/@/components/Icon/index'
+	import { defHttp } from '/@/utils/http/axios'
+	import { queryById } from '../api/DryEquipment.api'
 	import { dryEquipment } from '../dataDefine/DryEquipment.data'
-  import EqpSplit from "/@/views/dry/bigScreen/EqpSplit.vue";
-
+	import { useUserStore } from '/@/store/modules/user'
+	import { getTenantId, getToken } from '/@/utils/auth'
 
 	const domRef = ref<Nullable<HTMLElement>>(null)
 	const { enter, toggle, exit, isFullscreen } = useFullscreen()
 
 	const { toggle: toggleDom } = useFullscreen(domRef)
-  const position = ref(1)
+	const Timer = ref()
 	const Timer2 = ref()
-
-
+	const marks = ref<Record<number, any>>({
+		0: '0掳C',
+		1: '',
+		2: '',
+		3: '',
+		4: '',
+		5: '',
+		6: '',
+		7: '',
+		8: '',
+		9: '',
+		10: '',
+		11: '',
+		12: '',
+		13: '',
+		14: '',
+		15: '',
+		16: '',
+		17: '',
+		18: '',
+		19: '',
+		20: '',
+		21: '',
+		22: '',
+		23: '',
+		24: '',
+		25: '25掳C',
+		26: '',
+		27: '',
+		28: '',
+		29: '',
+		30: '',
+		31: '',
+		32: '',
+		33: '',
+		34: '',
+		35: '',
+		36: '',
+		37: '',
+		38: '',
+		39: '',
+		40: '',
+		41: '',
+		42: '',
+		43: '',
+		44: '',
+		45: '',
+		46: '',
+		47: '',
+		48: '',
+		49: '',
+		50: '50掳C',
+		51: '',
+		52: '',
+		53: '',
+		54: '',
+		55: '',
+		56: '',
+		57: '',
+		58: '',
+		59: '',
+		60: '',
+		61: '',
+		62: '',
+		63: '',
+		64: '',
+		65: '',
+		66: '',
+		67: '',
+		68: '',
+		69: '',
+		70: '',
+		71: '',
+		72: '',
+		73: '',
+		74: '',
+		75: '75掳C',
+		76: '',
+		77: '',
+		78: '',
+		79: '',
+		80: '',
+		81: '',
+		82: '',
+		83: '',
+		84: '',
+		85: '',
+		86: '',
+		87: '',
+		88: '',
+		89: '',
+		90: '',
+		91: '',
+		92: '',
+		93: '',
+		94: '',
+		95: '',
+		96: '',
+		97: '',
+		98: '',
+		99: '',
+		100: '100掳C',
+	})
+	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 || 0)
-  const eqpNum2 = ref(parseInt(router.currentRoute.value.query.num) + 1 || 1)
+	const eqpNum = ref(router.currentRoute.value.query.num || 1)
+	const userStore = useUserStore()
+	const realData = ref({})
+	const standard = ref({
+		xiaolv: 220,
+		xlMin: 200,
+		zhengqi: 50,
+		zqMin: 45,
+		dian: 8,
+		dMin: 7.5,
+	})
 
+	const position = ref(1)
+	//realData.value.tempValue = [0, 100]
+	realData.value.mois = [0.5, 0.35, 0.2]
+	statusGif = 'tmrefeng2'
+	realData.value.herbImage = 'yaocai1.png'
+	var moisChart: echarts.ECharts
+	var waterChart: echarts.ECharts
 
+	var bellowsTempChart: echarts.ECharts
+	// var fanFreqChart: echarts.ECharts
+	var progressBarChart: echarts.ECharts
+	var efficiencyLineChart: echarts.ECharts
 
-  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 compareChart: echarts.ECharts
+
+  //----------------error----------------
+  const shebeijiting = ref(false)
+  const chuliaojiting = ref(false)
+  const zuoqianjiting = ref(false)
+  const mianbanjiting = ref(false)
+  const fengxiangsheng = ref(false)
+  const fengxiangjiang = ref(false)
+  const fengjiguoliu = ref(false)
+  const guntongsheng = ref(false)
+  const guntongjiang = ref(false)
+  const guntongguoliu = ref(false)
+  const wendubaojing = ref(false)
+  //--------------warning------------
+  const zuoqianmen = ref(false)
+  const zuohoumen = ref(false)
+  const youqianmen = ref(false)
+  const youhoumen = ref(false)
+  const guntongbuzaigaowei = ref(false)
+  const fengxiangbuzaigaowei = ref(false)
+  const fengxiangbuzaidiwei = ref(false)
+  const jiareweichuanganqi = ref(false)
+  const zuoqianfengxianggaowei = ref(false)
+  const zuohoufengxianggaowei = ref(false)
+  const youqianfengxianggaowei = ref(false)
+  const youhoufengxianggaowei = ref(false)
+  const zuoqianfengxiangdiwei = ref(false)
+  const zuohoufengxiangdiwei = ref(false)
+  const youqianfengxiangdiwei = ref(false)
+  const youhoufengxiangdiwei = ref(false)
+  const zuoqianguntongdiwei = ref(false)
+  const zuohouguntongdiwei = ref(false)
+  const youqianguntongdiwei = ref(false)
+  const youhouguntongdiwei = ref(false)
+
+	function initCharts() {
+		let domId = 'moisChart'
+		let chartDom: HTMLElement = document.getElementById(domId) as HTMLElement
+		let waterDom: HTMLElement = document.getElementById('moisture') as HTMLElement
+		let bellowsTempDom: HTMLElement = document.getElementById('bellowsTemp') as HTMLElement
+		// let fanFreqDom: HTMLElement = document.getElementById('fanFreq') as HTMLElement
+		let progressBarDom: HTMLElement = document.getElementById('progressBar') as HTMLElement
+		let efficiencyLineDom: HTMLElement = document.getElementById('efficiencyLine') as HTMLElement
+		// let weightDom: HTMLElement = document.getElementById('weight') as HTMLElement
+		let compaerDom: HTMLElement = document.getElementById('compare') as HTMLElement
+		moisChart = echarts.init(chartDom)
+		waterChart = echarts.init(waterDom)
+		bellowsTempChart = echarts.init(bellowsTempDom)
+		// fanFreqChart = echarts.init(fanFreqDom)
+		progressBarChart = echarts.init(progressBarDom)
+		efficiencyLineChart = echarts.init(efficiencyLineDom)
+		compareChart = echarts.init(compaerDom)
+
+		const option = {
+			color: ['green', 'red'],
+			title: {
+				text: '鍚按鐜�/娓╁害瓒嬪娍',
+				textStyle: {
+					color: '#fff',
+					fontSize: 15,
+				},
+			},
+			tooltip: {
+				trigger: 'axis',
+			},
+			grid: {
+				left: 50,
+				right: 70,
+				top: 50,
+				bottom: 60,
+			},
+			legend: {
+				right: 60,
+				textStyle: {
+					color: '#fff',
+				},
+			},
+			// toolbox: {
+			// 	show: true,
+			// 	feature: {
+			// 		dataZoom: {
+			// 			yAxisIndex: 'none',
+			// 		},
+			// 		dataView: { readOnly: false },
+			// 		magicType: { type: ['line', 'bar'] },
+			// 		restore: {},
+			// 		saveAsImage: {},
+			// 	},
+			// },
+			xAxis: {
+				type: 'value',
+				axisLabel: {
+					color: '#fff',
+				},
+				//boundaryGap: false,
+				// data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
+				min: 0,
+				max: function (value) {
+					if (value.max < 100) {
+						return 100
+					} else {
+						return value.max
+					}
+				},
+				splitLine: {
+					lineStyle: {
+						type: 'dashed',
+						color: ['#2b2b2b'],
+					},
+				},
+			},
+			yAxis: {
+				type: 'value',
+				boundaryGap: ['10%', '10%'],
+				axisLabel: {
+					color: '#fff',
+				},
+				splitLine: {
+					lineStyle: {
+						type: 'dashed',
+						color: ['#2b2b2b'],
+					},
+				},
+				// min: 0,
+				// max: function (value) {
+				// 	if (value.max < 100) {
+				// 		return 100
+				// 	} else {
+				// 		return value.max
+				// 	}
+				// },
+			},
+			// yAxis: {
+			// 	type: 'value',
+			// 	axisLabel: {
+			// 		formatter: '{value} 掳C',
+			// 	},
+			// },
+			series: [
+				{
+					name: '鍚按鐜�',
+					type: 'line',
+					smooth: true,
+					symbol: 'none',
+					data: [
+						
+					],
+					lineStyle: {
+						width: 1,
+					},
+					markLine: {
+						data: [{ type: 'average', name: 'Avg' }],
+					},
+					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)',
+							},
+						]),
+					},
+				},
+				{
+					name: '娓╁害',
+					type: 'line',
+					smooth: true,
+					symbol: 'none',
+					data: [
+						
+					],
+					lineStyle: {
+						width: 1,
+					},
+					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)',
+							},
+						]),
+					},
+					// markLine: {
+					// 	data: [
+					// 		{ type: 'average', name: 'Avg' },
+					// 		[
+					// 			{
+					// 				symbol: 'none',
+					// 				x: '90%',
+					// 				yAxis: 'max',
+					// 			},
+					// 			{
+					// 				symbol: 'circle',
+					// 				label: {
+					// 					position: 'start',
+					// 					formatter: 'Max',
+					// 				},
+					// 				type: 'max',
+					// 				name: '鏈�楂樼偣',
+					// 			},
+					// 		],
+					// 	],
+					// },
+				},
+			],
+		}
+		const waterOption = {
+			series: [
+				{
+					type: 'liquidFill',
+					radius: '100%',
+					//waveAnimation: false,
+					amplitude: 3,
+					animationDuration: 5,
+					//animationDurationUpdate: 0,
+					data: [0, 0, 0],
+					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: {
+						show: false,
+					},
+					label: {
+						// formatter: function () {
+						// 	//console.log(`output->params`,params,mois.value)
+
+						// 	return (
+						// 		'' +
+						// 		// +'鍒濆'+(mois.value[0]*100).toFixed(2) + '%\n\n\n'
+						// 		(mois.value[1] * 100).toFixed(2) +
+						// 		'%'
+						// 		// + '\n\n\n鐩爣'+(mois.value[2]*100).toFixed(2) + '%'
+						// 	)
+						// },
+						fontSize: 20,
+						//position: ['50%',(100-mois.value[1]*100).toFixed(2) + '%'],
+					},
+				},
+			],
+		}
+
+		const bellowsOption = {
+			series: [
+				{
+					type: 'gauge',
+					center: ['50%', '60%'],
+					startAngle: 215,
+					endAngle: -35,
+					min: 0,
+					max: 80,
+					splitNumber: 8,
+					itemStyle: {
+						color: '#FFAB91',
+					},
+					progress: {
+						show: true,
+						width: 10,
+					},
+					pointer: {
+						show: false,
+					},
+					axisLine: {
+						lineStyle: {
+							width: 10,
+						},
+					},
+					axisTick: {
+						distance: -15,
+						splitNumber: 5,
+						length: 3,
+						lineStyle: {
+							width: 1,
+							color: '#999',
+						},
+					},
+					splitLine: {
+						distance: -18,
+						length: 6,
+						lineStyle: {
+							width: 2,
+							color: '#999',
+						},
+					},
+					axisLabel: {
+						distance: -13,
+						color: '#fff',
+						fontSize: 12,
+					},
+					anchor: {
+						show: false,
+					},
+					title: {
+						show: false,
+					},
+					detail: {
+						valueAnimation: true,
+						width: '60%',
+						lineHeight: 40,
+						borderRadius: 8,
+						offsetCenter: [0, '0%'],
+						fontSize: 20,
+						fontWeight: 'bolder',
+						formatter: '{value}掳C',
+						color: 'inherit',
+					},
+					data: [
+						{
+							value: 0,
+						},
+					],
+				},
+				{
+					type: 'gauge',
+					center: ['50%', '60%'],
+					startAngle: 215,
+					endAngle: -35,
+					min: 0,
+					max: 80,
+					itemStyle: {
+						color: '#FD7347',
+					},
+					progress: {
+						show: true,
+						width: 3,
+					},
+					pointer: {
+						show: false,
+					},
+					axisLine: {
+						show: false,
+					},
+					axisTick: {
+						show: false,
+					},
+					splitLine: {
+						show: false,
+					},
+					axisLabel: {
+						show: false,
+					},
+					detail: {
+						show: false,
+					},
+					data: [
+						{
+							value: 0,
+						},
+					],
+				},
+			],
+		}
+
+		// const fanFreqOption = {
+		// 	series: [
+		// 		{
+		// 			type: 'gauge',
+		// 			progress: {
+		// 				show: true,
+		// 				width: 9,
+		// 			},
+		// 			axisLine: {
+		// 				lineStyle: {
+		// 					width: 9,
+		// 				},
+		// 			},
+		// 			axisTick: {
+		// 				show: false,
+		// 			},
+		// 			splitLine: {
+		// 				distance: 3,
+		// 				length: 4,
+		// 				lineStyle: {
+		// 					width: 1,
+		// 					color: '#999',
+		// 				},
+		// 			},
+		// 			axisLabel: {
+		// 				distance: 15,
+		// 				color: '#999',
+		// 				fontSize: 10,
+		// 			},
+		// 			anchor: {
+		// 				show: true,
+		// 				showAbove: true,
+		// 				size: 10,
+		// 				itemStyle: {
+		// 					borderWidth: 3,
+		// 				},
+		// 			},
+		// 			title: {
+		// 				show: false,
+		// 			},
+		// 			detail: {
+		// 				valueAnimation: true,
+		// 				fontSize: 20,
+		// 				offsetCenter: [0, '70%'],
+		// 				formatter: '{value}Hz',
+		// 			},
+		// 			data: [
+		// 				{
+		// 					value: 56,
+		// 				},
+		// 			],
+		// 		},
+		// 	],
+		// }
+		// const weightOption = {
+		// 	// 		title: {
+		// 	//   text: 'Referer of a Website',
+		// 	//   subtext: 'Fake Data',
+		// 	//   left: 'center'
+		// 	// },
+		// 	color: ['#1595EA', '#2C4D90', '#FF7F7F'],
+		// 	tooltip: {
+		// 		trigger: 'item',
+		// 	},
+		// 	radius: [0, '85%'],
+		// 	// grid: {
+		// 	// 	top: 20,
+		// 	// 	left: 20,
+		// 	// 	right: 20,
+		// 	// 	bottom: 20,
+		// 	// },
+		// 	// legend: {
+		// 	// 	orient: 'vertical',
+		// 	// 	left: 'left',
+		// 	// },
+		// 	series: [
+		// 		{
+		// 			name: '閲嶉噺鏁版嵁',
+		// 			type: 'pie',
+		// 			radius: '50%',
+		// 			data: [
+		// 				{ value: 1048, name: '鍓╀綑閲嶉噺' },
+		// 				{ value: 735, name: '鐑樺幓閲嶉噺' },
+		// 			],
+		// 			label: {
+		// 				show: false,
+		// 			},
+		// 			labelLine: {
+		// 				show: false,
+		// 			},
+		// 			emphasis: {
+		// 				itemStyle: {
+		// 					shadowBlur: 10,
+		// 					shadowOffsetX: 0,
+		// 					shadowColor: 'rgba(0, 0, 0, 0.5)',
+		// 				},
+		// 			},
+		// 		},
+		// 	],
+		// }
+
+		const progressBarOption = {
+			// tooltip: {
+			// 	trigger: 'axis',
+			// 	axisPointer: {
+			// 		// Use axis to trigger tooltip
+			// 		type: 'shadow', // 'shadow' as default; can also be 'line' or 'shadow'
+			// 	},
+			// },
+			// color: [
+			// 	'#0653F6',
+			// 	// '#1B61E7',
+			// 	'#3673D5',
+			// 	// '#4A80C8',
+			// 	'#608FB8',
+			// 	// '#719BAD',
+			// 	'#82A6A1',
+			// 	// '#8DAD9A',
+			// 	'#9CB790',
+			// 	// '#A7BE88',
+			// 	'#B3C681',
+			// 	'#CAD671',
+			// 	'#DBE165',
+			// ],
+			animation: false, // 鍏抽棴鍔ㄧ敾
+			color: ['#397FD7', '#2D8CDE', '#239CE5', '#1DA4E8', '#14B2EF', '#0BC4FA', '#02D2FF', '#19EEFF', '#33FAFF', '#5EFFF8', '#60FFFE', '#64FAFF', '#70FFFF', '#7BFFFF', '#88FFFD', '#97FFFF', '#A5FFFD', '#B1FFFF', '#BFFFFF', '#CAFFFF'],
+			grid: {
+				top: '12%',
+				left: '20',
+				right: '55',
+				bottom: '3%',
+				containLabel: true,
+			},
+			xAxis: {
+				min: 0,
+				max: 150,
+				show: false,
+				type: 'value',
+				axisLine: {
+					show: false,
+				},
+				axisTick: {
+					show: false,
+				},
+			},
+			yAxis: {
+				show: false,
+				axisLine: {
+					show: false,
+				},
+				axisTick: {
+					show: false,
+				},
+				type: 'category',
+				data: ['鏃堕棿'],
+			},
+			series: [
+				// {
+				// 	name: '绗竴闃舵',
+				// 	type: 'bar',
+				// 	stack: 'total',
+				// 	label: {
+				// 		show: true,
+				// 	},
+				// 	barWidth: 26,
+				// 	emphasis: {
+				// 		focus: 'series',
+				// 	},
+				// 	data: [30],
+				// },
+				// {
+				// 	name: '绗簩闃舵',
+				// 	type: 'bar',
+				// 	stack: 'total',
+				// 	label: {
+				// 		show: true,
+				// 	},
+				// 	emphasis: {
+				// 		focus: 'series',
+				// 	},
+				// 	data: [30],
+				// },
+				// {
+				// 	name: 'Affiliate Ad',
+				// 	type: 'bar',
+				// 	stack: 'total',
+				// 	label: {
+				// 		show: true,
+				// 	},
+				// 	emphasis: {
+				// 		focus: 'series',
+				// 	},
+				// 	data: [20],
+				// },
+				// {
+				// 	name: 'Video Ad',
+				// 	type: 'bar',
+				// 	stack: 'total',
+				// 	label: {
+				// 		show: true,
+				// 	},
+				// 	emphasis: {
+				// 		focus: 'series',
+				// 	},
+				// 	data: [15],
+				// },
+				// {
+				// 	name: 'Search Engine',
+				// 	type: 'bar',
+				// 	stack: 'total',
+				// 	label: {
+				// 		show: true,
+				// 	},
+				// 	emphasis: {
+				// 		focus: 'series',
+				// 	},
+				// 	data: [10],
+				// },
+				// {
+				// 	name: 'df Engine',
+				// 	type: 'bar',
+				// 	stack: 'total',
+				// 	label: {
+				// 		show: true,
+				// 	},
+				// 	emphasis: {
+				// 		focus: 'series',
+				// 	},
+				// 	data: [5],
+				// },
+				// {
+				// 	name: 'df Engine',
+				// 	type: 'bar',
+				// 	stack: 'total',
+				// 	label: {
+				// 		show: true,
+				// 	},
+				// 	emphasis: {
+				// 		focus: 'series',
+				// 	},
+				// 	data: [5],
+				// },
+				// {
+				// 	name: 'df Engine',
+				// 	type: 'bar',
+				// 	stack: 'total',
+				// 	label: {
+				// 		show: true,
+				// 	},
+				// 	emphasis: {
+				// 		focus: 'series',
+				// 	},
+				// 	data: [
+				// 		{
+				// 			value: 35,
+				// 			itemStyle: {
+				// 				color: '#c0c0c0',
+				// 			},
+				// 		},
+				// 	],
+				// },
+			],
+		}
+
+		const efficiencyLineOption = {
+			title: {},
+			tooltip: {
+				trigger: 'axis',
+			},
+			grid: {
+				top: '30%',
+				left: '17',
+				right: '57',
+				bottom: '0%',
+				containLabel: true,
+			},
+			legend: {
+				right: 60,
+				textStyle: {
+					color: '#fff',
+				},
+			},
+			xAxis: {
+				show: false,
+				axisLine: {
+					show: false,
+				},
+				axisTick: {
+					show: false,
+				},
+				type: 'value',
+				min: 0,
+				max: 150,
+				// data: [15, 15, 10, 7.5, 5, 2.5, 2.5, 1],
+			},
+			yAxis: {
+				show: false,
+				axisLine: {
+					show: false,
+				},
+				axisTick: {
+					show: false,
+				},
+				type: 'value',
+				axisLabel: {
+					formatter: '{value} 掳C',
+				},
+				// max: eqp.value.dryEfficiency + 3,
+			},
+			series: [
+				{
+					name: '骞茬嚗鏁堢巼',
+					type: 'line',
+					lineStyle: {
+						width: 1,
+					},
+					// [[15,10], [15,11], [10,6], [7.5,12], [5,12], [2.5,5], [2.5,9], [1,7]]
+					data: [],
+					markPoint: {
+						data: [
+							{ type: 'max', name: 'Max' },
+							{ type: 'min', name: 'Min' },
+						],
+					},
+					markLine: {
+						symbol: 'none',
+						data: [
+							{
+								name: '棰濆畾',
+								yAxis: 100,
+							},
+						],
+						label: {
+							formatter: '{b}\n{c}',
+							color: '#fff',
+						},
+					},
+					// markLine: {
+					// 	data: [{ type: 'average', name: 'Avg' }],
+					// },
+				},
+			],
+		}
+
+		const compareOption = {
+			tooltip: {
+				trigger: 'axis',
+			},
+			grid: {
+				top: '6%',
+				left: '3%',
+				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: [0, 0, 0, 0, 0, 0],
+					label: {
+						show: true,
+						position: 'right',
+						valueAnimation: true,
+
+						color: '#fff',
+					},
+				},
+			],
+		}
+
+		option && moisChart.setOption(option)
+		waterOption && waterChart.setOption(waterOption)
+		bellowsOption && bellowsTempChart.setOption(bellowsOption)
+		// fanFreqOption && fanFreqChart.setOption(fanFreqOption)
+
+		progressBarOption && progressBarChart.setOption(progressBarOption)
+		efficiencyLineOption && efficiencyLineChart.setOption(efficiencyLineOption)
+		compareOption && compareChart.setOption(compareOption)
+	}
+
+	// 鍔ㄦ�佽鍙栧浘鐗�
+	function getHerbImageUrl(name: string) {
+		//return new URL(`/src/assets/images/dry/yaocai/${name}`, import.meta.url).href
+    return "";
+	}
+
+	// 鍔ㄦ�佽鍙栧浘鐗�
+	function getStatusImageUrl(name: string) {
+		if (name =='zanting') {
+			return new URL(`/src/assets/images/dry/${name}.png`, import.meta.url).href
+		} else {
+			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)
+			eqp.value = res
+			eqp.value.dryEfficiency = res.dryEfficiency
+			eqp.value.steamConsumption = res.steamConsumption
+			eqp.value.powerConsumption = res.powerConsumption
+			queryRealTime()
+			setTimeout(initCharts, 500)
+		})
+	}
+
+	function listAllEqp() {
+    let tenantId = getTenantId()
+    defHttp.get({ url: '/dry/real/queryAllEqps', params: { tenantId: tenantId,enable: 'Y'  } })
+			.then((result) => {
+				//console.log(`output->result`, result)
+				eqps.value = result
+				// result.forEach((item) => {
+				// 	eqpCodes.push(item.code)
+				// })
+				queryRealTime()
+				setTimeout(initCharts, 500)
+			})
+			.catch((err) => {
+				//console.log(`output->err`, err)
+			})
+	}
+
+	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()
+			//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 ++;
+	// }
+
+	var shangliaoFlag = false
+	var statusGif = 'tmrefeng2'
+	var statusTxt = '姝e湪骞茬嚗'
+
+	function chaiwangban() {
+		statusGif = 'chaiwangban-1'
+		setTimeout(shangliao, 7000)
+	}
+  function showFault () {
+    console.log('showFault')
+    router.push({ path: '/bigFault', query: {  num: num } })
+
   }
+	function shangliao() {
+		statusGif = 'shangliao-N'
+		setTimeout(() => {
+			statusGif = 'zhuangwangban'
+			setTimeout(() => {
+				statusGif = 'guanmen1'
+				setTimeout(() => {
+					shangliaoFlag = false
+				}, 4000)
+			}, 7000)
+		}, 15000)
+	}
+
+	function queryRealTime() {
+		if (eqp.value) {
+			eqp.value = eqps.value[eqpNum.value]
+			// console.log("888",eqp.value);
+			let tenantId = getTenantId()
+			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,
+									},
+								},
+							],
+						})
+					}
+
+					/**娓╁害鐜舰鍥� */
+					if (bellowsTempChart) {
+						bellowsTempChart.setOption({
+							series: [{ data: [{ value: res.trendVo.bellowsTemp }] }, { data: [{ value: res.trendVo.bellowsTemp }] }],
+						})
+					}
+					/**椋庢満棰戠巼鐜舰鍥� */
+					// if (fanFreqChart) {
+					// 	fanFreqChart.setOption({
+					// 		series: [
+					// 			{
+					// 				data: [
+					// 					{
+					// 						value: res.trendVo.fanFrequency,
+					// 					},
+					// 				],
+					// 			},
+					// 		],
+					// 	})
+					// }
+					/**骞茬嚗杩涘害銆佽蛋鍔夸笌闃舵鏁堢巼鍜岄樁娈垫秷鑰� */
+					if (res && res.detailList) {
+						var progressSeries = []
+						
+						var zhengQiXiaoHao = []
+						var dianNengXiaoHao = []
+						var ganZaoXiaoLv = []
+						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) {
+								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,eqp.value.dryEfficiency])
+							// console.log(`output->res.remain`, res.remain)
+							// console.log(`output->res.dryTime`, res.dryTime)
+							// console.log(`output->totalTime`, totalTime)
+							// 骞茬嚗鍓╀綑鏃堕棿=宸ュ崟棰勮鍓╀綑-锛堝綋鍓嶅共鐕ユ椂闂�-鏈�鍚庝竴娆¤褰曞共鐕ユ椂闂达級
+							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: [
+									{
+										value: res.remain - (res.dryTime - totalTime),
+										itemStyle: {
+											color: '#c0c0c0',
+										},
+									},
+								],
+							})
+						}
+
+						/**骞茬嚗杩涘害 */
+						if (progressBarChart) {
+							//console.log(`output->progressSeries`, progressSeries)
+							progressBarChart.setOption(
+								{
+									xAxis: {
+										max: totalTime + res.remain,
+									},
+									series: progressSeries,
+								},
+								{ replaceMerge: ['series'] }
+							)
+						}
+
+						res.totalTime = totalTime + res.remain
+						console.log("efficAvg::",res.efficAvg);
+						/**骞茬嚗鏁堢巼銆佹秷鑰� */
+						if (efficiencyLineChart) {
+							//console.log(`output->ganZaoXiaoLv`, ganZaoXiaoLv)
+							efficiencyLineChart.setOption({
+								xAxis: {
+									max: totalTime + res.remain,
+								},
+								series: [
+									{
+                    name: '骞茬嚗鏁堢巼',
+										data: ganZaoXiaoLv,
+										markLine: {
+											symbol: 'none',
+											data: [
+												{
+													name: '棰濆畾',
+													yAxis: res.efficAvg|0,
+												},
+											],
+											label: {
+												formatter: '{b}\n{c}',
+												color: '#fff',
+											},
+										},
+									},
+									// { data: zhengQiXiaoHao },
+									// { data: dianNengXiaoHao },
+								],
+							})
+						}
+
+						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,
+								},
+							],
+						})
+					}
+
+					let lastTrend = res.detailList[res.detailList.length-1]
+					/**鏁堢巼瀵规瘮鍥� */
+					if (res.originWeight - lastTrend.weight <= 0) {
+						res.xiaolv = 0
+					} else {
+						res.xiaolv = ((res.originWeight - lastTrend.weight) / lastTrend.totalTime) * 60
+					}
+					res.xiaolv = Number(res.xiaolv) 
+					//eqp.value.dryEfficiency = Number(eqp.value.dryEfficiency)
+					if (res.xiaolv > res.efficAvg) {
+						console.log("xiaolv:",res , eqp);
+						res.xlgood = true
+						res.xlsHeight = (res.efficAvg / res.xiaolv) * 100 + '%'
+						res.xlrHeight = '100%'
+					} else if (res.xiaolv < res.efficAvg * 0.9) {
+						res.xlbad = true
+						res.xlsHeight = '100%'
+						res.xlrHeight = (res.xiaolv / res.efficAvg) * 100 + '%'
+					} else {
+						res.xlsHeight = '100%'
+						res.xlrHeight = (res.xiaolv / res.efficAvg) * 100 + '%'
+					}
+
+					/** 钂告苯娑堣�� */
+					if (res.originWeight - lastTrend.weight <= 0) {
+						res.zhengqi = 0
+					} else {
+						res.zhengqi = lastTrend.steam / (res.originWeight - lastTrend.weight)
+					}
+					res.zhengqi = Number(res.zhengqi) 
+					//eqp.value.steamConsumption = Number(eqp.value.steamConsumption)
+					// res.zhengqi = eqp.value.steamConsumption - 3
+					// console.log(res);
+					// console.log('zhengqi:', res.zhengqi);
+					if (res.zhengqi > res.steamAvg) {
+						res.zqbad = true
+						res.zqsHeight = (res.steamAvg / res.zhengqi) * 100 + '%'
+						res.zqrHeight = '100%'
+					} else if (res.zhengqi < res.steamAvg * 0.9) {
+						res.zqgood = true
+						res.zqsHeight = '100%'
+						res.zqrHeight = (res.zhengqi / res.steamAvg) * 100 + '%'
+					} else {
+						res.zqsHeight = '100%'
+						res.zqrHeight = (res.zhengqi / res.steamAvg) * 100 + '%'
+					}
+
+					/** 鐢佃兘娑堣�� */
+					if (res.originWeight - lastTrend.weight <= 0) {
+						res.dian = 0
+					} else {
+						res.dian = lastTrend.watt / (res.originWeight - lastTrend.weight)
+					}
+					// res.dian = eqp.value.powerConsumption - 1.5
+					res.dian = Number(res.dian) 
+					//eqp.value.powerConsumption = Number(eqp.value.powerConsumption)
+					if (res.dian > res.wattAvg) {
+						console.log("dian::", res.dian,res.wattAvg )
+						res.dnbad = true
+						res.dnsHeight = (res.wattAvg / res.dian) * 100 + '%'
+						res.dnrHeight = '100%'
+					} else if (res.dian < res.wattAvg * 0.9) {
+						res.dngood = true
+						res.dnsHeight = '100%'
+						res.dnrHeight = (res.dian / res.wattAvg) * 100 + '%'
+					} else {
+						res.dnsHeight = '100%'
+						res.dnrHeight = (res.dian / res.wattAvg) * 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) {
+							statusTxt = res.level
+							statusGif = 'zanting'
+							if (res.level === '鍑嗗闃舵') {
+								console.log("鍑嗗闃舵" + statusGif);
+								statusGif = 'zanting'
+							} else if (res.level === '骞茬嚗闃舵' || res.level === '姝e湪骞茬嚗') {
+								statusGif = 'tmrefeng2'
+							} else if (res.level === '缈绘枡闃舵') {
+								statusGif = 'fanliao-N'
+							} else if (res.level === '鍑烘枡闃舵') {
+								statusGif = 'chuliao-N'
+							}
+							// 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
+          if (res.fault) {
+            res.isError = true
+            res.errorMsg = res.fault;
+            const faults = res.fault;
+            console.log('errorMsg:', res.fault)
+            if (faults.includes('鎬ュ仠鎶ヨ')) {
+              shebeijiting.value = true;
+            } else {
+              shebeijiting.value = false;
+            }
+            if (faults.includes('宸﹀墠鎬ュ仠')) {
+              zuoqianjiting.value = true;
+            } else {
+              zuoqianjiting.value = false;
+            }
+            if (faults.includes('闈㈡澘鎬ュ仠')) {
+              mianbanjiting.value = true;
+            } else {
+              mianbanjiting.value = false;
+            }
+            if (faults.includes('鍑烘枡鎬ュ仠')) {
+              chuliaojiting.value = true;
+            } else {
+              chuliaojiting.value = false;
+            }
+            if (faults.includes('娓╁害澶辨帶')) {
+              wendubaojing.value = true;
+            } else {
+              wendubaojing.value = false;
+            }
+            if (faults.includes('婊氱瓛鍗�')) {
+              guntongsheng.value = true;
+            } else {
+              guntongjiang.value = false;
+            }
+            if (faults.includes('婊氱瓛闄�')) {
+              guntongjiang.value = true;
+            } else {
+              guntongjiang.value = false;
+            }
+            if (faults.includes('婊氱瓛鐢垫満杩囨祦')) {
+              guntongguoliu.value = true;
+            } else {
+              guntongguoliu.value = false;
+            }
+            if (faults.includes('椋庣鍗�')) {
+              fengxiangsheng.value = true;
+            } else {
+              fengxiangsheng.value = false;
+            }
+            if (faults.includes('椋庣闄�')) {
+              fengxiangjiang.value = true;
+            } else {
+              fengxiangjiang.value = false;
+            }
+            if (faults.includes('椋庣椋庢満杩囨祦')) {
+              fengjiguoliu.value = true;
+            } else {
+              fengjiguoliu.value = false;
+            }
+          }
+          else {
+             shebeijiting.value = false
+             chuliaojiting.value = false
+             zuoqianjiting.value = false
+             mianbanjiting.value = false
+             fengxiangsheng.value = false
+             fengxiangjiang.value = false
+             fengjiguoliu.value = false
+             guntongsheng.value = false
+             guntongjiang.value = false
+             guntongguoliu.value = false
+             wendubaojing.value = false
+          }
+
+          if (res.warning) {
+            res.isWarning = true
+            res.warnMsg = res.warning
+            const warnings = res.warning;
+            console.log('warnMsg:', res.warning)
+            if (warnings.includes('宸﹀墠闂�')) {
+              zuoqianmen.value = true;
+            } else {
+              zuoqianmen.value = false;
+            }
+            if (warnings.includes('鍙冲墠闂�')) {
+              youqianmen.value = true;
+            } else {
+              youqianmen.value = false;
+            }
+            if (warnings.includes('宸﹀悗闂�')) {
+              zuohoumen.value = true;
+            } else {
+              zuohoumen.value = false;
+            }
+            if (warnings.includes('鍙冲悗闂�')) {
+              youhoumen.value = true;
+            } else {
+              youhoumen.value = false;
+            }
+            if (warnings.includes('婊氱瓛涓嶅湪楂樹綅')) {
+              guntongbuzaigaowei.value = true;
+            } else {
+              guntongbuzaigaowei.value = false;
+            }
+            if (warnings.includes('椋庣涓嶅湪浣庝綅')) {
+              fengxiangbuzaidiwei.value = true;
+            } else {
+              fengxiangbuzaidiwei.value = false;
+            }
+            if (warnings.includes('椋庣涓嶅湪楂樹綅')) {
+              fengxiangbuzaigaowei.value = true;
+            } else {
+              fengxiangbuzaigaowei.value = false;
+            }
+            if (warnings.includes('鍔犵儹浣嶄紶鎰熷櫒')) {
+              jiareweichuanganqi.value = true;
+            } else {
+              jiareweichuanganqi.value = false;
+            }
+            if (warnings.includes('宸﹀墠椋庣楂樹綅浼犳劅鍣�')) {
+              zuoqianfengxianggaowei.value = true;
+            } else {
+              zuoqianfengxianggaowei.value = false;
+            }
+            if (warnings.includes('鍙冲墠椋庣楂樹綅浼犳劅鍣�')) {
+              youqianfengxianggaowei.value = true;
+            } else {
+              youqianfengxianggaowei.value = false;
+            }
+            if (warnings.includes('宸﹀悗椋庣楂樹綅浼犳劅鍣�')) {
+              zuohoufengxianggaowei.value = true;
+            } else {
+              zuohoufengxianggaowei.value = false;
+            }
+            if (warnings.includes('鍙冲悗椋庣楂樹綅浼犳劅鍣�')) {
+              youhoufengxianggaowei.value = true;
+            } else {
+              youhoufengxianggaowei.value = false;
+            }
+            if (warnings.includes('宸﹀墠椋庣浣庝綅浼犳劅鍣�')) {
+              zuoqianfengxiangdiwei.value = true;
+            } else {
+              zuoqianfengxiangdiwei.value = false;
+            }
+            if (warnings.includes('鍙冲墠椋庣浣庝綅浼犳劅鍣�')) {
+              youqianfengxiangdiwei.value = true;
+            } else {
+              youqianfengxiangdiwei.value = false;
+            }
+            if (warnings.includes('宸﹀悗椋庣浣庝綅浼犳劅鍣�')) {
+              zuohoufengxiangdiwei.value = true;
+            } else {
+              zuohoufengxiangdiwei.value = false;
+            }
+            if (warnings.includes('鍙冲悗椋庣浣庝綅浼犳劅鍣�')) {
+              youhoufengxiangdiwei.value = true;
+            } else {
+              youhoufengxiangdiwei.value = false;
+            }
+            if (warnings.includes('宸﹀墠婊氱瓛浣庝綅浼犳劅鍣�')) {
+              zuoqianguntongdiwei.value = true;
+            } else {
+              zuoqianguntongdiwei.value = false;
+            }
+            if (warnings.includes('鍙冲墠婊氱瓛浣庝綅浼犳劅鍣�')) {
+              youqianguntongdiwei.value = true;
+            } else {
+              youqianguntongdiwei.value = false;
+            }
+            if (warnings.includes('宸﹀悗婊氱瓛浣庝綅浼犳劅鍣�')) {
+              zuohouguntongdiwei.value = true;
+            } else {
+              zuohouguntongdiwei.value = false;
+            }
+            if (warnings.includes('鍙冲悗婊氱瓛浣庝綅浼犳劅鍣�')) {
+              youhouguntongdiwei.value = true;
+            } else {
+              youhouguntongdiwei.value = false;
+            }
+          }
+          else {
+             zuoqianmen.value = false;
+             zuohoumen.value = false;
+             youqianmen.value = false;
+             youhoumen.value = false;
+             guntongbuzaigaowei.value = false;
+             fengxiangbuzaigaowei.value = false;
+             fengxiangbuzaidiwei.value = false;
+             jiareweichuanganqi.value = false;
+             zuoqianfengxianggaowei.value = false;
+             zuohoufengxianggaowei.value = false;
+             youqianfengxianggaowei.value = false;
+             youhoufengxianggaowei.value = false;
+             zuoqianfengxiangdiwei.value = false;
+             zuohoufengxiangdiwei.value = false;
+             youqianfengxiangdiwei.value = false;
+             youhoufengxiangdiwei.value = false;
+             zuoqianguntongdiwei.value = false;
+             zuohouguntongdiwei.value = false;
+             youqianguntongdiwei.value = false;
+             youhouguntongdiwei.value = false;
+          }
+				} else {
+					res = {
+						mois: [],
+						gif: 'tmrefeng2',
+						herbImage: 'yaocai1.png',
+					}
+				}
+
+				// console.log(`output->res`, res.detailList[res.detailList.length-1])
+				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
+		}
+	}
 
 	function back() {
 		router.back()
 	}
+
+	listAllEqp()
 	//queryEqp()
 	// DOM鎸傝浇瀹屾垚鍚庢覆鏌撳浘琛�
 	onMounted(() => {
-
+		Timer.value = setInterval(queryRealTime, 3000)
 		Timer2.value = setInterval(moveImage, 50)
 	})
 
 	onUnmounted(() => {
-
+		clearInterval(Timer.value)
 		clearInterval(Timer2.value)
-
+		Timer.value = null
 		Timer2.value = null
 	})
 </script>
@@ -91,4 +2227,473 @@
 		align-content: flex-start;
 	}
 
+	.leftEqp {
+		height: 1080px;
+		width: 1200px;
+		display: flex;
+		flex-wrap: wrap;
+		align-content: flex-start;
+
+		/* background-color: white;
+		background-image: url(/src/assets/images/dry/shebei1.png);
+		background-repeat: no-repeat;
+		background-size: 125%;
+		border-radius: 10px;
+		background-position: -119px 293px; */
+	}
+
+	.leftTop {
+		height: 704px;
+		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 260px;
+	}
+	.leftMid {
+		width: 850px;
+		height: 281px;
+		/* border: 1px solid; */
+		margin-top: 10px;
+		border-radius: 10px;
+		/* background: white; */
+	}
+	.mainInfo {
+		line-height: 33px;
+		padding-left: 10px;
+		font-size: 30px;
+		color: white;
+	}
+	.subhead {
+		color: #a19f9c;
+		font-size: 16px;
+		padding-left: 10px;
+	}
+
+	.mainInfo2 {
+		line-height: 20px;
+		padding-left: 0px;
+		font-size: 16px;
+	}
+	.subhead2 {
+		color: #a19f9c;
+		font-size: 10px;
+		padding-left: 0px;
+	}
+	.zhengqi {
+		height: 180px;
+		width: 200px;
+		background-image: url(/src/assets/images/dry/liuliangji.png);
+		background-repeat: no-repeat;
+		background-size: 160px;
+		/* border-radius: 10px; */
+		background-position: 17px -6px;
+	}
+
+	.liuliangji {
+	}
+	.leftData {
+		height: 234px;
+		width: 120px;
+	}
+	.rightChart {
+		height: 253px;
+		width: 170px;
+		margin-top: -30px;
+	}
+	.leftTop0 {
+		height: 243px;
+		width: 848px;
+		display: flex;
+		justify-content: center;
+		align-content: flex-start;
+		flex-wrap: wrap;
+	}
+	.leftTop1 {
+		width: 250px;
+		height: 187px;
+		text-align: center;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		font-size: 30px;
+		color: #727272;
+	}
+	.leftTop2 {
+		width: 250px;
+		height: 187px;
+		text-align: center;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		font-size: 30px;
+		color: #727272;
+	}
+	.leftTop3 {
+		width: 340px;
+		height: 187px;
+		/* background-image: url(/src/assets/images/dry/fanliao.gif); */
+		background-repeat: no-repeat;
+		background-position: 0px 20px;
+		background-size: 300px;
+		border-radius: 50px;
+	}
+
+	.eqpStatus {
+		width: 848px;
+		
+	}
+	.rightInfo {
+		display: flex;
+		flex-wrap: wrap;
+		align-content: flex-start;
+		height: 1060px;
+		width: 700px;
+	}
+
+	.rightTop {
+		display: flex;
+		height: 412px;
+		padding-left: 10px;
+	}
+	.rightTwo {
+		display: flex;
+		flex-wrap: wrap;
+	}
+
+	.infoChart {
+		width: 340px;
+		height: 281px;
+		/* background: white; */
+		margin-left: 10px;
+		margin-top: 10px;
+		border-radius: 10px;
+	}
+	.chartTittle {
+		width: 340px;
+		height: 30px;
+		font-size: 16px;
+		display: flex;
+		justify-content: space-between;
+		padding: 15px 15px;
+	}
+	.chartInfo {
+		width: 60px;
+		height: 180px;
+	}
+
+	.compareBar {
+		width: 55px;
+		height: 140px;
+	}
+	.margintop-30 {
+		margin-top: -30px;
+	}
+
+	.barTop {
+		width: 55px;
+		height: 30px;
+	}
+	.barBack {
+		width: 30px;
+		height: 100px;
+		/* border: 1px solid black; */
+		display: flex;
+		flex-wrap: wrap;
+		align-content: flex-end;
+	}
+	.barDiv {
+		width: 100%;
+
+		background-color: #1595ea;
+	}
+	.bad {
+		background-color: #973535;
+	}
+	.rightLabel {
+		width: 110px;
+		display: flex;
+		justify-content: space-between;
+	}
+	.label {
+		color: white;
+		text-align: center;
+		width: 50px;
+		border-radius: 4px;
+		height: 20px;
+		font-size: 10px;
+		line-height: 21px;
+	}
+	.good {
+		background-color: #0d6e24;
+	}
+
+	.mainInfo3 {
+		font-size: 24px;
+	}
+	.herbInfo {
+		width: 340px;
+		height: 412px;
+		color: #727272;
+	}
+
+	.curEqp {
+		width: 340px;
+		height: 159px;
+
+		/* background: white;
+		border-radius: 10px; */
+	}
+	.curHerb {
+		margin-top: 10px;
+		width: 340px;
+		height: 243px;
+		/* background: white;
+		border-radius: 10px; */
+
+		background-repeat: no-repeat;
+		background-size: 200px;
+		background-position: 0px 10px;
+	}
+	.tempMoisChart {
+		width: 690px;
+		height: 412px;
+		/* background: white; */
+
+		padding: 20px;
+		border-radius: 10px;
+	}
+	.topLeft {
+		margin: 20px 40px 60px 20px;
+		padding: 15px;
+		/* background: white; */
+		border-radius: 10px;
+		height: 325px;
+		width: 440px;
+		/* background-image: url(/src/assets/images/dry/yaocai.jpg); */
+		background-repeat: no-repeat;
+		background-size: 164px 132px;
+		background-position: 239px 65px;
+		display: flex;
+	}
+	.topMid {
+		margin: 20px 20px 60px 40px;
+		/* background: white; */
+		border-radius: 10px;
+		background-image: url(/src/assets/images/dry/fanliao.gif);
+		background-repeat: no-repeat;
+		background-position: 0px 20px;
+		background-size: 400px;
+		width: 400px;
+
+		padding: 20px;
+	}
+	.topRight {
+		margin: 20px 20px 60px 20px;
+		/* background: white; */
+		border-radius: 10px;
+		width: 700px;
+		padding: 20px;
+	}
+	.midLeft {
+		height: 450px;
+		width: 600px;
+		display: flex;
+		padding: 0 20px 20px 20px;
+	}
+	.midMid {
+		width: 500px;
+		padding-top: 50px;
+	}
+
+	.midRight {
+		background-image: url(/src/assets/images/dry/fengjixz.gif);
+		background-repeat: no-repeat;
+		background-position: 150px 260px;
+		background-size: 120px 120px;
+		width: 600px;
+	}
+
+	.shangJianTou {
+		margin-left: 140px;
+		width: 70px;
+		height: 100px;
+		background-image: url(/src/assets/images/dry/shangjiantoutou.gif);
+		background-repeat: no-repeat;
+		background-position: 0px 0px;
+		background-size: 70px 100px;
+	}
+
+	.zoujiantou {
+		margin-left: 225px;
+		margin-top: 30px;
+		width: 100px;
+		height: 70px;
+		background-image: url(/src/assets/images/dry/zuojiantou.gif);
+		background-repeat: no-repeat;
+		background-position: 0px 0px;
+		background-size: 100px 70px;
+	}
+	.fault {
+		padding: 10px;
+		height: 60px;
+		font-size: 26px;
+		width: 100%;
+		text-align: right;
+		color: red;
+	}
+	.eqpName {
+		padding: 20px;
+
+		height: 160px;
+	}
+
+	.formula {
+		display: flex;
+		width: 340px;
+		height: 40px;
+		padding: 0 20px;
+		justify-content: space-around;
+		justify-items: center;
+	}
+
+	.formulaItem {
+		display: flex;
+		justify-content: center;
+		width: 85px;
+		height: 40px;
+	}
+
+	.eqpInfoText {
+		font-size: 18px;
+		font-weight: bold;
+	}
+
+	:deep() .ant-slider-mark-text {
+		padding-left: 15px;
+		font-size: 10px;
+	}
+	:deep() .ant-slider-mark-text::before {
+		content: '';
+		display: block;
+		width: 6px;
+		height: 1px;
+		background-color: #1890ff;
+
+		position: absolute;
+		top: 10px;
+		left: 0px;
+	}
+	:deep() .ant-slider-rail {
+		width: 10px !important;
+		border-radius: 6px 6px 0 0;
+		background: linear-gradient(to top, #ce0000 0%, #ce0000 40%, #ce0000 75%, rgb(160, 160, 160) 100%);
+	}
+	:deep() .ant-slider-track {
+		background: rgb(216, 216, 216);
+
+		height: 20px;
+		width: 10px !important;
+		border-radius: 6px 6px 0 0;
+	}
+	:deep() .ant-slider-track:hover {
+	}
+	:deep() .ant-slider-handle {
+		display: none;
+	}
+	:deep() .ant-slider-dot {
+		display: none;
+	}
+	:deep() .ant-slider-step {
+		width: 10px !important;
+	}
+	:deep() .ant-slider-step > :first-child {
+		display: block !important;
+		width: 30px !important;
+		height: 30px !important;
+		bottom: -26px !important;
+		left: -6px;
+		border: none;
+		background: #ce0000;
+	}
+	:deep() .progress {
+		padding: 25px 25px;
+
+		width: 360px;
+		display: flex;
+	}
+	:deep() .ant-progress-bg {
+		height: 25px !important;
+	}
+	.outDiv {
+		display: flex;
+		justify-content: center;
+		justify-items: center;
+	}
+	.blingbling {
+		-webkit-animation: scaleout 1.5s infinite ease-in-out;
+		animation: scaleout 1.5s infinite ease-in-out;
+	}
+	.center {
+		display: flex;
+		justify-content: center;
+		justify-items: center;
+		align-items: center;
+		flex-wrap: wrap;
+		text-align: center;
+	}
+
+	.centerText {
+		width: 100%;
+		text-align: center;
+	}
+
+	@-webkit-keyframes scaleout {
+		0% {
+			-webkit-transform: scale(1);
+		}
+
+		100% {
+			-webkit-transform: scale(1.1);
+			opacity: 0;
+		}
+	}
+
+	@keyframes scaleout {
+		0% {
+			transform: scale(1);
+			-webkit-transform: scale(1);
+		}
+
+		100% {
+			transform: scale(1.1);
+			-webkit-transform: scale(1.1);
+			opacity: 0;
+		}
+	}
+
+  .error-div {
+    position: absolute; display: flex; align-items: center;
+  }
+  .error-marker {
+    width: 18px; height: 18px; background: red; border-radius: 50%;
+  }
+  .error-msg {
+    margin-left: 6px;
+    height: 24px;
+    background: gray; border-radius: 5px; font-weight: bold; color: red
+  }
+  .warn-marker {
+    width: 18px; height: 18px; background: orange; border-radius: 50%;
+  }
+  .warn-msg {
+    margin-left: 6px;
+    height: 24px;
+    background: gray; border-radius: 5px; font-weight: bold; color: orange;
+  }
 </style>
diff --git a/src/views/dry/bigScreen/BigEqp-two.vue b/src/views/dry/bigScreen/BigEqp-two.vue
new file mode 100644
index 0000000..bf99859
--- /dev/null
+++ b/src/views/dry/bigScreen/BigEqp-two.vue
@@ -0,0 +1,94 @@
+<template>
+	<dv-full-screen-container>
+		<div class="eqpBox">
+			<div class="eqpRow">
+				<div class="eqpImage" :style="{ 'background-position': position + 'px' }">
+          <eqp-split :num="eqpNum"></eqp-split>
+          <div style="width: 10px"></div>
+          <eqp-split :num="eqpNum2"></eqp-split>
+
+				</div>
+			</div>
+		</div>
+	</dv-full-screen-container>
+</template>
+
+<script setup lang="ts">
+	import { useFullscreen } from '@vueuse/core'
+	import { router } from '/@/router'
+	import { onMounted, ref, onUnmounted } from 'vue'
+
+	import { dryEquipment } from '../dataDefine/DryEquipment.data'
+  import EqpSplit from "/@/views/dry/bigScreen/EqpSplit.vue";
+
+
+	const domRef = ref<Nullable<HTMLElement>>(null)
+	const { enter, toggle, exit, isFullscreen } = useFullscreen()
+
+	const { toggle: toggleDom } = useFullscreen(domRef)
+  const position = ref(1)
+	const Timer2 = ref()
+
+
+	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 || 0)
+  const eqpNum2 = ref(parseInt(router.currentRoute.value.query.num) + 1 || 1)
+
+
+
+  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()
+	}
+	//queryEqp()
+	// DOM鎸傝浇瀹屾垚鍚庢覆鏌撳浘琛�
+	onMounted(() => {
+
+		Timer2.value = setInterval(moveImage, 50)
+	})
+
+	onUnmounted(() => {
+
+		clearInterval(Timer2.value)
+
+		Timer2.value = null
+	})
+</script>
+
+<style scoped>
+	.eqpBox {
+		height: 100%;
+	}
+	.eqpRow {
+	}
+	.eqpImage {
+		height: 1080px;
+		width: 1920px;
+		background-image: url(/src/assets/images/dry/bg.png);
+		background-repeat: no-repeat;
+		color: white;
+		/*background-position: 160px 280px; */
+		/* background-color: red; */
+		background-size: 120%;
+		padding: 10px;
+		display: flex;
+		flex-wrap: wrap;
+		align-content: flex-start;
+	}
+
+</style>
diff --git a/src/views/dry/bigScreen/BigFault-tjt.vue b/src/views/dry/bigScreen/BigFault-tjt.vue
new file mode 100644
index 0000000..397c8c2
--- /dev/null
+++ b/src/views/dry/bigScreen/BigFault-tjt.vue
@@ -0,0 +1,1237 @@
+<template>
+	<dv-full-screen-container>
+		<div class="eqpBox">
+			<div class="eqpRow">
+				<div class="eqpImage" :style="{ 'background-position': position + 'px' }">
+					<div class="leftEqp">
+						<dv-border-box7 class="leftTop">
+							<div class="leftTop0">
+                <div style="padding-top: 20px; padding-left: 10px" @click="back">
+                  <Icon style="color: powderblue" icon="ion:caret-back-sharp" :size="35" />
+                </div>
+
+								<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;
+
+											color: white;
+											background-color: #1595ea;
+											height: 60px;
+											width: 180px;
+											line-height: 60px;
+											text-align: center;
+											border-radius: 10px;
+											font-weight: bold;
+										"
+									>
+										{{ statusTxt }}
+									</div>
+								</div>
+							</div>
+							<div style="width: 1200px; height: 798px; position: absolute">
+								<div v-if="zuoqianjiting" class="error-div" style="top: 466px; left: 589px">
+									<div class="blingbling error-marker"></div>
+									<div class="error-msg" style="width: 70px"> &nbsp;&nbsp;宸﹀墠鎬ュ仠 </div>
+								</div>
+								<div v-if="shebeijiting" class="error-div" style="top: 170px; left: 702px">
+									<div class="blingbling error-marker"></div>
+									<div class="error-msg" style="width: 106px"> &nbsp;&nbsp;璁惧鎬ュ仠锛堟�伙級 </div>
+								</div>
+								<div v-if="chuliaojiting" class="error-div" style="top: 450px; left: 158px">
+									<div class="blingbling error-marker"></div>
+									<div class="error-msg" style="width: 70px"> &nbsp;&nbsp;鍑烘枡鎬ュ仠 </div>
+								</div>
+								<div v-if="mianbanjiting" class="error-div" style="top: 398px; left: 978px">
+									<div class="blingbling error-marker"></div>
+									<div class="error-msg" style="width: 70px"> &nbsp;&nbsp;闈㈡澘鎬ュ仠 </div>
+								</div>
+								<div v-if="fengxiangsheng" class="error-div" style="top: 476px; left: 753px">
+									<div class="blingbling error-marker"></div>
+									<div class="error-msg" style="width: 86px"> &nbsp;&nbsp;椋庣鍗囧紓甯� </div>
+								</div>
+								<div v-if="fengxiangjiang" class="error-div" style="top: 502px; left: 753px">
+									<div class="blingbling error-marker"></div>
+									<div class="error-msg" style="width: 86px"> &nbsp;&nbsp;椋庣闄嶅紓甯� </div>
+								</div>
+								<div v-if="fengjiguoliu" class="error-div" style="top: 510px; left: 975px">
+									<div class="blingbling error-marker"></div>
+									<div class="error-msg" style="width: 70px"> &nbsp;&nbsp;椋庢満杩囨祦 </div>
+								</div>
+								<div v-if="guntongsheng" class="error-div" style="top: 331px; left: 753px">
+									<div class="blingbling error-marker"></div>
+									<div class="error-msg" style="width: 86px"> &nbsp;&nbsp;婊氱瓛鍗囧紓甯� </div>
+								</div>
+								<div v-if="guntongjiang" class="error-div" style="top: 356px; left: 753px">
+									<div class="blingbling error-marker"></div>
+									<div class="error-msg" style="width: 86px"> &nbsp;&nbsp;婊氱瓛闄嶅紓甯� </div>
+								</div>
+								<div v-if="guntongguoliu" class="error-div" style="top: 324px; left: 916px">
+									<div class="blingbling error-marker"></div>
+									<div class="error-msg" style="width: 70px"> &nbsp;&nbsp;婊氱瓛杩囨祦 </div>
+								</div>
+								<div v-if="wendubaojing" class="error-div" style="top: 373px; left: 978px">
+									<div class="blingbling error-marker"></div>
+									<div class="error-msg" style="width: 70px"> &nbsp;&nbsp;娓╁害鎶ヨ </div>
+								</div>
+
+								<div v-if="zuoqianmen" class="error-div" style="top: 595px; left: 591px">
+									<div class="blingbling warn-marker"></div>
+									<div class="warn-msg" style="width: 80px"> &nbsp;&nbsp;宸﹀墠闂ㄦ姤璀� </div>
+								</div>
+								<div v-if="zuohoumen" class="error-div" style="top: 565px; left: 868px">
+									<div class="blingbling warn-marker"></div>
+									<div class="warn-msg" style="width: 80px"> &nbsp;&nbsp;宸﹀悗闂ㄦ姤璀� </div>
+								</div>
+								<div v-if="youqianmen" class="error-div" style="top: 593px; left: 396px">
+									<div class="blingbling warn-marker"></div>
+									<div class="warn-msg" style="width: 80px"> &nbsp;&nbsp;鍙冲墠闂ㄦ姤璀� </div>
+								</div>
+								<div v-if="youhoumen" class="error-div" style="top: 565px; left: 697px">
+									<div class="blingbling warn-marker"></div>
+									<div class="warn-msg" style="width: 80px"> &nbsp;&nbsp;鍙冲悗闂ㄦ姤璀� </div>
+								</div>
+
+								<div v-if="guntongbuzaigaowei" class="error-div" style="top: 304px; left: 753px">
+									<div class="blingbling warn-marker"></div>
+									<div class="warn-msg" style="width: 100px"> &nbsp;&nbsp;婊氱瓛涓嶅湪楂樹綅 </div>
+								</div>
+								<div v-if="fengxiangbuzaigaowei" class="error-div" style="top: 451px; left: 753px">
+									<div class="blingbling warn-marker"></div>
+									<div class="warn-msg" style="width: 100px"> &nbsp;&nbsp;椋庣涓嶅湪楂樹綅 </div>
+								</div>
+								<div v-if="fengxiangbuzaidiwei" class="error-div" style="top: 528px; left: 753px">
+									<div class="blingbling warn-marker"></div>
+									<div class="warn-msg" style="width: 100px"> &nbsp;&nbsp;椋庣涓嶅湪浣庝綅 </div>
+								</div>
+								<div v-if="jiareweichuanganqi" class="error-div" style="top: 433px; left: 904px">
+									<div class="blingbling warn-marker"></div>
+									<div class="warn-msg" style="width: 126px"> &nbsp;&nbsp;鍔犵儹浣嶄紶鎰熷櫒鎶ヨ </div>
+								</div>
+								<div v-if="zuoqianfengxianggaowei" class="error-div" style="top: 502px; left: 535px">
+									<div class="blingbling warn-marker"></div>
+									<div class="warn-msg" style="width: 126px"> &nbsp;&nbsp;宸﹀墠椋庣涓嶅湪楂樹綅 </div>
+								</div>
+								<div v-if="zuoqianfengxiangdiwei" class="error-div" style="top: 528px; left: 535px">
+									<div class="blingbling warn-marker"></div>
+									<div class="warn-msg" style="width: 126px"> &nbsp;&nbsp;宸﹀墠椋庣涓嶅湪浣庝綅 </div>
+								</div>
+								<div v-if="zuohoufengxianggaowei" class="error-div" style="top: 459px; left: 904px">
+									<div class="blingbling warn-marker"></div>
+									<div class="warn-msg" style="width: 126px"> &nbsp;&nbsp;宸﹀悗椋庣涓嶅湪楂樹綅 </div>
+								</div>
+								<div v-if="zuohoufengxiangdiwei" class="error-div" style="top: 484px; left: 904px">
+									<div class="blingbling warn-marker"></div>
+									<div class="warn-msg" style="width: 126px"> &nbsp;&nbsp;宸﹀悗椋庣涓嶅湪浣庝綅 </div>
+								</div>
+								<div v-if="youqianfengxianggaowei" class="error-div" style="top: 447px; left: 420px">
+									<div class="blingbling warn-marker"></div>
+									<div class="warn-msg" style="width: 126px"> &nbsp;&nbsp;鍙冲墠椋庣涓嶅湪楂樹綅 </div>
+								</div>
+								<div v-if="youqianfengxiangdiwei" class="error-div" style="top: 473px; left: 420px">
+									<div class="blingbling warn-marker"></div>
+									<div class="warn-msg" style="width: 126px"> &nbsp;&nbsp;鍙冲墠椋庣涓嶅湪浣庝綅 </div>
+								</div>
+								<div v-if="youhoufengxianggaowei" class="error-div" style="top: 383px; left: 805px">
+									<div class="blingbling warn-marker"></div>
+									<div class="warn-msg" style="width: 126px"> &nbsp;&nbsp;鍙冲悗椋庣涓嶅湪楂樹綅 </div>
+								</div>
+								<div v-if="youhoufengxiangdiwei" class="error-div" style="top: 408px; left: 805px">
+									<div class="blingbling warn-marker"></div>
+									<div class="warn-msg" style="width: 126px"> &nbsp;&nbsp;鍙冲悗椋庣涓嶅湪浣庝綅 </div>
+								</div>
+								<div v-if="zuoqianguntongdiwei" class="error-div" style="top: 343px; left: 530px">
+									<div class="blingbling warn-marker"></div>
+									<div class="warn-msg" style="width: 126px"> &nbsp;&nbsp;宸﹀墠婊氱瓛涓嶅湪浣庝綅 </div>
+								</div>
+								<div v-if="zuohouguntongdiwei" class="error-div" style="top: 296px; left: 916px">
+									<div class="blingbling warn-marker"></div>
+									<div class="warn-msg" style="width: 126px"> &nbsp;&nbsp;宸﹀悗婊氱瓛涓嶅湪浣庝綅 </div>
+								</div>
+								<div v-if="youqianguntongdiwei" class="error-div" style="top: 316px; left: 419px">
+									<div class="blingbling warn-marker"></div>
+									<div class="warn-msg" style="width: 126px"> &nbsp;&nbsp;鍙冲墠婊氱瓛涓嶅湪浣庝綅 </div>
+								</div>
+								<div v-if="youhouguntongdiwei" class="error-div" style="top: 270px; left: 797px">
+									<div class="blingbling warn-marker"></div>
+									<div class="warn-msg" style="width: 126px"> &nbsp;&nbsp;鍙冲悗婊氱瓛涓嶅湪浣庝綅 </div>
+								</div>
+							</div>
+						</dv-border-box7>
+					</div>
+					<div class="rightInfo">
+						<div class="rightTop">
+							<dv-border-box7 class="tempMoisChart">
+								<a-row>
+									<a-col :span="7">鏁呴殰鍚嶇О</a-col>
+									<a-col :span="7">寮�濮嬫椂闂�</a-col>
+									<a-col :span="7">缁撴潫鏃堕棿</a-col>
+									<a-col :span="3">鎸佺画鏃堕暱</a-col>
+								</a-row>
+								<div ref="scrollContainer" class="scroll-container">
+									<a-row v-for="item in faultList" :key="item.id">
+										<a-col :span="7">{{ item.faultName }}</a-col>
+										<a-col :span="7">{{ item.startTime }}</a-col>
+										<a-col :span="7">{{ item.endTime }}</a-col>
+										<a-col :span="3">{{ item.totalTime }}</a-col>
+									</a-row>
+								</div>
+							</dv-border-box7>
+						</div>
+						<div class="rightTwo">
+							<dv-border-box7 class="infoChart">
+								<div class="chartTittle"> 鏁呴殰鏃堕暱缁熻 </div>
+								<!--								<div class="outDiv" style="padding-top: 20px">-->
+								<!--                  -->
+								<!--                </div>-->
+								<div :id="'chartDom'" style="width: 340px; height: 280px"></div>
+							</dv-border-box7>
+
+							<dv-border-box7 class="infoChart">
+								<div class="chartTittle">鏁呴殰娆℃暟绾� </div>
+								<div :id="'chartDom2'" style="width: 340px; height: 280px"></div>
+							</dv-border-box7>
+							<dv-border-box7 class="infoChart">
+								<div class="chartTittle">璀﹀憡鏃堕暱缁熻</div>
+								<div :id="'chartDom3'" style="width: 340px; height: 280px"></div>
+							</dv-border-box7>
+							<dv-border-box7 class="infoChart">
+								<div class="chartTittle">
+									<div> 璀﹀憡娆℃暟缁熻</div>
+								</div>
+								<div :id="'chartDom4'" style="width: 340px; height: 280px"></div>
+							</dv-border-box7>
+						</div>
+					</div>
+				</div>
+			</div>
+		</div>
+	</dv-full-screen-container>
+</template>
+
+<script setup lang="ts">
+	import { useFullscreen } from '@vueuse/core'
+	import { BorderBox7 as DvBorderBox7 } from '@kjgl77/datav-vue3'
+	import { router } from '/@/router'
+	import { onMounted, ref, onUnmounted } from 'vue'
+	import { Progress } from 'ant-design-vue'
+	import * as echarts from 'echarts'
+	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 { queryByOrderId } from '../dryFaultRecord/DryFaultRecord.api'
+	import { dryEquipment } from '../dataDefine/DryEquipment.data'
+	import { useUserStore } from '/@/store/modules/user'
+  import { getTenantId, getToken } from '/@/utils/auth'
+	const domRef = ref<Nullable<HTMLElement>>(null)
+	const { enter, toggle, exit, isFullscreen } = useFullscreen()
+
+	const { toggle: toggleDom } = useFullscreen(domRef)
+	const Timer = ref()
+	const Timer2 = ref()
+	const scrollContainer = ref(null)
+	let scrollInterval = null
+	const isScrolling = ref(false) // 鎺у埗鏄惁姝e湪婊氬姩浠ラ槻姝㈤噸澶嶈Е鍙�
+	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({
+		code: 0,
+	})
+
+	const position = ref(1)
+	//realData.value.tempValue = [0, 100]
+	realData.value.mois = [0.5, 0.35, 0.2]
+	statusGif = 'tmrefeng2'
+	realData.value.herbImage = 'yaocai1.png'
+  // const faultConst = ['鎬ュ仠鎶ヨ','宸﹀墠鎬ュ仠','闈㈡澘鎬ュ仠','鍑烘枡鎬ュ仠','娓╁害澶辨帶','婊氱瓛鍗�','婊氱瓛闄�','婊氱瓛鐢垫満杩囨祦','椋庣鍗�','椋庣闄�','椋庣椋庢満杩囨祦']
+  // const warningConst = ['宸﹀墠闂�','鍙冲墠闂�','宸﹀悗闂�','鍙冲悗闂�','婊氱瓛涓嶅湪楂樹綅','椋庣涓嶅湪浣庝綅','椋庣涓嶅湪楂樹綅','鍔犵儹浣嶄紶鎰熷櫒','宸﹀墠椋庣楂樹綅浼犳劅鍣�','鍙冲墠椋庣楂樹綅浼犳劅鍣�','宸﹀悗椋庣楂樹綅浼犳劅鍣�','鍙冲悗椋庣楂樹綅浼犳劅鍣�','宸﹀墠椋庣浣庝綅浼犳劅鍣�','鍙冲墠椋庣浣庝綅浼犳劅鍣�','宸﹀悗椋庣浣庝綅浼犳劅鍣�','鍙冲悗椋庣浣庝綅浼犳劅鍣�','宸﹀墠婊氱瓛浣庝綅浼犳劅鍣�','鍙冲墠婊氱瓛浣庝綅浼犳劅鍣�','宸﹀悗婊氱瓛浣庝綅浼犳劅鍣�','鍙冲悗婊氱瓛浣庝綅浼犳劅鍣�']
+
+	//----------------error----------------
+	const shebeijiting = ref(false)
+	const chuliaojiting = ref(false)
+	const zuoqianjiting = ref(false)
+	const mianbanjiting = ref(false)
+	const fengxiangsheng = ref(false)
+	const fengxiangjiang = ref(false)
+	const fengjiguoliu = ref(false)
+	const guntongsheng = ref(false)
+	const guntongjiang = ref(false)
+	const guntongguoliu = ref(false)
+	const wendubaojing = ref(false)
+	//--------------warning------------
+	const zuoqianmen = ref(false)
+	const zuohoumen = ref(false)
+	const youqianmen = ref(false)
+	const youhoumen = ref(false)
+	const guntongbuzaigaowei = ref(false)
+	const fengxiangbuzaigaowei = ref(false)
+	const fengxiangbuzaidiwei = ref(false)
+	const jiareweichuanganqi = ref(false)
+	const zuoqianfengxianggaowei = ref(false)
+	const zuohoufengxianggaowei = ref(false)
+	const youqianfengxianggaowei = ref(false)
+	const youhoufengxianggaowei = ref(false)
+	const zuoqianfengxiangdiwei = ref(false)
+	const zuohoufengxiangdiwei = ref(false)
+	const youqianfengxiangdiwei = ref(false)
+	const youhoufengxiangdiwei = ref(false)
+	const zuoqianguntongdiwei = ref(false)
+	const zuohouguntongdiwei = ref(false)
+	const youqianguntongdiwei = ref(false)
+	const youhouguntongdiwei = ref(false)
+
+	const faultList = ref([])
+	var chart1: echarts.ECharts
+	var chart2: echarts.ECharts
+	var chart3: echarts.ECharts
+	var chart4: echarts.ECharts
+	// 鍔ㄦ�佽鍙栧浘鐗�
+	function getHerbImageUrl(name: string) {
+		return new URL(`/src/assets/images/dry/yaocai/${name}`, import.meta.url).href
+	}
+
+	// 鍔ㄦ�佽鍙栧浘鐗�
+	function getStatusImageUrl(name: string) {
+		if (name == 'zanting') {
+			return new URL(`/src/assets/images/dry/${name}.png`, import.meta.url).href
+		} else {
+			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)
+			eqp.value = res
+			eqp.value.dryEfficiency = res.dryEfficiency
+			eqp.value.steamConsumption = res.steamConsumption
+			eqp.value.powerConsumption = res.powerConsumption
+			queryRealTime()
+		})
+	}
+
+	function listAllEqp() {
+		listAll({ enable: 'Y' })
+			.then((result) => {
+				//console.log(`output->result`, result)
+				eqps.value = result
+				// result.forEach((item) => {
+				// 	eqpCodes.push(item.code)
+				// })
+
+			})
+			.catch((err) => {
+				//console.log(`output->err`, err)
+			})
+	}
+
+	function initCharts() {
+		let chartDom1: HTMLElement = document.getElementById('chartDom') as HTMLElement
+		let chartDom2: HTMLElement = document.getElementById('chartDom2') as HTMLElement
+		let chartDom3: HTMLElement = document.getElementById('chartDom3') as HTMLElement
+		let chartDom4: HTMLElement = document.getElementById('chartDom4') as HTMLElement
+
+		chart1 = echarts.init(chartDom1)
+		chart2 = echarts.init(chartDom2)
+		chart3 = echarts.init(chartDom3)
+		chart4 = echarts.init(chartDom4)
+
+		const option2 = {
+			grid: {
+				left: '13%', // 宸﹁竟璺濓紝涔熷彲浠ユ槸鍏蜂綋鐨勫儚绱犲�硷紝渚嬪 50
+				right: '6%', // 鍙宠竟璺�
+				top: '13%', // 涓婅竟璺�
+				bottom: '35%', // 璁剧疆涓嬭竟璺濓紝渚嬪杩欓噷璁剧疆涓�15%
+			},
+			xAxis: {
+				type: 'category',
+				data: [],
+				axisLabel: {
+					rotate: 55, // 杩欓噷璁剧疆鏃嬭浆鐨勮搴︼紝姝e�艰〃绀洪『鏃堕拡鏃嬭浆
+					interval: 0, // 寮哄埗鏄剧ず鎵�鏈夋爣绛撅紝涓嶈繘琛岄棿闅旀樉绀�
+					color: '#fff', // 璁剧疆X杞存爣绛惧瓧浣撻鑹�
+				},
+			},
+			yAxis: {
+				type: 'value',
+				axisLabel: {
+					color: '#fff', // 璁剧疆Y杞存爣绛惧瓧浣撻鑹�
+				},
+				splitLine: { show: false }, // 涓嶆樉绀篩杞村垎鍓茬嚎锛堢綉鏍肩嚎锛�
+			},
+			series: [
+				{
+					data: [],
+					type: 'bar',
+					itemStyle: {
+						color: '#3398DB', // 鎸囧畾鏌卞瓙鐨勯鑹�
+					},
+				},
+			],
+		}
+		const option1 = {
+			tooltip: {
+				trigger: 'item',
+			},
+
+			series: [
+				{
+					data: [],
+					type: 'pie',
+					radius: '50%',
+					emphasis: {
+						itemStyle: {
+							shadowBlur: 10,
+							shadowOffsetX: 0,
+							shadowColor: 'rgba(0, 0, 0, 0.5)',
+						},
+					},
+					label: {
+						show: true, // 鏄剧ず鏍囩
+						//position: 'outside', // 鏍囩鐨勪綅缃紝鍙互鏄� 'outside', 'inside', 'center'
+						//formatter: '{b}: {c} ({d}%)', // 鏍囩鍐呭鏍煎紡鍖栧嚱鏁版垨瀛楃涓叉ā鏉�
+						fontSize: 12, // 璁剧疆瀛椾綋澶у皬
+						// fontWeight: 'bold', // 璁剧疆瀛椾綋绮楃粏
+						color: '#fff', // 璁剧疆瀛椾綋棰滆壊
+					},
+				},
+			],
+		}
+		const option4 = {
+			grid: {
+				left: '13%', // 宸﹁竟璺濓紝涔熷彲浠ユ槸鍏蜂綋鐨勫儚绱犲�硷紝渚嬪 50
+				right: '6%', // 鍙宠竟璺�
+				top: '13%', // 涓婅竟璺�
+				bottom: '35%', // 璁剧疆涓嬭竟璺濓紝渚嬪杩欓噷璁剧疆涓�15%
+			},
+			xAxis: {
+				type: 'category',
+				data: [],
+				axisLabel: {
+					rotate: 55, // 杩欓噷璁剧疆鏃嬭浆鐨勮搴︼紝姝e�艰〃绀洪『鏃堕拡鏃嬭浆
+					interval: 0, // 寮哄埗鏄剧ず鎵�鏈夋爣绛撅紝涓嶈繘琛岄棿闅旀樉绀�
+					color: '#fff', // 璁剧疆X杞存爣绛惧瓧浣撻鑹�
+				},
+			},
+			yAxis: {
+				type: 'value',
+				axisLabel: {
+					color: '#fff', // 璁剧疆Y杞存爣绛惧瓧浣撻鑹�
+				},
+				splitLine: { show: false }, // 涓嶆樉绀篩杞村垎鍓茬嚎锛堢綉鏍肩嚎锛�
+			},
+			series: [
+				{
+					data: [],
+					type: 'bar',
+					itemStyle: {
+						color: '#3398DB', // 鎸囧畾鏌卞瓙鐨勯鑹�
+					},
+				},
+			],
+		}
+		const option3 = {
+			tooltip: {
+				trigger: 'item',
+			},
+
+			series: [
+				{
+					data: [],
+					type: 'pie',
+					radius: '50%',
+					emphasis: {
+						itemStyle: {
+							shadowBlur: 10,
+							shadowOffsetX: 0,
+							shadowColor: 'rgba(0, 0, 0, 0.5)',
+						},
+					},
+					label: {
+						show: true, // 鏄剧ず鏍囩
+						//position: 'outside', // 鏍囩鐨勪綅缃紝鍙互鏄� 'outside', 'inside', 'center'
+						//formatter: '{b}: {c} ({d}%)', // 鏍囩鍐呭鏍煎紡鍖栧嚱鏁版垨瀛楃涓叉ā鏉�
+						fontSize: 12, // 璁剧疆瀛椾綋澶у皬
+						//fontWeight: 'bold', // 璁剧疆瀛椾綋绮楃粏
+						color: '#fff', // 璁剧疆瀛椾綋棰滆壊
+					},
+				},
+			],
+		}
+
+		option1 && chart1.setOption(option1)
+		option2 && chart2.setOption(option2)
+		option3 && chart3.setOption(option3)
+		option4 && chart4.setOption(option4)
+    queryRealTime()
+	}
+
+	var shangliaoFlag = false
+	var statusGif = 'tmrefeng2'
+	var statusTxt = '姝e湪骞茬嚗'
+
+	function chaiwangban() {
+		statusGif = 'chaiwangban-1'
+		setTimeout(shangliao, 7000)
+	}
+
+	function shangliao() {
+		statusGif = 'shangliao-N'
+		setTimeout(() => {
+			statusGif = 'zhuangwangban'
+			setTimeout(() => {
+				statusGif = 'guanmen1'
+				setTimeout(() => {
+					shangliaoFlag = false
+				}, 4000)
+			}, 7000)
+		}, 15000)
+	}
+  function back() {
+    router.back()
+  }
+	/**
+	 * 鏌ヨ瀹炴椂鏁版嵁
+	 */
+	function queryRealTime() {
+		if (eqp.value) {
+			eqp.value = eqps.value[eqpNum.value]
+			// console.log("888",eqp.value);
+      let tenantId = getTenantId()
+			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)
+					var totalTime = 0
+
+					/**姘存淮鍥惧惈姘撮噺 */
+					res.mois = [
+						(res.trendVo.moisture / 100).toFixed(2),
+						(res.trendVo.moisture / 100 / 1.5).toFixed(2),
+						(res.trendVo.moisture / 100 / 3).toFixed(2),
+					]
+
+					/**鐘舵��/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) {
+							// statusTxt = res.level
+							// statusGif = 'zanting'
+							// if (res.level === '鍑嗗闃舵') {
+							// 	console.log("鍑嗗闃舵" + statusGif);
+							// 	statusGif = 'zanting'
+							// } else if (res.level === '骞茬嚗闃舵' || res.level === '姝e湪骞茬嚗') {
+							// 	statusGif = 'tmrefeng2'
+							// } else if (res.level === '缈绘枡闃舵') {
+							// 	statusGif = 'fanliao-N'
+							// } else if (res.level === '鍑烘枡闃舵') {
+							// 	statusGif = 'chuliao-N'
+							// }
+
+							// 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 = '骞茬嚗瀹屾垚'
+						}
+					}
+					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
+          if (res.fault) {
+            res.isError = true
+            res.errorMsg = res.fault;
+            const faults = res.fault;
+            console.log('errorMsg:', res.fault)
+            if (faults.includes('鎬ュ仠鎶ヨ')) {
+              shebeijiting.value = true;
+            } else {
+              shebeijiting.value = false;
+            }
+            if (faults.includes('宸﹀墠鎬ュ仠')) {
+              zuoqianjiting.value = true;
+            } else {
+              zuoqianjiting.value = false;
+            }
+            if (faults.includes('闈㈡澘鎬ュ仠')) {
+              mianbanjiting.value = true;
+            } else {
+              mianbanjiting.value = false;
+            }
+            if (faults.includes('鍑烘枡鎬ュ仠')) {
+              chuliaojiting.value = true;
+            } else {
+              chuliaojiting.value = false;
+            }
+            if (faults.includes('娓╁害澶辨帶')) {
+              wendubaojing.value = true;
+            } else {
+              wendubaojing.value = false;
+            }
+            if (faults.includes('婊氱瓛鍗�')) {
+              guntongsheng.value = true;
+            } else {
+              guntongjiang.value = false;
+            }
+            if (faults.includes('婊氱瓛闄�')) {
+              guntongjiang.value = true;
+            } else {
+              guntongjiang.value = false;
+            }
+            if (faults.includes('婊氱瓛鐢垫満杩囨祦')) {
+              guntongguoliu.value = true;
+            } else {
+              guntongguoliu.value = false;
+            }
+            if (faults.includes('椋庣鍗�')) {
+              fengxiangsheng.value = true;
+            } else {
+              fengxiangsheng.value = false;
+            }
+            if (faults.includes('椋庣闄�')) {
+              fengxiangjiang.value = true;
+            } else {
+              fengxiangjiang.value = false;
+            }
+            if (faults.includes('椋庣椋庢満杩囨祦')) {
+              fengjiguoliu.value = true;
+            } else {
+              fengjiguoliu.value = false;
+            }
+          }
+          else {
+            shebeijiting.value = false
+            chuliaojiting.value = false
+            zuoqianjiting.value = false
+            mianbanjiting.value = false
+            fengxiangsheng.value = false
+            fengxiangjiang.value = false
+            fengjiguoliu.value = false
+            guntongsheng.value = false
+            guntongjiang.value = false
+            guntongguoliu.value = false
+            wendubaojing.value = false
+          }
+
+          if (res.warning) {
+            res.isWarning = true
+            res.warnMsg = res.warning
+            const warnings = res.warning;
+            console.log('warnMsg:', res.warning)
+            if (warnings.includes('宸﹀墠闂�')) {
+              zuoqianmen.value = true;
+            } else {
+              zuoqianmen.value = false;
+            }
+            if (warnings.includes('鍙冲墠闂�')) {
+              youqianmen.value = true;
+            } else {
+              youqianmen.value = false;
+            }
+            if (warnings.includes('宸﹀悗闂�')) {
+              zuohoumen.value = true;
+            } else {
+              zuohoumen.value = false;
+            }
+            if (warnings.includes('鍙冲悗闂�')) {
+              youhoumen.value = true;
+            } else {
+              youhoumen.value = false;
+            }
+            if (warnings.includes('婊氱瓛涓嶅湪楂樹綅')) {
+              guntongbuzaigaowei.value = true;
+            } else {
+              guntongbuzaigaowei.value = false;
+            }
+            if (warnings.includes('椋庣涓嶅湪浣庝綅')) {
+              fengxiangbuzaidiwei.value = true;
+            } else {
+              fengxiangbuzaidiwei.value = false;
+            }
+            if (warnings.includes('椋庣涓嶅湪楂樹綅')) {
+              fengxiangbuzaigaowei.value = true;
+            } else {
+              fengxiangbuzaigaowei.value = false;
+            }
+            if (warnings.includes('鍔犵儹浣嶄紶鎰熷櫒')) {
+              jiareweichuanganqi.value = true;
+            } else {
+              jiareweichuanganqi.value = false;
+            }
+            if (warnings.includes('宸﹀墠椋庣楂樹綅浼犳劅鍣�')) {
+              zuoqianfengxianggaowei.value = true;
+            } else {
+              zuoqianfengxianggaowei.value = false;
+            }
+            if (warnings.includes('鍙冲墠椋庣楂樹綅浼犳劅鍣�')) {
+              youqianfengxianggaowei.value = true;
+            } else {
+              youqianfengxianggaowei.value = false;
+            }
+            if (warnings.includes('宸﹀悗椋庣楂樹綅浼犳劅鍣�')) {
+              zuohoufengxianggaowei.value = true;
+            } else {
+              zuohoufengxianggaowei.value = false;
+            }
+            if (warnings.includes('鍙冲悗椋庣楂樹綅浼犳劅鍣�')) {
+              youhoufengxianggaowei.value = true;
+            } else {
+              youhoufengxianggaowei.value = false;
+            }
+            if (warnings.includes('宸﹀墠椋庣浣庝綅浼犳劅鍣�')) {
+              zuoqianfengxiangdiwei.value = true;
+            } else {
+              zuoqianfengxiangdiwei.value = false;
+            }
+            if (warnings.includes('鍙冲墠椋庣浣庝綅浼犳劅鍣�')) {
+              youqianfengxiangdiwei.value = true;
+            } else {
+              youqianfengxiangdiwei.value = false;
+            }
+            if (warnings.includes('宸﹀悗椋庣浣庝綅浼犳劅鍣�')) {
+              zuohoufengxiangdiwei.value = true;
+            } else {
+              zuohoufengxiangdiwei.value = false;
+            }
+            if (warnings.includes('鍙冲悗椋庣浣庝綅浼犳劅鍣�')) {
+              youhoufengxiangdiwei.value = true;
+            } else {
+              youhoufengxiangdiwei.value = false;
+            }
+            if (warnings.includes('宸﹀墠婊氱瓛浣庝綅浼犳劅鍣�')) {
+              zuoqianguntongdiwei.value = true;
+            } else {
+              zuoqianguntongdiwei.value = false;
+            }
+            if (warnings.includes('鍙冲墠婊氱瓛浣庝綅浼犳劅鍣�')) {
+              youqianguntongdiwei.value = true;
+            } else {
+              youqianguntongdiwei.value = false;
+            }
+            if (warnings.includes('宸﹀悗婊氱瓛浣庝綅浼犳劅鍣�')) {
+              zuohouguntongdiwei.value = true;
+            } else {
+              zuohouguntongdiwei.value = false;
+            }
+            if (warnings.includes('鍙冲悗婊氱瓛浣庝綅浼犳劅鍣�')) {
+              youhouguntongdiwei.value = true;
+            } else {
+              youhouguntongdiwei.value = false;
+            }
+          }
+          else {
+            zuoqianmen.value = false;
+            zuohoumen.value = false;
+            youqianmen.value = false;
+            youhoumen.value = false;
+            guntongbuzaigaowei.value = false;
+            fengxiangbuzaigaowei.value = false;
+            fengxiangbuzaidiwei.value = false;
+            jiareweichuanganqi.value = false;
+            zuoqianfengxianggaowei.value = false;
+            zuohoufengxianggaowei.value = false;
+            youqianfengxianggaowei.value = false;
+            youhoufengxianggaowei.value = false;
+            zuoqianfengxiangdiwei.value = false;
+            zuohoufengxiangdiwei.value = false;
+            youqianfengxiangdiwei.value = false;
+            youhoufengxiangdiwei.value = false;
+            zuoqianguntongdiwei.value = false;
+            zuohouguntongdiwei.value = false;
+            youqianguntongdiwei.value = false;
+            youhouguntongdiwei.value = false;
+          }
+          getRealFault()
+				} else {
+					res = {
+						mois: [],
+						gif: 'tmrefeng2',
+						herbImage: 'yaocai1.png',
+					}
+				}
+
+				res.totalRemain = res.remain - (res.dryTime - totalTime) > 0 ? res.remain - (res.dryTime - totalTime) : 0
+				// console.log(`output->res`, res.detailList[res.detailList.length-1])
+				realData.value = res
+
+			})
+		}
+	}
+
+	/**
+	 * 鏌ヨ褰撳墠宸ュ崟鏁呴殰鏄庣粏
+	 */
+	function getRealFault() {
+		return new Promise(() => {
+      let tenantId = getTenantId()
+			queryByOrderId({ orderId: realData.value.code, tenantId: tenantId }).then((res) => {
+				const faultStats = {}
+				const warningStats = {}
+				// 寰幆鍒楄〃锛屾牴鎹粨鏉熸椂闂村拰寮�濮嬫椂闂达紝璁$畻鏁呴殰鏃堕暱
+				res.forEach((item) => {
+					const faultName = item.faultName
+					item.totalTime = new Date(item.endTime) - new Date(item.startTime)
+					item.totalTime = item.totalTime / 1000
+
+					if (item.faultType === 1) {
+						if (!faultStats[faultName]) {
+							faultStats[faultName] = {
+								count: 0,
+								totalDuration: 0, // 姣
+							}
+						}
+						// 鏇存柊缁熻鏁版嵁
+						faultStats[faultName].count += 1
+						faultStats[faultName].totalDuration += item.totalTime
+					} else if (item.faultType === 2) {
+						if (!warningStats[faultName]) {
+							warningStats[faultName] = {
+								count: 0,
+								totalDuration: 0, // 姣
+							}
+						}
+						// 鏇存柊缁熻鏁版嵁
+						warningStats[faultName].count += 1
+						warningStats[faultName].totalDuration += item.totalTime
+					}
+				})
+				console.log(`output->res`, res)
+				faultList.value = res
+				const prepareFault = prepareData(faultStats)
+				const prepareWarning = prepareData(warningStats)
+				console.log('prePareFault', prepareFault)
+				console.log('prePareWarning', prepareWarning)
+				chart1.setOption({
+
+					series: [{ data: prepareFault.duration }],
+				})
+				chart2.setOption({
+          xAxis: { data: prepareFault.faultNames },
+					series: [{ data: prepareFault.count }],
+				})
+				chart3.setOption({
+					series: [{ data: prepareWarning.duration }],
+				})
+				chart4.setOption({
+          xAxis: { data: prepareWarning.faultNames },
+					series: [{ data: prepareWarning.count }],
+				})
+			})
+		})
+	}
+	// 灏嗙粺璁℃暟鎹浆鎹负閫傚悎ECharts浣跨敤鐨勬牸寮�
+	function prepareData(stats) {
+		const faultNames = Object.keys(stats)
+		const durationSorted = faultNames.sort((a, b) => stats[b].totalDuration - stats[a].totalDuration)
+		const countSorted = faultNames.sort((a, b) => stats[b].count - stats[a].count)
+
+		return {
+			faultNames: faultNames,
+			duration: durationSorted.map((name) => ({ name, value: stats[name].totalDuration })),
+			count: countSorted.map((name) => ({ name, value: stats[name].count })),
+		}
+	}
+	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
+		}
+	}
+
+	// 寮�濮嬭嚜鍔ㄦ粴鍔�
+	const startAutoScroll = () => {
+		console.log('寮�濮嬭嚜鍔ㄦ粴鍔�')
+		scrollInterval = setInterval(() => {
+			if (isScrolling.value) return
+			isScrolling.value = true
+
+			const container = scrollContainer.value
+
+			// 婊氬姩瀹瑰櫒
+			container.scrollTop += 1
+			// 褰撴粴鍔ㄥ埌搴曢儴鏃讹紝閲嶇疆鍒伴《閮�
+			if (container.scrollTop >= container.scrollHeight - container.clientHeight) {
+				setTimeout(() => {
+					container.scrollTop = 0
+					isScrolling.value = false // 绔嬪嵆鍏佽涓嬩竴娆℃粴鍔ㄥ紑濮�
+					return
+				}, 2000)
+			}
+			if (container.scrollTop < container.scrollHeight - container.clientHeight) {
+        setTimeout(() => {
+          isScrolling.value = false
+        }, 20) // 纭繚姣忔婊氬姩闂撮殧瓒冲闀匡紝閬垮厤杩炵画瑙﹀彂
+      }
+		}, 20) // 鎺у埗婊氬姩閫熷害锛屾暟鍊艰秺灏忔粴鍔ㄨ秺蹇�
+
+	}
+
+	// 鍋滄鑷姩婊氬姩
+	const stopAutoScroll = () => {
+		if (scrollInterval) {
+			clearInterval(scrollInterval)
+		}
+	}
+
+	listAllEqp()
+	//queryEqp()
+	// DOM鎸傝浇瀹屾垚鍚庢覆鏌撳浘琛�
+	onMounted(() => {
+		Timer.value = setInterval(queryRealTime, 3000)
+		Timer2.value = setInterval(moveImage, 50)
+		startAutoScroll()
+		setTimeout(initCharts, 500)
+	})
+
+	onUnmounted(() => {
+		clearInterval(Timer.value)
+		clearInterval(Timer2.value)
+		Timer.value = null
+		Timer2.value = null
+		stopAutoScroll()
+	})
+</script>
+
+<style scoped>
+	.eqpBox {
+		height: 100%;
+	}
+	.eqpRow {
+	}
+	.eqpImage {
+		height: 1080px;
+		width: 1920px;
+		background-image: url(/src/assets/images/dry/bg.png);
+		background-repeat: no-repeat;
+		color: white;
+		/*background-position: 160px 280px; */
+		/* background-color: red; */
+		background-size: 120%;
+		padding: 10px;
+		display: flex;
+		flex-wrap: wrap;
+		align-content: flex-start;
+	}
+
+	.leftEqp {
+		height: 1012px;
+		width: 1200px;
+		display: flex;
+		flex-wrap: wrap;
+		align-content: flex-start;
+
+		/* background-color: white;
+		background-image: url(/src/assets/images/dry/shebei1.png);
+		background-repeat: no-repeat;
+		background-size: 125%;
+		border-radius: 10px;
+		background-position: -119px 293px; */
+	}
+
+	.leftTop {
+		height: 993px;
+		width: 1200px;
+		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: 86%;
+		border-radius: 10px;
+		flex-wrap: wrap;
+		background-position: 85px 279px;
+	}
+	.leftMid {
+		width: 850px;
+		height: 281px;
+		/* border: 1px solid; */
+		margin-top: 10px;
+		border-radius: 10px;
+		/* background: white; */
+	}
+	.mainInfo {
+		line-height: 33px;
+		padding-left: 10px;
+		font-size: 30px;
+		color: white;
+	}
+	.subhead {
+		color: #a19f9c;
+		font-size: 16px;
+		padding-left: 10px;
+	}
+
+
+	.leftTop0 {
+		height: 243px;
+		width: 1200px;
+		display: flex;
+		justify-content: center;
+		align-content: flex-start;
+		flex-wrap: wrap;
+	}
+	.leftTop1 {
+		width: 360px;
+		height: 187px;
+		text-align: center;
+		display: flex;
+		justify-content: center;
+		align-items: center;
+		font-size: 30px;
+		color: #727272;
+	}
+
+	.leftTop3 {
+		width: 340px;
+		height: 187px;
+		/* background-image: url(/src/assets/images/dry/fanliao.gif); */
+		background-repeat: no-repeat;
+		background-position: 0px 20px;
+		background-size: 300px;
+		border-radius: 50px;
+	}
+
+	.eqpStatus {
+		width: 848px;
+	}
+	.rightInfo {
+		display: flex;
+		flex-wrap: wrap;
+		align-content: flex-start;
+		height: 993px;
+		width: 700px;
+	}
+
+	.rightTop {
+		display: flex;
+		height: 318px;
+		padding-left: 10px;
+	}
+	.rightTwo {
+		display: flex;
+		flex-wrap: wrap;
+	}
+
+	.infoChart {
+		width: 340px;
+		height: 328px;
+		/* background: white; */
+		margin-left: 10px;
+		margin-top: 10px;
+		border-radius: 10px;
+	}
+	.chartTittle {
+		width: 340px;
+		height: 30px;
+		font-size: 16px;
+		display: flex;
+		justify-content: space-between;
+		padding: 15px 15px;
+	}
+
+	.tempMoisChart {
+		width: 690px;
+		height: 318px;
+		/* background: white; */
+
+		padding: 20px;
+		border-radius: 10px;
+	}
+
+	:deep() .ant-slider-mark-text {
+		padding-left: 15px;
+		font-size: 10px;
+	}
+	:deep() .ant-slider-mark-text::before {
+		content: '';
+		display: block;
+		width: 6px;
+		height: 1px;
+		background-color: #1890ff;
+
+		position: absolute;
+		top: 10px;
+		left: 0px;
+	}
+	:deep() .ant-slider-rail {
+		width: 10px !important;
+		border-radius: 6px 6px 0 0;
+		background: linear-gradient(to top, #ce0000 0%, #ce0000 40%, #ce0000 75%, rgb(160, 160, 160) 100%);
+	}
+	:deep() .ant-slider-track {
+		background: rgb(216, 216, 216);
+
+		height: 20px;
+		width: 10px !important;
+		border-radius: 6px 6px 0 0;
+	}
+	:deep() .ant-slider-track:hover {
+	}
+	:deep() .ant-slider-handle {
+		display: none;
+	}
+	:deep() .ant-slider-dot {
+		display: none;
+	}
+	:deep() .ant-slider-step {
+		width: 10px !important;
+	}
+	:deep() .ant-slider-step > :first-child {
+		display: block !important;
+		width: 30px !important;
+		height: 30px !important;
+		bottom: -26px !important;
+		left: -6px;
+		border: none;
+		background: #ce0000;
+	}
+	:deep() .progress {
+		padding: 25px 25px;
+
+		width: 360px;
+		display: flex;
+	}
+	:deep() .ant-progress-bg {
+		height: 25px !important;
+	}
+	.outDiv {
+		display: flex;
+		justify-content: center;
+		justify-items: center;
+	}
+	.blingbling {
+		-webkit-animation: scaleout 1s infinite ease-in-out;
+		animation: scaleout 1s infinite ease-in-out;
+	}
+
+
+	@-webkit-keyframes scaleout {
+		0% {
+			-webkit-transform: scale(1);
+		}
+
+		100% {
+			-webkit-transform: scale(1.1);
+			opacity: 0;
+		}
+	}
+
+	@keyframes scaleout {
+		0% {
+			transform: scale(1);
+			-webkit-transform: scale(1);
+		}
+
+		100% {
+			transform: scale(1.1);
+			-webkit-transform: scale(1.1);
+			opacity: 0;
+		}
+	}
+	.error-div {
+		position: absolute;
+		display: flex;
+		align-items: center;
+	}
+	.error-marker {
+		width: 18px;
+		height: 18px;
+		background: red;
+		border-radius: 50%;
+	}
+	.error-msg {
+		margin-left: 6px;
+		height: 24px;
+		background: gray;
+		border-radius: 5px;
+		font-weight: bold;
+		color: red;
+	}
+	.warn-marker {
+		width: 18px;
+		height: 18px;
+		background: orange;
+		border-radius: 50%;
+	}
+	.warn-msg {
+		margin-left: 6px;
+		height: 24px;
+		background: gray;
+		border-radius: 5px;
+		font-weight: bold;
+		color: orange;
+	}
+	.scroll-container {
+		height: 280px; /* 璁剧疆浣犳兂瑕佺殑楂樺害 */
+		overflow: hidden;
+	}
+</style>
diff --git a/src/views/dry/bigScreen/BigWorkShop-tjt.vue b/src/views/dry/bigScreen/BigWorkShop-tjt.vue
index b80dbe9..dc34a58 100644
--- a/src/views/dry/bigScreen/BigWorkShop-tjt.vue
+++ b/src/views/dry/bigScreen/BigWorkShop-tjt.vue
@@ -134,11 +134,11 @@
 					</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="eqpInfoup" @click="gotoeqp(num - 1 + (num == 3) * 1 + (num == 4) * 2 )">
 								<div class="eqp-title">
 									<div class="herb_weight">
-										<div>{{ realTime.get(eqpCodes[num - 1])?.herbName || '鏆傛棤' }}</div>
-										<div>{{ realTime.get(eqpCodes[num - 1])?.originWeight || 0 }} Kg</div>
+										<div>{{ realTime.get(eqpCodes[num - 1 + (num == 3) * 1 + (num == 4) * 2 ])?.herbName || '鏆傛棤' }}</div>
+										<div>{{ realTime.get(eqpCodes[num - 1 + (num == 3) * 1 + (num == 4) * 2 ])?.originWeight || 0 }} Kg</div>
 									</div>
 									<!-- <div class="eqp-name">{{ eqpMap.get(eqpCodes[num - 1])?.name || '棰勭暀' }}</div> -->
 									<!-- <div class="process"> </div> -->
@@ -147,7 +147,7 @@
 											from: '#108ee9',
 											to: '#87d068',
 										}"
-										:percent="parseFloat(realTime.get(eqpCodes[num - 1])?.percent || '0')"
+										:percent="parseFloat(realTime.get(eqpCodes[num - 1 + (num == 3) * 1 + (num == 4) * 2 ])?.percent || '0')"
 										status="active"
 										trailColor="#2b2b2b2b"
 										:show-info="false"
@@ -155,15 +155,15 @@
 									<div class="eqp-timer">
 										<div
 											><Icon style="color: #1850b7" icon="ic:twotone-water-drop" :size="20" />
-											{{ realTime.get(eqpCodes[num - 1])?.trendVo?.moisture?.toFixed(1) || '0' }} %
+											{{ realTime.get(eqpCodes[num - 1 + (num == 3) * 1 + (num == 4) * 2 ])?.trendVo?.moisture?.toFixed(1) || '0' }} %
 										</div>
 										<div
 											><Icon style="color: #873853" icon="fluent:temperature-20-regular" :size="20" />
-											{{ realTime.get(eqpCodes[num - 1])?.trendVo?.bellowsTemp?.toFixed(0) || '0' }} 鈩�
+											{{ realTime.get(eqpCodes[num - 1 + (num == 3) * 1 + (num == 4) * 2 ])?.trendVo?.bellowsTemp?.toFixed(0) || '0' }} 鈩�
 										</div>
 										<div
 											><Icon style="color: rgb(134 207 106)" icon="gg:sand-clock" :size="20" />
-											{{ realTime.get(eqpCodes[num - 1])?.totalRemain || 0 }} min
+											{{ realTime.get(eqpCodes[num - 1 + (num == 3) * 1 + (num == 4) * 2 ])?.totalRemain || 0 }} min
 										</div>
 									</div>
 								</div>
@@ -177,11 +177,11 @@
 
 								<div class="weight"
 									><div class="herb">
-										{{ showInfo(realTime.get(eqpCodes[num - 1])) }}
+										{{ showInfo(realTime.get(eqpCodes[num - 1 + (num == 3) * 1 + (num == 4) * 2])) }}
 									</div></div
 								>
 								<div class="water">
-									<div class="eqp_num">{{ num }}</div>
+									<div :class="{ eqp_num: 1 == 1, eqp_num_two: num === 2, eqp_num_three: num === 3, eqp_num_four: num === 4 }">{{ num + (num == 3) * 1 + (num == 4) * 2 }}</div>
 									<!-- <div class="temp">
 										<div style="line-height: 28px"><Icon style="color: #1850b7" icon="ic:twotone-water-drop" :size="28" /> </div>
 										<div class="font">
@@ -200,16 +200,16 @@
 					</div>
 					<div class="down">
 						<div v-for="num in eqpNum2" :key="num" :class="{ two: num === 1, three: num === 2, four_down: num === 3 }">
-							<div class="eqpInfodown" @click="gotoeqp(num + 3)">
+							<div class="eqpInfodown" @click="gotoeqp(num - 2 * num + 3 * num)">
 								<!-- <div class="eqp-info-down">
 									<div class="herb">{{ realTime.get(eqpCodes[num + 3])?.herbName || '鏆傛棤' }}</div>
 								</div>
 								<div class="weight"><div class="herb">{{ realTime.get(eqpCodes[num + 3])?.originWeight || 0 }} Kg </div></div> -->
 								<div class="weight"
-									><div class="herb">{{ showInfo(realTime.get(eqpCodes[num + 3])) }}</div></div
+									><div class="herb">{{ showInfo(realTime.get(eqpCodes[num - 2 * num + 3 * num])) }}</div></div
 								>
 								<div class="water">
-									<div class="eqp_num">{{ num - 2 * num + 3 * num + 1 }}</div>
+									<div :class="{eqp_num:1==1, eqp_num_down_one: num === 1, eqp_num_down_two: num === 2, eqp_num_down_three: num === 3}">{{ num - 2 * num + 3 * num + 1 }}</div>
 									<!-- <div class="temp">
 										<div style="line-height: 28px">
 											<Icon style="color: #1850b7" icon="ic:twotone-water-drop" :size="28" />
@@ -229,8 +229,8 @@
 								<div style="height: 40px"></div>
 								<div class="eqp-title">
 									<div class="herb_weight">
-										<div>{{ realTime.get(eqpCodes[num + 3])?.herbName || '鏆傛棤' }}</div>
-										<div>{{ realTime.get(eqpCodes[num + 3])?.originWeight || 0 }} Kg</div>
+										<div>{{ realTime.get(eqpCodes[num - 2 * num + 3 * num])?.herbName || '鏆傛棤' }}</div>
+										<div>{{ realTime.get(eqpCodes[num - 2 * num + 3 * num])?.originWeight || 0 }} Kg</div>
 									</div>
 
 									<Progress
@@ -238,7 +238,7 @@
 											from: '#108ee9',
 											to: '#87d068',
 										}"
-										:percent="parseFloat(realTime.get(eqpCodes[num + 3])?.percent || '0')"
+										:percent="parseFloat(realTime.get(eqpCodes[num - 2 * num + 3 * num])?.percent || '0')"
 										status="active"
 										trailColor="#2b2b2b2b"
 										:show-info="false"
@@ -247,18 +247,18 @@
 									<div class="eqp-timer">
 										<div
 											><Icon style="color: #1850b7" icon="ic:twotone-water-drop" :size="20" />
-											{{ realTime.get(eqpCodes[num + 3])?.trendVo?.moisture?.toFixed(1) || '0' }} %
+											{{ realTime.get(eqpCodes[num - 2 * num + 3 * num])?.trendVo?.moisture?.toFixed(1) || '0' }} %
 										</div>
 										<div
 											><Icon style="color: #873853" icon="fluent:temperature-20-regular" :size="20" />
-											{{ realTime.get(eqpCodes[num + 3])?.trendVo?.bellowsTemp?.toFixed(0) || '0' }} 鈩�
+											{{ realTime.get(eqpCodes[num - 2 * num + 3 * num])?.trendVo?.bellowsTemp?.toFixed(0) || '0' }} 鈩�
 										</div>
 										<!-- <div><Icon style="color: rgb(42 154 234)" icon="mdi:clock-outline" :size="20" />
 											 {{realTime.get(eqpCodes[num + 3])?.dryTime || 0}} min
 										</div> -->
 										<div
 											><Icon style="color: rgb(134 207 106)" icon="gg:sand-clock" :size="20" />
-											{{ realTime.get(eqpCodes[num + 3])?.totalRemain || 0 }} min
+											{{ realTime.get(eqpCodes[num - 2 * num + 3 * num])?.totalRemain || 0 }} min
 										</div>
 									</div>
 								</div>
@@ -444,10 +444,10 @@
 	.bgImage {
 		height: 1080px;
 		width: 1920px;
-		background-image: url(/src/assets/images/dry/bg/223.png);
+		background-image: url(/src/assets/images/dry/bg/tjtbg@0.5x.png);
 		background-repeat: no-repeat;
 		background-size: 104%;
-		background-position: 0px 257px;
+		background-position: 0px 233px;
 	}
 
 	.head {
@@ -493,7 +493,7 @@
 		justify-content: flex-start;
 	}
 	.down {
-		padding-left: 554px;
+		padding-left: 640px;
 		margin-top: -760px;
 		display: flex;
 
@@ -518,23 +518,23 @@
 	}
 
 	.one {
-		margin: 278px 10px;
+		margin: 282px 37px;
 	}
 
 	.two {
-		margin: 208px 23px;
+		margin: 227px -49px;
 	}
 
 	.three {
-		margin: 110px 158px;
+		margin: 118px 197px;
 	}
 
 	.four {
-		margin: 16px 10px;
+		margin: 0px -5px;
 	}
 
 	.four_down {
-		margin: 4px 74px;
+		margin: -3px 17px;
 	}
 
 	.eqp-title {
@@ -604,7 +604,7 @@
 	.water {
 		height: 120px;
 		width: 110px;
-		margin: 58px 158px;
+		margin: 69px 178px;
 		display: flex;
 		flex-wrap: wrap;
 	}
@@ -662,17 +662,38 @@
 	}
 	.eqp_num {
 		font-weight: bold;
-		width: 40px;
-		height: 40px;
+		width: 35px;
+		height: 35px;
 		background: #a0782e;
 		border-radius: 50px;
 		/* text-align: center; */
-		font-size: 23px;
+		font-size: 18px;
 		color: white;
 		display: flex;
 		justify-content: center;
 		align-items: center;
 	}
+  .eqp_num_two {
+    margin-left: -6px;
+  }
+
+  .eqp_num_three {
+    margin-left: -7px;
+  }
+
+  .eqp_num_four {
+    margin-left: -8px;
+  }
+
+  .eqp_num_down_one {
+    margin: -16px -82px;
+  }
+  .eqp_num_down_two {
+    margin: -23px -61px;
+  }
+  .eqp_num_down_three {
+    margin: -24px -69px;
+  }
 
 	.putincolor {
 		color: antiquewhite;
diff --git a/src/views/dry/dataDefine/DryEquipment.data.ts b/src/views/dry/dataDefine/DryEquipment.data.ts
index 1e6d6bd..f8aedf6 100644
--- a/src/views/dry/dataDefine/DryEquipment.data.ts
+++ b/src/views/dry/dataDefine/DryEquipment.data.ts
@@ -20,26 +20,27 @@
 		align: 'center',
 		dataIndex: 'type_dictText',
 	},
-	{
-		title: '鍒堕�犲晢',
-		align: 'center',
-		dataIndex: 'manufacturer',
-	},
-	{
-		title: '璐叆鏃ユ湡',
-		align: 'center',
-		dataIndex: 'purchaseDate',
-	},
-	{
-		title: '鍚敤鏃ユ湡',
-		align: 'center',
-		dataIndex: 'startDate',
-	},
-	{
-		title: '瀹夎浣嶇疆',
-		align: 'center',
-		dataIndex: 'location',
-	},
+  {
+    title: '璁惧IP',
+    align: 'center',
+    dataIndex: 'ip',
+  },
+  {
+    title: '杞﹂棿',
+    align: 'center',
+    dataIndex: 'shopId_dictText',
+  },
+  {
+    title: '鍚敤鐘舵��',
+    align: 'center',
+    dataIndex: 'enable',
+    customRender: ({ text }) => {
+      return render.renderSwitch(text, [
+        { text: '鏄�', value: 'Y' },
+        { text: '鍚�', value: 'N' },
+      ])
+    },
+  },
 	{
 		title: '璁惧鐘舵��',
 		align: 'center',
@@ -56,6 +57,26 @@
       return options[text] || text;
     }
 	},
+  {
+    title: '鍒堕�犲晢',
+    align: 'center',
+    dataIndex: 'manufacturer',
+  },
+  {
+    title: '璐叆鏃ユ湡',
+    align: 'center',
+    dataIndex: 'purchaseDate',
+  },
+  {
+    title: '鍚敤鏃ユ湡',
+    align: 'center',
+    dataIndex: 'startDate',
+  },
+  {
+    title: '瀹夎浣嶇疆',
+    align: 'center',
+    dataIndex: 'location',
+  },
 	{
 		title: '鎶ュ簾鏃ユ湡',
 		align: 'center',
@@ -66,27 +87,7 @@
 		align: 'center',
 		dataIndex: 'remark',
 	},
-	{
-		title: '璁惧IP',
-		align: 'center',
-		dataIndex: 'ip',
-	},
-	{
-		title: '杞﹂棿',
-		align: 'center',
-		dataIndex: 'shopId_dictText',
-	},
-	{
-		title: '鍚敤鐘舵��',
-		align: 'center',
-		dataIndex: 'enable',
-		customRender: ({ text }) => {
-			return render.renderSwitch(text, [
-				{ text: '鏄�', value: 'Y' },
-				{ text: '鍚�', value: 'N' },
-			])
-		},
-	},
+
 ]
 //鏌ヨ鏁版嵁
 export const searchFormSchema: FormSchema[] = [
@@ -139,6 +140,37 @@
 			return [{ required: true, message: '璇疯緭鍏ヨ澶囧悕绉�!' }, { ...rules.duplicateCheckRule('dry_equipment', 'name', model, schema)[0] }]
 		},
 	},
+  {
+    label: '杞﹂棿id',
+    field: 'shopId',
+    component: 'JDictSelectTag',
+    componentProps: {
+      dictCode: 'dry_shop,name,id,tenant_id=' + getTenantId(),
+    },
+    dynamicRules: ({ }) => {
+      return [{ required: true, message: '璇疯緭鍏ヨ溅闂磇d!' }]
+    },
+  },
+
+  {
+    label: '璁惧绫诲瀷',
+    field: 'type',
+    component: 'JDictSelectTag',
+    componentProps: {
+      dictCode: 'dry_eqp_type,name,id,tenant_id=' + getTenantId(),
+    },
+    dynamicRules: ({  }) => {
+      return [{ required: true, message: '璇疯緭鍏ヨ澶囩被鍨�!' }]
+    },
+  },
+  {
+    label: '璁惧IP',
+    field: 'ip',
+    component: 'Input',
+    dynamicRules: ({ model, schema }) => {
+      return [{ required: true, message: '璇风粦瀹氳澶嘔P!' }, { ...rules.duplicateCheckRule('dry_equipment', 'ip', model, schema)[0] }]
+    },
+  },
 	{
 		label: '鍒堕�犲晢',
 		field: 'manufacturer',
@@ -190,41 +222,13 @@
 			format: 'YYYY-MM-DD'
 		},
 	},
-	{
-		label: '璁惧IP',
-		field: 'ip',
-		component: 'Input',
-		dynamicRules: ({ model, schema }) => {
-			return [{ required: true, message: '璇风粦瀹氳澶嘔P!' }, { ...rules.duplicateCheckRule('dry_equipment', 'ip', model, schema)[0] }]
-		},
-	},
-	{
-		label: '璁惧绫诲瀷',
-		field: 'type',
-		component: 'JDictSelectTag',
-		componentProps: {
-			dictCode: 'dry_eqp_type,name,id,tenant_id=' + getTenantId(),
-		},
-		dynamicRules: ({  }) => {
-			return [{ required: true, message: '璇疯緭鍏ヨ澶囩被鍨�!' }]
-		},
-	},
+
 	{
 		label: '璁惧鎻忚堪',
 		field: 'remark',
 		component: 'Input',
 	},
-	{
-		label: '杞﹂棿id',
-		field: 'shopId',
-		component: 'JDictSelectTag',
-		componentProps: {
-			dictCode: 'dry_shop,name,id,tenant_id=' + getTenantId(),
-		},
-		dynamicRules: ({ }) => {
-			return [{ required: true, message: '璇疯緭鍏ヨ溅闂磇d!' }]
-		},
-	},
+
 	{
 		label: '鍚敤鐘舵��',
 		field: 'enable',

--
Gitblit v1.9.3