53c58d2b30bd515b6f07addd2e3acd884081b850.svn-base 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376
  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" :rules="rules" ref="formObj">
  7. <p style=";margin-top:10px;margin-bottom: 10px"><i class="el-icon-caret-right"></i><span
  8. style="width:120px;padding-left: 10px">基础信息</span><span class="hrs"></span>
  9. <el-button type="warning" style="float: right;" @click="recentAppearance">近期面貌</el-button>
  10. <el-button type="warning" style="float: right; margin-right: 10px;" @click="imageClick">影像
  11. </el-button>
  12. </p>
  13. <el-form-item label="行政区划名称">
  14. <el-input v-model="formObj.adName" autocomplete="off" readonly style="width:70%;"></el-input>
  15. </el-form-item>
  16. <el-form-item label="详细地址">
  17. <el-input v-model="formObj.loc" placeholder="请输入详细位置" autocomplete="off"
  18. style="width:70%;"></el-input>
  19. </el-form-item>
  20. <el-form-item label="经度">
  21. <el-input clearable v-model="formObj.centerX" autocomplete="off" style="width:70%;"
  22. placeholder="经度的整数范围应在74-136之间"></el-input>
  23. </el-form-item>
  24. <el-form-item label="纬度">
  25. <el-input clearable v-model="formObj.centerY" autocomplete="off" style="width:70%;"
  26. placeholder="纬度的整数范围应在4-54之间"></el-input>
  27. </el-form-item>
  28. <el-form-item label="被检查单位名称">
  29. <el-input v-model="formObj.bchkUnit" autocomplete="off" style="width:70%;"></el-input>
  30. </el-form-item>
  31. <el-form-item label="检查单位联系人">
  32. <el-input v-model="formObj.contact" autocomplete="off" style="width:70%;"></el-input>
  33. </el-form-item>
  34. <el-form-item label="检查单位联系人电话">
  35. <el-input v-model="formObj.contactTel" autocomplete="off" style="width:70%;"></el-input>
  36. </el-form-item>
  37. <el-form-item label="检查单位负责人">
  38. <el-input v-model="formObj.principal" autocomplete="off" style="width:70%;"></el-input>
  39. </el-form-item>
  40. <el-form-item label="检查单位负责人电话">
  41. <el-input v-model="formObj.principalTel" autocomplete="off" style="width:70%;"></el-input>
  42. </el-form-item>
  43. <el-form-item label="备注">
  44. <el-input type="textarea" :rows="2" v-model="formObj.note" autocomplete="off"
  45. style="width:70%;"></el-input>
  46. </el-form-item>
  47. <el-form-item label="检查单位">
  48. <el-input v-model="formObj.chkUnit" autocomplete="off" style="width:70%;"></el-input>
  49. </el-form-item>
  50. <el-form-item label="检查人员">
  51. <el-input v-model="formObj.chkPers" autocomplete="off" style="width:70%;"></el-input>
  52. </el-form-item>
  53. <el-form-item label="检查时间">
  54. <el-date-picker
  55. style="width:70%;"
  56. v-model="formObj.chkTm"
  57. type="date"
  58. value-format="yyyy-MM-dd"
  59. placeholder="检查时间">
  60. </el-date-picker>
  61. </el-form-item>
  62. <el-form-item label="">
  63. <el-button type="primary" @click="addHandler('formObj')">保 存</el-button>
  64. </el-form-item>
  65. </el-form>
  66. </el-main>
  67. </el-container>
  68. <theRecentAppearance v-if="xcztShow" @jqmmDialogClose="jqmmDialog" :jqmmShow="xcztShow"
  69. :jqmmEngId="currentObjectRgstrId" :dialogTitle="currentObjectName + '近期面貌'"
  70. style="z-index: 9999;"></theRecentAppearance>
  71. <!--影像弹窗-->
  72. <el-dialog :title="currentObjectName + '影像'" :visible.sync="imageShow" append-to-body
  73. :close-on-click-modal="false" width="60%">
  74. <div style="height: 60vh;">
  75. <mapLocation ref="mapRef" v-if="imageShow" :gdX="centerX" :gdY="centerY"></mapLocation>
  76. </div>
  77. </el-dialog>
  78. </div>
  79. </template>
  80. <script>
  81. import inputWith from "../../../widgets/inuptWith.vue"
  82. import request from "@util/gw_ajax_request.js"
  83. import theRecentAppearance from '../../duChaDuiXiang/theRecentAppearance'
  84. import {dateFormat} from '@util/gw_date.js'
  85. import mapLocation from '../mapLocation'
  86. export default {
  87. components: {
  88. inputWith: inputWith,
  89. theRecentAppearance,
  90. mapLocation
  91. },
  92. props: ['currentObjectRgstrId', 'currentResCode', 'currentObjectId', 'currentObjectName'],
  93. data() {
  94. return {
  95. mask: false,
  96. formObj: {},
  97. options: [{
  98. value: '1',
  99. label: '渠道'
  100. }, {
  101. value: '2',
  102. label: '人工河道'
  103. }, {
  104. value: '3',
  105. label: '虹吸管'
  106. }, {
  107. value: '4',
  108. label: '泵站'
  109. }, {
  110. value: '5',
  111. label: '闸'
  112. }, {
  113. value: '6',
  114. label: '从江河湖泊饮水的水库'
  115. }, {
  116. value: '7',
  117. label: '其他'
  118. }],
  119. rules: {
  120. name: [
  121. {required: true, message: '请输入项目名称', trigger: 'blur'}
  122. ],
  123. type: [
  124. {required: true, message: '请选择检查分类', trigger: 'change'}
  125. ]
  126. },
  127. dialogFormVisible: false,
  128. formLabelWidth: '160px',
  129. loading: true,
  130. operationType1: '',
  131. currentResCode1: '',
  132. currentObjectId1: '',
  133. value1: '',
  134. provList: [],
  135. cityList: [],
  136. countryList: [],
  137. provName: '',
  138. cityName: '',
  139. countryName: '',
  140. provNames: '',
  141. cityNames: '',
  142. countryNames: '',
  143. curSelectItem: 0,
  144. showLocSelect: false,
  145. locat: {
  146. location: "",
  147. admDiv: ""
  148. },
  149. xcztShow: false,
  150. imageShow: false,
  151. xcztEngId: '',
  152. centerX: 0,
  153. centerY: 0,
  154. gcType: [],
  155. saveLoading: false
  156. }
  157. },
  158. computed: {
  159. recPersId() {
  160. return localStorage.getItem("userid") ? localStorage.getItem("userid") : ''
  161. }
  162. },
  163. mounted() {
  164. this.currentResCode1 = this.currentResCode;
  165. this.currentObjectId1 = this.currentObjectId;
  166. this.getRgstridObj();
  167. this.getAreaList()
  168. },
  169. watch: {
  170. currentObjectRgstrId(n, o) {
  171. this.getRgstridObj();
  172. },
  173. showLocSelect(val) {
  174. if (!val) {
  175. // this.formObj.location = this.locat.location
  176. // this.formObj.admDiv = this.locat.admDiv
  177. this.provName = ''
  178. this.cityName = ''
  179. this.countryName = ''
  180. }
  181. }
  182. },
  183. methods: {
  184. getRgstridObj() {
  185. var _self = this;
  186. request.get(`/bis/insp/wrm/rgstr/${_self.currentObjectRgstrId}`).then(res => {
  187. if(res.success){
  188. _self.formObj = res.data;
  189. _self.formObj.chkTm = _self.formObj.chkTm ? dateFormat(_self.formObj.chkTm,'yyyy-MM-dd') : "";
  190. _self.centerX = _self.formObj.centerX;
  191. _self.centerY = _self.formObj.centerY;
  192. }
  193. })
  194. },
  195. addHandler(formName) {
  196. this.$refs[formName].validate((valid) => {
  197. if (valid) {
  198. var _self = this;
  199. _self.formObj['persId'] = _self.recPersId;
  200. _self.formObj['id'] = _self.currentObjectRgstrId;
  201. _self.formObj.objId = _self.currentObjectId1;
  202. console.log(_self.formObj);
  203. if (this.formObj.centerX || this.formObj.centerY) {
  204. //基础信息纠错,经纬度修改粗略校验经度纬度整数部分的范围
  205. if (this.formObj.centerX < 74 || this.formObj.centerY > 136) {
  206. this.$message.error('经度的整数范围应在74-136之间,请重新填写!');
  207. this.formObj.centerX = '';
  208. return;
  209. }
  210. if (this.formObj.centerY < 4 || this.formObj.centerY > 54) {
  211. this.$message.error('纬度的整数范围应在4-54之间,请重新填写!');
  212. this.formObj.centerY = '';
  213. return;
  214. }
  215. }
  216. try {
  217. this.$confirm('确认保存基础信息?', '提示', {
  218. confirmButtonText: '确定',
  219. cancelButtonText: '取消',
  220. type: 'warning'
  221. }).then(() => {
  222. if (!this.saveLoading) {
  223. this.saveLoading = true
  224. request.post('/bis/insp/wrm/rgstr', _self.formObj).then((res) => {
  225. if (res.success) {
  226. _self.$emit("addQuShuiKouSuccess");
  227. _self.showLocSelect = false
  228. _self.getRgstridObj()
  229. _self.$message.success("修改成功");
  230. } else {
  231. _self.$emit('cancelHandler');
  232. }
  233. this.saveLoading = false
  234. }).catch(err => {
  235. this.saveLoading = false
  236. this.$message.info(err)
  237. });
  238. }
  239. })
  240. } catch (e) {
  241. }
  242. } else {
  243. console.log('error submit!!');
  244. return false;
  245. }
  246. });
  247. },
  248. cancelHandler() {
  249. this.$emit('cancelHandler');
  250. },
  251. formatRadio(val) {
  252. if (val == '1') {
  253. return '是'
  254. } else if (val == '0') {
  255. return '否'
  256. } else {
  257. return val
  258. }
  259. },
  260. getAreaList(val) {
  261. let areaParams = {
  262. adName: "",
  263. id: this.dczId,
  264. pageNum: 1,
  265. pageSize: 10000
  266. }
  267. let adCode = ''
  268. if (!val) {
  269. adCode = '000000000000'
  270. } else {
  271. adCode = val
  272. }
  273. this.formObj.adCode = adCode;
  274. request.get('/dc/ad/base/getAdData', {params: {'adCode': adCode}}).then(res => {
  275. if (res.success) {
  276. if (this.curSelectItem == 1) {
  277. this.cityList = res.data
  278. } else if (this.curSelectItem == 2) {
  279. this.countryList = res.data
  280. } else {
  281. this.provList = res.data
  282. }
  283. request.post(`/att/bas/base/list`, {}).then(res => {
  284. if (res.success) {
  285. this.gcType = res.data;
  286. }
  287. })
  288. }
  289. })
  290. },
  291. provChange(val) {
  292. this.curSelectItem = 1
  293. this.cityName = ''
  294. this.countryName = ''
  295. // this.formObj.admDiv = val
  296. this.provList.forEach(ele => {
  297. if (ele.adCode == this.provName) {
  298. this.provNames = ele.adName
  299. }
  300. })
  301. this.formObj.adName = this.provNames
  302. this.getAreaList(val)
  303. },
  304. cityChange(val) {
  305. this.curSelectItem = 2
  306. if (val && val != '') {
  307. // this.formObj.admDiv = val
  308. this.countryName = ''
  309. this.cityList.forEach(ele => {
  310. if (ele.adCode == this.cityName) {
  311. this.cityNames = ele.adName
  312. }
  313. })
  314. this.formObj.adName = this.provNames + this.cityNames
  315. this.getAreaList(val)
  316. }
  317. },
  318. countryChange(val) {
  319. if (val && val != '') {
  320. // this.formObj.admDiv = val
  321. this.countryList.forEach(ele => {
  322. if (ele.adCode == this.countryName) {
  323. this.countryNames = ele.adName
  324. }
  325. })
  326. this.formObj.adName = this.provNames + this.cityNames + this.countryNames
  327. this.getAreaList(val)
  328. }
  329. },
  330. // 近期面貌
  331. recentAppearance() {
  332. this.xcztShow = true;
  333. },
  334. jqmmDialog() {
  335. this.xcztShow = false;
  336. },
  337. //影像
  338. imageClick() {
  339. if (!this.centerX && !this.centerY) {
  340. this.$message.warning('暂无经纬度信息!');
  341. return false;
  342. }
  343. this.imageShow = true;
  344. }
  345. },
  346. }
  347. </script>
  348. <style>
  349. #dcdxHeader {
  350. padding: 15px 20px;
  351. }
  352. #dxdcFooter {
  353. text-align: center;
  354. }
  355. #dxdcAside {
  356. border: 1px solid #d5d5ff;
  357. }
  358. .el-dialog__wrapper .el-treeWhite {
  359. /* max-height: 260px !important; */
  360. }
  361. </style>