Commit 951b257f authored by 赵汉亭's avatar 赵汉亭

样品制作单完成,样品申请BUG修改

parent bccd89cc
import request from '@/utils/request'
import request from "@/utils/request";
// 查询样品制作单列表
export function listPrototypeMake(query) {
return request({
url: '/mes/pro/prototypeMake/list',
method: 'get',
params: query
})
url: "/mes/pro/prototypeMake/list",
method: "get",
params: query,
});
}
// 查询样品制作单详细
export function getPrototypeMake(prototypeMakeId) {
return request({
url: '/mes/pro/prototypeMake/' + prototypeMakeId,
method: 'get'
})
url: "/mes/pro/prototypeMake/" + prototypeMakeId,
method: "get",
});
}
// 新增样品制作单
export function addPrototypeMake(data) {
return request({
url: '/mes/pro/prototypeMake',
method: 'post',
data: data
})
url: "/mes/pro/prototypeMake",
method: "post",
data: data,
});
}
// 修改样品制作单
export function updatePrototypeMake(data) {
return request({
url: '/mes/pro/prototypeMake',
method: 'put',
data: data
})
url: "/mes/pro/prototypeMake",
method: "put",
data: data,
});
}
// 删除样品制作单
export function delPrototypeMake(prototypeMakeId) {
return request({
url: '/mes/pro/prototypeMake/' + prototypeMakeId,
method: 'delete'
})
url: "/mes/pro/prototypeMake/" + prototypeMakeId,
method: "delete",
});
}
// 修改状态
export function dofinish(data) {
return request({
url: "/mes/pro/prototypeMake/modifyState/",
method: "put",
data: data,
});
}
......@@ -146,9 +146,9 @@ export default {
};
},
computed: {
title () {
return '设置' + this.process.itemName + '物料'
}
title() {
return "设置" + this.process.itemName + "物料";
},
},
watch: {
process: {
......@@ -216,7 +216,9 @@ export default {
},
/** 提交编辑关联信息 */
submitEditConnect() {
this.tableData.splice(this.currentRowIdx, 1, this.form);
this.tableData.splice(this.currentRowIdx, 1, {
...this.form,
});
this.editConnectVisible = false;
},
},
......
......@@ -8,9 +8,15 @@
prop="linkType"
align="center"
/>
<el-table-column label="工作站" prop="workstationId" align="center" />
<el-table-column label="工作站" prop="workstationName" align="center" />
<el-table-column label="标准工时" prop="stdWorkingTime" align="center" />
<el-table-column label="甘特图显示颜色" prop="colorCode" align="center" />
<el-table-column v-if="mode != 'info'" label="操作" align="center" width="150">
<el-table-column
v-if="mode != 'info'"
label="操作"
align="center"
width="150"
>
<template slot-scope="{ row, $index }">
<el-button
type="text"
......@@ -42,7 +48,7 @@
v-dialogDrag
:visible.sync="showFlag"
width="800px"
title="添加工序"
title="工序修改"
>
<el-form
ref="form"
......@@ -54,75 +60,31 @@
>
<el-row>
<el-col :span="12">
<el-form-item label="组件数量" prop="quantity">
<el-input
type="number"
v-model="form.quantity"
placeholder="请输入组件数量"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="计量单位" prop="unitOfMeasure">
<el-input
v-model="form.unitOfMeasure"
placeholder="请输入计量单位"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="报废百分比" prop="scrapPercentage">
<el-input
v-model="form.scrapPercentage"
placeholder="请输入报废百分比"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="替代组" prop="alternativeGroup">
<el-input
v-model="form.alternativeGroup"
placeholder="请输入替代组"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="替代优先级" prop="alternativePriorities">
<el-input
v-model="form.alternativePriorities"
placeholder="请输入替代优先级"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="策略" prop="alternativeStrategy">
<el-input
v-model="form.alternativeStrategy"
placeholder="请输入策略"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="使用概率" prop="alternativeProbability">
<el-form-item label="工作站" prop="workstationId">
<el-input
v-model="form.alternativeProbability"
placeholder="请输入使用概率"
></el-input>
v-model="form.workstationName"
disabled
placeholder="请选择工作站信息"
>
<el-button
slot="append"
icon="el-icon-search"
@click="handleWorkstationSelect"
></el-button>
</el-input>
<WorkstationSelect
ref="WorkstationSelect"
:processId="form.processId"
@onSelected="onWorkstationSelected"
></WorkstationSelect>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="BOM行备注" prop="bomItemRemark">
<el-form-item label="标准工时" prop="stdWorkingTime">
<el-input
v-model="form.bomItemRemark"
placeholder="请输入BOM行备注"
></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="物料备注" prop="itemRemark">
<el-input
v-model="form.itemRemark"
placeholder="请输入物料备注"
type="number"
v-model="form.stdWorkingTime"
placeholder="请输入标准工时"
></el-input>
</el-form-item>
</el-col>
......@@ -139,9 +101,10 @@
<script>
import ItemBomSelect from "@/components/itemBomSelect/single.vue";
import ProcessProd from "./ProcessProd.vue";
import WorkstationSelect from "@/components/workstationSelect/simpletableSingle.vue";
export default {
components: { ItemBomSelect, ProcessProd },
inject: ['mode'],
components: { ItemBomSelect, ProcessProd, WorkstationSelect },
inject: ["mode"],
props: {
bomList: {
type: Array,
......@@ -158,15 +121,9 @@ export default {
rules: {},
/**表单初始化数据 */
form: {
quantity: "",
unitOfMeasure: "",
scrapPercentage: "",
alternativeGroup: "",
alternativePriorities: "",
alternativeStrategy: "",
alternativeProbability: "",
bomItemRemark: "",
itemRemark: "",
stdWorkingTime: "",
workstationId: "",
workstationName: "",
},
currentRow: {},
currentRowIndex: undefined,
......@@ -174,9 +131,9 @@ export default {
},
methods: {
setList(rows) {
this.tableData = rows.map(item => {
item.processItemList = []
return item
this.tableData = rows.map((item) => {
item.processItemList = [];
return item;
});
},
/** 更新工序的物料信息 */
......@@ -199,6 +156,10 @@ export default {
this.$refs["form"].validate((valid) => {
if (valid) {
this.showFlag = false;
this.tableData.splice(this.currentRowIndex, 1, {
...this.currentRow,
...this.form,
});
}
});
},
......@@ -208,22 +169,27 @@ export default {
/**重置表单 */
resetForm() {
this.form = {
quantity: "",
unitOfMeasure: "",
scrapPercentage: "",
alternativeGroup: "",
alternativePriorities: "",
alternativeStrategy: "",
alternativeProbability: "",
bomItemRemark: "",
itemRemark: "",
stdWorkingTime: "",
workstationId: "",
workstationName: "",
};
},
/**重置组件状态 */
resetState() {
this.resetForm()
this.tableData = []
}
this.resetForm();
this.tableData = [];
},
// 查询工作站信息
handleWorkstationSelect() {
this.$refs.WorkstationSelect.showFlag = true;
},
onWorkstationSelected(row) {
if (row != undefined && row != null) {
this.form.workstationId = row.workstationId;
this.form.workstationName = row.workstationName;
this.form.stdWorkingTime = row.stdWorkingTime;
}
},
},
};
</script>
......
......@@ -165,8 +165,8 @@
prop="ngReason"
/>
<el-table-column label="模数" width="120" align="center" prop="module" />
<el-table-column label="列" width="120" align="center" prop="col" />
<el-table-column label="行" width="120" align="center" prop="row" />
<el-table-column label="列" width="120" align="center" prop="colNum" />
<el-table-column label="行" width="120" align="center" prop="rowNum" />
<el-table-column
label="搭板数"
width="120"
......@@ -252,6 +252,14 @@
</template>
</el-table-column>
<el-table-column label="测试标准" align="center" prop="testStandard" />
<el-table-column label="状态" align="center" prop="prototypeMakeStatus">
<template slot-scope="scope">
<dict-tag
:options="dict.type.mes_pm_status"
:value="scope.row.prototypeMakeStatus"
/>
</template>
</el-table-column>
<el-table-column label="备注" align="center" prop="remark" />
<el-table-column
label="操作"
......@@ -264,20 +272,20 @@
size="mini"
type="text"
icon="el-icon-edit"
v-if="scope.row.prototypeMakeStatus == '打样中'"
v-if="scope.row.prototypeMakeStatus == '0'"
@click="handleUpdate(scope.row)"
v-hasPermi="['mes:pro:prototypeMake:edit']"
>修改</el-button
>
<!-- <el-button
<el-button
size="mini"
type="text"
icon="el-icon-circle-check"
v-if="scope.row.prototypeMakeStatus == '审批中'"
v-if="scope.row.prototypeMakeStatus == '0'"
@click="handleFinish(scope.row)"
v-hasPermi="['mes:pro:prototypeMake:update']"
>完成</el-button
> -->
>
<el-button
size="mini"
type="text"
......@@ -286,6 +294,15 @@
v-hasPermi="['mes:pro:prototypeMake: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:prototypeMake:edit']"
>打样</el-button
>
</template>
</el-table-column>
</el-table>
......@@ -306,14 +323,13 @@ import {
delPrototypeMake,
addPrototypeMake,
updatePrototypeMake,
dofinish,
} from "@/api/mes/pro/prototypeMake";
import ItemSelect from "@/components/itemSelect/single.vue";
import ClientSelect from "@/components/clientSelect/single.vue";
import VendorSelect from "@/components/vendorSelect/single.vue";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
// 新增js
// import { listPrototypeMake, getPrototypeMake, delPrototypeMake, addPrototypeMake, updatePrototypeMake } from "@/api/mes/pro/prototypeMake";
export default {
name: "PrototypeMake",
......@@ -361,6 +377,8 @@ export default {
prototypeMakeStatus: null,
},
options: [
{ value: "0", label: "待检查" },
{ value: "1", label: "待打样" },
{ value: "2", label: "打样中" },
{ value: "3", label: "待质检" },
{ value: "4", label: "待确认" },
......@@ -410,8 +428,8 @@ export default {
diecuttingItem: null,
standardColor: null,
module: null,
col: null,
row: null,
colNum: null,
rowNum: null,
buttstrapNum: null,
coldoubleCutspacing: null,
rowdoubleCutspacing: null,
......@@ -422,10 +440,7 @@ export default {
oppositeColorId: null,
ngReason: null,
remark: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null,
prototypeMakeStatus: null,
};
this.resetForm("form");
},
......@@ -522,16 +537,29 @@ export default {
`打样申请单_${new Date().getTime()}.xlsx`
);
},
// // 审批
// handleFinish(row){
// const prototypeMakeIds = row.prototypeMakeId || this.ids;
// this.$modal.confirm('确认完成工单?一旦完成,此工单将无法继续报工').then(function() {
// return dofinish(prototypeMakeIds) //完成工单
// }).then(() => {
// this.getList();
// this.$modal.msgSuccess("更改成功");
// }).catch(() => {});
// },
// 审批
handleFinish(row) {
row.prototypeMakeStatus = 1;
this.$modal
.confirm("确认通过样品制作单?一旦确认,此工单将无法继续修改")
.then(function () {
return dofinish(row); //完成申请单审批
})
.then(() => {
this.getList();
this.$modal.msgSuccess("审批成功");
})
.catch(() => {});
},
},
// 生成制作单
generate(row) {
// 跳转到制作单界面
const prototypeRequestId = row.prototypeRequestId || this.ids;
this.$router.push(
"/mes/pro/prototypeMake/apply?prototypeRequestId=" + prototypeRequestId
);
return;
},
};
</script>
......@@ -24,15 +24,20 @@
>
<el-row>
<el-col :md="8" :xs="12">
<el-form-item label="申请单编码" prop="prototypeRequestCode">
<el-form-item label="制作单编码" prop="prototypeMakeCode">
<el-input
disabled
v-model="form.prototypeRequestCode"
v-model="form.prototypeMakeCode"
placeholder="自动生成"
></el-input>
</el-form-item>
</el-col>
<el-col :md="8" :xs="12">
<el-form-item label="申请单编码" prop="prototypeRequestCode">
<el-input disabled v-model="form.prototypeRequestCode"></el-input>
</el-form-item>
</el-col>
<el-col :md="8" :xs="12" style="height: 50.5px">
<el-form-item label="产品" prop="itemId">
<el-input
......@@ -50,6 +55,8 @@
<ItemSelect ref="ItemSelectRef" @onSelected="onItemSelect" />-->
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :md="8" :xs="12" style="height: 50.5px">
<el-form-item label="工艺路线" prop="routeId">
<el-input
......@@ -70,8 +77,6 @@
/> -->
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :md="8" :xs="12">
<el-form-item label="简称" prop="abbreviation">
<el-input
......@@ -201,13 +206,13 @@
</el-form-item>
</el-col>
<el-col :md="8" :xs="12">
<el-form-item label="列" prop="col">
<el-input v-model="form.col" placeholder="请输入列" />
<el-form-item label="列" prop="colNum">
<el-input v-model="form.colNum" placeholder="请输入列" />
</el-form-item>
</el-col>
<el-col :md="8" :xs="12">
<el-form-item label="行" prop="row">
<el-input v-model="form.row" placeholder="请输入行" />
<el-form-item label="行" prop="rowNum">
<el-input v-model="form.rowNum" placeholder="请输入行" />
</el-form-item>
</el-col>
<el-col :md="8" :xs="12">
......@@ -261,22 +266,46 @@
<el-col :md="8" :xs="12">
<el-form-item label="印刷正面颜色" prop="frontColorId">
<el-input
v-model="form.frontColorId"
v-model="form.frontColorName"
readonly
placeholder="请输入印刷正面颜色"
/>
>
<el-button
slot="append"
icon="el-icon-search"
@click="$refs['colorFrontSelect'].showFlag = true"
></el-button>
</el-input>
<ColorSelect
ref="colorFrontSelect"
@onSelected="onColorFrontSelected"
>
</ColorSelect>
</el-form-item>
</el-col>
<el-col :md="8" :xs="12">
<el-form-item label="印刷反面颜色" prop="oppositeColorId">
<el-input
v-model="form.oppositeColorId"
v-model="form.oppositeColorName"
readonly
placeholder="请输入印刷反面颜色"
/>
>
<el-button
slot="append"
icon="el-icon-search"
@click="$refs['colorOppositeSelect'].showFlag = true"
></el-button>
</el-input>
<ColorSelect
ref="colorOppositeSelect"
@onSelected="onColorOppositeSelected"
>
</ColorSelect>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :md="8" :xs="12" span="24">
<el-col :md="8" :xs="12">
<el-form-item label="备注" prop="remark">
<el-input
type="textarea"
......@@ -310,13 +339,24 @@ import RoutesProcessSelect from "@/components/routesProcessSelect/index.vue";
import { listRouteprocess } from "@/api/mes/pro/routeprocess";
import { closeOpenPage } from "@/plugins/tab";
import {
addPrototypeRequest,
getPrototypeRequest,
updatePrototypeRequest,
} from "@/api/mes/pro/prototypeRequest";
listPrototypeMake,
getPrototypeMake,
delPrototypeMake,
addPrototypeMake,
updatePrototypeMake,
dofinish,
} from "@/api/mes/pro/prototypeMake";
import { getPrototypeRequest } from "@/api/mes/pro/prototypeRequest";
import ColorSelect from "@/components/colorSelect/index.vue";
export default {
components: { ProogingBom, ProogingProcess, ItemSelect, RoutesProcessSelect },
components: {
ProogingBom,
ProogingProcess,
ItemSelect,
RoutesProcessSelect,
ColorSelect,
},
dicts: [],
provide() {
return {
......@@ -346,6 +386,27 @@ export default {
plannedLayoutDate: "",
testStandard: "",
remark: "",
prototypeMakeId: null,
prototypeMakeCode: null,
prototypeRequestId: null,
screenItem: null,
pibanItem: null,
diecuttingItem: null,
standardColor: null,
module: null,
colNum: null,
rowNum: null,
buttstrapNum: null,
coldoubleCutspacing: null,
rowdoubleCutspacing: null,
sendworkMultiple: null,
printingPaperlenth: null,
printPaperwidth: null,
frontColorId: null,
oppositeColorId: null,
ngReason: null,
frontColorName: null,
oppositeColorName: null,
},
rules: {},
};
......@@ -359,24 +420,40 @@ export default {
},
pageTitle() {
const titles = {
edit: "打样单修改",
info: "打样单查看",
apply: "打样单申请",
edit: "样品制作单修改",
info: "样品制作单查看",
apply: "样品制作单申请",
};
return titles[this.mode];
},
},
created() {
this.getFormInfo();
this.gCode();
if (this.mode == "apply") {
this.gCode();
}
},
methods: {
/** 根据 id 获取页面数据 */
getFormInfo() {
if (this.mode != "apply") {
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["ProogingProcessRef"].tableData = data.processList;
})
.finally(() => {
this.loading = false;
});
} else {
const id = this.$route.query.prototypeMakeId;
this.loading = true;
getPrototypeMake(id)
.then(({ data }) => {
Object.assign(this.form, data);
this.bomList = data.bomList;
......@@ -391,8 +468,8 @@ export default {
},
/** 生成编码 */
gCode() {
genCode("PROTOTYPE_REQUEST_CODE").then((response) => {
this.form.prototypeRequestCode = response;
genCode("PROTOTYPE_MAKE_CODE").then((response) => {
this.form.prototypeMakeCode = response;
});
},
/** 点击tab 获取bom的数据,将参数传递给后面的组件 */
......@@ -434,7 +511,7 @@ export default {
};
this.loading = true;
if (this.mode == "apply") {
addPrototypeRequest(params)
addPrototypeMake(params)
.then((res) => {
this.loading = false;
this.$modal.msgSuccess("提交成功!");
......@@ -446,7 +523,7 @@ export default {
this.loading = false;
});
} else {
updatePrototypeRequest(params)
updatePrototypeMake(params)
.then(() => {
this.loading = false;
this.$modal.msgSuccess("提交成功!");
......@@ -474,11 +551,62 @@ export default {
plannedLayoutDate: "",
testStandard: "",
remark: "",
prototypeMakeId: "",
prototypeMakeCode: "",
prototypeRequestId: "",
screenItem: "",
pibanItem: "",
diecuttingItem: "",
standardColor: "",
module: "",
colNum: "",
rowNum: "",
buttstrapNum: "",
coldoubleCutspacing: "",
rowdoubleCutspacing: "",
sendworkMultiple: "",
printingPaperlenth: "",
printPaperwidth: "",
frontColorId: "",
oppositeColorId: "",
frontColorName: "",
oppositeColorName: "",
};
this.$refs["ProogingBomRef"].resetState();
this.$refs["ProogingProcessRef"].resetState();
this.gCode();
},
onColorFrontSelected(obj) {
this.form.itemId = this.itemId;
if (obj != undefined && obj != null) {
obj.forEach((element) => {
//this.form.itemId = element.itemId;
this.form.frontColorId = element.colorId;
this.form.frontColorName = element.colorName;
this.form.face = "front";
var retFlag = false;
const idx = this.faceColorList.findIndex(
(itm) => itm.colorId == element.colorId
);
});
}
},
onColorOppositeSelected(obj) {
this.form.itemId = this.itemId;
if (obj != undefined && obj != null) {
obj.forEach((element) => {
//this.form.itemId = element.itemId;
this.form.oppositeColorId = element.colorId;
this.form.oppositeColorName = element.colorName;
this.form.face = "front";
var retFlag = false;
const idx = this.faceColorList.findIndex(
(itm) => itm.colorId == element.colorId
);
});
}
},
},
};
</script>
......
......@@ -146,9 +146,9 @@ export default {
};
},
computed: {
title () {
return '设置' + this.process.itemName + '物料'
}
title() {
return "设置" + this.process.itemName + "物料";
},
},
watch: {
process: {
......@@ -216,7 +216,9 @@ export default {
},
/** 提交编辑关联信息 */
submitEditConnect() {
this.tableData.splice(this.currentRowIdx, 1, this.form);
this.tableData.splice(this.currentRowIdx, 1, {
...this.form,
});
this.editConnectVisible = false;
},
},
......
......@@ -80,10 +80,10 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="标准工时" prop="quantity">
<el-form-item label="标准工时" prop="stdWorkingTime">
<el-input
type="number"
v-model="form.quantity"
v-model="form.stdWorkingTime"
placeholder="请输入标准工时"
></el-input>
</el-form-item>
......@@ -156,8 +156,10 @@ export default {
this.$refs["form"].validate((valid) => {
if (valid) {
this.showFlag = false;
Object.assign(this.currentRow, this.form);
this.tableData.splice(this.currentRowIndex, 1, this.currentRow);
this.tableData.splice(this.currentRowIndex, 1, {
...this.currentRow,
...this.form,
});
}
});
},
......
......@@ -244,7 +244,7 @@
type="text"
icon="el-icon-edit"
v-if="scope.row.prototypeRequestStatus == '1'"
@click="generate(scope.row)"
@click="generatea(scope.row)"
v-hasPermi="['mes:pro:prototypeRequest:edit']"
>生成制作单</el-button
>
......@@ -490,9 +490,8 @@ export default {
})
.catch(() => {});
},
},
// 生成制作单
generate(row) {
// 生成制作单
generatea(row) {
// 跳转到制作单界面
const prototypeRequestId = row.prototypeRequestId || this.ids;
this.$router.push(
......@@ -500,5 +499,7 @@ export default {
);
return;
},
},
};
</script>
......@@ -245,7 +245,9 @@ export default {
},
created() {
this.getFormInfo();
if (this.mode == "apply") {
this.gCode();
}
},
methods: {
/** 根据 id 获取页面数据 */
......
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