| | |
| | | v-model="form.orderstepqrcode" |
| | | name="produceCode" |
| | | style="width: 300px" |
| | | @keyup.native="e=>judgeIsScanning(e,'produceCode')" |
| | | @keyup.enter.native="val=>enterNative(val,'produceCode')" |
| | | /> |
| | | <!-- @keyup.native="e=>judgeIsScanning(e,'produceCode')"--> |
| | | |
| | | </div> |
| | | <div v-if="false" style="display: flex;padding-right: 10px"> |
| | |
| | | <el-divider /> |
| | | <div class="elTableDiv"> |
| | | <el-table |
| | | ref="tableDataRef" |
| | | class="tableFixed" |
| | | :data="tableData" |
| | | :height="isIpad? (tableHeight+50):tableHeight" |
| | | border |
| | |
| | | sortable="custom" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.plan_startdate">{{ row.plan_startdate.substring(0,11) }}</div> |
| | | <div v-if="row.plan_startdate">{{ row.plan_startdate.substring(0, 11) }}</div> |
| | | <div v-else>/</div> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.plan_startdate">{{ row.plan_startdate.substring(0,11) }}</div> |
| | | <div v-if="row.plan_startdate">{{ row.plan_startdate.substring(0, 11) }}</div> |
| | | <div v-else>/</div> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | v-model="WXform.orderstepqrcode" |
| | | name="WXproduceCode" |
| | | style="width: 300px" |
| | | @keyup.native="e=>judgeIsScanning(e,'WXproduceCode')" |
| | | @keyup.enter.native="val=>enterNative(val,'WXproduceCode')" |
| | | /> |
| | | <!-- @keyup.native="e=>judgeIsScanning(e,'WXproduceCode')"--> |
| | | |
| | | </div> |
| | | <div v-if="false" style="display: flex;padding-right: 10px"> |
| | | <el-button @click="WXsend"> |
| | |
| | | <el-divider /> |
| | | <div class="elTableDiv"> |
| | | <el-table |
| | | ref="tableDataRef" |
| | | class="tableFixed" |
| | | :data="WXtableData" |
| | | :height="isIpad? (tableHeight+50):tableHeight" |
| | | border |
| | |
| | | sortable="custom" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.plan_startdate">{{ row.plan_startdate.substring(0,11) }}</div> |
| | | <div v-if="row.plan_startdate">{{ row.plan_startdate.substring(0, 11) }}</div> |
| | | <div v-else>/</div> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="{row}"> |
| | | <div v-if="row.plan_startdate">{{ row.plan_startdate.substring(0,11) }}</div> |
| | | <div v-if="row.plan_startdate">{{ row.plan_startdate.substring(0, 11) }}</div> |
| | | <div v-else>/</div> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | v-model="badForm.orderstepqrcode" |
| | | name="badProduceCode" |
| | | style="width: 300px" |
| | | @keyup.native="e=>judgeIsScanning(e,'badProduceCode')" |
| | | @keyup.enter.native="val=>enterNative(val,'badProduceCode')" |
| | | /> |
| | | <!-- @keyup.native="e=>judgeIsScanning(e,'badProduceCode')"--> |
| | | |
| | | </div> |
| | | </div> |
| | | <el-divider /> |
| | | <div class="elTableDiv"> |
| | | <el-table |
| | | ref="tableDataRef" |
| | | class="tableFixed" |
| | | :data="badTableData" |
| | | :height="isIpad? (tableHeight+50):tableHeight" |
| | | border |
| | |
| | | placeholder="请选择" |
| | | :disabled="parseFloat(dialogForm.noputqty)===0||dialogForm.noputqty.trim()===''" |
| | | multiple |
| | | collapse-tags |
| | | > |
| | | <el-option |
| | | v-for="item in badArr" |
| | |
| | | <i class="el-icon-s-operation" style="color:#42b983;" /> 人员列表 |
| | | <el-button type="primary" style="margin: 10px 0" @click="userAdd">增行</el-button> |
| | | <el-table |
| | | ref="userTableDataRef" |
| | | :data="userTableData" |
| | | border |
| | | class="tableFixed" |
| | | :row-class-name="tableRowClassName" |
| | | :header-cell-style="this.$headerCellStyle" |
| | | :cell-style="this.$cellStyle" |
| | |
| | | v-model="dialogForm.badcode" |
| | | style="width: 200px;" |
| | | multiple |
| | | collapse-tags |
| | | :disabled="parseFloat(dialogForm.noputqty)===0||dialogForm.noputqty.trim()===''" |
| | | placeholder="请选择" |
| | | > |
| | |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item v-if="dialogTitle==='外协收料'" label="收料人:"> |
| | | <el-select |
| | | v-model="dialogForm.operation" |
| | | style="width: 200px;" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in OperationArr" |
| | | :key="item.usercode" |
| | | :label="item.username" |
| | | :value="item.usercode" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <!-- <el-form-item v-if="dialogTitle==='外协收料'" label="收料人:">--> |
| | | <!-- <el-select--> |
| | | <!-- v-model="dialogForm.operation"--> |
| | | <!-- style="width: 200px;"--> |
| | | <!-- placeholder="请选择"--> |
| | | <!-- >--> |
| | | <!-- <el-option--> |
| | | <!-- v-for="item in OperationArr"--> |
| | | <!-- :key="item.usercode"--> |
| | | <!-- :label="item.username"--> |
| | | <!-- :value="item.usercode"--> |
| | | <!-- />--> |
| | | <!-- </el-select>--> |
| | | <!-- </el-form-item>--> |
| | | <el-form-item v-if="dialogTitle==='外协收料'" label="备注:"> |
| | | <el-input v-model="dialogForm.remarks" type="textarea" style="width: 200px;" /> |
| | | </el-form-item> |
| | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <div class="footerButton"> |
| | | <el-button @click="dialogVisibleCancel">取 消</el-button> |
| | | <el-button v-if="dialogTitle==='自制开始'" type="primary" @click="dialogVisibleConfirm">开 工</el-button> |
| | | <el-button v-if="dialogTitle==='自制报工'" type="primary" @click="dialogVisibleConfirm">提交/打印</el-button> |
| | | <el-button v-if="dialogTitle==='外协发料'" type="primary" @click="dialogVisibleConfirm">发料</el-button> |
| | | <el-button v-if="dialogTitle==='外协收料'" type="primary" @click="dialogVisibleConfirm">收料/打印</el-button> |
| | | <el-button |
| | | v-if="dialogTitle==='自制开始'" |
| | | :loading="$store.state.app.buttonIsDisabled" |
| | | :disabled="$store.state.app.buttonIsDisabled" |
| | | type="primary" |
| | | @click="dialogVisibleConfirm" |
| | | >开 工</el-button> |
| | | <el-button |
| | | v-if="dialogTitle==='自制报工'" |
| | | :loading="$store.state.app.buttonIsDisabled" |
| | | :disabled="$store.state.app.buttonIsDisabled" |
| | | type="primary" |
| | | @click="dialogVisibleConfirm" |
| | | >提交/打印</el-button> |
| | | <el-button |
| | | v-if="dialogTitle==='外协发料'" |
| | | :loading="$store.state.app.buttonIsDisabled" |
| | | :disabled="$store.state.app.buttonIsDisabled" |
| | | type="primary" |
| | | @click="dialogVisibleConfirm" |
| | | >发料</el-button> |
| | | <el-button |
| | | v-if="dialogTitle==='外协收料'" |
| | | :loading="$store.state.app.buttonIsDisabled" |
| | | :disabled="$store.state.app.buttonIsDisabled" |
| | | type="primary" |
| | | @click="dialogVisibleConfirm" |
| | | >收料/打印</el-button> |
| | | </div> |
| | | </span> |
| | | </el-dialog> |
| | |
| | | > |
| | | <div id="qrCode2" ref="qrCodeDiv2" style="overflow-y: hidden;height:60px;position: absolute;left: 14px;" /> |
| | | </div> |
| | | <div style="display: flex;height: 30px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center"> |
| | | <div |
| | | style="display: flex;height: 30px;justify-content: flex-start;border-bottom:1px solid #000;align-items: center" |
| | | > |
| | | <div style="margin-left: 5px;width: 28px">数量:</div> |
| | | {{ qrForm.startqty }} |
| | | </div> |
| | |
| | | <span slot="footer" class="dialog-footer"> |
| | | <div class="footerButton"> |
| | | <el-button @click="badDialogVisibleCancel">取 消</el-button> |
| | | <el-button type="primary" @click="badDialogVisibleConfirm ">保 存/打 印</el-button> |
| | | <el-button |
| | | type="primary" |
| | | :loading="$store.state.app.buttonIsDisabled" |
| | | :disabled="$store.state.app.buttonIsDisabled" |
| | | @click="badDialogVisibleConfirm " |
| | | >保 存/打 印</el-button> |
| | | </div> |
| | | </span> |
| | | </el-dialog> |
| | |
| | | taskqty: '', // 任务数量 |
| | | fqty: '', // 发料数量 |
| | | |
| | | inuser: '', // 收料人员 |
| | | inuser: getCookie('navTabId'), // 收料人员 |
| | | sqty: '', // 收料数量 |
| | | ngqty: '', // 不良数量 |
| | | badcode: '', // 不良原因编码 |
| | |
| | | badTableDataDialog: [], // 不良对话框table表格 |
| | | OperationArr: [], // 人员数组 |
| | | sendButtonIsDisabled: false, // 下达按钮是否可点击 |
| | | judgeIsScanningArr: []// 判断是否扫码数组 |
| | | judgeIsScanningArr: [], // 判断是否扫码数组 |
| | | countJudgeIsScanningInput: 0 // 判断扫码框的个数 |
| | | } |
| | | }, |
| | | watch: { |
| | |
| | | } |
| | | }, |
| | | // 判断是否是扫码枪扫码 |
| | | judgeIsScanning2(e, belong) { |
| | | if (belong === 'produceCode' && this.form.orderstepqrcode.toString().length === 0) { |
| | | this.judgeIsScanningArr = [] |
| | | this.countJudgeIsScanningInput = 0 |
| | | } |
| | | if (belong === 'WXproduceCode' && this.WXform.orderstepqrcode.toString().length === 0) { |
| | | this.judgeIsScanningArr = [] |
| | | this.countJudgeIsScanningInput = 0 |
| | | } |
| | | const timenow = e.timeStamp |
| | | // console.log(timenow, 1) |
| | | // let flag = true |
| | | let flag = false |
| | | this.judgeIsScanningArr.push(timenow) |
| | | let i |
| | | |
| | | for (i in this.judgeIsScanningArr) { |
| | | console.log(Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 1]) - Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 2])) |
| | | // flag = Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 1]) - Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 2]) < 0.1 |
| | | if (Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 1]) - Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 2]) < 0.1) { |
| | | this.countJudgeIsScanningInput++ |
| | | } |
| | | if (this.countJudgeIsScanningInput >= 3) { |
| | | flag = true |
| | | } |
| | | if (i > 0 && this.judgeIsScanningArr.length === parseInt(i) + 1) { |
| | | if (flag) { |
| | | console.log(flag, 1) |
| | | this.fnThrottle(this.enterNative, 500, 2000, belong)() |
| | | return |
| | | } |
| | | } |
| | | } |
| | | |
| | | // // for (i in this.judgeIsScanningArr) { |
| | | // // console.log(i) |
| | | // // console.log( this.judgeIsScanningArr) |
| | | // console.log(Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 1]) - Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 2])) |
| | | // if (Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 1]) - Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 2]) < 10) { |
| | | // this.countJudgeIsScanningInput++ |
| | | // } |
| | | // if (this.countJudgeIsScanningInput > this.judgeIsScanningArr.length / 2) { |
| | | // flag = true |
| | | // } |
| | | // // flag = Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 1]) - Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 2]) < 0.1 |
| | | // // if (i > 0 && this.judgeIsScanningArr.length === parseInt(i) + 1) { |
| | | // if (flag) { |
| | | // console.log(flag, 2) |
| | | // this.fnThrottle(this.enterNative, 500, 2000, belong)() |
| | | // return |
| | | // } |
| | | // // } |
| | | // // } |
| | | }, |
| | | // 判断是否是扫码枪扫码 |
| | | judgeIsScanning(e, belong) { |
| | | const timenow = e.timeStamp |
| | | let flag = true |
| | | this.judgeIsScanningArr.push(timenow) |
| | | let i |
| | | for (i in this.judgeIsScanningArr) { |
| | | flag = Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 1]) - Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 2]) < 10 |
| | | flag = Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 1]) - Math.ceil(this.judgeIsScanningArr[this.judgeIsScanningArr.length - 2]) < 0.1 |
| | | if (i > 0 && this.judgeIsScanningArr.length === parseInt(i) + 1) { |
| | | if (flag) { |
| | | this.fnThrottle(this.enterNative, 500, 2000, belong)() |
| | |
| | | }) |
| | | |
| | | this.ZZuserArr = [...this.ZZuserArr].filter(x => [...this.userTableData].every(y => y.usercode !== x.usercode)) |
| | | |
| | | this.$refs.tableDataRef.doLayout() |
| | | }, |
| | | // 用户添加 |
| | | userAdd() { |
| | | if (this.userTableData.find(i => i.isVisible === 1)) { |
| | | return this.$message.info('请先保存当前行信息!') |
| | | } |
| | | let number = Math.random() * Math.random()// 作为删除时的标识符 |
| | | number = number === 0 ? (10 + Math.random()) : number |
| | | console.log(this.userTableData, 6) |
| | |
| | | }, |
| | | // 对话框关闭事件 |
| | | handleClose() { |
| | | this.judgeIsScanningArr = [] |
| | | this.form.orderstepqrcode = '' |
| | | this.WXform.orderstepqrcode = '' |
| | | this.badForm.orderstepqrcode = '' |
| | |
| | | this.dialogForm.taskqty = '', // 任务数量 |
| | | this.dialogForm.fqty = '', // 发料数量 |
| | | |
| | | this.dialogForm.inuser = '', // 收料人员 |
| | | this.dialogForm.inuser = getCookie('navTabId'), // 收料人员 默认登录人员 |
| | | this.dialogForm.sqty = '', // 收料数量 |
| | | this.dialogForm.ngqty = '', // 不良数量 |
| | | this.dialogForm.badcode = '', // 不良原因编码 |
| | |
| | | taskqty: this.dialogForm.planqty, // 任务数量 |
| | | fqty: this.dialogForm.fqty // 发料数量 |
| | | } |
| | | this.$store.state.app.buttonIsDisabled = true |
| | | SavaMesOrderStepOut(data).then(res => { |
| | | if (res.code === '200') { |
| | | this.$message.success('发料成功!') |
| | | this.dialogVisible = false |
| | | this.$message.success('发料成功!') |
| | | this.tabClick() |
| | | this.$store.state.app.buttonIsDisabled = false |
| | | } else { |
| | | this.$message.error('发料失败!') |
| | | } |
| | |
| | | ngqty: this.dialogForm.noputqty === '' ? 0 : this.dialogForm.noputqty, // 不良数量 |
| | | badcode: this.dialogForm.badcode.length < 1 ? '' : this.dialogForm.badcode.join(';')// 不良原因 |
| | | } |
| | | this.$store.state.app.buttonIsDisabled = true |
| | | SavaMesOrderStepIn(data).then(res => { |
| | | if (res.code === '200') { |
| | | this.dialogVisible = false |
| | | this.$message.success('收料成功!') |
| | | |
| | | if (this.dialogForm.nextstepcode === '') { |
| | | this.WXprint2(this.OperationArr.find(item => item.usercode === this.dialogForm.operation).username) |
| | | this.WXprint2(this.OperationArr.find(item => item.usercode === this.dialogForm.inuser).username) |
| | | this.dialogVisible2 = true |
| | | } |
| | | this.dialogVisible = false |
| | | this.tabClick() |
| | | this.$store.state.app.buttonIsDisabled = false |
| | | } else { |
| | | this.$message.error('收料失败!') |
| | | } |
| | |
| | | taskqty: this.dialogForm.planqty, // 任务数量 |
| | | startqty: this.dialogForm.startqty// 开始数量 |
| | | } |
| | | this.$store.state.app.buttonIsDisabled = true |
| | | SavaMesOrderStepStart(data).then(res => { |
| | | if (res.code === '200') { |
| | | this.$message.success('开工成功!') |
| | | this.dialogVisible = false |
| | | this.$message.success('开工成功!') |
| | | this.tabClick() |
| | | this.$store.state.app.buttonIsDisabled = false |
| | | } else { |
| | | this.$message.error('开工失败!') |
| | | } |
| | |
| | | ngqty: this.dialogForm.noputqty === '' ? 0 : this.dialogForm.noputqty, // 不良数量 |
| | | badcode: this.dialogForm.badcode.length < 1 ? '' : this.dialogForm.badcode.join(';')// 不良原因 |
| | | } |
| | | |
| | | this.$store.state.app.buttonIsDisabled = true |
| | | SavaMesOrderStepReport(data).then(res => { |
| | | if (res.code === '200') { |
| | | this.dialogVisible = false |
| | | this.$message.success('报工成功!') |
| | | |
| | | if (this.dialogForm.nextstepcode === '') { |
| | | this.ZZprint2(this.OperationArr.find(item => item.usercode === this.dialogForm.operation).username) |
| | | this.dialogVisible2 = true |
| | | } |
| | | this.dialogVisible = false |
| | | this.tabClick() |
| | | this.$store.state.app.buttonIsDisabled = false |
| | | } else { |
| | | this.$message.error('报工失败!') |
| | | } |
| | |
| | | if (window.innerHeight < 769) { |
| | | this.tableHeight = this.tableHeight - 50 |
| | | } |
| | | this.$refs.tableDataRef.doLayout() |
| | | }) |
| | | }, |
| | | |
| | |
| | | const data = { |
| | | Data: this.badTableDataDialog |
| | | } |
| | | this.$store.state.app.buttonIsDisabled = true |
| | | EditOrderNgStepSeave(data, this.badDialogForm.operation).then(res => { |
| | | if (res.code === '200' || res.code === '301') { |
| | | this.getBadList() |
| | | this.badDialogVisible = false |
| | | this.badPrint(this.OperationArr.find(item => item.usercode === this.badDialogForm.operation).username) |
| | | this.dialogVisible2 = true |
| | | return this.$message.success('保存成功!') |
| | | this.$message.success('保存成功!') |
| | | |
| | | this.$store.state.app.buttonIsDisabled = false |
| | | } |
| | | }) |
| | | }, |
| | |
| | | this.qrForm.nextstepname = this.badDialogForm.nextstepname |
| | | this.qrForm.operator = username |
| | | this.qrForm.operatorTime = handleDatetime2(new Date()) |
| | | console.log(this.qrForm, 22) |
| | | |
| | | this.$nextTick(() => { |
| | | this.bindQRCode(this.qrForm.qrvalue) |
| | | }) |
| | |
| | | this.badDialogForm = {} |
| | | this.badDialogForm.operation = getCookie('navTabId') |
| | | this.badTableDataDialog = [] |
| | | this.judgeIsScanningArr = [] |
| | | }, |
| | | async getMesOrderSelectUserAll() { |
| | | async getMesOrderSelectUserAll() { |
| | | const { data: res } = await MesOrderSelectUser({ usercode: '' }) |
| | | this.OperationArr = res |
| | | }, |
| | |
| | | margin-bottom: 0; |
| | | } |
| | | |
| | | .tableFixed { |
| | | ::v-deep .el-table__fixed-right { |
| | | height: 100% !important; |
| | | } |
| | | |
| | | ::v-deep .el-table__fixed { |
| | | height: 100% !important; |
| | | } |
| | | } |
| | | </style> |
| | | <style> |
| | | |