From 28271e1804695c5081727c629c3644876f1dd6e5 Mon Sep 17 00:00:00 2001 From: WX <1377869194@qq.com> Date: 星期一, 04 九月 2023 17:49:01 +0800 Subject: [PATCH] 选择色块 --- src/views/layer/layerDetail.vue | 111 +++++++++++++++++++++++++++---------------------------- 1 files changed, 54 insertions(+), 57 deletions(-) diff --git a/src/views/layer/layerDetail.vue b/src/views/layer/layerDetail.vue index 14fe6fa..cc5b43c 100644 --- a/src/views/layer/layerDetail.vue +++ b/src/views/layer/layerDetail.vue @@ -1,15 +1,8 @@ <template> - <div - class="content" - v-drag="true" - > + <div class="content" v-drag="true"> <div class="title"> <label>璇︾粏缂栬緫</label> - <el-icon - @click="setSpatialClose" - :size="20" - style="cursor: pointer" - > + <el-icon @click="setSpatialClose" :size="20" style="cursor: pointer"> <Close /> </el-icon> </div> @@ -19,15 +12,9 @@ layerName }}</el-checkbox> --> {{ layerData.cnName }} - <img - src="../../assets/img/layer.png" - alt="" - /> + <img src="../../assets/img/layer.png" alt="" /> </div> - <div - class="slider-demo-block" - v-show="diaphaneityShow" - > + <div class="slider-demo-block" v-show="diaphaneityShow"> <div class="demonstration">閫忔槑搴�</div> <el-slider v-model="transparence" @@ -36,10 +23,7 @@ /> <div class="demonstration">{{ transparence }}%</div> </div> - <div - class="slider-demo-block" - v-show="contrastShow" - > + <div class="slider-demo-block" v-show="contrastShow"> <div class="demonstration">瀵规瘮搴�</div> <el-slider v-model="contrast" @@ -49,10 +33,7 @@ /> <div class="demonstration">{{ contrast }}</div> </div> - <div - class="selectBox" - v-show="drawingModeShow" - > + <div class="selectBox" v-show="drawingModeShow"> <div class="selectTile demonstration">鎷変几鏂瑰紡</div> <el-select v-model="stretchValue" @@ -70,10 +51,7 @@ </el-option> </el-select> </div> - <div - class="selectBox" - v-show="colorShow" - > + <div class="selectBox"> <div class="selectTile demonstration">娓叉煋绫诲瀷</div> <el-select v-model="renderType" @@ -85,18 +63,26 @@ clearable > <el-option - v-for="item in renderTypeOptions" - :key="item.value" - :label="item.label" - :value="item.value" + v-for="(item, i) in renderTypeOptions" + :key="i" + :label="item.data_id" + :value="item.name" > - <!-- <img :src="item.url" style="height: 30px; margin-right: 10px" /> - <span>{{ item.label }}</span> --> + <div + style=" + height: 30px; + width: 100%; + position: relative; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + " + :style="{ + 'background-image': `linear-gradient(to right, ${item.domCss})`, + }" + ></div> - <img - :src="item.url" - style="height: 30px; width: 100%" - /> + <!-- <img :src="item.url" style="height: 30px; width: 100%" /> --> </el-option> </el-select> </div> @@ -114,6 +100,10 @@ defineEmits, } from "vue"; import server from "@/assets/js/Map/server"; +import axios from "axios"; +import json from "@/assets/js/colorValue"; +// const colorValue = "@/assets/js/colorValue.json"; +// console.log(colorValue); const stretchValue = ref(""); const transparence = ref(0); const contrast = ref(1); @@ -121,19 +111,8 @@ let layerState = ref(false); let select = ref(); let renderType = ref(""); -const renderTypeOptions = [ - { - value: "Option1", - label: "Option1", - url: "https://img2.baidu.com/it/u=3727554264,855092936&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500", - }, - { - value: "Option2", - label: "Option2", - url: "https://img1.baidu.com/it/u=3226786080,888437008&fm=253&fmt=auto&app=138&f=JPEG?w=200&h=200", - }, -]; -const stretchOptions = [ +let renderTypeOptions = []; +let stretchOptions = [ { value: "Option1", label: "Option1", @@ -158,7 +137,17 @@ const setSpatialClose = () => { emits("detailClose", false); }; -const handlCheckAllChange = (res) => {}; +const getColorJson = async () => { + renderTypeOptions = json.result.item_list; + renderTypeOptions.forEach((e) => { + let css = ""; + e.content.levels.forEach((v) => { + css += `rgb(${v.r_start}, ${v.g_start}, ${v.b_start}),`; + }); + e.domCss = css.slice(0, -1); + }); + console.log(renderTypeOptions); +}; const changeSelection = (scope) => { if (scope == "") { select.value.$el.children[0].children[0].removeAttribute("style"); @@ -172,14 +161,21 @@ } for (let index in renderTypeOptions) { let obj = renderTypeOptions[index]; - if (obj.value == scope) { + if (obj.name == scope) { + // select.value.$el.children[0].children[0].setAttribute( + // "style", + // `background: url(${obj.url}) no-repeat; + // width: 100%; height: 100%; + // border: none; + // height: 33px; + // background-size:100% 100%` + // ); select.value.$el.children[0].children[0].setAttribute( "style", - `background: url(${obj.url}) no-repeat; + `background-image: linear-gradient(to right,${obj.domCss}); width: 100%; height: 100%; border: none; - height: 33px; - background-size:100% 100%` + height: 33px;` ); select.value.$el.children[0].children[0].children[0].setAttribute( "style", @@ -256,6 +252,7 @@ } }); }); +getColorJson(); </script> <style lang="less" scoped> -- Gitblit v1.9.3