Commit 2cc8fc4e authored by zhoutong's avatar zhoutong

出货操作-1.根据供应商信息自动填充提单补料信息

parent d157a3bd
......@@ -2,7 +2,7 @@
<div>
<el-form ref="agentForm" :model="agentObj" :rules="rules" label-width="120px">
<el-form-item :label="$t('代理商Agent')" prop="agentId">
<supplierSelect v-model="agentObj.agentId" :companyType="'1'" :placeholder="$t('请选择代理商')" :allSupplier="this.$attrs.allSupplier" />
<supplierSelect v-model="agentObj.agentId" :companyType="'1'" :areaType="1" :placeholder="$t('请选择代理商')" :allSupplier="this.$attrs.allSupplier" />
</el-form-item>
</el-form>
<el-row class="operate-button">
......
......@@ -26,7 +26,7 @@ export default {
getSuppliers() {
if (!this.companyType) return this.allSupplier;
return this.allSupplier.filter((item) =>
item.companyTypes.includes(this.companyType)
item.areaType == 1
);
},
},
......
......@@ -2,7 +2,7 @@
<div>
<el-form ref="subMaterialForm" :model="subMaterialObj" label-width="140px">
<el-form-item :label="$t('代理商AGENT')">
<supplierSelect v-model="subMaterialObj.agentId" :companyType="'1'" :placeholder="$t('请选择供应商')" :allSupplier="this.$attrs.allSupplier" />
<supplierSelect v-model="subMaterialObj.agentId" :placeholder="$t('请选择供应商')" :allSupplier="this.$attrs.allSupplier" disabled />
</el-form-item>
<el-form-item :label="$t('提单号M/BL NO.')" class="two-element">
<el-input v-model="subMaterialObj.blMblNo" :placeholder="$t('请输入提单号')"></el-input>
......@@ -24,19 +24,22 @@
<userSelect v-model="subMaterialObj.shipperId" :placeholder="$t('请选择托运人')" :allUsers="this.$attrs.allUsers" />
</el-form-item>
<el-form-item :label="$t('收货人')">
<userSelect v-model="subMaterialObj.consigneeId" :placeholder="$t('请选择收货人')" :allUsers="this.$attrs.allUsers" />
<el-input v-model="subMaterialObj.consigneeName"></el-input>
<!-- <userSelect v-model="subMaterialObj.consigneeId" :placeholder="$t('请选择收货人')" :allUsers="this.$attrs.allUsers" /> -->
</el-form-item>
<el-form-item :label="$t('通知方')">
<userSelect v-model="subMaterialObj.notifyingId" :placeholder="$t('请选择通知方')" :allUsers="this.$attrs.allUsers" />
<el-input v-model="subMaterialObj.notifyingName"></el-input>
<!-- <userSelect v-model="subMaterialObj.notifyingId" :placeholder="$t('请选择通知方')" :allUsers="this.$attrs.allUsers" /> -->
</el-form-item>
<el-form-item label="Mark & No.">
<el-input v-model="subMaterialObj.markNo" placeholder="请输入Mark & No."></el-input>
</el-form-item>
<el-form-item :label="$t('包装数量与单位')" class="two-element">
<el-input v-model="subMaterialObj.packageNum" :placeholder="$t('请输入包装数量')"></el-input>
<el-select v-model="subMaterialObj.packageUnit" :placeholder="$t('请选择单位')">
<!-- <el-select v-model="subMaterialObj.packageUnit" :placeholder="$t('请选择单位')">
<el-option v-for="unit in units" :key="unit.id" :value="unit.id" :label="$l(unit, 'title')"></el-option>
</el-select>
</el-select> -->
<el-input v-model="subMaterialObj.packageUnit" :placeholder="$t('请输入包装单位')"></el-input>
</el-form-item>
<el-form-item :label="$t('毛重(KGS)')">
<el-input v-model="subMaterialObj.kgs" :placeholder="$t('请输入毛重') + '(KGS)'"></el-input>
......@@ -78,6 +81,7 @@ import userSelect from "./common/userSelect.vue";
import { getUnitList } from "@/api/ecw/unit";
import { getCabinetPage } from "@/api/ecw/cabinet";
import { billCreate } from "@/api/ecw/boxSea";
import { getSupplier } from "@/api/ecw/supplier";
import { formatNumberString, constantDict, serviceMsg } from "../utils";
/**
......@@ -120,7 +124,6 @@ export default {
}
}
});
const voName = this.$attrs.currNode.voName;
let oldData = { ...this.shipmentObj[voName] };
oldData = formatNumberString(oldData, ["issueType"]);
......@@ -128,8 +131,24 @@ export default {
...oldData,
packageUnit: oldData.packageUnit === 0 ? undefined : oldData.packageUnit,
};
this.$set(this.subMaterialObj,'agentId',this.shipmentObj.agentInfo?.agentId||undefined)
this.getSup(this.subMaterialObj.agentId)
},
methods: {
getSup(id) {
getSupplier(id).then(response => {
if(response.data.externalBackVO){
this.$set(this.subMaterialObj,'consigneeName',response.data.externalBackVO?.receiveCompanyName||'/')
this.$set(this.subMaterialObj,'notifyingName',response.data.externalBackVO?.notifyCompanyName||'/')
this.$set(this.subMaterialObj,'packageNum',response.data.externalBackVO?.packNum)
this.$set(this.subMaterialObj,'packageUnit',response.data.externalBackVO?.packUnit)
this.$set(this.subMaterialObj,'goodsDesc',response.data.externalBackVO?.goodName+response.data.externalBackVO?.fromNo+response.data.externalBackVO?.baNo)
if(this.subMaterialObj.goodsDesc == null){
this.$set(this.subMaterialObj,'goodsDesc','/')
}
}
})
},
/** 提交 */
onSubmit(operateType) {
this.$refs["subMaterialForm"].validate((valid) => {
......
......@@ -255,6 +255,7 @@
<el-form-item :label="$t('港口优势条件')" prop="portConditions" label-width="250">
<dict-selector v-model="formData.resourceVO.portConditions" type="port_conditions" />
</el-form-item>
<el-button style="margin-left: 30px;" type="text" v-hasPermi="['ecw:dock:create']" @click="portVisible=true">{{$t('新增港口')}}</el-button>
</div>
<div>
<el-form-item :label="$t('订舱公司')" prop="bookCompany" label-width="250">
......@@ -305,6 +306,7 @@
<el-option v-for="(item) in airPort" :key="item.id" :label="$l(item, 'title')" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-button style="margin-left: 30px;" type="text" v-hasPermi="['ecw:dock:create']" @click="portVisible=true">{{$t('新增港口')}}</el-button>
</div>
<div>
<el-form-item :label="$t('空运优势航空公司')" prop="airCompany" label-width="250">
......@@ -519,10 +521,78 @@
>{{ $t('返回') }}</el-button>
</div>
</el-dialog>
<!-- 对话框(添加港口) -->
<el-dialog :title="$t('新增港口')" :visible.sync="portVisible" width="500px" append-to-body>
<el-form ref="portForm" :model="portForm" :rules="portRules" label-width="80px">
<el-form-item :label="$t('中文名称')" prop="titleZh">
<el-input v-model="portForm.titleZh" :placeholder="$t('请输入中文名称')" />
</el-form-item>
<el-form-item :label="$t('英文名称')" prop="titleEn">
<el-input v-model="portForm.titleEn" :placeholder="$t('请输入英文名称')" />
</el-form-item>
<el-form-item :label="$t('排序')" prop="sort">
<el-input v-model="portForm.sort" :placeholder="$t('请输入排序')" />
</el-form-item>
<el-form-item :label="$t('国家')" prop="countryId">
<el-select v-model="portForm.countryId" :placeholder="$t('请选择国家')" @change="changeCountry">
<el-option
v-for="item in treeList"
:key="item.id"
:label="$l(item,'title')"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('省')" prop="provinceId">
<el-select v-model="portForm.provinceId" :placeholder="$t('请选择省')" @change="changeProvince">
<el-option
v-for="item in portProvinceList"
:key="item.id"
:label="$l(item,'title')"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('城市')" prop="cityId">
<el-select v-model="portForm.cityId" :placeholder="$t('请选择城市')" @change="changeCity">
<el-option
v-for="item in portCityList"
:key="item.id"
:label="$l(item,'title')"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item :label="$t('港口类型')" prop="portType">
<el-select v-model="portForm.portType" :placeholder="$t('请选择')">
<el-option v-for="dict in portTypeDatas" :key="dict.value" :label="dict.label" :value="dict.value"/>
</el-select>
</el-form-item>
<el-form-item :label="$t('码头编号')" prop="number">
<el-input v-model="portForm.number" :placeholder="$t('请输入码头编号')" />
</el-form-item>
<el-form-item :label="$t('码头类型')" prop="type">
<el-input v-model="portForm.type" :placeholder="$t('请输入码头类型')" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="addPort">{{$t('确 定')}}</el-button>
<el-button @click="portVisible=false">{{$t('取 消')}}</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { createSupplier, updateSupplier, getSupplier, createFileNo, updateFileNo, getFileNoPage} from "@/api/ecw/supplier";
import { createDock } from "@/api/ecw/dock";
import upload from '@/components/ImageUpload'
import { getListTree } from "@/api/ecw/region";
import AreaSelector from '@/components/AreaSelector'
......@@ -531,6 +601,7 @@ import Selector from '@/components/Selector'
import {validatePwd} from '@/api/ecw/busiPwd'
import SuppliersSelector from '@/components/SuppliersSelector'
import { getDockPage } from "@/api/ecw/dock";
import { getDictDatas, DICT_TYPE } from '@/utils/dict';
export default {
components: {upload, AreaSelector, Selector, SuppliersSelector},
props: [],
......@@ -598,7 +669,16 @@ export default {
baNo: [{required: true,message: this.$t('请输入BA NO'),trigger: 'blur'}],
},
showFileNoDialog: false,
addFileNoShow: false
addFileNoShow: false,
portForm: {},
portVisible: false,
// 表单校验
portRules: {
titleZh: [{ required: true, message: this.$t("中文名称不能为空"), trigger: "blur" }],
titleEn: [{ required: true, message: this.$t("英文名称不能为空"), trigger: "blur" }],
sort: [{ required: true, message: this.$t("排序不能为空"), trigger: "blur" }]
},
portTypeDatas: getDictDatas(DICT_TYPE.ECW_PORT_TYPE)
}
},
computed: {
......@@ -613,6 +693,26 @@ export default {
let country = this.treeList.find(item => item.id == this.fileNoForm.country)
return country && country.children || []
},
portProvinceList(){
if(!this.portForm.countryId) return []
let country = this.treeList.find(item => item.id == this.portForm.countryId)
return country && country.children || []
},
portCityList(){
if(!this.portProvinceList.length) return []
let province = this.portProvinceList.find(item => item.id == this.portForm.provinceId)
return province && province.children || []
},
portTypeName() {
return portType => {
for(let index in this.portTypeDatas) {
let portTypeItem = this.portTypeDatas[index];
if(portTypeItem.value == portType) {
return this.$l(portTypeItem,'label');
}
}
}
},
},
watch: {
'formData.country'(country){
......@@ -637,10 +737,7 @@ export default {
getCurrencyList().then(res => {
this.currencyList = res.data
})
// 码头
getDockPage({ pageNo: "1", pageSize: "10000" }).then((res) => {
this.allDocks = res.data.list;
});
this.getDock()
this.getFile()
// 回显数据需要在加载了地区数据之后,否则无法正常回显
......@@ -702,6 +799,12 @@ export default {
},
mounted() {},
methods: {
getDock() {
// 码头
getDockPage({ pageNo: "1", pageSize: "10000" }).then((res) => {
this.allDocks = res.data.list;
});
},
strToArray(val) {
if(!val || val == '') {
return []
......@@ -875,7 +978,52 @@ export default {
resourceVO: {},
externalVO: {}
}
}
},
changeCountry(countryId) {
for(let index in this.treeList) {
let country = this.treeList[index];
if(country.id == countryId) {
this.portForm.countryZh = country.titleZh;
this.portForm.countryEn = country.titleEn;
return;
}
}
},
changeProvince(provinceId) {
for(let index in this.portProvinceList) {
let province = this.portProvinceList[index];
if(province.id == provinceId) {
this.portForm.provinceZh = province.titleZh;
this.portForm.provinceEn = province.titleEn;
return;
}
}
},
changeCity(cityId) {
for(let index in this.portCityList) {
let city = this.portCityList[index];
if(city.id == cityId) {
this.portForm.cityZh = city.titleZh;
this.portForm.cityEn = city.titleEn;
return;
}
}
},
addPort() {
this.$refs["portForm"].validate(valid => {
if (!valid) {
return;
}
// 添加的提交
createDock(this.portForm).then(response => {
this.$modal.msgSuccess(this.$t("新增成功"));
this.portVisible = false;
this.getDock()
});
});
},
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment