From 4d8049330f1378c87115a7fcb66265f815b49801 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期三, 13 九月 2023 16:52:06 +0800
Subject: [PATCH] modified: src/assets/api/controller.js modified: src/components/view/standard-table/material.vue modified: src/components/view/standard-table/product.vue modified: src/components/view/standard-table/target.vue modified: src/components/view/standard-table/technology.vue modified: src/components/view/standard.vue
---
src/components/view/mbom.vue | 433 +++++++++++++++++++++++++++---------------------------
1 files changed, 216 insertions(+), 217 deletions(-)
diff --git a/src/components/view/mbom.vue b/src/components/view/mbom.vue
index 570c088..b608179 100644
--- a/src/components/view/mbom.vue
+++ b/src/components/view/mbom.vue
@@ -1,127 +1,96 @@
<template>
<div class="record_content">
<div class="title">
- <el-row>
+ <el-row>
<el-col :span="12" style="line-height: 32px;">鐗╂枡娓呭崟缁存姢</el-col>
<el-col :span="12" style="text-align: right;">
<el-button type="primary" icon="el-icon-plus" style="background: #004EA2;" @click="event">鏂板</el-button>
- <el-button icon="el-icon-delete" @click="dels" >鍒犻櫎</el-button>
+ <el-button icon="el-icon-delete" @click="dels">鍒犻櫎</el-button>
</el-col>
</el-row>
</div>
<div>
- <el-dialog
- title="鐗╂枡娓呭崟鐨勭淮鎶�"
- :visible.sync="dialogVisible"
- width="80%"
- :before-close="handleClose" :center="true">
- <div>
- <el-form>
- <el-row :gutter="2">
- <el-col :span="8">
- <el-form-item label="绫诲瀷:">
- <el-select v-model="search.type" size="small" placeholder="璇烽�夋嫨" style="width: 224px;margin-right: 30px;">
- <el-option label="姗¤兌杩炴帴鍣�" :value="0"></el-option>
- <el-option label="閲戝睘杩炴帴鍣�" :value="1"></el-option>
- <el-option label="婀挎彃鎷旂數杩炴帴鍣�" :value="2"></el-option>
- <el-option label="鍒嗘敮缁勪欢" :value="3"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="宸ュ簭">
- <template>
- <el-select v-model="search.work"
- placeholder="璇烽�夋嫨"
- allow-create
- filterable
- @change="workevent"
- >
- <el-option
- v-for="(item,index) in process"
- :key="item.name"
- :label="item.name"
- :value="item.name">
- </el-option>
- </el-select>
- </template>
- </el-form-item>
- </el-col>
- <el-col :span="8">
- <el-form-item label="宸ヨ壓鍚嶇О:">
- <el-select v-model="search.craft" size="small" placeholder="璇烽�夋嫨" style="width: 224px;margin-right: 30px;">
- <el-option
- v-for="item in craftapi"
- :key="item.id"
- :label="item.name"
- :value="item.id">
- </el-option>
- </el-select>
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- <el-button size="mini" @click="Addrow" >娣诲姞琛�</el-button>
- </div>
- <div style="margin: 10px 0px;">
- <template>
- <el-table
- border
- :data="tableapi"
- height="calc(80vh - 250px)"
- style="width: 100%">
- <el-table-column type="index" label="搴忓彿" width="70">
- </el-table-column>
- <el-table-column
- prop="date"
- label="渚涘簲鍟嗗悕绉�"
- width="180">
- <template slot-scope="scope">
- <el-input v-model="scope.row.supplier" placeholder="" ></el-input>
- </template>
- </el-table-column>
- <el-table-column
- prop=""
- label="璐ㄩ噺杩芥函鍙�"
- width="180">
- <template slot-scope="scope">
- <el-input v-model="scope.row.qualityTraceability" placeholder="" ></el-input>
- </template>
- </el-table-column>
- <el-table-column
- prop="name"
- label="鍘熸潗鏂欏悕绉�">
- <template slot-scope="scope">
- <el-input v-model="scope.row.name" placeholder="" ></el-input>
- </template>
- </el-table-column>
- <el-table-column
- prop="address"
- label="瑙勬牸鍨嬪彿">
- <template slot-scope="scope">
- <el-input v-model="scope.row.specifications" placeholder="" ></el-input>
- </template>
- </el-table-column>
- <el-table-column
- prop="unit"
- label="鍗曚綅">
- <template slot-scope="scope">
- <el-input v-model="scope.row.unit" placeholder="" ></el-input>
- </template>
- </el-table-column>
- </el-table>
- </template>
- </div>
- <span slot="footer" class="dialog-footer">
- <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
- <el-button type="primary" @click="skipshow">纭� 瀹�</el-button>
- </span>
- </el-dialog>
- </div>
-
+ <el-dialog title="鐗╂枡娓呭崟鐨勭淮鎶�" :visible.sync="dialogVisible" width="80%" :before-close="handleClose" :center="true">
+ <div>
+ <el-form>
+ <el-row :gutter="2">
+ <el-col :span="8">
+ <el-form-item label="绫诲瀷:">
+ <el-select v-model="search.type" size="small" placeholder="璇烽�夋嫨"
+ style="width: 224px;margin-right: 30px;">
+ <el-option label="姗¤兌杩炴帴鍣�" :value="0"></el-option>
+ <el-option label="閲戝睘杩炴帴鍣�" :value="1"></el-option>
+ <el-option label="婀挎彃鎷旂數杩炴帴鍣�" :value="2"></el-option>
+ <el-option label="鍒嗘敮缁勪欢" :value="3"></el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="宸ュ簭">
+ <template>
+ <el-select v-model="search.work" placeholder="璇烽�夋嫨" allow-create filterable @change="workevent">
+ <el-option v-for="(item,index) in process" :key="item.name" :label="item.name" :value="item.name">
+ </el-option>
+ </el-select>
+ </template>
+ </el-form-item>
+ </el-col>
+ <el-col :span="8">
+ <el-form-item label="宸ヨ壓鍚嶇О:">
+ <el-select v-model="search.craft" size="small" placeholder="璇烽�夋嫨"
+ style="width: 224px;margin-right: 30px;">
+ <el-option v-for="item in craftapi" :key="item.id" :label="item.name" :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ </el-col>
+ </el-row>
+ </el-form>
+ <el-button size="mini" @click="Addrow">娣诲姞琛�</el-button>
+ </div>
+ <div style="margin: 10px 0px;">
+ <template>
+ <el-table border :data="tableapi" height="calc(80vh - 250px)" style="width: 100%">
+ <el-table-column type="index" label="搴忓彿" width="70">
+ </el-table-column>
+ <el-table-column prop="date" label="渚涘簲鍟嗗悕绉�" width="180">
+ <template slot-scope="scope">
+ <el-input v-model="scope.row.supplier" placeholder=""></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="" label="璐ㄩ噺杩芥函鍙�" width="180">
+ <template slot-scope="scope">
+ <el-input v-model="scope.row.qualityTraceability" placeholder=""></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="name" label="鍘熸潗鏂欏悕绉�">
+ <template slot-scope="scope">
+ <el-input v-model="scope.row.name" placeholder=""></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="address" label="瑙勬牸鍨嬪彿">
+ <template slot-scope="scope">
+ <el-input v-model="scope.row.specifications" placeholder=""></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column prop="unit" label="鍗曚綅">
+ <template slot-scope="scope">
+ <el-input v-model="scope.row.unit" placeholder=""></el-input>
+ </template>
+ </el-table-column>
+ </el-table>
+ </template>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="skipshow">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
+ </div>
<div class="choose">
- <span>绫诲瀷锛�</span>
- <el-select v-model="search.type" size="small" @change="TYpe" placeholder="璇烽�夋嫨" style="width: 224px;margin-right: 30px;">
+ <span>绫诲瀷锛�</span>
+ <el-select v-model="search.type" size="small" @change="TYpe" placeholder="璇烽�夋嫨"
+ style="width: 224px;margin-right: 30px;">
<el-option label="姗¤兌杩炴帴鍣�" :value="0"></el-option>
<el-option label="閲戝睘杩炴帴鍣�" :value="1"></el-option>
<el-option label="婀挎彃鎷旂數杩炴帴鍣�" :value="2"></el-option>
@@ -136,10 +105,11 @@
</div>
<div class="thing">
<div class="left">
- <el-input v-model="search.technology" suffix-icon="el-icon-search" placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�" size="small" clearable ></el-input>
- <el-tree :data="list" ref="tree"
- :props="{children: 'children',label: 'name'}"
- node-key="id" default-expand-all @node-click="handleNodeClick" >
+ <el-input v-model="search.technology" @input="query" suffix-icon="el-icon-search" placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�"
+ size="small" clearable></el-input>
+ <el-tree :data="list" ref="tree" style="overflow-y: auto;" highlight-current
+ :props="{children: 'children',label: 'name'}" node-key="name" default-expand-all
+ @node-click="handleNodeClick">
<div class="custom-tree-node" slot-scope="{ node, data }">
<span><i :class="`node_i ${data.code != '[2]'?'el-icon-folder-opened':'el-icon-tickets'}`"></i>
{{data.code}} {{ data.name }}</span>
@@ -150,7 +120,7 @@
</el-tree>
</div>
<div class="right">
- <el-table :data="tableData" border style="width: 100%;overflow-y: auto;min-height: 100%" max-height="100%"
+ <el-table :data="tableData" border style="width: 100%;overflow-y: auto;min-height: 100%" max-height="100%"
@selection-change="handleSelectionChange" default-expand-all>
<el-table-column type="selection" width="50">
</el-table-column>
@@ -178,41 +148,41 @@
</div>
</template>
<script>
-export default {
+ export default {
data() {
return {
- search:{
+ search: {
type: 0,
- technology: null
+ technology: ''
},
- list:[],
- process:{},
+ list: [],
+ process: {},
// handleClose:[],
- checkTreeNode:{
- id:2,
+ checkTreeNode: {
+ id: 2,
},
- tableData:[],
- tableapi:[{
- supplier:'',
- qualityTraceability:'',
- name:'',
- specifications:'',
- unit:'',
- }],
- addsearch:{},
- upData:{},
- form:{},
- dialogVisible:false,
- typeselect:0,
- input:'',
- craftapi:[],
- }
- },
- mounted() {
- this.selectAllleft()
- this.selectAllMbom()
+ tableData: [],
+ tableapi: [{
+ supplier: '',
+ qualityTraceability: '',
+ name: '',
+ specifications: '',
+ unit: '',
+ }],
+ addsearch: {},
+ upData: {},
+ form: {},
+ dialogVisible: false,
+ typeselect: 0,
+ input: '',
+ craftapi: [],
+ }
},
- methods:{
+ mounted() {
+ this.selectAllleft()
+ this.selectAllMbom()
+ },
+ methods: {
selectDataList() {
this.list.forEach(a => {
a.code = '[1]'
@@ -229,39 +199,41 @@
})
this.upIndex++
},
- workevent(val){
- console.log(val);
- let idx = this.process.findIndex(el => el.name === val)
- this.craftapi = this.process[idx].children
- },
+ workevent(val) {
+ console.log(val);
+ let idx = this.process.findIndex(el => el.name === val)
+ this.craftapi = this.process[idx].children
+ },
//鏂板
chooseTechFath() {
- this.$axios.get(this.$api.url.chooseTechFath,{
- params:{type:this.typeselect}
- }).then(res => {
- this.process = res.data;
- console.log(this.process);
- }, {
- headers: {
- "Content-Type": "application/json"
- }
- })
+ this.$axios.get(this.$api.url.chooseTechFath, {
+ params: {
+ type: this.typeselect
+ }
+ }).then(res => {
+ this.process = res.data;
+ console.log(this.process);
+ }, {
+ headers: {
+ "Content-Type": "application/json"
+ }
+ })
},
addMbom(data) {
- this.$axios.post(this.$api.url.addMbom,data
- // {
+ this.$axios.post(this.$api.url.addMbom, data
+ // {
// name:this.tableapi.name,
// qualityTraceability:this.tableapi.qualityTraceability,
// specifications:this.tableapi.specifications,
// supplier:this.tableapi.supplier,
// techTemId:this.craftapi.id,
// unit:this.tableapi.unit,
- // }
- , {
- headers: {
- "Content-Type": "application/json"
- }
- }).then(res =>{
+ // }
+ , {
+ headers: {
+ "Content-Type": "application/json"
+ }
+ }).then(res => {
console.log(res);
this.$message.success('娣诲姞瀹屾垚')
this.selectAllMbom()
@@ -271,11 +243,11 @@
//鍒犻櫎
material(index) {
console.log(this.upData.id);
- this.$axios.post(this.$api.url.material,{
- id:this.upData.id
- }).then(res =>{
+ this.$axios.post(this.$api.url.material, {
+ id: this.upData.id
+ }).then(res => {
this.$message.success(res.message)
- this.tableData.splice(index,1)
+ this.tableData.splice(index, 1)
// console.log(res);
})
@@ -284,58 +256,69 @@
this.typeselect = val
this.selectAllleft()
},
+ query() {
+ this.selectAllleft()
+ },
//宸﹁竟
selectAllleft() {
- this.$axios.get(this.$api.url.selectAllleft,{
- params:{type:this.typeselect}
- }).then(res => {
- this.list = res.data;
- console.log(this.list);
- this.selectDataList()
- }, {
- headers: {
- "Content-Type": "application/json"
- }
- })
+ this.$axios.get(this.$api.url.selectAllleft, {
+ params: {
+ type: this.typeselect,
+ message: this.search.technology
+ }
+ }).then(res => {
+ this.list = res.data;
+ console.log(this.list);
+ this.selectDataList()
+ this.$nextTick(() => {
+ this.$refs.tree.setCurrentKey(this.list[0].children[0].name) // 榛樿閫変腑鑺傜偣绗竴涓�
+ })
+ }, {
+ headers: {
+ "Content-Type": "application/json"
+ }
+ })
},
//鍙宠竟
selectAllMbom() {
- this.$axios.get(this.$api.url.selectAllMbom,{
- params:{id:this.checkTreeNode.id}
- }).then(res => {
- this.tableData = res.data;
- console.log(this.tableData);
- }, {
- headers: {
- "Content-Type": "application/json"
- }
- })
+ this.$axios.get(this.$api.url.selectAllMbom, {
+ params: {
+ id: this.checkTreeNode.id
+ }
+ }).then(res => {
+ this.tableData = res.data;
+ console.log(this.tableData);
+ }, {
+ headers: {
+ "Content-Type": "application/json"
+ }
+ })
},
- handleNodeClick(data){
- this.checkTreeNode = data
+ handleNodeClick(data) {
+ this.checkTreeNode = data
console.log(this.checkTreeNode.id);
this.selectAllMbom()
- },
+ },
handleClose(done) {
this.$confirm('纭鍏抽棴锛�')
- .then(_ => {
- done();
- })
- .catch(_ => {});
+ .then(_ => {
+ done();
+ })
+ .catch(_ => {});
},
- event(){
- this.dialogVisible = true
+ event() {
+ this.dialogVisible = true
this.chooseTechFath()
- },
- Addrow() {
- if (this.tableapi == undefined) {
- this.tableapi = new Array();
- }
- let obj = [];
-
- this.tableapi.push(obj);
},
- skipshow(){
+ Addrow() {
+ if (this.tableapi == undefined) {
+ this.tableapi = new Array();
+ }
+ let obj = [];
+
+ this.tableapi.push(obj);
+ },
+ skipshow() {
console.log('666');
let data = this.tableapi.at(-1)
// this.addMbom()
@@ -344,8 +327,16 @@
// console.log(data);
this.addMbom(data)
-
+
this.dialogVisible = false
+ },
+ //delAllMbom 鎵归噺鍒犻櫎
+ delAllMbom() {
+ this.$axios.post(this.$api.url.delAllMbom, {
+ ids: this.delete
+ }).then(res => {
+ this.selectAllMbom()
+ })
},
dels() {
this.selects.forEach(a => {
@@ -356,6 +347,12 @@
}
}
})
+ let cc = this.selects.map(el => {
+ return el.id
+ })
+ this.delete = cc.join(',')
+ console.log(this.delete);
+ this.delAllMbom()
this.$message.success('鍒犻櫎瀹屾垚')
},
handleSelectionChange(val) {
@@ -369,8 +366,8 @@
this.material(index)
},
- }
- }
+ }
+ }
</script>
<style scoped>
@@ -389,7 +386,8 @@
.title * {
font-size: 16px;
}
- .choose-1{
+
+ .choose-1 {
padding: 5px 24px;
display: flex;
align-items: center;
@@ -428,6 +426,7 @@
height: calc(100% - 20px);
border-right: 3px solid rgb(245, 247, 251);
padding: 16px;
+ overflow-y: auto;
}
.thing .left .custom-tree-node span {
@@ -486,4 +485,4 @@
height: 30px;
border-radius: 2px;
}
-</style>
+</style>
\ No newline at end of file
--
Gitblit v1.9.3