tapprove-add.vue 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829
  1. <template>
  2. <!-- 添加或修改特种设备申请对话框 -->
  3. <el-dialog :title="$t('提交申请')" :visible.sync="visible" width="1200px" append-to-body>
  4. <el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="" label-width="80px">
  5. <el-form-item :label="$t('申请设备')">
  6. <el-table
  7. v-show="dataForm.approveType != 7 && dataForm.devType == 1"
  8. :data="devList"
  9. border
  10. style="width: 100%;">
  11. <el-table-column
  12. prop="plantCode"
  13. header-align="center"
  14. align="center"
  15. :label="$t('装置名称')">
  16. </el-table-column>
  17. <el-table-column
  18. prop="devno"
  19. header-align="center"
  20. align="center"
  21. :label="$t('位号')">
  22. </el-table-column>
  23. <el-table-column
  24. prop="devname"
  25. header-align="center"
  26. align="center"
  27. :show-overflow-tooltip="true"
  28. width="150"
  29. :label="$t('设备名称')">
  30. </el-table-column>
  31. <el-table-column
  32. prop="useno"
  33. header-align="center"
  34. align="center"
  35. :show-overflow-tooltip="true"
  36. :label="$t('使用证号码')">
  37. </el-table-column>
  38. <el-table-column
  39. prop="medium"
  40. header-align="center"
  41. align="center"
  42. :show-overflow-tooltip="true"
  43. :label="$t('介质')">
  44. </el-table-column>
  45. <el-table-column
  46. prop="desPressure"
  47. header-align="center"
  48. align="center"
  49. :show-overflow-tooltip="true"
  50. :label="$t('设计压力')+'(MPa)'">
  51. </el-table-column>
  52. <el-table-column
  53. prop="desTemp"
  54. header-align="center"
  55. align="center"
  56. :show-overflow-tooltip="true"
  57. :label="$t('设计温度')+'(℃)'">
  58. </el-table-column>
  59. </el-table>
  60. <el-table
  61. v-show="dataForm.approveType != 7 && dataForm.devType == 2"
  62. :data="devList"
  63. border
  64. style="width: 100%;">
  65. <el-table-column
  66. prop="plantCode"
  67. header-align="center"
  68. align="center"
  69. width="100"
  70. :label="$t('装置名称')">
  71. </el-table-column>
  72. <el-table-column
  73. prop="devno"
  74. header-align="center"
  75. align="center"
  76. width="120"
  77. :label="$t('位号')">
  78. </el-table-column>
  79. <el-table-column
  80. prop="starting"
  81. header-align="center"
  82. align="center"
  83. width="100"
  84. :show-overflow-tooltip="true"
  85. :label="$t('起点')">
  86. </el-table-column>
  87. <el-table-column
  88. prop="ending"
  89. header-align="center"
  90. align="center"
  91. width="100"
  92. :show-overflow-tooltip="true"
  93. :label="$t('终点')">
  94. </el-table-column>
  95. <el-table-column
  96. prop="medium"
  97. header-align="center"
  98. align="center"
  99. width="100"
  100. :show-overflow-tooltip="true"
  101. :label="$t('介质')">
  102. </el-table-column>
  103. <el-table-column
  104. prop="desPressure"
  105. header-align="center"
  106. align="center"
  107. :label="$t('设计压力')">
  108. </el-table-column>
  109. <el-table-column
  110. prop="desTemp"
  111. header-align="center"
  112. align="center"
  113. :label="$t('设计温度')">
  114. </el-table-column>
  115. <el-table-column
  116. prop="optPressure"
  117. header-align="center"
  118. align="center"
  119. :label="$t('工作压力')">
  120. </el-table-column>
  121. <el-table-column
  122. prop="optTemp"
  123. header-align="center"
  124. align="center"
  125. width="100"
  126. :show-overflow-tooltip="true"
  127. :label="$t('工作温度')">
  128. </el-table-column>
  129. </el-table>
  130. <el-table
  131. v-show="dataForm.devType == 3"
  132. :data="devList"
  133. border
  134. style="width: 100%;">
  135. <el-table-column
  136. prop="plantCode"
  137. header-align="center"
  138. align="center"
  139. :label="$t('装置名称')">
  140. </el-table-column>
  141. <el-table-column
  142. prop="docno"
  143. header-align="center"
  144. align="center"
  145. :show-overflow-tooltip="true"
  146. :label="$t('档案号')">
  147. </el-table-column>
  148. <el-table-column
  149. prop="devname"
  150. header-align="center"
  151. align="center"
  152. :show-overflow-tooltip="true"
  153. width="150"
  154. :label="$t('设备名称')">
  155. </el-table-column>
  156. <el-table-column
  157. prop="capacity"
  158. header-align="center"
  159. align="center"
  160. :show-overflow-tooltip="true"
  161. :label="$t('起吊重量')+'(ton)'">
  162. </el-table-column>
  163. <el-table-column
  164. prop="location"
  165. header-align="center"
  166. align="center"
  167. :show-overflow-tooltip="true"
  168. :label="$t('使用地点')">
  169. </el-table-column>
  170. </el-table>
  171. <el-table
  172. v-show="dataForm.devType == 4"
  173. :data="devList"
  174. border
  175. style="width: 100%;">
  176. <el-table-column
  177. prop="plantCode"
  178. header-align="center"
  179. align="center"
  180. :show-overflow-tooltip="true"
  181. :label="$t('装置名称')">
  182. </el-table-column>
  183. <el-table-column
  184. prop="devno"
  185. header-align="center"
  186. align="center"
  187. :show-overflow-tooltip="true"
  188. :label="$t('位号')">
  189. </el-table-column>
  190. <el-table-column
  191. prop="devname"
  192. header-align="center"
  193. align="center"
  194. :show-overflow-tooltip="true"
  195. width="120"
  196. :label="$t('设备名称')">
  197. </el-table-column>
  198. <el-table-column
  199. prop="useno"
  200. header-align="center"
  201. align="center"
  202. :show-overflow-tooltip="true"
  203. :label="$t('使用证号码')">
  204. </el-table-column>
  205. <el-table-column
  206. prop="desTemp"
  207. header-align="center"
  208. align="center"
  209. :label="$t('设计温度')+'(℃)'">
  210. </el-table-column>
  211. <el-table-column
  212. prop="desPressure"
  213. header-align="center"
  214. align="center"
  215. :label="$t('设计压力')+'(MPa)'">
  216. </el-table-column>
  217. </el-table>
  218. <el-table
  219. v-show="dataForm.devType == 5"
  220. :data="devList"
  221. border
  222. style="width: 100%;">
  223. <el-table-column
  224. prop="plantCode"
  225. header-align="center"
  226. align="center"
  227. :label="$t('装置名称')">
  228. </el-table-column>
  229. <el-table-column
  230. prop="docno"
  231. header-align="center"
  232. align="center"
  233. :label="$t('docNo')">
  234. </el-table-column>
  235. <el-table-column
  236. prop="devname"
  237. header-align="center"
  238. align="center"
  239. :show-overflow-tooltip="true"
  240. width="150"
  241. :label="$t('设备名称')">
  242. </el-table-column>
  243. <el-table-column
  244. prop="model"
  245. header-align="center"
  246. align="center"
  247. :show-overflow-tooltip="true"
  248. width="120"
  249. :label="$t('型号')">
  250. </el-table-column>
  251. <el-table-column
  252. prop="location"
  253. header-align="center"
  254. align="center"
  255. :show-overflow-tooltip="true"
  256. :label="$t('使用地点')">
  257. </el-table-column>
  258. </el-table>
  259. <el-table
  260. v-show="dataForm.devType == 6"
  261. :data="devList"
  262. border
  263. style="width: 100%;">
  264. <el-table-column
  265. prop="plantCode"
  266. header-align="center"
  267. align="center"
  268. :label="$t('装置名称')">
  269. </el-table-column>
  270. <el-table-column
  271. prop="useDept"
  272. header-align="center"
  273. align="center"
  274. :label="$t('dept')">
  275. </el-table-column>
  276. <el-table-column
  277. prop="carNo"
  278. header-align="center"
  279. align="center"
  280. :label="$t('plateNo')">
  281. </el-table-column>
  282. <el-table-column
  283. prop="docno"
  284. header-align="center"
  285. align="center"
  286. :label="$t('docNo')">
  287. </el-table-column>
  288. <el-table-column
  289. prop="model"
  290. header-align="center"
  291. align="center"
  292. :show-overflow-tooltip="true"
  293. width="120"
  294. :label="$t('model')">
  295. </el-table-column>
  296. </el-table>
  297. <el-table
  298. v-show="dataForm.devType == 7"
  299. :data="devList"
  300. border
  301. style="width: 100%;">
  302. <el-table-column
  303. prop="plantCode"
  304. header-align="center"
  305. align="center"
  306. :label="$t('装置名称')">
  307. </el-table-column>
  308. <el-table-column
  309. prop="unit"
  310. header-align="center"
  311. align="center"
  312. :label="$t('单元')">
  313. </el-table-column>
  314. <el-table-column
  315. prop="devno"
  316. header-align="center"
  317. align="center"
  318. :label="$t('位号')">
  319. </el-table-column>
  320. <el-table-column
  321. prop="devname"
  322. header-align="center"
  323. align="center"
  324. :label="$t('名称')">
  325. </el-table-column>
  326. <el-table-column
  327. prop="createno"
  328. header-align="center"
  329. align="center"
  330. :label="$t('制造编号')">
  331. </el-table-column>
  332. <el-table-column
  333. prop="indiameter"
  334. header-align="center"
  335. align="center"
  336. :show-overflow-tooltip="true"
  337. width="120"
  338. :label="$t('内径')+'mm'">
  339. </el-table-column>
  340. <el-table-column
  341. prop="height"
  342. header-align="center"
  343. align="center"
  344. :show-overflow-tooltip="true"
  345. width="120"
  346. :label="$t('高(长)')+'mm'">
  347. </el-table-column>
  348. <el-table-column
  349. prop="chickness"
  350. header-align="center"
  351. align="center"
  352. :show-overflow-tooltip="true"
  353. width="120"
  354. :label="$t('壁厚(mm)')">
  355. </el-table-column>
  356. <el-table-column
  357. prop="volume"
  358. header-align="center"
  359. align="center"
  360. :show-overflow-tooltip="true"
  361. width="120"
  362. :label="$t('容积mm³')">
  363. </el-table-column>
  364. <el-table-column
  365. prop="medium"
  366. header-align="center"
  367. align="center"
  368. :show-overflow-tooltip="true"
  369. width="120"
  370. :label="$t('介质')">
  371. </el-table-column>
  372. <el-table-column
  373. prop="material"
  374. header-align="center"
  375. align="center"
  376. :show-overflow-tooltip="true"
  377. width="120"
  378. :label="$t('材料')">
  379. </el-table-column>
  380. </el-table>
  381. </el-form-item>
  382. <el-form-item :label="$t('审批类型')" prop="approveType">
  383. <el-select v-model="dataForm.approveType" :placeholder="$t('select')" @change="handleChange">
  384. <el-option
  385. v-for="dict in approveOption"
  386. :key="dict.dictValue"
  387. :label="dict.dictLabel"
  388. :value="parseInt(dict.dictValue)">
  389. </el-option>
  390. </el-select>
  391. </el-form-item>
  392. <el-form-item v-if="!this.showDelay" :label="$t('原因')+$t('空格')+$t('描述')" prop="content">
  393. <el-input type="textarea" :placeholder="$t('原因')+$t('空格')+$t('描述')"
  394. v-model="dataForm.content"
  395. maxlength="200" show-word-limit
  396. :autosize="{ minRows: 2, maxRows: 10}"></el-input>
  397. </el-form-item>
  398. <el-form-item :label="$t('附件')" prop="fileUrl">
  399. <el-upload
  400. ref="doc"
  401. :limit="5"
  402. :headers="doc.headers"
  403. :action="doc.url"
  404. :disabled="doc.isUploading"
  405. :on-progress="handleFileDocProgress"
  406. :on-success="handleFileDocSuccess"
  407. :on-remove="handleRemove"
  408. :auto-upload="true"
  409. :file-list="fileList"
  410. drag
  411. >
  412. <i class="el-icon-upload"></i>
  413. <div class="el-upload__text">
  414. {{ $t('将文件拖到此处,或') }}
  415. <em>{{ $t('点击上传') }}</em>
  416. </div>
  417. <div v-if="showDelay" class="el-upload__tip" slot="tip">{{ this.fileTips }}</div>
  418. </el-upload>
  419. </el-form-item>
  420. <el-form-item :label="$t('维修经理')" prop="wxjl">
  421. <el-select v-model="dataForm.wxjl" filterable :placeholder="$t('请选择') + $t('维修经理')">
  422. <el-option
  423. v-for="item in wxjlOption"
  424. :key="item.userId"
  425. :label="item.nickName"
  426. :value="item.userId"
  427. :disabled="item.disabled">
  428. </el-option>
  429. </el-select>
  430. </el-form-item>
  431. <el-form-item :label="$t('工艺经理')" prop="gyjl">
  432. <el-select v-model="dataForm.gyjl" filterable :placeholder="$t('请选择') + $t('工艺经理')">
  433. <el-option
  434. v-for="item in gyjlOption"
  435. :key="item.userId"
  436. :label="item.nickName"
  437. :value="item.userId"
  438. :disabled="item.disabled">
  439. </el-option>
  440. </el-select>
  441. </el-form-item>
  442. <el-form-item :label="$t('工艺总监')" prop="gyzj">
  443. <el-select v-model="dataForm.gyzj" filterable :placeholder="$t('请选择') + $t('工艺总监')">
  444. <el-option
  445. v-for="item in gyzjOption"
  446. :key="item.userId"
  447. :label="item.nickName"
  448. :value="item.userId"
  449. :disabled="item.disabled">
  450. </el-option>
  451. </el-select>
  452. </el-form-item>
  453. <el-form-item :label="$t('维修总监')" prop="wxzj">
  454. <el-select v-model="dataForm.wxzj" filterable :placeholder="$t('请选择') + $t('维修总监')">
  455. <el-option
  456. v-for="item in wxzjOption"
  457. :key="item.userId"
  458. :label="item.nickName"
  459. :value="item.userId"
  460. :disabled="item.disabled">
  461. </el-option>
  462. </el-select>
  463. </el-form-item>
  464. <el-form-item :label="$t('政府回执')" prop="zf">
  465. <el-select v-model="dataForm.zf" filterable :placeholder="$t('请输入') + $t('政府回执')">
  466. <el-option
  467. v-for="item in zfOption"
  468. :key="item.userId"
  469. :label="item.nickName"
  470. :value="item.userId"
  471. :disabled="item.disabled">
  472. </el-option>
  473. </el-select>
  474. </el-form-item>
  475. <template v-if="dataForm.approveType == 5">
  476. <el-form-item :label="$t('延期日期')" prop="delayDate">
  477. <el-form-item prop="endTime">
  478. <el-date-picker
  479. v-model="dataForm.delayDate"
  480. type="date"
  481. value-format="yyyy-MM-dd"
  482. :placeholder="$t('selectDate')" >
  483. </el-date-picker>
  484. </el-form-item>
  485. </el-form-item>
  486. <el-form-item :label="$t('延期原因')" prop="delayReason">
  487. <el-input type="textarea" :placeholder="$t('延期原因')"
  488. v-model="dataForm.delayReason"
  489. :autosize="{ minRows: 2, maxRows: 50}" ></el-input>
  490. </el-form-item>
  491. <el-form-item :label="$t('延期措施')" prop="delayMeasure">
  492. <el-input type="textarea" :placeholder="$t('延期措施')"
  493. v-model="dataForm.delayMeasure"
  494. :autosize="{ minRows: 2, maxRows: 50}" ></el-input>
  495. </el-form-item>
  496. <el-form-item :label="$t('延期责任安全声明')" prop="delayNotice">
  497. <el-input type="textarea" :placeholder="$t('延期责任安全声明')"
  498. v-model="dataForm.delayNotice"
  499. :autosize="{ minRows: 2, maxRows: 50}" ></el-input>
  500. </el-form-item>
  501. </template>
  502. </el-form>
  503. <div slot="footer" class="dialog-footer">
  504. <el-button type="primary" @click="submitForm">{{ $t('提交') }}</el-button>
  505. <el-button @click="cancel">{{ $t('取消') }}</el-button>
  506. </div>
  507. </el-dialog>
  508. </template>
  509. <script>
  510. import {getToken} from "@/utils/auth";
  511. import {addApprove, getApprove} from "@/api/sems/approve";
  512. import {listPostUser} from "@/api/system/user";
  513. export default {
  514. name: "tapprove-add",
  515. data() {
  516. return {
  517. visible: false,
  518. devList: [],
  519. wxjlOption:[],
  520. gyjlOption:[],
  521. gyzjOption:[],
  522. wxzjOption:[],
  523. zfOption:[],
  524. fileTips: '',
  525. showDelay: false,
  526. dataForm: {
  527. id: 0,
  528. userId: '',
  529. devId: '',
  530. devType: '',
  531. approveType: '',
  532. content: '',
  533. fileUrls: '',
  534. reUrls: '',
  535. status: '',
  536. createTime: '',
  537. plantCode: '',
  538. unit: '',
  539. devname: '',
  540. devno: '',
  541. files: [],
  542. delayDate: '',
  543. delayReason: '',
  544. delayMeasure: '',
  545. delayNotice: '',
  546. wxjl: '',
  547. gyzj: '',
  548. gyjl: '',
  549. wxzj: '',
  550. zf: ''
  551. },
  552. doc: {
  553. file: "",
  554. // 是否显示弹出层(报告附件)
  555. open: false,
  556. // 弹出层标题(报告附件)
  557. title: "",
  558. // 是否禁用上传
  559. isUploading: false,
  560. // 是否更新已经存在的用户数据
  561. updateSupport: 0,
  562. // 报告附件上传位置编号
  563. ids: 0,
  564. // 设置上传的请求头部
  565. headers: { Authorization: "Bearer " + getToken() },
  566. // 上传的地址
  567. url: process.env.VUE_APP_BASE_API + "/sems/specfile/uploadFile",
  568. commonfileList: null,
  569. pType: 'traning',
  570. pId: null
  571. },
  572. dataRule: {
  573. approveType: [
  574. { required: true, message: this.$t('approveType') + this.$t('notEmpty'), trigger: 'blur' }
  575. ],
  576. content: [
  577. { required: true, message: this.$t('content') + this.$t('notEmpty'), trigger: 'blur' }
  578. ],
  579. wxjl: [
  580. { required: true, message: this.$t('content') + this.$t('notEmpty'), trigger: 'blur' }
  581. ],
  582. wxzj: [
  583. { required: true, message: this.$t('content') + this.$t('notEmpty'), trigger: 'blur' }
  584. ],
  585. gyjl: [
  586. { required: true, message: this.$t('content') + this.$t('notEmpty'), trigger: 'blur' }
  587. ],
  588. gyzj: [
  589. { required: true, message: this.$t('content') + this.$t('notEmpty'), trigger: 'blur' }
  590. ],
  591. zf: [
  592. { required: true, message: this.$t('content') + this.$t('notEmpty'), trigger: 'blur' }
  593. ]
  594. },
  595. approveOption: [],
  596. belong: '',
  597. fileList: [],
  598. };
  599. },
  600. watch: {
  601. // 根据名称筛选部门树
  602. deptName(val) {
  603. this.$refs.tree.filter(val);
  604. }
  605. },
  606. created() {
  607. },
  608. methods: {
  609. init (rows, type) {
  610. this.fileList = []
  611. this.devList = rows
  612. listPostUser({
  613. postCode: 'wxjl'
  614. }).then(response => {
  615. this.wxjlOption = response;
  616. });
  617. listPostUser({
  618. postCode: 'gyjl'
  619. }).then(response => {
  620. this.gyjlOption = response;
  621. });
  622. listPostUser({
  623. postCode: 'gyzj'
  624. }).then(response => {
  625. this.gyzjOption = response;
  626. });
  627. listPostUser({
  628. postCode: 'wxzj'
  629. }).then(response => {
  630. this.wxzjOption = response;
  631. });
  632. listPostUser({
  633. postCode: 'sems'
  634. }).then(response => {
  635. this.zfOption = response;
  636. });
  637. console.log(type)
  638. this.getDicts("spec_approve_type").then(response => {
  639. this.approveOption = response.data;
  640. for (let i = 0; i < this.approveOption.length ; i++) {
  641. if(this.approveOption[i].dictValue == this.devList[0].status){
  642. this.approveOption.splice(i ,1)
  643. }if (this.approveOption[i].dictLabel == "年度检查报告申请") {
  644. this.approveOption.splice(i ,1)
  645. }if (this.approveOption[i].dictLabel == "月度检查报告申请") {
  646. this.approveOption.splice(i ,1)
  647. }
  648. }
  649. });
  650. this.visible = true
  651. this.dataForm.devType = type.toString()
  652. for (let i = 0; i < rows.length; i++) {
  653. if (i == 0){
  654. this.dataForm.devId = rows[i].id
  655. }else {
  656. this.dataForm.devId += ',' + rows[i].id
  657. }
  658. }
  659. this.belong = type + '_' + '/' + new Date().getTime()
  660. },
  661. // 设备类型:字典翻译
  662. devTypeFormat(row, column) {
  663. return this.selectDictLabel(this.devTypeOptions, row.devType);
  664. },
  665. // 审批类型字典翻译
  666. approveTypeFormat(row, column) {
  667. return this.selectDictLabel(this.approveTypeOptions, row.approveType);
  668. },
  669. // 取消按钮
  670. cancel() {
  671. this.$emit('refreshDataList')
  672. this.visible = false;
  673. this.reset();
  674. },
  675. // 表单重置
  676. reset() {
  677. this.form = {
  678. id: null,
  679. userId: null,
  680. devId: null,
  681. devType: null,
  682. approveType: null,
  683. content: null,
  684. fileUrls: null,
  685. reUrls: null,
  686. status: 0,
  687. creattime: null,
  688. endtime: null,
  689. processId: null,
  690. govDate: null,
  691. delayDate: null,
  692. delayReason: null,
  693. delayMeasure: null,
  694. delayNotice: null,
  695. apNo: null,
  696. checkDate: null,
  697. reportId: null,
  698. monthId: null,
  699. delFlag: null,
  700. deptId: null
  701. };
  702. this.resetForm("form");
  703. },
  704. /** 搜索按钮操作 */
  705. handleQuery() {
  706. this.queryParams.pageNum = 1;
  707. this.getList();
  708. },
  709. /** 重置按钮操作 */
  710. resetQuery() {
  711. this.resetForm("queryForm");
  712. this.handleQuery();
  713. },
  714. // 多选框选中数据
  715. handleSelectionChange(selection) {
  716. this.ids = selection.map(item => item.id)
  717. this.single = selection.length!==1
  718. this.multiple = !selection.length
  719. },
  720. /** 新增按钮操作 */
  721. handleAdd() {
  722. this.reset();
  723. this.open = true;
  724. this.title = this.$t('添加特种设备申请');
  725. },
  726. /** 修改按钮操作 */
  727. handleUpdate(row) {
  728. this.reset();
  729. const id = row.id || this.ids
  730. getApprove(id).then(response => {
  731. this.form = response.data;
  732. this.open = true;
  733. this.title = this.$t('修改特种设备申请');
  734. });
  735. },
  736. //附件上传中处理
  737. handleFileDocProgress(event, file, fileList) {
  738. },
  739. handleRemove (file, fileList) {
  740. this.fileList = fileList
  741. },
  742. //附件上传成功处理
  743. handleFileDocSuccess(response, file, fileList) {
  744. this.fileList = fileList
  745. if (response.code == 200){
  746. this.$alert(this.$t('导入成功'), this.$t('导入结果'), { dangerouslyUseHTMLString: true });
  747. }else {
  748. this.$alert(response.msg, this.$t('导入结果'), { dangerouslyUseHTMLString: true });
  749. }
  750. },
  751. /** 提交按钮 */
  752. submitForm() {
  753. this.dataForm.files = []
  754. console.log(this.fileList)
  755. if (this.fileList.length > 0) {
  756. for (let i = 0; i < this.fileList.length; i++) {
  757. let obj = {}
  758. obj.fileName = this.fileList[i].name
  759. obj.fileUrl = this.fileList[i].response.msg
  760. this.dataForm.files.push(obj)
  761. }
  762. }
  763. this.$refs["dataForm"].validate(valid => {
  764. if (valid) {
  765. addApprove(this.dataForm).then(response => {
  766. this.msgSuccess(this.$t('新增成功'));
  767. this.visible = false;
  768. });
  769. }
  770. });
  771. this.$emit('refreshDataList')
  772. },
  773. handleChange(value) {
  774. this.showDelay = false
  775. if (value == -1) {
  776. this.fileTips = '提示:请提供相关支持文件'
  777. }else if (value == 1) {
  778. this.fileTips = '提示:请提供启用前检查报告'
  779. }else if (value == 2) {
  780. this.fileTips = ''
  781. }else if (value == 3) {
  782. this.fileTips = '提示:请提供设备主体破坏后的照片,防止被其他单位买走重新使用'
  783. }else if (value == 4) {
  784. this.fileTips = '提示:请提供相关支持文件'
  785. }else if (value == 5) {
  786. this.showDelay = true
  787. this.fileTips = '提示:延期发起的会议纪要等背景情况'
  788. this.dataForm.delayReason=
  789. '根据2015年压力管道检验报告,清单中的相关管道材质中度球化,安全等级定为3级,下次检验日期定为2018年5月。\n' +
  790. '由于这些管道连接电厂蒸汽母管,无法单独隔绝,只有在2020年扬巴大修期间才有机会停车检验,因此提出延期申请。\n'
  791. this.dataForm.delayMeasure=
  792. '(生产部门,应该根据实际情况,组织机械,电仪各专业,制定具体的运行监控措施描述)\n' +
  793. '\n' +
  794. '工艺部门:\n' +
  795. '维持相关管道操作稳定\n' +
  796. '持续监控相关管道操作压力和温度\n' +
  797. '按照法规要求,定期开展应急演练\n' +
  798. '\n' +
  799. '\n' +
  800. '机修部门:\n' +
  801. '每月对相关管道进行走线巡检,对管道支吊架,保温目视检查。如有问题,记录在巡检记录中\n' +
  802. '及时报告管道使用情况及需要解决的问题\n' +
  803. '发生事故及时组织调查处理,并配合写出事故报告书\n' +
  804. '\n' +
  805. '电仪部门:\n' +
  806. 'XXXXXXXXXXX描述电仪方面的维护或监控措施\n'
  807. this.dataForm.delayNotice=
  808. '我单位/装置,已制定相应预防措施和应急预案,并保证落实安全管理责任、操作人员持证上岗、安全附件和安全保护装置在有效期内。在检验延期期间,将对以上设备加强巡查和实施有效安全监控,做好监控记录,对延期期间的设备安全负完全责任;在延期期满前,我单位将申报并安排以上设备实施定期检验。'
  809. }else if (value == 6) {
  810. this.fileTips = '提示:请提供安全评估报告'
  811. }else {
  812. this.fileTips = ''
  813. }
  814. },
  815. }
  816. }
  817. </script>
  818. <style scoped>
  819. </style>