config.vue 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  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. </collapse-item>
  48. </template>
  49. <script setup lang="ts">
  50. import { PropType, ref } from 'vue'
  51. import { option } from './config'
  52. import { CollapseItem, SettingItemBox, SettingItem } from '@/components/Pages/ChartItemSetting'
  53. const props = defineProps({
  54. optionData: {
  55. type: Object as PropType<typeof option>,
  56. required: true
  57. }
  58. })
  59. const langOptions = ref([
  60. {
  61. value: 'zh_cn',
  62. label: '中文简体'
  63. },
  64. {
  65. value: 'en',
  66. label: '英文'
  67. },
  68. {
  69. value: 'zh_en',
  70. label: '中英文对照'
  71. }
  72. ])
  73. const featuresOptions = ref([
  74. {
  75. value: 'bg',
  76. label: '显示地图背景'
  77. },
  78. {
  79. value: 'point',
  80. label: '显示标识'
  81. },
  82. {
  83. value: 'road',
  84. label: '显示道路'
  85. },
  86. {
  87. value: 'building',
  88. label: '显示建筑'
  89. }
  90. ])
  91. const themeOptions = ref([
  92. {
  93. value: 'normal',
  94. label: '标准'
  95. },
  96. {
  97. value: 'dark',
  98. label: '幻影黑'
  99. },
  100. {
  101. value: 'light',
  102. label: '月光银'
  103. },
  104. {
  105. value: 'whitesmoke',
  106. label: '远山黛'
  107. },
  108. {
  109. value: 'fresh',
  110. label: '草色青'
  111. },
  112. {
  113. value: 'grey',
  114. label: '雅士灰'
  115. },
  116. {
  117. value: 'graffiti',
  118. label: '涂鸦'
  119. },
  120. {
  121. value: 'macaron',
  122. label: '马卡龙'
  123. },
  124. {
  125. value: 'blue',
  126. label: '靛青蓝'
  127. },
  128. {
  129. value: 'darkblue',
  130. label: '极夜蓝'
  131. },
  132. {
  133. value: 'wine',
  134. label: '酱籽'
  135. }
  136. ])
  137. </script>