|  |  |  | 
|---|
|  |  |  | <template> | 
|---|
|  |  |  | <GlobalWindow | 
|---|
|  |  |  | :title="title" | 
|---|
|  |  |  | width="80%" | 
|---|
|  |  |  | :visible.sync="visible" | 
|---|
|  |  |  | :confirm-working="isWorking" | 
|---|
|  |  |  | @confirm="confirm" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <GlobalWindow :title="title" width="80%" :visible.sync="visible" :confirm-working="isWorking" @confirm="confirm"> | 
|---|
|  |  |  | <div style="margin-bottom: 10px"> | 
|---|
|  |  |  | <span class="title-add-style" style="vertical-align:middle">入库信息</span> | 
|---|
|  |  |  | <!-- <el-button type="primary" style="margin-left: 10px;vertical-align:middle">选择来源单据</el-button> --> | 
|---|
|  |  |  | 
|---|
|  |  |  | <el-input v-model="form.originCode" disabled placeholder="选择来源单据后默认带出" v-trim/> | 
|---|
|  |  |  | </el-form-item> --> | 
|---|
|  |  |  | <el-form-item label="计划入库日期" prop="planDate"> | 
|---|
|  |  |  | <el-date-picker | 
|---|
|  |  |  | v-model="form.planDate" | 
|---|
|  |  |  | value-format="yyyy-MM-dd" | 
|---|
|  |  |  | placeholder="选择日期" | 
|---|
|  |  |  | :picker-options="pickerOptions" | 
|---|
|  |  |  | ></el-date-picker> | 
|---|
|  |  |  | <el-date-picker v-model="form.planDate" value-format="yyyy-MM-dd" placeholder="选择日期" | 
|---|
|  |  |  | :picker-options="pickerOptions"></el-date-picker> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="入库类型" prop="type"> | 
|---|
|  |  |  | <el-select v-model="form.type" :disabled="disabled" placeholder="请选择入库类型"> | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | v-for="(item, index) in type" | 
|---|
|  |  |  | :key="index" | 
|---|
|  |  |  | :label="item.name" | 
|---|
|  |  |  | :value="item.id"> | 
|---|
|  |  |  | <el-option v-for="(item, index) in type" :key="index" :label="item.name" :value="item.id"> | 
|---|
|  |  |  | </el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item label="入库仓库" prop="warehouseId"> | 
|---|
|  |  |  | <el-select v-model="form.warehouseId" filterable clearable placeholder="请选择入库仓库" @change="selectWare"> | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | v-for="(item, index) in tempWarehouses" | 
|---|
|  |  |  | :key="index" | 
|---|
|  |  |  | :label="item.name" | 
|---|
|  |  |  | :value="item.id"> | 
|---|
|  |  |  | <el-option v-for="(item, index) in tempWarehouses" :key="index" :label="item.name" :value="item.id"> | 
|---|
|  |  |  | </el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <div class="mark"> | 
|---|
|  |  |  | <el-form-item label="单据摘要" prop="abstracts"> | 
|---|
|  |  |  | <el-input v-model="form.abstracts" placeholder="请输入单据摘要" v-trim/> | 
|---|
|  |  |  | <el-input v-model="form.abstracts" placeholder="请输入单据摘要" v-trim /> | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | </div> | 
|---|
|  |  |  | </el-form> | 
|---|
|  |  |  | 
|---|
|  |  |  | <li><el-button type="primary" @click="addMaterial">选择物料</el-button></li> | 
|---|
|  |  |  | </ul> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <el-table | 
|---|
|  |  |  | :data="form.woutboundInBodyBeanList" | 
|---|
|  |  |  | border | 
|---|
|  |  |  | stripe | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-table :data="form.woutboundInBodyBeanList" border stripe> | 
|---|
|  |  |  | <el-table-column align="center" label="序号" type="index" /> | 
|---|
|  |  |  | <el-table-column prop="code" label="物料编码" show-overflow-tooltip min-width="160px"> | 
|---|
|  |  |  | <template slot-scope="{row}"> | 
|---|
|  |  |  | 
|---|
|  |  |  | <el-table-column v-if="whLocation.length" label="货位" min-width="100px"> | 
|---|
|  |  |  | <template slot-scope="{row}"> | 
|---|
|  |  |  | <el-select v-model="row.locationId" filterable placeholder="请选择" @select="selectLocation"> | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | v-for="(item, index) in whLocation" | 
|---|
|  |  |  | :key="index" | 
|---|
|  |  |  | :label="item.unionName" | 
|---|
|  |  |  | :value="item.id"> | 
|---|
|  |  |  | <el-option v-for="(item, index) in whLocation" :key="index" :label="item.unionName" :value="item.id"> | 
|---|
|  |  |  | </el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column label="质量属性" min-width="100px"> | 
|---|
|  |  |  | <template slot-scope="scope"> | 
|---|
|  |  |  | <el-select v-model="scope.row.qualityType" :disabled='canSelect(scope.$index)' filterable clearable placeholder="请选择"> | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | v-for="(item, index) in properties" | 
|---|
|  |  |  | :key="index" | 
|---|
|  |  |  | :label="item.name" | 
|---|
|  |  |  | :value="item.id"> | 
|---|
|  |  |  | <el-select v-model="scope.row.qualityType" :disabled='canSelect(scope.$index)' filterable clearable | 
|---|
|  |  |  | placeholder="请选择"> | 
|---|
|  |  |  | <el-option v-for="(item, index) in properties" :key="index" :label="item.name" :value="item.id"> | 
|---|
|  |  |  | </el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column  v-if="winType==2" label="工序" min-width="100px"> | 
|---|
|  |  |  | <template slot-scope="{row}"> | 
|---|
|  |  |  | <el-select v-model="row.procedureId" filterable placeholder="请选择" @select="selectProcedure"> | 
|---|
|  |  |  | <el-option | 
|---|
|  |  |  | v-for="(item, index) in row.procedureList" | 
|---|
|  |  |  | :key="index" | 
|---|
|  |  |  | :label="item.name" | 
|---|
|  |  |  | :value="item.id"> | 
|---|
|  |  |  | </el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column v-if="winType == 2" label="工序" min-width="100px"> | 
|---|
|  |  |  | <template slot-scope="{row}"> | 
|---|
|  |  |  | <el-select v-model="row.procedureId" :disabled="!row.procedureList" filterable placeholder="请选择"> | 
|---|
|  |  |  | <el-option v-for="(item, index) in row.procedureList" :key="index" :label="item.name" :value="item.id"> | 
|---|
|  |  |  | </el-option> | 
|---|
|  |  |  | </el-select> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column label="批次号" min-width="100px"> | 
|---|
|  |  |  | <template slot-scope="{row}"> | 
|---|
|  |  |  | <el-input v-model="row.batch" placeholder="请输入批次号" v-trim/> | 
|---|
|  |  |  | <el-input v-model="row.batch" placeholder="请输入批次号" v-trim /> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column prop="umodelName" label="单位" min-width="60px"></el-table-column> | 
|---|
|  |  |  | <el-table-column label="入库数量" min-width="100px"> | 
|---|
|  |  |  | <template slot-scope="{row}"> | 
|---|
|  |  |  | <el-input v-model="row.num" type="number" placeholder="入库数量" v-trim/> | 
|---|
|  |  |  | <el-input v-model="row.num" type="number" placeholder="入库数量" v-trim /> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | label="操作" | 
|---|
|  |  |  | min-width="60px" | 
|---|
|  |  |  | align="center" | 
|---|
|  |  |  | fixed="right" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <el-table-column label="操作" min-width="60px" align="center" fixed="right"> | 
|---|
|  |  |  | <template slot-scope="{row}"> | 
|---|
|  |  |  | <span class="delete-button-style" @click="deleteMaterail(row)">删除</span> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  | </el-table-column> | 
|---|
|  |  |  | </el-table> | 
|---|
|  |  |  | <SelectMaterail | 
|---|
|  |  |  | ref="selectMaterail" | 
|---|
|  |  |  | @selectData="selectData" | 
|---|
|  |  |  | ></SelectMaterail> | 
|---|
|  |  |  | <SelectMaterail ref="selectMaterail" @selectData="selectData"></SelectMaterail> | 
|---|
|  |  |  | </GlobalWindow> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | GlobalWindow, | 
|---|
|  |  |  | SelectMaterail: () => import('@/components/ext/SelectMaterail') | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | data () { | 
|---|
|  |  |  | data() { | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | // 表单数据 | 
|---|
|  |  |  | form: { | 
|---|
|  |  |  | 
|---|
|  |  |  | origin: 0, | 
|---|
|  |  |  | woutboundInBodyBeanList: [] | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | winType:0, | 
|---|
|  |  |  | winType: 0, | 
|---|
|  |  |  | disabled: false, | 
|---|
|  |  |  | pickerOptions: {}, | 
|---|
|  |  |  | tempWarehouses: [], | 
|---|
|  |  |  | 
|---|
|  |  |  | activeName: 'first', | 
|---|
|  |  |  | whLocation: [], | 
|---|
|  |  |  | type: [ | 
|---|
|  |  |  | {name:'采购入库', id: 25} | 
|---|
|  |  |  | { name: '采购入库', id: 25 } | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | tempMaterials: [ | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | selectedMaterails: [], | 
|---|
|  |  |  | properties: [ | 
|---|
|  |  |  | // 0 1不良 2报废 | 
|---|
|  |  |  | {name:'合格', id: 0}, | 
|---|
|  |  |  | {name:'不良', id: 1}, | 
|---|
|  |  |  | {name:'报废', id: 2}, | 
|---|
|  |  |  | { name: '合格', id: 0 }, | 
|---|
|  |  |  | { name: '不良', id: 1 }, | 
|---|
|  |  |  | { name: '报废', id: 2 }, | 
|---|
|  |  |  | ] | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | inject: ['warehouses'], | 
|---|
|  |  |  | created () { | 
|---|
|  |  |  | created() { | 
|---|
|  |  |  | this.config({ | 
|---|
|  |  |  | api: '/ext/wOutboundExt', | 
|---|
|  |  |  | 'field.id': 'id' | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | this.pickerOptions.disabledDate = (time) => { | 
|---|
|  |  |  | // 一天 | 
|---|
|  |  |  | let tempTime = 3600 * 1000 * 24 | 
|---|
|  |  |  | return time.getTime() < new Date()-tempTime | 
|---|
|  |  |  | // 一天 | 
|---|
|  |  |  | let tempTime = 3600 * 1000 * 24 | 
|---|
|  |  |  | return time.getTime() < new Date() - tempTime | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // queryListByCode('?dicCode=SYSTEM_APPLIANCE_TYPE') | 
|---|
|  |  |  | //   .then(res => { | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.__confirmEdit() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | open (title, type = 0) { | 
|---|
|  |  |  | open(title, type = 0) { | 
|---|
|  |  |  | this.title = title | 
|---|
|  |  |  | this.visible = true | 
|---|
|  |  |  | this.winType=type | 
|---|
|  |  |  | this.winType = type | 
|---|
|  |  |  | // 新建 | 
|---|
|  |  |  | this.$nextTick(() => { | 
|---|
|  |  |  | this.$refs.form.resetFields() | 
|---|
|  |  |  | 
|---|
|  |  |  | if (title === '其它入库') { | 
|---|
|  |  |  | this.form.planDate = new Date() | 
|---|
|  |  |  | this.form.type = null | 
|---|
|  |  |  | // this.form.woutboundInBodyBeanList = [] | 
|---|
|  |  |  | this.disabled = false | 
|---|
|  |  |  | this.type = [ | 
|---|
|  |  |  | { name:'客退检验入库', id: 26 }, | 
|---|
|  |  |  | { name:'客返检验入库', id: 27 }, | 
|---|
|  |  |  | { name:'库存调整', id: 28 } | 
|---|
|  |  |  | { name: '客退检验入库', id: 26 }, | 
|---|
|  |  |  | { name: '客返检验入库', id: 27 }, | 
|---|
|  |  |  | { name: '库存调整', id: 28 } | 
|---|
|  |  |  | ] | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | this.disabled = true | 
|---|
|  |  |  | this.type = [ | 
|---|
|  |  |  | { name:'采购入库', id: 25 } | 
|---|
|  |  |  | { name: '采购入库', id: 25 } | 
|---|
|  |  |  | ] | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | this.tempWarehouses = this.warehouses() | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | selectWare (v) { | 
|---|
|  |  |  | selectWare(v) { | 
|---|
|  |  |  | // console.log(v) | 
|---|
|  |  |  | getListByWarehouseId(v) | 
|---|
|  |  |  | .then(res => { | 
|---|
|  |  |  | console.log(res) | 
|---|
|  |  |  | this.whLocation = res | 
|---|
|  |  |  | if (this.whLocation.length === 0 ) { | 
|---|
|  |  |  | if (this.whLocation.length === 0) { | 
|---|
|  |  |  | let temQualityType = 0 | 
|---|
|  |  |  | for (const item of this.tempWarehouses) { | 
|---|
|  |  |  | if (item.id === v) { | 
|---|
|  |  |  | 
|---|
|  |  |  | .catch(err => { | 
|---|
|  |  |  | console.log(err) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | setQuality (type) { | 
|---|
|  |  |  | setQuality(type) { | 
|---|
|  |  |  | for (const item of this.form.woutboundInBodyBeanList) { | 
|---|
|  |  |  | item.qualityType = type | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return !cans | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | selectLocation (v) { | 
|---|
|  |  |  | selectLocation(v) { | 
|---|
|  |  |  | // console.log(index, row); | 
|---|
|  |  |  | // for (const item of this.whLocation) { | 
|---|
|  |  |  | //   if (item.id === v) { | 
|---|
|  |  |  | 
|---|
|  |  |  | //   } | 
|---|
|  |  |  | // } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | addMaterial () { | 
|---|
|  |  |  | addMaterial() { | 
|---|
|  |  |  | // console.log('增加物料') | 
|---|
|  |  |  | // const ids = this.form.woutboundInBodyBeanList.map(e => { return e.materialId }).join(',') | 
|---|
|  |  |  | this.$refs.selectMaterail.open('选择物料', { ids: '', multiple: true, isPurchase:true }) | 
|---|
|  |  |  | this.$refs.selectMaterail.open('选择物料', { ids: '', multiple: true, isPurchase: false, queryType: 1 }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | deleteMaterail (row) { | 
|---|
|  |  |  | deleteMaterail(row) { | 
|---|
|  |  |  | // console.log('删除物料') | 
|---|
|  |  |  | this.form.woutboundInBodyBeanList.splice(this.form.woutboundInBodyBeanList.indexOf(row), 1) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | selectData (data) { | 
|---|
|  |  |  | selectData(data) { | 
|---|
|  |  |  | // 选择物料回调 | 
|---|
|  |  |  | console.log(data) | 
|---|
|  |  |  | for (const item of data.selectedMaterails) { | 
|---|
|  |  |  | 
|---|
|  |  |  | code: item.mmodelCode, | 
|---|
|  |  |  | name: item.mmodelUnionName, | 
|---|
|  |  |  | umodelName: item.umodelName, | 
|---|
|  |  |  | procedureList:item.procedureList, | 
|---|
|  |  |  | procedureId:null, | 
|---|
|  |  |  | procedureList: item.procedureList, | 
|---|
|  |  |  | procedureId: item.procedureList ? item.procedureList[0].id : null, | 
|---|
|  |  |  | locationId: this.whLocation.length ? this.whLocation[0].id : null, | 
|---|
|  |  |  | qualityType: this.whLocation.length ? 0 : this.houseProperty, | 
|---|
|  |  |  | materialId: item.id, | 
|---|
|  |  |  | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | __confirmCreate () { | 
|---|
|  |  |  | __confirmCreate() { | 
|---|
|  |  |  | this.$refs.form.validate((valid) => { | 
|---|
|  |  |  | if (!this.form.woutboundInBodyBeanList.length) { | 
|---|
|  |  |  | this.$tip.error('至少选择一条物料') | 
|---|
|  |  |  | return | 
|---|
|  |  |  | } | 
|---|
|  |  |  | for (const item of this.form.woutboundInBodyBeanList) { | 
|---|
|  |  |  | if (item.num<=0) { | 
|---|
|  |  |  | if (item.num <= 0) { | 
|---|
|  |  |  | this.$tip.error('入库物料数量必须大于0!') | 
|---|
|  |  |  | return | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | .toolbar { | 
|---|
|  |  |  | border-bottom: 1px solid #eee; | 
|---|
|  |  |  | padding-bottom: 10px; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | li { | 
|---|
|  |  |  | display: inline-block; | 
|---|
|  |  |  | margin-right: 6px; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .form-data { | 
|---|
|  |  |  | ::v-deep .el-form-item{ | 
|---|
|  |  |  | ::v-deep .el-form-item { | 
|---|
|  |  |  | width: 40%; | 
|---|
|  |  |  | margin-right: 1%; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .mark { | 
|---|
|  |  |  | .el-form-item { | 
|---|
|  |  |  | width: 81%; | 
|---|
|  |  |  | // margin-right: 1%; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | ::v-deep .el-form-item__content { | 
|---|
|  |  |  | width: calc(100% - 134px); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .delete-button-style { | 
|---|
|  |  |  | color: red; | 
|---|
|  |  |  | cursor: pointer; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | color: red; | 
|---|
|  |  |  | cursor: pointer; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </style> | 
|---|