Commit bfe55cbf authored by 全洪江's avatar 全洪江

量产申请单

parent 6ce827a7
import request from '@/utils/request'
// 查询【请填写功能名称】列表
export function listRequest(query) {
return request({
url: '/md/request/list',
method: 'get',
params: query
})
}
// 查询【请填写功能名称】详细
export function getRequest(productionRequestId) {
return request({
url: '/md/request/' + productionRequestId,
method: 'get'
})
}
// 新增【请填写功能名称】
export function addRequest(data) {
return request({
url: '/md/request',
method: 'post',
data: data
})
}
// 修改【请填写功能名称】
export function updateRequest(data) {
return request({
url: '/md/request',
method: 'put',
data: data
})
}
// 删除【请填写功能名称】
export function delRequest(productionRequestId) {
return request({
url: '/md/request/' + productionRequestId,
method: 'delete'
})
}
import request from '@/utils/request'
// 查询【请填写功能名称】列表
export function listBom(query) {
return request({
url: '/md/bom/list',
method: 'get',
params: query
})
}
// 查询【请填写功能名称】详细
export function getBom(bomItemId) {
return request({
url: '/md/bom/' + bomItemId,
method: 'get'
})
}
// 新增【请填写功能名称】
export function addBom(data) {
return request({
url: '/md/bom',
method: 'post',
data: data
})
}
// 修改【请填写功能名称】
export function updateBom(data) {
return request({
url: '/md/bom',
method: 'put',
data: data
})
}
// 删除【请填写功能名称】
export function delBom(bomItemId) {
return request({
url: '/md/bom/' + bomItemId,
method: 'delete'
})
}
import request from '@/utils/request'
// 查询【请填写功能名称】列表
export function listProcess(query) {
return request({
url: '/md/process/list',
method: 'get',
params: query
})
}
// 查询【请填写功能名称】详细
export function getProcess(productionRequestProcessId) {
return request({
url: '/md/process/' + productionRequestProcessId,
method: 'get'
})
}
// 新增【请填写功能名称】
export function addProcess(data) {
return request({
url: '/md/process',
method: 'post',
data: data
})
}
// 修改【请填写功能名称】
export function updateProcess(data) {
return request({
url: '/md/process',
method: 'put',
data: data
})
}
// 删除【请填写功能名称】
export function delProcess(productionRequestProcessId) {
return request({
url: '/md/process/' + productionRequestProcessId,
method: 'delete'
})
}
import request from '@/utils/request'
// 查询【请填写功能名称】列表
export function listItem(query) {
return request({
url: '/md/item/list',
method: 'get',
params: query
})
}
// 查询【请填写功能名称】详细
export function getItem(productionRequestProcessItemId) {
return request({
url: '/md/item/' + productionRequestProcessItemId,
method: 'get'
})
}
// 新增【请填写功能名称】
export function addItem(data) {
return request({
url: '/md/item',
method: 'post',
data: data
})
}
// 修改【请填写功能名称】
export function updateItem(data) {
return request({
url: '/md/item',
method: 'put',
data: data
})
}
// 删除【请填写功能名称】
export function delItem(productionRequestProcessItemId) {
return request({
url: '/md/item/' + productionRequestProcessItemId,
method: 'delete'
})
}
<template>
<el-dialog
title="物料产品选择"
v-if="showFlag"
:visible.sync="showFlag"
:modal="true"
width="80%"
center
append-to-body
>
<el-row :gutter="20">
<!--分类数据-->
<el-col :span="4" :xs="24">
<div class="head-container">
<el-input
v-model="itemTypeName"
placeholder="请输入分类名称"
clearable
size="small"
prefix-icon="el-icon-search"
style="margin-bottom: 20px"
/>
</div>
<div class="head-container">
<el-tree
:data="itemTypeOptions"
:props="defaultProps"
:expand-on-click-node="false"
:filter-node-method="filterNode"
ref="tree"
default-expand-all
@node-click="handleNodeClick"
/>
</div>
</el-col>
<!--物料数据-->
<el-col :span="20" :xs="24">
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="68px"
>
<el-form-item label="物料编码" prop="itemCode">
<el-input
v-model="queryParams.itemCode"
placeholder="请输入物料编码"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="物料名称" prop="itemName">
<el-input
v-model="queryParams.itemName"
placeholder="请输入物料名称"
clearable
style="width: 240px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<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-table
v-loading="loading"
:data="itemList"
@current-change="handleCurrent"
@row-dblclick="handleRowDbClick"
>
<el-table-column width="50" align="center">
<template v-slot="scope">
<el-radio
v-model="selectedItemId"
:label="scope.row.itemId"
@change="handleRowChange(scope.row)"
>{{ "" }}</el-radio
>
</template>
</el-table-column>
<el-table-column
label="物料编码"
width="120"
align="center"
key="itemCode"
prop="itemCode"
v-if="columns[0].visible"
>
</el-table-column>
<el-table-column
label="物料名称"
min-width="120"
align="left"
key="itemName"
prop="itemName"
v-if="columns[1].visible"
:show-overflow-tooltip="true"
/>
<el-table-column
label="规格型号"
align="left"
key="specification"
prop="specification"
v-if="columns[2].visible"
:show-overflow-tooltip="true"
/>
<el-table-column
label="单位"
align="center"
key="unitOfMeasure"
prop="unitOfMeasure"
v-if="columns[3].visible"
:show-overflow-tooltip="true"
/>
<el-table-column
label="物料/产品"
align="center"
key="itemOrProduct"
prop="itemOrProduct"
v-if="columns[4].visible"
:show-overflow-tooltip="true"
>
<template slot-scope="scope">
<dict-tag
:options="dict.type.mes_item_product"
:value="scope.row.itemOrProduct"
/>
</template>
</el-table-column>
<el-table-column
label="所属分类"
align="center"
key="itemTypeName"
prop="itemTypeName"
v-if="columns[5].visible"
width="120"
/>
<el-table-column
label="备注"
align="center"
key="remark"
prop="remark"
v-if="columns[7].visible"
:show-overflow-tooltip="true"
width="160"
/>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
v-if="columns[6].visible"
width="160"
>
<template slot-scope="scope">
<span>{{ parseTime(scope.row.createTime) }}</span>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
</el-col>
</el-row>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="confirmSelect">确 定</el-button>
<el-button @click="showFlag = false">取 消</el-button>
</div>
</el-dialog>
</template>
<script>
import {
listMdItem,
getMdItem,
delMdItem,
addMdItem,
updateMdItem,
} from "@/api/mes/md/mdItem";
import { listAllUnitmeasure } from "@/api/mes/md/unitmeasure";
import { genCode } from "@/api/system/autocode/rule";
import { getToken } from "@/utils/auth";
import { treeselect } from "@/api/mes/md/itemtype";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
name: "MdItemSingle",
dicts: ["sys_yes_no", "mes_item_product"],
components: { Treeselect },
data() {
return {
showFlag: false,
// 选中数组
selectedItemId: undefined,
selectedRows: undefined,
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// 显示搜索条件
showSearch: true,
// 总条数
total: 0,
// 物料产品表格数据
itemList: null,
// 部门树选项
itemTypeOptions: undefined,
// 部门名称
itemTypeName: undefined,
defaultProps: {
children: "children",
label: "label",
},
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
itemCode: undefined,
itemName: undefined,
itemTypeId: 0,
},
// 列信息
columns: [
{ key: 0, label: `物料/产品编码`, visible: true },
{ key: 1, label: `物料/产品名称`, visible: true },
{ key: 2, label: `规格型号`, visible: true },
{ key: 3, label: `单位`, visible: true },
{ key: 4, label: `物料/产品`, visible: true },
{ key: 5, label: `物料分类`, visible: true },
{ key: 6, label: `创建时间`, visible: true },
{ key: 7, label: `备注`, visible: true },
],
};
},
watch: {
// 根据名称筛选分类树
itemTypeName(val) {
this.$refs.tree.filter(val);
},
},
created() {
this.getList();
this.getTreeselect();
},
methods: {
/** 查询物料编码列表 */
getList() {
this.loading = true;
listMdItem(this.queryParams).then((response) => {
this.itemList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 查询分类下拉树结构 */
getTreeselect() {
treeselect().then((response) => {
this.itemTypeOptions = response.data;
});
},
// 筛选节点
filterNode(value, data) {
if (!value) return true;
return data.label.indexOf(value) !== -1;
},
// 节点单击事件
handleNodeClick(data) {
this.queryParams.itemTypeId = data.id;
this.handleQuery();
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
handleCurrent(row) {
if (row) {
this.selectedRows = row;
}
},
handleRowDbClick(row) {
if (row) {
this.selectedRows = row;
this.$emit("onSelected", this.selectedRows);
this.showFlag = false;
}
},
// 单选选中数据
handleRowChange(row) {
debugger;
if (row) {
this.selectedRows = row;
}
},
//确定选中
confirmSelect() {
if (this.selectedItemId == null || this.selectedItemId == 0) {
this.$notify({
title: "提示",
type: "warning",
message: "请至少选择一条数据!",
});
return;
}
this.$emit("onSelected", this.selectedRows);
this.showFlag = false;
},
},
};
</script>
\ No newline at end of file
...@@ -3,15 +3,14 @@ ...@@ -3,15 +3,14 @@
<el-form <el-form
:model="queryParams" :model="queryParams"
ref="queryForm" ref="queryForm"
style="with"
size="small" size="small"
:inline="true" :inline="true"
v-show="showSearch" v-show="showSearch"
label-width="100px" label-width="100px"
> >
<el-form-item label="产品名称" prop="itenName"> <el-form-item label="产品名称" prop="itemName">
<el-input <el-input
v-model="queryParams.itenName" v-model="queryParams.itemName"
placeholder="请输入产品名称" placeholder="请输入产品名称"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
...@@ -34,12 +33,12 @@ ...@@ -34,12 +33,12 @@
</el-form-item> </el-form-item>
<!-- <el-form-item label="样品名称" prop="abbreviation"> <!-- <el-form-item label="样品名称" prop="abbreviation">
<el-input <el-input
v-model="queryParams.itenName" v-model="queryParams.itemName"
placeholder="请输入样品名称" placeholder="请输入样品名称"
clearable clearable
@keyup.enter.native="handleQuery" @keyup.enter.native="handleQuery"
/> --> /> -->
<!-- <el-date-picker <!-- <el-date-picker
clearable clearable
v-model="queryParams.abbreviation" v-model="queryParams.abbreviation"
type="date" type="date"
...@@ -128,7 +127,7 @@ ...@@ -128,7 +127,7 @@
type="text" type="text"
@click="handleView(scope.row)" @click="handleView(scope.row)"
v-hasPermi="['mes:pro:prototypeRequest:query']" v-hasPermi="['mes:pro:prototypeRequest:query']"
>{{ scope.row.prototypeRequestCode }}</el-button >{{ scope.row.productionRequesCode }}</el-button
> >
</template> </template>
</el-table-column> </el-table-column>
...@@ -139,17 +138,8 @@ ...@@ -139,17 +138,8 @@
prop="routeId" prop="routeId"
:show-overflow-tooltip="true" :show-overflow-tooltip="true"
/> />
<el-table-column label="工艺路线名称" align="center" prop="routeName"> <el-table-column label="产品ID" align="center" prop="itemId">
</el-table-column> </el-table-column>
<el-table-column label="简称" align="center" prop="abbreviation">
</el-table-column>
<el-table-column
label="样产品ID"
width="140"
align="productId"
prop="enName"
/>
<el-table-column label="样品数量" width="120" align="center" prop="num" />
<el-table-column <el-table-column
label="制造工厂ID" label="制造工厂ID"
width="200" width="200"
...@@ -178,16 +168,16 @@ ...@@ -178,16 +168,16 @@
align="center" align="center"
prop="isNeedPrototype" prop="isNeedPrototype"
/> />
<el-table-column label="唯一码产品" align="center" prop="isUniqueCode" /> <el-table-column label="唯一码产品" align="center" prop="isUniqueCode" />
<el-table-column label="不考虑型体配色" align="center" prop="isConsiderColor" /> <el-table-column label="不考虑型体配色" align="center" prop="isConsiderColor" />
<el-table-column label="是否禁用" align="center" prop="isDisabled" /> <el-table-column label="是否禁用" align="center" prop="isDisabled" />
<template slot-scope="scope"> <template slot-scope="scope">
<dict-tag <dict-tag
:options="dict.type.sys_yes_no" :options="dict.type.sys_yes_no"
:value="scope.row.sNeedShoeImg" :value="scope.row.isNeedShoeImg"
/> />
<dict-tag </template>
<!-- <dict-tag
:options="dict.type.sys_yes_no" :options="dict.type.sys_yes_no"
:value="scope.row.isNeedPrototype" :value="scope.row.isNeedPrototype"
/> />
...@@ -201,21 +191,21 @@ ...@@ -201,21 +191,21 @@
/> />
<dict-tag <dict-tag
:options="dict.type.sys_yes_no" :options="dict.type.sys_yes_no"
:value="scope.row.isDisabled" :value="scope.row.isDisabled" -->
/> />
</template>
<el-table-column <el-table-column
label="操作" label="操作"
width="200px" width="200px"
align="center" align="center"
class-name="small-padding fixed-width" class-name="small-padding fixed-width"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-edit" icon="el-icon-edit"
v-if="scope.row.prototypeRequestStatus == '审批中'" v-if="scope.row.prototypeRequestStatus == '0'"
@click="handleUpdate(scope.row)" @click="handleUpdate(scope.row)"
v-hasPermi="['mes:pro:prototypeRequest:edit']" v-hasPermi="['mes:pro:prototypeRequest:edit']"
>修改</el-button >修改</el-button
...@@ -224,10 +214,10 @@ ...@@ -224,10 +214,10 @@
size="mini" size="mini"
type="text" type="text"
icon="el-icon-circle-check" icon="el-icon-circle-check"
v-if="scope.row.prototypeRequestStatus == '审批中'" v-if="scope.row.prototypeRequestStatus == '0'"
@click="handleFinish(scope.row)" @click="handleFinish(scope.row)"
v-hasPermi="['mes:pro:prototypeRequest:update']" v-hasPermi="['mes:pro:prototypeRequest:update']"
>完成</el-button >通过</el-button
> >
<el-button <el-button
size="mini" size="mini"
...@@ -237,6 +227,15 @@ ...@@ -237,6 +227,15 @@
v-hasPermi="['mes:pro:prototypeRequest:remove']" v-hasPermi="['mes:pro:prototypeRequest:remove']"
>删除</el-button >删除</el-button
> >
<el-button
size="mini"
type="text"
icon="el-icon-edit"
v-if="scope.row.prototypeRequestStatus == '1'"
@click="generate(scope.row)"
v-hasPermi="['mes:pro:prototypeRequest:edit']"
>生成制作单</el-button
>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -247,281 +246,6 @@ ...@@ -247,281 +246,6 @@
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
@pagination="getList" @pagination="getList"
/> />
<!-- 添加或修改生产工单对话框 -->
<!-- <el-dialog :title="title" :visible.sync="open" width="960px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="8">
<el-form-item label="工单编号" prop="prototypeRequestCode">
<el-input
v-model="form.prototypeRequestCode"
placeholder="请输入工单编号"
/>
</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-switch>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="工单名称" prop="prototypeRequestName">
<el-input
v-model="form.prototypeRequestName"
placeholder="请输入工单名称"
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="来源类型" prop="orderSource">
<el-radio-group
v-model="form.orderSource"
disabled
v-if="optType == 'view'"
>
<el-radio
v-for="dict in dict.type.mes_prototypeRequest_sourcetype"
:key="dict.value"
:label="dict.value"
>{{ dict.label }}</el-radio
>
</el-radio-group>
<el-radio-group v-model="form.orderSource" v-else>
<el-radio
v-for="dict in dict.type.mes_prototypeRequest_sourcetype"
:key="dict.value"
:label="dict.value"
>{{ dict.label }}</el-radio
>
</el-radio-group>
</el-form-item>
</el-col>
<el-col :span="8" v-if="form.orderSource == 'ORDER'">
<el-form-item label="订单编号" prop="sourceCode">
<el-input
v-model="form.sourceCode"
placeholder="请输入订单编号"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="单据状态" prop="status">
<el-select
v-model="form.status"
disabled
placeholder="请选择单据状态"
>
<el-option
v-for="dict in dict.type.mes_order_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="工单类型" prop="prototypeRequestType">
<el-select
v-model="form.prototypeRequestType"
placeholder="请选择类型"
>
<el-option
v-for="dict in dict.type.mes_prototypeRequest_type"
:key="dict.value"
:label="dict.label"
:value="dict.value"
></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="产品编号" prop="productCode">
<el-input v-model="form.productCode" placeholder="请选择产品">
<el-button
slot="append"
@click="handleSelectProduct"
icon="el-icon-search"
></el-button>
</el-input>
<ItemSelect ref="itemSelect" @onSelected="onItemSelected">
</ItemSelect>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="产品名称" prop="productName">
<el-input
v-model="form.productName"
placeholder="请选择产品"
disabled
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="规格型号" prop="productSpc">
<el-input
v-model="form.productSpc"
placeholder="请选择产品"
disabled
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="单位" prop="unitOfMeasure">
<el-input
v-model="form.unitOfMeasure"
placeholder="请选择产品"
disabled
/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="工单数量" prop="quantity">
<el-input-number
:min="1"
v-model="form.quantity"
placeholder="请输入生产数量"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="需求日期" prop="requestDate">
<el-date-picker
clearable
v-model="form.requestDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择需求日期"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="批次号" prop="batchCode">
<el-input v-model="form.batchCode" placeholder="请输入批次号" />
</el-form-item>
</el-col>
</el-row>
<el-row v-if="form.orderSource == 'ORDER'">
<el-col :span="12">
<el-form-item label="客户编码" prop="clientCode">
<el-input v-model="form.clientCode" placeholder="请选择客户">
<el-button
slot="append"
@click="handleSelectClient"
icon="el-icon-search"
></el-button>
</el-input>
<ClientSelect ref="clientSelect" @onSelected="onClientSelected">
</ClientSelect>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="客户名称" prop="clientName">
<el-input
v-model="form.clientName"
readonly="readonly"
placeholder="请输入客户名称"
/>
</el-form-item>
</el-col>
<el-col></el-col>
</el-row>
<el-row
v-if="
form.prototypeRequestType == 'OUTSOURCE' ||
form.prototypeRequestType == 'PURCHASE'
"
>
<el-col :span="12">
<el-form-item label="供应商编码" prop="vendorCode">
<el-input v-model="form.vendorCode" placeholder="请选择供应商">
<el-button
slot="append"
@click="handleSelectVendor"
icon="el-icon-search"
></el-button>
</el-input>
<VendorSelect ref="vendorSelect" @onSelected="onVendorSelected" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="供应商名称" prop="vendorName">
<el-input
v-model="form.vendorName"
readonly="readonly"
placeholder="请选择供应商"
/>
</el-form-item>
</el-col>
<el-col></el-col>
</el-row>
<el-row>
<el-col></el-col>
<el-col></el-col>
<el-col></el-col>
</el-row>
<el-row>
<el-col :span="24">
<el-form-item label="备注" prop="remark">
<el-input
v-model="form.remark"
type="textarea"
placeholder="请输入内容"
/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-tabs type="border-card" v-if="form.prototypeRequestId != null">
<el-tab-pane label="BOM组成">
<prototypeRequestbom ref="bomlist" :optType="optType" :prototypeRequest="form" @handleAddSub="handleSubAdd" ></prototypeRequestbom>
</el-tab-pane>
<el-tab-pane label="物料需求">
</el-tab-pane>
</el-tabs>
<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="success"
@click="handleConfirm"
v-if="
form.status == 'PREPARE' &&
optType != 'view' &&
form.prototypeRequestId != null
"
>确 认</el-button
>
<el-button @click="cancel">取 消</el-button>
</div></el-dialog> -->
</div> </div>
</template> </template>
...@@ -532,6 +256,7 @@ import { ...@@ -532,6 +256,7 @@ import {
delPrototypeRequest, delPrototypeRequest,
addPrototypeRequest, addPrototypeRequest,
updatePrototypeRequest, updatePrototypeRequest,
dofinish,
} from "@/api/mes/pro/prototypeRequest"; } from "@/api/mes/pro/prototypeRequest";
import ItemSelect from "@/components/itemSelect/single.vue"; import ItemSelect from "@/components/itemSelect/single.vue";
import ClientSelect from "@/components/clientSelect/single.vue"; import ClientSelect from "@/components/clientSelect/single.vue";
...@@ -542,7 +267,8 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css"; ...@@ -542,7 +267,8 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default { export default {
name: "PrototypeRequest", name: "PrototypeRequest",
dicts: [ dicts: [
"mes_order_status", "sys_yes_no",
"mes_pr_status",
"mes_prototypeRequest_sourcetype", "mes_prototypeRequest_sourcetype",
"mes_prototypeRequest_type", "mes_prototypeRequest_type",
], ],
...@@ -581,16 +307,16 @@ export default { ...@@ -581,16 +307,16 @@ export default {
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
pageSize: 10, pageSize: 10,
itemName: null,// 可以查简称与英文名 itemName: null, // 可以查简称与英文名
prototypeRequestStatus: null, prototypeRequestStatus: null,
}, },
options: [ options: [
{ value: "审批中", label: "审批中" }, { value: 0, label: "审批中" },
{ value: "待制作", label: "待制作" }, { value: 1, label: "待制作" },
{ value: "打样中", label: "打样中" }, { value: 2, label: "打样中" },
{ value: "待质检", label: "待质检" }, { value: 3, label: "待质检" },
{ value: "待确认", label: "待确认" }, { value: 4, label: "待确认" },
{ value: "已完成", label: "已完成" }, { value: 5, label: "已完成" },
], ],
// 表单参数 // 表单参数
...@@ -683,7 +409,7 @@ export default { ...@@ -683,7 +409,7 @@ export default {
this.reset(); this.reset();
const prototypeRequestId = row.prototypeRequestId || this.ids; const prototypeRequestId = row.prototypeRequestId || this.ids;
this.$router.push( this.$router.push(
"/mes/proofing/info?prototypeRequestId="+prototypeRequestId "/mes/proofing/info?prototypeRequestId=" + prototypeRequestId
); );
// getprototypeRequest(prototypeRequestId).then((response) => { // getprototypeRequest(prototypeRequestId).then((response) => {
// this.form = response.data; // this.form = response.data;
...@@ -697,7 +423,7 @@ export default { ...@@ -697,7 +423,7 @@ export default {
this.reset(); this.reset();
const prototypeRequestId = row.prototypeRequestId || this.ids; const prototypeRequestId = row.prototypeRequestId || this.ids;
this.$router.push( this.$router.push(
"/mes/proofing/edit?prototypeRequestId="+prototypeRequestId "/mes/proofing/edit?prototypeRequestId=" + prototypeRequestId
); );
// getPrototypeRequest(prototypeRequestId).then((response) => { // getPrototypeRequest(prototypeRequestId).then((response) => {
// // this.form = response.data; // // this.form = response.data;
...@@ -707,28 +433,6 @@ export default { ...@@ -707,28 +433,6 @@ export default {
// // 跳转修改 // // 跳转修改
// }); // });
}, },
// /** 提交按钮 */
// submitForm() {
// this.$refs["form"].validate(valid => {
// if (valid) {
// if (this.form.prototypeRequestId != null) {
// updateprototypeRequest(this.form).then(response => {
// this.$modal.msgSuccess("修改成功");
// //this.open = false;
// this.$refs["bomlist"].getList();
// this.getList();
// });
// } else {
// addprototypeRequest(this.form).then(response => {
// this.$modal.msgSuccess("新增成功");
// //this.open = false;
// this.form.prototypeRequestId = response.data;
// this.getList();
// });
// }
// }
// });
// },
/** 删除按钮操作 */ /** 删除按钮操作 */
handleDelete(row) { handleDelete(row) {
this.$modal this.$modal
...@@ -759,65 +463,27 @@ export default { ...@@ -759,65 +463,27 @@ export default {
`打样申请单_${new Date().getTime()}.xlsx` `打样申请单_${new Date().getTime()}.xlsx`
); );
}, },
// // 审批通过
// handleConfirm(){ // 审批
// let that = this; handleFinish(row) {
// this.$modal.confirm('是确认完成工单编制?【确认后将不能更改】').then(function(){ row.prototypeRequestStatus = 1
// that.form.status = '待制作'; this.$modal
// that.submitForm(); .confirm("确认通过样品申请单?一旦完成,此工单将无法继续修改")
// }); .then(function () {
// }, return dofinish(row); //完成申请单审批
// // 审批 })
// handleFinish(row){ .then(() => {
// const prototypeRequestIds = row.prototypeRequestId || this.ids; this.getList();
// this.$modal.confirm('确认完成工单?一旦完成,此工单将无法继续报工').then(function() { this.$modal.msgSuccess("审批成功");
// return dofinish(prototypeRequestIds) //完成工单 })
// }).then(() => { .catch(() => {});
// this.getList(); },
// this.$modal.msgSuccess("更改成功"); },
// }).catch(() => {}); // 生成制作单
// }, generate(row) {
// //物料选择弹出框 // 跳转到制作单界面
// onItemSelected(obj) { this.$router.push("/mes/proofing/apply");
// if (obj != undefined && obj != null) { return;
// this.form.productId = obj.itemId;
// this.form.productCode = obj.itemCode;
// this.form.productName = obj.itemName;
// this.form.productSpc = obj.specification;
// this.form.unitOfMeasure = obj.unitOfMeasure;
// }
// },
// //客户选择弹出框
// onClientSelected(obj) {
// if (obj != undefined && obj != null) {
// this.form.clientId = obj.clientId;
// this.form.clientCode = obj.clientCode;
// this.form.clientName = obj.clientName;
// }
// },
// //供应商选择
// handleSelectVendor() {
// this.$refs.vendorSelect.showFlag = true;
// },
// //供应商选择弹出框
// onVendorSelected(obj) {
// debugger;
// if (obj != undefined && obj != null) {
// this.form.vendorId = obj.vendorId;
// this.form.vendorCode = obj.vendorCode;
// this.form.vendorName = obj.vendorName;
// }
// },
// //自动生成编码
// handleAutoGenChange(autoGenFlag) {
// if (autoGenFlag) {
// genCode("WORKORDER_CODE").then((response) => {
// this.form.prototypeRequestCode = response;
// });
// } else {
// this.form.prototypeRequestCode = null;
// }
// },
}, },
}; };
</script> </script>
<template> <template>
<div class="form-page"> <div class="form-page" v-loading="loading">
<PageTitle> <PageTitle>
{{ pageTitle }} {{ pageTitle }}
<!-- 申请按钮显示 -->
<template slot="buttons" v-if="mode == 'apply'"> <template slot="buttons" v-if="mode == 'apply'">
<el-button size="mini" @click="resetForm">重置</el-button> <el-button size="mini" @click="resetForm">重置</el-button>
<el-button size="mini" type="primary" @click="saveForm">提交</el-button> <el-button size="mini" type="primary" @click="saveForm">提交</el-button>
</template> </template>
<!-- 修改 按钮显示 -->
<template slot="buttons" v-if="mode == 'edit'">
<el-button size="mini" type="primary" @click="saveForm">提交</el-button>
</template>
</PageTitle> </PageTitle>
<PageWrapper> <PageWrapper>
...@@ -30,7 +36,7 @@ ...@@ -30,7 +36,7 @@
<el-col :md="8" :xs="12" style="height: 50.5px"> <el-col :md="8" :xs="12" style="height: 50.5px">
<el-form-item label="产品" prop="itemId"> <el-form-item label="产品" prop="itemId">
<el-input <el-input
v-model="form.itemName" v-model="form.itemId"
readonly readonly
placeholder="请选择产品" placeholder="请选择产品"
> >
...@@ -43,6 +49,23 @@ ...@@ -43,6 +49,23 @@
<ItemSelect ref="ItemSelectRef" @onSelected="onItemSelect" /> <ItemSelect ref="ItemSelectRef" @onSelected="onItemSelect" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="8" :xs="12" style="height: 50.5px">
<el-form-item label="制造工厂" prop="factoryId">
<el-input
v-model="form.factoryId"
readonly
placeholder="请选择"
>
<el-button
slot="append"
icon="el-icon-search"
@click="$refs['factoryRef'].showFlag = true"
></el-button>
</el-input>
<factory ref="factoryRef" @onSelected=" onfactory" />
</el-form-item>
</el-col>
<el-col :md="8" :xs="12" style="height: 50.5px"> <el-col :md="8" :xs="12" style="height: 50.5px">
<el-form-item label="工艺路线" prop="routeId"> <el-form-item label="工艺路线" prop="routeId">
<el-input <el-input
...@@ -63,89 +86,98 @@ ...@@ -63,89 +86,98 @@
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row>
<el-col :md="8" :xs="12"> <el-col :md="8" :xs="12">
<el-form-item label="简称" prop="abbreviation"> <el-form-item label="仓库" prop="warehouse">
<el-input <el-input
v-model="form.abbreviation" v-model="form.abbreviation"
placeholder="请输入简称" placeholder="请输入仓库"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="8" :xs="12"> <el-col :md="8" :xs="12">
<el-form-item label="样品英文名" prop="enName"> <el-form-item label="尺码" prop="sizeGroup">
<el-input <el-input
v-model="form.enName" v-model="form.enName"
placeholder="请输入样品英文名称" placeholder="请输入尺码"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="8" :xs="12"> <el-col :md="8" :xs="12">
<el-form-item label="样品数量" prop="num"> <el-form-item label="是否要鞋图" prop="isNeedShoeImg">
<el-input v-model="form.num" placeholder="请输入样品数量"> <el-input
<template slot="suffix">{{ form.unit }}</template> v-model="form.isNeedShoeImg"
</el-input> placeholder="请输是否"
</el-form-item> >
</el-col> <el-option aria-label="是" value="Y"></el-option>
<el-col :md="8" :xs="12"> <el-option aria-label="否" value="N"></el-option>
<el-form-item label="打样形式" prop="type"> </el-input>
<el-input </el-form-item>
v-model="form.type"
placeholder="请选择打样形式"
></el-input>
</el-form-item>
</el-col> </el-col>
<el-col :md="8" :xs="12"> <el-col :md="8" :xs="12">
<el-form-item label="分配方式" prop="modality"> <el-form-item label="是否附样品" prop="isNeedPrototype">
<el-input <el-input
v-model="form.modality" v-model="form.isNeedPrototype"
placeholder="请选择分配方式" placeholder="请输是否"
></el-input> >
</el-form-item> <el-option aria-label="是" value="Y"></el-option>
<el-option aria-label="否" value="N"></el-option>
</el-input>
</el-form-item>
</el-col> </el-col>
<el-col :md="8" :xs="12"> <el-col :md="8" :xs="12">
<el-form-item label="表面处理" prop="surfaceTreatment"> <el-form-item label="唯一码产品" prop="isUniqueCode">
<el-input <el-input
v-model="form.surfaceTreatment" v-model="form.isUniqueCode"
placeholder="请输入表面处理" placeholder="请输是否"
></el-input> >
</el-form-item> <el-option aria-label="是" value="Y"></el-option>
<el-option aria-label="否" value="N"></el-option>
</el-input>
</el-form-item>
</el-col> </el-col>
<el-col :md="8" :xs="12"> <el-col :md="8" :xs="12">
<el-form-item label="NG原因" prop="ngReason"> <el-form-item label="不考虑型体配色" prop="isConsiderColor: ">
<el-input <el-input
v-model="form.ngReason" v-model="form.isConsiderColor"
placeholder="请输入NG原因" placeholder="请输是否"
></el-input> >
</el-form-item> <el-option aria-label="是" value="Y"></el-option>
<el-option aria-label="否" value="N"></el-option>
</el-input>
</el-form-item>
</el-col> </el-col>
<el-col :md="8" :xs="12"> <el-col :md="8" :xs="12">
<el-form-item label="计划完成日期" prop="plannedFinishDate"> <el-form-item label="是否禁用" prop="isDisabled: ">
<el-date-picker <el-input
value-format="yyyy-MM-dd" v-model="form.isConsiderColor"
v-model="form.plannedFinishDate" placeholder="请输是否"
placeholder="请输入计划完成日期" >
></el-date-picker> <el-option aria-label="是" value="Y"></el-option>
</el-form-item> <el-option aria-label="否" value="N"></el-option>
</el-input>
</el-form-item>
</el-col> </el-col>
<el-col :md="8" :xs="12"> <el-col :md="8" :xs="12">
<el-form-item label="版面需求时间" prop="plannedLayoutDate"> <el-form-item label="鞋图" prop="shoeImg">
<el-date-picker <el-input
value-format="yyyy-MM-dd" v-model="form.type"
v-model="form.plannedLayoutDate" placeholder="请选鞋图"
placeholder="请输入版面需求时间" ></el-input>
></el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :md="8" :xs="12"> <el-col :md="8" :xs="12">
<el-form-item label="测试标准" prop="testStandard"> <el-form-item label="样品" prop="prototype">
<el-input <el-input
v-model="form.testStandard" v-model="form.modality"
placeholder="测试标准" placeholder="请选择样品"
></el-input> ></el-input>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row>
<el-row> <el-row>
<el-col :md="8" :xs="12"> <el-col :md="8" :xs="12">
<el-form-item label="备注" prop="remark"> <el-form-item label="备注" prop="remark">
...@@ -171,7 +203,6 @@ ...@@ -171,7 +203,6 @@
</PageWrapper> </PageWrapper>
</div> </div>
</template> </template>
<script> <script>
import { genCode } from "@/api/system/autocode/rule"; import { genCode } from "@/api/system/autocode/rule";
import ProogingBom from "./components/ProogingBom.vue"; import ProogingBom from "./components/ProogingBom.vue";
...@@ -179,8 +210,12 @@ import ProogingProcess from "./components/ProogingProcess.vue"; ...@@ -179,8 +210,12 @@ import ProogingProcess from "./components/ProogingProcess.vue";
import ItemSelect from "@/components/itemSelect/single.vue"; import ItemSelect from "@/components/itemSelect/single.vue";
import RoutesProcessSelect from "@/components/routesProcessSelect/index.vue"; import RoutesProcessSelect from "@/components/routesProcessSelect/index.vue";
import { listRouteprocess } from "@/api/mes/pro/routeprocess"; import { listRouteprocess } from "@/api/mes/pro/routeprocess";
import { Loading } from "element-ui"; import tabPlugins from "@/plugins/tab";
import { addPrototypeRequest } from "@/api/mes/pro/prototypeRequest"; import {
addPrototypeRequest,
getPrototypeRequest,
updatePrototypeRequest,
} from "@/api/mes/pro/prototypeRequest";
export default { export default {
components: { ProogingBom, ProogingProcess, ItemSelect, RoutesProcessSelect }, components: { ProogingBom, ProogingProcess, ItemSelect, RoutesProcessSelect },
...@@ -192,25 +227,21 @@ export default { ...@@ -192,25 +227,21 @@ export default {
}, },
data() { data() {
return { return {
loading: false,
bomList: [], bomList: [],
// 表单参数 // 表单参数
form: { form: {
prototypeRequestCode: "", prototypeRequestCode: "",
itemId: "",
itemName: "",
unit: "",
routeId: "", routeId: "",
routeName: "", itemId: "",
abbreviation: "", factoryId: "",
enName: "", isNeedShoeImg: "",
num: "", isNeedPrototype: "",
type: "", isUniqueCode: "",
modality: "", isConsiderColor: "",
surfaceTreatment: "", isDisabled: "",
ngReason: "", shoeImg: "",
plannedFinishDate: "", prototype: "",
plannedLayoutDate: "",
testStandard: "",
remark: "", remark: "",
}, },
rules: {}, rules: {},
...@@ -233,11 +264,34 @@ export default { ...@@ -233,11 +264,34 @@ export default {
}, },
}, },
created() { created() {
genCode("PROTOTYPE_REQUEST_CODE").then((response) => { this.getFormInfo();
this.form.prototypeRequestCode = response; this.gCode();
});
}, },
methods: { methods: {
/** 根据 id 获取页面数据 */
getFormInfo() {
if (this.mode != "apply") {
const id = this.$route.query.prototypeRequestId;
this.loading = true;
getPrototypeRequest(id)
.then(({ data }) => {
Object.assign(this.form, data);
this.bomList = data.bomList;
// 设置组件数据
this.$refs["ProogingBomRef"].tableData = data.bomList;
this.$refs["ProogingProcess"].tableData = data.processList;
})
.finally(() => {
this.loading = false;
});
}
},
/** 生成编码 */
gCode() {
genCode("PROTOTYPE_REQUEST_CODE").then((response) => {
this.form.prototypeRequestCode = response;
});
},
/** 点击tab 获取bom的数据,将参数传递给后面的组件 */ /** 点击tab 获取bom的数据,将参数传递给后面的组件 */
tabClick(val) { tabClick(val) {
if (val.index != 0) { if (val.index != 0) {
...@@ -275,36 +329,49 @@ export default { ...@@ -275,36 +329,49 @@ export default {
bomList, bomList,
processList, processList,
}; };
console.log("params", params); this.loading = true;
const loadingInstance = Loading.service({ fullscreen: true }); if (this.mode == "apply") {
addPrototypeRequest(params) addPrototypeRequest(params)
.then((res) => { .then((res) => {
loadingInstance.close(); this.loading = false;
this.$modal.msgSuccess("提交成功!"); this.$modal.msgSuccess("提交成功!");
})
.catch(() => { // 关闭页签
loadingInstance.close(); tabPlugins.closeOpenPage();
}); })
.catch(() => {
this.loading = false;
});
} else {
updatePrototypeRequest(params)
.then(() => {
this.loading = false;
this.$modal.msgSuccess("提交成功!");
})
.catch(() => {
this.loading = false;
});
}
}, },
/**重置表单 */ /**重置表单 */
resetForm() { resetForm() {
this.form = { this.form = {
prototypeRequestCode: "", prototypeRequestCode: "",
itemId: "",
itemName: "",
routeId: "", routeId: "",
abbreviation: "", itemId: "",
enName: "", factoryId: "",
num: "", isNeedShoeImg: "",
type: "", isNeedPrototype: "",
modality: "", isUniqueCode: "",
surfaceTreatment: "", isConsiderColor: "",
ngReason: "", isDisabled: "",
plannedFinishDate: "", shoeImg: "",
plannedLayoutDate: "", prototype: "",
testStandard: "",
remark: "", remark: "",
}; };
this.$refs["ProogingBomRef"].resetState();
this.$refs["ProogingProcessRef"].resetState();
this.gCode();
}, },
}, },
}; };
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment