From 9ddf303ca99059fac2d6b83829f2d39c04d1cf5f Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期三, 13 九月 2023 18:04:20 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.22:9001/r/mom-before
---
src/components/view/technology.vue | 15
src/components/view/mbom.vue | 398 +++---
src/components/view/technical.vue | 20
src/view/index.vue | 1140 +++++++++----------
src/assets/api/controller.js | 14
src/components/view/sale.vue | 36
src/components/view/standard-table/material.vue | 52
src/components/view/standard-table/product.vue | 41
src/components/view/standard.vue | 417 +++++-
src/components/view/laboratoryManagement.vue | 206 ++-
src/components/view/self-inspection.vue | 2
src/components/view/equipmentmaintain.vue | 57
src/components/view/record-content.vue | 2
src/components/view/standard-table/target.vue | 34
src/components/view/Technicalindex.vue | 963 ++++++++--------
src/components/view/standard-table/technology.vue | 40
16 files changed, 1,907 insertions(+), 1,530 deletions(-)
diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js
index 7817ae6..cacd6d3 100644
--- a/src/assets/api/controller.js
+++ b/src/assets/api/controller.js
@@ -17,7 +17,18 @@
chooseTechByStandard:"/product/chooseTech",//鍙充笂瑙掓柊澧�-->鎶�鏈寚鏍�-->閫夋嫨宸ュ簭,宸ヨ壓
chooseFatherByStandard:"/product/chooseFather",//鍙充笂瑙掓柊澧�-->鎶�鏈寚鏍�-->閫夋嫨椤圭洰鐖剁被
addProductByStandard:"/product/add",//鍙充笂瑙掓柊澧�-->鎶�鏈寚鏍�
-
+ addMBomByStandard:"/mbom/add",//鍙充笂瑙掓柊澧�-->鐗╂枡娓呭崟
+ chooseTechByMBom:"/mbom/chooseTech",//鍙充笂瑙掓柊澧�-->鐗╂枡娓呭崟-->閫夋嫨宸ュ簭,宸ヨ壓
+ mBomWrite:"/mbom/write",//鐗╂枡娓呭崟-->鏁伴噺,绉诲紑淇濆瓨
+ chooseTechByProduct:"/technique/chooseTech",//鍙充笂瑙掓柊澧�-->鐢熶骇宸ヨ壓-->閫夋嫨宸ュ簭,宸ヨ壓
+ addTechniqueByStandard:"/technique/add",//鍙充笂瑙掓柊澧�-->鐢熶骇宸ヨ壓
+ chooseProByProduct:"/technique/choosePro",//鍙充笂瑙掓柊澧�-->鐢熶骇宸ヨ壓-->閫夋嫨椤圭洰(鐖跺瓙),鍗曚綅
+ chooseDevByProduct:"/technique/chooseDev",//鍙充笂瑙掓柊澧�-->鐢熶骇宸ヨ壓-->閫夋嫨璁惧
+ addVersion:"/material/addVersion",//娣诲姞鍚屼竴涓瀷鍙峰伐鑹鸿矾绾�,鎶�鏈寚鏍�,鐗╂枡娓呭崟,鐢熶骇宸ヨ壓鐨勭増鏈�
+ delAllByTechnology:"/technology/delAllTech",//宸ヨ壓璺嚎-鎵归噺鍒犻櫎
+ delAllByTarget:"/product/delAllPro",//鎶�鏈寚鏍�-鎵归噺鍒犻櫎
+ delAllByMBom:"/mbom/delAllMbom",//鐗╂枡娓呭崟-鎵归噺鍒犻櫎
+ delAllByProduct:"/technique/delAllTeq",//鐢熶骇宸ヨ壓-鎵归噺鍒犻櫎
// 鎶�鏈鐞�-鎶�鏈枃浠�
selectAllOrder: "/orders/selectAllOrder", //鏌ヨ鎵�鏈夎鍗曞垪琛�
selectOrderById: "/orders/selectOrderById", //鏍规嵁璁㈠崟id鏌ヨ璁㈠崟璇︽儏
@@ -149,6 +160,7 @@
delQueById:"/techniqueModel/delQueById",//鍒犻櫎
delAllQue:"/techniqueModel/delAllQue",//鎵归噺鍒犻櫎
selecQueById:"/techniqueModel/selecQueById",//缂栬緫
+ writeQueById:"/techniqueModel/writeQueById",//缂栬緫浼犲弬
}
const url = {
diff --git a/src/components/view/Technicalindex.vue b/src/components/view/Technicalindex.vue
index 9211f57..96f7f9f 100644
--- a/src/components/view/Technicalindex.vue
+++ b/src/components/view/Technicalindex.vue
@@ -1,320 +1,242 @@
<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-edit-outline" @click="modify">淇敼</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>
- <!-- 缂栬緫寮圭獥 -->
- <div>
- <el-dialog
- title="鎶�鏈寚鏍囩紪杈�"
- :visible.sync="modifyevent"
- width="40%"
- :before-close="handleClose">
- <el-form ref="form" :model="form" label-width="80px">
- <el-form-item label="绫诲瀷">
- <template>
- <el-select v-model="value" placeholder="璇烽�夋嫨" style="width: 560px;">
- <el-option
- v-for="item in options"
- :key="item.value"
- :label="item.label"
- :value="item.value">
- </el-option>
- </el-select>
- </template>
- </el-form-item>
- <el-row>
- <el-col :span="11">
- <el-form-item label="宸ュ簭">
- <el-input v-model="form.name" placeholder="璇疯緭鍏ユ垨閫夋嫨宸ュ簭"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="11" :offset="2">
- <el-form-item label="宸ヨ壓">
- <el-input v-model="form.name" placeholder="璇疯緭鍏ユ垨閫夋嫨宸ヨ壓"></el-input>
- </el-form-item>
- </el-col>
- </el-row>
+ <div style="height: calc(100% - 42px);">
+ <!-- 缂栬緫寮圭獥 -->
+ <div>
+ <el-dialog title="鎶�鏈寚鏍囩紪杈�" :visible.sync="modifyevent" width="40%" :before-close="handleClose">
+ <el-form ref="form" :model="form" label-width="80px">
+ <el-form-item label="绫诲瀷">
+ <template>
+ <el-select v-model="value" placeholder="璇烽�夋嫨" style="width: 560px;">
+ <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
+ </el-option>
+ </el-select>
+ </template>
+ </el-form-item>
+ <el-row>
+ <el-col :span="11">
+ <el-form-item label="宸ュ簭">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ユ垨閫夋嫨宸ュ簭"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="11" :offset="2">
+ <el-form-item label="宸ヨ壓">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ユ垨閫夋嫨宸ヨ壓"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
- <el-row>
- <el-col :span="11">
- <el-form-item label="椤圭洰缁�">
- <el-input v-model="form.name" placeholder="璇烽�夋嫨"></el-input>
- </el-form-item>
- </el-col>
- <el-col :span="11" :offset="2">
- <el-form-item label="椤圭洰">
- <el-input v-model="form.name" placeholder="璇疯緭鍏ラ」鐩�"></el-input>
- </el-form-item>
- </el-col>
- </el-row>
+ <el-row>
+ <el-col :span="11">
+ <el-form-item label="椤圭洰缁�">
+ <el-input v-model="form.name" placeholder="璇烽�夋嫨"></el-input>
+ </el-form-item>
+ </el-col>
+ <el-col :span="11" :offset="2">
+ <el-form-item label="椤圭洰">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ラ」鐩�"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
- <el-form-item label="鍗曚綅">
- <el-input v-model="form.name" placeholder="璇疯緭鍏ュ崟浣�" style="width: 220px;"></el-input>
- </el-form-item>
- </el-form>
- <span slot="footer" class="dialog-footer">
- <el-button @click="modifyevent = false">鍙� 娑�</el-button>
- <el-button type="primary" @click="modifyevent = false">纭� 瀹�</el-button>
- </span>
- </el-dialog>
- </div>
- <div class="choose">
- <span>绫诲瀷锛�</span>
- <el-select v-model="search.type" size="small" placeholder="璇烽�夋嫨" @change="TYpe" 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>
- <!-- <span>宸ュ簭锛�</span>
+ <el-form-item label="鍗曚綅">
+ <el-input v-model="form.name" placeholder="璇疯緭鍏ュ崟浣�" style="width: 220px;"></el-input>
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="modifyevent = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="modifyevent = false">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+ <div class="choose">
+ <span>绫诲瀷锛�</span>
+ <el-select v-model="search.type" size="small" placeholder="璇烽�夋嫨" @change="TYpe"
+ 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>
+ <!-- <span>宸ュ簭锛�</span>
<el-select v-model="search.name" size="small" placeholder="璇烽�夋嫨" style="width: 224px;margin-right: 30px;">
<el-option v-for="(a, ai) in process" key="ai" :label="a.name" :value="a.id"></el-option>
</el-select>
<el-button size="mini"><span>閲� 缃�</span></el-button>
<el-button size="mini" type="primary" style="background: #004EA2;"><span>鏌ヨ</span></el-button> -->
- </div>
- <div class="thing">
- <!-- 涓讳綋宸� -->
- <div class="left">
- <el-input v-model="search.technology"
- suffix-icon="el-icon-search"
- placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�"
- size="small"
- clearable @input="query" ></el-input>
- <el-tree :data="list" ref="tree" :props="{children: 'children',label: 'father'}" node-key="name" default-expand-all
- @node-click="handleNodeClick" highlight-current
- >
- <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>
- <!-- <el-button type="text" size="mini" @click.stop="remove(node, data)">
+ </div>
+ <div class="thing">
+ <!-- 涓讳綋宸� -->
+ <div class="left">
+ <el-input v-model="search.technology" suffix-icon="el-icon-search" placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�" size="small"
+ clearable @input="query"></el-input>
+ <el-tree :data="list" ref="tree" :props="{children: 'children',label: 'father'}" node-key="name"
+ default-expand-all @node-click="handleNodeClick" highlight-current>
+ <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>
+ <!-- <el-button type="text" size="mini" @click.stop="remove(node, data)">
<i class="el-icon-delete"></i>
</el-button> -->
- </div>
- </el-tree>
- </div>
- <!-- 涓讳綋鍙� -->
- <div class="right">
- <el-table
- :data="tableData"
- style="width: 100%;margin-bottom: 20px;"
- row-key="name"
- border
- @selection-change="handleSelectionChange"
- default-expand-all
- :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
- <el-table-column
- type="selection"
- width="55">
- </el-table-column>
- <el-table-column
- type="index"
- width="50">
- </el-table-column>
- <el-table-column
- prop="name"
- label="椤圭洰"
- sortable
- width="400px">
- <template slot-scope="scope">
- <el-tag>
- <div class="firstDiv" :style="`color: ${scope.row.children? '#16a7ff' : '#58c173'}`">
- {{ scope.row.children ? "01" : "02" }}
- </div>
- </el-tag>
- <span style="color: black">{{ scope.row.name }}</span>
+ </div>
+ </el-tree>
+ </div>
+ <!-- 涓讳綋鍙� -->
+ <div class="right">
+ <el-table :data="tableData" style="width: 100%;overflow-y: auto;min-height: 100%"
+ max-height="100%" row-key="name" border @selection-change="handleSelectionChange"
+ default-expand-all :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
+ <el-table-column type="selection" width="55">
+ </el-table-column>
+ <el-table-column type="index" width="50">
+ </el-table-column>
+ <el-table-column prop="name" label="椤圭洰" sortable width="400px">
+ <template slot-scope="scope">
+ <el-tag>
+ <div class="firstDiv" :style="`color: ${scope.row.children? '#16a7ff' : '#58c173'}`">
+ {{ scope.row.children ? "01" : "02" }}
+ </div>
+ </el-tag>
+ <span style="color: black">{{ scope.row.name }}</span>
+ </template>
+ </el-table-column>
+ <el-table-column prop="unit" label="鍗曚綅">
+ </el-table-column>
+ <el-table-column prop="address" label="鎿嶄綔" width="200px">
+ <template slot-scope="scope" style="text-align: center;">
+ <div v-if="!scope.row.children">
+ <el-button type="text" size="mini" @click="childrenClick(scope.row)">缂栬緫</el-button>
+ <el-button type="text" size="mini" @click="deleteRow(scope.$index, scope.row)">鍒犻櫎</el-button>
+ </div>
+ </template>
+ </el-table-column>
+ </el-table>
+ </div>
+ <div>
+ <el-dialog title="缂栬緫鎶�鏈唴瀹�" :visible.sync="upDia" width="500px">
+ <div class="body">
- </template>
- </el-table-column>
- <el-table-column
- prop="unit"
- label="鍗曚綅">
- </el-table-column>
- <el-table-column
- prop="address"
- label="鎿嶄綔"
- width="200px">
- <template slot-scope="scope" style="text-align: center;">
- <div v-if="!scope.row.children">
- <el-button type="text" size="mini" @click="childrenClick(scope.row)">缂栬緫</el-button>
- <el-button type="text" size="mini" @click="deleteRow(scope.$index, scope.row)">鍒犻櫎</el-button>
- </div>
- </template>
- </el-table-column>
- </el-table>
- </div>
- <div>
- <el-dialog title="缂栬緫鎶�鏈唴瀹�" :visible.sync="upDia" width="500px">
- <div class="body">
+ <el-row style="line-height: 46px;">
+ <el-col :span="4" style="font-size: 14px;text-align: right;">绫诲瀷:</el-col>
+ <el-col :span="16" :offset="1">
+ <template>
+ <el-select v-model="edit.type" disabled placeholder="璇烽�夋嫨" @change="TYpe"
+ style="width: 306px;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>
+ </template>
+ </el-col>
+ </el-row>
+ <el-row style="line-height: 46px;">
+ <el-col :span="4" style="font-size: 14px;text-align: right;">宸ュ簭:</el-col>
+ <el-col :span="16" :offset="1">
+ <template>
+ <el-select v-model="edit.techFather" placeholder="璇烽�夋嫨" allow-create disabled style="width: 306px;"
+ 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-col>
+ </el-row>
+ <el-row style="line-height: 46px;">
+ <el-col :span="4" style="font-size: 14px;text-align: right;">宸ヨ壓:</el-col>
+ <el-col :span="16" :offset="1">
+ <template>
+ <el-select v-model="edit.techName" placeholder="璇烽�夋嫨" disabled style="width: 306px;" allow-create
+ filterable>
+ <el-option v-for="item in craftapi" :key="item.id" :label="item.name" :value="item.id">
+ </el-option>
+ </el-select>
+ </template>
+ </el-col>
+ </el-row>
+ <el-row style="line-height: 46px;">
+ <el-col :span="4" style="font-size: 14px;text-align: right;">椤圭洰缁�:</el-col>
+ <el-col :span="16" :offset="1">
+ <el-input v-model="edit.father" :disabled="true" size="small" clearable></el-input>
+ </el-col>
+ </el-row>
+ <el-row style="line-height: 46px;">
+ <el-col :span="4" style="font-size: 14px;text-align: right;">椤圭洰鍚嶇О:</el-col>
+ <el-col :span="16" :offset="1">
+ <el-input v-model="edit.name" size="small" clearable></el-input>
+ </el-col>
+ </el-row>
+ <el-row style="line-height: 46px;">
+ <el-col :span="4" style="font-size: 14px;text-align: right;">鍗曚綅:</el-col>
+ <el-col :span="16" :offset="1">
+ <el-input v-model="edit.unit" size="small" clearable></el-input>
+ </el-col>
+ </el-row>
+ </div>
+ <span slot="footer" class="dialog-footer">
+ <el-button type="primary" @click="submitUpData">纭� 瀹�</el-button>
+ <el-button @click="upDia = false">鍙� 娑�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+ <!-- 鏂板寮圭獥 -->
+ <div>
+ <el-dialog title="鎶�鏈寚鏍囨柊澧�" :visible.sync="dialogVisible" width="40%">
+ <el-form ref="form" :model="form" label-width="80px">
+ <el-form-item label="绫诲瀷">
+ <template>
+ <el-select v-model="form.type" size="small" placeholder="璇烽�夋嫨" @change="edittype"
+ style="width: 554px;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>
+ </template>
+ </el-form-item>
+ <el-row>
+ <el-col :span="11">
+ <el-form-item label="宸ュ簭">
+ <template>
+ <el-select v-model="form.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="11" :offset="2">
+ <el-form-item label="宸ヨ壓">
+ <template>
+ <el-select v-model="form.name" placeholder="璇烽�夋嫨" allow-create filterable>
+ <el-option v-for="item in craftapi" :key="item.id" :label="item.name" :value="item.id">
+ </el-option>
+ </el-select>
+ </template>
+ </el-form-item>
+ </el-col>
+ </el-row>
- <el-row style="line-height: 46px;">
- <el-col :span="4" style="font-size: 14px;text-align: right;">绫诲瀷:</el-col>
- <el-col :span="16" :offset="1">
- <template>
- <el-select v-model="edit.type" disabled placeholder="璇烽�夋嫨" @change="TYpe" style="width: 306px;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>
- </template>
- </el-col>
- </el-row>
- <el-row style="line-height: 46px;">
- <el-col :span="4" style="font-size: 14px;text-align: right;">宸ュ簭:</el-col>
- <el-col :span="16" :offset="1">
- <template>
- <el-select v-model="edit.techFather"
- placeholder="璇烽�夋嫨"
- allow-create
- disabled
- style="width: 306px;"
- 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-col>
- </el-row>
- <el-row style="line-height: 46px;">
- <el-col :span="4" style="font-size: 14px;text-align: right;">宸ヨ壓:</el-col>
- <el-col :span="16" :offset="1">
- <template>
- <el-select v-model="edit.techName"
- placeholder="璇烽�夋嫨"
- disabled
- style="width: 306px;"
- allow-create
- filterable
- >
- <el-option
- v-for="item in craftapi"
- :key="item.id"
- :label="item.name"
- :value="item.id">
- </el-option>
- </el-select>
- </template>
- </el-col>
- </el-row>
- <el-row style="line-height: 46px;">
- <el-col :span="4" style="font-size: 14px;text-align: right;">椤圭洰缁�:</el-col>
- <el-col :span="16" :offset="1">
- <el-input v-model="edit.father" :disabled="true" size="small" clearable></el-input>
- </el-col>
- </el-row>
- <el-row style="line-height: 46px;">
- <el-col :span="4" style="font-size: 14px;text-align: right;">椤圭洰鍚嶇О:</el-col>
- <el-col :span="16" :offset="1">
- <el-input v-model="edit.name" size="small" clearable></el-input>
- </el-col>
- </el-row>
- <el-row style="line-height: 46px;">
- <el-col :span="4" style="font-size: 14px;text-align: right;">鍗曚綅:</el-col>
- <el-col :span="16" :offset="1">
- <el-input v-model="edit.unit" size="small" clearable></el-input>
- </el-col>
- </el-row>
- </div>
- <span slot="footer" class="dialog-footer">
- <el-button type="primary" @click="submitUpData">纭� 瀹�</el-button>
- <el-button @click="upDia = false">鍙� 娑�</el-button>
- </span>
- </el-dialog>
- </div>
-
- <!-- 鏂板寮圭獥 -->
- <div>
- <el-dialog
- title="鎶�鏈寚鏍囨柊澧�"
- :visible.sync="dialogVisible"
- width="40%"
- >
- <el-form ref="form" :model="form" label-width="80px">
- <el-form-item label="绫诲瀷">
- <template>
- <el-select v-model="form.type" size="small" placeholder="璇烽�夋嫨" @change="edittype" style="width: 554px;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>
- </template>
- </el-form-item>
- <el-row>
- <el-col :span="11">
- <el-form-item label="宸ュ簭">
- <template>
- <el-select v-model="form.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="11" :offset="2">
- <el-form-item label="宸ヨ壓">
- <template>
- <el-select v-model="form.name"
- placeholder="璇烽�夋嫨"
- allow-create
- filterable
- >
- <el-option
- v-for="item in craftapi"
- :key="item.id"
- :label="item.name"
- :value="item.id">
- </el-option>
- </el-select>
- </template>
- </el-form-item>
- </el-col>
- </el-row>
-
- <el-row>
- <el-col :span="11">
- <el-form-item label="椤圭洰缁�" >
- <template>
- <el-select v-model="form.father"
- placeholder="璇烽�夋嫨"
- allow-create
- filterable
- @create="electadd"
- >
- <el-option
- v-for="item in higherlevel"
- :key="item"
- :label="item"
- :value="item">
- </el-option>
- </el-select>
- <!-- <el-autocomplete
+ <el-row>
+ <el-col :span="11">
+ <el-form-item label="椤圭洰缁�">
+ <template>
+ <el-select v-model="form.father" placeholder="璇烽�夋嫨" allow-create filterable @create="electadd">
+ <el-option v-for="item in higherlevel" :key="item" :label="item" :value="item">
+ </el-option>
+ </el-select>
+ <!-- <el-autocomplete
popper-class="my-autocomplete"
v-model="form.father"
:fetch-suggestions="higherlevel"
@@ -331,33 +253,32 @@
</template>
</el-autocomplete> -->
- </template>
- </el-form-item>
- </el-col>
- <el-col :span="11" :offset="2">
- <el-form-item label="椤圭洰">
- <el-input v-model="form.project" style="width: 200px;" placeholder="璇疯緭鍏ラ」鐩�"></el-input>
- </el-form-item>
- </el-col>
- </el-row>
+ </template>
+ </el-form-item>
+ </el-col>
+ <el-col :span="11" :offset="2">
+ <el-form-item label="椤圭洰">
+ <el-input v-model="form.project" style="width: 200px;" placeholder="璇疯緭鍏ラ」鐩�"></el-input>
+ </el-form-item>
+ </el-col>
+ </el-row>
- <el-form-item label="鍗曚綅">
- <el-input v-model="form.unit" placeholder="璇疯緭鍏ュ崟浣�" style="width: 200px;"></el-input>
- </el-form-item>
- </el-form>
- <span slot="footer" class="dialog-footer">
- <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
- <el-button type="primary" @click="add">纭� 瀹�</el-button>
- </span>
- </el-dialog>
- </div>
- </div>
-
+ <el-form-item label="鍗曚綅">
+ <el-input v-model="form.unit" placeholder="璇疯緭鍏ュ崟浣�" style="width: 200px;"></el-input>
+ </el-form-item>
+ </el-form>
+ <span slot="footer" class="dialog-footer">
+ <el-button @click="dialogVisible = false">鍙� 娑�</el-button>
+ <el-button type="primary" @click="add">纭� 瀹�</el-button>
+ </span>
+ </el-dialog>
+ </div>
+ </div>
</div>
</div>
</template>
<script>
-export default {
+ export default {
data() {
return {
search:{
@@ -397,20 +318,58 @@
unit:'',
id:'',
- }
+ },
+ isAllSelect:false,
}
-
+
},
mounted() {
this.selectAllleft()
- this.selectAllright()
-
+ this.selectAllright()
},
methods:{
+ // 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆
+ // 鍏ㄩ��/鍙栨秷閫夋搷浣�
+ selectAll(val) {
+ this.isAllSelect = !this.isAllSelect;
+ let data = this.tableData;
+ this.toggleSelect(data, this.isAllSelect, "all");
+ },
+ //閫夋嫨鏌愯
+ selectTr(selection, row) {
+ console.log(selection,row);
+ this.$set(row, "isChecked", !row.isChecked);
+ this.$nextTick(() => {
+ this.isAllSelect = row.isChecked;
+ this.toggleSelect(row, row.isChecked, "tr");
+ });
+ },
+ //閫掑綊瀛愮骇
+ toggleSelect(data, flag, type) {
+ if (type === "all") {
+ console.log('222');
+ if (data.length > 0) {
+ data.forEach((item) => {
+ this.toggleSelection(item, flag);
+ if (item.children && item.children.length > 0) {
+ this.toggleSelect(item.children, flag, type);
+ }
+ });
+ }
+ } else {
+ if (data.children && data.children.length > 0) {
+ data.children.forEach((item) => {
+ item.isChecked = !item.isChecked;
+ this.$refs.multipleTable.toggleRowSelection(item, flag);
+ this.toggleSelect(item, flag, type);
+ });
+ }
+ }
+ },
handleClose(){
- },
- selectDataList() {
+ },
+ selectDataList() {
this.list.forEach(a => {
a.code = '[1]'
if (a.children != undefined) {
@@ -426,66 +385,66 @@
})
this.upIndex++
},
- //缂栬緫
- selecTech() {
- this.$axios.get(this.$api.url.selecTech,{
- params:{
- id:this.upData.id
+ //缂栬緫
+ selecTech() {
+ this.$axios.get(this.$api.url.selecTech, {
+ params: {
+ id: this.upData.id
}
}).then(res => {
this.edit = res.data[0]
console.log(this.edit);
})
},
- childrenClick(val) {
+ childrenClick(val) {
this.upData = val
- this.selecTech()
- this.upDia = true
- },
- writeTechByIdskill() {
+ this.selecTech()
+ this.upDia = true
+ },
+ writeTechByIdskill() {
// console.log(this.upData.id);
- this.$axios.post(this.$api.url.writeTechByIdskill + '?id=' + this.upData.id,{
- name:this.edit.name,
- father:this.edit.father,
- techTemId:this.edit.id,
- unit:this.edit.unit
+ this.$axios.post(this.$api.url.writeTechByIdskill + '?id=' + this.upData.id, {
+ name: this.edit.name,
+ father: this.edit.father,
+ techTemId: this.edit.id,
+ unit: this.edit.unit
}, {
headers: {
- "Content-Type": "application/json"
- }
+ "Content-Type": "application/json"
+ }
}).then(res => {
this.selectAllright()
})
- },
- submitUpData() {//纭畾
- this.writeTechByIdskill()
- this.upDia = false
- },
- //鍒犻櫎
- delTechBy() {
- console.log(this.$api.url.delTechBy,this.upData.id);
- this.$axios.post(this.$api.url.delTechBy,{
- id:this.upData.id
- }).then(res =>{
- this.selectAllright()
- this.$message.success('鍒犻櫎瀹屾垚')
- })
},
- deleteRow(index, rows) {
- this.tableData.splice(index,1)
- this.upData = rows
+ submitUpData() { //纭畾
+ this.writeTechByIdskill()
+ this.upDia = false
+ },
+ //鍒犻櫎
+ delTechBy() {
+ console.log(this.$api.url.delTechBy, this.upData.id);
+ this.$axios.post(this.$api.url.delTechBy, {
+ id: this.upData.id
+ }).then(res => {
+ this.selectAllright()
+ this.$message.success('鍒犻櫎瀹屾垚')
+ })
+ },
+ deleteRow(index, rows) {
+ this.tableData.splice(index, 1)
+ this.upData = rows
this.upData.id = rows.id
this.delTechBy()
},
- //鎵归噺鍒犻櫎
- delAllTechskill() {
- this.$axios.post(this.$api.url.delAllTechskill,{
- ids:this.delete
- }).then(res =>{
- this.selectAllright()
- })
- },
- dels() {
+ //鎵归噺鍒犻櫎
+ delAllTechskill() {
+ this.$axios.post(this.$api.url.delAllTechskill, {
+ ids: this.delete
+ }).then(res => {
+ this.selectAllright()
+ })
+ },
+ dels() {
this.selects.forEach(a => {
for (var b = 0; b < this.tableData.length; b++) {
if (this.tableData[b].id == a.id) {
@@ -494,7 +453,7 @@
}
}
})
- let cc = this.selects.map(el => {
+ let cc = this.selects.map(el => {
return el.id
})
this.delete = cc.join(',')
@@ -502,141 +461,152 @@
this.delAllTechskill()
this.$message.success('鍒犻櫎瀹屾垚')
},
- add() {
- this.dialogVisible = false
- this.addTechMode()
+ add() {
+ this.dialogVisible = false
+ this.addTechMode()
this.form = {};
- },
- electadd(value) {
- console.log(value);
- this.higherlevel.push({});
- this.form.father = value;
- },
- addTechMode() {
- this.$axios.post(this.$api.url.addTechMode,{
- father:this.form.father,
- name:this.form.project,
- techTemId:this.form.name,
- unit:this.form.unit,
- }, {
+ },
+ electadd(value) {
+ console.log(value);
+ this.higherlevel.push({});
+ this.form.father = value;
+ },
+ addTechMode() {
+ this.$axios.post(this.$api.url.addTechMode, {
+ father: this.form.father,
+ name: this.form.project,
+ techTemId: this.form.name,
+ unit: this.form.unit,
+ }, {
headers: {
- "Content-Type": "application/json"
- }
- }).then(res =>{
- this.$message.success('鏂板瀹屾垚')
- this.selectAllright()
+ "Content-Type": "application/json"
+ }
+ }).then(res => {
+ this.$message.success('鏂板瀹屾垚')
+ this.selectAllright()
- })
- },
- TYpe(val) {
- this.typeselect = val
- console.log(this.typeselect);
- this.selectAllleft()
- },
- edittype(val) {
+ })
+ },
+ TYpe(val) {
+ this.typeselect = val
+ console.log(this.typeselect);
+ this.selectAllleft()
+ },
+ edittype(val) {
this.typeselect = val
this.chooseTechFath()
},
- //涓讳綋宸�
- selectAllleft() {
- 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) // 榛樿閫変腑鑺傜偣绗竴涓�
- })
- let one=this.list.filter(item=>{
- return item.children.length>0
- })[0]
- console.log(one);
- let name=one.children[0].id
- console.log(name);
- this.selectAllrightStart(name)
- this.selectDataList();
- });
+ //涓讳綋宸�
+ selectAllleft() {
+ 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) // 榛樿閫変腑鑺傜偣绗竴涓�
+ })
+ let one = this.list.filter(item => {
+ return item.children.length > 0
+ })[0]
+ console.log(one);
+ let name = one.children[0].id
+ console.log(name);
+ this.selectAllrightStart(name)
+ this.selectDataList();
+ });
},
- selectAllrightStart(name) {
- this.$axios.get(this.$api.url.selectAllright,{
- params:{id:name}
- }).then(res => {
- this.tableData = res.data;
- console.log(this.tableData);
- });
+ selectAllrightStart(name) {
+ this.$axios.get(this.$api.url.selectAllright, {
+ params: {
+ id: name
+ }
+ }).then(res => {
+ this.tableData = res.data;
+ console.log(this.tableData);
+ });
},
- //
- //鏌ヨ
- query(val) {
- this.selectAllleft()
- },
- //鍙�
- selectAllright() {
- this.$axios.get(this.$api.url.selectAllright,{
- params:{id:this.checkTreeNode.id}
- }).then(res => {
- this.tableData = res.data;
- console.log(this.tableData);
- });
+ //
+ //鏌ヨ
+ query(val) {
+ this.selectAllleft()
},
- //涓婄骇
- chooseProFath() {
- console.log(this.checkTreeNode.id);
- this.$axios.get(this.$api.url.chooseProFath,{
- params:{techTemId:this.checkTreeNode.id}
- }).then(res => {
- this.higherlevel = res.data;
- console.log(this.higherlevel);
- }, {
- headers: {
- "Content-Type": "application/json"
- }
- })
+ //鍙�
+ selectAllright() {
+ this.$axios.get(this.$api.url.selectAllright, {
+ params: {
+ id: this.checkTreeNode.id
+ }
+ }).then(res => {
+ this.tableData = res.data;
+ console.log(this.tableData);
+ });
},
- //宸ュ簭宸ヨ壓
- 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"
- }
- })
+ //涓婄骇
+ chooseProFath() {
+ console.log(this.checkTreeNode.id);
+ this.$axios.get(this.$api.url.chooseProFath, {
+ params: {
+ techTemId: this.checkTreeNode.id
+ }
+ }).then(res => {
+ this.higherlevel = res.data;
+ console.log(this.higherlevel);
+ }, {
+ headers: {
+ "Content-Type": "application/json"
+ }
+ })
},
- workevent(val){
- console.log(val);
- let idx = this.process.findIndex(el => el.name === val)
- this.craftapi = this.process[idx].children
- },
-
- handleNodeClick(data){
- this.checkTreeNode = data
+ //宸ュ簭宸ヨ壓
+ 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"
+ }
+ })
+ },
+ workevent(val) {
+ console.log(val);
+ let idx = this.process.findIndex(el => el.name === val)
+ this.craftapi = this.process[idx].children
+ },
+
+ handleNodeClick(data) {
+ this.checkTreeNode = data
console.log(this.checkTreeNode.id);
this.selectAllright()
- },
- event(){
- this.dialogVisible = true
- this.chooseProFath()
- this.chooseTechFath()
- },
- modify(){
- this.modifyevent = true
- },
- // deleteRow(index, rows) {
- // console.log();
- // rows.splice(index, 1);
+ },
+ event() {
+ this.dialogVisible = true
+ this.chooseProFath()
+ this.chooseTechFath()
+ },
+ modify() {
+ this.modifyevent = true
+ },
+ // deleteRow(index, rows) {
+ // console.log();
+ // rows.splice(index, 1);
// },
- handleSelectionChange(val) {
+ handleSelectionChange(val) {
this.selects = val;
},
- //缂栬緫
-
- }
- }
+ //缂栬緫
+
+ }
+ }
</script>
<style scoped>
@@ -677,7 +647,7 @@
.thing {
width: 100%;
- height: calc(100% - 120px);
+ height: calc(100% - 78px);
background-color: #fff;
display: flex;
}
@@ -687,6 +657,7 @@
height: calc(100% - 20px);
border-right: 3px solid rgb(245, 247, 251);
padding: 16px;
+ overflow-y: auto;
}
.thing .left .custom-tree-node span {
@@ -726,8 +697,9 @@
color: #004ea0;
cursor: pointer;
}
-.firstDiv {
- /* float: left;
+
+ .firstDiv {
+ /* float: left;
width: 20px;
height: 20px;
border-radius: 60px;
@@ -737,11 +709,12 @@
display: flex;
align-items: center;
margin-right: 8px; */
- /* border-radius: 60px; */
-}
-.el-tag{
- border-radius: 50%;
-}
+ /* border-radius: 60px; */
+ }
+
+ .el-tag {
+ border-radius: 50%;
+ }
</style>
<style>
.record_content .title .el-button * {
diff --git a/src/components/view/equipmentmaintain.vue b/src/components/view/equipmentmaintain.vue
index 0de5776..30759c4 100644
--- a/src/components/view/equipmentmaintain.vue
+++ b/src/components/view/equipmentmaintain.vue
@@ -245,7 +245,6 @@
placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�"
size="small" clearable ></el-input>
<el-tree :data="list" ref="tree"
- style="height: 500px;overflow-y: auto;"
:props="{children: 'children',label: 'name'}" highlight-current node-key="name" default-expand-all
@node-click="handleNodeClick"
@@ -263,11 +262,13 @@
<div class="right">
<el-table
:data="tableData"
- style="width: 100%;margin-bottom: 20px;"
+ style="width: 100%;margin-bottom: 20px;height: 600px;overflow: auto;"
row-key="name"
border
+ @select="selectTr"
@selection-change="handleSelectionChange"
default-expand-all
+ ref="multipleTable"
:tree-props="{children: 'children', hasChildren: 'hasChildren'}">
<el-table-column
type="selection"
@@ -318,7 +319,7 @@
width="200px">
<template slot-scope="scope" style="text-align: center;">
<div v-if="!scope.row.children">
- <el-button type="text" size="mini" @click="childrenClick(scope.row)">缂栬緫</el-button>
+ <!-- <el-button type="text" size="mini" @click="childrenClick(scope.row)">缂栬緫</el-button> -->
<el-button type="text" size="mini" @click="deleteRow(scope.$index, scope.row)">鍒犻櫎</el-button>
</div>
</template>
@@ -569,9 +570,6 @@
console.log(this.upData.id);
this.delQueById()
},
- handleSelectionChange(val) {
- this.selects = val
- },
//鎵归噺鍒犻櫎
delAllQue() {
this.$axios.post(this.$api.url.delAllQue,{
@@ -609,6 +607,52 @@
// // filterNode(){
// },
+ handleSelectionChange(val) {
+ this.deleteList = [];
+ val.forEach((v) => {
+ if (v.id !== undefined) {
+ this.deleteList.push(v.id);
+ }
+ });
+ },
+ // 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆
+ // 鍏ㄩ��/鍙栨秷閫夋搷浣�
+ selectAll(val) {
+ this.isAllSelect = !this.isAllSelect;
+ let data = this.tableData;
+ this.toggleSelect(data, this.isAllSelect, "all");
+ },
+ //閫夋嫨鏌愯
+ selectTr(selection, row) {
+ console.log(selection,row);
+ this.$set(row, "isChecked", !row.isChecked);
+ this.$nextTick(() => {
+ this.isAllSelect = row.isChecked;
+ this.toggleSelect(row, row.isChecked, "tr");
+ });
+ },
+ //閫掑綊瀛愮骇
+ toggleSelect(data, flag, type) {
+ if (type === "all") {
+ console.log('222');
+ if (data.length > 0) {
+ data.forEach((item) => {
+ this.toggleSelection(item, flag);
+ if (item.children && item.children.length > 0) {
+ this.toggleSelect(item.children, flag, type);
+ }
+ });
+ }
+ } else {
+ if (data.children && data.children.length > 0) {
+ data.children.forEach((item) => {
+ item.isChecked = !item.isChecked;
+ this.$refs.multipleTable.toggleRowSelection(item, flag);
+ this.toggleSelect(item, flag, type);
+ });
+ }
+ }
+ },
}
}
@@ -662,6 +706,7 @@
height: calc(100% - 20px);
border-right: 3px solid rgb(245, 247, 251);
padding: 16px;
+ overflow-y: auto;
}
.thing .left .custom-tree-node span {
diff --git a/src/components/view/laboratoryManagement.vue b/src/components/view/laboratoryManagement.vue
index 5fb48be..38548d3 100644
--- a/src/components/view/laboratoryManagement.vue
+++ b/src/components/view/laboratoryManagement.vue
@@ -1,8 +1,8 @@
<template>
- <div>
+ <div class="laboratoryMangement">
<el-row>
<el-col :span="12" class="top_left_name">璁惧缁存姢</el-col>
- <el-col :span="12" style="text-align: right;">
+ <el-col :span="12" style="text-align: right;" class="title">
<el-button
@click="testItem()"
type="primary"
@@ -39,6 +39,7 @@
<el-form-item label="璁惧鐢ㄩ��" prop="type">
<el-select
v-model="ruleForm.type"
+ @change="selectinstall"
placeholder="璇烽�夋嫨璁惧鐢ㄩ��"
>
<el-option label="鐢熶骇璁惧" value="1"></el-option>
@@ -207,12 +208,11 @@
:data="towTree"
ref="tree"
:props="{ children: 'children', label: 'father' }"
- node-key="id"
+ node-key="father"
default-expand-all
highlight-current
style="margin-top: 20px;"
@node-click="handleNodeClick"
-
>
<div class="custom-tree-node" slot-scope="{ node, data }">
<span
@@ -397,8 +397,10 @@
name: "LaboratoryManagement",
data() {
return {
+
value: "",
dialogVisible: false,
+ checkTreeNode:{},
isCollapse: true, //榛樿涓哄睍寮�
radio1: "true", // 鍒嗙被鍒囨崲
tableData: [], // 涓婚〉琛ㄦ牸鏁版嵁
@@ -411,7 +413,7 @@
staue_value: "", // 涓婚〉琛ㄦ牸涓婃柟鐨勭姸鎬侀�夋嫨
// BOM鏍戞暟鎹粨鏋�
towTree: [],
- equipment: '',
+ equipment: '1',
equaip:'',
ruleForm: {
// 鏂板浠櫒琛ㄥ崟
@@ -424,10 +426,11 @@
name: "",
rawInsProductId: "",
type: "",
- treedata:{
- father:'璁惧缁�1',
- },
+ // treedata:{
+ // father:'璁惧缁�1',
+ // },
equr:'',
+
},
delete:{},
equip:1,
@@ -473,25 +476,29 @@
this.twoTreeApi();
// 鍒濆鍖栬皟鐢ㄨ〃鏍兼暟鎹�
// this.tableDataApi();
- this.selectDevice()//鍙宠竟
+ // this.selectDevice()
},
methods: {
- selectDevice() {//鍙宠竟鏁版嵁
- console.log(this.ruleForm.treedata.father);
- console.log(this.equip);
- this.$axios.get(this.$api.url.selectDevice,{
- params:{
- father:this.ruleForm.treedata.father,
- type:this.equip,
- }
- }).then(res =>{
- console.log(res);
- this.tableData = res.data
- }, {
- headers: {
- "Content-Type": "application/json"
- }
- })
+ handleNodeClick(val) {
+ this.checkTreeNode = val
+ console.log(this.checkTreeNode);
+ this.selectDevice()
+ },
+
+ staueValueChange() {
+ this.selectDevice()
+ // this.tableData = [];
+ // let val = 1;
+ // if (this.radio1 === "false") {
+ // val = 2;
+ // }
+ // this.$axios
+ // .get(this.$api.url.tableDeviceList, {
+ // params: { type: val, deviceStatue: this.staue_value }
+ // })
+ // .then(res => {
+ // this.tableData = res.data;
+ // });
},
// 鍔ㄦ�佹帶鍒跺睍寮�涓庢敹璧峰拰鍒囨崲瀵瑰簲鍥炬爣
isC() {
@@ -535,14 +542,21 @@
.catch(_ => {});
},
testItem() {
- this.listgroup()
this.dialogVisible = true;
this.$axios.get(this.$api.url.addDeviceKeeper).then(res => {
this.keeperList = res.data;
});
},
+ selectinstall(val) {
+ this.equip = val
+ this.listgroup()
+ },
listgroup() {
- this.$axios.get(this.$api.url.listgroup).then(res =>{
+ this.$axios.get(this.$api.url.listgroup,{
+ params:{
+ type:this.equip
+ }
+ }).then(res =>{
this.equaip = res.data
console.log(this.equip);
})
@@ -567,7 +581,51 @@
// }
// });
this.towTree = res.data;
- });
+ this.$nextTick(() => {
+ this.$refs.tree.setCurrentKey(this.towTree[0].father) // 榛樿閫変腑鑺傜偣绗竴涓�
+ })
+ console.log(this.towTree);
+ let one=this.towTree[0]
+ console.log(one);
+ let name =one.father
+ console.log(name);
+ this.selectDeviceStart(name)
+ });
+ },
+ selectDeviceStart(name,) {//鍙宠竟鏁版嵁
+ this.$axios.get(this.$api.url.selectDevice,{
+ params:{
+ father:name,
+ type:this.equip,
+ deviceStatus:this.staue_value,
+ message:this.codeNameModel,
+ }
+ }).then(res =>{
+ console.log(res);
+ this.tableData = res.data
+ }, {
+ headers: {
+ "Content-Type": "application/json"
+ }
+ })
+ },
+
+ selectDevice() {//鍙宠竟鏁版嵁
+ this.$axios.get(this.$api.url.selectDevice,{
+ params:{
+ father:this.checkTreeNode.father,
+ type:this.equip,
+ deviceStatus:this.staue_value,
+ message:this.codeNameModel,
+ }
+ }).then(res =>{
+ console.log(res);
+ this.tableData = res.data
+ }, {
+ headers: {
+ "Content-Type": "application/json"
+ }
+ })
},
addApi() {
this.$axios.post(this.$api.url.addApi,{
@@ -581,9 +639,9 @@
type:this.ruleForm.type,
}, {headers: {"Content-Type": "application/json"}
}).then(res =>{
- this.selectDevice()
this.$message.success('鏂板鎴愬姛')
this.ruleForm = {}
+ this.selectDevice()
})
},
// tableDataApi() {
@@ -592,15 +650,13 @@
// });
// },
reset() {
- this.tableDataApi();
- this.radio1 = "true";
- this.codeNameModel = "";
- this.staue_value = "";
- },
- handleNodeClick(data) {
- console.log(data);
- // this.treedata = data
- this.selectDevice()
+ // this.tableDataApi();
+ // this.radio1 = "true";
+ // this.codeNameModel = "";
+ // this.staue_value = "";
+ this.staue_value = ""
+ this.codeNameModel = ""
+ this.selectDevice()
},
handlerDeptList() {
this.towTree = [];
@@ -617,24 +673,25 @@
});
},
selectSearch() {
- this.tableData = [];
- if (this.radio1 === "false") {
- this.$axios
- .get(this.$api.url.tableDeviceList, {
- params: { type: 1, codeNameModel: this.codeNameModel }
- })
- .then(res => {
- this.tableData = res.data;
- });
- } else if (this.radio1 === "true") {
- this.$axios
- .get(this.$api.url.tableDeviceList, {
- params: { type: 2, codeNameModel: this.codeNameModel }
- })
- .then(res => {
- this.tableData = res.data;
- });
- }
+ this.selectDevice()
+ // this.tableData = [];
+ // if (this.radio1 === "false") {
+ // this.$axios
+ // .get(this.$api.url.tableDeviceList, {
+ // params: { type: 1, codeNameModel: this.codeNameModel }
+ // })
+ // .then(res => {
+ // this.tableData = res.data;
+ // });
+ // } else if (this.radio1 === "true") {
+ // this.$axios
+ // .get(this.$api.url.tableDeviceList, {
+ // params: { type: 2, codeNameModel: this.codeNameModel }
+ // })
+ // .then(res => {
+ // this.tableData = res.data;
+ // });
+ // }
},
delDeviceById() {
this.$axios.post(this.$api.url.delDeviceById,{
@@ -722,20 +779,7 @@
}
});
},
- staueValueChange() {
- this.tableData = [];
- let val = 1;
- if (this.radio1 === "false") {
- val = 2;
- }
- this.$axios
- .get(this.$api.url.tableDeviceList, {
- params: { type: val, deviceStatue: this.staue_value }
- })
- .then(res => {
- this.tableData = res.data;
- });
- }
+
},
watch: {
@@ -951,3 +995,25 @@
line-height: 14px;
}
</style>
+<style>
+ .laboratoryMangement .title *{
+ font-size: 14px;
+ }
+
+ .laboratoryMangement .table_top_div *{
+ font-size: 14px;
+ }
+
+ .laboratoryMangement .title .el-button {
+ height: 32px;
+ border: 1px solid rgba(190, 190, 190, 0.44);
+ box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
+ padding: 0 12px;
+ }
+ .laboratoryMangement .table_top_div .el-button {
+ height: 32px;
+ border: 1px solid rgba(190, 190, 190, 0.44);
+ box-shadow: 0px 2px 4px rgba(220, 220, 220, 0.41);
+ padding: 0 12px;
+ }
+</style>
\ No newline at end of file
diff --git a/src/components/view/mbom.vue b/src/components/view/mbom.vue
index cfe1abd..4e8c3ba 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,15 +105,11 @@
</div>
<div class="thing">
<div class="left">
- <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="height: 500px;overflow-y: auto;"
- highlight-current
- :props="{children: 'children',label: 'name'}"
- node-key="name"
- 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>
@@ -155,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>
@@ -176,48 +141,48 @@
</div>
<!-- <el-dialog title="缂栬緫璁板綍鍐呭" :visible.sync="upDia" width="500px">
<div class="body">
-
+
</div>
-
+
</el-dialog> -->
</div>
</template>
<script>
-export default {
+ export default {
data() {
return {
- search:{
+ search: {
type: 0,
technology: ''
},
- list:[],
- process:{},
+ list: [],
+ process: {},
// handleClose:[],
checkTreeNode:{
- id:2,
+ id:'',
},
- 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]'
@@ -234,35 +199,39 @@
})
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
- // {
- // name:this.tableapi.name,
- // qualityTraceability:this.tableapi.qualityTraceability,
- // specifications:this.tableapi.specifications,
- // supplier:this.tableapi.supplier,
- // techTemId:this.craftapi.id,
- // unit:this.tableapi.unit,
- // }
- , {
+ this.$axios.post(this.$api.url.addMbom,data,{
+ // params:{
+ // techTemId:this.craftapi.id,
+ // mbomModelDto2List:[{
+ // name:this.tableapi.name,
+ // qualityTraceability:this.tableapi.qualityTraceability,
+ // specifications:this.tableapi.specifications,
+ // supplier:this.tableapi.supplier,
+ // unit:this.tableapi.unit,
+ // }]
+ // }
+ }, {
headers: {
"Content-Type": "application/json"
}
@@ -276,11 +245,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);
})
@@ -305,16 +274,23 @@
this.$nextTick(() => {
this.$refs.tree.setCurrentKey(this.list[0].children[0].name) // 榛樿閫変腑鑺傜偣绗竴涓�
})
+ let one=this.list.filter(item=>{
+ return item.children.length>0
+ })[0]
+ console.log(one);
+ let name=one.children[0].id
+ console.log(name);
+ this.selectAllMbomStart(name)
+ this.selectDataList();
}, {
headers: {
"Content-Type": "application/json"
}
})
},
- //鍙宠竟
- selectAllMbom() {
+ selectAllMbomStart(name) {
this.$axios.get(this.$api.url.selectAllMbom,{
- params:{id:this.checkTreeNode.id}
+ params:{id:name}
}).then(res => {
this.tableData = res.data;
console.log(this.tableData);
@@ -324,50 +300,62 @@
}
})
},
+ //鍙宠竟
+ 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"
+ }
+ })
+ },
handleNodeClick(data){
this.checkTreeNode = data
+ console.log(data);
console.log(this.checkTreeNode.id);
this.selectAllMbom()
- },
+ },
handleClose(done) {
this.$confirm('纭鍏抽棴锛�')
- .then(_ => {
- done();
- })
- .catch(_ => {});
+ .then(_ => {
+ done();
+ })
+ .catch(_ => {});
},
+ //鏂板
event(){
this.dialogVisible = true
this.chooseTechFath()
},
+ //娣诲姞琛�
Addrow() {
if (this.tableapi == undefined) {
this.tableapi = new Array();
}
let obj = [];
-
this.tableapi.push(obj);
},
- skipshow(){
+ skipshow() {
console.log('666');
let data = this.tableapi.at(-1)
- // this.addMbom()
data.techTemId = this.search.craft
- // console.log(this.search.craft);
- // 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()
- })
- },
+ this.$axios.post(this.$api.url.delAllMbom, {
+ ids: this.delete
+ }).then(res => {
+ this.selectAllMbom()
+ })
+ },
dels() {
this.selects.forEach(a => {
for (var b = 0; b < this.tableData.length; b++) {
@@ -396,8 +384,8 @@
this.material(index)
},
- }
- }
+ }
+ }
</script>
<style scoped>
@@ -416,7 +404,8 @@
.title * {
font-size: 16px;
}
- .choose-1{
+
+ .choose-1 {
padding: 5px 24px;
display: flex;
align-items: center;
@@ -455,6 +444,7 @@
height: calc(100% - 20px);
border-right: 3px solid rgb(245, 247, 251);
padding: 16px;
+ overflow-y: auto;
}
.thing .left .custom-tree-node span {
diff --git a/src/components/view/record-content.vue b/src/components/view/record-content.vue
index fd9e74b..504470a 100644
--- a/src/components/view/record-content.vue
+++ b/src/components/view/record-content.vue
@@ -46,6 +46,7 @@
height: calc(100% - 20px);
border-right: 3px solid rgb(245, 247, 251);
padding: 16px;
+ overflow-y: auto;
}
.thing .left .custom-tree-node span {
@@ -141,7 +142,6 @@
<div class="left">
<el-input v-model="search.technology" suffix-icon="el-icon-search" placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�" size="small" clearable @input="query"></el-input>
<el-tree :data="list" ref="tree"
- style="height: 500px;overflow-y: auto;"
:props="{children: 'children',label: 'name'}" node-key="name" default-expand-all
@node-click="handleNodeClick" highlight-current
:key="upIndex">
diff --git a/src/components/view/sale.vue b/src/components/view/sale.vue
index bdec015..b106e8f 100644
--- a/src/components/view/sale.vue
+++ b/src/components/view/sale.vue
@@ -132,9 +132,8 @@
<span>鐘舵�侊細</span>
<el-select v-model="search.type" size="small" placeholder="璇烽�夋嫨" style="width: 224px;margin-right: 30px;">
<el-option label="鍏ㄩ儴" :value="null"></el-option>
- <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="1"></el-option>
+ <el-option label="涓嶉�氳繃" :value="0"></el-option>
</el-select>
<span>浜よ揣鏃ユ湡锛�</span>
<el-date-picker v-model="search.delTime" size="small" placeholder="璇疯緭鍏�" style="width: 224px;margin-right: 30px;"
@@ -174,7 +173,8 @@
<span class="table_do" @click="changeShowDetail(scope.row)"> 鏌ョ湅璇︽儏 </span>
<span class="table_do" v-if="scope.row.type==null" @click="saleCheck(scope)"> 瀹℃牳 </span>
<span class="table_do" v-else> </span>
- <span class="table_do" @click="openUpDia(scope.row.id)"> 缂栬緫 </span>
+ <span class="table_do" v-if="scope.row.type==null" @click="openUpDia(scope.row.id)"> 缂栬緫 </span>
+ <span class="table_do" v-else> </span>
<span class="table_do" @click="delSale(scope.$index)"> 鍒犻櫎 </span>
</template>
</el-table-column>
@@ -402,7 +402,7 @@
delTime: null
},
tableData: [],
- selects: [],
+ selects: '',
currentPage: 1,
countSize: 0,
pageSize: 10,
@@ -430,7 +430,13 @@
},
methods: {
handleSelectionChange(val) {
- this.selects = val.id;
+ this.selects = ''
+ val.forEach((a, ai)=>{
+ this.selects += a.id
+ if(ai!=val.length-1){
+ this.selects += ','
+ }
+ })
},
handleSizeChange(val) {
this.pageSize = val
@@ -456,7 +462,7 @@
})
},
clean() {
- this.selects = []
+ this.selects = ''
this.currentPage = 1
this.countSize = 0
this.pageSize = 10
@@ -464,7 +470,8 @@
formTime: null,
createTime: null,
insState: 2,
- judgeState: 2
+ judgeState: 2,
+ type: null
}
this.selectRawInspectsList()
},
@@ -565,7 +572,6 @@
})
},
upSale() {
- console.log(this.addData);
for (var b = 0; b < this.addData.saleMaterialList.length; b++) {
if (Object.keys(this.addData.saleMaterialList[b]).length == 0) {
this.addData.saleMaterialList.splice(b, 1)
@@ -581,7 +587,8 @@
}
}
for (var a in this.addData) {
- if ((this.addData[a] == null || this.addData[a] == '') && a != 'type') {
+ console.log(a);
+ if ((this.addData[a] == null || this.addData[a] == '') && a!='checkname' && a!='checkTime' && a != 'type') {
if (a == 'saleMaterialList') {
this.$message.error('浜у搧淇℃伅涓嶈兘涓虹┖')
} else {
@@ -612,13 +619,12 @@
})
},
delSales(){
- console.log(this.selects);
+ if(this.selects=='') {
+ this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹垹闄�')
+ return
+ }
this.axios.post(this.$api.url.delAllSale,{
ids: this.selects
- }, {
- headers: {
- 'Content-Type': 'application/json'
- }
}).then(res=>{
this.$message.success('鍒犻櫎鎴愬姛')
this.selectRawInspectsList()
diff --git a/src/components/view/self-inspection.vue b/src/components/view/self-inspection.vue
index a10d40f..55b8cbc 100644
--- a/src/components/view/self-inspection.vue
+++ b/src/components/view/self-inspection.vue
@@ -141,7 +141,7 @@
<div class="thing">
<div class="left">
<el-input v-model="search.technology" suffix-icon="el-icon-search" placeholder="璇疯緭鍏ユ悳绱㈠唴瀹�" size="small" clearable @input="(val)=>$refs.tree.filter(val)"></el-input>
- <el-tree :data="list" style="height: 500px;overflow-y: auto;" ref="tree" :props="{children: 'children',label: 'name'}" node-key="name" default-expand-all
+ <el-tree :data="list" ref="tree" :props="{children: 'children',label: 'name'}" node-key="name" default-expand-all
@node-click="handleNodeClick" highlight-current @node-expand="nodeOpen" @node-collapse="nodeClose" :filter-node-method="filterNode"
:key="upIndex">
<div class="custom-tree-node" slot-scope="{ node, data }">
diff --git a/src/components/view/standard-table/material.vue b/src/components/view/standard-table/material.vue
index 66e3416..4dc288b 100644
--- a/src/components/view/standard-table/material.vue
+++ b/src/components/view/standard-table/material.vue
@@ -40,6 +40,11 @@
<el-table-column prop="unit" label="鍗曚綅">
</el-table-column>
<el-table-column prop="num" label="鏁伴噺">
+ <template slot-scope="scope">
+ <el-input v-model="scope.row.num"
+ v-if="scope.row.mname != null"
+ @blur="updateVal(scope.row)"></el-input>
+ </template>
</el-table-column>
</el-table>
</div>
@@ -51,13 +56,25 @@
data() {
return {
hasChildren:true,
- selects: []
+ selects: [],
+ isAllSelect:false,
+ deleteList:[],
}
},
props:['tableData','tableType'],
created() {},
mounted() {},
methods: {
+ updateVal(row){
+ this.$axios.post(this.$api.url.mBomWrite,{
+ id : row.id,
+ num : row.num
+ }).then(res=>{
+ this.$message.success(res.message);
+ }).catch(error=>{
+ this.$message.error(error.message);
+ })
+ },
// 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆
// 鍏ㄩ��/鍙栨秷閫夋搷浣�
selectAll(val) {
@@ -94,14 +111,33 @@
}
}
},
- handleSelectionChange(val) {
- this.deleteList = [];
- val.forEach((v) => {
- if (v.id !== undefined) {
- this.deleteList.push(v.id);
+ //鏀瑰彉閫変腑
+ toggleSelection(row, flag) {
+ this.$set(row, "isChecked", flag);
+ this.$nextTick(() => {
+ if (flag) {
+ this.$refs.multipleTable.toggleRowSelection(row, flag);
+ } else {
+ this.$refs.multipleTable.clearSelection();
}
});
},
+ handleSelectionChange(val) {
+ this.deleteList = [];
+ val.forEach((v) => {
+ this.searchIdFun(v);
+ });
+ this.$emit("childData",this.deleteList);
+ },
+ //閫掑綊鏌ユ壘閫変腑鏁版嵁id
+ searchIdFun(data){
+ let obj = data;
+ if(obj.children != undefined){
+ this.searchIdFun(obj.children);
+ }else{
+ this.deleteList.push(obj.id);
+ }
+ },
// 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆 缁撴潫
}
}
@@ -146,8 +182,8 @@
.standard .el-table__body {
height: 100%;
}
- .standard .el-table .el-table__row:not([class*="el-table__row--level-"]) td:nth-child(3){
+ /* .standard .el-table .el-table__row:not([class*="el-table__row--level-"]) td:nth-child(3){
padding-left: 23px !important;
- }
+ } */
</style>
\ No newline at end of file
diff --git a/src/components/view/standard-table/product.vue b/src/components/view/standard-table/product.vue
index 95a0782..62990fd 100644
--- a/src/components/view/standard-table/product.vue
+++ b/src/components/view/standard-table/product.vue
@@ -35,9 +35,9 @@
/* .standard .el-table__body {
height: 100%;
} */
- .standard .el-table .el-table__row:not([class*="el-table__row--level-"]) td:nth-child(3){
+ /* .standard .el-table .el-table__row:not([class*="el-table__row--level-"]) td:nth-child(3){
padding-left: 23px !important;
- }
+ } */
</style>
<template>
<div class="standard">
@@ -69,12 +69,18 @@
</el-table-column>
<el-table-column prop="productFather" label="椤圭洰">
<template slot-scope="scope">
- <el-tag type="info" v-if="scope.row.productFather != null">03</el-tag>
+ <el-tag type="info" v-if="scope.row.productFather != null">04</el-tag>
<span>{{scope.row.productFather}}</span>
</template>
</el-table-column>
+ <el-table-column prop="productFather" hidden></el-table-column>
<el-table-column prop="unit" label="鍗曚綅"></el-table-column>
<el-table-column prop="product" label="鎸囨爣"></el-table-column>
+ <el-table-column label="鎿嶄綔">
+ <template slot-scope="scope">
+ <el-button type="text" @click="updateProduct(scope.row)">缂栬緫</el-button>
+ </template>
+ </el-table-column>
</el-table>
</div>
</template>
@@ -85,10 +91,14 @@
deviceGroupDialog:false,
selects: [],
isAllSelect:false,
+ deleteList:[],
}
},
props:['tableData','tableType'],
methods:{
+ updateProduct(row){
+ console.log(row);
+ },
// 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆
// 鍏ㄩ��/鍙栨秷閫夋搷浣�
selectAll(val) {
@@ -125,13 +135,32 @@
}
}
},
+ //鏀瑰彉閫変腑
+ toggleSelection(row, flag) {
+ this.$set(row, "isChecked", flag);
+ this.$nextTick(() => {
+ if (flag) {
+ this.$refs.multipleTable.toggleRowSelection(row, flag);
+ } else {
+ this.$refs.multipleTable.clearSelection();
+ }
+ });
+ },
handleSelectionChange(val) {
this.deleteList = [];
val.forEach((v) => {
- if (v.id !== undefined) {
- this.deleteList.push(v.id);
- }
+ this.searchIdFun(v);
});
+ this.$emit("childData",this.deleteList);
+ },
+ //閫掑綊鏌ユ壘閫変腑鏁版嵁id
+ searchIdFun(data){
+ let obj = data;
+ if(obj.children != undefined){
+ this.searchIdFun(obj.children);
+ }else{
+ this.deleteList.push(obj.tqid);
+ }
},
// 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆 缁撴潫
}
diff --git a/src/components/view/standard-table/target.vue b/src/components/view/standard-table/target.vue
index 46cc2d9..9524ae4 100644
--- a/src/components/view/standard-table/target.vue
+++ b/src/components/view/standard-table/target.vue
@@ -57,6 +57,8 @@
data() {
return {
selects: [],
+ deleteList:[],
+ isAllSelect:false,
}
},
props:['tableData','tableType'],
@@ -99,13 +101,32 @@
}
}
},
+ //鏀瑰彉閫変腑
+ toggleSelection(row, flag) {
+ this.$set(row, "isChecked", flag);
+ this.$nextTick(() => {
+ if (flag) {
+ this.$refs.multipleTable.toggleRowSelection(row, flag);
+ } else {
+ this.$refs.multipleTable.clearSelection();
+ }
+ });
+ },
handleSelectionChange(val) {
this.deleteList = [];
val.forEach((v) => {
- if (v.id !== undefined) {
- this.deleteList.push(v.id);
- }
+ this.searchIdFun(v);
});
+ this.$emit("childData",this.deleteList);
+ },
+ //閫掑綊鏌ユ壘閫変腑鏁版嵁id
+ searchIdFun(data){
+ let obj = data;
+ if(obj.children != undefined){
+ this.searchIdFun(obj.children);
+ }else{
+ this.deleteList.push(obj.pid);
+ }
},
// 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆 缁撴潫
updateVal(row){
@@ -118,9 +139,6 @@
}).catch(error=>{
this.$message.error(error.message);
})
- },
- handleSelectionChange(val) {
- this.selects = val;
},
}
}
@@ -169,8 +187,8 @@
/* .standard .el-table__body {
height: 100%;
} */
- .standard .el-table .el-table__row:not([class*="el-table__row--level-"]) td:nth-child(3){
+ /* .standard .el-table .el-table__row:not([class*="el-table__row--level-"]) td:nth-child(3){
padding-left: 23px !important;
- }
+ } */
</style>
\ No newline at end of file
diff --git a/src/components/view/standard-table/technology.vue b/src/components/view/standard-table/technology.vue
index 2c2792e..978a988 100644
--- a/src/components/view/standard-table/technology.vue
+++ b/src/components/view/standard-table/technology.vue
@@ -67,16 +67,10 @@
props:['tableData','tableType'],
created() {},
mounted() {
-
},
methods: {
// 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆
// 鍏ㄩ��/鍙栨秷閫夋搷浣�
- selectAll(val) {
- this.isAllSelect = !this.isAllSelect;
- let data = this.tableData;
- this.toggleSelect(data, this.isAllSelect, "all");
- },
//閫夋嫨鏌愯
selectTr(selection, row) {
this.$set(row, "isChecked", !row.isChecked);
@@ -106,13 +100,37 @@
}
}
},
+ //鏀瑰彉閫変腑
+ toggleSelection(row, flag) {
+ this.$set(row, "isChecked", flag);
+ this.$nextTick(() => {
+ if (flag) {
+ this.$refs.multipleTable.toggleRowSelection(row, flag);
+ } else {
+ this.$refs.multipleTable.clearSelection();
+ }
+ });
+ },
+ selectAll(val) {
+ this.isAllSelect = !this.isAllSelect;
+ let data = this.tableData;
+ this.toggleSelect(data, this.isAllSelect, "all");
+ },
handleSelectionChange(val) {
this.deleteList = [];
val.forEach((v) => {
- if (v.id !== undefined) {
- this.deleteList.push(v.id);
- }
+ this.searchIdFun(v);
});
+ this.$emit("childData",this.deleteList);
+ },
+ //閫掑綊鏌ユ壘閫変腑鏁版嵁id
+ searchIdFun(data){
+ let obj = data;
+ if(obj.children != undefined){
+ this.searchIdFun(obj.children);
+ }else{
+ this.deleteList.push(obj.id);
+ }
},
// 琛ㄦ牸鏍戝叏閮ㄩ�変腑閰嶇疆 缁撴潫
showDialog(){
@@ -189,7 +207,7 @@
/* .standard .el-table__body {
height: 100%;
} */
- .standard .el-table .el-table__row:not([class*="el-table__row--level-"]) td:nth-child(3){
+ /* .standard .el-table .el-table__row:not([class*="el-table__row--level-"]) td:nth-child(3){
padding-left: 23px !important;
- }
+ } */
</style>
diff --git a/src/components/view/standard.vue b/src/components/view/standard.vue
index 0586a40..2a3269a 100644
--- a/src/components/view/standard.vue
+++ b/src/components/view/standard.vue
@@ -5,9 +5,9 @@
<el-col :span="12" style="line-height: 32px;">鏍囧噯BOM</el-col>
<el-col :span="12" style="text-align: right;">
<el-button type="primary" icon="el-icon-plus" style="background: #004EA2;"
- @click="bomAddModelVisible = true">鏂板</el-button>
- <el-button icon="el-icon-plus">鏂板鐗堟湰</el-button>
- <el-button @click="bomRightDl=true" icon="el-icon-delete">鍒犻櫎</el-button>
+ @click="showBomAddModel">鏂板</el-button>
+ <el-button icon="el-icon-plus" @click="addVersionBtn">鏂板鐗堟湰</el-button>
+ <el-button @click="deleteDataBtn" icon="el-icon-delete">鍒犻櫎</el-button>
</el-col>
</el-row>
</div>
@@ -32,8 +32,6 @@
</div>
</el-tree>
</div>
-
-
<div class="right">
<div class="choose">
<span>绫诲瀷锛�</span>
@@ -45,10 +43,10 @@
<el-option :value="3" label="鐢熶骇宸ヨ壓"></el-option>
</el-select>
<span>{{ tableType == 1 ? '椤圭洰锛�' : '宸ヨ壓鍚嶇О锛�' }}</span>
- <el-input v-model="searchName" size="small" placeholder="璇疯緭鍏�" style="width: 224px;margin-right: 24px;"
+ <el-input v-model="searchName" size="small" placeholder="璇疯緭鍏�" style="width: 224px;margin-right: 50px;"
clearable></el-input>
- <span>{{ tableType == 1 ? '鐗堟湰锛�' : '鐗堟湰锛�' }}</span>
- <el-select v-model="VER" @change="verevent" style="width: 280px;" placeholder="璇烽�夋嫨">
+ <span>鐗堟湰锛�</span>
+ <el-select v-model="version2" @change="verevent" size="small" style="width: 280px;margin-right: 10px;" placeholder="璇烽�夋嫨">
<el-option v-for="item in version" :key="item" :label="item" :value="item">
</el-option>
</el-select>
@@ -58,16 +56,17 @@
</div>
<div class="contentTable" v-if="this.typeselect == 0">
- <technology :tableType="tableType" :tableData="tableData"></technology>
+ <technology @childData="getChildData" :tableType="tableType" :tableData="tableData"></technology>
</div>
<div v-if="this.typeselect == 1">
- <target :tableType="tableType" :tableData="tableData"></target>
+ <target @childData="getChildData" :tableType="tableType" :tableData="tableData"></target>
</div>
<div v-if="this.typeselect == 2">
- <bom :tableType="tableType" :tableData="tableData"></bom>
+ <material @childData="getChildData" :tableType="tableType" :tableData="tableData"></material>
</div>
- <div v-if="this.typeselect == 3">鐢熶骇宸ヨ壓</div>
-
+ <div v-if="this.typeselect == 3">
+ <product @childData="getChildData" :tableType="tableType" :tableData="tableData"></product>
+ </div>
</div>
</div>
@@ -155,45 +154,82 @@
<!-- 鐗╂枡娓呭崟 -->
<div v-if="typeselect == 2">
<el-form :model="materialForm" label-position="right"
- :rules="materialRules" ref="materialForm" label-width="80px">
- <el-row>
+ :rules="materialRules" ref="materialForm" label-width="90px">
+ <el-row :gutter="100">
<el-col :span="12">
- <el-form-item label="瑙勬牸鍨嬪彿:" width="250">
- <el-input style="width:200px;" v-model="materialForm.pname" placeholder="璇疯緭鍏ュ崟浣�"/>
- </el-form-item>
+ <el-form-item label="宸ュ簭:" prop="mfather">
+ <el-select placeholder="璇烽�夋嫨宸ュ簭" @change="changeMName"
+ style="width:100%;" v-model="materialForm.mfather">
+ <el-option v-for="(item,index) in materialFormList" :key="index"
+ :label="item.name" :value="item.name" ></el-option>
+ </el-select>
+ </el-form-item>
</el-col>
- <el-col :span="12" style="text-align: right;">
- <el-form-item label="浜у搧澶х被:" width="250">
- <el-select placeholder="璇烽�夋嫨浜у搧澶х被"
- style="width:240px;" v-model="materialForm.dg">
- <el-option value="1">1</el-option>
- <el-option value="2">2</el-option>
- <el-option value="3">3</el-option>
- <el-option value="4">4</el-option>
+ <el-col :span="12">
+ <el-form-item label="宸ヨ壓鍚嶇О:" prop="mtechnologyId">
+ <el-select placeholder="璇烽�夋嫨宸ヨ壓鍚嶇О" style="width:100%;"
+ v-model="materialForm.mtechnologyId">
+ <el-option v-for="(item,index) in mIdList" :key="index"
+ :value="item.id" :label="item.name"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
- <el-form-item label="鏉愭枡淇℃伅"></el-form-item>
+ <el-form-item label="鏉愭枡淇℃伅" style="font-weight: bold;"></el-form-item>
</el-col>
<el-col :span="12" style="text-align: right;">
- <el-button size="mini" style="text-align: right;">娣诲姞琛�</el-button>
+ <el-button size="mini" @click="addRowByMaterial">娣诲姞琛�</el-button>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
- <el-table >
- <el-table-column label="鏉愭枡鍚嶇О"></el-table-column>
- <el-table-column label="瑙勬牸鍨嬪彿"></el-table-column>
- <el-table-column label="鍗曚綅"></el-table-column>
- <el-table-column label="鏁伴噺"></el-table-column>
+ <el-table :data="materialForm.tableList" border max-height="470"
+ style="width:100%;text-align: left;margin: 0;padding: 0;"
+ :cell-style="{height:'20px',textAlign:'left'}"
+ :header-cell-style="{height:'20px'}">
+ <el-table-column label="渚涘簲鍟嗗悕绉�">
+ <template slot-scope="scope">
+ <el-input size="mini" v-model="scope.row.supplier"
+ placeholder="璇疯緭鍏�"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column label="璐ㄩ噺杩芥函鍙�">
+ <template slot-scope="scope">
+ <el-input size="mini" v-model="scope.row.qualityTraceability"
+ placeholder="璇疯緭鍏�"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column label="鍘熸潗鏂欏悕绉�">
+ <template slot-scope="scope">
+ <el-input size="mini" v-model="scope.row.name"
+ placeholder="璇疯緭鍏�"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column label="瑙勬牸鍨嬪彿">
+ <template slot-scope="scope">
+ <el-input size="mini" v-model="scope.row.specifications"
+ placeholder="璇疯緭鍏�"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column label="鍗曚綅">
+ <template slot-scope="scope">
+ <el-input size="mini" v-model="scope.row.unit"
+ placeholder="璇疯緭鍏�"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column label="鏁伴噺">
+ <template slot-scope="scope">
+ <el-input size="mini" v-model="scope.row.num"
+ placeholder="璇疯緭鍏�"></el-input>
+ </template>
+ </el-table-column>
</el-table>
</el-col>
</el-row>
</el-form>
- <div style="width:100%;text-align: right;">
+ <div style="width:100%;margin-top: 20px;margin-left:75%">
<span slot="footer" class="dialog-footer" >
<el-button type="primary" @click="confirmAdd('materialForm')">纭� 瀹�</el-button>
<el-button @click="bomAddModelVisible = false">鍙� 娑�</el-button>
@@ -203,52 +239,49 @@
<!-- 鐢熶骇宸ヨ壓 -->
<div v-if="typeselect == 3">
<el-form :model="productForm" :inline="true" label-position="right"
- label-width="80px">
- <el-form-item label="宸ュ簭:" width="250">
- <el-select v-model="productForm.father"
- style="width:200px;"
- placeholder="璇疯緭鍏ユ垨閫夋嫨鐢熶骇瀹氶">
- <el-option value="1">1</el-option>
- <el-option value="2">2</el-option>
- <el-option value="3">3</el-option>
- <el-option value="4">4</el-option>
+ :rules="productRules" ref="productForm" label-width="90px">
+ <el-form-item label="宸ュ簭:" prop="profather">
+ <el-select v-model="productForm.profather"
+ style="width:200px;" @change="changeProduct"
+ placeholder="璇烽�夋嫨宸ュ簭">
+ <el-option v-for="(item,index) in productFormList" :key="index"
+ :value="item.name" :label="item.name"></el-option>
</el-select>
</el-form-item>
- <el-form-item label="宸ヨ壓鍚嶇О:" width="250">
- <el-select placeholder="璇疯緭鍏ユ垨閫夋嫨宸ヨ壓鍚嶇О"
- style="width:200px;"
- v-model="productForm.name">
- <el-option value="1">1</el-option>
- <el-option value="2">2</el-option>
- <el-option value="3">3</el-option>
- <el-option value="4">4</el-option>
+ <el-form-item label="宸ヨ壓鍚嶇О:" prop="protechnologyId">
+ <el-select placeholder="璇烽�夋嫨宸ヨ壓鍚嶇О"
+ style="width:200px;" @change="getProductDeviceList"
+ v-model="productForm.protechnologyId">
+ <el-option v-for="(item,index) in proIdList" :key="index"
+ :value="item.id" :label="item.name"></el-option>
</el-select>
</el-form-item>
- <el-form-item label="璁惧:" width="250">
+ <el-form-item label="璁惧:" prop="device">
<el-select placeholder="璇烽�夋嫨璁惧"
style="width:200px;"
- v-model="productForm.dg">
- <el-option value="1">1</el-option>
- <el-option value="2">2</el-option>
- <el-option value="3">3</el-option>
- <el-option value="4">4</el-option>
+ v-model="productForm.device">
+ <el-option v-for="(item,index) in productDeviceList" :key="index"
+ :value="item.device" :label="item.device"></el-option>
</el-select>
</el-form-item>
- <el-form-item label="椤圭洰:" width="250">
+ <el-form-item label="椤圭洰:" prop="productFather">
<el-select placeholder="璇烽�夋嫨椤圭洰"
- style="width:200px;"
- v-model="productForm.dg">
- <el-option value="1">1</el-option>
- <el-option value="2">2</el-option>
- <el-option value="3">3</el-option>
- <el-option value="4">4</el-option>
+ style="width:200px;" @change="changeProductFather"
+ v-model="productForm.productFather">
+ <el-option v-for="(item,index) in productProjectList" :key="index"
+ :value="item.name" :label="item.name"></el-option>
</el-select>
</el-form-item>
- <el-form-item label="鍗曚綅:" width="250">
- <el-input style="width:200px;" v-model="productForm.unit" placeholder="璇疯緭鍏ュ崟浣�"/>
+ <el-form-item label="鎸囨爣:" prop="product">
+ <el-select placeholder="璇烽�夋嫨鎸囨爣"
+ style="width:200px;" @change="changeProProduct"
+ v-model="productForm.product">
+ <el-option v-for="(item,index) in proProductList" :key="index"
+ :value="item.name" :label="item.name"></el-option>
+ </el-select>
</el-form-item>
- <el-form-item label="鎸囨爣:" width="250">
- <el-input style="width:200px;" v-model="productForm.pq" placeholder="璇疯緭鍏ユ寚鏍�" />
+ <el-form-item label="鍗曚綅:" prop="unit">
+ <el-input style="width:200px;" disabled v-model="productForm.unit"/>
</el-form-item>
</el-form>
<div style="width:100%;text-align: right;">
@@ -300,10 +333,11 @@
<script>
import technology from "./standard-table/technology.vue"
import material from "./standard-table/material.vue"
-// import bom from "./standard-table/bom.vue"
+import target from "./standard-table/target.vue"
+import product from "./standard-table/product.vue"
import bomClickAdd from '@/components/view/standard-box/bomClickAdd'
export default {
- components: { technology,material,bomClickAdd },
+ components: { technology,material,target,product,bomClickAdd },
data() {
var checkPq = (rule,value,callback)=>{
@@ -320,14 +354,11 @@
callback();
};
return {
- //鎶�鏈寚鏍�-鏂板-宸ュ簭锛屽伐鑹轰笅鎷夋鏁版嵁
- targetFormList:[],
- technologyIdList:[],
- //鎶�鏈寚鏍�-鏂板-椤圭洰涓嬫媺妗嗘暟鎹�
- projectList:[],
+ //瀛愮粍浠朵紶鐨刬d鍒楄〃
+ childIds:[],
//宸ュ簭鍒楄〃
+ technologyIdList:[],
fatherList:[],
- //璁惧缁勫垪琛�
deviceList:[],
technologyForm:{
tefather:'',
@@ -335,6 +366,15 @@
deviceGroup:'',
productionQuota:''
},
+ technologyRules:{
+ tefather:{required:true,message:'宸ュ簭涓嶈兘涓虹┖',trigger:'change'},
+ tename:{required:true,message:'宸ヨ壓鍚嶇О涓嶈兘涓虹┖',trigger:'blur'},
+ deviceGroup:{required:true,message:'璁惧缁勪笉鑳戒负绌�',trigger:'change'},
+ productionQuota:{validator:checkPq,trigger:'change'}
+ },
+ //鎶�鏈寚鏍�
+ targetFormList:[],
+ projectList:[],
targetForm:{
pfather:'',
father: '',
@@ -343,14 +383,6 @@
unit:'',
internal:'',
required: ''
- },
- materialForm:{},
- productForm:{},
- technologyRules:{
- tefather:{required:true,message:'宸ュ簭涓嶈兘涓虹┖',trigger:'change'},
- tename:{required:true,message:'宸ヨ壓鍚嶇О涓嶈兘涓虹┖',trigger:'blur'},
- deviceGroup:{required:true,message:'璁惧缁勪笉鑳戒负绌�',trigger:'change'},
- productionQuota:{validator:checkPq,trigger:'change'}
},
targetRules:{
pfather:{required:true,message:'宸ュ簭涓嶈兘涓虹┖',trigger:'change'},
@@ -361,16 +393,47 @@
internal:{validator:checkVal,trigger:'change'},
required:{validator:checkVal,trigger:'change'}
},
+ //鐗╂枡娓呭崟
+ materialForm:{
+ mfather: '',
+ mtechnologyId:'',
+ tableList:[]
+ },
+ materialFormList:[],
+ mIdList:[],
materialRules:{
-
+ mfather:{required:true,message:'宸ュ簭涓嶈兘涓虹┖',trigger:'change'},
+ mtechnologyId:{required:true,message:'宸ヨ壓鍚嶇О涓嶈兘涓虹┖',trigger:'change'},
},
+ //鐢熶骇宸ヨ壓
+ productForm:{
+ profather:'',
+ protechnologyId:'',
+ productFather:'',
+ product:'',
+ unit:'',
+ device:''
+ },
+ //璁惧鍒楄〃
+ productDeviceList:[],
+ //宸ヨ壓鍚嶇О鍒楄〃
+ proIdList:[],
+ //椤圭洰鍒楄〃
+ productProjectList:[],
+ //鎸囨爣鍒楄〃
+ proProductList:[],
productRules:{
-
+ profather:{required:true,message:'宸ュ簭涓嶈兘涓虹┖',trigger:'change'},
+ protechnologyId:{required:true,message:'宸ヨ壓鍚嶇О涓嶈兘涓虹┖',trigger:'change'},
+ productFather:{required:true,message:'椤圭洰涓嶈兘涓虹┖',trigger:'change'},
+ product:{required:true,message:'鎸囨爣涓嶈兘涓虹┖',trigger:'change'},
+ device:{required:true,message:'璁惧涓嶈兘涓虹┖',trigger:'change'}
},
+ productFormList:[],
// BOM鏍戞暟鎹粨鏋�
list: [],
search: null,
- tableType: 1, // 琛ㄦ牸绫诲瀷 1锛氭妧鏈寚鏍囷紝0锛氬伐鑹鸿矾绾�
+ tableType: 0, // 琛ㄦ牸绫诲瀷 1锛氭妧鏈寚鏍囷紝0锛氬伐鑹鸿矾绾�
searchName: "",// 鏌ヨ鏉′欢-鍚嶇О
checkTreeNode: {},// 鐐瑰嚮閫変腑鏍戣妭鐐�
tableData: [],
@@ -380,9 +443,7 @@
bomRightDl: false,
formTypeOptions: null,
typeselect: 0,
- returntree: {
- id:28,
- },
+ returntree: {id:28},
version: {},
leftAdd:{
type: [],
@@ -391,7 +452,7 @@
name: null,
specifications: null
},
- VER: {},
+ version2: {},
verdata: {},
character: 0,
restaurants: [],
@@ -515,6 +576,69 @@
leftAddBom(){
},
+ //鑾峰彇瀛愮粍浠舵暟鎹�
+ getChildData(data){
+ this.childIds = data;
+ },
+ //鍒犻櫎鎸夐挳
+ deleteDataBtn(){
+ let ids;
+ let url;
+ ids = this.childIds.filter(item=>{
+ return item != undefined;
+ });
+ if(ids.length < 1){
+ this.$message.error("璇峰厛閫夋嫨鏁版嵁锛�");
+ return;
+ }
+ switch(this.typeselect){
+ case 0:
+ url = this.$api.url.delAllByTechnology;
+ break;
+ case 1:
+ url = this.$api.url.delAllByTarget;
+ break;
+ case 2:
+ url = this.$api.url.delAllByMBom;
+ break;
+ case 3:
+ url = this.$api.url.delAllByProduct;
+ break;
+ }
+ this.$confirm('纭鍒犻櫎宸查�変腑鐨勬暟鎹悧', '鍒犻櫎', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ this.$axios.post(url,{
+ ids : ids.join(",")
+ }).then(res=>{
+ this.selectAll();
+ this.$message.success(res.message);
+ }).catch(error=>{
+ this.$message.error(error.message);
+ })
+ }).catch(() => {});
+ },
+ //鏂板鐗堟湰
+ addVersionBtn(){
+ this.$confirm('纭鏂板鐗堟湰鍚�', '鏂板鐗堟湰', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'info'
+ }).then(() => {
+ this.$axios.post(this.$api.url.addVersion,{
+ specificationsId : this.returntree.id,
+ version : this.version2.substring(1,2),
+ }).then(res=>{
+ this.selectVersion();
+ this.$message.success(res.message);
+ }).catch(error=>{
+ this.$message.error(error.message);
+ })
+ }).catch(() => {});
+ },
+ //鍙充晶bom,纭鏂板
confirmAdd(formName){
this.$refs[formName].validate(valid=>{
if(valid){
@@ -531,8 +655,25 @@
this.submitBomAdd(this.$api.url.addTechnology,obj);
}else if(type == 1){
this.submitBomAdd(this.$api.url.addProductByStandard,this.targetForm);
+ }else if(type == 2){
+ obj = {
+ mbomDto2List:this.materialForm.tableList,
+ technologyId:this.materialForm.mtechnologyId
+ }
+ this.submitBomAdd(this.$api.url.addMBomByStandard,obj);
+ }else if(type == 3){
+ let form = this.productForm;
+ obj = {
+ device: form.device,
+ product: form.product,
+ productFather: form.productFather,
+ technologyId: form.protechnologyId,
+ unit: form.unit
+ }
+ this.submitBomAdd(this.$api.url.addTechniqueByStandard,obj);
+ }else{
+ return
}
-
}
})
},
@@ -576,7 +717,35 @@
this.technologyIdList = arr[0].children;
}
},
- //鑾峰彇宸ュ簭锛屽伐鑹哄垪琛�
+ //鐗╂枡娓呭崟--娣诲姞琛�
+ addRowByMaterial(){
+ let obj = {
+ "name": "",
+ "num": null,
+ "qualityTraceability": "",
+ "specifications": "",
+ "supplier": "",
+ "unit": ""
+ }
+ this.materialForm.tableList.push(obj);
+ },
+ //鐗╂枡娓呭崟--鑾峰彇宸ュ簭锛屽伐鑹哄垪琛�
+ getMaterialFormList(){
+ this.$axios.get(this.$api.url.chooseTechByMBom,{
+ params:{specificationsId : this.returntree.id}
+ }).then(res=>{
+ this.materialFormList = res.data;
+ }).catch(error=>{
+ this.$message.error(error.message);
+ })
+ },
+ changeMName(val){
+ let arr = this.materialFormList.filter(item=>{
+ return item.name == val;
+ })
+ this.mIdList = arr[0].children;
+ },
+ //鎶�鏈寚鏍�--鑾峰彇宸ュ簭锛屽伐鑹哄垪琛�
getTargetFormList(){
this.$axios.get(this.$api.url.chooseTechByStandard,{
params:{specificationsId : this.returntree.id}
@@ -586,11 +755,59 @@
this.$message.error(error.message);
})
},
- //鑾峰彇椤圭洰鍒楄〃
- getProjectFormList(){
-
+ //1.鐢熶骇宸ヨ壓-->閫夋嫨宸ュ簭,宸ヨ壓
+ getProductFormList(){
+ this.$axios.get(this.$api.url.chooseTechByProduct,{
+ params:{specificationsId : this.returntree.id}
+ }).then(res=>{
+ this.productFormList = res.data;
+ }).catch(error=>{
+ this.$message.error(error.message);
+ })
},
- //鑾峰彇宸ュ簭鍒楄〃
+ //2.閫夋嫨宸ュ簭锛岃幏鍙栧伐鑹哄悕绉�
+ changeProduct(val){
+ let arr = this.productFormList.filter(item=>{
+ return item.name == val
+ });
+ this.proIdList = arr[0].children;
+ },
+ //3.鐢熶骇宸ヨ壓-->閫夋嫨璁惧
+ getProductDeviceList(val){
+ this.$axios.get(this.$api.url.chooseDevByProduct,{
+ params:{technologyId : val}
+ }).then(res=>{
+ this.productDeviceList = res.data;
+ this.getProjectFormList(val);
+ }).catch(error=>{
+ this.$message.error(error.message);
+ })
+ },
+ //4.鐢熶骇宸ヨ壓--鑾峰彇椤圭洰鍒楄〃
+ getProjectFormList(val){
+ this.$axios.get(this.$api.url.chooseProByProduct,{
+ params:{technologyId : val}
+ }).then(res=>{
+ this.productProjectList = res.data;
+ }).catch(error=>{
+ this.$message.error(error.message);
+ })
+ },
+ //5.閫夋嫨椤圭洰鍒楄〃,鑾峰彇鎸囨爣
+ changeProductFather(val){
+ let arr = this.productProjectList.filter(item=>{
+ return item.name == val;
+ })
+ this.proProductList = arr[0].children;
+ },
+ //閫夋嫨鎸囨爣鍒楄〃
+ changeProProduct(val){
+ let arr = this.proProductList.filter(item=>{
+ return item.name == val;
+ })
+ this.productForm.unit = arr[0].unit;
+ },
+ //宸ヨ壓璺嚎--鑾峰彇宸ュ簭鍒楄〃
getFatherList(){
this.$axios.get(this.$api.url.chooseFather,{
params:{specificationsId : this.returntree.id}
@@ -600,7 +817,7 @@
this.$message.error(error.message);
})
},
- //鑾峰彇璁惧缁勫垪琛�
+ //宸ヨ壓璺嚎--鑾峰彇璁惧缁勫垪琛�
getDeviceList(){
this.$axios.get(this.$api.url.chooseDevice).then(res=>{
this.deviceList = res.data;
@@ -612,6 +829,8 @@
this.getFatherList();
this.getDeviceList();
this.getTargetFormList();
+ this.getMaterialFormList();
+ this.getProductFormList();
this.bomAddModelVisible = true
},
startLeftAdd(){
@@ -708,7 +927,7 @@
return this.verdata[0]
})
this.character=v
- this.VER="v"+v
+ this.version2="v"+v
this.selectAll()
},
//鍙充晶鏁版嵁
diff --git a/src/components/view/technical.vue b/src/components/view/technical.vue
index 753f2ac..424ee7e 100644
--- a/src/components/view/technical.vue
+++ b/src/components/view/technical.vue
@@ -4,7 +4,7 @@
<el-row>
<el-col :span="12">鎶�鏈枃浠�</el-col>
<el-col :span="12" style="text-align: right;">
- <el-button icon="el-icon-plus">鐢熸垚椤圭洰涔�</el-button>
+ <el-button icon="el-icon-plus">鐢熸垚椤圭洰涔�</el-button>
</el-col>
</el-row>
</div>
@@ -25,14 +25,14 @@
<el-input v-model="searchData.name" @input="query"></el-input>
</el-form-item>
<el-form-item label="缂栧埗鐘舵��:" >
- <el-select v-model="searchData.type" placeholder="鍏ㄩ儴" style="width: 310px;">
+ <el-select v-model="searchData.type" size="small" placeholder="鍏ㄩ儴" style="width: 250px;">
<el-option label="寰呯紪鍒�" :value="0"></el-option>
<el-option label="宸茬紪鍒�" :value="1"></el-option>
</el-select>
</el-form-item>
- <el-form-item >
- <el-button plain @click="resetBtn">閲� 缃�</el-button>
- <el-button @click="searchTechnical">鏌� 璇�</el-button>
+ <el-form-item>
+ <el-button plain @click="resetBtn" style="margin-left: 12px;">閲� 缃�</el-button>
+ <el-button @click="searchTechnical">鏌� 璇�</el-button>
</el-form-item>
</el-form>
</div>
@@ -335,6 +335,7 @@
background: #fff;
padding: 24px 32px;
}
+
.search-header .el-form-item__label{
padding: 0 30px 0 0;
}
@@ -416,3 +417,12 @@
}
</style>
+<style>
+ .technical .title *{
+ font-size: 14px;
+ }
+
+ .technical .search-header *{
+ font-size: 14px;
+ }
+</style>
diff --git a/src/components/view/technology.vue b/src/components/view/technology.vue
index 6fa3369..c0ad40a 100644
--- a/src/components/view/technology.vue
+++ b/src/components/view/technology.vue
@@ -46,6 +46,7 @@
height: calc(100% - 20px);
border-right: 3px solid rgb(245, 247, 251);
padding: 16px;
+ overflow-y: auto;
}
.thing .left .custom-tree-node span {
@@ -174,7 +175,6 @@
node-key="name"
default-expand-all
@node-click="handleNodeClick"
- style="height: 500px;overflow-y: auto;"
:key="upIndex"
highlight-current
>
@@ -602,7 +602,7 @@
}
)
.then((res) => {
- console.log(res);
+ this.$parent.removeAllTab()
this.selectAllTechNam();
this.form = {};
});
@@ -640,17 +640,17 @@
},
//鎵归噺鍒犻櫎
delAllTech() {
- console.log(this.delete);
this.$axios.post(this.$api.url.delAllTech, {
- ids: this.delete,
+ ids: this.delete
});
+ this.$parent.removeAllTab()
},
//鍒犻櫎
delTechById() {
- console.log(this.$api.url.delTechById, this.upData.id);
this.$axios.post(this.$api.url.delTechById, {
- id: this.upData.id,
+ id: this.upData.id
});
+ this.$parent.removeAllTab()
},
//缂栬緫
writeTechById() {
@@ -677,7 +677,7 @@
}
)
.then((res) => {
- console.log(res);
+ this.$parent.removeAllTab()
});
},
@@ -789,7 +789,6 @@
return el.id;
});
this.delete = cc.join(",");
- console.log(this.delete);
this.delAllTech();
this.$message.success("鍒犻櫎瀹屾垚");
},
diff --git a/src/view/index.vue b/src/view/index.vue
index 09cfbd5..27712b5 100644
--- a/src/view/index.vue
+++ b/src/view/index.vue
@@ -1,629 +1,585 @@
<style scoped>
-.all {
- width: 100vw;
- height: 100vh;
- background-size: 100% 100%;
- display: flex;
- flex-wrap: wrap;
-}
+ .all {
+ width: 100vw;
+ height: 100vh;
+ background-size: 100% 100%;
+ display: flex;
+ flex-wrap: wrap;
+ }
-.title {
- width: 100%;
- height: 58px;
- display: flex;
- align-items: center;
- padding: 0 30px;
-}
+ .title {
+ width: 100%;
+ height: 58px;
+ display: flex;
+ align-items: center;
+ padding: 0 30px;
+ }
-.logo {
- width: 130px;
-}
+ .logo {
+ width: 130px;
+ }
-.logo img {
- width: 100%;
- height: 100%;
-}
+ .logo img {
+ width: 100%;
+ height: 100%;
+ }
-.title .label {
- font-size: 18px;
- text-align: center;
- width: calc(100% - 130px - 200px);
-}
+ .title .label {
+ font-size: 18px;
+ text-align: center;
+ width: calc(100% - 130px - 200px);
+ }
-.user {
- width: 200px;
- height: 100%;
- display: flex;
- align-items: center;
- justify-content: right;
- color: #000;
-}
+ .user {
+ width: 200px;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: right;
+ color: #000;
+ }
-.user * {
- margin: 0 5px;
-}
+ .user * {
+ margin: 0 5px;
+ }
-.user img {
- margin-left: 20px;
- cursor: pointer;
- width: 14px;
-}
+ .user img {
+ margin-left: 20px;
+ cursor: pointer;
+ width: 14px;
+ }
-.user span {
- font-size: 14px;
-}
+ .user span {
+ font-size: 14px;
+ }
-.left {
- height: calc(100vh - 58px - 40px);
- background-color: #004ea2;
- display: flex;
- align-items: center;
- flex-direction: column;
- padding: 20px 0;
- transition: 0.3s;
- overflow-y: auto;
-}
+ .left {
+ height: calc(100vh - 58px - 40px);
+ background-color: #004ea2;
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ padding: 20px 0;
+ transition: 0.3s;
+ overflow-y: auto;
+ }
-.left::-webkit-scrollbar {
- width: 0;
-}
+ .left::-webkit-scrollbar {
+ width: 0;
+ }
-.left .box {
- color: #fff;
- width: 68px;
- height: 68px;
- margin: 8px 0;
- cursor: pointer;
- display: flex;
- align-items: center;
- justify-content: center;
- flex-direction: column;
- border-radius: 8px;
-}
+ .left .box {
+ color: #fff;
+ width: 68px;
+ height: 68px;
+ margin: 8px 0;
+ cursor: pointer;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-direction: column;
+ border-radius: 8px;
+ }
-.left .box:active {
- opacity: 0.8;
-}
+ .left .box:active {
+ opacity: 0.8;
+ }
-.left .active_box {
- background-color: #fff;
- color: #004ea2;
-}
+ .left .active_box {
+ background-color: #fff;
+ color: #004ea2;
+ }
-.left .box i {
- font-size: 32px;
- margin-bottom: 8px;
-}
+ .left .box i {
+ font-size: 24px;
+ margin-bottom: 8px;
+ }
-.left .box div {
- font-size: 14px;
-}
+ .left .box div {
+ font-size: 14px;
+ }
-.small_menu {
- color: #666;
-}
+ .small_menu {
+ color: #666;
+ }
-.small_menu .active_p {
- color: #004ea2;
-}
+ .small_menu .active_p {
+ color: #004ea2;
+ }
-.small_menu p {
- padding: 12px 15px;
- cursor: pointer;
-}
+ .small_menu p {
+ padding: 12px 15px;
+ cursor: pointer;
+ }
-.small_menu p:hover {
- background-color: rgba(0, 0, 0, 0.05);
-}
+ .small_menu p:hover {
+ background-color: rgba(0, 0, 0, 0.05);
+ }
-.small_menu i {
- font-size: 16px;
-}
+ .small_menu i {
+ font-size: 16px;
+ }
-.small_menu span {
- font-size: 14px;
-}
+ .small_menu span {
+ font-size: 14px;
+ }
-.right {
- height: calc(100vh - 58px);
- transition: 0.3s;
-}
+ .right {
+ height: calc(100vh - 58px);
+ transition: 0.3s;
+ }
-.tag {
- width: 100%;
- height: 36px;
- background: rgb(255, 255, 255);
- opacity: 0.8;
- box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.1);
- display: flex;
- align-items: center;
- color: #999;
- font-size: 14px;
-}
+ .tag {
+ width: 100%;
+ height: 36px;
+ background: rgb(255, 255, 255);
+ opacity: 0.8;
+ box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.1);
+ display: flex;
+ align-items: center;
+ color: #999;
+ font-size: 14px;
+ }
-.tag > .el-icon-s-unfold,
-.el-icon-s-fold {
- font-size: 18px;
- cursor: pointer;
- margin: 0 8px;
-}
+ .tag .el-icon-delete {
+ display: none;
+ }
-.tabs {
- min-width: calc(100% - 34px);
- height: 100%;
- align-items: center;
- display: flex;
- overflow-x: auto;
-}
+ .tag .el-icon-delete:hover {
+ color: #F56C6C;
+ }
-.tab {
- cursor: pointer;
- font-size: 14px;
- margin: 0 8px;
- line-height: 32px;
- transition: 0.3s;
- border-top: 2px solid transparent;
- border-bottom: 2px solid transparent;
- user-select: none;
- flex-shrink: 0;
-}
+ .tag:hover .el-icon-delete {
+ display: block;
+ }
-.tab i {
- font-size: 12px;
- display: none;
-}
+ .tag>.el-icon-s-unfold,
+ .el-icon-s-fold,
+ .el-icon-delete {
+ font-size: 18px;
+ cursor: pointer;
+ margin: 0 8px;
+ }
-.active_tab {
- border-bottom: 2px solid #004ea2;
- color: #004ea2;
-}
+ .tabs {
+ min-width: calc(100% - 68px);
+ height: 100%;
+ align-items: center;
+ display: flex;
+ overflow-x: auto;
+ }
-.active_tab i {
- display: inline;
- color: #004ea2;
-}
+ .tab {
+ cursor: pointer;
+ font-size: 14px;
+ margin: 0 8px;
+ line-height: 32px;
+ transition: 0.3s;
+ border-top: 2px solid transparent;
+ border-bottom: 2px solid transparent;
+ user-select: none;
+ flex-shrink: 0;
+ }
-.component_view {
- height: calc(100vh - 94px - 22px);
- width: calc(100% - 48px);
- padding: 11px 24px;
- background: rgb(245, 247, 251);
- overflow-y: auto;
-}
+ .tab i {
+ font-size: 12px;
+ display: none;
+ }
-.com_index {
- width: 100%;
- height: 100%;
-}
+ .active_tab {
+ border-bottom: 2px solid #004ea2;
+ color: #004ea2;
+ }
+
+ .active_tab i {
+ display: inline;
+ color: #004ea2;
+ }
+
+ .component_view {
+ height: calc(100vh - 94px - 22px);
+ width: calc(100% - 48px);
+ padding: 11px 24px;
+ background: rgb(245, 247, 251);
+ overflow-y: auto;
+ }
+
+ .com_index {
+ width: 100%;
+ height: 100%;
+ }
</style>
-<style></style>
<template>
- <div class="all">
- <div class="title">
- <div class="logo">
- <img src="../../static/img/logo 1.png" />
- </div>
- <div class="label">涓ぉ娴锋磱鏂颁竴浠om绯荤粺</div>
- <div class="user">
- <el-avatar :size="24">{{ userName.substring(0, 1) }}</el-avatar>
- <span>{{ userName }}</span>
- <img src="../../static/img/閫�鍑�.png" @click="out" />
- </div>
- </div>
- <div class="left" :style="`width: ${leftOpen ? '92' : '0'}px;`">
- <div
- :class="`box ${activeBox == 0 ? 'active_box' : ''}`"
- @click="addTab(menu[0].c[0])"
- >
- <i class="font icon-shouye"></i>
- <div>棣栭〉</div>
- </div>
- <div
- :class="`box ${activeBox == 3 ? 'active_box' : ''}`"
- @click="addTab(menu[1].c[0])"
- >
- <i class="font icon-jine"></i>
- <div>閿�鍞鐞�</div>
- </div>
- <el-popover
- placement="right-start"
- width="90"
- trigger="click"
- v-for="(a, ai) in menu"
- :key="ai"
- v-if="a.k != '0' && a.k != '3'"
- >
- <div
- :class="`box ${activeBox == a.k ? 'active_box' : ''}`"
- @click="activeBox = a.k"
- slot="reference"
- >
- <i :class="a.i"></i>
- <div>{{ a.v }}</div>
- </div>
- <div class="small_menu">
- <p
- v-for="(b, bi) in a.c"
- :key="bi"
- :class="activeP == b.k ? 'active_p' : ''"
- @click="addTab(b)"
- >
- <i :class="b.i"></i>
- <span>{{ b.v }}</span>
- </p>
- </div>
- </el-popover>
- </div>
- <div
- class="right"
- :style="`width: calc(100% - ${leftOpen ? '92' : '0'}px);`"
- >
- <div class="tag">
- <i
- :class="`${leftOpen ? 'el-icon-s-unfold' : 'el-icon-s-fold'}`"
- @click="leftOpen = !leftOpen"
- ></i>
- <div class="tabs">
- <div
- :class="`tab ${tabActive == a.k ? 'active_tab' : ''}`"
- v-for="(a, ai) in tabs"
- :key="ai"
- @click="upTabActive(a.k)"
- >
- {{ a.v }}
- <i
- class="el-icon-close"
- @click="removeTab(ai)"
- v-if="tabActive != 0"
- ></i>
- </div>
- </div>
- </div>
- <div class="component_view">
- <component
- class="com_index"
- v-for="(com, index) in tabs"
- :is="com.u"
- :key="upIndex + '|' + index"
- v-show="com.k == tabActive"
- >
- </component>
- </div>
- </div>
- </div>
+ <div class="all">
+ <div class="title">
+ <div class="logo">
+ <img src="../../static/img/logo 1.png" />
+ </div>
+ <div class="label">涓ぉ娴锋磱鏂颁竴浠om绯荤粺</div>
+ <div class="user">
+ <el-avatar :size="24">{{ userName.substring(0, 1) }}</el-avatar>
+ <span>{{ userName }}</span>
+ <img src="../../static/img/閫�鍑�.png" @click="out" />
+ </div>
+ </div>
+ <div class="left" :style="`width: ${leftOpen ? '92' : '0'}px;`">
+ <div :class="`box ${activeBox == 0 ? 'active_box' : ''}`" @click="addTab(menu[0].c[0])">
+ <i class="font icon-shouye"></i>
+ <div>棣栭〉</div>
+ </div>
+ <div :class="`box ${activeBox == 3 ? 'active_box' : ''}`" @click="addTab(menu[1].c[0])">
+ <i class="font icon-jine"></i>
+ <div>閿�鍞鐞�</div>
+ </div>
+ <el-popover placement="right-start" width="90" trigger="click" v-for="(a, ai) in menu" :key="ai"
+ v-if="a.k != '0' && a.k != '3'">
+ <div :class="`box ${activeBox == a.k ? 'active_box' : ''}`" @click="activeBox = a.k" slot="reference">
+ <i :class="a.i"></i>
+ <div>{{ a.v }}</div>
+ </div>
+ <div class="small_menu">
+ <p v-for="(b, bi) in a.c" :key="bi" :class="activeP == b.k ? 'active_p' : ''" @click="addTab(b)">
+ <i :class="b.i"></i>
+ <span>{{ b.v }}</span>
+ </p>
+ </div>
+ </el-popover>
+ </div>
+ <div class="right" :style="`width: calc(100% - ${leftOpen ? '92' : '0'}px);`">
+ <div class="tag">
+ <i :class="`${leftOpen ? 'el-icon-s-unfold' : 'el-icon-s-fold'}`" @click="leftOpen = !leftOpen"></i>
+ <div class="tabs">
+ <div :class="`tab ${tabActive == a.k ? 'active_tab' : ''}`" v-for="(a, ai) in tabs" :key="ai"
+ @click="upTabActive(a.k)">
+ {{ a.v }}
+ <i class="el-icon-close" @click="removeTab(ai)" v-if="tabActive != 0"></i>
+ </div>
+ </div>
+ <i class="el-icon-delete" @click="allDel" title="鍒犻櫎鎵�鏈夋爣绛鹃〉"></i>
+ </div>
+ <div class="component_view">
+ <component class="com_index" v-for="(com, index) in tabs" :is="com.u" :key="upIndex + '|' + index"
+ v-show="com.k == tabActive" @removeAllTab="removeAllTab">
+ </component>
+ </div>
+ </div>
+ </div>
</template>
<script>
-const requireComponent = require.context("../components/view", false, /\.vue/);
-var comObj = {};
-requireComponent.keys().forEach(fileName => {
- var names = fileName
- .split("/")
- .pop()
- .replace(".vue", "");
- const componentConfig = requireComponent(fileName);
- comObj[names] = componentConfig.default || componentConfig;
-});
-export default {
- components: comObj,
- data() {
- return {
- userName: "value",
- leftOpen: true,
- menu: [
- {
- k: 0,
- v: "棣栭〉",
- i: "font icon-shouye",
- c: [
- {
- k: 0,
- v: "棣栭〉",
- i: "font icon-shouye",
- u: "index-index"
- }
- ]
- },
- {
- k: 3,
- v: "閿�鍞鐞�",
- i: "font icon-jine",
- c: [
- {
- k: 11,
- v: "閿�鍞鐞�",
- i: "font icon-jine",
- u: "sale"
- }
- ]
- },
- {
- k: 1,
- v: "鎶�鏈鐞�",
- i: "font icon-ic_form_set24px",
- c: [
- {
- k: 1,
- v: "鏍囧噯BOM",
- i: "font icon-shouye",
- u: "standard"
- },
- {
- k: 2,
- v: "璁㈠崟BOM",
- i: "font icon-shouye",
- u: "technical"
- }
- ]
- },
- {
- k: 4,
- v: "鐢熶骇绠$悊",
- i: "font icon-shengchanguanli",
- c: [
- {
- k: 12,
- v: "鐢熶骇璁㈠崟",
- i: "font icon-shouye",
- u: ""
- },
- {
- k: 13,
- v: "鐢熶骇璁″垝",
- i: "font icon-shouye",
- u: ""
- },
- {
- k: 14,
- v: "鐢熶骇鎶ュ伐",
- i: "font icon-shouye",
- u: ""
- }
- ]
- },
- {
- k: 5,
- v: "WMS绠$悊",
- i: "font icon-a-Inventorydumprequest",
- c: [
- {
- k: 15,
- v: "鍘熸潗鏂欏簱瀛�",
- i: "font icon-shouye",
- u: ""
- },
- {
- k: 16,
- v: "鍥炲崟绠$悊",
- i: "font icon-shouye",
- u: ""
- },
- {
- k: 17,
- v: "鍗婃垚鍝佸簱瀛�",
- i: "font icon-shouye",
- u: ""
- },
- {
- k: 18,
- v: "鎴愬搧搴撳瓨",
- i: "font icon-shouye",
- u: ""
- },
- {
- k: 19,
- v: "鎴愬搧鍙戣揣",
- i: "font icon-shouye",
- u: ""
- },
- {
- k: 20,
- v: "鎴愬搧鍏ュ簱",
- i: "font icon-shouye",
- u: ""
- }
- ]
- },
- {
- k: 2,
- v: "QMS绠$悊",
- i: "font icon-xunhuan",
- c: [
- {
- k: 3,
- v: "鍘熸潗鏂欐楠�",
- i: "font icon-shouye",
- u: "rawInsBox"
- },
- {
- k: 4,
- v: "鍘熸潗鏂欎笉鍚堟牸鍝�",
- i: "font icon-shouye",
- u: "rawUnqualifiedBox"
- },
- {
- k: 5,
- v: "杩囩▼妫�楠�",
- i: "font icon-shouye",
- u: "processInspection"
- },
- {
- k: 6,
- v: "鎴愬搧妫�楠�",
- i: "font icon-shouye",
- u: "finishedProductInspection"
- },
- {
- k: 7,
- v: "涓嶅悎鏍煎搧绠$悊",
- i: "font icon-shouye",
- u: "unqualifiedManagement"
- },
- {
- k: 9,
- v: "璐ㄩ噺缁熻",
- i: "font icon-shouye",
- u: ""
- },
- {
- k: 10,
- v: "璁¢噺绠$悊",
- i: "font icon-shouye",
- u: "measurementManagement"
- },
- {
- k: 10.1,
- v: "涓嶅悎鏍煎搧澶勭疆",
- i: "font icon-shouye",
- u: "Processingproducts"
- }
- ]
- },
- {
- k: 6,
- v: "鏍哥畻绠$悊",
- i: "font icon-caiwuhesuanxitong",
- c: [
- {
- k: 21,
- v: "浜ч噺宸ヨ祫",
- i: "font icon-shouye",
- u: ""
- },
- {
- k: 22,
- v: "鍛樺伐鍑哄嫟",
- i: "font icon-shouye",
- u: ""
- }
- ]
- },
- {
- k: 7,
- v: "鍩虹鏁版嵁",
- i: "font icon-a-ziyuan20",
- c: [
- {
- k: 23,
- v: "鐢熶骇璁板綍缁存姢",
- i: "font icon-shouye",
- u: "record-content"
- },
- {
- k: 24,
- v: "鑷椤圭洰缁存姢",
- i: "font icon-shouye",
- u: "self-inspection"
- },
- {
- k: 25,
- v: "鎶�鏈寚鏍囩淮鎶�",
- i: "font icon-shouye",
- u: "Technicalindex"
- },
- {
- k: 26,
- v: "宸ヨ壓璺嚎缁存姢",
- i: "font icon-shouye",
- u: "technology"
- },
- {
- k: 27,
- v: "璁惧缁存姢",
- i: "font icon-shouye",
- u: "laboratoryManagement"
- },
- {
- k: 28,
- v: "鐗╂枡娓呭崟缁存姢",
- i: "font icon-shouye",
- u: "mbom"
- },
- // {
- // k: 29,
- // v: "宸℃椤圭洰缁存姢",
- // i: "font icon-shouye",
- // u: "routinginspection"
- // },
- {
- k: 30,
- v: "鐢熶骇宸ヨ壓缁存姢",
- i: "font icon-shouye",
- u: "equipmentmaintain"
- }
- ]
- }
- ],
- activeBox: 0,
- activeP: 0,
- tabActive: 0,
- tabs: [
- {
- k: 0,
- v: "棣栭〉",
- i: "font icon-shouye",
- u: "index-index"
- }
- ],
- upIndex: 0
- };
- },
- created() {},
- mounted() {
- this.userName = JSON.parse(localStorage.getItem("user")).name;
- },
- methods: {
- addTab(ob) {
- if (ob.k == 0) this.activeBox = 0;
- if (ob.k == 11) this.activeBox = 3;
- this.activeP = ob.k; //0
- this.tabActive = ob.k; //0
- let num = -1;
- this.tabs.forEach((a, ai) => {
- if (ob.k == a.k) {
- num = a.k;
- }
- });
- // 濡傛灉娌℃湁閬嶅巻鍒皌abs閲屾病鏈夎ob瀵瑰簲鐨則able锛屽線tabs閲岄潰鍔犲叆璇b
- if (num == -1) {
- this.tabs.push(ob);
- }
- },
- removeTab(index) {
- if (this.tabs.length > 1) {
- this.tabs.splice(index, 1);
- this.activeP = this.tabs[this.tabs.length - 1].k;
- this.tabActive = this.tabs[this.tabs.length - 1].k;
- } else {
- this.$message.warning("涓嶈兘鍏抽棴鏈�鍚庣殑鏍囩");
- }
- },
- upTabActive(num) {
- this.tabActive = num;
- this.activeP = num;
- if (num == 0) {
- this.activeBox = 0;
- } else if (num > 0 && num <= 2) {
- this.activeBox = 1;
- } else if (num > 2 && num < 11) {
- this.activeBox = 2;
- } else if (num == 11) {
- this.activeBox = 3;
- } else if (num > 11 && num <= 14) {
- this.activeBox = 4;
- } else if (num > 14 && num <= 20) {
- this.activeBox = 5;
- } else if (num > 20 && num <= 22) {
- this.activeBox = 6;
- } else if (num > 22 && num <= 30) {
- this.activeBox = 7;
- }
- },
- out() {
- sessionStorage.clear();
- localStorage.removeItem("autoenter");
- this.$router.push("/enter");
- }
- }
-};
-</script>
+ const requireComponent = require.context("../components/view", false, /\.vue/);
+ var comObj = {};
+ requireComponent.keys().forEach(fileName => {
+ var names = fileName
+ .split("/")
+ .pop()
+ .replace(".vue", "");
+ const componentConfig = requireComponent(fileName);
+ comObj[names] = componentConfig.default || componentConfig;
+ });
+ export default {
+ components: comObj,
+ data() {
+ return {
+ userName: "value",
+ leftOpen: true,
+ menu: [{
+ k: 0,
+ v: "棣栭〉",
+ i: "font icon-shouye",
+ c: [{
+ k: 0,
+ v: "棣栭〉",
+ i: "font icon-shouye",
+ u: "index-index"
+ }]
+ },
+ {
+ k: 3,
+ v: "閿�鍞鐞�",
+ i: "font icon-jine",
+ c: [{
+ k: 11,
+ v: "閿�鍞鐞�",
+ i: "font icon-jine",
+ u: "sale"
+ }]
+ },
+ {
+ k: 1,
+ v: "鎶�鏈鐞�",
+ i: "font icon-ic_form_set24px",
+ c: [{
+ k: 1,
+ v: "鏍囧噯BOM",
+ i: "font icon-shouye",
+ u: "standard"
+ },
+ {
+ k: 2,
+ v: "璁㈠崟BOM",
+ i: "font icon-shouye",
+ u: "technical"
+ }
+ ]
+ },
+ {
+ k: 4,
+ v: "鐢熶骇绠$悊",
+ i: "font icon-shengchanguanli",
+ c: [{
+ k: 12,
+ v: "鐢熶骇璁㈠崟",
+ i: "font icon-shouye",
+ u: ""
+ },
+ {
+ k: 13,
+ v: "鐢熶骇璁″垝",
+ i: "font icon-shouye",
+ u: ""
+ },
+ {
+ k: 14,
+ v: "鐢熶骇鎶ュ伐",
+ i: "font icon-shouye",
+ u: ""
+ }
+ ]
+ },
+ {
+ k: 5,
+ v: "WMS绠$悊",
+ i: "font icon-a-Inventorydumprequest",
+ c: [{
+ k: 15,
+ v: "鍘熸潗鏂欏簱瀛�",
+ i: "font icon-shouye",
+ u: ""
+ },
+ {
+ k: 16,
+ v: "鍥炲崟绠$悊",
+ i: "font icon-shouye",
+ u: ""
+ },
+ {
+ k: 17,
+ v: "鍗婃垚鍝佸簱瀛�",
+ i: "font icon-shouye",
+ u: ""
+ },
+ {
+ k: 18,
+ v: "鎴愬搧搴撳瓨",
+ i: "font icon-shouye",
+ u: ""
+ },
+ {
+ k: 19,
+ v: "鎴愬搧鍙戣揣",
+ i: "font icon-shouye",
+ u: ""
+ },
+ {
+ k: 20,
+ v: "鎴愬搧鍏ュ簱",
+ i: "font icon-shouye",
+ u: ""
+ }
+ ]
+ },
+ {
+ k: 2,
+ v: "QMS绠$悊",
+ i: "font icon-xunhuan",
+ c: [{
+ k: 3,
+ v: "鍘熸潗鏂欐楠�",
+ i: "font icon-shouye",
+ u: "rawInsBox"
+ },
+ {
+ k: 4,
+ v: "鍘熸潗鏂欎笉鍚堟牸鍝�",
+ i: "font icon-shouye",
+ u: "rawUnqualifiedBox"
+ },
+ {
+ k: 5,
+ v: "杩囩▼妫�楠�",
+ i: "font icon-shouye",
+ u: "processInspection"
+ },
+ {
+ k: 6,
+ v: "鎴愬搧妫�楠�",
+ i: "font icon-shouye",
+ u: "finishedProductInspection"
+ },
+ {
+ k: 7,
+ v: "涓嶅悎鏍煎搧绠$悊",
+ i: "font icon-shouye",
+ u: "unqualifiedManagement"
+ },
+ {
+ k: 9,
+ v: "璐ㄩ噺缁熻",
+ i: "font icon-shouye",
+ u: ""
+ },
+ {
+ k: 10,
+ v: "璁¢噺绠$悊",
+ i: "font icon-shouye",
+ u: "measurementManagement"
+ },
+ {
+ k: 10.1,
+ v: "涓嶅悎鏍煎搧澶勭疆",
+ i: "font icon-shouye",
+ u: "Processingproducts"
+ }
+ ]
+ },
+ {
+ k: 6,
+ v: "鏍哥畻绠$悊",
+ i: "font icon-caiwuhesuanxitong",
+ c: [{
+ k: 21,
+ v: "浜ч噺宸ヨ祫",
+ i: "font icon-shouye",
+ u: ""
+ },
+ {
+ k: 22,
+ v: "鍛樺伐鍑哄嫟",
+ i: "font icon-shouye",
+ u: ""
+ }
+ ]
+ },
+ {
+ k: 7,
+ v: "鍩虹鏁版嵁",
+ i: "font icon-a-ziyuan20",
+ c: [{
+ k: 23,
+ v: "鐢熶骇璁板綍缁存姢",
+ i: "font icon-shouye",
+ u: "record-content"
+ },
+ {
+ k: 24,
+ v: "鑷椤圭洰缁存姢",
+ i: "font icon-shouye",
+ u: "self-inspection"
+ },
+ {
+ k: 25,
+ v: "鎶�鏈寚鏍囩淮鎶�",
+ i: "font icon-shouye",
+ u: "Technicalindex"
+ },
+ {
+ k: 26,
+ v: "宸ヨ壓璺嚎缁存姢",
+ i: "font icon-shouye",
+ u: "technology"
+ },
+ {
+ k: 27,
+ v: "璁惧缁存姢",
+ i: "font icon-shouye",
+ u: "laboratoryManagement"
+ },
+ {
+ k: 28,
+ v: "鐗╂枡娓呭崟缁存姢",
+ i: "font icon-shouye",
+ u: "mbom"
+ },
+ {
+ k: 30,
+ v: "鐢熶骇宸ヨ壓缁存姢",
+ i: "font icon-shouye",
+ u: "equipmentmaintain"
+ }
+ ]
+ }
+ ],
+ activeBox: 0,
+ activeP: 0,
+ tabActive: 0,
+ tabs: [{
+ k: 0,
+ v: "棣栭〉",
+ i: "font icon-shouye",
+ u: "index-index"
+ }],
+ upIndex: 0
+ };
+ },
+ created() {},
+ mounted() {
+ this.userName = JSON.parse(localStorage.getItem("user")).name;
+ },
+ methods: {
+ addTab(ob) {
+ if (ob.k == 0) this.activeBox = 0;
+ if (ob.k == 11) this.activeBox = 3;
+ this.activeP = ob.k; //0
+ this.tabActive = ob.k; //0
+ let num = -1;
+ this.tabs.forEach((a, ai) => {
+ if (ob.k == a.k) {
+ num = a.k;
+ }
+ });
+ // 濡傛灉娌℃湁閬嶅巻鍒皌abs閲屾病鏈夎ob瀵瑰簲鐨則able锛屽線tabs閲岄潰鍔犲叆璇b
+ if (num == -1) {
+ this.tabs.push(ob);
+ }
+ },
+ removeTab(index) {
+ this.tabs.splice(index, 1);
+ this.activeP = this.tabs[this.tabs.length - 1].k;
+ this.tabActive = this.tabs[this.tabs.length - 1].k;
+ },
+ allDel() {
+ this.activeBox = 0
+ this.activeP = 0
+ this.tabActive = 0
+ this.tabs = [{
+ k: 0,
+ v: " 棣栭〉",
+ i: "font icon-shouye",
+ u: "index-index"
+ }]
+ },
+
+ upTabActive(num) {
+ this.tabActive = num;
+ this.activeP = num;
+ for (var i = 0; i < this.menu.length; i++) {
+ this.menu[i].c.forEach(b => {
+ if (b.k == num) {
+ this.activeBox = this.menu[i].k;
+ return
+ }
+ })
+ }
+ },
+ out() {
+ sessionStorage.clear();
+ localStorage.removeItem("autoenter");
+ this.$router.push("/enter");
+ },
+ removeAllTab(){
+ this.upIndex++
+ }
+ }
+ };
+</script>
\ No newline at end of file
--
Gitblit v1.9.3