40c36c958d0b50de2a9737dc0d8253dd56af71b1.svn-base 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559
  1. <template>
  2. <div>
  3. <el-container v-if="formIsShow" style="height:49vh;">
  4. <el-main style="border:1px solid #d5d5ff;margin-left:5px;padding:0px;">
  5. <p style="font-weight:bolder;background-color:#d5d5ff;padding:3px;">信息填报</p>
  6. <el-form :model="formObj" :label-width="formLabelWidth">
  7. <p style="margin-top:10px;margin-bottom: 10px;overflow: hidden;">
  8. <i class="el-icon-caret-right"></i>
  9. <span style="width:120px;padding-left: 10px">基础信息</span>
  10. <span class="hrs"></span>
  11. <el-button type="warning" style="float: right;" @click="recentAppearance">近期面貌</el-button>
  12. <el-button type="warning" style="float: right;margin-right: 10px;" @click="imageClick">影像</el-button>
  13. </p>
  14. <el-form-item label="水闸名称">
  15. <el-input disabled v-model="formObj.gateName" autocomplete="off" style="width:70%;"></el-input>
  16. </el-form-item>
  17. <el-form-item label="水闸类型" prop="gateType">
  18. <el-select v-model="formObj.gateType" placeholder="请选择">
  19. <el-option
  20. v-for="item in gateTypeArray"
  21. :key="item.value"
  22. :label="item.label"
  23. :value="item.value"
  24. ></el-option>
  25. </el-select>
  26. </el-form-item>
  27. <el-form-item label="工程规模" prop="engScal">
  28. <el-select v-model="formObj.engScal" placeholder="请选择">
  29. <el-option
  30. v-for="item in gongchengguimo"
  31. :key="item.value"
  32. :label="item.label"
  33. :value="item.value"
  34. ></el-option>
  35. </el-select>
  36. </el-form-item>
  37. <el-form-item label="过闸流量(m³/s)">
  38. <el-input v-model="formObj.gateFlow" autocomplete="off" style="width:70%;"></el-input>
  39. </el-form-item>
  40. <el-form-item label="建设情况" prop="engSta">
  41. <el-select v-model="formObj.engSta" placeholder="请选择">
  42. <el-option
  43. v-for="item in jiansheInfo"
  44. :key="item.value"
  45. :label="item.label"
  46. :value="item.value"
  47. ></el-option>
  48. </el-select>
  49. </el-form-item>
  50. <el-form-item v-if="this.formObj.engSta === '2' || this.formObj.engSta === null ? true:false" label="开工年月">
  51. <el-date-picker
  52. @change="startTimeToform"
  53. value-format="yyyy-MM"
  54. v-model="begTime"
  55. type="month"
  56. placeholder="选择月">
  57. </el-date-picker>
  58. </el-form-item>
  59. <el-form-item v-if="this.formObj.engSta === '1' ? true:false" label="建成年月">
  60. <el-date-picker
  61. @change="bulidTimeToform"
  62. value-format="yyyy-MM"
  63. v-model="endTime"
  64. type="month"
  65. placeholder="选择月">
  66. </el-date-picker>
  67. </el-form-item>
  68. <el-form-item label="管理单位">
  69. <el-input v-model="formObj.gateAdmName" autocomplete="off" style="width:70%;"></el-input>
  70. </el-form-item>
  71. <!-- <el-form-item label="主管部门" clearable>-->
  72. <!-- <el-input v-model="formObj.gateAdmDep" autocomplete="off" style="width:70%;"></el-input>-->
  73. <!-- </el-form-item>-->
  74. <el-form-item label="行政区划">
  75. <br/>
  76. <p v-if="isShow" style="line-height: 40px;">名称:
  77. <el-input
  78. v-model="adName"
  79. autocomplete="off"
  80. auto-complete="off"
  81. readonly
  82. style="width:70%;"
  83. ></el-input>
  84. </p>
  85. <p style="line-height: 40px;">代码:
  86. <el-input
  87. v-model="formObj.adCode"
  88. autocomplete="off"
  89. @focus="showMenuTree = true"
  90. auto-complete="off"
  91. readonly
  92. style="width:70%;"
  93. ></el-input>
  94. </p>
  95. <provTreeList
  96. style="max-height:20vh;"
  97. v-if="showMenuTree"
  98. :rootCode="rootCode"
  99. :rootType="rootType"
  100. @provTreeSelectChange="provTreeSelectChangeHandler"
  101. ></provTreeList>
  102. </el-form-item>
  103. <el-form-item label="工程位置">
  104. <el-input v-model="formObj.location" style="width:70%;"></el-input>&#x3000;
  105. </el-form-item>
  106. <el-form-item label="经度">
  107. <el-input clearable v-model="formObj.gdX" style="width:70%;"></el-input>
  108. </el-form-item>
  109. <el-form-item label="纬度">
  110. <el-input clearable v-model="formObj.gdY" style="width:70%;"></el-input>
  111. </el-form-item>
  112. <el-form-item label="添加注册登记照片">
  113. <span style="color:#40aae7;cursor:pointer;" @click="addPicReg">添加</span>
  114. </el-form-item>
  115. <el-form-item label>
  116. <!-- <el-button @click="cancelHandler">取 消</el-button> -->
  117. <el-button style="padding:7px 15px" type="primary" @click="addHandler" v-if="openType">保 存</el-button>
  118. </el-form-item>
  119. </el-form>
  120. </el-main>
  121. </el-container>
  122. <addPic v-if="jqmmDialogShow" :dialogTitle="'登记照片'" :type="'bxzzqlaq'" @jqmmDialogClose="jqmmDialogClose" :jqmmEngId="id" :openType="openType"></addPic>
  123. <theRecentAppearance v-if="jqmmShow" @jqmmDialogClose="jqmmDialog" :jqmmShow="jqmmShow" :jqmmEngId="currentObjectRgstrId" :openType="openType" :dialogTitle="currentObjectName + '近期面貌'"></theRecentAppearance>
  124. <!--影像弹窗-->
  125. <el-dialog :title="currentObjectName + '影像'" :visible.sync="imageShow" append-to-body :close-on-click-modal="false" width="60%">
  126. <div style="height: 60vh;">
  127. <mapLocation ref="mapRef" v-if="imageShow" :gdX="gdX" :gdY="gdY"></mapLocation>
  128. </div>
  129. </el-dialog>
  130. </div>
  131. </template>
  132. <script>
  133. import inputWith from "@widget/inuptWith.vue"
  134. import request from "@util/gw_ajax_request.js"
  135. import theRecentAppearance from '../../duChaDuiXiang/theRecentAppearance'
  136. import unlimitDatePicker from '@baseWidget/unLimitdatePicker.vue'
  137. import provTreeList from "../../../widgets/provTreeList";
  138. import mapLocation from '../mapLocation'
  139. import addPic from './addPic'
  140. import {
  141. getSzjcBxzz
  142. } from "@api/duChaTianBao.js"
  143. export default {
  144. components: {
  145. inputWith: inputWith,
  146. provTreeList,
  147. theRecentAppearance: theRecentAppearance,
  148. mapLocation:mapLocation,
  149. addPic:addPic
  150. },
  151. props: [
  152. "currentObjectRgstrId",
  153. "currentResCode",
  154. "currentObjectId",
  155. "currentGroupId",
  156. "currentAdcode",
  157. "showOrEdit",
  158. "currentObjectName",
  159. "gdX","gdY",
  160. "openType"
  161. ],
  162. data() {
  163. return {
  164. id:"",
  165. isShow:"",
  166. adName:"",
  167. rootCode: "000000",
  168. rootType: "2",
  169. showMenuTree: false,
  170. begTime:'',
  171. endTime:'',
  172. formObj: {
  173. buidTimeMon:'',
  174. buidTimeYear:'',
  175. staTimeMon:'',
  176. staTimeYear:'',
  177. adCode: this.currentAdcode,
  178. gateName: "",
  179. gateType: "",
  180. rsAdmName: "",
  181. rsLoc: "",
  182. gateFlow: "",
  183. engSta: "",
  184. intm: "",
  185. engScal: "",
  186. totCap: "",
  187. damMaxHigh: "",
  188. damTypeStr: "",
  189. damType: "",
  190. rsType: "",
  191. regCode: "",
  192. rsvrLong: "",
  193. rsvrLat: "",
  194. compDate: "",
  195. location: "",
  196. admDiv: "",
  197. locationCun: "",
  198. gateAdmDep:""
  199. },
  200. dialogFormVisible: false,
  201. formLabelWidth: "160px",
  202. loading: true,
  203. operationType1: "",
  204. currentResCode1: "",
  205. currentObjectId1: "",
  206. value1: "",
  207. gongchengguimo: [
  208. {
  209. value: "1",
  210. label: "大型"
  211. },
  212. {
  213. value: "2",
  214. label: "中型"
  215. },
  216. {
  217. value: "3",
  218. label: "小型"
  219. }
  220. ],
  221. jiansheInfo: [
  222. {
  223. value: "2",
  224. label: "在建"
  225. },
  226. {
  227. value: "1",
  228. label: "已建"
  229. },
  230. ],
  231. gateTypeArray: [
  232. {
  233. value: "1",
  234. label: "分(泄)洪闸"
  235. },
  236. {
  237. value: "2",
  238. label: "节制闸"
  239. },
  240. {
  241. value: "3",
  242. label: "排(退)水闸"
  243. },
  244. {
  245. value: "4",
  246. label: "引(进)水闸"
  247. },
  248. {
  249. value: "5",
  250. label: "挡潮闸"
  251. },
  252. {
  253. value: "6",
  254. label: "船闸"
  255. },
  256. {
  257. value: "9",
  258. label: "其他"
  259. }
  260. ],
  261. zhubaleixing: [
  262. {
  263. value: "1",
  264. label: "混凝土坝"
  265. },
  266. {
  267. value: "2",
  268. label: "碾压混凝土坝"
  269. },
  270. {
  271. value: "3",
  272. label: "浆砌石坝"
  273. },
  274. {
  275. value: "4",
  276. label: "土坝"
  277. },
  278. {
  279. value: "5",
  280. label: "堆石坝"
  281. },
  282. {
  283. value: "6",
  284. label: "挡水坝"
  285. },
  286. {
  287. value: "7",
  288. label: "其他"
  289. }
  290. ],
  291. provList: [],
  292. cityList: [],
  293. countryList: [],
  294. provName: "",
  295. cityName: "",
  296. countryName: "",
  297. provNames: "",
  298. cityNames: "",
  299. countryNames: "",
  300. curSelectItem: 0,
  301. showLocSelect: false,
  302. locat: {
  303. location: "",
  304. admDiv: ""
  305. },
  306. formIsShow: true,
  307. jqmmButton: false,
  308. jqmmShow: false,
  309. imageShow: false,
  310. jqmmDialogShow:false
  311. };
  312. },
  313. computed: {
  314. recPersId() {
  315. return localStorage.getItem("userid")
  316. ? localStorage.getItem("userid")
  317. : "";
  318. }
  319. },
  320. created() {
  321. if (this.showOrEdit === "show") {
  322. this.formIsShow = false;
  323. } else {
  324. this.formIsShow = true;
  325. }
  326. },
  327. mounted() {
  328. this.currentResCode1 = this.currentResCode;
  329. this.currentObjectId1 = this.currentObjectId;
  330. this.getRgstridObj();
  331. this.getAreaList();
  332. },
  333. watch: {
  334. currentObjectRgstrId(n, o) {
  335. this.getRgstridObj();
  336. },
  337. showLocSelect(val) {
  338. if (!val) {
  339. this.formObj.location = this.locat.location;
  340. this.formObj.admDiv = this.locat.admDiv;
  341. this.provName = "";
  342. this.cityName = "";
  343. this.countryName = "";
  344. }
  345. }
  346. },
  347. methods: {
  348. jqmmDialogClose(){
  349. this.jqmmDialogShow = false;
  350. },
  351. addPicReg(){
  352. this.jqmmDialogShow = true;
  353. },
  354. startTimeToform(val){
  355. console.log(val);
  356. this.formObj.staTimeYear = val.split('-')[0];
  357. this.formObj.staTimeMon = val.split('-')[1];
  358. },
  359. bulidTimeToform(val){
  360. console.log(val);
  361. this.formObj.buidTimeYear = val.split('-')[0];
  362. this.formObj.buidTimeMon = val.split('-')[1];
  363. },
  364. getRgstridObj() {
  365. var _self = this;
  366. getSzjcBxzz(_self.currentObjectRgstrId).then(res => {
  367. if (res.data) {
  368. _self.formObj = res.data;
  369. this.locat.location = res.data.location;
  370. this.locat.admDiv = res.data.admDiv;
  371. this.isShow = false;
  372. this.id = res.data.objCode;
  373. //处理开工时间和建成时间
  374. if(res.data.engSta ==='2'){//根据app人员截图,2是在建 所以有开工时间
  375. _self.begTime = res.data.staTimeYear + '-' + res.data.staTimeMon;
  376. }
  377. if(res.data.engSta ==='1'){//根据app人员截图,1是已建 所以使用
  378. _self.endTime = res.data.buidTimeYear + '-' + res.data.buidTimeMon;
  379. }
  380. } else {
  381. _self.formObj = {};
  382. }
  383. },
  384. err => {}
  385. );
  386. },
  387. addHandler() {
  388. var _self = this;
  389. // _self.formObj.compDate = _self.value1;
  390. // _self.formObj['compDate'] = _self.value1;
  391. //基础信息纠错,经纬度修改粗略校验经度纬度整数部分的范围
  392. if(this.formObj.gdY < 4 || this.formObj.gdY > 54){
  393. this.$message.error('纬度的整数范围应在4-54之间,请重新填写!');
  394. this.formObj.gdY = '';
  395. return;
  396. }
  397. if(this.formObj.gdX < 74 || this.formObj.gdX > 136){
  398. this.$message.error('经度的整数范围应在74-136之间,请重新填写!');
  399. this.formObj.gdX = '';
  400. return;
  401. }
  402. _self.formObj["persId"] = _self.recPersId;
  403. _self.formObj.objId = _self.currentObjectId1;
  404. _self.formObj.locationCun = _self.formObj.location;
  405. console.log(_self.formObj);
  406. try {
  407. this.$confirm("确认保存基础信息?", "提示", {
  408. confirmButtonText: "确定",
  409. cancelButtonText: "取消",
  410. type: "warning"
  411. })
  412. .then(() => {
  413. request.post("/bis/insp/wagajs/bdg", _self.formObj).then(res => {
  414. if (res.success) {
  415. _self.$emit("addShuiKuSuccess");
  416. _self.showLocSelect = false;
  417. _self.getRgstridObj();
  418. _self.$message.success("修改成功");
  419. } else {
  420. _self.$emit("cancelHandler");
  421. }
  422. });
  423. })
  424. .catch(() => {});
  425. } catch (e) {}
  426. },
  427. cancelHandler() {
  428. this.$emit("cancelHandler");
  429. },
  430. formatRadio(val) {
  431. if (val == "1") {
  432. return "是";
  433. } else if (val == "0") {
  434. return "否";
  435. } else {
  436. return val;
  437. }
  438. },
  439. getAreaList(val) {
  440. let areaParams = {
  441. adName: "",
  442. id: this.dczId,
  443. pageNum: 1,
  444. pageSize: 10000
  445. };
  446. let adCode = "";
  447. if (!val) {
  448. adCode = "000000000000";
  449. } else {
  450. adCode = val;
  451. }
  452. request
  453. .get("/dc/ad/base/getAdData", { params: { adCode: adCode } })
  454. .then(res => {
  455. if (res.success) {
  456. if (this.curSelectItem == 1) {
  457. this.cityList = res.data;
  458. } else if (this.curSelectItem == 2) {
  459. this.countryList = res.data;
  460. } else {
  461. this.provList = res.data;
  462. }
  463. }
  464. });
  465. },
  466. provChange(val) {
  467. this.curSelectItem = 1;
  468. this.cityName = "";
  469. this.countryName = "";
  470. this.formObj.admDiv = val;
  471. this.provList.forEach(ele => {
  472. if (ele.adCode == this.provName) {
  473. this.provNames = ele.adName;
  474. }
  475. });
  476. this.formObj.locationCun = this.provNames;
  477. this.getAreaList(val);
  478. },
  479. cityChange(val) {
  480. this.curSelectItem = 2;
  481. if (val && val != "") {
  482. this.formObj.admDiv = val;
  483. this.countryName = "";
  484. this.cityList.forEach(ele => {
  485. if (ele.adCode == this.cityName) {
  486. this.cityNames = ele.adName;
  487. }
  488. });
  489. this.formObj.locationCun = this.provNames + this.cityNames;
  490. this.getAreaList(val);
  491. }
  492. },
  493. countryChange(val) {
  494. if (val && val != "") {
  495. this.formObj.admDiv = val;
  496. this.countryList.forEach(ele => {
  497. if (ele.adCode == this.countryName) {
  498. this.countryNames = ele.adName;
  499. }
  500. });
  501. this.formObj.locationCun =
  502. this.provNames + this.cityNames + this.countryNames;
  503. }
  504. },
  505. provTreeSelectChangeHandler: function(params) {
  506. this.formObj.adCode = params.code;
  507. this.adName = params.name;
  508. this.isShow = true;
  509. },
  510. // 近期面貌
  511. recentAppearance(){
  512. this.jqmmShow = true;
  513. },
  514. jqmmDialog(){
  515. this.jqmmShow = false;
  516. },
  517. // 影像
  518. imageClick(){
  519. if(!this.gdX && !this.gdY){
  520. this.$message.warning('暂无经纬度信息!');
  521. return false;
  522. }
  523. this.imageShow = true;
  524. }
  525. }
  526. };
  527. </script>
  528. <style lang="scss" scoped>
  529. #dcdxHeader {
  530. padding: 15px 20px;
  531. }
  532. #dxdcFooter {
  533. text-align: center;
  534. }
  535. #dxdcAside {
  536. border: 1px solid #d5d5ff;
  537. }
  538. .el-dialog__wrapper .el-treeWhite {
  539. /* max-height: 260px !important; */
  540. }
  541. .gcsthyxglqk .el-button--mini {
  542. padding: 0px 15px;
  543. }
  544. </style>