yinhuanform_yzg_wys.vue 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636
  1. <template>
  2. <div>
  3. <!-- <div v-if="shows">
  4. <van-nav-bar title="风险评级" left-arrow @click-left="onClickLeft" />
  5. </div> -->
  6. <div class="headers">
  7. <div>
  8. <van-field
  9. v-model="value13"
  10. name="检查人"
  11. label="检查人"
  12. placeholder="检查人"
  13. readonly="false"
  14. />
  15. </div>
  16. <div>
  17. <van-field
  18. v-model="value10"
  19. name="检查人部门"
  20. label="检查人部门"
  21. placeholder="检查人部门"
  22. readonly="false"
  23. />
  24. </div>
  25. <div>
  26. <van-field
  27. v-model="value1"
  28. name="检查专业"
  29. label="检查专业"
  30. placeholder="检查专业"
  31. :rules="[{ required: true, message: '请选择' }]"
  32. readonly="false"
  33. />
  34. </div>
  35. <div>
  36. <van-field
  37. v-model="value2"
  38. name="隐患等级"
  39. label="隐患等级"
  40. placeholder="隐患等级"
  41. :rules="[{ required: true, message: '请选择' }]"
  42. readonly="false"
  43. />
  44. </div>
  45. <div>
  46. <van-cell-group>
  47. <van-field
  48. v-model="message1"
  49. rows="1"
  50. autosize
  51. label="存在问题或隐患"
  52. type="textarea"
  53. placeholder="请输入信息"
  54. readonly="false"
  55. />
  56. <van-field
  57. v-model="message2"
  58. rows="1"
  59. autosize
  60. label="整改措施"
  61. type="textarea"
  62. placeholder="请输入信息"
  63. readonly="false"
  64. />
  65. </van-cell-group>
  66. </div>
  67. </div>
  68. <div class="contents">
  69. <div>
  70. <van-field
  71. v-model="value3"
  72. name="风险点"
  73. label="风险点"
  74. placeholder="风险点"
  75. :rules="[{ required: true, message: '请选择' }]"
  76. readonly="false"
  77. />
  78. </div>
  79. <div>
  80. <van-field
  81. v-model="value4"
  82. name="风险类型"
  83. label="风险类型"
  84. placeholder="风险类型"
  85. :rules="[{ required: true, message: '请选择' }]"
  86. readonly="false"
  87. />
  88. </div>
  89. <div>
  90. <van-field
  91. v-model="value5"
  92. name="风险等级"
  93. label="风险等级"
  94. placeholder="风险等级"
  95. :rules="[{ required: true, message: '请选择' }]"
  96. readonly="false"
  97. />
  98. </div>
  99. <div>
  100. <van-field
  101. v-model="value6"
  102. name="事故类型"
  103. label="事故类型"
  104. placeholder="事故类型"
  105. :rules="[{ required: true, message: '请选择' }]"
  106. readonly="false"
  107. />
  108. </div>
  109. <div>
  110. <van-cell-group>
  111. <van-field
  112. v-model="message3"
  113. rows="1"
  114. autosize
  115. label="风险描述"
  116. type="textarea"
  117. placeholder="请输入信息"
  118. readonly="false"
  119. />
  120. <van-field
  121. v-model="message4"
  122. rows="1"
  123. autosize
  124. label="后果及影响"
  125. type="textarea"
  126. placeholder="请输入信息"
  127. readonly="false"
  128. />
  129. <van-field
  130. v-model="message5"
  131. rows="1"
  132. autosize
  133. label="管控措施"
  134. type="textarea"
  135. placeholder="请输入信息"
  136. readonly="false"
  137. />
  138. </van-cell-group>
  139. </div>
  140. <!-- <div>
  141. <el-table
  142. ref="multipleTable"
  143. :data="tableData"
  144. tooltip-effect="dark"
  145. style="width: 100%"
  146. @selection-change="handleSelectionChange"
  147. >
  148. <el-table-column type="selection" width="45"> </el-table-column>
  149. <el-table-column label="日期" width="90">
  150. <template slot-scope="scope">{{ scope.row.date }}</template>
  151. </el-table-column>
  152. <el-table-column prop="name" label="姓名" width="120">
  153. </el-table-column>
  154. <el-table-column prop="address" label="地址" show-overflow-tooltip>
  155. </el-table-column>
  156. </el-table>
  157. </div> -->
  158. </div>
  159. <div class="contents1">
  160. <div>
  161. <van-cell-group>
  162. <van-field
  163. v-model="message6"
  164. rows="1"
  165. autosize
  166. label="整改责任单位"
  167. type="textarea"
  168. placeholder="请输入信息"
  169. readonly="false"
  170. />
  171. <van-field
  172. v-model="message7"
  173. rows="1"
  174. autosize
  175. label="整改责任人"
  176. type="textarea"
  177. placeholder="请输入信息"
  178. readonly="false"
  179. />
  180. </van-cell-group>
  181. </div>
  182. <div>
  183. <van-field
  184. v-model="value7"
  185. name="督办部门"
  186. label="督办部门"
  187. placeholder="督办部门"
  188. :rules="[{ required: true, message: '请选择' }]"
  189. readonly="false"
  190. />
  191. </div>
  192. <div>
  193. <van-field
  194. v-model="value8"
  195. name="督办责任人"
  196. label="督办责任人"
  197. placeholder="督办责任人"
  198. :rules="[{ required: true, message: '请选择' }]"
  199. readonly="false"
  200. />
  201. </div>
  202. <div>
  203. <van-field
  204. v-model="value11"
  205. name="整改类型"
  206. label="整改类型"
  207. placeholder="整改类型"
  208. readonly="false"
  209. />
  210. </div>
  211. <div>
  212. <van-field
  213. v-model="value9"
  214. name="整改期限"
  215. label="整改期限"
  216. placeholder="整改期限"
  217. readonly="false"
  218. />
  219. </div>
  220. </div>
  221. <div class="contents2">
  222. <div>
  223. <van-cell-group>
  224. <van-field
  225. v-model="message8"
  226. rows="1"
  227. autosize
  228. label="整改意见"
  229. type="textarea"
  230. placeholder="请输入信息"
  231. readonly="false"
  232. />
  233. </van-cell-group>
  234. </div>
  235. </div>
  236. <div class="contents3">
  237. <div>
  238. <van-cell-group>
  239. <van-field
  240. v-if="check_accept_department"
  241. v-model="check_accept_department"
  242. rows="1"
  243. autosize
  244. label="验收部门"
  245. type="textarea"
  246. placeholder="请输入信息"
  247. readonly="false"
  248. />
  249. </van-cell-group>
  250. </div>
  251. <div>
  252. <van-field
  253. v-if="!check_accept_department"
  254. readonly
  255. clickable
  256. label="验收部门"
  257. :value="value12"
  258. placeholder="请选择"
  259. @click="showPicker12 = true"
  260. />
  261. <van-popup v-model="showPicker12" round position="bottom">
  262. <van-picker
  263. show-toolbar
  264. :columns="columns12"
  265. @cancel="showPicker12 = false"
  266. @confirm="onConfirm12"
  267. />
  268. </van-popup>
  269. </div>
  270. <!-- <div>
  271. <van-field
  272. v-model="fieldValue_yanShouRen"
  273. is-link
  274. readonly
  275. label="验收责任人"
  276. placeholder="请选择验收责任人"
  277. @click="show_yanShouRen = true"
  278. />
  279. <van-popup v-model="show_yanShouRen" round position="bottom">
  280. <van-cascader
  281. v-model="cascaderValue_yanShouRen"
  282. title="请选择验收责任人"
  283. :options="options"
  284. @close="show_yanShouRen = false"
  285. @finish="onFinish_yanShouRen"
  286. />
  287. </van-popup>
  288. </div> -->
  289. </div>
  290. <div class="buttons" v-if="!check_accept_department">
  291. <button @click="tijiao">确认提交</button>
  292. </div>
  293. </div>
  294. </template>
  295. <script>
  296. import { getAllUrlParams } from "../../../plugins/url-encapsulation.js";
  297. export default {
  298. data() {
  299. return {
  300. shows: true,
  301. value1: "", //检查专业
  302. value2: "", //隐患等级
  303. message1: "", //存在问题或隐患
  304. message2: "", //整改措施
  305. value3: "", //风险点
  306. value4: "", //风险类型
  307. value5: "", //风险等级
  308. value6: "", //事故类型
  309. message3: "", //风险描述
  310. message4: "", //后果及影响
  311. message5: "", //管控措施
  312. message6: "", //整改责任单位
  313. message7: "", //整改责任人
  314. value7: "", //督办部门
  315. value8: "", //督办责任人
  316. value9: "", //整改期限
  317. message8: "", //整改意见
  318. message9: "", //验收意见
  319. message10: "", //验收日期
  320. message11: "", //验收部门
  321. message12: "", //验收责任人
  322. message13: "", //验收结果
  323. showPicker12: false,
  324. showPicker13: false,
  325. fileList: [],
  326. infos: [],
  327. dates: "请选择" ? "请选择" : "",
  328. showtime: false,
  329. // 检查人部门
  330. value10: "",
  331. // 整改类型
  332. value11: "",
  333. // 验收部门
  334. value12: "",
  335. // 检查人
  336. value13: "",
  337. // 验收部门选项
  338. columns12: [],
  339. // 详情id
  340. id: "",
  341. // 详情数据
  342. detail: {},
  343. // 验收部门
  344. sectionArr: [],
  345. sectionArr_id: "",
  346. // 验收责任人
  347. staffArr: [],
  348. staffArr_id: "",
  349. // 筛选整改人
  350. show_yanShouRen: false,
  351. fieldValue_yanShouRen: "",
  352. cascaderValue_yanShouRen: "",
  353. options: [],
  354. check_accept_department: "",
  355. };
  356. },
  357. methods: {
  358. //返回按钮
  359. onClickLeft() {
  360. window.history.back();
  361. // console.log("sss");
  362. },
  363. tijiao() {
  364. console.log(this.sectionArr_id, this.staffArr_id);
  365. if (this.sectionArr_id == "") {
  366. this.$toast("请填写完整后再提交!");
  367. return;
  368. }
  369. this.$toast.loading();
  370. this.$http
  371. .post(
  372. "http://meihuajing.nxjiewei.com:8011/api/troubleshoot/updateTroubleshoot",
  373. {
  374. id: this.id,
  375. check_accept_department: this.sectionArr_id,
  376. // check_accept_duty_person: this.staffArr_id,
  377. type: 4,
  378. }
  379. )
  380. .then((res) => {
  381. this.$toast.clear();
  382. console.log(res.data);
  383. window.history.back();
  384. });
  385. },
  386. afterRead(file) {
  387. console.log(file);
  388. },
  389. formatDate(date) {
  390. return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;
  391. },
  392. onConfirm12(value, index) {
  393. console.log(value, index);
  394. this.sectionArr_id = this.sectionArr[index].id;
  395. this.value12 = value;
  396. this.showPicker12 = false;
  397. },
  398. onConfirm13(value, index) {
  399. console.log(value, index);
  400. this.staffArr_id = this.staffArr[index].id;
  401. this.value13 = value;
  402. this.showPicker13 = false;
  403. },
  404. // 获取部门 和 责任人数据
  405. getStaffAndSectionData() {
  406. this.$http
  407. .post(
  408. "http://meihuajing.nxjiewei.com:8011/api/troubleshoot/getStaffAndSectionData",
  409. {}
  410. )
  411. .then((res) => {
  412. console.log(res.data);
  413. this.sectionArr = res.data.data.sectionArr;
  414. this.staffArr = res.data.data.staffArr;
  415. // 验收部门
  416. this.columns12 = [];
  417. res.data.data.sectionArr.forEach((item, index) => {
  418. this.columns12.push(item.title);
  419. });
  420. });
  421. },
  422. // 获取详情
  423. getTroubleshootDetail(id) {
  424. this.$toast.loading();
  425. this.$http
  426. .post(
  427. "http://meihuajing.nxjiewei.com:8011/api/troubleshoot/getTroubleshootDetail",
  428. {
  429. id: id,
  430. }
  431. )
  432. .then((res) => {
  433. this.$toast.clear();
  434. console.log(res.data.data);
  435. this.detail = res.data.data;
  436. const data = res.data.data;
  437. this.value10 = data.inspected_unit;
  438. this.value1 = data.inspection_specialty;
  439. this.value2 = data.hidden_danger_level;
  440. this.message1 = data.hidden_danger;
  441. this.message2 = data.rectification_measures;
  442. this.value3 = data.risk_rating.risk_point;
  443. this.value4 = data.risk_rating.risk_type;
  444. this.value5 = data.risk_rating.risk_level;
  445. this.value6 = data.risk_rating.accident_type;
  446. this.message3 = data.risk_rating.risk_description;
  447. this.message4 = data.risk_rating.consequences_and_impact;
  448. this.message5 = data.risk_rating.control_measures;
  449. this.message6 = data.rectification_duty_unit;
  450. this.message7 = data.rectification_duty_person;
  451. this.value7 = data.supervision_department;
  452. this.value8 = data.supervision_duty_person;
  453. this.value11 = data.rectification_type;
  454. this.value9 = data.rectification_term;
  455. this.value13 = data.inspected_person;
  456. this.message8 = data.rectification_opinion;
  457. this.check_accept_department = data.check_accept_department;
  458. });
  459. },
  460. // 获取部门、人
  461. getSectionStaff() {
  462. this.$http
  463. .post(
  464. "http://meihuajing.nxjiewei.com:8011/api/section/getSectionStaff",
  465. {}
  466. )
  467. .then((res) => {
  468. console.log(res.data.data);
  469. this.options = res.data.data;
  470. });
  471. },
  472. // 选择验收责任人
  473. onFinish_yanShouRen({ selectedOptions }) {
  474. this.show_yanShouRen = false;
  475. this.fieldValue_yanShouRen = selectedOptions
  476. .map((option) => option.text)
  477. .join("--");
  478. console.log(selectedOptions[1].value);
  479. this.staffArr_id = selectedOptions[1].value;
  480. },
  481. },
  482. mounted() {
  483. document.body.style.backgroundColor = "#f0f0f0"; //背景色
  484. this.id = getAllUrlParams(window.location.href).id;
  485. this.getTroubleshootDetail(this.id);
  486. // 获取部门 和 责任人数据
  487. this.getStaffAndSectionData();
  488. this.getSectionStaff();
  489. },
  490. };
  491. </script>
  492. <style scoped>
  493. >>> .van-nav-bar {
  494. background: #39f;
  495. }
  496. >>> .van-nav-bar__title {
  497. color: #fff;
  498. }
  499. >>> .van-nav-bar .van-icon {
  500. color: #fff;
  501. }
  502. >>> .van-nav-bar__text {
  503. color: #fff;
  504. }
  505. [class*="van-hairline"]:after {
  506. border: none;
  507. }
  508. >>> .van-cell__title,
  509. .van-cell__value {
  510. -webkit-box-flex: 1;
  511. -webkit-flex: none;
  512. flex: none;
  513. }
  514. >>> .van-cell__value > span {
  515. padding-left: 42px;
  516. }
  517. .headers {
  518. width: 100%;
  519. background: #fff;
  520. }
  521. .contents,
  522. .contents1,
  523. .contents2,
  524. .contents3 {
  525. width: 100%;
  526. background: #fff;
  527. margin-top: 10px;
  528. }
  529. /* .buttons {
  530. width: 100%;
  531. text-align: center;
  532. }
  533. .buttons > .buttons_one {
  534. border: none;
  535. background: #4dc100;
  536. font-size: 14px;
  537. width: 100px;
  538. height: 40px;
  539. line-height: 40px;
  540. color: #fff;
  541. border-radius: 20px;
  542. margin: 15px 20px;
  543. }
  544. .buttons > .buttons_two {
  545. border: none;
  546. background: #c00201;
  547. font-size: 14px;
  548. width: 100px;
  549. height: 40px;
  550. line-height: 40px;
  551. color: #fff;
  552. border-radius: 20px;
  553. margin: 15px 20px;
  554. } */
  555. .buttons {
  556. width: 110px;
  557. height: 40px;
  558. background: #39f;
  559. margin: 10px auto;
  560. text-align: center;
  561. line-height: 40px;
  562. border-radius: 20px;
  563. }
  564. .buttons > button {
  565. border: none;
  566. color: #fff;
  567. background: #39f;
  568. }
  569. .contents2_img {
  570. display: flex;
  571. }
  572. .contents2_img > p {
  573. font-size: 14px;
  574. margin-left: 16px;
  575. color: #646566;
  576. }
  577. .contents2_img > div {
  578. margin-left: 40px;
  579. }
  580. </style>