From 16bdd567df324e05cfd137fb57b07ac23400a175 Mon Sep 17 00:00:00 2001
From: hailin <1356886193@qq.com>
Date: 星期二, 01 八月 2023 16:55:38 +0800
Subject: [PATCH] 标准库的二次修改和检查详情页的编写来自锅炉组长

---
 src/components/view/raw-ins.vue                   |    6 
 src/components/view/standard.vue                  |   71 ++++++-
 src/components/view/rawInsBox.vue                 |   34 +++
 src/components/view/technical.vue                 |    2 
 src/App.vue                                       |   27 ++
 src/components/view/rawInsDetail.vue              |  271 ++++++++++++++++++++++++++++++
 src/components/view/standard-table/technology.vue |   76 ++++----
 src/view/index.vue                                |    2 
 src/assets/api/controller.js                      |    2 
 9 files changed, 436 insertions(+), 55 deletions(-)

diff --git a/src/App.vue b/src/App.vue
index 7dba306..ccd4a2b 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -115,7 +115,7 @@
   .el-popper .popper__arrow{
     display: none ;
   }
-  /**淇敼鍏ㄥ眬鐨勬粴鍔ㄦ潯*/
+/**淇敼鍏ㄥ眬鐨勬粴鍔ㄦ潯*/
 /**婊氬姩鏉$殑瀹藉害*/
 ::-webkit-scrollbar {
 	width: 8px;
@@ -158,10 +158,33 @@
     color: #999;
     font-weight: 500;
   }
-  
   .el-pager .number.active {
     background-color: #004EA2;
     color: #fff;
     border: 0;
   }
+  /* 鍏ㄥ眬妯℃�佹鏍峰紡 */
+  .el-dialog__header{
+    box-sizing: border-box;
+    height: 56px;
+    border-bottom: 1px solid rgb(238, 238, 238);
+    padding: 0px;
+    display: flex;
+    align-items: center;
+  }
+  .el-dialog__header::before{
+    content: '';
+    display: inline-block;
+    width: 4px;
+    height: 30.24px;
+    background: rgb(0, 95, 201);
+    border-radius:10px;
+    margin-left: 32px;
+    margin-right: 8.5px;
+  }
+  .el-dialog__header .el-dialog__title{
+    font-size: 18px !important;
+  }
+  /* 鍏ㄥ眬杈撳叆妗嗘牱寮� */
+  /* 鍏ㄥ眬鎸夐挳鏍峰紡 */
 </style>
diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js
index 495b3c0..2e419b0 100644
--- a/src/assets/api/controller.js
+++ b/src/assets/api/controller.js
@@ -2,6 +2,8 @@
 const standard = {
   selectTreeByMaterial: "material/selectTreeByMaterial", //鏌ヨ鐗╂枡鐨勬爲
   selectRawInspectsList: "rawInspect/selectRawInspectsList",//鏌ヨ鍘熸潗鏂欐楠屽崟鍒楄〃
+  selectProductByMaterial: "product/selectTreeByMaterial",//鏍规嵁鐗╂枡鏌ヨ椤圭洰琛ㄦ牸
+  selectTechnologyByMaterial: "technology/select"
 }
 
 
diff --git a/src/components/view/raw-ins.vue b/src/components/view/raw-ins.vue
index 5f3117b..72c3841 100644
--- a/src/components/view/raw-ins.vue
+++ b/src/components/view/raw-ins.vue
@@ -146,7 +146,7 @@
         </el-table-column>
         <el-table-column label="鎿嶄綔" width="100">
           <template slot-scope="scope">
-            <span class="table_do">鏌ョ湅</span>
+            <span class="table_do" @click="changeShowDetail">鏌ョ湅</span>
             <span class="table_do">鎵撳嵃</span>
           </template>
         </el-table-column>
@@ -178,6 +178,7 @@
         pageSize: 10
       }
     },
+    props:['goDetail'],
     mounted() {
       this.selectRawInspectsList()
     },
@@ -218,6 +219,9 @@
             judgeState: 2
           },
           this.selectRawInspectsList()
+      },
+      changeShowDetail(){
+        this.goDetail()
       }
     }
   }
diff --git a/src/components/view/rawInsBox.vue b/src/components/view/rawInsBox.vue
new file mode 100644
index 0000000..352e496
--- /dev/null
+++ b/src/components/view/rawInsBox.vue
@@ -0,0 +1,34 @@
+
+<style scoped>
+
+</style>
+
+<template>
+  <div class="rawInsBox">
+    <RawIns v-show="!showDetail" :goDetail="goDetail"></RawIns>
+    <RawInsDetail v-show="showDetail" :goBack="goBack" :detail="detail"></RawInsDetail>
+  </div>
+</template>
+
+<script>
+import RawIns from './raw-ins.vue'
+import RawInsDetail from './rawInsDetail.vue'
+export default {
+    components:{RawIns,RawInsDetail},
+    data() {
+        return {
+            showDetail: false,
+            detail:{}
+        }
+    },
+    methods:{
+        goDetail(detail) {
+            this.showDetail = true
+            this.detail = detail
+        },
+        goBack() {
+            this.showDetail = false
+        }
+    }
+}
+</script>
diff --git a/src/components/view/rawInsDetail.vue b/src/components/view/rawInsDetail.vue
new file mode 100644
index 0000000..716cab0
--- /dev/null
+++ b/src/components/view/rawInsDetail.vue
@@ -0,0 +1,271 @@
+<style scoped>
+  .rawInsBox{
+        height: 100%;
+        width: 100%;
+        overflow-y: scroll;
+        display: flex;
+        flex-direction: column;
+  }
+  .rawInsBox .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;
+  }
+  .rawInsBox .title {
+    margin-bottom: 10px;
+    padding: 0 20px;
+  }
+  /* 妫�楠岃鎯� */
+  .raw-detail-info{
+    background: #fff;
+    padding: 26px 0px 11px 80px;
+  }
+  .raw-detail-info >>>.el-form-item__label{
+
+        color: rgb(51, 51, 51);
+        font-family: 寰蒋闆呴粦;
+        font-size: 16px;
+        font-weight: 400;
+        letter-spacing: 0px;
+  }
+  .raw-detail-info .el-input{
+        width: auto;
+  }
+  .raw-detail-info >>>.el-input__inner{
+    width: 224px;
+    height: 32px;
+    box-sizing: border-box;
+    background: rgb(238, 238, 238);
+    border: 1px solid rgb(221, 221, 221);
+    border-radius:4px;
+  }
+  .raw-detail-info .el-form-item{
+    margin-bottom: 24px;
+  }
+
+  /* 妫�楠岄」鐩� */
+  .raw-project-table{
+    padding: 24px 14px;
+    background: #fff;
+    flex: 1;
+    /* max-height: 360px; */
+    /* overflow-y: hidden; */
+  }
+  /* 妫�楠岀粨璁� */
+  .raw-conclusion-table{
+    padding: 9px 14px;
+    background: #fff;
+  }
+</style>
+
+
+<template>
+  <div class="rawInsBox">
+    <div class="title">
+      <el-row>
+        <el-col :span="12" style="line-height: 32px;">鍘熸潗鏂欐楠�</el-col>
+        <el-col :span="12" style="text-align: right;">
+          <el-button icon="el-icon-download" @click="()=>{goBack()}">杩� 鍥�</el-button>
+        </el-col>
+      </el-row>
+    </div>
+    <div class="raw-detail-info">
+        <el-form v-model="detail" label-position="right" label-width="120px" >
+            <el-row>
+                <el-col :span="7">
+                    <el-form-item label="鏉ユ枡鏃ユ湡:">
+                        <el-input></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="7">
+                    <el-form-item label="瑙勬牸鍨嬪彿:">
+                        <el-input></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="7">
+                    <el-form-item label="鍘熸潗鏂欑紪鐮�:">
+                        <el-input></el-input>
+                    </el-form-item>
+                </el-col>
+            </el-row>
+             <el-row>
+                <el-col :span="7">
+                    <el-form-item label="鍘熸潗鏂欏悕绉�:">
+                        <el-input></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="7">
+                    <el-form-item label="鎶ユ鏃ユ湡:">
+                        <el-input></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="7">
+                    <el-form-item label="鍗曚綅:">
+                        <el-input></el-input>
+                    </el-form-item>
+                </el-col>
+            </el-row>
+             <el-row>
+                <el-col :span="7">
+                    <el-form-item label="鏁伴噺:">
+                        <el-input></el-input>
+                    </el-form-item>
+                </el-col>
+                <el-col :span="7">
+                    <el-form-item label="鎶ユ浜�:">
+                        <el-input></el-input>
+                    </el-form-item>
+                </el-col>
+                
+            </el-row>
+        </el-form>
+    </div>
+    <div class="title">
+      <el-row>
+        <el-col :span="12" style="line-height: 32px;">妫�楠岄」鐩�</el-col>
+      </el-row>
+    </div>
+    <div class="raw-project-table">
+        <el-table
+            :data="projectTable"
+            style="width: 100%"
+            max-height="320"
+            >
+            <el-table-column
+                type="index"
+                label="搴忓彿"
+                width="100"
+                >
+            </el-table-column>
+            <el-table-column
+                prop="name"
+                label="椤圭洰"
+                width="212">
+            </el-table-column>
+            <el-table-column
+                prop="address"
+                label="鍗曚綅"
+                width="148">
+            </el-table-column>
+            <el-table-column
+                prop="address"
+                label="鏍囧噯"
+                width="254">
+            </el-table-column>
+            <el-table-column
+                prop="address"
+                label="鍐呮帶鍊�"
+                width="291">
+            </el-table-column>
+            <el-table-column
+                prop="address"
+                label="妫�鏌ュ��"
+                width="371">
+            </el-table-column>
+            <el-table-column
+                prop="address"
+                label="璇曢獙璁惧"
+                width="248"
+                >
+            </el-table-column>
+            <el-table-column
+                prop="address"
+                label="缁撹"
+                 width="98"
+                >
+            </el-table-column>
+    </el-table>
+    </div>
+    <div class="title">
+      <el-row>
+        <el-col :span="12" style="line-height: 32px;">妫�楠岀粨璁�</el-col>
+      </el-row>
+    </div>
+    <div class="raw-conclusion-table">
+        <el-table :data="conclusionTable">
+            <el-table-column
+                prop="number"
+                label="鐗╂枡缂栧彿"
+                width="353">
+            </el-table-column>
+            <el-table-column
+                prop="number"
+                label="鐗╂枡鍚嶇О"
+                width="353">
+            </el-table-column>
+            <el-table-column
+                prop="number"
+                label="妫�楠屽憳"
+                width="542">
+            </el-table-column>
+            <el-table-column
+                prop="number"
+                label="妫�楠岀粨璁�"
+                width="362">
+            </el-table-column>
+             <el-table-column
+                fixed="right"
+                label="鎿嶄綔"
+                width="120">
+                <template slot-scope="scope">
+                    <el-button type="text" size="small">涓婃姤</el-button>
+                </template>
+            </el-table-column>
+        </el-table>
+    </div>
+  </div>
+</template>
+
+<script>
+import RawIns from './raw-ins.vue'
+export default {
+    components:{RawIns},
+    props:['goBack','detail'],
+    created(){
+        console.log(this.detail)
+    },
+    data() {
+        return {
+            conclusionTable:[
+                {number:'鐗╂枡鍚嶇О'}
+            ],
+            projectTable:[
+                {
+            date: '2016-05-02',
+            name: '鐜嬪皬铏�',
+            address: '涓婃捣甯�'
+          }, {
+            date: '2016-05-04',
+            name: '鐜嬪皬铏�',
+            address: '涓婃捣甯�'
+          }, {
+            date: '2016-05-04',
+            name: '鐜嬪皬铏�',
+            address: '涓婃捣甯�'
+          }, {
+            date: '2016-05-04',
+            name: '鐜嬪皬铏�',
+            address: '涓婃捣甯�'
+          }, {
+            date: '2016-05-04',
+            name: '鐜嬪皬铏�',
+            address: '涓婃捣甯�'
+          }, {
+            date: '2016-05-04',
+            name: '鐜嬪皬铏�',
+            address: '涓婃捣甯�'
+          }, {
+            date: '2016-05-04',
+            name: '鐜嬪皬铏�',
+            address: '涓婃捣甯�'
+          }, {
+            date: '2016-05-04',
+            name: '鐜嬪皬铏�',
+            address: '涓婃捣甯�'
+          }
+            ]
+        }
+    },
+}
+</script>
diff --git a/src/components/view/standard-table/technology.vue b/src/components/view/standard-table/technology.vue
index ae2dbf6..8cdabda 100644
--- a/src/components/view/standard-table/technology.vue
+++ b/src/components/view/standard-table/technology.vue
@@ -44,20 +44,42 @@
 
 <template>
   <div class="standard">
-    <el-table :data="tableData" border style="width: 100%" @selection-change="handleSelectionChange" row-key="id" 
-      default-expand-all :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
+    <el-table  :data="tableData" border style="width: 100%"  row-key="id" 
+      :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
       <el-table-column type="selection" width="50">
       </el-table-column>
-      <el-table-column type="index" label="搴忓彿" width="70">
+      <template v-if="tableType==1">
+        <el-table-column type="index" label="搴忓彿" width="70">
+        <template slot-scope="scope">
+                {{ scope.row.index }}
+        </template>
       </el-table-column>
-      <el-table-column prop="date" label="椤圭洰">
+      <el-table-column prop="name" label="椤圭洰">
+        <template slot-scope="scope">
+                <el-tag size="mini" :type="scope.row.index? '':'success'" :style="{borderRadius: '40%',marginRight: '12px'}">{{ scope.row.index? '01':'02'}}</el-tag>
+                {{scope.row.name}}
+        </template>
       </el-table-column>
-      <el-table-column prop="name" label="鍗曚綅">
+      <el-table-column prop="unit" label="鍗曚綅">
       </el-table-column>
-      <el-table-column prop="address" label="鏍囧噯鍊�">
+      <el-table-column prop="required" label="鏍囧噯鍊�">
       </el-table-column>
-      <el-table-column prop="address" label="鍐呮帶鍊�">
+      <el-table-column prop="internal" label="鍐呮帶鍊�">
       </el-table-column>
+      </template>
+      <template v-else>
+        <el-table-column prop="name" label="宸ヨ壓鍚嶇О">
+        </el-table-column>
+        <el-table-column prop="device_group" label="璁惧缁�">
+        </el-table-column>
+        <el-table-column  label="鍖归厤璁惧">
+          <template>
+            <el-button type="text">閫夋嫨</el-button>
+          </template>
+        </el-table-column>
+        <el-table-column prop="quota" label="宸ユ椂瀹氶">
+        </el-table-column>
+      </template>
     </el-table>
   </div>
 </template>
@@ -66,42 +88,16 @@
   export default {
     data() {
       return {
-        tableData: [{
-          id: 1,
-          date: '2016-05-02',
-          name: '鐜嬪皬铏�',
-          address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1518 寮�'
-        }, {
-          id: 2,
-          date: '2016-05-04',
-          name: '鐜嬪皬铏�',
-          address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1517 寮�'
-        }, {
-          id: 3,
-          date: '2016-05-01',
-          name: '鐜嬪皬铏�',
-          address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�',
-          children: [{
-              id: 31,
-              date: '2016-05-01',
-              name: '鐜嬪皬铏�',
-              address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�'
-            }, {
-              id: 32,
-              date: '2016-05-01',
-              name: '鐜嬪皬铏�',
-              address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1519 寮�'
-          }]
-        }, {
-          id: 4,
-          date: '2016-05-03',
-          name: '鐜嬪皬铏�',
-          address: '涓婃捣甯傛櫘闄�鍖洪噾娌欐睙璺� 1516 寮�'
-        }],
         selects: []
       }
     },
-    mounted() {},
+    props:['tableData','tableType'],
+    created() {
+      console.log(this.tableData,this.tableType)
+    },
+    mounted() {
+      
+    },
     methods: {
       handleSelectionChange(val) {
         this.selects = val;
diff --git a/src/components/view/standard.vue b/src/components/view/standard.vue
index 0ee0fae..883e3f1 100644
--- a/src/components/view/standard.vue
+++ b/src/components/view/standard.vue
@@ -111,7 +111,7 @@
       <el-row>
         <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;">鏂板</el-button>
+          <el-button type="primary" icon="el-icon-plus" style="background: #004EA2;" @click="bomAddModelVisible= true">鏂板</el-button>
           <el-button icon="el-icon-edit-outline">淇敼</el-button>
           <el-button icon="el-icon-delete">鍒犻櫎</el-button>
         </el-col>
@@ -136,18 +136,33 @@
         <div class="choose">
           <span>绫诲瀷锛�</span>
           <el-select v-model="tableType" size="small" placeholder="璇烽�夋嫨" style="width: 224px;margin-right: 52px;">
-            <el-option value="宸ヨ壓鏂囦欢"></el-option>
-            <el-option value="鎶�鏈寚鏍�"></el-option>
+            <el-option :value="0" label="宸ヨ壓鏂囦欢"></el-option>
+            <el-option :value="1" label="鎶�鏈寚鏍�"></el-option>
           </el-select>
-          <span>{{tableType=='鎶�鏈寚鏍�'?'椤圭洰锛�':'宸ヨ壓鍚嶇О锛�'}}</span>
+          <span>{{tableType==1?'椤圭洰锛�':'宸ヨ壓鍚嶇О锛�'}}</span>
           <el-input v-model="searchName" size="small" placeholder="璇疯緭鍏�" style="width: 224px;margin-right: 24px;" clearable></el-input>
-          <el-button size="mini"><span>閲� 缃�</span></el-button>
-          <el-button size="mini" type="primary" style="background: #004EA2;"><span>鏌� 璇�</span></el-button>
+          <el-button size="mini" @click="()=>{searchName='';selectProductTableData()}"><span>閲� 缃�</span></el-button>
+          <el-button size="mini" type="primary" style="background: #004EA2;" @click="selectProductTableData"><span>鏌� 璇�</span></el-button>
         </div>
         <div class="table">
-          <technology></technology>
+          <technology v-if="tableData.length!==0" :tableType="tableType" :tableData="tableData"></technology>
         </div>
       </div>
+    </div>
+    <div class="bom-add-model">
+      <el-dialog
+        title="BOM鏂板"
+        :visible.sync="bomAddModelVisible"
+        width="30%"
+        :before-close="handleClose">
+        <el-form>
+          
+        </el-form>
+        <span slot="footer" class="dialog-footer">
+          <el-button @click="bomAddModelVisible = false">鍙� 娑�</el-button>
+          <el-button type="primary" @click="bomAddModelVisible = false">纭� 瀹�</el-button>
+        </span>
+      </el-dialog>
     </div>
   </div>
 </template>
@@ -158,6 +173,7 @@
     components: {technology},
     data() {
       return {
+        // BOM鏍戞暟鎹粨鏋�
         list: [{
           id: 0,
           name: "鍘熸潗鏂�",
@@ -175,13 +191,24 @@
           children: []
         }],
         search: null,
-        tableType: "鎶�鏈寚鏍�",
-        searchName: ""
+        // 琛ㄦ牸绫诲瀷 1锛氭妧鏈寚鏍囷紝0锛氬伐鑹鸿矾绾�
+        tableType: 1,
+        // 鏌ヨ鏉′欢-鍚嶇О
+        searchName: "",
+        // 鐐瑰嚮閫変腑鏍戣妭鐐�
+        checkTreeNode: {},
+        tableData:[],
+        // 鎺у埗bom鏂板妯℃�佹鏄惁鏄剧ず
+        bomAddModelVisible: false
       }
     },
     watch: {
       search(val) {
         this.$refs.tree.filter(val);
+      },
+      tableType(val){
+        console.log(val)
+        this.selectProductTableData()
       }
     },
     mounted() {
@@ -189,7 +216,10 @@
     },
     methods: {
       handleNodeClick(data) {
-        console.log(data);
+        // console.log(data);
+        this.checkTreeNode = data
+        // this.selectMaterialTree()
+        this.selectProductTableData()
       },
       filterNode(value, data) {
         if (!value) return true;
@@ -225,6 +255,27 @@
           })
         })
         
+      },
+      async selectProductTableData() {
+        switch (this.tableType) {
+          case 0:
+        const {data:technologyList} = await this.$axios.get(this.$api.url.selectTechnologyByMaterial,{params:{specificationId:this.checkTreeNode.id,technologyName:this.searchName}})
+        this.tableData = technologyList    
+            break;
+          case 1:
+        const {data:productList} = await this.$axios.get(this.$api.url.selectProductByMaterial,{params:{specifications:this.checkTreeNode.id,project:this.searchName}})
+        productList.forEach((item,index)=>{
+          item.name = item.father
+          item.index = index+1
+          item.id = item.father
+          if(item.children.length===1){
+            productList[index] = {...item.children[0],index: index+1,name:item.father}
+          }
+        })
+        this.tableData = productList
+            break;
+        }
+        console.log(this.tableData)
       }
     }
   }
diff --git a/src/components/view/technical.vue b/src/components/view/technical.vue
index 9d0d780..69c0446 100644
--- a/src/components/view/technical.vue
+++ b/src/components/view/technical.vue
@@ -48,7 +48,7 @@
 color: #fff;
 }
 /* 杈撳叆妗嗙殑鏍峰紡 */
->>> .search-header .el-form-item .el-input .el-input__inner{
+>>>.search-header .el-form-item .el-input .el-input__inner{
 width: 224px;
 height: 32px ;
 box-sizing: border-box;
diff --git a/src/view/index.vue b/src/view/index.vue
index 6cf4f17..ede8abc 100644
--- a/src/view/index.vue
+++ b/src/view/index.vue
@@ -292,7 +292,7 @@
             k: 3,
             v: "鍘熸潗鏂欐楠�",
             i: "font icon-shouye",
-            u: "raw-ins"
+            u: "rawInsBox"
           }, {
             k: 4,
             v: "鍘熸潗鏂欎笉鍚堟牸鍝�",

--
Gitblit v1.9.3