Commit e1167f08847b9920ce5dd44525ef44ebd98f8574

Authored by 史婷婷
1 parent 8ce52909

feat: 规格变更单-新增&编辑-产品:厚度、厚度公差 +、厚度公差 -、宽度、宽度公差 +、宽度公差 -、长度、长度公差 +、长度公差 -、数量kg、销售价…

…格 都改成 只能输入数字,且大于等于0,可输入小数
Showing 1 changed file with 42 additions and 17 deletions
... ... @@ -36,53 +36,56 @@
36 36 <view v-show="!item.collapsed">
37 37 <uni-list-item title="厚度">
38 38 <template v-slot:footer>
39   - <uni-easyinput v-model="item.thickness" placeholder="请输入厚度" :inputBorder="false" />
  39 + <uni-easyinput type="digit" v-model="item.thickness" placeholder="请输入厚度" :inputBorder="false"
  40 + @input="onNonNegativeNumberInput($event, item, idx, 'thickness')" @blur="onNonNegativeNumberBlur(item, idx, 'thickness')" />
40 41 </template>
41 42 </uni-list-item>
42 43 <uni-list-item title="厚度公差 +">
43 44 <template v-slot:footer>
44   - <uni-easyinput v-model="item.thicknessTolPos" placeholder="请输入厚度公差 +"
45   - :inputBorder="false" />
  45 + <uni-easyinput type="digit" v-model="item.thicknessTolPos" placeholder="请输入厚度公差 +"
  46 + :inputBorder="false" @input="onNonNegativeNumberInput($event, item, idx, 'thicknessTolPos')" @blur="onNonNegativeNumberBlur(item, idx, 'thicknessTolPos')" />
46 47 </template>
47 48 </uni-list-item>
48 49 <uni-list-item title="厚度公差 -">
49 50 <template v-slot:footer>
50   - <uni-easyinput v-model="item.thicknessTolNeg" placeholder="请输入厚度公差 -"
51   - :inputBorder="false" />
  51 + <uni-easyinput type="digit" v-model="item.thicknessTolNeg" placeholder="请输入厚度公差 -"
  52 + :inputBorder="false" @input="onNonNegativeNumberInput($event, item, idx, 'thicknessTolNeg')" @blur="onNonNegativeNumberBlur(item, idx, 'thicknessTolNeg')" />
52 53 </template>
53 54 </uni-list-item>
54 55 <uni-list-item title="宽度">
55 56 <template v-slot:footer>
56   - <uni-easyinput v-model="item.width" placeholder="请输入宽度" :inputBorder="false" />
  57 + <uni-easyinput type="digit" v-model="item.width" placeholder="请输入宽度" :inputBorder="false"
  58 + @input="onNonNegativeNumberInput($event, item, idx, 'width')" @blur="onNonNegativeNumberBlur(item, idx, 'width')" />
57 59 </template>
58 60 </uni-list-item>
59 61 <uni-list-item title="宽度公差 +">
60 62 <template v-slot:footer>
61   - <uni-easyinput v-model="item.widthTolPos" placeholder="请输入宽度公差 +"
62   - :inputBorder="false" />
  63 + <uni-easyinput type="digit" v-model="item.widthTolPos" placeholder="请输入宽度公差 +"
  64 + :inputBorder="false" @input="onNonNegativeNumberInput($event, item, idx, 'widthTolPos')" @blur="onNonNegativeNumberBlur(item, idx, 'widthTolPos')" />
63 65 </template>
64 66 </uni-list-item>
65 67 <uni-list-item title="宽度公差 -">
66 68 <template v-slot:footer>
67   - <uni-easyinput v-model="item.widthTolNeg" placeholder="请输入宽度公差 -"
68   - :inputBorder="false" />
  69 + <uni-easyinput type="digit" v-model="item.widthTolNeg" placeholder="请输入宽度公差 -"
  70 + :inputBorder="false" @input="onNonNegativeNumberInput($event, item, idx, 'widthTolNeg')" @blur="onNonNegativeNumberBlur(item, idx, 'widthTolNeg')" />
69 71 </template>
70 72 </uni-list-item>
71 73 <uni-list-item title="长度">
72 74 <template v-slot:footer>
73   - <uni-easyinput v-model="item.length" placeholder="请输入长度" :inputBorder="false" />
  75 + <uni-easyinput type="digit" v-model="item.length" placeholder="请输入长度" :inputBorder="false"
  76 + @input="onNonNegativeNumberInput($event, item, idx, 'length')" @blur="onNonNegativeNumberBlur(item, idx, 'length')" />
74 77 </template>
75 78 </uni-list-item>
76 79 <uni-list-item title="长度公差 +">
77 80 <template v-slot:footer>
78   - <uni-easyinput v-model="item.lengthTolPos" placeholder="请输入长度公差 +"
79   - :inputBorder="false" />
  81 + <uni-easyinput type="digit" v-model="item.lengthTolPos" placeholder="请输入长度公差 +"
  82 + :inputBorder="false" @input="onNonNegativeNumberInput($event, item, idx, 'lengthTolPos')" @blur="onNonNegativeNumberBlur(item, idx, 'lengthTolPos')" />
80 83 </template>
81 84 </uni-list-item>
82 85 <uni-list-item title="长度公差 -">
83 86 <template v-slot:footer>
84   - <uni-easyinput v-model="item.lengthTolNeg" placeholder="请输入长度公差 -"
85   - :inputBorder="false" />
  87 + <uni-easyinput type="digit" v-model="item.lengthTolNeg" placeholder="请输入长度公差 -"
  88 + :inputBorder="false" @input="onNonNegativeNumberInput($event, item, idx, 'lengthTolNeg')" @blur="onNonNegativeNumberBlur(item, idx, 'lengthTolNeg')" />
86 89 </template>
87 90 </uni-list-item>
88 91 <uni-list-item title="状态">
... ... @@ -92,12 +95,14 @@
92 95 </uni-list-item>
93 96 <uni-list-item title="数量kg">
94 97 <template v-slot:footer>
95   - <uni-easyinput v-model="item.quantity" placeholder="请输入数量kg" :inputBorder="false" />
  98 + <uni-easyinput type="digit" v-model="item.quantity" placeholder="请输入数量kg" :inputBorder="false"
  99 + @input="onNonNegativeNumberInput($event, item, idx, 'quantity')" @blur="onNonNegativeNumberBlur(item, idx, 'quantity')" />
96 100 </template>
97 101 </uni-list-item>
98 102 <uni-list-item v-if="item.showSalesPrice" title="销售价格">
99 103 <template v-slot:footer>
100   - <uni-easyinput v-model="item.salesPrice" placeholder="请输入销售价格" :inputBorder="false" />
  104 + <uni-easyinput type="digit" v-model="item.salesPrice" placeholder="请输入销售价格" :inputBorder="false"
  105 + @input="onNonNegativeNumberInput($event, item, idx, 'salesPrice')" @blur="onNonNegativeNumberBlur(item, idx, 'salesPrice')" />
101 106 </template>
102 107 </uni-list-item>
103 108 <uni-list-item title="发货日期">
... ... @@ -280,6 +285,26 @@ export default {
280 285 this.$emit('update:value', out)
281 286 this.$emit('change', out)
282 287 },
  288 + onNonNegativeNumberInput(val, item, idx, field) {
  289 + let v = String(val != null ? val : (item && item[field]) || '')
  290 + v = v.replace(/[^0-9.]/g, '')
  291 + v = v.replace(/(\..*)\./g, '$1')
  292 + if (v.startsWith('.')) v = '0' + v
  293 + if (v === '') { item[field] = ''; if (typeof idx === 'number') this.$set(this.items, idx, { ...item }); return }
  294 + const num = Number(v)
  295 + if (isNaN(num) || num < 0) {
  296 + item[field] = '0'
  297 + } else {
  298 + item[field] = v
  299 + }
  300 + if (typeof idx === 'number') this.$set(this.items, idx, { ...item })
  301 + },
  302 + onNonNegativeNumberBlur(item, idx, field) {
  303 + const v = String((item && item[field]) || '')
  304 + const num = Number(v)
  305 + if (isNaN(num) || num < 0) item[field] = '0'
  306 + if (typeof idx === 'number') this.$set(this.items, idx, { ...item })
  307 + },
283 308 toggleViewCollapse() {
284 309 this.collapsedView = !this.collapsedView
285 310 }
... ...