62e14390ca370a9d90728e6775a617e1fccf943e.svn-base 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564
  1. <template>
  2. <el-container style="height:520px;" class="xsdstll_wrapper">
  3. <el-main style="border:1px solid #d5d5ff;margin-left:5px;padding:0px;">
  4. <el-form :model="addObj" :label-width="formLabelWidth" ref="ruleForm" :disabled="ifDisabled">
  5. <p style="margin-top:10px;margin-bottom: 10px">
  6. <i class="left-vertical"></i>
  7. <span style="width:120px;padding-left: 10px">生态流量情况</span>
  8. <span class="hrs"></span>
  9. </p>
  10. <el-form-item label="是否泄放生态流量">
  11. <el-radio v-model="addObj.isRuleDef" label="1">已泄放</el-radio>
  12. <el-radio v-model="addObj.isRuleDef" label="2">无要求</el-radio>
  13. <el-radio v-model="addObj.isRuleDef" label="3">有要求但未泄放</el-radio>
  14. <el-button
  15. @click="addProblemList('isRuleDef')"
  16. type="text"
  17. v-if="addObj.isRuleDef =='3'">
  18. <i class="el-icon-circle-plus add-problem-icon"></i>
  19. </el-button>
  20. </el-form-item>
  21. <el-form-item label="生态流量核定文件">
  22. <el-radio v-model="addObj.isHasEfvd" label="1">有</el-radio>
  23. <el-radio v-model="addObj.isHasEfvd" label="2">无</el-radio>
  24. <el-button
  25. @click="addProblemList('isHasEfvd')"
  26. type="text"
  27. v-if="addObj.isHasEfvd =='2'">
  28. <i class="el-icon-circle-plus add-problem-icon"></i>
  29. </el-button>
  30. <i @click="showPic('isHasEfvd')" class="el-icon-camera-solid"></i>
  31. </el-form-item>
  32. <el-form-item label="生态流量泄放设施类型">
  33. <el-select v-model="addObj.edfType" clearable multiple placeholder="请选择">
  34. <el-option v-for="item in stllxfssOption" :key="item.value" :label="item.label"
  35. :value="item.value"></el-option>
  36. </el-select>
  37. <span class="span200" v-if="addObj.edfType">
  38. <el-input placeholder="请输入" v-model="addObj.edfTypeOther" v-if="addObj.edfType.indexOf('6') > - 1"
  39. class="input50"></el-input>
  40. </span>
  41. <i @click="showPic('edfType')" class="el-icon-camera-solid"></i>
  42. </el-form-item>
  43. <el-form-item label="有节制泄流,是否有流量监测设施">
  44. <el-radio v-model="addObj.isHasFmf" label="1">是</el-radio>
  45. <el-radio v-model="addObj.isHasFmf" label="2">否</el-radio>
  46. <el-button
  47. @click="addProblemList('isHasFmf')"
  48. type="text"
  49. v-if="addObj.isHasFmf =='2'">
  50. <i class="el-icon-circle-plus add-problem-icon"></i>
  51. </el-button>
  52. <i @click="showPic('isHasFmf')" class="el-icon-camera-solid"></i>
  53. </el-form-item>
  54. <el-form-item label="无节制泄流,是否有视频或流量监测设施">
  55. <el-radio v-model="addObj.isHasVotmf" label="1">是</el-radio>
  56. <el-radio v-model="addObj.isHasVotmf" label="2">否</el-radio>
  57. <el-button
  58. @click="addProblemList('isHasVotmf')"
  59. type="text"
  60. v-if="addObj.isHasVotmf =='2'">
  61. <i class="el-icon-circle-plus add-problem-icon"></i>
  62. </el-button>
  63. <i @click="showPic('isHasVotmf')" class="el-icon-camera-solid"></i>
  64. </el-form-item>
  65. <el-form-item label="生态流量监测设施">
  66. <el-select v-model="addObj.efmfType" clearable multiple placeholder="请选择">
  67. <el-option v-for="item in stlxjcssOption" :key="item.value" :label="item.label"
  68. :value="item.value"></el-option>
  69. </el-select>
  70. <!--<br>-->
  71. <!--<span class="span200">与“一站一策”方案是否一致</span>-->
  72. <!--<el-radio v-model="addObj.efmfIsWiicwtosopp" label="1">是</el-radio>-->
  73. <!--<el-radio v-model="addObj.efmfIsWiicwtosopp" label="2">否</el-radio>-->
  74. <!--<el-button-->
  75. <!--@click="addProblemList('efmfIsWiicwtosopp')"-->
  76. <!--type="text"-->
  77. <!--v-if="addObj.efmfIsWiicwtosopp =='2'">-->
  78. <!--<i class="el-icon-circle-plus add-problem-icon"></i>-->
  79. <!--</el-button>-->
  80. <br>
  81. <span class="span200">监测数据是否接入平台</span>
  82. <el-radio v-model="addObj.mdataIsAttp" label="1">是</el-radio>
  83. <el-radio v-model="addObj.mdataIsAttp" label="2">否</el-radio>
  84. <el-button
  85. @click="addProblemList('mdataIsAttp')"
  86. type="text"
  87. v-if="addObj.mdataIsAttp =='2'">
  88. <i class="el-icon-circle-plus add-problem-icon"></i>
  89. </el-button>
  90. <i @click="showPic('mdataIsAttp')" class="el-icon-camera-solid"></i>
  91. <br>
  92. <span class="span200">是否持续正常运行</span>
  93. <el-radio v-model="addObj.isRun" label="1">是</el-radio>
  94. <el-radio v-model="addObj.isRun" label="2">否</el-radio>
  95. <el-button
  96. @click="addProblemList('isRun')"
  97. type="text"
  98. v-if="addObj.isRun =='2'">
  99. <i class="el-icon-circle-plus add-problem-icon"></i>
  100. </el-button>
  101. </el-form-item>
  102. <p style="margin-top:10px;margin-bottom: 10px">
  103. <i class="left-vertical"></i>
  104. <span style="width:120px;padding-left: 10px">手续完善情况</span>
  105. <span class="hrs"></span>
  106. </p>
  107. <el-form-item label="立项审批(核准)手续完善">
  108. <el-radio v-model="addObj.paapIsPfct" label="1">是</el-radio>
  109. <el-radio v-model="addObj.paapIsPfct" label="2">否</el-radio>
  110. <el-button
  111. @click="addProblemList('paapIsPfct')"
  112. type="text"
  113. v-if="addObj.paapIsPfct =='2'">
  114. <i class="el-icon-circle-plus add-problem-icon"></i>
  115. </el-button>
  116. </el-form-item>
  117. <el-form-item label="环评手续完善">
  118. <el-radio v-model="addObj.tepIsPfct" label="1">是</el-radio>
  119. <el-radio v-model="addObj.tepIsPfct" label="2">否</el-radio>
  120. <el-button
  121. @click="addProblemList('tepIsPfct')"
  122. type="text"
  123. v-if="addObj.tepIsPfct =='2'">
  124. <i class="el-icon-circle-plus add-problem-icon"></i>
  125. </el-button>
  126. </el-form-item>
  127. <el-form-item label="水资源论证(取水许可)手续完善">
  128. <el-radio v-model="addObj.wrcwlpIsPfct" label="1">是</el-radio>
  129. <el-radio v-model="addObj.wrcwlpIsPfct" label="2">否</el-radio>
  130. <el-button
  131. @click="addProblemList('wrcwlpIsPfct')"
  132. type="text"
  133. v-if="addObj.wrcwlpIsPfct =='2'">
  134. <i class="el-icon-circle-plus add-problem-icon"></i>
  135. </el-button>
  136. </el-form-item>
  137. <el-form-item label="土地预审手续完善">
  138. <el-radio v-model="addObj.lpepIsPfct" label="1">是</el-radio>
  139. <el-radio v-model="addObj.lpepIsPfct" label="2">否</el-radio>
  140. <el-button
  141. @click="addProblemList('lpepIsPfct')"
  142. type="text"
  143. v-if="addObj.lpepIsPfct =='2'">
  144. <i class="el-icon-circle-plus add-problem-icon"></i>
  145. </el-button>
  146. </el-form-item>
  147. <el-form-item label="林地征(占、租)用手续完善">
  148. <el-radio v-model="addObj.feolpIsPfct" label="1">是</el-radio>
  149. <el-radio v-model="addObj.feolpIsPfct" label="2">否</el-radio>
  150. <el-button
  151. @click="addProblemList('feolpIsPfct')"
  152. type="text"
  153. v-if="addObj.feolpIsPfct =='2'">
  154. <i class="el-icon-circle-plus add-problem-icon"></i>
  155. </el-button>
  156. </el-form-item>
  157. <el-form-item label="竣工验收手续完善">
  158. <el-radio v-model="addObj.capIsPfct" label="1">是</el-radio>
  159. <el-radio v-model="addObj.capIsPfct" label="2">否</el-radio>
  160. </el-form-item>
  161. <el-form-item label>
  162. <el-button type="primary" @click="makesure">保 存</el-button>
  163. </el-form-item>
  164. </el-form>
  165. </el-main>
  166. <problem-list
  167. v-if="showProblemList"
  168. :currentObjectId="currentObjectId"
  169. :currentObjectName="currentObjectName"
  170. :problemMiddleType="'小水电'"
  171. :problData="probId"
  172. @dialogFormVisible="getdialogFormVisible"
  173. :currentObjectRgstrId="currentObjectRgstrId"
  174. :rowData="rowData"
  175. :projectName="rowData.hystName"
  176. ></problem-list>
  177. <add-pic-com v-if="jqmmDialogShow" :dialogTitle="'佐证材料'" :jqmmEngId="rowData.id" :type="type"
  178. @jqmmDialogClose="jqmmDialogClose"></add-pic-com>
  179. </el-container>
  180. </template>
  181. <script>
  182. import request from "@util/gw_ajax_request.js";
  183. import {getHystRectInfoApi} from '@api/duChaTianBao.js'
  184. import unlimitDatePicker from '@baseWidget/unLimitdatePicker.vue'
  185. import problemList from '../../../addProlemMidForm/xiaoshuidianProblemList'
  186. import {hostUrl} from '@util/global_variable'
  187. import addPicCom from "../../../duChaTianBao/xiaoshuidian/addPic.vue";
  188. export default {
  189. components: {
  190. unlimitDatePicker,
  191. problemList,
  192. addPicCom
  193. },
  194. props: ['currentObjectId', 'currentObjectName', 'currentObjectRgstrId', 'currentResCode', 'rowData', 'ifDisabled'],
  195. data() {
  196. var checkTel = (rule, value, callback) => {
  197. if (value == '') {
  198. callback();
  199. }
  200. var isPhone = /^([0-9]{3,4}-)?[0-9]{7,8}$/; //座机
  201. var isPhoneNum = /^([0-9]{3,4})?[0-9]{7,8}$/; //座机
  202. var isMob = /^[1][3,4,5,6,7,8,9][0-9]{9}$/; // 手机号格式
  203. if (!isMob.test(value) && !isPhone.test(value) && !isPhoneNum.test(value)) {
  204. callback(new Error('请输入合理电话'));
  205. } else {
  206. callback();
  207. }
  208. };
  209. return {
  210. dialogFormVisible: false,
  211. formLabelWidth: "300px",
  212. loading: true,
  213. addObj: {
  214. isHasEfvd: '',//有无生态流量核定文件(1:有;2:无;) ,
  215. isHasEdf: '',//是否有生态流量泄放设施(1:有;2:无;) ,
  216. edfIsWiicwtosopp: '',//生态流量泄放设施与“一站一策”方案是否一致(1:一致;2:不一致;) ,
  217. edfType: '',//生态流量泄放设施类型(1:泄流孔;2:泄流阀;3:泄流闸;4:虹吸管;5:生态机组;6:其他) ,
  218. edfTypeOther: '',//生态流量泄放设施其他类型 ,
  219. edfIsHas: '',//生态流量泄放设施(1:要求有而实际没有;2:没有要求;) ,
  220. isRuleDef: '',//是否按规定泄放生态流量(1:是;2:否;) ,
  221. isHasFmf: '',//有节制泄流,是否有流量监测设施(1:是;2:否;) ,
  222. isHasVotmf: '',//无节制泄流,是否有视频或流量监测设施 ,
  223. efmfType: '',//生态流量监测设施类型 ,
  224. efmfIsWiicwtosopp: '',//生态流量监测设施与“一站一策”方案是否一致 ,
  225. mdataIsAttp: '',//监测数据是否接入平台 ,
  226. isRun: '',//是否持续正常运行 ,
  227. paapIsPfct: '',//立项审批(核准)手续是否完善 ,
  228. tepIsPfct: '',//环评手续是否完善 ,
  229. wrcwlpIsPfct: '',//水资源论证(取水许可)手续是否完善 ,
  230. lpepIsPfct: '',//土地预审手续是否完善 ,
  231. feolpIsPfct: '',//林地征(占、租)用手续是否完善 ,
  232. capIsPfct: '',//竣工验收手续是否完善 ,
  233. note: '',//备注
  234. },
  235. stllxfssOption: [
  236. {
  237. label: "泄流孔",
  238. value: "1"
  239. },
  240. {
  241. label: "泄流阀",
  242. value: "2"
  243. },
  244. {
  245. label: "泄流闸",
  246. value: "3"
  247. },
  248. {
  249. label: "虹吸管",
  250. value: "4"
  251. },
  252. {
  253. label: "生态机组",
  254. value: "5"
  255. },
  256. {
  257. label: "其他",
  258. value: "6"
  259. }
  260. ],
  261. stlxjcssOption: [
  262. {
  263. label: "实时数据",
  264. value: "1"
  265. },
  266. {
  267. label: "视频监视",
  268. value: "2"
  269. },
  270. {
  271. label: "静态图像",
  272. value: "3"
  273. }
  274. ],
  275. operationType: "",
  276. rsvrRules: null,
  277. probId: '',
  278. showAddProblemDialog: false,
  279. showProblemList: false,
  280. jqmmDialogShow: false,
  281. type: '',
  282. };
  283. },
  284. computed: {
  285. recPersId() {
  286. return localStorage.getItem("userid") ? localStorage.getItem("userid") : "1098101939614724096";
  287. }
  288. }
  289. ,
  290. created() {
  291. this.findItemByType()
  292. }
  293. ,
  294. mounted() {
  295. this.getformList();
  296. }
  297. ,
  298. methods: {
  299. //保存
  300. makesure() {
  301. let _self = this;
  302. this.addObj["rgstrId"] = this.rowData.id;
  303. this.addObj["persId"] = this.recPersId;
  304. this.addObj.edfType = _self.addObj.edfType ? _self.addObj.edfType.join(',') : '';
  305. _self.addObj.efmfType = _self.addObj.efmfType ? _self.addObj.efmfType.join(',') : '';
  306. if (
  307. this.addObj.isRuleDef &&
  308. this.addObj.isHasEfvd &&
  309. this.addObj.edfType &&
  310. this.addObj.isHasFmf &&
  311. this.addObj.isHasVotmf &&
  312. this.addObj.efmfType &&
  313. this.addObj.paapIsPfct &&
  314. this.addObj.tepIsPfct &&
  315. this.addObj.wrcwlpIsPfct &&
  316. this.addObj.lpepIsPfct &&
  317. this.addObj.feolpIsPfct &&
  318. this.addObj.capIsPfct
  319. ) {
  320. this.addObj.status = "2";
  321. } else {
  322. this.addObj.status = "1";
  323. }
  324. if (
  325. this.addObj.isRuleDef === undefined &&
  326. this.addObj.isHasEfvd === undefined &&
  327. this.addObj.edfType === undefined &&
  328. this.addObj.isHasFmf === undefined &&
  329. this.addObj.isHasVotmf === undefined &&
  330. this.addObj.efmfType === undefined &&
  331. this.addObj.paapIsPfct === undefined &&
  332. this.addObj.tepIsPfct === undefined &&
  333. this.addObj.wrcwlpIsPfct === undefined &&
  334. this.addObj.lpepIsPfct === undefined &&
  335. this.addObj.feolpIsPfct === undefined &&
  336. this.addObj.capIsPfct === undefined
  337. ) {
  338. this.addObj.status = "0";
  339. }
  340. this.$refs['ruleForm'].validate((valid) => {
  341. if (valid) {
  342. this.$confirm("确认保存填写的信息吗?", "提示", {
  343. confirmButtonText: "确定",
  344. cancelButtonText: "取消",
  345. type: "warning"
  346. }).then(() => {
  347. request.post("/bis/insp/hyst/rect/info", _self.addObj).then(res => {
  348. if (res.success) {
  349. _self.$message.success("保存成功");
  350. _self.$emit("addShuiKuSuccess");
  351. _self.getformList();
  352. }
  353. });
  354. }).catch((err) => {
  355. this.$message.info(err)
  356. });
  357. } else {
  358. this.$message.warning('请检查填写信息')
  359. return
  360. }
  361. });
  362. },
  363. showPic(type) {
  364. this.type = type
  365. this.jqmmDialogShow = true
  366. },
  367. jqmmDialogClose() {
  368. this.jqmmDialogShow = false;
  369. },
  370. getformList() {
  371. let _self = this;
  372. getHystRectInfoApi(_self.rowData.id).then(res => {
  373. if (res.success) {
  374. if (res.data && Object.keys(res.data).length) {
  375. _self.addObj = res.data;
  376. _self.addObj.edfType = _self.addObj.edfType ? _self.addObj.edfType.split(',') : '';
  377. _self.addObj.efmfType = _self.addObj.efmfType ? _self.addObj.efmfType.split(',') : '';
  378. _self.operationType = "update";
  379. } else {
  380. _self.addObj = {};
  381. _self.operationType = "add";
  382. }
  383. } else {
  384. this.$message.error(res.message)
  385. }
  386. });
  387. }
  388. ,
  389. formatRadio(val) {
  390. if (val == "1") {
  391. return "是";
  392. } else if (val == "0") {
  393. return "否";
  394. } else {
  395. return val;
  396. }
  397. }
  398. ,
  399. cancelHandler() {
  400. this.$emit("cancelHandler");
  401. }
  402. ,
  403. findItemByType() {
  404. const obj = {
  405. tname: "BIS_INSP_HYST_RECT_INFO"
  406. }
  407. request.post("/bis/insp/item/ques/info/findItemByType", obj).then(res => {
  408. this.rsvrRules = res.data;
  409. })
  410. }
  411. ,
  412. addProblemList(item) {
  413. let rest = this.rsvrRules.filter(e => {
  414. return e.eName === item;
  415. });
  416. this.probId = rest[0].id;
  417. this.showProblemList = true;
  418. this.showAddProblemDialog = true
  419. }
  420. ,
  421. getdialogFormVisible(val) {
  422. this.showProblemList = val
  423. }
  424. ,
  425. removeNewSupervisionZcBuzhuIsMake(arg) {
  426. this.$nextTick(() => {
  427. if (arg.length) {
  428. let len = this.addObj.zcBuzhuIsMakeFiles.length;
  429. for (var i = 0; i < arg.length; i++) {
  430. this.$set(this.addObj.zcBuzhuIsMakeFiles, len, arg[i]);
  431. len++;
  432. }
  433. }
  434. })
  435. }
  436. ,
  437. removeNewSupervisionZcWaterIsMake(arg) {
  438. this.$nextTick(() => {
  439. if (arg.length) {
  440. let len = this.addObj.zcWaterIsMakeFiles.length;
  441. for (var i = 0; i < arg.length; i++) {
  442. this.$set(this.addObj.zcWaterIsMakeFiles, len, arg[i]);
  443. len++;
  444. }
  445. }
  446. })
  447. }
  448. ,
  449. removeNewSupervisionZcOtherIsMake(arg) {
  450. this.$nextTick(() => {
  451. if (arg.length) {
  452. let len = this.addObj.zcOtherIsMakeFiles.length;
  453. for (var i = 0; i < arg.length; i++) {
  454. this.$set(this.addObj.zcOtherIsMakeFiles, len, arg[i]);
  455. len++;
  456. }
  457. }
  458. })
  459. }
  460. ,
  461. rowPreview(row) {
  462. window.open(`${hostUrl}${row.filePath}`, "_blank");
  463. }
  464. ,
  465. rowDelete(row, index, val) {
  466. this.$confirm(`确定要删除'${row.fileName}', 是否继续?`, {
  467. confirmButtonText: '确定',
  468. cancelButtonText: '取消',
  469. type: 'warning'
  470. }).then(() => {
  471. request.post(`/file/${row.id}`)
  472. .then(res => {
  473. if (res.success) {
  474. this.$message.success("删除成功");
  475. if (val == 'qt') this.addObj.zcOtherIsMakeFiles.splice(index, 1);
  476. else if (val == 'sj') this.addObj.zcWaterIsMakeFiles.splice(index, 1);
  477. else if (val == 'bz') this.addObj.zcBuzhuIsMakeFiles.splice(index, 1);
  478. } else {
  479. this.$message.warning(res.message);
  480. }
  481. })
  482. }).catch(() => {
  483. this.$message({
  484. type: 'info',
  485. message: '已取消删除'
  486. });
  487. });
  488. }
  489. }
  490. ,
  491. updated() {
  492. }
  493. ,
  494. watch: {
  495. currentObjectRgstrId(n, o) {
  496. this.getformList();
  497. }
  498. }
  499. }
  500. ;
  501. </script>
  502. <style lang="scss">
  503. .xsdstll_wrapper {
  504. .el-form {
  505. margin-top: 10px;
  506. }
  507. /*.el-input, .el-textarea {*/
  508. /*width: 40%;*/
  509. /*}*/
  510. .add-problem-icon {
  511. font-size: 16px;
  512. }
  513. .left-vertical {
  514. width: 8px;
  515. height: 17px;
  516. background: rgb(250, 205, 145);
  517. display: inline-block;
  518. vertical-align: bottom;
  519. }
  520. .hrs {
  521. display: inline-block;
  522. width: calc(100% - 40px);
  523. margin-left: 10px;
  524. height: 1px;
  525. vertical-align: middle;
  526. background-color: #ddd;
  527. }
  528. .font_red {
  529. color: red;
  530. }
  531. .p-title {
  532. padding-left: 20px;
  533. font-weight: bold;
  534. }
  535. .el-icon-camera-solid, .el-icon-circle-plus {
  536. margin-left: 20px;
  537. color: #00bbff;
  538. font-size: 18px;
  539. line-height: 12px;
  540. vertical-align: middle;
  541. cursor: pointer;
  542. }
  543. }
  544. </style>