0384132a12e6cec3bc94718e54e02c575c9ddec3.svn-base 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431
  1. <template>
  2. <div>
  3. <el-container style="height:520px;">
  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" ref="baseinfoForm" :rules="baseinfoRule">
  7. <p style="margin-top:10px;margin-bottom: 10px;overflow: hidden;"><i class="el-icon-caret-right"></i><span style="width:120px;padding-left: 10px">基础信息</span><span class="hrs"></span>
  8. <el-button type="warning" style="float: right;" @click="recentAppearance">近期面貌</el-button>
  9. <el-button type="warning" style="float: right; margin-right: 10px;" @click="imageClick">影像</el-button>
  10. </p>
  11. <el-form-item label="水库名称">
  12. <el-input v-model="formObj.rsName" readonly autocomplete="off" style="width:70%;"></el-input>
  13. </el-form-item>
  14. <el-form-item label="管理机构">
  15. <el-input v-model="formObj.rsAdmName" autocomplete="off" style="width:70%;"></el-input>
  16. </el-form-item>
  17. <el-form-item label="行政区划">
  18. <div v-if="showLocSelect">
  19. <el-select v-model="provName" placeholder="选择省" @change="provChange" style="width:20%">
  20. <el-option
  21. v-for="item in provList"
  22. :key="item.adCode"
  23. :label="item.adName"
  24. :value="item.adCode">
  25. </el-option>
  26. </el-select>
  27. <el-select v-model="cityName" placeholder="选择市" @change="cityChange" style="width:20%">
  28. <el-option
  29. v-for="item in cityList"
  30. :key="item.adCode"
  31. :label="item.adName"
  32. :value="item.adCode">
  33. </el-option>
  34. </el-select>
  35. <el-select v-model="countryName" placeholder="选择县" @change="countryChange" style="width:20%">
  36. <el-option
  37. v-for="item in countryList"
  38. :key="item.adCode"
  39. :label="item.adName"
  40. :value="item.adCode">
  41. </el-option>
  42. </el-select>
  43. &#x3000;<span v-if="showLocSelect" @click="showLocSelect = false" style="color: #009fff;font-size:12px;cursor:pointer">取消</span>
  44. </div>
  45. <div v-else>
  46. <el-input v-model="formObj.adName" readonly autocomplete="off" style="width:70%;"></el-input>&#x3000;<span @click="showLocSelect = true" style="color: #009fff;font-size:12px;cursor:pointer" v-if="openType">更改</span>
  47. </div>
  48. </el-form-item>
  49. <el-form-item label="所在地点">
  50. <el-input v-model="formObj.addr" placeholder="请输入详细地点" autocomplete="off" style="width:70%;"></el-input>
  51. </el-form-item>
  52. <el-form-item label="建成时间">
  53. <el-date-picker v-model="formObj.resCreateTime" type="date" value-format="yyyy-MM-dd" placeholder="选择日期">
  54. </el-date-picker>
  55. </el-form-item>
  56. <el-form-item label="注册登记号">
  57. <el-input v-model="formObj.damRegCode" autocomplete="off" style="width:70%;"></el-input>
  58. </el-form-item>
  59. <el-form-item label="工程规模" prop="engScal">
  60. <el-select v-model="formObj.engScal" placeholder="请选择">
  61. <el-option v-for="item in gongchengguimo" :key="item.value" :label="item.label" :value="item.value"></el-option>
  62. </el-select>
  63. </el-form-item>
  64. <el-form-item label="主坝坝型" prop="rsType">
  65. <el-select v-model="formObj.damType" placeholder="请选择">
  66. <el-option v-for="item in zhubaleixing" :key="item.value" :label="item.label" :value="item.value"></el-option>
  67. </el-select>
  68. </el-form-item>
  69. <el-form-item label="总库容(万m³)" prop="totCap">
  70. <el-input v-model="formObj.totCap" autocomplete="off" style="width:70%;"></el-input>
  71. </el-form-item>
  72. <el-form-item label="主坝最大坝高(m)" prop="damSizeHig">
  73. <el-input v-model="formObj.damSizeHig" autocomplete="off" style="width:70%;"></el-input>
  74. </el-form-item>
  75. <el-form-item label="经度">
  76. <el-input v-model="formObj.gdX" autocomplete="off" style="width:70%;"></el-input>
  77. </el-form-item>
  78. <el-form-item label="纬度">
  79. <el-input v-model="formObj.gdY" autocomplete="off" style="width:70%;"/>
  80. </el-form-item>
  81. <el-form-item label="">
  82. <el-button type="primary" @click="addHandler" v-if="openType">保 存</el-button>
  83. </el-form-item>
  84. </el-form>
  85. </el-main>
  86. </el-container>
  87. <theRecentAppearance v-if="xcztShow" @jqmmDialogClose="jqmmDialog" :jqmmShow="xcztShow" :openType="openType"
  88. :jqmmEngId="currentObjectRgstrId" :dialogTitle="currentObjectName + '近期面貌'"
  89. style="z-index: 9999;"/>
  90. <!--影像弹窗-->
  91. <el-dialog :title="currentObjectName + '影像'" :visible.sync="imageShow" append-to-body :close-on-click-modal="false" width="60%">
  92. <div style="height: 60vh;">
  93. <mapLocation ref="mapRef" v-if="imageShow" :gdX="centerX" :gdY="centerY"/>
  94. </div>
  95. </el-dialog>
  96. </div>
  97. </template>
  98. <script>
  99. import inputWith from "@widget/inuptWith.vue"
  100. import request from "@util/gw_ajax_request.js"
  101. import theRecentAppearance from '../../duChaDuiXiang/theRecentAppearance'
  102. import unlimitDatePicker from '@baseWidget/unLimitdatePicker.vue'
  103. import mapLocation from '../../../views/duChaTianBao/mapLocation'
  104. import {
  105. getRssfdrRgstrApi
  106. } from "@api/duChaTianBao.js"
  107. import {
  108. dateFormat
  109. } from "@util/gw_date.js"
  110. export default {
  111. components: {
  112. inputWith: inputWith,
  113. unlimitDatePicker:unlimitDatePicker,
  114. theRecentAppearance,
  115. mapLocation
  116. },
  117. props: ['currentObjectRgstrId', 'currentResCode', 'currentObjectId','currentObjectName','openType'],
  118. data() {
  119. var checkInput = (rule, value, callback) => {
  120. if(value && value.toString().length>8){
  121. return callback(new Error('输入位数过长'));
  122. }
  123. setTimeout(() => {
  124. if (value && isNaN(value)) {
  125. callback(new Error('请输入数字值'));
  126. } else {
  127. callback();
  128. }
  129. }, 500);
  130. };
  131. return {
  132. formObj: {
  133. "rsvrNm": '',
  134. "rsvrAdmName": "",
  135. "hystSite": "",
  136. "engScal": "",
  137. "damRegCode": "",
  138. "totCap": "",
  139. "damType":"",
  140. "damMaxHigh": "",
  141. // "flConTopStag": "",
  142. "adName": "",
  143. "admDiv": "",
  144. "compDateStr": ""
  145. },
  146. dialogFormVisible: false,
  147. formLabelWidth: '160px',
  148. loading: true,
  149. operationType1: '',
  150. currentResCode1: '',
  151. currentObjectId1: '',
  152. value1: '',
  153. gongchengguimo:[
  154. {
  155. value: "1",
  156. label: "大(1)型"
  157. },
  158. {
  159. value: "2",
  160. label: "大(2)型"
  161. },
  162. {
  163. value: "3",
  164. label: "中型"
  165. },
  166. {
  167. value: "4",
  168. label: "小(1)型"
  169. },
  170. {
  171. value: "5",
  172. label: "小(2)型"
  173. },
  174. ],
  175. zhubaleixing:[
  176. {
  177. value: "1",
  178. label: "混凝土坝"
  179. },
  180. {
  181. value: "2",
  182. label: "碾压混凝土坝"
  183. },
  184. {
  185. value: "3",
  186. label: "浆砌石坝"
  187. },
  188. {
  189. value: "4",
  190. label: "土坝"
  191. },
  192. {
  193. value: "5",
  194. label: "堆石坝"
  195. },
  196. {
  197. value: "6",
  198. label: "挡水坝"
  199. },
  200. {
  201. value: "7",
  202. label: "其他"
  203. },
  204. ],
  205. provList: [],
  206. cityList: [],
  207. countryList: [],
  208. provName: '',
  209. cityName: '',
  210. countryName: '',
  211. provNames: '',
  212. cityNames: '',
  213. countryNames: '',
  214. curSelectItem: 0,
  215. showLocSelect: false,
  216. locat: {
  217. adName: "",
  218. admDiv: ""
  219. },
  220. xcztShow: false,
  221. imageShow: false,
  222. xcztEngId:'',
  223. centerX: 0,
  224. centerY: 0,
  225. baseinfoRule: {
  226. totCap: [
  227. { validator: checkInput, trigger: 'blur' }
  228. ],
  229. damSizeHig: [
  230. { validator: checkInput, trigger: 'blur' }
  231. ],
  232. },
  233. saveLoading: false
  234. }
  235. },
  236. computed: {
  237. recPersId() {
  238. return localStorage.getItem("userid") ? localStorage.getItem("userid") : ''
  239. }
  240. },
  241. mounted() {
  242. this.currentResCode1 = this.currentResCode;
  243. this.currentObjectId1 = this.currentObjectId;
  244. this.getRgstridObj();
  245. this.getAreaList()
  246. },
  247. watch: {
  248. currentObjectRgstrId(n, o) {
  249. this.getRgstridObj();
  250. },
  251. showLocSelect(val){
  252. if(!val){
  253. this.formObj.adName = this.locat.adName
  254. this.formObj.admDiv = this.locat.admDiv
  255. this.provName = ''
  256. this.cityName = ''
  257. this.countryName = ''
  258. }
  259. }
  260. },
  261. methods: {
  262. getRgstridObj() {
  263. var _self = this;
  264. getRssfdrRgstrApi(_self.currentObjectRgstrId).then(
  265. (res) => {
  266. if (res.data) {
  267. _self.formObj = res.data;
  268. _self.locat.adName = res.data.adName
  269. _self.locat.admDiv = res.data.admDiv
  270. _self.centerX = res.data.gdX;
  271. _self.centerY = res.data.gdY;
  272. _self.formObj.resCreateTime = dateFormat(res.data.resCreateTime, 'yyyy-MM-dd');
  273. } else {
  274. _self.formObj = {};
  275. }
  276. },
  277. (err) => {
  278. }
  279. );
  280. },
  281. addHandler() {
  282. this.$refs.baseinfoForm.validate((valid) => {
  283. if(valid){
  284. var _self = this;
  285. _self.formObj['persId'] = _self.recPersId;
  286. _self.formObj.objId = _self.currentObjectId1;
  287. console.log(_self.formObj);
  288. //基础信息纠错,经纬度修改粗略校验经度纬度整数部分的范围
  289. this.$confirm('确认保存基础信息?', '提示', {
  290. confirmButtonText: '确定',
  291. cancelButtonText: '取消',
  292. type: 'warning'
  293. }).then(() => {
  294. if(!this.saveLoading){
  295. this.saveLoading = true
  296. request.post('/bis/insp/rssfdr/rgstr', _self.formObj).then((res) => {
  297. if (res.success) {
  298. _self.$emit("addShuiKuSuccess");
  299. _self.showLocSelect = false
  300. _self.getRgstridObj()
  301. _self.$message.success("修改成功");
  302. } else {
  303. _self.$emit('cancelHandler');
  304. }
  305. this.saveLoading = false
  306. }).catch(err=>{
  307. this.saveLoading = false
  308. });
  309. }
  310. })
  311. }else{
  312. return false
  313. }
  314. })
  315. },
  316. cancelHandler() {
  317. this.$emit('cancelHandler');
  318. },
  319. formatRadio(val) {
  320. if (val == '1') {
  321. return '是'
  322. } else if (val == '0') {
  323. return '否'
  324. } else {
  325. return val
  326. }
  327. },
  328. getAreaList(val){
  329. let areaParams = {
  330. adName: "",
  331. id: this.dczId,
  332. pageNum: 1,
  333. pageSize: 10000
  334. }
  335. let adCode = ''
  336. if(!val){
  337. adCode = '000000000000'
  338. }else{
  339. adCode = val
  340. }
  341. request.get('/dc/ad/base/getAdData',{params:{'adCode':adCode}}).then(res=>{
  342. if(res.success){
  343. if(this.curSelectItem == 1){
  344. this.cityList = res.data
  345. }else if(this.curSelectItem == 2){
  346. this.countryList = res.data
  347. }else{
  348. this.provList = res.data
  349. }
  350. }
  351. })
  352. },
  353. provChange(val){
  354. this.curSelectItem = 1
  355. this.cityName = ''
  356. this.countryName = ''
  357. this.formObj.admDiv = val
  358. this.provList.forEach(ele=>{
  359. if(ele.adCode == this.provName){
  360. this.provNames = ele.adName
  361. }
  362. })
  363. this.formObj.adName = this.provNames
  364. this.getAreaList(val)
  365. },
  366. cityChange(val){
  367. this.curSelectItem = 2
  368. if(val && val != ''){
  369. this.formObj.admDiv = val
  370. this.countryName = ''
  371. this.cityList.forEach(ele=>{
  372. if(ele.adCode == this.cityName){
  373. this.cityNames = ele.adName
  374. }
  375. })
  376. this.formObj.adName = this.provNames + this.cityNames
  377. this.getAreaList(val)
  378. }
  379. },
  380. countryChange(val){
  381. if(val && val != ''){
  382. this.formObj.admDiv = val
  383. this.countryList.forEach(ele=>{
  384. if(ele.adCode == this.countryName){
  385. this.countryNames = ele.adName
  386. }
  387. })
  388. this.formObj.adName = this.provNames + this.cityNames + this.countryNames
  389. }
  390. },
  391. // 近期面貌
  392. recentAppearance(){
  393. this.xcztShow = true;
  394. },
  395. jqmmDialog(){
  396. this.xcztShow = false;
  397. },
  398. //影像
  399. imageClick(){
  400. if(!this.centerX && !this.centerY){
  401. this.$message.warning('暂无经纬度信息!');
  402. return false;
  403. }
  404. this.imageShow = true;
  405. }
  406. },
  407. }
  408. </script>
  409. <style>
  410. #dcdxHeader {
  411. padding: 15px 20px;
  412. }
  413. #dxdcFooter {
  414. text-align: center;
  415. }
  416. #dxdcAside {
  417. border: 1px solid #d5d5ff;
  418. }
  419. .el-dialog__wrapper .el-treeWhite {
  420. /* max-height: 260px !important; */
  421. }
  422. </style>