Detail.vue 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202
  1. <template>
  2. <div class="xm-detal">
  3. <el-tabs type="border-card" v-model="currentTab">
  4. <el-tab-pane label="项目信息" name="tab1">
  5. <div class="tables">
  6. <div class="title">项目索引</div>
  7. <div class="content">
  8. <el-input
  9. v-model="detailData.xmbh"
  10. placeholder="请输入项目索引"
  11. clearable
  12. :disabled="!editor"
  13. />
  14. </div>
  15. <div class="title">项目名称</div>
  16. <div class="content">
  17. <el-input
  18. v-model="detailData.xmmc"
  19. placeholder="请输入项目名称"
  20. clearable
  21. :disabled="!editor"
  22. />
  23. </div>
  24. <div class="title">市</div>
  25. <div class="content">
  26. <el-input
  27. v-model="detailData.szs"
  28. placeholder="请输入市"
  29. clearable
  30. :disabled="!editor"
  31. />
  32. </div>
  33. <div class="title">县区</div>
  34. <div class="content">
  35. <el-input
  36. v-model="detailData.xzq"
  37. placeholder="请输入项目县区"
  38. clearable
  39. :disabled="!editor"
  40. />
  41. </div>
  42. <div class="title">备案号</div>
  43. <div class="content">
  44. <el-input
  45. v-model="detailData.bah"
  46. placeholder="请输入备案号"
  47. clearable
  48. :disabled="!editor"
  49. />
  50. </div>
  51. <div class="title">备案面积</div>
  52. <div class="content">
  53. <el-input
  54. v-model="detailData.bamj"
  55. placeholder="请输入备案面积"
  56. clearable
  57. :disabled="!editor"
  58. />
  59. </div>
  60. <div class="title">备案时间</div>
  61. <div class="content">
  62. <el-date-picker
  63. v-model="detailData.basj"
  64. type="date"
  65. value-format="yyyy-MM-dd"
  66. placeholder="请输入备案时间"
  67. />
  68. </div>
  69. <div class="title">用途</div>
  70. <div class="content">
  71. <el-input
  72. v-model="detailData.yt"
  73. placeholder="请输入用途"
  74. clearable
  75. :disabled="!editor"
  76. />
  77. </div>
  78. <div class="title">备注</div>
  79. <div class="content">
  80. <el-input
  81. v-model="detailData.bz"
  82. placeholder="请输入备注"
  83. clearable
  84. :disabled="!editor"
  85. />
  86. </div>
  87. </div>
  88. <div class="btn-group">
  89. <el-button type="primary" @click="onSavePcHandle">保存</el-button>
  90. </div>
  91. </el-tab-pane>
  92. <el-tab-pane label="查看地图" name="tab2">
  93. <div class="map_box">
  94. <base-map ref="baseMap" v-if="currentTab === 'tab2'" :overlayShow="true" @drawShapeJson="drawShapeJsonEvent" :visibleLayerIds="visibleLayerId"/>
  95. </div>
  96. </el-tab-pane>
  97. </el-tabs>
  98. </div>
  99. </template>
  100. <script>
  101. import BaseMap from "../../../components/common/BaseMap";
  102. export default {
  103. name: "Detail",
  104. components: { BaseMap },
  105. data() {
  106. return {
  107. user: JSON.parse(window.sessionStorage.getItem("yzt-user")),
  108. currentTab: 'tab1',
  109. visibleLayerId:['YHYZT_SSNYD'],
  110. detailData: {},
  111. editor: false
  112. };
  113. },
  114. props: {
  115. contentWidth: Number,
  116. contentHeight: Number,
  117. },
  118. methods: {
  119. initDetailData (row, isEditor = false) {
  120. this.currentTab = 'tab1'
  121. this.editor = isEditor
  122. this.queryDetail(row['objectid'])
  123. },
  124. //查询报批项目信息
  125. queryDetail (id) {
  126. if(!id) return
  127. this.$ajax.get(`/api/ssnyd/${id}`, null, this, true).then(res => {
  128. if (res) {
  129. this.detailData = res
  130. }
  131. })
  132. },
  133. onSavePcHandle () {
  134. const sendData = {
  135. ...this.detailData
  136. }
  137. delete sendData['shape']
  138. this.$ajax.postJson('/api/ssnyd/update', sendData, this, true).then(res => {
  139. if (res.data) {
  140. this.$Message.success('更新成功!')
  141. this.$emit('init')
  142. }
  143. })
  144. },
  145. locationDk(index,row){
  146. if(row.pewg_id){
  147. this.detailShow = false;
  148. let dkbhArr = row.pewg_id?row.pewg_id.split(","):'';
  149. let arr = dkbhArr.map(i=>{return "'"+i+"'";});
  150. this.$vm.$emit('locationGlobal', this.visibleLayerId[0], `xm_guid in (${arr.join()})`)
  151. //this.$message.warning("暂无图形")
  152. }
  153. },
  154. drawShapeJsonEvent(json){
  155. if(json){
  156. this.drawShapeJson = json;
  157. this.getBpxmList();
  158. this.$message.success("绘制结束");
  159. }
  160. },
  161. }
  162. };
  163. </script>
  164. <style scoped lang="scss">
  165. .xm-detal {
  166. width: 100%;
  167. .map_box {
  168. width: 100%;
  169. height: 600px;
  170. }
  171. .btn-group {
  172. margin-top: 20px;
  173. text-align: right;
  174. }
  175. $t_w: 155px;
  176. .tables {
  177. display: flex;
  178. flex-wrap: wrap;
  179. justify-content: space-between; /* 可选的对齐方式 */
  180. border-top: 1px solid #d6d6d6;
  181. border-right: 1px solid #d6d6d6;
  182. display: grid;
  183. grid-template-columns: repeat(3, $t_w 1fr);
  184. >div {
  185. border-left: 1px solid #d6d6d6;
  186. border-bottom: 1px solid #d6d6d6;
  187. padding: 8px 10px;
  188. display: inline-block;
  189. color: #1f2f47;
  190. &.title {
  191. width: $t_w;
  192. background: #f4f6f8;
  193. font-family: AlibabaPuHuiTiM;
  194. font-weight: normal;
  195. text-align: center;
  196. }
  197. }
  198. }
  199. }
  200. </style>