Commit 6ca2d542 authored by 张海景's avatar 张海景

update:提交工装夹具申请单新增接口联调

parent e7e91326
...@@ -18,6 +18,23 @@ export function listGanttTaskList(query) { ...@@ -18,6 +18,23 @@ export function listGanttTaskList(query) {
}); });
} }
// 查询生产任务列表加上了字段workunitName
export function listTaskListDetail(query) {
return request({
url: "/mes/pro/protask/listDetail",
method: "get",
params: query,
});
}
// 查询根据任务id获取刀模板
export function getTaskIdMaxProcessTool(query) {
return request({
url: `/mes/pro/protask/getMaxProcessTool/${query.taskId}`,
method: "get",
params: query,
});
}
// 查询生产任务详细 // 查询生产任务详细
export function getProtask(taskId) { export function getProtask(taskId) {
return request({ return request({
......
...@@ -4,7 +4,6 @@ ...@@ -4,7 +4,6 @@
:visible.sync="showFlag" :visible.sync="showFlag"
:modal= false :modal= false
width="80%" width="80%"
center
> >
<el-row :gutter="20"> <el-row :gutter="20">
<!--分类数据--> <!--分类数据-->
......
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
:visible.sync="showFlag" :visible.sync="showFlag"
:modal="true" :modal="true"
width="80%" width="80%"
center
append-to-body append-to-body
> >
<el-row :gutter="20"> <el-row :gutter="20">
......
...@@ -71,7 +71,7 @@ ...@@ -71,7 +71,7 @@
</el-form-item> </el-form-item>
</el-form> </el-form>
<!-- <el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button
type="primary" type="primary"
...@@ -82,7 +82,7 @@ ...@@ -82,7 +82,7 @@
v-hasPermi="['tm:tmToolRequest:add']" v-hasPermi="['tm:tmToolRequest:add']"
>新增</el-button> >新增</el-button>
</el-col> </el-col>
<el-col :span="1.5"> <!-- <el-col :span="1.5">
<el-button <el-button
type="success" type="success"
plain plain
...@@ -113,9 +113,9 @@ ...@@ -113,9 +113,9 @@
@click="handleExport" @click="handleExport"
v-hasPermi="['tm:tmToolRequest:export']" v-hasPermi="['tm:tmToolRequest:export']"
>导出</el-button> >导出</el-button>
</el-col> </el-col> -->
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> <!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->
</el-row> --> </el-row>
<el-table v-loading="loading" :data="tmToolRequestList" row-key="productionMakeId" <el-table v-loading="loading" :data="tmToolRequestList" row-key="productionMakeId"
default-expand-all> default-expand-all>
...@@ -148,7 +148,7 @@ ...@@ -148,7 +148,7 @@
<el-button <el-button
size="mini" size="mini"
type="text" type="text"
icon="el-icon-edit" icon="el-icon-view"
@click="handleView(scope.row)" @click="handleView(scope.row)"
v-hasPermi="['tm:tmToolRequest:query']" v-hasPermi="['tm:tmToolRequest:query']"
>查看</el-button> >查看</el-button>
...@@ -183,58 +183,74 @@ ...@@ -183,58 +183,74 @@
/> />
<!-- 添加或修改刀模板申请单对话框 --> <!-- 添加或修改刀模板申请单对话框 -->
<el-dialog :title="title" :visible.sync="open" width="960px" append-to-body> <el-dialog v-if="open" :destroy-on-close="true" :title="title" :visible.sync="open" width="960px" append-to-body :close-on-click-modal="false">
<el-form ref="form" :model="form" :rules="rules" label-width="100px"> <el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row> <el-row>
<el-col :span="8"> <el-col :span="12">
<el-form-item label="申请单编码" prop="toolRequestCode"> <el-form-item label="申请单编码" prop="toolRequestCode">
<el-input v-model="form.toolRequestCode" placeholder="请输入申请单编码" /> <el-input v-model="form.toolRequestCode" disabled placeholder="自动生成" />
</el-form-item>
</el-col>
<el-col v-if="optType === 'add'" :span="12">
<el-form-item label="任务单" prop="taskId">
<el-input v-model="form.taskId" placeholder="请选择任务单"
disabled>
<el-button
v-if="optType === 'add'"
slot="append"
icon="el-icon-search"
@click="$refs['selectTaskRef'].showFlag = true"
></el-button>
</el-input>
<SelectTask ref="selectTaskRef" @onSelected="onSelectTask" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="12">
<el-form-item label="作业单元" prop="workunitName"> <el-form-item label="作业单元" prop="workunitName">
<el-input v-model="form.workunitName" placeholder="请输入作业单元" /> <el-input disabled v-model="form.workunitName" placeholder="请输入作业单元" />
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="12">
<el-form-item label="申请时间" prop="requestDate"> <el-form-item label="申请时间" prop="requestDate">
<el-date-picker clearable <el-date-picker clearable
v-model="form.requestDate" v-model="form.requestDate"
type="date" type="date"
disabled
style="width:100%"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="请选择申请时间"> placeholder="请选择申请时间">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> <el-col :span="12">
<el-row>
<el-col :span="8">
<el-form-item label="预计开始时间" prop="startTime"> <el-form-item label="预计开始时间" prop="startTime">
<el-date-picker clearable <el-date-picker clearable
v-model="form.startTime" v-model="form.startTime"
type="date" type="date"
disabled
style="width:100%"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="请选择预计开始时间"> placeholder="请选择预计开始时间">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="12">
<el-form-item label="预计结束时间" prop="endTime"> <el-form-item label="预计结束时间" prop="endTime">
<el-date-picker clearable <el-date-picker clearable
v-model="form.endTime" v-model="form.endTime"
type="date" type="date"
disabled
style="width:100%"
value-format="yyyy-MM-dd" value-format="yyyy-MM-dd"
placeholder="请选择预计结束时间"> placeholder="请选择预计结束时间">
</el-date-picker> </el-date-picker>
</el-form-item> </el-form-item>
</el-col> </el-col>
<el-col :span="8"> <el-col :span="12">
<el-form-item label="总数量" prop="requestNum"> <el-form-item label="总数量" prop="requestNum">
<el-input v-model="form.requestNum" placeholder="请输入总数量" /> <el-input disabled v-model="form.requestNum" placeholder="请输入总数量" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
...@@ -242,12 +258,12 @@ ...@@ -242,12 +258,12 @@
<el-input v-model="form.arrangeCode" placeholder="请输入编排单号" /> <el-input v-model="form.arrangeCode" placeholder="请输入编排单号" />
</el-form-item> --> </el-form-item> -->
</el-form> </el-form>
<el-divider v-if="form.toolRequestId !=null" content-position="center">刀模板申请详细</el-divider> <el-divider content-position="center">刀模板申请详细</el-divider>
<el-card shadow="always" v-if="form.toolRequestId !=null" class="box-card"> <el-card shadow="always" class="box-card">
<itemline ref="line" :toolRequestId="form.toolRequestId" :optType="optType"></itemline> <itemline ref="line" :quantity="form.requestNum" :toolRequestId="form.toolRequestId" :taskId="form.taskId" :optType="optType" @sum="handleSumNum"></itemline>
</el-card> </el-card>
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<!-- <el-button type="primary" @click="submitForm"> </el-button> --> <el-button v-if="!form.toolRequestId" type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button> <el-button @click="cancel"> </el-button>
</div> </div>
</el-dialog> </el-dialog>
...@@ -257,11 +273,25 @@ ...@@ -257,11 +273,25 @@
<script> <script>
import { listTmToolRequest, getTmToolRequest, delTmToolRequest, addTmToolRequest, updateTmToolRequest } from "@/api/mes/tm/tmToolRequest"; import { listTmToolRequest, getTmToolRequest, delTmToolRequest, addTmToolRequest, updateTmToolRequest } from "@/api/mes/tm/tmToolRequest";
import itemline from "./itemIndex.vue"; import itemline from "./itemIndex.vue";
import { genCode } from "@/api/system/autocode/rule";
import SelectTask from "./selectTask.vue";
export default { export default {
name: "TmToolRequest", name: "TmToolRequest",
components: {itemline}, components: {itemline, SelectTask},
data() { data() {
return { return {
// 新增弹窗
addVisible: false,
addForm: {
toolRequestCode: null,
itemName: null,
imToolRequestItemList: []
},
addRules: {
},
tasksList: [],
// 遮罩层 // 遮罩层
loading: true, loading: true,
// 选中数组 // 选中数组
...@@ -280,6 +310,7 @@ export default { ...@@ -280,6 +310,7 @@ export default {
title: "", title: "",
// 是否显示弹出层 // 是否显示弹出层
open: false, open: false,
optType: null,
// 查询参数 // 查询参数
queryParams: { queryParams: {
pageNum: 1, pageNum: 1,
...@@ -310,6 +341,9 @@ export default { ...@@ -310,6 +341,9 @@ export default {
}, },
// 表单校验 // 表单校验
rules: { rules: {
taskId: [
{ required: true, message: '请选择任务单', trigger: 'change, blur' }
],
} }
}; };
}, },
...@@ -353,6 +387,7 @@ export default { ...@@ -353,6 +387,7 @@ export default {
// 表单重置 // 表单重置
reset() { reset() {
this.form = { this.form = {
toolRequestCode: null,
toolRequestId: null, toolRequestId: null,
toolRequestCode: null, toolRequestCode: null,
processId: null, processId: null,
...@@ -384,11 +419,42 @@ export default { ...@@ -384,11 +419,42 @@ export default {
this.single = selection.length!==1 this.single = selection.length!==1
this.multiple = !selection.length this.multiple = !selection.length
}, },
/** 生成编码 */
gCode() {
genCode("TOOL_REQUEST_CODE").then((response) => {
console.log(response, 'toolRequestCode')
this.form.toolRequestCode = response;
});
},
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.reset(); this.reset()
this.gCode()
this.title = '添加刀模板申请单'
this.open = true; this.open = true;
this.title = "添加刀模板申请单"; this.optType = "add"
},
onSelectTask(row){
console.log(row, 'rows')
this.$set(this.form, 'taskId', row.taskId)
this.form.requestDate = row.createTime
this.form.processId = row.processId
this.form.startTime = row.startTime
this.form.endTime = row.endTime
this.form.arrangeCode = row.arrangeCode
this.form.workunitName = row.workunitName
},
handleSumNum() {
// this.form.requestNum
let sum = 0
if (this.$refs.line.tmToolRequestItemList.length === 0) {
this.form.requestNum = 0
return
}
this.$refs.line.tmToolRequestItemList.forEach(item => {
sum+=Number(item.allQuantity)
})
this.form.requestNum = sum
}, },
/** 修改按钮操作 */ /** 修改按钮操作 */
handleUpdate(row) { handleUpdate(row) {
...@@ -411,6 +477,14 @@ export default { ...@@ -411,6 +477,14 @@ export default {
this.getList(); this.getList();
}); });
} else { } else {
const datas = Object.assign(this.form, {})
datas.imToolRequestItemList = this.$refs.line.tmToolRequestItemList.map(item=> {
return {
...item,
nextMaintenPeriod:Number(item.nextMaintenPeriod)
}
})
console.log(datas, 'datas')
addTmToolRequest(this.form).then(response => { addTmToolRequest(this.form).then(response => {
this.$modal.msgSuccess("新增成功"); this.$modal.msgSuccess("新增成功");
this.open = false; this.open = false;
......
<template> <template>
<div class="app-container"> <div class="app-container">
<el-button
v-if="$attrs.optType === 'add'"
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="$refs['ItemSelectRef'].showFlag = true"
>新增</el-button>
<ItemSelect ref="ItemSelectRef" @onSelected="onItemSelect" />
<el-table v-loading="loading" :data="tmToolRequestItemList" @selection-change="handleSelectionChange"> <el-table v-loading="loading" :data="tmToolRequestItemList" @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="toolRequestItemId" /> <!-- <el-table-column label="主键id" align="center" prop="toolRequestItemId" />
<el-table-column label="刀模板申请单id" align="center" prop="toolRequestId" /> --> <el-table-column label="刀模板申请单id" align="center" prop="toolRequestId" /> -->
<el-table-column label="刀模板物料名称" align="center" prop="itemName" /> <el-table-column label="刀模板物料名称" align="center" prop="itemName" />
<el-table-column label="数量" align="center" prop="allQuantity" />
<el-table-column label="预计使用寿命" align="center" prop="nextMaintenPeriod" /> <el-table-column width="80px" v-if="$attrs.optType === 'add'" label="数量" align="center" prop="allQuantity" >
<template slot-scope="scope">
<el-input v-model="scope.row.allQuantity" @blur="$emit('sum')" placeholder="请输入数量" />
</template>
</el-table-column>
<el-table-column width="120px" v-else label="数量" align="center" prop="allQuantity" />
<el-table-column width="120px" label="预计使用寿命" align="center" prop="nextMaintenPeriod" />
<el-table-column width="100px" v-if="$attrs.optType === 'add'" label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleRemove(scope.row, scope.$index)"
>删除</el-button>
</template>
</el-table-column>
</el-table> </el-table>
<pagination <pagination
v-show="total>0" v-show="total>0&&$attrs.optType !== 'add'"
:total="total" :total="total"
:page.sync="queryParams.pageNum" :page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize" :limit.sync="queryParams.pageSize"
...@@ -43,9 +69,11 @@ ...@@ -43,9 +69,11 @@
<script> <script>
import { listTmToolRequestItem, getTmToolRequestItem, delTmToolRequestItem, addTmToolRequestItem, updateTmToolRequestItem } from "@/api/mes/tm/tmToolRequestItem"; import { listTmToolRequestItem, getTmToolRequestItem, delTmToolRequestItem, addTmToolRequestItem, updateTmToolRequestItem } from "@/api/mes/tm/tmToolRequestItem";
import { getTaskIdMaxProcessTool } from "@/api/mes/pro/protask";
import ItemSelect from "@/components/itemSelect/index.vue";
export default { export default {
name: "TmToolRequestItem", name: "TmToolRequestItem",
components: {ItemSelect},
props:{ props:{
toolRequestId:{ toolRequestId:{
type:String, type:String,
...@@ -55,7 +83,7 @@ export default { ...@@ -55,7 +83,7 @@ export default {
data() { data() {
return { return {
// 遮罩层 // 遮罩层
loading: true, loading: false,
// 选中数组 // 选中数组
ids: [], ids: [],
// 非单个禁用 // 非单个禁用
...@@ -84,10 +112,32 @@ export default { ...@@ -84,10 +112,32 @@ export default {
} }
}; };
}, },
watch: {
'$attrs.taskId'(newVal, oldVal){
if (this.$attrs.optType === 'add') {
this.getTaskList()
}
}
},
created() { created() {
if (this.$attrs.optType !== 'add') {
this.getList(); this.getList();
}
}, },
methods: { methods: {
onItemSelect(list){
// console.log(list, 'list')
const datas = list.map(item => {
return {
itemId:item.itemId,
itemName:item.itemName,
allQuantity: 1,
nextMaintenPeriod: this.$attrs.quantity
}
})
this.tmToolRequestItemList = this.tmToolRequestItemList.concat(datas)
this.$emit('sum')
},
/** 查询刀模板物料申请单列表 */ /** 查询刀模板物料申请单列表 */
getList() { getList() {
this.loading = true; this.loading = true;
...@@ -98,6 +148,30 @@ export default { ...@@ -98,6 +148,30 @@ export default {
this.loading = false; this.loading = false;
}); });
}, },
/** 查询任务刀模板申请单列表 */
getTaskList() {
this.loading = true;
this.queryParams.taskId = this.$attrs.taskId;
this.queryParams.pageSize = 10000;
getTaskIdMaxProcessTool(this.queryParams).then(response => {
const datas = response.data.map(item => {
return {
...item,
allQuantity: item.AllQuantity
}
});
this.tmToolRequestItemList = this.tmToolRequestItemList.concat(datas)
// this.total = response.total;
this.loading = false;
this.$emit('sum')
});
},
handleRemove(row, index) {
console.log(row,index)
// this.tags.splice(this.tags.indexOf(tag), 1)
this.tmToolRequestItemList.splice(this.tmToolRequestItemList.indexOf(row), 1)
this.$emit('sum')
},
// 取消按钮 // 取消按钮
cancel() { cancel() {
this.open = false; this.open = false;
......
<template>
<el-dialog
title="请选择任务单"
v-if="showFlag"
:visible.sync="showFlag"
:modal="true"
width="80%"
append-to-body
:destroy-on-close="true"
:close-on-click-modal="false"
>
<el-form
:model="queryParams"
ref="queryForm"
size="small"
:inline="true"
v-show="showSearch"
label-width="100px"
>
<el-form-item label="任务单编码" prop="taskCode">
<el-input
v-model="queryParams.taskCode"
placeholder="请输入任务单编码"
clearable
style="width: 200px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="生产工单" prop="workOrderCode">
<el-input
v-model="queryParams.workOrderCode"
placeholder="请输入生产工单"
clearable
style="width: 200px"
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="编排单号" prop="arrangeCode">
<el-input
v-model="queryParams.arrangeCode"
placeholder="请输入编排单号"
clearable
style="width: 200px"
@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"
@row-click="handleRowChange"
>
<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
> -->
<!-- 可以手动的修改label的值,从而控制选择哪一项 -->
<el-radio class="radio" v-model="selectedItemId" :label="scope.row.taskId"
>&nbsp;</el-radio
>
</template>
</el-table-column>
<el-table-column
label="任务单编码"
width="120"
align="center"
key="taskCode"
prop="taskCode"
>
</el-table-column>
<el-table-column
label="工序名称"
min-width="120"
align="center"
key="processName"
prop="processName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="产品名称"
align="center"
key="itemName"
min-width="150"
prop="itemName"
:show-overflow-tooltip="true"
/>
<el-table-column
label="单位"
align="center"
width="80"
key="unitOfMeasure"
prop="unitOfMeasure"
:show-overflow-tooltip="true"
/>
<el-table-column
label="排产数量"
align="center"
key="quantity"
width="100"
prop="quantity"
:show-overflow-tooltip="true"
/>
<el-table-column label="工作单元编码" align="center" prop="workunitId" />
<el-table-column
label="开始生产时间"
align="center"
prop="startTime"
width="180"
:show-overflow-tooltip="true"
>
<template slot-scope="scope">
<span>{{
parseTime(scope.row.startTime, "{y}-{m}-{d}:{h}-{m}-{s}")
}}</span>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total > 0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<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 { listTaskListDetail } from "@/api/mes/pro/protask";
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,
workorderType: 'SELF',
statusStr: 'PREPARE,BEGINNING,ISSUEGENERATED'
},
};
},
watch: {
// 根据名称筛选分类树
itemTypeName(val) {
this.$refs.tree.filter(val);
},
},
created() {
},
mounted() {
this.getList();
},
methods: {
/** 查询物料编码列表 */
getList() {
this.loading = true;
listTaskListDetail(this.queryParams).then((response) => {
this.itemList = response.rows;
this.total = response.total;
this.loading = false;
});
},
/** 搜索按钮操作 */
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) {
if (row) {
this.selectedRows = row;
this.selectedItemId = row.taskId
}
},
//确定选中
confirmSelect() {
if (this.selectedItemId == null || this.selectedItemId == 0) {
this.$notify({
title: "提示",
type: "warning",
message: "请至少选择一条数据!",
});
return;
}
this.$emit("onSelected", this.selectedRows);
this.showFlag = false;
},
},
};
</script>
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