Menuventdoor.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332
  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="fmObjs"
  23. style="width: 100%"
  24. :max-height="tableHeight"
  25. :highlight-current-row="currentrow"
  26. :row-class-name="tableRowClassName"
  27. @row-click="fmtabxz($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="doorname" label="风门名称" />
  36. <el-table-column prop="pname" label="巷道名称" />
  37. <el-table-column prop="site" label="相对位置" />
  38. <el-table-column prop="dragcoe" label="阻力系数" />
  39. <el-table-column prop="onoff" label="开启状态">
  40. <template #default="scope">
  41. {{
  42. scope.row.onoff == 0
  43. ? "否"
  44. : scope.row.onoff == 1
  45. ? "是"
  46. : "是"
  47. }}
  48. </template>
  49. </el-table-column>
  50. </el-table>
  51. <div class="dialog-footer footer_div l_btn">
  52. <div class="footerbtn flex1">
  53. <div class="borderimg"><el-button @click="fmadd();">添加</el-button></div>
  54. </div>
  55. <div class="footerbtn flex1">
  56. <div class="borderimg"><el-button @click="fmupdate();">修改</el-button></div>
  57. </div>
  58. <div class="footerbtn flex1">
  59. <div class="borderimg"><el-button @click="fmdeldialog();">删除</el-button></div>
  60. </div>
  61. </div>
  62. </div>
  63. </div>
  64. </div>
  65. </div>
  66. </el-collapse-item>
  67. </el-collapse>
  68. <!-- 风门的添加 -->
  69. <el-dialog
  70. v-model="fmDShow"
  71. draggable :modal="false" modal-class="summary-dlg"
  72. align-center :append-to-body="true" width="400" class="dialog_class bgcolor tianjia foter_l tianjia"
  73. >
  74. <template #header="{ titleId, titleClass }">
  75. <div class="my-header">
  76. <el-image :src="icon" fit="contain"></el-image>
  77. <h4 :id="titleId" :class="titleClass">{{ tishi }}</h4>
  78. </div>
  79. </template>
  80. <el-form>
  81. <!-- 只能输入引文oninput ="value=value.replace(/[^a-zA-Z]/g, '');" -->
  82. <el-form-item label="编码" :label-width="formLabelWidth6">
  83. <el-input
  84. v-model="fmObj.doorcode"
  85. maxlength="18"
  86. @input="fmObj.doorcode = fmObj.doorcode.replace(/[\u4e00-\u9fa5\s]/g, '')"
  87. class="w-50 m-2"
  88. placeholder="请输入"
  89. />
  90. </el-form-item>
  91. <el-form-item label="风门名称" :label-width="formLabelWidth6">
  92. <el-input
  93. v-model="fmObj.doorname"
  94. maxlength="18"
  95. oninput="value=value.replace(/[^\a-\z\A-\Z0-9\u4E00-\u9FA5]/g,'')"
  96. class="w-50 m-2"
  97. placeholder="请输入"
  98. />
  99. </el-form-item>
  100. <div class="demo-input-suffix firsttitle magintop">
  101. <el-form-item label="巷道名称" :label-width="formLabelWidth6">
  102. <el-input
  103. v-model="fmObj.pname"
  104. disabled
  105. class="w-50 m-2"
  106. placeholder="巷道名称"
  107. />
  108. </el-form-item>
  109. <div class="btn2">
  110. <el-button
  111. type="primary"
  112. @click="fireclick()"
  113. >选择巷道</el-button
  114. >
  115. </div>
  116. </div>
  117. <div class="input">
  118. <el-form-item label="相对位置" :label-width="formLabelWidth6">
  119. <el-input-number
  120. v-model="fmObj.site"
  121. :min="0"
  122. :max="1"
  123. :precision="2"
  124. :step="0.1"
  125. controls-position="right"
  126. class="w-50 m-2"
  127. placeholder="相对位置"
  128. />
  129. </el-form-item>
  130. </div>
  131. <div style="display: flex">
  132. <span class="switchppm">开启状态</span>
  133. <el-switch
  134. v-model="fmObj.onoff"
  135. inline-prompt
  136. active-text="是"
  137. inactive-text="否"
  138. :active-value="1"
  139. :inactive-value="0"
  140. />
  141. </div>
  142. <el-form-item label="阻力系数" :label-width="formLabelWidth6">
  143. <el-input
  144. v-model="fmObj.dragcoe"
  145. maxlength="10"
  146. oninput="value=value.replace(/[^0-9.]/g,'')"
  147. class="w-50 m-2"
  148. placeholder="请输入"
  149. />
  150. </el-form-item>
  151. </el-form>
  152. <div class="dialog-footer footer_div l_btn">
  153. <div class="footerbtn flex1">
  154. <div class="borderimg">
  155. <el-button
  156. @click="fmDShow = false"
  157. >取消</el-button
  158. >
  159. </div>
  160. </div>
  161. <div class="footerbtn flex1">
  162. <div class="borderimg">
  163. <el-button @click="fmsave()"> 确定 </el-button>
  164. </div>
  165. </div>
  166. </div>
  167. </el-dialog>
  168. <!-- 删除框 -->
  169. <el-dialog v-model="dialogsgdelect" draggable :modal="false" modal-class="summary-dlg" align-center :append-to-body="true" width="400" class="dialog_class bgcolor tianjia">
  170. <template #header="{ titleId, titleClass }">
  171. <div class="my-header ">
  172. <el-image :src="icon" fit="contain"></el-image>
  173. <h4 :id="titleId" :class="titleClass">删除框</h4>
  174. </div>
  175. </template>
  176. <h4 class="delecttitle"> 是否确认删除: <span class="spanclad">{{ fmdelname }}</span></h4>
  177. <div class="dialog-footer footer_div l_btn">
  178. <div class="footerbtn flex1">
  179. <div class="borderimg"><el-button @click="dialogsgdelect = false">取消</el-button></div>
  180. </div>
  181. <div class="footerbtn flex1">
  182. <div class="borderimg"><el-button @click="fmdel(); dialogsgdelect = false">
  183. 确定
  184. </el-button></div>
  185. </div>
  186. </div>
  187. </el-dialog>
  188. <!-- 选择管道 -->
  189. <pipelines
  190. ref="pipeline"
  191. :selectstr="fmObj.pname"
  192. @pipelineapi="pipelineapi"
  193. />
  194. </div>
  195. </el-aside>
  196. </div>
  197. </div>
  198. </template>
  199. <script setup>
  200. import { computed, ref, onMounted, reactive, toRef } from "vue"
  201. import { request, uploadFile } from "@/utils/request"
  202. import { ElMessage, ElButton, ElDialog, ElSelect } from "element-plus"
  203. import { message } from '@/utils/message';
  204. import zhCn from "element-plus/es/locale/lang/zh-cn"
  205. import icon from "@/assets/img/icon.png"
  206. import pipelines from "./PipeIine.vue"
  207. import { vtkmodel } from "@/control/vtkModel.js"
  208. import { timestampToTime } from "@/js/lindex.js"
  209. let tableHeight = ref(200)
  210. const formLabelWidth6 = ref(100);
  211. let pipeline = ref()
  212. const tableRowClassName = ({ row, rowIndex }) => {
  213. if (rowIndex % 2 != 0) {
  214. return "evenRow"
  215. }
  216. return "oddRow"
  217. }
  218. let currentrow=ref(false);
  219. let sendialogVisible=ref(false);
  220. let fmDShow =ref(false);
  221. let fmObjs=ref([]);
  222. let fmObj= ref({});
  223. let tishi = ref();
  224. const fmtabxz=(val)=>{
  225. fmObj.value = val;
  226. currentrow.value = true
  227. }
  228. const fmupdate=()=>{
  229. if (JSON.stringify(fmObj.value) == "{}") {
  230. message.error("你还没有选中修改的项目")
  231. }else{
  232. tishi.value = "修改";
  233. fmDShow.value = true;
  234. }
  235. }
  236. const fmadd=()=>{
  237. tishi.value = "添加";
  238. fmObj.value={};
  239. currentrow.value = false;
  240. fmDShow.value = true;
  241. }
  242. const fmsave=()=>{
  243. const params = {
  244. transCode: "D50011",
  245. doorbaseid:fmObj.value.doorbaseid,
  246. doorcode:fmObj.value.doorcode,
  247. pid:fmObj.value.pid,
  248. doorname:fmObj.value.doorname,
  249. site:fmObj.value.site,
  250. dragcoe:parseFloat(fmObj.value.dragcoe),
  251. onoff:fmObj.value.onoff,
  252. }
  253. request(params)
  254. .then((res) => {
  255. fmfind();
  256. fmDShow.value = false;
  257. fmObj.value={};
  258. message.success("风门"+ tishi.value + "成功");
  259. })
  260. .catch((err) => {
  261. message.error(err.returnMsg)
  262. })
  263. }
  264. let dialogsgdelect=ref(false);
  265. let fmdelname=ref("");
  266. const fmdeldialog=()=>{
  267. if (JSON.stringify(fmObj.value) == "{}") {
  268. message.error("你还没有选中删除的项目")
  269. }else{
  270. dialogsgdelect.value = true;
  271. fmdelname.value = fmObj.value.doorname;
  272. }
  273. }
  274. const fmdel=()=>{
  275. if (JSON.stringify(fmObj.value) == "{}") {
  276. message.error("你还没有选中删除的项目")
  277. }else{
  278. const params = {
  279. transCode: "D50012",
  280. doorbaseid:fmObj.value.doorbaseid,
  281. }
  282. request(params)
  283. .then((res) => {
  284. fmfind();
  285. message.success("风门删除成功")
  286. })
  287. .catch((err) => {
  288. message.error(err.returnMsg)
  289. })
  290. }
  291. }
  292. const fmfind=()=>{
  293. const params = {
  294. transCode: "D50010"
  295. }
  296. request(params)
  297. .then((res) => {
  298. fmObjs.value = res.rows
  299. })
  300. .catch((err) => {
  301. message.error(err.returnMsg)
  302. })
  303. }
  304. onMounted(() => {
  305. fmfind()
  306. })
  307. // 选择巷道
  308. const fireclick = () => {
  309. pipeline.value.searchtaggd = ""
  310. pipeline.value.dialogVisiblenode = true
  311. pipeline.value.pipelinedata("")
  312. }
  313. //点击确定
  314. const pipelineapi = (row) => {
  315. fmObj.value.pid = row.id
  316. fmObj.value.pcode = row.code
  317. fmObj.value.pname = row.name
  318. }
  319. defineExpose({ sendialogVisible })
  320. </script>