选择工单加分页

This commit is contained in:
2025-11-29 14:43:51 +08:00
parent 99656465e2
commit 4390305035
9 changed files with 586 additions and 240 deletions

BIN
dist.zip

Binary file not shown.

View File

@@ -202,6 +202,8 @@ export default {
open: false,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
workorderCode: null,
workorderName: null,
workorderType: null,
@@ -237,17 +239,43 @@ export default {
//2024 12 19 需求五
// console.log("response.rows 新增 炉号和班组两个字段 ⬇️");
// console.log(response.rows);
this.total = response.total;
this.workorderList = response.rows;
this.loading = false;
});
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams = {
pageNum: 1,
pageSize: 10,
workorderCode: null,
workorderName: null,
workorderType: null,
orderSource: null,
sourceCode: null,
productId: null,
productCode: null,
productName: null,
productSpc: null,
unitOfMeasure: null,
quantity: null,
quantityProduced: null,
quantityChanged: null,
quantityScheduled: null,
clientId: null,
clientCode: null,
clientName: null,
requestDate: null,
parentId: null,
ancestors: null,
status: "CONFIRMED",
};
this.resetForm("queryForm");
this.handleQuery();
},

View File

@@ -136,6 +136,7 @@
/> -->
<el-table-column label="生产工单" align="center" prop="workorderCode" />
<el-table-column label="炉号" align="center" prop="machineryNo" />
<el-table-column label="成品规格" align="center" prop="productSpc" />
<el-table-column label="客户编号" align="center" prop="clientCode" />
<el-table-column label="客户名称" align="center" prop="clientName" />
<el-table-column label="领料日期" align="center" prop="issueDate" width="180">

View File

@@ -49,6 +49,16 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="单据状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择单据状态" clearable>
<el-option
v-for="dict in dict.type.mes_order_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="入库日期" prop="recptDate">
<el-date-picker
v-model="dateRange"

View File

@@ -3,65 +3,163 @@
组件描述产品入库
-->
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="100px"
>
<!-- 2024 12 19 需求六 -->
<el-form-item label="产品编码" prop="itemCode">
<el-input v-model="queryParams.itemCode" placeholder="请输入产品编码" clearable @keyup.enter.native="handleQuery" />
<el-input
v-model="queryParams.itemCode"
placeholder="请输入产品编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="入库单编号" prop="recptCode">
<el-input v-model="queryParams.recptCode" placeholder="请输入入库单编号" clearable @keyup.enter.native="handleQuery" />
<el-input
v-model="queryParams.recptCode"
placeholder="请输入入库单编号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="入库单名称" prop="recptName">
<el-input v-model="queryParams.recptName" placeholder="请输入入库单名称" clearable @keyup.enter.native="handleQuery" />
<el-input
v-model="queryParams.recptName"
placeholder="请输入入库单名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="生产工单" prop="workorderCode">
<el-input v-model="queryParams.workorderCode" placeholder="请输入生产工单编码" clearable
@keyup.enter.native="handleQuery" />
<el-input
v-model="queryParams.workorderCode"
placeholder="请输入生产工单编码"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="仓库" prop="warehouseName">
<el-input v-model="queryParams.warehouseName" placeholder="请输入仓库名称" clearable
@keyup.enter.native="handleQuery" />
<el-input
v-model="queryParams.warehouseName"
placeholder="请输入仓库名称"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="单据状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择单据状态" clearable>
<el-option
v-for="dict in dict.type.mes_order_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="入库日期">
<el-date-picker v-model="dateRange" style="width: 240px" value-format="yyyy-MM-dd" type="daterange"
range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
<el-date-picker
v-model="dateRange"
style="width: 240px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</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="['mes:wm:productrecpt:add']">新增</el-button>
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['mes:wm:productrecpt: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="['mes:wm:productrecpt:edit']">修改</el-button>
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['mes:wm:productrecpt: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="['mes:wm:productrecpt:remove']">删除</el-button>
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['mes:wm:productrecpt:remove']"
>删除</el-button
>
</el-col>
<el-col :span="1.5">
<el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
v-hasPermi="['mes:wm:productrecpt:export']">导出</el-button>
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['mes:wm:productrecpt:export']"
>导出</el-button
>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="productrecptList" @selection-change="handleSelectionChange">
<el-table
v-loading="loading"
:data="productrecptList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="入库单编号" width="130px" align="center" prop="recptCode">
<template slot-scope="scope">
<el-button type="text" @click="handleView(scope.row)" v-hasPermi="['mes:wm:productrecpt:query']">{{
scope.row.recptCode }}</el-button>
<el-button
type="text"
@click="handleView(scope.row)"
v-hasPermi="['mes:wm:productrecpt:query']"
>{{ scope.row.recptCode }}</el-button
>
</template>
</el-table-column>
<el-table-column label="入库单名称" width="150px" align="center" prop="recptName" :show-overflow-tooltip="true" />
<el-table-column label="生产工单编码" width="150px" align="center" prop="workorderCode" />
<el-table-column
label="入库单名称"
width="150px"
align="center"
prop="recptName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="生产工单编码"
width="150px"
align="center"
prop="workorderCode"
/>
<el-table-column label="产品编码" align="center" prop="itemCode" />
<el-table-column label="产品名称" align="center" prop="itemName" />
<el-table-column label="班组" align="center" prop="teamName" />
@@ -69,9 +167,7 @@
<el-table-column label="炉号" align="center" prop="machineryNo" />
<el-table-column label="合计重量" align="center" prop="sumQuantity">
<template slot-scope="scope">
<span>{{
scope.row.sumQuantity ? scope.row.sumQuantity + "KG" : "—"
}}</span>
<span>{{ scope.row.sumQuantity ? scope.row.sumQuantity + "KG" : "—" }}</span>
</template>
</el-table-column>
<el-table-column label="入库日期" align="center" prop="recptDate" width="120">
@@ -86,24 +182,64 @@
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-video-play" v-if="scope.row.status == 'PREPARE'"
@click="handleExecute(scope.row)" v-hasPermi="['mes:wm:productrecpt:edit']">执行入库</el-button>
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
v-if="scope.row.status == 'PREPARE'" v-hasPermi="['mes:wm:productrecpt:edit']">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
v-if="scope.row.status == 'PREPARE'" v-hasPermi="['mes:wm:productrecpt:remove']">删除</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-video-play"
v-if="scope.row.status == 'PREPARE'"
@click="handleExecute(scope.row)"
v-hasPermi="['mes:wm:productrecpt:edit']"
>执行入库</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-if="scope.row.status == 'PREPARE'"
v-hasPermi="['mes:wm:productrecpt:edit']"
>修改</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-if="scope.row.status == 'PREPARE'"
v-hasPermi="['mes:wm:productrecpt:remove']"
>删除</el-button
>
<!-- 需求八 单据撤销 -->
<!-- 标记 此处的按钮鉴权 待优化 -->
<el-button size="mini" type="text" icon="el-icon-refresh-left" v-if="scope.row.status == 'FINISHED'"
@click="handleWithdrawn(scope.row)" v-hasPermi="['mes:wm:productrecpt:edit']">撤销</el-button>
<el-button size="mini" type="text" icon="el-icon-view" v-if="scope.row.status == 'CANCEL'"
@click="handleLookWithdrawn(scope.row)" v-hasPermi="['mes:wm:productrecpt:edit']">查看撤销原因</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-refresh-left"
v-if="scope.row.status == 'FINISHED'"
@click="handleWithdrawn(scope.row)"
v-hasPermi="['mes:wm:productrecpt:edit']"
>撤销</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-view"
v-if="scope.row.status == 'CANCEL'"
@click="handleLookWithdrawn(scope.row)"
v-hasPermi="['mes:wm:productrecpt:edit']"
>查看撤销原因</el-button
>
</template>
</el-table-column>
</el-table>
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
@pagination="getList" />
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改产品入库录对话框 -->
<el-dialog :title="title" :visible.sync="open" width="960px" append-to-body>
@@ -116,8 +252,13 @@
</el-col>
<el-col :span="4">
<el-form-item label-width="80">
<el-switch v-model="autoGenFlag" active-color="#13ce66" active-text="自动生成"
@change="handleAutoGenChange(autoGenFlag)" v-if="optType != 'view' && form.status == 'PREPARE'">
<el-switch
v-model="autoGenFlag"
active-color="#13ce66"
active-text="自动生成"
@change="handleAutoGenChange(autoGenFlag)"
v-if="optType != 'view' && form.status == 'PREPARE'"
>
</el-switch>
</el-form-item>
</el-col>
@@ -130,10 +271,21 @@
<el-row>
<el-col :span="8">
<el-form-item label="生产工单" prop="workorderCode">
<el-input v-model="form.workorderCode" placeholder="请选择生产工单" readonly>
<el-button slot="append" icon="el-icon-search" @click="handleWorkorderSelect"></el-button>
<el-input
v-model="form.workorderCode"
placeholder="请选择生产工单"
readonly
>
<el-button
slot="append"
icon="el-icon-search"
@click="handleWorkorderSelect"
></el-button>
</el-input>
<WorkorderSelect ref="woSelect" @onSelected="onWorkorderSelected"></WorkorderSelect>
<WorkorderSelect
ref="woSelect"
@onSelected="onWorkorderSelected"
></WorkorderSelect>
</el-form-item>
</el-col>
<el-col :span="8">
@@ -143,7 +295,13 @@
</el-col>
<el-col :span="8">
<el-form-item label="生产日期">
<el-date-picker clearable readonly v-model="form.produceDate" type="date" value-format="yyyy-MM-dd">
<el-date-picker
clearable
readonly
v-model="form.produceDate"
type="date"
value-format="yyyy-MM-dd"
>
</el-date-picker>
</el-form-item>
</el-col>
@@ -168,16 +326,25 @@
<el-row>
<el-col :span="8">
<el-form-item label="入库日期" prop="recptDate">
<el-date-picker clearable v-model="form.recptDate" type="date" value-format="yyyy-MM-dd"
placeholder="请选择入库日期">
<el-date-picker
clearable
v-model="form.recptDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择入库日期"
>
</el-date-picker>
</el-form-item>
</el-col>
<!-- 2024 12 13 需求一 -->
<el-col :span="8">
<el-form-item label="入库仓库" prop="warehouseId">
<el-cascader v-model="warehouseInfo" :options="warehouseOptions" :props="warehouseProps"
@change="handleWarehouseChanged">
<el-cascader
v-model="warehouseInfo"
:options="warehouseOptions"
:props="warehouseProps"
@change="handleWarehouseChanged"
>
</el-cascader>
</el-form-item>
</el-col>
@@ -199,25 +366,52 @@
</el-col>
</el-row>
</el-form>
<el-divider v-if="form.recptId != null" content-position="center">物料信息</el-divider>
<el-divider v-if="form.recptId != null" content-position="center"
>物料信息</el-divider
>
<el-card shadow="always" v-if="form.recptId != null" class="box-card">
<Productrecptline :recptId="form.recptId" :optType="optType" :workorderId="form.workorderId"
:itemId="form.itemId" :item="item" :warehouseInfo="warehouseInfo" :upFlag="upFlag"
@changeUpFlag="changeUpFlag"></Productrecptline>
<Productrecptline
:recptId="form.recptId"
:optType="optType"
:workorderId="form.workorderId"
:itemId="form.itemId"
:item="item"
:warehouseInfo="warehouseInfo"
:upFlag="upFlag"
@changeUpFlag="changeUpFlag"
></Productrecptline>
</el-card>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="cancel" v-if="optType == 'view' || form.status != 'PREPARE'">返回</el-button>
<el-button type="primary" @click="submitForm" v-if="form.status == 'PREPARE' && optType != 'view'">
</el-button>
<el-button
type="primary"
@click="cancel"
v-if="optType == 'view' || form.status != 'PREPARE'"
>返回</el-button
>
<el-button
type="primary"
@click="submitForm"
v-if="form.status == 'PREPARE' && optType != 'view'"
> </el-button
>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 需求八 单据撤销 对话框 -->
<el-dialog title="单据撤销" :visible.sync="WithdrawnFlag" width="30%">
<el-form ref="WithdrawnForm" :model="WithdrawnForm" :rules="WithdrawnRules" label-width="120px">
<el-form
ref="WithdrawnForm"
:model="WithdrawnForm"
:rules="WithdrawnRules"
label-width="120px"
>
<el-form-item label="撤销原因:" prop="cancelRemark">
<el-input type="textarea" v-model="WithdrawnForm.cancelRemark" placeholder="请输入备注"></el-input>
<el-input
type="textarea"
v-model="WithdrawnForm.cancelRemark"
placeholder="请输入备注"
></el-input>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
@@ -239,22 +433,26 @@
<!-- 撤销错误 对话框 提示 需求八 -->
<el-dialog title="提示" :visible.sync="WithdrawnErrorFlag" width="45%">
<div>
<p style="margin-top: 0px;">当前单据部分产品物料已出库相关单据</p>
<p style="margin-top: 0px">当前单据部分产品物料已出库相关单据</p>
<p v-for="(value, name, index) in WithdrawnErrorObj" :key="index">
<span>{{ WithdrawnErrorObjMap[name].CNName }}</span>
<router-link :to="{
path: WithdrawnErrorObjMap[name].path,
query: { Parameters: item },
}" v-for="(item, ind) in value" :key="ind">
<span style="
color: #02a7f1;
border-bottom: 1px solid #02a7f1;
margin-right: 8px;
" :id="value.length - 1 == ind ? '' : 'WithdrawnErrorObj'" @click="WithdrawnErrorFlag = false">{{ item
}}</span>
<router-link
:to="{
path: WithdrawnErrorObjMap[name].path,
query: { Parameters: item },
}"
v-for="(item, ind) in value"
:key="ind"
>
<span
style="color: #02a7f1; border-bottom: 1px solid #02a7f1; margin-right: 8px"
:id="value.length - 1 == ind ? '' : 'WithdrawnErrorObj'"
@click="WithdrawnErrorFlag = false"
>{{ item }}</span
>
</router-link>
</p>
<p style="margin-bottom: 0px;">请溯源后撤销该单据</p>
<p style="margin-bottom: 0px">请溯源后撤销该单据</p>
</div>
</el-dialog>
</div>
@@ -268,7 +466,7 @@ import {
addProductrecpt,
updateProductrecpt,
execute,
cancelFn
cancelFn,
} from "@/api/mes/wm/productrecpt";
import { getMdItem } from "@/api/mes/md/mdItem";
import WorkorderSelect from "@/components/workorderSelect/single.vue";
@@ -354,15 +552,9 @@ export default {
form: {},
// 表单校验
rules: {
recptCode: [
{ required: true, message: "入库单编号不能为空", trigger: "blur" },
],
recptDate: [
{ required: true, message: "请选择入库日期", trigger: "blur" },
],
workorderCode: [
{ required: true, message: "请选择生产工单", trigger: "blur" },
],
recptCode: [{ required: true, message: "入库单编号不能为空", trigger: "blur" }],
recptDate: [{ required: true, message: "请选择入库日期", trigger: "blur" }],
workorderCode: [{ required: true, message: "请选择生产工单", trigger: "blur" }],
},
item: {},
// 单据撤销 对话框 开关
@@ -370,13 +562,11 @@ export default {
// 单据撤销 对话框 表单参数
WithdrawnForm: {
recptId: null,
cancelRemark: null
cancelRemark: null,
},
// 撤销单 表单校验
WithdrawnRules: {
cancelRemark: [
{ required: true, message: "撤销原因不能为空", trigger: "blur" }
]
cancelRemark: [{ required: true, message: "撤销原因不能为空", trigger: "blur" }],
},
// 查看撤销原因 以及 开关
LookWithdrawnFlag: false,
@@ -414,13 +604,13 @@ export default {
/** 查询产品入库录列表 */
getList() {
this.loading = true;
listProductrecpt(
this.addDateRange(this.queryParams, this.dateRange)
).then((response) => {
this.productrecptList = response.rows;
this.total = response.total;
this.loading = false;
});
listProductrecpt(this.addDateRange(this.queryParams, this.dateRange)).then(
(response) => {
this.productrecptList = response.rows;
this.total = response.total;
this.loading = false;
}
);
},
getWarehouseList() {
getTreeList().then((response) => {
@@ -523,10 +713,7 @@ export default {
this.reset();
const recptId = row.recptId || this.ids;
localStorage.setItem(
"productrecpt-handleUpdate-recptId",
JSON.stringify(recptId)
);
localStorage.setItem("productrecpt-handleUpdate-recptId", JSON.stringify(recptId));
getProductrecpt(recptId).then((response) => {
console.log("打印目标-回显入库仓库➡️", response.data);
this.warehouseInfo = [
@@ -553,7 +740,7 @@ export default {
this.getList();
this.$modal.msgSuccess("入库成功");
})
.catch(() => { });
.catch(() => {});
},
/** 提交按钮 */
submitForm() {
@@ -587,7 +774,7 @@ export default {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => { });
.catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
@@ -647,10 +834,7 @@ export default {
// 效果待确认 重要标记 2024 12 13 需求二 点击“查看”
this.reset();
const recptIds = row.recptId;
localStorage.setItem(
"productrecpt-handleUpdate-recptId",
JSON.stringify(recptIds)
);
localStorage.setItem("productrecpt-handleUpdate-recptId", JSON.stringify(recptIds));
getProductrecpt(recptIds).then((response) => {
console.log("打印目标-回显入库仓库➡️", response.data);
this.warehouseInfo = [
@@ -687,27 +871,29 @@ export default {
},
// 撤销原因 提交
handleWithdrawnSubmit(formName) {
this.$refs['WithdrawnForm'].validate((valid) => {
this.$refs["WithdrawnForm"].validate((valid) => {
if (valid) {
cancelFn(this.WithdrawnForm).then((res) => {
console.log(res);
if (res.code == 200) {
this.$modal.msgSuccess(res.msg);
}
}).catch((res) => {
console.log(res.data);
// 错误提示 对象 (内容)
this.WithdrawnErrorObj = res.data;
// 打开错误提示 对话框
this.WithdrawnErrorFlag = true;
}).finally(() => {
this.WithdrawnFlag = false;
this.$refs['WithdrawnForm'].resetFields();
this.getList();
});
cancelFn(this.WithdrawnForm)
.then((res) => {
console.log(res);
if (res.code == 200) {
this.$modal.msgSuccess(res.msg);
}
})
.catch((res) => {
console.log(res.data);
// 错误提示 对象 (内容)
this.WithdrawnErrorObj = res.data;
// 打开错误提示 对话框
this.WithdrawnErrorFlag = true;
})
.finally(() => {
this.WithdrawnFlag = false;
this.$refs["WithdrawnForm"].resetFields();
this.getList();
});
} else {
console.log('error submit!!');
console.log("error submit!!");
return false;
}
});

View File

@@ -33,6 +33,16 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="单据状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择单据状态" clearable>
<el-option
v-for="dict in dict.type.mes_order_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="退料日期" prop="recptDate">
<el-date-picker
v-model="dateRange"

View File

@@ -41,6 +41,16 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="单据状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择单据状态" clearable>
<el-option
v-for="dict in dict.type.mes_order_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="日期" prop="recptDate">
<el-date-picker
v-model="dateRange"
@@ -418,7 +428,7 @@ export default {
rtDate: null,
status: null,
},
dateRange: [],
dateRange: [],
// 表单参数
form: {},
// 表单校验
@@ -457,11 +467,13 @@ export default {
/** 查询供应商退货列表 */
getList() {
this.loading = true;
listRtvendor(this.addDateRange(this.queryParams, this.dateRange)).then((response) => {
this.rtvendorList = response.rows;
this.total = response.total;
this.loading = false;
});
listRtvendor(this.addDateRange(this.queryParams, this.dateRange)).then(
(response) => {
this.rtvendorList = response.rows;
this.total = response.total;
this.loading = false;
}
);
},
// 取消按钮
cancel() {
@@ -487,7 +499,7 @@ export default {
updateBy: null,
updateTime: null,
};
this.dateRange = [];
this.dateRange = [];
this.resetForm("form");
},
/** 搜索按钮操作 */

View File

@@ -1,6 +1,13 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="100px">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="100px"
>
<el-form-item label="转移单编号" prop="transferCode">
<el-input
v-model="queryParams.transferCode"
@@ -18,7 +25,11 @@
/>
</el-form-item>
<el-form-item label="转移单类型" prop="transferType">
<el-select v-model="queryParams.transferType" placeholder="请选择转移单类型" clearable>
<el-select
v-model="queryParams.transferType"
placeholder="请选择转移单类型"
clearable
>
<el-option
v-for="dict in dict.type.mes_transfer_type"
:key="dict.value"
@@ -43,7 +54,17 @@
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="转移日期" prop="recptDate">
<el-form-item label="单据状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择单据状态" clearable>
<el-option
v-for="dict in dict.type.mes_order_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="转移日期" prop="recptDate">
<el-date-picker
v-model="dateRange"
style="width: 240px"
@@ -55,7 +76,9 @@
></el-date-picker>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"
>搜索</el-button
>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
@@ -69,7 +92,8 @@
size="mini"
@click="handleAdd"
v-hasPermi="['mes:wm:transfer:add']"
>新增</el-button>
>新增</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
@@ -80,7 +104,8 @@
:disabled="single"
@click="handleUpdate"
v-hasPermi="['mes:wm:transfer:edit']"
>修改</el-button>
>修改</el-button
>
</el-col>
<el-col :span="1.5">
<el-button
@@ -91,38 +116,47 @@
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['mes:wm:transfer:remove']"
>删除</el-button>
>删除</el-button
>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="transferList" @selection-change="handleSelectionChange">
<el-table
v-loading="loading"
:data="transferList"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="转移单编号" align="center" prop="transferCode" >
<el-table-column label="转移单编号" align="center" prop="transferCode">
<template slot-scope="scope">
<el-button
type="text"
@click="handleView(scope.row)"
v-hasPermi="['mes:wm:transfer:query']"
>{{scope.row.transferCode}}</el-button>
>{{ scope.row.transferCode }}</el-button
>
</template>
</el-table-column>
<el-table-column label="转移单名称" align="center" prop="transferName" />
<el-table-column label="转移单类型" align="center" prop="transferType">
<template slot-scope="scope">
<dict-tag :options="dict.type.mes_transfer_type" :value="scope.row.transferType"/>
<dict-tag
:options="dict.type.mes_transfer_type"
:value="scope.row.transferType"
/>
</template>
</el-table-column>
<el-table-column label="移出仓库" align="center" prop="fromWarehouseName" />
<el-table-column label="移入仓库" align="center" prop="toWarehouseName" />
<el-table-column label="转移日期" align="center" prop="transferDate" width="180">
<template slot-scope="scope">
<span>{{ parseTime(scope.row.transferDate, '{y}-{m}-{d}') }}</span>
<span>{{ parseTime(scope.row.transferDate, "{y}-{m}-{d}") }}</span>
</template>
</el-table-column>
<el-table-column label="单据状态" align="center" prop="status">
<template slot-scope="scope">
<dict-tag :options="dict.type.mes_order_status" :value="scope.row.status"/>
<dict-tag :options="dict.type.mes_order_status" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
@@ -131,26 +165,29 @@
size="mini"
type="text"
icon="el-icon-video-play"
v-if="(scope.row.status =='PREPARE' && scope.row.transferType == 'INNER')"
v-if="scope.row.status == 'PREPARE' && scope.row.transferType == 'INNER'"
@click="handleExecute(scope.row)"
v-hasPermi="['mes:wm:transfer:edit']"
>执行转移</el-button>
>执行转移</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-video-play"
v-if="(scope.row.status =='PREPARE' && scope.row.transferType == 'OUTER')"
v-if="scope.row.status == 'PREPARE' && scope.row.transferType == 'OUTER'"
@click="handleTransOut(scope.row)"
v-hasPermi="['mes:wm:transfer:edit']"
>执行移出</el-button>
>执行移出</el-button
>
<el-button
size="mini"
type="text"
icon="el-icon-video-play"
v-if="(scope.row.status =='CONFIRMED' && scope.row.transferType == 'OUTER')"
v-if="scope.row.status == 'CONFIRMED' && scope.row.transferType == 'OUTER'"
@click="handleExecute(scope.row)"
v-hasPermi="['mes:wm:transfer:edit']"
>执行移入</el-button>
>执行移入</el-button
>
<el-button
size="mini"
type="text"
@@ -158,7 +195,8 @@
@click="handleUpdate(scope.row)"
v-if="scope.row.status == 'PREPARE'"
v-hasPermi="['mes:wm:transfer:edit']"
>修改</el-button>
>修改</el-button
>
<el-button
size="mini"
type="text"
@@ -166,13 +204,14 @@
@click="handleDelete(scope.row)"
v-if="scope.row.status == 'PREPARE'"
v-hasPermi="['mes:wm:transfer:remove']"
>删除</el-button>
>删除</el-button
>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@@ -189,11 +228,14 @@
</el-form-item>
</el-col>
<el-col :span="4">
<el-form-item label-width="80">
<el-switch v-model="autoGenFlag"
active-color="#13ce66"
active-text="自动生成"
@change="handleAutoGenChange(autoGenFlag)" v-if="optType != 'view' && form.status =='PREPARE'">
<el-form-item label-width="80">
<el-switch
v-model="autoGenFlag"
active-color="#13ce66"
active-text="自动生成"
@change="handleAutoGenChange(autoGenFlag)"
v-if="optType != 'view' && form.status == 'PREPARE'"
>
</el-switch>
</el-form-item>
</el-col>
@@ -211,7 +253,8 @@
v-for="dict in dict.type.mes_transfer_type"
:key="dict.value"
:label="dict.value"
>{{dict.label}}</el-radio>
>{{ dict.label }}</el-radio
>
</el-radio-group>
</el-form-item>
</el-col>
@@ -241,7 +284,11 @@
<el-row>
<el-col :span="8">
<el-form-item label="移出仓库" prop="fromWarehouseId">
<el-select v-model="form.fromWarehouseId" placeholder="请选择移出仓库" clearable>
<el-select
v-model="form.fromWarehouseId"
placeholder="请选择移出仓库"
clearable
>
<el-option
v-for="dict in warehouseList"
:key="dict.warehosueId"
@@ -253,7 +300,11 @@
</el-col>
<el-col :span="8">
<el-form-item label="移入仓库" prop="toWarehouseId">
<el-select v-model="form.toWarehouseId" placeholder="请选择移入仓库" clearable>
<el-select
v-model="form.toWarehouseId"
placeholder="请选择移入仓库"
clearable
>
<el-option
v-for="dict in warehouseList"
:key="dict.warehosueId"
@@ -265,11 +316,13 @@
</el-col>
<el-col :span="8">
<el-form-item label="转移日期" prop="transferDate">
<el-date-picker clearable
<el-date-picker
clearable
v-model="form.transferDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择转移日期">
placeholder="请选择转移日期"
>
</el-date-picker>
</el-form-item>
</el-col>
@@ -281,15 +334,32 @@
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-divider v-if="form.transferId !=null" content-position="center">物料信息</el-divider>
<el-card shadow="always" v-if="form.transferId !=null" class="box-card">
<Transferline ref=line :transferId="form.transferId" :fromWarehouseId="form.fromWarehouseId" :toWarehouseId="form.toWarehouseId" :optType="optType"></Transferline>
</el-card>
<el-divider v-if="form.transferId != null" content-position="center"
>物料信息</el-divider
>
<el-card shadow="always" v-if="form.transferId != null" class="box-card">
<Transferline
ref="line"
:transferId="form.transferId"
:fromWarehouseId="form.fromWarehouseId"
:toWarehouseId="form.toWarehouseId"
:optType="optType"
></Transferline>
</el-card>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="cancel" v-if="optType =='view' || form.status !='PREPARE' ">返回</el-button>
<el-button type="primary" @click="submitForm" v-if="form.status =='PREPARE' && optType !='view' "> </el-button>
<el-button
type="primary"
@click="cancel"
v-if="optType == 'view' || form.status != 'PREPARE'"
>返回</el-button
>
<el-button
type="primary"
@click="submitForm"
v-if="form.status == 'PREPARE' && optType != 'view'"
> </el-button
>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
@@ -297,18 +367,25 @@
</template>
<script>
import { listTransfer, getTransfer, delTransfer, addTransfer, updateTransfer, execute} from "@/api/mes/wm/transfer";
import {listWarehouse} from "@/api/mes/wm/warehouse";
import {genCode} from "@/api/system/autocode/rule";
import {
listTransfer,
getTransfer,
delTransfer,
addTransfer,
updateTransfer,
execute,
} from "@/api/mes/wm/transfer";
import { listWarehouse } from "@/api/mes/wm/warehouse";
import { genCode } from "@/api/system/autocode/rule";
import Transferline from "./line.vue";
export default {
name: "Transfer",
components: {Transferline},
dicts: ['mes_transfer_type','mes_order_status'],
components: { Transferline },
dicts: ["mes_transfer_type", "mes_order_status"],
data() {
return {
//自动生成编码
autoGenFlag:false,
autoGenFlag: false,
optType: undefined,
// 遮罩层
loading: true,
@@ -333,31 +410,39 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
transferCode: null, transferName: null, transferType: null, destination: null, carrier: null, bookingNote: null, fromWarehouseId: null, fromWarehouseCode: null, fromWarehouseName: null, toWarehouseId: null, toWarehouseCode: null, toWarehouseName: null, transferDate: null, status: null, },
transferCode: null,
transferName: null,
transferType: null,
destination: null,
carrier: null,
bookingNote: null,
fromWarehouseId: null,
fromWarehouseCode: null,
fromWarehouseName: null,
toWarehouseId: null,
toWarehouseCode: null,
toWarehouseName: null,
transferDate: null,
status: null,
},
// 表单参数
form: {},
dateRange: [],
dateRange: [],
// 表单校验
rules: {
transferCode: [
{ required: true, message: "转移单编号不能为空", trigger: "blur" }
{ required: true, message: "转移单编号不能为空", trigger: "blur" },
],
transferName: [
{ required: true, message: "转移单名称不能为空", trigger: "blur" }
{ required: true, message: "转移单名称不能为空", trigger: "blur" },
],
transferType: [
{ required: true, message: "转移单类型不能为空", trigger: "blur" }
{ required: true, message: "转移单类型不能为空", trigger: "blur" },
],
transferDate: [
{ required: true, message: "请选择转移时间", trigger: "blur" }
],
fromWarehouseId: [
{ required: true, message: "请选择转出仓库", trigger: "blur" }
],
toWarehouseId: [
{ required: true, message: "请选择转入仓库", trigger: "blur" }
]
}
transferDate: [{ required: true, message: "请选择转移时间", trigger: "blur" }],
fromWarehouseId: [{ required: true, message: "请选择转出仓库", trigger: "blur" }],
toWarehouseId: [{ required: true, message: "请选择转入仓库", trigger: "blur" }],
},
};
},
created() {
@@ -368,15 +453,17 @@ export default {
/** 查询转移单列表 */
getList() {
this.loading = true;
listTransfer(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
this.transferList = response.rows;
this.total = response.total;
this.loading = false;
});
listTransfer(this.addDateRange(this.queryParams, this.dateRange)).then(
(response) => {
this.transferList = response.rows;
this.total = response.total;
this.loading = false;
}
);
},
//获取仓库信息
getWarehouseList(){
listWarehouse().then(response => {
getWarehouseList() {
listWarehouse().then((response) => {
this.warehouseList = response.rows;
});
},
@@ -411,7 +498,7 @@ export default {
createBy: null,
createTime: null,
updateBy: null,
updateTime: null
updateTime: null,
};
this.autoGenFlag = false;
this.resetForm("form");
@@ -429,9 +516,9 @@ export default {
},
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.transferId)
this.single = selection.length!==1
this.multiple = !selection.length
this.ids = selection.map((item) => item.transferId);
this.single = selection.length !== 1;
this.multiple = !selection.length;
},
/** 新增按钮操作 */
handleAdd() {
@@ -441,10 +528,10 @@ export default {
this.optType = "add";
},
// 查询明细按钮操作
handleView(row){
handleView(row) {
this.reset();
const transferId = row.transferId
getTransfer(transferId).then(response => {
const transferId = row.transferId;
getTransfer(transferId).then((response) => {
this.form = response.data;
this.open = true;
this.title = "查看转移单信息";
@@ -454,8 +541,8 @@ export default {
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const transferId = row.transferId || this.ids
getTransfer(transferId).then(response => {
const transferId = row.transferId || this.ids;
getTransfer(transferId).then((response) => {
this.form = response.data;
this.open = true;
this.title = "修改转移单";
@@ -464,17 +551,17 @@ export default {
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
this.$refs["form"].validate((valid) => {
if (valid) {
debugger;
if (this.form.transferId != null) {
updateTransfer(this.form).then(response => {
updateTransfer(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addTransfer(this.form).then(response => {
addTransfer(this.form).then((response) => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
@@ -483,54 +570,66 @@ export default {
}
});
},
handleTransOut(row){
const transferId = row.transferId
getTransfer(transferId).then(response => {
handleTransOut(row) {
const transferId = row.transferId;
getTransfer(transferId).then((response) => {
this.form = response.data;
this.form.status = 'CONFIRMED';
updateTransfer(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
this.form.status = "CONFIRMED";
updateTransfer(this.form).then((response) => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
});
},
/** 删除按钮操作 */
handleDelete(row) {
const transferIds = row.transferId || this.ids;
this.$modal.confirm('是否确认删除转移单编号为"' + transferIds + '"的数据项?').then(function() {
return delTransfer(transferIds);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
this.$modal
.confirm('是否确认删除转移单编号为"' + transferIds + '"的数据项?')
.then(function () {
return delTransfer(transferIds);
})
.then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
})
.catch(() => {});
},
//执行转移
handleExecute(row){
handleExecute(row) {
const transferIds = row.transferId || this.ids;
this.$modal.confirm('确认执行转移?').then(function() {
return execute(transferIds)//执行转移
}).then(() => {
this.getList();
this.$modal.msgSuccess("转移成功");
}).catch(() => {});
this.$modal
.confirm("确认执行转移?")
.then(function () {
return execute(transferIds); //执行转移
})
.then(() => {
this.getList();
this.$modal.msgSuccess("转移成功");
})
.catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('mes/wm/transfer/export', {
...this.queryParams
}, `transfer_${new Date().getTime()}.xlsx`)
this.download(
"mes/wm/transfer/export",
{
...this.queryParams,
},
`transfer_${new Date().getTime()}.xlsx`
);
},
//自动生成编码
handleAutoGenChange(autoGenFlag){
if(autoGenFlag){
genCode('TRANSFER_CODE').then(response =>{
handleAutoGenChange(autoGenFlag) {
if (autoGenFlag) {
genCode("TRANSFER_CODE").then((response) => {
this.form.transferCode = response;
});
}else{
} else {
this.form.transferCode = null;
}
}
}
},
},
};
</script>

View File

@@ -41,8 +41,8 @@ module.exports = {
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
// target: `http://172.16.10.97:8002`,
target: `http://172.16.10.97:8002`,
// target: `https://www.sdhuixinjituan.com:8001/prod-api/`,
target: `http://172.16.10.13:8002/`,
changeOrigin: true,
pathRewrite: {