代码提交

dev-scheduling
zhangdi 23 hours ago
parent 7280f8c9bb
commit 82b6843b27
  1. 94
      src/api/processManagement/taskProcessing.js
  2. 22
      src/api/productionSchedulingPlan/scheduling.js
  3. 16
      src/views/processManagement/components/assignDaialog.vue
  4. 226
      src/views/processManagement/components/processMainte/dsCraft.vue
  5. 511
      src/views/processManagement/components/processMainte/dsPartBasicInfo.vue
  6. 27
      src/views/processManagement/components/processMainte/dsPartIndex.vue
  7. 14
      src/views/processManagement/components/processMainte/partDetails.vue
  8. 753
      src/views/processManagement/components/processMainte/processPlanning.vue
  9. 1
      src/views/processManagement/procepssPlanning.vue
  10. 7
      src/views/processManagement/taskDispatch.vue
  11. 48
      src/views/processManagement/taskProcessing.vue

@ -56,13 +56,11 @@ export const getPartDetail = (taskId) => {
}
// 查询任务工艺编制详情 dsTasking/processAuthorized
export const getProcessAuthorized = (taskId) => {
export const getProcessAuthorized = (params) => {
return request({
url: '/blade-desk/dsTasking/processAuthorized',
method: 'get',
params: {
taskId
},
params: params,
});
}
@ -121,7 +119,93 @@ export const taskReception = data => {
return request({
url: '/blade-desk/dsTasking/taskReception',
method: 'post',
data
data:data
});
}
// 零件编制保存
export const authorizedAccomplish = data => {
return request({
url: '/blade-desk/dsTasking/authorizedAccomplish',
method: 'post',
data:data
});
}
// 工艺编制保存
export const authorizedAccomplish2 = data => {
return request({
url: '/blade-desk/dsTasking/authorizedAccomplish',
method: 'post',
data:data
});
}
// 工艺检验项目保存
export const saveProcessProjectSave = data => {
return request({
url: '/blade-desk/dsTasking/saveProcessProjectSave',
method: 'post',
data:data
});
}
// 工艺 尺寸量具保存
export const saveProcessMeasuringTool = data => {
return request({
url: '/blade-desk/dsTasking/saveProcessMeasuringTool',
method: 'post',
data:data
});
}
// 工装保存
export const saveProcessMoldTool = data => {
return request({
url: '/blade-desk/dsTasking/saveProcessMoldTool',
method: 'post',
data:data
});
}
// 工艺模板下拉数据
export const getModelList = (params) => {
return request({
url: '/blade-desk/dsProModel/getModelList',
method: 'get',
params: params,
});
}
// 工艺模板下拉数据导入
export const getModelDetailList = (params) => {
return request({
url: '/blade-desk/dsProDetail/getModelDetailList',
method: 'get',
params: params,
});
}
// 工序信息查询
export const getProcessSetList = (params) => {
return request({
url: '/blade-desk/bsProcessSet/getProcessSetList',
method: 'get',
params: params,
});
}
// 工艺能力查询
export const getCraftAbilityList = (params) => {
return request({
url: '/blade-desk/bsCraftAbility/getCraftAbilityList',
method: 'get',
params: params,
});
}

@ -23,10 +23,30 @@ export const getYieldOrderList = (current, size, params) => {
};
// 排产看板数据
export const schedulingCount = row => {
export const schedulingCount = params => {
return request({
url: '/blade-scheduling/workOrder/schedulingCount',
method: 'post',
params: params,
});
};
// 排产 获取班组
export const selectTeam = params => {
return request({
url: '/blade-scheduling/workOrder/selectTeam',
method: 'get',
params: params,
});
};
// 排产 获取设备
export const selectEquip = row => {
return request({
url: '/blade-scheduling/workOrder/selectEquip',
method: 'get',
data: row,
});
};

@ -83,17 +83,23 @@ export default {
this.updateRow.forEach((item, index) => {
arr.push(item.id);
});
let query = {
dtIdList: arr.join(','),
userId: this.$refs.from.form.userId,
// remarks:''
};
if (this.title == '转派') {
let query = {
craftMan: this.$refs.from.form.userId,
id: arr[0],
// remarks:''
};
taskRedeploy(query).then(res => {
this.$message.success('操作成功!');
this.cancel(true);
});
} else {
let query = {
dtIdList: arr.join(','),
userId: this.$refs.from.form.userId,
// remarks:''
};
setDispatch(query).then(res => {
this.$message.success('操作成功!');
this.cancel(true);

@ -1,47 +1,91 @@
<template>
<div style="width:100%;">
<el-form ref="form" :model="dsCraftMold" :rules="rules" class="vd-form" label-width="80px" size="mini" v-if="!disabled">
<div style="width: 100%">
<el-form
ref="form"
:model="dsCraftMold"
:rules="rules"
class="vd-form"
label-width="80px"
size="mini"
v-if="!disabled"
>
<el-row>
<el-col :span="8">
<!-- 级别 -->
<el-form-item :label="'工艺级别'" prop="rank">
<el-select v-model="dsCraftMold.rank" :placeholder="'请选择'">
<el-option v-for="item in rankList" :key="item.value" :label="item.label" :value="item.value" />
<el-option
v-for="item in rankList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<!-- 生产标识 -->
<el-form-item :label="'生产标识'" prop="qualityGrade">
<procedure-qua v-model="dsCraftMold.qualityGrade" :option="procedureQuaOption" multiple style="width:120px"
@change="procedureQuaChange" />
<procedure-qua
v-model="dsCraftMold.qualityGrade"
:option="procedureQuaOption"
multiple
style="width: 120px"
@change="procedureQuaChange"
/>
<el-select v-model="dsCraftMold.qualityGrade" :placeholder="'请选择'">
<el-option v-for="item in rankList" :key="item.value" :label="item.label" :value="item.value" />
<el-option
v-for="item in rankList"
:key="item.value"
:label="item.label"
:value="item.value"
/>
</el-select>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-tabs v-model="activeName" type="border-card">
<!-- 工艺维护 -->
<el-tab-pane :label="'工序'" name="1">
<avue-crud ref="crud" :option="dsProcessOption" :data="data" @row-update="rowUpdate" @row-save="rowSave"
@row-click="handleRowClick">
<template #menu-left="{ }">
<avue-crud
ref="crud"
:option="dsProcessOption"
:data="data"
@row-update="rowUpdate"
@row-save="rowSave"
@row-click="handleRowClick"
>
<template #menu-left="{}">
<el-button @click="addRow">删除选择行</el-button>
</template>
<template #menu-right="{ }">
<el-cascader v-model="cascaderValue" :props="{ expandTrigger: 'hover' }" :options="cascaderOptions"
style="width: 260px;height:30px; margin:0 12px;" class="proModel" @change="handleChange" />
<template #menu-right="{}">
<el-cascader
v-model="cascaderValue"
:props="{ expandTrigger: 'hover' }"
:options="cascaderOptions"
style="width: 260px; height: 30px; margin: 0 12px"
class="proModel"
@change="handleChange"
/>
<el-button @click="importTemplate">导入模板 </el-button>
</template>
<template #menu="{ row, index }">
<el-button text type="primary" :icon="row.$cellEdit ? 'el-icon-plus' : 'el-icon-edit'"
@click="rowCell(row, index)">
<el-button
text
type="primary"
:icon="row.$cellEdit ? 'el-icon-plus' : 'el-icon-edit'"
@click="rowCell(row, index)"
>
{{ row.$cellEdit ? '保存' : '修改' }}
</el-button>
<el-button v-if="row.$cellEdit" text icon="el-icon-cancel" type="primary" @click="rowCancel(row, index)">
<el-button
v-if="row.$cellEdit"
text
icon="el-icon-cancel"
type="primary"
@click="rowCancel(row, index)"
>
取消
</el-button>
</template>
@ -51,22 +95,24 @@
</div>
</template>
<script>
import { getProcessManagementAuthorized } from '@/api/processManagement/taskProcessing';
export default {
name: 'CraftIndex',
components: { },
components: {},
props: {
height: {
type: Number,
default: 600
default: 600,
},
partId: {
type: [Number, String],
default: null
default: null,
},
dialogType: {
type: String,
default: '',
}
},
},
data() {
// var checkCraftNo = (rule, value, callback) => {
@ -90,7 +136,7 @@ export default {
// });
// };
return {
disabled:false,
disabled: false,
craftWay: '',
dsCraftMold: {
qualityGrade: [],
@ -98,7 +144,7 @@ export default {
dsPart: { partId: this.partId },
priority: 3,
craftNo: 'C000000',
rank: 2
rank: 2,
},
procedureQuaOption: [],
activeName: '1',
@ -106,34 +152,34 @@ export default {
priorityList: [
{
label: '本次使用',
value: 1
value: 1,
},
{
label: '正式工艺',
value: 2
value: 2,
},
{
label: '临时工艺',
value: 3
}
value: 3,
},
],
rankList: [
{
label: '一级',
value: 1
value: 1,
},
{
label: '二级',
value: 2
value: 2,
},
{
label: '三级',
value: 3
}
value: 3,
},
],
rules: {
priority: [{ required: true }],
rank: [{ required: true }]
rank: [{ required: true }],
},
procedureQuaList: [],
dsProcessOption: {
@ -149,18 +195,17 @@ export default {
selection: true,
tip: false,
border: true,
searchLabelPosition:'left',
searchLabelPosition:'left',
searchGutter:24,
searchSpan:6,
menuAlign: 'left',
gridBtn:false,
searchMenuPosition:'right',
addBtnIcon: ' ',
searchLabelPosition: 'left',
searchGutter: 24,
searchSpan: 6,
menuAlign: 'left',
gridBtn: false,
searchMenuPosition: 'right',
addBtnIcon: ' ',
viewBtnIcon: ' ',
delBtnIcon: ' ',
editBtnIcon: ' ',
searchShowBtn:false,
searchShowBtn: false,
align: 'center',
column: [
{
@ -172,10 +217,11 @@ addBtnIcon: ' ',
{
required: true,
message: '请输入密码',
trigger: 'blur'
}
]
}, {
trigger: 'blur',
},
],
},
{
label: '工序',
prop: 'bsProcedureSet.ppsId',
bind: 'bsProcedureSet.ppsId',
@ -185,36 +231,37 @@ addBtnIcon: ' ',
{
required: true,
message: '请输入密码',
trigger: 'blur'
}
]
}, {
trigger: 'blur',
},
],
},
{
label: '工序代码',
prop: 'bsProcedureSet.ppsCode',
bind: "bsProcedureSet.ppsCode",
bind: 'bsProcedureSet.ppsCode',
cell: true,
span: 23,
rules: [
{
required: true,
message: '请输入密码',
trigger: 'blur'
}
]
trigger: 'blur',
},
],
},
{
label: '工艺能力',
prop: 'bsCraftAbility.caId',
bind: "bsCraftAbility.caId",
bind: 'bsCraftAbility.caId',
cell: true,
span: 23,
rules: [
{
required: true,
message: '请输入密码',
trigger: 'blur'
}
]
trigger: 'blur',
},
],
},
{
label: '工时定额',
@ -225,9 +272,9 @@ addBtnIcon: ' ',
{
required: true,
message: '请输入密码',
trigger: 'blur'
}
]
trigger: 'blur',
},
],
},
{
label: '工序描述',
@ -238,9 +285,9 @@ addBtnIcon: ' ',
{
required: true,
message: '请输入密码',
trigger: 'blur'
}
]
trigger: 'blur',
},
],
},
{
label: '主工序',
@ -251,20 +298,18 @@ addBtnIcon: ' ',
{
required: true,
message: '请输入密码',
trigger: 'blur'
}
]
trigger: 'blur',
},
],
},
]
}
],
},
};
},
watch: {
activeName: function () {
this.loadDetail();
}
},
},
mounted() {
this.$refs.form.resetFields();
@ -275,13 +320,29 @@ addBtnIcon: ' ',
dsPart: { partId: this.partId },
priority: 3,
craftNo: 'C000000',
rank: 2
rank: 2,
};
this.$refs.processRef.processList = [];
this.disabled = this.dialogType=='view'?true:false
this.disabled = this.dialogType == 'view' ? true : false;
this.getPartDetails()
},
methods: {
//
getPartDetails() {
getProcessManagementAuthorized(this.partId).then(res => {
this.formData = res.data.data.dsPartEntity;
this.data = res.data.data.dsPartEntities
if (res.data.data.dsPartEntity.isGlassCake === '0') {
this.formData.isGlassCake = false;
} else {
this.formData.isGlassCake = true;
}
});
},
refreshLoad() {
this.$refs.processRef.processList = [];
},
@ -289,7 +350,7 @@ addBtnIcon: ' ',
const list = this.procedureQuaList.concat(item);
this.procedureQuaList = this.$removedup(list, 'pqId');
this.dsCraftMold.quGrText = [];
idList.forEach((idItem) => {
idList.forEach(idItem => {
this.procedureQuaList.forEach((item, index) => {
if (item.pqId === idItem) {
this.dsCraftMold.quGrText.push(item.pqName);
@ -301,21 +362,19 @@ addBtnIcon: ' ',
if (!craftId) return;
this.craftId = craftId;
this.loadDetail();
this.$ajax.get('dsCraft/getByKey/' + craftId).then((res) => {
this.$ajax.get('dsCraft/getByKey/' + craftId).then(res => {
this.dsCraftMold = res.data;
if (!this.dsCraftMold.qualityGrade) {
this.dsCraftMold.qualityGrade = [];
this.procedureQuaOption = [];
} else {
this.dsCraftMold.qualityGrade = JSON.parse(
this.dsCraftMold.qualityGrade
);
this.dsCraftMold.qualityGrade = JSON.parse(this.dsCraftMold.qualityGrade);
this.dsCraftMold.quGrText = JSON.parse(this.dsCraftMold.quGrText);
this.procedureQuaOption = [];
this.dsCraftMold.quGrText.forEach((item, index) => {
this.procedureQuaOption.push({
pqId: this.dsCraftMold.qualityGrade[index],
pqName: item
pqName: item,
});
});
}
@ -330,12 +389,12 @@ addBtnIcon: ' ',
dsPart: { partId: this.partId },
priority: 3,
craftNo: 'C000000',
rank: 2
rank: 2,
};
this.$refs.processRef.processList = [];
},
validateForm() {
this.$refs.form.validate((valid) => {
this.$refs.form.validate(valid => {
if (valid) {
if (this.activeName === '1') {
this.$refs.processRef.submit();
@ -357,8 +416,8 @@ addBtnIcon: ' ',
if (isCall) {
this.loadData(craftId);
}
}
}
},
},
};
</script>
<style lang="scss" scoped>
@ -368,4 +427,5 @@ addBtnIcon: ' ',
// .vd-form /deep/ .el-form-item--mini.el-form-item,
// .el-form-item--small.el-form-item {
// margin-bottom: 4px;
// }</style>
// }
</style>

@ -4,8 +4,15 @@
<div slot="header" class="clearfix">
<span style="font-size: 20px">基本信息</span>
</div>
<el-form ref="testForm" :model="formData" :rules="rules" label-width="120px" label-position="right"
:validate-on-rule-change="false" class="vd-form-three">
<el-form
ref="testForm"
:model="formData"
:rules="rules"
label-width="120px"
label-position="right"
:validate-on-rule-change="false"
class="vd-form-three"
>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="零件号:" prop="partCode">
@ -24,8 +31,12 @@
</el-col>
<el-col :span="8" v-if="partType == '烧结'">
<el-form-item label="是否为玻璃饼:" prop="isGlassCake">
<el-switch v-model="formData.isGlassCake" :disabled="disabled" active-color="#13ce66"
inactive-color="#ff4949" />
<el-switch
v-model="formData.isGlassCake"
:disabled="disabled"
active-color="#13ce66"
inactive-color="#ff4949"
/>
</el-form-item>
</el-col>
<el-col :span="8" v-if="partType == '烧结'">
@ -71,7 +82,10 @@
<el-input v-model="formData.material" placeholder="请输入" />
</el-form-item>
</el-col>
<el-col :span="8" v-if="partType == '热表' || (partType == '烧结' && formData.isGlassCake)">
<el-col
:span="8"
v-if="partType == '热表' || (partType == '烧结' && formData.isGlassCake)"
>
<el-form-item label="物料编码:" prop="wuliaobianma">
<el-select v-model="value" placeholder="请选择" style="width: 250px">
<el-option label="物料一" value="1" />
@ -131,7 +145,6 @@
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="16">
<el-form-item label="工艺路线:" prop="craftWay">
@ -150,85 +163,161 @@
</el-col>
<el-col :span="8">
<el-form-item label="有效周期(天):" prop="expirationPeriod">
<el-date-picker v-model="formData.expirationPeriod" type="date" placeholder="请选择" format="YYYY-MM-DD"
style="width:250px" />
<el-input-number
:max="100000"
:min="0"
v-model="formData.expirationPeriod"
precision="0"
controls-position="right"
placeholder="请输入"
style="width: 250px"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="到期提醒(天):" prop="advanceRemind">
<el-input-number :max="100000" :min="0" v-model="formData.advanceRemind" precision="0"
controls-position="right" placeholder="请输入" style="width:250px" />
<el-input-number
:max="100000"
:min="0"
v-model="formData.advanceRemind"
precision="0"
controls-position="right"
placeholder="请输入"
style="width: 250px"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="8">
<el-form-item label="涂色标个数:" prop="tsbNum">
<el-input-number v-model="formData.tsbNum" :min="1" :max="10" controls-position="right"
placeholder="请输入" />
<el-input-number
v-model="formData.tsbNum"
:min="1"
:max="10"
controls-position="right"
placeholder="请输入"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="涂色带个数:" prop="tsdNum">
<el-input-number v-model="formData.tsdNum" :min="1" :max="10" controls-position="right"
placeholder="请输入" />
<el-input-number
v-model="formData.tsdNum"
:min="1"
:max="10"
controls-position="right"
placeholder="请输入"
/>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="涂箭头个数:" prop="tjtNum">
<el-input-number v-model="formData.tjtNum" :min="1" :max="10" controls-position="right"
placeholder="请输入" />
<el-input-number
v-model="formData.tjtNum"
:min="1"
:max="10"
controls-position="right"
placeholder="请输入"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="16">
<el-form-item label="色标色带:" prop="memo">
<el-input v-model="formData.memo" :rows="3" type="textarea" maxlength="150" show-word-limit
placeholder="请输入" />
<el-input
v-model="formData.memo"
:rows="3"
type="textarea"
maxlength="150"
show-word-limit
placeholder="请输入"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="16">
<el-form-item label="关键信息:" prop="keyInfo">
<el-input v-model="formData.keyInfo" type="textarea" maxlength="150" show-word-limit rows="3"
placeholder="请输入" />
<el-input
v-model="formData.keyInfo"
type="textarea"
maxlength="150"
show-word-limit
rows="3"
placeholder="请输入"
/>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="24">
<el-col :span="24" v-if="partType == '热表' || (partType == '烧结' && !formData.isGlassCake)">
<el-col
:span="24"
v-if="partType == '热表' || (partType == '烧结' && !formData.isGlassCake)"
>
<el-form-item label="工艺校验:" prop="sinTer">
<el-checkbox v-model="formData.goldMark" v-if="partType == '热表'">镀金标识</el-checkbox>
<el-checkbox v-model="formData.markingsTest" @change="setDataLocal">涂色标</el-checkbox>
<el-checkbox v-model="formData.fluorescenceCheck" @change="setDataLocal"
v-if="partType == '热表'">荧光检</el-checkbox>
<el-checkbox v-model="formData.hotDispose" @change="setDataLocal"
v-if="partType == '热表'">热处理检验</el-checkbox>
<el-checkbox v-model="formData.inkjetPrinting" @change="setDataLocal" v-if="partType == '热表'">喷码</el-checkbox>
<el-checkbox v-model="formData.goldMark" v-if="partType == '热表'"
>镀金标识</el-checkbox
>
<el-checkbox v-model="formData.markingsTest" @change="setDataLocal"
>涂色标</el-checkbox
>
<el-checkbox
v-model="formData.fluorescenceCheck"
@change="setDataLocal"
v-if="partType == '热表'"
>荧光检</el-checkbox
>
<el-checkbox
v-model="formData.hotDispose"
@change="setDataLocal"
v-if="partType == '热表'"
>热处理检验</el-checkbox
>
<el-checkbox
v-model="formData.inkjetPrinting"
@change="setDataLocal"
v-if="partType == '热表'"
>喷码</el-checkbox
>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-card>
<el-card class="box-card" v-if="formData.isSintering == '1' && (!formData.isGlassCake)" style="margin-top:24px">
<el-card
class="box-card"
v-if="formData.isSintering == '0' && !formData.isGlassCake"
style="margin-top: 24px"
>
<div slot="header" class="clearfix">
<span style="font-size: 20px">子件信息</span>
</div>
<avue-crud :option="option" :table-loading="loading" :data="data" v-model="form" v-model:page="page" ref="crud"
@row-del="rowDel" @search-change="searchChange" @search-reset="searchReset" @selection-change="selectionChange"
@current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
<avue-crud
:option="option"
:table-loading="loading"
:data="data"
v-model="form"
v-model:page="page"
ref="crud"
@search-change="searchChange"
@search-reset="searchReset"
@selection-change="selectionChange"
@current-change="currentChange"
@size-change="sizeChange"
@refresh-change="refreshChange"
>
</avue-crud>
</el-card>
</div>
</template>
<script>
import { getPartDetail,authorizedAccomplish } from '@/api/processManagement/taskProcessing';
export default {
components: {
},
components: {},
props: {
partType: {
type: String,
@ -250,6 +339,10 @@ export default {
type: Object,
default: null,
},
dsPartInfo: {
type: Object,
default: null,
},
},
data() {
var checkCode = (rule, value, callback) => {
@ -258,7 +351,7 @@ export default {
partId: this.formData.partId,
partCode: value,
})
.then((res) => {
.then(res => {
if (res.data) {
callback(new Error(this.$t('global.duplicateCode')));
} else {
@ -281,8 +374,7 @@ export default {
periodOfValidity: '1',
youxiaozhouqi: '',
expirationPeriod: '',
fenzhong: ''
fenzhong: '',
},
validateObj: {
fluorescenceCheck: false,
@ -301,10 +393,7 @@ export default {
isGlassCake: [{ required: true, message: '请选择', trigger: 'blur' }],
printing: [{ required: true, message: '请选择', trigger: 'blur' }],
dueDate: [{ required: true, message: '请选择', trigger: 'blur' }],
partCode: [
{ required: true },
{ validator: checkCode, trigger: 'blur' },
],
partCode: [{ required: true ,message: '请选择', trigger: 'blur' }],
partName: [{ required: true, message: '请选择', trigger: 'blur' }],
craftWay: [{ required: true, message: '请输入', trigger: 'blur' }],
area: [
@ -343,7 +432,6 @@ export default {
header: false,
index: true,
searchLabelPosition: 'left',
searchLabelPosition: 'left',
searchGutter: 24,
searchSpan: 6,
menuAlign: 'left',
@ -396,55 +484,67 @@ export default {
search: false,
sortable: true,
overHidden: true,
type: "select",
type: 'select',
cell: true,
dicData: [
{
label: '插针',
value: "1"
value: '1',
},
{
label: '壳体',
value: "2"
value: '2',
},
{
label: '石墨模',
value: "5"
value: '5',
},
{
label: '自制玻璃饼',
value: "3"
value: '3',
},
{
label: '其他',
value: "4"
}
]
}
]
}
value: '4',
},
],
},
],
},
};
},
created() {
},
created() {},
mounted() {
this.disabled = this.dialogType == 'view' ? true : false
this.disabled = this.dialogType == 'view' ? true : false;
// this.formData = this.dsPartInfo;
this.getPartDetails();
},
methods: {
//
//
getPartDetails() {
getPartDetail(this.partId).then(res => {
this.formData = res.data.data.dsPartEntity;
this.data = res.data.data.dsPartEntities
if (res.data.data.dsPartEntity.isGlassCake === '0') {
this.formData.isGlassCake = false;
} else {
this.formData.isGlassCake = true;
}
});
},
//
periodOfValidityFn(value) {
if (value == 2) {
this.rules.youxiaozhouqi = [{ required: true, message: '请输入', trigger: 'blur' }]
this.rules.expirationPeriod = [{ required: true, message: '请输入', trigger: 'blur' }]
this.rules.youxiaozhouqi = [{ required: true, message: '请输入', trigger: 'blur' }];
this.rules.expirationPeriod = [{ required: true, message: '请输入', trigger: 'blur' }];
} else {
this.rules.youxiaozhouqi = [{ required: false, message: '请输入', trigger: 'blur' }]
this.rules.expirationPeriod = [{ required: false, message: '请输入', trigger: 'blur' }]
this.rules.youxiaozhouqi = [{ required: false, message: '请输入', trigger: 'blur' }];
this.rules.expirationPeriod = [{ required: false, message: '请输入', trigger: 'blur' }];
}
this.$nextTick(() => {
this.$refs.testForm.clearValidate(); //
})
});
},
clear() {
this.formData = {};
@ -516,7 +616,8 @@ export default {
// },
submit(flag) {
this.submitLoading = true;
this.$refs.form.validate((valid) => {
console.log(98989, this.formData);
this.$refs.testForm.validate(valid => {
if (valid) {
let isReturn = false;
if (this.formData.plateCode || this.formData.plateThickness) {
@ -541,13 +642,17 @@ export default {
this.formData.childPage = this.childPage;
this.formData.psId = this.psId;
authorizedAccomplish( {dsPart:this.formData,partList:this.data}).then(res=>{
console.log('9999res',res)
this.cancel(flag, res.data);
})
// this.$ajax.post('dsPart/addOrEdit', this.formData).then((res) => {
// if (this.$ifAjax(res)) {
// this.$message.success(
// this.$t('videaVueLib.publics.message.success')
// );
// this.cancel(flag, res.data);
this.$refs.craftEdit.getData(this.partId, true);
// this.$refs.craftEdit.getData(this.partId, true);
// }
// this.submitLoading = false;
// });
@ -562,274 +667,6 @@ export default {
// this.$refs.craftEdit.refreshLoad();
// }
},
onLoad() {
this.data = [
{
$cellEdit: true,
"area": 3.0,
"configNo": "B1",
"keyValue": 195827,
"material": "XXXX",
"memo": null,
"partCode": "21E8-040-17188-A1",
"plate": "XXXX",
"plateCode": "6",
"plateThickness": null,
"prepared": false,
"productType": "1",
"psId": 195827,
"quota": 1.0,
"sinTerType": 5,
"sinTerTypeTitle": "石墨模",
"subCode": "21E2-505-522-B1",
"subName": "设备架喷漆部件",
"subType": "R",
"subTypeTitle": "原材料",
"updateMan": {
"accountId": 622,
"card": null,
"createTime": "2025-06-26",
"curStatus": 1,
"deleted": false,
"deptName": null,
"dimissionTime": null,
"factoryId": 1,
"head": 1,
"jobName": null,
"keyValue": 601,
"ldapName": "zd001",
"mail": null,
"mobile": null,
"pfDepartment": {
"appLink": null,
"createTime": "2022-08-31",
"deleted": false,
"deptCode": "001",
"deptId": 1,
"deptName": "MES开发部",
"deptType": 1,
"deptTypeTitle": "厂",
"keyValue": 1,
"memo": null,
"orders": "00",
"parentDeptId": null,
"parentPath": null,
"ucDeptId": null,
"updateTime": "2022-08-31 16:32:46"
},
"pinyinIndex": "ZHANGDI,ZD",
"ucUserId": null,
"updateTime": "2025-06-26 15:31:23",
"userCode": "zd001",
"userId": 601,
"userName": "张迪",
"userSex": 1,
"userSources": "张迪",
"userString": "601:A:张迪",
"userType": "A"
},
"updateTime": "2025-07-11 17:46:06"
},
{
$cellEdit: true,
"area": 60.0,
"configNo": "L79",
"keyValue": 195828,
"material": null,
"memo": null,
"partCode": "21E8-040-17188-A1",
"plate": "12",
"plateCode": null,
"plateThickness": "3",
"prepared": false,
"productType": "3",
"psId": 195828,
"quota": 1.0,
"sinTerType": 2,
"sinTerTypeTitle": "壳体",
"subCode": "21E8-570-23998-L79",
"subName": "锌黄丙烯酸聚氨酯底漆",
"subType": "R",
"subTypeTitle": "原材料",
"updateMan": {
"accountId": null,
"card": null,
"createTime": "2022-08-31",
"curStatus": 1,
"deleted": false,
"deptName": null,
"dimissionTime": null,
"factoryId": 41,
"head": 0,
"jobName": "总工",
"keyValue": 1,
"ldapName": "admin",
"mail": "13699999999@136.com",
"mobile": "13699999999",
"pfDepartment": {
"appLink": null,
"createTime": "2022-08-31",
"deleted": false,
"deptCode": "001",
"deptId": 1,
"deptName": "MES开发部",
"deptType": 1,
"deptTypeTitle": "厂",
"keyValue": 1,
"memo": null,
"orders": "00",
"parentDeptId": null,
"parentPath": null,
"ucDeptId": null,
"updateTime": "2022-08-31 16:32:46"
},
"pinyinIndex": "ADMIN,ADMIN",
"ucUserId": null,
"updateTime": "2022-08-31 16:32:46",
"userCode": "00",
"userId": 1,
"userName": "admin",
"userSex": 1,
"userSources": "admin",
"userString": "1:A:admin",
"userType": "A"
},
"updateTime": "2025-09-23 13:24:24"
},
{
$cellEdit: true,
"area": 101.0,
"configNo": "A1",
"keyValue": 222030,
"material": null,
"memo": null,
"partCode": "21E8-040-17188-A1",
"plate": "12",
"plateCode": null,
"plateThickness": null,
"prepared": false,
"productType": "2",
"psId": 222030,
"quota": 1.0,
"sinTerType": 2,
"sinTerTypeTitle": "壳体",
"subCode": "21ET8-571-2901-A1",
"subName": "锌黄丙烯酸聚氨酯底漆1",
"subType": "R",
"subTypeTitle": "原材料",
"updateMan": {
"accountId": null,
"card": null,
"createTime": "2022-08-31",
"curStatus": 1,
"deleted": false,
"deptName": null,
"dimissionTime": null,
"factoryId": 41,
"head": 0,
"jobName": "总工",
"keyValue": 1,
"ldapName": "admin",
"mail": "13699999999@136.com",
"mobile": "13699999999",
"pfDepartment": {
"appLink": null,
"createTime": "2022-08-31",
"deleted": false,
"deptCode": "001",
"deptId": 1,
"deptName": "MES开发部",
"deptType": 1,
"deptTypeTitle": "厂",
"keyValue": 1,
"memo": null,
"orders": "00",
"parentDeptId": null,
"parentPath": null,
"ucDeptId": null,
"updateTime": "2022-08-31 16:32:46"
},
"pinyinIndex": "ADMIN,ADMIN",
"ucUserId": null,
"updateTime": "2022-08-31 16:32:46",
"userCode": "00",
"userId": 1,
"userName": "admin",
"userSex": 1,
"userSources": "admin",
"userString": "1:A:admin",
"userType": "A"
},
"updateTime": "2025-07-11 15:35:56"
},
{
$cellEdit: true,
"area": 8.0,
"configNo": "L16",
"keyValue": 222031,
"material": "3",
"memo": null,
"partCode": "21E8-040-17188-A1",
"plate": "12",
"plateCode": "77",
"plateThickness": null,
"prepared": true,
"productType": "4",
"psId": 222031,
"quota": 1.0,
"sinTerType": 3,
"sinTerTypeTitle": "自制玻璃饼",
"subCode": "21E8-571-4251-L16",
"subName": "锌黄丙烯酸聚氨酯底漆1",
"subType": "R",
"subTypeTitle": "原材料",
"updateMan": {
"accountId": null,
"card": null,
"createTime": "2022-08-31",
"curStatus": 1,
"deleted": false,
"deptName": null,
"dimissionTime": null,
"factoryId": 41,
"head": 0,
"jobName": "总工",
"keyValue": 1,
"ldapName": "admin",
"mail": "13699999999@136.com",
"mobile": "13699999999",
"pfDepartment": {
"appLink": null,
"createTime": "2022-08-31",
"deleted": false,
"deptCode": "001",
"deptId": 1,
"deptName": "MES开发部",
"deptType": 1,
"deptTypeTitle": "厂",
"keyValue": 1,
"memo": null,
"orders": "00",
"parentDeptId": null,
"parentPath": null,
"ucDeptId": null,
"updateTime": "2022-08-31 16:32:46"
},
"pinyinIndex": "ADMIN,ADMIN",
"ucUserId": null,
"updateTime": "2022-08-31 16:32:46",
"userCode": "00",
"userId": 1,
"userName": "admin",
"userSex": 1,
"userSources": "admin",
"userString": "1:A:admin",
"userType": "A"
},
"updateTime": "2025-07-11 15:36:02"
}
]
}
},
};
</script>
@ -854,4 +691,4 @@ export default {
}
}
}
</style>
</style>

@ -5,12 +5,12 @@
<!-- 零件信息-->
<el-tab-pane label="零件信息" name="1">
<dsPartBasicInfo ref="dsPartRef" v-if="activeName == '1'" :part-id="partId" @cancelClose="cancelClose"
:dialogType="dialogType" :partType="partType" />
:dialogType="dialogType" :partType="partType" :dsPartInfo="dsPartInfo" />
</el-tab-pane>
<!-- 子件信息 -->
<el-tab-pane label="工艺编制" name="2">
<!-- 工艺编制 -->
<processPlanning ref="craftEdit" v-if="activeName == '2'" :part-id="partId" :dialogType="dialogType"></processPlanning>
<processPlanning ref="craftEdit" v-if="activeName == '2'" :part-id="partId" :dialogType="dialogType" :updateRow="updateRow"></processPlanning>
</el-tab-pane>
</el-tabs>
<div class="content-right">
@ -18,10 +18,10 @@
</div>
</div>
<template #footer>
<template #footer v-if="activeName == '1'">
<div class="dialog-footer">
<el-button @click="cancel()">取消</el-button>
<el-button type="primary" @click="cancel()">
<el-button type="primary" @click="submit()">
确认
</el-button>
</div>
@ -32,6 +32,11 @@
import dsPartBasicInfo from './dsPartBasicInfo.vue';
import dsCraftPage from './dsCraft.vue'
import processPlanning from './processPlanning.vue'
import {
getPartDetail,getModelList
} from '@/api/processManagement/taskProcessing';
export default {
name: 'DsPartIndex',
components: {
@ -55,16 +60,23 @@ export default {
dialogType: {
type: String,
default: '',
},
updateRow:{
type:Object,
default:{}
}
},
data() {
return {
setCrewShow: false,
activeName: '1'
activeName: '1',
dsPartInfo:{}
};
},
methods: {
opened() {
// this.getPartDetails()
// if (this.partId) {
// this.$refs.dsPartRef.loadData(this.partId);
// }
@ -91,6 +103,11 @@ export default {
// this.$refs.dsPartRef.clear();
this.setCrewShow = false
this.$emit('cancel', typeof refresh === 'boolean' && refresh);
},
submit(){
if(this.activeName=='1'){
this.$refs.dsPartRef.submit()
}
}
},
mounted() {

@ -400,7 +400,6 @@
</template>
<script>
import dsPartBasicInfo from './dsPartBasicInfo.vue';
import dsCraftPage from './dsCraft.vue';
import processPlanning from './processPlanning.vue';
import {
getPartManagementDetail,
@ -413,7 +412,6 @@ export default {
name: 'DsPartIndex',
components: {
dsPartBasicInfo,
dsCraftPage,
processPlanning,
},
props: {
@ -477,7 +475,6 @@ export default {
header: false,
index: true,
searchLabelPosition: 'left',
searchLabelPosition: 'left',
searchGutter: 24,
searchSpan: 6,
menuAlign: 'left',
@ -609,9 +606,11 @@ export default {
// -
if (this.detailsType == 'processPlanning') {
let query = {
partId: this.rowData.partId,
partVersion: this.rowData.partVersion,
partId: 4,
partVersion: '1.3',
rank:'2'
};
debugger
getProcessManagementAuthorized(query).then(res => {
// this.craftData = res.data;
@ -630,8 +629,9 @@ export default {
// -
if (this.detailsType == 'processPlanning') {
let query = {
partId: this.rowData.partId,
partVersion: this.rowData.partVersion,
partId: 4,
partVersion: '1.3',
rank:'2'
};
getPartManagementDetail(query).then(res => {
this.formData = res.data.data.dsPartEntity;

@ -6,7 +6,7 @@
<el-form :model="form" label-width="auto">
<el-form-item label="工艺级别:">
<el-select
v-model="processLevel"
v-model="rank"
placeholder="请选择"
style="width: 220px"
@change="leavelChange"
@ -71,107 +71,372 @@
<div class="table-btn-left">
<el-button type="primary" plain @click="addTable()">插入一行</el-button>
<el-button type="danger" plain @click="delTable()">删除选择行</el-button>
<el-button type="primary" @click="saveInfo()">保存</el-button>
</div>
<div class="table-btn-right" v-if="!(activeName == '3' || activeName == '4')">
<div class="table-btn-right" v-if="activeName == '1'">
<el-select
v-model="processLevel"
v-model="modelLevel"
placeholder="选择工艺模板"
style="width: 220px; margin-right: 12px"
>
<el-option label="模板一" value="1" />
<el-option label="模板二" value="2" />
<el-option label="模板三" value="3" />
<el-option
v-for="(item, index) in modelOption"
:key="index"
:label="item.name"
:value="item.id"
/>
</el-select>
<el-button type="primary">导入模板</el-button>
<el-button type="primary" @change="modelLevelChange()">导入模板</el-button>
</div>
</div>
<el-table :data="tableData1" style="width: 100%" v-if="activeName == '1'">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="date" label="工序号"></el-table-column>
<el-table-column prop="name" label="工序">
<template #header>
<span><i style="color: red">*</i>工序</span>
</template>
</el-table-column>
<el-table-column prop="address" label="工艺能力">
<template #header>
<span><i style="color: red">*</i>工艺能力</span>
</template>
</el-table-column>
<el-table-column prop="address" label="工序描述">
<template #header>
<span><i style="color: red">*</i>工序描述</span>
</template>
</el-table-column>
<el-table-column prop="address" label="定额工时(分钟)">
<template #header>
<span><i style="color: red">*</i>定额工时(分钟)</span>
</template>
</el-table-column>
<el-table-column prop="address" label="准备工时(分钟)"> </el-table-column>
<el-table-column prop="address" label="是否主工序">
<el-select v-model="value" placeholder="请选择">
<el-option label="是" value="1"></el-option>
<el-option label="否" value="2"></el-option>
</el-select>
</el-table-column>
</el-table>
<el-table :data="tableData2" style="width: 100%" v-if="activeName == '2'">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="date" label="工序号"></el-table-column>
<el-table-column prop="date" label="检验项目">
<template #header>
<span><i style="color: red">*</i>检验项目</span>
</template>
</el-table-column>
<el-table-column prop="date" label="检验标准">
<template #header>
<span><i style="color: red">*</i>检验标准</span>
</template>
</el-table-column>
<el-table-column prop="date" label="标准值"> </el-table-column>
<el-table-column prop="date" label="上限"> </el-table-column>
<el-table-column prop="date" label="下限"> </el-table-column>
<el-table-column prop="date" label="定额工时(分钟)">
<template #header>
<span><i style="color: red">*</i>定额工时(分钟)</span>
</template>
</el-table-column>
<el-table-column prop="date" label="准备工时(分钟)"></el-table-column>
</el-table>
<el-table :data="tableData3" style="width: 100%" v-if="activeName == '3'">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="date" label="工序号"></el-table-column>
<el-table-column prop="date" label="镀前镀后">
<template #header>
<span><i style="color: red">*</i>镀前镀后</span>
</template>
</el-table-column>
<el-table-column prop="date" label="量具">
<template #header>
<span><i style="color: red">*</i>量具</span>
</template>
</el-table-column>
<el-table-column prop="date" label="量具尺寸"></el-table-column>
<el-table-column prop="date" label="图纸尺寸"></el-table-column>
</el-table>
<el-table :data="tableData4" style="width: 100%" v-if="activeName == '4'">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="date" label="工序号"></el-table-column>
<el-table-column prop="date" label="对应工装">
<template #header>
<span><i style="color: red">*</i>对应工装</span>
</template>
</el-table-column>
<el-table-column prop="date" label="工装名称"></el-table-column>
<el-table-column prop="date" label="是否印字"></el-table-column>
<el-table-column prop="date" label="印字版编号"></el-table-column>
<el-table-column prop="date" label="测试夹具号"></el-table-column>
</el-table>
<!-- 工序 -->
<el-form
ref="tableForm1"
:model="form1"
:rules="formRules1"
label-width="0px"
v-if="activeName == '1'"
>
<el-table :data="form1.tableData1" style="width: 100%">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="processNo" label="工序号">
<template #default="scope">
<el-input
v-model="scope.row.processNo"
placeholder="请输入"
style="width: 100%"
></el-input>
</template>
</el-table-column>
<el-table-column prop="processName" label="工序">
<template #header>
<span><i style="color: red">*</i>工序</span>
</template>
<template #default="scope">
<el-form-item
:prop="`tableData1[${scope.$index}].processName`"
:rules="formRules1.processName"
>
<el-select v-model="scope.row.processName" placeholder="请选择">
<el-option
v-for="(item, index) in processSetOption"
:key="index"
label="是"
value="1"
></el-option>
</el-select>
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="address" label="工艺能力">
<template #header>
<span><i style="color: red">*</i>工艺能力</span>
</template>
<template #default="scope">
<el-form-item
:prop="`tableData1[${scope.$index}].address`"
:rules="formRules1.address"
>
<el-select v-model="scope.row.address" placeholder="请选择">
<el-option
v-for="(item, index) in craftAbilityOption"
:key="index"
label="是"
value="1"
></el-option>
</el-select>
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="proDes" label="工序描述">
<template #header>
<span><i style="color: red">*</i>工序描述</span>
</template>
<template #default="scope">
<el-form-item :prop="`tableData1[${scope.$index}].proDes`" :rules="formRules1.proDes">
<el-input
v-model="scope.row.proDes"
placeholder="请输入"
style="width: 100%"
></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="proHours" label="定额工时(分钟)">
<template #header>
<span><i style="color: red">*</i>定额工时(分钟)</span>
</template>
<template #default="scope">
<el-form-item
:prop="`tableData1[${scope.$index}].proHours`"
:rules="formRules1.proHours"
>
<el-input
v-model="scope.row.proHours"
placeholder="请输入"
style="width: 100%"
></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="setoutHours" label="准备工时(分钟)">
<template #default="scope">
<el-input
v-model="scope.row.proHours"
placeholder="请输入"
style="width: 100%"
></el-input>
</template>
</el-table-column>
<el-table-column prop="isMain" label="是否主工序">
<template #default="scope">
<el-form-item :prop="`tableData1[${scope.$index}].isMain`" :rules="formRules1.isMain">
<el-select v-model="scope.row.isMain" placeholder="请选择">
<el-option label="是" value="1"></el-option>
<el-option label="否" value="2"></el-option>
</el-select>
</el-form-item>
</template>
</el-table-column>
</el-table>
</el-form>
<!-- 项目 -->
<el-form
ref="tableForm2"
:model="form2"
:rules="formRules2"
label-width="0px"
v-if="activeName == '2'"
>
<el-table :data="form2.tableData2" style="width: 100%">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="trialNo" label="工序号">
<template #default="scope">
<el-input
v-model="scope.row.trialNo"
placeholder="请输入"
style="width: 100%"
></el-input>
</template>
</el-table-column>
<el-table-column prop="projectName" label="检验项目">
<template #header>
<span><i style="color: red">*</i>检验项目</span>
</template>
<template #default="scope">
<el-form-item
:prop="`tableData2[${scope.$index}].projectName`"
:rules="formRules2.projectName"
>
<el-select v-model="scope.row.projectName" placeholder="请选择">
<el-option label="是" value="1"></el-option>
</el-select>
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="projectStandard" label="检验标准">
<template #header>
<span><i style="color: red">*</i>检验标准</span>
</template>
<template #default="scope">
<el-form-item
:prop="`tableData2[${scope.$index}].projectStandard`"
:rules="formRules2.projectStandard"
>
<el-input
v-model="scope.row.projectStandard"
placeholder="请输入"
style="width: 100%"
></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="proHours" label="定额工时(分钟)">
<template #header>
<span><i style="color: red">*</i>定额工时(分钟)</span>
</template>
<template #default="scope">
<el-form-item
:prop="`tableData2[${scope.$index}].proHours`"
:rules="formRules2.proHours"
>
<el-input
v-model="scope.row.proHours"
placeholder="请输入"
style="width: 100%"
></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="prepareHours" label="准备工时(分钟)">
<template #default="scope">
<el-input
v-model="scope.row.prepareHours"
placeholder="请输入"
style="width: 100%"
></el-input>
</template>
</el-table-column>
</el-table>
</el-form>
<!-- 量具 -->
<el-form
ref="tableForm3"
:model="form3"
:rules="formRules3"
label-width="0px"
v-if="activeName == '3'"
>
<el-table :data="form3.tableData3" style="width: 100%">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="trialNo" label="工序号">
<template #default="scope">
<el-input
v-model="scope.row.trialNo"
placeholder="请输入"
style="width: 100%"
></el-input>
</template>
</el-table-column>
<el-table-column prop="testType" label="镀前镀后">
<template #header>
<span><i style="color: red">*</i>镀前镀后</span>
</template>
<template #default="scope">
<el-form-item
:prop="`tableData3[${scope.$index}].testType`"
:rules="formRules3.testType"
>
<el-select v-model="scope.row.testType" placeholder="请选择">
<el-option label="是" value="1"></el-option>
<el-option label="否" value="2"></el-option>
</el-select>
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="tool" label="量具">
<template #header>
<span><i style="color: red">*</i>量具</span>
</template>
<template #default="scope">
<el-form-item :prop="`tableData3[${scope.$index}].tool`" :rules="formRules3.tool">
<el-select v-model="scope.row.tool" placeholder="请选择">
<el-option label="是" value="1"></el-option>
<el-option label="否" value="2"></el-option>
</el-select>
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="toolSize" label="量具尺寸">
<template #default="scope">
<el-input
v-model="scope.row.toolSize"
placeholder="请输入"
style="width: 100%"
></el-input>
</template>
</el-table-column>
<el-table-column prop="toolInfo" label="图纸尺寸">
<template #default="scope">
<el-input
v-model="scope.row.toolInfo"
placeholder="请输入"
style="width: 100%"
></el-input>
</template>
</el-table-column>
</el-table>
</el-form>
<!-- 工装 -->
<el-form
ref="tableForm4"
:model="form4"
:rules="formRules4"
label-width="0px"
v-if="activeName == '4'"
>
<el-table :data="form4.tableData4" style="width: 100%">
<el-table-column type="selection" width="55"></el-table-column>
<el-table-column prop="trialNo" label="工序号">
<template #default="scope">
<el-input
v-model="scope.row.trialNo"
placeholder="请输入"
style="width: 100%"
></el-input>
</template>
</el-table-column>
<el-table-column prop="moldCode" label="对应工装">
<template #header>
<span><i style="color: red">*</i>对应工装</span>
</template>
<template #default="scope">
<el-form-item
:prop="`tableData1[${scope.$index}].moldCode`"
:rules="formRules4.moldCode"
>
<el-input
v-model="scope.row.moldCode"
placeholder="请输入"
style="width: 100%"
></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="moldName" label="工装名称">
<template #default="scope">
<el-input
v-model="scope.row.moldName"
placeholder="请输入"
style="width: 100%"
></el-input>
</template>
</el-table-column>
<el-table-column prop="isPrint" label="是否印字">
<template #default="scope">
<el-input
v-model="scope.row.isPrint"
placeholder="请输入"
style="width: 100%"
></el-input>
</template>
</el-table-column>
<el-table-column prop="printNo" label="印字版编号">
<template #default="scope">
<el-input
v-model="scope.row.printNo"
placeholder="请输入"
style="width: 100%"
></el-input>
</template>
</el-table-column>
<el-table-column prop="testFixtureNo" label="测试夹具号">
<template #default="scope">
<el-input
v-model="scope.row.testFixtureNo"
placeholder="请输入"
style="width: 100%"
></el-input>
</template>
</el-table-column>
</el-table>
</el-form>
</div>
</div>
</template>
<script>
import {
getProcessAuthorized,
getModelList,
getModelDetailList,
authorizedAccomplish2,
saveProcessProjectSave,
saveProcessMeasuringTool,
saveProcessMoldTool,
getProcessSetList,
getCraftAbilityList,
} from '@/api/processManagement/taskProcessing';
export default {
name: 'CraftIndex',
components: {},
@ -188,58 +453,16 @@ export default {
type: String,
default: '',
},
updateRow: {
type: Object,
default: {},
},
},
data() {
return {
rank: '2',
processLevel: '2',
data: [
{
label: '零件号A',
disabled: true,
children: [
{
label: 'B0001-C0001',
children: [
{
label: '清洗',
},
{
label: '镀后检验',
children: [
{
label: '厚度检验',
disabled: true,
},
{
label: '外观检验',
disabled: true,
},
],
},
],
},
{
label: 'B0001-C0002',
children: [
{
label: '清洗',
},
{
label: '镀后检验',
children: [
{
label: '厚度检验',
},
{
label: '外观检验',
},
],
},
],
},
],
},
],
data: [],
defaultProps: {
children: 'children',
label: 'label',
@ -282,21 +505,184 @@ export default {
],
activeName: '1',
treeLeave: 2, //
processSetOption: [], //
craftAbilityOption: [], //
modelOption: [], //
modelLevel: null, //
form1: {
tableData1: [], //
},
form2: {
tableData2: [], //
},
form3: {
tableData3: [], //
},
form4: {
tableData4: [], //
},
formRules1: {
processName: [{ required: true, message: '请选择', trigger: ['change', 'submit'] }],
address: [{ required: true, message: '请选择', trigger: ['change', 'submit'] }],
proDes: [{ required: true, message: '请选择', trigger: ['change', 'submit'] }],
proHours: [{ required: true, message: '请输入', trigger: ['change', 'submit'] }],
isMain: [{ required: true, message: '请选择', trigger: ['change', 'submit'] }],
},
formRules2: {
projectName: [{ required: true, message: '请选择', trigger: ['change', 'submit'] }],
projectStandard: [{ required: true, message: '请输入', trigger: ['change', 'submit'] }],
proHours: [{ required: true, message: '请输入', trigger: ['change', 'submit'] }],
},
formRules3: {
testType: [{ required: true, message: '请选择', trigger: ['change', 'submit'] }],
tool: [{ required: true, message: '请选择', trigger: ['change', 'submit'] }],
},
formRules4: {
moldCode: [{ required: true, message: '请输入', trigger: ['change', 'submit'] }],
},
};
},
mounted() {
this.getDetails();
this.getModelList();
this.getProcessSetList();
this.getCraftAbilityList();
},
methods: {
//
getModelList() {
getModelList().then(res => {
this.modelOption = res.data.data;
});
},
//
getProcessSetList() {
getProcessSetList().then(res => {
this.processSetOption = res.data.data;
});
},
//
getCraftAbilityList() {
getCraftAbilityList().then(res => {
this.craftAbilityOption = res.data.data;
});
},
//
modelLevelChange() {
getModelDetailList({ modelId: this.modelLevel }).then(res => {
console.log(9999, res);
});
},
//
getDetails() {
getProcessAuthorized({ partId: this.partId, taskId: this.updateRow.id }).then(res => {
this.data = this.transformCraftTree(res.data.data);
console.log(89898989, this.data);
});
},
//
transformCraftTree(responseData) {
const { partInfo, craftList } = responseData;
const partCode = partInfo.partCode;
//
const tree = [
{
label: partCode,
disabled: true,
rawData: partInfo, //
children: craftList.map(craft => {
const { craftInfo, processList } = craft;
// roamNo-craftNo
const craftLabel = `${craftInfo.roamNo}-${craftInfo.craftNo}`;
return {
...craftInfo,
label: craftLabel,
processList: processList.map(process => {
return process.processInfo;
}),
rawData: craftInfo, //
children: processList.map(process => {
const { processInfo, projectList, measuringToolList, moldToolList } = process;
//
const processLabel = processInfo.processName;
return {
...processInfo,
label: processLabel,
rawData: {
processInfo,
projectList,
measuringToolList,
moldToolList,
}, //
children: projectList.map(project => ({
label: project.projectName, //
rawData: project, //
disabled: true,
})),
};
}),
};
}),
},
];
return tree;
},
//
handleNodeClick(nodes, node, self) {
if (nodes.disabled) {
//
return false;
}
this.treeLeave = node.level;
if (this.treeLeave == 3) {
this.activeName = '2';
}
if (this.treeLeave == 2) {
//
this.form1.tableData1 = [];
this.form2.tableData2 = [];
this.form3.tableData3 = [];
this.form4.tableData4 = [];
//
if (this.treeLeave === 2) {
this.activeName = '1';
console.log(99999, nodes.processList);
this.form1.tableData1 = nodes.processList;
}
//
if (this.treeLeave === 3) {
this.activeName = '2';
//
const { processInfo, projectList, measuringToolList, moldToolList } = nodes.rawData;
//
this.form2.tableData2 = projectList.map(item => ({
trialNo: item.projectCode,
projectName: item.projectName,
projectStandard: item.projectStandard,
proHours: item.proHours,
prepareHours: item.prepareHours,
}));
//
this.form3.tableData3 = measuringToolList.map(item => ({
trialNo: item.projectCode || '',
testType: item.testType,
tool: item.tool,
toolSize: item.toolSize,
toolInfo: item.toolInfo,
}));
//
this.form4.tableData4 = moldToolList.map(item => ({
trialNo: processInfo.processNo,
moldCode: item.moldCode,
moldName: item.moldName,
isPrint: item.isPrint,
printNo: item.printNo,
testFixtureNo: item.testFixtureNo,
}));
}
},
// tab
@ -305,17 +691,22 @@ export default {
},
//
leavelChange() {
this.$message.success('保存成功');
// this.$message.success('');
},
//
addTable() {
if (this.activeName == '1') {
this.form1.tableData1.push({});
}
if (this.activeName == '2') {
this.form2.tableData2.push({});
}
if (this.activeName == '3') {
this.form3.tableData3.push({});
}
if (this.activeName == '4') {
this.form4.tableData4.push({});
}
},
//
@ -329,6 +720,66 @@ export default {
if (this.activeName == '4') {
}
},
saveInfo() {
if (this.activeName == '1') {
// Form
this.$refs.tableForm1.validate((isValid, invalidFields) => {
if (!isValid) {
let query_ = {
dsPart: {}, //
craft: {}, //
processList: [], //
deleteIds: [], //ids
};
// authorizedAccomplish2(query_).then(res=>{
// })
}
});
}
if (this.activeName == '2') {
this.$refs.tableForm2.validate((isValid, invalidFields) => {
if (!isValid) {
let query_ = {
processEntity: {}, //
processProjectEntityList: [], //
deleteIds: [], //ids
};
// saveProcessProjectSave(query_).then(res=>{
// })
}
});
}
if (this.activeName == '3') {
this.$refs.tableForm3.validate((isValid, invalidFields) => {
if (!isValid) {
let query_ = {
processEntity: {}, //
processMeasuringToolEntities: [], //
deleteIds: [], //ids
};
// saveProcessMeasuringTool(query_).then(res=>{
// })
}
});
}
if (this.activeName == '4') {
this.$refs.tableForm4.validate((isValid, invalidFields) => {
if (!isValid) {
let query_ = {
processEntity: {}, //
processMoldToolEntities: [], //
deleteIds: [], //ids
};
// saveProcessMoldTool(query_).then(res=>{
// })
}
});
}
},
},
};
</script>
@ -345,13 +796,11 @@ export default {
.process-select {
padding: 12px;
background: #e4e7ed;
:deep(.el-form-item) {
margin-bottom: 0px !important;
}
}
}
:deep(.el-form-item) {
margin-bottom: 0px !important;
}
.process-right {
padding: 12px;
flex: 1;
@ -372,4 +821,10 @@ export default {
}
}
}
:deep(.el-table .el-table__cell) {
height: 50px !important;
padding: 0 !important;
line-height: 50px !important;
}
</style>

@ -7,7 +7,6 @@
v-model="form"
v-model:page="page"
ref="crud"
@row-del="rowDel"
@search-change="searchChange"
@search-reset="searchReset"
@selection-change="selectionChange"

@ -226,10 +226,11 @@ export default {
},
//
setCrewOpeSancel(isRefresh) {
if (isRefresh) {
this.$refs.myTable.load();
}
// if (isRefresh) {
// this.$refs.myTable.load();
// }
this.setCrewOpen = false;
this.onLoad(this.page)
},
//
searchReset() {

@ -24,6 +24,7 @@
<el-button type="primary" link @click="viewDetails(scope.row.partId, scope.row)"
>详情</el-button
>
<!-- 0 待分派 1 待接收 2 进行中 3 已完成 -->
<el-button
type="primary"
link
@ -35,21 +36,21 @@
type="primary"
link
@click="receiveFn(scope.row)"
v-if="scope.row.taskStatus == 0"
v-if="scope.row.taskStatus == 1"
>接收</el-button
>
<el-button
type="primary"
link
@click="completedFn(scope.row)"
v-if="scope.row.taskStatus == 1"
v-if="scope.row.taskStatus == 2"
>完成</el-button
>
<el-button
type="primary"
link
@click="setBathCrew(scope.row)"
v-if="scope.row.taskStatus == 0 && scope.row.children"
v-if="scope.row.taskStatus == 1 && scope.row.children"
>转派</el-button
>
</template>
@ -69,7 +70,7 @@
</div>
</template>
</avue-crud>
<!-- 转派 -->
<assignDaialog
:id="bcId"
:set-crew-open="setCrewOpen"
@ -77,6 +78,7 @@
type="platingAssort"
@setCrewOpeSancel="cancel"
:title="title"
:updateRow="updateRow"
></assignDaialog>
<!-- 编制 -->
@ -87,6 +89,7 @@
@cancel="cancel"
:partType="partType"
:dialogType="dialogType"
:updateRow="updateRow"
></dsPartIndex>
<!-- 返工任务编制 -->
@ -292,11 +295,11 @@ export default {
dicData: [
{
value: 0,
label: '待接收',
label: '待分派',
},
{
value: 1,
label: '进行中',
label: '待接收',
},
{
value: 2,
@ -350,6 +353,7 @@ export default {
title: '分派',
isTestOpen: false, //
detailsRow: {},
updateRow: [], //
};
},
methods: {
@ -367,6 +371,7 @@ export default {
this.isReworkOpen = false;
this.showPartDetails = false;
this.setCrewOpen = false;
this.onLoad(this.page);
},
//
completedFn(row) {
@ -374,15 +379,15 @@ export default {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
completeSet({ taskIds: row.id }).then(res => {
this.$message({
type: 'success',
message: '操作成功!',
});
}).then(() => {
completeSet({ taskIds: row.id }).then(res => {
this.$message({
type: 'success',
message: '操作成功!',
});
})
this.onLoad(this.page);
});
});
},
//
receiveFn(row) {
@ -390,16 +395,17 @@ export default {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning',
})
.then(() => {
taskReception({ taskIds: row.id });
}).then(() => {
taskReception({ taskId: row.id }).then(res => {
this.$message({
type: 'success',
message: '操作成功!',
});
//
done(row);
});
this.onLoad(this.page);
//
done(row);
});
},
//
viewDetails(partId, row, level) {
@ -417,6 +423,7 @@ export default {
//
organization(partId, row) {
this.partId = partId;
this.updateRow = row
if (row.taskType == '3') {
this.isReworkOpen = true;
} else {
@ -431,8 +438,9 @@ export default {
}
},
//
setBathCrew() {
setBathCrew(row) {
this.setCrewOpen = true;
this.updateRow.push(row);
this.title = '转派';
},
//

Loading…
Cancel
Save