Menumap.vue 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338
  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 v-model="coolactiveName1" 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="l_Dialog">
  18. <div class="classtab">
  19. <div class="asides_content">
  20. <div class="jc_content tablecolor jc_content">
  21. <div class="font12 my_content1">
  22. <div class="btncolor tablefocus bmar">
  23. <el-table :data="tableData" style="width:480px" :max-height="tableHeight"
  24. :highlight-current-row="currentrow" :row-class-name="tableRowClassName"
  25. @row-click="handleDelete($event)"
  26. :header-cell-style="{ 'background': 'rgba(13, 22, 57, 0) ' }">
  27. <template v-slot:empty>
  28. <p>暂无数据</p>
  29. </template>
  30. <el-table-column type="index" label="编号" width="70"/>
  31. <el-table-column prop="ptcode" label="平台code" />
  32. <el-table-column prop="ptid" label="映射编号" />
  33. <el-table-column prop="pname" label="所在巷道" />
  34. </el-table>
  35. <div class="demo-pagination-block pagination" style="margin-top: 20px;">
  36. <el-config-provider :locale="zhCn">
  37. <el-pagination v-model:current-page="currentPage4"
  38. v-model:page-size="pageSize4" small background
  39. layout="prev, total,pager, next, jumpe," :total="parseInt(total)"
  40. class="mt-4" @current-change="handleCurrentChange" />
  41. </el-config-provider>
  42. </div>
  43. </div>
  44. </div>
  45. <div class="dialog-footer footer_div l_btn">
  46. <div class="footerbtn flex1">
  47. <div class="borderimg"><el-button @click="addsg();">添加</el-button></div>
  48. </div>
  49. <!-- <div class="footerbtn flex1"><div class="borderimg"><el-button @click="addsg('2')">
  50. 修改
  51. </el-button></div></div> -->
  52. <div class="footerbtn flex1">
  53. <div class="borderimg"><el-button @click="amend()">
  54. 修改
  55. </el-button></div>
  56. </div>
  57. <div class="footerbtn flex1">
  58. <div class="borderimg"><el-button @click="shanchu()">
  59. 删除
  60. </el-button></div>
  61. </div>
  62. </div>
  63. </div>
  64. </div>
  65. </div>
  66. </div>
  67. </el-collapse-item>
  68. </el-collapse>
  69. <!-- 添加 -->
  70. <el-dialog v-model="addVisible" align-center :append-to-body="true" width="400" class="dialog_class bgcolor tianjia foter_l tianjia">
  71. <template #header="{ titleId, titleClass }">
  72. <div class="my-header ">
  73. <el-image :src="icon" fit="contain"></el-image>
  74. <h4 :id="titleId" :class="titleClass">{{ add }}</h4>
  75. </div>
  76. </template>
  77. <el-form class="demo-form-inline" :inline="true" :model="senobj">
  78. <el-form-item label="平台编号" :label-width="formLabelWidth6">
  79. <el-input v-model="senobj.ptcode" maxlength="15" class="w-50 m-2" placeholder="请输入" />
  80. </el-form-item>
  81. <div class="demo-input-suffix firsttitle magintop guand_1">
  82. <el-form-item label="巷道名称" :label-width="formLabelWidth6">
  83. <el-input v-model="source.selectstr" disabled class="w-50 m-2" placeholder="巷道名称" />
  84. </el-form-item>
  85. <div class="btn2">
  86. <el-button type="primary" @click="fireclick();">选择巷道</el-button>
  87. </div>
  88. </div>
  89. </el-form>
  90. <div class="dialog-footer footer_div l_btn">
  91. <div class="footerbtn flex1">
  92. <div class="borderimg"><el-button @click="addVisible = false">取消</el-button></div>
  93. </div>
  94. <div class="footerbtn flex1">
  95. <div class="borderimg"><el-button @click="addEied(); ">
  96. 确定
  97. </el-button></div>
  98. </div>
  99. </div>
  100. </el-dialog>
  101. <!-- 删除 -->
  102. <el-dialog v-model="dialogsgdelect" align-center :append-to-body="true" width="400" class="dialog_class bgcolor tianjia">
  103. <template #header="{ titleId, titleClass }">
  104. <div class="my-header ">
  105. <el-image :src="icon" fit="contain"></el-image>
  106. <h4 :id="titleId" :class="titleClass">删除框</h4>
  107. </div>
  108. </template>
  109. <h4 class="delecttitle"> 是否确认删除: <span class="spanclad">{{ zqname }}</span></h4>
  110. <div class="dialog-footer footer_div l_btn">
  111. <div class="footerbtn flex1">
  112. <div class="borderimg"><el-button @click="dialogsgdelect = false">取消</el-button></div>
  113. </div>
  114. <div class="footerbtn flex1">
  115. <div class="borderimg"><el-button @click="fundeledata(); dialogsgdelect = false">
  116. 确定
  117. </el-button></div>
  118. </div>
  119. </div>
  120. </el-dialog>
  121. <!-- 选择管道 -->
  122. <pipelines ref="pipeline" :selectstr="source.selectstr" @pipelineapi="pipelineapi" />
  123. </div>
  124. </el-aside>
  125. </div>
  126. </div>
  127. </template>
  128. <script setup>
  129. import { computed, ref, onMounted, reactive, toRef } from "vue";
  130. import { request, uploadFile } from "@/utils/request";
  131. import { ElMessage, ElButton, ElDialog, ElSelect } from 'element-plus'
  132. import zhCn from 'element-plus/es/locale/lang/zh-cn'
  133. import icon from "@/assets/img/icon.png";
  134. import pipelines from "./PipeIine.vue"
  135. import { vtkmodel } from "@/control/vtkModel.js";
  136. import { timestampToTime } from '@/js/lindex.js'
  137. const currentPage4 = ref(1);
  138. const pageSize4 = ref(4)
  139. let total = ref(1);
  140. let pipeline = ref();
  141. let currentrow=ref(true);
  142. let sendialogVisible = ref(false);
  143. let addVisible = ref(false);
  144. let dialogsgdelect = ref(false)
  145. let classradio1 = ref('Fire');
  146. const formLabelWidth6 = ref(100);
  147. let coolactiveName1 = ref(["1", "2"]);
  148. let add = ref("")
  149. const resultactiveName = ref("first");
  150. let tableHeight = ref(200);
  151. let tableData = ref([]);
  152. let tableobj = ref({});
  153. let zqname = ref();
  154. let tishi=ref();
  155. let senobj = ref({
  156. ptcode:'',
  157. ptid:null,
  158. pid:null,
  159. pcode:'',
  160. pname:''
  161. })
  162. let source = ref({
  163. selectstr: '',
  164. })
  165. let firepid = ref("")
  166. const tableRowClassName = ({ row, rowIndex }) => {
  167. if (rowIndex % 2 != 0) {
  168. return 'evenRow';
  169. }
  170. return 'oddRow';
  171. }
  172. // 节点分页查询
  173. const handleCurrentChange = (val) => {
  174. getsensor();
  175. }
  176. // 选中一行
  177. const handleDelete = (val) => {
  178. tableobj.value = val;
  179. currentrow.value=true;
  180. console.log(val);
  181. // console.log(tableobj.value)
  182. }
  183. // 删除
  184. const shanchu = () => {
  185. if (JSON.stringify(tableobj.value) == '{}') {
  186. ElMessage.error("你还没有选中删除的项目")
  187. } else {
  188. dialogsgdelect.value = true
  189. zqname.value = tableobj.value.pname;
  190. }
  191. }
  192. const fundeledata = () => {
  193. const params = {
  194. transCode: 'M00008',
  195. ptid: tableobj.value.ptid
  196. }
  197. request(params)
  198. .then((res) => {
  199. ElMessage({
  200. message: '平台管道映射删除成功',
  201. type: 'success',
  202. })
  203. getsensor();
  204. })
  205. .catch((err) => {
  206. ElMessage.error(err.returnMsg)
  207. })
  208. }
  209. onMounted(() => {
  210. getsensor();
  211. });
  212. // 查询
  213. const getsensor = () => {
  214. const params = {
  215. transCode: 'M00006',
  216. count: pageSize4.value,
  217. page: currentPage4.value,
  218. }
  219. request(params)
  220. .then((res) => {
  221. tableData.value = res.rows;
  222. total.value = res.total;
  223. tableobj.value={};
  224. })
  225. .catch((err) => {
  226. ElMessage.error(err.returnMsg)
  227. })
  228. }
  229. //添加
  230. const addsg = () => {
  231. add.value = "添加";
  232. tishi.value= add.value;
  233. currentrow.value=false;
  234. addVisible.value = true;
  235. senobj.value.ptid = null;
  236. senobj.value.ptcode = '';
  237. senobj.value.pid =null;
  238. senobj.value.pcode = null;
  239. source.value.selectstr = '';
  240. tableobj.value={};
  241. }
  242. // 添加修改的接口
  243. const addEied = () => {
  244. if (senobj.value.ptcode == '') {
  245. ElMessage.error("平台编号不能为空")
  246. return;
  247. }
  248. if (source.value.selectstr == '') {
  249. ElMessage.error("请选择巷道")
  250. return;
  251. }
  252. const params = {
  253. transCode: 'M00007',
  254. ptid: senobj.value.ptid ,
  255. ptcode:senobj.value.ptcode,
  256. pid: senobj.value.pid,
  257. pcode: senobj.value.pcode,
  258. pname:source.value.selectstr
  259. }
  260. console.log(params)
  261. request(params)
  262. .then((res) => {
  263. ElMessage({
  264. message:'平台管道映射'+tishi.value+'成功',
  265. type: 'success',
  266. })
  267. // tableData.value = res.rows;
  268. addVisible.value = false;
  269. getsensor();
  270. })
  271. .catch((err) => {
  272. const regex = /字段\d*/g;
  273. let Msg=err.returnMsg.replace(regex, '');
  274. ElMessage.error(Msg)
  275. })
  276. }
  277. //修改
  278. const amend = () => {
  279. add.value = "修改";
  280. tishi.value= add.value;
  281. if (JSON.stringify(tableobj.value) == '{}') {
  282. ElMessage.error("你还没有选中修改的项目")
  283. } else {
  284. senobj.value.ptid = tableobj.value.ptid;
  285. senobj.value.ptcode = tableobj.value.ptcode;
  286. senobj.value.pid =tableobj.value.pid;
  287. senobj.value.pcode = tableobj.value.pcode;
  288. source.value.selectstr =tableobj.value.pname;
  289. addVisible.value = true;
  290. }
  291. }
  292. // 巷道方法
  293. // 选择巷道
  294. const fireclick = () => {
  295. pipeline.value.searchtaggd='';
  296. pipeline.value.dialogVisiblenode = true;
  297. pipeline.value.pipelinedata('');
  298. }
  299. //点击确定
  300. const pipelineapi = (row) => {
  301. senobj.value.pid = row.id;
  302. senobj.value.pcode= row.code;
  303. source.value.selectstr = row.name;
  304. tableobj.value.pid = row.id;
  305. }
  306. defineExpose({ sendialogVisible, });
  307. </script>