5a9fb9b38c2f43b906909fcf22c08cec5c8a15fd.svn-base 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475
  1. <template>
  2. <div class="aqglpk">
  3. <!-- <el-dialog :title="'责任人填报'" :visible.sync="dialogFormVisible"> -->
  4. <el-container v-if="formIsShow" style="height:49vh;">
  5. <el-main style="border:1px solid #d5d5ff;margin-left:5px;padding:0px;">
  6. <p style="font-weight:bolder;background-color:#d5d5ff;padding:3px;">信息填报</p>
  7. <el-form :model="formObj" :label-width="formLabelWidth" :rules="rules" :disabled="ifView">
  8. <el-form-item class="zdlsqk" label="控制运用计划编制情况" style="width:30vw">
  9. <el-radio v-model="formObj.ctapInfo" label="1">已编制</el-radio>
  10. <el-radio v-model="formObj.ctapInfo" label="2">按规定不需要编制</el-radio>
  11. <el-radio v-model="formObj.ctapInfo" label="3">
  12. 需编制但未编制
  13. <el-button
  14. @click="addProblem('ctapInfo')"
  15. type="text"
  16. v-if="this.formObj.ctapInfo ==='3' ? true :false"
  17. >
  18. <i class="el-icon-circle-plus"></i>
  19. </el-button>
  20. </el-radio>
  21. </el-form-item>
  22. <p style="margin-top:10px;margin-bottom: 10px">
  23. <i class="el-icon-caret-right"></i>
  24. <span style="width:120px;padding-left: 10px">突发事件应急预案和防洪预案</span>
  25. <span class="hrs"></span>
  26. </p>
  27. <el-form-item label="是否编制">
  28. <el-radio v-model="formObj.epafcpIsH" label="1">是</el-radio>
  29. <el-radio v-model="formObj.epafcpIsH" label="2">否</el-radio>
  30. <el-button
  31. @click="addProblem('epafcpIsH')"
  32. type="text"
  33. v-if="this.formObj.epafcpIsH ==='2' ? true :false"
  34. >
  35. <i class="el-icon-circle-plus"></i>
  36. </el-button>
  37. </el-form-item>
  38. <el-form-item label="是否发生安全事故">
  39. <el-radio v-model="formObj.safeIsH" label="1">是</el-radio>
  40. <el-radio v-model="formObj.safeIsH" label="2">否</el-radio>
  41. </el-form-item>
  42. <p style="margin-top:10px;margin-bottom: 10px">
  43. <i class="el-icon-caret-right"></i>
  44. <span style="width:120px;padding-left: 10px">安全鉴定情况</span>
  45. <span class="hrs"></span>
  46. </p>
  47. <el-form-item
  48. class="zdlsqk"
  49. label="大中型水闸"
  50. style="width:35vw"
  51. >
  52. <el-radio v-model="Safety" label="1" @change="szType(1)">已开展安全鉴定</el-radio>
  53. <el-radio v-model="Safety" label="2" @change="szType(2)">需开展但未开展安全鉴定</el-radio>
  54. <el-button
  55. @click="addProblem('lmSafetyIsCo')"
  56. type="text"
  57. v-if="Safety ==='2' ? true :false"
  58. >
  59. <i class="el-icon-circle-plus"></i>
  60. </el-button>
  61. <el-radio v-model="Safety" label="3" @change="szType(3)">按规定不需要鉴定</el-radio>
  62. </el-form-item>
  63. <el-form-item
  64. class="zdlsqk"
  65. label="小型水闸"
  66. style="width:35vw"
  67. >
  68. <el-radio v-model="Safety" label="4" @change="szType(4)">已开展安全鉴定</el-radio>
  69. <el-radio v-model="Safety" label="5" @change="szType(5)">未开展安全鉴定</el-radio>
  70. <el-button
  71. @click="addProblem('lmSafetyIsCo')"
  72. type="text"
  73. v-if="Safety ==='5' ? true :false"
  74. >
  75. <i class="el-icon-circle-plus"></i>
  76. </el-button>
  77. <el-radio v-model="Safety" label="6" @change="szType(6)">按规定不需要鉴定</el-radio>
  78. </el-form-item>
  79. <transition name="slide-fade">
  80. <el-form-item label="是否鉴定为三、四类水闸" v-if="isThreeOrFour" >
  81. <el-radio v-model="formObj.isThreeOrFour" label="1" @change="isTof(1)">是</el-radio>
  82. <el-radio v-model="formObj.isThreeOrFour" label="2" @change="isTof(2)">否</el-radio>
  83. </el-form-item>
  84. </transition>
  85. <transition name="slide-fade">
  86. <el-form-item label="是否采取限制运用措施" v-if="restmIsAd">
  87. <el-radio v-model="formObj.restmIsAd" label="1">是</el-radio>
  88. <el-radio v-model="formObj.restmIsAd" label="2">否</el-radio>
  89. <el-button
  90. @click="addProblem('restmIsAd')"
  91. type="text"
  92. v-if="this.formObj.restmIsAd ==='2' ? true :false"
  93. >
  94. <i class="el-icon-circle-plus"></i>
  95. </el-button>
  96. </el-form-item>
  97. </transition>
  98. <el-form-item label>
  99. <!-- <el-button @click="cancelHandler">取 消</el-button> -->
  100. <el-button style="padding:7px 15px" type="primary" @click="addHandler" v-if="openType">保 存</el-button>
  101. </el-form-item>
  102. </el-form>
  103. </el-main>
  104. </el-container>
  105. <problem-dialog
  106. v-if="showAddProblemDialog && openType"
  107. :objType="6"
  108. :villType="7"
  109. :objId="currentObjectId"
  110. :objName="currentObjectName"
  111. :problemMiddleType="'水闸'"
  112. :problemSmallType="problemSmallType"
  113. :problData="problData"
  114. :currentGroupId="currentGroupId"
  115. @closeDialog="closePlDialog"
  116. :currentObjectRgstrId="currentObjectRgstrId"
  117. ></problem-dialog>
  118. </div>
  119. </template>
  120. <script>
  121. import inputWith from "../../widgets/inuptWith.vue";
  122. import request from "../../utils/gw_ajax_request.js";
  123. import { getSafe, addBasePres } from "../../api/duChaTianBao.js";
  124. import { formatDateTimeD } from "../../utils/gw_date.js";
  125. import problemDialog from "../duChaWenTi/problemDialog.vue";
  126. export default {
  127. components: {
  128. inputWith: inputWith,
  129. problemDialog
  130. },
  131. props: [
  132. "currentObjectRgstrId",
  133. "currentObjectEngScale",
  134. "currentObjectName",
  135. "currentObjectId",
  136. "szRuls",
  137. "showOrEdit",
  138. "currentGroupId",
  139. "openType",
  140. "ifView"
  141. ],
  142. data() {
  143. var checkTel = (rule, value, callback) => {
  144. // if (!value) {
  145. // return callback(new Error('不能为空'));
  146. // }
  147. var isPhone = /^([0-9]{3,4}-)?[0-9]{7,8}$/; //座机
  148. var isMob = /^[1][3,4,5,7,8][0-9]{9}$/; // 座机格式
  149. if (!isMob.test(value) && !isPhone.test(value)) {
  150. callback(new Error("请输入合理电话"));
  151. } else {
  152. callback();
  153. }
  154. // setTimeout(() => {
  155. // }, 1000);
  156. };
  157. return {
  158. isThreeOrFour:false,
  159. restmIsAd:false,
  160. Safety:'',
  161. objtbStatu:{
  162. safeStat:"",
  163. id:"",
  164. },
  165. problData: "",
  166. showAddProblemDialog: false,
  167. rules: {
  168. wiunWaoLegPersTel: [{ validator: checkTel, trigger: "blur" }],
  169. techPersTel: [{ validator: checkTel, trigger: "blur" }],
  170. patrolPersTel: [{ validator: checkTel, trigger: "blur" }]
  171. },
  172. lyjg: [],
  173. formObj: {
  174. dutyId: "",
  175. hasPatrolPers: "", //是否有巡查责任人
  176. hasTechPers: "", //是否有技术责任人
  177. ctapInfo: "", //是否有行政责任人
  178. patrolPers: "", //巡查责任人姓名
  179. patrolPersDuty: "", //巡查责任人职务
  180. patrolPersResu: "", //巡查责任人履职情况 0 1 2
  181. patrolPersTel: "", //巡查责任人电话
  182. rgstrId: "", //水库督查登记ID
  183. techPers: "", //技术责任人姓名
  184. lmSafetyIsCo: "", //技术责任人姓名
  185. ssafetyIsCo: "", //技术责任人姓名
  186. restmIsAd: "", //技术责任人姓名
  187. isThreeOrFour: "", //技术责任人姓名
  188. sSafetyIsCosslsz: "", //技术责任人姓名
  189. techPersDuty: "", //技术责任人职务
  190. techPersResu: "", //技术责任人履职情况
  191. techPersTel: "", //技术责任人电话
  192. wiunWaoLegPers: "", //行政责任人姓名
  193. wiunWaoLegPersDuty: "", //行政责任人职务
  194. epafcpIsH: "", //行政责任人履职情况
  195. safeIsH: "", //行政责任人履职情况
  196. wiunWaoLegPersTel: "", //行政责任人电话
  197. hasAttendTrain: "", //是否参加过培训
  198. patrolFundSour: "" //巡查经费来源
  199. },
  200. bzkz: [
  201. { id: "1", pnm: "按规定不需要编制" },
  202. { id: "2", pnm: "需编制但未编制控制运用计划" },
  203. { id: "3", pnm: "已编制控制运用计划" }
  204. ],
  205. fhya: [
  206. { id: "1", pnm: "未编制突发事件应急预案和防洪预案" },
  207. { id: "2", pnm: "已编制突发事件应急预案和防洪预案" },
  208. { id: "3", pnm: "曾发生安全事故" },
  209. { id: "4", pnm: "未发生安全事故" }
  210. ],
  211. dialogFormVisible: false,
  212. formLabelWidth: "20vw",
  213. loading: true,
  214. operationType1: "",
  215. formIsShow: true
  216. };
  217. },
  218. computed: {
  219. recPersId() {
  220. return localStorage.getItem("userid")
  221. ? localStorage.getItem("userid")
  222. : "";
  223. },
  224. },
  225. created() {
  226. if (this.showOrEdit === "show") {
  227. this.formIsShow = false;
  228. } else {
  229. this.formIsShow = true;
  230. }
  231. },
  232. mounted() {
  233. this.getRgstridObj();
  234. },
  235. watch: {
  236. currentObjectRgstrId(n, o) {
  237. this.getRgstridObj();
  238. },
  239. currentObjectEngScale(n, o) {
  240. this.currentObjectEngScale = n;
  241. },
  242. Safety(n,o){
  243. if(this.Safety == '1'||this.Safety == '2'||this.Safety == '3'){
  244. this.formObj.lmSafetyIsCo = n;
  245. this.formObj.ssafetyIsCo = 0;
  246. this.formObj.sSafetyIsCo = 0;
  247. }else{
  248. if(n == '4'){
  249. this.formObj.lmSafetyIsCo = 0;
  250. this.formObj.ssafetyIsCo = "1";
  251. }else if(n == '5'){
  252. this.formObj.lmSafetyIsCo = 0;
  253. this.formObj.ssafetyIsCo = "2";
  254. }else{
  255. this.formObj.lmSafetyIsCo = 0;
  256. this.formObj.ssafetyIsCo = "3";
  257. }
  258. }
  259. console.log(this.formObj.lmSafetyIsCo);
  260. console.log(this.formObj.ssafetyIsCo);
  261. }
  262. },
  263. methods: {
  264. szType(item){
  265. if(item == '1' || item =='4'){
  266. this.isThreeOrFour = true;
  267. }else{
  268. this.isThreeOrFour = false;
  269. this.restmIsAd = false;
  270. }
  271. },
  272. isTof(item){
  273. if(item == '1'){
  274. this.restmIsAd = true;
  275. }else{
  276. this.restmIsAd = false;
  277. }
  278. },
  279. getRgstridObj() {
  280. var _self = this;
  281. getSafe(_self.currentObjectRgstrId).then(res => {
  282. if (Object.keys(res.data).length !== 0) {
  283. _self.formObj = res.data;
  284. if(res.data.ssafetyIsCo == '1'||res.data.lmSafetyIsCo == '1'){
  285. _self.isThreeOrFour = true;
  286. }else{
  287. _self.isThreeOrFour = false;
  288. }
  289. if(res.data.isThreeOrFour == '1' && _self.isThreeOrFour == true){
  290. _self.restmIsAd = true;
  291. }else{
  292. _self.restmIsAd = false;
  293. }
  294. if((_self.formObj.lmSafetyIsCo == "0"||_self.formObj.lmSafetyIsCo == null) && _self.formObj.ssafetyIsCo !== "0"){
  295. if(_self.formObj.ssafetyIsCo == '1'){
  296. _self.Safety= '4';
  297. }else if(_self.formObj.ssafetyIsCo == '2'){
  298. _self.Safety= '5';
  299. }else{
  300. _self.Safety= '6';
  301. }
  302. }else if((_self.formObj.ssafetyIsCo == "0" ||_self.formObj.ssafetyIsCo == null) && _self.formObj.lmSafetyIsCo !== "0"){
  303. _self.Safety = _self.formObj.lmSafetyIsCo;
  304. }else{
  305. _self.Safety = "";
  306. }
  307. _self.operationType1 = "update";
  308. } else {
  309. _self.formObj = {};
  310. _self.operationType1 = "add";
  311. }
  312. });
  313. },
  314. addHandler() {
  315. var _self = this;
  316. _self.formObj["rgstrId"] = _self.currentObjectRgstrId;
  317. _self.formObj["recPersId"] = _self.recPersId;
  318. _self.objtbStatu.id = _self.currentObjectRgstrId;
  319. if(_self.formObj.ctapInfo
  320. && _self.formObj.epafcpIsH
  321. && _self.formObj.safeIsH
  322. && _self.Safety){
  323. this.objtbStatu.safeStat = "2"
  324. }else{
  325. if(_self.formObj.ctapInfo == undefined &&
  326. _self.formObj.epafcpIsH == undefined &&
  327. _self.formObj.safeIsH == undefined &&
  328. _self.Safety == undefined ){
  329. this.objtbStatu.safeStat = "0"
  330. }else{
  331. this.objtbStatu.safeStat = "1"
  332. }
  333. }
  334. this.$confirm("确认保存安全管理情况信息?", "提示", {
  335. confirmButtonText: "确定",
  336. cancelButtonText: "取消",
  337. type: "warning"
  338. })
  339. .then(() => {
  340. if (_self.operationType1 == "add") {
  341. try{
  342. request.post('/bis/waga/safeManage',_self.formObj).then((res)=>{
  343. if (res.success) {
  344. _self.$message.success("添加成功");
  345. request.post("/att/waga/rgstr/update",_self.objtbStatu).then((res)=>{
  346. res;
  347. })
  348. _self.$emit("addShuiKuSuccess");
  349. }
  350. });
  351. } catch(e) {
  352. }
  353. // try {
  354. // request.post("/bis/waga/safeManage", _self.formObj).then(res => {
  355. // if (res.success) {
  356. // _self.$message.success("添加成功");
  357. // _self.$emit("addShuiKuSuccess");
  358. // }
  359. // });
  360. // } catch (e) {}
  361. } else if (_self.operationType1 == "update") {
  362. try{
  363. request.post('/bis/waga/safeManage/update',_self.formObj).then((res)=>{
  364. if (res.success) {
  365. _self.$message.success("修改成功");
  366. request.post("/att/waga/rgstr/update",_self.objtbStatu).then((res)=>{
  367. res;
  368. })
  369. _self.$emit("addShuiKuSuccess");
  370. }
  371. });
  372. } catch(e) {
  373. }
  374. // try {
  375. // request
  376. // .post("/bis/waga/safeManage/update", _self.formObj)
  377. // .then(res => {
  378. // if (res.success) {
  379. // _self.$message.success("修改成功");
  380. // _self.$emit("addShuiKuSuccess");
  381. // }
  382. // });
  383. // } catch (e) {}
  384. }
  385. })
  386. .catch(() => {});
  387. // this.$emit("cancelHandler");
  388. },
  389. cancelHandler() {
  390. this.$emit("cancelHandler");
  391. },
  392. formatRadio(val) {
  393. if (val == "1") {
  394. return "是";
  395. } else if (val == "0") {
  396. return "否";
  397. } else {
  398. return val;
  399. }
  400. },
  401. addProblem: function(pro) {
  402. let rules = this.szRuls;
  403. let rest = rules.filter(e => {
  404. return e.eName === pro;
  405. });
  406. this.problData = rest[0].id;
  407. //this.problData.attach = rest[0].bisInspItemQuesNumList[0].fileNum;
  408. //this.problData.sn = rest[0].bisInspItemQuesNumList[0].quesSn;
  409. this.showAddProblemDialog = true;
  410. },
  411. closePlDialog(val) {
  412. this.showAddProblemDialog = false;
  413. }
  414. }
  415. };
  416. </script>
  417. <style lang="scss" scoped>
  418. .slide-fade-enter-active {
  419. transition: all 0.3s ease;
  420. }
  421. .slide-fade-leave-active {
  422. transition: all 0.3s cubic-bezier(1, 0.5, 0.8, 1);
  423. }
  424. .slide-fade-enter, .slide-fade-leave-to
  425. /* .slide-fade-leave-active for below version 2.1.8 */ {
  426. transform: translateY(-10px);
  427. opacity: 0;
  428. }
  429. #dcdxHeader {
  430. padding: 15px 20px;
  431. }
  432. #dxdcFooter {
  433. text-align: center;
  434. }
  435. #dxdcAside {
  436. border: 1px solid #d5d5ff;
  437. }
  438. .el-dialog__wrapper .el-treeWhite {
  439. /* max-height: 260px !important; */
  440. }
  441. .zdlsqk .el-radio + .el-radio {
  442. //纵向radio处理
  443. margin-left: 0px;
  444. }
  445. .aqglpk .el-button--text {
  446. //添加问题小加号处理
  447. // margin-left: 1vw;
  448. font-size: 1rem;
  449. }
  450. .aqglpk .el-button--mini {
  451. //处理出现小加号后,选项上下抖动问题
  452. padding: 0px 0px;
  453. }
  454. </style>