New file |
| | |
| | | <template> |
| | | <view> |
| | | <view class="main"> |
| | | <view class="inner1">{{attribute.lable}}</view> |
| | | <view class="put inner2"> |
| | | <uni-icons class="p-icon" |
| | | type="scan" |
| | | size="16" |
| | | color="#a6a6a6" |
| | | @click="scanCode" |
| | | v-show="attribute.scanCode" |
| | | > |
| | | </uni-icons> |
| | | <input class="p-input" |
| | | type="text" |
| | | :placeholder="placeholder" |
| | | v-model="zzz" |
| | | :focus="focusData" |
| | | @input="change" |
| | | > |
| | | |
| | | <uni-icons class="p-icon" |
| | | type="closeempty" |
| | | size="16" |
| | | color="#b9b9b9" |
| | | v-show="data.length" |
| | | @click="clear"> |
| | | |
| | | </uni-icons> |
| | | </view> |
| | | <view class="inner3" v-show="btn"> |
| | | <button class="m-btn" size="mini" @click="clickBtn">{{btnName}}</button> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name:"x-input", |
| | | data() { |
| | | return { |
| | | data:'', |
| | | focusData: false |
| | | }; |
| | | }, |
| | | props: { |
| | | attribute: { |
| | | type: Object, |
| | | default() { |
| | | return {} |
| | | } |
| | | }, |
| | | index: { |
| | | type: Number, |
| | | default: 0 |
| | | }, |
| | | lable: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | name: { |
| | | type: String, |
| | | default: '' |
| | | }, |
| | | btn: { |
| | | type: Boolean, |
| | | default: false |
| | | }, |
| | | btnName: { |
| | | type: String, |
| | | default: 'button' |
| | | }, |
| | | placeholder: { |
| | | type: String, |
| | | default: '扫码 / 录入' |
| | | }, |
| | | value: { |
| | | type: [String,Number], |
| | | default: '' |
| | | }, |
| | | v: { |
| | | type: [String,Number], |
| | | default: '' |
| | | }, |
| | | lenCheck: { |
| | | type: [Number], |
| | | default: null |
| | | }, |
| | | focus: { |
| | | type: Boolean, |
| | | default: false |
| | | } |
| | | }, |
| | | watch: { |
| | | data(val) { |
| | | // if (!this.lenCheck) { |
| | | // this.$emit('input',val) |
| | | // return |
| | | // } |
| | | // if (val.length != this.lenCheck) { |
| | | // setTimeout(()=>{ |
| | | // this.data = '' |
| | | // this.$emit('input','') |
| | | // },10) |
| | | // } else { |
| | | // this.$emit('input',val) |
| | | // } |
| | | }, |
| | | value(val) { |
| | | this.data = val |
| | | }, |
| | | focus(f) { |
| | | this.focusData = !f |
| | | setTimeout(()=>{ |
| | | this.focusData = f |
| | | },10) |
| | | }, |
| | | zzz(val) { |
| | | // this.v = val |
| | | } |
| | | |
| | | }, |
| | | created() { |
| | | this.data = this.value |
| | | this.focusData = this.focus |
| | | }, |
| | | methods: { |
| | | change() { |
| | | let _this = this |
| | | console.log(`值改变了: ${this.zzz}`); |
| | | // if (this.data.length > 8) { |
| | | // this.data = 66666 |
| | | // } |
| | | this.$emit('change') |
| | | }, |
| | | clear() { |
| | | this.data = '' |
| | | console.log(this.attribute); |
| | | }, |
| | | clickBtn() { |
| | | this.$emit('clickBtn'); |
| | | }, |
| | | inputVal() { |
| | | this.$emit('inputVal',[this.data,this.name]); |
| | | }, |
| | | scanCode() { |
| | | let _this = this |
| | | uni.scanCode({ |
| | | onlyFromCamera: true, |
| | | success(res) { |
| | | _this.$parent.scanCode(res.result) |
| | | _this.data = res.result |
| | | console.log('扫到了'); |
| | | console.log(res); |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .main { |
| | | display: flex; |
| | | align-items: center; |
| | | min-height: 50px; |
| | | background-color: #fff; |
| | | } |
| | | .put { |
| | | display: flex; |
| | | flex-shrink: 0; |
| | | } |
| | | |
| | | .inner1 { |
| | | width: 55px; |
| | | padding-left: 8px; |
| | | color: #606164; |
| | | font-weight: 900; |
| | | font-family:'Helvetica Neue'; |
| | | } |
| | | .inner2 { |
| | | background-color: #f8f8f8; |
| | | flex: 1; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | border-radius: 5px; |
| | | margin-right: 32rpx; |
| | | color: #606266; |
| | | } |
| | | .p-input { |
| | | flex:1; |
| | | padding: 4px; |
| | | } |
| | | .p-icon { |
| | | margin-left: 4px; |
| | | margin-right: 4px; |
| | | } |
| | | .inner3 { |
| | | width: 90px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | .m-btn { |
| | | background-color: #00aeec; |
| | | color: #FFF; |
| | | } |
| | | .m-btn:active { |
| | | background-color: #55bbff; |
| | | color: #FFF; |
| | | } |
| | | |
| | | </style> |
| | |
| | | type="scan" |
| | | size="16" |
| | | color="#a6a6a6" |
| | | @click="scanCode" |
| | | > |
| | | </uni-icons> |
| | | <input class="p-input" |
| | |
| | | setTimeout(()=>{ |
| | | this.data = '' |
| | | this.$emit('input','') |
| | | },10) |
| | | },0) |
| | | } else { |
| | | this.$emit('input',val) |
| | | } |
| | |
| | | }, |
| | | inputVal() { |
| | | this.$emit('inputVal',[this.data,this.name]); |
| | | }, |
| | | scanCode() { |
| | | let _this = this |
| | | uni.scanCode({ |
| | | onlyFromCamera: true, |
| | | success(res) { |
| | | _this.$parent.scanCode(res.result) |
| | | _this.data = res.result |
| | | console.log('扫到了'); |
| | | console.log(res); |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
New file |
| | |
| | | <template> |
| | | <view > |
| | | <view class="main"> |
| | | <view class="main-left" > |
| | | <view class="main-list" v-for="it in list" style="width: 100%;"> |
| | | <view class="left-key">{{it.key}}</view> |
| | | <view>:</view> |
| | | <view class="left-val"> |
| | | <text :class="it.valText">{{it.value}}</text> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | <uni-badge |
| | | class="main-right uni-badge-left-margin" |
| | | :text="index" |
| | | absolute="rightTop" |
| | | size="small" |
| | | type="primary" |
| | | > |
| | | <view style="height: 100%;display: flex;align-items: center;" @click="goDetail"> |
| | | <view class="list-options"> |
| | | <uni-icons class="opt-icon" type="right" size="20" color="#b9b9b9"></uni-icons> |
| | | </view> |
| | | </view> |
| | | </uni-badge> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name:"z-list", |
| | | data() { |
| | | return { |
| | | dataList: [ |
| | | {key: '商品编码',value: 'fbr3242'}, |
| | | {key: '批号',value: '20231006'}, |
| | | {key: '数量',value: '200'}, |
| | | {key: '商品编码',value: 'fbr3242'}, |
| | | {key: '批号',value: '20231006'}, |
| | | {key: '数量',value: '200'} |
| | | ], |
| | | detailList: [], |
| | | dataKey: {}, |
| | | valText: 'val-text' |
| | | }; |
| | | }, |
| | | methods: { |
| | | goDetail() { |
| | | this.$emit('goDetail'); |
| | | } |
| | | }, |
| | | created() { |
| | | // this.dataList = this.list.detl |
| | | }, |
| | | props: { |
| | | list: { |
| | | type: Array, |
| | | default() { |
| | | return {} |
| | | } |
| | | }, |
| | | keyName: { |
| | | type: Object, |
| | | default() { |
| | | return {} |
| | | } |
| | | }, |
| | | index: { |
| | | type: Number, |
| | | default: 2 |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <!-- align-items: stretch --> |
| | | <!-- 牛逼!!! --> |
| | | <!-- 设置align-items为stretch,使子元素填充垂直方向的可用高度,实现高度相等的效果。 --> |
| | | <style scoped> |
| | | .main { |
| | | position: relative; |
| | | min-height: 35px; |
| | | background-color: #f5f5f5; |
| | | display: flex; |
| | | align-items: stretch; |
| | | margin: 8px 12px 8px 12px; |
| | | border-radius: 8px; |
| | | } |
| | | .main-left { |
| | | flex: 7; |
| | | display: flex; |
| | | flex-direction: column; |
| | | padding-top: 4px; |
| | | padding-bottom: 4px; |
| | | color: #606164; |
| | | font-size: 14px; |
| | | } |
| | | .main-right { |
| | | width: 30px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | border-left: 1px solid #ffffff; |
| | | } |
| | | .main-right:active { |
| | | background-color: #e3e5e7; |
| | | color: #FFF; |
| | | } |
| | | .main-list { |
| | | display: flex; |
| | | align-items: center; |
| | | margin: 2px 0; |
| | | } |
| | | .list-options { |
| | | display: flex; |
| | | flex-direction: column; |
| | | } |
| | | .list-number { |
| | | position: absolute; |
| | | right: 10px; |
| | | top: 5px; |
| | | } |
| | | .opt-icon { |
| | | display: flex; |
| | | } |
| | | .left-key { |
| | | width: 65px; |
| | | padding-right: 4px; |
| | | text-align: end; |
| | | font-weight: 700; |
| | | } |
| | | .left-val { |
| | | flex: 1; |
| | | padding-left: 4px; |
| | | color: #606266; |
| | | } |
| | | .val-text { |
| | | background-color: #00aeec; |
| | | padding: 2px 4px; |
| | | border-radius: 4px; |
| | | color: #FFF; |
| | | } |
| | | .val-num { |
| | | font-weight: 900; |
| | | color: #d19a66; |
| | | font-size: 16px; |
| | | } |
| | | </style> |
New file |
| | |
| | | <template> |
| | | <view> |
| | | <uni-icons class="p-icon" |
| | | type="scan" |
| | | size="16" |
| | | color="#a6a6a6" |
| | | @click="scanCode" |
| | | > |
| | | </uni-icons> |
| | | <input v-model="data" @input="change" > |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name:"zzz", |
| | | data() { |
| | | return { |
| | | data: '' |
| | | }; |
| | | }, |
| | | props: { |
| | | value: { |
| | | type: String, |
| | | default: "" |
| | | }, |
| | | }, |
| | | watch: { |
| | | data(val){ |
| | | if (val.length != 8) { |
| | | setTimeout(()=>{ |
| | | this.data = '' |
| | | // this.value = '9999' |
| | | this.$emit('input','') |
| | | },0) |
| | | } else { |
| | | this.$emit('input',val) |
| | | } |
| | | }, |
| | | value(val) { |
| | | this.data = val |
| | | } |
| | | }, |
| | | created() { |
| | | this.data = this.value |
| | | }, |
| | | methods: { |
| | | change() { |
| | | this.$emit('change1') |
| | | }, |
| | | scanCode() { |
| | | let _this = this |
| | | uni.scanCode({ |
| | | onlyFromCamera: true, |
| | | success(res) { |
| | | _this.$parent.scanCode(res.result) |
| | | _this.data = res.result |
| | | _this.value = res.result |
| | | console.log('扫到了'); |
| | | console.log(res); |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style> |
| | | |
| | | </style> |
| | |
| | | let network = uni.getStorageSync('Network') |
| | | let baseUrl = `http://${network[0].ip}:${network[0].port}/${network[0].address}` |
| | | let baseUrl = '' |
| | | if (network) { |
| | | baseUrl = `http://${network[0].ip}:${network[0].port}/${network[0].address}` |
| | | } |
| | | async function addMat(matnr) { |
| | | let that = this,item = {}; |
| | | var ress = await uni.request({ |
| | |
| | | import md5 from '@/static/js/md5.js' |
| | | |
| | | let network = uni.getStorageSync('Network') |
| | | let baseUrl = `http://${network[0].ip}:${network[0].port}/${network[0].address}` |
| | | |
| | | let baseUrl = '' |
| | | if (network) { |
| | | baseUrl = `http://${network[0].ip}:${network[0].port}/${network[0].address}` |
| | | } |
| | | console.log(network); |
| | | async function onLogin(user) { |
| | | let _this = this, |
| | | item = {}; |
| | |
| | | <template> |
| | | <view> |
| | | <view class="head"> |
| | | <z-input v-for="it in input" |
| | | :desc="it.title" |
| | | :name="it.name" |
| | | :btn="it.btn" |
| | | :btn-name="it.btnName" |
| | | v-model="it.val" |
| | | :index="it.id" |
| | | :lenCheck="it.lenCheck" |
| | | :focus="it.focus" |
| | | @inputVal='input2' |
| | | ></z-input> |
| | | <z-input :desc="input1.title" |
| | | :name="input1.name" |
| | | :btn="input1.btn" |
| | | :btn-name="input1.btnName" |
| | | v-model="barcode" |
| | | :index="input1.id" |
| | | :lenCheck="input1.lenCheck" |
| | | :focus="input1.focus" |
| | | @inputVal='input3' |
| | | /> |
| | | <z-input |
| | | :desc="input2.title" |
| | | :name="input2.name" |
| | | :btn="input2.btn" |
| | | :btn-name="input2.btnName" |
| | | v-model="matnr" |
| | | :index="input2.id" |
| | | :lenCheck="input2.lenCheck" |
| | | :focus="input2.focus" |
| | | @inputVal='input3' |
| | | /> |
| | | </view> |
| | | <!-- 基本属性绑定 --> |
| | | <!-- 光标复位 --> |
| | | <!-- 长度判断 --> |
| | | |
| | | |
| | | <u-sticky > |
| | | <view class="sticky">商品列表</view> |
| | | <view class="sticky"> |
| | | <view class="flex1">开启键盘</view> |
| | | <view class="flex1">商品列表</view> |
| | | <view class="flex1"></view> |
| | | </view> |
| | | </u-sticky> |
| | | <view>barcode:{{barcode}}</view> |
| | | <!-- <zzz v-model="barcode" @change1='change' @input="inputz"></zzz> --> |
| | | <view>matnr:{{matnr}}</view> |
| | | <!-- <zzz v-model="matnr" @change1='change' @input="inputz"></zzz> --> |
| | | |
| | | |
| | | |
| | | <z-data-list class="data-list" |
| | | v-for="(it,i) in zDataList" |
| | |
| | | :lable="lable" |
| | | :fields="it" |
| | | :index="i+1" |
| | | @goDetail='goDetail(it.detl,i)' |
| | | @goDetail='goDetail(it,i)' |
| | | ></z-data-list> |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | <!-- 垫高 --> |
| | | <view style="height: 100rpx;"></view> |
| | | |
| | | <view class="z-floor"> |
| | | <view class="z-default">重置</view> |
| | | <view class="z-primary">组托</view> |
| | | <view class="z-primary" @click="comb">组托</view> |
| | | </view> |
| | | |
| | | </view> |
| | |
| | | export default { |
| | | data() { |
| | | return { |
| | | zDataList: [ |
| | | // {matnr: 'A1001',maktx: '1号物料',count: 99}, |
| | | // {matnr: 'A1002',maktx: '2号物料',count: 77}, |
| | | // {matnr: 'A1002',maktx: '2号物料',count: 77} |
| | | ], |
| | | zDataList: [ ], |
| | | barcode: '80009991', |
| | | matnr: '', |
| | | inputCode: '托盘码', |
| | | } |
| | | }, |
| | | onShow() { |
| | | // console.log(this.page); |
| | | }, |
| | | computed: mapState({ |
| | | input: state => state.project.menu[0].page.input, |
| | | input1: state => state.project.menu[0].page.input[0], |
| | | input2: state => state.project.menu[0].page.input[1], |
| | | xInput: state => state.project.menu[0].page.input1, |
| | | lable: state => state.project.menu[0].page.lable |
| | | }), |
| | | methods: { |
| | | input2(arr) { |
| | | inputz() { |
| | | // console.log(this.barcode); |
| | | console.log(this.matnr); |
| | | }, |
| | | change() { |
| | | // console.log(this.barcode); |
| | | // console.log(this.matnr); |
| | | |
| | | }, |
| | | scanCode(data) { |
| | | // console.log(data); |
| | | |
| | | }, |
| | | input3(arr) { |
| | | if(arr[1] == 'matnr') { |
| | | this.getMat(arr[0]) |
| | | } |
| | |
| | | } |
| | | }, |
| | | }) |
| | | }, |
| | | comb() { |
| | | console.log(this.barcode); |
| | | console.log(this.matnr); |
| | | } |
| | | } |
| | | } |
| | |
| | | align-items: center; |
| | | justify-content: center; |
| | | } |
| | | .flex1 { |
| | | flex: 1 |
| | | } |
| | | </style> |
| | | |
| | |
| | | { |
| | | "title":"平湖品上新发现", |
| | | "title": "平湖品上新发现", |
| | | "name": "ps", |
| | | "menu": [ |
| | | { |
| | | "menu": [{ |
| | | "title": "组托入库", |
| | | "name": "pakin", |
| | | "url": "/pakin/pakin", |
| | |
| | | "width": "90%", |
| | | "sort": 1, |
| | | "page": { |
| | | "input": [ |
| | | {"id":1,"name": "barcode","title": "托盘码","val": "2","lenCheck": 8,"focus": true}, |
| | | {"id":2,"name": "matnr","title": "物料码","val": "2","btn": true,"btnName": "提取","focus": true} |
| | | "input": [{ |
| | | "id": 1, |
| | | "name": "barcode", |
| | | "title": "托盘码", |
| | | "val": "", |
| | | "lenCheck": 8, |
| | | "focus": true |
| | | }, |
| | | { |
| | | "id": 2, |
| | | "name": "matnr", |
| | | "title": "物料码", |
| | | "val": "", |
| | | "btn": true, |
| | | "btnName": "提取", |
| | | "focus": false |
| | | } |
| | | ], |
| | | "lable": [ |
| | | {"label": "商品码","attribute":"matnr","value": "fbr3242","valText": "val-text"}, |
| | | {"label": "商品名称","attribute":"maktx","value": "fbr3242"}, |
| | | {"label": "规格","attribute":"specs","value": "fbr3242"}, |
| | | {"label": "批号","attribute":"batch","value": "fbr3242"}, |
| | | {"label": "数量","attribute":"count","value": 9999,"type": "number-box","valText": "val-num"} |
| | | "input1": { |
| | | "attribute": "barcode", |
| | | "lable": "托盘码", |
| | | "length": 8, |
| | | "scanCode": true |
| | | }, |
| | | "input2": { |
| | | "attribute": "matnr", |
| | | "lable": "物料码" |
| | | }, |
| | | "lable": [{ |
| | | "label": "商品码", |
| | | "attribute": "matnr", |
| | | "value": "fbr3242", |
| | | "valText": "val-text" |
| | | }, |
| | | { |
| | | "label": "商品名称", |
| | | "attribute": "maktx", |
| | | "value": "fbr3242" |
| | | }, |
| | | { |
| | | "label": "规格", |
| | | "attribute": "specs", |
| | | "value": "fbr3242" |
| | | }, |
| | | { |
| | | "label": "批号", |
| | | "attribute": "batch", |
| | | "value": "fbr3242" |
| | | }, |
| | | { |
| | | "label": "数量", |
| | | "attribute": "count", |
| | | "value": 9999, |
| | | "type": "number-box", |
| | | "valText": "val-num" |
| | | } |
| | | ] |
| | | |
| | | |
| | | } |
| | | }, |
| | | { |