index.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677
  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="从表id" prop="subId">
  5. <el-input
  6. v-model="queryParams.subId"
  7. placeholder="请输入从表id"
  8. clearable
  9. size="small"
  10. @keyup.enter.native="handleQuery"
  11. />
  12. </el-form-item>
  13. <el-form-item label="审批id" prop="approveId">
  14. <el-input
  15. v-model="queryParams.approveId"
  16. placeholder="请输入审批id"
  17. clearable
  18. size="small"
  19. @keyup.enter.native="handleQuery"
  20. />
  21. </el-form-item>
  22. <el-form-item label="单元号" prop="unit">
  23. <el-input
  24. v-model="queryParams.unit"
  25. placeholder="请输入单元号"
  26. clearable
  27. size="small"
  28. @keyup.enter.native="handleQuery"
  29. />
  30. </el-form-item>
  31. <el-form-item label="位号" prop="devNo">
  32. <el-input
  33. v-model="queryParams.devNo"
  34. placeholder="请输入位号"
  35. clearable
  36. size="small"
  37. @keyup.enter.native="handleQuery"
  38. />
  39. </el-form-item>
  40. <el-form-item label="保护设备" prop="safetyDev">
  41. <el-input
  42. v-model="queryParams.safetyDev"
  43. placeholder="请输入保护设备"
  44. clearable
  45. size="small"
  46. @keyup.enter.native="handleQuery"
  47. />
  48. </el-form-item>
  49. <el-form-item label="安装位置描述" prop="installLocation">
  50. <el-input
  51. v-model="queryParams.installLocation"
  52. placeholder="请输入安装位置描述"
  53. clearable
  54. size="small"
  55. @keyup.enter.native="handleQuery"
  56. />
  57. </el-form-item>
  58. <el-form-item label="爆破片的安装位置正确" prop="installAccuracy">
  59. <el-input
  60. v-model="queryParams.installAccuracy"
  61. placeholder="请输入爆破片的安装位置正确"
  62. clearable
  63. size="small"
  64. @keyup.enter.native="handleQuery"
  65. />
  66. </el-form-item>
  67. <el-form-item label="爆破片的安装方向正确" prop="rightDirection">
  68. <el-input
  69. v-model="queryParams.rightDirection"
  70. placeholder="请输入爆破片的安装方向正确"
  71. clearable
  72. size="small"
  73. @keyup.enter.native="handleQuery"
  74. />
  75. </el-form-item>
  76. <el-form-item label="设定压力" prop="setPressure">
  77. <el-input
  78. v-model="queryParams.setPressure"
  79. placeholder="请输入设定压力"
  80. clearable
  81. size="small"
  82. @keyup.enter.native="handleQuery"
  83. />
  84. </el-form-item>
  85. <el-form-item label="铭牌上压力和设定压力一致" prop="uniformPressure">
  86. <el-input
  87. v-model="queryParams.uniformPressure"
  88. placeholder="请输入铭牌上压力和设定压力一致"
  89. clearable
  90. size="small"
  91. @keyup.enter.native="handleQuery"
  92. />
  93. </el-form-item>
  94. <el-form-item label="爆破片与安全阀之间的压力指示为“0kpa”" prop="is0kpa">
  95. <el-input
  96. v-model="queryParams.is0kpa"
  97. placeholder="请输入爆破片与安全阀之间的压力指示为“0kpa”"
  98. clearable
  99. size="small"
  100. @keyup.enter.native="handleQuery"
  101. />
  102. </el-form-item>
  103. <el-form-item label="检查人1" prop="confirmer1">
  104. <el-input
  105. v-model="queryParams.confirmer1"
  106. placeholder="请输入检查人1"
  107. clearable
  108. size="small"
  109. @keyup.enter.native="handleQuery"
  110. />
  111. </el-form-item>
  112. <el-form-item label="检查人2" prop="confirmer2">
  113. <el-input
  114. v-model="queryParams.confirmer2"
  115. placeholder="请输入检查人2"
  116. clearable
  117. size="small"
  118. @keyup.enter.native="handleQuery"
  119. />
  120. </el-form-item>
  121. <el-form-item label="检查日期" prop="confirmationTime">
  122. <el-input
  123. v-model="queryParams.confirmationTime"
  124. placeholder="请输入检查日期"
  125. clearable
  126. size="small"
  127. @keyup.enter.native="handleQuery"
  128. />
  129. </el-form-item>
  130. <el-form-item label="创建人" prop="createrCode">
  131. <el-input
  132. v-model="queryParams.createrCode"
  133. placeholder="请输入创建人"
  134. clearable
  135. size="small"
  136. @keyup.enter.native="handleQuery"
  137. />
  138. </el-form-item>
  139. <el-form-item label="创建时间" prop="createdate">
  140. <el-date-picker clearable size="small" style="width: 200px"
  141. v-model="queryParams.createdate"
  142. type="date"
  143. value-format="yyyy-MM-dd"
  144. placeholder="选择创建时间">
  145. </el-date-picker>
  146. </el-form-item>
  147. <el-form-item label="修改人" prop="updaterCode">
  148. <el-input
  149. v-model="queryParams.updaterCode"
  150. placeholder="请输入修改人"
  151. clearable
  152. size="small"
  153. @keyup.enter.native="handleQuery"
  154. />
  155. </el-form-item>
  156. <el-form-item label="修改时间" prop="updatedate">
  157. <el-date-picker clearable size="small" style="width: 200px"
  158. v-model="queryParams.updatedate"
  159. type="date"
  160. value-format="yyyy-MM-dd"
  161. placeholder="选择修改时间">
  162. </el-date-picker>
  163. </el-form-item>
  164. <el-form-item label="部门编号" prop="deptId">
  165. <el-input
  166. v-model="queryParams.deptId"
  167. placeholder="请输入部门编号"
  168. clearable
  169. size="small"
  170. @keyup.enter.native="handleQuery"
  171. />
  172. </el-form-item>
  173. <el-form-item label="备注" prop="remarks">
  174. <el-input
  175. v-model="queryParams.remarks"
  176. placeholder="请输入备注"
  177. clearable
  178. size="small"
  179. @keyup.enter.native="handleQuery"
  180. />
  181. </el-form-item>
  182. <el-form-item>
  183. <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
  184. <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
  185. </el-form-item>
  186. </el-form>
  187. <el-row :gutter="10" class="mb8">
  188. <el-col :span="1.5">
  189. <el-button
  190. type="primary"
  191. icon="el-icon-plus"
  192. size="mini"
  193. @click="handleAdd"
  194. v-hasPermi="['pssr:safetyBrust:add']"
  195. >新增</el-button>
  196. </el-col>
  197. <el-col :span="1.5">
  198. <el-button
  199. type="success"
  200. icon="el-icon-edit"
  201. size="mini"
  202. :disabled="single"
  203. @click="handleUpdate"
  204. v-hasPermi="['pssr:safetyBrust:edit']"
  205. >修改</el-button>
  206. </el-col>
  207. <el-col :span="1.5">
  208. <el-button
  209. type="danger"
  210. icon="el-icon-delete"
  211. size="mini"
  212. :disabled="multiple"
  213. @click="handleDelete"
  214. v-hasPermi="['pssr:safetyBrust:remove']"
  215. >删除</el-button>
  216. </el-col>
  217. <el-col :span="1.5">
  218. <el-button
  219. type="info"
  220. icon="el-icon-upload2"
  221. size="mini"
  222. @click="handleImport"
  223. v-hasPermi="['pssr:safetyBrust:edit']"
  224. >导入</el-button>
  225. </el-col>
  226. <el-col :span="1.5">
  227. <el-button
  228. type="warning"
  229. icon="el-icon-download"
  230. size="mini"
  231. @click="handleExport"
  232. v-hasPermi="['pssr:safetyBrust:export']"
  233. >导出</el-button>
  234. </el-col>
  235. <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
  236. </el-row>
  237. <el-table v-loading="loading" :data="safetyBrustList" @selection-change="handleSelectionChange" :height="clientHeight" border>
  238. <el-table-column type="selection" width="55" align="center" />
  239. <el-table-column label="唯一标识ID" align="center" prop="id" :show-overflow-tooltip="true"/>
  240. <el-table-column label="从表id" align="center" prop="subId" :show-overflow-tooltip="true"/>
  241. <el-table-column label="审批id" align="center" prop="approveId" :show-overflow-tooltip="true"/>
  242. <el-table-column label="单元号" align="center" prop="unit" :show-overflow-tooltip="true"/>
  243. <el-table-column label="位号" align="center" prop="devNo" :show-overflow-tooltip="true"/>
  244. <el-table-column label="保护设备" align="center" prop="safetyDev" :show-overflow-tooltip="true"/>
  245. <el-table-column label="安装位置描述" align="center" prop="installLocation" :show-overflow-tooltip="true"/>
  246. <el-table-column label="爆破片的安装位置正确" align="center" prop="installAccuracy" :show-overflow-tooltip="true"/>
  247. <el-table-column label="爆破片的安装方向正确" align="center" prop="rightDirection" :show-overflow-tooltip="true"/>
  248. <el-table-column label="设定压力" align="center" prop="setPressure" :show-overflow-tooltip="true"/>
  249. <el-table-column label="铭牌上压力和设定压力一致" align="center" prop="uniformPressure" :show-overflow-tooltip="true"/>
  250. <el-table-column label="爆破片与安全阀之间的压力指示为“0kpa”" align="center" prop="is0kpa" :show-overflow-tooltip="true"/>
  251. <el-table-column label="检查人1" align="center" prop="confirmer1" :show-overflow-tooltip="true"/>
  252. <el-table-column label="检查人2" align="center" prop="confirmer2" :show-overflow-tooltip="true"/>
  253. <el-table-column label="检查日期" align="center" prop="confirmationTime" :show-overflow-tooltip="true"/>
  254. <el-table-column label="创建人" align="center" prop="createrCode" :show-overflow-tooltip="true"/>
  255. <el-table-column label="创建时间" align="center" prop="createdate" width="100">
  256. <template slot-scope="scope">
  257. <span>{{ parseTime(scope.row.createdate, '{y}-{m}-{d}') }}</span>
  258. </template>
  259. </el-table-column>
  260. <el-table-column label="修改人" align="center" prop="updaterCode" :show-overflow-tooltip="true"/>
  261. <el-table-column label="修改时间" align="center" prop="updatedate" width="100">
  262. <template slot-scope="scope">
  263. <span>{{ parseTime(scope.row.updatedate, '{y}-{m}-{d}') }}</span>
  264. </template>
  265. </el-table-column>
  266. <el-table-column label="部门编号" align="center" prop="deptId" :show-overflow-tooltip="true"/>
  267. <el-table-column label="备注" align="center" prop="remarks" :show-overflow-tooltip="true"/>
  268. <el-table-column label="操作" align="center" fixed="right" width="120" class-name="small-padding fixed-width">
  269. <template slot-scope="scope">
  270. <el-button
  271. size="mini"
  272. type="text"
  273. icon="el-icon-edit"
  274. @click="handleUpdate(scope.row)"
  275. v-hasPermi="['pssr:safetyBrust:edit']"
  276. >修改</el-button>
  277. <el-button
  278. size="mini"
  279. type="text"
  280. icon="el-icon-delete"
  281. @click="handleDelete(scope.row)"
  282. v-hasPermi="['pssr:safetyBrust:remove']"
  283. >删除</el-button>
  284. </template>
  285. </el-table-column>
  286. </el-table>
  287. <pagination
  288. v-show="total>0"
  289. :total="total"
  290. :page.sync="queryParams.pageNum"
  291. :limit.sync="queryParams.pageSize"
  292. @pagination="getList"
  293. />
  294. <!-- 添加或修改安全设施-爆破片对话框 -->
  295. <el-dialog :close-on-click-modal="false" :title="title" :visible.sync="open" width="500px" append-to-body>
  296. <el-form ref="form" :model="form" :rules="rules" label-width="80px">
  297. <el-form-item label="从表id" prop="subId">
  298. <el-input v-model="form.subId" placeholder="请输入从表id" />
  299. </el-form-item>
  300. <el-form-item label="审批id" prop="approveId">
  301. <el-input v-model="form.approveId" placeholder="请输入审批id" />
  302. </el-form-item>
  303. <el-form-item label="单元号" prop="unit">
  304. <el-input v-model="form.unit" placeholder="请输入单元号" />
  305. </el-form-item>
  306. <el-form-item label="位号" prop="devNo">
  307. <el-input v-model="form.devNo" placeholder="请输入位号" />
  308. </el-form-item>
  309. <el-form-item label="保护设备" prop="safetyDev">
  310. <el-input v-model="form.safetyDev" placeholder="请输入保护设备" />
  311. </el-form-item>
  312. <el-form-item label="安装位置描述" prop="installLocation">
  313. <el-input v-model="form.installLocation" placeholder="请输入安装位置描述" />
  314. </el-form-item>
  315. <el-form-item label="爆破片的安装位置正确" prop="installAccuracy">
  316. <el-input v-model="form.installAccuracy" placeholder="请输入爆破片的安装位置正确" />
  317. </el-form-item>
  318. <el-form-item label="爆破片的安装方向正确" prop="rightDirection">
  319. <el-input v-model="form.rightDirection" placeholder="请输入爆破片的安装方向正确" />
  320. </el-form-item>
  321. <el-form-item label="设定压力" prop="setPressure">
  322. <el-input v-model="form.setPressure" placeholder="请输入设定压力" />
  323. </el-form-item>
  324. <el-form-item label="铭牌上压力和设定压力一致" prop="uniformPressure">
  325. <el-input v-model="form.uniformPressure" placeholder="请输入铭牌上压力和设定压力一致" />
  326. </el-form-item>
  327. <el-form-item label="爆破片与安全阀之间的压力指示为“0kpa”" prop="is0kpa">
  328. <el-input v-model="form.is0kpa" placeholder="请输入爆破片与安全阀之间的压力指示为“0kpa”" />
  329. </el-form-item>
  330. <el-form-item label="检查人1" prop="confirmer1">
  331. <el-input v-model="form.confirmer1" placeholder="请输入检查人1" />
  332. </el-form-item>
  333. <el-form-item label="检查人2" prop="confirmer2">
  334. <el-input v-model="form.confirmer2" placeholder="请输入检查人2" />
  335. </el-form-item>
  336. <el-form-item label="检查日期" prop="confirmationTime">
  337. <el-input v-model="form.confirmationTime" placeholder="请输入检查日期" />
  338. </el-form-item>
  339. <el-form-item label="删除状态" prop="delFlag">
  340. <el-input v-model="form.delFlag" placeholder="请输入删除状态" />
  341. </el-form-item>
  342. <el-form-item label="创建人" prop="createrCode">
  343. <el-input v-model="form.createrCode" placeholder="请输入创建人" />
  344. </el-form-item>
  345. <el-form-item label="创建时间" prop="createdate">
  346. <el-date-picker clearable size="small" style="width: 200px"
  347. v-model="form.createdate"
  348. type="date"
  349. value-format="yyyy-MM-dd"
  350. placeholder="选择创建时间">
  351. </el-date-picker>
  352. </el-form-item>
  353. <el-form-item label="修改人" prop="updaterCode">
  354. <el-input v-model="form.updaterCode" placeholder="请输入修改人" />
  355. </el-form-item>
  356. <el-form-item label="修改时间" prop="updatedate">
  357. <el-date-picker clearable size="small" style="width: 200px"
  358. v-model="form.updatedate"
  359. type="date"
  360. value-format="yyyy-MM-dd"
  361. placeholder="选择修改时间">
  362. </el-date-picker>
  363. </el-form-item>
  364. <el-form-item label="部门编号" prop="deptId">
  365. <el-input v-model="form.deptId" placeholder="请输入部门编号" />
  366. </el-form-item>
  367. <el-form-item label="备注" prop="remarks">
  368. <el-input v-model="form.remarks" placeholder="请输入备注" />
  369. </el-form-item>
  370. <el-form-item label="归属部门" prop="deptId">
  371. <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
  372. </el-form-item>
  373. </el-form>
  374. <div slot="footer" class="dialog-footer">
  375. <el-button type="primary" @click="submitForm">确 定</el-button>
  376. <el-button @click="cancel">取 消</el-button>
  377. </div>
  378. </el-dialog>
  379. <!-- 用户导入对话框 -->
  380. <el-dialog :close-on-click-modal="false" :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
  381. <el-upload
  382. ref="upload"
  383. :limit="1"
  384. accept=".xlsx, .xls"
  385. :headers="upload.headers"
  386. :action="upload.url + '?updateSupport=' + upload.updateSupport"
  387. :disabled="upload.isUploading"
  388. :on-progress="handleFileUploadProgress"
  389. :on-success="handleFileSuccess"
  390. :auto-upload="false"
  391. drag
  392. >
  393. <i class="el-icon-upload"></i>
  394. <div class="el-upload__text">
  395. 将文件拖到此处,或
  396. <em>点击上传</em>
  397. </div>
  398. <div class="el-upload__tip" slot="tip">
  399. <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据
  400. <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
  401. </div>
  402. <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</div>
  403. </el-upload>
  404. <div slot="footer" class="dialog-footer">
  405. <el-button type="primary" @click="submitFileForm">确 定</el-button>
  406. <el-button @click="upload.open = false">取 消</el-button>
  407. </div>
  408. </el-dialog>
  409. </div>
  410. </template>
  411. <script>
  412. import { listSafetyBrust, getSafetyBrust, delSafetyBrust, addSafetyBrust, updateSafetyBrust, exportSafetyBrust, importTemplate} from "@/api/pssr/safetyBrust";
  413. import { treeselect } from "@/api/system/dept";
  414. import { getToken } from "@/utils/auth";
  415. import Treeselect from "@riophae/vue-treeselect";
  416. import "@riophae/vue-treeselect/dist/vue-treeselect.css";
  417. export default {
  418. name: "SafetyBrust",
  419. components: { Treeselect },
  420. props: {
  421. subId: {
  422. type: Number,
  423. default: 0
  424. },
  425. isApprove: {
  426. type: Number,
  427. default: 0
  428. },
  429. },
  430. data() {
  431. return {
  432. // 遮罩层
  433. loading: true,
  434. // 选中数组
  435. ids: [],
  436. // 非单个禁用
  437. single: true,
  438. // 非多个禁用
  439. multiple: true,
  440. // 显示搜索条件
  441. showSearch: false,
  442. // 总条数
  443. total: 0,
  444. // 安全设施-爆破片表格数据
  445. safetyBrustList: [],
  446. // 弹出层标题
  447. title: "",
  448. // 部门树选项
  449. deptOptions: undefined,
  450. clientHeight:300,
  451. // 是否显示弹出层
  452. open: false,
  453. // 用户导入参数
  454. upload: {
  455. // 是否显示弹出层(用户导入)
  456. open: false,
  457. // 弹出层标题(用户导入)
  458. title: "",
  459. // 是否禁用上传
  460. isUploading: false,
  461. // 是否更新已经存在的用户数据
  462. updateSupport: 0,
  463. // 设置上传的请求头部
  464. headers: { Authorization: "Bearer " + getToken() },
  465. // 上传的地址
  466. url: process.env.VUE_APP_BASE_API + "/pssr/safetyBrust/importData"
  467. },
  468. // 查询参数
  469. queryParams: {
  470. pageNum: 1,
  471. pageSize: 20,
  472. subId: this.subId,
  473. approveId: null,
  474. unit: null,
  475. devNo: null,
  476. safetyDev: null,
  477. installLocation: null,
  478. installAccuracy: null,
  479. rightDirection: null,
  480. setPressure: null,
  481. uniformPressure: null,
  482. is0kpa: null,
  483. confirmer1: null,
  484. confirmer2: null,
  485. confirmationTime: null,
  486. createrCode: null,
  487. createdate: null,
  488. updaterCode: null,
  489. updatedate: null,
  490. deptId: null,
  491. remarks: null
  492. },
  493. // 表单参数
  494. form: {},
  495. // 表单校验
  496. rules: {
  497. }
  498. };
  499. },
  500. watch: {
  501. // 根据名称筛选部门树
  502. deptName(val) {
  503. this.$refs.tree.filter(val);
  504. }
  505. },
  506. created() {
  507. //设置表格高度对应屏幕高度
  508. this.$nextTick(() => {
  509. this.clientHeight = document.body.clientHeight -250
  510. })
  511. this.getList();
  512. this.getTreeselect();
  513. },
  514. methods: {
  515. /** 查询安全设施-爆破片列表 */
  516. getList() {
  517. this.loading = true;
  518. listSafetyBrust(this.queryParams).then(response => {
  519. this.safetyBrustList = response.rows;
  520. this.total = response.total;
  521. this.loading = false;
  522. });
  523. },
  524. /** 查询部门下拉树结构 */
  525. getTreeselect() {
  526. treeselect().then(response => {
  527. this.deptOptions = response.data;
  528. });
  529. },
  530. // 取消按钮
  531. cancel() {
  532. this.open = false;
  533. this.reset();
  534. },
  535. // 表单重置
  536. reset() {
  537. this.form = {
  538. id: null,
  539. subId: this.subId,
  540. approveId: null,
  541. unit: null,
  542. devNo: null,
  543. safetyDev: null,
  544. installLocation: null,
  545. installAccuracy: null,
  546. rightDirection: null,
  547. setPressure: null,
  548. uniformPressure: null,
  549. is0kpa: null,
  550. confirmer1: null,
  551. confirmer2: null,
  552. confirmationTime: null,
  553. delFlag: null,
  554. createrCode: null,
  555. createdate: null,
  556. updaterCode: null,
  557. updatedate: null,
  558. deptId: null,
  559. remarks: null
  560. };
  561. this.resetForm("form");
  562. },
  563. /** 搜索按钮操作 */
  564. handleQuery() {
  565. this.queryParams.pageNum = 1;
  566. this.getList();
  567. },
  568. /** 重置按钮操作 */
  569. resetQuery() {
  570. this.resetForm("queryForm");
  571. this.handleQuery();
  572. },
  573. // 多选框选中数据
  574. handleSelectionChange(selection) {
  575. this.ids = selection.map(item => item.id)
  576. this.single = selection.length!==1
  577. this.multiple = !selection.length
  578. },
  579. /** 新增按钮操作 */
  580. handleAdd() {
  581. this.reset();
  582. this.open = true;
  583. this.title = "添加安全设施-爆破片";
  584. },
  585. /** 修改按钮操作 */
  586. handleUpdate(row) {
  587. this.reset();
  588. const id = row.id || this.ids
  589. getSafetyBrust(id).then(response => {
  590. this.form = response.data;
  591. this.open = true;
  592. this.title = "修改安全设施-爆破片";
  593. });
  594. },
  595. /** 提交按钮 */
  596. submitForm() {
  597. this.$refs["form"].validate(valid => {
  598. if (valid) {
  599. if (this.form.id != null) {
  600. updateSafetyBrust(this.form).then(response => {
  601. this.msgSuccess("修改成功");
  602. this.open = false;
  603. this.getList();
  604. });
  605. } else {
  606. addSafetyBrust(this.form).then(response => {
  607. this.msgSuccess("新增成功");
  608. this.open = false;
  609. this.getList();
  610. });
  611. }
  612. }
  613. });
  614. },
  615. /** 删除按钮操作 */
  616. handleDelete(row) {
  617. const ids = row.id || this.ids;
  618. this.$confirm('是否确认删除?', "警告", {
  619. confirmButtonText: "确定",
  620. cancelButtonText: "取消",
  621. type: "warning"
  622. }).then(function() {
  623. return delSafetyBrust(ids);
  624. }).then(() => {
  625. this.getList();
  626. this.msgSuccess("删除成功");
  627. })
  628. },
  629. /** 导出按钮操作 */
  630. handleExport() {
  631. const queryParams = this.queryParams;
  632. this.$confirm('是否确认导出所有安全设施-爆破片数据项?', "警告", {
  633. confirmButtonText: "确定",
  634. cancelButtonText: "取消",
  635. type: "warning"
  636. }).then(function() {
  637. return exportSafetyBrust(queryParams);
  638. }).then(response => {
  639. this.download(response.msg);
  640. })
  641. },
  642. /** 导入按钮操作 */
  643. handleImport() {
  644. this.upload.title = "用户导入";
  645. this.upload.open = true;
  646. },
  647. /** 下载模板操作 */
  648. importTemplate() {
  649. importTemplate().then(response => {
  650. this.download(response.msg);
  651. });
  652. },
  653. // 文件上传中处理
  654. handleFileUploadProgress(event, file, fileList) {
  655. this.upload.isUploading = true;
  656. },
  657. // 文件上传成功处理
  658. handleFileSuccess(response, file, fileList) {
  659. this.upload.open = false;
  660. this.upload.isUploading = false;
  661. this.$refs.upload.clearFiles();
  662. this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
  663. this.getList();
  664. },
  665. // 提交上传文件
  666. submitFileForm() {
  667. this.$refs.upload.submit();
  668. }
  669. }
  670. };
  671. </script>