From b67171800ece6f3bbd9b15874c49e8532ae32702 Mon Sep 17 00:00:00 2001
From: lzhe <181968431@qq.com>
Date: 星期四, 23 五月 2024 06:54:00 +0800
Subject: [PATCH] 1
---
src/views/console/bom-list/index.vue | 246 ++++++++++++++++++++++----
src/views/console/product-process/process-route.vue | 260 ++++++++++++++++++++++++++++
2 files changed, 465 insertions(+), 41 deletions(-)
diff --git a/src/views/console/bom-list/index.vue b/src/views/console/bom-list/index.vue
index 31029aa..f6aaf40 100644
--- a/src/views/console/bom-list/index.vue
+++ b/src/views/console/bom-list/index.vue
@@ -1,47 +1,50 @@
<template>
- <div class="rolePage">
+ <div class="bomPage">
<div class="roleContainer">
- <div class="roleContainer-title">浜у搧鍒楄〃</div>
- <el-input v-model="keyword" prefix-icon="el-icon-search" placeholder="杈撳叆鎼滅储鍐呭" clearable @keyup.enter="searchBtn"></el-input>
- <ul>
- <li v-for="(item,index) in leftData" @click="changeTabaleLi(item,index)">
- <span :class="{active: item.active}">{{item.roleName}}</span>
+ <div class="bomContainer-title">浜у搧鍒楄〃</div>
+ <el-input v-model="keyword" size="small" prefix-icon="el-icon-search" placeholder="杈撳叆鎼滅储鍐呭" clearable @keyup.enter="searchBtn"></el-input>
+ <ul class="left-ul">
+ <li v-for="(item,index) in leftData" :class="{active: item.active}" @click="changeTabaleLi(index)">
+ <span>銆恵{item.code}}銆憑{item.name}}</span>
</li>
</ul>
</div>
- <div class="role-main-tabs">
- <div class="role-main-header">
- <div class="roleContainer-title">BOM娓呭崟</div>
- <div>
- <div>BOM鐗堟湰</div>
- <div>
- <span>浜у搧鍚嶇О</span>
- <span>浜у搧缂栧彿</span>
+ <div class="bom-main-tabs">
+ <div class="bom-main-header">
+ <div class="bomContainer-title">BOM娓呭崟</div>
+ <div style="padding: 20px;border-bottom: 1px solid #dee;">
+ <div class="main-info">
+ <div class="main-info-title">BOM 鐗堟湰</div>
+ <div class="main-info-tooltip">
+ <div class="main-info-item"><span style="background-color: yellow"></span><span>鏈畾鐗�</span></div>
+ <div class="main-info-item"><span style="background-color: #b7c9f3"></span><span>宸插畾鐗�</span></div>
+ </div>
+ </div>
+ <div class="main-info-conent">
+ <span>浜у搧鍚嶇О<span>{{info.name}}</span></span>
+ <span>浜у搧缂栧彿<span>{{info.code}}</span></span>
</div>
<div>
- <span>鏈畾鐗�</span>
- <span>宸插畾鐗�</span>
- </div>
- <div>
- 娣诲姞鏂扮増鏈�
+ <el-button type="primary" @click="addVis">娣诲姞鏂扮増鏈�</el-button>
</div>
</div>
</div>
- <el-tabs tab-position="top">
- <div>
- <div>BOM娓呭崟鍒楄〃</div>
+ <div class="bom-main-content">
+ <div class="main-content-left">
+ <div class="bomContainer-title">BOM娓呭崟鍒楄〃</div>
+ <div></div>
</div>
- <div>
+ <div class="main-content-right">
<ul>
- <li>鐗╂枡缂栧彿</li>
- <li>鐗╂枡鍚嶇О</li>
- <li>瑙勬牸</li>
- <li>璁¢噺鍗曚綅</li>
- <li>鐗╂枡绫诲瀷</li>
- <li>鐗╂枡灞炴��</li>
- <li>鏄惁蹇呮</li>
- <li>棰濆畾搴撳瓨</li>
- <li>瀹夊叏搴撳瓨</li>
+ <li>鐗╂枡缂栧彿<span>-</span></li>
+ <li>鐗╂枡鍚嶇О<span>-</span></li>
+ <li>瑙勬牸<span>-</span></li>
+ <li>璁¢噺鍗曚綅<span>-</span></li>
+ <li>鐗╂枡绫诲瀷<span>-</span></li>
+ <li>鐗╂枡灞炴��<span>-</span></li>
+ <li>鏄惁蹇呮<span>-</span></li>
+ <li>棰濆畾搴撳瓨<span>-</span></li>
+ <li>瀹夊叏搴撳瓨<span>-</span></li>
</ul>
<el-table ref="multipleTableRef0" :data="tableData" border style="width: 100%" class="multipleTableRef">
<el-table-column prop="name" label="宸ュ簭缂栧彿"></el-table-column>
@@ -51,44 +54,205 @@
<el-table-column prop="standardModel" 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_edit(scope.row, scope.$index)">鍒犻櫎</el-button> -->
</template>
</el-table-column>
</el-table>
</div>
- </el-tabs>
+ </div>
</div>
+ <el-dialog title="" v-model="visible" :width="360" class="visible-model">
+ <el-form :model="routeForm" :rules="routeRules" ref="dialogForm" label-width="120px"
+ label-position="center">
+ <el-row>
+ <el-col :span="24">
+ <el-form-item label="宸ヨ壓璺嚎鐗堟湰" prop="test">
+ <el-select v-model="routeForm.test" style="width: 100%" placeholder="璇烽�夋嫨">
+ <el-option v-for="item in testList" :key="item.id" :label="item.title" :value="item.id"/>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <template #footer>
+ <el-button @click="visible = false">鍙栨秷</el-button>
+ <el-button type="primary" :loading="isSaveing" @click="routeSubmit">纭畾</el-button>
+ </template>
+ </el-dialog>
</div>
</template>
<script>
export default {
name: 'BOM',
- components: {
-
- },
+ components: {},
data() {
return {
+ testList: [],
+ routeForm: {
+ test: ""
+ },
+ routeRules: {
+ test: [
+ { required: true, message: "璇烽�夋嫨宸ヨ壓璺嚎鐗堟湰" }
+ ]
+ },
+ visible: false,
leftData: [],
dialog: {
save: false,
permission: false
},
+ info: {},
tableData: []
}
},
mounted(){
-
+ this.getLeftTree();
},
methods: {
+ routeSubmit() {
+ this.$refs.dialogForm.validate(async (valid) => {
+ if (valid) {
+ // this.$HTTP.post("/api/blade-system/data-scope/submit",obj).then(res=> {
+ // this.isSaveing = false;
+ // if(res.code == 200) {
+ // this.$emit('success', this.addDictForm, this.mode);
+ // this.visible = false;
+ // this.$message.success("鎿嶄綔鎴愬姛");
+ // }else {
+ // this.$alert(res.message, "鎻愮ず", {type: 'error'});
+ // }
+ // })
+ }else{
+ return false;
+ }
+ })
+ },
searchBtn() {},
-
+ addVis() {
+ this.visible = true;
+ },
+ changeTabaleLi(index) {
+ this.leftData.forEach(item=> {
+ item.active = false;
+ })
+ this.leftData[index].active = true;
+ this.info = this.leftData[index];
+ },
+ getLeftTree() {
+ this.$HTTP.get("/api/blade-cps/product/tree").then(res=> {
+ if(res.code == 200) {
+ this.leftData = res.data;
+ }
+ })
+ }
}
}
</script>
<style scoped>
-
+.bomPage {
+ display: flex;
+ min-height: 100%;
+ margin: 8px;
+}
+.bomContainer-title {
+ font-size: 16px;
+ text-align: center;
+ height: 38px;
+ line-height: 38px;
+ border-bottom: 1px solid #e2e2e2;
+ background-color: #409eff;
+ color: #fff;
+ border-radius: 2px 2px 0 0;
+ margin-bottom: 12px;
+}
+.roleContainer {
+ width: 240px;
+ margin-right: 8px;
+ padding: 4px;
+ background-color: #fff;
+}
+.bom-main-tabs {
+ flex: 1;
+ padding: 8px;
+ background-color: #fff;
+}
+.left-ul {
+ margin-top: 12px;
+ padding-left:30px;
+ padding-right:30px;
+}
+.left-ul li {
+ padding: 6px 6px;
+ list-style: none;
+ cursor: pointer;
+ margin-bottom: 6px;
+}
+.left-ul .active {
+ background-color: #7ab3ee;
+ display: inline-block;
+ width: 100%;
+}
+.left-ul li:hover {
+ background-color: #eff4f9;
+}
+.main-info {
+ display: flex;
+ justify-content: space-between;
+}
+.main-info-title {
+ font-size: 14px;
+ padding-left: 8px;
+ border-left: 2px solid #7ab3ee;
+}
+.main-info-tooltip {
+ display: flex;
+ font-size: 12px;
+}
+.main-info-item {
+ margin-right: 8px;
+}
+.main-info-item span:nth-child(1) {
+ width: 10px;
+ height: 10px;
+ border-radius: 50%;
+ margin-right: 4px;
+ display: inline-block;
+}
+.main-info-conent {
+ display: flex;
+ margin: 8px 0px 12px;
+}
+.main-info-conent > span {
+ margin-right: 12px;
+ font-size: 14px;
+}
+.main-info-conent > span span {
+ margin-left:12px;
+}
+.bom-main-content {
+ display: flex;
+}
+.main-content-left {
+ width: 320px;
+}
+.main-content-right {
+ flex: 1;
+}
+.main-content-right ul {
+ padding: 12px 30px;
+}
+.main-content-right ul li {
+ width: 50%;
+ float: left;
+ list-style: none;
+ margin-bottom:12px;
+}
+.main-content-right ul li span {
+ margin-left:12px;
+}
</style>
diff --git a/src/views/console/product-process/process-route.vue b/src/views/console/product-process/process-route.vue
new file mode 100644
index 0000000..0549bd5
--- /dev/null
+++ b/src/views/console/product-process/process-route.vue
@@ -0,0 +1,260 @@
+<template>
+ <div class="processPage">
+ <div class="roleContainer">
+ <div>+鏂板缓宸ヨ壓璺嚎</div>
+ <el-input v-model="keyword" size="small" prefix-icon="el-icon-search" placeholder="璇疯緭鍏ュ悕绉�" clearable @keyup.enter="searchBtn"></el-input>
+ <ul class="left-ul">
+ <li v-for="(item,index) in leftData" :class="{active: item.active}" @click="changeTabaleLi(index)">
+ <span>銆恵{item.code}}銆憑{item.name}}</span>
+ </li>
+ </ul>
+ </div>
+ <div class="process-main-tabs">
+ <div class="process-main-header">
+ <div class="main-header-label">宸ヨ壓璺嚎</div>
+ <div style="padding: 20px;border-bottom: 1px solid #dee;">
+ <div class="main-info">
+ <div class="main-info-title">宸ヨ壓璺嚎鐗堟湰</div>
+ <div class="main-info-tooltip">
+ <div class="main-info-item"><span style="background-color: yellow"></span><span>鏈畾鐗�</span></div>
+ <div class="main-info-item"><span style="background-color: #b7c9f3"></span><span>宸插畾鐗�</span></div>
+ </div>
+ </div>
+ <div>
+ <el-button type="primary" @click="addVis" disabled>娣诲姞鏂扮増鏈�</el-button>
+ </div>
+ </div>
+ </div>
+ <div>鍏宠仈浜х嚎<span>-</span></div>
+ <div class="process-main-content">
+ <div class="main-content-left">
+ <div class="main-info-title">宸ヨ壓璺嚎</div>
+ <div>
+ <el-button type="primary">鏂板</el-button>
+ <el-button type="primary">瀹氱増</el-button>
+ <el-button disabled>骞跺簭</el-button>
+ </div>
+ <el-table ref="multipleTableRef0" :data="tableData" border style="width: 100%" class="multipleTableRef">
+ <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-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> -->
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <div class="main-content-right">
+ <div class="main-info-title">宸ュ簭淇℃伅</div>
+ <ul>
+ <li>宸ュ簭缂栧彿<span>-</span></li>
+ <li>宸ュ簭鍚嶇О<span>-</span></li>
+ <li>宸ュ簭椤哄簭<span>-</span></li>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <!-- <el-dialog title="" v-model="visible" :width="360" class="visible-model">
+ <el-form :model="routeForm" :rules="routeRules" ref="dialogForm" label-width="120px"
+ label-position="center">
+ <el-row>
+ <el-col :span="24">
+ <el-form-item label="宸ヨ壓璺嚎鐗堟湰" prop="test">
+ <el-select v-model="routeForm.test" style="width: 100%" placeholder="璇烽�夋嫨">
+ <el-option v-for="item in testList" :key="item.id" :label="item.title" :value="item.id"/>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <template #footer>
+ <el-button @click="visible = false">鍙栨秷</el-button>
+ <el-button type="primary" :loading="isSaveing" @click="routeSubmit">纭畾</el-button>
+ </template>
+ </el-dialog> -->
+ </div>
+</template>
+
+<script>
+ export default {
+ name: 'BOM',
+ components: {},
+ data() {
+ return {
+ testList: [],
+ routeForm: {
+ test: ""
+ },
+ routeRules: {
+ test: [
+ { required: true, message: "璇烽�夋嫨宸ヨ壓璺嚎鐗堟湰" }
+ ]
+ },
+ visible: false,
+ leftData: [],
+ dialog: {
+ save: false,
+ permission: false
+ },
+ info: {},
+ tableData: []
+ }
+ },
+ mounted(){
+ //this.getLeftTree();
+ },
+ methods: {
+ routeSubmit() {
+ this.$refs.dialogForm.validate(async (valid) => {
+ if (valid) {
+ // this.$HTTP.post("/api/blade-system/data-scope/submit",obj).then(res=> {
+ // this.isSaveing = false;
+ // if(res.code == 200) {
+ // this.$emit('success', this.addDictForm, this.mode);
+ // this.visible = false;
+ // this.$message.success("鎿嶄綔鎴愬姛");
+ // }else {
+ // this.$alert(res.message, "鎻愮ず", {type: 'error'});
+ // }
+ // })
+ }else{
+ return false;
+ }
+ })
+ },
+ searchBtn() {},
+ addVis() {
+ this.visible = true;
+ },
+ changeTabaleLi(index) {
+ this.leftData.forEach(item=> {
+ item.active = false;
+ })
+ this.leftData[index].active = true;
+ this.info = this.leftData[index];
+ },
+ getLeftTree() {
+ this.$HTTP.get("/api/blade-cps/product/tree").then(res=> {
+ if(res.code == 200) {
+ this.leftData = res.data;
+ }
+ })
+ }
+ }
+ }
+</script>
+
+<style scoped>
+.processPage {
+ display: flex;
+ min-height: 100%;
+ margin: 8px;
+}
+.processContainer-title {
+ font-size: 16px;
+ text-align: center;
+ height: 38px;
+ line-height: 38px;
+ border-bottom: 1px solid #e2e2e2;
+ background-color: #409eff;
+ color: #fff;
+ border-radius: 2px 2px 0 0;
+ margin-bottom: 12px;
+}
+.roleContainer {
+ width: 240px;
+ margin-right: 8px;
+ padding: 4px;
+ background-color: #fff;
+}
+.process-main-tabs {
+ flex: 1;
+ padding: 8px;
+ background-color: #fff;
+}
+.left-ul {
+ margin-top: 12px;
+ padding-left:30px;
+ padding-right:30px;
+}
+.left-ul li {
+ padding: 6px 6px;
+ list-style: none;
+ cursor: pointer;
+ margin-bottom: 6px;
+}
+.left-ul .active {
+ background-color: #7ab3ee;
+ display: inline-block;
+ width: 100%;
+}
+.left-ul li:hover {
+ background-color: #eff4f9;
+}
+.main-info {
+ display: flex;
+ justify-content: space-between;
+}
+.main-header-label {
+ font-size: 14px;
+ text-align: left;
+ color: #333;
+ height: 52px;
+ border-bottom: 1px solid #dee;
+ padding: 0 16px;
+}
+.main-info-title {
+ font-size: 14px;
+ padding-left: 8px;
+ border-left: 2px solid #7ab3ee;
+}
+.main-info-tooltip {
+ display: flex;
+ font-size: 12px;
+}
+.main-info-item {
+ margin-right: 8px;
+}
+.main-info-item span:nth-child(1) {
+ width: 10px;
+ height: 10px;
+ border-radius: 50%;
+ margin-right: 4px;
+ display: inline-block;
+}
+.main-info-conent {
+ display: flex;
+ margin: 8px 0px 12px;
+}
+.main-info-conent > span {
+ margin-right: 12px;
+ font-size: 14px;
+}
+.main-info-conent > span span {
+ margin-left:12px;
+}
+.process-main-content {
+ display: flex;
+}
+.main-content-left {
+ width: 70%;
+}
+.main-content-right {
+ flex: 1;
+}
+.main-content-right ul {
+ padding: 12px 30px;
+}
+.main-content-right ul li {
+ width: 50%;
+ float: left;
+ list-style: none;
+ margin-bottom:12px;
+}
+.main-content-right ul li span {
+ margin-left:12px;
+}
+</style>
--
Gitblit v1.9.3