| | |
| | | */ |
| | | |
| | | <template> |
| | | <view class="c-input-scan-code"> |
| | | <view |
| | | class="c-input-scan-code" |
| | | :class="[readOnly?'read-only':'']" |
| | | > |
| | | <AtInput |
| | | :name="itemRes.name" |
| | | :title="itemRes.label" |
| | |
| | | :required="itemRes.required" |
| | | :error="itemRes.error" |
| | | :value="itemRes.formData[itemRes.name]" |
| | | :onChange="evt=>itemRes.onChange(evt)" |
| | | :onChange="evt => itemRes.onChange(evt)" |
| | | :onBlur="evt => onBlur(evt)" |
| | | > |
| | | <view |
| | | class="c-input-scan-btn" |
| | | @tap="evt => handleScan()" |
| | | ></view> |
| | | <view class="c-input-scan-space"></view> |
| | | <AtButton |
| | | class="c-input-scan-show" |
| | | class="c-input-scan-btn" |
| | | size="small" |
| | | type="primary" |
| | | :disabled="readOnly" |
| | | :onClick="evt => handleScan()" |
| | | > |
| | | <text v-show="!scaning">扫描</text> |
| | | <AtIcon |
| | |
| | | itemRes: Object, |
| | | // 占位提示 |
| | | placeholder: String, |
| | | // 只读模式 |
| | | readOnly: { |
| | | type: Boolean, |
| | | default: false, |
| | | }, |
| | | // 由业务层调用app |
| | | onScaning: Function, |
| | | // 失去焦点回调 |
| | | onBlur: { |
| | | type: Function, |
| | | default: () => () => null, |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | this.scaning = true; |
| | | if (type === 'taro') { |
| | | Taro.scanCode({ |
| | | onlyFromCamera: true, |
| | | onlyFromCamera: false, |
| | | scanType: 'barCode', |
| | | success: res => { |
| | | this.scaning = false; |
| | |
| | | }, |
| | | }); |
| | | } else if (type === 'app') { |
| | | // TODO:扫码 |
| | | setTimeout(() => { |
| | | this.scaning = false; |
| | | }, 1000); |
| | | if (this.onScaning) { |
| | | this.onScaning(result => { |
| | | this.scaning = false; |
| | | if (result) { |
| | | this.itemRes.onChange(result); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | }, |
| | | }, |