浏览代码

bug修改

twt 2 年之前
父节点
当前提交
fe619d67bc
共有 9 个文件被更改,包括 532 次插入242 次删除
  1. 3 11
      package-lock.json
  2. 1 1
      package.json
  3. 二进制
      src/assets/noImg.png
  4. 9 3
      src/main.js
  5. 252 180
      src/page/index.vue
  6. 86 42
      src/page/oem.vue
  7. 125 0
      src/page/part.vue
  8. 48 0
      src/store/index.js
  9. 8 5
      src/utils/request.js

+ 3 - 11
package-lock.json

@@ -25,11 +25,6 @@
         "source-map": "^0.6.1"
       }
     },
-    "@vue/devtools-api": {
-      "version": "6.4.4",
-      "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.4.4.tgz",
-      "integrity": "sha512-Ku31WzpOV/8cruFaXaEZKF81WkNnvCSlBY4eOGtz5WMSdJvX1v1WWlSMGZeqUwPtQ27ZZz7B62erEMq8JDjcXw=="
-    },
     "accepts": {
       "version": "1.3.8",
       "resolved": "https://registry.npmmirror.com/accepts/-/accepts-1.3.8.tgz",
@@ -11177,12 +11172,9 @@
       "dev": true
     },
     "vuex": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmmirror.com/vuex/-/vuex-4.1.0.tgz",
-      "integrity": "sha512-hmV6UerDrPcgbSy9ORAtNXDr9M4wlNP4pEFKye4ujJF8oqgFFuxDCdOLS3eNoRTtq5O3hoBDh9Doj1bQMYHRbQ==",
-      "requires": {
-        "@vue/devtools-api": "^6.0.0-beta.11"
-      }
+      "version": "3.6.2",
+      "resolved": "https://registry.npmmirror.com/vuex/-/vuex-3.6.2.tgz",
+      "integrity": "sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw=="
     },
     "watchpack": {
       "version": "1.7.5",

+ 1 - 1
package.json

@@ -14,7 +14,7 @@
     "element-ui": "^2.15.10",
     "vue": "^2.5.2",
     "vue-router": "^3.0.1",
-    "vuex": "^4.1.0"
+    "vuex": "^3.6.2"
   },
   "devDependencies": {
     "autoprefixer": "^7.1.2",

二进制
src/assets/noImg.png


+ 9 - 3
src/main.js

@@ -4,20 +4,26 @@ import Vue from 'vue'
 import ElementUI from 'element-ui';
 import 'element-ui/lib/theme-chalk/index.css';
 import App from './App'
+
+import store from './store'
 Vue.use(ElementUI);
 import router from './router'
 
 
 import { getHashQuery } from './utils'
-console.log(encodeURIComponent(getHashQuery('url')))
-console.log(encodeURIComponent('http://api.dms.66km.com.cn'))
+//console.log(encodeURIComponent(getHashQuery('url')))
 
+store.commit('mutationstoken', getHashQuery('token'))
+store.commit('mutationsurl', getHashQuery('url'))
+store.commit('mutationsckuid', getHashQuery('uid'))
+console.log(store.state.token)
 Vue.config.productionTip = false
-console.log(process.env.VUE_APP_BASE_URL);
+//console.log(process.env.VUE_APP_BASE_URL);
 /* eslint-disable no-new */
 new Vue({
   el: '#app',
   router,
+  store,
   components: { App },
   template: '<App/>'
 })

+ 252 - 180
src/page/index.vue

@@ -1,5 +1,6 @@
 <template>
   <div class="hello">
+   <!-- <img src="http://dmsphoto.66km.com.cn/thFiles/606DD47D-0C25-4EA6-8ABC-D72187131B63.jpg" alt="" style="width: 200px;height: 200px; object-fit: contain;"> -->
      <div class="top">
        <div class="vinBtn">VIN</div>
        <input type="text" v-model="vin" placeholder="请输入17位车架号查询" class="vinsearch" @keyup.enter="keyup">
@@ -9,197 +10,222 @@
            <!-- <img src="http://img.db.66km.cn/carbrandlogo/B - 比亚迪.png" alt="" class="barndLogo"> -->
             <div class="barndTxt">{{brand_name}}</div>
            </div>
-           <div class="topkk">选择品牌</div>
+          <!-- <div class="topkk">选择品牌</div> -->
            <div class="topkk" @click="oemClick">OEM查询</div>
        </div>
      </div>
      <div class="toConfigure">
        <span v-if="carConfigName">  车辆配置:<span class="span1">{{carConfigName}}> </span></span>
-       车型: <span class="span1">{{brand_name?brand_name:'--'}}</span>
-       <span> {{navfName}}:<span class="span1">{{zzName}}></span></span>
-       <span v-if="navchildrenNameTitle">{{navchildrenNameTitle}}:<span class="span1">{{navchildrenName?navchildrenName:'--'}}</span></span>
+        车型: <span class="span1" v-if="!description">{{brand_name?brand_name:'--'}}</span>
+             <span class="span1" v-if="description">{{description}}</span>
+       <span class="s1"> {{navfName}}:<span class="span1">{{zzName}}></span></span>
+       <span class="s2" v-if="navchildrenNameTitle">{{navchildrenNameTitle}}:<span class="span1">{{navchildrenName?navchildrenName:'--'}}</span></span>
+       <span class="s3" v-if="restrainTitleTwo">{{restrainTitleTwo}}:<span class="span1">{{zkName2?zkName2:'--'}}></span></span>
+       <span class="cs" v-if="lastName">子组:{{lastName}}</span>
+       <span class="goback" @click="goback" v-if="!firstShow">返回</span>
      </div>
      <div class="main">
-       <!-- 总组-->
-       <div class="mainLeft" v-if="groupShow">
-         <div class="mainLeftTop">
-           <div class="sx"></div>
-           <div class="leftTitle">总组</div>
-         </div>
-         <div class="mainLeftLineBox">
-           <div class="mainLeftLine"  :class="{mainLeftLineActive:zzIndex==index}"
-            v-for="(item,index) in zlist" @click="zzClick(index,item)" >{{item.caption}}</div>
-         </div>
-
-       </div>
-       <!-- 子组循环-->
-      <!-- <div class="mainLeft" v-if="childrenCk1">
-         <div class="mainLeftTop">
-           <div class="sx"></div>
-           <div class="leftTitle">子组</div>
-         </div>
-         <div class="mainLeftLineBox">
-           <div class="mainLeftLine"  :class="{mainLeftLineActive:zzIndex==index}"
-            v-for="(item,index) in zhizhulist1" @click="zzClick(index,item)" v-html="item.caption">{{item.caption}}</div>
-         </div>
+       <div class="firstBox" v-if="firstShow">
+         <!-- 总组-->
+         <div class="mainLeft" v-if="groupShow">
+           <div class="mainLeftTop">
+             <div class="sx"></div>
+             <div class="leftTitle">总组</div>
+           </div>
+           <div class="mainLeftLineBox">
+             <div class="mainLeftLine"  :class="{mainLeftLineActive:zzIndex==index}"
+              v-for="(item,index) in zlist" @click="zzClick(index,item)" >{{item.caption}}</div>
+           </div>
 
-       </div> -->
-       <!-- 约束子组循环-->
-       <div class="mainLeft m1" v-if="restrainShow1">
-         <div class="mainLeftTop">
-           <div class="sx"></div>
-           <div class="leftTitle">{{zkName1}}</div>
-         </div>
-         <div class="mainLeftLineBox">
-           <div class="mainLeftLine"  :class="{mainLeftLineActive:ckIndex1==index}"
-            v-for="(item,index) in restrainList1" @click="restrainClick1(index,item)" v-html="item.caption">{{item.caption}}</div>
          </div>
+         <!-- 约束子组循环-->
+         <div class="mainLeft m1" v-if="restrainShow1">
+           <div class="mainLeftTop">
+             <div class="sx"></div>
+             <div class="leftTitle">{{zkName1}}</div>
+           </div>
+           <div class="mainLeftLineBox">
+             <div class="mainLeftLine"  :class="{mainLeftLineActive:ckIndex1==index}"
+              v-for="(item,index) in restrainList1" @click="restrainClick1(index,item)" v-html="item.caption">{{item.caption}}</div>
+           </div>
 
-       </div>
-       <div class="mainLeft m2" v-if="restrainShow2">
-         <div class="mainLeftTop">
-           <div class="sx"></div>
-           <div class="leftTitle">{{zkName2}}</div>
-         </div>
-         <div class="mainLeftLineBox">
-           <div class="mainLeftLine"  :class="{mainLeftLineActive:ckIndex2==index}"
-            v-for="(item,index) in restrainList2" @click="restrainClick2(index,item)" v-html="item.caption">{{item.caption}}</div>
          </div>
+         <div class="mainLeft m2" v-if="restrainShow2">
+           <div class="mainLeftTop">
+             <div class="sx"></div>
+             <div class="leftTitle">{{restrainTitleTwo}}</div>
+           </div>
+           <div class="mainLeftLineBox">
+             <div class="mainLeftLine"  :class="{mainLeftLineActive:ckIndex2==index}"
+              v-for="(item,index) in restrainList2" @click="restrainClick2(index,item)" v-html="item.caption">{{item.caption}}</div>
+           </div>
 
-       </div>
-       <!-- 车辆配置-->
-       <div class="mainLeft" v-if="carConfig">
-         <div class="mainLeftTop">
-           <div class="sx"></div>
-           <div class="leftTitle">选择车辆配置</div>
          </div>
-         <div class="mainLeftLine" v-for="(item,index) in restrains" @click="carConfigClick(index,item)"
-         :class="{mainLeftLineActive:carConfigIndex==index}">{{item.combine_cp}}</div>
-       </div>
-       <div class="mainRight1" v-if="lastShow">
-         <div class="mainRightTop">
-           <div class="sx2"></div>
-           <div class="mainRightTopTitle">子组</div>
-           <div class="childrensearchBox">
-             <input type="text" v-model="childrenss" class="childrensearchInput" placeholder="搜索子组"  @keyup.enter="childrenkeyupOne">
-             <img src="../assets/icon_search@2x.png" alt="" class="childrensearchImg">
+         <!-- 车辆配置-->
+         <div class="mainLeft" v-if="carConfig">
+           <div class="mainLeftTop">
+             <div class="sx"></div>
+             <div class="leftTitle">选择车辆配置</div>
            </div>
+           <div class="mainLeftLineBox">
+             <div class="mainLeftLine" v-for="(item,index) in restrains" @click="carConfigClick(index,item)"
+             :class="{mainLeftLineActive:carConfigIndex==index}">{{item.combine_cp}}</div>
+           </div>
+
          </div>
-         <div class="mainRightCont">
-           <div class="mainRightLine" v-for="(item,index) in childrenList" @click="childrenClick(item,index)">
-             <div class="mainRightLineImgBox">
-               <img class="mainRightLineImg" :src="item.image_url.replace(/90/g, '320')" alt="">
-             </div>
-             <div class="mainRightLineMsBox">
-               <div class="mainRightLineName">{{item.caption}}</div>
-               <div class="mainRightLineZm">组名:{{item.group_no}}</div>
-               <div class="mainRightLineRemarks">备注:{{item.remark}}</div>
-             </div>
 
+
+         <div class="mainRight1" v-if="lastShow">
+           <div class="mainRightTop">
+             <div class="sx2"></div>
+             <div class="mainRightTopTitle">子组</div>
+             <div class="childrensearchBox">
+               <input type="text" v-model="childrenss" class="childrensearchInput" placeholder="搜索子组"  @keyup.enter="childrenkeyupOne">
+               <img src="../assets/icon_search@2x.png" alt="" class="childrensearchImg">
+             </div>
            </div>
+           <div class="mainRightCont">
+             <div class="mainRightLine" v-for="(item,index) in childrenList" @click="childrenClick(item,index)">
+               <div class="mainRightLineImgBox">
+                 <img class="mainRightLineImg" v-if="item.image_url" :src="item.image_url.split('').reverse().join('').replace(/09/, '023').split('').reverse().join('')" alt="">
+                 <img src="../assets/noImg.png" alt="" v-else class="mainRightLineNOImg">
+               </div>
+               <div class="mainRightLineMsBox">
+                 <div class="mainRightLineName">{{item.caption}}</div>
+                 <div class="mainRightLineZm">组号:{{item.group_no}}</div>
+                 <div class="mainRightLineRemarks">备注:{{item.remark}}</div>
+               </div>
 
+             </div>
 
-         </div>
 
-       </div>
-       <div class="mainRight2" v-if="restrainShow3">
-         <div class="mainRightTop">
-           <div class="sx2"></div>
-           <div class="mainRightTopTitle">子组</div>
-           <div class="childrensearchBox">
-             <input type="text" v-model="childrenss" class="childrensearchInput" placeholder="搜索子组"  @keyup.enter="childrenkeyup">
-             <img src="../assets/icon_search@2x.png" alt="" class="childrensearchImg">
            </div>
+
          </div>
-         <div class="mainRightCont">
-           <div class="mainRightLine2" v-for="(item,index) in restrainList3" @click="childrenClick(item,index)">
-             <div class="mainRightLineImgBox">
-               <img class="mainRightLineImg" :src="item.image_url.replace(/90/g, '320')" alt="">
+         <div class="mainRight2" v-if="restrainShow3">
+           <div class="mainRightTop">
+             <div class="sx2"></div>
+             <div class="mainRightTopTitle">子组</div>
+             <div class="childrensearchBox">
+               <input type="text" v-model="childrenss" class="childrensearchInput" placeholder="搜索子组"  @keyup.enter="childrenkeyup">
+               <img src="../assets/icon_search@2x.png" alt="" class="childrensearchImg">
              </div>
-             <div class="mainRightLineMsBox">
-               <div class="mainRightLineName" >{{item.caption}}</div>
-               <div class="mainRightLineZm">组名:{{item.group_no}}</div>
-               <div class="mainRightLineRemarks">备注:{{item.remark}}</div>
+           </div>
+           <div class="mainRightCont">
+             <div class="mainRightLine2" v-for="(item,index) in childrenList" @click="childrenClick(item,index)">
+               <div class="mainRightLineImgBox">
+                 <img class="mainRightLineImg" v-if="item.image_url" :src="item.image_url.split('').reverse().join('').replace(/09/, '023').split('').reverse().join('')" alt="">
+                 <img src="../assets/noImg.png" alt="" v-else class="mainRightLineNOImg">
+               </div>
+               <div class="mainRightLineMsBox">
+                 <div class="mainRightLineName" >{{item.caption}}</div>
+                 <div class="mainRightLineZm">组号:{{item.group_no}}</div>
+                 <div class="mainRightLineRemarks">备注:{{item.remark}}</div>
+               </div>
              </div>
            </div>
-         </div>
 
-       </div>
-       <div class="mainRight3" v-if="restrainShow4">
-         <div class="mainRightTop">
-           <div class="sx2"></div>
-           <div class="mainRightTopTitle">子组</div>
-           <div class="childrensearchBox">
-             <input type="text" v-model="childrenss" class="childrensearchInput" placeholder="搜索子组"  @keyup.enter="childrenkeyup">
-             <img src="../assets/icon_search@2x.png" alt="" class="childrensearchImg">
-           </div>
          </div>
-         <div class="mainRightCont">
-           <div class="mainRightLine3" v-for="(item,index) in restrainList3" @click="childrenClick(item,index)">
-             <div class="mainRightLineImgBox">
-               <img class="mainRightLineImg" v-if="item.image_url"  :src="item.image_url.split('').reverse().join('').replace(/09/g, '023').split('').reverse().join('')" alt="">
-                <img src="../assets/noImg.png" alt="" v-else class="mainRightLineNOImg">
+         <div class="mainRight3" v-if="restrainShow4">
+           <div class="mainRightTop">
+             <div class="sx2"></div>
+             <div class="mainRightTopTitle">子组</div>
+             <div class="childrensearchBox">
+               <input type="text" v-model="childrenss" class="childrensearchInput" placeholder="搜索子组"  @keyup.enter="childrenkeyup">
+               <img src="../assets/icon_search@2x.png" alt="" class="childrensearchImg">
              </div>
-             <div class="mainRightLineMsBox">
-               <div class="mainRightLineName">{{item.caption}}</div>
-               <div class="mainRightLineZm">组名:{{item.group_no}}</div>
-               <div class="mainRightLineRemarks">备注:{{item.remark}}</div>
+           </div>
+           <div class="mainRightCont">
+             <div class="mainRightLine3" v-for="(item,index) in childrenList" @click="childrenClick(item,index)">
+               <div class="mainRightLineImgBox">
+                 <img class="mainRightLineImg" v-if="item.image_url"  :src="item.image_url.split('').reverse().join('').replace(/09/, '023').split('').reverse().join('')" alt="">
+                  <img src="../assets/noImg.png" alt="" v-else class="mainRightLineNOImg">
+               </div>
+               <div class="mainRightLineMsBox">
+                 <div class="mainRightLineName">{{item.caption}}</div>
+                 <div class="mainRightLineZm">组号:{{item.group_no}}</div>
+                 <div class="mainRightLineRemarks">备注:{{item.remark}}</div>
+               </div>
              </div>
            </div>
+
          </div>
 
+
+
        </div>
+
+       <!-- 子组循环-->
+      <!-- <div class="mainLeft" v-if="childrenCk1">
+         <div class="mainLeftTop">
+           <div class="sx"></div>
+           <div class="leftTitle">子组</div>
+         </div>
+         <div class="mainLeftLineBox">
+           <div class="mainLeftLine"  :class="{mainLeftLineActive:zzIndex==index}"
+            v-for="(item,index) in zhizhulist1" @click="zzClick(index,item)" v-html="item.caption">{{item.caption}}</div>
+         </div>
+
+       </div> -->
+
    <!-- 子组件详情-->
       <div class="childrenMain" v-if="childrenShow">
          <div class="childrenMainLeft" ref="childrenMainLeft">
            <div class="prevBox" :class="{prevBoxNo:childrenIndex==0}" @click="prev"><上一组</div>
-           <div class="nextBox" @click="next" :class="{prevBoxNo:childrenIndex==this.childrenList.length-1}" v-if="lastShow">下一组></div>
-           <div class="nextBox" @click="next" :class="{prevBoxNo:childrenIndex==this.restrainList3.length-1}" v-else>下一组></div>
-            <img class="childrenImg" :src="image_info.pic_url" alt="">
+           <div class="nextBox" @click="next" :class="{prevBoxNo:childrenIndex==this.childrenList.length-1}" >下一组></div>
+
+            <img class="childrenImg" :src="image_info.pic_url" alt="" v-if="image_info.pic_url">
+            <img src="../assets/noImg.png" alt="" v-else class="childrenImg">
          </div>
          <div class="childrenMainRight">
             <el-table
                 class="el-table"
-                :data="rows"
+                :data="tableData" :size='mini'
                 :max-height="childrenHeight"
                 stripe   border
                 style="width: 100%">
                 <el-table-column
-                  prop="refernum"
+                  prop="refernum" align="center"
                   label="位置"
                   width="50"
                   >
                 </el-table-column>
                 <el-table-column
                   prop="extened[0]"
-                  label="零件号"
+                  label="零件号" align="center"
                  >
+                 <template slot-scope="scope">
+                       <span style="color: #606266;" @click="threeSpan(scope.row)">{{ scope.row.partnum[0] }}</span>
+                 </template>
                 </el-table-column>
                 <el-table-column
-                  prop="description"
+                  prop="description"  align="center"
                   label="名称">
                 </el-table-column>
                 <el-table-column
-                  prop="remark"
+                  prop="remark" align="center"
                   label="备注">
                 </el-table-column>
                 <el-table-column
-                  prop="qty"
+                  prop="qty" align="center"
                   label="用量">
                 </el-table-column>
-                <el-table-column
-                  prop="partnum[0]"
+               <!-- <el-table-column
+                  prop="extened[0]"
                   label="型号">
-                </el-table-column>
+                </el-table-column> -->
                 <el-table-column
-                  prop="price"
+                  prop="price" align="center"
                   label="4S价">
+                  <template slot-scope="scope">
+                        <span style="color: red;cursor: pointer;" @click="threeSpan(scope.row)">¥{{ scope.row.price }}</span>
+                  </template>
                 </el-table-column>
               </el-table>
          </div>
       </div>
      </div>
-     <oem :show.sync="oemFlag" @done="getOemDetail" :id.sync="epc_id"></oem>
+     <oem  ref="childoem" :show.sync="oemFlag" @done="getOemDetail" :param='param' :token='token' :vin='vin' :id.sync="epc_id"></oem>
   </div>
 </template>
 
@@ -220,7 +246,7 @@ export default {
        childrenShow2:false,
        childrenCk1:false,
        children:'',
-       vin:'',
+       vin:'LVHRE4877A5013603',
        restrains:'',
        brand_name:'',
        access_time:'',
@@ -241,6 +267,7 @@ export default {
        restrainList3:'',
        zkName1:'',
        zkName2:'',
+       restrainTitleTwo:'',
        zkName3:'',
        restrainShow1:false,
        restrainShow2:false,
@@ -263,8 +290,22 @@ export default {
        oemFlag:false,
        epc_id:'',
        oemData:'',
+       mini:'mini',
+       lastName:'',
+       firstShow:true,
+       description:'',
     }
   },
+  computed:{
+     tableData: function () {
+            return this.rows.filter((data) => {
+              return data.disabled == 0
+            })
+        }
+  },
+  created() {
+    this.keyup()
+  },
   methods:{
     getOemDetail(e){
       console.log(e);
@@ -274,6 +315,7 @@ export default {
     oemClick(){
       if(this.brand_name){
          this.oemFlag=true;
+          this.$refs.childoem.eliminate();
       }else{
         this.$message({
                message: '请先输入VIN获取品牌',
@@ -290,7 +332,7 @@ export default {
       this.getcarVinGroupPc()
     },
     keyup(){
-     // console.log(this.vin);LVHFC1663G6003140  奔驰WDDFH3DB0AJ541602 奥迪WUAANB426BN001711  子组LGWEF4A50GF211798
+     // console.log(this.vin);LVHFC1663G6003140  奔驰WDDFH3DB0AJ541602 奥迪WUAANB426BN001711  子组LGWEF4A50GF211798 LBEHDAEB1AY510543
        this.restrainShow1=false
        this.restrainShow2=false
        this.restrainShow3=false
@@ -300,10 +342,23 @@ export default {
        this.restrainShow4=false;
        this.lastShow=false;
        this.navchildrenName=''
-       this.navchildrenNameTitle=''
+       this.navchildrenNameTitle='';
+       this.restrainTitleTwo='';
+        this.lastName='';
        this.zkName1=''
        this.navfName='';
-       this.zzName=''
+       this.zzName='';
+       this.ckIndex1=-1;
+       this.ckIndex2=-1;
+       this.zzIndex=0;
+       this.firstShow=true;
+       if(this.vin==''){
+         this.$message({
+                message:'请输入VIN',
+                type: 'warning'
+          });
+          return false;
+       }
       fetchGet('/advancedEpc/getVinGroupPc', {
         vin:this.vin
        }).then(res => {
@@ -328,7 +383,10 @@ export default {
                 this.carConfig=false;
                 this.childrenShow=false;
                 this.carConfigName=''
-                this.getSubgroupPc()
+                this.getSubgroupPc();
+                if(res.data.result.vehicle.description){
+                  this.description=res.data.result.vehicle.description
+                }
               }
          }else{
            this.$message({
@@ -369,7 +427,7 @@ export default {
                    this.zzName=this.zlist[0].caption;
                    this.param=this.zlist[0].param;
                    this.token=this.zlist[0].token;
-                    this.navchildrenName=this.zlist[0].caption
+                   //this.navchildrenName=this.zlist[0].caption
                    this.getSubgroupPc()
 
 
@@ -387,14 +445,18 @@ export default {
        })
     },
     zzClick(index,item){
+      console.log(this.epc_id)
       this.ckIndex1=-1;
       this.ckIndex1=-2;
       this.restrainShow2=false
       this.restrainShow3=false
       this.childrenShow=false;
       this.childrenShow2=false;
-       this.restrainShow4=false;
-      this.LGWEF4A50GF211798=false;
+      this.restrainShow4=false;
+      this.navchildrenNameTitle='';
+      this.restrainTitleTwo='';
+      this.lastName=''
+      this.lastShow=false;
       this.zzIndex=index;
       this.param=item.param;
       this.token=item.token;
@@ -426,11 +488,15 @@ export default {
                    this.zkName1=res.data.result.caption;
                    this.navchildrenNameTitle=res.data.result.caption
                  }else{
+                   this.restrainShow1=false;
                    this.lastShow=true;
-                  this.zkName1=res.data.result.caption;
-                   this.navchildrenNameTitle=res.data.result.caption
-                  this.childrenList=res.data.result.list;
-                  this.oldList= this.childrenList
+                   this.zkName1=res.data.result.caption;
+                   this.navchildrenNameTitle=''
+                   this.childrenList=res.data.result.list;
+                   this.oldList= this.childrenList;
+                   setTimeout(() => {
+                    this.childrenHeight = this.$refs.childrenMainLeft.offsetHeight // 高
+                   }, 500)
                 }
 
              }
@@ -464,6 +530,7 @@ export default {
       this.token=item.token;
       this.ckIndex2=index;
       if(item.next_restrain==1){
+        this.zkName2=item.caption
         this.getYsDlist()
       }else{
         this.getPartsPc();
@@ -494,7 +561,8 @@ export default {
                console.log("约束2")
                this.restrainShow2=true;
                this.restrainList2=res.data.result.list;
-               this.zkName2=res.data.result.caption;
+               //this.zkName2=res.data.result.caption;
+               this.restrainTitleTwo=res.data.result.caption
                //console.log(this.zkName1)
              }
 
@@ -521,8 +589,8 @@ export default {
                this.access_time=res.data.result.access_time;
                console.log("约束3")
                this.restrainShow4=true;
-               this.restrainList3=res.data.result.list;
-               this.oldList=this.restrainList3
+               this.childrenList=res.data.result.list;
+               this.oldList=this.childrenList
 
 
          }else{
@@ -549,10 +617,10 @@ export default {
                //this.childrenTime:'',
                console.log("约束3")
                this.restrainShow3=true;
-               this.restrainList3=res.data.result.list;
+               this.childrenList=res.data.result.list;
                this.zkName3=res.data.result.caption;
                //console.log(this.zkName1)
-               this.oldList=this.restrainList3
+               this.oldList=this.childrenList
 
          }else{
            this.$message({
@@ -565,22 +633,29 @@ export default {
 
          })
     },
+    goback(){
+      this.childrenShow=false;
+      this.firstShow=true;
+      this.lastName='';
+    },
     childrenClick(item,index){
       //this.param=item.param;
      // this.token=item.token;
-     this.childrenIndex=index
+      this.childrenIndex=index
       this.childrenparam=item.param;
       this.childrentoken=item.token;
-
+      this.lastName=item.caption;
       this.getPartsPc();
-      this.groupShow=false;
-      this.carConfig=false;
-      this.restrainShow3=false;
-      this.restrainShow2=false;
-      this.restrainShow1=false;
-      this.childrenShow=true;
-       this.restrainShow4=false;
-      this.lastShow=false;
+       this.childrenShow=true;
+       this.firstShow=false;
+     //  this.groupShow=false;
+     //  this.carConfig=false;
+     //  this.restrainShow3=false;
+     //  this.restrainShow2=false;
+     //  this.restrainShow1=false;
+
+     //   this.restrainShow4=false;
+     //  this.lastShow=false;
        setTimeout(() => {
         this.childrenHeight = this.$refs.childrenMainLeft.offsetHeight // 高度
 
@@ -589,45 +664,25 @@ export default {
 
     },
     prev(){
-      if(this.lastShow){
         if(this.childrenIndex>0){
           this.childrenIndex--
           this.childrenparam=this.childrenList[this.childrenIndex].param;
           this.childrentoken=this.childrenList[this.childrenIndex].token;
           this.getPartsPc();
         }
-      }else{
-        if(this.childrenIndex>0){
-          this.childrenIndex--
-          this.childrenparam=this.restrainList3[this.childrenIndex].param;
-          this.childrentoken=this.restrainList3[this.childrenIndex].token;
-          this.getPartsPc();
-        }
-      }
+
 
 
     },
     next(){
-      if(this.lastShow){
         if(this.childrenList.length > this.childrenIndex){
           this.childrenIndex++
           this.childrenparam=this.childrenList[this.childrenIndex].param;
           this.childrentoken=this.childrenList[this.childrenIndex].token;
 
-          this.getPartsPc();
-        }
-      }else{
-        if(this.restrainList3.length > this.childrenIndex){
-          this.childrenIndex++
-          this.childrenparam=this.restrainList3[this.childrenIndex].param;
-          this.childrentoken=this.restrainList3[this.childrenIndex].token;
-
           this.getPartsPc();
         }
 
-      }
-
-
     },
     getPartsPc(){
       fetchGet('/advancedEpc/getPartsPc', {
@@ -656,6 +711,11 @@ export default {
          })
     },
     getPartsPc2(){
+      setTimeout(() => {
+       this.childrenHeight = this.$refs.childrenMainLeft.offsetHeight // 高
+      // console.log(this.childrenHeight)
+      }, 500)
+      this.groupShow=false;
       this.restrainShow1=false
       this.restrainShow2=false
       this.restrainShow3=false
@@ -664,6 +724,7 @@ export default {
       this.childrenShow2=false;
       this.restrainShow4=false;
       this.lastShow=false;
+      this.carConfig=false;
        this.childrenShow=true;
       fetchGet('/advancedEpc/getPartsPc', {
         vin:this.vin,
@@ -694,13 +755,13 @@ export default {
     childrenkeyup(){
        console.log("子组件搜索")
        console.log(this.childrenss)
-       this.restrainList3=this.oldList;
+       this.childrenList=this.oldList;
        if(this.childrenss==''){
-         this.restrainList3=this.oldList;
+         this.childrenList=this.oldList;
         // this.childrenList=this.oldList;
        }else{
-           console.log(this.query(this.restrainList3,this.childrenss,'caption'))
-           this.restrainList3=this.query(this.restrainList3,this.childrenss,'caption')
+           console.log(this.query(this.childrenList,this.childrenss,'caption'))
+           this.childrenList=this.query(this.childrenList,this.childrenss,'caption')
        }
 
     },
@@ -736,9 +797,12 @@ export default {
 
 <!-- Add "scoped" attribute to limit CSS to this component only -->
 <style scoped>
+  .firstBox{
+    display: flex;
+  }
  .vinsearch{
    width: 426px;
-   height: 44px;
+   height: 40px;
    background: #FFFFFF;
    border-radius: 4px;
    border: 1px solid #DDDDDD;
@@ -752,7 +816,7 @@ export default {
  }
  .vinBtn{
    width: 72px;
-   height: 48px;
+   height: 44px;
    background: #FF4F00;
    border-radius: 4px 0px 0px 4px;
    font-weight: 400;
@@ -779,7 +843,7 @@ export default {
  }
  .barnd{
    width: 120px;
-   height: 44px;
+   height: 40px;
    background: #FFFFFF;
    border-radius: 4px;
    border: 1px solid #DDDDDD;
@@ -798,11 +862,11 @@ export default {
  }
  .topkk{
    width: 120px;
-   height: 44px;
+   height: 40px;
   border: 1px solid #FF4F00;
    border-radius: 4px;
    text-align: center;
-   line-height: 44px;
+   line-height: 40px;
    margin-left: 20px;
    color: #FF4F00;
    font-size: 14px;
@@ -1004,7 +1068,7 @@ color: #333333;padding-left: 10px;padding-right: 20px;
    width: 100%;
  }
  .childrenMainLeft{
-   height: calc(100vh - 200px );
+   height: calc(100vh - 250px );
       width: 55%;
       border-radius: 4px;
       border: 1px solid #EEEEEE;
@@ -1013,6 +1077,7 @@ color: #333333;padding-left: 10px;padding-right: 20px;
       justify-content: center;
       overflow: hidden;
       position: relative;
+      padding-top: 50px;
  }
  .childrenMainRight{
    height: calc(100vh - 200px );
@@ -1023,7 +1088,8 @@ color: #333333;padding-left: 10px;padding-right: 20px;
  }
  .childrenImg{
    width: 80%;
-
+   height: 90%;
+   object-fit: contain;
  }
 /deep/ .el-table .has-gutter th.el-table__cell{
      background-color: #F7F9F8;
@@ -1054,4 +1120,10 @@ color: #333333;padding-left: 10px;padding-right: 20px;
  .prevBoxNo{
    opacity: 0.5;
  }
+ .goback{
+       color: #3F90F7;
+       font-weight: 500;
+       padding-left: 10px;
+       cursor: pointer;
+ }
 </style>

+ 86 - 42
src/page/oem.vue

@@ -2,15 +2,15 @@
   <el-dialog
     title="OEM查询"
     :visible="show"
-    width="80vw"
+    width="86vw"
     class="create-dialog"
     @close="close"
   >
   <div class="oemTop">
-      <el-radio-group v-model="radioType" @change="changeradio" class="radioBox">
+     <!-- <el-radio-group v-model="radioType" @change="changeradio" class="radioBox">
         <el-radio label="0">品牌下搜索</el-radio>
         <el-radio label="1">车型下搜索</el-radio>
-      </el-radio-group>
+      </el-radio-group> -->
       <div class="oemTopdiv">
         <input type="text" v-model="oem" placeholder="配件名称/原厂OEM" class="vinsearch" @keyup.enter="keyup">
         <div class="oemssBtn" @click="keyup">查询</div>
@@ -26,7 +26,7 @@
        <div class="tableBoxOnediv">
           <el-table
               class="el-table"
-              :data="rows"
+              :data="rows" size='mini'
               :max-height="childrenHeight"
               stripe   border
               style="width: 100%">
@@ -58,7 +58,7 @@
          </div>
          <div class="tableBoxOnediv">
             <el-table
-                class="el-table" :data="rows"
+                class="el-table" :data="rows" size='mini'
                 :max-height="childrenHeight"
                 stripe   border style="width: 100%">
                 <el-table-column prop="extened" label="零件号">
@@ -67,7 +67,7 @@
                   </template>
                 </el-table-column>
                 <el-table-column prop="caption" label="名称"></el-table-column>
-                <el-table-column prop="description" show-overflow-tooltip label="适用车型"></el-table-column>
+                <el-table-column prop="description"  label="适用车型"></el-table-column>
 
               </el-table>
          </div>
@@ -78,7 +78,7 @@
          </div>
          <div class="tableBoxOnediv" style="padding-left: 15px;">
             <el-table
-                class="el-table" :data="carList"
+                class="el-table" :data="carList" size='mini'
                 :max-height="childrenHeight"
                 stripe   border style="width: 100%">
                 <el-table-column prop="extened" label="名称">
@@ -86,13 +86,13 @@
                         <span style="color: #3F90F7;cursor: pointer;" @click="twoSpan(scope.row)">{{ scope.row.caption }}</span>
                   </template>
                 </el-table-column>
-                <el-table-column prop="vin_11" show-overflow-tooltip label="车型"></el-table-column>
-                <el-table-column prop="engine_prefix" show-overflow-tooltip label="发动机"></el-table-column>
-                <el-table-column prop="trans" show-overflow-tooltip label="变速箱"></el-table-column>
-                <el-table-column prop="area" show-overflow-tooltip label="地区"></el-table-column>
-                <el-table-column prop="equips" show-overflow-tooltip label="配置"></el-table-column>
-                <el-table-column prop="grade" show-overflow-tooltip label="级别"></el-table-column>
-                <el-table-column prop="model_code" show-overflow-tooltip label="模型代码"></el-table-column>
+                <el-table-column prop="vin_11"  label="车型"></el-table-column>
+                <el-table-column prop="engine_prefix"  label="发动机"></el-table-column>
+                <el-table-column prop="trans"  label="变速箱"></el-table-column>
+                <el-table-column prop="area"  label="地区"></el-table-column>
+                <el-table-column prop="equips"  label="配置"></el-table-column>
+                <el-table-column prop="grade"  label="级别"></el-table-column>
+                <el-table-column prop="model_code"  label="模型代码"></el-table-column>
               </el-table>
          </div>
        </div>
@@ -105,7 +105,7 @@
          </div>
          <div class="tableBoxOnediv">
             <el-table
-                class="el-table" :data="rows"
+                class="el-table" :data="rows" size='mini'
                 :max-height="childrenHeight"
                 stripe   border style="width: 100%">
                 <el-table-column prop="extened" label="零件号">
@@ -114,7 +114,7 @@
                   </template>
                 </el-table-column>
                 <el-table-column prop="caption" label="名称"></el-table-column>
-                <el-table-column prop="description" show-overflow-tooltip label="适用车型"></el-table-column>
+                <el-table-column prop="description"  label="适用车型"></el-table-column>
 
               </el-table>
          </div>
@@ -125,7 +125,7 @@
          </div>
          <div class="tableBoxOnediv" style="padding-left: 15px;">
             <el-table
-                class="el-table" :data="carList"
+                class="el-table" :data="carList" size='mini'
                 :max-height="childrenHeight"
                 stripe   border style="width: 100%">
                 <el-table-column prop="extened" label="名称">
@@ -133,13 +133,13 @@
                         <span style="color: #3F90F7;cursor: pointer;" @click="twoSpan(scope.row)">{{ scope.row.caption }}</span>
                   </template>
                 </el-table-column>
-                <el-table-column prop="vin_11" show-overflow-tooltip label="车型"></el-table-column>
-                <el-table-column prop="engine_prefix" show-overflow-tooltip label="发动机"></el-table-column>
-                <el-table-column prop="trans" show-overflow-tooltip label="变速箱"></el-table-column>
-                <el-table-column prop="area" show-overflow-tooltip label="地区"></el-table-column>
-                <el-table-column prop="equips" show-overflow-tooltip label="配置"></el-table-column>
-                <el-table-column prop="grade" show-overflow-tooltip label="级别"></el-table-column>
-                <el-table-column prop="model_code" show-overflow-tooltip label="模型代码"></el-table-column>
+                <el-table-column prop="vin_11"  label="车型"></el-table-column>
+                <el-table-column prop="engine_prefix"  label="发动机"></el-table-column>
+                <el-table-column prop="trans"  label="变速箱"></el-table-column>
+                <el-table-column prop="area"  label="地区"></el-table-column>
+                <el-table-column prop="equips"  label="配置"></el-table-column>
+                <el-table-column prop="grade"  label="级别"></el-table-column>
+                <el-table-column prop="model_code"  label="模型代码"></el-table-column>
               </el-table>
          </div>
        </div>
@@ -149,18 +149,18 @@
          </div>
          <div class="tableBoxOnediv" style="padding-left: 15px;">
             <el-table
-                class="el-table" :data="itemList"
+                class="el-table" :data="itemList" size='mini'
                 :max-height="childrenHeight"
                 stripe   border style="width: 100%">
-                 <el-table-column prop="caption" show-overflow-tooltip label="子组"></el-table-column>
+                 <el-table-column prop="caption"  label="子组"></el-table-column>
                 <el-table-column prop="extened" label="零件号">
                   <template slot-scope="scope">
                         <span style="color: #3F90F7;cursor: pointer;" @click="threeSpan(scope.row)">{{ scope.row.partnum }}</span>
                   </template>
                 </el-table-column>
 
-                <el-table-column prop="caption" show-overflow-tooltip label="名称"></el-table-column>
-                <el-table-column prop="group" show-overflow-tooltip label="总组"></el-table-column>
+                <el-table-column prop="name"  label="名称"></el-table-column>
+                <el-table-column prop="group"  label="总组"></el-table-column>
               </el-table>
          </div>
        </div>
@@ -175,11 +175,11 @@
 import { fetchPost, fetchGet, fetchPut, fetchDelete, baseURL } from '@/utils/request'
 export default {
 
-  props: ['show', 'id',],
+  props: ['show', 'id','param','token','vin'],
   data() {
     return {
          radioType:'0',
-         oem:'',
+         oem:'16400RZDH01',
          childrenHeight:'',
          // rows:[{
          //   caption: "进气压力传感器",
@@ -201,25 +201,35 @@ export default {
          token:'',
          param:'',
          threeTime:'',
+         total_page:'',
     }
   },
   watch: {
-    id(val) {
-      setTimeout(() => {
-          this.childrenHeight = this.$refs.oemBox.offsetHeight -100
-         console.log(this.childrenHeight)
-      }, 500)
+    // id(val) {
+    //   setTimeout(() => {
+    //       this.childrenHeight = this.$refs.oemBox.offsetHeight -80
+    //      console.log(this.childrenHeight)
+    //   }, 500)
 
-    }
+    // }
   },
   created() {
     setTimeout(() => {
-        this.childrenHeight = this.$refs.oemBox.offsetHeight -100
+        this.childrenHeight = this.$refs.oemBox.offsetHeight -80
        console.log(this.childrenHeight)
     }, 500)
 
   },
   methods: {
+    eliminate(){
+      this.tableOneShow=false
+      this.tableTwoShow=false
+      this.tabthreeSHow=false
+      this.rows='';
+      this.carList='';
+      this.itemList='';
+      this.oem='16400RZDH01';
+    },
     threeSpan(item){
       var token=item.token;
       var param=item.param;
@@ -272,6 +282,10 @@ export default {
            this.tableTwoShow=true;
            this.access_time=res.data.result.access_time;
            this.carList=res.data.result.list
+           this.total_page=res.data.result.total_page;
+           if(this.total_page>1){
+             // this.getfindApplicableModelsPage()
+           }
          }else{
            this.$message({
                   message: res.data.message,
@@ -284,16 +298,41 @@ export default {
 
        })
     },
-    keyup(){
+    getfindApplicableModelsPage(){
+      for(var i=2;i<this.total_page+1;i++){
+        console.log(i);
+        fetchGet('/advancedEpc/findApplicableModelsPc', {
+          partnum:this.partnum,
+           epc_id: this.id,
+           page:i,
+         }).then(res => {
+           if(res.data.number==200||res.data.number==5212){
+             //this.access_time=res.data.result.access_time;
+             var carList=res.data.result.list;
+             this.carList=this.carList.concat(carList)
+           }else{
+           }
+
+         }).catch(err => {
+
+         })
+      }
+    },
+    keyup(){    //45022-S10
       setTimeout(() => {
-          this.childrenHeight = this.$refs.oemBox.offsetHeight -100
+          this.childrenHeight = this.$refs.oemBox.offsetHeight -80
          console.log(this.childrenHeight)
       }, 500)
       this.tableOneShow=true;
+      this.tableTwoShow=false;
+      this.tabthreeSHow=false;
         console.log(this.oem);
         fetchGet('/advancedEpc/findPartsPc', {
           keyword:this.oem,
            epc_id: this.id,
+           // token: this.token,
+           // param: this.param,
+           // vin:this.vin
          }).then(res => {
            if(res.data.number==200||res.data.number==5212){
                this.rows=res.data.result.list
@@ -313,9 +352,8 @@ export default {
 
    },
     close() {
-
+      
       this.$emit('update:show', false)
-      this.$emit('update:id', '')
 
     },
     getDetail() {
@@ -366,9 +404,12 @@ export default {
    padding-top: 10px;
    padding-right: 40px;
  }
+ .el-dialog{
+   margin-top: 10vh !important;
+ }
  .oemBox{
    width: 100%;
-   height: 60vh;
+   height: 70vh;
    border-radius: 4px;
    border: 1px solid #EEEEEE;
    margin-top: 20px;
@@ -409,4 +450,7 @@ export default {
  .tableBoxLeftThree{
    width: 33.3%;
  }
+ .el-dialog__body{
+   padding: 0 20px !important;
+ }
 </style>

+ 125 - 0
src/page/part.vue

@@ -0,0 +1,125 @@
+<template>
+  <el-dialog
+    title="OEM零件详情"
+    :visible="show"
+    width="80vw"
+    class="create-dialog"
+    @close="close"
+  >
+
+
+
+
+
+  </el-dialog>
+</template>
+<script>
+import { fetchPost, fetchGet, fetchPut, fetchDelete, baseURL } from '@/utils/request'
+export default {
+
+  props: ['show', 'id','param','token','vin'],
+  data() {
+    return {
+
+    }
+  },
+  watch: {
+
+  },
+  created() {
+
+
+  },
+  methods: {
+   
+
+  }
+
+}
+</script>
+<style >
+  .oemTop{
+    display: flex;
+    width: 100%;
+  }
+.vinsearch{
+  width: 400px;
+  height: 34px;
+  background: #FFFFFF;
+  border-radius: 4px;
+  border: 1px solid #DDDDDD;
+  line-height:34px;
+  padding-left: 10px;
+  font-size: 14px;
+  font-family: PingFangSC-Regular, PingFang SC;
+  font-weight: 400;
+  color: #666666;
+   outline: none;
+}
+.oemssBtn{
+   width: 72px;
+   height: 38px;
+   background: #FF4F00;
+  border-radius: 0px 4px 4px 0px;
+   font-weight: 400;
+   color: #FFFFFF;
+   font-size: 14px;
+   line-height: 34px;
+   text-align: center;
+   margin-left: -2px;
+   position: relative;
+ }
+ .oemTopdiv{
+   display: flex;
+ }
+ .radioBox{
+   padding-top: 10px;
+   padding-right: 40px;
+ }
+ .oemBox{
+   width: 100%;
+   height: 60vh;
+   border-radius: 4px;
+   border: 1px solid #EEEEEE;
+   margin-top: 20px;
+ }
+ .tableTile{
+   display: flex;
+ }
+ .sx{
+   width: 3px;
+   height: 12px;
+   background: #FF4F00;
+   margin-top: 18px;margin-left: 14px;
+ }
+ .leftTitle{
+   line-height: 48px;
+   font-weight: 500;
+   color: #333333;
+   font-size: 14px;
+   padding-left: 8px;
+ }
+ .tableBoxTwo{
+   display: flex;
+   justify-content: space-between;
+ }
+ .tableBoxLeft{
+   width: 50%;
+ }
+ .tableBoxRigt{
+    width: 50%;
+
+ }
+ .tableBoxRigtThree{
+   width: 33.3%;
+ }
+ .tableBoxM{
+    width: 33.3%;
+ }
+ .tableBoxLeftThree{
+   width: 33.3%;
+ }
+ .el-dialog__body{
+   padding: 0 20px !important;
+ }
+</style>

+ 48 - 0
src/store/index.js

@@ -0,0 +1,48 @@
+ import Vue from 'vue'
+ import Vuex from 'vuex'
+
+Vue.use(Vuex)
+const store = new Vuex.Store({
+    state: {
+      token:'',
+      url:'',
+      uid:'',
+	},
+	getters:{
+		gettoken(state){
+			return state.token
+	    },
+	    geturl(state){
+	    	return state.url
+	    },
+		getckuid(state){
+			return state.ckuid
+		},
+
+    },
+    mutations: {
+		mutationstoken(state,data){
+			state.token=data
+		},
+		mutationsurl(state,data){
+			state.url=data
+		},
+		mutationsckuid(state,data){
+			state.ckuid=data
+		},
+
+	},
+    actions: {
+		actionstoken(context,playload){
+			context.commit('mutationstoken',playload)
+		},
+		actionsurl(context,playload){
+			context.commit('mutationsurl',playload)
+		},
+		actionsckuid(context,playload){
+			context.commit('mutationsckuid',playload)
+		},
+
+	}
+})
+export default store

+ 8 - 5
src/utils/request.js

@@ -1,18 +1,21 @@
 import axios from 'axios'
-//import store from '@/store'
+import store from '@/store'
 import { getHashQuery } from './index.js'
 //"build": "node build/build.js"
 axios.defaults.timeout = 8640000000 // 响应时间
 axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
 //axios.defaults.headers.post['Content-Type'] = 'application/json'
-console.log(getHashQuery('url'))
-var url='http://'+getHashQuery('url')+'/'
+console.log(store.state.token)
+//var url='http://'+getHashQuery('url')+'/'
+var url='http://'+store.state.url+'/'
 //axios.defaults.baseURL = process.env.VUE_APP_BASE_API // 配置接口地址
 axios.defaults.baseURL = 'http://api.dms.66km.com.cn/' // 配置接口地址
 //axios.defaults.baseURL = url // 配置接口地址
 // POST传参序列化(添加请求拦截器)
-var epcToken=getHashQuery('token');
-var uid=getHashQuery('uid');
+//var epcToken=getHashQuery('token');
+//var uid=getHashQuery('uid');
+var epcToken=store.state.token;
+var uid=store.state.uid;
 axios.interceptors.request.use((conf) => {
  // console.log(conf)
   // 在发送请求之前做某件事