| | |
| | | <template> |
| | | <a-modal |
| | | title="新增物料信息" |
| | | :width="900" |
| | | :visible="visible" |
| | | :confirmLoading="confirmLoading" |
| | | @ok="handleSubmit" |
| | | @cancel="handleCancel" |
| | | > |
| | | <a-modal :title="title" :width="1200" :visible="visible" :confirmLoading="confirmLoading" @ok="handleSubmit" |
| | | @cancel="handleCancel"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <!-- tab @change="callback"--> |
| | | <a-tabs default-active-key="1" > |
| | | <!-- tab --> |
| | | <a-tabs default-active-key="1" @change="callbacktab"> |
| | | <a-tab-pane key="1" tab="基本信息"> |
| | | <add-form ref="addForm" @ok="handleOk" /> |
| | | <!-- <add-form ref="addFormRef" @ok="handleOk" /> --> |
| | | <!-- 基本信息 layout="inline" layout="vertical" --> |
| | | <a-form :form="form"> |
| | | <a-form-item label="物料名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请输入物料名称" |
| | | v-decorator="['materialName', { rules: [{ required: true, message: '请输入物料名称!' }] }]" /> |
| | | </a-form-item> |
| | | <a-form-item label="物料编号" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请输入物料编号" |
| | | v-decorator="['materialCode', { rules: [{ required: true, message: '请输入物料编号!' }] }]" /> |
| | | </a-form-item> |
| | | <a-form-item label="ERP编号" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请输入ERP编号" v-decorator="['erpCode']" /> |
| | | </a-form-item> |
| | | |
| | | <!-- <a-form-item label="物料类型名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请输入物料类型名称" v-decorator="['materialTypeName']" /> |
| | | </a-form-item> |
| | | <a-form-item label="物料类型描述" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请输入物料类型描述" v-decorator="['materialTypeDescr']" /> |
| | | </a-form-item> --> |
| | | |
| | | <a-form-item label="物料类型" :labelCol="labelCol" :wrapperCol="wrapperCol"> |
| | | <a-select style="width: 100%" placeholder="请选择物料类型" v-decorator="['materialType']"> |
| | | <a-select-option v-for="(item, index) in materialTypeData" :key="index" |
| | | :value="Number(item.materialTypeCode)">{{ item.materialTypeName }}</a-select-option> |
| | | </a-select> |
| | | </a-form-item> |
| | | |
| | | <a-form-item label="物料组" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请输入物料组" v-decorator="['materialGroup']" /> |
| | | </a-form-item> |
| | | <!-- <a-form-item label="ABC分类名称" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请输入ABC分类名称" v-decorator="['aBCClassName']" /> |
| | | </a-form-item> --> |
| | | <a-form-item label="ABC分类" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <!-- <a-input-number placeholder="请输入ABC分类" style="width: 100%" v-decorator="['aBCClass']" /> --> |
| | | |
| | | <a-select style="width: 100%" placeholder="请选择ABC分类" v-decorator="['factoryCode']"> |
| | | <a-select-option v-for="(item, index) in materialTypeData2" :key="index" :value="Number(item.code)">{{ |
| | | item.name }}</a-select-option> |
| | | </a-select> |
| | | |
| | | |
| | | |
| | | </a-form-item> |
| | | <a-form-item label="物料规格" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请输入物料规格" v-decorator="['materialSpec']" /> |
| | | </a-form-item> |
| | | <a-form-item label="默认入库库位" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请输入默认入库库位" v-decorator="['inPlaceCode']" /> |
| | | </a-form-item> |
| | | <a-form-item label="库存单位" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <!-- <a-input placeholder="请输入库存单位" v-decorator="['materialUnit']" /> --> |
| | | |
| | | <a-select style="width: 100%" placeholder="请选择库存单位" v-decorator="['materialUnit']"> |
| | | <a-select-option v-for="(item, index) in selectTypeData1" :key="index" :value="Number(item.unitCode)">{{ |
| | | item.unitName }}</a-select-option> |
| | | </a-select> |
| | | |
| | | |
| | | </a-form-item> |
| | | <a-form-item label="采购单位" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <!-- <a-input placeholder="请输入采购单位" v-decorator="['pOUnit']" /> --> |
| | | |
| | | <a-select style="width: 100%" placeholder="请选择采购单位" v-decorator="['pOUnit']"> |
| | | <a-select-option v-for="(item, index) in selectTypeData2" :key="index" :value="Number(item.unitCode)">{{ |
| | | item.unitName }}</a-select-option> |
| | | </a-select> |
| | | |
| | | |
| | | </a-form-item> |
| | | <a-form-item label="颜色" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请输入颜色" v-decorator="['color']" /> |
| | | </a-form-item> |
| | | <a-form-item label="重量" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请输入重量" v-decorator="['weight']" /> |
| | | </a-form-item> |
| | | <a-form-item label="标包数量" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请输入标包数量" v-decorator="['sNP']" /> |
| | | </a-form-item> |
| | | <a-form-item label="换算率" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请输入换算率" v-decorator="['translateRate']" /> |
| | | </a-form-item> |
| | | <!-- <a-form-item label="批次属性规则" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请输入批次属性规则" v-decorator="['batchRuleId']" /> |
| | | </a-form-item> |
| | | <a-form-item label="控制属性规则" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请输入控制属性规则" v-decorator="['controlRuleId']" /> |
| | | </a-form-item> --> |
| | | <a-form-item label="是否禁用" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-switch v-decorator="['isDisabled', { valuePropName: 'checked' }]" /> |
| | | </a-form-item> |
| | | <a-form-item label="描述" :labelCol="labelCol" :wrapperCol="wrapperCol" has-feedback> |
| | | <a-input placeholder="请输入描述" v-decorator="['materialDesc']" /> |
| | | </a-form-item> |
| | | </a-form> |
| | | </a-tab-pane> |
| | | <a-tab-pane key="2" tab="控制属性" force-render> |
| | | Content of Tab Pane 2 |
| | | <add-control-rule v-if="visible" ref="WmsControlRule" /> |
| | | </a-tab-pane> |
| | | <a-tab-pane key="3" tab="批次属性"> |
| | | 需求待定 |
| | | </a-tab-pane> |
| | | <a-tab-pane key="4" tab="替代品管理"> |
| | | <add-form-sub ref="addFormWmsSubstituteGood" @ok="handleOk" /> |
| | | <add-form-sub v-if="visible" ref="addFormWmsSubstituteGoodRef" /> |
| | | </a-tab-pane> |
| | | <a-tab-pane key="5" tab="客户"> |
| | | <add-form-base-customer ref="addFormBaseCustomer" @ok="handleOk" /> |
| | | <add-form-base-customer v-if="visible" ref="addFormBaseCustomer" /> |
| | | </a-tab-pane> |
| | | |
| | | <a-tab-pane key="7" tab="包装关系"> |
| | | <add-form-container-packaging ref="addFormContainerPackaging" @ok="handleOk" /> |
| | | </a-tab-pane> |
| | | <!-- <a-tab-pane key="6" tab="包装关系"> |
| | | <add-form-container-packaging ref="addFormContainerPackagingRef" @ok="handleOk" /> |
| | | </a-tab-pane> --> |
| | | </a-tabs> |
| | | |
| | | </a-spin> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import { WmsMaterialAdd, GetAreas, GetStations } from '@/api/modular/main/WmsMaterialManage' |
| | | import { WmsMaterialAdd, GetAreas, GetStations, materialTypeDataList } from '@/api/modular/main/WmsMaterialManage' |
| | | import addForm from './tabItem/addForm.vue' |
| | | import addFormBaseCustomer from './tabItem/addFormBaseCustomer.vue' |
| | | import addFormContainerPackaging from './tabItem/addFormContainerPackaging.vue' |
| | | import addFormSub from './tabItem/addFormWmsSubstituteGood.vue' |
| | | |
| | | import addFormBaseCustomer from './tabItem/addFormBaseCustomer/addFormBaseCustomer.vue' |
| | | import addFormContainerPackaging from './tabItem/WmsContainerPackaging/addFormContainerPackaging.vue' |
| | | import addFormSub from './tabItem/WmsSubstituteGood/addFormWmsSubstituteGood.vue' |
| | | import addControlRule from './tabItem/WmsControlRule/addForm.vue' |
| | | import { WmsUnitPage, WmsUnitDelete, WmsUnitToExcel } from '@/api/modular/main/WmsBase/WmsUnitManage' |
| | | export default { |
| | | components: { |
| | | addForm, |
| | | addFormBaseCustomer, |
| | | addFormContainerPackaging, |
| | | addFormSub |
| | | addFormSub, |
| | | addControlRule |
| | | }, |
| | | created() { |
| | | this.materialTypeDataList() |
| | | const materialTypeOption = this.$options |
| | | this.materialTypeData2 = materialTypeOption.filters['dictData']('abc_class_type') |
| | | }, |
| | | data() { |
| | | return { |
| | | title: '', |
| | | labelCol: { |
| | | // xs: { span: 24 }, |
| | | // sm: { span: 5 } |
| | |
| | | stationNameParameterData: [], |
| | | visible: false, |
| | | confirmLoading: false, |
| | | form: this.$form.createForm(this) |
| | | form: this.$form.createForm(this), |
| | | materialTypeData2:[] |
| | | } |
| | | }, |
| | | methods: { |
| | | handleOk(){ |
| | | // 物料类型 |
| | | materialTypeDataList() { |
| | | materialTypeDataList().then((d) => { |
| | | this.materialTypeData = d.data || [] |
| | | }).catch(() => { |
| | | |
| | | }) |
| | | // 库存单位 |
| | | WmsUnitPage().then((d) => { |
| | | this.selectTypeData1 = d.data.rows || [] |
| | | }).catch(() => { |
| | | |
| | | }) |
| | | |
| | | // 采购单位 |
| | | WmsUnitPage().then((d) => { |
| | | this.selectTypeData2 = d.data.rows || [] |
| | | }).catch(() => { |
| | | |
| | | }) |
| | | |
| | | }, |
| | | callbacktab(e) { |
| | | |
| | | //包装关系 |
| | | // if (e == 6) { |
| | | // this.$nextTick(() => { |
| | | // let materialType = this.form.getFieldValue('materialType'); |
| | | // // 调接口 传物料类型 |
| | | // this.$refs.addFormContainerPackagingRef.initShow(materialType) |
| | | // }) |
| | | // } |
| | | // 替代品 |
| | | if (e == 4) { |
| | | // let materialCode = this.form.getFieldValue('materialCode'); |
| | | // let materialName = this.form.getFieldValue('materialName'); |
| | | this.$refs.addFormWmsSubstituteGoodRef.initShowSubstituteGood() |
| | | } |
| | | }, |
| | | handleOk() { }, |
| | | // 初始化方法 |
| | | add(record) { |
| | | |
| | | |
| | | this.visible = true |
| | | this.$nextTick(() => { |
| | | this.getSelects() |
| | | }) |
| | | const materialTypeOption = this.$options |
| | | this.materialTypeData = materialTypeOption.filters['dictData']('material_type') |
| | | const inspectionMethodOption = this.$options |
| | | this.inspectionMethodData = inspectionMethodOption.filters['dictData']('material_inspection') |
| | | if (record) {//编辑 |
| | | this.title = '编辑基础物料信息'; |
| | | this.$nextTick(() => { |
| | | this.form.setFieldsValue({ |
| | | ...record |
| | | }) |
| | | }) |
| | | |
| | | } else { // 新增 |
| | | this.title = '新增基础物料信息'; |
| | | } |
| | | }, |
| | | getSelects() { |
| | | if (this.areaNameParameterData.length <= 0 || this.stationNameParameterData.length <= 0) { |
| | |
| | | const { |
| | | form: { validateFields } |
| | | } = this |
| | | this.confirmLoading = true |
| | | |
| | | validateFields((errors, values) => { |
| | | if (!errors) { |
| | | if (this.$getObjectType(values.areas) === 'array') { |
| | | values.areaIds = values.areas.join(',') |
| | | values.areaNameParameterArr = values.areas.map(val => { |
| | | return this.parseSelectName(val, 'areaId', 'areaName', 'areaNameParameterData') |
| | | // if (this.$getObjectType(values.areas) === 'array') { |
| | | // values.areaIds = values.areas.join(',') |
| | | // values.areaNameParameterArr = values.areas.map(val => { |
| | | // return this.parseSelectName(val, 'areaId', 'areaName', 'areaNameParameterData') |
| | | // }) |
| | | // values.areaNameParameter = values.areaNameParameterArr.join(',') |
| | | // } |
| | | // if (this.$getObjectType(values.stations) === 'array') { |
| | | // values.stationIds = values.stations.join(',') |
| | | // values.stationNameParameterArr = values.stations.map(val => { |
| | | // return this.parseSelectName(val, 'stationId', 'stationName', 'stationNameParameterData') |
| | | // }) |
| | | // values.stationNameParameter = values.stationNameParameterArr.join(',') |
| | | // } |
| | | |
| | | console.log(6666666666666 + '控制属性') |
| | | var ControlRuleld = this.$refs.WmsControlRule.form.getFieldValue('id') || '' |
| | | |
| | | let SubstituteGoodList = [] |
| | | if (this.$refs.addFormWmsSubstituteGoodRef && this.$refs.addFormWmsSubstituteGoodRef.list.length > 0) { |
| | | SubstituteGoodList = this.$refs.addFormWmsSubstituteGoodRef.list |
| | | SubstituteGoodList.forEach(item => { |
| | | item.materialName = this.form.getFieldValue('materialName') |
| | | item.materialCode = this.form.getFieldValue('materialCode') |
| | | }) |
| | | values.areaNameParameter = values.areaNameParameterArr.join(',') |
| | | } |
| | | if (this.$getObjectType(values.stations) === 'array') { |
| | | values.stationIds = values.stations.join(',') |
| | | values.stationNameParameterArr = values.stations.map(val => { |
| | | return this.parseSelectName(val, 'stationId', 'stationName', 'stationNameParameterData') |
| | | }) |
| | | values.stationNameParameter = values.stationNameParameterArr.join(',') |
| | | console.log(6666666666666 + '替代品') |
| | | |
| | | |
| | | let BaseCustomerList = []; |
| | | if (this.$refs.addFormBaseCustomer && this.$refs.addFormBaseCustomer.list.length > 0) { |
| | | BaseCustomerList = this.$refs.addFormBaseCustomer.list |
| | | |
| | | } |
| | | WmsMaterialAdd(values) |
| | | console.log(6666666666666 + '往来关系集合') |
| | | |
| | | // console.log(6666666666666 + '包装关系') |
| | | // console.log(this.$refs.addFormContainerPackagingRef.list) |
| | | |
| | | var param = { |
| | | MaterialInput: values, |
| | | ControlRuleld: ControlRuleld, //控制属性 |
| | | SubstituteGoodList: SubstituteGoodList, //替代品 |
| | | BaseCustomerList: BaseCustomerList, //往来关系集合 |
| | | // ContainerPackagingList: this.$refs.addFormContainerPackagingRef.list //包装关系 |
| | | } |
| | | this.confirmLoading = true |
| | | WmsMaterialAdd(param) |
| | | .then(res => { |
| | | if (res.success) { |
| | | this.$message.success('新增成功') |
| | |
| | | handleCancel() { |
| | | this.form.resetFields() |
| | | this.visible = false |
| | | // this.$refs.WmsControlRule.form.resetFields() |
| | | // this.$refs.addFormWmsSubstituteGoodRef.list =[] |
| | | // this.$refs.addFormWmsSubstituteGoodRef.list =[] |
| | | |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | .ant-row.ant-form-item { |
| | | width: 50% !important; |
| | | display: inline-block; |
| | | } |
| | | </style> |