config.vue 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. <template>
  2. <collapse-item name="基础配置">
  3. <setting-item-box name="Key" :alone="true">
  4. <setting-item>
  5. <n-input v-model:value="optionData.amapKey" size="small"></n-input>
  6. </setting-item>
  7. </setting-item-box>
  8. <setting-item-box name="语言类型" :alone="true">
  9. <setting-item>
  10. <n-select size="small" v-model:value="optionData.lang" :options="langOptions" />
  11. </setting-item>
  12. </setting-item-box>
  13. <setting-item-box name="主题样式" :alone="true">
  14. <setting-item>
  15. <n-select size="small" v-model:value="optionData.amapStyleKey" :options="themeOptions" />
  16. </setting-item>
  17. </setting-item-box>
  18. <setting-item-box name="自定义地图样式ID" :alone="true">
  19. <setting-item>
  20. <n-input size="small" v-model:value="optionData.amapStyleKeyCustom" />
  21. </setting-item>
  22. </setting-item-box>
  23. </collapse-item>
  24. <collapse-item name="地图配置">
  25. <n-checkbox-group v-model:value="optionData.features">
  26. <n-space item-style="display: flex;">
  27. <n-checkbox :value="item.value" :label="item.label" v-for="(item, index) in featuresOptions" :key="index" />
  28. </n-space>
  29. </n-checkbox-group>
  30. </collapse-item>
  31. <collapse-item name="相机配置">
  32. <setting-item-box name="经度" :alone="true">
  33. <setting-item>
  34. <n-input-number v-model:value="optionData.amapLon" size="small"></n-input-number>
  35. </setting-item>
  36. </setting-item-box>
  37. <setting-item-box name="纬度" :alone="true">
  38. <setting-item>
  39. <n-input-number v-model:value="optionData.amapLat" size="small"></n-input-number>
  40. </setting-item>
  41. </setting-item-box>
  42. <setting-item-box name="初始缩放" :alone="true">
  43. <setting-item>
  44. <n-input-number v-model:value="optionData.amapZindex" size="small"></n-input-number>
  45. </setting-item>
  46. </setting-item-box>
  47. <setting-item-box name="展示模式" :alone="true">
  48. <setting-item>
  49. <n-radio-group v-model:value="optionData.viewMode" name="radiogroup">
  50. <n-space>
  51. <n-radio v-for="song in viewModeOptions" :key="song.value" :value="song.value">
  52. {{ song.label }}
  53. </n-radio>
  54. </n-space>
  55. </n-radio-group>
  56. </setting-item>
  57. </setting-item-box>
  58. <template v-if="optionData.viewMode === '3D'">
  59. <setting-item-box name="天空色" :alone="true">
  60. <setting-item>
  61. <n-color-picker size="small" :modes="['hex']" v-model:value="optionData.skyColor"></n-color-picker>
  62. </setting-item>
  63. </setting-item-box>
  64. <setting-item-box name="俯仰角" :alone="true">
  65. <setting-item>
  66. <n-input-number v-model:value="optionData.pitch" :min="0" :max="83" size="small"></n-input-number>
  67. </setting-item>
  68. </setting-item-box>
  69. </template>
  70. </collapse-item>
  71. </template>
  72. <script setup lang="ts">
  73. import { PropType, ref } from 'vue'
  74. import { option } from './config'
  75. import { CollapseItem, SettingItemBox, SettingItem } from '@/components/Pages/ChartItemSetting'
  76. const props = defineProps({
  77. optionData: {
  78. type: Object as PropType<typeof option>,
  79. required: true
  80. }
  81. })
  82. const langOptions = ref([
  83. {
  84. value: 'zh_cn',
  85. label: '中文简体'
  86. },
  87. {
  88. value: 'en',
  89. label: '英文'
  90. },
  91. {
  92. value: 'zh_en',
  93. label: '中英文对照'
  94. }
  95. ])
  96. const viewModeOptions = ref([
  97. {
  98. value: '2D',
  99. label: '2D'
  100. },
  101. {
  102. value: '3D',
  103. label: '3D'
  104. }
  105. ])
  106. const featuresOptions = ref([
  107. {
  108. value: 'bg',
  109. label: '显示地图背景'
  110. },
  111. {
  112. value: 'point',
  113. label: '显示标识'
  114. },
  115. {
  116. value: 'road',
  117. label: '显示道路'
  118. },
  119. {
  120. value: 'building',
  121. label: '显示建筑'
  122. }
  123. ])
  124. const themeOptions = ref([
  125. {
  126. value: 'normal',
  127. label: '标准'
  128. },
  129. {
  130. value: 'dark',
  131. label: '幻影黑'
  132. },
  133. {
  134. value: 'light',
  135. label: '月光银'
  136. },
  137. {
  138. value: 'whitesmoke',
  139. label: '远山黛'
  140. },
  141. {
  142. value: 'fresh',
  143. label: '草色青'
  144. },
  145. {
  146. value: 'grey',
  147. label: '雅士灰'
  148. },
  149. {
  150. value: 'graffiti',
  151. label: '涂鸦'
  152. },
  153. {
  154. value: 'macaron',
  155. label: '马卡龙'
  156. },
  157. {
  158. value: 'blue',
  159. label: '靛青蓝'
  160. },
  161. {
  162. value: 'darkblue',
  163. label: '极夜蓝'
  164. },
  165. {
  166. value: 'wine',
  167. label: '酱籽'
  168. }
  169. ])
  170. </script>