工艺管理接口联调问题修改

dev-scheduling
zhangdi 4 months ago
parent 4c68f51e76
commit 2107fd8759
  1. 12
      public/config.js
  2. 4
      src/api/processManagement/addQuantity.js
  3. 8
      src/api/processManagement/taskProcessing.js
  4. 229
      src/api/productionSchedulingPlan/basic.js
  5. 759
      src/views/aaaaaaaaaaaaa/table.vue
  6. 53
      src/views/processManagement/bathRefine/accumulateClass.vue
  7. 103
      src/views/processManagement/bathRefine/addQuantity.vue
  8. 27
      src/views/processManagement/bathRefine/bathRefineTask.vue
  9. 28
      src/views/processManagement/bathRefine/components/addAccumulateClassDialog.vue
  10. 59
      src/views/processManagement/bathRefine/components/addQuantityDialog.vue
  11. 23
      src/views/processManagement/bathRefine/components/auditBatchDialog.vue
  12. 12
      src/views/processManagement/bathRefine/components/auditDialog.vue
  13. 27
      src/views/processManagement/bathRefine/components/maintainBathDialog.vue
  14. 11
      src/views/processManagement/bathRefine/components/maintainDialog.vue
  15. 61
      src/views/processManagement/components/processMainte/dsPartBasicInfo.vue
  16. 11
      src/views/processManagement/components/processMainte/dsPartIndex.vue
  17. 61
      src/views/processManagement/components/processMainte/processPlanning.vue
  18. 19
      src/views/processManagement/components/processMainte/reworkDsPartIndex.vue
  19. 250
      src/views/processManagement/components/processMainte/reworkProcessPlanning.vue
  20. 10
      src/views/processManagement/taskProcessing.vue
  21. 305
      src/views/productionSchedulingPlan/basic/equipmentCapacity.vue
  22. 241
      src/views/productionSchedulingPlan/basic/inspectionHours.vue
  23. 273
      src/views/productionSchedulingPlan/basic/nonSameFurnace.vue
  24. 227
      src/views/productionSchedulingPlan/basic/personnelCapacity.vue
  25. 232
      src/views/productionSchedulingPlan/basic/principalProducer.vue
  26. 219
      src/views/productionSchedulingPlan/basic/qualityGrade.vue

@ -0,0 +1,12 @@
window.LOAD_Remind = 86400000
window.TIMED_Trigger=86400000
window.YINGDU_Trigger=3000 //硬度检测 轮巡时间
window.PROCESS_FLOW_CARD_HEAT_METER="http://192.168.169.172:9000/jmreport/view/1154214123878776832"//工艺流程卡地址 热表公用
window.PROCESS_FLOW_CARD_HEAT_SINTER="http://192.168.169.172:9000/jmreport/view/1154632438942031872"//工艺流程卡地址 烧结
window.SCHEDULING_DASHBOARD = "http://192.168.0.117:2888/SCHEDULING_DASHBOARD" //排产看板地址
window.SCHEDULING_EXCEPTION = "http://192.168.0.117:2888/SCHEDULING_EXCEPTION" //排产异常地址
window.SCHEDULING_ANALYSIS = "http://192.168.0.117:2888/SCHEDULING_ANALYSIS" //排产统计分析地址
window.PROCESS_QUALITY_RECORD = "http://192.168.169.172:9000/jmreport/view/1153140195292762112" //电子档案-热表分厂-质量记录

@ -16,7 +16,7 @@ export const getList = (current, size, params) => {
// 保存
export const add = row => {
return request({
url: '/blade-desk/dsMainSaltAddQuantity/save',
url: '/blade-desk/dsMainSaltAddQuantity/submit',
method: 'post',
data: row,
});
@ -27,7 +27,7 @@ export const add = row => {
// 修改
export const update = row => {
return request({
url: '/blade-desk/dsMainSaltAddQuantity/update',
url: '/blade-desk/dsMainSaltAddQuantity/submit',
method: 'post',
data: row,
});

@ -115,11 +115,11 @@ export const taskRedeploy = data => {
}
// 接收
export const taskReception = data => {
export const taskReception = params => {
return request({
url: '/blade-desk/dsTasking/taskReception',
method: 'post',
data:data
method: 'get',
params:params
});
}
@ -127,7 +127,7 @@ export const taskReception = data => {
// 零件编制保存
export const authorizedAccomplish = data => {
return request({
url: '/blade-desk/dsTasking/authorizedAccomplish',
url: '/blade-desk/dsTasking/authorizedPart',
method: 'post',
data:data
});

@ -0,0 +1,229 @@
import request from '@/axios';
// 人员能力 增删改查
export const getListPersonAbility = (current, size, params) => {
return request({
url: '/blade-scheduling/personAbility/page',
method: 'get',
params: {
...params,
current,
size,
},
});
};
export const removePersonAbility = ids => {
return request({
url: '/blade-scheduling/personAbility/remove',
method: 'post',
params: {
ids,
},
});
};
export const addPersonAbility = row => {
return request({
url: '/blade-scheduling/personAbility/submit',
method: 'post',
data: row,
});
};
export const updatePersonAbility = row => {
return request({
url: '/blade-scheduling/personAbility/submit',
method: 'post',
data: row,
});
};
// 检验工时 增删改查
export const getListInspectionItem = (current, size, params) => {
return request({
url: '/blade-scheduling/inspectionItem/page',
method: 'get',
params: {
...params,
current,
size,
},
});
};
export const removeInspectionItem = ids => {
return request({
url: '/blade-scheduling/inspectionItem/remove',
method: 'post',
params: {
ids,
},
});
};
export const addInspectionItem = row => {
return request({
url: '/blade-scheduling/inspectionItem/submit',
method: 'post',
data: row,
});
};
export const updateInspectionItem = row => {
return request({
url: '/blade-scheduling/inspectionItem/submit',
method: 'post',
data: row,
});
};
// 质量等级 增删改查
export const getListGualityGrade = (current, size, params) => {
return request({
url: '/blade-scheduling/gualityGrade/page',
method: 'get',
params: {
...params,
current,
size,
},
});
};
export const removeGualityGrade = ids => {
return request({
url: '/blade-scheduling/gualityGrade/remove',
method: 'post',
params: {
ids,
},
});
};
export const addGualityGrade = row => {
return request({
url: '/blade-scheduling/gualityGrade/submit',
method: 'post',
data: row,
});
};
export const updateGualityGrade = row => {
return request({
url: '/blade-scheduling/gualityGrade/submit',
method: 'post',
data: row,
});
};
// 设备能力 增删改查
export const getListEquipAbility = (current, size, params) => {
return request({
url: '/blade-scheduling/equipAbility/page',
method: 'get',
params: {
...params,
current,
size,
},
});
};
export const removeEquipAbility = ids => {
return request({
url: '/blade-scheduling/equipAbility/remove',
method: 'post',
params: {
ids,
},
});
};
export const addEquipAbility = row => {
return request({
url: '/blade-scheduling/equipAbility/submit',
method: 'post',
data: row,
});
};
export const updateEquipAbility = row => {
return request({
url: '/blade-scheduling/equipAbility/submit',
method: 'post',
data: row,
});
};
// 主生产者 增删改查
export const getListMainProducer = (current, size, params) => {
return request({
url: '/blade-scheduling/mainProducer/page',
method: 'get',
params: {
...params,
current,
size,
},
});
};
export const removeMainProducer = ids => {
return request({
url: '/blade-scheduling/mainProducer/remove',
method: 'post',
params: {
ids,
},
});
};
export const addMainProducer = row => {
return request({
url: '/blade-scheduling/mainProducer/submit',
method: 'post',
data: row,
});
};
export const updateMainProducer = row => {
return request({
url: '/blade-scheduling/equipAbility/submit',
method: 'post',
data: row,
});
};
// 非同炉(槽)因素 增删改查
export const getListDifferentFurnaceTank = (current, size, params) => {
return request({
url: '/blade-scheduling/differentFurnaceTank/page',
method: 'get',
params: {
...params,
current,
size,
},
});
};
export const removeDifferentFurnaceTank = ids => {
return request({
url: '/blade-scheduling/differentFurnaceTank/remove',
method: 'post',
params: {
ids,
},
});
};
export const addDifferentFurnaceTank = row => {
return request({
url: '/blade-scheduling/differentFurnaceTank/submit',
method: 'post',
data: row,
});
};
export const updateDifferentFurnaceTank = row => {
return request({
url: '/blade-scheduling/differentFurnaceTank/submit',
method: 'post',
data: row,
});
};

@ -1,574 +1,215 @@
<template>
<basic-container>
<div class="search_box">
</div>
<avue-crud :option="option" :table-loading="loading" :data="data" v-model="form" v-model:page="page" ref="crud"
@row-del="rowDel" @search-change="searchChange" @search-reset="searchReset"
@selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange"
@refresh-change="refreshChange" @on-load="onLoad">
<template #menu-left>
<el-button type="danger" @click="batchDel()">删除</el-button>
</template>
<template #menu-right>
<el-button type="primary" @click="batchDel()">导入</el-button>
</template>
<template #menu="{ row }">
</template>
<template #heatTreat="scope">
<el-tag v-if="scope.row.afterPlating" type="success"></el-tag>
<el-tag v-else type="warning"></el-tag>
</template>
<basic-container>
<avue-crud
:option="option"
:table-loading="loading"
:data="data"
v-model="form"
v-model:page="page"
ref="crud"
@row-del="rowDel"
@search-change="searchChange"
@search-reset="searchReset"
@selection-change="selectionChange"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
>
<template #menu-left> </template>
<template #menu-right> </template>
<template #menu="{ row }"> </template>
</avue-crud>
</basic-container>
<template #heatTreat="scope"> </template>
</avue-crud>
</basic-container>
</template>
<script>
import {
add,
getRole,
getRoleAlias,
getRoleTreeById,
grant,
grantTree,
remove,
update,
} from '@/api/system/role';
import { mapGetters } from 'vuex';
import { validatenull } from '@/utils/validate';
getListPersonAbility,
removePersonAbility,
addPersonAbility,
updatePersonAbility,
} from '@/api/productionSchedulingPlan/scheduling';
export default {
components: {
},
data() {
return {
inBatchesOpen: false,
platingSmallOpen: false,
planOrderArr: [],
isOpen: false,
rowItem: {},
poId: null,
form: {},
box: false,
props: {
label: 'title',
value: 'key',
},
menuGrantList: [],
dataScopeGrantList: [],
apiScopeGrantList: [],
apiGrantList: [],
menuTreeObj: [],
dataScopeTreeObj: [],
apiScopeTreeObj: [],
selectionList: [],
query: {},
loading: true,
page: {
pageSize: 10,
currentPage: 1,
total: 0,
},
option: {
columnSort: true,
tip: false,
height: 'auto',
calcHeight: 32,
simplePage: false,
searchShow: true,
searchMenuSpan: 6,
searchIcon: true,
searchIndex: 3,
tree: false,
border: true,
index: true,
selection: false,
addBtn: false,
editBtn: false,
viewBtn: false,
delBtn: false,
editBtnText: '修改',
labelWidth: 120,
menuWidth: 80,
dialogWidth: 900,
dialogClickModal: false,
searchEnter: true,
excelBtn: false,
filterBtn: true,
searchShowBtn: false,
excelBtn: true,
showOverflowTooltip: true,
addBtnIcon: ' ',
viewBtnIcon: ' ',
delBtnIcon: ' ',
editBtnIcon: ' ',
gridBtn: false,
searchLabelPosition: 'left',
searchGutter: 24,
searchSpan: 6,
menuAlign: 'left',
gridBtn: false,
searchMenuPosition: 'right',
align: 'center',
column: [
{
label: '配套人',
prop: 'partCode',
bind: 'dsPart.partCode',
search: true,
sortable: true,
width: 150,
span: 12,
},
{
label: '配套时间',
prop: 'partName',
bind: 'dsPart.partName',
search: true,
sortable: true,
width: 150,
span: 12,
},
{
label: '计划单号',
prop: 'cycle',
search: true,
sortable: true,
width: 150,
span: 12,
},
{
label: '生产单号',
prop: 'material',
bind: 'dsPart.material',
search: false,
sortable: true,
width: 150,
span: 12,
display: false,
},
{
label: '零件号',
prop: 'plate',
bind: 'dsPart.plate',
search: false,
sortable: true,
width: 150,
span: 12,
display: false,
},
{
label: '批次号',
prop: 'craftWay',
bind: 'dsPart.craftWay',
search: false,
sortable: true,
width: 150,
span: 12,
display: false,
},
{
label: '流程卡号',
prop: 'chlidPart',
search: false,
sortable: true,
width: 150,
span: 12,
},
{
label: '产品型号',
prop: 'remindContent',
search: false,
sortable: true,
width: 150,
span: 12,
},
{
label: '名称',
prop: 'parameter',
search: false,
sortable: true,
width: 150,
span: 12,
display: false,
},
{
label: '镀种',
prop: 'metalsTest',
search: false,
sortable: true,
width: 150,
span: 12,
display: false,
},
{
label: '生产标识',
prop: 'silverTest',
search: false,
sortable: true,
width: 150,
span: 12,
display: false,
},
{
label: '使用部门',
prop: 'heatTreat',
search: false,
sortable: true,
width: 150,
span: 12,
type: 'switch',
},
{
label: '数量',
prop: 'afterPlating',
search: false,
sortable: true,
width: 150,
span: 12,
},
{
label: '面积(d㎡)',
prop: 'afterPlating',
search: false,
sortable: true,
width: 150,
span: 12,
},
{
label: '需求交期',
prop: 'afterPlating',
search: false,
sortable: true,
width: 150,
span: 12,
},
{
label: '计划员',
prop: 'afterPlating',
search: false,
sortable: true,
width: 150,
span: 12,
},
{
label: '计划下达时间',
prop: 'afterPlating',
search: false,
sortable: true,
width: 150,
span: 12,
},
{
label: '流转编号',
prop: 'afterPlating',
search: false,
sortable: true,
width: 150,
span: 12,
},
{
label: '备注',
prop: 'afterPlating',
search: false,
sortable: true,
width: 150,
span: 12,
},
{
label: '状态',
prop: 'afterPlating',
search: false,
sortable: true,
width: 150,
span: 12,
},
],
},
components: {},
data() {
return {
form: {},
selectionList: [],
query: {},
loading: true,
page: {
pageSize: 10,
currentPage: 1,
total: 0,
},
option: {
columnSort: true,
tip: false,
height: 'auto',
calcHeight: 32,
simplePage: false,
searchShow: true,
searchMenuSpan: 6,
searchIcon: true,
searchIndex: 3,
tree: false,
border: true,
index: true,
selection: false,
addBtn: false,
editBtn: false,
viewBtn: false,
delBtn: false,
editBtnText: '修改',
labelWidth: 120,
menuWidth: 80,
dialogWidth: 900,
dialogClickModal: false,
searchEnter: true,
excelBtn: false,
filterBtn: true,
searchShowBtn: false,
excelBtn: true,
showOverflowTooltip: true,
addBtnIcon: ' ',
viewBtnIcon: ' ',
delBtnIcon: ' ',
editBtnIcon: ' ',
gridBtn: false,
searchLabelPosition: 'left',
searchGutter: 24,
searchSpan: 6,
menuAlign: 'left',
gridBtn: false,
searchMenuPosition: 'right',
align: 'center',
column: [
{
label: '配套人',
prop: 'partCode',
bind: 'dsPart.partCode',
search: true,
sortable: true,
width: 150,
span: 12,
},
{
label: '配套时间',
prop: 'partName',
bind: 'dsPart.partName',
search: true,
sortable: true,
width: 150,
span: 12,
},
],
},
data: [],
isRushOpen: false,//
isBatchOpen: false,//
};
data: [],
};
},
methods: {
rowSave(row, done, loading) {
addPersonAbility(row).then(
() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
done();
},
error => {
window.console.log(error);
loading();
}
);
},
rowUpdate(row, index, done, loading) {
updatePersonAbility(row).then(
() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
done();
},
error => {
window.console.log(error);
loading();
}
);
},
rowDel(row) {
this.$confirm('确定将选择数据删除?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
return removePersonAbility(row.id);
})
.then(() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
});
},
methods: {
//
batchReceiving() {
this.$confirm('确定将选择数据批量接收?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
// return remove(row.id);
})
.then(() => {
// this.onLoad(this.page);
// this.$message({
// type: 'success',
// message: '!',
// });
});
},
//
batchDel() {
this.$confirm('确定将选择数据批量删除?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
// return remove(row.id);
})
.then(() => {
// this.onLoad(this.page);
// this.$message({
// type: 'success',
// message: '!',
// });
});
},
//
rushFn() {
this.isRushOpen = true
},
closeDialog() {
this.isRushOpen = false
this.isBatchOpen = false
},
inBatchesFn(row) {
this.rowItem = row;
this.isBatchOpen = true;
},
subclass() {
this.platingSmallOpen = true;
},
lookProcessRoute(row) {
this.isOpen = true;
this.rowItem = row;
},
cancel(refresh) {
if (refresh) {
this.$refs.myTable.load();
}
this.inBatchesOpen = false;
this.isOpen = false;
this.planFormOpen = false;
this.platingSmallOpen = false;
},
initData(roleId) {
getRoleTreeById(roleId).then(res => {
const column = this.findObject(this.option.column, 'parentId');
column.dicData = res.data.data;
});
},
submit() {
const menuList = this.$refs.treeMenu.getCheckedKeys();
const dataScopeList = this.$refs.treeDataScope.getCheckedKeys();
const apiScopeList = this.$refs.treeApiScope.getCheckedKeys();
grant(this.idsArray, menuList, dataScopeList, apiScopeList).then(() => {
this.box = false;
this.$message({
type: 'success',
message: '操作成功!',
});
this.selectionList = [];
this.onLoad(this.page);
});
},
rowSave(row, done, loading) {
add(row).then(
() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
done();
},
error => {
window.console.log(error);
loading();
}
);
},
rowUpdate(row, index, done, loading) {
update(row).then(
() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
done();
},
error => {
window.console.log(error);
loading();
}
);
},
rowDel(row) {
this.$confirm('确定将选择数据删除?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
return remove(row.id);
})
.then(() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
});
},
searchReset() {
this.query = {};
this.onLoad(this.page);
},
searchChange(params, done) {
this.query = params;
this.page.currentPage = 1;
this.onLoad(this.page, params);
done();
},
selectionChange(list) {
this.selectionList = list;
},
selectionClear() {
this.selectionList = [];
this.$refs.crud.toggleSelection();
},
beforeOpen(done, type) {
if (['add', 'edit'].includes(type)) {
this.initData(this.form.id);
}
if (['edit', 'view'].includes(type)) {
if (this.form.parentId === '0') {
this.form.parentId = '';
}
}
getRoleAlias().then(res => {
const column = this.findObject(this.option.column, 'currentAlias');
column.dicData = res.data.data;
});
done();
},
handleRole() {
if (this.selectionList.length !== 1) {
this.$message.warning('只能选择一条数据');
return;
}
this.menuTreeObj = [];
this.dataScopeTreeObj = [];
this.apiScopeTreeObj = [];
grantTree().then(res => {
this.menuGrantList = res.data.data.menu;
this.dataScopeGrantList = res.data.data.dataScope;
this.apiScopeGrantList = res.data.data.apiScope;
getRole(this.ids).then(res => {
this.menuTreeObj = res.data.data.menu;
this.dataScopeTreeObj = res.data.data.dataScope;
this.apiScopeTreeObj = res.data.data.apiScope;
this.box = true;
});
});
},
handleRowRole(row) {
this.menuTreeObj = [];
this.dataScopeTreeObj = [];
this.apiScopeTreeObj = [];
grantTree().then(res => {
this.menuGrantList = res.data.data.menu;
this.dataScopeGrantList = res.data.data.dataScope;
this.apiScopeGrantList = res.data.data.apiScope;
getRole(row.id).then(res => {
this.menuTreeObj = res.data.data.menu;
this.dataScopeTreeObj = res.data.data.dataScope;
this.apiScopeTreeObj = res.data.data.apiScope;
this.selectionList.push(row);
this.box = true;
});
});
},
handleDelete() {
if (this.selectionList.length === 0) {
this.$message.warning('请选择至少一条数据');
return;
}
this.$confirm('确定将选择数据删除?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
return remove(this.ids);
})
.then(() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
this.$refs.crud.toggleSelection();
});
},
currentChange(currentPage) {
this.page.currentPage = currentPage;
},
sizeChange(pageSize) {
this.page.pageSize = pageSize;
},
refreshChange() {
this.onLoad(this.page, this.query);
},
handleChange(file, fileList) {
// proxy.$Export.xlsx(file.raw).then((data) => {
// data.value = data.results;
// });
this.$message({
type: 'success',
message: '操作成功!',
});
},
searchReset() {
this.query = {};
this.onLoad(this.page);
},
searchChange(params, done) {
this.query = params;
this.page.currentPage = 1;
this.onLoad(this.page, params);
done();
},
selectionChange(list) {
this.selectionList = list;
},
selectionClear() {
this.selectionList = [];
this.$refs.crud.toggleSelection();
},
onLoad(page, params = {}) {
this.loading = true;
this.data = [
currentChange(currentPage) {
this.page.currentPage = currentPage;
},
sizeChange(pageSize) {
this.page.pageSize = pageSize;
},
refreshChange() {
this.onLoad(this.page, this.query);
},
handleChange(file, fileList) {
// proxy.$Export.xlsx(file.raw).then((data) => {
// data.value = data.results;
// });
this.$message({
type: 'success',
message: '操作成功!',
});
},
]
this.page.total = this.data.length
// getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
// this.data = res.data.data.records;
this.loading = false;
// this.page.total = res.data.data.total
// this.selectionClear();
// });
},
onLoad(page, params = {}) {
this.loading = true;
getList(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(res => {
this.data = res.data.data.records;
this.loading = false;
this.page.total = res.data.data.total;
this.selectionClear();
});
},
mounted() {
}
},
mounted() {},
};
</script>

@ -16,8 +16,8 @@
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
@row-update="rowUpdate"
@row-del="rowDel"
@row-update="rowUpdate"
@row-del="rowDel"
>
<template #menu-left>
<el-button type="primary" @click="handleAdd">新增</el-button>
@ -28,12 +28,20 @@
<!--批量维护 -->
<maintain-dialog
v-if="showMaintain"
:show-maintain="showMaintain"
:maintain-data="maintainData"
@closeDialog="closeDialog"
></maintain-dialog>
<!-- 新增 -->
<addAccumulateClass v-if="showDialog" :showDialog="showDialog" @closeDialog="closeDialog" :moldAddMore="moldAddMore"></addAccumulateClass>
<addAccumulateClass
v-if="showDialog"
:showDialog="showDialog"
@closeDialog="closeDialog"
:moldAddMore="moldAddMore"
:maintain-data="maintainData"
:title="title"
></addAccumulateClass>
</basic-container>
</template>
@ -45,11 +53,12 @@ import { getList, add, remove, update } from '@/api/processManagement/planClass.
export default {
components: {
maintainDialog,
addAccumulateClass
addAccumulateClass,
},
data() {
return {
moldAddMore:false,
title: '新增',
moldAddMore: false,
loading: false,
data: [],
selectionList: [],
@ -423,16 +432,29 @@ export default {
//
closeDialog() {
this.showMaintain = false;
this.showDialog =false
this.showDialog = false;
this.onLoad(this.page);
},
selectionChange(val) {
this.selectionList = val;
},
//
handleAdd() {
this.tableData = [];
this.showDialog = true;
this.moldAddMore = true
this.moldAddMore = true;
},
//
handleMaintain() {
if (this.selectionList.length == 0) {
this.$message.error('请先选择数据');
return;
}
this.maintainData = this.selectionList;
this.title = ' 批量维护';
// this.showMaintain = true;
this.showDialog = true;
this.moldAddMore = false;
},
handleDelete() {
if (this.selectionList.length == 0) {
@ -445,14 +467,7 @@ export default {
type: 'warning',
}).then(() => {});
},
handleMaintain() {
if (this.selectionList.length == 0) {
this.$message.error('请先选择数据');
return;
}
this.maintainData = this.selectionList;
this.showMaintain = true;
},
handleSet() {
if (this.isQualified == null) {
this.$message.error('请先选择检查结果');
@ -489,7 +504,7 @@ export default {
});
});
},
rowUpdate(row, index, done, loading) {
rowUpdate(row, index, done, loading) {
update(row).then(
() => {
this.onLoad(this.page);
@ -529,7 +544,11 @@ export default {
},
onLoad(page, params = {}) {
this.loading = true;
getList(page.currentPage, page.pageSize, Object.assign(params, this.query,{ bbpType: 2 })).then(res => {
getList(
page.currentPage,
page.pageSize,
Object.assign(params, this.query, { bbpType: 2 })
).then(res => {
this.data = res.data.data.records;
this.loading = false;
this.page.total = res.data.data.total;

@ -58,108 +58,6 @@ export default {
currentPage: 1,
total: 0,
},
wcData: [
{
area: 13000.0,
batchNo: null,
bigBatch: false,
checkout: false,
craftAbility: '化学镀镍',
createTime: '2023-02-06 12:31:36',
deleted: false,
describe: null,
endPoint: null,
keyValue: 81,
limitType: 0,
processes: '上挂、下挂、交检、化学镀镍、喷砂',
quantity: null,
roundCycle: null,
saturation: 85.0,
sign: '4',
startPoint: null,
team: '化学镀镍一班崔胜伟、化学镀镍一班郭家梁',
updateTime: '2023-03-06 18:42:47',
wcCode: '001',
wcId: 81,
wcName: '化学镀镍作业中心',
whetherPlate: false,
},
{
area: 0.0,
batchNo: null,
bigBatch: false,
checkout: false,
craftAbility: '镀后接收',
createTime: '2023-02-06 12:48:41',
deleted: false,
describe: null,
endPoint: null,
keyValue: 85,
limitType: 0,
processes: '镀后接收',
quantity: null,
roundCycle: null,
saturation: null,
sign: '4',
startPoint: null,
team: '零件管理班',
updateTime: '2023-03-06 18:23:20',
wcCode: '004',
wcId: 85,
wcName: '镀后库作业中心',
whetherPlate: true,
},
{
area: 0.0,
batchNo: null,
bigBatch: false,
checkout: true,
craftAbility: '镀后检验',
createTime: '2023-02-06 12:49:33',
deleted: false,
describe: null,
endPoint: null,
keyValue: 86,
limitType: 0,
processes: '镀后检验、性能检测、镀后自检外观检验、镀后自检尺寸检验',
quantity: null,
roundCycle: null,
saturation: null,
sign: '4',
startPoint: null,
team: '检验班',
updateTime: '2023-06-06 15:07:27',
wcCode: '005',
wcId: 86,
wcName: '检验作业中心',
whetherPlate: false,
},
{
area: 20000.0,
batchNo: null,
bigBatch: false,
checkout: false,
craftAbility: '涂色标、清洗',
createTime: '2023-02-07 10:30:14',
deleted: false,
describe: null,
endPoint: null,
keyValue: 87,
limitType: 0,
processes: '涂色标、涂色标(带)',
quantity: null,
roundCycle: null,
saturation: 90.0,
sign: '4',
startPoint: null,
team: '涂色标班组',
updateTime: '2023-03-06 18:16:54',
wcCode: '006',
wcId: 87,
wcName: '涂色标作业中心',
whetherPlate: false,
},
],
option: {
height: 'auto',
calcHeight: 32,
@ -280,6 +178,7 @@ export default {
},
closeDialog() {
this.showDialog = false;
this.onLoad(this.page);
},
insertEvent() {
const record = { bsWorkCenter: { wcId: '' }, _select: false };

@ -25,18 +25,19 @@
<el-button type="text" v-if="scope.row.auditStatus == -1" @click="maintainRow(scope.row)"
>维护</el-button
>
<!-- v-if="scope.row.auditStatus == 0" -->
<el-button type="text" @click="auditRow(scope.row)">审核</el-button>
<!-- -->
<el-button type="text" @click="auditRow(scope.row)" v-if="scope.row.auditStatus == 0">审核</el-button>
</template>
</avue-crud>
<!-- 批量 -->
<!-- 批量 审核-->
<auditBatchDialog
v-if="showAudit"
:showAudit="showAudit"
:auditData="auditData"
@closeDialog="closeDialog"
></auditBatchDialog>
<!-- 批量 -->
<!-- 批量 维护-->
<maintainBathDialog
:show-maintain="showMaintain"
:maintain-data="maintainData"
@ -44,13 +45,14 @@
></maintainBathDialog>
</basic-container>
<!-- 单个审核 -->
<auditDialog
v-if="showSingleAudit"
:showDialog="showSingleAudit"
:auditData="auditData"
@closeDialog="closeDialog"
></auditDialog>
<!-- 单个 维护 -->
<maintainDialog
v-if="showSingleMaintain"
:showDialog="showSingleMaintain"
@ -284,6 +286,17 @@ export default {
headerAlign: 'center',
align: 'center',
searchMenuPosition: 'right',
type: 'select',
dicData: [
{
label: '合格',
value: 1,
},
{
label: '不合格',
value: 0,
},
],
rules: [
{
required: true,
@ -401,8 +414,8 @@ export default {
this.showAudit = false;
this.showMaintain = false;
this.showSingleAudit = false;
this.showSingleMaintain = false
this.onLoad(this.page)
this.showSingleMaintain = false;
this.onLoad(this.page);
},
selectionChange(val) {
this.selectionList = val;

@ -1,6 +1,6 @@
<template>
<el-dialog
title="新增"
:title="title"
append-to-body
:modelValue="openShow"
width="70%"
@ -20,7 +20,7 @@
</div>
<el-table :data="form.tableData" @select="selectChange" border>
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column type="selection" width="55" v-if="moldAddMore"></el-table-column>
<el-table-column align="center" label="作业中心" prop="wcId">
<template #header>
@ -170,18 +170,20 @@ export default {
showDialog: { type: Boolean, default: false },
moldAddMore: { type: Boolean, default: false },
tabPosition: { type: String, default: '' },
title: { type: String, default: '' },
maintainData: { type: Array, default: [] },
},
data() {
return {
batchNoOptions:[
batchNoOptions: [
{
label:'作业槽1',
value:1
label: '作业槽1',
value: 1,
},
{
label:'作业槽2',
value:2
}
label: '作业槽2',
value: 2,
},
],
ruleTypeData: [
{
@ -270,9 +272,13 @@ export default {
mounted() {
this.openShow = this.showDialog;
this.getWorkCenterList();
//
if (this.moldAddMore && this.form.tableData.length === 0) {
this.addTable();
if (this.title == '新增') {
//
if (this.moldAddMore && this.form.tableData.length === 0) {
this.addTable();
}
} else {
this.form.tableData = this.maintainData;
}
},
methods: {

@ -36,25 +36,13 @@
</el-table-column>
<!-- 设备检查项/槽号槽名 -->
<el-table-column
align="center"
label="槽号槽名"
width="200"
>
<el-table-column align="center" label="槽号槽名" width="200">
<template #header>
<span
><i style="color: red">*</i
>槽号槽名</span
>
<span><i style="color: red">*</i>槽号槽名</span>
</template>
<template #default="scope">
<el-form-item :prop="`tableData[${scope.$index}].batchNo`" :rules="formRules.batchNo">
<el-select
v-model="scope.row.batchNo"
placeholder="请选择"
style="width: 100%"
>
<el-select v-model="scope.row.batchNo" placeholder="请选择" style="width: 100%">
<el-option label="#21" value="1"></el-option>
<el-option label="11" value="11"></el-option>
<el-option label="#22" value="3"></el-option>
@ -86,8 +74,9 @@
<el-form-item :prop="`tableData[${scope.$index}].addValue`" :rules="formRules.addTime">
<el-date-picker
v-model="scope.row.addTime"
type="datetime"
type="date"
placeholder="选择日期时间"
value-format="YYYY-MM-DD hh:ss:mm"
>
</el-date-picker>
</el-form-item>
@ -106,7 +95,7 @@
</template>
<script>
import { getWorkCenterList } from '@/api/processManagement/addQuantity.js';
import { add, getWorkCenterList } from '@/api/processManagement/addQuantity.js';
// import { submitBatchData } from '@/api/processManagement/periodical.js'; //
export default {
@ -118,7 +107,12 @@ export default {
data() {
return {
openShow: false,
wcData: [],
wcData: [
{
label: '作业中心1',
value: 1,
},
],
formError: '', //
//
@ -163,12 +157,8 @@ export default {
],
// preserveContent
addTime: [
{ required: true, message: '请选择', trigger: ['blur', 'submit'] },
],
addValue: [
{ required: true, message: '请输入', trigger: ['blur', 'submit'] },
],
addTime: [{ required: true, message: '请选择', trigger: ['blur', 'submit'] }],
addValue: [{ required: true, message: '请输入', trigger: ['blur', 'submit'] }],
},
};
},
@ -243,19 +233,16 @@ export default {
//
try {
// const res = await submitBatchData(submitData);
// if (res.code === 200) {
// this.$message.success('');
// this.closeDialog();
// this.$emit('submitSuccess', submitData);
// } else {
// this.$message.error(res.msg || '');
// }
add(submitData).then(res => {
this.$message.success('提交成功');
this.closeDialog();
// this.$emit('submitSuccess', submitData);
});
//
this.$message.success('提交成功');
this.closeDialog();
this.$emit('submitSuccess', submitData);
// //
// this.$message.success('');
// this.closeDialog();
// this.$emit('submitSuccess', submitData);
} catch (err) {
this.$message.error('网络错误,请稍后重试');
console.error('提交失败:', err);

@ -11,7 +11,7 @@
<el-input type="textarea" v-model="auditDescribe"></el-input>
</div>
<el-button type="primary" @click="handleSet">批量设置</el-button>
<el-button type="primary" @click="auditValue">保存</el-button>
<!-- <el-button type="primary" @click="auditValue">保存</el-button> -->
</div>
<el-table :data="auditData">
<el-table-column
@ -33,7 +33,7 @@
<el-table-column align="center" label="添加量/实测值" prop="actualValue"></el-table-column>
<el-table-column align="center" label="审核结果" prop="auditStatus">
<template #default="scope">
<el-radio v-model="scope.row.auditStatus" :label="1">通过</el-radio>
<el-radio v-model="scope.row.auditStatus" :label="1" >通过</el-radio>
<el-radio v-model="scope.row.auditStatus" :label="2">不通过</el-radio>
</template>
</el-table-column>
@ -43,6 +43,12 @@
</template>
</el-table-column>
</el-table>
<template #footer>
<span class="dialog-footer">
<el-button @click="closeDialog"> </el-button>
<el-button type="primary" @click="submit"> </el-button>
</span>
</template>
</el-dialog>
</template>
@ -83,6 +89,19 @@ export default {
closeDialog() {
this.$emit('closeDialog');
},
submit() {
// this.$refs.form.validate((valid, done, msg) => {
// if (valid) {
dsBatchReview(this.auditData).then(res => {
this.$message({
type: 'success',
message: '操作成功!',
});
this.closeDialog();
});
// }
// });
},
},
};
</script>

@ -33,8 +33,8 @@ export default {
emptyBtn: false,
column: [
{
label: '检查结果',
prop: 'isQualified',
label: '审核结果',
prop: 'auditStatus',
span: 24,
type: 'radio',
dicData: [
@ -63,8 +63,12 @@ export default {
submit() {
this.$refs.form.validate((valid, done, msg) => {
if (valid) {
let ids = this.auditData.map(item => item.id);
dsBatchReview({ ...this.obj, bptIdList: ids }).then(res => {
let query_ = {
...this.auditData[0],
auditStatus :this.obj.auditStatus,
auditDescribe :this.obj.auditDescribe
}
dsBatchReview([query_]).then(res => {
this.$message({
type: 'success',
message: '操作成功!',

@ -9,8 +9,8 @@
<div style="margin-bottom: 10px; display: flex; align-items: center">
<div style="display: flex; align-items: center; margin-right: 10px">
检查结果
<el-radio v-model="isQualified" :label="true">合格</el-radio>
<el-radio v-model="isQualified" :label="false">不合格</el-radio>
<el-radio v-model="isQualified" :label="1">合格</el-radio>
<el-radio v-model="isQualified" :label="0">不合格</el-radio>
</div>
<el-button type="primary" @click="handleSet">批量设置</el-button>
<!-- <el-button type="primary" @click="maintainValue">保存</el-button> -->
@ -21,8 +21,8 @@
<el-table-column align="center" label="维护内容" prop="preserveContent"></el-table-column>
<el-table-column align="center" label="合格/不合格" prop="isQualified">
<template #default="scope">
<el-radio v-model="scope.row.isQualified" :label="true">合格</el-radio>
<el-radio v-model="scope.row.isQualified" :label="false">不合格</el-radio>
<el-radio v-model="scope.row.isQualified" :label="1">合格</el-radio>
<el-radio v-model="scope.row.isQualified" :label="0">不合格</el-radio>
</template>
</el-table-column>
<el-table-column align="center" label="添加量/实测值" prop="actualValue">
@ -35,7 +35,7 @@
<template #footer>
<span class="dialog-footer">
<el-button @click="closeDialog"> </el-button>
<el-button type="primary" @click="submitForm"> </el-button>
<el-button type="primary" @click="submit"> </el-button>
</span>
</template>
</el-dialog>
@ -76,10 +76,19 @@ export default {
maintainValue() {
this.closeDialog();
},
//
submitForm(){
}
submit() {
// this.$refs.form.validate((valid, done, msg) => {
// if (valid) {
dsBatchTask(this.maintainData).then(res => {
this.$message({
type: 'success',
message: '操作成功!',
});
this.closeDialog();
});
// }
// });
},
},
};
</script>

@ -33,8 +33,8 @@ export default {
emptyBtn: false,
column: [
{
label: '审批结果',
prop: 'auditStatus',
label: '维护结果',
prop: 'isQualified',
span: 24,
type: 'radio',
dicData: [
@ -61,8 +61,13 @@ export default {
submit() {
this.$refs.form.validate((valid, done, msg) => {
if (valid) {
let query_ = {
...this.maintainData[0],
isQualified:this.obj.isQualified,
auditDescribe:this.obj.auditDescribe
}
let ids = this.maintainData.map(item => item.id);
dsBatchTask({ ...this.obj, bptIdList: ids }).then(res => {
dsBatchTask([query_]).then(res => {
this.$message({
type: 'success',
message: '操作成功!',

@ -30,12 +30,14 @@
</el-form-item>
</el-col>
<el-col :span="8" v-if="partType == '烧结'">
<el-form-item label="是否为玻璃饼:" prop="isGlassCake">
<el-form-item label="是否为玻璃饼:" prop="isClassCake">
<el-switch
v-model="formData.isGlassCake"
v-model="formData.isClassCake"
:disabled="disabled"
active-color="#13ce66"
inactive-color="#ff4949"
active-value="1"
inactive-value="0"
/>
</el-form-item>
</el-col>
@ -288,7 +290,7 @@
</el-card>
<el-card
class="box-card"
v-if="formData.isSintering == '0' && !formData.isGlassCake"
v-if="formData.isSintering == '1' && formData.isClassCake == '0'"
style="margin-top: 24px"
>
<div slot="header" class="clearfix">
@ -301,28 +303,21 @@
v-model="form"
v-model:page="page"
ref="crud"
@search-change="searchChange"
@search-reset="searchReset"
@selection-change="selectionChange"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
>
</avue-crud>
</el-card>
</div>
</template>
<script>
import { getPartDetail,authorizedAccomplish } from '@/api/processManagement/taskProcessing';
import { getPartDetail, authorizedAccomplish } from '@/api/processManagement/taskProcessing';
export default {
components: {},
props: {
partType: {
type: String,
default: '',
},
// partType: {
// type: String,
// default: '',
// },
partId: {
type: [Number, String],
default: null,
@ -393,7 +388,7 @@ export default {
isGlassCake: [{ required: true, message: '请选择', trigger: 'blur' }],
printing: [{ required: true, message: '请选择', trigger: 'blur' }],
dueDate: [{ required: true, message: '请选择', trigger: 'blur' }],
partCode: [{ required: true ,message: '请选择', trigger: 'blur' }],
partCode: [{ required: true, message: '请选择', trigger: 'blur' }],
partName: [{ required: true, message: '请选择', trigger: 'blur' }],
craftWay: [{ required: true, message: '请输入', trigger: 'blur' }],
area: [
@ -445,14 +440,14 @@ export default {
column: [
{
label: '零件号',
prop: 'subCode',
prop: 'partCode',
search: false,
sortable: true,
overHidden: true,
},
{
label: '零件名称',
prop: 'subName',
prop: 'partName',
search: false,
sortable: true,
overHidden: true,
@ -480,7 +475,7 @@ export default {
},
{
label: '零件类型',
prop: 'productType',
prop: 'sinTerType',
search: false,
sortable: true,
overHidden: true,
@ -511,6 +506,8 @@ export default {
},
],
},
partType: '',
loading:false,
};
},
created() {},
@ -524,7 +521,19 @@ export default {
getPartDetails() {
getPartDetail(this.partId).then(res => {
this.formData = res.data.data.dsPartEntity;
this.data = res.data.data.dsPartEntities
this.data = res.data.data.dsPartEntities;
this.$emit('updateVersion',res.data.data.partVersion)
if (this.data.length > 0) {
this.data.forEach(item => {
console.log(999999,this.data)
item.$cellEdit = true;
});
}
this.partType = res.data.data.dsPartEntity.isSintering == '1' ? '烧结' : '热表';
if (res.data.data.dsPartEntity.isGlassCake === '0') {
this.formData.isGlassCake = false;
} else {
@ -642,15 +651,15 @@ export default {
this.formData.childPage = this.childPage;
this.formData.psId = this.psId;
authorizedAccomplish( {dsPart:this.formData,partList:this.data}).then(res=>{
console.log('9999res',res)
authorizedAccomplish({ dsPart: this.formData, partList: this.data }).then(res => {
this.$message.success('操作成功');
this.cancel(flag, res.data);
})
});
// this.$ajax.post('dsPart/addOrEdit', this.formData).then((res) => {
// if (this.$ifAjax(res)) {
// this.$message.success(
// this.$t('videaVueLib.publics.message.success')
// );
// this.$message.success(
// this.$t('videaVueLib.publics.message.success')
// );
// this.cancel(flag, res.data);
// this.$refs.craftEdit.getData(this.partId, true);
// }

@ -5,7 +5,7 @@
<!-- 零件信息-->
<el-tab-pane label="零件信息" name="1">
<dsPartBasicInfo ref="dsPartRef" v-if="activeName == '1'" :part-id="partId" @cancelClose="cancelClose"
:dialogType="dialogType" :partType="partType" :dsPartInfo="dsPartInfo" />
:dialogType="dialogType" :partType="partType" :dsPartInfo="dsPartInfo" @updateVersion="updateVersion" />
</el-tab-pane>
<!-- 子件信息 -->
<el-tab-pane label="工艺编制" name="2">
@ -14,7 +14,7 @@
</el-tab-pane>
</el-tabs>
<div class="content-right">
<p>工艺版本202510191001</p>
<p>工艺版本{{partVersion}}</p>
</div>
</div>
@ -70,11 +70,14 @@ export default {
return {
setCrewShow: false,
activeName: '1',
dsPartInfo:{}
dsPartInfo:{},
partVersion:'',//
};
},
methods: {
updateVersion(value){
this.partVersion = value
},
opened() {
// this.getPartDetails()
// if (this.partId) {

@ -108,21 +108,21 @@
></el-input>
</template>
</el-table-column>
<el-table-column prop="processName" label="工序">
<el-table-column prop="ppsId" label="工序">
<template #header>
<span><i style="color: red">*</i>工序</span>
</template>
<template #default="scope">
<el-form-item
:prop="`tableData1[${scope.$index}].processName`"
:rules="formRules1.processName"
:prop="`tableData1[${scope.$index}].ppsId`"
:rules="formRules1.ppsId"
>
<el-select v-model="scope.row.processName" placeholder="请选择">
<el-select v-model="scope.row.ppsId" placeholder="请选择">
<el-option
v-for="(item, index) in processSetOption"
:key="index"
label=""
value="1"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
@ -141,8 +141,8 @@
<el-option
v-for="(item, index) in craftAbilityOption"
:key="index"
label=""
value="1"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
@ -287,7 +287,7 @@
label-width="0px"
v-if="activeName == '3'"
>
<el-table :data="form3.tableData3" style="width: 100%">
<el-table :data="form3.tableData3" class="tableHeight" style="width: 100%">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="trialNo" label="工序号">
<template #default="scope">
@ -527,6 +527,7 @@ export default {
tableData4: [], //
},
formRules1: {
ppsId:[{ required: true, message: '请选择', trigger: ['change', 'submit'] }],
processName: [{ required: true, message: '请选择', trigger: ['change', 'submit'] }],
craftName: [{ required: true, message: '请选择', trigger: ['change', 'submit'] }],
proDes: [{ required: true, message: '请选择', trigger: ['change', 'submit'] }],
@ -553,7 +554,8 @@ export default {
this.getDetails();
this.getModelList();
this.getProcessSetList();
// this.getCraftAbilityList();
this.getCraftAbilityList();
},
methods: {
//
@ -577,11 +579,12 @@ export default {
//
modelLevelChange() {
getModelDetailList({ modelId: this.modelLevel }).then(res => {
console.log(9999, res);
});
},
//
getDetails() {
console.log(888888,this.updateRow)
getProcessAuthorized({ partId: this.partId, taskId: this.updateRow.id }).then(res => {
this.data = this.transformCraftTree(res.data.data);
this.partInfoData = res.data.data.partInfo;
@ -663,32 +666,13 @@ export default {
const { processInfo, projectList, measuringToolList, moldToolList } = nodes.rawData;
//
this.form2.tableData2 = projectList.map(item => ({
trialNo: item.projectCode,
projectName: item.projectName,
projectStandard: item.projectStandard,
proHours: item.proHours,
prepareHours: item.prepareHours,
}));
this.form2.tableData2 = projectList
//
this.form3.tableData3 = measuringToolList.map(item => ({
trialNo: item.projectCode || '',
testType: item.testType,
tool: item.tool,
toolSize: item.toolSize,
toolInfo: item.toolInfo,
}));
this.form3.tableData3 = measuringToolList
//
this.form4.tableData4 = moldToolList.map(item => ({
trialNo: processInfo.processNo,
moldCode: item.moldCode,
moldName: item.moldName,
isPrint: item.isPrint,
printNo: item.printNo,
testFixtureNo: item.testFixtureNo,
}));
this.form4.tableData4 = moldToolList
}
},
// tab
@ -702,16 +686,16 @@ export default {
//
addTable() {
if (this.activeName == '1') {
this.form1.tableData1.push({});
this.form1.tableData1.push({id:null});
}
if (this.activeName == '2') {
this.form2.tableData2.push({});
this.form2.tableData2.push({id:null});
}
if (this.activeName == '3') {
this.form3.tableData3.push({});
this.form3.tableData3.push({id:null});
}
if (this.activeName == '4') {
this.form4.tableData4.push({});
this.form4.tableData4.push({id:null});
}
},
//
@ -833,4 +817,7 @@ export default {
padding: 0 !important;
line-height: 50px !important;
}
.tableHeight{
height:calc(100vh - 50px - 80px - 40px - 94px - 50px - 50px)
}
</style>

@ -1,17 +1,17 @@
<template>
<el-dialog title="返工工艺编制" v-model="setCrewShow" :before-close="cancel" fullscreen @opened="opened">
<div class="tabs-container">
<reworkProcessPlanning ref="craftEdit" :part-id="partId" :dialogType="dialogType"></reworkProcessPlanning>
<reworkProcessPlanning ref="craftEdit" :part-id="partId" :dialogType="dialogType" :updateRow="updateRow" @cancel="cancel"></reworkProcessPlanning>
</div>
<template #footer>
<!-- <template #footer>
<div class="dialog-footer">
<el-button @click="cancel()">取消</el-button>
<el-button type="primary" @click="cancel()">
<el-button type="primary" @click="save()">
确认
</el-button>
</div>
</template>
</template> -->
</el-dialog>
</template>
<script>
@ -38,7 +38,11 @@ export default {
dialogType: {
type: String,
default: '',
}
},
updateRow: {
type: Object,
default: {},
},
},
data() {
return {
@ -60,7 +64,10 @@ export default {
// this.$refs.dsPartRef.clear();
this.setCrewShow = false
this.$emit('cancel', typeof refresh === 'boolean' && refresh);
}
},
// save(){
// this.$refs.craftEdit.submit()
// }
},
mounted() {
this.setCrewShow = this.isOpen

@ -12,16 +12,17 @@
</div>
<div class="process-right">
<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
<el-tab-pane label="工序" name="1" v-if="treeLeave == 1"></el-tab-pane>
<el-tab-pane label="项目" name="2" v-if="treeLeave == 2"></el-tab-pane>
<el-tab-pane label="尺寸、量具" name="3" v-if="treeLeave == 2"></el-tab-pane>
<el-tab-pane label="工装、模具表" name="4" v-if="treeLeave == 2"></el-tab-pane>
<el-tab-pane label="工序" name="1" v-if="treeLeave == 2"></el-tab-pane>
<el-tab-pane label="项目" name="2" v-if="treeLeave == 3"></el-tab-pane>
<el-tab-pane label="尺寸、量具" name="3" v-if="treeLeave == 3"></el-tab-pane>
<el-tab-pane label="工装、模具表" name="4" v-if="treeLeave == 3"></el-tab-pane>
</el-tabs>
<div class="table-btn">
<div class="table-btn-left">
<div class="table-btn-left">
<el-button type="primary" plain @click="addTable()">插入一行</el-button>
<el-button type="danger" plain @click="delTable()">删除选择行</el-button>
<el-button type="primary" plain @click="submit()">保存</el-button>
</div>
</div>
<div class="table-btn-right" v-if="activeName == '1'">
@ -66,17 +67,17 @@
>
<el-table :data="form1.tableData1" style="width: 100%" v-if="activeName == '1'">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="date" label="返工序号">
<el-table-column prop="dareworkNote" label="返工序号">
<template #header>
<span><i style="color: red">*</i>返工序号</span>
</template>
<template #default="scope">
<el-form-item
:prop="`tableData1[${scope.$index}].processName`"
:rules="formRules1.processName"
:prop="`tableData1[${scope.$index}].reworkNo`"
:rules="formRules1.reworkNo"
>
<el-input
v-model="scope.row.processNo"
v-model="scope.row.reworkNo"
placeholder="请输入"
style="width: 100%"
></el-input>
@ -89,8 +90,8 @@
</template>
<template #default="scope">
<el-form-item
:prop="`tableData1[${scope.$index}].processName`"
:rules="formRules1.processName"
:prop="`tableData1[${scope.$index}].processNo`"
:rules="formRules1.processNo"
>
<el-input
v-model="scope.row.processNo"
@ -106,80 +107,77 @@
</template>
<template #default="scope">
<el-form-item
:prop="`tableData1[${scope.$index}].processName`"
:rules="formRules1.processName"
:prop="`tableData1[${scope.$index}].ppsId`"
:rules="formRules1.ppsId"
>
<el-select v-model="scope.row.processName" placeholder="请选择">
<el-select v-model="scope.row.ppsId" placeholder="请选择">
<el-option
v-for="(item, index) in processSetOption"
:key="index"
label=""
value="1"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="address" label="工艺能力">
<el-table-column prop="caId" label="工艺能力">
<template #header>
<span><i style="color: red">*</i>工艺能力</span>
</template>
<template #default="scope">
<el-form-item
:prop="`tableData1[${scope.$index}].craftName`"
:rules="formRules1.craftName"
:prop="`tableData1[${scope.$index}].caId`"
:rules="formRules1.caId"
>
<el-select v-model="scope.row.craftName" placeholder="请选择">
<el-select v-model="scope.row.caId" placeholder="请选择">
<el-option
v-for="(item, index) in craftAbilityOption"
:key="index"
label=""
value="1"
:label="item.name"
:value="item.id"
></el-option>
</el-select>
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="address" label="加工班组">
<el-table-column prop="makeTeam" label="加工班组">
<template #default="scope">
<el-select v-model="scope.row.value" placeholder="请选择">
<el-select v-model="scope.row.makeTeam" placeholder="请选择">
<el-option label="是" value="1"></el-option>
<el-option label="否" value="2"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column prop="address" label="外协厂商">
<el-table-column prop="ocId" label="外协厂商">
<template #default="scope">
<el-select v-model="scope.row.value" placeholder="请选择">
<el-select v-model="scope.row.ocId" placeholder="请选择">
<el-option label="是" value="1"></el-option>
<el-option label="否" value="2"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column prop="address" label="主工序">
<el-table-column prop="isMain" label="主工序">
<template #header>
<span><i style="color: red">*</i>主工序</span>
</template>
<template #default="scope">
<el-form-item
:prop="`tableData1[${scope.$index}].craftName`"
:rules="formRules1.craftName"
>
<el-select v-model="scope.row.value" placeholder="请选择">
<el-form-item :prop="`tableData1[${scope.$index}].cruxProcess`" :rules="formRules1.cruxProcess">
<el-select v-model="scope.row.cruxProcess" placeholder="请选择">
<el-option label="是" value="1"></el-option>
<el-option label="否" value="2"></el-option>
</el-select>
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="address" label="工序描述">
<el-table-column prop="makeMemo" label="工序描述">
<template #header>
<span><i style="color: red">*</i>工序描述</span>
</template>
<template #default="scope">
<el-form-item :prop="`tableData1[${scope.$index}].proDes`" :rules="formRules1.proDes">
<el-form-item :prop="`tableData1[${scope.$index}].makeMemo`" :rules="formRules1.makeMemo">
<el-input
v-model="scope.row.proDes"
v-model="scope.row.makeMemo"
placeholder="请输入"
style="width: 100%"
></el-input>
@ -376,7 +374,9 @@ import {
getModelList,
getModelDetailList,
reworkAuthorizedAccomplish,
getProcessList
getProcessList,
getProcessSetList,
getCraftAbilityList,
} from '@/api/processManagement/taskProcessing';
export default {
@ -403,23 +403,7 @@ export default {
data() {
return {
processLevel: null,
data: [
{
label: '返工单号',
disabled: true,
children: [
{
label: '工序列表',
children: [
{
label: '检验项目',
disabled: true,
},
],
},
],
},
],
data: [],
defaultProps: {
children: 'children',
label: 'label',
@ -480,11 +464,14 @@ export default {
tableData4: [], //
},
formRules1: {
processName: [{ required: true, message: '请选择', trigger: ['change', 'submit'] }],
reworkNo: [{ required: true, message: '请输入', trigger: ['change', 'submit'] }],
processNo: [{ required: true, message: '请输入', trigger: ['change', 'submit'] }],
ppsId: [{ required: true, message: '请选择', trigger: ['change', 'submit'] }],
craftName: [{ required: true, message: '请选择', trigger: ['change', 'submit'] }],
proDes: [{ required: true, message: '请选择', trigger: ['change', 'submit'] }],
proHours: [{ required: true, message: '请输入', trigger: ['change', 'submit'] }],
isMain: [{ required: true, message: '请选择', trigger: ['change', 'submit'] }],
cruxProcess: [{ required: true, message: '请选择', trigger: ['change', 'submit'] }],
makeMemo: [{ required: true, message: '请选择', trigger: ['change', 'submit'] }],
},
formRules2: {
projectName: [{ required: true, message: '请选择', trigger: ['change', 'submit'] }],
@ -498,13 +485,30 @@ export default {
formRules4: {
moldCode: [{ required: true, message: '请输入', trigger: ['change', 'submit'] }],
},
processSetOption: [],
craftAbilityOption: [],
treeNodes: {},
};
},
mounted() {
this.getDetails();
this.getModelList();
this.getProcessSetList();
this.getCraftAbilityList();
},
methods: {
//
getProcessSetList() {
getProcessSetList().then(res => {
this.processSetOption = res.data.data;
});
},
//
getCraftAbilityList() {
getCraftAbilityList().then(res => {
this.craftAbilityOption = res.data.data;
});
},
//
getModelList() {
getModelList().then(res => {
@ -513,20 +517,17 @@ export default {
},
//
modelLevelChange() {
getModelDetailList({ modelId: this.modelLevel }).then(res => {
});
getModelDetailList({ modelId: this.modelLevel }).then(res => {});
},
//
getProcessList(){
getProcessList().then(res=>{
})
},
getProcessList() {
getProcessList().then(res => {});
},
//
getDetails() {
getProcessAuthorized({ partId: this.partId, taskId: this.updateRow.id }).then(res => {
this.data = this.transformCraftTree(res.data.data);
this.partInfoData = res.data.data.partInfo;
this.partInfoData = res.data.data;
});
},
//
@ -542,35 +543,21 @@ export default {
rawData: partInfo, //
children: craftList.map(craft => {
const { craftInfo, processList } = craft;
// roamNo-craftNo
const craftLabel = `${craftInfo.roamNo}-${craftInfo.craftNo}`;
return {
...craftInfo,
label: craftLabel,
processList: processList.map(process => {
return process.processInfo;
}),
rawData: craftInfo, //
...craft,
label: `${craftInfo.reworkOrder}`,
children: processList.map(process => {
const { processInfo, projectList, measuringToolList, moldToolList } = process;
//
const processLabel = processInfo.processName;
return {
...processInfo,
label: processLabel,
rawData: {
processInfo,
projectList,
measuringToolList,
moldToolList,
}, //
children: projectList.map(project => ({
label: project.projectName, //
rawData: project, //
disabled: true,
})),
...process,
label: processInfo.ppsName,
children: projectList.map(process => {
return {
...process,
label: process.projectName,
disabled: true,
};
}),
};
}),
};
@ -580,31 +567,39 @@ export default {
return tree;
},
// getDetails() {
// if (this.partId) {
// getPartDetail({ partId: this.partId }).then((res) => {
// this.form = Object.assign({}, this.form, res.data);
// });
// }
// },
//
handleNodeClick(nodes, node, self) {
if (nodes.disabled && node.level == 3) {
//
if (nodes.disabled) {
return false;
}
this.treeNodes = nodes;
this.treeLeave = node.level;
if (this.treeLeave == 2) {
this.activeName = '2';
}
if (this.treeLeave == 1) {
//
this.form1.tableData1 = [];
this.form2.tableData2 = [];
this.form3.tableData3 = [];
this.form4.tableData4 = [];
//
if (this.treeLeave === 2) {
this.activeName = '1';
this.form1.tableData1 = nodes.processList;
}
//
if (this.treeLeave === 3) {
this.activeName = '2';
//
const { processInfo, projectList, measuringToolList, moldToolList } = nodes;
//
this.form2.tableData2 = projectList;
//
this.form3.tableData3 = measuringToolList;
//
this.form4.tableData4 = moldToolList;
}
},
// tab
handleClick(value) {
console.log(999999, value);
// console.log(999999, value);
},
//
leavelChange() {
@ -613,18 +608,19 @@ export default {
//
addTable() {
if (this.activeName == '1') {
this.form1.tableData1.push({});
this.form1.tableData1.push({ id: null });
}
if (this.activeName == '2') {
this.form2.tableData2.push({});
this.form2.tableData2.push({ id: null });
}
if (this.activeName == '3') {
this.form3.tableData3.push({});
this.form3.tableData3.push({ id: null });
}
if (this.activeName == '4') {
this.form4.tableData4.push({});
this.form4.tableData4.push({ id: null });
}
},
//
delTable() {
if (this.activeName == '1') {
@ -636,19 +632,35 @@ export default {
if (this.activeName == '4') {
}
},
submit(){
let query_={
craft:{},//
reworkProcessVOList:[],//
reworkProcessDeleteIds:[],//id
processProjectDeleteIds:[],//id
processMeasuringToolDeleteIds:[],//id
processMoldToolDeleteIds:[],//
}
// reworkAuthorizedAccomplish(query_).then(res=>{
// console.log(9999,res)
// })
}
submit() {
let newArr = [];
this.treeNodes.processList.forEach(item => {
newArr.push({
...(item.processInfo || item),
processProjectVOList: item.projectList || [],
processMeasuringToolVOList: item.measuringToolList || [],
processMoldToolVOList: item.moldToolList || [],
});
});
let query_ = {
craft: {
partId: this.partId,
reworkOrder: this.partInfoData.craftList[0].craftInfo.reworkOrder,
partVersions: this.partInfoData.craftList[0].craftInfo.partVersions,
id:this.partInfoData.craftList[0].craftInfo.id,
}, //
reworkProcessVOList: newArr,
reworkProcessDeleteIds: [], //id
processProjectDeleteIds: [], //id
processMeasuringToolDeleteIds: [], //id
processMoldToolDeleteIds: [], //
};
reworkAuthorizedAccomplish(query_).then(res=>{
console.log(9999,res)
this.$emit('cancel')
})
},
},
};
</script>

@ -29,7 +29,7 @@
type="primary"
link
@click="organization(scope.row.partId, scope.row)"
v-if="scope.row.taskStatus == 1"
v-if="scope.row.taskStatus == 2"
>编制</el-button
>
<el-button
@ -304,6 +304,10 @@ export default {
},
{
value: 2,
label: '进行中',
},
{
value: 3,
label: '已完成',
},
],
@ -397,7 +401,7 @@ export default {
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
taskReception({ taskId: row.id }).then(res => {
taskReception({ taskIds: row.id }).then(res => {
this.$message({
type: 'success',
message: '操作成功!',
@ -425,7 +429,7 @@ export default {
organization(partId, row) {
this.partId = partId;
this.updateRow = row
if (row.taskType == '3') {
if (row.taskType == '6') {
this.isReworkOpen = true;
} else {
this.isOpen = true;

@ -0,0 +1,305 @@
<template>
<basic-container>
<avue-crud
:option="option"
:table-loading="loading"
:data="data"
v-model="form"
v-model:page="page"
ref="crud"
@row-del="rowDel"
@row-update="rowUpdate"
@row-save="rowSave"
@search-change="searchChange"
@search-reset="searchReset"
@selection-change="selectionChange"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
>
<template #menu-left> </template>
<template #menu-right> </template>
<template #menu="{ row }"> </template>
<template #heatTreat="scope"> </template>
</avue-crud>
</basic-container>
</template>
<script>
import {
getListEquipAbility,
removeEquipAbility,
addEquipAbility,
updateEquipAbility,
} from '@/api/productionSchedulingPlan/basic';
export default {
components: {},
data() {
return {
form: {},
selectionList: [],
query: {},
loading: false,
page: {
pageSize: 10,
currentPage: 1,
total: 0,
},
option: {
columnSort: true,
tip: false,
height: 'auto',
calcHeight: 32,
simplePage: false,
searchShow: true,
searchMenuSpan: 6,
searchIcon: true,
searchIndex: 3,
tree: false,
border: true,
index: true,
selection: false,
addBtn: true,
editBtn: true,
viewBtn: false,
delBtn: true,
editBtnText: '修改',
labelWidth: 120,
menuWidth: 120,
dialogWidth: 900,
dialogClickModal: false,
searchEnter: true,
excelBtn: false,
filterBtn: true,
searchShowBtn: false,
excelBtn: true,
showOverflowTooltip: true,
addBtnIcon: ' ',
viewBtnIcon: ' ',
delBtnIcon: ' ',
editBtnIcon: ' ',
gridBtn: false,
searchLabelPosition: 'left',
searchGutter: 24,
searchSpan: 6,
menuAlign: 'left',
gridBtn: false,
searchMenuPosition: 'right',
align: 'center',
column: [
{
label: '作业中心',
prop: 'workCenterId',
search: false,
sortable: true,
span: 12,
width: 120,
},
{
label: '工序',
prop: '',
search: false,
sortable: true,
span: 12,
},
{
label: '设备编码',
prop: 'equipCode',
search: false,
sortable: true,
span: 12,
width: 120,
},
{
label: '设备名称',
prop: 'equipName',
search: false,
sortable: true,
span: 12,
width: 120,
},
{
label: '设备分类',
prop: 'equipType',
search: false,
sortable: true,
span: 12,
width: 120,
type: 'select',
dicData: [
{
label: '设备产线',
value: 0,
},
{
label: '普通设备',
value: 1,
},
],
},
{
label: '工艺能力',
prop: 'craftId',
search: false,
sortable: true,
span: 12,
width: 120,
},
{
label: '额定加工能力(烧结-个/热表-面积)',
prop: 'standardProcessAbility',
search: false,
sortable: true,
span: 12,
width: 270,
},
{
label: '额定工时(分钟)',
prop: 'standardTime',
search: false,
sortable: true,
span: 12,
width: 180,
},
{
label: '准备工时(分钟)',
prop: 'prepareTime',
search: false,
sortable: true,
span: 12,
width: 180,
},
{
label: '轮次间隔(分钟)',
prop: 'interval',
search: false,
sortable: true,
span: 12,
width: 180,
},
{
label: '轮次间隔(分钟)',
prop: '',
search: false,
sortable: true,
span: 12,
width: 180,
},
{
label: '指定使用',
prop: '',
search: false,
sortable: true,
span: 12,
width: 120,
},
{
label: '备注',
prop: '',
search: false,
sortable: true,
span: 12,
width: 180,
},
],
},
data: [],
};
},
methods: {
rowSave(row, done, loading) {
addEquipAbility(row).then(
() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
done();
},
error => {
window.console.log(error);
loading();
}
);
},
rowUpdate(row, index, done, loading) {
updateEquipAbility(row).then(
() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
done();
},
error => {
window.console.log(error);
loading();
}
);
},
rowDel(row) {
this.$confirm('确定将选择数据删除?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
return removeEquipAbility(row.id);
})
.then(() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
});
},
searchReset() {
this.query = {};
this.onLoad(this.page);
},
searchChange(params, done) {
this.query = params;
this.page.currentPage = 1;
this.onLoad(this.page, params);
done();
},
selectionChange(list) {
this.selectionList = list;
},
selectionClear() {
this.selectionList = [];
this.$refs.crud.toggleSelection();
},
currentChange(currentPage) {
this.page.currentPage = currentPage;
},
sizeChange(pageSize) {
this.page.pageSize = pageSize;
},
refreshChange() {
this.onLoad(this.page, this.query);
},
onLoad(page, params = {}) {
this.loading = true;
getListEquipAbility(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(
res => {
this.data = res.data.data.records;
this.loading = false;
this.page.total = res.data.data.total;
this.selectionClear();
}
);
},
},
mounted() {},
};
</script>

@ -0,0 +1,241 @@
<template>
<basic-container>
<avue-crud
:option="option"
:table-loading="loading"
:data="data"
v-model="form"
v-model:page="page"
ref="crud"
@row-del="rowDel"
@row-update="rowUpdate"
@row-save="rowSave"
@search-change="searchChange"
@search-reset="searchReset"
@selection-change="selectionChange"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
>
<template #menu-left> </template>
<template #menu-right> </template>
<template #menu="{ row }"> </template>
<template #heatTreat="scope"> </template>
</avue-crud>
</basic-container>
</template>
<script>
import {
getListInspectionItem,
removeInspectionItem,
addInspectionItem,
updateInspectionItem,
} from '@/api/productionSchedulingPlan/basic';
export default {
components: {},
data() {
return {
form: {},
selectionList: [],
query: {},
loading: false,
page: {
pageSize: 10,
currentPage: 1,
total: 0,
},
option: {
columnSort: true,
tip: false,
height: 'auto',
calcHeight: 32,
simplePage: false,
searchShow: true,
searchMenuSpan: 6,
searchIcon: true,
searchIndex: 3,
tree: false,
border: true,
index: true,
selection: false,
addBtn: true,
editBtn: true,
viewBtn: false,
delBtn: true,
editBtnText: '修改',
labelWidth: 120,
menuWidth: 120,
dialogWidth: 900,
dialogClickModal: false,
searchEnter: true,
excelBtn: false,
filterBtn: true,
searchShowBtn: false,
excelBtn: true,
showOverflowTooltip: true,
addBtnIcon: ' ',
viewBtnIcon: ' ',
delBtnIcon: ' ',
editBtnIcon: ' ',
gridBtn: false,
searchLabelPosition: 'left',
searchGutter: 24,
searchSpan: 6,
menuAlign: 'left',
gridBtn: false,
searchMenuPosition: 'right',
align: 'center',
column: [
{
label: '检验项目',
prop: '',
search: false,
sortable: true,
span: 12,
},
{
label: '抽样数量(常规)',
prop: '',
search: false,
sortable: true,
span: 12,
},
{
label: '额定工时(分钟)',
prop: '',
search: false,
sortable: true,
span: 12,
},
{
label: '额定工时(分钟/每人每个)',
prop: '',
search: false,
sortable: true,
span: 12,
labelWidth:220,
},
{
label: '准备工时(分钟)',
prop: '',
search: false,
sortable: true,
span: 12,
labelWidth:180,
},
{
label: '单位',
prop: 'unit',
search: false,
sortable: true,
span: 12,
},
{
label: '备注',
prop: 'remarks',
search: false,
sortable: true,
span: 12,
},
],
},
data: [],
};
},
methods: {
rowSave(row, done, loading) {
addInspectionItem(row).then(
() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
done();
},
error => {
window.console.log(error);
loading();
}
);
},
rowUpdate(row, index, done, loading) {
updateInspectionItem(row).then(
() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
done();
},
error => {
window.console.log(error);
loading();
}
);
},
rowDel(row) {
this.$confirm('确定将选择数据删除?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
return removeInspectionItem(row.id);
})
.then(() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
});
},
searchReset() {
this.query = {};
this.onLoad(this.page);
},
searchChange(params, done) {
this.query = params;
this.page.currentPage = 1;
this.onLoad(this.page, params);
done();
},
selectionChange(list) {
this.selectionList = list;
},
selectionClear() {
this.selectionList = [];
this.$refs.crud.toggleSelection();
},
currentChange(currentPage) {
this.page.currentPage = currentPage;
},
sizeChange(pageSize) {
this.page.pageSize = pageSize;
},
refreshChange() {
this.onLoad(this.page, this.query);
},
onLoad(page, params = {}) {
this.loading = true;
getListInspectionItem(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(
res => {
this.data = res.data.data.records;
this.loading = false;
this.page.total = res.data.data.total;
this.selectionClear();
}
);
},
},
mounted() {},
};
</script>

@ -0,0 +1,273 @@
<template>
<basic-container>
<avue-crud
:option="option"
:table-loading="loading"
:data="data"
v-model="form"
v-model:page="page"
ref="crud"
@row-del="rowDel"
@row-update="rowUpdate"
@row-save="rowSave"
@search-change="searchChange"
@search-reset="searchReset"
@selection-change="selectionChange"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
>
<template #menu-left> </template>
<template #menu-right> </template>
<template #menu="{ row }"> </template>
<template #heatTreat="scope"> </template>
</avue-crud>
</basic-container>
</template>
<script>
import {
getListDifferentFurnaceTank,
removeDifferentFurnaceTank,
addDifferentFurnaceTank,
updateDifferentFurnaceTank,
} from '@/api/productionSchedulingPlan/basic';
export default {
components: {},
data() {
return {
form: {},
selectionList: [],
query: {},
loading: false,
page: {
pageSize: 10,
currentPage: 1,
total: 0,
},
option: {
columnSort: true,
tip: false,
height: 'auto',
calcHeight: 32,
simplePage: false,
searchShow: true,
searchMenuSpan: 6,
searchIcon: true,
searchIndex: 3,
tree: false,
border: true,
index: true,
selection: false,
addBtn: true,
editBtn: true,
viewBtn: false,
delBtn: true,
editBtnText: '修改',
labelWidth: 120,
menuWidth: 120,
dialogWidth: 900,
dialogClickModal: false,
searchEnter: true,
excelBtn: false,
filterBtn: true,
searchShowBtn: false,
excelBtn: true,
showOverflowTooltip: true,
addBtnIcon: ' ',
viewBtnIcon: ' ',
delBtnIcon: ' ',
editBtnIcon: ' ',
gridBtn: false,
searchLabelPosition: 'left',
searchGutter: 24,
searchSpan: 6,
menuAlign: 'left',
gridBtn: false,
searchMenuPosition: 'right',
align: 'center',
column: [
{
label: '工艺能力',
prop: 'workCenterId',
search: false,
sortable: true,
span: 12,
},
{
label: '影响因素',
prop: 'processId',
search: false,
sortable: true,
span: 12,
children: [
{
label: '键位',
prop: 'workCenterId',
search: false,
sortable: true,
span: 12,
},
{
label: '生产厂家',
prop: 'workCenterId',
search: false,
sortable: true,
span: 12,
},
{
label: '检验编号',
prop: 'workCenterId',
search: false,
sortable: true,
span: 12,
},
{
label: '材料',
prop: 'workCenterId',
search: false,
sortable: true,
span: 12,
},
{
label: '厚度(镀层)',
prop: 'workCenterId',
search: false,
sortable: true,
span: 12,
width:140,
},
{
label: '钝化',
prop: 'workCenterId',
search: false,
sortable: true,
span: 12,
},
{
label: '硬度',
prop: 'workCenterId',
search: false,
sortable: true,
span: 12,
},
{
label: '生产标识',
prop: 'workCenterId',
search: false,
sortable: true,
span: 12,
},
{
label: '结构/单件面积',
prop: 'workCenterId',
search: false,
sortable: true,
span: 12,
width:150
},
],
},
],
},
data: [],
};
},
methods: {
rowSave(row, done, loading) {
addDifferentFurnaceTank(row).then(
() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
done();
},
error => {
window.console.log(error);
loading();
}
);
},
rowUpdate(row, index, done, loading) {
updateDifferentFurnaceTank(row).then(
() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
done();
},
error => {
window.console.log(error);
loading();
}
);
},
rowDel(row) {
this.$confirm('确定将选择数据删除?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
return removeDifferentFurnaceTank(row.id);
})
.then(() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
});
},
searchReset() {
this.query = {};
this.onLoad(this.page);
},
searchChange(params, done) {
this.query = params;
this.page.currentPage = 1;
this.onLoad(this.page, params);
done();
},
selectionChange(list) {
this.selectionList = list;
},
selectionClear() {
this.selectionList = [];
this.$refs.crud.toggleSelection();
},
currentChange(currentPage) {
this.page.currentPage = currentPage;
},
sizeChange(pageSize) {
this.page.pageSize = pageSize;
},
refreshChange() {
this.onLoad(this.page, this.query);
},
onLoad(page, params = {}) {
this.loading = true;
getListDifferentFurnaceTank(
page.currentPage,
page.pageSize,
Object.assign(params, this.query)
).then(res => {
this.data = res.data.data.records;
this.loading = false;
this.page.total = res.data.data.total;
this.selectionClear();
});
},
},
mounted() {},
};
</script>

@ -0,0 +1,227 @@
<template>
<basic-container>
<avue-crud
:option="option"
:table-loading="loading"
:data="data"
v-model="form"
v-model:page="page"
ref="crud"
@row-del="rowDel"
@row-update="rowUpdate"
@row-save="rowSave"
@search-change="searchChange"
@search-reset="searchReset"
@selection-change="selectionChange"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
>
<template #menu-left> </template>
<template #menu-right> </template>
<template #menu="{ row }"> </template>
<template #heatTreat="scope"> </template>
</avue-crud>
</basic-container>
</template>
<script>
import {
getListPersonAbility,
removePersonAbility,
addPersonAbility,
updatePersonAbility,
} from '@/api/productionSchedulingPlan/basic';
export default {
components: {},
data() {
return {
form: {},
selectionList: [],
query: {},
loading: false,
page: {
pageSize: 10,
currentPage: 1,
total: 0,
},
option: {
columnSort: true,
tip: false,
height: 'auto',
calcHeight: 32,
simplePage: false,
searchShow: true,
searchMenuSpan: 6,
searchIcon: true,
searchIndex: 3,
tree: false,
border: true,
index: true,
selection: false,
addBtn: true,
editBtn: true,
viewBtn: false,
delBtn: true,
editBtnText: '修改',
labelWidth: 120,
menuWidth: 120,
dialogWidth: 900,
dialogClickModal: false,
searchEnter: true,
excelBtn: false,
filterBtn: true,
searchShowBtn: false,
excelBtn: true,
showOverflowTooltip: true,
addBtnIcon: ' ',
viewBtnIcon: ' ',
delBtnIcon: ' ',
editBtnIcon: ' ',
gridBtn: false,
searchLabelPosition: 'left',
searchGutter: 24,
searchSpan: 6,
menuAlign: 'left',
gridBtn: false,
searchMenuPosition: 'right',
align: 'center',
column: [
{
label: '作业中心',
prop: 'workCenterId',
search: false,
sortable: true,
span: 12,
},
{
label: '工序',
prop: 'processId',
search: false,
sortable: true,
span: 12,
},
{
label: '工艺能力',
prop: 'craftId',
search: false,
sortable: true,
span: 12,
},
{
label: '额定工时(分钟/每人每个)',
prop: 'standardTime',
search: false,
sortable: true,
span: 12,
labelWidth:220,
},
{
label: '准备工时(分钟)',
prop: 'prepareTime',
search: false,
sortable: true,
span: 12,
labelWidth:180,
},
],
},
data: [],
};
},
methods: {
rowSave(row, done, loading) {
addPersonAbility(row).then(
() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
done();
},
error => {
window.console.log(error);
loading();
}
);
},
rowUpdate(row, index, done, loading) {
updatePersonAbility(row).then(
() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
done();
},
error => {
window.console.log(error);
loading();
}
);
},
rowDel(row) {
this.$confirm('确定将选择数据删除?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
return removePersonAbility(row.id);
})
.then(() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
});
},
searchReset() {
this.query = {};
this.onLoad(this.page);
},
searchChange(params, done) {
this.query = params;
this.page.currentPage = 1;
this.onLoad(this.page, params);
done();
},
selectionChange(list) {
this.selectionList = list;
},
selectionClear() {
this.selectionList = [];
this.$refs.crud.toggleSelection();
},
currentChange(currentPage) {
this.page.currentPage = currentPage;
},
sizeChange(pageSize) {
this.page.pageSize = pageSize;
},
refreshChange() {
this.onLoad(this.page, this.query);
},
onLoad(page, params = {}) {
this.loading = true;
getListPersonAbility(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(
res => {
this.data = res.data.data.records;
this.loading = false;
this.page.total = res.data.data.total;
this.selectionClear();
}
);
},
},
mounted() {},
};
</script>

@ -0,0 +1,232 @@
<template>
<basic-container>
<avue-crud
:option="option"
:table-loading="loading"
:data="data"
v-model="form"
v-model:page="page"
ref="crud"
@row-del="rowDel"
@row-update="rowUpdate"
@row-save="rowSave"
@search-change="searchChange"
@search-reset="searchReset"
@selection-change="selectionChange"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
>
<template #menu-left> </template>
<template #menu-right> </template>
<template #menu="{ row }"> </template>
<template #heatTreat="scope"> </template>
</avue-crud>
</basic-container>
</template>
<script>
import {
getListMainProducer,
removeMainProducer,
addMainProducer,
updateMainProducer,
} from '@/api/productionSchedulingPlan/basic';
export default {
components: {},
data() {
return {
form: {},
selectionList: [],
query: {},
loading: false,
page: {
pageSize: 10,
currentPage: 1,
total: 0,
},
option: {
columnSort: true,
tip: false,
height: 'auto',
calcHeight: 32,
simplePage: false,
searchShow: true,
searchMenuSpan: 6,
searchIcon: true,
searchIndex: 3,
tree: false,
border: true,
index: true,
selection: false,
addBtn: true,
editBtn: true,
viewBtn: false,
delBtn: true,
editBtnText: '修改',
labelWidth: 120,
menuWidth: 120,
dialogWidth: 900,
dialogClickModal: false,
searchEnter: true,
excelBtn: false,
filterBtn: true,
searchShowBtn: false,
excelBtn: true,
showOverflowTooltip: true,
addBtnIcon: ' ',
viewBtnIcon: ' ',
delBtnIcon: ' ',
editBtnIcon: ' ',
gridBtn: false,
searchLabelPosition: 'left',
searchGutter: 24,
searchSpan: 6,
menuAlign: 'left',
gridBtn: false,
searchMenuPosition: 'right',
align: 'center',
column: [
{
label: '工序',
prop: 'processId',
search: false,
sortable: true,
span: 12,
},
{
label: '工艺能力',
prop: 'processId',
search: false,
sortable: true,
span: 12,
},
{
label: '主生产者(人/设备)',
prop: 'mainProducer',
search: false,
sortable: true,
span: 12,
labelWidth:220,
type:'select',
dicData:[
{
label:'人',
value:'人'
},
{
label:'设备',
value:'设备'
}
]
},
{
label: '备注',
prop: '',
search: false,
sortable: true,
span: 12,
labelWidth:180,
},
],
},
data: [],
};
},
methods: {
rowSave(row, done, loading) {
addMainProducer(row).then(
() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
done();
},
error => {
window.console.log(error);
loading();
}
);
},
rowUpdate(row, index, done, loading) {
updateMainProducer(row).then(
() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
done();
},
error => {
window.console.log(error);
loading();
}
);
},
rowDel(row) {
this.$confirm('确定将选择数据删除?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
return removeMainProducer(row.id);
})
.then(() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
});
},
searchReset() {
this.query = {};
this.onLoad(this.page);
},
searchChange(params, done) {
this.query = params;
this.page.currentPage = 1;
this.onLoad(this.page, params);
done();
},
selectionChange(list) {
this.selectionList = list;
},
selectionClear() {
this.selectionList = [];
this.$refs.crud.toggleSelection();
},
currentChange(currentPage) {
this.page.currentPage = currentPage;
},
sizeChange(pageSize) {
this.page.pageSize = pageSize;
},
refreshChange() {
this.onLoad(this.page, this.query);
},
onLoad(page, params = {}) {
this.loading = true;
getListMainProducer(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(
res => {
this.data = res.data.data.records;
this.loading = false;
this.page.total = res.data.data.total;
this.selectionClear();
}
);
},
},
mounted() {},
};
</script>

@ -0,0 +1,219 @@
<template>
<basic-container>
<avue-crud
:option="option"
:table-loading="loading"
:data="data"
v-model="form"
v-model:page="page"
ref="crud"
@row-del="rowDel"
@row-update="rowUpdate"
@row-save="rowSave"
@search-change="searchChange"
@search-reset="searchReset"
@selection-change="selectionChange"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
@on-load="onLoad"
>
<template #menu-left> </template>
<template #menu-right> </template>
<template #menu="{ row }"> </template>
<template #heatTreat="scope"> </template>
</avue-crud>
</basic-container>
</template>
<script>
import {
getListGualityGrade,
removeGualityGrade,
addGualityGrade,
updateGualityGrade,
} from '@/api/productionSchedulingPlan/basic';
export default {
components: {},
data() {
return {
form: {},
selectionList: [],
query: {},
loading: false,
page: {
pageSize: 10,
currentPage: 1,
total: 0,
},
option: {
columnSort: true,
tip: false,
height: 'auto',
calcHeight: 32,
simplePage: false,
searchShow: true,
searchMenuSpan: 6,
searchIcon: true,
searchIndex: 3,
tree: false,
border: true,
index: true,
selection: false,
addBtn: true,
editBtn: true,
viewBtn: false,
delBtn: true,
editBtnText: '修改',
labelWidth: 120,
menuWidth: 120,
dialogWidth: 900,
dialogClickModal: false,
searchEnter: true,
excelBtn: false,
filterBtn: true,
searchShowBtn: false,
excelBtn: true,
showOverflowTooltip: true,
addBtnIcon: ' ',
viewBtnIcon: ' ',
delBtnIcon: ' ',
editBtnIcon: ' ',
gridBtn: false,
searchLabelPosition: 'left',
searchGutter: 24,
searchSpan: 6,
menuAlign: 'left',
gridBtn: false,
searchMenuPosition: 'right',
align: 'center',
column: [
{
label: '质量等级',
prop: 'workCenterId',
search: false,
sortable: true,
span: 12,
},
{
label: '军品',
prop: 'processId',
search: false,
sortable: true,
span: 12,
},
{
label: '商飞',
prop: 'craftId',
search: false,
sortable: true,
span: 12,
},
{
label: '宇航',
prop: 'standardTime',
search: false,
sortable: true,
span: 12,
},
],
},
data: [],
};
},
methods: {
rowSave(row, done, loading) {
addGualityGrade(row).then(
() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
done();
},
error => {
window.console.log(error);
loading();
}
);
},
rowUpdate(row, index, done, loading) {
updateGualityGrade(row).then(
() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
done();
},
error => {
window.console.log(error);
loading();
}
);
},
rowDel(row) {
this.$confirm('确定将选择数据删除?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
return removeGualityGrade(row.id);
})
.then(() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
});
},
searchReset() {
this.query = {};
this.onLoad(this.page);
},
searchChange(params, done) {
this.query = params;
this.page.currentPage = 1;
this.onLoad(this.page, params);
done();
},
selectionChange(list) {
this.selectionList = list;
},
selectionClear() {
this.selectionList = [];
this.$refs.crud.toggleSelection();
},
currentChange(currentPage) {
this.page.currentPage = currentPage;
},
sizeChange(pageSize) {
this.page.pageSize = pageSize;
},
refreshChange() {
this.onLoad(this.page, this.query);
},
onLoad(page, params = {}) {
this.loading = true;
getListGualityGrade(page.currentPage, page.pageSize, Object.assign(params, this.query)).then(
res => {
this.data = res.data.data.records;
this.loading = false;
this.page.total = res.data.data.total;
this.selectionClear();
}
);
},
},
mounted() {},
};
</script>
Loading…
Cancel
Save