modified: package.json
modified: src/views/plan/manufacturingorder/index.vue
modified: src/views/quality/Packaging_ledger/index.vue
new file: src/views/quality/rawMaterial/QrcodeReader.vue
modified: src/views/quality/rawMaterial/rawMaterial-form.vue
modified: vue.config.js
| | |
| | | "vue-json-editor": "^1.2.3", |
| | | "vue-json-tree-view": "^2.1.4", |
| | | "vue-qr": "^4.0.9", |
| | | "vue-qrcode-reader": "^5.4.1", |
| | | "vue-quill-editor": "3.0.6", |
| | | "vue-router": "^3.0.2", |
| | | "vuedraggable": "^2.24.3", |
| | |
| | | :loading="loadingExcel" |
| | | >å¯¼åº |
| | | </el-button> |
| | | <el-button |
| | | @click="labelPrint" |
| | | type="primary" |
| | | style="margin-left:10px;" |
| | | >æå°æ ç¾ |
| | | </el-button> |
| | | <!-- <el-button |
| | | v-if="permissions.manufacturingorder_update_orderno" |
| | | @click="updateOrderNo" |
| | |
| | | </div> |
| | | </span> |
| | | </el-dialog> |
| | | <!-- æ ç¾æå° --> |
| | | <el-dialog title="æ ç¾å表" :visible.sync="diaPrintTab" width="500px"> |
| | | <div class="dia_body" style="height: 400px;overflow-y: auto;padding: 0 10px;"> |
| | | <el-card class="box-card" v-for="(tem, i) in orderDatalist" :key="i" style="margin-bottom: 15px;"> |
| | | <el-row> |
| | | <el-col :span="10" :offset="3">åºå·ï¼</el-col> |
| | | <el-col :span="10" style="font-weight: bold;">{{ i + 1 }}</el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="10" :offset="3">客æ·è®¢åå·ï¼</el-col> |
| | | <el-col :span="10" style="font-weight: bold;">{{ tem.customerOrderNo }}</el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="10" :offset="3">é¶ä»¶åç§°ï¼</el-col> |
| | | <el-col :span="10" style="font-weight: bold;">{{ tem.partName }}</el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="10" :offset="3">订åäºç»´ç ï¼</el-col> |
| | | <el-col :span="10"> |
| | | <vueQr :text="JSON.stringify(tem)" :size="200" :margin="2"></vueQr> |
| | | </el-col> |
| | | </el-row> |
| | | </el-card> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="diaPrintTab = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="diaPrintTab = false">æ å°</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | </basic-container> |
| | | </div> |
| | | </template> |
| | |
| | | import DelMatUnIssueVue from './DelMatUnIssue.vue' |
| | | import { getStore } from '@/util/store.js' |
| | | import { getObj as getSysParam } from '@/api/admin/sys-public-param' |
| | | import vueQr from 'vue-qr' |
| | | export default { |
| | | data() { |
| | | return { |
| | | orderDatalist:[], |
| | | diaPrintTab:false, |
| | | showCustomerorder: false, |
| | | paramObj: { customerList: null }, |
| | | customerOrder: null, |
| | |
| | | AutoOperationtask, |
| | | IssueMaterialForm, |
| | | OrderMergeForm, |
| | | DelMatUnIssueVue |
| | | DelMatUnIssueVue, |
| | | vueQr |
| | | }, |
| | | created() { |
| | | this.getManufactureAttrs() |
| | |
| | | }, |
| | | // tableèªå¸¦äºä»¶ |
| | | handleSelectionChange(val) { |
| | | let orderData = [] |
| | | orderData =val.map( el =>{ |
| | | return{ |
| | | moNo:el.moNo, |
| | | workShop:el.workShop, |
| | | operationNames:el.operationNames, |
| | | customerOrderNo:el.customerOrderNo, |
| | | customerName:el.customerName, |
| | | mpsNo:el.mpsNo, |
| | | remark:el.remark, |
| | | partNo:el.partNo, |
| | | partName:el.partName, |
| | | unit:el.unit, |
| | | requiredDate:el.requiredDate, |
| | | } |
| | | }) |
| | | this.orderDatalist = orderData |
| | | console.log(orderData,"å¤è¡éä¸"); |
| | | // æ ¹æ®ç¶æï¼ç¦ç¨è¡¨å¤´æé® |
| | | // çéåºéä¸è®°å½çç¶æ |
| | | var stateArr = val.map(function(value, index) { |
| | |
| | | } else { |
| | | this.$message.error('ä¸ä¼ 失败') |
| | | } |
| | | }, |
| | | labelPrint(){ |
| | | if(this.multipleSelection.length==0){ |
| | | this.$message.warning('è¯·éæ©ä¸æ¡æ°æ®') |
| | | return |
| | | } |
| | | this.diaPrintTab = true |
| | | } |
| | | } |
| | | } |
| | |
| | | if (this.dataway.state == "æªæ¥æ£") { |
| | | this.increase = true |
| | | }else{ |
| | | this.$message.error('请å
éæ©å
è£
项ç®') |
| | | this.$message.error('æ¹é¡¹ç®å·²å®ææ£éª') |
| | | } |
| | | }, |
| | | preserve(datalist){ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="qrcode"> |
| | | <div class="code"> |
| | | <!-- decodeæ¯æ«æç»æç彿°ï¼torchç¨äºæ¯å¦éè¦æå¼æçµçï¼initç¨äºæ£æ¥è¯¥è®¾å¤æ¯å¦è½å¤è°ç¨æå头çæéï¼cameraå¯ç¨äºæå¼å颿è
å颿å头 --> |
| | | <qrcode-drop-zone @decode="onDecode"> |
| | | <qrcode-stream @decode="onDecode" :torch="torchActive" @init="onInit" :camera="camera" /> |
| | | </qrcode-drop-zone> |
| | | <div class="code-button"> |
| | | <button @click="switchCamera">ç¸æºå转</button> |
| | | <button @click="ClickFlash">æå¼æçµç</button> |
| | | <button @click="turnCameraOff">å
³éç¸æº</button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | // å¼ç¨vue-qrcode-readeræä»¶ |
| | | import { QrcodeStream, QrcodeDropZone, QrcodeCapture } from 'vue-qrcode-reader' |
| | | |
| | | export default { |
| | | name: 'Approve', |
| | | props: { |
| | | camera: { |
| | | type: String, |
| | | default: 'rear', |
| | | }, |
| | | torchActive: { |
| | | type: Boolean, |
| | | default: false, |
| | | }, |
| | | qrcode: { |
| | | type: Boolean, |
| | | default: false, |
| | | }, |
| | | noStreamApiSupport: { |
| | | type: Boolean, |
| | | default: false, |
| | | }, |
| | | }, |
| | | data() { |
| | | return {} |
| | | }, |
| | | created() { |
| | | console.log(222222222222224564646); |
| | | }, |
| | | |
| | | components: { |
| | | // 注åç»ä»¶ |
| | | QrcodeStream, |
| | | QrcodeDropZone, |
| | | QrcodeCapture, |
| | | }, |
| | | methods: { |
| | | // æ«ç ç»æåè° |
| | | onDecode(result) { |
| | | this.$emit('onDecode', result) |
| | | }, |
| | | // ç¸æºå转 |
| | | switchCamera() { |
| | | this.$emit('switchCamera') |
| | | }, |
| | | // å
³éç¸æºï¼ï¼ï¼ï¼ï¼ï¼ |
| | | turnCameraOff() { |
| | | this.$emit('turnCameraOff') |
| | | }, |
| | | // æå¼æçµç |
| | | ClickFlash() { |
| | | this.$emit('ClickFlash') |
| | | }, |
| | | // æ£æ¥æ¯å¦è°ç¨æå头 |
| | | onInit(promise) { |
| | | this.$emit('onInit', promise) |
| | | }, |
| | | }, |
| | | } |
| | | </script> |
| | |
| | | icon="el-icon-search" |
| | | :disabled="resultVal!=null && dataForm.id!=null" |
| | | @click="queryCode()"></el-button> |
| | | <!-- <el-button |
| | | slot="append" |
| | | icon="el-icon-full-screen" |
| | | :disabled="resultVal!=null && dataForm.id!=null" |
| | | @click="Turnonthecamera"></el-button> --> |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | type="datetime" |
| | | value-format="yyyy-MM-dd HH:mm:ss" |
| | | disabled> |
| | | |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | <el-button type="primary" @click="submitSave()">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <!-- <qrcode :qrcode="qrcode" v-show="qrcode" :camera="camera" /> --> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | updateRawInspectsById, |
| | | updateDeviceById, } from '@/api/quality/rawMaterial' |
| | | import rawMaterialPartDialog from '@/views/common/rawMaterial-part' |
| | | // import qrcode from './QrcodeReader.vue' |
| | | export default { |
| | | computed:{}, |
| | | components:{ |
| | | rawMaterialPartDialog |
| | | rawMaterialPartDialog, |
| | | // qrcode |
| | | // qrcode: () => import('./QrcodeReader.vue'), |
| | | }, |
| | | data(){ |
| | | return{ |
| | | qrcode: false, |
| | | torchActive: false, |
| | | camera: 'off', |
| | | userdata:[], |
| | | currentRow:[], |
| | | userlist:[], |
| | |
| | | }, |
| | | }, |
| | | methods:{ |
| | | // æå¼ç¸æº |
| | | Turnonthecamera() { |
| | | this.qrcode = true |
| | | this.camera = 'rear' |
| | | console.log(2222222); |
| | | }, |
| | | // æ«ç ç»æåè° |
| | | // onDecode(result) { |
| | | // console.log(result) |
| | | // this.turnCameraOff() |
| | | // }, |
| | | // ç¸æºå转 |
| | | // switchCamera() { |
| | | // switch (this.camera) { |
| | | // case 'front': |
| | | // this.camera = 'rear' |
| | | // break |
| | | // case 'rear': |
| | | // this.camera = 'front' |
| | | // break |
| | | // default: |
| | | // this.$toast('é误') |
| | | // } |
| | | // }, |
| | | // å
³éç¸æº |
| | | // turnCameraOff() { |
| | | // this.camera = 'off' |
| | | // this.qrcode = false |
| | | // }, |
| | | // æå¼æçµç |
| | | // ClickFlash() { |
| | | // switch (this.torchActive) { |
| | | // case true: |
| | | // this.torchActive = false |
| | | // break |
| | | // case false: |
| | | // this.torchActive = true |
| | | // break |
| | | // default: |
| | | // this.$toast('é误') |
| | | // } |
| | | // }, |
| | | |
| | | // æ£æ¥æ¯å¦è°ç¨æå头 |
| | | // async onInit(promise) { |
| | | // try { |
| | | // await promise |
| | | // } catch (error) { |
| | | // if (error.name === 'StreamApiNotSupportedError') { |
| | | // } else if (error.name === 'NotAllowedError') { |
| | | // this.errorMessage = 'Hey! I need access to your camera' |
| | | // } else if (error.name === 'NotFoundError') { |
| | | // this.errorMessage = 'Do you even have a camera on your device?' |
| | | // } else if (error.name === 'NotSupportedError') { |
| | | // this.errorMessage = |
| | | // 'Seems like this page is served in non-secure context (HTTPS, localhost or file://)' |
| | | // } else if (error.name === 'NotReadableError') { |
| | | // this.errorMessage = |
| | | // "Couldn't access your camera. Is it already in use?" |
| | | // } else if (error.name === 'OverconstrainedError') { |
| | | // this.errorMessage = |
| | | // "Constraints don't match any installed camera. Did you asked for the front camera although there is none?" |
| | | // } else { |
| | | // this.errorMessage = 'UNKNOWN ERROR: ' + error.message |
| | | // } |
| | | // } |
| | | // }, |
| | | // 确认åè° |
| | | selectPart(param, nodePart, index) { |
| | | if (typeof param !== 'undefined') { |
| | |
| | | * https://cli.vuejs.org/zh/config/ |
| | | */ |
| | | // const url = 'http://192.168.2.7:9999' |
| | | const url = 'http://192.168.2.7:9999' |
| | | //const url = 'http://192.168.32.45:9999' |
| | | const url = 'http://192.168.32.45:9999' |
| | | // const url = 'http://192.168.0.23:9999' |
| | | |
| | | // const url = 'http://localhost:9999' |