index.vue 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727
  1. <template>
  2. <div class="app-container">
  3. <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
  4. <el-form-item label="性质" prop="nature">
  5. <el-select v-model="queryParams.nature" placeholder="请选择性质" style="width: 100%" @keyup.enter.native="handleQuery">
  6. <el-option
  7. v-for="dict in dict.type.tyx_nature"
  8. :key="dict.value"
  9. :label="dict.label"
  10. :value="dict.value"
  11. ></el-option>
  12. </el-select>
  13. </el-form-item>
  14. <el-form-item label="类型" prop="type">
  15. <el-select v-model="queryParams.type" placeholder="请选择类型" style="width: 100%" @keyup.enter.native="handleQuery">
  16. <el-option
  17. v-for="dict in dict.type.tyx_type"
  18. :key="dict.value"
  19. :label="dict.label"
  20. :value="dict.value"
  21. ></el-option>
  22. </el-select>
  23. </el-form-item>
  24. <el-form-item label="路数" prop="numberOfRoutes">
  25. <el-select v-model="queryParams.numberOfRoutes" placeholder="请选择路数" style="width: 100%" @keyup.enter.native="handleQuery">
  26. <el-option
  27. v-for="dict in dict.type.tyx_numberOfRoutes"
  28. :key="dict.value"
  29. :label="dict.label"
  30. :value="dict.value"
  31. ></el-option>
  32. </el-select>
  33. </el-form-item>
  34. <el-form-item label="管理所" prop="managementOffice">
  35. <el-select v-model="queryParams.managementOffice" placeholder="请输入管理所" style="width: 100%"
  36. @keyup.enter.native="handleQuery">
  37. <el-option
  38. v-for="dict in dict.type.administrative_office"
  39. :key="dict.value"
  40. :label="dict.label"
  41. :value="dict.value"
  42. ></el-option>
  43. </el-select>
  44. </el-form-item>
  45. <el-form-item label="编号" prop="number">
  46. <el-input
  47. v-model="queryParams.number"
  48. placeholder="请输入编号"
  49. clearable
  50. size="small"
  51. @keyup.enter.native="handleQuery"
  52. />
  53. </el-form-item>
  54. <el-form-item label="名称" prop="name">
  55. <el-input
  56. v-model="queryParams.name"
  57. placeholder="请输入名称"
  58. clearable
  59. size="small"
  60. @keyup.enter.native="handleQuery"
  61. />
  62. </el-form-item>
  63. <el-form-item>
  64. <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
  65. <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
  66. </el-form-item>
  67. </el-form>
  68. <el-row :gutter="10" class="mb8">
  69. <el-col :span="1.5">
  70. <el-button
  71. type="primary"
  72. plain
  73. icon="el-icon-plus"
  74. size="mini"
  75. @click="handleAdd"
  76. v-hasPermi="['gas:pressureRegulatingBox:add']"
  77. >新增
  78. </el-button>
  79. </el-col>
  80. <el-col :span="1.5">
  81. <el-button
  82. type="success"
  83. plain
  84. icon="el-icon-edit"
  85. size="mini"
  86. :disabled="single"
  87. @click="handleUpdate"
  88. v-hasPermi="['gas:pressureRegulatingBox:edit']"
  89. >修改
  90. </el-button>
  91. </el-col>
  92. <el-col :span="1.5">
  93. <el-button
  94. type="danger"
  95. plain
  96. icon="el-icon-delete"
  97. size="mini"
  98. :disabled="multiple"
  99. @click="handleDelete"
  100. v-hasPermi="['gas:pressureRegulatingBox:remove']"
  101. >删除
  102. </el-button>
  103. </el-col>
  104. <el-col :span="1.5">
  105. <el-button
  106. type="warning"
  107. plain
  108. icon="el-icon-download"
  109. size="mini"
  110. :loading="exportLoading"
  111. @click="handleExport"
  112. v-hasPermi="['gas:pressureRegulatingBox:export']"
  113. >导出
  114. </el-button>
  115. </el-col>
  116. <el-col :span="1.5">
  117. <el-button
  118. type="info"
  119. icon="el-icon-upload2"
  120. size="mini"
  121. @click="handleImport"
  122. v-hasPermi="['gas:pressureRegulatingBox:import']"
  123. >导入
  124. </el-button>
  125. </el-col>
  126. <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
  127. </el-row>
  128. <el-table v-loading="loading" :data="pressureRegulatingBoxList" @selection-change="handleSelectionChange">
  129. <el-table-column type="selection" width="55" align="center"/>
  130. <el-table-column label="序号" align="center" prop="id" v-if="true"/>
  131. <el-table-column label="性质" align="center" prop="nature">
  132. <template slot-scope="scope">
  133. <dict-tag :options="dict.type.tyx_nature" :value="scope.row.nature"/>
  134. </template>
  135. </el-table-column>
  136. <el-table-column label="类型" align="center" prop="type">
  137. <template slot-scope="scope">
  138. <dict-tag :options="dict.type.tyx_type" :value="scope.row.type"/>
  139. </template>
  140. </el-table-column>
  141. <el-table-column label="路数" align="center" prop="numberOfRoutes">
  142. <template slot-scope="scope">
  143. <dict-tag :options="dict.type.tyx_numberOfRoutes" :value="scope.row.numberOfRoutes"/>
  144. </template>
  145. </el-table-column>
  146. <el-table-column label="管理所" align="center" prop="managementOffice">
  147. <template slot-scope="scope">
  148. <dict-tag :options="dict.type.administrative_office" :value="scope.row.managementOffice"/>
  149. </template>
  150. </el-table-column>
  151. <el-table-column label="编号" align="center" prop="number"/>
  152. <el-table-column label="名称" align="center" prop="name"/>
  153. <el-table-column label="经度" align="center" prop="longitude"/>
  154. <el-table-column label="纬度" align="center" prop="latitude"/>
  155. <el-table-column label="巡检次数" align="center" prop="inspectionFrequency"/>
  156. <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
  157. <template slot-scope="scope">
  158. <el-button
  159. size="mini"
  160. type="text"
  161. icon="el-icon-edit"
  162. @click="handleUpdate(scope.row)"
  163. v-hasPermi="['gas:pressureRegulatingBox:edit']"
  164. >修改
  165. </el-button>
  166. <el-button
  167. size="mini"
  168. type="text"
  169. icon="el-icon-delete"
  170. @click="handleDelete(scope.row)"
  171. v-hasPermi="['gas:pressureRegulatingBox:remove']"
  172. >删除
  173. </el-button>
  174. </template>
  175. </el-table-column>
  176. </el-table>
  177. <pagination
  178. v-show="total>0"
  179. :total="total"
  180. :page.sync="queryParams.pageNum"
  181. :limit.sync="queryParams.pageSize"
  182. @pagination="getList"
  183. />
  184. <!-- 用户导入对话框 -->
  185. <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
  186. <el-upload
  187. ref="upload"
  188. :limit="1"
  189. accept=".xlsx, .xls"
  190. :headers="upload.headers"
  191. :action="upload.url + '?updateSupport=' + upload.updateSupport"
  192. :disabled="upload.isUploading"
  193. :on-progress="handleFileUploadProgress"
  194. :on-success="handleFileSuccess"
  195. :auto-upload="false"
  196. drag
  197. >
  198. <i class="el-icon-upload"></i>
  199. <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
  200. <div class="el-upload__tip text-center" slot="tip">
  201. <!--<div class="el-upload__tip" slot="tip">-->
  202. <!--<el-checkbox v-model="upload.updateSupport"/>-->
  203. <!--是否更新已经存在的用户数据-->
  204. <!--</div>-->
  205. <span>仅允许导入xls、xlsx格式文件。</span>
  206. <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;"
  207. @click="importTemplate"
  208. >下载模板
  209. </el-link>
  210. </div>
  211. </el-upload>
  212. <div style="padding-top: 15px;line-height: 25px;font-size: 14px;">
  213. 完成度:{{ bfb }}%
  214. <progress max="100" :value="bfb" style="width: 200px;height: 18px;"></progress>
  215. <br>
  216. 导入结果:{{ jdtMsg }}<br>
  217. <span style="color: red">*提示:导入表格中数据项【类型、路数、管理所、性质】<br>
  218. 请根据系统内部名称填写全称</span>
  219. </div>
  220. <div slot="footer" class="dialog-footer">
  221. <el-button type="primary" @click="submitFileForm">确 定</el-button>
  222. <el-button @click="upload.open = false;bfb='0';jdtMsg=''">取 消</el-button>
  223. </div>
  224. </el-dialog>
  225. <!-- 添加或修改调压箱管理对话框 -->
  226. <el-dialog :title="title" :visible.sync="open" width="1200px" append-to-body>
  227. <el-form ref="form" :model="form" :rules="rules" label-width="100px">
  228. <el-row>
  229. <el-col :span="8">
  230. <el-form-item label="性质" prop="nature">
  231. <el-select v-model="form.nature" placeholder="请选择性质" style="width: 100%">
  232. <el-option
  233. v-for="dict in dict.type.tyx_nature"
  234. :key="dict.value"
  235. :label="dict.label"
  236. :value="dict.value"
  237. ></el-option>
  238. </el-select>
  239. </el-form-item>
  240. </el-col>
  241. <el-col :span="8">
  242. <el-form-item label="类型" prop="type">
  243. <el-select v-model="form.type" placeholder="请选择管理所" style="width: 100%">
  244. <el-option
  245. v-for="dict in dict.type.tyx_type"
  246. :key="dict.value"
  247. :label="dict.label"
  248. :value="dict.value"
  249. ></el-option>
  250. </el-select>
  251. </el-form-item>
  252. </el-col>
  253. <el-col :span="8">
  254. <el-form-item label="路数" prop="numberOfRoutes">
  255. <el-select v-model="form.numberOfRoutes" placeholder="请选择路数" style="width: 100%">
  256. <el-option
  257. v-for="dict in dict.type.tyx_numberOfRoutes"
  258. :key="dict.value"
  259. :label="dict.label"
  260. :value="dict.value"
  261. ></el-option>
  262. </el-select>
  263. </el-form-item>
  264. </el-col>
  265. </el-row>
  266. <el-row>
  267. <el-col :span="8">
  268. <el-form-item label="管理所" prop="managementOffice">
  269. <el-select v-model="form.managementOffice" placeholder="请输入管理所" style="width: 100%">
  270. <el-option
  271. v-for="dict in dict.type.administrative_office"
  272. :key="dict.value"
  273. :label="dict.label"
  274. :value="dict.value"
  275. ></el-option>
  276. </el-select>
  277. </el-form-item>
  278. </el-col>
  279. <el-col :span="8">
  280. <el-form-item label="编号" prop="number">
  281. <el-input v-model="form.number" placeholder="请输入编号"/>
  282. </el-form-item>
  283. </el-col>
  284. <el-col :span="8">
  285. <el-form-item label="名称" prop="name">
  286. <el-input v-model="form.name" placeholder="请输入名称"/>
  287. </el-form-item>
  288. </el-col>
  289. </el-row>
  290. <el-row>
  291. <el-col :span="8">
  292. <el-form-item label="经度" prop="longitude">
  293. <el-input v-model="form.longitude" placeholder="请输入经度"/>
  294. </el-form-item>
  295. </el-col>
  296. <el-col :span="8">
  297. <el-form-item label="纬度" prop="latitude">
  298. <el-input v-model="form.latitude" placeholder="请输入纬度"/>
  299. </el-form-item>
  300. </el-col>
  301. <el-col :span="8">
  302. <el-form-item label="巡检人" >
  303. <el-select v-model="form.inspector" filterable placeholder="请选择巡检人" multiple clearable size="small">
  304. <el-option v-for="item in workerList"
  305. :key="item.id"
  306. :label="item.name"
  307. :value="item.id"/>
  308. </el-select>
  309. </el-form-item>
  310. </el-col>
  311. </el-row>
  312. <el-row>
  313. <el-col :span="24">
  314. <el-form-item label="备注" prop="remark">
  315. <el-input type="textarea" v-model="form.remark" placeholder="请输入备注"/>
  316. </el-form-item>
  317. </el-col>
  318. </el-row>
  319. <el-row>
  320. <el-col :span="8">
  321. <el-form-item label="总户数" prop="remark">
  322. <el-input-number v-model="pressureRegulatingBoxDetailsBo.totalNumberOfHousehold" :controls="false"
  323. style="width: 100%"></el-input-number>
  324. </el-form-item>
  325. </el-col>
  326. <el-col :span="8">
  327. <el-form-item label="调压箱位置" prop="remark">
  328. <el-input v-model="pressureRegulatingBoxDetailsBo.positionOfPressureRegulatingBox"
  329. placeholder="请输入调压箱位置"/>
  330. </el-form-item>
  331. </el-col>
  332. <el-col :span="8">
  333. <el-form-item label="控制范围" prop="remark">
  334. <el-input v-model="pressureRegulatingBoxDetailsBo.controlRange" placeholder="请输入控制范围"/>
  335. </el-form-item>
  336. </el-col>
  337. </el-row>
  338. <el-row>
  339. <el-col :span="8">
  340. <el-form-item label="接收时间" prop="remark">
  341. <el-input v-model="pressureRegulatingBoxDetailsBo.receivingTime" placeholder="请输入接收时间"/>
  342. </el-form-item>
  343. </el-col>
  344. <el-col :span="8">
  345. <el-form-item label="阀井位置" prop="remark">
  346. <el-input v-model="pressureRegulatingBoxDetailsBo.valveWellPosition" placeholder="请输入阀井位置"/>
  347. </el-form-item>
  348. </el-col>
  349. <el-col :span="8">
  350. <el-form-item label="阀井钥匙形状" prop="remark">
  351. <el-input v-model="pressureRegulatingBoxDetailsBo.valveWellKeyShape" placeholder="请输入阀井钥匙形状"/>
  352. </el-form-item>
  353. </el-col>
  354. </el-row>
  355. <el-row>
  356. <el-col :span="8">
  357. <el-form-item label="厂家" prop="remark">
  358. <el-input v-model="pressureRegulatingBoxDetailsBo.manufacturer" placeholder="请输入厂家"/>
  359. </el-form-item>
  360. </el-col>
  361. <el-col :span="8">
  362. <el-form-item label="流量" prop="remark">
  363. <el-input v-model="pressureRegulatingBoxDetailsBo.flow" placeholder="请输入流量"/>
  364. </el-form-item>
  365. </el-col>
  366. <el-col :span="8">
  367. <el-form-item label="进口管径" prop="remark">
  368. <el-input v-model="pressureRegulatingBoxDetailsBo.importPipeDiameter" placeholder="请输入进口管径"/>
  369. </el-form-item>
  370. </el-col>
  371. </el-row>
  372. <el-row>
  373. <el-col :span="8">
  374. <el-form-item label="出口管径" prop="remark">
  375. <el-input v-model="pressureRegulatingBoxDetailsBo.outletPipeDiameter" placeholder="请输入出口管径"/>
  376. </el-form-item>
  377. </el-col>
  378. <el-col :span="8">
  379. <el-form-item label="旁通管径" prop="remark">
  380. <el-input v-model="pressureRegulatingBoxDetailsBo.bypassPipeDiameter" placeholder="请输入旁通管径"/>
  381. </el-form-item>
  382. </el-col>
  383. <el-col :span="8">
  384. <el-form-item label="调压器" prop="remark">
  385. <el-input v-model="pressureRegulatingBoxDetailsBo.voltageRegulator" placeholder="请输入调压器"/>
  386. </el-form-item>
  387. </el-col>
  388. </el-row>
  389. <el-row>
  390. <el-col :span="8">
  391. <el-form-item label="设施规格型号" prop="remark">
  392. <el-input v-model="pressureRegulatingBoxDetailsBo.facilitySpecificationsAndModels"
  393. placeholder="请输入设施规格型号"/>
  394. </el-form-item>
  395. </el-col>
  396. <el-col :span="8">
  397. <el-form-item label="入口压力" prop="remark">
  398. <el-input v-model="pressureRegulatingBoxDetailsBo.inletPressure" placeholder="请输入入口压力"/>
  399. </el-form-item>
  400. </el-col>
  401. <el-col :span="8">
  402. <el-form-item label="出口压力" prop="remark">
  403. <el-input v-model="pressureRegulatingBoxDetailsBo.outletPressure" placeholder="请输入出口压力"/>
  404. </el-form-item>
  405. </el-col>
  406. </el-row>
  407. <el-row>
  408. <el-col :span="8">
  409. <el-form-item label="切断压力" prop="remark">
  410. <el-input v-model="pressureRegulatingBoxDetailsBo.cutOffPressure" placeholder="请输入切断压力"/>
  411. </el-form-item>
  412. </el-col>
  413. <el-col :span="8">
  414. <el-form-item label="放散压力" prop="remark">
  415. <el-input v-model="pressureRegulatingBoxDetailsBo.releasePressure" placeholder="请输入放散压力"/>
  416. </el-form-item>
  417. </el-col>
  418. <el-col :span="8">
  419. <el-form-item label="出厂编号" prop="remark">
  420. <el-input v-model="pressureRegulatingBoxDetailsBo.factoryNumber" placeholder="请输入出厂编号"/>
  421. </el-form-item>
  422. </el-col>
  423. </el-row>
  424. <el-row>
  425. <el-col :span="8">
  426. <el-form-item label="出厂日期" prop="remark">
  427. <el-input v-model="pressureRegulatingBoxDetailsBo.factoryDate" placeholder="请输入出厂日期"/>
  428. </el-form-item>
  429. </el-col>
  430. <el-col :span="8">
  431. <el-form-item label="主电源位置" prop="remark">
  432. <el-input v-model="pressureRegulatingBoxDetailsBo.mainPowerSupplyPosition"
  433. placeholder="请输入主电源位置"></el-input>
  434. </el-form-item>
  435. </el-col>
  436. <el-col :span="8">
  437. <el-form-item label="巡检次数" >
  438. <el-input v-model="form.inspectionFrequency" placeholder="请输入巡检次数"/>
  439. </el-form-item>
  440. </el-col>
  441. <!-- <el-col :span="16">-->
  442. <!-- <el-form-item label="备注" prop="remark">-->
  443. <!-- <el-input type="textarea" v-model="form.releasePressure" placeholder="请输入备注"/>-->
  444. <!-- </el-form-item>-->
  445. <!-- </el-col>-->
  446. </el-row>
  447. </el-form>
  448. <div slot="footer" class="dialog-footer">
  449. <el-button :loading="buttonLoading" type="primary" @click="submitForm">确 定</el-button>
  450. <el-button @click="cancel">取 消</el-button>
  451. </div>
  452. </el-dialog>
  453. </div>
  454. </template>
  455. <script>
  456. import {
  457. listPressureRegulatingBox,
  458. getPressureRegulatingBox,
  459. delPressureRegulatingBox,
  460. addPressureRegulatingBox,
  461. updatePressureRegulatingBox
  462. } from "@/api/gas/pressureRegulatingBox";
  463. import {getToken} from "@/utils/auth";
  464. import {clearFlushProgresddd, clearFlushProgress, flushProgress, flushProgressqqq} from "@/api/gas/area";
  465. import {getWorker} from "@/api/gas/user";
  466. export default {
  467. name: "PressureRegulatingBox",
  468. dicts: ['administrative_office','tyx_nature','tyx_type','tyx_numberOfRoutes',],
  469. data() {
  470. return {// 用户导入参数
  471. upload: {
  472. // 是否显示弹出层(用户导入)
  473. open: false,
  474. // 弹出层标题(用户导入)
  475. title: "",
  476. // 是否禁用上传
  477. isUploading: false,
  478. // 是否更新已经存在的用户数据
  479. updateSupport: 0,
  480. // 设置上传的请求头部
  481. headers: {Authorization: "Bearer " + getToken()},
  482. // 上传的地址
  483. url: process.env.VUE_APP_BASE_API + "/gas/pressureRegulatingBox/importData"
  484. },
  485. bfb: '0',
  486. jdtMsg: '',
  487. // 按钮loading
  488. buttonLoading: false,
  489. // 遮罩层
  490. loading: true,
  491. // 导出遮罩层
  492. exportLoading: false,
  493. // 选中数组
  494. ids: [],
  495. workerList: [],
  496. // 非单个禁用
  497. single: true,
  498. // 非多个禁用
  499. multiple: true,
  500. // 显示搜索条件
  501. showSearch: true,
  502. // 总条数
  503. total: 0,
  504. // 调压箱管理表格数据
  505. pressureRegulatingBoxList: [],
  506. // 弹出层标题
  507. title: "",
  508. // 是否显示弹出层
  509. open: false,
  510. // 查询参数
  511. queryParams: {
  512. pageNum: 1,
  513. pageSize: 10,
  514. nature: undefined,
  515. type: undefined,
  516. numberOfRoutes: undefined,
  517. managementOffice: undefined,
  518. number: undefined,
  519. name: undefined,
  520. longitude: undefined,
  521. latitude: undefined,
  522. },
  523. // 表单参数
  524. form: {},
  525. pressureRegulatingBoxDetailsBo: {},
  526. // 表单校验
  527. rules: {
  528. id: [
  529. {required: true, message: "序号不能为空", trigger: "blur"}
  530. ],
  531. managementOffice: [
  532. {required: true, message: "管理所不能为空", trigger: "blur"}
  533. ],
  534. number: [
  535. {required: true, message: "编号不能为空", trigger: "blur"}
  536. ],
  537. name: [
  538. {required: true, message: "名称不能为空", trigger: "blur"}
  539. ],
  540. longitude: [
  541. {required: true, message: "经度不能为空", trigger: "blur"}
  542. ],
  543. latitude: [
  544. {required: true, message: "纬度不能为空", trigger: "blur"}
  545. ],
  546. }
  547. };
  548. },
  549. created() {
  550. this.getList();
  551. this.getWorkerList();
  552. },
  553. methods: {
  554. getWorkerList() {
  555. getWorker().then(req => {
  556. this.workerList = req.data
  557. })
  558. },
  559. // 文件上传中处理
  560. handleFileUploadProgress(event, file, fileList) {
  561. this.upload.isUploading = true
  562. },
  563. // 文件上传成功处理
  564. handleFileSuccess(response, file, fileList) {
  565. this.upload.isUploading = false
  566. this.$refs.upload.clearFiles()
  567. this.getList()
  568. },
  569. /** 下载模板操作 */
  570. importTemplate() {
  571. this.$download.excel('/gas/pressureRegulatingBox/importTemplate')
  572. },
  573. // 提交上传文件
  574. submitFileForm() {
  575. const ther = this
  576. this.timeInterval = setInterval(function() {
  577. ther.flushProgress()
  578. }, 1500)
  579. this.$refs.upload.submit()
  580. },
  581. // 提交上传文件
  582. flushProgress() {
  583. flushProgressqqq().then(response => {
  584. this.bfb = parseInt(response.data.bfb) >= 100 ? 100 : response.data.bfb
  585. this.jdtMsg = response.data.message
  586. if (response.data.message != null && response.data.message != '') {
  587. clearFlushProgresddd().then(response => {
  588. })
  589. clearInterval(this.timeInterval)
  590. }
  591. })
  592. },
  593. /** 导入按钮操作 */
  594. handleImport() {
  595. this.upload.title = '用户导入'
  596. this.upload.open = true
  597. },
  598. /** 查询调压箱管理列表 */
  599. getList() {
  600. this.loading = true;
  601. listPressureRegulatingBox(this.queryParams).then(response => {
  602. this.pressureRegulatingBoxList = response.rows;
  603. this.total = response.total;
  604. this.loading = false;
  605. });
  606. },
  607. // 取消按钮
  608. cancel() {
  609. this.open = false;
  610. this.reset();
  611. },
  612. // 表单重置
  613. reset() {
  614. this.pressureRegulatingBoxDetailsBo = {}
  615. this.form = {
  616. id: undefined,
  617. nature: undefined,
  618. type: undefined,
  619. numberOfRoutes: undefined,
  620. managementOffice: undefined,
  621. number: undefined,
  622. name: undefined,
  623. longitude: undefined,
  624. latitude: undefined,
  625. remark: undefined,
  626. delFlag: undefined,
  627. createBy: undefined,
  628. createTime: undefined,
  629. updateBy: undefined,
  630. pressureRegulatingBoxDetailsBo: undefined,
  631. updateTime: undefined,
  632. inspector:undefined,
  633. };
  634. this.resetForm("form");
  635. },
  636. /** 搜索按钮操作 */
  637. handleQuery() {
  638. this.queryParams.pageNum = 1;
  639. this.getList();
  640. },
  641. /** 重置按钮操作 */
  642. resetQuery() {
  643. this.resetForm("queryForm");
  644. this.handleQuery();
  645. },
  646. // 多选框选中数据
  647. handleSelectionChange(selection) {
  648. this.ids = selection.map(item => item.id)
  649. this.single = selection.length !== 1
  650. this.multiple = !selection.length
  651. },
  652. /** 新增按钮操作 */
  653. handleAdd() {
  654. this.reset();
  655. this.open = true;
  656. this.title = "添加调压箱管理";
  657. },
  658. /** 修改按钮操作 */
  659. handleUpdate(row) {
  660. this.loading = true;
  661. this.reset();
  662. const id = row.id || this.ids
  663. getPressureRegulatingBox(id).then(response => {
  664. this.loading = false;
  665. this.form = response.data;
  666. this.form.inspector = response.data.inspector != null ? response.data.inspector.split(",").map(Number):undefined;
  667. this.pressureRegulatingBoxDetailsBo = response.data.pressureRegulatingBoxDetailsVo[0];
  668. this.open = true;
  669. this.title = "修改调压箱管理";
  670. });
  671. },
  672. /** 提交按钮 */
  673. submitForm() {
  674. this.$refs["form"].validate(valid => {
  675. if (valid) {
  676. this.buttonLoading = true;
  677. this.form.pressureRegulatingBoxDetailsBo = this.pressureRegulatingBoxDetailsBo
  678. if (this.form.id != null) {
  679. this.form.inspector = this.form.inspector.join(',')
  680. updatePressureRegulatingBox(this.form).then(response => {
  681. this.$modal.msgSuccess("修改成功");
  682. this.open = false;
  683. this.getList();
  684. }).finally(() => {
  685. this.buttonLoading = false;
  686. });
  687. } else {
  688. this.form.inspector = this.form.inspector.join(',')
  689. addPressureRegulatingBox(this.form).then(response => {
  690. this.$modal.msgSuccess("新增成功");
  691. this.open = false;
  692. this.getList();
  693. }).finally(() => {
  694. this.buttonLoading = false;
  695. });
  696. }
  697. }
  698. });
  699. },
  700. /** 删除按钮操作 */
  701. handleDelete(row) {
  702. const ids = row.id || this.ids;
  703. this.$modal.confirm('是否确认删除调压箱管理编号为"' + ids + '"的数据项?').then(() => {
  704. this.loading = true;
  705. return delPressureRegulatingBox(ids);
  706. }).then(() => {
  707. this.loading = false;
  708. this.getList();
  709. this.$modal.msgSuccess("删除成功");
  710. }).finally(() => {
  711. this.loading = false;
  712. });
  713. },
  714. /** 导出按钮操作 */
  715. handleExport() {
  716. this.$download.excel('/gas/pressureRegulatingBox/export', this.queryParams);
  717. }
  718. }
  719. };
  720. </script>