123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158
  1. <template>
  2. <div class="subPage">
  3. <form class="mainForm">
  4. <ul>
  5. <li class="flex-h">
  6. <span>案场名称:</span>
  7. <div class="flex-item">
  8. <div style="width:50%">
  9. <el-input
  10. placeholder="请输入内容"
  11. v-model="postData.name"
  12. clearable>
  13. </el-input>
  14. </div>
  15. </div>
  16. </li>
  17. <li class="flex-h">
  18. <span>案场地址:</span>
  19. <div class="flex-item">
  20. <div>
  21. <el-input
  22. type="textarea"
  23. :autosize="{ minRows: 3, maxRows: 5}"
  24. placeholder="请填写详细地址"
  25. v-model="postData.address">
  26. </el-input>
  27. </div>
  28. </div>
  29. </li>
  30. <li class="flex-h">
  31. <span>案场头像:</span>
  32. <div class="flex-item">
  33. <div>
  34. <a class="formImg">
  35. <img src="" class="centerLabel contain" alt="">
  36. <i class="iconfont icon-quxiao"></i>
  37. </a>
  38. <el-button type="success" size="mini">上传图片</el-button>
  39. </div>
  40. </div>
  41. </li>
  42. <li class="flex-h">
  43. <span>案场负责人:</span>
  44. <div class="flex-item">
  45. <div style="width:50%">
  46. <el-input
  47. placeholder="真实姓名,可包含汉字、英文"
  48. v-model="postData.leaderName"
  49. clearable>
  50. </el-input>
  51. </div>
  52. </div>
  53. </li>
  54. <li class="flex-h">
  55. <span>负责人手机号:</span>
  56. <div class="flex-item">
  57. <div style="width:50%">
  58. <el-input
  59. placeholder="限中国地区有效手机号"
  60. v-model="postData.leaderPhone"
  61. clearable>
  62. </el-input>
  63. </div>
  64. </div>
  65. </li>
  66. <li class="flex-h">
  67. <span>左击地图获取经纬度:</span>
  68. <div class="flex-item">
  69. <div style="width:50%">
  70. <el-input
  71. placeholder=""
  72. v-model="postData.atitudeAndLongitude"
  73. clearable>
  74. </el-input>
  75. </div>
  76. </div>
  77. </li>
  78. <li class="map flex-v">
  79. <div class="search">
  80. <el-amap-search-box class="search-box" :search-option="searchOption" :on-search-result="onSearchResult"></el-amap-search-box>
  81. </div>
  82. <div class="flex-item">
  83. <div>
  84. <el-amap ref="map" vid="amapDemo" :center="mapCenter" :zoom="12" :events="events" class="amap-demo">
  85. <el-amap-marker v-for="(item,index) in markers" :key="index" :position="item" ></el-amap-marker>
  86. </el-amap>
  87. </div>
  88. </div>
  89. </li>
  90. <li style="text-align:center">
  91. <el-button type="primary" size="mini" @click="submit">保存</el-button>
  92. <el-button type="danger" size="mini" @click="cancel">取消</el-button>
  93. </li>
  94. </ul>
  95. </form>
  96. </div>
  97. </template>
  98. <script>
  99. export default {
  100. name: '',
  101. data () {
  102. var _self = this
  103. return {
  104. postData: {
  105. name: '', // 案场名称
  106. address: '', // 案场地址
  107. leaderName: '', // 负责人
  108. leaderPhone: '', // 负责人手机号
  109. atitudeAndLongitude: '',
  110. },
  111. markers: [],
  112. searchOption: {
  113. city: '南京',
  114. citylimit: false
  115. },
  116. mapCenter: [118.789509, 32.019989],
  117. events: {
  118. click: (e) => {
  119. _self.postData.atitudeAndLongitude = e.lnglat.lat + ',' + e.lnglat.lng
  120. }
  121. },
  122. }
  123. },
  124. components: {},
  125. methods: {
  126. onSearchResult (pois) {
  127. let latSum = 0
  128. let lngSum = 0
  129. if (pois.length > 0) {
  130. pois.forEach(poi => {
  131. let { lng, lat } = poi
  132. lngSum += lng
  133. latSum += lat
  134. this.markers.push([poi.lng, poi.lat])
  135. })
  136. let center = {
  137. lng: lngSum / pois.length,
  138. lat: latSum / pois.length
  139. }
  140. this.mapCenter = [center.lng, center.lat]
  141. }
  142. },
  143. submit () {
  144. console.log(this.postData)
  145. },
  146. cancel () {
  147. this.$router.go(-1)
  148. }
  149. }
  150. }
  151. </script>
  152. <!-- Add "scoped" attribute to limit CSS to this component only -->
  153. <style lang="scss" scoped>
  154. @import "page.scss";
  155. </style>