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

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

parent e7e91326
......@@ -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) {
return request({
......
......@@ -4,7 +4,6 @@
:visible.sync="showFlag"
:modal= false
width="80%"
center
>
<el-row :gutter="20">
<!--分类数据-->
......@@ -220,4 +219,4 @@ export default {
}
}
};
</script>
\ No newline at end of file
</script>
......@@ -5,7 +5,6 @@
:visible.sync="showFlag"
:modal="true"
width="80%"
center
append-to-body
>
<el-row :gutter="20">
......
......@@ -71,7 +71,7 @@
</el-form-item>
</el-form>
<!-- <el-row :gutter="10" class="mb8">
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
......@@ -82,7 +82,7 @@
v-hasPermi="['tm:tmToolRequest:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<!-- <el-col :span="1.5">
<el-button
type="success"
plain
......@@ -113,14 +113,14 @@
@click="handleExport"
v-hasPermi="['tm:tmToolRequest:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row> -->
</el-col> -->
<!-- <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> -->
</el-row>
<el-table v-loading="loading" :data="tmToolRequestList" row-key="productionMakeId"
default-expand-all>
<!-- @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="toolRequestId" /> -->
<el-table-column label="申请单编码" align="center" prop="toolRequestCode" />
</el-table-column>
......@@ -148,7 +148,7 @@
<el-button
size="mini"
type="text"
icon="el-icon-edit"
icon="el-icon-view"
@click="handleView(scope.row)"
v-hasPermi="['tm:tmToolRequest:query']"
>查看</el-button>
......@@ -173,7 +173,7 @@
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
......@@ -183,71 +183,87 @@
/>
<!-- 添加或修改刀模板申请单对话框 -->
<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-row>
<el-col :span="8">
<el-form-item label="申请单编码" prop="toolRequestCode">
<el-input v-model="form.toolRequestCode" placeholder="请输入申请单编码" />
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="作业单元" prop="workunitName">
<el-input v-model="form.workunitName" placeholder="请输入作业单元" />
</el-form-item>
</el-col>
<el-row>
<el-col :span="12">
<el-form-item label="申请单编码" prop="toolRequestCode">
<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-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-row>
<el-col :span="12">
<el-form-item label="作业单元" prop="workunitName">
<el-input disabled v-model="form.workunitName" placeholder="请输入作业单元" />
</el-form-item>
</el-col>
<el-row>
<el-col :span="8">
<el-form-item label="预计开始时间" prop="startTime">
<el-date-picker clearable
v-model="form.startTime"
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="endTime">
<el-date-picker clearable
v-model="form.endTime"
type="date"
value-format="yyyy-MM-dd"
placeholder="请选择预计结束时间">
</el-date-picker>
</el-form-item>
<el-col :span="12">
<el-form-item label="申请时间" prop="requestDate">
<el-date-picker clearable
v-model="form.requestDate"
type="date"
disabled
style="width:100%"
value-format="yyyy-MM-dd"
placeholder="请选择申请时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="预计开始时间" prop="startTime">
<el-date-picker clearable
v-model="form.startTime"
type="date"
disabled
style="width:100%"
value-format="yyyy-MM-dd"
placeholder="请选择预计开始时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="总数量" prop="requestNum">
<el-input v-model="form.requestNum" placeholder="请输入总数量" />
</el-form-item>
</el-col>
</el-row>
<el-col :span="12">
<el-form-item label="预计结束时间" prop="endTime">
<el-date-picker clearable
v-model="form.endTime"
type="date"
disabled
style="width:100%"
value-format="yyyy-MM-dd"
placeholder="请选择预计结束时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="总数量" prop="requestNum">
<el-input disabled v-model="form.requestNum" placeholder="请输入总数量" />
</el-form-item>
</el-col>
</el-row>
<!-- <el-form-item label="编排单号" prop="arrangeCode">
<el-input v-model="form.arrangeCode" placeholder="请输入编排单号" />
</el-form-item> -->
</el-form>
<el-divider v-if="form.toolRequestId !=null" content-position="center">刀模板申请详细</el-divider>
<el-card shadow="always" v-if="form.toolRequestId !=null" class="box-card">
<itemline ref="line" :toolRequestId="form.toolRequestId" :optType="optType"></itemline>
<el-divider content-position="center">刀模板申请详细</el-divider>
<el-card shadow="always" class="box-card">
<itemline ref="line" :quantity="form.requestNum" :toolRequestId="form.toolRequestId" :taskId="form.taskId" :optType="optType" @sum="handleSumNum"></itemline>
</el-card>
<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>
</div>
</el-dialog>
......@@ -257,11 +273,25 @@
<script>
import { listTmToolRequest, getTmToolRequest, delTmToolRequest, addTmToolRequest, updateTmToolRequest } from "@/api/mes/tm/tmToolRequest";
import itemline from "./itemIndex.vue";
import { genCode } from "@/api/system/autocode/rule";
import SelectTask from "./selectTask.vue";
export default {
name: "TmToolRequest",
components: {itemline},
components: {itemline, SelectTask},
data() {
return {
// 新增弹窗
addVisible: false,
addForm: {
toolRequestCode: null,
itemName: null,
imToolRequestItemList: []
},
addRules: {
},
tasksList: [],
// 遮罩层
loading: true,
// 选中数组
......@@ -280,36 +310,40 @@ export default {
title: "",
// 是否显示弹出层
open: false,
optType: null,
// 查询参数
queryParams: {
pageNum: 1,
pageSize: 10,
toolRequestId: null,
toolRequestCode: null,
processId: null,
workunitId: null,
requestDate: null,
startTime: null,
endTime: null,
requestNum: null,
toolRequestId: null,
toolRequestCode: null,
processId: null,
workunitId: null,
requestDate: null,
startTime: null,
endTime: null,
requestNum: null,
arrangeCode: null,
workunitName: null,
workunitName: null,
},
// 表单参数
form: {
// toolRequestId: null,
// toolRequestCode: null,
// processId: null,
// workunitId: null,
// requestDate: null,
// startTime: null,
// endTime: null,
// requestNum: null,
// toolRequestId: null,
// toolRequestCode: null,
// processId: null,
// workunitId: null,
// requestDate: null,
// startTime: null,
// endTime: null,
// requestNum: null,
// arrangeCode: null,
// workunitName: null,
// workunitName: null,
},
// 表单校验
rules: {
taskId: [
{ required: true, message: '请选择任务单', trigger: 'change, blur' }
],
}
};
},
......@@ -335,7 +369,7 @@ export default {
// toolRequestId
// );
// },
handleView(row){
handleView(row){
this.reset();
const toolRequestIds = row.toolRequestId
getTmToolRequest(toolRequestIds).then(response => {
......@@ -353,18 +387,19 @@ export default {
// 表单重置
reset() {
this.form = {
toolRequestId: null,
toolRequestCode: null,
processId: null,
workunitId: null,
requestDate: null,
startTime: null,
endTime: null,
requestNum: null,
arrangeCode: null,
createBy: null,
createTime: null,
updateBy: null,
toolRequestCode: null,
toolRequestId: null,
toolRequestCode: null,
processId: null,
workunitId: null,
requestDate: null,
startTime: null,
endTime: null,
requestNum: null,
arrangeCode: null,
createBy: null,
createTime: null,
updateBy: null,
updateTime: null };
this.resetForm("form");
},
......@@ -384,11 +419,42 @@ export default {
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 生成编码 */
gCode() {
genCode("TOOL_REQUEST_CODE").then((response) => {
console.log(response, 'toolRequestCode')
this.form.toolRequestCode = response;
});
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.reset()
this.gCode()
this.title = '添加刀模板申请单'
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) {
......@@ -411,6 +477,14 @@ export default {
this.getList();
});
} 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 => {
this.$modal.msgSuccess("新增成功");
this.open = false;
......
<template>
<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-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="toolRequestId" /> -->
<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>
<pagination
v-show="total>0"
v-show="total>0&&$attrs.optType !== 'add'"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
......@@ -43,9 +69,11 @@
<script>
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 {
name: "TmToolRequestItem",
components: {ItemSelect},
props:{
toolRequestId:{
type:String,
......@@ -55,7 +83,7 @@ export default {
data() {
return {
// 遮罩层
loading: true,
loading: false,
// 选中数组
ids: [],
// 非单个禁用
......@@ -84,10 +112,32 @@ export default {
}
};
},
watch: {
'$attrs.taskId'(newVal, oldVal){
if (this.$attrs.optType === 'add') {
this.getTaskList()
}
}
},
created() {
this.getList();
if (this.$attrs.optType !== 'add') {
this.getList();
}
},
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() {
this.loading = true;
......@@ -98,6 +148,30 @@ export default {
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() {
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