| | |
| | | :visible.sync="dialogVisible" |
| | | width="850px" |
| | | class="dialogVisible" |
| | | :top="dialogTitle==='自制报工'?'15vh':'15vh'" |
| | | :top="dialogTitle==='自制报工'?'10vh':'15vh'" |
| | | :close-on-click-modal="false" |
| | | @close="handleClose" |
| | | @closed="handleClose" |
| | |
| | | <el-input v-model="dialogForm.startqty" oninput="value=value.replace(/[^0-9.]/g,'')" style="width: 200px;" /> |
| | | <!-- <el-input v-model="dialogForm.noreportqty" oninput="value=value.replace(/[^0-9.]/g,'')" style="width: 200px;" />--> |
| | | </el-form-item> |
| | | |
| | | <el-form-item v-if="dialogTitle==='自制报工'" label="不良数量:"> |
| | | <el-input v-model="dialogForm.noputqty" oninput="value=value.replace(/[^0-9.]/g,'')" style="width: 200px;" /> |
| | | <!-- <el-input--> |
| | | <!-- v-model="dialogForm.noputqty"--> |
| | | <!-- readonly--> |
| | | <!-- oninput="value=value.replace(/[^0-9.]/g,'')"--> |
| | | <!-- style="width: 200px;"--> |
| | | <!-- />--> |
| | | |
| | | {{ dialogForm.noputqty }} |
| | | </el-form-item> |
| | | <el-form-item v-if="dialogTitle==='自制报工'" label="不良原因:"> |
| | | <el-select |
| | | v-model="dialogForm.badcode" |
| | | style="width: 200px;" |
| | | placeholder="请选择" |
| | | :disabled="parseFloat(dialogForm.noputqty)===0||dialogForm.noputqty.trim()===''" |
| | | multiple |
| | | collapse-tags |
| | | |
| | | <el-form-item v-if="dialogTitle==='自制报工'" label="备注:"> |
| | | <el-input v-model="dialogForm.remarks" type="textarea" style="width: 200px;" /> |
| | | </el-form-item> |
| | | |
| | | <!-- <el-form-item v-if="dialogTitle==='自制报工'" label="不良原因:">--> |
| | | <!-- <el-select--> |
| | | <!-- v-model="dialogForm.badcode"--> |
| | | <!-- style="width: 200px;"--> |
| | | <!-- placeholder="请选择"--> |
| | | <!-- :disabled="parseFloat(dialogForm.noputqty)===0||dialogForm.noputqty.trim()===''"--> |
| | | <!-- multiple--> |
| | | <!-- collapse-tags--> |
| | | <!-- >--> |
| | | <!-- <el-option--> |
| | | <!-- v-for="item in badArr"--> |
| | | <!-- :key="item.code"--> |
| | | <!-- :label="item.name"--> |
| | | <!-- :value="item.code"--> |
| | | <!-- />--> |
| | | <!-- </el-select>--> |
| | | <!-- </el-form-item>--> |
| | | |
| | | <el-form-item v-if="dialogTitle==='自制报工'" label="不良数量:"> |
| | | <el-input |
| | | v-model="badInput" |
| | | placeholder="请输入数量" |
| | | class="input-with-select" |
| | | style="width: 300px;" |
| | | oninput="value=value.replace(/[^0-9]/g,'')" |
| | | > |
| | | <el-option |
| | | v-for="item in badArr" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | <el-select |
| | | slot="prepend" |
| | | v-model="badSelected" |
| | | multiple |
| | | placeholder="请选择" |
| | | clearable |
| | | style="width: 150px" |
| | | collapse-tags |
| | | > |
| | | <el-option |
| | | v-for="item in badArr" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | /> |
| | | </el-select> |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-plus" |
| | | @click="plusClick" |
| | | /> |
| | | </el-select> |
| | | </el-input> |
| | | </el-form-item> |
| | | |
| | | <div |
| | | v-for="(item,index) in BADNAME" |
| | | v-if="dialogTitle==='自制报工'" |
| | | :key="item+index" |
| | | style="margin-left: 25px;display: flex; line-height: 24px;" |
| | | > |
| | | <div |
| | | style=" |
| | | width: 22px;height: 22px;background: #42b983; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-content: center; |
| | | color: #fff; |
| | | line-height: 22px; |
| | | border-radius: 50%; |
| | | " |
| | | >{{ index+1 }}</div> |
| | | <div style="margin: 0 20px">{{ item.name }}</div> |
| | | <div>{{ item.badqty }}</div> |
| | | <div style="margin-left: 20px"> |
| | | <i |
| | | class="el-icon-delete" |
| | | style="color:#42b983;cursor: pointer" |
| | | @click="deleteClick(item,index)" |
| | | /> |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | <!-- <el-form-item v-if="dialogTitle==='自制报工'" label="报工人员:">--> |
| | | <!-- <el-input v-model="dialogForm.remarks" type="textarea" style="width: 200px;" />--> |
| | | <!-- </el-form-item>--> |
| | |
| | | <!-- />--> |
| | | <!-- </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> |
| | | |
| | | <div v-if="dialogTitle==='自制报工'&&dialogForm.reckway==='group'"> |
| | | <div style="display: flex;align-items:center;height: 40px;margin-bottom: 10px"> |
| | | <i class="el-icon-s-operation" :style="{color:$store.state.settings.theme}" /> |
| | |
| | | </el-table-column> |
| | | </el-table> |
| | | <!--分页--> |
| | | <pagination |
| | | :total="UserTotal" |
| | | :page.sync="Userform.page" |
| | | :limit.sync="Userform.rows" |
| | | align="right" |
| | | layout="total,prev, pager, next,sizes" |
| | | popper-class="select_bottom" |
| | | @pagination="getMesOrderStepSearch" |
| | | /> |
| | | <!-- <pagination--> |
| | | <!-- :total="UserTotal"--> |
| | | <!-- :page.sync="Userform.page"--> |
| | | <!-- :limit.sync="Userform.rows"--> |
| | | <!-- align="right"--> |
| | | <!-- layout="total,prev, pager, next,sizes"--> |
| | | <!-- popper-class="select_bottom"--> |
| | | <!-- @pagination="getMesOrderStepSearch"--> |
| | | <!-- />--> |
| | | </div> |
| | | <!-- 外协发料--> |
| | | <el-form-item |
| | |
| | | oninput="value=value.replace(/[^0-9.]/g,'')" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item |
| | | v-if="dialogTitle==='外协收料'" |
| | | label="不良数量:" |
| | | prop="noputqty" |
| | | > |
| | | {{ dialogForm.noputqty }} |
| | | <!-- <el-input--> |
| | | <!-- v-model="dialogForm.noputqty"--> |
| | | <!-- style="width: 200px"--> |
| | | <!-- oninput="value=value.replace(/[^0-9.]/g,'')"--> |
| | | <!-- />--> |
| | | </el-form-item> |
| | | |
| | | <el-form-item v-if="dialogTitle==='外协收料'" label="备注:"> |
| | | <el-input v-model="dialogForm.remarks" type="textarea" style="width: 200px;" /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item v-if="dialogTitle==='外协收料'" label="不良数量:"> |
| | | <el-input |
| | | v-model="dialogForm.noputqty" |
| | | style="width: 200px" |
| | | oninput="value=value.replace(/[^0-9.]/g,'')" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item |
| | | v-if="dialogTitle==='外协收料'" |
| | | label="不良原因:" |
| | | > |
| | | <!-- prop="badcode"--> |
| | | <el-select |
| | | v-model="dialogForm.badcode" |
| | | style="width: 200px;" |
| | | multiple |
| | | collapse-tags |
| | | :disabled="parseFloat(dialogForm.noputqty)===0||dialogForm.noputqty.trim()===''" |
| | | placeholder="请选择" |
| | | v-model="badInput" |
| | | placeholder="请输入数量" |
| | | class="input-with-select" |
| | | style="width: 300px;" |
| | | oninput="value=value.replace(/[^0-9]/g,'')" |
| | | > |
| | | <el-option |
| | | v-for="item in badArr" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | <el-select |
| | | slot="prepend" |
| | | v-model="badSelected" |
| | | multiple |
| | | placeholder="请选择" |
| | | clearable |
| | | style="width: 150px" |
| | | collapse-tags |
| | | > |
| | | <el-option |
| | | v-for="item in badArr" |
| | | :key="item.code" |
| | | :label="item.name" |
| | | :value="item.code" |
| | | /> |
| | | </el-select> |
| | | <el-button |
| | | slot="append" |
| | | icon="el-icon-plus" |
| | | @click="plusClick" |
| | | /> |
| | | </el-select> |
| | | </el-input> |
| | | </el-form-item> |
| | | |
| | | <!-- <el-form-item--> |
| | | <!-- v-if="dialogTitle==='外协收料'"--> |
| | | <!-- label="不良原因:"--> |
| | | <!-- >--> |
| | | <!-- <el-select--> |
| | | <!-- v-model="dialogForm.badcode"--> |
| | | <!-- style="width: 200px;"--> |
| | | <!-- multiple--> |
| | | <!-- collapse-tags--> |
| | | <!-- :disabled="parseFloat(dialogForm.noputqty)===0||dialogForm.noputqty.trim()===''"--> |
| | | <!-- placeholder="请选择"--> |
| | | <!-- >--> |
| | | <!-- <el-option--> |
| | | <!-- v-for="item in badArr"--> |
| | | <!-- :key="item.code"--> |
| | | <!-- :label="item.name"--> |
| | | <!-- :value="item.code"--> |
| | | <!-- />--> |
| | | <!-- </el-select>--> |
| | | <!-- </el-form-item>--> |
| | | |
| | | <!-- <el-form-item v-if="dialogTitle==='外协收料'" label="收料人:">--> |
| | | <!-- <el-select--> |
| | | <!-- v-model="dialogForm.operation"--> |
| | |
| | | <!-- />--> |
| | | <!-- </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> |
| | | |
| | | </el-form> |
| | | <div v-if="dialogTitle==='外协收料'" style="display: flex;flex-direction: column"> |
| | | <!--明天接着写外协收料,供应商对应的已收未收详情--> |
| | | |
| | | <div |
| | | v-if="dialogTitle==='外协收料'&&BADNAME.length>0" |
| | | style="height: 30px;margin-left:30px;" |
| | | > |
| | | 不良数量明细: |
| | | </div> |
| | | <div |
| | | v-for="(item,index) in BADNAME" |
| | | v-if="dialogTitle==='外协收料'" |
| | | :key="item+index" |
| | | style="margin-left: 30px;display: flex; line-height: 24px;" |
| | | > |
| | | <div |
| | | style=" |
| | | width: 22px;height: 22px;background: #42b983; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-content: center; |
| | | color: #fff; |
| | | line-height: 22px; |
| | | border-radius: 50%; |
| | | " |
| | | >{{ index+1 }}</div> |
| | | <div style="margin: 0 20px">{{ item.name }}</div> |
| | | <div>{{ item.badqty }}</div> |
| | | <div style="margin-left: 20px"> |
| | | <i |
| | | class="el-icon-delete" |
| | | style="color:#42b983;cursor: pointer" |
| | | @click="deleteClick(item,index)" |
| | | /> |
| | | </div> |
| | | |
| | | </div> |
| | | |
| | | <div v-if="dialogTitle==='外协收料'" style="margin-top: 20px;;display: flex;flex-direction: column"> |
| | | |
| | | <div style="height: 30px;margin-left:30px;"> |
| | | 可收料供应商: |
| | | </div> |
| | |
| | | :disabled="$store.state.app.buttonIsDisabled" |
| | | type="primary" |
| | | @click="dialogVisibleConfirm" |
| | | >提交/打印</el-button> |
| | | >提 交</el-button> |
| | | <!-- /打印--> |
| | | <el-button |
| | | v-if="dialogTitle==='自制报工'&&dialogForm.nextstepname!==''" |
| | | v-waves |
| | |
| | | :disabled="$store.state.app.buttonIsDisabled" |
| | | type="primary" |
| | | @click="dialogVisibleConfirm" |
| | | >提交</el-button> |
| | | >提 交</el-button> |
| | | <el-button |
| | | v-if="dialogTitle==='外协发料'" |
| | | v-waves |
| | |
| | | :disabled="$store.state.app.buttonIsDisabled" |
| | | type="primary" |
| | | @click="dialogVisibleConfirm" |
| | | >发料</el-button> |
| | | >发 料</el-button> |
| | | <el-button |
| | | v-if="dialogTitle==='外协收料'&&dialogForm.nextstepname===''" |
| | | v-waves |
| | |
| | | :disabled="$store.state.app.buttonIsDisabled" |
| | | type="primary" |
| | | @click="dialogVisibleConfirm" |
| | | >收料/打印</el-button> |
| | | >收 料</el-button> |
| | | <!-- /打印--> |
| | | <el-button |
| | | v-if="dialogTitle==='外协收料'&&dialogForm.nextstepname!==''" |
| | | v-waves |
| | |
| | | :disabled="$store.state.app.buttonIsDisabled" |
| | | type="primary" |
| | | @click="dialogVisibleConfirm" |
| | | >收料</el-button> |
| | | >收 料</el-button> |
| | | </div> |
| | | </span> |
| | | </el-dialog> |
| | |
| | | :loading="$store.state.app.buttonIsDisabled" |
| | | :disabled="$store.state.app.buttonIsDisabled||badTableDataDialog.length===0||badTableDataDialog.find(i=>i.isVisible===1)" |
| | | @click="badDialogVisibleConfirm" |
| | | >保 存/打 印</el-button> |
| | | >保 存</el-button> |
| | | <!-- /打 印--> |
| | | </div> |
| | | </span> |
| | | </el-dialog> |
| | |
| | | inbarcode: ''// 末道工序时 打印的入库码 |
| | | |
| | | }, |
| | | |
| | | badSelected: [], // 已选的不良原因数组 |
| | | badInput: '', |
| | | BAD: [], |
| | | BADNAME: [], |
| | | |
| | | ZZuserArr: [], // 自制用户所有 |
| | | ZZtreams: [], // 自制生产班组数组 |
| | | ZZeqpArr: [], // 自制设备名称 |
| | |
| | | } |
| | | }) |
| | | |
| | | console.log(this.WXouterprovide2, 2) |
| | | // console.log(this.WXouterprovide2, 2) |
| | | |
| | | this.dialogTitle = '外协收料' |
| | | this.dialogVisible = true |
| | |
| | | // 获取自制报工生产班组下拉列表 |
| | | async getMesOrderStepReportSelectUserGroup() { |
| | | // this.dialogForm.wkshopcode |
| | | console.log(this.dialogForm.wkshopcode, 8) |
| | | |
| | | const { data: res } = await MesOrderStepReportSelectUserGroup({ wkshopcode: this.dialogForm.wkshopcode }) |
| | | this.ZZtreams = res |
| | | }, |
| | |
| | | }, |
| | | |
| | | // 开工选择设备改变时 |
| | | async selectTypeChange(val) { |
| | | selectTypeChange(val) { |
| | | this.form.SelectType = val |
| | | const orderstepqrcode = this.form.orderstepqrcode |
| | | const data = { |
| | |
| | | SelectType: this.form.SelectType, |
| | | stu_torgcode: getCookie('stu_torgcode') |
| | | } |
| | | const res = await MesOrderStepStart(data) |
| | | if (res.code === '200' && res.count === 0) { |
| | | await this.ZZstart(res.data) |
| | | } |
| | | MesOrderStepStart(data).then(res => { |
| | | if (res.code === '200' && res.count === 0) { |
| | | this.ZZstart(res.data) |
| | | } |
| | | |
| | | if (res.code === '200' && res.count === 1) { |
| | | await this.ZZreport(res.data) |
| | | } |
| | | if (res.code === '200' && res.count === 1) { |
| | | this.ZZreport(res.data) |
| | | } |
| | | }).catch(e => { |
| | | this.form.orderstepqrcode = '' |
| | | this.form.SelectType = '' |
| | | }) |
| | | }, |
| | | |
| | | // 报工查询用户表 |
| | |
| | | calculatedValue() { |
| | | const total = 100 |
| | | let value = 0 |
| | | |
| | | this.userTableData.forEach(item => { |
| | | item.ratio = parseFloat((100 / this.userTableData.length).toFixed(2)) |
| | | value += item.ratio |
| | | }) |
| | | console.log(value, 1) |
| | | |
| | | this.UserTotal = this.userTableData.length |
| | | if (value !== total) { |
| | | // let temp = this.userTableData |
| | |
| | | }) |
| | | }, |
| | | |
| | | plusClick() { |
| | | // console.log(this.badSelected, this.badInput) |
| | | if (this.badSelected.length < 1) { |
| | | return this.$message.info('请选择不良原因!') |
| | | } |
| | | if (this.badInput.toString().trim().length < 1) { |
| | | return this.$message.info('请输入不良数量!') |
| | | } |
| | | this.BAD.push({ |
| | | defect_code: this.badSelected.sort().join(','), |
| | | badqty: this.badInput |
| | | }) |
| | | |
| | | const NAME = [] |
| | | this.badSelected.forEach(item => { |
| | | const name = this.badArr.find(it => it.code === item).name |
| | | NAME.push(name) |
| | | }) |
| | | |
| | | this.BADNAME.push({ |
| | | name: NAME.join(','), badqty: this.badInput |
| | | }) |
| | | |
| | | // console.log(typeof this.dialogForm.noputqty) |
| | | |
| | | this.dialogForm.noputqty += parseFloat(this.badInput) |
| | | |
| | | this.badSelected = [] |
| | | this.badInput = '' |
| | | }, |
| | | |
| | | deleteClick(val, index) { |
| | | console.log(val, 2) |
| | | this.dialogForm.noputqty -= parseFloat(val.badqty) |
| | | this.BADNAME.splice(index, 1) |
| | | this.BAD.splice(index, 1) |
| | | }, |
| | | // 用户添加 |
| | | userAdd() { |
| | | if (this.userTableData.find(i => i.isVisible === 1)) { |
| | |
| | | } |
| | | let number = Math.random() * Math.random()// 作为删除时的标识符 |
| | | number = number === 0 ? (10 + Math.random()) : number |
| | | console.log(this.userTableData, 6) |
| | | this.userTableData.unshift({ usercode: '', username: '', isVisible: 1, number: number, ratio: 0 }) |
| | | this.calculatedValue() |
| | | }, |
| | |
| | | }, |
| | | // 对话框关闭事件 |
| | | handleClose() { |
| | | this.BAD = [] |
| | | this.BADNAME = [] |
| | | this.badSelected = [] |
| | | this.badInput = '' |
| | | |
| | | this.judgeIsScanningArr = [] |
| | | this.form.orderstepqrcode = '' |
| | | this.WXform.orderstepqrcode = '' |
| | |
| | | return this.$message.info('收料数量加不良数量不能大于该供应商可收数量!') |
| | | } |
| | | |
| | | if (parseFloat(this.dialogForm.noputqty) > 0) { |
| | | if (this.dialogForm.badcode.length < 1) { |
| | | return this.$message.info('请选择不良原因!') |
| | | } |
| | | } |
| | | // if (parseFloat(this.dialogForm.noputqty) > 0) { |
| | | // if (this.dialogForm.badcode.length < 1) { |
| | | // return this.$message.info('请选择不良原因!') |
| | | // } |
| | | // } |
| | | |
| | | this.dialogForm.inbarcode = '' |
| | | // 当为末道的时候 |
| | |
| | | sqty: this.dialogForm.sqty, // 收料数量 |
| | | remarks: this.dialogForm.remarks, // 备注 |
| | | inbarcode: this.dialogForm.inbarcode, // 生产入库条码 |
| | | ngqty: this.dialogForm.noputqty === '' ? 0 : this.dialogForm.noputqty, // 不良数量 |
| | | badcode: this.dialogForm.badcode.length < 1 ? '' : this.dialogForm.badcode.join(';')// 不良原因 |
| | | defectlist: this.BAD |
| | | // ngqty: this.dialogForm.noputqty === '' ? 0 : this.dialogForm.noputqty, // 不良数量 |
| | | // badcode: this.dialogForm.badcode.length < 1 ? '' : this.dialogForm.badcode.join(';')// 不良原因 |
| | | } |
| | | // console.log(JSON.stringify(data), 2) |
| | | this.$store.state.app.buttonIsDisabled = true |
| | | SavaMesOrderStepIn(data).then(res => { |
| | | if (res.code === '200') { |
| | |
| | | this.userTableData.forEach(item => { |
| | | sum += parseFloat(item.ratio) |
| | | }) |
| | | console.log(sum, 4) |
| | | if (Math.round(sum * 100) / 100 !== 100) { |
| | | return this.$message.info('分配比例总和必须为100!') |
| | | } |
| | | } |
| | | |
| | | if (parseFloat(this.dialogForm.noputqty) > 0) { |
| | | if (this.dialogForm.badcode.length < 1) { |
| | | return this.$message.info('请选择不良原因!') |
| | | } |
| | | } |
| | | // if (parseFloat(this.dialogForm.noputqty) > 0) { |
| | | // if (this.dialogForm.badcode.length < 1) { |
| | | // return this.$message.info('请选择不良原因!') |
| | | // } |
| | | // } |
| | | |
| | | // console.log(this.userTableData, 1) |
| | | // const reportuser = this.userTableData.map(item => item.usercode).join(';')// 主要改的是这里的格式 |
| | |
| | | |
| | | inbarcode: this.dialogForm.inbarcode, // 生产入库条码 |
| | | |
| | | ngqty: this.dialogForm.noputqty === '' ? 0 : this.dialogForm.noputqty, // 不良数量 |
| | | badcode: this.dialogForm.badcode.length < 1 ? '' : this.dialogForm.badcode.join(';')// 不良原因 |
| | | defectlist: this.BAD |
| | | // ngqty: this.dialogForm.noputqty === '' ? 0 : this.dialogForm.noputqty, // 不良数量 |
| | | // badcode: this.dialogForm.badcode.length < 1 ? '' : this.dialogForm.badcode.join(';')// 不良原因 |
| | | } |
| | | |
| | | // console.log(JSON.stringify(data), 'data') |
| | | console.log(data, 'data') |
| | | this.$store.state.app.buttonIsDisabled = true |
| | | console.log(JSON.parse(JSON.stringify(data)), 'data') |
| | | console.log(JSON.stringify(data), 'data') |
| | | |
| | | // this.$store.state.app.buttonIsDisabled = true |
| | | |
| | | SavaMesOrderStepReport(data).then(res => { |
| | | if (res.code === '200') { |
| | |
| | | if (res.code === '200' || res.code === '301') { |
| | | this.getBadList() |
| | | this.badDialogVisible = false |
| | | this.badPrint(this.OperationArr.find(item => item.usercode === getCookie('navTabId')).username) |
| | | this.dialogVisible2 = true |
| | | // this.badPrint(this.OperationArr.find(item => item.usercode === getCookie('navTabId')).username) |
| | | // this.dialogVisible2 = true |
| | | this.$message.success('保存成功!') |
| | | |
| | | this.$store.state.app.buttonIsDisabled = false |