|
@@ -57,38 +57,48 @@
|
|
|
</el-form>
|
|
|
|
|
|
<el-row :gutter="10" class="mb8">
|
|
|
+<!-- <el-col :span="1.5">-->
|
|
|
+<!-- <el-button-->
|
|
|
+<!-- type="primary"-->
|
|
|
+<!-- plain-->
|
|
|
+<!-- icon="el-icon-plus"-->
|
|
|
+<!-- size="mini"-->
|
|
|
+<!-- @click="handleAdd"-->
|
|
|
+<!-- v-hasPermi="['indoor:inventory:add']"-->
|
|
|
+<!-- >新增</el-button>-->
|
|
|
+<!-- </el-col>-->
|
|
|
<el-col :span="1.5">
|
|
|
<el-button
|
|
|
type="primary"
|
|
|
plain
|
|
|
icon="el-icon-plus"
|
|
|
size="mini"
|
|
|
- @click="handleAdd"
|
|
|
- v-hasPermi="['indoor:inventory:add']"
|
|
|
- >新增</el-button>
|
|
|
- </el-col>
|
|
|
- <el-col :span="1.5">
|
|
|
- <el-button
|
|
|
- type="success"
|
|
|
- plain
|
|
|
- icon="el-icon-edit"
|
|
|
- size="mini"
|
|
|
- :disabled="single"
|
|
|
- @click="handleUpdate"
|
|
|
- v-hasPermi="['indoor:inventory:edit']"
|
|
|
- >修改</el-button>
|
|
|
- </el-col>
|
|
|
- <el-col :span="1.5">
|
|
|
- <el-button
|
|
|
- type="danger"
|
|
|
- plain
|
|
|
- icon="el-icon-delete"
|
|
|
- size="mini"
|
|
|
- :disabled="multiple"
|
|
|
- @click="handleDelete"
|
|
|
- v-hasPermi="['indoor:inventory:remove']"
|
|
|
- >删除</el-button>
|
|
|
+ @click="handleAddLc"
|
|
|
+ v-hasPermi="['indoor:order:add']"
|
|
|
+ >励磁入库</el-button>
|
|
|
</el-col>
|
|
|
+<!-- <el-col :span="1.5">-->
|
|
|
+<!-- <el-button-->
|
|
|
+<!-- type="success"-->
|
|
|
+<!-- plain-->
|
|
|
+<!-- icon="el-icon-edit"-->
|
|
|
+<!-- size="mini"-->
|
|
|
+<!-- :disabled="single"-->
|
|
|
+<!-- @click="handleUpdatess"-->
|
|
|
+<!-- v-hasPermi="['indoor:inventory:edit']"-->
|
|
|
+<!-- >修改</el-button>-->
|
|
|
+<!-- </el-col>-->
|
|
|
+<!-- <el-col :span="1.5">-->
|
|
|
+<!-- <el-button-->
|
|
|
+<!-- type="danger"-->
|
|
|
+<!-- plain-->
|
|
|
+<!-- icon="el-icon-delete"-->
|
|
|
+<!-- size="mini"-->
|
|
|
+<!-- :disabled="multiple"-->
|
|
|
+<!-- @click="handleDelete"-->
|
|
|
+<!-- v-hasPermi="['indoor:inventory:remove']"-->
|
|
|
+<!-- >删除</el-button>-->
|
|
|
+<!-- </el-col>-->
|
|
|
<el-col :span="1.5">
|
|
|
<el-button
|
|
|
type="warning"
|
|
@@ -104,15 +114,15 @@
|
|
|
|
|
|
<el-table v-loading="loading" :data="inventoryList" style="margin-top: 20px" @selection-change="handleSelectionChange">
|
|
|
<el-table-column type="selection" width="55" align="center" />
|
|
|
- <el-table-column label="主键ID" align="center" prop="id" />
|
|
|
+<!-- <el-table-column label="主键ID" align="center" prop="id" />-->
|
|
|
<el-table-column label="物料编码" align="center" prop="materialCode" />
|
|
|
<el-table-column label="物料名称" align="center" prop="materialName" />
|
|
|
<el-table-column label="型号" align="center" prop="model" />
|
|
|
<el-table-column label="规格" align="center" prop="specification" />
|
|
|
<el-table-column label="库存数量" align="center" prop="stockQuantity" />
|
|
|
<el-table-column label="备注" align="center" prop="remark" />
|
|
|
- <el-table-column label="操作人" align="center" prop="createBy" />
|
|
|
- <el-table-column label="修改人" align="center" prop="updateBy" />
|
|
|
+<!-- <el-table-column label="操作人" align="center" prop="createBy" />-->
|
|
|
+<!-- <el-table-column label="修改人" align="center" prop="updateBy" />-->
|
|
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
|
|
<template slot-scope="scope">
|
|
|
<el-dropdown @command="(command)=>{handleCommand(command, scope.row)}">
|
|
@@ -121,7 +131,8 @@
|
|
|
</el-button>
|
|
|
<el-dropdown-menu slot="dropdown">
|
|
|
<el-dropdown-item icon="el-icon-edit" command="handleUpdate">修改</el-dropdown-item>
|
|
|
- <el-dropdown-item icon="el-icon-delete" command="handleDelete">删除</el-dropdown-item>
|
|
|
+ <el-dropdown-item icon="el-icon-edit" command="handleAddLcout">出库</el-dropdown-item>
|
|
|
+<!-- <el-dropdown-item icon="el-icon-delete" command="handleDelete">删除</el-dropdown-item>-->
|
|
|
</el-dropdown-menu>
|
|
|
</el-dropdown>
|
|
|
</template>
|
|
@@ -135,21 +146,173 @@
|
|
|
:limit.sync="queryParams.pageSize"
|
|
|
@pagination="getList"
|
|
|
/>
|
|
|
+ <!-- 添加或修改半成品入库单主对话框 -->
|
|
|
+ <el-dialog
|
|
|
+ :title="title"
|
|
|
+ :visible.sync="openLc"
|
|
|
+ width="1200px"
|
|
|
+ append-to-body
|
|
|
+ :close-on-click-modal="false"
|
|
|
+ class="custom-dialog">
|
|
|
+ <el-form ref="form" :model="form" :rules="rules" label-width="100px" size="small">
|
|
|
+ <!-- 主表信息 -->
|
|
|
+ <el-card class="box-card" shadow="never" v-show="false">
|
|
|
+ <div slot="header" class="card-header">
|
|
|
+ <div class="header-left">
|
|
|
+ <i class="el-icon-document"></i>
|
|
|
+ <span>基本信息</span>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-row :gutter="24">
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="入库单号" prop="orderNo">
|
|
|
+ <el-input v-model="form.orderNo" :disabled="true" class="custom-input" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="入库时间" prop="createTime">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="form.createTime"
|
|
|
+ type="datetime"
|
|
|
+ :disabled="true"
|
|
|
+ value-format="yyyy-MM-dd HH:mm:ss"
|
|
|
+ placeholder="选择入库时间"
|
|
|
+ class="custom-date-picker">
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="8">
|
|
|
+ <el-form-item label="创建人" prop="createBy">
|
|
|
+ <el-input v-model="form.createBy" :disabled="true" class="custom-input" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item label="备注" prop="remark">
|
|
|
+ <el-input
|
|
|
+ v-model="form.remark"
|
|
|
+ type="textarea"
|
|
|
+ :rows="2"
|
|
|
+ placeholder="请输入备注信息"
|
|
|
+ class="custom-textarea" />
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </el-card>
|
|
|
|
|
|
- <!-- 添加或修改半成品库存对话框 -->
|
|
|
- <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
|
|
+ <!-- 明细信息 -->
|
|
|
+ <el-card class="box-card detail-card" shadow="never">
|
|
|
+ <div slot="header" class="card-header">
|
|
|
+ <div class="header-left">
|
|
|
+ <i class="el-icon-tickets"></i>
|
|
|
+ <span>明细信息</span>
|
|
|
+ </div>
|
|
|
+ <div class="header-right">
|
|
|
+ <el-button
|
|
|
+ type="primary"
|
|
|
+ icon="el-icon-plus"
|
|
|
+ size="mini"
|
|
|
+ plain
|
|
|
+ @click="handleAddDetail">添加明细</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <el-table :data="form.detailList" border class="detail-table" size="small" :header-cell-style="{background:'#F5F7FA',color:'#606266'}">
|
|
|
+ <el-table-column type="index" label="序号" width="55" align="center" />
|
|
|
+ <el-table-column label="物料类型" prop="excitationType" min-width="120">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-select
|
|
|
+ v-model="scope.row.excitationType"
|
|
|
+ placeholder="请选择类型"
|
|
|
+ @change="(val) => handleExcitationTypeChange(val, scope.$index)"
|
|
|
+ class="custom-select">
|
|
|
+ <el-option label="励磁定子" value="励磁定子"></el-option>
|
|
|
+ <el-option label="励磁转子" value="励磁转子"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="物料编码" prop="materialCode" min-width="180">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-select
|
|
|
+ v-model="scope.row.materialCode"
|
|
|
+ placeholder="请选择物料"
|
|
|
+ filterable
|
|
|
+ remote
|
|
|
+ reserve-keyword
|
|
|
+ :remote-method="handleMaterialSearch"
|
|
|
+ :loading="materialLoading"
|
|
|
+ @change="(val) => handleMaterialChange(val, scope.$index)"
|
|
|
+ value-key="id"
|
|
|
+ class="custom-select">
|
|
|
+ <el-option
|
|
|
+ v-for="item in materialOptions"
|
|
|
+ :key="item.code"
|
|
|
+ :label="item.code + ' - ' + item.model"
|
|
|
+ :value="item.code">
|
|
|
+ <div>
|
|
|
+ <span style="float: left">{{ item.code }}</span>
|
|
|
+ <span style="float: right; color: #8492a6; font-size: 13px">{{ item.model }}</span>
|
|
|
+ </div>
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="物料名称" prop="materialName" min-width="120">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input v-model="scope.row.materialName" readonly class="custom-input" />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="型号" prop="model" min-width="120">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input v-model="scope.row.model" readonly class="custom-input" />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="规格" prop="specification" min-width="120">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input v-model="scope.row.specification" readonly class="custom-input" />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="数量" prop="inQuantity" width="150">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input-number
|
|
|
+ v-model="scope.row.inQuantity"
|
|
|
+ :min="1"
|
|
|
+ controls-position="right"
|
|
|
+ class="custom-number-input" />
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="操作" align="center" width="80" fixed="right">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button
|
|
|
+ type="text"
|
|
|
+ icon="el-icon-delete"
|
|
|
+ @click="handleDeleteDetail(scope.$index)"
|
|
|
+ class="delete-btn">删除</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </el-card>
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button @click="cancelLc" size="small">取 消</el-button>
|
|
|
+ <el-button type="primary" @click="submitFormLc" size="small">确 定</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+ <!-- 出库话框 -->
|
|
|
+ <el-dialog :title="title" :visible.sync="openLcout" width="500px" append-to-body>
|
|
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
|
|
<el-form-item label="物料编码" prop="materialCode">
|
|
|
- <el-input v-model="form.materialCode" placeholder="请输入物料编码" />
|
|
|
+ <el-input v-model="form.materialCode" placeholder="请输入物料编码" disabled/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="物料名称" prop="materialName">
|
|
|
- <el-input v-model="form.materialName" placeholder="请输入物料名称" />
|
|
|
+ <el-input v-model="form.materialName" placeholder="请输入物料名称" disabled/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="型号" prop="model">
|
|
|
- <el-input v-model="form.model" placeholder="请输入型号" />
|
|
|
+ <el-input v-model="form.model" placeholder="请输入型号" disabled/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="规格" prop="specification">
|
|
|
- <el-input v-model="form.specification" placeholder="请输入规格" />
|
|
|
+ <el-input v-model="form.specification" placeholder="请输入规格" disabled/>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="库存数量" prop="stockQuantity">
|
|
|
<el-input v-model="form.stockQuantity" placeholder="请输入库存数量" />
|
|
@@ -157,12 +320,46 @@
|
|
|
<el-form-item label="备注" prop="remark">
|
|
|
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="操作人" prop="createById" v-if="title=='添加半成品库存'">
|
|
|
- <el-input v-model="form.createBy" placeholder="请输入创建人" />
|
|
|
+ <!-- <el-form-item label="操作人" prop="createById" v-if="title=='添加半成品库存'">-->
|
|
|
+ <!-- <el-input v-model="form.createBy" placeholder="请输入创建人" />-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ <!-- <el-form-item label="修改人" prop="updateById" v-if="title=='修改半成品库存'">-->
|
|
|
+ <!-- <el-input v-model="form.updateById" placeholder="请输入修改人" />-->
|
|
|
+ <!-- </el-form-item>-->
|
|
|
+ </el-form>
|
|
|
+ <div slot="footer" class="dialog-footer">
|
|
|
+ <el-button type="primary" @click="submitFormout">确 定</el-button>
|
|
|
+ <el-button @click="cancelLcout">取 消</el-button>
|
|
|
+ </div>
|
|
|
+ </el-dialog>
|
|
|
+
|
|
|
+ <!-- 添加或修改半成品库存对话框 -->
|
|
|
+ <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
|
|
|
+ <el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
|
|
+ <el-form-item label="物料编码" prop="materialCode">
|
|
|
+ <el-input v-model="form.materialCode" placeholder="请输入物料编码" disabled/>
|
|
|
</el-form-item>
|
|
|
- <el-form-item label="修改人" prop="updateById" v-if="title=='修改半成品库存'">
|
|
|
- <el-input v-model="form.updateById" placeholder="请输入修改人" />
|
|
|
+ <el-form-item label="物料名称" prop="materialName">
|
|
|
+ <el-input v-model="form.materialName" placeholder="请输入物料名称" disabled/>
|
|
|
</el-form-item>
|
|
|
+ <el-form-item label="型号" prop="model">
|
|
|
+ <el-input v-model="form.model" placeholder="请输入型号" disabled/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="规格" prop="specification">
|
|
|
+ <el-input v-model="form.specification" placeholder="请输入规格" disabled/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="库存数量" prop="stockQuantity">
|
|
|
+ <el-input v-model="form.stockQuantity" placeholder="请输入库存数量" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="备注" prop="remark">
|
|
|
+ <el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
|
|
+ </el-form-item>
|
|
|
+<!-- <el-form-item label="操作人" prop="createById" v-if="title=='添加半成品库存'">-->
|
|
|
+<!-- <el-input v-model="form.createBy" placeholder="请输入创建人" />-->
|
|
|
+<!-- </el-form-item>-->
|
|
|
+<!-- <el-form-item label="修改人" prop="updateById" v-if="title=='修改半成品库存'">-->
|
|
|
+<!-- <el-input v-model="form.updateById" placeholder="请输入修改人" />-->
|
|
|
+<!-- </el-form-item>-->
|
|
|
</el-form>
|
|
|
<div slot="footer" class="dialog-footer">
|
|
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
|
@@ -173,8 +370,16 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import { listInventory, getInventory, delInventory, addInventory, updateInventory } from "@/api/amichi/indoor/inventory";
|
|
|
-
|
|
|
+import {
|
|
|
+ listInventory,
|
|
|
+ getInventory,
|
|
|
+ delInventory,
|
|
|
+ addInventory,
|
|
|
+ updateInventory,
|
|
|
+ inventoryout
|
|
|
+} from "@/api/amichi/indoor/inventory";
|
|
|
+import { listIndoorMaterial } from "@/api/amichi/indoor/material";
|
|
|
+import {stockInOrderAndOrderDetailLc} from "@/api/amichi/indoor/order";
|
|
|
export default {
|
|
|
name: "Inventory",
|
|
|
data() {
|
|
@@ -197,6 +402,10 @@ export default {
|
|
|
title: "",
|
|
|
// 是否显示弹出层
|
|
|
open: false,
|
|
|
+ // 出库弹窗
|
|
|
+ openLcout:false,
|
|
|
+ // 入库弹窗
|
|
|
+ openLc:false,
|
|
|
// 查询参数
|
|
|
queryParams: {
|
|
|
pageNum: 1,
|
|
@@ -209,16 +418,38 @@ export default {
|
|
|
createById: null,
|
|
|
updateById: null,
|
|
|
},
|
|
|
+ // 物料选项列表
|
|
|
+ materialOptions: [],
|
|
|
+ // 物料加载状态
|
|
|
+ materialLoading: false,
|
|
|
+ // 半成品入库单主表格数据
|
|
|
+ orderList: [],
|
|
|
+ // 查看明细开关
|
|
|
+ detailOpen: false,
|
|
|
+ // 明细表单
|
|
|
+ detailForm: {
|
|
|
+ orderNo: '',
|
|
|
+ createTime: '',
|
|
|
+ createBy: '',
|
|
|
+ remark: '',
|
|
|
+ detailList: []
|
|
|
+ },
|
|
|
// 表单参数
|
|
|
- form: {},
|
|
|
+ form: {
|
|
|
+ id: null,
|
|
|
+ orderNo: null,
|
|
|
+ remark: null,
|
|
|
+ createBy: null,
|
|
|
+ createById: null,
|
|
|
+ createTime: null,
|
|
|
+ updateBy: null,
|
|
|
+ updateById: null,
|
|
|
+ updateTime: null,
|
|
|
+ detailList: []
|
|
|
+ },
|
|
|
// 表单校验
|
|
|
rules: {
|
|
|
- materialCode: [
|
|
|
- { required: true, message: "物料编码不能为空", trigger: "blur" }
|
|
|
- ],
|
|
|
- materialName: [
|
|
|
- { required: true, message: "物料名称不能为空", trigger: "blur" }
|
|
|
- ],
|
|
|
+
|
|
|
createBy: [
|
|
|
{ required: true, message: "不能为空", trigger: "blur" }
|
|
|
],
|
|
@@ -252,23 +483,31 @@ export default {
|
|
|
this.open = false;
|
|
|
this.reset();
|
|
|
},
|
|
|
+ // 新的新增励磁取消按钮
|
|
|
+ cancelLc() {
|
|
|
+ this.openLc = false;
|
|
|
+ this.reset();
|
|
|
+ },
|
|
|
+ // 新的出库励磁取消按钮
|
|
|
+ cancelLcout() {
|
|
|
+ this.openLcout = false;
|
|
|
+ this.reset();
|
|
|
+ },
|
|
|
+
|
|
|
|
|
|
// 表单重置
|
|
|
reset() {
|
|
|
this.form = {
|
|
|
id: null,
|
|
|
- materialCode: null,
|
|
|
- materialName: null,
|
|
|
- model: null,
|
|
|
- specification: null,
|
|
|
- stockQuantity: null,
|
|
|
+ orderNo: null,
|
|
|
remark: null,
|
|
|
createBy: null,
|
|
|
createById: null,
|
|
|
createTime: null,
|
|
|
updateBy: null,
|
|
|
updateById: null,
|
|
|
- updateTime: null
|
|
|
+ updateTime: null,
|
|
|
+ detailList: []
|
|
|
};
|
|
|
this.resetForm("form");
|
|
|
},
|
|
@@ -286,7 +525,10 @@ export default {
|
|
|
handleCommand(command, row) {
|
|
|
switch (command) {
|
|
|
case "handleUpdate":
|
|
|
- this.handleUpdate(row)
|
|
|
+ this.handleUpdatess(row)
|
|
|
+ break;
|
|
|
+ case "handleAddLcout":
|
|
|
+ this.handleAddLcout(row)
|
|
|
break;
|
|
|
case "handleDelete":
|
|
|
this.handleDelete(row)
|
|
@@ -307,14 +549,202 @@ export default {
|
|
|
this.open = true;
|
|
|
this.title = "添加半成品库存";
|
|
|
},
|
|
|
+
|
|
|
+ /** 新的励磁添加-新增按钮操作 */
|
|
|
+ handleAddLc() {
|
|
|
+ this.reset();
|
|
|
+ this.openLc = true;
|
|
|
+ this.title = "新增入库单";
|
|
|
+ // 生成入库单号 FORMAT: RK + 年月日时分秒
|
|
|
+ const now = new Date();
|
|
|
+ const year = now.getFullYear();
|
|
|
+ const month = String(now.getMonth() + 1).padStart(2, '0');
|
|
|
+ const day = String(now.getDate()).padStart(2, '0');
|
|
|
+ const hours = String(now.getHours()).padStart(2, '0');
|
|
|
+ const minutes = String(now.getMinutes()).padStart(2, '0');
|
|
|
+ const seconds = String(now.getSeconds()).padStart(2, '0');
|
|
|
+ this.form.orderNo = `RK${year}${month}${day}${hours}${minutes}${seconds}`;
|
|
|
+ this.form.createTime = now.toISOString().slice(0, 19).replace('T', ' ');
|
|
|
+ this.form.createBy = this.$store.getters.name; // 获取当前登录用户
|
|
|
+ },
|
|
|
+ /** 新的励磁添加-添加明细行 */
|
|
|
+ handleAddDetail() {
|
|
|
+ this.form.detailList.push({
|
|
|
+ materialCode: undefined,
|
|
|
+ excitationType: undefined,
|
|
|
+ materialName: '',
|
|
|
+ model: '',
|
|
|
+ specification: '',
|
|
|
+ inQuantity: 1
|
|
|
+ });
|
|
|
+ },
|
|
|
+ // 删除明细行
|
|
|
+ handleDeleteDetail(index) {
|
|
|
+ this.form.detailList.splice(index, 1);
|
|
|
+ },
|
|
|
+ /** 新的励磁添加-励磁类型改变事件 */
|
|
|
+ handleExcitationTypeChange(val, index) {
|
|
|
+ // 清空当前行的物料信息
|
|
|
+ this.form.detailList[index].materialCode = undefined;
|
|
|
+ this.form.detailList[index].materialName = '';
|
|
|
+ this.form.detailList[index].model = '';
|
|
|
+ this.form.detailList[index].specification = '';
|
|
|
+ // 重新获取对应类型的物料列表
|
|
|
+ this.getMaterialList('', val);
|
|
|
+ },
|
|
|
+
|
|
|
+ /** 新的励磁添加-获取物料列表 */
|
|
|
+ getMaterialList(query = '', excitationType = '') {
|
|
|
+ // 如果没有选择励磁类型且不是搜索操作,则不获取数据
|
|
|
+ if (!excitationType && !query) {
|
|
|
+ this.materialOptions = [];
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ this.materialLoading = true;
|
|
|
+ listIndoorMaterial({
|
|
|
+ isEnablePaging: false,
|
|
|
+ materialName: query,
|
|
|
+ materialType: excitationType // 添加物料类型参数
|
|
|
+ }).then(response => {
|
|
|
+ console.log('物料数据:', response);
|
|
|
+
|
|
|
+ this.materialOptions = (response.data || response.rows || []).map(item => ({
|
|
|
+ id: item.id,
|
|
|
+ code: item.materialCode || item.code,
|
|
|
+ name: item.materialName || item.name,
|
|
|
+ model: item.model || item.specification,
|
|
|
+ specification: item.specification
|
|
|
+ }));
|
|
|
+
|
|
|
+ console.log('转换后的物料选项:', this.materialOptions);
|
|
|
+
|
|
|
+ this.materialLoading = false;
|
|
|
+ }).catch(() => {
|
|
|
+ this.materialLoading = false;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /** 新的励磁添加-物料选择改变事件 */
|
|
|
+ handleMaterialSearch(query) {
|
|
|
+ // 获取当前正在编辑的行的励磁类型
|
|
|
+ const currentExcitationType = this.form.detailList.find(item => !item.materialCode)?.excitationType;
|
|
|
+ if (query !== '') {
|
|
|
+ this.getMaterialList(query, currentExcitationType);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ /** 新的励磁添加-物料选择改变事件 */
|
|
|
+ handleMaterialChange(materialCode, index) {
|
|
|
+ const selectedMaterial = this.materialOptions.find(item => item.code === materialCode);
|
|
|
+ if (selectedMaterial) {
|
|
|
+ // 确保更新materialId
|
|
|
+ this.form.detailList[index].materialCode = materialCode;
|
|
|
+ this.form.detailList[index].materialName = selectedMaterial.name;
|
|
|
+ this.form.detailList[index].model = selectedMaterial.model;
|
|
|
+ this.form.detailList[index].specification = selectedMaterial.specification;
|
|
|
+ } else {
|
|
|
+ this.form.detailList[index].materialCode = undefined;
|
|
|
+ this.form.detailList[index].materialName = '';
|
|
|
+ this.form.detailList[index].model = '';
|
|
|
+ this.form.detailList[index].specification = '';
|
|
|
+ }
|
|
|
+ },
|
|
|
+ /** 新的励磁添加-提交按钮 */
|
|
|
+ submitFormLc() {
|
|
|
+ console.log("-----------------",this.form.detailList)
|
|
|
+ this.$refs["form"].validate(async valid => {
|
|
|
+ console.log("-----------------")
|
|
|
+ if (valid) {
|
|
|
+ if (this.form.detailList.length === 0) {
|
|
|
+ this.$modal.msgError("请至少添加一条明细记录");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 检查明细数据
|
|
|
+ for (let i = 0; i < this.form.detailList.length; i++) {
|
|
|
+ const detail = this.form.detailList[i];
|
|
|
+ if (!detail.excitationType) {
|
|
|
+ this.$modal.msgError(`第${i + 1}行物料类型不能为空`);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (!detail.materialCode) { // 修改验证字段
|
|
|
+ this.$modal.msgError(`第${i + 1}行物料信息不能为空`);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if (this.form.id != null) {
|
|
|
+ updateOrder(this.form).then(response => {
|
|
|
+ this.$modal.msgSuccess("修改成功");
|
|
|
+ this.open = false;
|
|
|
+ this.getList();
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ // 构造提交数据
|
|
|
+ console.log("---------------------------------0000",this.form.detailList)
|
|
|
+ const submitData = {
|
|
|
+ orderNo: this.form.orderNo,
|
|
|
+ remark: this.form.remark,
|
|
|
+ createBy: this.form.createBy,
|
|
|
+ createTime: this.form.createTime,
|
|
|
+ orderDetailList: this.form.detailList.map(item => ({
|
|
|
+ materialCode: item.materialCode,
|
|
|
+ excitationType: item.excitationType,
|
|
|
+ materialName: item.materialName,
|
|
|
+ model: item.model,
|
|
|
+ specification: item.specification,
|
|
|
+ inQuantity: item.inQuantity
|
|
|
+ }))
|
|
|
+ };
|
|
|
+ console.log("-------+++++++++----------",submitData)
|
|
|
+ stockInOrderAndOrderDetailLc(submitData).then(response => {
|
|
|
+ this.$modal.msgSuccess("新增成功");
|
|
|
+ this.openLc = false;
|
|
|
+ this.getList();
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /** 出库 */
|
|
|
+ handleAddLcout(row) {
|
|
|
+ this.reset();
|
|
|
+ const id = row.id || this.ids
|
|
|
+ getInventory(id).then(response => {
|
|
|
+ this.form = response.data;
|
|
|
+ this.openLcout = true;
|
|
|
+ this.title = "出库";
|
|
|
+ });
|
|
|
+ },
|
|
|
/** 修改按钮操作 */
|
|
|
- handleUpdate(row) {
|
|
|
+ handleUpdatess(row) {
|
|
|
this.reset();
|
|
|
const id = row.id || this.ids
|
|
|
getInventory(id).then(response => {
|
|
|
this.form = response.data;
|
|
|
this.open = true;
|
|
|
- this.title = "修改半成品库存";
|
|
|
+ this.title = "修改";
|
|
|
+ });
|
|
|
+ },
|
|
|
+ /** 出库 */
|
|
|
+ submitFormout() {
|
|
|
+ this.$refs["form"].validate(valid => {
|
|
|
+ if (valid) {
|
|
|
+ if (this.form.id != null) {
|
|
|
+ inventoryout(this.form).then(response => {
|
|
|
+ this.$modal.msgSuccess("出库成功");
|
|
|
+ this.openLcout = false;
|
|
|
+ this.reset();
|
|
|
+ this.getList();
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ addInventory(this.form).then(response => {
|
|
|
+ this.$modal.msgSuccess("新增成功");
|
|
|
+ this.openLcout = false;
|
|
|
+ this.reset();
|
|
|
+ this.getList();
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
});
|
|
|
},
|
|
|
/** 提交按钮 */
|
|
@@ -325,12 +755,14 @@ export default {
|
|
|
updateInventory(this.form).then(response => {
|
|
|
this.$modal.msgSuccess("修改成功");
|
|
|
this.open = false;
|
|
|
+ this.reset();
|
|
|
this.getList();
|
|
|
});
|
|
|
} else {
|
|
|
addInventory(this.form).then(response => {
|
|
|
this.$modal.msgSuccess("新增成功");
|
|
|
this.open = false;
|
|
|
+ this.reset();
|
|
|
this.getList();
|
|
|
});
|
|
|
}
|