VUE0003:Naive UI库:滑动条,单选,多选组件

1,滑动条,单选,多选组件

 

<template>
  <n-scrollbar class="show-scrollbar">
    <n-space class="map-setting" vertical>

      <n-space style="flex-flow: row; align-items: center;">

        <n-text class="color-white" style="width: 60px; display: flex; font-size: 15px;" >加载比例</n-text>
        <n-slider
          style="padding: 8px; width: 160px;height: 28px;align-content: center;border-radius: 4px;background-color: #2080F0;"
          :min="1"
          :step="1"
          :max="maxPointNum"
          @dragend="handleDragSaveSetting"
          v-model:value="mapDrawingStore.mapSetting.pointNum"/>
        <n-input-number
          :min="1"
          :max="maxPointNum"
          :show-button="false"
          size="small"
          style="width: 80px; color: #fff;"
          v-model:value="mapDrawingStore.mapSetting.pointNum"
          @blur="handleDragSaveSetting">
          <template #suffix>万</template>
        </n-input-number>
        
      </n-space>

      <n-space style="flex-flow: row; align-items: center; width: 340px;">
        <n-text class="color-white" style="width: 60px; display: flex; font-size: 15px;">控制模式</n-text>
        <n-radio-group v-model:value="mapDrawingStore.mapSetting.control">
          <n-space style="gap: 1px 1px;">
            <n-radio-button class="radio-btn" style="width: 80px;" value="orbit">轨道</n-radio-button>
            <n-radio-button class="radio-btn" style="width: 80px;" value="fly">飞行</n-radio-button>
          </n-space>
        </n-radio-group>
      </n-space>


      <n-space style="flex-flow: row; align-items: center; width: 340px;">
        <n-text class="color-white" style="width: 60px; display: flex; font-size: 15px;">显示质量</n-text>
        <n-radio-group v-model:value="mapDrawingStore.mapSetting.quality" @update:value="handleDragSaveSetting">
          <n-space style="gap: 1px 1px;">
            <n-radio-button class="radio-btn" style="width: 80px;" value="low">低质量</n-radio-button>
            <n-radio-button class="radio-btn" style="width: 80px;" value="height">高质量</n-radio-button>
          </n-space>
        </n-radio-group>
      </n-space>


      <n-space style="flex-flow: row; align-items: center; width: 340px;">
        <n-text class="color-white" style="width: 60px; display: flex; font-size: 15px;">显示内容</n-text>
        <n-space style="gap: 1px 1px;">
          <n-button
            v-for="(item, index) of showOptions"
            :key="'showContent' + index"
            style="width: 60px; height: 30px;"
            :type="item.active ? 'primary' : ''"
            @click="handleVisible(item)">
            {{ item.label }}
          </n-button>
        </n-space>
      </n-space>


      <n-space style="flex-flow: row; align-items: center; width: 340px;">
        <n-text class="color-white" style="width: 60px; display: flex; font-size: 15px;">显示模式</n-text>
        <n-radio-group v-model:value="mapDrawingStore.mapSetting.cameraMode">
          <n-space style="gap: 1px 1px;">
            <n-radio-button class="radio-btn" style="width: 80px;" value="o">正交</n-radio-button>
            <n-radio-button class="radio-btn" style="width: 80px;" value="p">透视</n-radio-button>
          </n-space>
        </n-radio-group>
      </n-space>


      <n-space style="flex-flow: row; align-items: center; width: 340px;">
        <n-text class="color-white" style="width: 60px; display: flex; font-size: 15px;">渲染模式</n-text>
        <n-radio-group v-model:value="mapDrawingStore.mapSetting.cameraMode">
          <n-space style="gap: 1px 1px;">
            <n-radio-button class="radio-btn" style="width: 80px;" value="o">表面</n-radio-button>
            <n-radio-button class="radio-btn" style="width: 80px;" value="p">XRAY</n-radio-button>
          </n-space>
        </n-radio-group>
      </n-space>


      <n-space style="flex-flow: row; align-items: center; width: 340px;">
        <n-text class="color-white" style="width: 60px; display: flex; font-size: 15px;">着色模式</n-text>
        <n-radio-group v-model:value="mapDrawingStore.mapSetting.showColor">
          <n-space style="gap: 1px 1px;">
            <n-radio-button class="radio-btn" style="width: 80px;" value="rgb">RGB</n-radio-button>
            <n-radio-button class="radio-btn" style="width: 80px;" value="color">单色</n-radio-button>
          </n-space>
        </n-radio-group>
      </n-space>


      <n-space style="flex-flow: row; align-items: center;">
        <n-text class="color-white" style="width: 60px; display: flex; font-size: 15px;">点云大小</n-text>
        <n-slider 
        style="padding: 8px; width: 160px;height: 28px;align-content: center;border-radius: 4px;background-color: #2080F0;"
        :min="0.1" 
        :max="10" 
        :step="0.01" 
        v-model:value="mapDrawingStore.mapSetting.pointCloudSize"/>
        <n-input-number
          :min="0.1"
          :max="10"
          :step="0.01"
          size="small"
          :show-button="false"
          style="width: 80px; color: #fff"
          v-model:value="mapDrawingStore.mapSetting.pointCloudSize">
        </n-input-number>
      </n-space>



      <n-space style="flex-flow: row; align-items: center; width: 340px;">
        <n-text class="color-white" style="width: 60px; display: flex; font-size: 15px;">大小类型</n-text>
        <n-radio-group v-model:value="mapDrawingStore.mapSetting.showColor">
          <n-space style="gap: 1px 1px;">
            <n-radio-button class="radio-btn" style="width: 80px;" value="rgb">固定</n-radio-button>
            <n-radio-button class="radio-btn" style="width: 80px;" value="color">衰减</n-radio-button>
            <n-radio-button class="radio-btn" style="width: 80px;" value="rgb">自适应</n-radio-button>
          </n-space>
        </n-radio-group>
      </n-space>

      <n-divider style="margin-top: 24px; width: 330px; " />

      <n-space style="flex-flow: row; align-items: center; width: 340px;">
        <n-text class="color-white" style="width: 60px; display: flex; font-size: 15px;">透明模式</n-text>
        <n-radio-group v-model:value="mapDrawingStore.mapSetting.showColor">
          <n-space style="gap: 1px 1px;">
            <n-radio-button class="radio-btn" style="width: 80px;" value="rgb">自动</n-radio-button>
            <n-radio-button class="radio-btn" style="width: 80px;" value="color">手动</n-radio-button>
          </n-space>
        </n-radio-group>
      </n-space>


      <n-space style="flex-flow: row; align-items: center;">
        <n-text class="color-white" style="width: 60px; display: flex; font-size: 15px;" >透明调节</n-text>
        <n-slider 
          style="padding: 8px; width: 160px;height: 28px;align-content: center;border-radius: 4px;background-color: #2080F0;"
          :min="0" 
          :max="1" 
          :step="0.01" 
          v-model:value="mapDrawingStore.mapSetting.pointCloudOpacity" />
        <n-input-number
          :min="0"
          :max="1"
          :step="0.01"
          size="small"
          :show-button="false"
          style="width: 80px; color: #fff"
          v-model:value="mapDrawingStore.mapSetting.pointCloudOpacity">
        </n-input-number>
      </n-space>

      <n-divider style="margin-top: 24px; width: 330px; " />


      <n-space style="flex-flow: row; align-items: center;">
        <n-text class="color-white" style="width: 60px; display: flex; font-size: 15px;">显示长度</n-text>
        <n-slider
          style="padding: 8px; width: 160px;height: 28px;align-content: center;border-radius: 4px;background-color: #2080F0;"
          :min="0"
          :step="0.01"
          @dragend="handleDragSaveSetting"
          :max="mapDrawingStore.mapSetting.maxShowHieght"
          v-model:value="mapDrawingStore.mapSetting.showHeight"/>
        <n-input-number
          :min="0"
          :step="0.01"
          :show-button="false"
          size="small"
          style="width: 80px; color: #fff"
          :max="mapDrawingStore.mapSetting.maxShowHieght"
          v-model:value="mapDrawingStore.mapSetting.showHeight"
          @blur="handleDragSaveSetting">
          <template #suffix>米</template>
        </n-input-number>
      </n-space>

      <n-space style="flex-flow: row; align-items: center;">
        <n-text class="color-white" style="width: 60px; display: flex; font-size: 15px;">显示宽度</n-text>
        <n-slider
          style="padding: 8px; width: 160px;height: 28px;align-content: center;border-radius: 4px;background-color: #2080F0;"
          :min="0"
          :step="0.01"
          @dragend="handleDragSaveSetting"
          :max="mapDrawingStore.mapSetting.maxShowHieght"
          v-model:value="mapDrawingStore.mapSetting.showHeight"/>
        <n-input-number
          :min="0"
          :step="0.01"
          :show-button="false"
          size="small"
          style="width: 80px; color: #fff"
          :max="mapDrawingStore.mapSetting.maxShowHieght"
          v-model:value="mapDrawingStore.mapSetting.showHeight"
          @blur="handleDragSaveSetting">
          <template #suffix>米</template>
        </n-input-number>
      </n-space>


      <n-space style="flex-flow: row; align-items: center;">
        <n-text class="color-white" style="width: 60px; display: flex; font-size: 15px;">显示高度</n-text>
        <n-slider
          style="padding: 8px; width: 160px;height: 28px;align-content: center;border-radius: 4px;background-color: #2080F0;"
          :min="0"
          :step="0.01"
          @dragend="handleDragSaveSetting"
          :max="mapDrawingStore.mapSetting.maxShowHieght"
          v-model:value="mapDrawingStore.mapSetting.showHeight"/>
        <n-input-number
          :min="0"
          :step="0.01"
          :show-button="false"
          size="small"
          style="width: 80px; color: #fff"
          :max="mapDrawingStore.mapSetting.maxShowHieght"
          v-model:value="mapDrawingStore.mapSetting.showHeight"
          @blur="handleDragSaveSetting">
          <template #suffix>米</template>
        </n-input-number>
      </n-space>

      <n-divider style="margin-top: 24px; width: 330px; " />

      <n-space style="flex-flow: row; align-items: center; width: 340px;">
        <n-text class="color-white" style="width: 60px; display: flex; font-size: 15px;">深度增强</n-text>
        <n-space style="gap: 1px 1px;">
          <n-button style="width: 26px; height: 26px;"></n-button>
        </n-space>
      </n-space>

      <n-space style="flex-flow: row; align-items: center; width: 340px;">
        <n-text class="color-white" style="width: 60px; display: flex; font-size: 15px;">三窗视图</n-text>
        <n-space style="gap: 1px 1px;">
          <n-button style="width: 26px; height: 26px;"></n-button>
        </n-space>
      </n-space>

      <n-space style="flex-flow: row; align-items: center; width: 340px;">
        <n-text class="color-white" style="width: 60px; display: flex; font-size: 15px;">视角控件</n-text>
        <n-space style="gap: 1px 1px;">
          <n-button style="width: 26px; height: 26px;"></n-button>
        </n-space>
      </n-space>

      <n-space style="flex-flow: row; align-items: center; width: 340px;">
        <n-text class="color-white" style="width: 60px; display: flex; font-size: 15px;">状态展示</n-text>
        <n-space style="gap: 1px 1px;">
          <n-button style="width: 26px; height: 26px;"></n-button>
        </n-space>
      </n-space>


      <!-- <div class="close" @click="handleClose">
        <svg-icon local-icon="map-setting-close"></svg-icon>
      </div> -->
    </n-space>
  </n-scrollbar>
</template>

 

posted @ 2024-09-07 10:50  琥珀君  阅读(100)  评论(0编辑  收藏  举报