a252eab62ddde7bc557720dc335bfdfd085fdffe.svn-base 18 KB

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