intact-resolve.vue 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670
  1. <template>
  2. <el-dialog
  3. :title="!this.taskForm.taskId == '' ? $t('处理') : $t('详情')"
  4. :close-on-click-modal="false"
  5. :visible.sync="visible">
  6. <el-form :model="taskForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="" label-width="80px">
  7. <el-form-item :label="$t('设备')">
  8. <el-table
  9. v-show="dataForm.approveType != 7 && dataForm.devType == 1"
  10. :data="devList"
  11. border
  12. style="width: 100%; height: 95px" >
  13. <el-table-column
  14. prop="plantCode"
  15. header-align="center"
  16. align="center"
  17. :label="$t('装置名称')">
  18. </el-table-column>
  19. <el-table-column
  20. prop="devno"
  21. header-align="center"
  22. align="center"
  23. :label="$t('位号')">
  24. </el-table-column>
  25. <el-table-column
  26. prop="devname"
  27. header-align="center"
  28. align="center"
  29. :show-overflow-tooltip="true"
  30. width="150"
  31. :label="$t('设备名称')">
  32. </el-table-column>
  33. <el-table-column
  34. prop="useno"
  35. header-align="center"
  36. align="center"
  37. :show-overflow-tooltip="true"
  38. :label="$t('使用证编号')">
  39. </el-table-column>
  40. <el-table-column
  41. prop="medium"
  42. header-align="center"
  43. align="center"
  44. :show-overflow-tooltip="true"
  45. :label="$t('介质')">
  46. </el-table-column>
  47. <el-table-column
  48. prop="desPressure"
  49. header-align="center"
  50. align="center"
  51. :show-overflow-tooltip="true"
  52. :label="$t('设计压力')+'(MPa)'">
  53. </el-table-column>
  54. <el-table-column
  55. prop="desTemp"
  56. header-align="center"
  57. align="center"
  58. :show-overflow-tooltip="true"
  59. :label="$t('设计温度')+'(℃)'">
  60. </el-table-column>
  61. </el-table>
  62. <el-table
  63. v-show="dataForm.approveType != 7 && dataForm.devType == 2"
  64. :data="devList"
  65. border
  66. style="width: 100%; height: 95px">
  67. <el-table-column
  68. prop="plantCode"
  69. header-align="center"
  70. align="center"
  71. width="100"
  72. :label="$t('装置名称')">
  73. </el-table-column>
  74. <el-table-column
  75. prop="devno"
  76. header-align="center"
  77. align="center"
  78. width="120"
  79. :label="$t('位号')">
  80. </el-table-column>
  81. <!-- <el-table-column-->
  82. <!-- prop="starting"-->
  83. <!-- header-align="center"-->
  84. <!-- align="center"-->
  85. <!-- width="100"-->
  86. <!-- :show-overflow-tooltip="true"-->
  87. <!-- :label="$t('起点')">-->
  88. <!-- </el-table-column>-->
  89. <!-- <el-table-column-->
  90. <!-- prop="ending"-->
  91. <!-- header-align="center"-->
  92. <!-- align="center"-->
  93. <!-- width="100"-->
  94. <!-- :show-overflow-tooltip="true"-->
  95. <!-- :label="$t('终点')">-->
  96. <!-- </el-table-column>-->
  97. <el-table-column
  98. prop="medium"
  99. header-align="center"
  100. align="center"
  101. width="100"
  102. :show-overflow-tooltip="true"
  103. :label="$t('介质')">
  104. </el-table-column>
  105. <el-table-column
  106. prop="desPressure"
  107. header-align="center"
  108. align="center"
  109. :label="$t('设计压力')">
  110. </el-table-column>
  111. <el-table-column
  112. prop="desTemp"
  113. header-align="center"
  114. align="center"
  115. :label="$t('设计温度')">
  116. </el-table-column>
  117. <el-table-column
  118. prop="optPressure"
  119. header-align="center"
  120. align="center"
  121. :label="$t('工作压力')">
  122. </el-table-column>
  123. <el-table-column
  124. prop="optTemp"
  125. header-align="center"
  126. align="center"
  127. width="100"
  128. :show-overflow-tooltip="true"
  129. :label="$t('工作温度')">
  130. </el-table-column>
  131. </el-table>
  132. <el-table
  133. v-show="dataForm.devType == 3"
  134. :data="devList"
  135. border
  136. style="width: 100%; height: 95px">
  137. <el-table-column
  138. prop="plantCode"
  139. header-align="center"
  140. align="center"
  141. :label="$t('装置名称')">
  142. </el-table-column>
  143. <el-table-column
  144. prop="docno"
  145. header-align="center"
  146. align="center"
  147. :show-overflow-tooltip="true"
  148. :label="$t('档案号')">
  149. </el-table-column>
  150. <el-table-column
  151. prop="devname"
  152. header-align="center"
  153. align="center"
  154. :show-overflow-tooltip="true"
  155. width="150"
  156. :label="$t('设备名称')">
  157. </el-table-column>
  158. <el-table-column
  159. prop="capacity"
  160. header-align="center"
  161. align="center"
  162. :show-overflow-tooltip="true"
  163. :label="$t('起吊重量')+'(ton)'">
  164. </el-table-column>
  165. <el-table-column
  166. prop="location"
  167. header-align="center"
  168. align="center"
  169. :show-overflow-tooltip="true"
  170. :label="$t('使用地点')">
  171. </el-table-column>
  172. </el-table>
  173. <el-table
  174. v-show="dataForm.devType == 4"
  175. :data="devList"
  176. border
  177. style="width: 100%; height: 95px">
  178. <el-table-column
  179. prop="plantCode"
  180. header-align="center"
  181. align="center"
  182. :show-overflow-tooltip="true"
  183. :label="$t('装置名称')">
  184. </el-table-column>
  185. <el-table-column
  186. prop="devno"
  187. header-align="center"
  188. align="center"
  189. :show-overflow-tooltip="true"
  190. :label="$t('位号')">
  191. </el-table-column>
  192. <el-table-column
  193. prop="devname"
  194. header-align="center"
  195. align="center"
  196. :show-overflow-tooltip="true"
  197. width="120"
  198. :label="$t('设备名称')">
  199. </el-table-column>
  200. <el-table-column
  201. prop="useno"
  202. header-align="center"
  203. align="center"
  204. :show-overflow-tooltip="true"
  205. :label="$t('使用证编号')">
  206. </el-table-column>
  207. <el-table-column
  208. prop="desTemp"
  209. header-align="center"
  210. align="center"
  211. :label="$t('设计温度')+'(℃)'">
  212. </el-table-column>
  213. <el-table-column
  214. prop="desPressure"
  215. header-align="center"
  216. align="center"
  217. :label="$t('设计压力')+'(MPa)'">
  218. </el-table-column>
  219. </el-table>
  220. <el-table
  221. v-show="dataForm.devType == 5"
  222. :data="devList"
  223. border
  224. style="width: 100%; height: 95px">
  225. <el-table-column
  226. prop="plantCode"
  227. header-align="center"
  228. align="center"
  229. :label="$t('装置名称')">
  230. </el-table-column>
  231. <el-table-column
  232. prop="docno"
  233. header-align="center"
  234. align="center"
  235. :label="$t('docNo')">
  236. </el-table-column>
  237. <el-table-column
  238. prop="devname"
  239. header-align="center"
  240. align="center"
  241. :show-overflow-tooltip="true"
  242. width="150"
  243. :label="$t('设备名称')">
  244. </el-table-column>
  245. <el-table-column
  246. prop="model"
  247. header-align="center"
  248. align="center"
  249. :show-overflow-tooltip="true"
  250. width="120"
  251. :label="$t('型号')">
  252. </el-table-column>
  253. <el-table-column
  254. prop="location"
  255. header-align="center"
  256. align="center"
  257. :show-overflow-tooltip="true"
  258. :label="$t('使用地点')">
  259. </el-table-column>
  260. </el-table>
  261. <el-table
  262. v-show="dataForm.devType == 6"
  263. :data="devList"
  264. border
  265. style="width: 100%; height: 95px">
  266. <el-table-column
  267. prop="plantCode"
  268. header-align="center"
  269. align="center"
  270. :label="$t('装置名称')">
  271. </el-table-column>
  272. <el-table-column
  273. prop="useDept"
  274. header-align="center"
  275. align="center"
  276. :label="$t('dept')">
  277. </el-table-column>
  278. <el-table-column
  279. prop="carNo"
  280. header-align="center"
  281. align="center"
  282. :label="$t('plateNo')">
  283. </el-table-column>
  284. <el-table-column
  285. prop="docno"
  286. header-align="center"
  287. align="center"
  288. :label="$t('docNo')">
  289. </el-table-column>
  290. <el-table-column
  291. prop="model"
  292. header-align="center"
  293. align="center"
  294. :show-overflow-tooltip="true"
  295. width="120"
  296. :label="$t('model')">
  297. </el-table-column>
  298. </el-table>
  299. <el-table
  300. v-show="dataForm.devType == 7"
  301. :data="devList"
  302. border
  303. style="width: 100%; height: 95px">
  304. <el-table-column
  305. prop="plantCode"
  306. header-align="center"
  307. align="center"
  308. :label="$t('装置名称')">
  309. </el-table-column>
  310. <el-table-column
  311. prop="unit"
  312. header-align="center"
  313. align="center"
  314. :label="$t('单元')">
  315. </el-table-column>
  316. <el-table-column
  317. prop="devno"
  318. header-align="center"
  319. align="center"
  320. :label="$t('位号')">
  321. </el-table-column>
  322. <el-table-column
  323. prop="devname"
  324. header-align="center"
  325. align="center"
  326. :label="$t('名称')">
  327. </el-table-column>
  328. <el-table-column
  329. prop="createno"
  330. header-align="center"
  331. align="center"
  332. :label="$t('制造编号')">
  333. </el-table-column>
  334. <el-table-column
  335. prop="indiameter"
  336. header-align="center"
  337. align="center"
  338. :show-overflow-tooltip="true"
  339. width="120"
  340. :label="$t('内径')+' mm'">
  341. </el-table-column>
  342. <el-table-column
  343. prop="height"
  344. header-align="center"
  345. align="center"
  346. :show-overflow-tooltip="true"
  347. width="120"
  348. :label="$t('高(长)')+' mm'">
  349. </el-table-column>
  350. <el-table-column
  351. prop="chickness"
  352. header-align="center"
  353. align="center"
  354. :show-overflow-tooltip="true"
  355. width="120"
  356. :label="$t('壁厚(mm)')">
  357. </el-table-column>
  358. <el-table-column
  359. prop="volume"
  360. header-align="center"
  361. align="center"
  362. :show-overflow-tooltip="true"
  363. width="120"
  364. :label="$t('容积mm³')">
  365. </el-table-column>
  366. <el-table-column
  367. prop="medium"
  368. header-align="center"
  369. align="center"
  370. :show-overflow-tooltip="true"
  371. width="120"
  372. :label="$t('介质')">
  373. </el-table-column>
  374. <el-table-column
  375. prop="material"
  376. header-align="center"
  377. align="center"
  378. :show-overflow-tooltip="true"
  379. width="120"
  380. :label="$t('材料')">
  381. </el-table-column>
  382. </el-table>
  383. <el-button @click="recordHandle(devList,dataForm)" type="text" v-if="devList.length >1">{{$t('更多条目')}}</el-button>
  384. </el-form-item>
  385. <el-row>
  386. <el-col :span="8" v-if="dataForm.approveType != 8">
  387. <el-form-item :label="$t('设备类型')" prop="devType">
  388. <el-select v-model="dataForm.devType" :placeholder="$t('message.select')" disabled>
  389. <el-option
  390. v-for="dict in devTypeOption"
  391. :key="dict.dictValue"
  392. :label="dict.dictLabel"
  393. :value="parseInt(dict.dictValue)">
  394. </el-option>
  395. </el-select>
  396. </el-form-item>
  397. </el-col>
  398. <el-col :span="8">
  399. <el-form-item :label="$t('申请类型')" prop="approveType">
  400. <el-select v-model="dataForm.approveType" :placeholder="$t('message.select')" disabled>
  401. <el-option>
  402. 维修
  403. </el-option>
  404. </el-select>
  405. </el-form-item>
  406. </el-col>
  407. </el-row>
  408. <el-form-item :label="$t('申请时间')" prop="creattime">
  409. <el-input v-model="dataForm.creattime" disabled></el-input>
  410. </el-form-item>
  411. </el-form>
  412. <form ref="downloadForm" :action="downloadAction" target="FORMSUBMIT">
  413. <input name="approveId" v-model="dataForm.id" hidden />
  414. <input name="processId" v-model="dataForm.processId" hidden />
  415. </form>
  416. <span slot="footer" class="dialog-footer">
  417. <el-button v-if="this.taskForm.taskId == ''" @click="visible = false">{{$t('message.return')}}</el-button>
  418. <el-button v-if="!this.taskForm.taskId == ''" type="primary" @click="dataFormSubmit(1)" :disabled="submitDisabled">{{$t('通过')}}</el-button>
  419. <el-button v-if="!this.taskForm.taskId == ''" type="danger" @click="dataFormSubmit(0)" :disabled="submitDisabled">{{$t('拒绝')}}</el-button>
  420. </span>
  421. <!-- <div>-->
  422. <!-- <span>{{$t('流转详情')}}</span>-->
  423. <!-- <el-table :data="historyList" border v-loading="historyLoading" style="width: 100%;">-->
  424. <!-- <el-table-column prop="taskName" header-align="center" align="center" :label="$t('流程进度')"></el-table-column>-->
  425. <!-- <el-table-column prop="userName" header-align="center" align="center" :label="$t('姓名')"></el-table-column>-->
  426. <!-- <el-table-column prop="taskCreateTime" header-align="center" align="center" :label="$t('开始时间')"></el-table-column>-->
  427. <!-- <el-table-column prop="taskEndTime" header-align="center" align="center" :label="$t('结束时间')"></el-table-column>-->
  428. <!-- <el-table-column prop="comment" header-align="center" align="center" :label="$t('审批意见')"></el-table-column>-->
  429. <!-- </el-table>-->
  430. <!-- </div>-->
  431. <record v-if="recordVisible" ref="recordDeal"></record>
  432. </el-dialog>
  433. </template>
  434. <script>
  435. import {getToken} from "@/utils/auth";
  436. import {getHistorylist} from "@/api/ehs/approvedanger";
  437. import {getApproveInfo, handleApprove} from "@/api/intact/approve_dev";
  438. import record from "./spec-itemDetail";
  439. export default {
  440. name: "spec-maintenance",
  441. components: {record},
  442. data() {
  443. return {
  444. loading: true,
  445. // 总条数
  446. total: 0,
  447. approvedangerList: [],
  448. recordVisible: false,
  449. // 遮罩层
  450. historyLoading: false,
  451. //显示详细列表
  452. IfDataIndex: false,
  453. //流转列表
  454. historyList: [],
  455. visible: false,
  456. devList: [],
  457. recordList: [],
  458. dataList: [],
  459. fileTips: '',
  460. showDelay: false,
  461. submitDisabled: false,
  462. dataListLoading:true,
  463. taskName: '',
  464. dataForm: {
  465. id: 0,
  466. userId: '',
  467. devId: '',
  468. devType: '',
  469. approveType: '',
  470. content: '',
  471. fileUrls: '',
  472. reUrls: '',
  473. status: '',
  474. creattime: '',
  475. plantCode: '',
  476. unit: '',
  477. devname: '',
  478. devno: '',
  479. files: [],
  480. delayDate: '',
  481. delayReason: '',
  482. delayMeasure: '',
  483. delayNotice: ''
  484. },
  485. taskForm: {
  486. comment: '',
  487. taskId: '',
  488. files: '',
  489. govDate: '',
  490. govFileList: []
  491. },
  492. // 查询参数
  493. queryParams: {
  494. processId: null,
  495. },
  496. doc: {
  497. file: "",
  498. // 是否显示弹出层(报告附件)
  499. open: false,
  500. // 弹出层标题(报告附件)
  501. title: "",
  502. // 是否禁用上传
  503. isUploading: false,
  504. // 是否更新已经存在的用户数据
  505. updateSupport: 0,
  506. // 报告附件上传位置编号
  507. ids: 0,
  508. // 设置上传的请求头部
  509. headers: { Authorization: "Bearer " + getToken() },
  510. // 上传的地址
  511. url: process.env.VUE_APP_BASE_API + "/sems/specfile/uploadFile",
  512. commonfileList: null,
  513. pType: 'traning',
  514. pId: null
  515. },
  516. dataRule: {
  517. approveType: [
  518. { required: true, message: this.$t('approveType') + this.$t('notEmpty'), trigger: 'blur' }
  519. ],
  520. content: [
  521. { required: true, message: this.$t('content') + this.$t('notEmpty'), trigger: 'blur' }
  522. ]
  523. },
  524. downloadAction: process.env.VUE_APP_BASE_API +'/sems/approve/exportPDF',
  525. approveOption: [],
  526. devTypeOption: [{dictValue:1,dictLabel:'工业炉'},{dictValue:2,dictLabel:'压缩机'},{},{}],
  527. belong: '',
  528. fileList: [],
  529. };
  530. },
  531. watch: {
  532. // 根据名称筛选部门树
  533. deptName(val) {
  534. this.$refs.tree.filter(val);
  535. }
  536. },
  537. created() {
  538. },
  539. methods: {
  540. init (id, taskId, processId,taskName) {
  541. this.getDicts("INTACT_APPROVE_TYPE").then(response => {
  542. this.approveOption = response.data;
  543. });
  544. this.getDicts("INTACT_DEVTYPE").then(response => {
  545. // this.devTypeOption = response.data;
  546. });
  547. this.dataForm.processId = processId
  548. this.taskName = taskName
  549. this.taskForm.taskId = taskId
  550. this.dataForm.id = id || 0
  551. this.visible = true
  552. this.queryParams.processId = processId;
  553. getHistorylist(this.queryParams).then(response => {
  554. this.historyList = response.rows;
  555. this.historyLoading = false
  556. });
  557. getApproveInfo(id).then(response => {
  558. this.taskForm.businessKey = response.data.id
  559. this.dataForm.userId = response.data.userId
  560. this.dataForm.devId = response.data.devId
  561. this.dataForm.devType = response.data.devType
  562. this.dataForm.approveType = response.data.approveType
  563. this.dataForm.content = response.data.content
  564. this.dataForm.fileUrls = response.data.fileUrls
  565. this.dataForm.reUrls = response.data.reUrls
  566. this.dataForm.status = response.data.status
  567. this.dataForm.creattime = response.data.creattime
  568. this.dataForm.plantCode = response.data.plantCode
  569. this.dataForm.unit = response.data.unit
  570. this.dataForm.devname = response.data.devname
  571. this.dataForm.devno = response.data.devno
  572. this.dataForm.files = response.data.files
  573. this.devList = response.data.devList
  574. this.dataForm.delayDate = response.data.delayDate
  575. this.dataForm.delayReason = response.data.delayReason
  576. this.dataForm.delayMeasure = response.data.delayMeasure
  577. this.dataForm.delayNotice = response.data.delayNotice
  578. });
  579. },
  580. // 设备类型:字典翻译
  581. devTypeFormat(row, column) {
  582. // return this.selectDictLabel(this.devTypeOptions, row.devType);
  583. },
  584. // 审批类型字典翻译
  585. approveTypeFormat(row, column) {
  586. return this.selectDictLabel(this.approveTypeOptions, row.approveType);
  587. },
  588. // 取消按钮
  589. cancel() {
  590. this.visible = false;
  591. this.reset();
  592. },
  593. // 表单重置
  594. reset() {
  595. this.form = {
  596. id: null,
  597. userId: null,
  598. devId: null,
  599. devType: null,
  600. approveType: null,
  601. content: null,
  602. fileUrls: null,
  603. reUrls: null,
  604. status: 0,
  605. creattime: null,
  606. endtime: null,
  607. processId: null,
  608. govDate: null,
  609. delayDate: null,
  610. delayReason: null,
  611. delayMeasure: null,
  612. delayNotice: null,
  613. apNo: null,
  614. checkDate: null,
  615. reportId: null,
  616. monthId: null,
  617. delFlag: null,
  618. deptId: null
  619. };
  620. this.resetForm("form");
  621. },
  622. /** 提交按钮 */
  623. // 表单提交
  624. dataFormSubmit (val) {
  625. this.submitDisabled = true
  626. console.log(this.taskForm.govFileList)
  627. this.dataForm.files = []
  628. if (this.taskForm.govFileList.length > 0) {
  629. for (let i = 0; i < this.taskForm.govFileList.length; i++) {
  630. let obj = {}
  631. obj.fileName = this.taskForm.govFileList[i].response.fileName
  632. obj.fileUrl = this.taskForm.govFileList[i].response.url
  633. this.dataForm.files.push(obj)
  634. }
  635. }
  636. this.taskForm.condition = val
  637. this.taskForm.govFiles = this.dataForm.files
  638. handleApprove(this.taskForm).then(response => {
  639. this.submitDisabled = false
  640. this.msgSuccess(this.$t('处理成功'));
  641. this.visible = false;
  642. this.$emit('refreshDataList')
  643. });
  644. this.$nextTick(function () {
  645. this.comment = ''
  646. })
  647. },
  648. recordHandle(devList,dataForm){
  649. this.recordVisible = true
  650. this.$nextTick(() => {
  651. this.$refs.recordDeal.init(devList,dataForm);
  652. })
  653. },
  654. }
  655. }
  656. </script>
  657. <style scoped>
  658. </style>