| | |
| | | <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" :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, |
| | | 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.$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: 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> |