工艺管理相关代码提交

dev-scheduling
zhangdi 1 day ago
parent 93aa57e0a5
commit 36dde39630
  1. 4
      src/api/processManagement/bathRefineTask.js
  2. 17
      src/api/processManagement/planClass.js
  3. 10
      src/router/page/index.js
  4. 128
      src/views/aaaaaaaaaaaaa/checkDialog.vue
  5. 90
      src/views/processManagement/bathRefine/accumulateClass.vue
  6. 165
      src/views/processManagement/bathRefine/addQuantity.vue
  7. 129
      src/views/processManagement/bathRefine/bathRefineTask.vue
  8. 111
      src/views/processManagement/bathRefine/components/addAccumulateClassDialog.vue
  9. 0
      src/views/processManagement/bathRefine/components/addPeriodicalClassDialog.vue
  10. 304
      src/views/processManagement/bathRefine/components/addQuantityDialog.vue
  11. 90
      src/views/processManagement/bathRefine/components/auditBatchDialog.vue
  12. 150
      src/views/processManagement/bathRefine/components/auditDialog.vue
  13. 87
      src/views/processManagement/bathRefine/components/maintainBathDialog.vue
  14. 134
      src/views/processManagement/bathRefine/components/maintainDialog.vue
  15. 150
      src/views/processManagement/bathRefine/components/planCheckDialog.vue
  16. 4
      src/views/processManagement/bathRefine/periodicalClass.vue
  17. 21
      src/views/processManagement/bathRefine/planClass.vue
  18. 4
      src/views/processManagement/inPlantProcess.vue
  19. 175
      src/views/productionSchedulingPlan/statisticalAnalysis/index.vue

@ -16,7 +16,7 @@ export const getList = (current, size, params) => {
// 批量维护 // 批量维护
export const dsBatchTask = row => { export const dsBatchTask = row => {
return request({ return request({
url: '/blade-desk/dsBatchPreserveTask/update', url: '/blade-desk/dsBatchPreserveTask/batchMaintain',
method: 'post', method: 'post',
data: row, data: row,
}); });
@ -24,7 +24,7 @@ export const dsBatchTask = row => {
// 批量审核 // 批量审核
export const dsBatchReview = row => { export const dsBatchReview = row => {
return request({ return request({
url: '/blade-desk/dsBatchPreserveTask/update', url: '/blade-desk/dsBatchPreserveTask/batchApproval',
method: 'post', method: 'post',
data: row, data: row,
}); });

@ -42,4 +42,21 @@ export const remove = ids => {
ids, ids,
}, },
}); });
};
// 计划类 主任审批
export const directorApproval = row => {
return request({
url: '/blade-desk/dsBatchPreservePlan/directorApproval',
method: 'post',
data:row
});
};
// 计划类 主任审批
export const factoryApproval = row => {
return request({
url: '/blade-desk/dsBatchPreservePlan/factoryApproval',
method: 'post',
data:row
});
}; };

@ -90,4 +90,14 @@ export default [
isAuth: false, isAuth: false,
}, },
}, },
{
path: '/SCHEDULING_ANALYSIS',
component: () => import(/* webpackChunkName: "page" */ '@/views/productionSchedulingPlan/statisticalAnalysis/index.vue'),
name: '排产统计分析',
meta: {
keepAlive: true,
isTab: false,
isAuth: false,
},
},
]; ];

@ -1,73 +1,71 @@
<template> <template>
<el-dialog title="审核" append-to-body :modelValue="openShow" width="30%" @close="closeDialog"> <el-dialog title="审核" append-to-body :modelValue="openShow" width="30%" @close="closeDialog">
<avue-form :option="option"></avue-form> <avue-form :option="option"></avue-form>
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
<el-button type="danger" @click="approveDialog = false">不通过</el-button> <el-button @click="closeDialog"> </el-button>
<el-button type="primary" @click="submitApprove">通过</el-button> <el-button type="primary" @click="submit"> </el-button>
</span> </span>
</template> </template>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
export default { export default {
props: { props: {
showDialog: { showDialog: {
type: Boolean, type: Boolean,
default: false default: false,
},
}, },
data() { },
return { data() {
openShow: false, return {
option: { openShow: false,
submitBtn: false, option: {
emptyBtn: false, submitBtn: false,
column: [ emptyBtn: false,
{ column: [
label: '审批结果', {
prop: 'input', label: '审批结果',
span: 24, prop: 'input',
type: 'radio', span: 24,
dicData: [ type: 'radio',
{ label: '审批通过', value: 0 }, dicData: [
{ label: '审批不通过', value: 1 }, { label: '审批通过', value: 0 },
], { label: '审批不通过', value: 1 },
rules: [ ],
{ required: true, message: '请输入姓名', trigger: 'blur' } rules: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
] },
}, {
{ label: '驳回原因',
label: '驳回原因', prop: 'input2',
prop: 'input2', // type: 'select',
// type: 'select', type: 'textarea',
type:'textarea', span: 24,
span: 24, // dicData: [
// dicData: [ // {
// { // label: '',
// label: '', // value: '1',
// value: '1', // },
// }, // {
// { // label: '',
// label: '', // value: '2',
// value: '2', // }
// } // ]
// ] },
} ],
] },
} };
} },
mounted() {
this.openShow = this.showDialog;
},
methods: {
closeDialog() {
this.openShow = false;
this.$emit('closeDialog');
}, },
mounted() { },
this.openShow = this.showDialog };
},
methods: {
closeDialog() {
this.openShow = false
this.$emit('closeDialog');
}
}
}
</script> </script>
<style lang="scss" scoped></style> <style lang="scss" scoped></style>

@ -20,95 +20,11 @@
> >
<template #menu-left> <template #menu-left>
<el-button type="primary" @click="handleAdd">新增</el-button> <el-button type="primary" @click="handleAdd">新增</el-button>
<el-button type="danger" @click="handleDelete">删除</el-button> <!-- <el-button type="danger" @click="handleDelete">删除</el-button> -->
<el-button type="success" @click="handleMaintain">批量维护</el-button> <el-button type="success" @click="handleMaintain">批量维护</el-button>
</template> </template>
</avue-crud> </avue-crud>
<!-- 新增 -->
<!-- <el-dialog title="新增" append-to-body v-model="showDialog" width="80%">
<div style="margin-bottom: 10px">
<el-button type="primary" icon="el-icon-plus" @click="insertEvent()">插入一行</el-button>
<el-button plain type="danger" @click="remove">删除选择行</el-button>
<el-button type="primary" @click="handleSave">保存</el-button>
</div>
<el-table :data="tableData" @select="selectChange">
<el-table-column type="selection"></el-table-column>
<el-table-column align="center" label="作业中心" prop="bsWorkCenter.wcId">
<template #default="scope">
<el-select v-model="scope.row.bsWorkCenter.wcId">
<el-option
v-for="item in wcData"
:key="item.wcId"
:value="item.wcId"
:label="item.wcName"
></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column align="center" label="作业槽" prop="batchNo">
<template #default="scope">
<el-select v-model="scope.row.batchNo">
<el-option
v-for="item in batchNo"
:key="item.value"
:value="item.value"
:label="item.label"
></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column align="center" label="规则类型" prop="ruleType">
<template #default="scope">
<el-select v-model="scope.row.ruleType">
<el-option
v-for="item in ruleTypeData"
:key="item.value"
:value="item.value"
:label="item.label"
></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column align="center" label="维护内容" prop="preserveContent">
<template #default="scope">
<el-input v-model="scope.row.preserveContent"></el-input>
</template>
</el-table-column>
<el-table-column align="center" label="添加量" prop="actualValue">
<template #default="scope">
<el-input v-model="scope.row.actualValue"></el-input>
</template>
</el-table-column>
<el-table-column align="center" label="添加量倍数" prop="actualValueMom">
<template #default="scope">
<el-input v-model="scope.row.actualValueMom"></el-input>
</template>
</el-table-column>
<el-table-column align="center" label="累计触发值" prop="cumulativeTriggerValue">
<template #default="scope">
<el-input v-model="scope.row.cumulativeTriggerValue"></el-input>
</template>
</el-table-column>
<el-table-column align="center" label="累计初始值" prop="cumulativeInitialValue">
<template #default="scope">
<el-input
v-if="scope.row.ruleType != 3"
v-model="scope.row.cumulativeInitialValue"
></el-input>
<el-date-picker
style="width: 100%"
v-if="scope.row.ruleType == 3"
v-model="scope.row.cumulativeInitialValue"
type="date"
placeholder="选择日期"
>
</el-date-picker>
</template>
</el-table-column>
</el-table>
</el-dialog> -->
<!--批量维护 --> <!--批量维护 -->
<maintain-dialog <maintain-dialog
:show-maintain="showMaintain" :show-maintain="showMaintain"
@ -121,7 +37,7 @@
</template> </template>
<script> <script>
import addAccumulateClass from './components/addAccumulateClass.vue'; import addAccumulateClass from './components/addAccumulateClassDialog.vue';
import maintainDialog from './components/maintainDialog.vue'; import maintainDialog from './components/maintainDialog.vue';
import { getList, add, remove, update } from '@/api/processManagement/planClass.js'; import { getList, add, remove, update } from '@/api/processManagement/planClass.js';
@ -259,7 +175,6 @@ export default {
calcHeight: 32, calcHeight: 32,
rowKey: 'keyValue', rowKey: 'keyValue',
tip: false, tip: false,
size: 'medium',
simplePage: true, simplePage: true,
searchShow: true, searchShow: true,
searchMenuSpan: 12, searchMenuSpan: 12,
@ -604,7 +519,6 @@ export default {
this.data = res.data.data.records; this.data = res.data.data.records;
this.loading = false; this.loading = false;
this.page.total = res.data.data.total; this.page.total = res.data.data.total;
this.selectionClear();
}); });
}, },
}, },

@ -9,6 +9,7 @@
v-model:page="page" v-model:page="page"
ref="crud" ref="crud"
@row-update="rowUpdate" @row-update="rowUpdate"
@row-del="rowDel"
@row-save="rowSave" @row-save="rowSave"
@search-change="searchChange" @search-change="searchChange"
@search-reset="searchReset" @search-reset="searchReset"
@ -22,80 +23,29 @@
<el-button type="primary" @click="handleAdd">新增</el-button> <el-button type="primary" @click="handleAdd">新增</el-button>
</template> </template>
<template #menu="scope"> <template #menu="scope"> </template>
<el-button type="text" @click="editRow(scope.row)">修改</el-button>
<el-button type="text" @click="deleteRow(scope.row)">删除</el-button>
</template>
</avue-crud> </avue-crud>
<el-dialog :title="title" append-to-body v-model="showDialog" width="80%">
<div style="margin-bottom: 10px"> <!-- 新增 -->
<el-button type="primary" @click="insertEvent()">插入一行</el-button> <addQuantityDialog
<el-button plain type="danger" @click="remove">删除选择行</el-button> v-if="showDialog"
</div> :showDialog="showDialog"
<el-table :data="tableData" @select="selectChange"> @closeDialog="closeDialog"
<el-table-column type="selection"></el-table-column> :moldAddMore="moldAddMore"
<el-table-column align="center" label="作业中心" prop="wcId"> ></addQuantityDialog>
<template #header>
<span><i style="color: red">*</i>作业中心</span>
</template>
<template #default="scope">
<el-select v-model="scope.row.wcId">
<el-option
v-for="item in wcData"
:key="item.wcId"
:value="item.wcId"
:label="item.wcName"
></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column align="center" label="槽号槽名" prop="batchNo">
<template #header>
<span><i style="color: red">*</i>槽号槽名</span>
</template>
<template #default="scope">
<el-select v-model="scope.row.batchNo">
<el-option label="#21" value="1"></el-option>
<el-option label="11" value="11"></el-option>
<el-option label="1234" value="1234"></el-option>
<el-option label="123" value="123"></el-option>
<el-option label="#22" value="3"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column align="center" label="添加量" prop="addValue">
<template #header>
<span><i style="color: red">*</i>添加量</span>
</template>
<template #default="scope">
<el-input v-model="scope.row.addValue"></el-input>
</template>
</el-table-column>
<el-table-column align="center" label="添加日期" prop="addTime">
<template #header>
<span><i style="color: red">*</i>添加日期</span>
</template>
<template #default="scope">
<el-date-picker v-model="scope.row.addTime" type="datetime" placeholder="选择日期时间">
</el-date-picker>
</template>
</el-table-column>
</el-table>
<template #footer>
<span class="dialog-footer">
<el-button @click="closeDialog"> </el-button>
<el-button type="primary" @click="handleSave"> </el-button>
</span>
</template>
</el-dialog>
</basic-container> </basic-container>
</template> </template>
<script> <script>
import { getList, add, remove, update } from '@/api/processManagement/addQuantity.js'; import { getList, add, remove, update } from '@/api/processManagement/addQuantity.js';
import addQuantityDialog from './components/addQuantityDialog.vue';
export default { export default {
components: { addQuantityDialog },
data() { data() {
return { return {
moldAddMore:false,
query: {}, query: {},
loading: false, loading: false,
title: '新增', title: '新增',
@ -215,7 +165,6 @@ export default {
calcHeight: 32, calcHeight: 32,
rowKey: 'keyValue', rowKey: 'keyValue',
tip: false, tip: false,
size: 'medium',
simplePage: true, simplePage: true,
searchShow: true, searchShow: true,
searchMenuSpan: 6, searchMenuSpan: 6,
@ -226,9 +175,9 @@ export default {
index: true, index: true,
selection: false, selection: false,
viewBtn: false, viewBtn: false,
delBtn: false, delBtn: true,
addBtn: false, addBtn: false,
editBtn: false, editBtn: true,
editBtnText: '修改', editBtnText: '修改',
addBtnIcon: ' ', addBtnIcon: ' ',
viewBtnIcon: ' ', viewBtnIcon: ' ',
@ -308,7 +257,11 @@ export default {
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
type: 'date', type: 'date',
format: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'YYYY-MM-DD HH:mm:ss',
// display: false,
searchRange: true, searchRange: true,
searchLabelWidth: 80, searchLabelWidth: 80,
startPlaceholder: '开始时间', startPlaceholder: '开始时间',
endPlaceholder: '结束时间', endPlaceholder: '结束时间',
@ -323,19 +276,10 @@ export default {
this.title = '新增'; this.title = '新增';
this.tableData = []; this.tableData = [];
this.showDialog = true; this.showDialog = true;
this.moldAddMore=true
}, },
editRow(row) { closeDialog() {
this.tableData = []; this.showDialog = false;
this.tableData.push(row);
this.title = '修改';
this.showDialog = true;
},
deleteRow(row) {
this.$confirm('确定将选择数据删除?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {});
}, },
insertEvent() { insertEvent() {
const record = { bsWorkCenter: { wcId: '' }, _select: false }; const record = { bsWorkCenter: { wcId: '' }, _select: false };
@ -344,40 +288,52 @@ export default {
selectChange(list, row) { selectChange(list, row) {
row._select = !row._select; row._select = !row._select;
}, },
// rowDel(row) {
remove() { this.$confirm('确定将选择数据删除?', {
let arr = this.tableData.filter(item => item._select); confirmButtonText: '确定',
if (arr.length != 0) { cancelButtonText: '取消',
this.$confirm('确定将选择数据删除?', { type: 'warning',
confirmButtonText: '确定', })
cancelButtonText: '取消', .then(() => {
type: 'warning', return remove(row.id);
}).then(() => { })
if (this.rowId) { .then(() => {
let deleteData = this.tableData.filter(item => item._select); this.onLoad(this.page);
this.deleteProcessArr = deleteData.filter(item => item.tidId); this.$message({
} type: 'success',
let deleteArr = this.tableData.filter(item => !item._select); message: '操作成功!',
this.tableData = deleteArr; });
}); });
} else {
this.$message.error('请至少选择一条数据进行操作!');
}
}, },
rowUpdate(row, index, done, loading) {
update(row).then(
() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
done();
},
error => {
window.console.log(error);
loading();
}
);
},
//
remove() {},
handleSave() { handleSave() {
this.showDialog = false; this.showDialog = false;
console.log(55555,this.tableData);
}, },
searchReset() { searchReset() {
this.query = {}; this.query = {};
this.onLoad(this.page); this.onLoad(this.page);
}, },
searchChange(params, done) { searchChange(params, done) {
// this.query = params; this.query = params;
// this.page.currentPage = 1; this.page.currentPage = 1;
// this.onLoad(this.page, params); this.onLoad(this.page, params);
done(); done();
}, },
currentChange(currentPage) { currentChange(currentPage) {
@ -395,7 +351,6 @@ export default {
this.data = res.data.data.records; this.data = res.data.data.records;
this.loading = false; this.loading = false;
this.page.total = res.data.data.total; this.page.total = res.data.data.total;
this.selectionClear();
}); });
}, },
}, },

@ -8,8 +8,6 @@
v-model="form" v-model="form"
v-model:page="page" v-model:page="page"
ref="crud" ref="crud"
@row-update="rowUpdate"
@row-save="rowSave"
@search-change="searchChange" @search-change="searchChange"
@search-reset="searchReset" @search-reset="searchReset"
@selection-change="selectionChange" @selection-change="selectionChange"
@ -27,44 +25,69 @@
<el-button type="text" v-if="scope.row.auditStatus == -1" @click="maintainRow(scope.row)" <el-button type="text" v-if="scope.row.auditStatus == -1" @click="maintainRow(scope.row)"
>维护</el-button >维护</el-button
> >
<el-button type="text" v-if="scope.row.auditStatus == 0" @click="auditRow(scope.row)" <!-- v-if="scope.row.auditStatus == 0" -->
>审核</el-button <el-button type="text" @click="auditRow(scope.row)">审核</el-button>
>
</template> </template>
</avue-crud> </avue-crud>
<audit-dialog <!-- 批量 -->
:show-audit="showAudit" <auditBatchDialog
:audit-Data="auditData" v-if="showAudit"
:showAudit="showAudit"
:auditData="auditData"
@closeDialog="closeDialog" @closeDialog="closeDialog"
></audit-dialog> ></auditBatchDialog>
<maintain-dialog <!-- 批量 -->
<maintainBathDialog
:show-maintain="showMaintain" :show-maintain="showMaintain"
:maintain-data="maintainData" :maintain-data="maintainData"
@closeDialog="closeDialog" @closeDialog="closeDialog"
></maintain-dialog> ></maintainBathDialog>
</basic-container> </basic-container>
<auditDialog
v-if="showSingleAudit"
:showDialog="showSingleAudit"
:auditData="auditData"
@closeDialog="closeDialog"
></auditDialog>
<maintainDialog
v-if="showSingleMaintain"
:showDialog="showSingleMaintain"
:maintain-data="maintainData"
@closeDialog="closeDialog"
></maintainDialog>
</template> </template>
<script> <script>
import auditBatchDialog from './components/auditBatchDialog.vue';
import maintainBathDialog from './components/maintainBathDialog.vue';
import auditDialog from './components/auditDialog.vue'; import auditDialog from './components/auditDialog.vue';
import maintainDialog from './components/maintainDialog.vue'; import maintainDialog from './components/maintainDialog.vue';
import { getList } from '@/api/processManagement/bathRefineTask.js'; import { getList } from '@/api/processManagement/bathRefineTask.js';
export default { export default {
components: { components: {
auditBatchDialog,
maintainBathDialog,
auditDialog, auditDialog,
maintainDialog, maintainDialog,
}, },
data() { data() {
return { return {
showSingleAudit: false,
showSingleMaintain: false,
showAudit: false,
showMaintain: false,
loading: false, loading: false,
auditData: [], auditData: [],
maintainData: [], maintainData: [],
showMaintain: false,
auditStatus: '', auditStatus: '',
auditDescribe: '', auditDescribe: '',
data: [], data: [],
form: {}, form: {},
showAudit: false,
selectionList: [], selectionList: [],
page: { page: {
pageSize: 10, pageSize: 10,
@ -75,8 +98,7 @@ export default {
height: 'auto', height: 'auto',
calcHeight: 32, calcHeight: 32,
tip: false, tip: false,
rowKey: 'keyValue', rowKey: 'id',
size: 'medium',
simplePage: true, simplePage: true,
searchShow: true, searchShow: true,
searchMenuSpan: 6, searchMenuSpan: 6,
@ -120,9 +142,8 @@ export default {
column: [ column: [
{ {
label: '作业中心', label: '作业中心',
prop: 'wcName', prop: 'wcId',
type: 'select', type: 'select',
bind: 'dsBatchPreservePlan.bsWorkCenter.wcName',
width: 200, width: 200,
search: true, search: true,
sortable: true, sortable: true,
@ -137,7 +158,7 @@ export default {
trigger: 'blur', trigger: 'blur',
}, },
], ],
dicUrl: '/blade-desk/bsWorkCenter/getList', dicUrl: '/blade-desk/bsWorkCenter/getList',
props: { props: {
label: 'wcName', label: 'wcName',
value: 'id', value: 'id',
@ -147,7 +168,6 @@ export default {
label: '作业槽/设备检查项', label: '作业槽/设备检查项',
prop: 'batchNo', prop: 'batchNo',
type: 'select', type: 'select',
bind: 'dsBatchPreservePlan.batchNo',
search: true, search: true,
width: 200, width: 200,
sortable: true, sortable: true,
@ -164,8 +184,7 @@ export default {
}, },
{ {
label: '维护内容', label: '维护内容',
prop: 'preserveContent', prop: 'accumulateRelevantInfo',
bind: 'dsBatchPreservePlan.preserveContent',
search: true, search: true,
width: 120, width: 120,
sortable: true, sortable: true,
@ -258,7 +277,7 @@ export default {
}, },
{ {
label: '是否合格', label: '是否合格',
prop: 'qualifiedTitle', prop: 'isQualified',
search: false, search: false,
width: 120, width: 120,
sortable: true, sortable: true,
@ -276,7 +295,7 @@ export default {
}, },
{ {
label: '状态', label: '状态',
prop: 'auditStatus', prop: 'taskStatus',
type: 'select', type: 'select',
width: 120, width: 120,
search: true, search: true,
@ -318,8 +337,7 @@ export default {
}, },
{ {
label: '审核人', label: '审核人',
prop: 'userName', prop: 'auditMan',
bind: 'auditMan.userName',
width: 120, width: 120,
search: false, search: false,
sortable: true, sortable: true,
@ -337,8 +355,7 @@ export default {
}, },
{ {
label: '审核时间', label: '审核时间',
prop: 'userName', prop: 'auditTime',
bind: 'auditMan.userName',
width: 120, width: 120,
search: false, search: false,
sortable: true, sortable: true,
@ -384,38 +401,41 @@ export default {
closeDialog() { closeDialog() {
this.showAudit = false; this.showAudit = false;
this.showMaintain = false; this.showMaintain = false;
this.showSingleAudit = false;
this.showSingleMaintain = false
this.onLoad(this.page)
}, },
selectionChange(val) { selectionChange(val) {
this.selectionList = val; this.selectionList = val;
}, },
//
auditRow(row) {
this.auditData = [];
this.auditData.push(row);
this.showSingleAudit = true;
},
//
handleAudit() { handleAudit() {
if (this.selectionList.length == 0) { // if (this.selectionList.length == 0) {
this.$message.error('请先选择数据'); // this.$message.error('');
return; // return;
} // }
let tmp = this.selectionList.find(item => item.auditStatus != 0); // let tmp = this.selectionList.find(item => item.auditStatus != 0);
if (tmp) { // if (tmp) {
this.$message.error('请选择状态为待审核的数据'); // this.$message.error('');
return; // return;
} // }
this.auditData = this.selectionList; this.auditData = this.selectionList;
this.showAudit = true; this.showAudit = true;
}, },
//
maintainRow(row) { maintainRow(row) {
this.maintainData = []; this.maintainData = [];
row.bsWorkCenter = {
wcName: row.dsBatchPreservePlan.bsWorkCenter.wcName,
};
row.batchNo = row.dsBatchPreservePlan.batchNo;
row.preserveContent = row.dsBatchPreservePlan.preserveContent;
this.maintainData.push(row); this.maintainData.push(row);
this.showMaintain = true; this.showSingleMaintain = true;
},
auditRow(row) {
this.auditData = [];
this.auditData.push(row);
this.showAudit = true;
}, },
//
handleMaintain() { handleMaintain() {
if (this.selectionList.length == 0) { if (this.selectionList.length == 0) {
this.$message.error('请先选择数据'); this.$message.error('请先选择数据');
@ -426,24 +446,19 @@ export default {
this.$message.error('请选择状态为待维护的数据'); this.$message.error('请选择状态为待维护的数据');
return; return;
} }
this.selectionList.map(item => {
item.bsWorkCenter = {
wcName: item.dsBatchPreservePlan.bsWorkCenter.wcName,
};
item.batchNo = item.dsBatchPreservePlan.batchNo;
item.preserveContent = item.dsBatchPreservePlan.preserveContent;
});
this.maintainData = this.selectionList; this.maintainData = this.selectionList;
this.showMaintain = true; this.showMaintain = true;
}, },
selectionClear() {},
searchReset() { searchReset() {
this.query = {}; this.query = {};
this.onLoad(this.page); this.onLoad(this.page);
}, },
searchChange(params, done) { searchChange(params, done) {
// this.query = params; this.query = params;
// this.page.currentPage = 1; this.page.currentPage = 1;
// this.onLoad(this.page, params); this.onLoad(this.page, params);
done(); done();
}, },
currentChange(currentPage) { currentChange(currentPage) {

@ -27,18 +27,16 @@
<span><i style="color: red">*</i>作业中心</span> <span><i style="color: red">*</i>作业中心</span>
</template> </template>
<template #default="scope"> <template #default="scope">
<el-form-item <el-form-item :prop="`tableData[${scope.$index}].wcId`" :rules="formRules.wcId">
:prop="`tableData[${scope.$index}].wcId`" <el-select v-model="scope.row.wcId">
:rules="formRules.wcId" <el-option
></el-form-item> v-for="item in wcData"
<el-select v-model="scope.row.wcId"> :key="item.id"
<el-option :value="item.id"
v-for="item in wcData" :label="item.wcName"
:key="item.id" ></el-option>
:value="item.id" </el-select>
:label="item.wcName" </el-form-item>
></el-option>
</el-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="作业槽" prop="batchNo"> <el-table-column align="center" label="作业槽" prop="batchNo">
@ -46,18 +44,16 @@
<span><i style="color: red">*</i>作业槽</span> <span><i style="color: red">*</i>作业槽</span>
</template> </template>
<template #default="scope"> <template #default="scope">
<el-form-item <el-form-item :prop="`tableData[${scope.$index}].batchNo`" :rules="formRules.batchNo">
:prop="`tableData[${scope.$index}].batchNo`" <el-select v-model="scope.row.batchNo">
:rules="formRules.batchNo" <el-option
></el-form-item> v-for="item in batchNo"
<el-select v-model="scope.row.batchNo"> :key="item.value"
<el-option :value="item.value"
v-for="item in batchNo" :label="item.label"
:key="item.value" ></el-option>
:value="item.value" </el-select>
:label="item.label" </el-form-item>
></el-option>
</el-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="规则类型" prop="ruleType"> <el-table-column align="center" label="规则类型" prop="ruleType">
@ -65,18 +61,16 @@
<span><i style="color: red">*</i>规则类型</span> <span><i style="color: red">*</i>规则类型</span>
</template> </template>
<template #default="scope"> <template #default="scope">
<el-form-item <el-form-item :prop="`tableData[${scope.$index}].ruleType`" :rules="formRules.ruleType">
:prop="`tableData[${scope.$index}].ruleType`" <el-select v-model="scope.row.ruleType">
:rules="formRules.ruleType" <el-option
></el-form-item> v-for="item in ruleTypeData"
<el-select v-model="scope.row.ruleType"> :key="item.value"
<el-option :value="item.value"
v-for="item in ruleTypeData" :label="item.label"
:key="item.value" ></el-option>
:value="item.value" </el-select>
:label="item.label" </el-form-item>
></el-option>
</el-select>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="维护内容" prop="preserveContent"> <el-table-column align="center" label="维护内容" prop="preserveContent">
@ -87,8 +81,9 @@
<el-form-item <el-form-item
:prop="`tableData[${scope.$index}].preserveContent `" :prop="`tableData[${scope.$index}].preserveContent `"
:rules="formRules.preserveContent" :rules="formRules.preserveContent"
></el-form-item> >
<el-input v-model="scope.row.preserveContent"></el-input> <el-input v-model="scope.row.preserveContent"></el-input>
</el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="添加量" prop="addQuantity"> <el-table-column align="center" label="添加量" prop="addQuantity">
@ -99,8 +94,9 @@
<el-form-item <el-form-item
:prop="`tableData[${scope.$index}].addQuantity`" :prop="`tableData[${scope.$index}].addQuantity`"
:rules="formRules.addQuantity" :rules="formRules.addQuantity"
></el-form-item> >
<el-input v-model="scope.row.addQuantity"></el-input> <el-input v-model="scope.row.addQuantity"></el-input>
</el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="添加量倍数" prop="addQuantityMultiple"> <el-table-column align="center" label="添加量倍数" prop="addQuantityMultiple">
@ -111,8 +107,9 @@
<el-form-item <el-form-item
:prop="`tableData[${scope.$index}].addQuantityMultiple`" :prop="`tableData[${scope.$index}].addQuantityMultiple`"
:rules="formRules.addQuantityMultiple" :rules="formRules.addQuantityMultiple"
></el-form-item> >
<el-input v-model="scope.row.addQuantityMultiple"></el-input> <el-input v-model="scope.row.addQuantityMultiple"></el-input>
</el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="累计触发值" prop="cumulativeTriggerValue"> <el-table-column align="center" label="累计触发值" prop="cumulativeTriggerValue">
@ -123,8 +120,9 @@
<el-form-item <el-form-item
:prop="`tableData[${scope.$index}].cumulativeTriggerValue`" :prop="`tableData[${scope.$index}].cumulativeTriggerValue`"
:rules="formRules.cumulativeTriggerValue" :rules="formRules.cumulativeTriggerValue"
></el-form-item> >
<el-input v-model="scope.row.cumulativeTriggerValue"></el-input> <el-input v-model="scope.row.cumulativeTriggerValue"></el-input>
</el-form-item>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column align="center" label="累计初始值" prop="cumulativeInitialValue"> <el-table-column align="center" label="累计初始值" prop="cumulativeInitialValue">
@ -135,19 +133,20 @@
<el-form-item <el-form-item
:prop="`tableData[${scope.$index}].cumulativeInitialValue`" :prop="`tableData[${scope.$index}].cumulativeInitialValue`"
:rules="formRules.cumulativeInitialValue" :rules="formRules.cumulativeInitialValue"
></el-form-item>
<el-input
v-if="scope.row.ruleType != 3"
v-model="scope.row.cumulativeInitialValue"
></el-input>
<el-date-picker
style="width: 100%"
v-if="scope.row.ruleType == 3"
v-model="scope.row.cumulativeInitialValue"
type="date"
placeholder="选择日期"
> >
</el-date-picker> <el-input
v-if="scope.row.ruleType != 3"
v-model="scope.row.cumulativeInitialValue"
></el-input>
<el-date-picker
style="width: 100%"
v-if="scope.row.ruleType == 3"
v-model="scope.row.cumulativeInitialValue"
type="date"
placeholder="选择日期"
>
</el-date-picker>
</el-form-item>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>

@ -0,0 +1,304 @@
<template>
<el-dialog title="新增" append-to-body :modelValue="openShow" width="70%" @close="closeDialog">
<div style="margin-bottom: 12px" v-if="moldAddMore">
<el-button type="primary" @click="addTable">插入一行</el-button>
<el-button type="danger" @click="delTable">删除选中行</el-button>
</div>
<!-- 单个 Form 包裹整个表格 -->
<el-form ref="tableForm" :model="form" :rules="formRules" label-width="0px">
<!-- 全局错误提示 -->
<div v-if="formError" class="error-message" style="color: #f56c6c; margin-bottom: 10px">
{{ formError }}
</div>
<el-table :data="form.tableData" @select="selectChange" border>
<el-table-column type="selection" width="55"></el-table-column>
<!-- 作业中心绑定数组字段 -->
<el-table-column align="center" label="作业中心" width="200">
<template #header>
<span><i style="color: red">*</i>作业中心</span>
</template>
<template #default="scope">
<!-- prop 格式数组名[索引].字段名 -->
<el-form-item :prop="`tableData[${scope.$index}].wcId`" :rules="formRules.wcId">
<el-select v-model="scope.row.wcId" placeholder="请选择" style="width: 100%">
<el-option
v-for="item in wcData"
:key="item.id"
:value="item.id"
:label="item.wcName"
></el-option>
</el-select>
</el-form-item>
</template>
</el-table-column>
<!-- 设备检查项/槽号槽名 -->
<el-table-column
align="center"
label="槽号槽名"
width="200"
>
<template #header>
<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-option label="#21" value="1"></el-option>
<el-option label="11" value="11"></el-option>
<el-option label="#22" value="3"></el-option>
</el-select>
</el-form-item>
</template>
</el-table-column>
<!-- 添加量 -->
<el-table-column align="center" label="添加量">
<template #header>
<span><i style="color: red">*</i>添加量</span>
</template>
<template #default="scope">
<el-form-item :prop="`tableData[${scope.$index}].addValue`" :rules="formRules.addValue">
<el-input
v-model="scope.row.addValue"
placeholder="请输入"
style="width: 100%"
></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column align="center" label="添加日期" prop="addTime">
<template #header>
<span><i style="color: red">*</i>添加日期</span>
</template>
<template #default="scope">
<el-form-item :prop="`tableData[${scope.$index}].addValue`" :rules="formRules.addTime">
<el-date-picker
v-model="scope.row.addTime"
type="datetime"
placeholder="选择日期时间"
>
</el-date-picker>
</el-form-item>
</template>
</el-table-column>
</el-table>
</el-form>
<template #footer>
<span class="dialog-footer">
<el-button @click="closeDialog"> </el-button>
<el-button type="primary" @click="submitForm"> </el-button>
</span>
</template>
</el-dialog>
</template>
<script>
import { getWorkCenterList } from '@/api/processManagement/addQuantity.js';
// import { submitBatchData } from '@/api/processManagement/periodical.js'; //
export default {
props: {
showDialog: { type: Boolean, default: false },
moldAddMore: { type: Boolean, default: false },
tabPosition: { type: String, default: '' },
},
data() {
return {
openShow: false,
wcData: [],
formError: '', //
//
form: {
tableData: [], // Form
},
//
formRules: {
// 1
tableData: [
{
required: true,
message: '请至少添加一行数据',
trigger: 'submit',
type: 'array', //
},
{
validator: (rule, value, callback) => {
if (value.length === 0) {
callback(new Error('请至少添加一行数据'));
} else {
callback();
}
},
trigger: 'submit',
},
],
// wcId
wcId: [{ required: true, message: '请选择作业中心', trigger: ['change', 'submit'] }],
// batchNo
batchNo: [
{
required: true,
message: `${this.tabPosition === 'bathInspection' ? '选择' : '输入'}${
this.tabPosition === 'bathInspection' ? '槽号槽名' : '设备检查项'
}`,
trigger: ['change', 'submit'],
},
],
// preserveContent
addTime: [
{ required: true, message: '请选择', trigger: ['blur', 'submit'] },
],
addValue: [
{ required: true, message: '请输入', trigger: ['blur', 'submit'] },
],
},
};
},
mounted() {
this.openShow = this.showDialog;
this.getWorkCenterList();
//
if (this.moldAddMore && this.form.tableData.length === 0) {
this.addTable();
}
},
methods: {
getWorkCenterList() {
getWorkCenterList().then(res => {
this.wcData = res.data.data || [];
});
},
selectChange(list, row) {
row._select = !row._select;
},
// push tableData
addTable() {
this.form.tableData.push({
_select: false, //
wcId: '', // ID
batchNo: '', // /
preserveContent: '', //
});
},
//
delTable() {
this.form.tableData = this.form.tableData.filter(row => !row._select);
},
closeDialog() {
this.openShow = false;
this.$emit('closeDialog');
//
this.form.tableData = [];
this.formError = '';
this.$refs.tableForm?.resetFields();
},
//
submitForm() {
this.formError = '';
// Form
this.$refs.tableForm.validate((isValid, invalidFields) => {
if (!isValid) {
//
this.formError = '存在未完善的字段,请检查表格中的红色提示';
this.$nextTick(() => {
//
const firstError = document.querySelector('.el-form-item.is-error');
if (firstError) {
firstError.scrollIntoView({ behavior: 'smooth', block: 'center' });
}
});
return;
}
//
const submitData = this.form.tableData.map(row => {
const { _select, ...validData } = row; //
return validData;
});
//
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 || '');
// }
//
this.$message.success('提交成功');
this.closeDialog();
this.$emit('submitSuccess', submitData);
} catch (err) {
this.$message.error('网络错误,请稍后重试');
console.error('提交失败:', err);
}
});
},
},
};
</script>
<style lang="scss" scoped>
//
:deep(.el-table .el-form-item) {
margin-bottom: 0; //
}
//
:deep(.el-form-item__error) {
font-size: 12px;
white-space: nowrap;
z-index: 10;
background: #fff;
padding: 2px 4px;
border: 1px solid #f56c6c;
border-radius: 4px;
}
// textarea
.el-table__row {
height: 80px !important;
}
.el-table__cell {
vertical-align: middle !important;
}
.error-message {
font-size: 14px;
line-height: 1.5;
}
:deep(.el-table .el-table__cell) {
height: 50px !important;
padding: 0 !important;
line-height: 50px !important;
}
</style>

@ -0,0 +1,90 @@
<template>
<el-dialog title="审核" append-to-body :modelValue="showAudit" width="80%" @close="closeDialog">
<div style="margin-bottom: 10px; display: flex; align-items: center">
<div style="display: flex; align-items: center; margin-right: 10px">
<div style="width: 100px">审核结果</div>
<el-radio v-model="auditStatus" :label="1">通过</el-radio>
<el-radio v-model="auditStatus" :label="2">不通过</el-radio>
</div>
<div style="display: flex; align-items: center; margin-right: 10px">
<div style="width: 100px">审核意见</div>
<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>
</div>
<el-table :data="auditData">
<el-table-column
align="center"
label="作业中心"
prop="dsBatchPreservePlan.bsWorkCenter.wcName"
></el-table-column>
<el-table-column
align="center"
label="作业槽"
prop="dsBatchPreservePlan.batchNo"
></el-table-column>
<el-table-column
align="center"
label="维护内容"
prop="dsBatchPreservePlan.preserveContent"
></el-table-column>
<el-table-column align="center" label="合格/不合格" prop="qualifiedTitle"> </el-table-column>
<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="2">不通过</el-radio>
</template>
</el-table-column>
<el-table-column align="center" label="审核意见" prop="auditDescribe">
<template #default="scope">
<el-input type="textarea" v-model="scope.row.auditDescribe"></el-input>
</template>
</el-table-column>
</el-table>
</el-dialog>
</template>
<script>
import { dsBatchReview } from '@/api/processManagement/bathRefineTask.js';
export default {
props: {
showAudit: {
type: Boolean,
default: false,
},
auditData: {
type: Object,
default: [],
},
},
data() {
return {
auditStatus: null,
auditDescribe: '',
};
},
mounted() {},
methods: {
auditValue() {
this.closeDialog();
},
handleSet() {
if (this.auditStatus == null) {
this.$message.error('请先选择审核结果');
return;
}
this.auditData.map(item => {
item.auditStatus = this.auditStatus;
item.auditDescribe = this.auditDescribe;
});
},
closeDialog() {
this.$emit('closeDialog');
},
},
};
</script>
<style></style>

@ -1,84 +1,84 @@
<template> <template>
<el-dialog title="审核" append-to-body :modelValue="showAudit" width="80%" @close="closeDialog"> <el-dialog title="审核" append-to-body :modelValue="openShow" width="30%" @close="closeDialog">
<div style="margin-bottom: 10px;display: flex;align-items: center;"> <avue-form v-model="obj" :option="option" ref="form"></avue-form>
<div style="display: flex;align-items: center;margin-right: 10px;">
<div style="width: 100px;">审核结果</div>
<el-radio v-model="auditStatus" :label="1">通过</el-radio>
<el-radio v-model="auditStatus" :label="2">不通过</el-radio>
</div>
<div style="display: flex;align-items: center;margin-right: 10px;">
<div style="width: 100px;">审核意见</div>
<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>
</div>
<el-table :data="auditData">
<el-table-column align="center" label="作业中心" prop="dsBatchPreservePlan.bsWorkCenter.wcName"></el-table-column>
<el-table-column align="center" label="作业槽" prop="dsBatchPreservePlan.batchNo"></el-table-column>
<el-table-column align="center" label="维护内容" prop="dsBatchPreservePlan.preserveContent"></el-table-column>
<el-table-column align="center" label="合格/不合格" prop="qualifiedTitle">
<!-- <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>
</template> -->
</el-table-column>
<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="2">不通过</el-radio>
</template>
</el-table-column>
<el-table-column align="center" label="审核意见" prop="auditDescribe">
<template #default="scope">
<el-input type="textarea" v-model="scope.row.auditDescribe"></el-input>
</template>
</el-table-column>
</el-table>
</el-dialog>
</template>
<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>
<script> <script>
// dsBatchReview
import { dsBatchReview } from '@/api/processManagement/bathRefineTask.js';
export default { export default {
props: { props: {
showAudit: { showDialog: {
type: Boolean, type: Boolean,
default: false default: false,
},
auditData:{
type:Object,
default:[]
}
}, },
data(){ auditData: {
return{ type: Array,
auditStatus:null, default: [],
auditDescribe:'', },
},
data() {
return {
obj: {},
openShow: false,
option: {
submitBtn: false,
emptyBtn: false,
column: [
{
label: '检查结果',
prop: 'isQualified',
span: 24,
type: 'radio',
dicData: [
{ label: '审批通过', value: 0 },
{ label: '审批不通过', value: 1 },
],
rules: [{ required: true, message: '请选择', trigger: 'blur' }],
},
{
label: '驳回原因',
prop: 'auditDescribe',
type: 'textarea',
span: 24,
},
],
},
};
},
mounted() {
this.openShow = this.showDialog;
console.log(9999, this.auditData);
},
methods: {
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 => {
this.$message({
type: 'success',
message: '操作成功!',
});
this.closeDialog();
});
} }
});
}, },
mounted(){ closeDialog() {
this.openShow = false;
this.$emit('closeDialog');
}, },
methods:{ },
auditValue(){ };
this.closeDialog()
},
handleSet(){
if(this.auditStatus == null){
this.$message.error('请先选择审核结果')
return
}
this.auditData.map(item =>{
item.auditStatus = this.auditStatus
item.auditDescribe = this.auditDescribe
})
},
closeDialog() {
this.$emit('closeDialog');
},
}
}
</script> </script>
<style lang="scss" scoped></style>
<style></style>

@ -0,0 +1,87 @@
<template>
<el-dialog
title="批量维护"
append-to-body
:modelValue="showMaintain"
width="80%"
@close="closeDialog"
>
<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>
</div>
<el-button type="primary" @click="handleSet">批量设置</el-button>
<!-- <el-button type="primary" @click="maintainValue">保存</el-button> -->
</div>
<el-table :data="maintainData">
<el-table-column align="center" label="作业中心" prop="wcName"></el-table-column>
<el-table-column align="center" label="作业槽" prop="batchNo"></el-table-column>
<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>
</template>
</el-table-column>
<el-table-column align="center" label="添加量/实测值" prop="actualValue">
<template #default="scope">
<el-input v-model="scope.row.actualValue"></el-input>
</template>
</el-table-column>
</el-table>
<template #footer>
<span class="dialog-footer">
<el-button @click="closeDialog"> </el-button>
<el-button type="primary" @click="submitForm"> </el-button>
</span>
</template>
</el-dialog>
</template>
<script>
import { dsBatchTask } from '@/api/processManagement/bathRefineTask.js';
export default {
props: {
showMaintain: {
type: Boolean,
default: false,
},
maintainData: {
type: Object,
default: [],
},
},
data() {
return {
isQualified: null,
};
},
mounted() {},
methods: {
closeDialog() {
this.$emit('closeDialog');
},
handleSet() {
if (this.isQualified == null) {
this.$message.error('请先选择检查结果');
return;
}
this.maintainData.map(item => {
item.isQualified = this.isQualified;
});
},
maintainValue() {
this.closeDialog();
},
//
submitForm(){
}
},
};
</script>
<style></style>

@ -1,70 +1,82 @@
<template> <template>
<el-dialog title="批量维护" append-to-body :modelValue="showMaintain" width="80%" @close="closeDialog"> <el-dialog title="维护" append-to-body :modelValue="openShow" width="30%" @close="closeDialog">
<div style="margin-bottom: 10px;display: flex;align-items: center;"> <avue-form v-model="obj" :option="option" ref="form"></avue-form>
<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>
</div>
<el-button type="primary" @click="handleSet">批量设置</el-button>
<el-button type="primary" @click="maintainValue">保存</el-button>
</div>
<el-table :data="maintainData">
<el-table-column align="center" label="作业中心" prop="bsWorkCenter.wcName"></el-table-column>
<el-table-column align="center" label="作业槽" prop="batchNo"></el-table-column>
<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>
</template>
</el-table-column>
<el-table-column align="center" label="添加量/实测值" prop="actualValue">
<template #default="scope">
<el-input v-model="scope.row.actualValue"></el-input>
</template>
</el-table-column>
</el-table>
</el-dialog>
</template>
<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>
<script> <script>
// dsBatchTask
import { dsBatchTask } from '@/api/processManagement/bathRefineTask.js';
export default { export default {
props: { props: {
showMaintain: { showDialog: {
type: Boolean, type: Boolean,
default: false default: false,
}, },
maintainData:{ maintainData: {
type:Object, type: Array,
default:[] default: [],
}
}, },
data(){ },
return{ data() {
isQualified:null, return {
obj: {},
openShow: false,
option: {
submitBtn: false,
emptyBtn: false,
column: [
{
label: '审批结果',
prop: 'auditStatus',
span: 24,
type: 'radio',
dicData: [
{ label: '合格', value: 0 },
{ label: '不合格', value: 1 },
],
rules: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
},
{
label: '实测值/添加量',
prop: 'actualValue',
span: 24,
labelWidth:120,
rules: [{ required: true, message: '请输入', trigger: 'blur' }],
},
],
},
};
},
mounted() {
this.openShow = this.showDialog;
},
methods: {
submit() {
this.$refs.form.validate((valid, done, msg) => {
if (valid) {
let ids = this.maintainData.map(item => item.id);
dsBatchTask({ ...this.obj, bptIdList: ids }).then(res => {
this.$message({
type: 'success',
message: '操作成功!',
});
this.closeDialog();
});
} }
});
}, },
mounted(){ closeDialog() {
this.openShow = false;
this.$emit('closeDialog');
}, },
methods:{ },
closeDialog() { };
this.$emit('closeDialog');
},
handleSet(){
if(this.isQualified == null){
this.$message.error('请先选择检查结果')
return
}
this.maintainData.map(item =>{
item.isQualified = this.isQualified
})
},
maintainValue(){
this.closeDialog()
}
}
}
</script> </script>
<style lang="scss" scoped></style>
<style></style>

@ -1,73 +1,97 @@
<template> <template>
<el-dialog title="审核" append-to-body :modelValue="openShow" width="30%" @close="closeDialog"> <el-dialog title="审核" append-to-body :modelValue="openShow" width="30%" @close="closeDialog">
<avue-form :option="option"></avue-form> <avue-form v-model="obj" :option="option" ref="form"></avue-form>
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
<el-button type="danger" @click="approveDialog = false">不通过</el-button> <el-button @click="closeDialog"> </el-button>
<el-button type="primary" @click="submitApprove">通过</el-button> <el-button type="primary" @click="submit"> </el-button>
</span> </span>
</template> </template>
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import { directorApproval, factoryApproval } from '@/api/processManagement/planClass.js';
export default { export default {
props: { props: {
showDialog: { showDialog: {
type: Boolean, type: Boolean,
default: false default: false,
},
}, },
data() { rowItem: {
return { type: Object,
openShow: false, default: {},
option: {
submitBtn: false,
emptyBtn: false,
column: [
{
label: '审批结果',
prop: 'input',
span: 24,
type: 'radio',
dicData: [
{ label: '审批通过', value: 0 },
{ label: '审批不通过', value: 1 },
],
rules: [
{ required: true, message: '请输入姓名', trigger: 'blur' }
]
},
{
label: '驳回原因',
prop: 'input2',
// type: 'select',
type:'textarea',
span: 24,
// dicData: [
// {
// label: '',
// value: '1',
// },
// {
// label: '',
// value: '2',
// }
// ]
}
]
}
}
}, },
mounted() { },
this.openShow = this.showDialog data() {
return {
obj: {},
openShow: false,
option: {
submitBtn: false,
emptyBtn: false,
column: [
{
label: '审批结果',
prop: 'isPass',
span: 24,
type: 'radio',
dicData: [
{ label: '审批通过', value: 1 },
{ label: '审批不通过', value: 2 },
],
rules: [{ required: true, message: '请选择', trigger: 'blur' }],
},
{
label: '驳回原因',
prop: 'approvalOpinions',
type: 'textarea',
span: 24,
},
],
},
};
},
mounted() {
this.openShow = this.showDialog;
},
methods: {
closeDialog() {
this.openShow = false;
this.$emit('closeDialog');
}, },
methods: { submit() {
closeDialog() { this.$refs.form.validate((valid, done, msg) => {
this.openShow = false if (valid) {
this.$emit('closeDialog'); //
if (this.rowItem.approvalStatus == '-1') {
directorApproval({...this.obj,id:this.rowItem.id}).then(res => {
this.$message({
type: 'success',
message: '操作成功!',
});
this.closeDialog();
});
}
//
if (this.rowItem.approvalStatus == '2') {
factoryApproval({...this.obj,id:this.rowItem.id}).then(res=>{
this.$message({
type: 'success',
message: '操作成功!',
});
this.closeDialog()
})
}
done();
} else {
console.log('error submit!!');
return false;
} }
} });
} },
},
};
</script> </script>
<style lang="scss" scoped></style> <style lang="scss" scoped></style>

@ -7,12 +7,12 @@
</el-tabs> </el-tabs>
<periodicalBatch v-if="tabPosition == 'bathInspection'"></periodicalBatch> <periodicalBatch v-if="tabPosition == 'bathInspection'"></periodicalBatch>
<periodicalBatch v-if="tabPosition == 'deviceInspection'"></periodicalBatch> <periodicalClassDevice v-if="tabPosition == 'deviceInspection'"></periodicalClassDevice>
</basic-container> </basic-container>
</template> </template>
<script> <script>
import periodicalClassDevice from './components/periodicalClassDevice.vue'; import periodicalClassDevice from './components/periodicalClassDeviceDialog.vue';
import periodicalBatch from './components/periodicalBatch.vue'; import periodicalBatch from './components/periodicalBatch.vue';
export default { export default {
components: { periodicalClassDevice, periodicalBatch }, components: { periodicalClassDevice, periodicalBatch },

@ -12,7 +12,6 @@
@row-save="rowSave" @row-save="rowSave"
@search-change="searchChange" @search-change="searchChange"
@search-reset="searchReset" @search-reset="searchReset"
@selection-change="selectionChange"
@current-change="currentChange" @current-change="currentChange"
@size-change="sizeChange" @size-change="sizeChange"
@refresh-change="refreshChange" @refresh-change="refreshChange"
@ -20,7 +19,7 @@
@row-del="rowDel" @row-del="rowDel"
> >
<template #menu="scope"> <template #menu="scope">
<el-button type="text" v-if="scope.row.approvalStatus == -1" @click="checkFn(scope.row)" <el-button type="text" v-if="scope.row.approvalStatus == -1||scope.row.approvalStatus == 2" @click="checkFn(scope.row)"
>审批</el-button >审批</el-button
> >
</template> </template>
@ -30,11 +29,12 @@
v-if="planCheckOpen" v-if="planCheckOpen"
:showDialog="planCheckOpen" :showDialog="planCheckOpen"
@closeDialog="closeDialog" @closeDialog="closeDialog"
:rowItem="rowItem"
></planCheckDialog> ></planCheckDialog>
</basic-container> </basic-container>
</template> </template>
<script> <script>
import { getList, add, remove, update } from '@/api/processManagement/planClass.js'; import { getList, add, remove, update,directorApproval,factoryApproval } from '@/api/processManagement/planClass.js';
import planCheckDialog from './components/planCheckDialog.vue'; import planCheckDialog from './components/planCheckDialog.vue';
export default { export default {
components: { components: {
@ -42,6 +42,7 @@ export default {
}, },
data() { data() {
return { return {
rowItem:{},
planCheckOpen: false, planCheckOpen: false,
loading: false, loading: false,
data: [], data: [],
@ -56,7 +57,6 @@ export default {
calcHeight: 32, calcHeight: 32,
rowKey: 'twlId', rowKey: 'twlId',
tip: false, tip: false,
size: 'medium',
simplePage: true, simplePage: true,
searchShow: true, searchShow: true,
searchMenuSpan: 6, searchMenuSpan: 6,
@ -200,16 +200,20 @@ export default {
dicData: [ dicData: [
{ {
value: -1, value: -1,
label: '发送审批', label: '室主任审批',
}, },
{ {
value: 0, value: 0,
label: '审批中', label: '审批中',
}, },
{ {
value: 1, value: 3,
label: '审批完毕', label: '审批完毕',
}, },
{
value: 2,
label: '厂长审批',
},
], ],
rules: [ rules: [
{ {
@ -243,11 +247,13 @@ export default {
}, },
mounted() {}, mounted() {},
methods: { methods: {
checkFn() { checkFn(row) {
this.planCheckOpen = true; this.planCheckOpen = true;
this.rowItem = row
}, },
closeDialog() { closeDialog() {
this.planCheckOpen = false; this.planCheckOpen = false;
this.onLoad(this.page)
}, },
rowDel(row) { rowDel(row) {
this.$confirm('确定将选择数据删除?', { this.$confirm('确定将选择数据删除?', {
@ -326,7 +332,6 @@ export default {
this.data = res.data.data.records; this.data = res.data.data.records;
this.loading = false; this.loading = false;
this.page.total = res.data.data.total; this.page.total = res.data.data.total;
this.selectionClear();
}); });
}, },
}, },

@ -151,7 +151,7 @@ export default {
}, },
{ {
label: '工艺员', label: '工艺员',
prop: 'name', prop: 'proMan',
search: false, search: false,
sortable: true, sortable: true,
filter: true, filter: true,
@ -178,7 +178,7 @@ export default {
}, },
{ {
label: '状态', label: '状态',
prop: 'tbStatusTitle', prop: 'tbStatus',
search: true, search: true,
sortable: true, sortable: true,
filter: true, filter: true,

@ -0,0 +1,175 @@
<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>
<script>
export default {
components: {},
data() {
return {
form: {},
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',
menu: false,
column: [
{
label: '班组',
prop: '班组',
search: true,
sortable: true,
span: 12,
hide:true,
},
{
label: '设备',
prop: '设备',
search: true,
sortable: true,
span: 12,
hide:true,
},
{
label: '生成订单项数',
prop: 'partCode',
search: false,
sortable: true,
span: 12,
},
{
label: 'MES排产项数',
prop: '自动排产率',
search: false,
sortable: true,
span: 12,
},
{
label: '自动排产率',
prop: '自动排产率',
search: false,
sortable: true,
span: 12,
},
{
label: '排产时间',
prop: 'cycledate',
search: true,
sortable: true,
span: 12,
hide:true,
type: "date",
searchRange: true,
startPlaceholder: "开始时间",
endPlaceholder: "结束时间",
},
],
},
data: [],
};
},
methods: {
searchReset() {
this.query = {};
this.onLoad(this.page);
},
searchChange(params, done) {
this.query = params;
this.page.currentPage = 1;
this.onLoad(this.page, params);
done();
},
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;
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>
Loading…
Cancel
Save