工艺测试问题修改

dev-scheduling
zhangdi 3 weeks ago
parent 56d1525361
commit 71bef1df67
  1. 8
      src/api/processManagement/basicProcesses.js
  2. 14
      src/views/processManagement/basicProcesses.vue
  3. 106
      src/views/processManagement/components/addBasicProcessesDialog.vue
  4. 132
      src/views/processManagement/components/inPlantMaintenance.vue
  5. 180
      src/views/processManagement/components/inPlantProcessHandle.vue
  6. 4
      src/views/processManagement/components/processMainte/dsPartBasicInfo.vue
  7. 3
      src/views/processManagement/inPlantProcess.vue

@ -22,6 +22,14 @@ export const add = row => {
}); });
}; };
export const update = row => {
return request({
url: '/blade-desk/bsProcessSet/update',
method: 'post',
data: row,
});
};
// 详情 // 详情
export const getDetail = id => { export const getDetail = id => {

@ -18,8 +18,8 @@
<el-button type="primary" @click="addFn">新增</el-button> <el-button type="primary" @click="addFn">新增</el-button>
</template> </template>
<template #menu="scope"> <template #menu="scope">
<!-- <el-button type="text" @click="editFn(scope.row)"> 编辑</el-button> -->
<el-button type="text" @click="detailsFn(scope.row)"> 详情</el-button> <el-button type="text" @click="detailsFn(scope.row)"> 详情</el-button>
<el-button type="text" @click="editFn(scope.row)"> 修改</el-button>
<!-- 是否展示 --> <!-- 是否展示 -->
<el-button type="text" v-if="scope.row.isSpecial == 1" @click="setCrew(scope.row)"> <el-button type="text" v-if="scope.row.isSpecial == 1" @click="setCrew(scope.row)">
设置班组</el-button 设置班组</el-button
@ -79,6 +79,7 @@
@closeDialog="closeDialog" @closeDialog="closeDialog"
:title="openTitle" :title="openTitle"
:id="rowId" :id="rowId"
:rowData="rowData"
></addBasicProcessesDialog> ></addBasicProcessesDialog>
<!-- 导入 --> <!-- 导入 -->
@ -143,7 +144,7 @@ export default {
editBtnIcon: ' ', editBtnIcon: ' ',
viewBtnText: '详情', viewBtnText: '详情',
// labelWidth: 120, // labelWidth: 120,
menuWidth: 140, menuWidth: 160,
dialogWidth: 840, dialogWidth: 840,
dialogClickModal: false, dialogClickModal: false,
searchEnter: true, searchEnter: true,
@ -335,6 +336,7 @@ export default {
isAddOpen: false, isAddOpen: false,
openTitle: '', openTitle: '',
rowId: '', rowId: '',
rowData:{}
}; };
}, },
@ -349,6 +351,14 @@ export default {
this.isAddOpen = true; this.isAddOpen = true;
this.openTitle = '新增'; this.openTitle = '新增';
}, },
//
editFn(row) {
this.isAddOpen = true;
this.openTitle = '修改';
row.isCheckout = row.isCheckout + '';
this.rowId = row.id;
},
closeDialog(isRefresh) { closeDialog(isRefresh) {
this.isAddOpen = false; this.isAddOpen = false;
this.isShowImport = false; this.isShowImport = false;

@ -1,11 +1,5 @@
<template> <template>
<el-dialog <el-dialog :title="title" append-to-body :modelValue="openShow" width="40%" @close="closeDialog">
:title="title"
append-to-body
:modelValue="openShow"
width="40%"
@close="closeDialog"
>
<el-form <el-form
:model="ruleForm" :model="ruleForm"
:rules="rules" :rules="rules"
@ -44,18 +38,18 @@
</el-col> </el-col>
<el-col :span="12"> <el-col :span="12">
<el-form-item label="检验工序:" prop="isCheckout"> <el-form-item label="检验工序:" prop="isCheckout">
<el-select v-model="ruleForm.isCheckout" placeholder="请选择" clearable filterable :disabled="disableFrom"> <el-select
<el-option v-model="ruleForm.isCheckout"
label="是" placeholder="请选择"
value="1"> clearable
</el-option> filterable
<el-option :disabled="disableFrom"
label="否" >
value="0"> <el-option label="是" value="1"> </el-option>
</el-option> <el-option label="否" value="0"> </el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
<el-row :gutter="24"> <el-row :gutter="24">
<el-col :span="6"> <el-col :span="6">
@ -170,7 +164,7 @@
</el-dialog> </el-dialog>
</template> </template>
<script> <script>
import { add, getDetail } from "@/api/processManagement/basicProcesses"; import { add, getDetail, update } from '@/api/processManagement/basicProcesses';
export default { export default {
props: { props: {
showDialog: { showDialog: {
@ -183,11 +177,15 @@ export default {
}, },
title: { title: {
type: String, type: String,
default: "", default: '',
}, },
id: { id: {
type: String, type: String,
default: "", default: '',
},
rowData: {
type: Object,
default: () => ({}),
}, },
}, },
data() { data() {
@ -199,50 +197,68 @@ export default {
cycle: 0, cycle: 0,
}, },
rules: { rules: {
code: [{ required: true, message: "请输入", trigger: "blur" }], code: [{ required: true, message: '请输入', trigger: 'blur' }],
name: [{ required: true, message: "请输入", trigger: "blur" }], name: [{ required: true, message: '请输入', trigger: 'blur' }],
cycle: [{ required: true, message: "请输入", trigger: "blur" }], cycle: [{ required: true, message: '请输入', trigger: 'blur' }],
isCheckout: [{ required: true, message: "请选择", trigger: "change" }] isCheckout: [{ required: true, message: '请选择', trigger: 'change' }],
}, },
}; };
}, },
mounted() { mounted() {
this.openShow = this.showDialog; this.openShow = this.showDialog;
this.disableFrom = this.title == "新增" ? false : true; this.disableFrom = this.title == '详情' ? true : false;
if (this.title == "详情") { if (this.title == '详情' || this.title == '修改') {
getDetail(this.id).then((res) => { getDetail(this.id).then(res => {
this.ruleForm = res.data.data; this.ruleForm = res.data.data;
this.ruleForm.isCheckout = this.ruleForm.isCheckout == -1 ? '' : this.ruleForm.isCheckout+'' this.ruleForm.isCheckout =
this.ruleForm.isCheckout == -1 ? '' : this.ruleForm.isCheckout + '';
}); });
} }
}, },
methods: { methods: {
closeDialog() { closeDialog() {
this.openShow = false; this.openShow = false;
this.$emit("closeDialog"); this.$emit('closeDialog');
}, },
detailsInfo() {}, detailsInfo() {},
submit() { submit() {
this.$refs.ruleForm.validate((valid) => { this.$refs.ruleForm.validate(valid => {
if (valid) { if (valid) {
console.log(9999, this.ruleForm); console.log(9999, this.ruleForm);
add(this.ruleForm).then( if (this.title == '新增') {
(res) => { add(this.ruleForm).then(
// res => {
this.$message({ //
type: "success", this.$message({
message: "操作成功!", type: 'success',
}); message: '操作成功!',
// });
this.$emit("closeDialog", true); //
}, this.$emit('closeDialog', true);
(error) => { },
// loading(); error => {
} // loading();
); }
);
} else {
update(this.ruleForm).then(
res => {
//
this.$message({
type: 'success',
message: '操作成功!',
});
//
this.$emit('closeDialog', true);
},
error => {
// loading();
}
);
}
} else { } else {
console.log("error submit!!"); console.log('error submit!!');
return false; return false;
} }
}); });

@ -19,7 +19,7 @@
@row-update="rowUpdate" @row-update="rowUpdate"
> >
<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>
</template> </template>
<template #menu-right> <template #menu-right>
@ -27,7 +27,12 @@
</template> </template>
<template #menu="scope"> <template #menu="scope">
<el-button type="text" @click="handleEdit(scope.row)">修改 </el-button> <el-button type="text" @click="handleEdit(scope.row)">修改 </el-button>
</template> </template>
<template #fileUrls="scope">
<el-button v-if="scope.row.fileUrl != null&&scope.row.fileUrl != ''" type="text" @click="uploadUrl(scope.row)" >
下载</el-button
>
</template>
</avue-crud> </avue-crud>
<!-- 导入 --> <!-- 导入 -->
<basic-import <basic-import
@ -41,8 +46,14 @@
></basic-import> ></basic-import>
<!-- 新增 --> <!-- 新增 -->
<addinPlantMaintenanceDialog v-if="showAddDialog" :showDialog="showAddDialog" :moldAddMore="moldAddMore" @closeDialog="closeAddDialog" :itemData="itemData" :title="title"></addinPlantMaintenanceDialog> <addinPlantMaintenanceDialog
v-if="showAddDialog"
:showDialog="showAddDialog"
:moldAddMore="moldAddMore"
@closeDialog="closeAddDialog"
:itemData="itemData"
:title="title"
></addinPlantMaintenanceDialog>
</div> </div>
</template> </template>
<script> <script>
@ -58,12 +69,12 @@ import addinPlantMaintenanceDialog from './addinPlantMaintenanceDialog.vue';
export default { export default {
components: { components: {
basicImport, basicImport,
addinPlantMaintenanceDialog addinPlantMaintenanceDialog,
}, },
data() { data() {
return { return {
showAddDialog: false, showAddDialog: false,
moldAddMore:true, moldAddMore: true,
isShowImport: false, isShowImport: false,
data: [], data: [],
selectionList: [], selectionList: [],
@ -75,7 +86,7 @@ export default {
searchShow: true, searchShow: true,
searchMenuSpan: 12, searchMenuSpan: 12,
searchIcon: true, searchIcon: true,
searchIndex: 3, searchIndex: 3,
tree: false, tree: false,
border: true, border: true,
index: true, index: true,
@ -142,7 +153,7 @@ export default {
{ {
label: '产线', label: '产线',
prop: 'equipmentId', prop: 'equipmentId',
searchLabelWidth:50, searchLabelWidth: 50,
search: true, search: true,
sortable: true, sortable: true,
filter: true, filter: true,
@ -152,19 +163,18 @@ export default {
type: 'select', type: 'select',
filterable: true, filterable: true,
clearable: true, clearable: true,
hide:true, hide: true,
dicUrl: `/blade-desk/equipment/page?used=1&workstationId={{wcId}}&size=99999`, dicUrl: `/blade-desk/equipment/page?used=1&workstationId={{wcId}}&size=99999`,
props: { props: {
label: 'deviceName', label: 'deviceName',
value: 'id', value: 'id',
res: 'data.records', res: 'data.records',
}, },
change: (val) =>{ change: val => {
this.equipmentChange(val.item,'equipmentId') this.equipmentChange(val.item, 'equipmentId');
}, },
}, },
{ {
label: '产线', label: '产线',
prop: 'equipmentName', prop: 'equipmentName',
search: false, search: false,
@ -175,10 +185,8 @@ export default {
align: 'left', align: 'left',
filterable: true, filterable: true,
clearable: true, clearable: true,
addDisplay:false, addDisplay: false,
editDisplay:false, editDisplay: false,
}, },
{ {
label: '确认名称', label: '确认名称',
@ -278,6 +286,36 @@ export default {
}, },
], ],
}, },
{
label: '状态',
prop: 'syncStatu',
search: false,
sortable: true,
filter: true,
span: 12,
headerAlign: 'center',
align: 'left',
type: 'select',
dicData: [
{
label: '未同步',
value: '0',
},
{
label: '已同步',
value: '1',
},
],
},
{
label: '文件',
prop: 'fileUrls',
search: false,
sortable: true,
span: 12,
headerAlign: 'center',
align: 'left',
},
{ {
label: '备注', label: '备注',
prop: 'remarks', prop: 'remarks',
@ -298,34 +336,37 @@ export default {
}, },
query: {}, query: {},
loading: false, loading: false,
itemData:[], itemData: [],
title:'新增' title: '新增',
}; };
}, },
methods: { methods: {
handleEdit(row){ uploadUrl(row) {
this.title = '修改' window.open(row.fileUrl);
this.showAddDialog = true },
this.moldAddMore = false handleEdit(row) {
row.proMan=row.proMan.toString() this.title = '修改';
row.equipmentId=row.equipmentId.toString() this.showAddDialog = true;
this.itemData = [row] this.moldAddMore = false;
row.proMan = row.proMan.toString();
row.equipmentId = row.equipmentId.toString();
this.itemData = [row];
},
handleAdd() {
this.title = '新增';
this.showAddDialog = true;
this.moldAddMore = true;
}, },
handleAdd(){ closeAddDialog() {
this.title = '新增' this.showAddDialog = false;
this.showAddDialog = true this.isShowImport = false;
this.moldAddMore = true this.onLoad(this.page, this.query);
},
closeAddDialog(){
this.showAddDialog = false
this.isShowImport = false
this.onLoad(this.page,this.query)
}, },
equipmentChange(val,type){ equipmentChange(val, type) {
console.log(val,'val') console.log(val, 'val');
if(val&&type=='equipmentId'){ if (val && type == 'equipmentId') {
this.form.equipmentName = val.deviceName this.form.equipmentName = val.deviceName;
this.form.equipmentCode = val.deviceCode this.form.equipmentCode = val.deviceCode;
} }
}, },
// //
@ -345,7 +386,7 @@ export default {
let ids = this.selectionList.map(item => item.id); let ids = this.selectionList.map(item => item.id);
remove(ids.join(',')).then(() => { remove(ids.join(',')).then(() => {
this.$message.success('删除成功'); this.$message.success('删除成功');
this.onLoad(this.page,this.query); this.onLoad(this.page, this.query);
}); });
}); });
}, },
@ -360,7 +401,7 @@ export default {
// //
const data = res.data.data; const data = res.data.data;
row.id = data.id; row.id = data.id;
this.onLoad(this.page,this.query); this.onLoad(this.page, this.query);
this.$message({ this.$message({
type: 'success', type: 'success',
message: '操作成功!', message: '操作成功!',
@ -383,7 +424,7 @@ export default {
message: '操作成功!', message: '操作成功!',
}); });
// //
this.onLoad(this.page,this.query); this.onLoad(this.page, this.query);
done(); done();
}, },
error => { error => {
@ -408,15 +449,14 @@ export default {
}); });
// //
done(); done();
this.onLoad(this.page,this.query); this.onLoad(this.page, this.query);
}); });
}, },
// //
searchReset() { searchReset() {
this.query = {}; this.query = {};
this.parentId = 0; this.parentId = 0;
this.onLoad(this.page,this.query); this.onLoad(this.page, this.query);
}, },
// //
searchChange(params, done) { searchChange(params, done) {

@ -1,56 +1,41 @@
<template> <template>
<el-dialog title="处理" append-to-body :modelValue="openShow" width="70%" @close="closeDialog"> <el-dialog title="处理" append-to-body :modelValue="openShow" width="35%" @close="closeDialog">
<!-- 单个 Form 包裹整个表格 --> <!-- 单个 Form 包裹整个表格 -->
<el-form ref="tableForm" :model="form" :rules="formRules" label-width="0px"> <avue-form
<el-form-item label="备注:" label-width="60px"> ref="form"
<el-input v-model="form.fillMemo" type="textarea" :rows="3" style="width:50%" /> :option="fileOption"
v-model="fileForm"
:upload-after="uploadAfter"
:upload-exceed="uploadExceed"
:upload-delete="uploadDelete"
>
</avue-form>
<!-- <el-form ref="tableForm" :model="form" :rules="formRules" label-width="0px">
<el-form-item label="上传文件:" label-width="100px" prop="fileUrl">
<el-upload
class="upload-demo"
action="/api/blade-resource/oss/endpoint/put-file-attach"
:on-success="handleSuccess"
:on-remove="handleRemove"
multiple
:limit="1"
:on-exceed="handleExceed"
:file-list="fileList"
accept=".rar,.zip,.doc,.docx,.pdf,.jpg"
style="width: 100%"
>
<div>
<el-button type="primary">点击上传</el-button>
<div slot="tip" class="el-upload__tip">支持扩展名 .doc .docx .pdf .jpg</div>
</div>
</el-upload>
</el-form-item> </el-form-item>
<div style="margin-bottom: 12px" v-if="moldAddMore"> <el-form-item label="描述:" label-width="60px">
<el-button type="primary" @click="addTable">插入一行</el-button> <el-input v-model="form.fillMemo" type="textarea" :rows="3" style="width: 100%" />
<el-button type="danger" @click="delTable">删除选中行</el-button> </el-form-item>
</div>
<!-- 全局错误提示 -->
<div v-if="formError" class="error-message" style="color: #f56c6c; margin-bottom: 10px"> </el-form> -->
{{ 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="事项">
<template #header>
<span><i style="color: red">*</i>事项</span>
</template>
<template #default="scope">
<!-- prop 格式数组名[索引].字段名 -->
<el-form-item :prop="`tableData[${scope.$index}].matter`" :rules="formRules.matter">
<el-input
v-model="scope.row.matter"
placeholder="请输入"
style="width: 100%"
></el-input>
</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}].process`" :rules="formRules.process">
<el-input
v-model="scope.row.process"
placeholder="请输入"
style="width: 100%"
></el-input>
</el-form-item>
</template>
</el-table-column>
</el-table>
</el-form>
<template #footer> <template #footer>
<span class="dialog-footer"> <span class="dialog-footer">
@ -74,6 +59,7 @@ export default {
}, },
data() { data() {
return { return {
fileList: [], //
openShow: false, openShow: false,
wcData: [], wcData: [],
formError: '', // formError: '', //
@ -85,6 +71,7 @@ export default {
// //
formRules: { formRules: {
fileUrl: [{ required: true, message: '请上传文件', trigger: ['change', 'submit'] }],
// 1 // 1
tableData: [ tableData: [
{ {
@ -111,6 +98,42 @@ export default {
// preserveContent // preserveContent
process: [{ required: true, message: '请输入', trigger: ['blur', 'submit'] }], process: [{ required: true, message: '请输入', trigger: ['blur', 'submit'] }],
}, },
attachLink: '',
fileForm: {},
fileOption: {
submitBtn: false,
emptyBtn: false,
column: [
{
label: '资料上传',
prop: 'excelFile',
type: 'upload',
// drag: true,
loadText: '附件上传中,请稍等',
span: 24,
limit: 1,
fileSize: 10000,
propsHttp: {
res: "data",
},
tip: '不能上传 附件,且不超过 10M',
action: '/api/blade-resource/oss/endpoint/put-file-attach',
rules: [
{
required: true,
message: '请上传文件',
trigger: 'blur',
},
],
},
{
label: '描述:',
prop: 'fillMemo',
type: 'textarea',
span: 24,
},
],
},
}; };
}, },
mounted() { mounted() {
@ -123,6 +146,17 @@ export default {
} }
}, },
methods: { methods: {
uploadExceed(limit, files, fileList, column) {
this.$message.error('最多只能上传一个文件');
},
uploadAfter(res, done, loading, column) {
this.attachLink = res.link;
this.fileForm.excelFile = [res.link];
done();
},
uploadDelete(file, column) {
// this.fileForm.excelFile = [];
},
selectChange(list, row) { selectChange(list, row) {
row._select = !row._select; row._select = !row._select;
}, },
@ -152,51 +186,23 @@ export default {
// //
submitForm() { submitForm() {
this.formError = ''; console.log(this.fileForm, this.attachLink, 'fileForm');
this.$refs.form.validate((valid, done, msg) => {
// Form if (valid) {
this.$refs.tableForm.validate(async (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 {
let query = { let query = {
fillingDetailList: submitData,
tbId: this.rowData.id, tbId: this.rowData.id,
deleteIds: [], fileUrl: this.attachLink,
fillMemo: '', fillMemo: this.fileForm.fillMemo,
}; };
submitBatchData(query).then(res => { submitBatchData(query).then(res => {
this.$message.success('提交成功'); this.$message.success('提交成功');
this.closeDialog(); this.closeDialog();
this.$emit('submitSuccess', submitData); this.$emit('submitSuccess', submitData);
}); });
done();
// } else {
// this.$message.success(''); console.log('error submit!!');
// this.closeDialog(); return false;
// this.$emit('submitSuccess', submitData);
} catch (err) {
this.$message.error(err);
// console.error('', err);
} }
}); });
}, },

@ -107,7 +107,7 @@
<el-col :span="6"> <el-col :span="6">
<el-form-item label="镀层厚度2:" prop="plateThickness"> <el-form-item label="镀层厚度2:" prop="plateThickness">
<el-input v-model="formData.plateThickness" placeholder="请输入" /> <el-input v-model="formData.plateThicknessTwo" placeholder="请输入" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@ -932,6 +932,7 @@ export default {
if (this.formData.plateCode || this.formData.plateThickness) { if (this.formData.plateCode || this.formData.plateThickness) {
if (!this.formData.plateGoodsCode) { if (!this.formData.plateGoodsCode) {
isReturn = true; isReturn = true;
this.submitLoading = false
} }
} }
if (isReturn && this.notSinTer) { if (isReturn && this.notSinTer) {
@ -944,6 +945,7 @@ export default {
this.formData.tsbNum === null && this.formData.tsbNum === null &&
this.formData.tjtNum === null this.formData.tjtNum === null
) { ) {
this.submitLoading = false; this.submitLoading = false;
return this.$message.warning('一级路线包含涂色,请填写涂色数据'); return this.$message.warning('一级路线包含涂色,请填写涂色数据');
} }

@ -164,6 +164,9 @@ export default {
sortable: true, sortable: true,
filter: true, filter: true,
span: 12, span: 12,
type: 'date',
format: 'YYYY-MM-DD',
valueFormat: 'YYYY-MM-DD',
headerAlign: 'center', headerAlign: 'center',
align: 'center', align: 'center',
width: 150, width: 150,

Loading…
Cancel
Save