Compare commits
merge into: LiLongLong:master
LiLongLong:feature/home
LiLongLong:feature/layout_0214
LiLongLong:feature/tray
LiLongLong:master
pull from: LiLongLong:feature/tray
LiLongLong:feature/home
LiLongLong:feature/layout_0214
LiLongLong:feature/tray
LiLongLong:master
2 Commits
master
...
feature/tr
Author | SHA1 | Message | Date |
---|---|---|---|
|
01e02b5606 |
merge master
|
6 months ago |
|
2ed06d491c |
rebase master
|
6 months ago |
10 changed files with 498 additions and 297 deletions
-
1src/assets/out.svg
-
1src/assets/pwd.svg
-
7src/views/addLiquid/index.vue
-
36src/views/components/Header.vue
-
113src/views/components/UpdatePwd.vue
-
2src/views/components/index.ts
-
7src/views/graphite/components/AddLiquid.vue
-
601src/views/graphite/components/HeatPosition.vue
-
26src/views/graphite/index.vue
-
1src/views/login/index.vue
@ -0,0 +1 @@ |
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="42" height="43" viewBox="0 0 42 43"><g><g><path d="M23.9012,26.80821171875L23.5184,26.80821171875C19.5186,26.80821171875,15.5189,26.80861171875,11.519,26.80821171875C10.926,26.80801171875,10.5396,26.52971171875,10.4443,26.03191171875C10.4255,25.93251171875,10.4273,25.82801171875,10.4273,25.72631171875C10.4266,22.08721171875,10.4265,18.44831171875,10.4268,14.80931171875C10.4269,14.11901171875,10.792,13.75181171875,11.4767,13.75181171875C15.4946,13.75161171875,19.5126,13.75161171875,23.5307,13.75161171875L23.9012,13.75161171875L23.9012,13.42041171875C23.9012,10.18168171875,23.9008,6.94273171875,23.9016,3.70375171875C23.9016,3.25804771875,24.1092,2.90257571875,24.4607,2.76641631875C24.8652,2.60961481875,25.224,2.68183999875,25.5289,3.01164571875C25.7037,3.20077071875,25.8941,3.3747387187499998,26.0736,3.55867171875C28.3386,5.87259171875,30.6032,8.18756171875,32.8676,10.50147171875C35.7762,13.47271171875,38.6848,16.44331171875,41.5933,19.41441171875C42.0776,19.90851171875,42.0802,20.42981171875,41.6017,20.91861171875C37.4394,25.17281171875,33.2774,29.42731171875,29.1138,33.67981171875C27.9297,34.88921171875,26.7392,36.09131171875,25.5561,37.30171171875C25.2516,37.61371171875,24.912,37.75041171875,24.4963,37.58871171875C24.092,37.43171171875,23.9017,37.10601171875,23.9017,36.59371171875C23.901,33.45751171875,23.9012,30.32081171875,23.9012,27.18461171875L23.9012,26.80821171875L23.9012,26.80821171875ZM16.4243,2.86945471875L16.4243,6.546731718749999L16.0943,6.546731718749999C13.049,6.546731718749999,10.0037,6.54631171875,6.95843,6.54694171875C5.02868,6.54723171875,3.60763,8.00513171875,3.60755,9.98472171875C3.60726,16.83461171875,3.61953,23.68451171875,3.59949,30.53391171875C3.59397,32.34621171875,4.94067,33.65191171875,6.18574,33.89041171875C6.46085,33.94251171875,6.74508,33.96611171875,7.02513,33.96681171875C10.0431,33.97221171875,13.0612,33.970111718750005,16.0793,33.970111718750005L16.4189,33.970111718750005L16.4189,37.62641171875C16.3759,37.63521171875,16.3258,37.65491171875,16.2756,37.65491171875C13.0666,37.65491171875,9.85733,37.68831171875,6.64918,37.64061171875C3.51369,37.59461171875,0.737073,35.15841171875,0.138685,32.005211718750004C0.0542352,31.56101171875,0.0129305,31.10101171875,0.0124397,30.64841171875C0.00466952,23.72381171875,-0.0132019,16.79961171875,0.0166111,9.87552171875C0.0290843,6.98330171875,1.43263,4.90707171875,3.88372,3.55774671875C4.74846,3.08148071875,5.70366,2.86639671875,6.68823,2.86388471875C9.8698,2.85509271875,13.0514,2.86053471875,16.2331,2.86074471875C16.2868,2.86078671875,16.3405,2.86560171875,16.4243,2.86945471875Z" fill="#1989FA" fill-opacity="1"/></g></g></svg> |
@ -0,0 +1 @@ |
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="33.84674835205078" height="39.06831359863281" viewBox="0 0 33.84674835205078 39.06831359863281"><g><path d="M28.8334,16.9571L10.5687,16.9571C10.4126,16.2014,10.3346,15.4318,10.3359,14.6602C10.3359,9.57031,13.6251,5.44513,17.6859,5.44513C21.168,5.44513,24.0835,8.48006,24.8399,12.5562L30.0646,12.5562C29.1611,5.44819,23.9641,0,17.6829,0C10.7677,0,5.16337,6.60887,5.16337,14.7613C5.16337,15.5085,5.21237,16.2435,5.30425,16.9632L5.01331,16.9632C2.24481,16.9632,0,18.7915,0,21.0455L0,34.9891C0,37.2431,2.24481,39.0683,5.01331,39.0683L28.8334,39.0683C31.6019,39.0683,33.8467,37.24,33.8467,34.9891L33.8467,21.0394C33.8467,18.7854,31.6019,16.9571,28.8334,16.9571Z" fill="#1989FA" fill-opacity="1"/></g></svg> |
@ -0,0 +1,113 @@ |
|||
<template> |
|||
<div class="update_pwd"> |
|||
<p class="title">修改密码</p> |
|||
<section class="update_pwd_main"> |
|||
<div class="newpassword"> |
|||
<div>新密码:</div> |
|||
<div><input type="text" placeholder="新密码" v-model="new_pwd" class="newpwd_input"/></div> |
|||
</div> |
|||
<div class="confirmpassword"> |
|||
<div>确认密码:</div> |
|||
<div><input type="text" placeholder="确认新密码" v-model="confirm_pwd" class="confirmpwd_input"/></div> |
|||
</div> |
|||
</section> |
|||
<footer class="footer_opt"> |
|||
<button class="ok" @click="onSubmit">确认</button> |
|||
<button class="cancel" @click="onCancel">取消</button> |
|||
</footer> |
|||
</div> |
|||
</template> |
|||
<script lang="ts" setup> |
|||
import { ref } from 'vue' |
|||
const new_pwd = ref('') |
|||
const confirm_pwd = ref('') |
|||
const emits = defineEmits(['cancel']) |
|||
const onSubmit = () => { |
|||
|
|||
} |
|||
|
|||
const onCancel = () => { |
|||
emits('cancel') |
|||
} |
|||
</script> |
|||
<style lang="scss" scoped> |
|||
@use "@/assets/style/mixin.scss" as *; |
|||
.update_pwd{ |
|||
width: 27.5rem; |
|||
height: 17.125rem; |
|||
background: #FFFFFF; |
|||
|
|||
.title{ |
|||
color: #40474E; |
|||
font-size: 1.25rem; |
|||
font-weight: 500; |
|||
margin-top:1.25rem; |
|||
margin-left: 1.25rem; |
|||
height: 1.25rem; |
|||
} |
|||
|
|||
.update_pwd_main{ |
|||
height: 6.3rem; |
|||
width: 20rem; |
|||
margin-top: 2.5rem; |
|||
margin-left: 2.625rem; |
|||
font-size: 1.25rem; |
|||
|
|||
.newpassword{ |
|||
display: flex; |
|||
margin-left: 1.25rem; |
|||
align-items: center; |
|||
} |
|||
|
|||
.newpwd_input{ |
|||
width: 13rem; |
|||
border: 2px solid rgb(236, 236, 236); |
|||
height: 3rem; |
|||
padding-left: 10px; |
|||
border-radius: 10px; |
|||
} |
|||
|
|||
.confirmpassword{ |
|||
display: flex; |
|||
margin-top: 1rem; |
|||
align-items: center; |
|||
} |
|||
|
|||
.confirmpwd_input{ |
|||
width: 13rem; |
|||
border: 2px solid rgb(236, 236, 236); |
|||
height: 3rem; |
|||
padding-left: 10px; |
|||
border-radius: 10px; |
|||
} |
|||
} |
|||
|
|||
.footer_opt{ |
|||
height: 4rem; |
|||
display: flex; |
|||
align-items: center; |
|||
margin-left: 8rem; |
|||
margin-top: 1rem; |
|||
.ok{ |
|||
background: #1989FA; |
|||
font-size: 1.25rem; |
|||
height: 2.875rem; |
|||
width: 6.875rem; |
|||
color: #FFFFFF; |
|||
align-items: center; |
|||
border-radius: 10px; |
|||
} |
|||
|
|||
.cancel{ |
|||
font-size: 1.25rem; |
|||
height: 2.875rem; |
|||
width: 6.875rem; |
|||
align-items: center; |
|||
border-radius: 10px; |
|||
margin-left: 0.5rem; |
|||
border: 3px solid #1989FA; |
|||
color: #1989FA; |
|||
} |
|||
} |
|||
} |
|||
</style> |
@ -1,2 +0,0 @@ |
|||
import { default as Header } from './Header.vue' |
|||
import { default as Liquid } from './Liquid.vue' |
@ -1,322 +1,361 @@ |
|||
<template> |
|||
<div class="heat_main" :style="`${posIndex === currentIndex && isSelect ? 'border:7px solid #275EFB' : ''}`"> |
|||
<section class="heat_pos_text"> |
|||
<div class="pos_text">{{ `A-${posIndex || ''}` }}</div> |
|||
<div class="pos_text pos_state">已放置</div> |
|||
</section> |
|||
<div |
|||
class="heat_main" |
|||
:style="`${ |
|||
posIndex === currentIndex && isSelect |
|||
? 'box-sizing: border-box;border:5px solid #275EFB' |
|||
: 'box-sizing: border-box' |
|||
}`" |
|||
> |
|||
<section class="heat_pos_text"> |
|||
<div class="pos_text">{{ `A-${posIndex || ""}` }}</div> |
|||
<div class="pos_text pos_state">已放置</div> |
|||
</section> |
|||
|
|||
<section class="heat_pos" :style="`background:${(trayInfo?.id) ? '#384D5D':''}`" @click.stop="onSelectTray"> |
|||
<section |
|||
class="heat_pos" |
|||
:style="`background:${trayInfo?.id ? '#384D5D' : ''}`" |
|||
> |
|||
<div v-for="(isActive, index) in ballStates" :key="index"> |
|||
<div |
|||
v-for="(isActive, index) in ballStates" |
|||
:key="index" |
|||
> |
|||
<div class="inner-circle" :style="`background: ${trayInfo?.id ? '#F2652D': ''}`"></div> |
|||
class="inner-circle" |
|||
:style="`background: ${trayInfo?.id ? '#F2652D' : ''}`" |
|||
></div> |
|||
</div> |
|||
<!--执行中状态的遮罩层--> |
|||
<div class="craft_executing_modal" v-if="trayInfo.state == 1"> |
|||
<div class="loading"> |
|||
<img :src="LoadingSvg" /> |
|||
</div> |
|||
<!--执行中状态的遮罩层--> |
|||
<div class="craft_executing_modal" v-if="trayInfo.state == 1"> |
|||
<div class="loading"> |
|||
<img :src="LoadingSvg"/> |
|||
</div> |
|||
<div class="tray_craft"> |
|||
工艺名称 |
|||
<div class="tray_craft">工艺名称</div> |
|||
<div class="tray_exce">工艺执行中</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="heat_footer"> |
|||
<div class="heat_temperature" @click="setTemperature"> |
|||
<template v-if="trayInfo?.id"> |
|||
<div class="target_temp">目标温度: {{ trayInfo.trayTempVale }}℃</div> |
|||
<div class="heating">加热中</div> |
|||
</template> |
|||
<template v-else> |
|||
<div class="target_temp set_temp">设置目标温度</div> |
|||
</template> |
|||
</div> |
|||
|
|||
<div class="heat_opt"> |
|||
<div class="temp_text">120℃</div> |
|||
<div class="heat_choose"> |
|||
<van-button |
|||
type="primary" |
|||
class="btn" |
|||
@click=" |
|||
() => { |
|||
onChooseCraft; |
|||
} |
|||
" |
|||
>选 择</van-button |
|||
> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<OverlayModal :visible="tempVisivle"> |
|||
<div class="set_temp_modal_content"> |
|||
<h3 class="set_temp_title">设定温度</h3> |
|||
<section class="temp_label"> |
|||
<div class="text-xl"> |
|||
目标温度:<input |
|||
type="number" |
|||
v-model="trayTempVale" |
|||
class="temp_input" |
|||
placeholder="请输入温度" |
|||
/> |
|||
</div> |
|||
<div class="tray_exce"> |
|||
工艺执行中 |
|||
<div class="text-xl temp_status flex"> |
|||
<div>到达温度后</div> |
|||
<van-radio-group |
|||
v-model="trayTempType" |
|||
shape="square" |
|||
class="flex temp_radio" |
|||
> |
|||
<van-radio name="1">保持温度</van-radio> |
|||
<van-radio name="2">停止加热</van-radio> |
|||
</van-radio-group> |
|||
</div> |
|||
</div> |
|||
</section> |
|||
|
|||
<section class="heat_footer"> |
|||
<div class="heat_temperature" @click="setTemperature"> |
|||
<template v-if="trayInfo?.id"> |
|||
<div class="target_temp">目标温度: {{ trayInfo.trayTempVale }}℃</div> |
|||
<div class="heating">加热中</div> |
|||
</template> |
|||
<template v-else > |
|||
<div class="target_temp set_temp">设置目标温度</div> |
|||
</template> |
|||
</div> |
|||
</section> |
|||
|
|||
<div class="flex items-center py-4 justify-between px-2"> |
|||
<div class="temp_text">120℃</div> |
|||
<button class="btn-light text-sm px-4" @click="()=>{onChooseCraft()}">选择</button> |
|||
</div> |
|||
</section> |
|||
|
|||
<OverlayModal :visible="tempVisivle"> |
|||
<div class="set_temp_modal_content"> |
|||
<h3 class="set_temp_title">设定温度</h3> |
|||
<section class="temp_label"> |
|||
<div class="text-xl "> |
|||
目标温度:<input type="number" v-model="trayTempVale" class="temp_input" placeholder="请输入温度"/> |
|||
</div> |
|||
<div class="text-xl temp_status flex"> |
|||
<div>到达温度后</div> |
|||
<van-radio-group v-model="trayTempType" shape="square" class="flex temp_radio"> |
|||
<van-radio name="1">保持温度</van-radio> |
|||
<van-radio name="2">停止加热</van-radio> |
|||
</van-radio-group> |
|||
</div> |
|||
</section> |
|||
|
|||
<footer |
|||
class="h-[5.625rem] flex justify-center items-center text-sm font-medium gap-x-5"> |
|||
<button class="btn-dark px-10 py-2 w-15" @click="onConfirm">确定</button> |
|||
<button class="btn-light px-10 py-2" @click="tempVisivle = false">取消</button> |
|||
</footer> |
|||
</div> |
|||
</OverlayModal> |
|||
<!--选择工艺--> |
|||
<OverlayModal :visible="craftVisible"> |
|||
<CraftList @changeVisible="changeVisible"></CraftList> |
|||
</OverlayModal> |
|||
|
|||
</div> |
|||
</template> |
|||
|
|||
<script lang="ts" setup> |
|||
import { computed, ref, watch, onMounted, onBeforeUnmount } from 'vue' |
|||
import OverlayModal from '@/components/OverlayModal.vue'; |
|||
import CraftList from './CraftList.vue'; |
|||
import LoadingSvg from '@/assets/loading.svg'; |
|||
const ballStates = ref([1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16]) |
|||
const props = defineProps({ |
|||
heatInfo:Object, |
|||
posIndex:Number |
|||
}) |
|||
const emits = defineEmits(['onSelectedTray']) |
|||
|
|||
onMounted(()=>{ |
|||
}) |
|||
|
|||
const craftVisible = ref(false) |
|||
|
|||
//设置温度 |
|||
const trayTempType = ref(false) |
|||
const tempVisivle = ref(false) |
|||
//托盘信息 |
|||
const trayInfo = ref(props.heatInfo || {}) |
|||
const trayTempVale = ref(trayInfo.value.trayTempVale || '') |
|||
const formulaList:any = ref([]) |
|||
|
|||
//选中托盘 |
|||
const isSelect = ref(false) |
|||
const currentIndex = ref() |
|||
const selectedTrayList = ref<any>([]) |
|||
const onSelectTray = () => { |
|||
if(currentIndex.value !== props.posIndex ){ |
|||
isSelect.value = true; |
|||
}else{ |
|||
isSelect.value = !isSelect.value |
|||
} |
|||
currentIndex.value = props.posIndex; |
|||
|
|||
emits("onSelectedTray", props.heatInfo) |
|||
|
|||
} |
|||
<footer |
|||
class="h-[5.625rem] flex justify-center items-center text-sm font-medium gap-x-5" |
|||
> |
|||
<button class="btn-dark px-10 py-2 w-15" @click="onConfirm"> |
|||
确定 |
|||
</button> |
|||
<button class="btn-light px-10 py-2" @click="tempVisivle = false"> |
|||
取消 |
|||
</button> |
|||
</footer> |
|||
</div> |
|||
</OverlayModal> |
|||
<!--选择工艺--> |
|||
<OverlayModal :visible="craftVisible"> |
|||
<CraftList @changeVisible="changeVisible"></CraftList> |
|||
</OverlayModal> |
|||
</div> |
|||
</template> |
|||
|
|||
<script lang="ts" setup> |
|||
import { computed, ref, watch, onMounted, onBeforeUnmount } from "vue"; |
|||
import OverlayModal from "@/components/OverlayModal.vue"; |
|||
import CraftList from "./CraftList.vue"; |
|||
import LoadingSvg from "@/assets/loading.svg"; |
|||
const ballStates = ref([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]); |
|||
const props = defineProps({ |
|||
heatInfo: Object, |
|||
posIndex: Number, |
|||
}); |
|||
const emits = defineEmits(["onSelectedTray"]); |
|||
|
|||
const changeVisible = () => { |
|||
craftVisible.value = false; |
|||
} |
|||
//选择工艺 |
|||
const onChooseCraft = () => { |
|||
craftVisible.value = true; |
|||
} |
|||
const setTemperature = () => { |
|||
tempVisivle.value = true; |
|||
} |
|||
onMounted(() => {}); |
|||
|
|||
const onConfirm = () => { |
|||
trayInfo.value.id = 3; |
|||
trayInfo.value.trayTempVale = trayTempVale; |
|||
tempVisivle.value = false; |
|||
} |
|||
const craftVisible = ref(false); |
|||
|
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@use "@/assets/style/mixin.scss" as *; |
|||
.heat_main{ |
|||
border: 1px solid #E9F3FF; |
|||
width: 11.5rem; |
|||
height: 18.125rem; |
|||
border-radius: 10px; |
|||
background: #E9F3FF; |
|||
//设置温度 |
|||
const trayTempType = ref(false); |
|||
const tempVisivle = ref(false); |
|||
//托盘信息 |
|||
const trayInfo = ref(props.heatInfo || {}); |
|||
const trayTempVale = ref(trayInfo.value.trayTempVale || ""); |
|||
const formulaList: any = ref([]); |
|||
|
|||
//选中托盘 |
|||
const isSelect = ref(false); |
|||
const currentIndex = ref(); |
|||
const selectedTrayList = ref<any>([]); |
|||
const onSelectTray = () => { |
|||
if (currentIndex.value !== props.posIndex) { |
|||
isSelect.value = true; |
|||
} else { |
|||
isSelect.value = !isSelect.value; |
|||
} |
|||
.heat_pos_text{ |
|||
currentIndex.value = props.posIndex; |
|||
|
|||
emits("onSelectedTray", props.heatInfo); |
|||
}; |
|||
|
|||
const changeVisible = () => { |
|||
craftVisible.value = false; |
|||
}; |
|||
//选择工艺 |
|||
const onChooseCraft = () => { |
|||
craftVisible.value = true; |
|||
}; |
|||
const setTemperature = () => { |
|||
tempVisivle.value = true; |
|||
}; |
|||
|
|||
const onConfirm = () => { |
|||
trayInfo.value.id = 3; |
|||
trayInfo.value.trayTempVale = trayTempVale; |
|||
tempVisivle.value = false; |
|||
}; |
|||
</script> |
|||
|
|||
<style lang="scss" scoped> |
|||
@use "@/assets/style/mixin.scss" as *; |
|||
.heat_main { |
|||
border: 1px solid #e9f3ff; |
|||
width: 11.5rem; |
|||
height: 18.125rem; |
|||
border-radius: 10px; |
|||
background: #e9f3ff; |
|||
margin-top: 0.5rem; |
|||
} |
|||
.heat_pos_text { |
|||
display: flex; |
|||
height: 1.75rem; |
|||
padding-left: 0.875rem; |
|||
padding-right: 0.75rem; |
|||
.pos_text { |
|||
font-size: 0.8125rem; |
|||
font-weight: 500; |
|||
line-height: normal; |
|||
display: flex; |
|||
height: 1.75rem; |
|||
padding-left: .875rem; |
|||
padding-right: .75rem; |
|||
.pos_text{ |
|||
font-size: .8125rem; |
|||
font-weight: 500; |
|||
line-height: normal; |
|||
display: flex; |
|||
align-items: center; |
|||
color: #4D6882; |
|||
align-items: center; |
|||
color: #4d6882; |
|||
} |
|||
|
|||
.pos_state { |
|||
margin-left: 50%; |
|||
} |
|||
} |
|||
.heat_pos { |
|||
width: 10.375rem; |
|||
height: 10.375rem; |
|||
display: flex; |
|||
justify-content: center; |
|||
flex-wrap: wrap; |
|||
gap: 0.625rem; |
|||
flex-direction: row; |
|||
border: 2px solid #7592a8; |
|||
padding-top: 0.5rem; |
|||
border-radius: 0.5rem; |
|||
margin-left: 5px; |
|||
.craft_executing_modal { |
|||
position: absolute; |
|||
width: 10rem; |
|||
height: 18rem; |
|||
background: rgba(2, 86, 255, 0.12); |
|||
opacity: 0.5; |
|||
z-index: 9999; |
|||
margin-top: -2rem; |
|||
.loading { |
|||
margin-left: 4.2rem; |
|||
margin-top: 4rem; |
|||
} |
|||
.tray_craft { |
|||
font-size: 1rem; |
|||
margin-top: 0.5rem; |
|||
margin-left: 3rem; |
|||
font-weight: bold; |
|||
color: #4d6882; |
|||
} |
|||
|
|||
.pos_state{ |
|||
margin-left:50% |
|||
.tray_exce { |
|||
font-size: 1.2rem; |
|||
margin-left: 1.8rem; |
|||
font-weight: bold; |
|||
color: #4d6882; |
|||
} |
|||
} |
|||
.heat_pos{ |
|||
} |
|||
.inner-circle { |
|||
border-radius: 50%; |
|||
width: 1.625rem; |
|||
height: 1.625rem; |
|||
background-color: rgb(212, 212, 212); |
|||
} |
|||
.heat_footer { |
|||
height: 5.625rem; |
|||
width: 102.5rem; |
|||
margin-top: 0.25rem; |
|||
.heat_temperature { |
|||
height: 1.625rem; |
|||
width: 10.375rem; |
|||
height: 10.375rem; |
|||
background: #ffffff; |
|||
box-shadow: inset 2px 2px 4px 0px rgba(204, 204, 204, 0.3); |
|||
border-radius: 5px; |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: center; |
|||
flex-wrap: wrap; |
|||
margin-left: 5px; |
|||
gap: .625rem; |
|||
flex-direction: row; |
|||
border: 2px solid #7592A8; |
|||
margin-left: .5rem; |
|||
padding-top: .5rem; |
|||
border-radius: 0.5rem; |
|||
|
|||
.craft_executing_modal{ |
|||
position: absolute; |
|||
width: 10rem; |
|||
height: 18rem; |
|||
background: rgba(2, 86, 255, 0.12); |
|||
opacity: 0.5; |
|||
z-index: 9999; |
|||
margin-top: -2rem; |
|||
.loading{ |
|||
margin-left: 4.2rem; |
|||
margin-top: 4rem; |
|||
} |
|||
.tray_craft{ |
|||
font-size: 1rem; |
|||
margin-top: 0.5rem; |
|||
margin-left: 3rem; |
|||
font-weight: bold; |
|||
color: #4D6882; |
|||
} |
|||
|
|||
.tray_exce{ |
|||
font-size: 1.2rem; |
|||
margin-left: 1.8rem; |
|||
font-weight: bold; |
|||
color: #4D6882; |
|||
} |
|||
|
|||
|
|||
.target_temp { |
|||
color: #384d5d; |
|||
font-size: 0.75rem; |
|||
} |
|||
|
|||
.heating { |
|||
color: #fe0a0a; |
|||
font-size: 0.85rem; |
|||
margin-left: 1rem; |
|||
} |
|||
} |
|||
.inner-circle { |
|||
border-radius: 50%; |
|||
width: 1.625rem; |
|||
height: 1.625rem; |
|||
background-color: rgb(212, 212, 212); |
|||
|
|||
.heat_opt { |
|||
margin: 1rem; |
|||
} |
|||
.heat_footer{ |
|||
margin-top: 10px; |
|||
margin-left: 5px; |
|||
.heat_temperature{ |
|||
height: 1.625rem; |
|||
width: 10.375rem; |
|||
background: #FFFFFF; |
|||
box-shadow: inset 2px 2px 4px 0px rgba(204, 204, 204, 0.3); |
|||
border-radius: 5px; |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: center; |
|||
margin-left: .375rem; |
|||
.target_temp{ |
|||
color: #384D5D; |
|||
font-size: .75rem; |
|||
} |
|||
|
|||
.heating{ |
|||
color: #FE0A0A; |
|||
font-size: .875rem; |
|||
margin-left: 2.25rem; |
|||
} |
|||
} |
|||
|
|||
.temp_text{ |
|||
font-size: 1.125rem; |
|||
font-weight: bold; |
|||
color: #4D6882; |
|||
} |
|||
.temp_text { |
|||
font-size: 1.125rem; |
|||
font-weight: bold; |
|||
color: #4d6882; |
|||
} |
|||
} |
|||
|
|||
.heat_overlay{ |
|||
border: 1px solid #E9F3FF; |
|||
width: 9.375rem; |
|||
height: 15.5rem; |
|||
border-radius: 20px; |
|||
margin-top: 3.125rem; |
|||
position: absolute; |
|||
background: #d3d3d3; |
|||
margin-top: -10.375rem; |
|||
opacity: 0.8; |
|||
.heat_overlay { |
|||
border: 1px solid #e9f3ff; |
|||
width: 9.375rem; |
|||
height: 15.5rem; |
|||
border-radius: 20px; |
|||
margin-top: 3.125rem; |
|||
position: absolute; |
|||
background: #d3d3d3; |
|||
margin-top: -10.375rem; |
|||
opacity: 0.8; |
|||
|
|||
.heat_loading{ |
|||
margin: 3.875rem; |
|||
} |
|||
.heat_loading { |
|||
margin: 3.875rem; |
|||
} |
|||
} |
|||
|
|||
.formula_picker{ |
|||
width: 25rem; |
|||
margin: 20% 30%; |
|||
} |
|||
|
|||
.set_temp_modal{ |
|||
display: flex; |
|||
justify-content: center; |
|||
align-items: center; |
|||
} |
|||
.heat_choose { |
|||
position: relative; |
|||
margin-left: 5rem; |
|||
z-index: 99; |
|||
margin-top: -1.6rem; |
|||
|
|||
.set_temp_modal_content{ |
|||
width: 28.5rem; |
|||
height: 16.5rem; |
|||
.btn { |
|||
width: 3.75rem; |
|||
height: 1.875rem; |
|||
font-size: 0.625rem; |
|||
color: #1989fa; |
|||
background: #ffffff; |
|||
} |
|||
} |
|||
|
|||
.temp_label{ |
|||
margin-left: 2.875rem; |
|||
margin-top: 1rem; |
|||
} |
|||
.formula_picker { |
|||
width: 25rem; |
|||
margin: 20% 30%; |
|||
} |
|||
|
|||
.set_temp_title{ |
|||
height: 1.875rem; |
|||
width: 5.25rem; |
|||
margin-top:1.875rem; |
|||
margin-left: 1.25rem; |
|||
font-size: 1.25rem; |
|||
font-weight: 500; |
|||
color: #40474E; |
|||
} |
|||
} |
|||
|
|||
.temp_input{ |
|||
border: 1px solid #dadada; |
|||
font-size: 1.25rem; |
|||
width: 10rem; |
|||
} |
|||
.set_temp_modal { |
|||
display: flex; |
|||
justify-content: center; |
|||
align-items: center; |
|||
} |
|||
|
|||
.temp_status{ |
|||
margin-top: 1.5rem; |
|||
display: flex; |
|||
gap: 20px; |
|||
.set_temp_modal_content { |
|||
width: 28.5rem; |
|||
height: 16.5rem; |
|||
background: #ffffff; |
|||
|
|||
.temp_label { |
|||
margin-left: 2.875rem; |
|||
margin-top: 1rem; |
|||
} |
|||
|
|||
.temp_radio{ |
|||
.set_temp_title { |
|||
height: 1.875rem; |
|||
width: 5.25rem; |
|||
margin-top: 1.875rem; |
|||
margin-left: 1.25rem; |
|||
font-size: 1.25rem; |
|||
display: flex; |
|||
gap: 20px; |
|||
font-weight: 500; |
|||
color: #40474e; |
|||
} |
|||
} |
|||
|
|||
:deep(.van-radio__icon){ |
|||
i{ |
|||
font-size: 30px; |
|||
margin-top: -10px; |
|||
} |
|||
} |
|||
.temp_input { |
|||
border: 1px solid #dadada; |
|||
font-size: 1.25rem; |
|||
width: 10rem; |
|||
} |
|||
|
|||
</style> |
|||
|
|||
.temp_status { |
|||
margin-top: 1.5rem; |
|||
display: flex; |
|||
gap: 20px; |
|||
} |
|||
|
|||
.temp_radio { |
|||
font-size: 1.25rem; |
|||
display: flex; |
|||
gap: 20px; |
|||
} |
|||
|
|||
:deep(.van-radio__icon) { |
|||
i { |
|||
font-size: 30px; |
|||
margin-top: -10px; |
|||
} |
|||
} |
|||
</style> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue