代码提交

dev-scheduling
taozi 4 months ago
parent d12dc51078
commit 8ce9e095b0
  1. 57
      src/views/productionManagement/blbWorkOrder/components/abnormalDialog.vue
  2. 2959
      src/views/productionManagement/blbWorkOrder/components/glass.vue
  3. 2904
      src/views/productionManagement/blbWorkOrder/components/others.vue
  4. 764
      src/views/productionManagement/blbWorkOrder/index.vue
  5. 56
      src/views/productionManagement/components/abnormalDialog.vue
  6. 66
      src/views/productionManagement/components/batchesDialog.vue
  7. 159
      src/views/productionManagement/productionMonitoring.vue
  8. 1
      src/views/productionManagement/reworkOrder.vue
  9. 2821
      src/views/productionManagement/sinTerWorkOrder/index.vue

@ -0,0 +1,57 @@
<template>
<el-dialog title="异常申报" append-to-body :modelValue="showAbnormal" @close="closeDialog">
<el-form :model="batchesForm" :rules="batchesRules" class="form" ref="batchesForm">
<el-form-item label="异常描述" prop="memo">
<el-input type="textarea" placeholder="请输入异常描述" v-model="batchesForm.memo"></el-input>
</el-form-item>
<el-form-item label="当前工序" prop="currentProcess">
<el-radio-group v-model="batchesForm.currentProcess">
<el-radio v-model="radio" label="1">已完成</el-radio>
<el-radio v-model="radio" label="2">未完成</el-radio>
</el-radio-group>
</el-form-item>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="closeDialog"> </el-button>
<el-button type="primary" @click="closeDialog"> </el-button>
</span>
</template>
</el-dialog>
</template>
<script>
export default {
props: {
showAbnormal: {
type: Boolean,
default: false
},
},
data() {
return {
isOpen: false,
batchesForm: {},
batchesRules: {
memo: [{ required: true, message: '请输入异常描述', trigger: 'blur' }],
radio: [{ required: true, message: '请选择分批原因', trigger: 'blur' }],
currentProcess: [{ required: true, message: '请选择当前工序', trigger: 'blur' }],
}
}
},
mounted() {
},
methods: {
//
closeDialog() {
this.$emit('closeDialog')
this.$refs.batchesForm.resetFields()
},
}
}
</script>
<style scoped>
</style>

@ -1,95 +1,27 @@
<template> <template>
<basic-container> <basic-container>
<div class="search_box"> <el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="玻璃饼" name="1"></el-tab-pane>
</div> <el-tab-pane label="其他" name="2"></el-tab-pane>
<avue-crud :option="option" :table-loading="loading" :data="data" v-model="form" v-model:page="page" ref="crud" </el-tabs>
@row-del="rowDel" @search-change="searchChange" @search-reset="searchReset" <Glass v-if="activeName=='1'"></Glass>
@selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange" <others v-if="activeName=='2'"></others>
@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="handleImport()">导入</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>
</avue-crud>
<!-- 导入 -->
<basic-import v-if="isShowImport" title="导入" :isShow="isShowImport"
templateUrl="/blade-desk/QA/CycleTestItem/download-excel-template"
templateName="试验项目模板.xlsx"
importUrl="/blade-desk/QA/CycleTestItem/import-excel"
@closeDialog="closeDialog"></basic-import>
</basic-container> </basic-container>
</template> </template>
<script> <script>
import Glass from './components/glass.vue'
import { import others from './components/others.vue'
add,
getRole,
getRoleAlias,
getRoleTreeById,
grant,
grantTree,
remove,
update,
} from '@/api/system/role';
import { mapGetters } from 'vuex';
import { validatenull } from '@/utils/validate';
import basicImport from '@/components/basic-import/main.vue';
export default { export default {
components: { components:{ Glass,others },
basicImport,
},
data() { data() {
return { return {
isShowImport: false, activeName: '1',
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: { option: {
columnSort: true,
tip: false,
height: 'auto', height: 'auto',
calcHeight: 32, calcHeight: 32,
simplePage: false, tip: false,
size: 'medium',
simplePage: true,
searchShow: true, searchShow: true,
searchMenuSpan: 6, searchMenuSpan: 6,
searchIcon: true, searchIcon: true,
@ -97,607 +29,101 @@ export default {
tree: false, tree: false,
border: true, border: true,
index: true, index: true,
selection: false, selection: true,
addBtn: false, viewBtn: true,
editBtn: false, delBtn: true,
viewBtn: false,
delBtn: false,
editBtnText: '修改', editBtnText: '修改',
viewBtnIcon: ' ',
delBtnIcon: ' ',
editBtnIcon: ' ',
viewBtnText: '详情',
labelWidth: 120, labelWidth: 120,
menuWidth: 80, menuWidth: 220,
dialogWidth: 900, dialogWidth: 1200,
dialogClickModal: false, dialogClickModal: false,
searchEnter: true, searchEnter: true,
excelBtn: false, excelBtn: false,
filterBtn: true, filterBtn: true,
searchShowBtn: false, searchShowBtn: false,
columnSort: true,
excelBtn: true, excelBtn: true,
columnSort: true,
index: false,
showOverflowTooltip: true, showOverflowTooltip: true,
addBtnIcon: ' ',
viewBtnIcon: ' ',
delBtnIcon: ' ',
editBtnIcon: ' ',
gridBtn: false,
searchLabelPosition: 'left',
searchGutter: 24,
searchSpan: 6,
menuAlign: 'left',
gridBtn: false,
searchMenuPosition: 'right',
align: 'center',
column: [ column: [
{ {
label: '车间订单号', label: '作业中心',
prop: 'partCode', prop: 'wcName',
bind: 'dsPart.partCode',
search: true,
sortable: true,
width: 150,
span: 12,
},
{
label: '生产订单号',
prop: 'partCode',
search: true,
sortable: true,
width: 150,
span: 12,
},
{
label: '零件号',
prop: 'partCode',
bind: 'dsPart.partCode',
search: true,
sortable: true,
width: 150,
span: 12,
},
{
label: '下达时间',
prop: 'partCode',
bind: 'dsPart.partCode',
search: true,
sortable: true, sortable: true,
width: 150, width: 150,
span: 12, filter: true,
span: 8,
},
{
label: '订单状态',
prop: 'partCode',
bind: 'dsPart.partCode',
search: true,
sortable: true,
width: 150,
span: 12,
},
{
label: '批次号',
prop: 'partCode',
bind: 'dsPart.partCode',
search: true,
sortable: true,
width: 150,
span: 12,
},
{
label: '产品名称',
prop: 'partCode',
bind: 'dsPart.partCode',
search: true,
sortable: true,
width: 150,
span: 12,
},
{
label: '流程卡号',
prop: 'partCode',
bind: 'dsPart.partCode',
search: true,
sortable: true,
width: 150,
span: 12,
},
{
label: '镀种信息',
prop: 'partCode',
bind: 'dsPart.partCode',
search: true,
sortable: true,
width: 150,
span: 12,
},
{
label: '产品型号',
prop: 'partCode',
bind: 'dsPart.partCode',
search: true,
sortable: true,
width: 150,
span: 12,
},
{
label: '生产标识',
prop: 'partCode',
bind: 'dsPart.partCode',
search: true,
sortable: true,
width: 150,
span: 12,
},
{
label: '订单优先级',
prop: 'partCode',
bind: 'dsPart.partCode',
search: true,
sortable: true,
width: 150,
span: 12,
},
{
label: '需求部门',
prop: 'partCode',
bind: 'dsPart.partCode',
search: true,
sortable: true,
width: 150,
span: 12,
},
{
label: '生产数量',
prop: 'partCode',
bind: 'dsPart.partCode',
search: true,
sortable: true,
width: 150,
span: 12,
},
{
label: '面积(d)',
prop: 'partCode',
bind: 'dsPart.partCode',
search: true, search: true,
sortable: true, dicUrl: '/blade-desk/bsWorkCenter/getList',
width: 150, props: {
span: 12, label: 'wcName',
value: 'id',
}, },
{ rules: [
label: '单批次面积', {
prop: 'partCode', required: true,
bind: 'dsPart.partCode', message: '请输入作业中心',
search: true, trigger: 'blur',
sortable: true, },
width: 150, ],
span: 12, },
{
}, label: '作业槽',
{ prop: 'slotNo',
label: '需求交期', search: true,
prop: 'partCode', type: 'select',
bind: 'dsPart.partCode', sortable: true,
search: true, width: 120,
sortable: true, filter: true,
width: 150, span: 8,
span: 12, dicData: [
{
}, label: '#22',
{ value: 0
label: '会议要求周期', },
prop: 'partCode', {
bind: 'dsPart.partCode', label: '#21',
search: true, value: 1
sortable: true, }
width: 150, ],
span: 12, rules: [
{
}, required: true,
{ message: '请输入槽号',
label: '调度员', trigger: 'blur',
prop: 'partCode', },
bind: 'dsPart.partCode', ],
search: true, },
sortable: true, {
width: 150, label: '分析项目',
span: 12, prop: 'testEle',
search: false,
}, sortable: true,
{ width: 120,
label: '计划完工时间', filter: true,
prop: 'partCode', span: 8,
bind: 'dsPart.partCode', rules: [
search: true, {
sortable: true, required: true,
width: 150, message: '请输入分析项目',
span: 12, trigger: 'blur',
},
}, ],
{ },
label: '镀后入库时间', ]
prop: 'partCode', },
bind: 'dsPart.partCode', form: {},
search: true, page: {
sortable: true, pageSize: 10,
width: 150, currentPage: 1,
span: 12, total: 0,
},
{
label: '已入库数量',
prop: 'partCode',
bind: 'dsPart.partCode',
search: true,
sortable: true,
width: 150,
span: 12,
},
{
label: '未入库数量',
prop: 'partCode',
bind: 'dsPart.partCode',
search: true,
sortable: true,
width: 150,
span: 12,
},
{
label: '加工班组',
prop: 'partCode',
bind: 'dsPart.partCode',
search: true,
sortable: true,
width: 150,
span: 12,
},
{
label: '当前工序',
prop: 'partCode',
bind: 'dsPart.partCode',
search: true,
sortable: true,
width: 150,
span: 12,
},
{
label: '下序',
prop: 'partCode',
bind: 'dsPart.partCode',
search: true,
sortable: true,
width: 150,
span: 12,
},
{
label: '下一班组',
prop: 'partCode',
bind: 'dsPart.partCode',
search: true,
sortable: true,
width: 150,
span: 12,
},
{
label: '需求状态',
prop: 'partCode',
bind: 'dsPart.partCode',
search: true,
sortable: true,
width: 150,
span: 12,
},
{
label: '接收人员',
prop: 'partCode',
bind: 'dsPart.partCode',
search: true,
sortable: true,
width: 150,
span: 12,
},
{
label: '备注',
prop: 'partCode',
bind: 'dsPart.partCode',
search: true,
sortable: true,
width: 150,
span: 12,
},
],
}, },
}
data: [],
isRushOpen: false,//
isBatchOpen: false,//
};
},
methods: {
//
handleImport() {
this.isShowImport = true
},
//
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: '操作成功!',
});
},
onLoad(page, params = {}) {
this.loading = true;
this.data = [
]
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();
// });
},
},
mounted() {
} }
}; }
</script> </script>

@ -1,16 +1,19 @@
<template> <template>
<el-dialog title="分批" append-to-body :modelValue="showAbnormal" @close="closeDialog" class="dialog"> <el-dialog title="异常申报" append-to-body :modelValue="showAbnormal" @close="closeDialog" class="dialog">
<el-form :model="batchesForm" :rules="batchesRules" label-width="100px" class="form"> <el-form :model="batchesForm" :rules="batchesRules" label-width="100px" class="form" ref="batchesFormRef">
<el-form-item> <el-form-item class="icon-right">
<el-popover placement="left-start" width="250" trigger="hover" content="需要重新排产订单会释放已排产资源,在人工处理异常后进行排产"> <el-popover placement="right-start" :width="200" trigger="hover" append-to-body="false"
<el-button slot="reference"><img src="@/assets/question_mark.png" alt="说明" class="img"></el-button> content="需要重新排产订单会释放已排产资源,在人工处理异常后进行排产">
<template #reference>
<img src="@/assets/question_mark.png" alt="说明" class="img" />
</template>
</el-popover> </el-popover>
</el-form-item> </el-form-item>
<el-form-item label="异常描述" prop="memo"> <el-form-item label="异常描述" prop="memo">
<el-input type="textarea" placeholder="请输入异常描述" v-model="batchesForm.memo"></el-input> <el-input type="textarea" placeholder="请输入异常描述" v-model="batchesForm.memo"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="分批原因" prop="radio"> <el-form-item label="重新排产" prop="radio">
<el-radio-group v-model="batchesForm.radio"> <el-radio-group v-model="batchesForm.radio">
<el-radio v-model="radio" label="1">需要</el-radio> <el-radio v-model="radio" label="1">需要</el-radio>
<el-radio v-model="radio" label="2">不需要</el-radio> <el-radio v-model="radio" label="2">不需要</el-radio>
@ -26,7 +29,7 @@
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
<el-button @click="closeDialog"> </el-button> <el-button @click="closeDialog"> </el-button>
<el-button type="primary" @click="closeDialog"> </el-button> <el-button type="primary" @click="closeDialog"> </el-button>
</span> </span>
</template> </template>
</el-dialog> </el-dialog>
@ -58,29 +61,38 @@ export default {
// //
closeDialog() { closeDialog() {
this.$emit('closeDialog'); this.$emit('closeDialog');
this.$refs.batchesForm.resetFields(); this.$refs.batchesForm.resetFields()
this.$refs.batchesForm.clearValidate()
}, },
} }
} }
</script> </script>
<style> <style scoped>
.dialog { .icon-right {
height: 300px; position: relative !important;
position: relative; display: block !important;
text-align: left !important;
height: auto !important;
overflow: visible !important;
} }
.form { .icon-right .img {
position: relative; position: absolute !important;
right: 10px !important;
top: 50% !important;
transform: translateY(-50%) !important;
width: 20px !important;
height: 20px !important;
cursor: pointer;
display: inline-block !important;
background: #fff;
} }
.img { .icon-right .el-form-item__content {
width: 20px; margin-left: 0 !important;
height: 20px; width: 100% !important;
cursor: pointer; text-align: left !important;
position: absolute;
top: 20px;
right: 20px;
z-index: 100;
} }
</style> </style>

@ -1,18 +1,17 @@
<template> <template>
<el-dialog title="分批" append-to-body :modelValue="showBatches" @close="closeDialog" class="dialog"> <el-dialog title="分批" append-to-body :modelValue="showBatches" @close="closeDialog" class="dialog">
<el-form :model="batchesForm" :rules="batchesRules" label-width="100px" class="form"> <el-form :model="batchesForm" :rules="batchesRules" label-width="100px" class="form" ref="batchesForm">
<el-form-item> <el-form-item class="icon-right">
<el-popover placement="left-start" <el-popover placement="right-start" :width="200" trigger="hover" append-to-body="false">
width="250" <p>(1)返工:分批后剩余数量零件依据返工订单进行生产</p>
trigger="hover" <p>(2)关闭:分批后自动关闭剩余数量零件的生产</p>
content="(1)返工:分批后剩余数量零件依据返工订单进行生产;<br> <p>(3)其他:分批后剩余数量零件排产后进行生产</p>
(2)关闭:分批后自动关闭剩余数量零件的生产;<br> <template #reference>
(3)其他:分批后剩余数量零件排产后进行生产" <img src="@/assets/question_mark.png" alt="说明" class="img" />
> </template>
<el-button slot="reference"><img src="@/assets/question_mark.png" alt="说明" class="img"></el-button>
</el-popover> </el-popover>
</el-form-item> </el-form-item>
<el-form-item label="分批数量" prop="makeQty"> <el-form-item label="分批数量" prop="makeQty">
<el-input placeholder="请输入分批数量" v-model="batchesForm.makeQty" type="number" <el-input placeholder="请输入分批数量" v-model="batchesForm.makeQty" type="number"
oninput="value=value.replace(/[^\d]/g,'')"></el-input> oninput="value=value.replace(/[^\d]/g,'')"></el-input>
@ -40,7 +39,7 @@
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
<el-button @click="closeDialog"> </el-button> <el-button @click="closeDialog"> </el-button>
<el-button type="primary" @click="closeDialog"> </el-button> <el-button type="primary" @click="closeDialog"> </el-button>
</span> </span>
</template> </template>
</el-dialog> </el-dialog>
@ -56,7 +55,7 @@ export default {
}, },
data() { data() {
return { return {
isOpen : false, isOpen: false,
batchesForm: {}, batchesForm: {},
batchesRules: { batchesRules: {
makeQty: [{ required: true, message: '请输入分批数量', trigger: 'blur' }], makeQty: [{ required: true, message: '请输入分批数量', trigger: 'blur' }],
@ -73,28 +72,39 @@ export default {
methods: { methods: {
// //
closeDialog() { closeDialog() {
this.$emit('closeDialog'); this.$emit('closeDialog')
this.$refs.batchesForm.resetFields()
}, },
} }
} }
</script> </script>
<style>
.dialog { <style scoped>
height: 300px; .icon-right {
position: relative; position: relative !important;
} display: block !important;
.form{ text-align: left !important;
position: relative; height: auto !important;
overflow: visible !important;
} }
.img { .icon-right .img {
width: 20px; position: absolute !important;
height: 20px; right: 10px !important;
top: 50% !important;
transform: translateY(-50%) !important;
width: 20px !important;
height: 20px !important;
cursor: pointer; cursor: pointer;
position: absolute; display: inline-block !important;
top: 20px; background: #fff;
right: 20px;
z-index: 100;
} }
.icon-right .el-form-item__content {
margin-left: 0 !important;
width: 100% !important;
text-align: left !important;
}
</style> </style>

@ -5,8 +5,8 @@
@row-del="rowDel" @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange" @row-del="rowDel" @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
@current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad"> @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
<template #menu-left> <template #menu-left>
<el-button type="primary" icon="el-icon-printer" @click="handlePrintTags">过程记录打印</el-button> <el-button type="primary" icon="el-icon-printer" @click="handlePrintTags">过程记录打印</el-button>
<el-button type="primary" icon="el-icon-printer" @click="handlePrintTags">打印标签</el-button> <el-button type="primary" icon="el-icon-printer" @click="handlePrintTags">打印标签</el-button>
<!-- <el-button type="primary" icon="el-icon-printer" plain @click="handlePrint">打印</el-button> <!-- <el-button type="primary" icon="el-icon-printer" plain @click="handlePrint">打印</el-button>
<el-button type="primary" icon="el-icon-monitor" @click="handleOutsource(null, 'all')">批量外协</el-button> --> <el-button type="primary" icon="el-icon-monitor" @click="handleOutsource(null, 'all')">批量外协</el-button> -->
<!-- <el-button type="success" icon="el-icon-download">导出</el-button> --> <!-- <el-button type="success" icon="el-icon-download">导出</el-button> -->
@ -26,7 +26,7 @@
<el-button type="text" @click="handleClose(scope.row)" v-show="scope.row.runStatus < 15">关闭</el-button> <el-button type="text" @click="handleClose(scope.row)" v-show="scope.row.runStatus < 15">关闭</el-button>
<!-- <el-button type="text">打印</el-button> --> <!-- <el-button type="text">打印</el-button> -->
<el-dropdown @command="handleCommand" style="margin-top: 4px; margin-left: 12px" v-show="scope.row.approvalStatus != 2 && <el-dropdown @command="handleCommand" style="margin-top: 4px; margin-left: 12px" v-show="scope.row.approvalStatus != 2 &&
scope.row.oemType === -1 && scope.row.runStatus < 15 scope.row.oemType === -1 && scope.row.runStatus < 15 && scope.row.runStatus !== 5
"> ">
<span class="el-dropdown-link" style="color: #284c89; cursor: pointer"> <span class="el-dropdown-link" style="color: #284c89; cursor: pointer">
更多<i class="el-icon-arrow-down el-icon--right" /> 更多<i class="el-icon-arrow-down el-icon--right" />
@ -35,12 +35,11 @@
<el-dropdown-menu> <el-dropdown-menu>
<!-- <el-dropdown-item @click="handleIssued(scope.row)" <!-- <el-dropdown-item @click="handleIssued(scope.row)"
v-show="scope.row.runStatus === 1">下达</el-dropdown-item> --> v-show="scope.row.runStatus === 1">下达</el-dropdown-item> -->
<!-- <el-dropdown-item @click="handleBatches(scope.row)" <!-- 分批按钮状态2346显示 -->
v-show="scope.row.runStatus < 15 && scope.row.runStatus !== 5" >分批</el-dropdown-item> -->/<!-- 分批按钮状态2346显示 --> <el-dropdown-item @click="handleBatches(scope.row)"
<el-dropdown-item @click="handleBatches(scope.row)" v-if="[2, 3, 4, 6].includes(scope.row.runStatus)">分批</el-dropdown-item>
v-show="[2,3,4,6].includes(scope.row.runStatus)">分批</el-dropdown-item> <el-dropdown-item @click="handleOutsource(scope.row)"
<el-dropdown-item @click="handleOutsource(scope.row, 'one')" v-if="scope.row.runStatus <= 6 && scope.row.runStatus !== 5">外协</el-dropdown-item>
v-show="scope.row.runStatus <= 6 && scope.row.runStatus !== 5">外协</el-dropdown-item>
<!-- <el-dropdown-item @click="handleReturn(scope.row)" <!-- <el-dropdown-item @click="handleReturn(scope.row)"
v-show="scope.row.runStatus === 2">退货</el-dropdown-item> --> v-show="scope.row.runStatus === 2">退货</el-dropdown-item> -->
<!-- <el-dropdown-item @click="handleScheduling(scope.row)" <!-- <el-dropdown-item @click="handleScheduling(scope.row)"
@ -48,10 +47,9 @@
<!-- <el-dropdown-item @click="handleClose(scope.row)" v-show="scope.row.runStatus < 15">关闭</el-dropdown-item> --> <!-- <el-dropdown-item @click="handleClose(scope.row)" v-show="scope.row.runStatus < 15">关闭</el-dropdown-item> -->
<!-- <el-dropdown-item @click="handleSintering(scope.row)" <!-- <el-dropdown-item @click="handleSintering(scope.row)"
v-show="scope.row.runStatus < 15">转烧结</el-dropdown-item> --> v-show="scope.row.runStatus < 15">转烧结</el-dropdown-item> -->
<el-dropdown-item @click="priorityFn(scope.row)" <el-dropdown-item @click="priorityFn(scope.row)" v-if="scope.row.runStatus === 2">优先级调整</el-dropdown-item>
v-show="scope.row.runStatus === 2">优先级调整</el-dropdown-item> <el-dropdown-item @click="handleAbnormal(scope.row)"
<el-dropdown-item @click="handleAbnormal(scope.row)" v-if="scope.row.runStatus === 3 || scope.row.runStatus === 4">异常申报</el-dropdown-item>
v-show="scope.row.runStatus === 3 || scope.row.runStatus === 4" >异常申报</el-dropdown-item>
</el-dropdown-menu> </el-dropdown-menu>
</template> </template>
<!-- <el-dropdown-menu slot="dropdown"> <!-- <el-dropdown-menu slot="dropdown">
@ -77,6 +75,15 @@
<template #plate="{ row }">{{ <template #plate="{ row }">{{
row.pjYieldOrder && row.pjYieldOrder.plate row.pjYieldOrder && row.pjYieldOrder.plate
}}</template> }}</template>
<template #planEndDate="{ row }">
{{ Array.isArray(row.planEndDate) ? row.planEndDate.join(' ~ ') : (row.planEndDate || '-') }}
</template>
<template #planTime="{ row }">
{{ Array.isArray(row.planTime) ? row.planTime.join(' ~ ') : (row.planTime || '-') }}
</template>
<template #putStoreTime="{ row }">
{{ Array.isArray(row.putStoreTime) ? row.putStoreTime.join(' ~ ') : (row.putStoreTime || '-') }}
</template>
<template #productType="{ row }">{{ <template #productType="{ row }">{{
row.pjYieldOrder && row.pjYieldOrder.productType row.pjYieldOrder && row.pjYieldOrder.productType
}}</template> }}</template>
@ -131,7 +138,7 @@
<!-- 异常处理 --> <!-- 异常处理 -->
<abnormalDialog :show-abnormal="showAbnormal" @closeDialog="closeDialog"></abnormalDialog> <abnormalDialog :show-abnormal="showAbnormal" @closeDialog="closeDialog"></abnormalDialog>
<productionMonitoringDialog :showDialog="isPriorityOpen" v-if="isPriorityOpen" @closeDialog="closeDialog" <productionMonitoringDialog :showDialog="isPriorityOpen" v-if="isPriorityOpen" @closeDialog="closeDialog"
@submitPriority="handlePrioritySubmit"></productionMonitoringDialog> @submitPriority="handlePrioritySubmit"></productionMonitoringDialog>
</basic-container> </basic-container>
</template> </template>
@ -245,7 +252,7 @@ export default {
}, },
], ],
}, },
{ {
label: "当前工序", label: "当前工序",
prop: "ppsName", prop: "ppsName",
@ -279,7 +286,7 @@ export default {
}, },
{ {
label: "订单状态", label: "订单状态",
prop: "runStatus", prop: "runStatusTitle",
type: "select", type: "select",
search: true, search: true,
sortable: true, sortable: true,
@ -529,7 +536,7 @@ export default {
// }, // },
// ], // ],
// }, // },
{ {
label: "MES流程卡号", label: "MES流程卡号",
prop: "false", prop: "false",
search: false, search: false,
@ -604,8 +611,7 @@ export default {
}, },
], ],
}, },
{
{
label: "单批次面积", label: "单批次面积",
prop: "batchArea", prop: "batchArea",
search: false, search: false,
@ -620,7 +626,7 @@ export default {
}, },
], ],
}, },
{ {
label: "订单优先级", label: "订单优先级",
prop: "priorityTitle", prop: "priorityTitle",
type: "select", type: "select",
@ -733,61 +739,77 @@ export default {
}, },
], ],
}, },
{ {
label: "计划下达时间", label: "计划下达时间",
prop: "planTime", prop: "planTime",
search: true,
sortable: true, sortable: true,
overHidden: true, filter: true,
type: "datetimerange", selectWidth: 150,
span: 12,
search: true,
width: 200,
searchSpan: 8,
type: 'datetimerange',
format: 'YYYY-MM-DD HH:mm:ss', format: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'YYYY-MM-DD HH:mm:ss', valueFormat: 'YYYY-MM-DD HH:mm:ss',
startPlaceholder: '时间日期开始', startPlaceholder: '开始日期',
endPlaceholder: '时间日期结束', endPlaceholder: '结束日期',
width: 200, rangeSeparator: '-',
searchRange: true,
rules: [ rules: [
{ {
required: true, required: true,
message: "请输入计划下达时间", message: "请选择日期范围",
trigger: "blur", trigger: "change",
}, },
], ],
}, { },
{
label: "计划完工时间", label: "计划完工时间",
prop: "planEndDate", prop: "planEndDate",
search: false, search: false,
sortable: true, sortable: true,
overHidden: true, overHidden: true,
type: "datetimerange",
format: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'YYYY-MM-DD HH:mm:ss',
startPlaceholder: '时间日期开始',
endPlaceholder: '时间日期结束',
width: 200, width: 200,
rules: [ rules: [
{ {
required: true, required: true,
message: "请输入计划完工时间", message: "请输入计划下达时间",
trigger: "blur", trigger: "blur",
}, },
], ],
}, },
{ {
label: "镀后入库时间", label: "镀后入库时间",
prop: "putStoreTime", prop: "putStoreTime",
search: true,
sortable: true, sortable: true,
overHidden: true, filter: true,
span: 12,
search: true,
searchSpan: 8,
width: 200, width: 200,
type: "datetimerange", type: 'datetimerange',
format: 'yyyy-MM-DD HH:mm:ss', format: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'yyyy-MM-DD HH:mm:ss', valueFormat: 'YYYY-MM-DD HH:mm:ss',
startPlaceholder: '时间日期开始', startPlaceholder: '开始日期',
endPlaceholder: '时间日期结束', endPlaceholder: '结束日期',
rangeSeparator: '-',
searchRange: true,
rules: [ rules: [
{ {
required: true, required: true,
message: "请输入镀后入库时间", message: "请选择日期范围",
trigger: "blur", trigger: "change",
}, },
], ],
}, },
{ {
label: "外协状态", label: "外协状态",
prop: "oemType", prop: "oemType",
@ -890,9 +912,9 @@ export default {
}, },
], ],
}, },
// { // {
// label: "", // label: "",
// prop: "inventoryQty", // prop: "inventoryQty",
@ -993,7 +1015,7 @@ export default {
// }, // },
// ], // ],
// }, // },
{ {
label: "备注", label: "备注",
prop: "memo", prop: "memo",
@ -1043,12 +1065,15 @@ export default {
mounted() { }, mounted() { },
methods: { methods: {
// //
priorityFn() { priorityFn(row) {
this.isPriorityOpen = true this.rowItem = row;
}, console.log(row.runStatus, 123)
handlePrioritySubmit(data) { this.isPriorityOpen = true
this.$message.success(`优先级已调整为${data.priority === 1 ? '一级' : data.priority === 2 ? '二级' : '三级'}`); // console.log(runStatus,123)
}, },
handlePrioritySubmit(data) {
this.$message.success(`优先级已调整为${data.priority === 1 ? '一级' : data.priority === 2 ? '二级' : '三级'}`);
},
selectionChange(val) { selectionChange(val) {
this.selectionList = val; this.selectionList = val;
}, },
@ -1127,9 +1152,13 @@ export default {
} else { } else {
} }
}, },
//3546 //3546
queryOrdersHandle() { queryOrdersHandle() {
const targetStatuses = [3, 5, 4, 6];
const filteredData = this.data.filter(item => targetStatuses.includes(item.runStatus));
const originalData = [...this.data];
this.data = filteredData;
this.$message.success(`已筛选出${filteredData.length}条符合条件的订单`);
}, },
// //
handleAbnormal() { handleAbnormal() {
@ -1350,7 +1379,7 @@ export default {
nowWorkCenter: null, nowWorkCenter: null,
oem: false, oem: false,
oemOut: true, oemOut: true,
oemType: 1, oemType: -1,
oldRunStatus: null, oldRunStatus: null,
orderMarkTitle: "热表中心", orderMarkTitle: "热表中心",
orderWoCode: "WO-2303122891-R01", orderWoCode: "WO-2303122891-R01",
@ -1476,7 +1505,7 @@ export default {
reworkNo: null, reworkNo: null,
rsCode: null, rsCode: null,
runStatus: 3, runStatus: 3,
runStatusTitle: "加工中", runStatusTitle: "生产中",
schedStatus: 0, schedStatus: 0,
scrapQty: 0.0, scrapQty: 0.0,
sendDownTime: "2023-03-28 10:01:18", sendDownTime: "2023-03-28 10:01:18",
@ -1677,7 +1706,7 @@ export default {
nowWorkCenter: null, nowWorkCenter: null,
oem: false, oem: false,
oemOut: true, oemOut: true,
oemType: 1, oemType: -1,
oldRunStatus: null, oldRunStatus: null,
orderMarkTitle: "热表中心", orderMarkTitle: "热表中心",
orderWoCode: "WO-2303123426-R01", orderWoCode: "WO-2303123426-R01",
@ -1803,7 +1832,7 @@ export default {
reworkNo: null, reworkNo: null,
rsCode: null, rsCode: null,
runStatus: 2, runStatus: 2,
runStatusTitle: "加工中", runStatusTitle: "待生产",
schedStatus: 0, schedStatus: 0,
scrapQty: 0.0, scrapQty: 0.0,
sendDownTime: "2023-03-28 16:29:14", sendDownTime: "2023-03-28 16:29:14",
@ -2133,7 +2162,7 @@ export default {
reworkNo: null, reworkNo: null,
rsCode: null, rsCode: null,
runStatus: 4, runStatus: 4,
runStatusTitle: "加工中", runStatusTitle: "检验中",
schedStatus: 0, schedStatus: 0,
scrapQty: 0.0, scrapQty: 0.0,
sendDownTime: "2023-04-10 21:17:11", sendDownTime: "2023-04-10 21:17:11",
@ -2324,7 +2353,7 @@ export default {
nowWorkCenter: null, nowWorkCenter: null,
oem: false, oem: false,
oemOut: true, oemOut: true,
oemType: 1, oemType: -1,
oldRunStatus: null, oldRunStatus: null,
orderMarkTitle: "热表中心", orderMarkTitle: "热表中心",
orderWoCode: "WO-2303122891-R01", orderWoCode: "WO-2303122891-R01",
@ -2450,7 +2479,7 @@ export default {
reworkNo: null, reworkNo: null,
rsCode: null, rsCode: null,
runStatus: 6, runStatus: 6,
runStatusTitle: "加工中", runStatusTitle: "审理中",
schedStatus: 0, schedStatus: 0,
scrapQty: 0.0, scrapQty: 0.0,
sendDownTime: "2023-03-28 10:01:18", sendDownTime: "2023-03-28 10:01:18",
@ -2641,7 +2670,7 @@ export default {
nowWorkCenter: null, nowWorkCenter: null,
oem: false, oem: false,
oemOut: true, oemOut: true,
oemType: 1, oemType: -1,
oldRunStatus: null, oldRunStatus: null,
orderMarkTitle: "热表中心", orderMarkTitle: "热表中心",
orderWoCode: "WO-2303122891-R01", orderWoCode: "WO-2303122891-R01",
@ -2767,7 +2796,7 @@ export default {
reworkNo: null, reworkNo: null,
rsCode: null, rsCode: null,
runStatus: 5, runStatus: 5,
runStatusTitle: "加工中", runStatusTitle: "工艺变更",
schedStatus: 0, schedStatus: 0,
scrapQty: 0.0, scrapQty: 0.0,
sendDownTime: "2023-03-28 10:01:18", sendDownTime: "2023-03-28 10:01:18",
@ -2958,7 +2987,7 @@ export default {
nowWorkCenter: null, nowWorkCenter: null,
oem: false, oem: false,
oemOut: true, oemOut: true,
oemType: 1, oemType: -1,
oldRunStatus: null, oldRunStatus: null,
orderMarkTitle: "热表中心", orderMarkTitle: "热表中心",
orderWoCode: "WO-2303122891-R01", orderWoCode: "WO-2303122891-R01",
@ -3084,7 +3113,7 @@ export default {
reworkNo: null, reworkNo: null,
rsCode: null, rsCode: null,
runStatus: 19, runStatus: 19,
runStatusTitle: "加工中", runStatusTitle: "已返工",
schedStatus: 0, schedStatus: 0,
scrapQty: 0.0, scrapQty: 0.0,
sendDownTime: "2023-03-28 10:01:18", sendDownTime: "2023-03-28 10:01:18",
@ -3100,7 +3129,7 @@ export default {
ybCode: null, ybCode: null,
ybLocal: null, ybLocal: null,
}, },
]; ];
this.page.total = this.data.length; this.page.total = this.data.length;
}, },

@ -44,6 +44,7 @@ export default {
editBtnIcon: " ", editBtnIcon: " ",
labelWidth: "200px", labelWidth: "200px",
dialogWidth: 600, dialogWidth: 600,
menuWidth: 80,
dialogClickModal: false, dialogClickModal: false,
searchEnter: true, searchEnter: true,
filterBtn: true, filterBtn: true,

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save