55512d7c9ce7e8e36f785ec5f0c0fcecf28b4758.svn-base 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357
  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. <p style="font-weight:bolder;background-color:#d5d5ff;padding:3px;">信息填报</p>
  7. <el-form :model="formObj" :label-width="formLabelWidth" :rules="rules">
  8. <p style="margin-top:10px;margin-bottom: 10px;color:red"><i class="el-icon-caret-right"></i><span
  9. style="width:120px;padding-left: 10px">政府责任人</span><span class="hrs"></span></p>
  10. <el-form-item label="是否有政府责任人" :required="true">
  11. <el-radio v-model="formObj.isGovPers" label="1">是</el-radio>
  12. <el-radio v-model="formObj.isGovPers" label="2">否</el-radio>
  13. <el-button @click="addProblem('isGovPers')" type="text" v-if="formObj.isGovPers =='2'">
  14. <i class="el-icon-circle-plus add-problem-icon"></i>
  15. </el-button>
  16. </el-form-item>
  17. <el-form-item label="政府责任人姓名" v-if="formObj.isGovPers == '1'">
  18. <el-input v-model="formObj.govPers" autocomplete="off" style="width:70%;"></el-input>
  19. </el-form-item>
  20. <el-form-item label="政府责任人电话" prop="govPersTel" v-if="formObj.isGovPers == '1'">
  21. <el-input v-model="formObj.govPersTel" autocomplete="off" style="width:70%;"></el-input>
  22. </el-form-item>
  23. <el-form-item label="政府责任人职务" v-if="formObj.isGovPers == '1'">
  24. <el-input v-model="formObj.govPersDuty" autocomplete="off" style="width:70%;"></el-input>
  25. </el-form-item>
  26. <el-form-item label="政府责任人是否接受岗位培训" :required="true" v-if="formObj.isGovPers == '1'">
  27. <el-radio v-model="formObj.govPersTrain" label="1">是</el-radio>
  28. <el-radio v-model="formObj.govPersTrain" label="2">否</el-radio>
  29. <el-button @click="addProblem('govPersTrain')" type="text" v-if="formObj.govPersTrain =='2'">
  30. <i class="el-icon-circle-plus add-problem-icon"></i>
  31. </el-button>
  32. </el-form-item>
  33. <el-form-item label="政府责任人履职情况" v-if="formObj.isGovPers == '1'">
  34. <el-radio v-model="formObj.govPersResu" label="1">好</el-radio>
  35. <el-radio v-model="formObj.govPersResu" label="2">基本到位</el-radio>
  36. <el-radio v-model="formObj.govPersResu" label="3">差</el-radio>
  37. <el-button @click="addProblem('govPersResu')" type="text" v-if="formObj.govPersResu =='3'">
  38. <i class="el-icon-circle-plus add-problem-icon"></i>
  39. </el-button>
  40. </el-form-item>
  41. <p style="margin-top:10px;margin-bottom: 10px;color:red"><i class="el-icon-caret-right"></i><span
  42. style="width:120px;padding-left: 10px">主管部门责任人</span><span class="hrs"></span></p>
  43. <el-form-item label="是否主管部门责任人" :required="true">
  44. <el-radio v-model="formObj.isDutyPers" label="1">是</el-radio>
  45. <el-radio v-model="formObj.isDutyPers" label="2">否</el-radio>
  46. <el-button @click="addProblem('isDutyPers')" type="text" v-if="formObj.isDutyPers =='2'">
  47. <i class="el-icon-circle-plus add-problem-icon"></i>
  48. </el-button>
  49. </el-form-item>
  50. <el-form-item label="主管部门责任人姓名" v-if="formObj.isDutyPers == '1'">
  51. <el-input v-model="formObj.dutyPers" autocomplete="off" style="width:70%;"></el-input>
  52. </el-form-item>
  53. <el-form-item label="主管部门责任人电话" prop="techPersTel" v-if="formObj.isDutyPers == '1'">
  54. <el-input v-model="formObj.dutyPersTel" autocomplete="off" style="width:70%;"></el-input>
  55. </el-form-item>
  56. <el-form-item label="主管部门责任人职务" v-if="formObj.isDutyPers == '1'">
  57. <el-input v-model="formObj.dutyPersDuty" autocomplete="off" style="width:70%;"></el-input>
  58. </el-form-item>
  59. <el-form-item label="主管部门责任人是否接受岗位培训" :required="true" v-if="formObj.isDutyPers == '1'">
  60. <el-radio v-model="formObj.dutyPersTrain" label="1">是</el-radio>
  61. <el-radio v-model="formObj.dutyPersTrain" label="2">否</el-radio>
  62. <el-button @click="addProblem('dutyPersTrain')" type="text" v-if="formObj.dutyPersTrain =='2'">
  63. <i class="el-icon-circle-plus add-problem-icon"></i>
  64. </el-button>
  65. </el-form-item>
  66. <el-form-item label="主管部门责任人履职情况" v-if="formObj.isDutyPers == '1'">
  67. <el-radio v-model="formObj.dutyPersResu" label="1">好</el-radio>
  68. <el-radio v-model="formObj.dutyPersResu" label="2">基本到位</el-radio>
  69. <el-radio v-model="formObj.dutyPersResu" label="3">差</el-radio>
  70. <el-button @click="addProblem('dutyPersResu')" type="text" v-if="formObj.dutyPersResu =='3'">
  71. <i class="el-icon-circle-plus add-problem-icon"></i>
  72. </el-button>
  73. </el-form-item>
  74. <p style="margin-top:10px;margin-bottom: 10px;color:red"><i class="el-icon-caret-right"></i><span
  75. style="width:120px;padding-left: 10px">管理单位责任人</span><span class="hrs"></span></p>
  76. <el-form-item label="是否有管理单位责任人" :required="true">
  77. <el-radio v-model="formObj.isMngPers" label="1">是</el-radio>
  78. <el-radio v-model="formObj.isMngPers" label="2">否</el-radio>
  79. <el-button @click="addProblem('isMngPers')" type="text" v-if="formObj.isMngPers =='2'">
  80. <i class="el-icon-circle-plus add-problem-icon"></i>
  81. </el-button>
  82. </el-form-item>
  83. <el-form-item label="管理单位责任人姓名" v-if="formObj.isMngPers == '1'">
  84. <el-input v-model="formObj.mngPers" autocomplete="off" style="width:70%;"></el-input>
  85. </el-form-item>
  86. <el-form-item label="管理单位责任人电话" prop="patrolPersTel" v-if="formObj.isMngPers == '1'">
  87. <el-input v-model="formObj.mngPersTel" autocomplete="off" style="width:70%;"></el-input>
  88. </el-form-item>
  89. <el-form-item label="管理单位责任人职务" v-if="formObj.isMngPers == '1'">
  90. <el-input v-model="formObj.mngPersDuty" autocomplete="off" style="width:70%;"></el-input>
  91. </el-form-item>
  92. <el-form-item label="管理单位责任人是否接受岗位培训" :required="true" v-if="formObj.isMngPers == '1'">
  93. <el-radio v-model="formObj.mngPersTrain" label="1">是</el-radio>
  94. <el-radio v-model="formObj.mngPersTrain" label="2">否</el-radio>
  95. <el-button @click="addProblem('mngPersTrain')" type="text" v-if="formObj.mngPersTrain =='2'">
  96. <i class="el-icon-circle-plus add-problem-icon"></i>
  97. </el-button>
  98. </el-form-item>
  99. <el-form-item label="管理单位责任人履职情况" v-if="formObj.isMngPers == '1'">
  100. <el-radio v-model="formObj.mngPersResu" label="1">好</el-radio>
  101. <el-radio v-model="formObj.mngPersResu" label="2">基本到位</el-radio>
  102. <el-radio v-model="formObj.mngPersResu" label="3">较差</el-radio>
  103. <el-button @click="addProblem('mngPersResu')" type="text" v-if="formObj.mngPersResu =='3'">
  104. <i class="el-icon-circle-plus add-problem-icon"></i>
  105. </el-button>
  106. </el-form-item>
  107. <el-form-item label="">
  108. <el-button type="primary" @click="addHandler">保 存</el-button>
  109. </el-form-item>
  110. </el-form>
  111. </el-main>
  112. <problem-dialog v-if="showAddProblemDialog" :objType="22" :villType="0" :objId="currentObjectId"
  113. :objName="currentObjectName" :problemMiddleType="'小水库'" :problData="probId" @closeDialog="closePlDialog"
  114. :currentObjectRgstrId="currentObjectRgstrId"></problem-dialog>
  115. </el-container>
  116. </div>
  117. </template>
  118. <script>
  119. import inputWith from "@widget/inuptWith.vue"
  120. import problemDialog from "../../duChaWenTi/problemDialog.vue";
  121. import request from "@util/gw_ajax_request.js"
  122. import { getAqglZrrDskRgstrId, addBasePres } from "@api/duChaTianBao.js"
  123. import { formatDateTimeD } from "@util/gw_date.js"
  124. export default {
  125. components: {
  126. inputWith: inputWith,
  127. problemDialog
  128. },
  129. props: ['currentObjectId', 'currentObjectName', 'currentObjectRgstrId'],
  130. data() {
  131. var checkTel = (rule, value, callback) => {
  132. var isPhone = /^([0-9]{3,4}-)?[0-9]{7,8}$/;//座机
  133. var isMob = /^[1][3,4,5,7,8][0-9]{9}$/;// 座机格式
  134. if (value && !isMob.test(value) && !isPhone.test(value)) {
  135. callback(new Error('请输入合理电话'));
  136. } else if (value && (isMob.test(value) || isPhone.test(value))) {
  137. callback();
  138. }
  139. // setTimeout(() => {
  140. // }, 1000);
  141. };
  142. return {
  143. objtbStatu: {
  144. safeStat: "",
  145. rgstrId: "",
  146. },
  147. rules: {
  148. wiunWaoLegPersTel: [
  149. { validator: checkTel, trigger: 'blur' }
  150. ],
  151. techPersTel: [
  152. { validator: checkTel, trigger: 'blur' }
  153. ],
  154. patrolPersTel: [
  155. { validator: checkTel, trigger: 'blur' }
  156. ],
  157. },
  158. formObj: {
  159. id: "",
  160. isGovPers: "",
  161. govPers: "",
  162. govPersTel: "",
  163. govPersDuty: "",
  164. govPersTrain: "",
  165. govPersResu: "",
  166. isDutyPers: "",
  167. dutyPers: "",
  168. dutyPersTel: "",
  169. dutyPersDuty: "",
  170. dutyPersTrain: "",
  171. dutyPersResu: "",
  172. isMngPers: "",
  173. mngPers: "",
  174. mngPersTel: "",
  175. mngPersDuty: "",
  176. mngPersTrain: "",
  177. mngPersResu: ""
  178. },
  179. dialogFormVisible: false,
  180. formLabelWidth: '180px',
  181. loading: true,
  182. operationType1: '',
  183. rsvrRules: null,
  184. probId: '',
  185. showAddProblemDialog: false
  186. }
  187. },
  188. computed: {
  189. recPersId() {
  190. return localStorage.getItem("userid") ? localStorage.getItem("userid") : ''
  191. },
  192. currentRlcode() {
  193. return localStorage.getItem('currentRlcode') || ''
  194. }
  195. },
  196. created() {
  197. this.findItemByType()
  198. },
  199. mounted() {
  200. this.getRgstridObj();
  201. },
  202. watch: {
  203. currentObjectRgstrId(n, o) {
  204. this.getRgstridObj();
  205. },
  206. },
  207. methods: {
  208. getRgstridObj() {
  209. var _self = this;
  210. getAqglZrrDskRgstrId(_self.currentObjectRgstrId).then((res) => {
  211. if (res.data && Object.keys(res.data).length) {
  212. _self.formObj = res.data;
  213. if (res.data.id != null) {
  214. _self.operationType1 = 'update';
  215. } else {
  216. _self.operationType1 = 'add';
  217. }
  218. } else {
  219. // 如果信息未填报,则赋默认值
  220. _self.setInitValue()
  221. _self.operationType1 = 'add';
  222. }
  223. });
  224. },
  225. addHandler() {
  226. var _self = this;
  227. _self.formObj['rgstrId'] = _self.currentObjectRgstrId;
  228. _self.formObj['recPersId'] = _self.recPersId;
  229. console.log(_self.formObj);
  230. _self.objtbStatu.rgstrId = _self.currentObjectRgstrId;
  231. if (_self.formObj.isGovPers != "" && _self.formObj.isDutyPers != "" && _self.formObj.isMngPers != "") {
  232. this.objtbStatu.safeStat = "2"
  233. } else if (_self.formObj.isGovPers == "" && _self.formObj.isDutyPers == "" && _self.formObj.isMngPers == "") {
  234. this.objtbStatu.safeStat = "0"
  235. } else {
  236. this.objtbStatu.safeStat = "1"
  237. }
  238. this.$confirm('确认保存安全管理三级责任人信息?', '提示', {
  239. confirmButtonText: '确定',
  240. cancelButtonText: '取消',
  241. type: 'warning'
  242. })
  243. .then(() => {
  244. if (_self.operationType1 == 'add') {
  245. try {
  246. request.post('/bis/insp/rsml/rgstr/safe', _self.formObj).then((res) => {
  247. if (res.success) {
  248. _self.$message.success("添加成功");
  249. request.post("/dc/insp/rsvrRgstr/update", _self.objtbStatu).then((res) => {
  250. res;
  251. })
  252. _self.$emit("addShuiKuSuccess");
  253. }
  254. });
  255. } catch (e) {
  256. }
  257. } else if (_self.operationType1 == 'update') {
  258. try {
  259. request.post('/bis/insp/rsml/rgstr/safe', _self.formObj).then((res) => {
  260. if (res.success) {
  261. _self.$message.success("修改成功");
  262. request.post("/dc/insp/rsvrRgstr/update", _self.objtbStatu).then((res) => {
  263. res;
  264. })
  265. _self.$emit("addShuiKuSuccess");
  266. }
  267. });
  268. } catch (e) {
  269. }
  270. }
  271. })
  272. .catch(() => {
  273. });
  274. },
  275. cancelHandler() {
  276. this.$emit('cancelHandler');
  277. },
  278. findItemByType() {
  279. const obj = {
  280. tname: "BIS_INSP_RSML_RGSTR_SAFE",
  281. type: 22
  282. }
  283. request.post("/bis/insp/item/ques/info/findItemByType", obj).then(res => {
  284. this.rsvrRules = res.data;
  285. })
  286. },
  287. addProblem(item) {
  288. let rest = this.rsvrRules.filter(e => {
  289. return e.eName === item;
  290. });
  291. this.probId = rest[0].id;
  292. this.showAddProblemDialog = true
  293. },
  294. formatRadio(val) {
  295. if (val == '1') {
  296. return '是'
  297. } else if (val == '2') {
  298. return '否'
  299. } else {
  300. return val
  301. }
  302. },
  303. closePlDialog(val) {
  304. this.showAddProblemDialog = false;
  305. },
  306. // 初始化赋值
  307. setInitValue() {
  308. if (this.currentRlcode.indexOf('63') == '0') { //青海省小水库
  309. this.formObj['isGovPers'] = '1'
  310. this.formObj['govPersTrain'] = '1'
  311. this.formObj['govPersResu'] = '1'
  312. this.formObj['isDutyPers'] = '1'
  313. this.formObj['dutyPersTrain'] = '1'
  314. this.formObj['dutyPersResu'] = '1'
  315. this.formObj['isMngPers'] = '1'
  316. this.formObj['mngPersTrain'] = '1'
  317. this.formObj['mngPersResu'] = '1'
  318. } else {
  319. this.formObj = {};
  320. }
  321. }
  322. },
  323. }
  324. </script>
  325. <style>
  326. #dcdxHeader {
  327. padding: 15px 20px;
  328. }
  329. #dxdcFooter {
  330. text-align: center;
  331. }
  332. #dxdcAside {
  333. border: 1px solid #d5d5ff;
  334. }
  335. .el-dialog__wrapper .el-treeWhite {
  336. /* max-height: 260px !important; */
  337. }
  338. .add-problem-icon {
  339. font-size: 16px;
  340. }
  341. </style>