当前位置: 首页 > news >正文

企业网站改版计划书昆明专业网站制作公司

企业网站改版计划书,昆明专业网站制作公司,兰州又要封城了,收费网站有哪些想要做一个基于uni-app的血糖血压刻度滑动控件&#xff0c;hbuilder市场没有好的&#xff0c;参照别人的写了一个。如图&#xff1a;源码&#xff0c;自己放入components里面。<!-- 刻度滑动选择 --> <template><view><view class"slide-title"…

想要做一个基于uni-app的血糖血压刻度滑动控件,hbuilder市场没有好的,参照别人的写了一个。如图:

源码,自己放入components里面。

<!-- 刻度滑动选择 -->
<template><view><view class="slide-title"><view class="slide-title-left">{{subTitle}}</view><view class="slide-title-num">{{selvalue}}</view><view class="slide-title-right">{{subUnit}}</view></view><view class="slide-scroll-border"><scroll-view scroll-x class="slide-scroll" :enable-flex="true" show-scrollbar="false":style="{width: setUnit(screenW)}" @scroll="slideScroll":scroll-left="scrollLeft" @touchend="slideMoveEnd" :scroll-with-animation="true"><view class="slide-scroll slide-border"><view class="empty-none" :style="{width: screenW /2 + 'px'}"></view><view v-for="(s_item, s_index) in list" :key="s_index" class="" :class="{'slide-list':true,'selected': s_index === selInd,'selected1': (s_index === selInd + 1 || s_index === selInd - 1),'selected2': (s_index === selInd + 2 || s_index === selInd - 2),'selected3': (s_index === selInd + 3 || s_index === selInd - 3) }"><view class="list-num" v-if="s_index%10==0">{{s_item}}</view><view class="slide-list-ba"></view></view><view class="empty-none" :style="{width: screenW / 2 + 'px'}"></view></view></scroll-view></view><view class="slide-message" v-if="message">{{message}}</view></view>
</template><script>export default {name:'zlSlider',data() {return {scrollLeft: 0, // 仅用于核准中间位置d_len:20,list: [],selvalue:0,selInd: 0,cellWidth:12,// 每小格宽度screenW:uni.getSystemInfoSync().screenWidth};},props: {subTitle: 	{	type: String,	default: '' },subUnit: 	{	type: String,	default: '' },message: 	{	type: String,	default: '' },startNum: 	{	type: Number,	default: 0 },	// 开始数值endNum: 	{	type: Number,	default: 20 },	// 结束数值step: 		{	type: Number,	default: 1 },	// 结束数值value: 		{	type: Number,	default: 0 },	// 用v-model双向绑定},mounted() {// 获取滑动显示内容的宽度。uni.createSelectorQuery().in(this).select('.slide-scroll-border').boundingClientRect(data => {if (data) this.screenW = data.width-60;}).exec();this.initSlide();},methods: {setUnit(unit) {if (typeof unit === 'number') {return (unit + 'px')} else {return unit;}},// 滚动触发slideScroll(e) {const { cellWidth} = this;const scrollL = e.detail.scrollLeft; // 当前滚动距离左边的距离let ind = parseInt(scrollL / cellWidth); // 当前选中是第几个if (ind > this.d_len) {ind = this.d_len;}if (ind !== this.selInd) {this.selInd = ind;this.selvalue = this.getIntNum(this.selInd*this.step+this.startNum)}},// 触摸结束slideMoveEnd(e) {// const end_t = setTimeout(() => {// 	const { selInd } = this;// 	this.slideTo(selInd);// 	this.setEmitFunc();// 	clearTimeout(end_t);// }, 400);const { selInd } = this;this.slideTo(selInd);this.setEmitFunc();},// 初始化initSlide() {const { startNum, endNum, step } = this;this.d_len = (endNum - startNum)*(1/step);// let list = [...Array(this.d_len).keys()].map(index=>this.getIntNum(startNum + index*this.step))// for (let i = 0; i <= this.d_len; i++) {// 	const l_num = this.getIntNum(startNum + i*this.step);// 	list.push(l_num);// }this.list = [...Array(this.d_len).keys()].map(index=>this.getIntNum(startNum + index*step));this.getSelInd();},// 滚动到正确的刻度slideTo(ind) {const { screenW, cellWidth, scrollLeft } = this;const newLeft = ind * cellWidth + (cellWidth / 2);this.$nextTick(()=>{this.scrollLeft = (scrollLeft === newLeft) ? (scrollLeft + 0.001) : newLeft;})},// 四舍五入getIntNum(n) {return parseInt(n * 100) / 100},// value改变后,计算选中的selIndgetSelInd() {const { endNum, startNum } = this;let value = this.value,isChange = false,noHave = false;// 不能超过最小最大值if (value > endNum) {value = endNum;isChange = true;} else if (value < startNum) {value = startNum;isChange = true;}let defaultInd = -1;const itemValue = this.list.map((item,index)=>{return (item===value)? index :0}).filter(item=>item>0);// for (let d = 0; d <= this.d_len; d++) {// 	const item = this.getIntNum(startNum + d*this.step);// 	if (item === value) {// 		defaultInd = d;// 		break;// 	}// }if(itemValue && itemValue.length>0){defaultInd = itemValue[0]}else {defaultInd = 0;noHave = true;}// 没有匹配到的情况 以及 超过了最大最小值 需要通知父组件修改value(isChange || noHave) && this.setEmitFunc();if (defaultInd === this.selInd) return;this.selInd = defaultInd;this.selvalue = this.getIntNum(this.selInd*this.step+this.startNum)this.slideTo(defaultInd);},// 父组件通知事件setEmitFunc() {const { selvalue } = this;this.$emit('input', selvalue);this.$listeners.change && this.$emit('change', selvalue);},},watch: {value: function(newVal, oldVal) {this.getSelInd();}},}
</script><style lang="scss">.slide-title{display: flex;flex-direction: row;align-items: flex-end;justify-content: center;margin-top: 10px;margin-bottom: 5px;&-left,&-right{color:$uni-text-color-grey;font-size: 14px;}&-num{color:$uni-text-color;text-align: center;font-size: 30px;margin: 0 10px;line-height: 100%;/* #ifdef H5 */margin-bottom: 5px !important;/* #endif */}}.slide-message{color:$uni-text-color-grey;font-size: $uni-font-size-sm;margin: 0 20px;}.slide-scroll {display: flex;flex-wrap: nowrap;flex-direction: row;height: 50px;::-webkit-scrollbar {width: 0 !important;height: 0 !important;-webkit-appearance: none;background: transparent;color: transparent;}}.slide-scroll-border{padding: 5px 30px;border: 1px solid #808080;border-radius: 40px;overflow: hidden;}.slide-list {flex-shrink: 0;position: relative;border-radius: 4px;transition: background-color .1s;width:4px;margin: 0 4px;height: 50px;}.slide-list.selected .slide-list-ba{background-color: red !important;height: 27px;}.slide-list.selected1 .slide-list-ba{background-color: red !important;height: 24px;}.slide-list.selected2 .slide-list-ba{background-color: red !important;height: 21px;}.slide-list.selected3 .slide-list-ba{background-color: red !important;height: 18px;}.slide-list-ba{position: absolute;bottom: 0;left: 0;right: 0;height: 15px;background-color: #D3D3D3;}.list-num {top: 0;position: absolute;transform: translateX(-50%);}.empty-none {flex-shrink: 0;height: 5px;}
</style>

使用示例

<template><view>
......
<zl-slider v-model="bloodSugar.value" :step="0.1" :startNum="0" :endNum="50" subTitle="血糖" subUnit="mmol/L" message="范围通常>3.9,空腹<7.0, 饭后两小时内<11.1 mmol/L"></zl-slider>
......</view>
</template>
<script>import zlSlider from '@/components/zl-slider/zl-slider.vue';export default {components:{zlSlider},data() {return {bloodSugar:{value:0}}}}
</script>

http://www.dtcms.com/a/459835.html

相关文章:

  • 展示网站源码下载全国网络推广
  • 香水网站开源模板网站制作企业有哪些公司
  • 装饰网站模版做英文的小说网站
  • 网站怎么做收录ui做套网站多少钱
  • 济南传承网站建设公司企业网站 建设策划书
  • 企业宣传网站案例多少钱才算有钱人
  • 网站建设考虑十大互联网广告公司
  • 做国际网站有补贴吗如何看网站点击量
  • 企业网站模板湖南岚鸿模板任务发布网站建设
  • 高端网站设计教程河南网站建设报价
  • 供需平台类网站建设西红柿怎么做网站
  • 网站正在建设中源码阿里域名注册查询
  • 国外做vj的网站遵义做网站推广
  • 付公司制作网站费怎么做凭证东莞手机app开发
  • 著名的淘宝客网站什么是竞价推广
  • 网站建设前期需要干嘛佛山网站建设外包公司
  • 云南网站设计流程北京商场打折
  • 网站开发应如何入账产品开发的流程
  • 甘德县公司网站建设做外贸网站平台有哪些内容
  • 建设网站要那些开江网站建设
  • 用PYTHON3 做网站手机广告设计软件
  • 网站iis配置福州做网站的
  • 论坛网站建设开源工具邵东网站
  • 网站域名是什么东西企业网站建设前网站目的需明确
  • 企业公司网站 北京专业商城网站建设哪家便宜
  • 敦煌网外贸论坛河南网站排名优化价格
  • 阳江市企业网站优化菏泽网站建设价格
  • 数字营销培训河北关键词seo排名
  • 建设网站哪里便宜成都网站设计建设
  • 家居企业网站建设讯息服装企业网站模板