FourContent.vue 37 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127
  1. <template>
  2. <div class="FourContent">
  3. <cart-item title="资源列表">
  4. <!-- <div class="change-panel-wrapper flex">
  5. <div class="panel-i" @click="valChange('gyyd')" :class="{selected: nowModel === 'gyyd'}">工业用地</div>
  6. <div class="split">|</div>
  7. <div class="panel-i" @click="valChange('syyd')" :class="{selected: nowModel === 'syyd'}">商业用地</div>
  8. <div class="split">|</div>
  9. <div class="panel-i" @click="valChange('zzyd')" :class="{selected: nowModel === 'zzyd'}">住宅用地</div>
  10. <div class="split">|</div>
  11. <div class="panel-i" @click="valChange('lsyd')" :class="{selected: nowModel === 'lsyd'}">教育用地</div>
  12. <div class="split">|</div>
  13. <div class="panel-i" @click="valChange('lsyd')" :class="{selected: nowModel === 'lsyd'}">临时用地</div>
  14. </div> -->
  15. <div class="title-tabs">
  16. <div class="tab" :class="{selected: nowModel == 'gyyd'}" @click="valChange('gyyd')">工 业</div>
  17. <div class="tab" :class="{selected: nowModel == 'syyd'}" @click="valChange('syyd')">商 业</div>
  18. <div class="tab" :class="{selected: nowModel == 'zzyd'}" @click="valChange('zzyd')">住 宅</div>
  19. <div class="tab" :class="{selected: nowModel == 'jyyd'}" @click="valChange('jyyd')">教 育</div>
  20. <div class="tab" :class="{selected: nowModel == 'lsyd'}" @click="valChange('lsyd')">临 时</div>
  21. </div>
  22. <div class="xm-list flex-1 flex-col">
  23. <div class="statistics-wrapper flex">
  24. <div class="statistics-item flex">
  25. <img src="@/assets/images/GyzzView/gyzs.png" class="item-left-icon">
  26. <div class="text">
  27. <span>地块宗数</span>
  28. <br>
  29. <span class="num"> {{ zs }} </span> <span style="font-size: 15px">宗</span>
  30. </div>
  31. </div>
  32. <div class="statistics-item flex">
  33. <img src="@/assets/images/GyzzView/gymj.png" class="item-left-icon">
  34. <div class="text">
  35. <span>地块面积</span>
  36. <br>
  37. <span class="num"> {{ mj }} </span><span style="font-size: 15px">亩</span>
  38. </div>
  39. </div>
  40. </div>
  41. <div class="search-wrapper" v-show="nowModel === 'gyyd'">
  42. <table>
  43. <tr>
  44. <th>行政区划</th>
  45. <td>
  46. <el-select v-model="query.xzqdm" placeholder="请选择" size="medium" style="width: 100%" clearable>
  47. <el-option
  48. label="滨江区"
  49. value="">
  50. </el-option>
  51. <el-option
  52. v-for="item in options"
  53. :key="item.value"
  54. :label="item.label"
  55. :value="item.value">
  56. </el-option>
  57. </el-select>
  58. </td>
  59. <th>权利人</th>
  60. <td>
  61. <el-input size="medium" v-model="query.name" placeholder="权利人" style="width: 100%" clearable></el-input>
  62. </td>
  63. </tr>
  64. </table>
  65. <transition enter-active-class="rollIn" leave-active-class="rollOut">
  66. <div v-show="foldShow">
  67. <table>
  68. <tr>
  69. <th>容积率</th>
  70. <td colspan="2">
  71. <el-input size="medium" v-model="query.rjlSmall" placeholder="小" style="width: 75%" clearable></el-input>
  72. <span style="color: white;margin-left: 15px">-</span>
  73. </td>
  74. <td>
  75. <el-input size="medium" v-model="query.rjlBig" placeholder="大" style="width: 70%" clearable></el-input>
  76. </td>
  77. <th>
  78. </th>
  79. </tr>
  80. <tr>
  81. <th>建筑密度</th>
  82. <td colspan="2">
  83. <el-input size="medium" v-model="query.jzmdSmall" placeholder="小" style="width: 75%" clearable></el-input>
  84. <span style="color: white;margin-left: 15px">-</span>
  85. </td>
  86. <td>
  87. <el-input size="medium" v-model="query.jzmdBig" placeholder="大" style="width: 70%" clearable></el-input>
  88. </td>
  89. <th>
  90. </th>
  91. </tr>
  92. <tr>
  93. <th>税收(万元)</th>
  94. <td colspan="2">
  95. <el-input size="medium" v-model="query.ssSmall" placeholder="小" style="width: 75%" clearable></el-input>
  96. <span style="color: white;margin-left: 15px">-</span>
  97. </td>
  98. <td>
  99. <el-input size="medium" v-model="query.ssBig" placeholder="大" style="width: 70%" clearable></el-input>
  100. </td>
  101. <th>
  102. </th>
  103. </tr>
  104. </table>
  105. </div>
  106. </transition>
  107. <table>
  108. <tr>
  109. <th>面积(亩)</th>
  110. <td colspan="2">
  111. <el-input size="medium" v-model="query.small" placeholder="面积小" style="width: 75%" clearable></el-input>
  112. <span style="color: white;margin-left: 15px">-</span>
  113. </td>
  114. <td>
  115. <el-input size="medium" v-model="query.big" placeholder="面积大" style="width: 70%" clearable></el-input>
  116. <div class="fold-wrapper" @click="foldShow = !foldShow"> <img src="@/assets/images/bjybz/choose.png" title="折叠/展开" style="vertical-align: middle"></div>
  117. </td>
  118. <th>
  119. <el-button size="medium" type="primary" @click="queryData()" icon="el-icon-search" style="position: absolute;top:2px;right:0px">查询</el-button>
  120. </th>
  121. </tr>
  122. </table>
  123. </div>
  124. <div class="search-wrapper" v-show="nowModel === 'syyd'">
  125. <table>
  126. <tr>
  127. <th>地块编号</th>
  128. <td>
  129. <el-input size="medium" v-model="query.id" placeholder="地块编号" style="width: 100%" clearable></el-input>
  130. </td>
  131. <th>项目名称</th>
  132. <td>
  133. <el-input size="medium" v-model="query.name" placeholder="项目名称" style="width: 100%" clearable></el-input>
  134. </td>
  135. </tr>
  136. </table>
  137. <transition enter-active-class="rollIn" leave-active-class="rollOut">
  138. <div v-show="foldShow">
  139. <table>
  140. <tr>
  141. <th>容积率</th>
  142. <td colspan="2">
  143. <el-input size="medium" v-model="query.rjlSmall" placeholder="小" style="width: 75%" clearable></el-input>
  144. <span style="color: white;margin-left: 15px">-</span>
  145. </td>
  146. <td>
  147. <el-input size="medium" v-model="query.rjlBig" placeholder="大" style="width: 70%" clearable></el-input>
  148. </td>
  149. <th>
  150. </th>
  151. </tr>
  152. <tr>
  153. <th>建设单位</th>
  154. <td colspan="3">
  155. <el-input size="medium" v-model="query.name1" placeholder="建设单位" style="width: 85%" clearable></el-input>
  156. </td>
  157. </tr>
  158. </table>
  159. </div>
  160. </transition>
  161. <table>
  162. <tr>
  163. <th>面积(亩)</th>
  164. <td colspan="2">
  165. <el-input size="medium" v-model="query.small" placeholder="面积小" style="width: 75%" clearable></el-input>
  166. <span style="color: white;margin-left: 15px">-</span>
  167. </td>
  168. <td>
  169. <el-input size="medium" v-model="query.big" placeholder="面积大" style="width: 70%" clearable></el-input>
  170. <div class="fold-wrapper" @click="foldShow = !foldShow"> <img src="@/assets/images/bjybz/choose.png" title="折叠/展开" style="vertical-align: middle"></div>
  171. </td>
  172. <th>
  173. <el-button size="medium" type="primary" @click="queryData()" icon="el-icon-search" style="position: absolute;top:2px;right:0px">查询</el-button>
  174. </th>
  175. </tr>
  176. </table>
  177. </div>
  178. <div class="search-wrapper" v-show="nowModel === 'zzyd' || nowModel === 'jyyd'">
  179. <table>
  180. <tr>
  181. <th>地块名称</th>
  182. <td>
  183. <el-input size="medium" v-model="query.name" placeholder="地块名称" style="width: 100%" clearable></el-input>
  184. </td>
  185. <th>权利人名称</th>
  186. <td>
  187. <el-input size="medium" v-model="query.name1" placeholder="权利人名称" style="width: 100%" clearable></el-input>
  188. </td>
  189. </tr>
  190. </table>
  191. <table>
  192. <tr>
  193. <th>面积(亩)</th>
  194. <td colspan="2">
  195. <el-input size="medium" v-model="query.small" placeholder="面积小" style="width: 75%" clearable></el-input>
  196. <span style="color: white;margin-left: 15px">-</span>
  197. </td>
  198. <td>
  199. <el-input size="medium" v-model="query.big" placeholder="面积大" style="width: 70%" clearable></el-input>
  200. </td>
  201. <th>
  202. <el-button size="medium" type="primary" @click="queryData()" icon="el-icon-search" style="position: absolute;top:2px;right:0px">查询</el-button>
  203. </th>
  204. </tr>
  205. </table>
  206. </div>
  207. <div class="search-wrapper" v-show="nowModel === 'lsyd'">
  208. <table>
  209. <tr>
  210. <th>项目名称</th>
  211. <td>
  212. <el-input size="medium" v-model="query.name" placeholder="项目名称" style="width: 100%" clearable></el-input>
  213. </td>
  214. <th>建设单位名称</th>
  215. <td>
  216. <el-input size="medium" v-model="query.name1" placeholder="建设单位名称" style="width: 100%" clearable></el-input>
  217. </td>
  218. </tr>
  219. </table>
  220. <table>
  221. <tr>
  222. <th>面积(亩)</th>
  223. <td colspan="2">
  224. <el-input size="medium" v-model="query.small" placeholder="面积小" style="width: 75%" clearable></el-input>
  225. <span style="color: white;margin-left: 15px">-</span>
  226. </td>
  227. <td>
  228. <el-input size="medium" v-model="query.big" placeholder="面积大" style="width: 70%" clearable></el-input>
  229. </td>
  230. <th>
  231. <el-button size="medium" type="primary" @click="queryData()" icon="el-icon-search" style="position: absolute;top:2px;right:0px">查询</el-button>
  232. <el-button size="medium" type="primary" @click="importCoordinate()" icon="el-icon-top" style="position: absolute;top:2px;right:110px">导入</el-button>
  233. </th>
  234. </tr>
  235. </table>
  236. </div>
  237. <div class="xm-wrapper" v-show="nowModel === 'gyyd'">
  238. <div class="item-box" v-for="(item, index) in list" :key="index" @click="xzClick(item)" :title="item.tdqlr">
  239. <div class="left-xzq">
  240. <div class="top-title">{{ index + 1 }}<span>.</span>{{ item.tdqlr }}</div>
  241. <div class="bottom-xzq">
  242. <img src="@/assets/images/YsbzView/location.png" alt="">
  243. {{ item.szx }}{{ item.szxz && '-' + item.szxz }}
  244. </div>
  245. <div class="bottom-xzq text-ellipsis">
  246. <span class="sssr-title">用地批准时间:</span> <span class="sssr-value">{{ dateFormat(item.ydpzsj) }}</span> <span class="sssr-unit"></span>
  247. <span class="sssr-title">面积:</span>
  248. <span class="sssr-value">{{ item.sjydmj && (item.sjydmj * 0.0015).toFixed(2) }}</span>
  249. <span class="sssr-unit">亩</span>
  250. </div>
  251. </div>
  252. </div>
  253. </div>
  254. <div class="xm-wrapper" v-show="nowModel === 'syyd'">
  255. <div class="item-box" v-for="(item, index) in list" :key="index" @click="xzClick(item)" :title="item.项目名称">
  256. <div class="left-xzq">
  257. <div class="top-title">{{ index + 1 }}<span>.</span>{{ item.项目名称 }}</div>
  258. <div class="bottom-xzq">
  259. <img src="@/assets/images/YsbzView/location.png" alt="">
  260. 滨江区
  261. <span class="sssr-title">面积:</span>
  262. <span class="sssr-value">{{ item.总用地面积 && (item.总用地面积 * 0.0015).toFixed(2) }}</span>
  263. <span class="sssr-unit">亩</span>
  264. </div>
  265. <div class="bottom-xzq text-ellipsis">
  266. <span class="sssr-title">建设单位:</span> <span class="sssr-value">{{ item.建设单位 }}</span> <span class="sssr-unit"></span>
  267. </div>
  268. </div>
  269. </div>
  270. </div>
  271. <div class="xm-wrapper" v-show="nowModel === 'zzyd' || nowModel === 'jyyd'">
  272. <div class="item-box" v-for="(item, index) in list" :key="index" @click="xzClick(item)" :title="item.dkmc">
  273. <div class="left-xzq">
  274. <div class="top-title">{{ index + 1 }}<span>.</span>{{ item.dkmc }}</div>
  275. <div class="bottom-xzq">
  276. <img src="@/assets/images/YsbzView/location.png" alt="">
  277. 滨江区
  278. <span class="sssr-title">面积:</span>
  279. <span class="sssr-value">{{ item.txmj && (item.txmj * 0.0015).toFixed(2) }}</span>
  280. <span class="sssr-unit">亩</span>
  281. </div>
  282. <div class="bottom-xzq text-ellipsis">
  283. <span class="sssr-title">签订日期:</span> <span class="sssr-value">{{ dateFormat(item.qdrq) }}</span> <span class="sssr-unit"></span>
  284. </div>
  285. <div class="bottom-xzq text-ellipsis">
  286. <span class="sssr-title">权利人:</span> <span class="sssr-value">{{ item.tdqlr }}</span> <span class="sssr-unit"></span>
  287. </div>
  288. </div>
  289. </div>
  290. </div>
  291. <div class="xm-wrapper" v-show="nowModel === 'lsyd'">
  292. <div class="item-box" v-for="(item, index) in list" :key="index" @click="xzClick(item)" :title="item.xmmc">
  293. <div class="left-xzq">
  294. <div class="top-title">{{ index + 1 }}<span>.</span>{{ item.xmmc }}</div>
  295. <div class="bottom-xzq">
  296. <img src="@/assets/images/YsbzView/location.png" alt="">
  297. 滨江区
  298. <span class="sssr-title">面积:</span>
  299. <span class="sssr-value">{{ item.spmj && (item.spmj * 0.0015).toFixed(2) }}</span>
  300. <span class="sssr-unit">亩</span>
  301. </div>
  302. <div class="bottom-xzq text-ellipsis">
  303. <span class="sssr-title">发证时间:</span> <span class="sssr-value">{{ dateFormat(item.fzsj) }}</span> <span class="sssr-unit"></span>
  304. </div>
  305. <div class="bottom-xzq text-ellipsis">
  306. <span class="sssr-title">到期时间:</span> <span class="sssr-value">{{ dateFormat(item.dqsj) }}</span> <span class="sssr-unit"></span>
  307. </div>
  308. </div>
  309. </div>
  310. </div>
  311. </div>
  312. <div class="page-div">
  313. <el-pagination
  314. background
  315. ref="test"
  316. layout="prev, pager, next"
  317. :total="config.total"
  318. :page-size="config.page.count"
  319. :page-sizes="[10, 20, 30]"
  320. :current-page="config.page.index"
  321. @current-change="pageToMe"
  322. @size-change="changePageMe"
  323. >
  324. </el-pagination>
  325. </div>
  326. </cart-item>
  327. <Modal v-model="isImportCoordinate" title="导入坐标" :footer-hide="true">
  328. <Upload
  329. :before-upload="handleUpload"
  330. style="display: inline-block"
  331. accept=".txt,.TXT"
  332. action=""
  333. >
  334. <Button icon="ios-cloud-upload-outline">选择文件</Button>
  335. </Upload>
  336. <Button
  337. type="primary"
  338. style="position: absolute; right: 120px"
  339. :loading="loadingStatus"
  340. @click="uploadTxt"
  341. >上传</Button>
  342. <Button style="position: absolute; right: 20px" @click="openHelpPage">帮助说明</Button>
  343. <div v-if="txtFile !== null" style="color: red">
  344. 选择的文件: {{ txtFile.name }}
  345. </div>
  346. <p style="margin-top:8px;font-weight:bold;font-size:16px">提示:如果界址点数量很多,需要等待比较长的时间。</p>
  347. </Modal>
  348. <Modal
  349. v-model="isErrorVisiable"
  350. title="提示"
  351. :footer-hide="true"
  352. >
  353. <p v-for="(item, index) in uploadErrorList" :key="index">{{ item }}</p>
  354. </Modal>
  355. </div>
  356. </template>
  357. <script>
  358. import CartItem from "@/views/components/CartItem.vue";
  359. export default {
  360. name: "FourContent",
  361. components:{
  362. CartItem
  363. },
  364. data() {
  365. return {
  366. mj: 0,
  367. zs: 0,
  368. query: {
  369. xzqdm: '',
  370. name: '',
  371. name1: '',
  372. id: '',
  373. big: '',
  374. small: '',
  375. rjlBig: '',
  376. rjlSmall: '',
  377. jzmdBig: '',
  378. jzmdSmall: '',
  379. ssBig: '',
  380. ssSmall: '',
  381. },
  382. options: [
  383. {
  384. "label": "西兴街道",
  385. "value": "330108001"
  386. },
  387. {
  388. "label": "长河街道",
  389. "value": "330108002"
  390. },
  391. {
  392. "label": "浦沿街道",
  393. "value": "330108003"
  394. },
  395. ],
  396. list: [
  397. ],
  398. config: {
  399. page: {
  400. count: 10,
  401. index: 1
  402. },
  403. total: 0
  404. },
  405. foldShow: false,
  406. nowModel: 'gyyd',
  407. txtFile:null,
  408. loadingStatus: false,
  409. isImportCoordinate: false,
  410. uploadErrorList: [],
  411. isErrorVisiable: false,
  412. }
  413. },
  414. mounted() {
  415. // if (this.$route['query']['type']) {
  416. // setTimeout(()=>{
  417. // this.valChange(this.$route['query']['type'])
  418. // },50)
  419. // } else {
  420. this.valChange('gyyd')
  421. // }
  422. },
  423. methods: {
  424. initGyyd() {
  425. this.initGyydHZ()
  426. this.initGyydListData();
  427. },
  428. initLsyd() {
  429. this.initLsydHZ()
  430. this.initLsydListData();
  431. },
  432. initSyyd() {
  433. this.initSyydHZ()
  434. this.initSyydListData();
  435. },
  436. initZzyd() {
  437. this.initZzydHZ()
  438. this.initZzydListData();
  439. },
  440. initJyyd() {
  441. this.initJyydHZ()
  442. this.initJyydListData();
  443. },
  444. handleUpload(file) {
  445. this.txtFile = file
  446. return false
  447. },
  448. openHelpPage() {
  449. window.open('/部系统界址点格式文档.html')
  450. },
  451. importCoordinate() {
  452. this.isImportCoordinate = true
  453. this.txtFile = null
  454. },
  455. async uploadTxt() {
  456. if (!this.txtFile) {
  457. this.$Message.error('请选择文件!')
  458. return
  459. }
  460. this.loadingStatus = true
  461. const formData = new FormData()
  462. formData.append('file', this.txtFile)
  463. const urlStr = '/api/ybz-bj/uploadTxt'
  464. const response = await this.$ajax.post(urlStr, formData, this)
  465. if (response.success) {
  466. this.isImportCoordinate = false
  467. const errorList = response.data.errorList
  468. if (!errorList || !errorList.length) {
  469. this.$Message.success('上传界址点成功!')
  470. } else {
  471. this.isErrorVisiable = true
  472. this.uploadErrorList = errorList
  473. }
  474. this.queryData();
  475. } else {
  476. this.isErrorVisiable = true
  477. this.uploadErrorList = [response.message]
  478. }
  479. this.loadingStatus = false
  480. return false
  481. },
  482. queryData() {
  483. if (this.nowModel === 'gyyd') {
  484. this.$vm.$emit("setVisibleLayerIdEvent", 'bj-gyyd-new')
  485. this.initGyyd()
  486. let refreshP = "1=1"
  487. if (this.query.xzqdm) {
  488. refreshP += ` and xzqdm like '${this.query.xzqdm}%'`
  489. }
  490. if (this.query.name) {
  491. refreshP += ` and tdqlr like '%${this.query.name}%'`
  492. }
  493. if (this.query.small) {
  494. let num = this.query.small / 0.0015;
  495. refreshP += ` and sjydmj >= ${num}`
  496. }
  497. if (this.query.big) {
  498. let num = this.query.big / 0.0015;
  499. refreshP += ` and sjydmj <= ${num}`
  500. }
  501. if (this.query.rjlSmall) {
  502. refreshP += ` and sjrjl >= ${this.query.rjlSmall}`
  503. }
  504. if (this.query.rjlBig) {
  505. refreshP += ` and sjrjl <= ${this.query.rjlBig}`
  506. }
  507. if (this.query.ssSmall) {
  508. refreshP += ` and ss2022 >= ${this.query.ssSmall}`
  509. }
  510. if (this.query.ssBig) {
  511. refreshP += ` and ss2022 <= ${this.query.ssBig}`
  512. }
  513. if (this.query.jzmdSmall) {
  514. refreshP += ` and sjjzmd >= ${this.query.jzmdSmall}`
  515. }
  516. if (this.query.jzmdBig) {
  517. refreshP += ` and sjjzmd <= ${this.query.jzmdBig}`
  518. }
  519. if (refreshP !== '1=1') {
  520. refreshP = refreshP.replace("1=1 and ", '')
  521. }
  522. // this.$vm.$emit("updateLayer", {id: "bj-gyyd-new",param: refreshP,layerIdx1: 0,layerIdx2: 1})
  523. } else if (this.nowModel === 'syyd') {
  524. this.$vm.$emit("setVisibleLayerIdEvent", 'syyd')
  525. this.initSyyd()
  526. } else if (this.nowModel === 'zzyd') {
  527. this.$vm.$emit("setVisibleLayerIdEvent", 'bj-zzyd-new')
  528. this.initZzyd()
  529. } else if (this.nowModel === 'lsyd') {
  530. this.$vm.$emit("setVisibleLayerIdEvent", 'bj-lsyd')
  531. this.initLsyd()
  532. } else if (this.nowModel === 'jyyd') {
  533. this.$vm.$emit("setVisibleLayerIdEvent", 'bj-jyyd')
  534. this.initJyyd()
  535. }
  536. setTimeout(()=>{
  537. this.$vm.$emit("switchLayerShow", true);
  538. }, 500)
  539. },
  540. initLsydHZ() {
  541. let p = {
  542. ...this.query
  543. }
  544. const urlApi = `/api/ybz-bj/lsydHZ`;
  545. this.$ajax.get(urlApi, p, this, false).then(result=>{
  546. const { sl,mj } = result.data
  547. this.zs = sl
  548. this.mj = mj
  549. })
  550. },
  551. initLsydListData() {
  552. const urlApi = `/api/ybz-bj/lsydList`;
  553. let p = {
  554. ...this.query,
  555. pageIndex: this.config.page.index,
  556. pageSize: this.config.page.count
  557. }
  558. this.$ajax.get(urlApi, p, this, false).then((result) => {
  559. const data = result["data"] || {};
  560. this.list = data['list'];
  561. this.config.total = data['total']
  562. });
  563. },
  564. initGyydHZ() {
  565. let p = {
  566. ...this.query
  567. }
  568. const urlApi = `/api/ybz-bj/gyydHZ`;
  569. this.$ajax.get(urlApi, p, this, false).then(result=>{
  570. const { sl,mj } = result.data
  571. this.zs = sl
  572. this.mj = mj
  573. })
  574. },
  575. initGyydListData() {
  576. const urlApi = `/api/ybz-bj/gyydList`;
  577. let p = {
  578. ...this.query,
  579. pageIndex: this.config.page.index,
  580. pageSize: this.config.page.count
  581. }
  582. this.$ajax.get(urlApi, p, this, false).then((result) => {
  583. const data = result["data"] || {};
  584. this.list = data['list'];
  585. this.config.total = data['total']
  586. });
  587. },
  588. initSyydHZ() {
  589. let p = {
  590. ...this.query
  591. }
  592. const urlApi = `/api/ybz-bj/syydHZ`;
  593. this.$ajax.get(urlApi, p, this, false).then(result=>{
  594. const { sl,mj } = result.data
  595. this.zs = sl
  596. this.mj = mj
  597. })
  598. },
  599. initSyydListData() {
  600. const urlApi = `/api/ybz-bj/syydList`;
  601. let p = {
  602. ...this.query,
  603. pageIndex: this.config.page.index,
  604. pageSize: this.config.page.count
  605. }
  606. this.$ajax.get(urlApi, p, this, false).then((result) => {
  607. const data = result["data"] || {};
  608. this.list = data['list'];
  609. this.config.total = data['total']
  610. });
  611. },
  612. initZzydHZ() {
  613. let p = {
  614. ...this.query
  615. }
  616. const urlApi = `/api/ybz-bj/zzydHZ`;
  617. this.$ajax.get(urlApi, p, this, false).then(result=>{
  618. const { sl,mj } = result.data
  619. this.zs = sl
  620. this.mj = mj
  621. })
  622. },
  623. initZzydListData() {
  624. const urlApi = `/api/ybz-bj/zzydList`;
  625. let p = {
  626. ...this.query,
  627. pageIndex: this.config.page.index,
  628. pageSize: this.config.page.count
  629. }
  630. this.$ajax.get(urlApi, p, this, false).then((result) => {
  631. const data = result["data"] || {};
  632. this.list = data['list'];
  633. this.config.total = data['total']
  634. });
  635. },
  636. initJyydHZ() {
  637. let p = {
  638. ...this.query
  639. }
  640. const urlApi = `/api/ybz-bj/jyydHZ`;
  641. this.$ajax.get(urlApi, p, this, false).then(result=>{
  642. const { sl,mj } = result.data
  643. this.zs = sl
  644. this.mj = mj
  645. })
  646. },
  647. initJyydListData() {
  648. const urlApi = `/api/ybz-bj/jyydList`;
  649. let p = {
  650. ...this.query,
  651. pageIndex: this.config.page.index,
  652. pageSize: this.config.page.count
  653. }
  654. this.$ajax.get(urlApi, p, this, false).then((result) => {
  655. const data = result["data"] || {};
  656. this.list = data['list'];
  657. this.config.total = data['total']
  658. });
  659. },
  660. // 点击上一页、下一页以及指定页
  661. pageToMe (index) {
  662. this.config.page.index = index;
  663. if (this.nowModel === 'gyyd') {
  664. this.initGyydListData();
  665. } else if (this.nowModel === 'syyd') {
  666. this.initSyydListData();
  667. } else if (this.nowModel === 'zzyd') {
  668. this.initZzydListData();
  669. } else if (this.nowModel === 'lsyd') {
  670. this.initLsydListData();
  671. }
  672. },
  673. // 改变每页显示的条数
  674. changePageMe (size) {
  675. this.config.page.count = size;
  676. this.initGyydListData();
  677. },
  678. xzClick(item) {
  679. if (this.nowModel === 'gyyd') {
  680. this.$vm.$emit("setVisibleLayerIdEvent", 'bj-gyyd-new')
  681. setTimeout(() => {
  682. this.$emit('clickCallback', item, 'bj-gyyd-new')
  683. this.$vm.$emit("location-feature-where", { layerId: 'bj-gyyd-new', where: `dksyh = '${item.dksyh}'`, setting: {outFields: 'dksyh,szx,szxz,sjydmj,tdqlr'} })
  684. }, 100)
  685. } else if (this.nowModel === 'syyd') {
  686. this.$vm.$emit("setVisibleLayerIdEvent", 'syyd')
  687. setTimeout(()=>{
  688. this.$emit('clickCallback', item, 'syyd')
  689. this.$vm.$emit("location-feature-where", { layerId: 'syyd', where: `"新增调查地" = '${item.新增调查地}'`, setting: {outFields: '新增调查地,项目名称,总用地面积,建设单位'} })
  690. },100)
  691. } else if (this.nowModel === 'zzyd') {
  692. this.$vm.$emit("setVisibleLayerIdEvent", 'bj-zzyd-new')
  693. setTimeout(()=>{
  694. this.$emit('clickCallback', item, 'bj-zzyd-new')
  695. this.$vm.$emit("location-feature-where", { layerId: 'bj-zzyd-new', where: `id = '${item.id}'`, setting: {outFields: 'id,dkmc,tdqlr,txmj,tdyt'} })
  696. }, 100)
  697. } else if (this.nowModel === 'lsyd') {
  698. this.$vm.$emit("setVisibleLayerIdEvent", 'bj-lsyd')
  699. setTimeout(()=>{
  700. this.$emit('clickCallback', item, 'bj-lsyd')
  701. this.$vm.$emit("location-feature-where", { layerId: 'bj-lsyd', where: `xh = '${item.xh}'`, setting: {outFields: 'objectid,xh,xmmc,spmj,jsdw'} })
  702. }, 100)
  703. } else if (this.nowModel === 'jyyd') {
  704. this.$vm.$emit("setVisibleLayerIdEvent", 'bj-jyyd')
  705. setTimeout(()=>{
  706. this.$emit('clickCallback', item, 'bj-jyyd')
  707. this.$vm.$emit("location-feature-where", { layerId: 'bj-jyyd', where: `id = '${item.id}'`, setting: {outFields: 'id,dkmc,tdqlr,txmj,tdyt'} })
  708. }, 100)
  709. }
  710. setTimeout(()=>{
  711. this.$vm.$emit("switchLayerShow", true);
  712. }, 100)
  713. },
  714. dateFormat(date) {
  715. if (date === null || date === undefined || date === "") {
  716. return ''
  717. }
  718. var time = new Date(date);
  719. var y = time.getFullYear();
  720. var m = time.getMonth() + 1;
  721. var d = time.getDate();
  722. var mStr = m < 10 ? '0' + m : m.toString();
  723. var dStr = d < 10 ? '0' + d : d.toString();
  724. return y + "-" + mStr + '-' + dStr;
  725. },
  726. valChange(name) {
  727. this.nowModel = name
  728. this.foldShow = false
  729. this.mj = 0,
  730. this.zs = 0,
  731. this.list = [];
  732. this.config.page.index = 1;
  733. this.config.page.count = 10;
  734. this.config.total = 0;
  735. this.query = {
  736. xzqdm: '',
  737. name: '',
  738. name1: '',
  739. id: '',
  740. big: '',
  741. small: '',
  742. rjlBig: '',
  743. rjlSmall: '',
  744. jzmdBig: '',
  745. jzmdSmall: '',
  746. ssBig: '',
  747. ssSmall: ''
  748. }
  749. this.$vm.$emit("location-mask-self-where", { layerId: 'xzqh-x-search', where: `xzqdm = '330108'` });
  750. this.queryData()
  751. }
  752. }
  753. }
  754. </script>
  755. <style scoped lang="scss">
  756. .FourContent {
  757. height: 100%;
  758. position: relative;
  759. overflow: hidden;
  760. ::v-deep .content {
  761. display: flex;
  762. flex-direction: column;
  763. }
  764. .title-tabs {
  765. position: absolute;
  766. right: 10px;
  767. top: 8px;
  768. display: inline-block;
  769. width: 300px;
  770. display: flex;
  771. background: #003B7C;
  772. height: 30px;
  773. color: #fff;
  774. border-radius: 5px;
  775. .tab {
  776. flex: 1;
  777. height: 30px;
  778. line-height: 30px;
  779. text-align: center;
  780. cursor: pointer;
  781. border-right: 1px solid #468EC0;
  782. border-top: 1px solid #468EC0;
  783. border-bottom: 1px solid #468EC0;
  784. font-weight: bold;
  785. &:first-child {
  786. border-radius: 5px 0 0 5px;
  787. }
  788. &:last-child {
  789. border-radius: 0 5px 5px 0;
  790. }
  791. &.selected,&:hover {
  792. background: #25F7FF;
  793. font-size: 15px;
  794. }
  795. }
  796. }
  797. .change-panel-wrapper {
  798. position: absolute;
  799. top: 0;
  800. left: 0;
  801. width: 100%;
  802. justify-content: space-between;
  803. align-items: center;
  804. height: 46px;
  805. padding: 0 10px 0 40px;
  806. .panel-i {
  807. font-size: 16px;
  808. color: #FFF;
  809. cursor: pointer;
  810. &:hover,&.selected {
  811. font-size: 20px;
  812. cursor: pointer;
  813. font-weight: bold;
  814. color: #25F7FF;
  815. border-bottom: 2px solid #25F7FF;
  816. }
  817. }
  818. .split {
  819. color: #FFF;
  820. }
  821. }
  822. ::v-deep .select {
  823. position: absolute;
  824. top: 5px;
  825. left: 20px;
  826. background: transparent;
  827. .el-input {
  828. input {
  829. border: none;
  830. font-size: 22px;
  831. font-weight: bold;
  832. color: #FFF;
  833. background: transparent;
  834. }
  835. .el-input__suffix {
  836. .el-input__suffix-inner {
  837. .el-select__caret {
  838. color: #FFF;
  839. }
  840. }
  841. }
  842. }
  843. }
  844. .xm-list{
  845. .statistics-wrapper {
  846. margin-bottom: 10px;
  847. border-radius: 5px;
  848. background: #1b366a;
  849. padding: 10px 20px;
  850. .statistics-item {
  851. width: 50%;
  852. .item-left-icon {
  853. width: 44px;
  854. height: 44px;
  855. margin-right: 15px;
  856. margin-top: 2px;
  857. }
  858. .text {
  859. span {
  860. font-size: 18px;
  861. font-family: MicrosoftYaHei;
  862. color: #FFF;
  863. &.num {
  864. font-size: 20px;
  865. font-weight: bold;
  866. }
  867. }
  868. }
  869. }
  870. }
  871. ::v-deep .search-wrapper {
  872. table {
  873. width: 100%;
  874. tr {
  875. height: 40px;
  876. td,th {
  877. position: relative;
  878. .el-input {
  879. input {
  880. color: rgba(135, 193, 255, 1);
  881. background: transparent;
  882. border: 1px solid #4F91D7;
  883. &::-webkit-input-placeholder {
  884. /* WebKit browsers,webkit内核浏览器 */
  885. color: rgba(135, 193, 255, 0.8);
  886. }
  887. &:-moz-placeholder {
  888. /* Mozilla Firefox 4 to 18 */
  889. color: rgba(135, 193, 255, 0.8);
  890. }
  891. &::-moz-placeholder {
  892. /* Mozilla Firefox 19+ */
  893. color: rgba(135, 193, 255, 0.8);
  894. }
  895. &:-ms-input-placeholder {
  896. /* Internet Explorer 10+ */
  897. color: rgba(135, 193, 255, 0.8);
  898. }
  899. }
  900. }
  901. }
  902. th {
  903. width: 20%;
  904. font-size: 16px;
  905. color: rgba(135, 193, 255, 1);
  906. }
  907. td {
  908. width: 30%;
  909. .el-select {
  910. .el-select__tags {
  911. input {
  912. color: rgba(135, 193, 255, 1);
  913. }
  914. span {
  915. .el-tag {
  916. border: 1px solid #4F91D7;
  917. background: transparent;
  918. .el-select__tags-text {
  919. color: rgba(135, 193, 255, 1);
  920. }
  921. .el-tag__close {
  922. color: rgba(135, 193, 255, 1);
  923. background: transparent;
  924. border: 1px solid #4F91D7;
  925. }
  926. }
  927. }
  928. }
  929. }
  930. .submit-btn {
  931. color: #133887;
  932. background: #56C1FF;
  933. float: right;
  934. &:hover {
  935. color: #FFF;
  936. }
  937. }
  938. }
  939. }
  940. }
  941. @keyframes rollIn {
  942. 0% {
  943. opacity: 0;
  944. height: 0;
  945. transform: translateY(-100%);
  946. }
  947. 100% {
  948. opacity: 1;
  949. height: 128px;
  950. transform: translateY(0);
  951. }
  952. }
  953. @keyframes rollOut {
  954. 0% {
  955. height: 128px;
  956. opacity: 1;
  957. transform: translateY(0);
  958. }
  959. 100% {
  960. opacity: 0;
  961. height: 0;
  962. transform: translateY(-100%);
  963. }
  964. }
  965. /*滚入——从上侧*/
  966. .rollIn {
  967. animation: rollIn 0.3s;
  968. }
  969. /*滚出——从上侧*/
  970. .rollOut {
  971. animation: rollOut 0.3s;
  972. }
  973. .fold-wrapper {
  974. position: absolute;
  975. top: 4px;
  976. right: 4px;
  977. width: 30px;
  978. line-height: 32px;
  979. height: 32px;
  980. border-radius: 5px;
  981. color: #FFF;
  982. background: transparent;
  983. border: 1px solid #4F91D7;
  984. box-shadow: inset 0 0 10px #4F91D7;
  985. font-weight: normal;
  986. padding-left: 2px;
  987. cursor: pointer;
  988. font-size: 14px;
  989. &:hover {
  990. color: rgba(135, 193, 255, 1);
  991. }
  992. }
  993. }
  994. .xm-wrapper {
  995. flex: 1;
  996. overflow-y: auto;
  997. margin-top: 5px;
  998. .item-box{
  999. // height: 80px;
  1000. // line-height: 45px;
  1001. background: rgba(27,54,104,.3);
  1002. border: .0625rem solid #395fa5;
  1003. cursor: pointer;
  1004. margin-bottom: 8px;
  1005. display: flex;
  1006. padding-bottom: 10px;
  1007. &:hover {
  1008. background: linear-gradient(90deg,#0e66bf,#0c2b68);
  1009. }
  1010. .left-xzq{
  1011. // width: 360px;
  1012. // height: 80px;
  1013. overflow: hidden;
  1014. text-overflow: ellipsis;
  1015. font-weight: 400;
  1016. .top-title {
  1017. width: 100%;
  1018. padding-top: .625rem;
  1019. padding-left: 1.25rem;
  1020. font-size: 20px;
  1021. font-family: Alibaba PuHuiTi;
  1022. font-weight: 700;
  1023. color: #fff;
  1024. overflow: hidden;
  1025. text-overflow: ellipsis;
  1026. white-space: nowrap;
  1027. font-weight: 400;
  1028. }
  1029. .bottom-xzq {
  1030. width: 100%;
  1031. // height: 1.5625rem;
  1032. padding-left: 1.25rem;
  1033. font-size: 1rem;
  1034. font-family: Alibaba PuHuiTi;
  1035. font-weight: 400;
  1036. color: #25f7ff;
  1037. margin-top: 5px;
  1038. img{
  1039. width: 20px;
  1040. vertical-align: sub;
  1041. }
  1042. .sssr-title {
  1043. margin-left: 20px;
  1044. color: #ffd100;
  1045. }
  1046. .sssr-value {
  1047. font-size: 18px;
  1048. }
  1049. .sssr-unit {
  1050. color: #fff;
  1051. }
  1052. }
  1053. }
  1054. .right-des{
  1055. height: 30px;
  1056. border-radius: 5px;
  1057. padding: 5px 10px;
  1058. text-align: center;
  1059. color: #FFF;
  1060. margin-top: 24px;
  1061. font-size: 13px;
  1062. font-weight: bold;
  1063. &.yes {
  1064. background: #00BC77 !important;
  1065. .color-circle {
  1066. background: #0CBF97;
  1067. }
  1068. }
  1069. &.no {
  1070. // background: #009FFB;
  1071. background: orange;
  1072. .color-circle {
  1073. background: orange;
  1074. }
  1075. }
  1076. .color-circle {
  1077. width: 12px;
  1078. height: 12px;
  1079. display: inline-block;
  1080. border-radius: 50%;
  1081. }
  1082. }
  1083. }
  1084. }
  1085. }
  1086. .page-div {
  1087. // height: 50px;
  1088. padding-top: 10px;
  1089. text-align: center;
  1090. ::v-deep {
  1091. .el-pagination .el-select .el-input {
  1092. }
  1093. .el-pagination.is-background .el-pager li:not(.disabled).active {
  1094. background-color: #114f8f !important;
  1095. color: #1ea0f7 !important;
  1096. }
  1097. .el-input__inner {
  1098. -webkit-appearance: none;
  1099. background-color: #04376c;
  1100. background-image: none;
  1101. border-radius: 0.25rem;
  1102. border: 0.0625rem solid #3264da !important;
  1103. box-sizing: border-box;
  1104. color: #fff !important;
  1105. display: inline-block;
  1106. height: 30px;
  1107. line-height: 30px;
  1108. outline: 0;
  1109. padding: 0 0.9375rem;
  1110. -webkit-transition: border-color .2s cubic-bezier(.645,.045,.355,1);
  1111. transition: border-color .2s cubic-bezier(.645,.045,.355,1);
  1112. }
  1113. .el-pagination.is-background .btn-next, .el-pagination.is-background .btn-prev, .el-pagination.is-background .el-pager li {
  1114. margin: 0 0.3125rem;
  1115. background-color: #04376c ;
  1116. color: #fff;
  1117. min-width: 1.875rem;
  1118. border-radius: 0.125rem;
  1119. }
  1120. }
  1121. }
  1122. }
  1123. </style>