MenuCheck.vue 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410
  1. <template>
  2. <div class=" bou tablebk">
  3. <div class="common-layout" style="margin: 0">
  4. <el-aside
  5. width="357px"
  6. class="L_aside L_aside1 asideg asidegbg leftbgimg1"
  7. v-show="sendialogVisible"
  8. >
  9. <div class="demo-collapse">
  10. <el-collapse v-model="coolactiveName1" accordion>
  11. <el-collapse-item name="1" class="imgneon">
  12. <template #title>
  13. <el-icon class="iconimg Frame3" fit="contain"></el-icon>
  14. 监测点<el-icon class="header-icon"> </el-icon>
  15. </template>
  16. <div class="l_Dialog">
  17. <div class="classtab">
  18. <div class="asides_content">
  19. <div class="jc_content tablecolor jc_content">
  20. <div class="font12 my_content1">
  21. <div class="btncolor tablefocus bmar">
  22. <el-table :data="tableData" style="width:480px" :max-height="tableHeight"
  23. :highlight-current-row="currentrow" :row-class-name="tableRowClassName"
  24. @row-click="handleDelete($event)"
  25. :header-cell-style="{ 'background': 'rgba(13, 22, 57, 0) ' }">
  26. <el-table-column type="index" label="编号" />
  27. <el-table-column prop="chname" label="所在巷道" />
  28. <el-table-column prop="pname" label="所在巷道" />
  29. <el-table-column prop="site" label="位置" />
  30. </el-table>
  31. </div>
  32. </div>
  33. <div class="dialog-footer footer_div l_btn">
  34. <div class="footerbtn flex1">
  35. <div class="borderimg"><el-button @click="addsg();sdialog.dianadddialog=true">添加</el-button></div>
  36. </div>
  37. <div class="footerbtn flex1">
  38. <div class="borderimg"><el-button @click="shanchu()">
  39. 删除
  40. </el-button></div>
  41. </div>
  42. <div class="footerbtn flex1">
  43. <div class="borderimg"><el-button @click="amend()">
  44. 修改
  45. </el-button></div>
  46. </div>
  47. </div>
  48. </div>
  49. </div>
  50. </div>
  51. </div>
  52. </el-collapse-item>
  53. </el-collapse>
  54. <!-- 删除 -->
  55. <el-dialog v-model="dialogsgdelect" width="400" class="dialog_class bgcolor tianjia">
  56. <template #header="{ titleId, titleClass }">
  57. <div class="my-header ">
  58. <el-image :src="icon" fit="contain"></el-image>
  59. <h4 :id="titleId" :class="titleClass">删除框</h4>
  60. </div>
  61. </template>
  62. <h4 class="delecttitle"> 是否确认删除 <span class="spanclad">巷道{{ zqname }}</span></h4>
  63. <div class="dialog-footer footer_div l_btn">
  64. <div class="footerbtn flex1">
  65. <div class="borderimg"><el-button @click="dialogsgdelect = false">取消</el-button></div>
  66. </div>
  67. <div class="footerbtn flex1">
  68. <div class="borderimg"><el-button @click="fundeledata(); dialogsgdelect = false">
  69. 确定
  70. </el-button></div>
  71. </div>
  72. </div>
  73. </el-dialog>
  74. <!-- 添加 -->
  75. <el-dialog v-model="sdialog.dianadddialog" width="500px" class="dialog_class bgcolor tianjia">
  76. <template #header="{titleId, titleClass }">
  77. <div class="my-header ">
  78. <el-image :src="icon" fit="contain" ></el-image>
  79. <h4 :id="titleId" :class="titleClass">{{add}}</h4>
  80. </div>
  81. </template>
  82. <el-form-item label="监测点名称:" :label-width="formLabelWidth5">
  83. <el-input v-model="source.chname"
  84. class="w-50 m-2"
  85. placeholder="请输入" />
  86. </el-form-item>
  87. <div class="demo-input-suffix firsttitle magintop guand_1">
  88. <el-form-item label="巷道名称" :label-width="formLabelWidth5">
  89. <el-input v-model="source.selectstr" disabled
  90. class="w-50 m-2 text-disabled"
  91. placeholder="请选择巷道" />
  92. </el-form-item>
  93. <div class="btn2">
  94. <el-button type="primary" @click="fireclick();sdialog.dialogVisiblenode=true">选择巷道</el-button></div>
  95. </div>
  96. <div class="input">
  97. <el-form-item label="位置" :label-width="formLabelWidth5">
  98. <el-input-number v-model="source.site" :min="0" :max="1"
  99. :precision="2" :step="0.1"
  100. controls-position="right"
  101. class="w-50 m-2"
  102. placeholder="位置"
  103. />
  104. </el-form-item>
  105. </div>
  106. <div class="dialog-footer footer_div l_btn">
  107. <div class="footerbtn flex1"><div class="borderimg"><el-button @click="sdialog.dianadddialog=false">取消</el-button></div></div>
  108. <div class="footerbtn flex1"><div class="borderimg"><el-button @click="addEditaip(); ">
  109. 确定
  110. </el-button></div></div>
  111. </div>
  112. </el-dialog>
  113. <!-- 选择管道 -->
  114. <el-dialog
  115. v-model="sdialog.dialogVisiblenode"
  116. width="600"
  117. class="dialog_class bgcolor tianjia asideg asidegbg leftbgimg"
  118. >
  119. <template #header="{titleId, titleClass }">
  120. <div class="my-header ">
  121. <el-image :src="icon" fit="contain" ></el-image>
  122. <h4 :id="titleId" :class="titleClass"> 选择巷道</h4>
  123. </div>
  124. </template>
  125. <div class="demo-input-suffix firsttitle leftbgimg2 my_content1">
  126. <div class="guand_1">
  127. <el-form-item label="节点选择" :label-width="formLabelWidth5">
  128. <el-input v-model="searchtaggd"
  129. class="w-50 m-2"
  130. placeholder="巷道"
  131. />
  132. </el-form-item>
  133. <div class="asdis_btn">
  134. <div class="flex_a"><div class="btns" @click="searchgd"><span class="spantext">搜索</span></div></div>
  135. </div>
  136. </div>
  137. <el-table
  138. :row-class-name="tableRowClassName"
  139. :max-height="tableHeight"
  140. ref="multipleTableRef"
  141. :data="tableData2"
  142. style="width: 100%"
  143. @select="projectsSelectionSelect"
  144. :header-cell-style="{'background':'rgba(13, 22, 57, 0.96) '}"
  145. >
  146. <el-table-column type="selection" width="55" />
  147. <el-table-column property="snId" label="开始节点"/>
  148. <el-table-column property="enId" label="结束节点"/>
  149. <el-table-column property="id" label="编号" width="70"/>
  150. <el-table-column property="name" label="名称" width="70"/>
  151. <el-table-column property="sectionType" label="截面类型" width="120"/>
  152. <el-table-column property="roughCoe" label="粗糙系数"/>
  153. <el-table-column property="sectionPara1" label="截面参数1" width="90"/>
  154. <el-table-column property="sectionPara2" label="截面参数2" width="90" />
  155. <el-table-column property="sectionPara3" label="截面参数3" width="90"/>
  156. <el-table-column property="sectionPara4" label="截面参数4" width="90"/>
  157. <el-table-column property="sectionPara5" label="截面参数5" width="90"/>
  158. </el-table>
  159. <div class="demo-pagination-block" style="margin-top: 20px;">
  160. <el-pagination
  161. v-model:current-page="currentPage4"
  162. v-model:page-size="pageSize4"
  163. small
  164. background
  165. layout="prev, total,pager, next, jumpe,"
  166. :total="parseInt(total)"
  167. class="mt-4"
  168. @current-change="handleCurrentChange"
  169. />
  170. </div>
  171. <div class="dialog-footer footer_div l_btn">
  172. <div class="footerbtn flex1"><div class="borderimg"><el-button @click="sdialog.dialogVisiblenode = false">取消</el-button></div></div>
  173. <div class="footerbtn flex1"><div class="borderimg"><el-button @click="queding();sdialog.dialogVisiblenode = false">
  174. 确定
  175. </el-button></div></div>
  176. </div>
  177. </div>
  178. </el-dialog>
  179. </div>
  180. </el-aside>
  181. </div>
  182. </div>
  183. </template>
  184. <script setup>
  185. import { computed, ref, onMounted, reactive, toRef } from "vue";
  186. import { request, uploadFile } from "@/utils/request";
  187. import { ElMessage, ElButton, ElDialog, ElSelect } from 'element-plus'
  188. import icon from "@/assets/img/icon.png";
  189. import { timestampToTime } from '@/js/lindex.js'
  190. let sendialogVisible = ref(false);
  191. let currentrow=ref(true);
  192. let addVisible = ref(false);
  193. let dialogsgdelect = ref(false)
  194. let classradio1 = ref('Fire');
  195. const formLabelWidth6 = ref(100);
  196. const formLabelWidth5=ref(90);
  197. const multipleTableRef = ref()
  198. const multipleSelection = ref([])
  199. let add = ref("");
  200. let tableData2=ref([]);
  201. let sdialog=ref({
  202. dianadddialog:false,
  203. dialogVisiblenode:false,
  204. })
  205. let coolactiveName1 = ref(["1", "2"]);
  206. let total = ref(1);
  207. let searchtaggd = ref("");
  208. const currentPage4 = ref(1);
  209. const pageSize4 = ref(5)
  210. let cid=ref("");
  211. let source=ref({
  212. selectstr:'',
  213. site:'',
  214. chname:''
  215. })
  216. let firepid=ref("")
  217. const resultactiveName = ref("first");
  218. let tableHeight = ref(160);
  219. let tableData = ref([]);
  220. let tableobj = ref({});
  221. let zqname = ref();
  222. let senobj = ref({
  223. pid: 0,
  224. seid: 0,
  225. site: 0,
  226. type: "温度传感器"
  227. })
  228. const tableRowClassName = ({ row, rowIndex }) => {
  229. if (rowIndex % 2 != 0) {
  230. return 'evenRow';
  231. }
  232. return 'oddRow';
  233. }
  234. // 选中一行
  235. const handleDelete = (val) => {
  236. currentrow.value=true;
  237. tableobj.value = val;
  238. cid.value=val.cid
  239. console.log( tableobj.value );
  240. }
  241. // 删除
  242. const shanchu = () => {
  243. if (JSON.stringify(tableobj.value) == '{}') {
  244. ElMessage.error("你还没有选中修改的项目")
  245. } else {
  246. zqname.value = tableobj.value.pname;
  247. dialogsgdelect.value = true;
  248. }
  249. }
  250. const fundeledata=()=>{
  251. const params = {
  252. transCode: 'D10006',
  253. cid: cid.value
  254. }
  255. request(params)
  256. .then((res) => {
  257. getsensor();
  258. })
  259. .catch((err) => {
  260. ElMessage.error(err.returnMsg)
  261. })
  262. }
  263. onMounted(() => {
  264. getsensor();
  265. });
  266. // 查询
  267. const getsensor = () => {
  268. const params = {
  269. transCode: 'D10004',
  270. }
  271. request(params)
  272. .then((res) => {
  273. tableData.value = res.rows;
  274. })
  275. .catch((err) => {
  276. ElMessage.error(err.returnMsg)
  277. })
  278. }
  279. //添加
  280. const addsg = () => {
  281. add.value = "添加";
  282. addVisible.value = true;
  283. currentrow.value=false;
  284. source.value.selectstr='';
  285. source.value.site='';
  286. firepid.value='';
  287. cid.value='';
  288. tableobj.value=[];
  289. }
  290. // 添加修改的接口
  291. const addEditaip=()=>{
  292. const params = {
  293. transCode: 'D10005',
  294. cid:cid.value,
  295. pid:firepid.value,
  296. site:source.value.site,
  297. chname:source.value.chname
  298. }
  299. request(params)
  300. .then((res) => {
  301. sdialog.value.dianadddialog=false;
  302. ElMessage({
  303. message: res.returnMsg,
  304. type: 'success',
  305. })
  306. tableData.value = res.rows;
  307. getsensor();
  308. })
  309. .catch((err) => {
  310. ElMessage.error(err.returnMsg)
  311. })
  312. }
  313. //修改
  314. const amend = () => {
  315. add.value = "修改";
  316. if (JSON.stringify(tableobj.value) == '{}') {
  317. ElMessage.error("你还没有选中修改的项目")
  318. } else {
  319. sdialog.value.dianadddialog= true;
  320. cid.value = tableobj.value.cid;
  321. source.value.chname = tableobj.value.chname;
  322. source.value.site = tableobj.value.site;
  323. source.value.selectstr=tableobj.value.pname;
  324. firepid.value=tableobj.value.pid;
  325. }
  326. }
  327. // 选择巷道
  328. const fireclick = () => {
  329. searchtaggd.value='';
  330. pipelinedata('');
  331. }
  332. // 节点搜索
  333. function searchgd() {
  334. pipelinedata(searchtaggd.value);
  335. }
  336. // 节点分页查询
  337. const handleCurrentChange = (val) => {
  338. pipelinedata(searchtaggd.value)
  339. }
  340. //节点数据查询
  341. const pipelinedata = (searchtag) => {
  342. const params = {
  343. transCode: 'D00001',
  344. count: pageSize4.value,
  345. page: currentPage4.value,
  346. searchtag: searchtag,
  347. }
  348. request(params)
  349. .then((res) => {
  350. tableData2.value = res.rows;
  351. total.value = res.total;
  352. })
  353. .catch((err) => {
  354. ElMessage.error(err.returnMsg)
  355. })
  356. }
  357. //选中项
  358. const projectsSelectionSelect=(selection, row)=>{
  359. if(selection.length>1){
  360. multipleTableRef.value.clearSelection();
  361. multipleTableRef.value.toggleRowSelection(row,true);
  362. multipleSelection.value=selection[1];
  363. return;
  364. }
  365. if(selection.length==1){
  366. multipleSelection.value=selection;
  367. }else if(selection.length==0){
  368. }
  369. }
  370. const selectfun=()=>{
  371. source.value.selectstr='';
  372. currentPage4.value=1;
  373. console.log()
  374. if(multipleSelection.value.length!=0){
  375. firepid.value=multipleSelection.value[0].id;
  376. source.value.selectstr=multipleSelection.value[0].name;
  377. console.log(multipleSelection.value[0])
  378. }else{
  379. // selectstr.value='';
  380. }
  381. }
  382. // 确定
  383. const queding=()=>{
  384. selectfun();
  385. }
  386. defineExpose({ sendialogVisible, });
  387. </script>