接口更新,工艺模块
This commit is contained in:
parent
d86036d443
commit
b4c31b102c
@ -40,7 +40,7 @@ export function getDistinctProjectCodes(query) {
|
||||
return request({
|
||||
url: '/system/route/getDistinctProjectCodes', // 后端接口 URL,确保正确
|
||||
method: 'get',
|
||||
params: {query} // 将查询关键字传递给后端
|
||||
params: { query } // 将查询关键字传递给后端
|
||||
})
|
||||
.then((response) => {
|
||||
return response; // 返回数据部分
|
||||
@ -55,7 +55,7 @@ export function getProcessInfoList(query) {
|
||||
return request({
|
||||
url: '/system/route/getProcessInfoList', // 后端接口 URL,确保正确
|
||||
method: 'get',
|
||||
params: {query} // 将查询关键字传递给后端
|
||||
params: { query } // 将查询关键字传递给后端
|
||||
})
|
||||
.then((response) => {
|
||||
return response; // 返回数据部分
|
||||
@ -66,6 +66,23 @@ export function getProcessInfoList(query) {
|
||||
});
|
||||
}
|
||||
|
||||
export function onSave(list) {
|
||||
return request({
|
||||
url: '/system/route/addRoute',
|
||||
method: 'post',
|
||||
data: list,
|
||||
})
|
||||
.then((response) => {
|
||||
|
||||
return response;
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error('Error saving route:', error);
|
||||
throw error;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// 删除工艺路线
|
||||
export function delRoute(id) {
|
||||
return request({
|
||||
|
||||
@ -42,3 +42,9 @@ export function delStockData(id) {
|
||||
method: 'delete'
|
||||
})
|
||||
}
|
||||
export function generateDoc() {
|
||||
return request({
|
||||
url: '/system/stockData/generateDoc', // 这个路径应该和你的后端接口路径一致
|
||||
method: 'post'
|
||||
});
|
||||
}
|
||||
|
||||
@ -3,14 +3,19 @@ import clonedeep from "lodash.clonedeep";
|
||||
|
||||
const tableDrag = {
|
||||
bind(el, binding) {
|
||||
// 这里是定义了一个对象只接收value和arg
|
||||
const { value, arg } = binding;
|
||||
// 如果没有获取到元素节点
|
||||
if (!el) {
|
||||
return;
|
||||
}
|
||||
// 定义对象,如果没有的话为空
|
||||
const { elementSeletor, onEnd, ...config } = arg || {};
|
||||
// 三元表达式判断元素节点是否为空,不为空则选择到el中指定的节点
|
||||
const bindEls = elementSeletor ? el.querySelector(elementSeletor) : el;
|
||||
// 创建
|
||||
el.sortable = sortable.create(bindEls, {
|
||||
animation: 150,
|
||||
animation: 150,//动画时长设置 ms
|
||||
ghostClass: "blue-background-class",
|
||||
...config,
|
||||
handle: ".handle",
|
||||
|
||||
@ -145,7 +145,7 @@
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" row-key="id" :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
|
||||
:data="detailsList" @selection-change="handleSelectionChange">
|
||||
:data="detailsList" border @selection-change="handleSelectionChange">
|
||||
<el-table-column type="selection" width="55" align="center"/>
|
||||
<!-- // <el-table-column label="id" align="center" prop="id" v-if="true"/>-->
|
||||
<el-table-column label="生产令号" align="center" prop="totalWeight"/>
|
||||
|
||||
@ -100,7 +100,7 @@
|
||||
<el-form :model="queryParams">
|
||||
<el-form-item label="项目令号" prop="routeDescription">
|
||||
<el-select v-model="queryParams.routeDescription" filterable remote :remote-method="handleQuery1"
|
||||
placeholder="请输入令号" clearable :loading="loading">
|
||||
placeholder="请输入令号" clearable :loading="loading">
|
||||
<el-option v-for="item in projectCodes" :key="item" :label="item" :value="item"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
@ -109,87 +109,83 @@
|
||||
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<!-- <el-form-item label="工序控制" prop="processControl">
|
||||
<el-input v-model="queryParams.processControl" placeholder="请输入工序控制" clearable
|
||||
@keyup.enter.native="handleQuery"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="活动时长" prop="activityDuration">
|
||||
<el-input v-model="queryParams.activityDuration" placeholder="请输入活动时长" clearable
|
||||
@keyup.enter.native="handleQuery"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="活动单位" prop="activityUnit">
|
||||
<el-input v-model="queryParams.activityUnit" placeholder="请输入活动单位" clearable
|
||||
@keyup.enter.native="handleQuery"/>
|
||||
</el-form-item>-->
|
||||
<!-- <el-form-item label="工序控制" prop="processControl">
|
||||
<el-input v-model="queryParams.processControl" placeholder="请输入工序控制" clearable
|
||||
@keyup.enter.native="handleQuery"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="活动时长" prop="activityDuration">
|
||||
<el-input v-model="queryParams.activityDuration" placeholder="请输入活动时长" clearable
|
||||
@keyup.enter.native="handleQuery"/>
|
||||
</el-form-item>
|
||||
<el-form-item label="活动单位" prop="activityUnit">
|
||||
<el-input v-model="queryParams.activityUnit" placeholder="请输入活动单位" clearable
|
||||
@keyup.enter.native="handleQuery"/>
|
||||
</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="['system:route:add']">新增
|
||||
v-hasPermi="['system:route: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="['system:route:edit']">修改
|
||||
v-hasPermi="['system:route: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="['system:route:remove']">删除
|
||||
v-hasPermi="['system:route: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="['system:route:export']">导出
|
||||
v-hasPermi="['system:route:export']">导出
|
||||
</el-button>
|
||||
</el-col>
|
||||
|
||||
<el-col :span="1.5">
|
||||
<el-button type="info" plain icon="el-icon-upload2" size="mini" @click="handleImport"
|
||||
v-hasPermi="['system:details:import']">导入工艺
|
||||
v-hasPermi="['system:details:import']">导入工艺
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="info" plain icon="el-icon-upload" size="mini" @click="pushRouteBom"
|
||||
v-hasPermi="['system:details:import']">推送工艺
|
||||
v-hasPermi="['system:details:import']">推送工艺
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="info" plain icon="el-icon-upload" size="mini" @click="updateProcessPlan"
|
||||
v-hasPermi="['system:details:import']">更新计划时间
|
||||
v-hasPermi="['system:details:import']">更新计划时间
|
||||
</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button type="info" plain icon="el-icon-upload" size="mini" @click="generatePDFs"
|
||||
v-hasPermi="['system:details:import']">生成PDF
|
||||
v-hasPermi="['system:details:import']">生成PDF
|
||||
</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-form :inline="true" :model="list" ref="ruleForm" size="mini" :rules="rules">
|
||||
<el-table v-if="showtable" v-loading="loading" row-key="id" ref="tree" v-drag:[config]="routeList"
|
||||
:tree-props="{ children: 'children' }" :data="routeList" stripe :row-class-name="tableRowClassName"
|
||||
:cell-style="columnStyle" border max-height="680px" @cell-click="cellhand" :default-expand-all="true"
|
||||
@selection-change="handleSelectionChange">
|
||||
<el-form :inline="true" :model="form" ref="ruleForm" size="mini" :rules="rules">
|
||||
<el-table v-if="showtable" v-loading="loading" row-key="id" ref="tree" v-drag:[config]="form.routeList"
|
||||
:tree-props="{ children: 'children' }" :data="form.routeList" stripe :row-class-name="tableRowClassName"
|
||||
:cell-style="columnStyle" border max-height="680px" @cell-click="cellhand" :default-expand-all="true"
|
||||
@selection-change="handleSelectionChange">
|
||||
|
||||
<el-table-column type="selection" width="55" align="center"/>
|
||||
<el-table-column type="selection" width="55" align="center" />
|
||||
<!-- <el-table-column label="主键ID" align="center" prop="id" v-if="true"/>-->
|
||||
<el-table-column label="操作" align="center">
|
||||
<template slot-scope="props">
|
||||
<!-- <el-button type="text" icon="el-icon-check" v-if="scope.row.id < 0" @click="onSaveChild()" /> -->
|
||||
<!-- <fromed v-if="props.row.parentId" /> -->
|
||||
<!-- {{props.row.materialCode}} -->
|
||||
<el-button
|
||||
v-if="props.row.parentId"
|
||||
size="mini"
|
||||
class="handle"
|
||||
icon="el-icon el-icon-rank"/>
|
||||
<el-button v-if="props.row.parentId" size="mini" class="handle" icon="el-icon el-icon-rank" />
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
@ -199,20 +195,20 @@
|
||||
scope.row.routeDescription }}</router-link>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
<el-table-column label="物料编码" width="100" align="center" prop="materialCode"/>
|
||||
<el-table-column label="名称" width="100" align="center" prop="materialName"/>
|
||||
<el-table-column label="材质" width="80" align="center" prop="material"/>
|
||||
<el-table-column label="单重" width="60" align="center" prop="discWeight"/>
|
||||
<el-table-column label="物料编码" width="100" align="center" prop="materialCode" />
|
||||
<el-table-column label="名称" width="100" align="center" prop="materialName" />
|
||||
<el-table-column label="材质" width="80" align="center" prop="material" />
|
||||
<el-table-column label="单重" width="60" align="center" prop="discWeight" />
|
||||
<!--
|
||||
<el-table-column label="材料BOM物料编码" width="220"align="center" prop="rawMaterialCode" />
|
||||
<el-table-column label="材料BOM物料名称"width="220" align="center" prop="rawMaterialName" />
|
||||
<el-table-column label="用量"width="60"align="center" prop="discUsage" />
|
||||
<el-table-column label="单位"width="60" align="center" prop="bomUnit" />-->
|
||||
<el-table-column label="工序号" width="60" align="center" prop="processNo"/>
|
||||
<el-table-column label="工作中心" width="150" align="center" prop="workCenter">
|
||||
<el-table-column label="工序号" width="60" align="center" prop="processNo" />
|
||||
<el-table-column label="工作中心" width="150" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-form-item v-if="scope.row.id < 0" :prop="'list.' + scope.$index + '.key'">
|
||||
<el-select v-model="queryParams.workCenter" placeholder="工作中心" clearable @keyup.enter.native="handleQuery2">
|
||||
<el-form-item v-if="scope.row.id < 0" :prop="'routeList.' + scope.$index + '.workCenter'">
|
||||
<el-select v-model="scope.row.workCenter" placeholder="工作中心" clearable @keyup.enter.native="handleQuery2">
|
||||
<el-option label="机一工段" value="机一工段"></el-option>
|
||||
<el-option label="机二工段" value="机二工段"></el-option>
|
||||
<el-option label="机三工段" value="机三工段"></el-option>
|
||||
@ -223,37 +219,55 @@
|
||||
<el-option label="委外中心" value="委外中心"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<span v-else>{{ scope.row.workCenter }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="工序名称" width="150" align="center" prop="processName">
|
||||
<el-table-column label="工序名称" width="150" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-form-item v-if="scope.row.id < 0" :prop="'list.' + scope.$index + '.key1'">
|
||||
<el-select v-model="queryParams.processName" filterable remote :remote-method="handleQuery3"
|
||||
placeholder="请输入工序名称" clearable :loading="loading" @change="handleProcessNameChange(scope)">
|
||||
<el-form-item v-if="scope.row.id < 0" :prop="'routeList.' + scope.$index + '.processName'">
|
||||
<el-select v-model="scope.row.processName" filterable remote :remote-method="handleQuery3"
|
||||
placeholder="请输入工序名称" clearable :loading="loading" @change="handleProcessNameChange(scope)">
|
||||
<el-option v-for="item in processName" :key="item" :label="item" :value="item"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<span v-else>{{ scope.row.processName }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="工序说明" width="300" align="center" prop="processDescription">
|
||||
<el-table-column label="工序说明" width="300" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-form-item v-if="scope.row.id < 0" :prop="'list.' + scope.$index + '.key2'">
|
||||
<el-input v-model="list.key2"></el-input>
|
||||
<el-form-item v-if="scope.row.id < 0" :prop="'routeList.' + scope.$index + '.processDescription'">
|
||||
<el-input v-model="scope.row.processDescription"></el-input>
|
||||
</el-form-item>
|
||||
<span v-else>{{ scope.row.processDescription }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="工序控制" width="220" align="center" prop="processControl">
|
||||
<el-table-column label="工序控制" width="220" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-form-item v-if="scope.row.id < 0" :prop="'list.' + scope.$index + '.key3'">
|
||||
<el-input v-model="list.key3"></el-input>
|
||||
<el-form-item v-if="scope.row.id < 0" :prop="'routeList.' + scope.$index + '.processControl'">
|
||||
<el-select v-model="scope.row.processControl" placeholder="工序控制" clearable @keyup.enter.native="handleQuery2">
|
||||
<el-option label="汇报+免检" value="汇报+免检"></el-option>
|
||||
<el-option label="委外+质量" value="委外+质量"></el-option>
|
||||
<el-option label="汇报+质量" value="汇报+质量"></el-option>
|
||||
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<span v-else>{{ scope.row.processControl }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="活动时长" align="center" prop="activityDuration"/>
|
||||
<el-table-column label="活动单位" align="center" prop="activityUnit"/>
|
||||
|
||||
<el-table-column label="活动时长" align="center" prop="activityDuration">
|
||||
<template slot-scope="scope">
|
||||
<el-form-item v-if="scope.row.id < 0" :prop="'routeList.' + scope.$index + '.activityDuration'">
|
||||
<el-input v-model="scope.row.activityDuration"></el-input>
|
||||
</el-form-item>
|
||||
<span v-else>{{ scope.row.activityDuration }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="活动单位" align="center" prop="activityUnit" />
|
||||
<el-table-column label="序开始时间" align="center" prop="xuStartTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.xuStartTime, '{y}-{m}-{d}') }}</span>
|
||||
@ -264,10 +278,10 @@
|
||||
<span>{{ parseTime(scope.row.xuEndTime, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="材料BOM单位" align="center" prop="bomUnit"/>
|
||||
<el-table-column label="单台数量" align="center" prop="unitQuantity"/>
|
||||
<el-table-column label="本批数量" align="center" prop="batchQuantity"/>
|
||||
<el-table-column label="首批数量" align="center" prop="firstBatchQuantity"/>
|
||||
<el-table-column label="单位" align="center" prop="bomUnit" />
|
||||
<el-table-column label="单台数量" align="center" prop="unitQuantity" />
|
||||
<el-table-column label="本批数量" align="center" prop="batchQuantity" />
|
||||
<el-table-column label="首批数量" align="center" prop="firstBatchQuantity" />
|
||||
<el-table-column label="计划开始时间" align="center" prop="planStartTime" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.planStartTime, '{y}-{m}-{d}') }}</span>
|
||||
@ -280,23 +294,23 @@
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column class="maxWidth" label="操作" width="220" fixed="right" align="center"
|
||||
class-name="small-padding fixed-width">
|
||||
class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button class="btn" size="mini" @click="onAddChild(scope)" v-if="!scope.row.parentId">
|
||||
添加工艺
|
||||
</el-button>
|
||||
<el-button class="btn" size="mini" type="success" @click="onSave(scope)"
|
||||
v-if="!scope.row.parentId && showParentSaveBtn === scope.row.id">
|
||||
v-if="!scope.row.parentId && showParentSaveBtn === scope.row.id">
|
||||
保存工艺
|
||||
</el-button>
|
||||
<el-button class="btn" size="mini" type="danger" @click="onDelete(scope)" v-if="scope.row.id < 0">
|
||||
删除工艺
|
||||
</el-button>
|
||||
<el-button class="btn" size="mini" type="primary" @click="handleUpdate(scope.row)"
|
||||
v-hasPermi="['system:route:edit']" v-if="scope.row.id > 0 && scope.row.parentId">修改
|
||||
v-hasPermi="['system:route:edit']" v-if="scope.row.id > 0 && scope.row.parentId">修改
|
||||
</el-button>
|
||||
<el-button class="btn" size="mini" type="danger" @click="handleDelete(scope.row)"
|
||||
v-hasPermi="['system:route:remove']" v-if="scope.row.id > 0">删除
|
||||
v-hasPermi="['system:route:remove']" v-if="scope.row.id > 0">删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
@ -304,55 +318,55 @@
|
||||
</el-form>
|
||||
|
||||
<pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
|
||||
@pagination="getList"/>
|
||||
@pagination="getList" />
|
||||
|
||||
<!-- 添加或修改工艺路线对话框 -->
|
||||
<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="routeDescription">
|
||||
<el-input v-model="form.routeDescription" placeholder="请输入工艺路线描述"/>
|
||||
<el-input v-model="form.routeDescription" placeholder="请输入工艺路线描述" />
|
||||
</el-form-item>
|
||||
<el-form-item label="物料编码" prop="materialCode">
|
||||
<el-input v-model="form.materialCode" placeholder="请输入物料编码"/>
|
||||
<el-input v-model="form.materialCode" placeholder="请输入物料编码" />
|
||||
</el-form-item>
|
||||
<el-form-item label="物料名称" prop="materialName">
|
||||
<el-input v-model="form.materialName" placeholder="请输入物料名称"/>
|
||||
<el-input v-model="form.materialName" placeholder="请输入物料名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="单位" prop="bomUnit">
|
||||
<el-input v-model="form.bomUnit" placeholder="请输入单位"/>
|
||||
<el-input v-model="form.bomUnit" placeholder="请输入单位" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工序号" prop="processNo">
|
||||
<el-input v-model="form.processNo" placeholder="请输入工序号"/>
|
||||
<el-input v-model="form.processNo" placeholder="请输入工序号" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工作中心" prop="workCenter">
|
||||
<el-input v-model="form.workCenter" placeholder="请输入工作中心"/>
|
||||
<el-input v-model="form.workCenter" placeholder="请输入工作中心" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工序名称" prop="processName">
|
||||
<el-input v-model="form.processName" placeholder="请输入工序名称"/>
|
||||
<el-input v-model="form.processName" placeholder="请输入工序名称" />
|
||||
</el-form-item>
|
||||
<el-form-item label="原材料编码" prop="rawMaterialCode">
|
||||
<el-input v-model="form.rawMaterialCode" placeholder="请输入原材料编码"/>
|
||||
<el-input v-model="form.rawMaterialCode" placeholder="请输入原材料编码" />
|
||||
</el-form-item>
|
||||
<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 label="金碟重量" prop="discWeight">
|
||||
<el-input v-model="form.discWeight" placeholder="请输入金碟重量"/>
|
||||
<el-input v-model="form.discWeight" placeholder="请输入金碟重量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="金碟用量" prop="discUsage">
|
||||
<el-input v-model="form.discUsage" placeholder="请输入金碟用量"/>
|
||||
<el-input v-model="form.discUsage" placeholder="请输入金碟用量" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工序说明" prop="processDescription">
|
||||
<el-input v-model="form.processDescription" type="textarea" placeholder="请输入内容"/>
|
||||
<el-input v-model="form.processDescription" type="textarea" placeholder="请输入内容" />
|
||||
</el-form-item>
|
||||
<el-form-item label="工序控制" prop="processControl">
|
||||
<el-input v-model="form.processControl" placeholder="请输入工序控制"/>
|
||||
<el-input v-model="form.processControl" placeholder="请输入工序控制" />
|
||||
</el-form-item>
|
||||
<el-form-item label="活动时长" prop="activityDuration">
|
||||
<el-input v-model="form.activityDuration" placeholder="请输入活动时长"/>
|
||||
<el-input v-model="form.activityDuration" placeholder="请输入活动时长" />
|
||||
</el-form-item>
|
||||
<el-form-item label="活动单位" prop="activityUnit">
|
||||
<el-input v-model="form.activityUnit" placeholder="请输入活动单位"/>
|
||||
<el-input v-model="form.activityUnit" placeholder="请输入活动单位" />
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
@ -363,13 +377,13 @@
|
||||
<!-- 导入导入对话框 -->
|
||||
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
|
||||
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
|
||||
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
|
||||
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
|
||||
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
|
||||
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
|
||||
<i class="el-icon-upload"></i>
|
||||
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
|
||||
<div class="el-upload__tip text-center" slot="tip">
|
||||
<div class="el-upload__tip" slot="tip">
|
||||
<el-checkbox v-model="upload.updateSupport"/>
|
||||
<el-checkbox v-model="upload.updateSupport" />
|
||||
是否更新已经存在的物料数据
|
||||
</div>
|
||||
<span>仅允许导入xls、xlsx格式文件。</span>
|
||||
@ -386,15 +400,16 @@
|
||||
<el-drawer title="添加BOM" :visible.sync="BOMpop" :before-close="bomClose" :size="850">
|
||||
<div style="padding: 20px;">
|
||||
<el-table :data="bomList" stripe max-height="400px" border>
|
||||
<el-table-column label="生产令号" width="100" align="center" prop="projectNumber"/>
|
||||
<el-table-column label="物料编码" width="150" align="center" prop="materialCode"/>
|
||||
<el-table-column label="物料名称" width="150" align="center" prop="materialName"/>
|
||||
<el-table-column label="材质" width="70" align="center" prop="materialType"/>
|
||||
<el-table-column label="用量" width="88" align="center" prop="quantity"/>
|
||||
<el-table-column label="单位" width="88" align="center" prop="unit"/>
|
||||
<el-table-column class="maxWidth" label="操作" width="150" fixed="right" align="center" class-name="small-padding fixed-width" />
|
||||
<el-table-column label="生产令号" width="100" align="center" prop="projectNumber" />
|
||||
<el-table-column label="物料编码" width="150" align="center" prop="materialCode" />
|
||||
<el-table-column label="物料名称" width="150" align="center" prop="materialName" />
|
||||
<el-table-column label="材质" width="70" align="center" prop="materialType" />
|
||||
<el-table-column label="用量" width="88" align="center" prop="quantity" />
|
||||
<el-table-column label="单位" width="88" align="center" prop="unit" />
|
||||
<el-table-column class="maxWidth" label="操作" width="150" fixed="right" align="center"
|
||||
class-name="small-padding fixed-width" />
|
||||
</el-table>
|
||||
<Bomfrom v-if="BOMpop" style="padding-top: 20px;"/>
|
||||
<Bomfrom v-if="BOMpop" style="padding-top: 20px;" />
|
||||
</div>
|
||||
</el-drawer>
|
||||
</div>
|
||||
@ -411,12 +426,10 @@ import {
|
||||
updateProcessPlan, generatePDFs
|
||||
} from "@/api/system/route";
|
||||
import upload from "svg-sprite-loader/examples/custom-runtime-generator/build/main";
|
||||
import {getToken} from "../../../utils/auth";
|
||||
import { getToken } from "../../../utils/auth";
|
||||
import Fromed from './fromed'
|
||||
import Bomfrom from './bomfrom'
|
||||
// 引用拖动排序列表的js插件
|
||||
import Sortable from 'sortablejs'
|
||||
import {getProcessInfoList, pushRouteBom} from "../../../api/system/route";
|
||||
import { getProcessInfoList, pushRouteBom, onSave } from "../../../api/system/route";
|
||||
|
||||
export default {
|
||||
name: "",
|
||||
@ -461,8 +474,10 @@ export default {
|
||||
showParentSaveBtn: null,
|
||||
// 总条数
|
||||
total: 0,
|
||||
// 工艺路线表格数据
|
||||
routeList: [],
|
||||
form: {
|
||||
// 工艺路线表格数据
|
||||
routeList: [],
|
||||
},
|
||||
// 弹出层标题
|
||||
title: "",
|
||||
// 是否显示弹出层
|
||||
@ -470,7 +485,7 @@ export default {
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 100,
|
||||
pageSize: 500,
|
||||
routeDescription: [],
|
||||
materialCode: undefined,
|
||||
materialName: undefined,
|
||||
@ -550,20 +565,14 @@ export default {
|
||||
// 表单参数
|
||||
form: {},
|
||||
projectCodes: [], // 存储查询到的项目令号
|
||||
processName:[],
|
||||
processName: [],
|
||||
activeRows: [], // 转换为列表的数据
|
||||
config: {
|
||||
elementSeletor: "tbody",
|
||||
filter: ".filtered",
|
||||
elementSeletor: "tbody", //元素选择
|
||||
filter: ".filtered", // 过滤
|
||||
onEnd: (event, oldValue, newValue) => {
|
||||
console.log(
|
||||
"源数据",
|
||||
oldValue.map((i) => i.date)
|
||||
);
|
||||
console.log(
|
||||
"改变后的数据",
|
||||
newValue.map((i) => i.date)
|
||||
);
|
||||
console.log("源数据", oldValue);
|
||||
console.log("改变后的数据", newValue);
|
||||
},
|
||||
},
|
||||
upload: {
|
||||
@ -576,91 +585,69 @@ export default {
|
||||
// 是否更新已经存在的用户数据
|
||||
updateSupport: 0,
|
||||
// 设置上传的请求头部
|
||||
headers: {Authorization: "Bearer " + getToken()},
|
||||
headers: { Authorization: "Bearer " + getToken() },
|
||||
// 上传的地址
|
||||
url: process.env.VUE_APP_BASE_API + "/system/route/importData"
|
||||
},
|
||||
id: 0,//动态增加表格列的ID
|
||||
list: {
|
||||
key1: '',
|
||||
key2: '',
|
||||
key3: '',
|
||||
key4: '',
|
||||
key5: ''
|
||||
},
|
||||
// 表单校验
|
||||
rules: {
|
||||
id: [
|
||||
{required: true, message: "主键ID不能为空", trigger: "blur"}
|
||||
{ required: true, message: "主键ID不能为空", trigger: "blur" }
|
||||
],
|
||||
routeDescription: [
|
||||
{required: true, message: "工艺路线描述不能为空", trigger: "blur"}
|
||||
{ required: true, message: "工艺路线描述不能为空", trigger: "blur" }
|
||||
],
|
||||
materialCode: [
|
||||
{required: true, message: "物料编码不能为空", trigger: "blur"}
|
||||
{ required: true, message: "物料编码不能为空", trigger: "blur" }
|
||||
],
|
||||
materialName: [
|
||||
{required: true, message: "物料名称不能为空", trigger: "blur"}
|
||||
{ required: true, message: "物料名称不能为空", trigger: "blur" }
|
||||
],
|
||||
bomUnit: [
|
||||
{required: true, message: "单位不能为空", trigger: "blur"}
|
||||
{ required: true, message: "单位不能为空", trigger: "blur" }
|
||||
],
|
||||
processNo: [
|
||||
{required: true, message: "工序号不能为空", trigger: "blur"}
|
||||
{ required: true, message: "工序号不能为空", trigger: "blur" }
|
||||
],
|
||||
workCenter: [
|
||||
{required: true, message: "工作中心不能为空", trigger: "blur"}
|
||||
{ required: true, message: "工作中心不能为空", trigger: "blur" }
|
||||
],
|
||||
processName: [
|
||||
{required: true, message: "工序名称不能为空", trigger: "blur"}
|
||||
{ required: true, message: "工序名称不能为空", trigger: "blur" }
|
||||
],
|
||||
rawMaterialCode: [
|
||||
{required: true, message: "原材料编码不能为空", trigger: "blur"}
|
||||
{ required: true, message: "原材料编码不能为空", trigger: "blur" }
|
||||
],
|
||||
rawMaterialName: [
|
||||
{required: true, message: "原材料名称不能为空", trigger: "blur"}
|
||||
{ required: true, message: "原材料名称不能为空", trigger: "blur" }
|
||||
],
|
||||
discWeight: [
|
||||
{required: true, message: "金碟重量不能为空", trigger: "blur"}
|
||||
{ required: true, message: "金碟重量不能为空", trigger: "blur" }
|
||||
],
|
||||
discUsage: [
|
||||
{required: true, message: "金碟用量不能为空", trigger: "blur"}
|
||||
{ required: true, message: "金碟用量不能为空", trigger: "blur" }
|
||||
],
|
||||
processDescription: [
|
||||
{required: true, message: "工序说明不能为空", trigger: "blur"}
|
||||
{ required: true, message: "工序说明不能为空", trigger: "blur" }
|
||||
],
|
||||
processControl: [
|
||||
{required: true, message: "工序控制不能为空", trigger: "blur"}
|
||||
{ required: true, message: "工序控制不能为空", trigger: "blur" }
|
||||
],
|
||||
activityDuration: [
|
||||
{required: true, message: "活动时长不能为空", trigger: "blur"}
|
||||
{ required: true, message: "活动时长不能为空", trigger: "blur" }
|
||||
],
|
||||
activityUnit: [
|
||||
{required: true, message: "活动单位不能为空", trigger: "blur"}
|
||||
{ required: true, message: "活动单位不能为空", trigger: "blur" }
|
||||
],
|
||||
createBy: [
|
||||
{required: true, message: "创建者不能为空", trigger: "blur"}
|
||||
{ required: true, message: "创建者不能为空", trigger: "blur" }
|
||||
],
|
||||
createTime: [
|
||||
{required: true, message: "创建时间不能为空", trigger: "blur"}
|
||||
{ required: true, message: "创建时间不能为空", trigger: "blur" }
|
||||
],
|
||||
updateTime: [
|
||||
{required: true, message: "更新时间不能为空", trigger: "blur"}
|
||||
],
|
||||
key1: [
|
||||
{required: true, message: "请选择工作中心", trigger: "blur"}
|
||||
],
|
||||
key2: [
|
||||
{required: true, message: "请选择工序名称", trigger: "blur"}
|
||||
],
|
||||
key3: [
|
||||
{required: true, message: "请输入工序说明", trigger: "blur"}
|
||||
],
|
||||
key4: [
|
||||
{required: true, message: "请选择工序控制", trigger: "blur"}
|
||||
],
|
||||
key5: [
|
||||
{required: true, message: "请输入活动时长", trigger: "blur"}
|
||||
{ required: true, message: "更新时间不能为空", trigger: "blur" }
|
||||
]
|
||||
}
|
||||
};
|
||||
@ -684,37 +671,38 @@ export default {
|
||||
this.rowDrop();
|
||||
},
|
||||
methods: {
|
||||
handleProcessNameChange(scope){
|
||||
handleProcessNameChange(scope) {
|
||||
console.log(scope)
|
||||
const selectedProcessName = scope.row.processName;
|
||||
console.log(selectedProcessName)
|
||||
if (this.processToWorkCenterMap[selectedProcessName]){
|
||||
if (this.processToWorkCenterMap[selectedProcessName]) {
|
||||
scope.row.workCenter = this.processToWorkCenterMap[selectedProcessName];
|
||||
}else{
|
||||
} else {
|
||||
scope.row.workCenter = '';
|
||||
}
|
||||
},
|
||||
},
|
||||
|
||||
handleQuery3(query) {
|
||||
if (query === '') {
|
||||
this.processName = [];
|
||||
return;
|
||||
}
|
||||
// 开始加载
|
||||
this.loading = true;
|
||||
// 调用后端接口获取匹配的项目令号
|
||||
getProcessInfoList(query).then((response) => {
|
||||
// 加载完成
|
||||
this.loading = false;
|
||||
this.processName = response;
|
||||
handleQuery3(query) {
|
||||
if (query === '') {
|
||||
this.processName = [];
|
||||
return;
|
||||
}
|
||||
// 开始加载
|
||||
this.loading = true;
|
||||
// 调用后端接口获取匹配的项目令号
|
||||
getProcessInfoList(query).then((response) => {
|
||||
// 加载完成
|
||||
this.loading = false;
|
||||
this.processName = response;
|
||||
|
||||
}).catch(() => {
|
||||
this.loading = false; // 加载失败
|
||||
this.processName = []; // 如果请求失败,清空选项
|
||||
});
|
||||
},
|
||||
|
||||
tableRowClassName({row, rowIndex}) {
|
||||
}).catch(() => {
|
||||
this.loading = false; // 加载失败
|
||||
this.processName = []; // 如果请求失败,清空选项
|
||||
});
|
||||
},
|
||||
// 控制表格可移动部分
|
||||
tableRowClassName({ row, rowIndex }) {
|
||||
// 过滤掉父节点
|
||||
if (!row.parentId) {
|
||||
return "filtered";
|
||||
}
|
||||
@ -723,33 +711,63 @@ export default {
|
||||
// 添加子集
|
||||
onAddChild(props) {
|
||||
// 是否为父级,返回父级所在下标
|
||||
var index = this.routeList.findIndex(item => item.id === props.row.id);
|
||||
var index = this.form.routeList.findIndex(item => item.id === props.row.id);
|
||||
// -1为未检索到,不为父级
|
||||
if (index === -1) {
|
||||
alert("刷新试试,为检索到此目录,可能不存在")
|
||||
return;
|
||||
}
|
||||
|
||||
var routeList = this.routeList[index].children;
|
||||
var routeList = this.form.routeList[index].children;
|
||||
var route = routeList.sort(function (a, b) {
|
||||
return a.processNo - b.processNo
|
||||
})[routeList.length - 1];
|
||||
var processNo = !route ? 0 : route.processNo + 10;
|
||||
routeList.push({id: --this.id, parentId: props.row.id, processNo: processNo, children: null});
|
||||
routeList.push({ id: --this.id, parentId: props.row.id, processNo: processNo, children: null });
|
||||
this.showParentSaveBtn = props.row.id;
|
||||
},
|
||||
// 保存子集
|
||||
onSave(props) {
|
||||
// 找到需要保存的新加子集
|
||||
var list = this.form.routeList.find(item => item.id === props.row.id);
|
||||
var newChildrenList = list.children.filter(item => item.id < 0).map(v => ({
|
||||
id: v.parentId,
|
||||
routeDescription: list.routeDescription,
|
||||
materialCode: list.materialCode,
|
||||
materialName: list.materialName,
|
||||
material: list.material,
|
||||
discWeight: list.discWeight,
|
||||
processNo: v.processNo,
|
||||
workCenter: v.workCenter,
|
||||
processControl: v.processControl,
|
||||
processDescription: v.processDescription,
|
||||
processName: v.processName,
|
||||
activityDuration: v.activityDuration
|
||||
}))
|
||||
|
||||
// 调用后端保存
|
||||
onSave(newChildrenList)
|
||||
.then((response) => {
|
||||
Messages.success('工艺路线保存成功');
|
||||
// 刷新表格
|
||||
this.getList();
|
||||
})
|
||||
.catch((error) => {
|
||||
Messages.error('工艺路线保存失败');
|
||||
});
|
||||
},
|
||||
// 删除子集
|
||||
onDelete(props) {
|
||||
// 获取父级的所在下标
|
||||
var index = this.routeList.findIndex(item => item.id === props.row.parentId);
|
||||
var index = this.form.routeList.findIndex(item => item.id === props.row.parentId);
|
||||
// 获取子集的所在下标
|
||||
var childrenIndex = this.routeList[index].children.findIndex(item => item.id === props.row.id);
|
||||
var childrenIndex = this.form.routeList[index].children.findIndex(item => item.id === props.row.id);
|
||||
// 找到子集并删除
|
||||
this.routeList[index].children.splice(childrenIndex, 1);
|
||||
this.form.routeList[index].children.splice(childrenIndex, 1);
|
||||
// 修改其它子集的工序号
|
||||
for (let i = 0; i < this.routeList[index].children.length; i++) {
|
||||
for (let i = 0; i < this.form.routeList[index].children.length; i++) {
|
||||
// 修改子集中工序号
|
||||
this.routeList[index].children[i].processNo = (i + 1) * 10;
|
||||
this.form.routeList[index].children[i].processNo = (i + 1) * 10;
|
||||
}
|
||||
},
|
||||
cellhand(row, column) {
|
||||
@ -779,7 +797,7 @@ export default {
|
||||
getList() {
|
||||
this.loading = true;
|
||||
listRoute(this.queryParams).then(response => {
|
||||
this.routeList = response.rows;
|
||||
this.form.routeList = response.rows;
|
||||
this.total = response.total;
|
||||
this.loading = false;
|
||||
});
|
||||
@ -830,7 +848,7 @@ export default {
|
||||
this.upload.isUploading = false;
|
||||
this.$refs.upload.clearFiles();
|
||||
this.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>"
|
||||
+ response.msg + "</div>", "导入结果", {dangerouslyUseHTMLString: true});
|
||||
+ response.msg + "</div>", "导入结果", { dangerouslyUseHTMLString: true });
|
||||
this.getList();
|
||||
},
|
||||
// 提交上传文件
|
||||
@ -945,7 +963,7 @@ export default {
|
||||
// 假设后端返回的数据可以直接赋值给表单
|
||||
this.form = response;
|
||||
// 弹出成功消息
|
||||
this.$modal.msgSuccess("更新"+rooteProdet+"工序计划时间成功");
|
||||
this.$modal.msgSuccess("更新" + rooteProdet + "工序计划时间成功");
|
||||
// 调用方法更新列表
|
||||
this.getList();
|
||||
})
|
||||
@ -975,7 +993,7 @@ export default {
|
||||
// 假设后端返回的数据可以直接赋值给表单
|
||||
this.form = response;
|
||||
// 弹出成功消息
|
||||
this.$modal.msgSuccess("生成"+rooteProdet+"的PDF 成功 ");
|
||||
this.$modal.msgSuccess("生成" + rooteProdet + "的PDF 成功 ");
|
||||
// 调用方法更新列表
|
||||
this.getList();
|
||||
})
|
||||
@ -991,8 +1009,6 @@ export default {
|
||||
},
|
||||
|
||||
|
||||
|
||||
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
|
||||
@ -90,6 +90,16 @@
|
||||
v-hasPermi="['system:stockData:export']"
|
||||
>导出</el-button>
|
||||
</el-col>
|
||||
<el-col :span="1.5">
|
||||
<el-button
|
||||
type="warning"
|
||||
plain
|
||||
icon="el-icon-download"
|
||||
size="mini"
|
||||
@click="generateDoc"
|
||||
v-hasPermi="['system:stockData:generateDoc']"
|
||||
>生成安全库存单据</el-button>
|
||||
</el-col>
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
@ -167,7 +177,15 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { listStockData, getStockData, delStockData, addStockData, updateStockData } from "@/api/system/stockData";
|
||||
import {
|
||||
listStockData,
|
||||
getStockData,
|
||||
delStockData,
|
||||
addStockData,
|
||||
updateStockData,
|
||||
generateDoc
|
||||
} from "@/api/system/stockData";
|
||||
import {listRoute} from "@/api/system/route";
|
||||
|
||||
export default {
|
||||
name: "StockData",
|
||||
@ -358,7 +376,28 @@ export default {
|
||||
this.download('system/stockData/export', {
|
||||
...this.queryParams
|
||||
}, `stockData_${new Date().getTime()}.xlsx`)
|
||||
}
|
||||
},
|
||||
generateDoc() {
|
||||
this.loading = true;
|
||||
generateDoc().then(response => {
|
||||
this.loading = false;
|
||||
// 假设后端响应数据格式
|
||||
if (response.code === 200) {
|
||||
const stockDataList = response.data;
|
||||
} else {
|
||||
this.$message.error('生成安全库存单据失败,请稍后再试');
|
||||
}
|
||||
// 执行完后刷新页面
|
||||
this.refreshPage();
|
||||
})
|
||||
.catch((error) => {
|
||||
this.loading = false;
|
||||
console.error('请求错误:', error);
|
||||
this.$message.error('请求失败,请检查网络连接');
|
||||
// 执行完后刷新页面
|
||||
this.refreshPage();
|
||||
});
|
||||
},
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user