From 94b749c4e3e6e52ae0644c4ed36a54395c8c3a1e Mon Sep 17 00:00:00 2001
From: lzhe <lzhe@example.com>
Date: 星期一, 27 五月 2024 17:57:21 +0800
Subject: [PATCH] 1
---
src/views/console/product-process/process-route/add-craft-version.vue | 17 ++-
src/views/console/product-process/process-route/addWorkmanship.vue | 71 ++++++++++++--
src/views/console/product-process/process-route.vue | 3
src/views/console/product-process/process-route/workmanship.vue | 155 +++++++++++++++++++++++++++---
src/views/console/product-process/process-route/addWorking.vue | 2
5 files changed, 215 insertions(+), 33 deletions(-)
diff --git a/src/views/console/product-process/process-route.vue b/src/views/console/product-process/process-route.vue
index ceb188f..01b41b9 100644
--- a/src/views/console/product-process/process-route.vue
+++ b/src/views/console/product-process/process-route.vue
@@ -47,6 +47,7 @@
</div>
<div class="correlation-product-line">鍏宠仈浜х嚎<span>鍗冩枃绉戞妧</span></div>
<div class="process-main-content">
+ <!-- isCustomization 鏂板缓/姝ラ -->
<workmanship :isCustomization="true" :craftId="craftId"></workmanship>
</div>
</div>
@@ -120,7 +121,7 @@
this.craftId = item.id;
},
addVision() {
- this.$router.push({path: `/console/product-process/process-route/add-craft-version`,query: {id:this.id}})
+ this.$router.push({path: `/console/product-process/process-route/add-craft-version`,query: {id:this.id,craftId:this.craftId}})
},
addRoute() {
this.$router.push({path: `/console/product-process/process-route/add-craft`,query: {id:this.id}})
diff --git a/src/views/console/product-process/process-route/add-craft-version.vue b/src/views/console/product-process/process-route/add-craft-version.vue
index e9b3905..16f1926 100644
--- a/src/views/console/product-process/process-route/add-craft-version.vue
+++ b/src/views/console/product-process/process-route/add-craft-version.vue
@@ -71,7 +71,7 @@
</template>
<script>
- import workmanship from './workmanship' //宸ヨ壓璺嚎
+import workmanship from './workmanship' //宸ヨ壓璺嚎
export default {
name: 'add-craft',
components: {workmanship},
@@ -153,14 +153,16 @@
}
})
},
- setStep0() {
+ goStep1() {
var obj = Object.assign({},this.addStepForm0);
+ obj.craftId = this.$route.query.id;
+ obj.id = this.$route.query.craftId;
this.$refs.dialogForm0.validate(async (valid) => {
if (valid) {
- this.$HTTP.post(`/api/blade-cps/production-craft-version/insert?craftId=${this.$route.query.id}`,obj).then(res=> {
+ this.$HTTP.put(`/api/blade-cps/production-craft-version/update`,obj).then(res=> {
if(res.code == 200) {
this.active = 1;
- this.getVersionDetail(res.data.id);
+ //this.getVersionDetail(res.data.id);
}else {
this.$alert(res.message, "鎻愮ず", {type: 'error'});
}
@@ -186,7 +188,7 @@
},
next() {
if(this.active == 0) {
- this.setStep0();
+ this.goStep1();
}else if(this.active == 1) {
}else if(this.active == 2) {
@@ -197,6 +199,11 @@
this.$HTTP.get(`/api/blade-cps/craft-routing/detail?id=${this.$route.query.id}`).then(res=> {
if(res.code == 200) {
this.detail = res.data;
+ res.data.dtos.forEach(item=> {
+ if(item.id == this.$route.query.craftId) {
+ this.addStepForm0.name = item.name;
+ }
+ })
}
})
}
diff --git a/src/views/console/product-process/process-route/addWorking.vue b/src/views/console/product-process/process-route/addWorking.vue
index eb8db43..5ef8d0c 100644
--- a/src/views/console/product-process/process-route/addWorking.vue
+++ b/src/views/console/product-process/process-route/addWorking.vue
@@ -2,7 +2,7 @@
* @Author: lzhe lzhe@example.com
* @Date: 2024-05-24 11:25:26
* @LastEditors: lzhe lzhe@example.com
- * @LastEditTime: 2024-05-24 15:24:10
+ * @LastEditTime: 2024-05-27 14:11:14
* @FilePath: /src/views/console/product-process/process-route/addWorking.vue
* @Description: 杩欐槸榛樿璁剧疆,璇疯缃甡customMade`, 鎵撳紑koroFileHeader鏌ョ湅閰嶇疆 杩涜璁剧疆: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
diff --git a/src/views/console/product-process/process-route/addWorkmanship.vue b/src/views/console/product-process/process-route/addWorkmanship.vue
index e9fd4fb..dbca07a 100644
--- a/src/views/console/product-process/process-route/addWorkmanship.vue
+++ b/src/views/console/product-process/process-route/addWorkmanship.vue
@@ -2,12 +2,12 @@
* @Author: lzhe lzhe@example.com
* @Date: 2024-05-24 11:25:26
* @LastEditors: lzhe lzhe@example.com
- * @LastEditTime: 2024-05-24 15:24:10
+ * @LastEditTime: 2024-05-27 17:55:54
* @FilePath: /src/views/console/product-process/process-route/addWorking.vue
* @Description: 杩欐槸榛樿璁剧疆,璇疯缃甡customMade`, 鎵撳紑koroFileHeader鏌ョ湅閰嶇疆 杩涜璁剧疆: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
<template>
- <el-form :inline="true" :model="workmanshipForm" :rules="workmanshipRules" label-width="80px" class="form-view-data">
+ <el-form :inline="true" :model="workmanshipForm" :rules="workmanshipRules" label-width="100px" class="form-view-data">
<el-row>
<el-col :span="24">
<el-form-item label="宸ュ簭缂栧彿" prop="test0">
@@ -33,7 +33,7 @@
<el-input-number v-model="workmanshipForm.sort" :min="1" :max="10" @change="handleChange" />
</el-form-item>
</el-col>
- <el-col :span="24">
+ <el-col :span="24" v-if="workmanshipForm.processTypeName != '娴嬮噺'">
<el-form-item label="鏍囧噯鐢ㄦ椂">
<el-input v-model="workmanshipForm.d" style="width: 20%;margin-right: 12px;">
<template #suffix>澶�</template>
@@ -49,14 +49,14 @@
</el-input>
</el-form-item>
</el-col>
- <el-col :span="8">
+ <el-col :span="8" v-if="workmanshipForm.processTypeName != '娴嬮噺'">
<el-form-item label="鍑嗗宸ユ椂">
<el-input v-model="workmanshipForm.prepareTime">
<template #suffix>鍒�</template>
</el-input>
</el-form-item>
</el-col>
- <el-col :span="8">
+ <el-col :span="8" v-if="workmanshipForm.processTypeName != '娴嬮噺'">
<el-form-item label="瑁呭嵏宸ユ椂">
<el-input v-model="workmanshipForm.disassemblyTime">
<template #suffix>鍒�</template>
@@ -70,7 +70,7 @@
</el-input>
</el-form-item>
</el-col>
- <el-col :span="12">
+ <el-col :span="12" v-if="workmanshipForm.processTypeName != '娴嬮噺'">
<el-form-item label="鍔犲伐绋嬪簭">
<el-tree-select
v-if="workmanshipForm.isSelectProgramFiles"
@@ -89,12 +89,12 @@
<el-input v-if="!workmanshipForm.isSelectProgramFiles" v-model="workmanshipForm.programName"></el-input>
</el-form-item>
</el-col>
- <el-col :span="12">
+ <el-col :span="12" v-if="workmanshipForm.processTypeName != '娴嬮噺'">
<el-form-item label="">
<el-checkbox v-model="workmanshipForm.isSelectProgramFiles" label="閫夋嫨绋嬪簭鏂囦欢" size="small"/>
</el-form-item>
</el-col>
- <el-col :span="12">
+ <el-col :span="12" v-if="workmanshipForm.processTypeName != '娴嬮噺'">
<el-form-item label="宸ヨ壓鍖�">
<el-tree-select
@change = "bagIdChange"
@@ -109,6 +109,25 @@
:props="{ label: 'name' }"
style="width:100%;"
:render-after-expand="false" />
+ </el-form-item>
+ </el-col>
+ <el-col :span="24" v-if="workmanshipForm.processTypeName == '娴嬮噺'">
+ <el-form-item label="娴嬮噺鏂瑰紡">
+ <el-checkbox-group v-model="workmanshipForm.checkListData" class="flexColumn">
+ <el-checkbox v-for="item in checkList" :label="item.name"></el-checkbox>
+ </el-checkbox-group>
+ </el-form-item>
+ <el-input-number v-model="workmanshipForm.meaMethodValue" :min="1" :max="10" />
+ <span style="margin-left: 12px;">缁存姢涓�0锛屽垯涓哄繀妫�宸ュ簭锛涚淮鎶や负闈�0锛屽垯涓洪娆℃娊妫�</span>
+ </el-col>
+ <el-col :span="24" v-if="workmanshipForm.processTypeName == '娴嬮噺'">
+ <el-form-item label="涓嶅悎鏍煎鐞嗘柟寮�">
+ <el-radio-group v-model="workmanshipForm.handlerMethod" class="flexColumn">
+ <el-radio :label="0">鍑虹嚎</el-radio>
+ <el-radio :label="1">杩旂嚎锛屼笂涓�搴忚繑宸�</el-radio>
+ <el-radio :label="2">杩旂嚎锛屾墽琛屽悗缁伐搴�</el-radio>
+ <el-radio :label="3">HMI閫夋嫨</el-radio>
+ </el-radio-group>
</el-form-item>
</el-col>
<el-col :span="24">
@@ -172,7 +191,7 @@
</el-table-column>
</el-table>
</el-col>
- <el-col :span="24">
+ <el-col :span="24" v-if="workmanshipForm.processTypeName != '娴嬮噺'">
<el-form-item label="鍒�鍏�">
<el-button type="primary" size="small" @click="isShowFirstTools = true" :disabled="isShowFirstTools">鍏宠仈鍒�鍏�</el-button>
<el-button size="small">鎵归噺鍏宠仈</el-button>
@@ -214,7 +233,7 @@
</el-row>
</el-col>
<!-- 鍒�鍏穞able -->
- <el-col :span="24">
+ <el-col :span="24" v-if="workmanshipForm.processTypeName != '娴嬮噺'">
<el-table ref="multipleTableRef" :data="tools" border style="width: 100%;" class="multipleTableRef">
<el-table-column prop="code" label="鍒�鍏风被鍨�">
<template #default="scope">
@@ -281,7 +300,11 @@
testList: [],
processCodeList: [],
processNameList: [],
+ checkList: [{name:'棰戞鎶芥',code: 0},{name: '淇″彿鎶芥',code: 1},{name: '棣栦欢妫�',code: 2},{name: '鏈欢妫�',code: 3}],
workmanshipForm: {
+ checkListData: [], //娴嬮噺
+ meaMethodValue: null, //娴嬮噺
+ handlerMethod: "", //娴嬮噺
processCode: "",
processId: "",
processName: "",
@@ -394,6 +417,18 @@
obj.id = "";
obj.fixtures = this.fixtures;
obj.tools = this.tools;
+ console.log(this.workmanshipForm.checkListData)
+ //for娴嬮噺
+ var meaMethodArray = [];
+ for (let name of this.workmanshipForm.checkListData) {
+ for (let item of this.checkList) {
+ if (item.name === name) {
+ meaMethodArray.push(item.code);
+ }
+ }
+ }
+ obj.meaMethod = meaMethodArray.join(",");
+ return;
this.$HTTP.post(`/api/blade-cps/production-craft-process/insert?versionId=${this.craftId}`,[obj]).then(res=> {
if(res.code == 200) {
this.$emit('success', obj);
@@ -518,9 +553,20 @@
setData(data) {
this.$HTTP.get(`/api/blade-cps/production-craft-process/get/${data.id}`).then(res=> {
if(res.code == 200) {
+ //for娴嬮噺
+ var meaMethodArray = [];
+ for (let name of res.data.meaMethod) {
+ for (let item of this.checkList) {
+ if (item.code === name) {
+ meaMethodArray.push(item.name);
+ }
+ }
+ }
this.workmanshipForm = res.data;
+ this.workmanshipForm.checkListData = meaMethodArray;
this.fixtures = res.data.fixtures;
this.tools = res.data.tools;
+ console.log(res.data,123)
}
})
@@ -530,4 +576,9 @@
</script>
<style scoped>
+.flexColumn {
+ display: flex;
+ flex-direction: column;
+ align-items: flex-start;
+}
</style>
\ No newline at end of file
diff --git a/src/views/console/product-process/process-route/workmanship.vue b/src/views/console/product-process/process-route/workmanship.vue
index 11d8534..6bcf9a0 100644
--- a/src/views/console/product-process/process-route/workmanship.vue
+++ b/src/views/console/product-process/process-route/workmanship.vue
@@ -2,7 +2,7 @@
* @Author: lzhe lzhe@example.com
* @Date: 2024-05-24 11:25:26
* @LastEditors: lzhe lzhe@example.com
- * @LastEditTime: 2024-05-24 15:05:44
+ * @LastEditTime: 2024-05-27 16:58:03
* @FilePath: /src/views/console/product-process/process-route/workmanship.vue
* @Description: 杩欐槸榛樿璁剧疆,璇疯缃甡customMade`, 鎵撳紑koroFileHeader鏌ョ湅閰嶇疆 杩涜璁剧疆: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
@@ -13,13 +13,13 @@
<div style="margin-bottom: 12px;">
<el-button type="primary" @click="table_open">鏂板</el-button>
<el-button type="primary" v-if="isCustomization" @click="determineVersion">瀹氱増</el-button>
- <el-button disabled>骞跺簭</el-button>
+ <el-button :disabled="mergeDisabled" @click="mergeBtn">骞跺簭</el-button>
</div>
- <el-table ref="multipleTableRef0" :data="tableData" border style="width: 100%" class="multipleTableRef" @selection-change="HandleSelectionChange" @row-click="rowClick">
- <el-table-column type="selection" width="55" />
+ <el-table ref="multipleTableRef0" :data="tableData" row-key="id" border :tree-props="{ children: 'children', hasChildren: 'has' }" style="width: 100%" class="multipleTableRef" @selection-change="HandleSelectionChange" @row-click="rowClick" default-expand-all>
+ <el-table-column type="selection" :selectable="setSelectable" width="55" />
<el-table-column prop="index" label="宸ュ簭椤哄簭">
<template #default="scope">
- <span>{{scope.row.index}}</span>
+ <span>{{scope.row.index || "-"}}</span>
</template>
</el-table-column>
<el-table-column prop="processCode" label="宸ュ簭缂栧彿"></el-table-column>
@@ -27,7 +27,8 @@
<el-table-column fixed="right" label="鎿嶄綔" width="200px">
<template #default="scope">
<el-button text type="primary" size="small" @click="table_edit(scope.row, scope.$index)">缂栬緫</el-button>
- <el-button text type="primary" size="small" @click="table_del(scope.row, scope.$index)">鍒犻櫎</el-button>
+ <el-button text type="primary" size="small" @click="table_del(scope.row, scope.$index)" v-if="scope.row.index">鍒犻櫎</el-button>
+ <el-button text type="primary" size="small" @click="table_remove(scope.row, scope.$index)" v-if="!scope.row.index">绉婚櫎</el-button>
</template>
</el-table-column>
</el-table>
@@ -49,17 +50,49 @@
<add-workmanship ref="addworkmanship" @success="handleSuccess" :isClear="isClear" :craftId="craftId"></add-workmanship>
</div>
</el-drawer>
+ <!-- 骞跺簭寮圭獥 -->
+ <el-dialog title="骞跺簭" v-model="mergeVisible" :width="500" destroy-on-close>
+ <el-form :inline="true" ref="mergeVisibleData" :model="mergeVisibleData" :rules="mergeVisibleRules" label-width="80px">
+ <el-row>
+ <el-col :span="24">
+ <el-form-item label="宸ュ簭缂栧彿" prop="processCode" style="width: 100%">
+ <el-input v-model="mergeVisibleData.processCode" placeholder="璇疯緭鍏ュ伐搴忕紪鍙�" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="24">
+ <el-form-item label="宸ュ簭鍚嶇О" prop="processName" style="width: 100%">
+ <el-input v-model="mergeVisibleData.processName" placeholder="璇疯緭鍏ュ伐搴忓悕绉�" clearable></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <template #footer>
+ <el-button @click="cencelMerge" >鍙栨秷</el-button>
+ <el-button v-if="mode!='show'" type="primary" :loading="isSaveing" @click="mergeSubmit">纭畾</el-button>
+ </template>
+ </el-dialog>
</template>
<script>
import addWorkmanship from './addWorkmanship'
import saveDialog from './addWorking'
+import { rowProps } from 'element-plus';
export default {
name: 'workmanship',
components: {saveDialog,addWorkmanship},
props: ["isCustomization","craftId"],
data() {
return {
+ mergeVisibleData: {
+ processCode: "",
+ processName: ""
+ },
+ mergeVisibleRules: {
+ processCode:[{required: true, message: '璇疯緭鍏ュ伐搴忕紪鍙�'}],
+ processName:[{required: true, message: '璇疯緭鍏ュ伐搴忓悕绉�'}]
+ },
+ mergeVisible: false,
+ mergeDisabled: true,
isClear: false,
drawer: false,
tableData: [],
@@ -79,18 +112,71 @@
}
},
methods: {
+ setSelectable(row,rowIndex) {
+ return !row.children && row.index;
+ },
+ cencelMerge() {
+ this.mergeVisible=false;
+ this.mergeVisibleData = {
+ processCode: "",
+ processName: ""
+ };
+ },
+ mergeSubmit() {
+ var that = this;
+ this.selection.forEach(item=> {
+ item.versionProcessId = item.id;
+ });
+ var obj = {
+ parallelVO: this.selection,
+ processCode: this.mergeVisibleData.processCode,
+ processName: this.mergeVisibleData.processName,
+ sort: 1,
+ versionId: this.craftId
+ }
+ this.$refs.mergeVisibleData.validate(async (valid) => {
+ if (valid) {
+ that.$HTTP.post("/api/blade-cps/production-craft-process/save-parallel",obj).then(res=> {
+ if(res.code == 200) {
+ that.mergeVisible = false;
+ that.$message.success("鎿嶄綔鎴愬姛");
+ that.getcraftlList();
+
+ }else {
+ that.$alert(res.message, "鎻愮ず", {type: 'error'});
+ }
+ })
+ }else{
+ return false;
+ }
+ })
+ },
+ mergeBtn() {
+ this.mergeVisible = true;
+ },
handleSuccess(value) {
this.drawer = false;
this.isClear = false;
this.getcraftlList();
},
getcraftlList() {
- this.$HTTP.get(`/api/blade-cps/production-craft-version/detail/${this.craftId}`).then(res=> {
+ // this.$HTTP.get(`/api/blade-cps/production-craft-version/detail/${this.craftId}`).then(res=> {
+ // if(res.code == 200) {
+ // res.data.processList.forEach((item,index)=> {
+ // item.index = index + 1;
+ // });
+ // this.tableData = res.data.processList;
+ // }
+ // })
+ this.$HTTP.get(`/api/blade-cps/production-craft-process/child-tree?versionId=${this.craftId}`).then(res=> {
if(res.code == 200) {
- res.data.processList.forEach((item,index)=> {
+ res.data.forEach((item,index)=> {
+ if(item.children && item.children.length > 0) {
+ item.disabled = true;
+ }
item.index = index + 1;
- });
- this.tableData = res.data.processList;
+ })
+ this.tableData = res.data;
}
})
},
@@ -103,12 +189,13 @@
this.$confirm(`宸ヨ壓璺嚎瀹氱増鍚庯紝涓嶆敮鎸佺紪杈戙�佸垹闄ゃ�佹坊鍔犲伐搴忥紝璇风‘璁ゆ槸鍚﹀畾鐗�?`, '', {
type: 'warning'
}).then(() => {
- // this.$HTTP.delete("/api/blade-cps/production-craft-version/remove/"+that.delIconId).then(res=> {
- // if(res.code == 200) {
- // that.$message.success("鎿嶄綔鎴愬姛");
- // that.getDetail();
- // }
- // })
+ this.$HTTP.put(`/api/blade-cps/production-craft-version/fix-version/${this.craftId}`).then(res=> {
+ if(res.code == 200) {
+ that.$message.success("鎿嶄綔鎴愬姛");
+ }else {
+ this.$message.error(res.msg);
+ }
+ })
}).catch(() => {
})
@@ -126,6 +213,11 @@
},
HandleSelectionChange(selection) {
this.selection = selection;
+ if(this.selection.length >= 2) {
+ this.mergeDisabled = false;
+ }else {
+ this.mergeDisabled = true;
+ }
},
table_open() {
if(this.isCustomization) { //棣栭〉鐨勬柊寤�
@@ -163,6 +255,37 @@
}).catch(() => {
})
+ },
+ table_remove(row,index) {
+ var that = this;
+ var tableData = [];
+ this.tableData.forEach(item=> {
+ if(item.children && item.children.lenght !=0) {
+ item.children.forEach(item1=> {
+ tableData.push(item1);
+ })
+ }else {
+ tableData.push(item);
+ }
+ })
+ this.$confirm(`姝ゅ伐搴忕Щ闄ゅ悗锛屽師骞跺簭灏嗕細杞寲涓哄父瑙勫簭銆傜‘瀹氱Щ闄ゅ悧锛焋, '', {
+ type: 'warning'
+ }).then(() => {
+ var obj = {
+ mainProcess: [],
+ normalProcess: tableData,
+ removeIds: [row.parentId],
+ versionId: that.craftId
+ }
+ this.$HTTP.post(`/api/blade-cps/production-craft-process/child-process-update`,obj).then(res=> {
+ if(res.code == 200) {
+ that.$message.success("鎿嶄綔鎴愬姛");
+ that.getcraftlList();
+ }
+ })
+ }).catch(() => {
+
+ })
}
}
}
--
Gitblit v1.9.3