工艺管理相关代码提交

dev-scheduling
zhangdi 8 hours 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 => {
return request({
url: '/blade-desk/dsBatchPreserveTask/update',
url: '/blade-desk/dsBatchPreserveTask/batchMaintain',
method: 'post',
data: row,
});
@ -24,7 +24,7 @@ export const dsBatchTask = row => {
// 批量审核
export const dsBatchReview = row => {
return request({
url: '/blade-desk/dsBatchPreserveTask/update',
url: '/blade-desk/dsBatchPreserveTask/batchApproval',
method: 'post',
data: row,
});

@ -42,4 +42,21 @@ export const remove = 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,
},
},
{
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>
<el-dialog title="审核" append-to-body :modelValue="openShow" width="30%" @close="closeDialog">
<avue-form :option="option"></avue-form>
<el-dialog title="审核" append-to-body :modelValue="openShow" width="30%" @close="closeDialog">
<avue-form :option="option"></avue-form>
<template #footer>
<span class="dialog-footer">
<el-button type="danger" @click="approveDialog = false">不通过</el-button>
<el-button type="primary" @click="submitApprove">通过</el-button>
</span>
</template>
</el-dialog>
<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>
export default {
props: {
showDialog: {
type: Boolean,
default: false
},
props: {
showDialog: {
type: Boolean,
default: false,
},
data() {
return {
openShow: false,
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',
// }
// ]
}
]
}
}
},
data() {
return {
openShow: false,
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;
},
methods: {
closeDialog() {
this.openShow = false;
this.$emit('closeDialog');
},
mounted() {
this.openShow = this.showDialog
},
methods: {
closeDialog() {
this.openShow = false
this.$emit('closeDialog');
}
}
}
},
};
</script>
<style lang="scss" scoped></style>
<style lang="scss" scoped></style>

@ -20,95 +20,11 @@
>
<template #menu-left>
<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>
</template>
</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
:show-maintain="showMaintain"
@ -121,7 +37,7 @@
</template>
<script>
import addAccumulateClass from './components/addAccumulateClass.vue';
import addAccumulateClass from './components/addAccumulateClassDialog.vue';
import maintainDialog from './components/maintainDialog.vue';
import { getList, add, remove, update } from '@/api/processManagement/planClass.js';
@ -259,7 +175,6 @@ export default {
calcHeight: 32,
rowKey: 'keyValue',
tip: false,
size: 'medium',
simplePage: true,
searchShow: true,
searchMenuSpan: 12,
@ -604,7 +519,6 @@ export default {
this.data = res.data.data.records;
this.loading = false;
this.page.total = res.data.data.total;
this.selectionClear();
});
},
},

@ -9,6 +9,7 @@
v-model:page="page"
ref="crud"
@row-update="rowUpdate"
@row-del="rowDel"
@row-save="rowSave"
@search-change="searchChange"
@search-reset="searchReset"
@ -22,80 +23,29 @@
<el-button type="primary" @click="handleAdd">新增</el-button>
</template>
<template #menu="scope">
<el-button type="text" @click="editRow(scope.row)">修改</el-button>
<el-button type="text" @click="deleteRow(scope.row)">删除</el-button>
</template>
<template #menu="scope"> </template>
</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>
<el-button plain type="danger" @click="remove">删除选择行</el-button>
</div>
<el-table :data="tableData" @select="selectChange">
<el-table-column type="selection"></el-table-column>
<el-table-column align="center" label="作业中心" prop="wcId">
<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>
<!-- 新增 -->
<addQuantityDialog
v-if="showDialog"
:showDialog="showDialog"
@closeDialog="closeDialog"
:moldAddMore="moldAddMore"
></addQuantityDialog>
</basic-container>
</template>
<script>
import { getList, add, remove, update } from '@/api/processManagement/addQuantity.js';
import addQuantityDialog from './components/addQuantityDialog.vue';
export default {
components: { addQuantityDialog },
data() {
return {
moldAddMore:false,
query: {},
loading: false,
title: '新增',
@ -215,7 +165,6 @@ export default {
calcHeight: 32,
rowKey: 'keyValue',
tip: false,
size: 'medium',
simplePage: true,
searchShow: true,
searchMenuSpan: 6,
@ -226,9 +175,9 @@ export default {
index: true,
selection: false,
viewBtn: false,
delBtn: false,
delBtn: true,
addBtn: false,
editBtn: false,
editBtn: true,
editBtnText: '修改',
addBtnIcon: ' ',
viewBtnIcon: ' ',
@ -308,7 +257,11 @@ export default {
headerAlign: 'center',
align: 'center',
type: 'date',
format: 'YYYY-MM-DD HH:mm:ss',
valueFormat: 'YYYY-MM-DD HH:mm:ss',
// display: false,
searchRange: true,
searchLabelWidth: 80,
startPlaceholder: '开始时间',
endPlaceholder: '结束时间',
@ -323,19 +276,10 @@ export default {
this.title = '新增';
this.tableData = [];
this.showDialog = true;
this.moldAddMore=true
},
editRow(row) {
this.tableData = [];
this.tableData.push(row);
this.title = '修改';
this.showDialog = true;
},
deleteRow(row) {
this.$confirm('确定将选择数据删除?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {});
closeDialog() {
this.showDialog = false;
},
insertEvent() {
const record = { bsWorkCenter: { wcId: '' }, _select: false };
@ -344,40 +288,52 @@ export default {
selectChange(list, row) {
row._select = !row._select;
},
//
remove() {
let arr = this.tableData.filter(item => item._select);
if (arr.length != 0) {
this.$confirm('确定将选择数据删除?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
}).then(() => {
if (this.rowId) {
let deleteData = this.tableData.filter(item => item._select);
this.deleteProcessArr = deleteData.filter(item => item.tidId);
}
let deleteArr = this.tableData.filter(item => !item._select);
this.tableData = deleteArr;
rowDel(row) {
this.$confirm('确定将选择数据删除?', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
return remove(row.id);
})
.then(() => {
this.onLoad(this.page);
this.$message({
type: 'success',
message: '操作成功!',
});
});
} 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() {
this.showDialog = false;
console.log(55555,this.tableData);
},
searchReset() {
this.query = {};
this.onLoad(this.page);
},
searchChange(params, done) {
// this.query = params;
// this.page.currentPage = 1;
// this.onLoad(this.page, params);
this.query = params;
this.page.currentPage = 1;
this.onLoad(this.page, params);
done();
},
currentChange(currentPage) {
@ -395,7 +351,6 @@ export default {
this.data = res.data.data.records;
this.loading = false;
this.page.total = res.data.data.total;
this.selectionClear();
});
},
},

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

@ -27,18 +27,16 @@
<span><i style="color: red">*</i>作业中心</span>
</template>
<template #default="scope">
<el-form-item
:prop="`tableData[${scope.$index}].wcId`"
:rules="formRules.wcId"
></el-form-item>
<el-select v-model="scope.row.wcId">
<el-option
v-for="item in wcData"
:key="item.id"
:value="item.id"
:label="item.wcName"
></el-option>
</el-select>
<el-form-item :prop="`tableData[${scope.$index}].wcId`" :rules="formRules.wcId">
<el-select v-model="scope.row.wcId">
<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="作业槽" prop="batchNo">
@ -46,18 +44,16 @@
<span><i style="color: red">*</i>作业槽</span>
</template>
<template #default="scope">
<el-form-item
:prop="`tableData[${scope.$index}].batchNo`"
:rules="formRules.batchNo"
></el-form-item>
<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>
<el-form-item :prop="`tableData[${scope.$index}].batchNo`" :rules="formRules.batchNo">
<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>
</el-form-item>
</template>
</el-table-column>
<el-table-column align="center" label="规则类型" prop="ruleType">
@ -65,18 +61,16 @@
<span><i style="color: red">*</i>规则类型</span>
</template>
<template #default="scope">
<el-form-item
:prop="`tableData[${scope.$index}].ruleType`"
:rules="formRules.ruleType"
></el-form-item>
<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>
<el-form-item :prop="`tableData[${scope.$index}].ruleType`" :rules="formRules.ruleType">
<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>
</el-form-item>
</template>
</el-table-column>
<el-table-column align="center" label="维护内容" prop="preserveContent">
@ -87,8 +81,9 @@
<el-form-item
:prop="`tableData[${scope.$index}].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>
</el-table-column>
<el-table-column align="center" label="添加量" prop="addQuantity">
@ -99,8 +94,9 @@
<el-form-item
:prop="`tableData[${scope.$index}].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>
</el-table-column>
<el-table-column align="center" label="添加量倍数" prop="addQuantityMultiple">
@ -111,8 +107,9 @@
<el-form-item
:prop="`tableData[${scope.$index}].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>
</el-table-column>
<el-table-column align="center" label="累计触发值" prop="cumulativeTriggerValue">
@ -123,8 +120,9 @@
<el-form-item
:prop="`tableData[${scope.$index}].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>
</el-table-column>
<el-table-column align="center" label="累计初始值" prop="cumulativeInitialValue">
@ -135,19 +133,20 @@
<el-form-item
:prop="`tableData[${scope.$index}].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>
</el-table-column>
</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>
<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">
<!-- <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>
<el-dialog title="审核" append-to-body :modelValue="openShow" width="30%" @close="closeDialog">
<avue-form v-model="obj" :option="option" ref="form"></avue-form>
<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>
// dsBatchReview
import { dsBatchReview } from '@/api/processManagement/bathRefineTask.js';
export default {
props: {
showAudit: {
type: Boolean,
default: false
},
auditData:{
type:Object,
default:[]
}
props: {
showDialog: {
type: Boolean,
default: false,
},
data(){
return{
auditStatus:null,
auditDescribe:'',
auditData: {
type: Array,
default: [],
},
},
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>
<style></style>
<style lang="scss" scoped></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>
<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="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>
<el-dialog title="维护" append-to-body :modelValue="openShow" width="30%" @close="closeDialog">
<avue-form v-model="obj" :option="option" ref="form"></avue-form>
<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>
// dsBatchTask
import { dsBatchTask } from '@/api/processManagement/bathRefineTask.js';
export default {
props: {
showMaintain: {
type: Boolean,
default: false
},
maintainData:{
type:Object,
default:[]
}
props: {
showDialog: {
type: Boolean,
default: false,
},
maintainData: {
type: Array,
default: [],
},
data(){
return{
isQualified:null,
},
data() {
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>
<style></style>
<style lang="scss" scoped></style>

@ -1,73 +1,97 @@
<template>
<el-dialog title="审核" append-to-body :modelValue="openShow" width="30%" @close="closeDialog">
<avue-form :option="option"></avue-form>
<el-dialog title="审核" append-to-body :modelValue="openShow" width="30%" @close="closeDialog">
<avue-form v-model="obj" :option="option" ref="form"></avue-form>
<template #footer>
<span class="dialog-footer">
<el-button type="danger" @click="approveDialog = false">不通过</el-button>
<el-button type="primary" @click="submitApprove">通过</el-button>
</span>
</template>
</el-dialog>
<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>
import { directorApproval, factoryApproval } from '@/api/processManagement/planClass.js';
export default {
props: {
showDialog: {
type: Boolean,
default: false
},
props: {
showDialog: {
type: Boolean,
default: false,
},
data() {
return {
openShow: false,
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',
// }
// ]
}
]
}
}
rowItem: {
type: Object,
default: {},
},
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: {
closeDialog() {
this.openShow = false
this.$emit('closeDialog');
submit() {
this.$refs.form.validate((valid, done, msg) => {
if (valid) {
//
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>
<style lang="scss" scoped></style>
<style lang="scss" scoped></style>

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

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

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