Menudisaster.vue 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339
  1. <template>
  2. <!-- 报警设置-->
  3. <div class="l_Dialog bou tablebk">
  4. <div class="common-layout" style="margin: 0" >
  5. <el-aside
  6. width="480px"
  7. class="L_aside L_aside1 asideg asidegbg leftbgimg1"
  8. v-show="dialogVisible"
  9. >
  10. <div class="demo-collapse">
  11. <el-collapse v-model="coolactiveName1" accordion>
  12. <el-collapse-item name="1" class="imgneon">
  13. <template #title>
  14. <el-icon class="iconimg Frame3 imgneon" fit="contain"></el-icon>
  15. 报警设置
  16. </template>
  17. <div class="asides_content">
  18. <div class="jc_content tablecolor">
  19. <div class="jc_padding font12">
  20. <div class="xian btncolor tablefocus bmar">
  21. <!--内容 -->
  22. <div class="classtab">
  23. <el-tabs v-model="resultactiveName" type="card" class="demo-tabs" @tab-click="handleClick"
  24. :stretch="true">
  25. <el-tab-pane label="突水" name="Water">
  26. <div class="asides_content">
  27. <div class="jc_content tablecolor jc_content">
  28. <div class="font12 my_content1">
  29. <div class=" btncolor tablefocus bmar">
  30. <el-table :data="tableData" style="width:480px" :max-height="tableHeight"
  31. :highlight-current-row="currentrow"
  32. @row-click="handleDelete($event)"
  33. :header-cell-style="{ 'background': 'rgba(13, 22, 57,0) ' }">
  34. <el-table-column prop="grade" label="预警" >
  35. <template #default="scope">
  36. <el-image v-if="scope.row.grade=='1'" style="height: 100%" :src="bt1" fit="contain"></el-image>
  37. <el-image v-if="scope.row.grade=='2'" style="height: 100%" :src="bt2" fit="contain"></el-image>
  38. <el-image v-if="scope.row.grade=='3'" style="height: 100%" :src="bt3" fit="contain"></el-image>
  39. <el-image v-if="scope.row.grade=='4'" style="height: 100%" :src="bt4" fit="contain"></el-image>
  40. </template>
  41. </el-table-column>
  42. <el-table-column prop="height" label="水位" />
  43. </el-table>
  44. </div>
  45. </div>
  46. <div class="dialog-footer footer_div l_btn">
  47. <div class="footerbtn flex1">
  48. <div class="borderimg"><el-button @click="Eidedes()">
  49. 修改
  50. </el-button></div>
  51. </div>
  52. </div>
  53. </div>
  54. </div>
  55. </el-tab-pane>
  56. <el-tab-pane label="火灾" name="Fire">
  57. <div class="asides_content">
  58. <div class="jc_content tablecolor jc_content">
  59. <div class="font12 my_content1">
  60. <div class=" btncolor tablefocus bmar">
  61. <el-table :data="tableData" style="width:480px" :max-height="tableHeight"
  62. :highlight-current-row="currentrow"
  63. @row-click="handleDelete($event)"
  64. :header-cell-style="{ 'background': 'rgba(13, 22, 57,0) ' }">
  65. <el-table-column prop="grade" label="预警" >
  66. <template #default="scope">
  67. <el-image v-if="scope.row.grade=='1'" style="height: 100%" :src="bt1" fit="contain"></el-image>
  68. <el-image v-if="scope.row.grade=='2'" style="height: 100%" :src="bt2" fit="contain"></el-image>
  69. <el-image v-if="scope.row.grade=='3'" style="height: 100%" :src="bt3" fit="contain"></el-image>
  70. <el-image v-if="scope.row.grade=='4'" style="height: 100%" :src="bt4" fit="contain"></el-image>
  71. </template>
  72. </el-table-column>
  73. <el-table-column prop="temperature" label="温度" />
  74. <el-table-column prop="co2" label="co2" />
  75. <el-table-column prop="so2" label="so2" />
  76. </el-table>
  77. </div>
  78. </div>
  79. <div class="dialog-footer footer_div l_btn">
  80. <div class="footerbtn flex1">
  81. <div class="borderimg"><el-button @click="Eidedes()">
  82. 修改
  83. </el-button></div>
  84. </div>
  85. </div>
  86. </div>
  87. </div>
  88. </el-tab-pane>
  89. <el-tab-pane label="瓦斯" name="Gass">
  90. <div class="asides_content">
  91. <div class="jc_content tablecolor jc_content">
  92. <div class="font12 my_content1">
  93. <div class=" btncolor tablefocus bmar">
  94. <el-table :data="tableData" style="width:480px" :max-height="tableHeight"
  95. :highlight-current-row="currentrow"
  96. @row-click="handleDelete($event)"
  97. :header-cell-style="{ 'background': 'rgba(13, 22, 57,0) ' }">
  98. <el-table-column prop="grade" label="预警" >
  99. <template #default="scope">
  100. <el-image v-if="scope.row.grade=='1'" style="height: 100%" :src="bt1" fit="contain"></el-image>
  101. <el-image v-if="scope.row.grade=='2'" style="height: 100%" :src="bt2" fit="contain"></el-image>
  102. <el-image v-if="scope.row.grade=='3'" style="height: 100%" :src="bt3" fit="contain"></el-image>
  103. <el-image v-if="scope.row.grade=='4'" style="height: 100%" :src="bt4" fit="contain"></el-image>
  104. </template>
  105. </el-table-column>
  106. <el-table-column prop="temperature" label="温度" />
  107. <el-table-column prop="co2" label="co2" />
  108. <el-table-column prop="ch4" label="ch4" />
  109. </el-table>
  110. </div>
  111. </div>
  112. <div class="dialog-footer footer_div l_btn">
  113. <div class="footerbtn flex1">
  114. <div class="borderimg"><el-button @click="Eidedes()">
  115. 修改
  116. </el-button></div>
  117. </div>
  118. </div>
  119. </div>
  120. </div>
  121. </el-tab-pane>
  122. </el-tabs>
  123. </div>
  124. </div>
  125. </div>
  126. </div>
  127. </div>
  128. </el-collapse-item>
  129. </el-collapse>
  130. </div>
  131. </el-aside>
  132. </div>
  133. </div>
  134. <!-- 修改 -->
  135. <el-dialog v-model="xiugVisible" align-center :append-to-body="true" width="400" class="dialog_class bgcolor tianjia foter_l tianjia">
  136. <template #header="{ titleId, titleClass }">
  137. <div class="my-header ">
  138. <el-image :src="icon" fit="contain"></el-image>
  139. <h4 :id="titleId" :class="titleClass">{{ desw.add }}</h4>
  140. </div>
  141. </template>
  142. <el-form class="demo-form-inline" :inline="true" :model="desw">
  143. <!-- <el-form-item label="等级:" v-if="props.classradio == 'Fire'">
  144. <el-select
  145. v-model="des.region"
  146. @change="regionchange($event)"
  147. placeholder="请选择"
  148. >
  149. <el-option
  150. v-for="item in strResultFormatlist"
  151. :key="item.id"
  152. :label="item.name"
  153. :value="item.name"
  154. ></el-option>
  155. </el-select>
  156. </el-form-item> -->
  157. <div v-if="resultactiveName=='Water'">
  158. <el-form-item label="水位" :label-width="formLabelWidth6">
  159. <el-input v-model="desw.height" oninput ="value=value.replace(/[^0-9.]/g,'')" maxlength="15" class="w-50 m-2" placeholder="请输入" />
  160. </el-form-item>
  161. </div>
  162. <div v-if="resultactiveName=='Fire'||resultactiveName=='Gass'">
  163. <el-form-item label="温度" :label-width="formLabelWidth6">
  164. <el-input v-model="desw.temperature" maxlength="15" class="w-50 m-2" placeholder="请输入" />
  165. </el-form-item>
  166. <el-form-item label="co2" :label-width="formLabelWidth6">
  167. <el-input v-model="desw.co2" oninput ="value=value.replace(/[^0-9.]/g,'')" maxlength="15" class="w-50 m-2" placeholder="请输入" />
  168. </el-form-item>
  169. <el-form-item label="so2" :label-width="formLabelWidth6" v-if="resultactiveName=='Fire'">
  170. <el-input v-model="desw.so2" oninput ="value=value.replace(/[^0-9.]/g,'')" maxlength="15" class="w-50 m-2" placeholder="请输入" />
  171. </el-form-item>
  172. <el-form-item label="ch4" :label-width="formLabelWidth6" v-if="resultactiveName=='Gass'">
  173. <el-input v-model="desw.ch4" oninput ="value=value.replace(/[^0-9.]/g,'')" maxlength="15" class="w-50 m-2" placeholder="请输入" />
  174. </el-form-item>
  175. </div>
  176. </el-form>
  177. <div class="dialog-footer footer_div l_btn">
  178. <div class="footerbtn flex1">
  179. <div class="borderimg"><el-button @click="xiugVisible = false">取消</el-button></div>
  180. </div>
  181. <div class="footerbtn flex1">
  182. <div class="borderimg"><el-button @click="Eiedre(); xiugVisible = false">
  183. 确定
  184. </el-button></div>
  185. </div>
  186. </div>
  187. </el-dialog>
  188. </template>
  189. <script setup>
  190. import { computed, ref, onMounted, reactive, toRef } from "vue";
  191. import { request, uploadFile } from "@/utils/request";
  192. import { ElMessage, ElButton, ElDialog, ElSelect } from 'element-plus'
  193. import icon from "@/assets/img/icon.png";
  194. import bt1 from "@/assets/img/Group1377.png"
  195. import bt2 from "@/assets/img/Group1396.png"
  196. import bt3 from "@/assets/img/Group1395.png"
  197. import bt4 from "@/assets/img/Group1376.png"
  198. import { timestampToTime } from '@/js/lindex.js';
  199. import NodeSelect from "./NodeLine.vue";
  200. let dialogVisible=ref(false);
  201. let formLabelWidth6=ref(120)
  202. let xiugVisible=ref(false);
  203. const resultactiveName = ref("Water");
  204. let coolactiveName1 = ref(["1",'2']);
  205. let desw=ref({
  206. region:'',
  207. height:'',
  208. add:'',
  209. temperature:'',
  210. co2:'',
  211. so2:'',
  212. ch4:""
  213. })
  214. let waterobj=ref({
  215. id:null,
  216. height:null,
  217. temperature:null,
  218. co2:null,
  219. ch4:null,
  220. so2:null,
  221. });
  222. let fireobj=ref();
  223. let gessobj=ref();
  224. let tableHeight = ref(280);
  225. let currentrow=ref(false)
  226. const tableData =ref([]);
  227. onMounted(() => {
  228. waterobj.value={};
  229. wgetdisaster();
  230. });
  231. const handleClick = (Tab, val) => {
  232. waterobj.value={};
  233. currentrow.value=false;
  234. resultactiveName.value=Tab.props.name;
  235. wgetdisaster();
  236. // getdisaster();
  237. }
  238. const wgetdisaster = () => {
  239. const params = {
  240. transCode: 'D10028',
  241. stype:resultactiveName.value
  242. }
  243. request(params)
  244. .then((res) => {
  245. tableData.value=res.rows;
  246. console.log(tableData)
  247. })
  248. .catch((err) => {
  249. ElMessage.error(err.returnMsg)
  250. })
  251. }
  252. //选择列表
  253. const handleDelete=(val)=>{
  254. waterobj.value=val;
  255. currentrow.value=true;
  256. }
  257. //修改
  258. const Eidedes=()=>{
  259. if (currentrow.value == false) {
  260. ElMessage.error("你还没有选中修改的项目")
  261. } else {
  262. if(resultactiveName.value=='Water'){
  263. desw.value.add='突水';
  264. desw.value.height= waterobj.value.height;
  265. desw.value.so2= null;
  266. desw.value.co2= null;
  267. desw.value.temperature= null;
  268. desw.value.ch4=null;
  269. }else if(resultactiveName.value=='Fire'){
  270. desw.value.add='火灾';
  271. console.log(waterobj.value);
  272. desw.value.so2= waterobj.value.so2;
  273. desw.value.co2= waterobj.value.co2;
  274. desw.value.temperature= waterobj.value.temperature;
  275. desw.value.height= null;
  276. desw.value.ch4=null;
  277. }else{
  278. desw.value.add='瓦斯';
  279. desw.value.so2= waterobj.value.so2;
  280. desw.value.co2= waterobj.value.co2;
  281. desw.value.temperature= waterobj.value.temperature;
  282. desw.value.height= null;
  283. desw.value.ch4=waterobj.value.ch4;
  284. }
  285. xiugVisible.value=true;
  286. }
  287. }
  288. //确定列表
  289. const Eiedre=()=>{
  290. const params = {
  291. transCode: 'D10029',
  292. id:waterobj.value.id,
  293. height:desw.value.height,
  294. temperature:desw.value.temperature,
  295. co2:desw.value.co2,
  296. ch4:desw.value.ch4,
  297. so2:desw.value.so2,
  298. }
  299. request(params)
  300. .then((res) => {
  301. wgetdisaster();
  302. currentrow.value=false;
  303. })
  304. .catch((err) => {
  305. ElMessage.error(err.returnMsg)
  306. })
  307. }
  308. defineExpose({ dialogVisible, });
  309. </script>