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 @@
<el-form
:model="queryParams"
ref="queryForm"
style="with"
size="small"
:inline="true"
v-show="showSearch"
label-width="100px"
>
<el-form-item label="产品名称" prop="itenName">
<el-form-item label="产品名称" prop="itemName">
<el-input
v-model="queryParams.itenName"
v-model="queryParams.itemName"
placeholder="请输入产品名称"
clearable
@keyup.enter.native="handleQuery"
......@@ -34,7 +33,7 @@
</el-form-item>
<!-- <el-form-item label="样品名称" prop="abbreviation">
<el-input
v-model="queryParams.itenName"
v-model="queryParams.itemName"
placeholder="请输入样品名称"
clearable
@keyup.enter.native="handleQuery"
......@@ -128,7 +127,7 @@
type="text"
@click="handleView(scope.row)"
v-hasPermi="['mes:pro:prototypeRequest:query']"
>{{ scope.row.prototypeRequestCode }}</el-button
>{{ scope.row.productionRequesCode }}</el-button
>
</template>
</el-table-column>
......@@ -139,17 +138,8 @@
prop="routeId"
: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 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
label="制造工厂ID"
width="200"
......@@ -178,16 +168,16 @@
align="center"
prop="isNeedPrototype"
/>
<el-table-column label="唯一码产品" align="center" prop="isUniqueCode" />
<el-table-column label="不考虑型体配色" align="center" prop="isConsiderColor" />
<el-table-column label="是否禁用" align="center" prop="isDisabled" />
<template slot-scope="scope">
<dict-tag
: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"
:value="scope.row.isNeedPrototype"
/>
......@@ -201,9 +191,9 @@
/>
<dict-tag
:options="dict.type.sys_yes_no"
:value="scope.row.isDisabled"
:value="scope.row.isDisabled" -->
/>
</template>
<el-table-column
label="操作"
width="200px"
......@@ -215,7 +205,7 @@
size="mini"
type="text"
icon="el-icon-edit"
v-if="scope.row.prototypeRequestStatus == '审批中'"
v-if="scope.row.prototypeRequestStatus == '0'"
@click="handleUpdate(scope.row)"
v-hasPermi="['mes:pro:prototypeRequest:edit']"
>修改</el-button
......@@ -224,10 +214,10 @@
size="mini"
type="text"
icon="el-icon-circle-check"
v-if="scope.row.prototypeRequestStatus == '审批中'"
v-if="scope.row.prototypeRequestStatus == '0'"
@click="handleFinish(scope.row)"
v-hasPermi="['mes:pro:prototypeRequest:update']"
>完成</el-button
>通过</el-button
>
<el-button
size="mini"
......@@ -237,6 +227,15 @@
v-hasPermi="['mes:pro:prototypeRequest:remove']"
>删除</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>
</el-table-column>
</el-table>
......@@ -247,281 +246,6 @@
:limit.sync="queryParams.pageSize"
@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>
</template>
......@@ -532,6 +256,7 @@ import {
delPrototypeRequest,
addPrototypeRequest,
updatePrototypeRequest,
dofinish,
} from "@/api/mes/pro/prototypeRequest";
import ItemSelect from "@/components/itemSelect/single.vue";
import ClientSelect from "@/components/clientSelect/single.vue";
......@@ -542,7 +267,8 @@ import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
name: "PrototypeRequest",
dicts: [
"mes_order_status",
"sys_yes_no",
"mes_pr_status",
"mes_prototypeRequest_sourcetype",
"mes_prototypeRequest_type",
],
......@@ -581,16 +307,16 @@ export default {
queryParams: {
pageNum: 1,
pageSize: 10,
itemName: null,// 可以查简称与英文名
itemName: null, // 可以查简称与英文名
prototypeRequestStatus: null,
},
options: [
{ value: "审批中", label: "审批中" },
{ value: "待制作", label: "待制作" },
{ value: "打样中", label: "打样中" },
{ value: "待质检", label: "待质检" },
{ value: "待确认", label: "待确认" },
{ value: "已完成", label: "已完成" },
{ value: 0, label: "审批中" },
{ value: 1, label: "待制作" },
{ value: 2, label: "打样中" },
{ value: 3, label: "待质检" },
{ value: 4, label: "待确认" },
{ value: 5, label: "已完成" },
],
// 表单参数
......@@ -683,7 +409,7 @@ export default {
this.reset();
const prototypeRequestId = row.prototypeRequestId || this.ids;
this.$router.push(
"/mes/proofing/info?prototypeRequestId="+prototypeRequestId
"/mes/proofing/info?prototypeRequestId=" + prototypeRequestId
);
// getprototypeRequest(prototypeRequestId).then((response) => {
// this.form = response.data;
......@@ -697,7 +423,7 @@ export default {
this.reset();
const prototypeRequestId = row.prototypeRequestId || this.ids;
this.$router.push(
"/mes/proofing/edit?prototypeRequestId="+prototypeRequestId
"/mes/proofing/edit?prototypeRequestId=" + prototypeRequestId
);
// getPrototypeRequest(prototypeRequestId).then((response) => {
// // this.form = response.data;
......@@ -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) {
this.$modal
......@@ -759,65 +463,27 @@ export default {
`打样申请单_${new Date().getTime()}.xlsx`
);
},
// // 审批通过
// handleConfirm(){
// let that = this;
// this.$modal.confirm('是确认完成工单编制?【确认后将不能更改】').then(function(){
// that.form.status = '待制作';
// that.submitForm();
// });
// },
// // 审批
// handleFinish(row){
// const prototypeRequestIds = row.prototypeRequestId || this.ids;
// this.$modal.confirm('确认完成工单?一旦完成,此工单将无法继续报工').then(function() {
// return dofinish(prototypeRequestIds) //完成工单
// }).then(() => {
// this.getList();
// this.$modal.msgSuccess("更改成功");
// }).catch(() => {});
// },
// //物料选择弹出框
// onItemSelected(obj) {
// if (obj != undefined && obj != null) {
// 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;
// }
// },
// 审批
handleFinish(row) {
row.prototypeRequestStatus = 1
this.$modal
.confirm("确认通过样品申请单?一旦完成,此工单将无法继续修改")
.then(function () {
return dofinish(row); //完成申请单审批
})
.then(() => {
this.getList();
this.$modal.msgSuccess("审批成功");
})
.catch(() => {});
},
},
// 生成制作单
generate(row) {
// 跳转到制作单界面
this.$router.push("/mes/proofing/apply");
return;
},
};
</script>
<template>
<div class="form-page">
<div class="form-page" v-loading="loading">
<PageTitle>
{{ pageTitle }}
<!-- 申请按钮显示 -->
<template slot="buttons" v-if="mode == 'apply'">
<el-button size="mini" @click="resetForm">重置</el-button>
<el-button size="mini" type="primary" @click="saveForm">提交</el-button>
</template>
<!-- 修改 按钮显示 -->
<template slot="buttons" v-if="mode == 'edit'">
<el-button size="mini" type="primary" @click="saveForm">提交</el-button>
</template>
</PageTitle>
<PageWrapper>
......@@ -30,7 +36,7 @@
<el-col :md="8" :xs="12" style="height: 50.5px">
<el-form-item label="产品" prop="itemId">
<el-input
v-model="form.itemName"
v-model="form.itemId"
readonly
placeholder="请选择产品"
>
......@@ -43,6 +49,23 @@
<ItemSelect ref="ItemSelectRef" @onSelected="onItemSelect" />
</el-form-item>
</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-form-item label="工艺路线" prop="routeId">
<el-input
......@@ -63,89 +86,98 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :md="8" :xs="12">
<el-form-item label="简称" prop="abbreviation">
<el-form-item label="仓库" prop="warehouse">
<el-input
v-model="form.abbreviation"
placeholder="请输入简称"
placeholder="请输入仓库"
></el-input>
</el-form-item>
</el-col>
<el-col :md="8" :xs="12">
<el-form-item label="样品英文名" prop="enName">
<el-form-item label="尺码" prop="sizeGroup">
<el-input
v-model="form.enName"
placeholder="请输入样品英文名称"
placeholder="请输入尺码"
></el-input>
</el-form-item>
</el-col>
<el-col :md="8" :xs="12">
<el-form-item label="样品数量" prop="num">
<el-input v-model="form.num" placeholder="请输入样品数量">
<template slot="suffix">{{ form.unit }}</template>
<el-form-item label="是否要鞋图" prop="isNeedShoeImg">
<el-input
v-model="form.isNeedShoeImg"
placeholder="请输是否"
>
<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 :md="8" :xs="12">
<el-form-item label="打样形式" prop="type">
<el-form-item label="是否附样品" prop="isNeedPrototype">
<el-input
v-model="form.type"
placeholder="请选择打样形式"
></el-input>
v-model="form.isNeedPrototype"
placeholder="请输是否"
>
<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 :md="8" :xs="12">
<el-form-item label="分配方式" prop="modality">
<el-form-item label="唯一码产品" prop="isUniqueCode">
<el-input
v-model="form.modality"
placeholder="请选择分配方式"
></el-input>
v-model="form.isUniqueCode"
placeholder="请输是否"
>
<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 :md="8" :xs="12">
<el-form-item label="表面处理" prop="surfaceTreatment">
<el-form-item label="不考虑型体配色" prop="isConsiderColor: ">
<el-input
v-model="form.surfaceTreatment"
placeholder="请输入表面处理"
></el-input>
v-model="form.isConsiderColor"
placeholder="请输是否"
>
<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 :md="8" :xs="12">
<el-form-item label="NG原因" prop="ngReason">
<el-form-item label="是否禁用" prop="isDisabled: ">
<el-input
v-model="form.ngReason"
placeholder="请输入NG原因"
></el-input>
</el-form-item>
</el-col>
<el-col :md="8" :xs="12">
<el-form-item label="计划完成日期" prop="plannedFinishDate">
<el-date-picker
value-format="yyyy-MM-dd"
v-model="form.plannedFinishDate"
placeholder="请输入计划完成日期"
></el-date-picker>
v-model="form.isConsiderColor"
placeholder="请输是否"
>
<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 :md="8" :xs="12">
<el-form-item label="版面需求时间" prop="plannedLayoutDate">
<el-date-picker
value-format="yyyy-MM-dd"
v-model="form.plannedLayoutDate"
placeholder="请输入版面需求时间"
></el-date-picker>
<el-form-item label="鞋图" prop="shoeImg">
<el-input
v-model="form.type"
placeholder="请选鞋图"
></el-input>
</el-form-item>
</el-col>
<el-col :md="8" :xs="12">
<el-form-item label="测试标准" prop="testStandard">
<el-form-item label="样品" prop="prototype">
<el-input
v-model="form.testStandard"
placeholder="测试标准"
v-model="form.modality"
placeholder="请选择样品"
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :md="8" :xs="12">
<el-form-item label="备注" prop="remark">
......@@ -171,7 +203,6 @@
</PageWrapper>
</div>
</template>
<script>
import { genCode } from "@/api/system/autocode/rule";
import ProogingBom from "./components/ProogingBom.vue";
......@@ -179,8 +210,12 @@ import ProogingProcess from "./components/ProogingProcess.vue";
import ItemSelect from "@/components/itemSelect/single.vue";
import RoutesProcessSelect from "@/components/routesProcessSelect/index.vue";
import { listRouteprocess } from "@/api/mes/pro/routeprocess";
import { Loading } from "element-ui";
import { addPrototypeRequest } from "@/api/mes/pro/prototypeRequest";
import tabPlugins from "@/plugins/tab";
import {
addPrototypeRequest,
getPrototypeRequest,
updatePrototypeRequest,
} from "@/api/mes/pro/prototypeRequest";
export default {
components: { ProogingBom, ProogingProcess, ItemSelect, RoutesProcessSelect },
......@@ -192,25 +227,21 @@ export default {
},
data() {
return {
loading: false,
bomList: [],
// 表单参数
form: {
prototypeRequestCode: "",
itemId: "",
itemName: "",
unit: "",
routeId: "",
routeName: "",
abbreviation: "",
enName: "",
num: "",
type: "",
modality: "",
surfaceTreatment: "",
ngReason: "",
plannedFinishDate: "",
plannedLayoutDate: "",
testStandard: "",
itemId: "",
factoryId: "",
isNeedShoeImg: "",
isNeedPrototype: "",
isUniqueCode: "",
isConsiderColor: "",
isDisabled: "",
shoeImg: "",
prototype: "",
remark: "",
},
rules: {},
......@@ -233,11 +264,34 @@ export default {
},
},
created() {
this.getFormInfo();
this.gCode();
},
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;
});
},
methods: {
/** 点击tab 获取bom的数据,将参数传递给后面的组件 */
tabClick(val) {
if (val.index != 0) {
......@@ -275,36 +329,49 @@ export default {
bomList,
processList,
};
console.log("params", params);
const loadingInstance = Loading.service({ fullscreen: true });
this.loading = true;
if (this.mode == "apply") {
addPrototypeRequest(params)
.then((res) => {
loadingInstance.close();
this.loading = false;
this.$modal.msgSuccess("提交成功!");
// 关闭页签
tabPlugins.closeOpenPage();
})
.catch(() => {
loadingInstance.close();
this.loading = false;
});
} else {
updatePrototypeRequest(params)
.then(() => {
this.loading = false;
this.$modal.msgSuccess("提交成功!");
})
.catch(() => {
this.loading = false;
});
}
},
/**重置表单 */
resetForm() {
this.form = {
prototypeRequestCode: "",
itemId: "",
itemName: "",
routeId: "",
abbreviation: "",
enName: "",
num: "",
type: "",
modality: "",
surfaceTreatment: "",
ngReason: "",
plannedFinishDate: "",
plannedLayoutDate: "",
testStandard: "",
itemId: "",
factoryId: "",
isNeedShoeImg: "",
isNeedPrototype: "",
isUniqueCode: "",
isConsiderColor: "",
isDisabled: "",
shoeImg: "",
prototype: "",
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