From 807d0f5ee9b78824f18788ea8a50b8dfd9f9bb2e Mon Sep 17 00:00:00 2001 From: WX <1377869194@qq.com> Date: 星期四, 27 七月 2023 11:05:49 +0800 Subject: [PATCH] 输入框选择图片 --- src/views/layer/layerDetail.vue | 123 +++++++++++++++++++++++++++++++++++------ 1 files changed, 105 insertions(+), 18 deletions(-) diff --git a/src/views/layer/layerDetail.vue b/src/views/layer/layerDetail.vue index 47d26cd..077e04f 100644 --- a/src/views/layer/layerDetail.vue +++ b/src/views/layer/layerDetail.vue @@ -11,23 +11,26 @@ <!-- <el-checkbox @change="handlCheckAllChange" v-model="layerState">{{ layerName }}</el-checkbox> --> - {{ layerData.name }} + {{ layerData.cnName }} <img src="../../assets/img/layer.png" alt="" /> </div> <div class="slider-demo-block"> <div class="demonstration">閫忔槑搴�</div> - <el-slider v-model="transparence" /> + <el-slider + v-model="transparence" + @change="sliderChange" + :format-tooltip="formatTooltip" + /> <div class="demonstration">{{ transparence }}%</div> </div> <div class="selectBox"> <div class="selectTile demonstration">鎷変几鏂瑰紡</div> <el-select v-model="stretchValue" - class="m-2" - placeholder="Select" + class="imgSelect" + placeholder="閫夋嫨鎷変几鏂瑰紡" size="small" - @change="changeSelection(stretchValue)" - ref="select" + clearable > <el-option v-for="item in stretchOptions" @@ -35,8 +38,30 @@ :label="item.label" :value="item.value" > - <img :src="item.url" style="height: 30px; margin-right: 10px" /> - <span>{{ item.label }}</span> + </el-option> + </el-select> + </div> + <div class="selectBox"> + <div class="selectTile demonstration">娓叉煋绫诲瀷</div> + <el-select + v-model="renderType" + class="imgSelect" + placeholder="閫夋嫨娓叉煋绫诲瀷" + size="small" + @change="changeSelection(renderType)" + ref="select" + clearable + > + <el-option + v-for="item in renderTypeOptions" + :key="item.value" + :label="item.label" + :value="item.value" + > + <!-- <img :src="item.url" style="height: 30px; margin-right: 10px" /> + <span>{{ item.label }}</span> --> + + <img :src="item.url" style="height: 30px; width: 100%" /> </el-option> </el-select> </div> @@ -53,12 +78,14 @@ defineProps, defineEmits, } from "vue"; +import server from "@/assets/js/Map/server"; const stretchValue = ref(""); const transparence = ref(0); let layerName = ref("鍥惧眰鍚嶇О"); let layerState = ref(false); let select = ref(); -const stretchOptions = [ +let renderType = ref(""); +const renderTypeOptions = [ { value: "Option1", label: "Option1", @@ -70,31 +97,91 @@ url: "https://img1.baidu.com/it/u=3226786080,888437008&fm=253&fmt=auto&app=138&f=JPEG?w=200&h=200", }, ]; +const stretchOptions = [ + { + value: "Option1", + label: "Option1", + }, + { + value: "Option2", + label: "Option2", + }, +]; +const formatTooltip = (val: number) => { + return val / 100; +}; const emits = defineEmits(["detailClose"]); //defineProps 鏉ユ帴鏀剁粍浠剁殑浼犲�� const props = defineProps({ layerData: Object, }); +const layerLength = ref(); const setSpatialClose = () => { emits("detailClose", false); }; const handlCheckAllChange = (res) => {}; const changeSelection = (scope) => { - let brand = scope; - for (let index in stretchOptions) { - let aa = stretchOptions[index]; - let value = aa.value; - if (brand === value) { - console.log(select.value.$el.children); + if (scope == "") { + select.value.$el.children[0].children[0].removeAttribute("style"); + select.value.$el.children[0].children[0].children[0].removeAttribute( + "style" + ); + select.value.$el.children[0].children[0].children[0].children[0].removeAttribute( + "style" + ); + return; + } + for (let index in renderTypeOptions) { + let obj = renderTypeOptions[index]; + if (obj.value == scope) { select.value.$el.children[0].children[0].setAttribute( "style", - "background:url(" + - aa.url + - ") no-repeat 10px;background-size: 30px 30px;color:#333;padding-left: 50px;" + `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].children[0].setAttribute( + "style", + `display: flex; + justify-content: flex-end; + background:transparent;` + ); + select.value.$el.children[0].children[0].children[0].children[0].setAttribute( + "style", + `display: none;` ); } } + + // let brand = scope; + // for (let index in stretchOptions) { + // let aa = stretchOptions[index]; + // let value = aa.value; + // if (brand === value) { + // console.log(select.value.$el.children); + // select.value.$el.children[0].children[0].setAttribute( + // "style", + // "background:url(" + + // aa.url + + // ") no-repeat 10px;background-size: 30px 30px;color:#333;padding-left: 50px;" + // ); + // } + // } }; +//婊戝潡鍙樺姩 +const sliderChange = (val) => { + server.layerList[layerLength.value].layerData.alpha = val / 100; +}; +onMounted(() => { + server.layerList.forEach((e, i) => { + if (props.layerData.id == e.id) { + layerLength.value = i; + transparence.value = e.layerData.alpha * 100; + } + }); +}); </script> <style lang="less" scoped> -- Gitblit v1.9.3