增加单位

This commit is contained in:
砂糖
2025-07-21 18:02:26 +08:00
parent 4dc4365d5f
commit dda806f6cd
5 changed files with 99 additions and 18 deletions

View File

@@ -48,7 +48,6 @@ export default {
}, },
selected(val) { selected(val) {
this.$emit('input', val); this.$emit('input', val);
this.$emit('change', val);
} }
}, },
created() { created() {
@@ -61,7 +60,9 @@ export default {
}); });
}, },
onChange(val) { onChange(val) {
this.$emit('change', val); // 通过val找到item
const product = this.productOptions.find(p => p.productId === val);
this.$emit('change', product);
} }
} }
}; };

View File

@@ -1,5 +1,21 @@
<template> <template>
<div> <div>
<!-- 订单信息展示区域 -->
<el-descriptions title="订单信息" class="margin-top mb8" :column="4" size="medium" border v-if="orderInfo">
<el-descriptions-item>
<template slot="label">
订单编号
</template>
{{ orderInfo.orderCode }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
订单状态
</template>
<dict-tag :options="dict.type.order_status" :value="orderInfo.orderStatus"/>
</el-descriptions-item>
</el-descriptions>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
@@ -7,6 +23,7 @@
plain plain
icon="el-icon-plus" icon="el-icon-plus"
size="mini" size="mini"
:disabled="!canEdit"
@click="handleAdd" @click="handleAdd"
>新增</el-button> >新增</el-button>
</el-col> </el-col>
@@ -16,7 +33,7 @@
plain plain
icon="el-icon-edit" icon="el-icon-edit"
size="mini" size="mini"
:disabled="single" :disabled="single || !canEdit"
@click="handleUpdate" @click="handleUpdate"
>修改</el-button> >修改</el-button>
</el-col> </el-col>
@@ -26,7 +43,7 @@
plain plain
icon="el-icon-delete" icon="el-icon-delete"
size="mini" size="mini"
:disabled="multiple" :disabled="multiple || !canEdit"
@click="handleDelete" @click="handleDelete"
>删除</el-button> >删除</el-button>
</el-col> </el-col>
@@ -42,10 +59,10 @@
</el-row> </el-row>
<el-table v-loading="loading" :data="orderDetailList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="orderDetailList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" /> <el-table-column type="selection" width="55" align="center" :selectable="canEdit" />
<!-- <el-table-column label="明细ID" align="center" prop="detailId" v-if="false"/> <!-- <el-table-column label="明细ID" align="center" prop="detailId" v-if="false"/>
<el-table-column label="订单ID" align="center" prop="orderId" /> --> <el-table-column label="订单ID" align="center" prop="orderId" /> -->
<el-table-column label="原材料" align="center"> <el-table-column label="产品" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
{{ scope.row.productName }}<span v-if="scope.row.productCode">({{ scope.row.productCode }})</span> {{ scope.row.productName }}<span v-if="scope.row.productCode">({{ scope.row.productCode }})</span>
</template> </template>
@@ -59,12 +76,14 @@
size="mini" size="mini"
type="text" type="text"
icon="el-icon-edit" icon="el-icon-edit"
:disabled="!canEdit"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
>修改</el-button> >修改</el-button>
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-delete" icon="el-icon-delete"
:disabled="!canEdit"
@click="handleDelete(scope.row)" @click="handleDelete(scope.row)"
>删除</el-button> >删除</el-button>
</template> </template>
@@ -85,16 +104,14 @@
<!-- <el-form-item label="订单ID" prop="orderId"> <!-- <el-form-item label="订单ID" prop="orderId">
<el-input v-model="form.orderId" placeholder="请输入订单ID" :disabled="true" /> <el-input v-model="form.orderId" placeholder="请输入订单ID" :disabled="true" />
</el-form-item> --> </el-form-item> -->
<el-table-column label="产品" align="center"> <el-form-item label="产品" prop="productId">
<template slot-scope="scope"> <ProductSelect v-model="form.productId" placeholder="请选择产品" @change="onProductChange" />
{{ scope.row.productName }}<span v-if="scope.row.productCode">({{ scope.row.productCode }})</span> </el-form-item>
</template>
</el-table-column>
<el-form-item label="产品数量" prop="quantity"> <el-form-item label="产品数量" prop="quantity">
<el-input v-model="form.quantity" placeholder="请输入产品数量" /> <el-input v-model="form.quantity" placeholder="请输入产品数量" />
</el-form-item> </el-form-item>
<el-form-item label="单位" prop="unit"> <el-form-item label="单位" prop="unit">
<el-input v-model="form.unit" placeholder="请输入单位" /> <el-input v-model="form.unit" placeholder="单位" :disabled="true" />
</el-form-item> </el-form-item>
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
<el-input v-model="form.remark" placeholder="请输入备注" /> <el-input v-model="form.remark" placeholder="请输入备注" />
@@ -110,10 +127,13 @@
<script> <script>
import { listOrderDetail, getOrderDetail, delOrderDetail, addOrderDetail, updateOrderDetail } from "@/api/wms/orderDetail"; import { listOrderDetail, getOrderDetail, delOrderDetail, addOrderDetail, updateOrderDetail } from "@/api/wms/orderDetail";
import { getOrder } from "@/api/wms/order";
import ProductSelect from '@/components/KLPService/ProductSelect'; import ProductSelect from '@/components/KLPService/ProductSelect';
import { EOrderStatus } from "@/utils/enums";
export default { export default {
name: "OrderDetailPanel", name: "OrderDetailPanel",
dicts: ['order_status'],
props: { props: {
orderId: { orderId: {
type: [String, Number], type: [String, Number],
@@ -129,8 +149,11 @@ export default {
multiple: true, multiple: true,
total: 0, total: 0,
orderDetailList: [], orderDetailList: [],
orderInfo: null, // 订单信息
title: "", title: "",
open: false, open: false,
// 订单状态枚举
EOrderStatus,
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
@@ -150,7 +173,8 @@ export default {
{ required: true, message: "产品ID不能为空", trigger: "blur" } { required: true, message: "产品ID不能为空", trigger: "blur" }
], ],
quantity: [ quantity: [
{ required: true, message: "产品数量不能为空", trigger: "blur" } { required: true, message: "产品数量不能为空", trigger: "blur" },
{ pattern: /^[1-9]\d*$/, message: "产品数量必须为正整数", trigger: "blur" }
], ],
unit: [ unit: [
{ required: true, message: "单位不能为空", trigger: "blur" } { required: true, message: "单位不能为空", trigger: "blur" }
@@ -158,17 +182,35 @@ export default {
} }
}; };
}, },
computed: {
// 是否可以编辑(订单状态为新建时才能编辑)
canEdit() {
return this.orderInfo && this.orderInfo.orderStatus === EOrderStatus.NEW;
}
},
watch: { watch: {
orderId(newVal) { orderId(newVal) {
this.queryParams.orderId = newVal; this.queryParams.orderId = newVal;
this.form.orderId = newVal; this.form.orderId = newVal;
this.getOrderInfo();
this.getList(); this.getList();
} }
}, },
created() { created() {
this.getOrderInfo();
this.getList(); this.getList();
}, },
methods: { methods: {
// 获取订单信息
getOrderInfo() {
if (this.orderId) {
getOrder(this.orderId).then(response => {
this.orderInfo = response.data;
}).catch(() => {
this.orderInfo = null;
});
}
},
getList() { getList() {
this.loading = true; this.loading = true;
listOrderDetail(this.queryParams).then(response => { listOrderDetail(this.queryParams).then(response => {
@@ -203,11 +245,19 @@ export default {
this.multiple = !selection.length this.multiple = !selection.length
}, },
handleAdd() { handleAdd() {
if (!this.canEdit) {
this.$modal && this.$modal.msgError("当前订单状态不允许新增明细");
return;
}
this.reset(); this.reset();
this.open = true; this.open = true;
this.title = "添加订单明细"; this.title = "添加订单明细";
}, },
handleUpdate(row) { handleUpdate(row) {
if (!this.canEdit) {
this.$modal && this.$modal.msgError("当前订单状态不允许修改明细");
return;
}
this.loading = true; this.loading = true;
this.reset(); this.reset();
const detailId = row.detailId || this.ids const detailId = row.detailId || this.ids
@@ -218,6 +268,13 @@ export default {
this.title = "修改订单明细"; this.title = "修改订单明细";
}); });
}, },
onProductChange(product) {
if (product) {
this.form.unit = product.unit;
} else {
this.form.unit = undefined;
}
},
submitForm() { submitForm() {
this.$refs["form"].validate(valid => { this.$refs["form"].validate(valid => {
if (valid) { if (valid) {
@@ -243,6 +300,10 @@ export default {
}); });
}, },
handleDelete(row) { handleDelete(row) {
if (!this.canEdit) {
this.$modal && this.$modal.msgError("当前订单状态不允许删除明细");
return;
}
const detailIds = row.detailId || this.ids; const detailIds = row.detailId || this.ids;
this.$modal && this.$modal.confirm('是否确认删除订单明细编号为"' + detailIds + '"的数据项?').then(() => { this.$modal && this.$modal.confirm('是否确认删除订单明细编号为"' + detailIds + '"的数据项?').then(() => {
this.loading = true; this.loading = true;
@@ -267,3 +328,6 @@ export default {
} }
}; };
</script> </script>
<style scoped>
</style>

View File

@@ -127,6 +127,7 @@
<el-table-column label="厚度" align="center" prop="thickness" /> <el-table-column label="厚度" align="center" prop="thickness" />
<el-table-column label="宽度" align="center" prop="width" /> <el-table-column label="宽度" align="center" prop="width" />
<el-table-column label="内径" align="center" prop="innerDiameter" /> <el-table-column label="内径" align="center" prop="innerDiameter" />
<el-table-column label="计量单位" align="center" prop="unit" />
<el-table-column label="是否启用" align="center" prop="isEnabled"> <el-table-column label="是否启用" align="center" prop="isEnabled">
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag :options="dict.type.common_swicth" :value="scope.row.isEnabled"/> <dict-tag :options="dict.type.common_swicth" :value="scope.row.isEnabled"/>
@@ -180,6 +181,11 @@
<el-input v-model="form.owner" placeholder="请输入负责人" /> <el-input v-model="form.owner" placeholder="请输入负责人" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="12">
<el-form-item label="计量单位" prop="unit">
<el-input v-model="form.unit" placeholder="请输入计量单位" />
</el-form-item>
</el-col>
</el-row> </el-row>
<el-divider>分类信息</el-divider> <el-divider>分类信息</el-divider>
@@ -365,6 +371,7 @@ export default {
width: undefined, width: undefined,
innerDiameter: undefined, innerDiameter: undefined,
isEnabled: undefined, isEnabled: undefined,
unit: undefined,
delFlag: undefined, delFlag: undefined,
createTime: undefined, createTime: undefined,
createBy: undefined, createBy: undefined,

View File

@@ -116,6 +116,7 @@
<el-table-column label="主键ID" align="center" prop="rawMaterialId" v-if="true"/> <el-table-column label="主键ID" align="center" prop="rawMaterialId" v-if="true"/>
<el-table-column label="原材料编号" align="center" prop="rawMaterialCode" /> <el-table-column label="原材料编号" align="center" prop="rawMaterialCode" />
<el-table-column label="原材料名称" align="center" prop="rawMaterialName" /> <el-table-column label="原材料名称" align="center" prop="rawMaterialName" />
<el-table-column label="计量单位" align="center" prop="unit" />
<el-table-column label="钢种/牌号" align="center" prop="steelGrade" /> <el-table-column label="钢种/牌号" align="center" prop="steelGrade" />
<el-table-column label="目标冷轧牌号" align="center" prop="targetColdGrade" /> <el-table-column label="目标冷轧牌号" align="center" prop="targetColdGrade" />
<el-table-column label="基础材质分类" align="center"> <el-table-column label="基础材质分类" align="center">
@@ -170,6 +171,9 @@
<el-form-item label="原材料名称" prop="rawMaterialName"> <el-form-item label="原材料名称" prop="rawMaterialName">
<el-input v-model="form.rawMaterialName" placeholder="请输入原材料名称" /> <el-input v-model="form.rawMaterialName" placeholder="请输入原材料名称" />
</el-form-item> </el-form-item>
<el-form-item label="计量单位" prop="unit">
<el-input v-model="form.unit" placeholder="请输入计量单位" />
</el-form-item>
<el-form-item label="钢种/牌号" prop="steelGrade"> <el-form-item label="钢种/牌号" prop="steelGrade">
<el-input v-model="form.steelGrade" placeholder="请输入钢种/牌号" /> <el-input v-model="form.steelGrade" placeholder="请输入钢种/牌号" />
</el-form-item> </el-form-item>
@@ -339,6 +343,7 @@ export default {
headTailCutFlag: undefined, headTailCutFlag: undefined,
inspectionResult: undefined, inspectionResult: undefined,
isEnabled: undefined, isEnabled: undefined,
unit: undefined,
}, },
// 表单参数 // 表单参数
form: {}, form: {},
@@ -392,6 +397,9 @@ export default {
isEnabled: [ isEnabled: [
{ required: true, message: "是否启用不能为空", trigger: "blur" } { required: true, message: "是否启用不能为空", trigger: "blur" }
], ],
unit: [
{ required: true, message: "计量单位不能为空", trigger: "blur" }
],
}, },
paramDialogVisible: false, paramDialogVisible: false,
paramRow: null, paramRow: null,
@@ -446,7 +454,8 @@ export default {
createTime: undefined, createTime: undefined,
createBy: undefined, createBy: undefined,
updateTime: undefined, updateTime: undefined,
updateBy: undefined updateBy: undefined,
unit: undefined,
}; };
this.resetForm("form"); this.resetForm("form");
}, },

View File

@@ -35,7 +35,7 @@
</el-form> </el-form>
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <!-- <el-col :span="1.5">
<el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
v-hasPermi="['wms:stock:add']">新增</el-button> v-hasPermi="['wms:stock:add']">新增</el-button>
</el-col> </el-col>
@@ -46,7 +46,7 @@
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
v-hasPermi="['wms:stock:remove']">删除</el-button> v-hasPermi="['wms:stock:remove']">删除</el-button>
</el-col> </el-col> -->
<el-col :span="1.5"> <el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport" <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['wms:stock:export']">导出</el-button> v-hasPermi="['wms:stock:export']">导出</el-button>
@@ -68,14 +68,14 @@
<el-table-column label="单位" align="center" prop="unit" /> <el-table-column label="单位" align="center" prop="unit" />
<el-table-column label="批次号" align="center" prop="batchNo" /> <el-table-column label="批次号" align="center" prop="batchNo" />
<el-table-column label="备注" align="center" prop="remark" /> <el-table-column label="备注" align="center" prop="remark" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <!-- <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-hasPermi="['wms:stock:edit']">修改</el-button> v-hasPermi="['wms:stock:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-hasPermi="['wms:stock:remove']">删除</el-button> v-hasPermi="['wms:stock:remove']">删除</el-button>
</template> </template>
</el-table-column> </el-table-column> -->
</el-table> </el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"