|
@@ -15,35 +15,50 @@
|
|
|
:rules="rules"
|
|
|
:label-col="formItemLayout.labelCol"
|
|
|
:wrapper-col="formItemLayout.wrapperCol" >
|
|
|
- <a-form-model-item label="供应商" prop="supplierSn">供应商名称</a-form-model-item>
|
|
|
- <a-form-model-item label="产品名称" prop="supplierSn">供应商名称</a-form-model-item>
|
|
|
- <a-form-model-item label="原厂编码" prop="supplierSn">供应商名称</a-form-model-item>
|
|
|
- <a-form-model-item label="仓库仓位" prop="sparePartsType">
|
|
|
+ <a-form-model-item label="供应商" prop="supplierSn">{{ (nowData&&nowData.supplierName) || '--' }}</a-form-model-item>
|
|
|
+ <a-form-model-item label="产品编码" prop="productSn">
|
|
|
+ <a-select
|
|
|
+ show-search
|
|
|
+ id="bulkWarehousingOrder-product-productSn"
|
|
|
+ v-model="form.productSn"
|
|
|
+ placeholder="请选择"
|
|
|
+ :filter-option="false"
|
|
|
+ :not-found-content="fetching ? undefined : null"
|
|
|
+ @search="fetchUser"
|
|
|
+ @change="handleChange"
|
|
|
+ >
|
|
|
+ <a-spin v-if="fetching" slot="notFoundContent" size="small" />
|
|
|
+ <a-select-option v-for="item in productData" :key="item.product.productSn + item.product.code" :value="item.product.productSn">{{ item.product.code }}</a-select-option>
|
|
|
+ </a-select>
|
|
|
+ </a-form-model-item>
|
|
|
+ <a-form-model-item label="产品名称" prop="productName">{{ form.productName || '--' }}</a-form-model-item>
|
|
|
+ <a-form-model-item label="原厂编码" prop="productOrigCode">{{ form.productOrigCode || '--' }}</a-form-model-item>
|
|
|
+ <a-form-model-item label="仓库仓位" prop="warehouse">
|
|
|
<a-cascader
|
|
|
@change="changeWarehouseCascade"
|
|
|
- v-model="form.warehouseCascade"
|
|
|
+ v-model="form.warehouse"
|
|
|
expand-trigger="hover"
|
|
|
:allowClear="false"
|
|
|
:options="warehouseCascadeData"
|
|
|
:fieldNames="{ label: 'name', value: 'sn', children: 'warehouseLocationList' }"
|
|
|
- id="bulkWarehousingOrder-product-warehouseCascade"
|
|
|
+ id="bulkWarehousingOrder-product-warehouse"
|
|
|
placeholder="请选择仓库仓位"
|
|
|
style="width: 100%;" />
|
|
|
</a-form-model-item>
|
|
|
- <a-form-model-item label="成本价" prop="relationNo">
|
|
|
+ <a-form-model-item label="成本价" prop="productCost">
|
|
|
<a-input-number
|
|
|
- id="bulkWarehousingOrder-product-packQty"
|
|
|
- v-model="form.packQty"
|
|
|
+ id="bulkWarehousingOrder-product-productCost"
|
|
|
+ v-model="form.productCost"
|
|
|
:precision="2"
|
|
|
:min="0.1"
|
|
|
:max="999999"
|
|
|
placeholder="请输入"
|
|
|
style="width: 100%;" />
|
|
|
</a-form-model-item>
|
|
|
- <a-form-model-item label="数量" prop="remark">
|
|
|
+ <a-form-model-item label="数量" prop="productQty">
|
|
|
<a-input-number
|
|
|
- id="bulkWarehousingOrder-product-packQty"
|
|
|
- v-model="form.packQty"
|
|
|
+ id="bulkWarehousingOrder-product-productQty"
|
|
|
+ v-model="form.productQty"
|
|
|
:precision="0"
|
|
|
:min="1"
|
|
|
:max="999999"
|
|
@@ -60,9 +75,10 @@
|
|
|
|
|
|
<script>
|
|
|
import { VSelect } from '@/components'
|
|
|
-import { supplierAllList } from '@/api/supplier'
|
|
|
+import debounce from 'lodash/debounce'
|
|
|
+import { supplierProductList } from '@/api/supplier'
|
|
|
import { warehouseCascadeList } from '@/api/warehouse'
|
|
|
-import { sparePartsSave } from '@/api/spareParts'
|
|
|
+import { sparePartsSaveDetail, sparePartsDetailD } from '@/api/spareParts'
|
|
|
export default {
|
|
|
name: 'BulkWarehousingOrderBasicInfoModal',
|
|
|
components: { VSelect },
|
|
@@ -74,9 +90,16 @@ export default {
|
|
|
itemSn: {
|
|
|
type: [Number, String],
|
|
|
default: ''
|
|
|
+ },
|
|
|
+ nowData: {
|
|
|
+ type: Object,
|
|
|
+ default: () => {
|
|
|
+ return null
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
data () {
|
|
|
+ this.fetchUser = debounce(this.fetchUser, 800)
|
|
|
return {
|
|
|
isShow: this.openModal, // 是否打开弹框
|
|
|
formItemLayout: {
|
|
@@ -84,30 +107,83 @@ export default {
|
|
|
wrapperCol: { span: 16 }
|
|
|
},
|
|
|
form: {
|
|
|
- supplierSn: undefined, // 供应商
|
|
|
- sparePartsType: undefined, // 散件类型
|
|
|
- relationNo: '', // 关联单号
|
|
|
- remark: '' // 备注
|
|
|
+ supplierSn: '', // 供应商
|
|
|
+ productSn: undefined,
|
|
|
+ productName: '',
|
|
|
+ productCode: '',
|
|
|
+ productOrigCode: '',
|
|
|
+ warehouse: [],
|
|
|
+ warehouseSn: '',
|
|
|
+ warehouseLocationSn: '',
|
|
|
+ productCost: '',
|
|
|
+ productQty: ''
|
|
|
},
|
|
|
rules: {
|
|
|
- supplierSn: [
|
|
|
- { required: true, message: '请选择供应商', trigger: 'change' }
|
|
|
+ productSn: [
|
|
|
+ { required: true, message: '请选择产品编码', trigger: 'change' }
|
|
|
],
|
|
|
- sparePartsType: [
|
|
|
- { required: true, message: '请选择入库类型', trigger: 'change' }
|
|
|
+ warehouse: [
|
|
|
+ { required: true, message: '请选择仓库仓位', trigger: 'change' }
|
|
|
+ ],
|
|
|
+ productCost: [
|
|
|
+ { required: true, message: '请输入成本价', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ productQty: [
|
|
|
+ { required: true, message: '请输入数量', trigger: 'blur' }
|
|
|
]
|
|
|
},
|
|
|
- warehouseCascadeData: [] // 仓库仓位 下拉数据
|
|
|
+ fetching: false,
|
|
|
+ productData: [],
|
|
|
+ warehouseCascadeData: [], // 仓库仓位 下拉数据
|
|
|
+ warehouseSnBackups: '', // 仓库备份数据
|
|
|
+ warehouseLocationSnBackups: '' // 仓位备份数据
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
+ // 搜索经销商
|
|
|
+ fetchUser (value) {
|
|
|
+ console.log('fetching user', value)
|
|
|
+ this.fetching = true
|
|
|
+ supplierProductList({ productCode: value, pageNo: 1, pageSize: 20 }).then(res => {
|
|
|
+ if (res.status == 200) {
|
|
|
+ this.productData = res.data.list
|
|
|
+ this.fetching = false
|
|
|
+ } else {
|
|
|
+ this.productData = []
|
|
|
+ this.fetching = false
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // 调往对象名称 change
|
|
|
+ handleChange (value) {
|
|
|
+ const ind = this.productData.findIndex(item => item.productSn == value)
|
|
|
+ this.form.productName = this.productData[ind].product.name
|
|
|
+ this.form.productCode = this.productData[ind].product.code
|
|
|
+ this.form.productOrigCode = this.productData[ind].product.origCode
|
|
|
+ },
|
|
|
+ // 详情
|
|
|
+ getDetail () {
|
|
|
+ sparePartsDetailD({ sn: this.itemSn }).then(res => {
|
|
|
+ if (res.status == 200) {
|
|
|
+ const data = res.data
|
|
|
+ this.form = Object.assign(this.form, data)
|
|
|
+ this.fetchUser(this.form.productSn)
|
|
|
+ this.form.warehouse = [this.form.warehouseSn, this.form.warehouseLocationSn]
|
|
|
+ this.warehouseSnBackups = this.form.warehouseSn || undefined
|
|
|
+ this.warehouseLocationSnBackups = this.form.warehouseLocationSn || undefined
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
// 保存
|
|
|
handleSave () {
|
|
|
const _this = this
|
|
|
this.$refs.ruleForm.validate(valid => {
|
|
|
if (valid) {
|
|
|
const form = JSON.parse(JSON.stringify(_this.form))
|
|
|
- sparePartsSave(form).then(res => {
|
|
|
+ form.sparePartsSn = this.nowData.sparePartsSn
|
|
|
+ form.sparePartsNo = this.nowData.sparePartsNo
|
|
|
+ form.supplierSn = this.nowData.supplierSn
|
|
|
+ sparePartsSaveDetail(form).then(res => {
|
|
|
if (res.status == 200) {
|
|
|
_this.$message.success(res.message)
|
|
|
setTimeout(() => {
|
|
@@ -123,23 +199,21 @@ export default {
|
|
|
})
|
|
|
},
|
|
|
changeWarehouseCascade (val) {
|
|
|
- console.log(val)
|
|
|
- // if (val.length < 2) {
|
|
|
- // this.$message.warning('当前仓库无仓位,请选择其他仓库')
|
|
|
- // const warehouseSnBackups = this.loadData[ind].warehouseSnBackups || undefined
|
|
|
- // const warehouseLocationSnBackups = this.loadData[ind].warehouseLocationSnBackups || undefined
|
|
|
- // this.loadData[ind].warehouseSn = warehouseSnBackups
|
|
|
- // this.loadData[ind].warehouseLocationSn = warehouseLocationSnBackups
|
|
|
- // if (warehouseSnBackups || warehouseLocationSnBackups) {
|
|
|
- // this.loadData[ind].warehouseCascade = [warehouseSnBackups, warehouseLocationSnBackups]
|
|
|
- // } else {
|
|
|
- // this.loadData[ind].warehouseCascade = undefined
|
|
|
- // }
|
|
|
- // } else {
|
|
|
- // this.loadData[ind].warehouseSn = val[0] ? val[0] : ''
|
|
|
- // this.loadData[ind].warehouseLocationSn = val[1] ? val[1] : ''
|
|
|
- // this.handleAdd(this.loadData[ind])
|
|
|
- // }
|
|
|
+ if (val.length < 2) {
|
|
|
+ this.$message.warning('当前仓库无仓位,请选择其他仓库')
|
|
|
+ this.form.warehouseSn = this.warehouseSnBackups
|
|
|
+ this.form.warehouseLocationSn = this.warehouseLocationSnBackups
|
|
|
+ if (this.warehouseSnBackups || this.warehouseLocationSnBackups) {
|
|
|
+ this.form.warehouse = [this.warehouseSnBackups, this.warehouseLocationSnBackups]
|
|
|
+ } else {
|
|
|
+ this.form.warehouse = []
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ this.form.warehouseSn = val[0] ? val[0] : ''
|
|
|
+ this.form.warehouseLocationSn = val[1] ? val[1] : ''
|
|
|
+ this.warehouseSnBackups = this.form.warehouseSn
|
|
|
+ this.warehouseLocationSnBackups = this.form.warehouseLocationSn
|
|
|
+ }
|
|
|
},
|
|
|
// 仓库仓位
|
|
|
getWarehouseCascade () {
|
|
@@ -170,8 +244,17 @@ export default {
|
|
|
if (!newValue) {
|
|
|
this.$emit('close')
|
|
|
this.$refs.ruleForm.resetFields()
|
|
|
+ this.warehouseSnBackups = ''
|
|
|
+ this.warehouseLocationSnBackups = ''
|
|
|
} else {
|
|
|
- this.getWarehouseCascade()
|
|
|
+ if (this.warehouseCascadeData.length == 0) {
|
|
|
+ this.getWarehouseCascade()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ itemSn (newValue, oldValue) {
|
|
|
+ if (this.isShow && newValue) {
|
|
|
+ this.getDetail()
|
|
|
}
|
|
|
}
|
|
|
}
|