Menuventfan.vue 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295
  1. <template>
  2. <div class="l_Dialog bou tablebk">
  3. <!--风机-->
  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="sendialogVisible"
  9. >
  10. <div class="demo-collapse">
  11. <el-collapse accordion>
  12. <el-collapse-item name="1" class="btnicon">
  13. <template #title>
  14. <el-icon class="iconimg Frame3" fit="contain"></el-icon>
  15. 风机<el-icon class="header-icon"> </el-icon>
  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. <el-table
  22. :data="femObjs"
  23. style="width: 100%"
  24. :max-height="tableHeight"
  25. :highlight-current-row="currentrow"
  26. :row-class-name="tableRowClassName"
  27. @row-click="femtabxz($event)"
  28. :header-cell-style="{
  29. background: 'rgba(13, 22, 57, 0) '
  30. }"
  31. >
  32. <template v-slot:empty>
  33. <p>暂无数据</p>
  34. </template>
  35. <el-table-column prop="fanname" label="风机名称" />
  36. <el-table-column prop="pname" label="巷道名称" />
  37. <el-table-column prop="site" label="相对位置" />
  38. <el-table-column prop="pa" >
  39. <template v-slot:header>
  40. <span >增压</span><br>
  41. <span >(kpa)</span>
  42. </template>
  43. </el-table-column>
  44. <el-table-column prop="onoff" label="开启状态">
  45. <template #default="scope">
  46. {{
  47. scope.row.onoff == "0"
  48. ? "否"
  49. : scope.row.onoff == "1"
  50. ? "是"
  51. : "是"
  52. }}
  53. </template>
  54. </el-table-column>
  55. </el-table>
  56. <div class="asdis_btn">
  57. <div class="flex_a">
  58. <div
  59. class="btns"
  60. @click="femadd()"
  61. >
  62. <span class="spantext">添加</span>
  63. </div>
  64. </div>
  65. <div class="flex_a">
  66. <div class="btns" @click="femupdate()">
  67. <span class="spantext">修改</span>
  68. </div>
  69. </div>
  70. <div class="flex_a">
  71. <div class="btns" @click="femdel()">
  72. <span class="spantext">删除</span>
  73. </div>
  74. </div>
  75. </div>
  76. </div>
  77. </div>
  78. </div>
  79. </div>
  80. </el-collapse-item>
  81. </el-collapse>
  82. <!-- 风门的添加 -->
  83. <el-dialog
  84. v-model="femDShow"
  85. align-center :append-to-body="true" width="400" class="dialog_class bgcolor tianjia foter_l tianjia"
  86. >
  87. <template #header="{ titleId, titleClass }">
  88. <div class="my-header">
  89. <el-image :src="icon" fit="contain"></el-image>
  90. <h4 :id="titleId" :class="titleClass">风机</h4>
  91. </div>
  92. </template>
  93. <el-form>
  94. <!-- 只能输入引文oninput ="value=value.replace(/[^a-zA-Z]/g, '');" -->
  95. <el-form-item label="编码" :label-width="formLabelWidth6">
  96. <el-input
  97. v-model="femObj.fancode"
  98. maxlength="18"
  99. oninput="value=value.replace(/[^\w\\/]/ig,'')"
  100. class="w-50 m-2"
  101. placeholder="请输入"
  102. />
  103. </el-form-item>
  104. <el-form-item label="风机名称" :label-width="formLabelWidth6">
  105. <el-input
  106. v-model="femObj.fanname"
  107. maxlength="18"
  108. oninput="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5]/g,'')"
  109. class="w-50 m-2"
  110. placeholder="请输入"
  111. />
  112. </el-form-item>
  113. <div class="demo-input-suffix firsttitle magintop">
  114. <el-form-item label="巷道名称" :label-width="formLabelWidth6">
  115. <el-input
  116. v-model="femObj.pname"
  117. disabled
  118. class="w-50 m-2"
  119. placeholder="巷道名称"
  120. />
  121. </el-form-item>
  122. <div class="btn2">
  123. <el-button
  124. type="primary"
  125. @click="fireclick()"
  126. >选择巷道</el-button
  127. >
  128. </div>
  129. </div>
  130. <div class="input">
  131. <el-form-item label="位置" :label-width="formLabelWidth6">
  132. <el-input-number
  133. v-model="femObj.site"
  134. :min="0"
  135. :max="1"
  136. :precision="2"
  137. :step="0.1"
  138. controls-position="right"
  139. class="w-50 m-2"
  140. placeholder="位置"
  141. />
  142. </el-form-item>
  143. </div>
  144. <div style="display: flex">
  145. <span class="switchppm">开启状态</span>
  146. <el-switch
  147. v-model="femObj.onoff"
  148. inline-prompt
  149. active-text="是"
  150. inactive-text="否"
  151. :active-value="1"
  152. :inactive-value="0"
  153. />
  154. </div>
  155. <el-form-item label="增压(kpa)" :label-width="formLabelWidth6">
  156. <el-input v-model="femObj.pa" maxlength="10" oninput ="value=value.replace(/[^0-9.]/g,'')" class="w-50 m-2" placeholder="请输入" />
  157. </el-form-item>
  158. </el-form>
  159. <div class="dialog-footer footer_div l_btn">
  160. <div class="footerbtn flex1">
  161. <div class="borderimg">
  162. <el-button
  163. @click="femDShow = false"
  164. >取消</el-button
  165. >
  166. </div>
  167. </div>
  168. <div class="footerbtn flex1">
  169. <div class="borderimg">
  170. <el-button @click="femsave()"> 确定 </el-button>
  171. </div>
  172. </div>
  173. </div>
  174. </el-dialog>
  175. <!-- 选择管道 -->
  176. <pipelines
  177. ref="pipeline"
  178. :selectstr="femObj.pname"
  179. @pipelineapi="pipelineapi"
  180. />
  181. </div>
  182. </el-aside>
  183. </div>
  184. </div>
  185. </template>
  186. <script setup>
  187. import { computed, ref, onMounted, reactive, toRef } from "vue"
  188. import { request, uploadFile } from "@/utils/request"
  189. import { ElMessage, ElButton, ElDialog, ElSelect } from "element-plus"
  190. import zhCn from "element-plus/es/locale/lang/zh-cn"
  191. import icon from "@/assets/img/icon.png"
  192. import pipelines from "./PipeIine.vue"
  193. import { vtkmodel } from "@/control/vtkModel.js"
  194. import { timestampToTime } from "@/js/lindex.js"
  195. let tableHeight = ref(200)
  196. const formLabelWidth6 = ref(100);
  197. let pipeline = ref()
  198. const tableRowClassName = ({ row, rowIndex }) => {
  199. if (rowIndex % 2 != 0) {
  200. return "evenRow"
  201. }
  202. return "oddRow"
  203. }
  204. let currentrow=ref(false);
  205. let sendialogVisible=ref(false);
  206. let femDShow =ref(false);
  207. let femObjs=ref([]);
  208. let femObj= ref({});
  209. const femtabxz=(val)=>{
  210. femObj.value = val;
  211. currentrow.value = true
  212. }
  213. const femupdate=()=>{
  214. if (JSON.stringify(femObj.value) == "{}") {
  215. ElMessage.error("你还没有选中删除的项目")
  216. }else{
  217. femDShow.value = true;
  218. }
  219. }
  220. const femadd=()=>{
  221. femObj.value={};
  222. femDShow.value = true;
  223. }
  224. const femsave=()=>{
  225. const params = {
  226. transCode: "D50008",
  227. fanbaseid:femObj.value.fanbaseid,
  228. fancode:femObj.value.fancode,
  229. pid:femObj.value.pid,
  230. fanname:femObj.value.fanname,
  231. site:femObj.value.site,
  232. pa:parseFloat(femObj.value.pa),
  233. onoff:femObj.value.onoff,
  234. }
  235. request(params)
  236. .then((res) => {
  237. femfind();
  238. femDShow.value = false;
  239. })
  240. .catch((err) => {
  241. ElMessage.error(err.returnMsg)
  242. })
  243. }
  244. const femdel=()=>{
  245. if (JSON.stringify(femObj.value) == "{}") {
  246. ElMessage.error("你还没有选中删除的项目")
  247. }else{
  248. const params = {
  249. transCode: "D50009",
  250. fanbaseid:femObj.value.fanbaseid,
  251. }
  252. request(params)
  253. .then((res) => {
  254. femfind();
  255. })
  256. .catch((err) => {
  257. ElMessage.error(err.returnMsg)
  258. })
  259. }
  260. }
  261. const femfind=()=>{
  262. const params = {
  263. transCode: "D50007"
  264. }
  265. request(params)
  266. .then((res) => {
  267. femObjs.value = res.rows
  268. })
  269. .catch((err) => {
  270. ElMessage.error(err.returnMsg)
  271. })
  272. }
  273. onMounted(() => {
  274. femfind()
  275. })
  276. // 选择巷道
  277. const fireclick = () => {
  278. pipeline.value.searchtaggd = ""
  279. pipeline.value.dialogVisiblenode = true
  280. pipeline.value.pipelinedata("")
  281. }
  282. //点击确定
  283. const pipelineapi = (row) => {
  284. femObj.value.pid = row.id
  285. femObj.value.pcode = row.code
  286. femObj.value.pname = row.name
  287. }
  288. defineExpose({ sendialogVisible })
  289. </script>