From 9424330fa330506d24ed84e5c3680063ca6c6a97 Mon Sep 17 00:00:00 2001
From: lzhe <lzhe@example.com>
Date: 星期一, 03 六月 2024 11:22:38 +0800
Subject: [PATCH] 1
---
src/views/console/product-process/process-route/workmanship.vue | 263 ++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 241 insertions(+), 22 deletions(-)
diff --git a/src/views/console/product-process/process-route/workmanship.vue b/src/views/console/product-process/process-route/workmanship.vue
index f3b847a..c34c8a8 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-28 11:09:17
* @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
-->
@@ -11,45 +11,89 @@
<div class="main-content-left">
<div class="info-top-title">宸ヨ壓璺嚎</div>
<div style="margin-bottom: 12px;">
- <el-button type="primary">鏂板</el-button>
- <el-button type="primary" v-if="isCustomization">瀹氱増</el-button>
- <el-button disabled>骞跺簭</el-button>
+ <el-button type="primary" @click="table_open">鏂板</el-button>
+ <el-button type="primary" v-if="isCustomization" @click="determineVersion">瀹氱増</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">
- <el-table-column type="selection" width="55" />
- <el-table-column prop="name" label="宸ュ簭椤哄簭"></el-table-column>
- <el-table-column prop="code" label="宸ュ簭缂栧彿"></el-table-column>
- <el-table-column prop="typeName" label="宸ュ簭鍚嶇О"></el-table-column>
+ <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>
+ </template>
+ </el-table-column>
+ <el-table-column prop="processCode" label="宸ュ簭缂栧彿"></el-table-column>
+ <el-table-column prop="processName" label="宸ュ簭鍚嶇О"></el-table-column>
<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_edit(scope.row, scope.$index)">鍒锋柊</el-button>
- <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_edit(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>
</div>
<div class="main-content-right">
<div class="main-info-title">宸ュ簭淇℃伅</div>
- <div class="addWorking" @click="table_open">娣诲姞宸ュ簭</div>
- <!-- <ul>
+ <div class="addWorking" @click="table_open" v-if="!isCustomization">娣诲姞宸ュ簭</div>
+ <ul v-if="isCustomization">
<li>宸ュ簭缂栧彿<span></span></li>
<li>宸ュ簭鍚嶇О<span></span></li>
<li>宸ュ簭椤哄簭<span></span></li>
- </ul> -->
+ </ul>
</div>
</div>
<save-dialog v-if="dialog.save" ref="saveDialog" @success="addRouteSuccess" @closed="dialog.save=false"></save-dialog>
+ <el-drawer v-model="drawer" title="娣诲姞宸ュ簭" direction="rtl" :before-close="handleClose" size="60%" modal-class="viewData">
+ <!-- 鏂板璺嚎 -->
+ <div class="addworkmanship">
+ <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'
export default {
name: 'workmanship',
- components: {saveDialog},
- props: ["isCustomization"],
+ 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: [],
selection: [],
dialog: {
@@ -58,16 +102,188 @@
}
},
mounted(){
-
+ },
+ watch: {
+ craftId(val) {
+ if(val) {
+ this.getcraftlList();
+ }
+ }
},
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=> {
+ // 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.forEach((item,index)=> {
+ if(item.children && item.children.length > 0) {
+ item.disabled = true;
+ }
+ item.index = index + 1;
+ })
+ this.tableData = res.data;
+ }
+ })
+ },
+ handleClose(done) {
+ this.isClear = true;
+ done();
+ },
+ determineVersion() {
+ var that = this;
+ this.$confirm(`宸ヨ壓璺嚎瀹氱増鍚庯紝涓嶆敮鎸佺紪杈戙�佸垹闄ゃ�佹坊鍔犲伐搴忥紝璇风‘璁ゆ槸鍚﹀畾鐗�?`, '', {
+ type: 'warning'
+ }).then(() => {
+ 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(() => {
+
+ })
+ },
+ rowClick(row, column, event) {
+ // this.id = row.id;
+ // this.getWorkDetail();
+ // this.getPage1();
+ },
+ addRouteSuccess(selection) {
+ selection.forEach((item,i)=> {
+ item.index = i+1;
+ })
+ this.tableData = selection;
+ },
HandleSelectionChange(selection) {
this.selection = selection;
+ if(this.selection.length >= 2) {
+ this.mergeDisabled = false;
+ }else {
+ this.mergeDisabled = true;
+ }
},
table_open() {
- this.dialog.save = true
- this.$nextTick(() => {
- this.$refs.saveDialog.open();
+ if(this.isCustomization) { //棣栭〉鐨勬柊寤�
+ this.drawer = true;
+ }else { //鐗堟湰姝ラ涓殑鏂板缓
+ this.dialog.save = true
+ this.$nextTick(() => {
+ this.$refs.saveDialog.open();
+ })
+ }
+ },
+ table_edit(row,index) {
+ this.drawer = true;
+ this.$nextTick(()=> {
+ this.$refs.addworkmanship.setData(row);
+ })
+ },
+ table_del(row,index) {
+ var that = this;
+ this.$confirm(`纭瑕佸垹闄ゆ宸ュ簭鍚�?`, '', {
+ type: 'warning'
+ }).then(() => {
+ var obj = {
+ mainProcess: [],
+ normalProcess: that.tableData,
+ removeIds: [row.id],
+ 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(() => {
+
+ })
+ },
+ 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(() => {
+
})
}
}
@@ -89,7 +305,7 @@
color: #333;
}
.main-content-left {
- width: 70%;
+ width: 60%;
}
.main-content-right {
flex: 1;
@@ -120,4 +336,7 @@
font-size: 14px;
cursor: pointer;
}
+.addworkmanship {
+ padding: 0 40px;
+}
</style>
--
Gitblit v1.9.3