mirror of
https://gitee.com/hhyykk/ipms-sjy.git
synced 2025-07-06 23:25:06 +08:00
多模块重构 12:修改项目名字,按照新的规则
This commit is contained in:
180
yudao-ui-app-v1/components/mix-number-box/mix-number-box.vue
Normal file
180
yudao-ui-app-v1/components/mix-number-box/mix-number-box.vue
Normal file
@ -0,0 +1,180 @@
|
||||
<template>
|
||||
<view class="uni-numbox">
|
||||
<view class="uni-numbox-minus"
|
||||
@click="_calcValue('subtract')"
|
||||
>
|
||||
<text class="mix-icon icon--jianhao" :class="minDisabled?'uni-numbox-disabled': ''" ></text>
|
||||
</view>
|
||||
<input
|
||||
class="uni-numbox-value"
|
||||
type="number"
|
||||
:disabled="inputDisabled"
|
||||
:value="inputValue"
|
||||
@blur="_onBlur"
|
||||
>
|
||||
|
||||
<view
|
||||
class="uni-numbox-plus"
|
||||
@click="_calcValue('add')"
|
||||
>
|
||||
<text class="mix-icon icon-jia2" :class="maxDisabled?'uni-numbox-disabled': ''" ></text>
|
||||
</view>
|
||||
</view>
|
||||
</template>
|
||||
<script>
|
||||
/**
|
||||
* index 当前行下标
|
||||
* value 默认值
|
||||
* min 最小值
|
||||
* max 最大值
|
||||
* step 步进值
|
||||
* disabled 禁用
|
||||
*/
|
||||
export default {
|
||||
name: 'uni-number-box',
|
||||
props: {
|
||||
index: {
|
||||
type: Number,
|
||||
default: 0
|
||||
},
|
||||
value: {
|
||||
type: Number,
|
||||
default: 1
|
||||
},
|
||||
min: {
|
||||
type: Number,
|
||||
default: -Infinity
|
||||
},
|
||||
max: {
|
||||
type: Number,
|
||||
default: 99
|
||||
},
|
||||
step: {
|
||||
type: Number,
|
||||
default: 1
|
||||
},
|
||||
inputDisabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
inputValue: this.value,
|
||||
}
|
||||
},
|
||||
created(){
|
||||
|
||||
},
|
||||
computed: {
|
||||
maxDisabled(){
|
||||
return this.inputValue >= this.max;
|
||||
},
|
||||
minDisabled(){
|
||||
return this.inputValue <= this.min;
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
inputValue(number) {
|
||||
const data = {
|
||||
number: number,
|
||||
index: this.index
|
||||
}
|
||||
this.$emit('eventChange', data);
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
_calcValue(type) {
|
||||
let value = this.inputValue;
|
||||
let newValue = 0;
|
||||
let step = this.step;
|
||||
|
||||
if(type === 'subtract'){
|
||||
newValue = value - step;
|
||||
|
||||
if(newValue < this.min){
|
||||
newValue = this.min
|
||||
if(this.min > 1){
|
||||
this.$api.msg(this.limit_message);
|
||||
}
|
||||
}
|
||||
}else if(type === 'add'){
|
||||
newValue = value + step;
|
||||
|
||||
if(newValue > this.max){
|
||||
newValue = this.max
|
||||
}
|
||||
}
|
||||
if(newValue === value){
|
||||
return;
|
||||
}
|
||||
this.inputValue = newValue;
|
||||
},
|
||||
_onBlur(event) {
|
||||
let value = event.detail.value;
|
||||
let constValue = value;
|
||||
if (!value) {
|
||||
this.inputValue = 0;
|
||||
return
|
||||
}
|
||||
value = +value;
|
||||
if (value > this.max) {
|
||||
value = this.max;
|
||||
} else if (value < this.min) {
|
||||
value = this.min
|
||||
}
|
||||
|
||||
if(constValue != value){
|
||||
this.inputValue = constValue;
|
||||
this.$nextTick(()=>{
|
||||
this.inputValue = value
|
||||
})
|
||||
}else{
|
||||
this.inputValue = value
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style>
|
||||
.uni-numbox {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
height: 50rpx;
|
||||
}
|
||||
|
||||
.uni-numbox-minus,
|
||||
.uni-numbox-plus {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 50rpx;
|
||||
height: 100%;
|
||||
line-height: 1;
|
||||
background-color: #f7f7f7;
|
||||
}
|
||||
.uni-numbox-minus .mix-icon,
|
||||
.uni-numbox-plus .mix-icon{
|
||||
font-size: 32rpx;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.uni-numbox-value {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
background-color: #fff;
|
||||
width: 60rpx;
|
||||
height: 50rpx;
|
||||
min-height: 50rpx;
|
||||
text-align: center;
|
||||
font-size: 28rpx;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.uni-numbox-disabled.mix-icon {
|
||||
color: #C0C4CC;
|
||||
}
|
||||
</style>
|
Reference in New Issue
Block a user