|
|
@@ -192,8 +192,8 @@
|
|
|
<el-table-column align="left" label="定额门幅" prop="定额门幅" width="90" />
|
|
|
<el-table-column align="left" label="实际门幅" prop="实际门幅" width="90"/>
|
|
|
<el-table-column align="left" label="出库数量" prop="出库数量" width="90"/>
|
|
|
- <el-table-column align="left" label="累计出库数量" prop="入仓总数量" width="110"/>
|
|
|
- <el-table-column align="left" label="库存数量" prop="库存数量" width="90"/>
|
|
|
+ <!-- <el-table-column align="left" label="累计出库数量" prop="入仓总数量" width="110"/>
|
|
|
+ <el-table-column align="left" label="库存数量" prop="库存数量" width="90"/> -->
|
|
|
<!-- <el-table-column align="left" label="领用数量" prop="领用数量" width="90"/> -->
|
|
|
<el-table-column align="left" label="单位" prop="单位" width="60"/>
|
|
|
<el-table-column align="left" label="关联订单" prop="关联订单" width="300"/>
|
|
|
@@ -382,83 +382,128 @@
|
|
|
});
|
|
|
//表格行点击
|
|
|
const tableRowClick = async (row) => {
|
|
|
- setTimeout(() => {
|
|
|
- const inputElement = document.getElementById('rksl');
|
|
|
- if (inputElement) {
|
|
|
- inputElement.focus();
|
|
|
- }
|
|
|
- }, 100);//100毫秒
|
|
|
-
|
|
|
- add_searchInfo.value = row.订单编号;
|
|
|
- _orderid.value = row.订单编号;
|
|
|
- _kh.value = row.生产款号;
|
|
|
-
|
|
|
- ddhformData.glbh = row['关联编号'];
|
|
|
- ddhformData.ddh = row['订单编号'];
|
|
|
- ddhformData.kh = row['客户编号'];
|
|
|
- ddhformData.sckh = row['生产款号'];
|
|
|
- ddhformData.wlbh = row['物料编码'];
|
|
|
- ddhformData.ks = row['款式'];
|
|
|
-
|
|
|
- console.log(row.value);
|
|
|
- console.log(row.关联编号);
|
|
|
- console.log(row.订单编号);
|
|
|
- console.log(row.物料编码);
|
|
|
-
|
|
|
- // 获取详情数据
|
|
|
- const Detailres = await getInputDetail({
|
|
|
- 关联编号: row.关联编号,
|
|
|
- 订单编号: row.订单编号,
|
|
|
- 物料编码: row.物料编码
|
|
|
- });
|
|
|
-
|
|
|
- console.log(Detailres);
|
|
|
-
|
|
|
- // 将 Detailres.data 中的数据赋值给 mianliaotabData
|
|
|
- if (Detailres.code === 0 && Detailres.data) {
|
|
|
- mianliaotabData.value = {
|
|
|
- 订单编号: row.订单编号,
|
|
|
- 客户编号: row.客户编号,
|
|
|
- 生产款号: row.生产款号,
|
|
|
- 款式: row.款式,
|
|
|
- 物料编号: Detailres.data.BOM_物料编码,
|
|
|
- 物料名称: Detailres.data.BOM_物料名称,
|
|
|
- 关联号: Detailres.data.关联编号,
|
|
|
- 批次号: Detailres.data.批次号,
|
|
|
- 计划用料: Detailres.data.计划用料,
|
|
|
- 计划门幅: Detailres.data.BOM_计划门幅,
|
|
|
- 定额用料: Detailres.data.定额用料,
|
|
|
- 定额门幅: Detailres.data.BOM_定额门幅,
|
|
|
- 出库数量: Detailres.data.出库数量,
|
|
|
- 入仓总数量: Detailres.data.入仓总量?Detailres.data.入仓总量:0,
|
|
|
- 库存数量: Detailres.data.库存数量?Detailres.data.库存数量:0,
|
|
|
- 领用数量: Detailres.data.领用数量,
|
|
|
- 关联订单: Detailres.data.关联订单,
|
|
|
- 颜色: Detailres.data.BOM_颜色,
|
|
|
- 单位:'米',
|
|
|
- 实际门幅:Detailres.data.实际门幅
|
|
|
- };
|
|
|
- } else {
|
|
|
- console.error('获取详情数据失败:', Detailres.msg);
|
|
|
- }
|
|
|
- };
|
|
|
+ // 延迟 100 毫秒后聚焦输入框
|
|
|
+ setTimeout(() => {
|
|
|
+ const inputElement = document.getElementById('rksl');
|
|
|
+ if (inputElement) {
|
|
|
+ inputElement.focus();
|
|
|
+ }
|
|
|
+ }, 100);
|
|
|
+
|
|
|
+ // 更新表单数据
|
|
|
+ add_searchInfo.value = row.订单编号;
|
|
|
+ _orderid.value = row.订单编号;
|
|
|
+ _kh.value = row.生产款号;
|
|
|
+
|
|
|
+ ddhformData.glbh = row['关联编号'];
|
|
|
+ ddhformData.ddh = row['订单编号'];
|
|
|
+ ddhformData.kh = row['客户编号'];
|
|
|
+ ddhformData.sckh = row['生产款号'];
|
|
|
+ ddhformData.wlbh = row['物料编码'];
|
|
|
+ ddhformData.ks = row['款式'];
|
|
|
+
|
|
|
+ console.log(row.value);
|
|
|
+ console.log(row.关联编号);
|
|
|
+ console.log(row.订单编号);
|
|
|
+ console.log(row.物料编码);
|
|
|
+
|
|
|
+ // 获取详情数据
|
|
|
+ const Detailres = await getInputDetail({
|
|
|
+ 关联编号: row.关联编号,
|
|
|
+ 订单编号: row.订单编号,
|
|
|
+ 物料编码: row.物料编码,
|
|
|
+ });
|
|
|
+
|
|
|
+ console.log(Detailres);
|
|
|
+
|
|
|
+ // 如果获取详情数据成功
|
|
|
+ if (Detailres.code === 0 && Detailres.data) {
|
|
|
+ // 初始化 mianliaotabData
|
|
|
+ mianliaotabData.value = {
|
|
|
+ 订单编号: row.订单编号,
|
|
|
+ 客户编号: row.客户编号,
|
|
|
+ 生产款号: row.生产款号,
|
|
|
+ 款式: row.款式,
|
|
|
+ 物料编号: Detailres.data.BOM_物料编码,
|
|
|
+ 物料名称: Detailres.data.BOM_物料名称,
|
|
|
+ 关联号: Detailres.data.关联编号,
|
|
|
+ 批次号: Detailres.data.批次号,
|
|
|
+ 计划用料: Detailres.data.计划用料,
|
|
|
+ 计划门幅: Detailres.data.BOM_计划门幅,
|
|
|
+ 定额用料: Detailres.data.定额用料,
|
|
|
+ 定额门幅: Detailres.data.BOM_定额门幅,
|
|
|
+ 出库数量: Detailres.data.出库数量,
|
|
|
+ 入仓总数量: Detailres.data.领用数量 ? Detailres.data.领用数量 : 0,
|
|
|
+ 库存数量: Detailres.data.库存数量 ? Detailres.data.库存数量 : 0,
|
|
|
+ 关联订单: Detailres.data.关联订单,
|
|
|
+ 颜色: Detailres.data.BOM_颜色,
|
|
|
+ 单位: '米',
|
|
|
+ 实际门幅: Detailres.data.实际门幅,
|
|
|
+ };
|
|
|
+
|
|
|
+ // 计算 danjutableData 中相同物料名称和颜色的出库数量总和
|
|
|
+ const { 物料名称, 颜色 } = mianliaotabData.value;
|
|
|
+ const totalOutbound = danjutableData.value
|
|
|
+ .filter(
|
|
|
+ (item) =>
|
|
|
+ item.物料名称 === 物料名称 && item.颜色 === 颜色
|
|
|
+ )
|
|
|
+ .reduce((sum, item) => sum + Number(item.出库数量), 0);
|
|
|
+
|
|
|
+ // 更新 mianliaotabData 的库存数量
|
|
|
+ mianliaotabData.value.库存数量 -= totalOutbound;
|
|
|
+ } else {
|
|
|
+ console.error('获取详情数据失败:', Detailres.msg);
|
|
|
+ }
|
|
|
+};
|
|
|
const danjutableData = ref([]); // 使用 ref 定义响应式数组
|
|
|
|
|
|
//添加按钮
|
|
|
const dj_Dialog = () => {
|
|
|
- if (mianliaotabData.value) {
|
|
|
- // 判断实际门幅是否为空
|
|
|
- const 实际门幅 = mianliaotabData.value.实际门幅 || mianliaotabData.value.定额门幅;
|
|
|
-
|
|
|
- // 将 mianliaotabData 的数据添加到 danjutableData
|
|
|
- danjutableData.value.push({
|
|
|
- ...mianliaotabData.value, // 展开 mianliaotabData 的所有属性
|
|
|
- 实际门幅, // 使用计算后的实际门幅
|
|
|
- });
|
|
|
- } else {
|
|
|
- console.error('mianliaotabData 为空,无法添加到 danjutableData');
|
|
|
- }
|
|
|
- };
|
|
|
+ // 确保 mianliaotabData 和 mianliaotabData.value 存在
|
|
|
+ if (!mianliaotabData || !mianliaotabData.value) {
|
|
|
+ console.error('mianliaotabData 为空,无法添加到 danjutableData');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 检查出库数量是否为空或无效
|
|
|
+ if (
|
|
|
+ mianliaotabData.value.出库数量 === '' ||
|
|
|
+ mianliaotabData.value.出库数量 === undefined ||
|
|
|
+ mianliaotabData.value.出库数量 === '0'
|
|
|
+ ) {
|
|
|
+ ElMessage({ type: 'warning', message: '请填写出库数量' });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取 mianliaotabData 的物料名称和颜色
|
|
|
+ const { 物料名称, 颜色, 出库数量, 库存数量 } = mianliaotabData.value;
|
|
|
+
|
|
|
+ // 计算 danjutableData 中相同物料名称和颜色的出库数量总和
|
|
|
+ const totalOutbound = danjutableData.value
|
|
|
+ .filter(
|
|
|
+ (item) =>
|
|
|
+ item.物料名称 === 物料名称 && item.颜色 === 颜色
|
|
|
+ )
|
|
|
+ .reduce((sum, item) => sum + Number(item.出库数量), 0);
|
|
|
+
|
|
|
+ // 计算总出库数量(danjutableData 中的总和 + mianliaotabData 中的出库数量)
|
|
|
+ const totalOutboundQuantity = totalOutbound + Number(出库数量);
|
|
|
+
|
|
|
+ // 判断总出库数量是否大于库存数量
|
|
|
+ if (totalOutboundQuantity > 库存数量) {
|
|
|
+ ElMessage({ type: 'warning', message: '出库数量不能大于库存数量' });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 如果通过检查,将数据添加到 danjutableData
|
|
|
+ danjutableData.value.push({
|
|
|
+ ...mianliaotabData.value,
|
|
|
+ 实际门幅: mianliaotabData.value.实际门幅 || mianliaotabData.value.定额门幅,
|
|
|
+ });
|
|
|
+ mianliaotabData.value.出库数量 = '';
|
|
|
+ mianliaotabData.value.库存数量 = mianliaotabData.value.库存数量 - Number(出库数量);
|
|
|
+};
|
|
|
|
|
|
//操作移除按钮
|
|
|
const deleteRow = (index) => {
|