d3abc2d8f22239dab8d4275b754cf827769a018b.svn-base 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398
  1. <template>
  2. <div>
  3. <!-- <el-dialog :title="'责任人填报'" :visible.sync="dialogFormVisible"> -->
  4. <el-container style="height:520px;">
  5. <el-main style="border:1px solid #d5d5ff;margin-left:5px;padding:0px;">
  6. <el-form :model="formObj" :label-width="formLabelWidth" :rules="rules">
  7. <p style="margin-top:10px;margin-bottom: 10px;font-weight: bold;">
  8. <i class="left-vertical"></i>
  9. <span>安全生产主体责任人</span>
  10. <span class="hrs"></span>
  11. </p>
  12. <el-form-item label="主体责任已明确责任人" :required="true">
  13. <el-radio v-model="formObj.isMakDuty" label="1">是</el-radio>
  14. <el-radio v-model="formObj.isMakDuty" label="2">否</el-radio>
  15. <el-button
  16. @click="addProblem('isMakDuty',formObj.isMakDuty)"
  17. type="text"
  18. v-if="formObj.isMakDuty =='2'">
  19. <i class="el-icon-circle-plus add-problem-icon"></i>
  20. </el-button>
  21. <i @click="showPic('isMakDuty')" class="el-icon-camera-solid"></i>
  22. </el-form-item>
  23. <el-form-item label="主体责任人姓名" v-if="formObj.isMakDuty=='1'">
  24. <el-input v-model="formObj.makDutyName" autocomplete="off" style="width:50%"></el-input>
  25. </el-form-item>
  26. <el-form-item label="主体责任人手机" v-if="formObj.isMakDuty=='1'">
  27. <el-input v-model="formObj.makDutyTel" autocomplete="off" style="width:50%"></el-input>
  28. </el-form-item>
  29. <el-form-item label="主体责任人已公示" v-if="formObj.isMakDuty=='1'">
  30. <el-radio v-model="formObj.isDutyPub" label="1">是</el-radio>
  31. <el-radio v-model="formObj.isDutyPub" label="2">否</el-radio>
  32. <el-button
  33. @click="addProblem('isDutyPub',formObj.isDutyPub)"
  34. type="text"
  35. v-if="formObj.isDutyPub =='2'">
  36. <i class="el-icon-circle-plus add-problem-icon"></i>
  37. </el-button>
  38. <i @click="showPic('isDutyPub')" class="el-icon-camera-solid"></i>
  39. </el-form-item>
  40. <el-form-item label="主体责任人履责情况" v-if="formObj.isMakDuty=='1'">
  41. <el-radio v-model="formObj.isDutyNote" label="1">好</el-radio>
  42. <el-radio v-model="formObj.isDutyNote" label="2">存在一定问题</el-radio>
  43. <el-button
  44. @click="addProblem('isDutyNote',formObj.isDutyNote)"
  45. type="text"
  46. v-if="formObj.isDutyNote =='2'">
  47. <i class="el-icon-circle-plus add-problem-icon"></i>
  48. </el-button>
  49. <i @click="showPic('isDutyNote')" class="el-icon-camera-solid"></i>
  50. </el-form-item>
  51. <p style="margin-top:10px;margin-bottom: 10px;font-weight: bold;">
  52. <i class="left-vertical"></i>
  53. <span>安全生产监管责任人</span>
  54. <span class="hrs"></span>
  55. </p>
  56. <el-form-item label="监管责任已明确责任人" :required="true">
  57. <el-radio v-model="formObj.isRglDuty" label="1">是</el-radio>
  58. <el-radio v-model="formObj.isRglDuty" label="2">否</el-radio>
  59. <el-button
  60. @click="addProblem('isRglDuty',formObj.isRglDuty)"
  61. type="text"
  62. v-if="formObj.isRglDuty =='2'">
  63. <i class="el-icon-circle-plus add-problem-icon"></i>
  64. </el-button>
  65. <i @click="showPic('isRglDuty')" class="el-icon-camera-solid"></i>
  66. </el-form-item>
  67. <el-form-item label="监管责任人单位" v-if="formObj.isRglDuty=='1'">
  68. <el-input v-model="formObj.rglDutyDep" autocomplete="off" style="width:50%"></el-input>
  69. </el-form-item>
  70. <el-form-item label="监管责任人职务" v-if="formObj.isRglDuty=='1'">
  71. <el-input v-model="formObj.rglDutyPost" autocomplete="off" style="width:50%"></el-input>
  72. </el-form-item>
  73. <el-form-item label="监管责任人姓名" v-if="formObj.isRglDuty=='1'">
  74. <el-input v-model="formObj.rglDutyName" autocomplete="off" style="width:50%"></el-input>
  75. </el-form-item>
  76. <el-form-item label="监管责任人手机" v-if="formObj.isRglDuty=='1'">
  77. <el-input v-model="formObj.rglDutyTel" autocomplete="off" style="width:50%"></el-input>
  78. </el-form-item>
  79. <el-form-item label="监管责任人已公示" v-if="formObj.isRglDuty=='1'">
  80. <el-radio v-model="formObj.isRglPub" label="1">是</el-radio>
  81. <el-radio v-model="formObj.isRglPub" label="2">否</el-radio>
  82. <el-button
  83. @click="addProblem('isRglPub',formObj.isRglPub)"
  84. type="text"
  85. v-if="formObj.isRglPub =='2'">
  86. <i class="el-icon-circle-plus add-problem-icon"></i>
  87. </el-button>
  88. <i @click="showPic('isRglPub')" class="el-icon-camera-solid"></i>
  89. </el-form-item>
  90. <el-form-item label="监管责任人履责情况" v-if="formObj.isRglDuty=='1'">
  91. <el-radio v-model="formObj.isRglNote" label="1">好</el-radio>
  92. <el-radio v-model="formObj.isRglNote" label="2">存在一定问题</el-radio>
  93. <el-button
  94. @click="addProblem('isRglNote',formObj.isRglNote)"
  95. type="text"
  96. v-if="formObj.isRglNote =='2'">
  97. <i class="el-icon-circle-plus add-problem-icon"></i>
  98. </el-button>
  99. <i @click="showPic('isRglNote')" class="el-icon-camera-solid"></i>
  100. </el-form-item>
  101. <p style="margin-top:10px;margin-bottom: 10px;font-weight: bold;">
  102. <i class="left-vertical"></i>
  103. <span>安全生产行政责任人</span>
  104. <span class="hrs"></span>
  105. </p>
  106. <el-form-item label="行政责任已明确责任人" :required="true">
  107. <el-radio v-model="formObj.isAdmDuty" label="1">是</el-radio>
  108. <el-radio v-model="formObj.isAdmDuty" label="2">否</el-radio>
  109. <el-button
  110. @click="addProblem('isAdmDuty',formObj.isAdmDuty)"
  111. type="text"
  112. v-if="formObj.isAdmDuty =='2'">
  113. <i class="el-icon-circle-plus add-problem-icon"></i>
  114. </el-button>
  115. <i @click="showPic('isAdmDuty')" class="el-icon-camera-solid"></i>
  116. </el-form-item>
  117. <el-form-item label="行政责任人单位" v-if="formObj.isAdmDuty=='1'">
  118. <el-input v-model="formObj.admDutyDep" autocomplete="off" style="width:50%"></el-input>
  119. </el-form-item>
  120. <el-form-item label="行政责任人职务" v-if="formObj.isAdmDuty=='1'">
  121. <el-input v-model="formObj.admDutyPost" autocomplete="off" style="width:50%"></el-input>
  122. </el-form-item>
  123. <el-form-item label="行政责任人姓名" v-if="formObj.isAdmDuty=='1'">
  124. <el-input v-model="formObj.admDutyName" autocomplete="off" style="width:50%"></el-input>
  125. </el-form-item>
  126. <el-form-item label="行政责任人手机" v-if="formObj.isAdmDuty=='1'">
  127. <el-input v-model="formObj.admDutyTel" autocomplete="off" style="width:50%"></el-input>
  128. </el-form-item>
  129. <el-form-item label="行政责任人已公示" v-if="formObj.isAdmDuty=='1'">
  130. <el-radio v-model="formObj.isAdmPub" label="1">是</el-radio>
  131. <el-radio v-model="formObj.isAdmPub" label="2">否</el-radio>
  132. <el-button
  133. @click="addProblem('isAdmPub',formObj.isAdmPub)"
  134. type="text"
  135. v-if="formObj.isAdmPub =='2'">
  136. <i class="el-icon-circle-plus add-problem-icon"></i>
  137. </el-button>
  138. <i @click="showPic('isAdmPub')" class="el-icon-camera-solid"></i>
  139. </el-form-item>
  140. <el-form-item label="行政责任人履责情况" v-if="formObj.isAdmDuty=='1'">
  141. <el-radio v-model="formObj.isAdmNote" label="1">好</el-radio>
  142. <el-radio v-model="formObj.isAdmNote" label="2">存在一定问题</el-radio>
  143. <el-button
  144. @click="addProblem('isAdmNote',formObj.isAdmNote)"
  145. type="text"
  146. v-if="formObj.isAdmNote =='2'">
  147. <i class="el-icon-circle-plus add-problem-icon"></i>
  148. </el-button>
  149. <i @click="showPic('isAdmNote')" class="el-icon-camera-solid"></i>
  150. </el-form-item>
  151. <el-form-item label="">
  152. <el-button type="primary" @click="addHandler" v-if="openType">保 存</el-button>
  153. </el-form-item>
  154. </el-form>
  155. </el-main>
  156. <problem-dialog
  157. v-if="showAddProblemDialog && openType"
  158. :objType="116"
  159. :villType="116"
  160. :objId="currentObjectId"
  161. :objName="currentObjectName"
  162. :problemMiddleType="'小水电隐患管理'"
  163. :problData="probId"
  164. @closeDialog="closePlDialog"
  165. :currentObjectRgstrId="currentObjectRgstrId"
  166. ></problem-dialog>
  167. <add-pic-com v-if="jqmmDialogShow" :dialogTitle="'相关材料'" :jqmmEngId="id" :type="type" :openType="openType" @jqmmDialogClose="jqmmDialogClose"></add-pic-com>
  168. </el-container>
  169. </div>
  170. </template>
  171. <script>
  172. import inputWith from "@widget/inuptWith.vue"
  173. import problemDialog from "../../duChaWenTi/problemDialog.vue";
  174. import addPicCom from "./addPic.vue"
  175. import request from "@util/gw_ajax_request.js"
  176. import {getDutyStat} from "@api/duChaTianBao.js"
  177. import {formatDateTimeD} from "@util/gw_date.js"
  178. export default {
  179. components: {
  180. inputWith: inputWith,
  181. problemDialog,
  182. addPicCom
  183. },
  184. props: ['currentObjectId','currentObjectName','currentObjectRgstrId','openType'],
  185. data() {
  186. var checkTel = (rule, value, callback) => {
  187. var isPhone = /^([0-9]{3,4}-)?[0-9]{7,8}$/;//座机
  188. var isMob= /^[1][3,4,5,7,8][0-9]{9}$/;// 座机格式
  189. if (value&&!isMob.test(value)&&!isPhone.test(value)) {
  190. callback(new Error('请输入合理电话'));
  191. } else if(value&&(isMob.test(value)||isPhone.test(value))){
  192. callback();
  193. }
  194. // setTimeout(() => {
  195. // }, 1000);
  196. };
  197. return {
  198. id:"",
  199. objtbStatu:{
  200. wtuntStat:"",
  201. rgstrId:"",
  202. id:"",
  203. state:""
  204. },
  205. rules:{
  206. wiunWaoLegPersTel:[
  207. { validator: checkTel,trigger: 'blur' }
  208. ],
  209. techPersTel:[
  210. { validator: checkTel,trigger: 'blur' }
  211. ],
  212. patrolPersTel:[
  213. { validator: checkTel,trigger: 'blur' }
  214. ],
  215. },
  216. jqmmDialogShow: false,
  217. type: '',
  218. formObj: {
  219. isMakDuty:"",
  220. rglDutyPost:"",
  221. makDutyName:"",
  222. makDutyTel:"",
  223. isDutyPub:"",
  224. isDutyNote:"",
  225. isRglDuty:"",
  226. rglDutyDep:"",
  227. rglDutyName:"",
  228. rglDutyTel:"",
  229. isRglPub:"",
  230. isRglNote:"",
  231. isAdmDuty:"",
  232. admDutyDep:"",
  233. admDutyName:"",
  234. admDutyPost:"",
  235. admDutyTel:"",
  236. isAdmPub:"",
  237. isAdmNote:""
  238. },
  239. dialogFormVisible: false,
  240. formLabelWidth: '400px',
  241. loading: true,
  242. operationType1:'',
  243. rsvrRules: null,
  244. probId: '',
  245. showAddProblemDialog: false
  246. }
  247. },
  248. computed:{
  249. recPersId(){
  250. return localStorage.getItem("userid")? localStorage.getItem("userid"): ''
  251. }
  252. },
  253. created(){
  254. this.findItemByType()
  255. },
  256. mounted() {
  257. this.getRgstridObj();
  258. },
  259. watch: {
  260. currentObjectRgstrId(n,o){
  261. this.getRgstridObj();
  262. },
  263. },
  264. methods: {
  265. jqmmDialogClose() {
  266. this.jqmmDialogShow = false;
  267. },
  268. showPic(type){
  269. this.type = type
  270. this.jqmmDialogShow = true
  271. },
  272. getRgstridObj(){
  273. var _self = this;
  274. getDutyStat(_self.currentObjectRgstrId).then((res)=>{
  275. _self.formObj = res.data;
  276. _self.id = res.data.id;
  277. });
  278. },
  279. addHandler(){
  280. var _self = this;
  281. _self.formObj['rgstrId'] = _self.currentObjectRgstrId;
  282. _self.formObj['recPersId'] = _self.recPersId;
  283. if(
  284. !this.formObj.isMakDuty &&
  285. !this.formObj.isRglDuty &&
  286. !this.formObj.isAdmDuty
  287. ){
  288. this.formObj.state = "0"
  289. }else if(
  290. this.formObj.isMakDuty &&
  291. this.formObj.isRglDuty &&
  292. this.formObj.isAdmDuty
  293. ){
  294. this.formObj.state = "2";
  295. }else{
  296. this.formObj.state = "1"
  297. }
  298. this.$confirm('确认保存现场督查情况信息?', '提示', {
  299. confirmButtonText: '确定',
  300. cancelButtonText: '取消',
  301. type: 'warning'
  302. })
  303. .then(() => {
  304. try{
  305. request.post('/bis/insp/hystp/duty/',_self.formObj).then((res)=>{
  306. if (res.success) {
  307. _self.$message.success("修改成功");
  308. _self.$emit("addShuiKuSuccess");
  309. }
  310. });
  311. } catch(e) {
  312. }
  313. })
  314. .catch(() => {
  315. });
  316. },
  317. cancelHandler(){
  318. this.$emit('cancelHandler');
  319. },
  320. findItemByType(){
  321. const obj ={
  322. tname: "BIS_INSP_HYSTP_DUTY",
  323. }
  324. request.post("/bis/insp/item/ques/info/findItemByType",obj).then(res =>{
  325. this.rsvrRules = res.data;
  326. })
  327. },
  328. addProblem(item,iValue){
  329. let rest = this.rsvrRules.filter(e => {
  330. return e.iValue === iValue && e.eName === item;
  331. });
  332. if (rest[0]){
  333. this.probId = rest[0].id;
  334. }
  335. this.showAddProblemDialog = true;
  336. },
  337. formatRadio(val){
  338. if(val == '1'){
  339. return '是'
  340. }else if(val == '2'){
  341. return '否'
  342. }else{
  343. return val
  344. }
  345. },
  346. closePlDialog(val) {
  347. this.showAddProblemDialog = false;
  348. }
  349. },
  350. }
  351. </script>
  352. <style scoped>
  353. #dcdxHeader {
  354. padding: 15px 20px;
  355. }
  356. #dxdcFooter {
  357. text-align: center;
  358. }
  359. #dxdcAside {
  360. border:1px solid #d5d5ff;
  361. }
  362. .el-dialog__wrapper .el-treeWhite{
  363. /* max-height: 260px !important; */
  364. }
  365. .left-vertical {
  366. width: 8px;
  367. height: 24px;
  368. background: #00b0f0;
  369. display: inline-block;
  370. vertical-align: bottom;
  371. }
  372. .add-problem-icon{
  373. font-size: 16px;
  374. }
  375. .el-icon-camera-solid,.el-icon-circle-plus{
  376. margin-left: 20px;
  377. color: #00bbff;
  378. font-size: 18px;
  379. line-height: 12px;
  380. vertical-align: middle;
  381. cursor: pointer;
  382. }
  383. .el-icon-circle-plus{
  384. vertical-align: top;
  385. }
  386. </style>