|
@@ -8,43 +8,50 @@
|
|
|
<div class="common-dialog-box">
|
|
|
<el-form ref="eventFormRef" :model="form" :rules="rules" label-width="200px">
|
|
|
<el-form-item label="出库单号:" prop="invoice_number">
|
|
|
- <el-input v-model="form.invoice_number" placeholder="请输入出库单号" style="width: 468px !important" />
|
|
|
+ <el-input v-model="form.outbound_number" placeholder="请输入出库单号" style="width: 468px !important" />
|
|
|
</el-form-item>
|
|
|
|
|
|
- <el-form-item label="仓库名称:" prop="warehouse_number">
|
|
|
- <el-input v-model="form.warehouse_number" placeholder="请输入仓库名称" style="width: 468px !important" />
|
|
|
+ <el-form-item label="库房名称:" prop="warehouse_number">
|
|
|
+ <el-tree-select
|
|
|
+ v-model="form.warehouse_id"
|
|
|
+ :data="warehouseName"
|
|
|
+ node-key="id"
|
|
|
+ placeholder="请选择库房名称"
|
|
|
+ :render-after-expand="false"
|
|
|
+ :props="defaultProps"
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="出库单商品总体积(cm³):" prop="commodity_volume">
|
|
|
- <el-input v-model="form.commodity_volume" placeholder="请输入出库单商品总体积" style="width: 468px !important" />
|
|
|
+ <el-input v-model="form.total_volume" placeholder="请输入出库单商品总体积" style="width: 468px !important" />
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="出库单商品总重量(kg):" prop="commodity_weight">
|
|
|
- <el-input v-model="form.commodity_weight" placeholder="请输入出库单商品总重量" style="width: 468px !important" />
|
|
|
+ <el-input v-model="form.total_weight" placeholder="请输入出库单商品总重量" style="width: 468px !important" />
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="出库单发货总体积(cm³):" prop="shipped_volume">
|
|
|
- <el-input v-model="form.shipped_volume" placeholder="请输入出库单发货总体积" style="width: 468px !important" />
|
|
|
+ <el-input v-model="form.total_shipping_volume" placeholder="请输入出库单发货总体积" style="width: 468px !important" />
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="出库单发货总重量(kg):" prop="shipped_weight">
|
|
|
- <el-input v-model="form.shipped_weight" placeholder="请输入出库单发货总重量" style="width: 468px !important" />
|
|
|
+ <el-input v-model="form.total_shipping_weight" placeholder="请输入出库单发货总重量" style="width: 468px !important" />
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="出库单商品总数量:" prop="commodity_number">
|
|
|
- <el-input v-model="form.commodity_number" placeholder="请输入出库单商品总数量" style="width: 468px !important" />
|
|
|
+ <el-input v-model="form.total_quantity" placeholder="请输入出库单商品总数量" style="width: 468px !important" />
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="出库单发货时间:" prop="delivery_time">
|
|
|
- <el-input v-model="form.delivery_time" placeholder="请输入出库单发货时间" style="width: 468px !important" />
|
|
|
+ <el-input v-model="form.shipping_time" placeholder="请输入出库单发货时间" style="width: 468px !important" />
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="灾种名称:" prop="disaster_name">
|
|
|
- <el-input v-model="form.disaster_name" placeholder="请输入灾种名称" style="width: 468px !important" />
|
|
|
+ <el-input v-model="form.disaster_type" placeholder="请输入灾种名称" style="width: 468px !important" />
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="调运机构名称:" prop="organization_name">
|
|
|
- <el-input v-model="form.organization_name" placeholder="请输入调运机构名称" style="width: 468px !important" />
|
|
|
+ <el-input v-model="form.dispatching_agency" placeholder="请输入调运机构名称" style="width: 468px !important" />
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="发货人姓名:" prop="shipper_name">
|
|
@@ -52,7 +59,31 @@
|
|
|
</el-form-item>
|
|
|
|
|
|
<el-form-item label="发货人手机:" prop="shipper_phone">
|
|
|
- <el-input v-model="form.shipper_phone" placeholder="请输入发货人手机" style="width: 468px !important" />
|
|
|
+ <el-input v-model="form.shipper_mobile" placeholder="请输入发货人手机" style="width: 468px !important" />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="发货人地址:" prop="shipper_address">
|
|
|
+ <el-input v-model="form.shipper_address" placeholder="请输入发货人地址" style="width: 468px !important" />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="发货方备注:" prop="shipper_remark">
|
|
|
+ <el-input v-model="form.shipper_remark" placeholder="请输入发货方备注" style="width: 468px !important" />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="收货人姓名:" prop="receiver_name">
|
|
|
+ <el-input v-model="form.receiver_name" placeholder="请输入收货人姓名" style="width: 468px !important" />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="收货人手机:" prop="receiver_mobile">
|
|
|
+ <el-input v-model="form.receiver_mobile" placeholder="请输入收货人姓名" style="width: 468px !important" />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="收货人地址:" prop="receiver_address">
|
|
|
+ <el-input v-model="form.receiver_address" placeholder="请输入收货人地址" style="width: 468px !important" />
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="报告附件:" prop="filename">
|
|
|
+ <file-upload v-model="form.filename" :limit="1" :file-type="['xlsx','xls']" />
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<div class="common-dialog-footer">
|
|
@@ -65,41 +96,66 @@
|
|
|
</template>
|
|
|
<script setup lang="ts">
|
|
|
import { ref, reactive, toRefs } from 'vue';
|
|
|
-const emits = defineEmits(['close']);
|
|
|
+import { validatePhone } from '@/utils/validate';
|
|
|
+import { deepClone } from '@/utils';
|
|
|
+import { createWarehousingEntry } from '@/api/comprehensiveGuarantee/materialReserveManagement/InboundManagement';
|
|
|
+import { createOutboundOrder } from '@/api/comprehensiveGuarantee/materialReserveManagement/OutboundManagement';
|
|
|
+import { getWarehouseTree } from '@/api/comprehensiveGuarantee/materialReserveManagement/warehouseManagement';
|
|
|
+const { proxy } = getCurrentInstance() as ComponentInternalInstance;
|
|
|
+const emits = defineEmits(['close','confirm']);
|
|
|
const buttonLoading = ref(false);
|
|
|
const eventFormRef = ref('');
|
|
|
// 表单初始数据
|
|
|
const initFormData = {
|
|
|
- invoice_number: '', // 出库单号
|
|
|
- warehouse_number: '', // 仓库名称
|
|
|
- commodity_volume: '', // 出库单商品总体积
|
|
|
- commodity_weight: '0', // 出库单商品总重量
|
|
|
- shipped_volume: '', // 出库单发货总体积
|
|
|
- shipped_weight: '', // 出库单发货总重量
|
|
|
- commodity_number: '', // 出库单商品总数量
|
|
|
- delivery_time: '', // 出库单发货时间
|
|
|
- disaster_name: '', // 灾种名称
|
|
|
- organization_name: '', // 调运机构名称
|
|
|
- shipper_name: '', // 发货人姓名
|
|
|
- shipper_phone: '' // 发货人手机
|
|
|
+ outbound_number: '123', // 出库单号
|
|
|
+ warehouse_id: '应急仓库1', // 仓库名称
|
|
|
+ total_volume: '256', // 出库单商品总体积
|
|
|
+ total_weight: '0', // 出库单商品总重量
|
|
|
+ total_shipping_volume: '256', // 出库单发货总体积
|
|
|
+ total_shipping_weight: '256', // 出库单发货总重量
|
|
|
+ total_quantity: '128', // 出库单商品总数量
|
|
|
+ shipping_time: '2025-1-30', // 出库单发货时间
|
|
|
+ disaster_type: '名称', // 灾种名称
|
|
|
+ dispatching_agency: '机构名称', // 调运机构名称
|
|
|
+ shipper_name: '小名', // 发货人姓名
|
|
|
+ shipper_mobile: '13899703675', // 发货人手机
|
|
|
+ shipper_address: '茂名市', //发货人地址
|
|
|
+ shipper_remark: '这是备注', //备注
|
|
|
+ receiver_name: '姓名', //收货人姓名
|
|
|
+ receiver_mobile: '13899703675', //收货人手机
|
|
|
+ receiver_address: '地址', //收货人地址
|
|
|
+ filename: [], //附件
|
|
|
+
|
|
|
};
|
|
|
|
|
|
// 表单数据
|
|
|
const data = reactive({
|
|
|
form: { ...initFormData },
|
|
|
rules: {
|
|
|
- invoice_number: [{ required: true, message: '出库单号不能为空', trigger: 'blur' }],
|
|
|
- warehouse_number: [{ required: true, message: '仓库名称不能为空', trigger: 'blur' }],
|
|
|
- commodity_volume: [{ required: true, message: '出库单商品总体积不能为空', trigger: 'blur' }],
|
|
|
- commodity_weight: [{ required: true, message: '出库单商品总重量不能为空', trigger: 'blur' }],
|
|
|
- shipped_volume: [{ required: true, message: '出库单发货总体积不能为空', trigger: 'blur' }],
|
|
|
- shipped_weight: [{ required: true, message: '出库单发货总重量不能为空', trigger: 'blur' }],
|
|
|
- commodity_number: [{ required: true, message: '出库单商品总数量不能为空', trigger: 'blur' }],
|
|
|
- delivery_time: [{ required: true, message: '出库单发货时间不能为空', trigger: 'blur' }],
|
|
|
- disaster_name: [{ required: true, message: '灾种名称不能为空', trigger: 'blur' }],
|
|
|
- organization_name: [{ required: true, message: '调运机构名称不能为空', trigger: 'blur' }],
|
|
|
+ outbound_number: [{ required: true, message: '出库单号不能为空', trigger: 'blur' }],
|
|
|
+ warehouse_id: [{ required: true, message: '仓库名称不能为空', trigger: 'blur' }],
|
|
|
+ total_volume: [{ required: true, message: '出库单商品总体积不能为空', trigger: 'blur' }],
|
|
|
+ total_weight: [{ required: true, message: '出库单商品总重量不能为空', trigger: 'blur' }],
|
|
|
+ total_shipping_volume: [{ required: true, message: '出库单发货总体积不能为空', trigger: 'blur' }],
|
|
|
+ total_shipping_weight: [{ required: true, message: '出库单发货总重量不能为空', trigger: 'blur' }],
|
|
|
+ total_quantity: [{ required: true, message: '出库单商品总数量不能为空', trigger: 'blur' }],
|
|
|
+ shipping_time: [{ required: true, message: '出库单发货时间不能为空', trigger: 'blur' }],
|
|
|
+ disaster_type: [{ required: true, message: '灾种名称不能为空', trigger: 'blur' }],
|
|
|
+ dispatching_agency: [{ required: true, message: '调运机构名称不能为空', trigger: 'blur' }],
|
|
|
shipper_name: [{ required: true, message: '发货人姓名不能为空', trigger: 'blur' }],
|
|
|
- shipper_phone: [{ required: true, message: '发货人手机不能为空', trigger: 'blur' }]
|
|
|
+ shipper_mobile:[
|
|
|
+ { required: true, message: '发货人手机不能为空', trigger: 'blur' },
|
|
|
+ { validator: validatePhone, message: '请输入正确格式的联系电话', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ shipper_address: [{ required: true, message: '发货人姓名不能为空', trigger: 'blur' }],
|
|
|
+ shipper_remark: [{ required: true, message: '备注不能为空', trigger: 'blur' }],
|
|
|
+ receiver_name: [{ required: true, message: '收货人姓名不能为空', trigger: 'blur' }],
|
|
|
+ receiver_mobile:[
|
|
|
+ { required: true, message: '收货人手机不能为空', trigger: 'blur' },
|
|
|
+ { validator: validatePhone, message: '请输入正确格式的联系电话', trigger: 'blur' }
|
|
|
+ ],
|
|
|
+ receiver_address: [{ required: true, message: '收货人地址不能为空', trigger: 'blur' }],
|
|
|
+ filename: [{ required: true, message: '附件不能为空', trigger: 'blur' }],
|
|
|
}
|
|
|
});
|
|
|
|
|
@@ -108,10 +164,30 @@ const { form, rules } = toRefs(data);
|
|
|
const closeDialog = () => {
|
|
|
emits('close');
|
|
|
};
|
|
|
+
|
|
|
+const warehouseName = ref();
|
|
|
+const getWarehouseName = () => {
|
|
|
+ getWarehouseTree().then((res) => {
|
|
|
+ warehouseName.value = res.data;
|
|
|
+ })
|
|
|
+}
|
|
|
+const defaultProps = reactive({
|
|
|
+ children:'children',
|
|
|
+ label:'label',
|
|
|
+ disabled:(node) => {
|
|
|
+ return node.isWarehouse && !node.children;
|
|
|
+ }
|
|
|
+})
|
|
|
const submitForm = async (formEl) => {
|
|
|
if (!formEl) return;
|
|
|
await formEl.validate((valid, fields) => {
|
|
|
if (valid) {
|
|
|
+ const temp = deepClone(form.value);
|
|
|
+ temp.filename = form.value.filename[0].url;
|
|
|
+ createOutboundOrder(temp).then(() => {
|
|
|
+ proxy.$modal.msgSuccess('新增成功');
|
|
|
+ emits('confirm');
|
|
|
+ })
|
|
|
} else {
|
|
|
nextTick(() => {
|
|
|
let isError = document.getElementsByClassName('is-error');
|
|
@@ -128,6 +204,9 @@ const submitForm = async (formEl) => {
|
|
|
}
|
|
|
});
|
|
|
};
|
|
|
+onMounted(() => {
|
|
|
+ getWarehouseName();
|
|
|
+});
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|