codeMan 1 год назад
Родитель
Сommit
c805339761

+ 203 - 0
src/optionSystem/FProductManage/modules/aside.vue

@@ -0,0 +1,203 @@
+<template>
+  <div class="select-info">
+    <div class="info-title">配置概要</div>
+    <div class="scroll">
+        <div class="product-wrapper">
+            <div class="product">
+                <div class="product-header">
+                    <div class="title">光头</div>
+                    <span @click="refresh('光头')" v-if="!!resultArr[0]">
+                        <img src="@/assets/重选.svg" alt="">
+                        重选
+                    </span>
+                </div>
+                <div class="product-name">{{ resultArr[0] ? resultArr[0].itemname : '暂无' }}</div>
+                <div class="attrite" v-if="resultArr[0] && resultArr[0].torque">
+                    <div class="attrite-title">扭矩:</div>
+                    <div class="attrite-value">{{ resultArr[0].torque }}</div>
+                </div>
+                <div class="attrite" v-if="resultArr[0] && resultArr[0].flh">
+                    <div class="attrite-title">法兰号:</div>
+                    <div class="attrite-value">{{ resultArr[0].flh }}</div>
+                </div>
+                <div class="attrite" v-if="resultArr[0] && resultArr[0].caliber">
+                    <div class="attrite-title">公称通径:</div>
+                    <div class="attrite-value">{{ resultArr[0].caliber }}</div>
+                </div>
+                <div class="attrite" v-if="resultArr[0] && resultArr[0].stemmaterial">
+                    <div class="attrite-title">阀杆材质:</div>
+                    <div class="attrite-value">{{ resultArr[0].stemmaterial }}</div>
+                </div>
+                <div class="attrite" v-if="resultArr[0] && resultArr[0].bodymaterial">
+                    <div class="attrite-title">阀体材质:</div>
+                    <div class="attrite-value">{{ resultArr[0].bodymaterial }}</div>
+                </div>
+            </div>
+
+            <div class="product">
+                <div class="product-header">
+                    <div class="title">执行器</div>
+                    <span  @click="refresh('执行器')" v-if="!!resultArr[1]">
+                        <img src="@/assets/重选.svg" alt="">
+                        重选
+                    </span>
+                </div>
+                <div class="product-name">{{ resultArr[1] ? resultArr[1].actuatorname : '暂无' }}</div>
+                <div class="attrite" v-if="resultArr.length <= 2">
+                    {{ resultArr[1] ? `${resultArr[1].itemname}+${resultArr[1].gearboxname}`:'暂无' }}
+                </div>
+                <div class="attrite" v-else>
+                    {{ resultArr[1] ? `${resultArr[1].itemname}`:'暂无' }}
+                </div>
+                <div class="attrite" v-if="resultArr[1] && resultArr[1].torque">
+                    <div class="attrite-title">输出扭矩:</div>
+                    <div class="attrite-value">{{resultArr[1].torque }}</div>
+                </div>
+                <div class="attrite" v-if="resultArr[1] && resultArr[1].maxruntime">
+                    <div class="attrite-title">开关时间:</div>
+                    <div class="attrite-value">{{resultArr[1].maxruntime }}</div>
+                </div>
+                <div class="attrite" v-if="resultArr[1] && resultArr[1].speed">
+                    <div class="attrite-title">转速:</div>
+                    <div class="attrite-value">{{resultArr[1].speed }}</div>
+                </div>
+                <div class="attrite" v-if="resultArr[1] && resultArr[1].ratio">
+                    <div class="attrite-title">减速比:</div>
+                    <div class="attrite-value">{{resultArr[1].ratio }}</div>
+                </div>
+                <div class="attrite" v-if="resultArr[1] && resultArr[1].supplyvoltage">
+                    <div class="attrite-title">电压:</div>
+                    <div class="attrite-value">{{resultArr[1].supplyvoltage }}</div>
+                </div>
+                <div class="attrite" v-if="resultArr[1] && resultArr[1].ratedcurrent">
+                    <div class="attrite-title">电流:</div>
+                    <div class="attrite-value">{{resultArr[1].ratedcurrent }}</div>
+                </div>
+                <div class="attrite" v-if="resultArr[1] && resultArr[1].ratedpower">
+                    <div class="attrite-title">功率:</div>
+                    <div class="attrite-value">{{resultArr[1].ratedpower }}</div>
+                </div>
+            </div>
+
+            <div class="product">
+                <div class="product-header">
+                    <div class="title">辅件</div>
+                    <span @click="refresh('辅件')" v-if="resultArr.length > 3">
+                        <img src="@/assets/重选.svg" alt="">
+                        重选
+                    </span>
+                </div>
+                <div class="attrite2" v-for="item in fujianArr" :key="item.othertype">
+                    <div class="attrite-title">{{ item.othertype }}:</div>
+                    <div class="attrite-value">{{ item.model }}</div>
+                </div>
+            </div>
+        </div>
+    </div>
+</div>
+</template>
+
+<script>
+export default {
+    data () {
+        return {
+
+        }
+    },
+    props:['resultArr','fujianArr'],
+    methods: {
+        refresh (type) {
+            this.$emit('refresh',type)
+        }
+    }
+}
+</script>
+
+<style scoped>
+.select-info {
+    background: #F5F6FA;
+    font-family: Microsoft YaHei, Microsoft YaHei;
+    width: 240px;
+    border-right: 1px #999999 solid;
+    z-index: 99999991;
+    flex-shrink: 0;
+    word-wrap: break-word;
+}
+.select-info .info-title {
+    font-weight: bold;
+    font-size: 20px;
+    color: #333333;
+    padding: 10px 20px;
+    border-bottom: 1px solid #D9D9D9;
+}
+.select-info .product-wrapper {
+    padding: 0 20px;
+}
+
+.select-info .product-wrapper .product {
+    padding-bottom:20px;
+    border-bottom: #D9D9D9 1px solid;
+}
+.select-info .product-wrapper .product:last-child {
+    border-bottom: none !important;
+}
+.select-info .product-wrapper .product .product-header {
+    display: flex;
+    align-items: center;
+    align-content: center;
+    padding: 10px 0;
+}
+.select-info .product-wrapper .product .product-header span:last-child {
+    color: #3874F6;
+    margin-left: 18px;
+    cursor: pointer;
+}
+.select-info .product-wrapper .product .product-header .title {
+    font-weight: bold;
+    font-size: 14px;
+    color: #333333;
+}
+.select-info .product-wrapper .product .product-header img {
+    width: 12px;
+    height: 12px;
+}
+.select-info .product-wrapper .product .product-name {
+    font-weight: 400;
+    font-size: 14px;
+    color: #555555;
+}
+.select-info .product-wrapper .product .attrite {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    font-weight: 400;
+    font-size: 12px;
+    color: #999999;
+    padding-top: 10px;
+}
+.select-info .product-wrapper .product .attrite .attrite-title {
+    color: #555555;
+}
+.select-info .product-wrapper .product .attrite .attrite-value {
+}
+
+.select-info .product-wrapper .product .attrite2 {
+    display: flex;
+    flex-direction: column;
+    font-weight: 400;
+    font-size: 12px;
+    color: #999999;
+    padding-top: 10px;
+}
+.select-info .product-wrapper .product .attrite2 .attrite-title {
+    color: #555555;
+    margin-bottom: 5px;
+}
+.select-info .product-wrapper .product .attrite2 .attrite-value {
+}
+
+.select-info .product-wrapper .product {
+    display: flex;
+    flex-direction: column;
+}
+</style>

+ 59 - 126
src/optionSystem/FProductManage/modules/diefa/diefaAdd.vue

@@ -49,7 +49,8 @@
             <div class="title">组成件</div>
             <div class="handle">
                 <el-button type="primary" size="mini" style="margin-right: 10px;" @click="showFun" :disabled="resultArr.length!=0">选择</el-button>
-                <el-drawer custom-class="custom-select-option_class" :visible.sync="dialogVisible" size="1200px" append-to-body :show-close="false" v-if="dialogVisible" :wrapperClosable="false" :close-on-press-escape="false">
+                <el-drawer custom-class="custom-select-option_class" :visible.sync="dialogVisible" size="1300px" append-to-body :show-close="false" v-if="dialogVisible" :wrapperClosable="false" :close-on-press-escape="false">
+                    <Aside :resultArr="resultArr" :fujianArr="fujianArr" @refresh="resultRefresh"></Aside>
                     <div class="drawer__panel">
                         <div class="my-steps">
                             <a-steps :current="active-1" style="margin-bottom: 10px;">
@@ -58,41 +59,6 @@
                                 </a-step>
                             </a-steps>
                         </div>
-                        <div class="product-info">
-                            <div class="info-content">
-                                <div class="info-item" style="width: 50%;margin-bottom: 5px">
-                                    <div class="info-title">
-                                        <div class="title">光头</div>
-                                        <span v-show="!!resultArr[0]" @click="active=1;resultArr=[];fujianArr=[];items.splice(2,1)">
-                                            <img src="@/assets/重选.svg" alt="">
-                                            重选
-                                        </span>
-                                    </div>
-                                    <div class="name" v-if="resultArr[0]">{{ resultArr[0].itemname}}</div>
-                                    <div class="name" v-else>暂无</div>
-                                </div>
-                                <div class="info-item" style="width: 50%;">
-                                    <div class="info-title">
-                                        <div class="title">执行器</div>
-                                        <span v-show="!!resultArr[1]" @click="active=2;resultArr.splice(1);fujianArr=[]">
-                                            <img src="@/assets/重选.svg" alt="">
-                                            重选
-                                        </span>
-                                    </div>
-                                    <div class="name" v-if="resultArr[1]">{{ resultArr[1].itemname}} {{ guangtouParam.content.where.drivetype == '电动' ? ` + 减速箱:${resultArr[1].gearboxname}` : '' }}</div>
-                                    <div class="name" v-else>暂无</div>
-                                </div>
-                                <div class="info-item" style="width: 100%;">
-                                    <div class="info-title">
-                                        <div class="title">辅件</div>
-                                    </div>
-                                    <div style="display: flex" v-if="fujianArr.length">
-                                        <el-tag size="small" closable v-for="item in fujianArr" :key="item.itemid" style="margin-right: 10px" @close="handleClose(item)">{{ item.itemname }}:{{ item.model }}</el-tag>    
-                                    </div>
-                                    <div class="name" v-else>暂无</div>
-                                </div>
-                            </div>
-                        </div>
                         <!--选光头-->
                         <div class="dialog-content" v-show="active == 1">
                             <div class="option-line">
@@ -118,7 +84,7 @@
                                 <div class="item">
                                     <div class="label">公称通径:</div>
                                     <el-select filterable v-model="guangtouParam.content.where.caliber" placeholder="请选择公称通径" size="small" style="width:100%" clearable @change="Search('guangtouParam','caliber')">
-                                        <el-option v-for="item in caliber" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
+                                        <el-option v-for="item in caliber" :key="item.value" :value="item.value" :label="item.value"></el-option>
                                     </el-select>
                                 </div>
                                 <div class="item">
@@ -206,14 +172,14 @@
                                 </div>
                             </div>
 
-                            <div class="option-line">
+                            <!-- <div class="option-line">
                                 <div class="item">
                                     <div class="label" style="width: 75px;">执行器类型:</div>
                                     <el-select filterable @change="Search('excelParam','actuatorname')" :disabled="!excelParam.content.where.actuatorbrand" v-model="excelParam.content.where.actuatorname" placeholder="请选择执行器类型" size="small" style="width:100%" clearable>
                                         <el-option v-for="item in actuatorname" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
                                     </el-select>
                                 </div>
-                            </div>
+                            </div> -->
                             <div class="option-line" v-show="guangtouParam.content.where.drivetype=='气动'">
                                 <div class="item">
                                     <div class="label">功能:</div>
@@ -227,9 +193,18 @@
                                     <MySelect :disabled="!excelParam.content.where.func"  @click="Search('excelParam','bodystructure')" :options="bodystructure" v-model="excelParam.content.where.bodystructure"></MySelect>
                                 </div>
                             </div>
-
+                            <div v-if="guangtouParam.content.where.drivetype == '电动' && excelParam.content.where.actuatorbrand && actuatorname.length">
+                                <div class="option-line">
+                                    <div class="item">
+                                        <div class="label" style="width: 80px;">执行器类型:</div>
+                                        <span style="font-size: 14px;font-weight: bold;color:#3874F6">{{ excelParam.content.where.actuatorname || '--' }}</span>
+                                    </div>
+                                </div>
+                                <SelectBar style="margin: 20px 0" v-model="excelParam.content.where.actuatorname" :options="actuatorname" @change="Search('excelParam','actuatorname')"></SelectBar>
+                            </div>
+                            <div class="tips" v-if="guangtouParam.content.where.drivetype=='电动'" style="color:#3874F6;margin-top: 10px;"><i class="el-icon-warning" style="margin-right: 5px;"></i>建议开关阀时间{{ caliber.filter(v=>v.value==guangtouParam.content.where.caliber).length ? caliber.filter(v=>v.value==guangtouParam.content.where.caliber)[0].remarks:'-' }}秒</div>
                             <!--执行器-->
-                            <MyTable :height="tableHeight" :noQuery="true" ref="excelRef" :layout="guangtouParam.content.where.drivetype=='电动'?tool.tabelCol($route.name)['excelTable1'].tablecols:tool.tabelCol($route.name)['excelTable2'].tablecols" :param="excelParam" :opwidth="200" :custom="true" style="margin-top: 14px">
+                            <MyTable fixedName="operation" :height="tableHeight" :noQuery="true" ref="excelRef" :layout="guangtouParam.content.where.drivetype=='电动'?tool.tabelCol($route.name)['excelTable1'].tablecols:tool.tabelCol($route.name)['excelTable2'].tablecols" :param="excelParam" :opwidth="200" :custom="true" style="margin-top: 14px">
                                 <template v-slot:customcol="scope">
                                     <div v-if="scope.column.columnname == 'matchratio'" style="color:red">{{scope.column.data[scope.column.columnname]}}</div>
                                     <span v-else-if="scope.column.columnname != 'operation'">{{scope.column.data[scope.column.columnname]}}</span>
@@ -348,8 +323,10 @@
 <script>
 import MySelect from '../select.vue'
 import MyTable from '../table.vue'
+import SelectBar from '../selectBar.vue'
+import Aside from '../aside.vue'
 export default {
-    components:{MySelect,MyTable},
+    components:{MySelect,MyTable,SelectBar,Aside},
     props:['data'],
     data () {
         return {
@@ -473,10 +450,15 @@ export default {
         }
     },
     watch: {
+        'excelParam.content.where.actuatorbrand': {
+            handler (val) {
+                setTimeout(() => {
+                    this.calcTableHieght('excelRef')
+                },500)
+            }
+        },
         active (val) {
-            console.log(val);
             switch (val) {
-                
                 case 1:
                     this.calcTableHieght('guangtouRef')
                     break;
@@ -492,6 +474,22 @@ export default {
         }
     },
     methods: {
+        resultRefresh (type) {
+            if (type == '光头') {
+                this.active=1
+                this.resultArr=[]
+                this.fujianArr=[]
+                this.items.splice(2,1)
+            } else if (type == '执行器') {
+                this.active=2
+                this.resultArr.splice(1)
+                this.fujianArr=[]
+            } else {
+                this.fujianArr=[]
+                this.fujianParam.content.othertypes = ['电磁阀','限位开关','过滤减压阀']
+                this.$refs.fujianRef.listData()
+            } 
+        },
         showFun () {
             if (this.data) {
                 this.form.itemid = this.data.itemid
@@ -516,6 +514,7 @@ export default {
         },
         calcTableHieght (id) {
             this.$nextTick(() => {
+                if (!this.$refs[id]) return 
                 let target = this.$refs[id].$el.getBoundingClientRect()
                 let clientHeight = document.body.clientHeight
                 this.tableHeight = clientHeight - target.top - 85 + 'px'
@@ -731,22 +730,6 @@ export default {
             this.form.maxruntime = this.resultArr[1].maxruntime
             this.form.torque = this.resultArr[1].torque
         },
-        handleClose (tag) {
-            this.fujianArr = this.fujianArr.filter(item => {
-                if (item.itemid != tag.itemid) {
-                    return item
-                } else {
-                    this.fujianParam.content.othertypes.push(item.itemname)
-                }
-            })
-            this.resultArr = this.resultArr.filter(item => {
-                if (item.itemid != tag.itemid) {
-                    return item
-                }
-            })
-            
-            this.$refs.fujianRef.listData()
-        },
         stepsClick (val) {
             for (let i = 0; i < this.items.length; i++) {
                 if (val == this.items[i].value) {
@@ -863,77 +846,27 @@ export default {
         color:#3874F6 !important;
         font-weight: bold;
     }
-    .drawer__panel {
-        font-family: Source Han Sans SC, Source Han Sans SC;
-        padding: 10px 40px !important;
-    }
-    .my-steps {
-        padding: 0px 68px;
-    }
-    .product-info {
-        padding: 10px 20px;
-        border: 1px solid #3874F6;
-        background: rgba(56, 116, 246, 0.08);
-        margin-top: 5px;
-        border-radius: 2px;
-    }
-    .product-info .title {
-        margin-bottom: 8px;
-        font-weight: bold;
-        color: #333333;
-        font-size: 16px !important;
-    }
-    .product-info .info-content {
-        display: flex;
-        flex-wrap: wrap;
-    }
-    .product-info .info-content .info-item {
-        display: flex;
-        flex-direction: column;
-    } 
-    .product-info .info-content .info-item .info-title {
-        margin-bottom: 4px;
-        display: flex;
-        align-content: center;
-        align-items: center;
-    }
-    .product-info .info-content .info-item .info-title .title {
-        margin-bottom: 0px !important;
-    }
-    .product-info .info-content .info-item .info-title div {
-        margin-right: 20px;
-        font-size: 14px !important;
-    }
-    .product-info .info-content .info-item .info-title span {
-        font-size: 14px;
-        color: #3874F6 !important;
-        cursor: pointer;
-        display: inline-block;
+    /deep/.el-drawer__body {
         display: flex;
-        align-items: center;
-        align-content: center;
     }
-    .product-info .info-content .info-item .info-title span img {
-        width: 12px;
-        height: 12px;
-        margin-right: 4px;
+    /deep/.fixed__btn__panel {
+        padding-left: 240px !important;
     }
-    .product-info .info-content .info-item .name {
-        font-weight: 400;
-        font-size: 14px;
-        color: #555555;
+    .scroll {
+        height: calc(100vh - 60px);
+        overflow-y: scroll;
     }
-    .product-info .info-content .info-item .names {
-        font-weight: 400;
-        font-size: 14px;
-        color: #555555;
-        display: flex;
+    ::-webkit-scrollbar {
+        display: none;
     }
-    .product-info .info-content .info-item .names div {
-        margin-right: 20px;
+    .drawer__panel {
+        font-family: Source Han Sans SC, Source Han Sans SC;
+        padding: 10px 40px !important;
+        flex: 1;
+        overflow: hidden;
     }
-    .product-info .info-content .info-item .names div span {
-        margin-right: 10px;
+    .my-steps {
+        padding: 0px 68px;
     }
     .product-content .block {
         margin-top: 20px;
@@ -970,7 +903,7 @@ export default {
     .dialog-content .option-line .item .label {
         width: 70px;
         flex-shrink: 0;
-        text-align: right;
+        text-align-last: justify;
         margin-right: 15px;
         color: #000000 !important;
     }

+ 63 - 109
src/optionSystem/FProductManage/modules/diefa/edit.vue

@@ -49,7 +49,8 @@
             <div class="title">组成件</div>
             <div class="handle">
                 <el-button type="primary" size="mini" style="margin-right: 10px;" @click="dialogVisible=true;calcTableHieght('guangtouRef')" :disabled="resultArr.length!=0">选择</el-button>
-                <el-drawer custom-class="custom-select-option_class" :visible.sync="dialogVisible" size="1200px" append-to-body :show-close="false" v-if="dialogVisible" :wrapperClosable="false" :close-on-press-escape="false">
+                <el-drawer custom-class="custom-select-option_class" :visible.sync="dialogVisible" size="1300px" append-to-body :show-close="false" v-if="dialogVisible" :wrapperClosable="false" :close-on-press-escape="false">
+                    <Aside :resultArr="resultArr" :fujianArr="fujianArr" @refresh="resultRefresh"></Aside>
                     <div class="drawer__panel">
                         <div class="my-steps">
                             <a-steps :current="active-1" style="margin-bottom: 10px;">
@@ -58,41 +59,6 @@
                                 </a-step>
                             </a-steps>
                         </div>
-                        <div class="product-info">
-                            <div class="info-content">
-                                <div class="info-item" style="width: 50%;margin-bottom: 5px">
-                                    <div class="info-title">
-                                        <div class="title">光头</div>
-                                        <span v-show="!!resultArr[0]" @click="active=1;resultArr=[];fujianArr=[];items.splice(2,1)">
-                                            <img src="@/assets/重选.svg" alt="">
-                                            重选
-                                        </span>
-                                    </div>
-                                    <div class="name" v-if="resultArr[0]">{{ resultArr[0].itemname}}</div>
-                                    <div class="name" v-else>暂无</div>
-                                </div>
-                                <div class="info-item" style="width: 50%;">
-                                    <div class="info-title">
-                                        <div class="title">执行器</div>
-                                        <span v-show="!!resultArr[1]" @click="active=2;resultArr.splice(1);fujianArr=[]">
-                                            <img src="@/assets/重选.svg" alt="">
-                                            重选
-                                        </span>
-                                    </div>
-                                    <div class="name" v-if="resultArr[1]">{{ resultArr[1].itemname}} {{ guangtouParam.content.where.drivetype == '电动' ? ` + 减速箱:${resultArr[1].gearboxname}` : '' }}</div>
-                                    <div class="name" v-else>暂无</div>
-                                </div>
-                                <div class="info-item" style="width: 100%;">
-                                    <div class="info-title">
-                                        <div class="title">辅件</div>
-                                    </div>
-                                    <div style="display: flex" v-if="fujianArr.length">
-                                        <el-tag size="small" closable v-for="item in fujianArr" :key="item.itemid" style="margin-right: 10px" @close="handleClose(item)">{{ item.itemname }}:{{ item.model }}</el-tag>    
-                                    </div>
-                                    <div class="name" v-else>暂无</div>
-                                </div>
-                            </div>
-                        </div>
                         <!--选光头-->
                         <div class="dialog-content" v-show="active == 1">
                             <div class="option-line">
@@ -118,7 +84,7 @@
                                 <div class="item">
                                     <div class="label">公称通径:</div>
                                     <el-select filterable v-model="guangtouParam.content.where.caliber" placeholder="请选择公称通径" size="small" style="width:100%" clearable @change="Search('guangtouParam','caliber')">
-                                        <el-option v-for="item in caliber" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
+                                        <el-option v-for="item in caliber" :key="item.value" :value="item.value" :label="item.value"></el-option>
                                     </el-select>
                                 </div>
                                 <div class="item">
@@ -206,14 +172,14 @@
                                 </div>
                             </div>
 
-                            <div class="option-line">
+                            <!-- <div class="option-line">
                                 <div class="item">
                                     <div class="label" style="width: 75px;">执行器类型:</div>
                                     <el-select filterable @change="Search('excelParam','actuatorname')" :disabled="!excelParam.content.where.actuatorbrand" v-model="excelParam.content.where.actuatorname" placeholder="请选择执行器类型" size="small" style="width:100%" clearable>
                                         <el-option v-for="item in actuatorname" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
                                     </el-select>
                                 </div>
-                            </div>
+                            </div> -->
                             <div class="option-line" v-show="guangtouParam.content.where.drivetype=='气动'">
                                 <div class="item">
                                     <div class="label">功能:</div>
@@ -227,9 +193,18 @@
                                     <MySelect :disabled="!excelParam.content.where.func"  @click="Search('excelParam','bodystructure')" :options="bodystructure" v-model="excelParam.content.where.bodystructure"></MySelect>
                                 </div>
                             </div>
-
+                            <div v-if="guangtouParam.content.where.drivetype == '电动' && excelParam.content.where.actuatorbrand && actuatorname.length">
+                                <div class="option-line">
+                                    <div class="item">
+                                        <div class="label" style="width: 80px;">执行器类型:</div>
+                                        <span style="font-size: 14px;font-weight: bold;color:#3874F6">{{ excelParam.content.where.actuatorname || '--' }}</span>
+                                    </div>
+                                </div>
+                                <SelectBar style="margin: 20px 0" v-model="excelParam.content.where.actuatorname" :options="actuatorname" @change="Search('excelParam','actuatorname')"></SelectBar>
+                            </div>
+                            <div class="tips" v-if="guangtouParam.content.where.drivetype=='电动'" style="color:#3874F6;margin-top: 10px;"><i class="el-icon-warning" style="margin-right: 5px;"></i>建议开关阀时间{{ caliber.filter(v=>v.value==guangtouParam.content.where.caliber).length ? caliber.filter(v=>v.value==guangtouParam.content.where.caliber)[0].remarks:'-' }}秒</div>
                             <!--执行器-->
-                            <MyTable :height="tableHeight" :noQuery="true" ref="excelRef" :layout="guangtouParam.content.where.drivetype=='电动'?tool.tabelCol($route.name)['excelTable1'].tablecols:tool.tabelCol($route.name)['excelTable2'].tablecols" :param="excelParam" :opwidth="200" :custom="true" style="margin-top: 14px">
+                            <MyTable fixedName="operation" :height="tableHeight" :noQuery="true" ref="excelRef" :layout="guangtouParam.content.where.drivetype=='电动'?tool.tabelCol($route.name)['excelTable1'].tablecols:tool.tabelCol($route.name)['excelTable2'].tablecols" :param="excelParam" :opwidth="200" :custom="true" style="margin-top: 14px">
                                 <template v-slot:customcol="scope">
                                     <div v-if="scope.column.columnname == 'matchratio'" style="color:red">{{scope.column.data[scope.column.columnname]}}</div>
                                     <span v-else-if="scope.column.columnname != 'operation'">{{scope.column.data[scope.column.columnname]}}</span>
@@ -348,8 +323,10 @@
   <script>
   import MySelect from '../select.vue'
   import MyTable from '../table.vue'
+  import SelectBar from '../selectBar.vue'
+  import Aside from '../aside.vue'
   export default {
-      components:{MySelect,MyTable},
+      components:{MySelect,MyTable,SelectBar,Aside},
       props:['data'],
       data () {
           return {
@@ -473,6 +450,13 @@
           }
       },
       watch: {
+        'excelParam.content.where.actuatorbrand': {
+            handler (val) {
+                setTimeout(() => {
+                    this.calcTableHieght('excelRef')
+                },500)
+            }
+        },
         active (val) {
             console.log(val);
             switch (val) {
@@ -492,6 +476,22 @@
         }
     },
       methods: {
+        resultRefresh (type) {
+            if (type == '光头') {
+                this.active=1
+                this.resultArr=[]
+                this.fujianArr=[]
+                this.items.splice(2,1)
+            } else if (type == '执行器') {
+                this.active=2
+                this.resultArr.splice(1)
+                this.fujianArr=[]
+            } else {
+                this.fujianArr=[]
+                this.fujianParam.content.othertypes = ['电磁阀','限位开关','过滤减压阀']
+                this.$refs.fujianRef.listData()
+            } 
+        },
           async showFun () {
               if (this.data) {
                 let res = await this.$api.requested({
@@ -501,6 +501,8 @@
                     },
                 })
                 this.resultArr = res.data
+                console.log(this.resultArr);
+                
                 this.form = Object.assign({},this.form,this.data)
               }
                 this.loading = false
@@ -508,6 +510,7 @@
           },
           calcTableHieght (id) {
                 this.$nextTick(() => {
+                    if (!this.$refs[id]) return 
                     let target = this.$refs[id].$el.getBoundingClientRect()
                     let clientHeight = document.body.clientHeight
                     this.tableHeight = clientHeight - target.top - 85 + 'px'
@@ -856,8 +859,23 @@
             color:#3874F6 !important;
             font-weight: bold;
         }
+        /deep/.el-drawer__body {
+        display: flex;
+    }
+    /deep/.fixed__btn__panel {
+        padding-left: 240px !important;
+    }
+    .scroll {
+        height: calc(100vh - 60px);
+        overflow-y: scroll;
+    }
+    ::-webkit-scrollbar {
+        display: none;
+    }
       .drawer__panel {
-          padding: 20px 40px !important;
+          padding: 10px 40px !important;
+          flex: 1;
+          overflow: hidden;
       }
       .my-steps {
           padding: 0px 68px;
@@ -865,71 +883,7 @@
       .drawer__panel {
           font-family: Source Han Sans SC, Source Han Sans SC;
       }
-      .product-info {
-          padding: 10px 20px;
-          border: 1px solid #3874F6;
-          background: rgba(56, 116, 246, 0.08);
-          margin-top: 5px;
-          border-radius: 2px;
-      }
-      .product-info .title {
-          margin-bottom: 16px;
-          font-weight: bold;
-          color: #333333;
-          font-size: 16px !important;
-      }
-      .product-info .info-content {
-          display: flex;
-          flex-wrap: wrap;
-      }
-      .product-info .info-content .info-item {
-          display: flex;
-          flex-direction: column;
-      } 
-      .product-info .info-content .info-item .info-title {
-          margin-bottom: 4px;
-          display: flex;
-          align-content: center;
-          align-items: center;
-      }
-      .product-info .info-content .info-item .info-title .title {
-          margin-bottom: 0px !important;
-      }
-      .product-info .info-content .info-item .info-title div {
-          margin-right: 20px;
-          font-size: 14px !important;
-      }
-      .product-info .info-content .info-item .info-title span {
-          font-size: 14px;
-          color: #3874F6 !important;
-          cursor: pointer;
-          display: inline-block;
-          display: flex;
-          align-items: center;
-          align-content: center;
-      }
-      .product-info .info-content .info-item .info-title span img {
-          width: 12px;
-          height: 12px;
-          margin-right: 4px;
-      }
-      .product-info .info-content .info-item .name {
-          font-weight: 400;
-          font-size: 14px;
-          color: #555555;
-      }
-      .product-info .info-content .info-item .names {
-          font-weight: 400;
-          font-size: 14px;
-          color: #555555;
-          display: flex;
-      }
-      .product-info .info-content .info-item .names div {
-          margin-right: 20px;
-      }
-      .product-info .info-content .info-item .names div span {
-          margin-right: 10px;
-      }
+      
       .product-content .block {
           margin-top: 20px;
           padding-left: 20px;
@@ -965,7 +919,7 @@
       .dialog-content .option-line .item .label {
           width: 70px;
           flex-shrink: 0;
-          text-align: right;
+          text-align-last: justify;
           margin-right: 15px;
           color: #000000 !important;
       }

+ 1 - 1
src/optionSystem/FProductManage/modules/edit.vue

@@ -71,7 +71,7 @@
         this.$nextTick(() => {
             setTimeout(() => {
                 this.$refs.target.showFun()
-            },300)
+            },500)
         })
       },
       onSubmit() {

+ 51 - 15
src/optionSystem/FProductManage/modules/select.vue

@@ -1,12 +1,25 @@
 <template>
-    <div class="custom-select">
-        <span class="title" v-if="title">{{title}}</span>
-        <div class="box">
-            <span :style="options.length == 1 ? 'border-radius:2px !important':''" v-for="(item,index) in options" :class="[options.length == 1 ? 'item2':'item',item.value == value || higit ? 'active' : '',disabled?'disabled':'']" @click="update(item.value)">{{ item.remarks }}</span>
-            <slot name="custom"></slot>
-            <div :class="['clear']" @click="update('')" v-if="isClear && !disabled && value && options.length">
-                <img src="@/assets/清空.svg" alt="" style="width:12px;height: 12px;margin-right: 4px;">
-                清空
+    <div>
+        <div class="custom-select" v-if="type=='normal'">
+            <span class="title" v-if="title">{{title}}</span>
+            <div class="box">
+                <span :style="options.length == 1 ? 'border-radius:2px !important':''" v-for="(item,index) in options" :class="[options.length == 1 ? 'item2':'item',item.value == value || higit ? 'active' : '',disabled?'disabled':'']" @click="update(item.value)">{{ item.remarks }}</span>
+                <slot name="custom"></slot>
+                <div :class="['clear']" @click="update('')" v-if="isClear && !disabled && value && options.length">
+                    <img src="@/assets/清空.svg" alt="" style="width:12px;height: 12px;margin-right: 4px;">
+                    清空
+                </div>
+            </div>
+        </div>
+        <div class="custom-select2" v-else>
+            <span class="title" v-if="title">{{title}}</span>
+            <div class="box">
+                <span :style="options.length == 1 ? 'border-radius:2px !important':''" v-for="(item,index) in options" :class="[options.length == 1 ? 'item2':'item',item.value == value || higit ? 'active' : '',disabled?'disabled':'']" @click="update(item.value)">{{ item.remarks }}</span>
+                <slot name="custom"></slot>
+                <div :class="['clear']" @click="update('')" v-if="isClear && !disabled && value && options.length">
+                    <img src="@/assets/清空.svg" alt="" style="width:12px;height: 12px;margin-right: 4px;">
+                    清空
+                </div>
             </div>
         </div>
     </div>
@@ -38,6 +51,10 @@ export default {
         higit:{
             type:Boolean,
             default:()=>false
+        },
+        type: {
+            type:String,
+            default:() => 'normal'
         }
     },
     watch: {
@@ -74,22 +91,22 @@ export default {
     align-items: center;
     font-family: Source Han Sans SC, Source Han Sans SC;
 }
-.custom-select .title {
+.title {
     font-weight: 400;
     font-size: 14px;
     color: #333333;
     margin-right: 15px;
 }
-.custom-select .active {
+.active {
     background: #3874f6;
     border: 1px solid #3874f6 !important;
     color: #ffffff !important;
 }
-.custom-select .box {
+.box {
     display: flex;
     align-items: center;
 }
-.custom-select .item,.item2 {
+.item,.item2 {
     font-size: 14px;
     color: #000000;
     cursor: pointer;
@@ -98,17 +115,17 @@ export default {
     border: 1px solid rgba(217, 217, 217, 1);
     user-select: none;
 }
-.custom-select .item:first-child {
+.item:first-child {
     border-top-left-radius: 2px;
     border-bottom-left-radius: 2px;
 }
-.custom-select .item:last-child {
+.item:last-child {
     border-top-right-radius: 2px;
     border-bottom-right-radius: 2px;
     border-left: none;
     margin-right: 30px;
 }
-.custom-select .clear {
+.clear {
     color: #3874f6 !important;
     cursor: pointer;
     margin-left: 20px;
@@ -121,4 +138,23 @@ export default {
     cursor: not-allowed;
     color: #cccccc !important;
 }
+
+
+
+.custom-select2 {
+    display: flex;
+    align-items: center;
+    background: rgba(245, 246, 250, 1);
+    border-radius: 50px 50px 50px 50px !important;
+    font-family: Source Han Sans SC, Source Han Sans SC;
+}
+
+.custom-select2 .item,.item2 {
+    border: none !important;
+    border-radius: 50px 50px 50px 50px !important; 
+}
+.custom-select2 .item:last-child {
+    margin-right: 0 !important;
+}
+
 </style>

+ 174 - 0
src/optionSystem/FProductManage/modules/selectBar.vue

@@ -0,0 +1,174 @@
+<template>
+    <div class="select-box">
+        <div class="arrow" @click="arrowChange('left')">
+            <div class="arrow-left"></div>
+        </div>
+        <div class="select-warpper" ref="wrapperEl">
+            <div class="select-scroll" :style="{'--distance':distance+'px'}" ref="scrollEl">
+                <div :class="['select-item',item.remarks == value ? 'active':'']" v-for="item in options" :key="item.remarks" @click="onClick(item.remarks)">
+                    <div class="top">
+                        <img :src="item.url"></img>
+                    </div>
+                    <div :class="['item-name',item.remarks == value ? 'active':'']">{{ item.remarks }}</div>
+                </div>
+            </div>
+        </div>
+        <div class="arrow" @click="arrowChange('right')">
+            <div class="arrow-right"></div>
+        </div>
+    </div>
+    
+</template>
+
+<script>
+export default {
+    data () {
+        return {
+            distance:0
+        }
+    },
+    props:{
+        value: {
+            default:() => ''
+        },
+        options: {
+            type:Array,
+            default:() => []
+        },
+        disabled: {
+            type:Boolean,
+            default:() => false
+        }
+    },
+    methods: {
+        onClick (value) {
+            if (this.disabled) return 
+            if (this.value == value) {
+                this.$emit('input','')
+                this.$emit('change','')
+            } else {
+                this.$emit('input',value)
+                this.$emit('change',value)
+            }
+        },
+        arrowChange(direction) {
+            let wrapperWidth = this.$refs.wrapperEl.getBoundingClientRect().width
+            let scrollWidth = this.$refs.scrollEl.scrollWidth
+            
+            if (direction == 'left' && Math.abs(this.distance) < scrollWidth - wrapperWidth) {
+                this.distance = this.distance - 140
+                if (Math.abs(this.distance) > scrollWidth - wrapperWidth) this.distance = -(scrollWidth - wrapperWidth)
+                
+            } else if (direction == 'right' && this.distance < 0) {
+                this.distance = this.distance + 140
+                if (this.distance > 0) this.distance = 0
+            }
+            console.log(this.distance);
+            
+        }
+    }
+}
+</script>
+
+<style scoped>
+    .select-box {
+        width: 100%;
+        display: flex;
+        align-content: center;
+        align-items: center;
+        user-select: none;
+    }
+    .select-box .arrow {
+        width: 40px;
+        height: 80px;
+        background: rgba(56, 116, 246, 0.15);
+        border-radius: 4px 4px 4px 4px;
+        cursor: pointer;
+    }
+    .select-box .arrow:hover {
+        background: rgba(9, 69, 200, 0.15);
+    }
+    .select-box .arrow-left{
+        position: relative;
+    }
+    .select-box .arrow-left::after {
+        content: "";
+        height: 20px;
+        width: 20px;
+        top: 30px;
+        left: 15px;
+        border-width: 5px 5px 0 0;
+        border-color: rgba(56, 116, 246, 1);
+        border-style: solid;
+        transform: matrix(-0.71, -0.71, 0.71, -0.71, 0, 0);
+        position: absolute;
+    }
+    .select-box .arrow-right{
+        position: relative;
+    }
+    .select-box .arrow-right::after {
+        content: "";
+        height: 20px;
+        width: 20px;
+        top: 30px;
+        left: 5px;
+        border-width: 5px 5px 0 0;
+        border-color: rgba(56, 116, 246, 1);
+        border-style: solid;
+        transform: matrix(0.71, 0.71, -0.71, 0.71, 0, 0);
+        position: absolute;
+    }
+    .select-box .arrow:first-child {
+        margin-right: 20px;
+    }
+    .select-box .arrow:last-child {
+        margin-left: 20px;
+    }
+    .select-box .select-warpper {
+        max-width: calc(100% - 120px);
+        flex-shrink: 0;
+        overflow-x: hidden;
+    }
+   .select-box .select-scroll {
+        display: flex;
+        align-items: center;
+        align-content: center;
+        transform: translateX(var(--distance));
+        transition: all 0.1s ease-in-out;
+   } 
+   .select-box .select-scroll .select-item {
+        margin-right: 20px;
+        display: flex;
+        flex-direction: column;
+        width: 150px;
+        border: 2px solid rgba(250, 250, 250, 1);
+        border-radius: 4px 4px 4px 4px;
+        cursor: pointer;
+        transition: all 0.1s ease-in-out;
+   } 
+   .select-box .select-scroll .select-item.active {
+        border: 2px solid rgba(56, 116, 246, 1);
+   }
+   .select-box .select-scroll .select-item:last-child {
+        margin-right: 0;
+   }
+   .select-box .select-scroll .select-item .top {
+        width: 100%;
+        padding: 10px 15px;
+   }
+   .select-box .select-scroll .select-item .top img {
+        width: 116px;
+        height: 100px;
+        object-fit: cover;
+   } 
+   .select-box .select-scroll .select-item .item-name.active {
+        background: rgba(56, 116, 246, 1);
+        color: #ffffff;
+   }
+   .select-box .select-scroll .select-item .item-name {
+        background: rgba(250, 250, 250, 1);
+        transition: all 0.1s ease-in-out;
+        text-align: center;
+        padding: 10px;
+   } 
+</style>

+ 2 - 2
src/optionSystem/FProductManage/modules/table.vue

@@ -1,12 +1,12 @@
 <template>
     <div>
       <!-- :header-cell-style="{background:'#EEEEEE',color:'#333'}" -->
-      <el-table ref="table" :row-class-name="tableClassName" highlight-current-row :data="data != undefined ? data : list"  size="mini" :height="height ? height : list.length <= 4?'260px':list.length <= 20?'calc(100vh - 420px)':'calc(100vh - 420px)'"  @row-click="rowClick" style="width:100%;min-height:260px" :header-cell-style="{background:'#fafafafa',height:'40px',color:'#000000'}" @selection-change="selectionChange">
+      <el-table v-loading="loading" ref="table" :row-class-name="tableClassName" highlight-current-row :data="data != undefined ? data : list"  size="mini" :height="height ? height : list.length <= 4?'260px':list.length <= 20?'calc(100vh - 420px)':'calc(100vh - 420px)'"  @row-click="rowClick" style="width:100%;min-height:260px" :header-cell-style="{background:'#fafafafa',height:'40px',color:'#000000'}" @selection-change="selectionChange">
         <el-table-column
             type="selection"
             width="35" fixed v-if="checkbox">
         </el-table-column>
-        <el-table-column v-for="col in layout" :key="col.tablecolid" :prop="col.columnname" :label="col.title" :width="width && col.width === 0 ? 150 : col.width" :fixed="fixedName ? fixedName.indexOf(col.columnname)!= -1?redirect ? redirect : 'right' :false : false">
+        <el-table-column v-for="col in layout" :key="col.tablecolid" :prop="col.columnname" :label="col.title" :width="width && col.width === 0 ? 150 : col.width" :fixed="fixedName ? fixedName == col.columnname != -1?redirect ? redirect : 'right' :false : false">
           <template v-slot:header="{ column,$index }" v-if="customHeader">
             <slot name="header" :data="column"></slot>
           </template>

+ 341 - 244
src/optionSystem/optionOrder/detail/modules/components/DieFa.vue

@@ -1,207 +1,258 @@
 <template>
-  <div class="drawer__panel">
-    <div class="my-steps">
-        <a-steps :current="active-1" style="margin-bottom: 10px;" @change="stepsChange">
-            <a-step :title="item.title" v-for="(item,index) in items" :key="index">
-                <i slot="icon" class="iconfont" style="font-size: 32px;color: #3874F6 !important" v-if="active > index+1">&#xe6fd;</i>
-            </a-step>
-        </a-steps>
-    </div>
-    <div class="product-info">
-        <div class="info-content">
-            <div class="info-item" style="width: 50%;margin-bottom: 5px">
-                <div class="info-title">
-                    <div class="title">光头</div>
-                    <span v-show="!!resultArr[0]" @click="active=1;resultArr=[];fujianArr=[];items.splice(2,1);isEdit=true">
-                        <img src="@/assets/重选.svg" alt="">
-                        重选
-                    </span>
-                </div>
-                <div class="name" v-if="resultArr[0]">{{ resultArr[0].itemname}}</div>
-                <div class="name" v-else>暂无</div>
-            </div>
-            <div class="info-item" style="width: 50%;">
-                <div class="info-title">
-                    <div class="title">执行器</div>
-                    <span v-show="!!resultArr[1]" @click="active=2;resultArr.splice(1);fujianArr=[];isEdit=true">
-                        <img src="@/assets/重选.svg" alt="">
-                        重选
-                    </span>
+  <div style="display: flex">
+    <div class="select-info">
+        <div class="info-title">配置概要</div>
+        <div class="scroll">
+            <div class="product-wrapper">
+                <div class="product">
+                    <div class="product-header">
+                        <div class="title">光头</div>
+                        <span @click="active=1;resultArr=[];fujianArr=[];items.splice(2,1);isEdit=true" v-if="!!resultArr[0]">
+                            <img src="@/assets/重选.svg" alt="">
+                            重选
+                        </span>
+                    </div>
+                    <div class="product-name">{{ resultArr[0] ? resultArr[0].itemname : '暂无' }}</div>
+                    <div class="attrite" v-if="resultArr[0] && resultArr[0].torque">
+                        <div class="attrite-title">扭矩:</div>
+                        <div class="attrite-value">{{ resultArr[0].torque }}</div>
+                    </div>
+                    <div class="attrite" v-if="resultArr[0] && resultArr[0].flh">
+                        <div class="attrite-title">法兰号:</div>
+                        <div class="attrite-value">{{ resultArr[0].flh }}</div>
+                    </div>
+                    <div class="attrite" v-if="resultArr[0] && resultArr[0].caliber">
+                        <div class="attrite-title">公称通径:</div>
+                        <div class="attrite-value">{{ resultArr[0].caliber }}</div>
+                    </div>
+                    <div class="attrite" v-if="resultArr[0] && resultArr[0].stemmaterial">
+                        <div class="attrite-title">阀杆材质:</div>
+                        <div class="attrite-value">{{ resultArr[0].stemmaterial }}</div>
+                    </div>
+                    <div class="attrite" v-if="resultArr[0] && resultArr[0].bodymaterial">
+                        <div class="attrite-title">阀体材质:</div>
+                        <div class="attrite-value">{{ resultArr[0].bodymaterial }}</div>
+                    </div>
                 </div>
-                <div class="name" v-if="resultArr[1]">{{ resultArr[1].itemname}} {{ guangtouParam.content.where.drivetype == '电动' ? ` + 减速箱:${resultArr[1].gearboxname||'暂无'}` : '' }}</div>
-                <div class="name" v-else>暂无</div>
-            </div>
-            <div class="info-item" style="width: 100%;">
-                <div class="info-title">
-                    <div class="title">辅件</div>
+
+                <div class="product">
+                    <div class="product-header">
+                        <div class="title">执行器</div>
+                        <span @click="active=2;resultArr.splice(1);fujianArr=[];isEdit=true" v-if="!!resultArr[1]">
+                            <img src="@/assets/重选.svg" alt="">
+                            重选
+                        </span>
+                    </div>
+                    <div class="product-name">{{ resultArr[1] ? resultArr[1].actuatorname : '暂无' }}</div>
+                    <div class="attrite" v-if="guangtouParam.content.where.drivetype=='电动'">
+                        {{ resultArr[1] ? `${resultArr[1].itemname}+${resultArr[1].gearboxname}`:'暂无' }}
+                    </div>
+                    <div class="attrite" v-else>
+                        {{ resultArr[1] ? `${resultArr[1].itemname}`:'暂无' }}
+                    </div>
+                    <div class="attrite" v-if="resultArr[1] && resultArr[1].torque">
+                        <div class="attrite-title">输出扭矩:</div>
+                        <div class="attrite-value">{{resultArr[1].torque }}</div>
+                    </div>
+                    <div class="attrite" v-if="resultArr[1] && resultArr[1].maxruntime">
+                        <div class="attrite-title">开关时间:</div>
+                        <div class="attrite-value">{{resultArr[1].maxruntime }}</div>
+                    </div>
+                    <div class="attrite" v-if="resultArr[1] && resultArr[1].speed">
+                        <div class="attrite-title">转速:</div>
+                        <div class="attrite-value">{{resultArr[1].speed }}</div>
+                    </div>
+                    <div class="attrite" v-if="resultArr[1] && resultArr[1].ratio">
+                        <div class="attrite-title">减速比:</div>
+                        <div class="attrite-value">{{resultArr[1].ratio }}</div>
+                    </div>
+                    <div class="attrite" v-if="resultArr[1] && resultArr[1].supplyvoltage">
+                        <div class="attrite-title">电压:</div>
+                        <div class="attrite-value">{{resultArr[1].supplyvoltage }}</div>
+                    </div>
+                    <div class="attrite" v-if="resultArr[1] && resultArr[1].ratedcurrent">
+                        <div class="attrite-title">电流:</div>
+                        <div class="attrite-value">{{resultArr[1].ratedcurrent }}</div>
+                    </div>
+                    <div class="attrite" v-if="resultArr[1] && resultArr[1].ratedpower">
+                        <div class="attrite-title">功率:</div>
+                        <div class="attrite-value">{{resultArr[1].ratedpower }}</div>
+                    </div>
                 </div>
-                <div style="display: flex" v-if="fujianArr.length">
-                    <el-tag size="small" closable v-for="item in fujianArr" :key="item.itemid" style="margin-right: 10px" @close="handleClose(item);isEdit=true">{{ item.itemname }}:{{ item.model }}</el-tag>    
+
+                <div class="product">
+                    <div class="product-header">
+                        <div class="title">辅件</div>
+                        <span @click="fujianArr=[];fujianParam.content.othertypes = ['电磁阀','限位开关','过滤减压阀'];$refs.fujianRef.listData();isEdit=true" v-if="resultArr.length >= 3">
+                            <img src="@/assets/重选.svg" alt="">
+                            重选
+                        </span>
+                    </div>
+                    <div class="attrite2" v-for="item in fujianArr" :key="item.othertype">
+                        <div class="attrite-title">{{ item.othertype }}:</div>
+                        <div class="attrite-value">{{ item.model }}</div>
+                    </div>
                 </div>
-                <div class="name" v-else>暂无</div>
             </div>
         </div>
     </div>
-    <!--选光头-->
-    <div class="dialog-content" v-show="active == 1">
-        <!-- <div class="option-line">
-            <div class="item">
-                <div class="label">搜索:</div>
-                <el-input
-                    placeholder="名称/料号"
-                    v-model="guangtouParam.content.where.condition"
-                    clearable
-                    @clear="Search('guangtouParam')"
-                    size="small"
-                    @keyup.enter.native="Search('guangtouParam')">
-                </el-input>
-            </div>
-        </div> -->
-        <div class="option-line">
-            <div class="item">
-                <div class="label">驱动方式:</div>
-                <MySelect :isClear="false" @click="guangtouChange" :options="drivetype" v-model="guangtouParam.content.where.drivetype"></MySelect>
-            </div>
+    <div class="drawer__panel">
+        <div class="my-steps">
+            <a-steps :current="active-1" style="margin-bottom: 10px;" @change="stepsChange">
+                <a-step :title="item.title" v-for="(item,index) in items" :key="index">
+                    <i slot="icon" class="iconfont" style="font-size: 32px;color: #3874F6 !important" v-if="active > index+1">&#xe6fd;</i>
+                </a-step>
+            </a-steps>
         </div>
-        <div class="option-line">
-            <div class="item">
-                <div class="label">公称通径:</div>
-                <el-select filterable v-model="guangtouParam.content.where.caliber" placeholder="请选择公称通径" size="small" style="width:100%" clearable @change="Search('guangtouParam','caliber')">
-                    <el-option v-for="item in caliber" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
-                </el-select>
-            </div>
-            <div class="item">
-                <div class="label">公称压力:</div>
-                <el-select filterable @change="Search('guangtouParam','nominalpressure')" :disabled="!guangtouParam.content.where.caliber" v-model="guangtouParam.content.where.nominalpressure" placeholder="请选择公称压力" size="small" style="width:100%" clearable>
-                    <el-option v-for="item in nominalpressure" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
-                </el-select>
+        <!--选光头-->
+        <div class="dialog-content" v-show="active == 1">
+            <div class="option-line">
+                <div class="item">
+                    <div class="label">驱动方式:</div>
+                    <MySelect :isClear="false" @click="guangtouChange" :options="drivetype" v-model="guangtouParam.content.where.drivetype"></MySelect>
+                </div>
             </div>
+            <div class="option-line">
+                <div class="item">
+                    <div class="label">公称通径:</div>
+                    <el-select filterable v-model="guangtouParam.content.where.caliber" placeholder="请选择公称通径" size="small" style="width:100%" clearable @change="Search('guangtouParam','caliber')">
+                        <el-option v-for="item in caliber" :key="item.value" :value="item.value" :label="item.value"></el-option>
+                    </el-select>
+                </div>
+                <div class="item">
+                    <div class="label">公称压力:</div>
+                    <el-select filterable @change="Search('guangtouParam','nominalpressure')" :disabled="!guangtouParam.content.where.caliber" v-model="guangtouParam.content.where.nominalpressure" placeholder="请选择公称压力" size="small" style="width:100%" clearable>
+                        <el-option v-for="item in nominalpressure" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
+                    </el-select>
+                </div>
 
-            <div class="item">
-                <div class="label">连接方式:</div>
-                <MySelect @click="Search('guangtouParam','connection')" :disabled="!guangtouParam.content.where.nominalpressure" :options="connection" v-model="guangtouParam.content.where.connection"></MySelect>
+                <div class="item">
+                    <div class="label">连接方式:</div>
+                    <MySelect @click="Search('guangtouParam','connection')" :disabled="!guangtouParam.content.where.nominalpressure" :options="connection" v-model="guangtouParam.content.where.connection"></MySelect>
+                </div>
             </div>
-        </div>
 
-        <div class="option-line">
-            <div class="item">
-                <div class="label">阀体材质:</div>
-                <el-select filterable @change="Search('guangtouParam','bodymaterial')" :disabled="!guangtouParam.content.where.connection" v-model="guangtouParam.content.where.bodymaterial" placeholder="请选择阀体材质" size="small" style="width:100%" clearable>
-                    <el-option v-for="item in bodymaterial" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
-                </el-select>
-            </div>
-            <div class="item">
-                <div class="label">阀杆材质:</div>
-                <el-select filterable @change="Search('guangtouParam','stemmaterial')" :disabled="!guangtouParam.content.where.bodymaterial" v-model="guangtouParam.content.where.stemmaterial" placeholder="请选择阀杆材质" size="small" style="width:100%" clearable>
-                    <el-option v-for="item in stemmaterial" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
-                </el-select>
-            </div>
-            <div class="item">
-                <div class="label">阀座材质:</div>
-                <el-select filterable @change="Search('guangtouParam','plinthmaterial')" :disabled="!guangtouParam.content.where.stemmaterial" v-model="guangtouParam.content.where.plinthmaterial" placeholder="请选择阀座材质" size="small" style="width:100%" clearable>
-                    <el-option v-for="item in plinthmaterial" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
-                </el-select>
+            <div class="option-line">
+                <div class="item">
+                    <div class="label">阀体材质:</div>
+                    <el-select filterable @change="Search('guangtouParam','bodymaterial')" :disabled="!guangtouParam.content.where.connection" v-model="guangtouParam.content.where.bodymaterial" placeholder="请选择阀体材质" size="small" style="width:100%" clearable>
+                        <el-option v-for="item in bodymaterial" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
+                    </el-select>
+                </div>
+                <div class="item">
+                    <div class="label">阀杆材质:</div>
+                    <el-select filterable @change="Search('guangtouParam','stemmaterial')" :disabled="!guangtouParam.content.where.bodymaterial" v-model="guangtouParam.content.where.stemmaterial" placeholder="请选择阀杆材质" size="small" style="width:100%" clearable>
+                        <el-option v-for="item in stemmaterial" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
+                    </el-select>
+                </div>
+                <div class="item">
+                    <div class="label">阀座材质:</div>
+                    <el-select filterable @change="Search('guangtouParam','plinthmaterial')" :disabled="!guangtouParam.content.where.stemmaterial" v-model="guangtouParam.content.where.plinthmaterial" placeholder="请选择阀座材质" size="small" style="width:100%" clearable>
+                        <el-option v-for="item in plinthmaterial" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
+                    </el-select>
+                </div>
             </div>
+            <!--光头-->
+            <MyTable :noQuery="true" :height="tableHeight" ref="guangtouRef" :layout="tool.tabelCol($route.name)['guangtouTable'].tablecols" :param="guangtouParam" :opwidth="200" :custom="true" style="margin-top: 14px">
+                <template v-slot:customcol="scope">
+                    <span v-if="scope.column.columnname != 'operation'">{{scope.column.data[scope.column.columnname]}}</span>
+                </template>
+                <template v-slot:opreation="scope">
+                    <el-button type="text" size="mini" @click="selectTarget(scope.data,'主阀')" :disabled="!guangtouParam.content.where.drivetype">选择</el-button>
+                </template>
+            </MyTable>
         </div>
-        <!--光头-->
-        <MyTable :height="tableHeight" ref="guangtouRef" :layout="tool.tabelCol($route.name)['guangtouTable'].tablecols" :param="guangtouParam" :opwidth="200" :custom="true" style="margin-top: 14px">
-            <template v-slot:customcol="scope">
-                <span v-if="scope.column.columnname != 'operation'">{{scope.column.data[scope.column.columnname]}}</span>
-            </template>
-            <template v-slot:opreation="scope">
-                <el-button type="text" size="mini" @click="selectTarget(scope.data,'主阀')" :disabled="!guangtouParam.content.where.drivetype">选择</el-button>
-            </template>
-        </MyTable>
-    </div>
-    <!--选执行器-->
-    <div class="dialog-content" v-show="active == 2">
-        <div class="option-line">
-            <div class="item">
-                <div class="label">执行器:</div>
-                <el-input
-                    placeholder="型号/料号"
-                    v-model="excelParam.content.where.condition1"
-                    clearable
-                    @clear="Search('excelParam')"
-                    size="small"
-                    @keyup.enter.native="Search('excelParam')">
-                </el-input>
-            </div>
+        <!--选执行器-->
+        <div class="dialog-content" v-show="active == 2">
+            <div class="option-line">
+                <div class="item">
+                    <div class="label">执行器:</div>
+                    <el-input
+                        placeholder="型号/料号"
+                        v-model="excelParam.content.where.condition1"
+                        clearable
+                        @clear="Search('excelParam')"
+                        size="small"
+                        @keyup.enter.native="Search('excelParam')">
+                    </el-input>
+                </div>
 
-            <div class="item" v-if="guangtouParam.content.where.drivetype!='气动'">
-                <div class="label">减速箱:</div>
-                <el-input
-                    placeholder="型号/料号"
-                    v-model="excelParam.content.where.condition2"
-                    clearable
-                    @clear="Search('excelParam')"
-                    size="small"
-                    @keyup.enter.native="Search('excelParam')">
-                </el-input>
+                <div class="item" v-if="guangtouParam.content.where.drivetype!='气动'">
+                    <div class="label">减速箱:</div>
+                    <el-input
+                        placeholder="型号/料号"
+                        v-model="excelParam.content.where.condition2"
+                        clearable
+                        @clear="Search('excelParam')"
+                        size="small"
+                        @keyup.enter.native="Search('excelParam')">
+                    </el-input>
+                </div>
             </div>
-        </div>
 
-        <div class="option-line" v-if="guangtouParam.content.where.drivetype=='气动'">
-            <div class="item">
-                <div class="label">驱动方式:</div>
-                <MySelect :isClear="false" :options="[{remarks:'气动调节',value:'气动调节'},{remarks:'气动开关',value:'气动开关'}]" v-model="excelParam.content.where.drivetype"></MySelect>
+            <div class="option-line" v-if="guangtouParam.content.where.drivetype=='气动'">
+                <div class="item">
+                    <div class="label">驱动方式:</div>
+                    <MySelect :isClear="false" :options="[{remarks:'气动调节',value:'气动调节'},{remarks:'气动开关',value:'气动开关'}]" v-model="excelParam.content.where.drivetype"></MySelect>
+                </div>
             </div>
-        </div>
 
-        <div class="option-line">
-            <div class="item">
-                <div class="label">品牌:</div>
-                <MySelect @click="Search('excelParam','actuatorbrand')" :options="actuatorbrand" v-model="excelParam.content.where.actuatorbrand"></MySelect>
+            <div class="option-line">
+                <div class="item">
+                    <div class="label">品牌:</div>
+                    <MySelect @click="Search('excelParam','actuatorbrand')" :options="actuatorbrand" v-model="excelParam.content.where.actuatorbrand"></MySelect>
+                </div>
+            </div>
+            <div class="option-line" v-show="guangtouParam.content.where.drivetype=='气动'">
+                <div class="item">
+                    <div class="label">功能:</div>
+                    <MySelect :disabled="!excelParam.content.where.actuatorname" @click="Search('excelParam','func')" :options="func" v-model="excelParam.content.where.func"></MySelect>
+                </div>
             </div>
-        </div>
 
-        <div class="option-line">
-            <div class="item">
-                <div class="label" style="width: 75px;">执行器类型:</div>
-                <el-select filterable @change="Search('excelParam','actuatorname')" :disabled="!excelParam.content.where.actuatorbrand" v-model="excelParam.content.where.actuatorname" placeholder="请选择执行器类型" size="small" style="width:100%" clearable>
-                    <el-option v-for="item in actuatorname" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
-                </el-select>
+            <div class="option-line" v-show="guangtouParam.content.where.drivetype=='气动'">
+                <div class="item">
+                    <div class="label">结构:</div>
+                    <MySelect :disabled="!excelParam.content.where.func"  @click="Search('excelParam','bodystructure')" :options="bodystructure" v-model="excelParam.content.where.bodystructure"></MySelect>
+                </div>
             </div>
-        </div>
-        <div class="option-line" v-show="guangtouParam.content.where.drivetype=='气动'">
-            <div class="item">
-                <div class="label">功能:</div>
-                <MySelect :disabled="!excelParam.content.where.actuatorname" @click="Search('excelParam','func')" :options="func" v-model="excelParam.content.where.func"></MySelect>
+            <div v-if="guangtouParam.content.where.drivetype == '电动' && excelParam.content.where.actuatorbrand && actuatorname.length">
+                <div class="option-line">
+                    <div class="item">
+                        <div class="label" style="width: 80px;">执行器类型:</div>
+                        <span style="font-size: 14px;font-weight: bold;color:#3874F6">{{ excelParam.content.where.actuatorname || '--' }}</span>
+                    </div>
+                </div>
+                <SelectBar style="margin: 20px 0" v-model="excelParam.content.where.actuatorname" :options="actuatorname" @change="Search('excelParam','actuatorname')"></SelectBar>
             </div>
-        </div>
+            <div class="tips" v-if="guangtouParam.content.where.drivetype=='电动'" style="color:#3874F6;margin-top: 10px;"><i class="el-icon-warning" style="margin-right: 5px;"></i>建议开关阀时间{{ caliber.filter(v=>v.value==guangtouParam.content.where.caliber).length ? caliber.filter(v=>v.value==guangtouParam.content.where.caliber)[0].remarks:'-' }}秒</div>
 
-        <div class="option-line" v-show="guangtouParam.content.where.drivetype=='气动'">
-            <div class="item">
-                <div class="label">结构:</div>
-                <MySelect :disabled="!excelParam.content.where.func"  @click="Search('excelParam','bodystructure')" :options="bodystructure" v-model="excelParam.content.where.bodystructure"></MySelect>
-            </div>
+            <!--执行器-->
+            <MyTable :height="tableHeight" :noQuery="true" ref="excelRef" :layout="guangtouParam.content.where.drivetype=='电动'?tool.tabelCol($route.name)['excelTable1'].tablecols:tool.tabelCol($route.name)['excelTable2'].tablecols" :param="excelParam" :opwidth="200" :custom="true" style="margin-top: 14px">
+                <template v-slot:customcol="scope">
+                    <p v-if="scope.column.columnname == 'matchratio'" style="color:red">{{scope.column.data[scope.column.columnname]}}</p>
+                    <span v-else-if="scope.column.columnname != 'operation'">{{scope.column.data[scope.column.columnname]}}</span>
+                </template>
+                <template v-slot:opreation="scope">
+                    <el-button type="text" size="mini" @click="selectTarget(scope.data,'执行器')" :disabled="(loading) || (guangtouParam.content.where.drivetype=='电动' && resultArr.length == 2)">选择</el-button>
+                </template>
+            </MyTable>
         </div>
-
-        <!--执行器-->
-        <MyTable :height="tableHeight" :noQuery="true" ref="excelRef" :layout="guangtouParam.content.where.drivetype=='电动'?tool.tabelCol($route.name)['excelTable1'].tablecols:tool.tabelCol($route.name)['excelTable2'].tablecols" :param="excelParam" :opwidth="200" :custom="true" style="margin-top: 14px">
+        <!--选辅件-->
+        <div class="dialog-content" v-show="active == 3">
+            <MyTable :noQuery="true" ref="fujianRef" :height="tableHeight" :layout="tool.tabelCol($route.name)['itemList'].tablecols" :param="fujianParam" :opwidth="200" :custom="true" style="margin-top: 14px">
             <template v-slot:customcol="scope">
-                <p v-if="scope.column.columnname == 'matchratio'" style="color:red">{{scope.column.data[scope.column.columnname]}}</p>
-                <span v-else-if="scope.column.columnname != 'operation'">{{scope.column.data[scope.column.columnname]}}</span>
+                <span v-if="scope.column.columnname != 'operation'">{{scope.column.data[scope.column.columnname]}}</span>
             </template>
             <template v-slot:opreation="scope">
-                <el-button type="text" size="mini" @click="selectTarget(scope.data,'执行器')" :disabled="(loading) || (guangtouParam.content.where.drivetype=='电动' && resultArr.length == 2)">选择</el-button>
+                <el-button type="text" size="mini" @click="selectTarget(scope.data,'辅件')" :disabled="loading">选择</el-button>
             </template>
-        </MyTable>
-    </div>
-    <!--选辅件-->
-    <div class="dialog-content" v-show="active == 3">
-        <MyTable :noQuery="true" ref="fujianRef" :height="tableHeight" :layout="tool.tabelCol($route.name)['itemList'].tablecols" :param="fujianParam" :opwidth="200" :custom="true" style="margin-top: 14px">
-        <template v-slot:customcol="scope">
-            <span v-if="scope.column.columnname != 'operation'">{{scope.column.data[scope.column.columnname]}}</span>
-        </template>
-        <template v-slot:opreation="scope">
-            <el-button type="text" size="mini" @click="selectTarget(scope.data,'辅件')" :disabled="loading">选择</el-button>
-        </template>
-        </MyTable>
-    </div>
-    <div class="fixed__btn__panel">
-        <el-button size="small" @click="close()" class="normal-btn-width">取 消</el-button>
-        <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width" v-if="active == 3" :disabled="$refs.fujianRef.list.length!= 0">确认</el-button>
+            </MyTable>
+        </div>
+        <div class="fixed__btn__panel">
+            <el-button size="small" @click="close()" class="normal-btn-width">取 消</el-button>
+            <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width" v-if="active == 3" :disabled="$refs.fujianRef.list.length!= 0">确认</el-button>
+        </div>
     </div>
   </div>
 </template>
@@ -209,8 +260,9 @@
 <script>
 import MySelect from '@/optionSystem/FProductManage/modules/select.vue'
 import MyTable from '@/optionSystem/FProductManage/modules/table.vue'
+import SelectBar from '@/optionSystem/FProductManage/modules/selectBar.vue'
 export default {
-    components:{MySelect,MyTable},
+    components:{MySelect,MyTable,SelectBar},
     props:['data'],
     inject:['valvetype','resultArrs'],
     data () {
@@ -329,6 +381,13 @@ export default {
         }
     },
     watch: {
+        'excelParam.content.where.actuatorbrand': {
+            handler (val) {
+                setTimeout(() => {
+                    this.calcTableHieght('excelRef')
+                },500)
+            }
+        },
         active (val) {
             switch (val) {
                 case 1:
@@ -381,6 +440,7 @@ export default {
                     if (!this.$refs.excelRef.list.length) return
                     this.actuatorbrand = this.$refs.excelRef.list[0].option.actuatorbrand
                     this.bodystructure = this.$refs.excelRef.list[0].option.bodystructure
+                    this.actuatorname = this.$refs.excelRef.list[0].option.actuatorname
                     this.func = this.$refs.excelRef.list[0].option.func
                 })
                 this.$refs.fujianRef.listData()
@@ -388,6 +448,7 @@ export default {
         },
         calcTableHieght (id) {
             this.$nextTick(() => {
+                if (!this.$refs[id]) return 
                 let target = this.$refs[id].$el.getBoundingClientRect()
                 let clientHeight = document.body.clientHeight
                 this.tableHeight = clientHeight - target.top - 85 + 'px'
@@ -728,80 +789,116 @@ export default {
         color:#3874F6 !important;
         font-weight: bold;
     }
+    /deep/.fixed__btn__panel {
+        padding-left: 240px !important;
+    }
+    .scroll {
+        height: calc(100vh - 60px);
+        overflow-y: scroll;
+    }
+    ::-webkit-scrollbar {
+        display: none;
+    }
+    .select-info {
+        background: #F5F6FA;
+        font-family: Microsoft YaHei, Microsoft YaHei;
+        width: 240px;
+        border-right: 1px #999999 solid;
+        z-index: 99999991;
+        flex-shrink: 0;
+        word-wrap: break-word;
+    }
+    .select-info .info-title {
+        font-weight: bold;
+        font-size: 20px;
+        color: #333333;
+        padding: 10px 20px;
+        border-bottom: 1px solid #D9D9D9;
+    }
+    .select-info .product-wrapper {
+        padding: 0 20px;
+    }
+
+    .select-info .product-wrapper .product {
+        padding-bottom:20px;
+        border-bottom: #D9D9D9 1px solid;
+    }
+    .select-info .product-wrapper .product:last-child {
+        border-bottom: none !important;
+    }
+    .select-info .product-wrapper .product .product-header {
+        display: flex;
+        align-items: center;
+        align-content: center;
+        padding: 10px 0;
+    }
+    .select-info .product-wrapper .product .product-header span:last-child {
+        color: #3874F6;
+        margin-left: 18px;
+        cursor: pointer;
+    }
+    .select-info .product-wrapper .product .product-header .title {
+        font-weight: bold;
+        font-size: 14px;
+        color: #333333;
+    }
+    .select-info .product-wrapper .product .product-header img {
+        width: 12px;
+        height: 12px;
+    }
+    .select-info .product-wrapper .product .product-name {
+        font-weight: 400;
+        font-size: 14px;
+        color: #555555;
+    }
+    .select-info .product-wrapper .product .attrite {
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        font-weight: 400;
+        font-size: 12px;
+        color: #999999;
+        padding-top: 10px;
+    }
+    .select-info .product-wrapper .product .attrite .attrite-title {
+        color: #555555;
+    }
+    .select-info .product-wrapper .product .attrite .attrite-value {
+    }
+
+    .select-info .product-wrapper .product .attrite2 {
+        display: flex;
+        flex-direction: column;
+        font-weight: 400;
+        font-size: 12px;
+        color: #999999;
+        padding-top: 10px;
+    }
+    .select-info .product-wrapper .product .attrite2 .attrite-title {
+        color: #555555;
+        margin-bottom: 5px;
+    }
+    .select-info .product-wrapper .product .attrite2 .attrite-value {
+    }
+
+    .select-info .product-wrapper .product {
+        display: flex;
+        flex-direction: column;
+    }
+
+
     .drawer__panel {
-          padding: 10px 40px !important;
-      }
+        font-family: Source Han Sans SC, Source Han Sans SC;
+        padding: 10px 40px !important;
+        flex: 1;
+        overflow: hidden;
+    }
       .my-steps {
           padding: 0px 68px;
       }
       .drawer__panel {
           font-family: Source Han Sans SC, Source Han Sans SC;
       }
-      .product-info {
-          padding: 10px 20px;
-          border: 1px solid #3874F6;
-          background: rgba(56, 116, 246, 0.08);
-          margin-top: 5px;
-          border-radius: 2px;
-      }
-      .product-info .title {
-          margin-bottom: 16px;
-          font-weight: bold;
-          color: #333333;
-          font-size: 16px !important;
-      }
-      .product-info .info-content {
-          display: flex;
-          flex-wrap: wrap;
-      }
-      .product-info .info-content .info-item {
-          display: flex;
-          flex-direction: column;
-      } 
-      .product-info .info-content .info-item .info-title {
-          margin-bottom: 4x;
-          display: flex;
-          align-content: center;
-          align-items: center;
-      }
-      .product-info .info-content .info-item .info-title .title {
-          margin-bottom: 0px !important;
-      }
-      .product-info .info-content .info-item .info-title div {
-          margin-right: 20px;
-          font-size: 14px !important;
-      }
-      .product-info .info-content .info-item .info-title span {
-          font-size: 14px;
-          color: #3874F6 !important;
-          cursor: pointer;
-          display: inline-block;
-          display: flex;
-          align-items: center;
-          align-content: center;
-      }
-      .product-info .info-content .info-item .info-title span img {
-          width: 12px;
-          height: 12px;
-          margin-right: 4px;
-      }
-      .product-info .info-content .info-item .name {
-          font-weight: 400;
-          font-size: 14px;
-          color: #555555;
-      }
-      .product-info .info-content .info-item .names {
-          font-weight: 400;
-          font-size: 14px;
-          color: #555555;
-          display: flex;
-      }
-      .product-info .info-content .info-item .names div {
-          margin-right: 20px;
-      }
-      .product-info .info-content .info-item .names div span {
-          margin-right: 10px;
-      }
     .product-content .block {
         margin-top: 30px;
         padding-left: 20px;
@@ -838,7 +935,7 @@ export default {
     .dialog-content .option-line .item .label {
         width: 70px;
         flex-shrink: 0;
-        text-align: right;
+        text-align-last: justify;
         margin-right: 15px;
         color: #000000 !important;
     }

+ 1 - 1
src/optionSystem/optionOrder/detail/modules/edit.vue

@@ -1,7 +1,7 @@
 <template>
     <div>
         <el-button type="primary" size="mini" @click="onShow" :disabled="data.createuserid != userid || data.status == '无需评审'"> 编辑 </el-button>
-        <el-drawer custom-class="custom-select-option_class" :visible.sync="drawer" size="1200px" append-to-body :show-close="false">
+        <el-drawer custom-class="custom-select-option_class" :visible.sync="drawer" size="1300px" append-to-body :show-close="false" :wrapperClosable="false" :close-on-press-escape="false">
             <component ref="target" @close="drawer=false" :is="formComponent" :data="data" @onEditSuccess="onEditSuccess"></component>
         </el-drawer>
     </div>

+ 1 - 1
src/optionSystem/selectOption/add.vue

@@ -1,7 +1,7 @@
 <template>
     <div style="display: inline;">
         <el-button type="primary" size="small" @click="drawer=true"> 阀门选型 </el-button>
-        <el-drawer custom-class="custom-select-option_class" :visible.sync="drawer" size="1200px" append-to-body :show-close="false">
+        <el-drawer custom-class="custom-select-option_class" :visible.sync="drawer" size="1300px" append-to-body :show-close="false" :wrapperClosable="false" :close-on-press-escape="false">
             <component :position="position" @close="drawer=false" :is="formComponent" v-on="$listeners"></component>
         </el-drawer>
     </div>

+ 307 - 225
src/optionSystem/selectOption/components/DieFa.vue

@@ -1,234 +1,205 @@
 <template>
-  <div class="drawer__panel">
-    <div class="my-steps">
-        <!-- <el-steps size="small" :active="active" finish-status="finish" process-status="wait">
-            <el-step v-for="(item,index) in items" :key="index">
-                <span slot="title">{{item.title}}</span>
-            </el-step>
-        </el-steps> -->
-        <a-steps :current="active-1" style="margin-bottom: 10px;">
-            <a-step :title="item.title" v-for="(item,index) in items" :key="index">
-                <i slot="icon" class="iconfont" style="font-size: 32px;color: #3874F6 !important" v-if="active > index+1">&#xe6fd;</i>
-            </a-step>
-        </a-steps>
-    </div>
-    <div class="product-info" v-show="active != 4">
-        <div class="info-content">
-            <div class="info-item" style="width: 50%;margin-bottom: 5px">
-                <div class="info-title">
-                    <div class="title">光头</div>
-                    <span v-show="!!resultArr[0]" @click="active=1;resultArr=[];fujianArr=[]">
-                        <img src="@/assets/重选.svg" alt="">
-                        重选
-                    </span>
+  <div style="display: flex;height: 100vh">
+    <Aside :resultArr="resultArr" :fujianArr="fujianArr" @refresh="resultRefresh"></Aside>
+    <div class="drawer__panel">
+        <div class="my-steps">
+            <a-steps :current="active-1" style="margin-bottom: 10px;">
+                <a-step :title="item.title" v-for="(item,index) in items" :key="index">
+                    <i slot="icon" class="iconfont" style="font-size: 32px;color: #3874F6 !important" v-if="active > index+1">&#xe6fd;</i>
+                </a-step>
+            </a-steps>
+        </div>
+        <!--选光头-->
+        <div class="dialog-content" v-show="active == 1">
+            <div class="option-line">
+                <div class="item">
+                    <div class="label">驱动方式:</div>
+                    <MySelect :isClear="false" @click="guangtouChange" :options="drivetype" v-model="guangtouParam.content.where.drivetype"></MySelect>
                 </div>
-                <div class="name" v-if="resultArr[0]">{{ resultArr[0].itemname}}</div>
-                <div class="name" v-else>暂无</div>
             </div>
-            <div class="info-item" style="width: 50%;">
-                <div class="info-title">
-                    <div class="title">执行器</div>
-                    <span v-show="!!resultArr[1]" @click="active=2;resultArr.splice(1);fujianArr=[]">
-                        <img src="@/assets/重选.svg" alt="">
-                        重选
-                    </span>
+            <div class="option-line">
+                <div class="item">
+                    <div class="label">公称通径:</div>
+                    <el-select filterable v-model="guangtouParam.content.where.caliber" placeholder="请选择公称通径" size="small" style="width:100%" clearable @change="Search('guangtouParam','caliber')">
+                        <el-option v-for="item in caliber" :key="item.value" :value="item.value" :label="item.value"></el-option>
+                    </el-select>
                 </div>
-                <div class="name" v-if="resultArr[1]">{{ resultArr[1].itemname}} {{ guangtouParam.content.where.drivetype == '电动' ? ` + 减速箱:${resultArr[1].gearboxname}` : '' }}</div>
-                <div class="name" v-else>暂无</div>
-            </div>
-            <div class="info-item" style="width: 100%;">
-                <div class="info-title">
-                    <div class="title">辅件</div>
+                <div class="item">
+                    <div class="label">公称压力:</div>
+                    <el-select filterable @change="Search('guangtouParam','nominalpressure')" :disabled="!guangtouParam.content.where.caliber" v-model="guangtouParam.content.where.nominalpressure" placeholder="请选择公称压力" size="small" style="width:100%" clearable>
+                        <el-option v-for="item in nominalpressure" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
+                    </el-select>
                 </div>
-                <div style="display: flex" v-if="fujianArr.length">
-                    <el-tag size="small" closable v-for="item in fujianArr" :key="item.itemid" style="margin-right: 10px" @close="handleClose(item)">{{ item.itemname }}:{{ item.model }}</el-tag>    
+
+                <div class="item">
+                    <div class="label">连接方式:</div>
+                    <MySelect @click="Search('guangtouParam','connection')" :disabled="!guangtouParam.content.where.nominalpressure" :options="connection" v-model="guangtouParam.content.where.connection"></MySelect>
                 </div>
-                <div class="name" v-else>暂无</div>
             </div>
-        </div>
-    </div>
-    <!--选光头-->
-    <div class="dialog-content" v-show="active == 1">
-        <div class="option-line">
-            <div class="item">
-                <div class="label">驱动方式:</div>
-                <MySelect :isClear="false" @click="guangtouChange" :options="drivetype" v-model="guangtouParam.content.where.drivetype"></MySelect>
+
+            <div class="option-line">
+                <div class="item">
+                    <div class="label">阀体材质:</div>
+                    <el-select filterable @change="Search('guangtouParam','bodymaterial')" :disabled="!guangtouParam.content.where.connection" v-model="guangtouParam.content.where.bodymaterial" placeholder="请选择阀体材质" size="small" style="width:100%" clearable>
+                        <el-option v-for="item in bodymaterial" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
+                    </el-select>
+                </div>
+                <div class="item">
+                    <div class="label">阀杆材质:</div>
+                    <el-select filterable @change="Search('guangtouParam','stemmaterial')" :disabled="!guangtouParam.content.where.bodymaterial" v-model="guangtouParam.content.where.stemmaterial" placeholder="请选择阀杆材质" size="small" style="width:100%" clearable>
+                        <el-option v-for="item in stemmaterial" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
+                    </el-select>
+                </div>
+                <div class="item">
+                    <div class="label">阀座材质:</div>
+                    <el-select filterable @change="Search('guangtouParam','plinthmaterial')" :disabled="!guangtouParam.content.where.stemmaterial" v-model="guangtouParam.content.where.plinthmaterial" placeholder="请选择阀座材质" size="small" style="width:100%" clearable>
+                        <el-option v-for="item in plinthmaterial" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
+                    </el-select>
+                </div>
             </div>
+            <!--光头-->
+            <MyTable :height="tableHeight" ref="guangtouRef" :layout="tool.tabelCol($route.name)['guangtouTable'].tablecols" :param="guangtouParam" :opwidth="200" :custom="true" style="margin-top: 14px">
+                <template v-slot:customcol="scope">
+                    <span v-if="scope.column.columnname != 'operation'">{{scope.column.data[scope.column.columnname]}}</span>
+                </template>
+                <template v-slot:opreation="scope">
+                    <el-button type="text" size="mini" @click="selectTarget(scope.data,'主阀')" :disabled="!guangtouParam.content.where.drivetype">选择</el-button>
+                </template>
+            </MyTable>
         </div>
-        <div class="option-line">
-            <div class="item">
-                <div class="label">公称通径:</div>
-                <el-select filterable v-model="guangtouParam.content.where.caliber" placeholder="请选择公称通径" size="small" style="width:100%" clearable @change="Search('guangtouParam','caliber')">
-                    <el-option v-for="item in caliber" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
-                </el-select>
-            </div>
-            <div class="item">
-                <div class="label">公称压力:</div>
-                <el-select filterable @change="Search('guangtouParam','nominalpressure')" :disabled="!guangtouParam.content.where.caliber" v-model="guangtouParam.content.where.nominalpressure" placeholder="请选择公称压力" size="small" style="width:100%" clearable>
-                    <el-option v-for="item in nominalpressure" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
-                </el-select>
+        <!--选执行器-->
+        <div class="dialog-content" v-show="active == 2">
+            <div class="option-line" v-if="guangtouParam.content.where.drivetype=='气动'">
+                <div class="item">
+                    <div class="label">驱动方式:</div>
+                    <MySelect :isClear="false" :options="[{remarks:'气动调节',value:'气动调节'},{remarks:'气动开关',value:'气动开关'}]" v-model="excelParam.content.where.drivetype"></MySelect>
+                </div>
             </div>
 
-            <div class="item">
-                <div class="label">连接方式:</div>
-                <MySelect @click="Search('guangtouParam','connection')" :disabled="!guangtouParam.content.where.nominalpressure" :options="connection" v-model="guangtouParam.content.where.connection"></MySelect>
+            <div class="option-line">
+                <div class="item">
+                    <div class="label">品牌:</div>
+                    <MySelect @click="Search('excelParam','actuatorbrand')" :options="actuatorbrand" v-model="excelParam.content.where.actuatorbrand"></MySelect>
+                </div>
             </div>
-        </div>
-
-        <div class="option-line">
-            <div class="item">
-                <div class="label">阀体材质:</div>
-                <el-select filterable @change="Search('guangtouParam','bodymaterial')" :disabled="!guangtouParam.content.where.connection" v-model="guangtouParam.content.where.bodymaterial" placeholder="请选择阀体材质" size="small" style="width:100%" clearable>
-                    <el-option v-for="item in bodymaterial" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
-                </el-select>
+            <!-- <div class="option-line">
+                <div class="item">
+                    <div class="label" style="width: 75px;">执行器类型:</div>
+                    <el-select filterable @change="Search('excelParam','actuatorname')" :disabled="!excelParam.content.where.actuatorbrand" v-model="excelParam.content.where.actuatorname" placeholder="请选择执行器类型" size="small" style="width:100%" clearable>
+                        <el-option v-for="item in actuatorname" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
+                    </el-select>
+                </div>
+            </div> -->
+            <div class="option-line" v-show="guangtouParam.content.where.drivetype=='气动'">
+                <div class="item">
+                    <div class="label">功能:</div>
+                    <MySelect :disabled="!excelParam.content.where.actuatorname" @click="Search('excelParam','func')" :options="func" v-model="excelParam.content.where.func"></MySelect>
+                </div>
             </div>
-            <div class="item">
-                <div class="label">阀杆材质:</div>
-                <el-select filterable @change="Search('guangtouParam','stemmaterial')" :disabled="!guangtouParam.content.where.bodymaterial" v-model="guangtouParam.content.where.stemmaterial" placeholder="请选择阀杆材质" size="small" style="width:100%" clearable>
-                    <el-option v-for="item in stemmaterial" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
-                </el-select>
+
+            <div class="option-line" v-show="guangtouParam.content.where.drivetype=='气动'">
+                <div class="item">
+                    <div class="label">结构:</div>
+                    <MySelect :disabled="!excelParam.content.where.func"  @click="Search('excelParam','bodystructure')" :options="bodystructure" v-model="excelParam.content.where.bodystructure"></MySelect>
+                </div>
             </div>
-            <div class="item">
-                <div class="label">阀座材质:</div>
-                <el-select filterable @change="Search('guangtouParam','plinthmaterial')" :disabled="!guangtouParam.content.where.stemmaterial" v-model="guangtouParam.content.where.plinthmaterial" placeholder="请选择阀座材质" size="small" style="width:100%" clearable>
-                    <el-option v-for="item in plinthmaterial" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
-                </el-select>
+            <div v-if="guangtouParam.content.where.drivetype == '电动' && excelParam.content.where.actuatorbrand && actuatorname.length">
+                <div class="option-line">
+                    <div class="item">
+                        <div class="label" style="width: 80px;">执行器类型:</div>
+                        <span style="font-size: 14px;font-weight: bold;color:#3874F6">{{ excelParam.content.where.actuatorname || '--' }}</span>
+                    </div>
+                </div>
+                <SelectBar style="margin: 20px 0" v-model="excelParam.content.where.actuatorname" :options="actuatorname" @change="Search('excelParam','actuatorname')"></SelectBar>
             </div>
+            <div class="tips" v-if="guangtouParam.content.where.drivetype=='电动'" style="color:#3874F6;margin-top: 10px;"><i class="el-icon-warning" style="margin-right: 5px;"></i>建议开关阀时间{{ caliber.filter(v=>v.value==guangtouParam.content.where.caliber).length ? caliber.filter(v=>v.value==guangtouParam.content.where.caliber)[0].remarks:'-' }}秒</div>
+            <!--执行器-->
+            <MyTable fixedName="operation" :height="tableHeight" :noQuery="true" ref="excelRef" :layout="guangtouParam.content.where.drivetype=='电动'?tool.tabelCol($route.name)['excelTable1'].tablecols:tool.tabelCol($route.name)['excelTable2'].tablecols" :param="excelParam" :opwidth="200" :custom="true" style="margin-top: 14px">
+                <template v-slot:customcol="scope">
+                    <span v-if="scope.column.columnname == 'matchratio'" style="color:red">{{scope.column.data[scope.column.columnname]}}</span>
+                    <span v-else-if="scope.column.columnname != 'operation'">{{scope.column.data[scope.column.columnname]}}</span>
+                </template>
+                <template v-slot:opreation="scope">
+                    <el-button type="text" size="mini" @click="selectTarget(scope.data,'执行器')" :disabled="(loading) || (guangtouParam.content.where.drivetype=='电动' && resultArr.length == 2)">选择</el-button>
+                </template>
+            </MyTable>
         </div>
-        <!--光头-->
-        <MyTable :height="tableHeight" ref="guangtouRef" :layout="tool.tabelCol($route.name)['guangtouTable'].tablecols" :param="guangtouParam" :opwidth="200" :custom="true" style="margin-top: 14px">
+        <!--选辅件-->
+        <div class="dialog-content" v-show="active == 3">
+            <MyTable :noQuery="true" ref="fujianRef" :height="tableHeight" :layout="tool.tabelCol($route.name)['itemList'].tablecols" :param="fujianParam" :opwidth="200" :custom="true" style="margin-top: 14px">
             <template v-slot:customcol="scope">
                 <span v-if="scope.column.columnname != 'operation'">{{scope.column.data[scope.column.columnname]}}</span>
             </template>
             <template v-slot:opreation="scope">
-                <el-button type="text" size="mini" @click="selectTarget(scope.data,'主阀')" :disabled="!guangtouParam.content.where.drivetype">选择</el-button>
+                <el-button type="text" size="mini" @click="selectTarget(scope.data,'辅件')" :disabled="loading">选择</el-button>
             </template>
-        </MyTable>
-    </div>
-    <!--选执行器-->
-    <div class="dialog-content" v-show="active == 2">
-        <div class="option-line" v-if="guangtouParam.content.where.drivetype=='气动'">
-            <div class="item">
-                <div class="label">驱动方式:</div>
-                <MySelect :isClear="false" :options="[{remarks:'气动调节',value:'气动调节'},{remarks:'气动开关',value:'气动开关'}]" v-model="excelParam.content.where.drivetype"></MySelect>
-            </div>
+            </MyTable>
         </div>
+        <div class="dialog-content" v-if="active == 4">
+            <table bgcolor="#FAFAFA" cellpadding="0" style="width: 100%;" class="result">
+                <tr style="width: 100px;">
+                    <td class="title">光头</td>
+                    <td>
+                        <div class="text1" style="margin-bottom: 8px;">{{ resultArr[0] && resultArr[0].itemname}}</div>
+                        <div class="descript">
+                            <div class="item" v-if="resultArr.length && resultArr[0].itemno"><span style="color: #888888;">料号:</span>{{resultArr[0].itemno }}</div>
+                            <div class="item" v-if="resultArr.length && resultArr[0].torque"><span style="color: #888888;">扭矩:</span>{{resultArr[0].torque }}</div>
+                            <div class="item" v-if="resultArr.length && resultArr[0].flh"><span style="color: #888888;">法兰号:</span>{{resultArr[0].flh }}</div>
+                            <div class="item" v-if="resultArr.length && resultArr[0].caliber"><span style="color: #888888;">公称通径:</span>{{resultArr[0].caliber }}</div>
+                            <div class="item" v-if="resultArr.length && resultArr[0].stemmaterial"><span style="color: #888888;">阀杆材质:</span>{{resultArr[0].stemmaterial }}</div>
+                            <div class="item" v-if="resultArr.length && resultArr[0].mainmaterial"><span style="color: #888888;">主体材质:</span>{{resultArr[0].mainmaterial }}</div>
+                        </div>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="title">执行器</td>
+                    <td>
+                        <div class="text1" style="margin-bottom: 8px;">{{ resultArr[1] && resultArr[1].actuatormodel }} {{guangtouParam.content.where.drivetype == '电动' ? ` + 减速箱:${resultArr[1] && resultArr[1].gearboxname}` : '' }}</div>
+                        <div class="descript">
+                            <div class="item" v-if="resultArr.length >= 2 && resultArr[1].torque"><span style="color: #888888;">输出扭矩:</span>{{resultArr[1].torque }}</div>
+                            <div class="item" v-if="resultArr.length >= 2 && resultArr[1].maxruntime"><span style="color: #888888;">开关时间:</span>{{resultArr[1].maxruntime }}</div>
+                            <div class="item" v-if="resultArr.length >= 2 && resultArr[1].speed"><span style="color: #888888;">转速:</span>{{resultArr[1].speed }}</div>
+                            <div class="item" v-if="resultArr.length >= 2 && resultArr[1].handwheelratio"><span style="color: #888888;">减速比:</span>{{resultArr[1].ratio }}</div>
+                            <div class="item" v-if="resultArr.length >= 2 && resultArr[1].supplyvoltage"><span style="color: #888888;">电压:</span>{{resultArr[1].supplyvoltage }}</div>
+                            <div class="item" v-if="resultArr.length >= 2 && resultArr[1].ratedcurrent"><span style="color: #888888;">电流:</span>{{resultArr[1].ratedcurrent }}</div>
+                            <div class="item" v-if="resultArr.length >= 2 && resultArr[1].ratedpower"><span style="color: #888888;">功率:</span>{{resultArr[1].ratedpower }}</div>
+                        </div>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="title">辅件</td>
+                    <td style="padding: 0;">
+                        <tr style="border-bottom: 1px solid #DDDDDD;" class="custom-table">
+                            <div>定位器</div>
+                            <div class="text1">{{ resultArr.filter(item => item.itemname == '定位器').length ? resultArr.filter(item => item.itemname == '定位器')[0].model : '-' }}</div>
+                            <div>电磁阀</div>
+                            <div class="text1">{{ resultArr.filter(item => item.itemname == '电磁阀').length ? resultArr.filter(item => item.itemname == '电磁阀')[0].model : '-' }}</div>
+                        </tr>
 
-        <div class="option-line">
-            <div class="item">
-                <div class="label">品牌:</div>
-                <MySelect @click="Search('excelParam','actuatorbrand')" :options="actuatorbrand" v-model="excelParam.content.where.actuatorbrand"></MySelect>
-            </div>
+                        <tr class="custom-table">
+                            <div>限位开关</div>
+                            <div class="text1">{{ resultArr.filter(item => item.itemname == '限位开关').length ? resultArr.filter(item => item.itemname == '限位开关')[0].model : '-' }}</div>
+                            <div>过滤减压阀</div>
+                            <div class="text1">{{ resultArr.filter(item => item.itemname == '过滤减压阀').length ? resultArr.filter(item => item.itemname == '过滤减压阀')[0].model : '-' }}</div>
+                        </tr>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="title">成品料号</td>
+                    <td class="text1">{{ Object.keys(product).length ? product.itemno||'-' : '' }}</td>
+                </tr>
+                <tr>
+                    <td class="title">{{product.itemno?'牌价':'预估价格'}}</td>
+                    <td class="text2">¥{{ Object.keys(product).length ? tool.formatAmount(product.price,2) : 'xxxxxx' }}</td>
+                </tr>
+            </table>
         </div>
-        <div class="option-line">
-            <div class="item">
-                <div class="label" style="width: 75px;">执行器类型:</div>
-                <el-select filterable @change="Search('excelParam','actuatorname')" :disabled="!excelParam.content.where.actuatorbrand" v-model="excelParam.content.where.actuatorname" placeholder="请选择执行器类型" size="small" style="width:100%" clearable>
-                    <el-option v-for="item in actuatorname" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
-                </el-select>
-            </div>
+        <div class="fixed__btn__panel">
+            <el-button size="small" @click="close" class="normal-btn-width">取 消</el-button>
+            <el-button size="small" @click="guangtouParam.content.where.drivetype == '电动' ? active = 2 : active = 3" type="primary" v-if="active == 4" class="normal-btn-width">上一步</el-button>
+            <el-button size="small" type="primary" @click="active=4" class="normal-btn-width" v-if="active == 3" :disabled="$refs.fujianRef.list.length!= 0">下一步</el-button>
+            <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width" v-if="active == 4">确认添加</el-button>
         </div>
-        <div class="option-line" v-show="guangtouParam.content.where.drivetype=='气动'">
-            <div class="item">
-                <div class="label">功能:</div>
-                <MySelect :disabled="!excelParam.content.where.actuatorname" @click="Search('excelParam','func')" :options="func" v-model="excelParam.content.where.func"></MySelect>
-            </div>
-        </div>
-
-        <div class="option-line" v-show="guangtouParam.content.where.drivetype=='气动'">
-            <div class="item">
-                <div class="label">结构:</div>
-                <MySelect :disabled="!excelParam.content.where.func"  @click="Search('excelParam','bodystructure')" :options="bodystructure" v-model="excelParam.content.where.bodystructure"></MySelect>
-            </div>
-        </div>
-
-        <!--执行器-->
-        <MyTable :height="tableHeight" :noQuery="true" ref="excelRef" :layout="guangtouParam.content.where.drivetype=='电动'?tool.tabelCol($route.name)['excelTable1'].tablecols:tool.tabelCol($route.name)['excelTable2'].tablecols" :param="excelParam" :opwidth="200" :custom="true" style="margin-top: 14px">
-            <template v-slot:customcol="scope">
-                <span v-if="scope.column.columnname == 'matchratio'" style="color:red">{{scope.column.data[scope.column.columnname]}}</span>
-                <span v-else-if="scope.column.columnname != 'operation'">{{scope.column.data[scope.column.columnname]}}</span>
-            </template>
-            <template v-slot:opreation="scope">
-                <el-button type="text" size="mini" @click="selectTarget(scope.data,'执行器')" :disabled="(loading) || (guangtouParam.content.where.drivetype=='电动' && resultArr.length == 2)">选择</el-button>
-            </template>
-        </MyTable>
-    </div>
-    <!--选辅件-->
-    <div class="dialog-content" v-show="active == 3">
-        <MyTable :noQuery="true" ref="fujianRef" :height="tableHeight" :layout="tool.tabelCol($route.name)['itemList'].tablecols" :param="fujianParam" :opwidth="200" :custom="true" style="margin-top: 14px">
-        <template v-slot:customcol="scope">
-            <span v-if="scope.column.columnname != 'operation'">{{scope.column.data[scope.column.columnname]}}</span>
-        </template>
-        <template v-slot:opreation="scope">
-            <el-button type="text" size="mini" @click="selectTarget(scope.data,'辅件')" :disabled="loading">选择</el-button>
-        </template>
-        </MyTable>
-    </div>
-    <div class="dialog-content" v-if="active == 4">
-        <table bgcolor="#FAFAFA" cellpadding="0" style="width: 100%;" class="result">
-            <tr style="width: 100px;">
-                <td class="title">光头</td>
-                <td>
-                    <div class="text1" style="margin-bottom: 8px;">{{ resultArr[0] && resultArr[0].itemname}}</div>
-                    <div class="descript">
-                        <div class="item" v-if="resultArr.length && resultArr[0].itemno"><span style="color: #888888;">料号:</span>{{resultArr[0].itemno }}</div>
-                        <div class="item" v-if="resultArr.length && resultArr[0].torque"><span style="color: #888888;">扭矩:</span>{{resultArr[0].torque }}</div>
-                        <div class="item" v-if="resultArr.length && resultArr[0].flh"><span style="color: #888888;">法兰号:</span>{{resultArr[0].flh }}</div>
-                        <div class="item" v-if="resultArr.length && resultArr[0].caliber"><span style="color: #888888;">公称通径:</span>{{resultArr[0].caliber }}</div>
-                        <div class="item" v-if="resultArr.length && resultArr[0].stemmaterial"><span style="color: #888888;">阀杆材质:</span>{{resultArr[0].stemmaterial }}</div>
-                        <div class="item" v-if="resultArr.length && resultArr[0].mainmaterial"><span style="color: #888888;">主体材质:</span>{{resultArr[0].mainmaterial }}</div>
-                    </div>
-                </td>
-            </tr>
-            <tr>
-                <td class="title">执行器</td>
-                <td>
-                    <div class="text1" style="margin-bottom: 8px;">{{ resultArr[1] && resultArr[1].actuatormodel }} {{guangtouParam.content.where.drivetype == '电动' ? ` + 减速箱:${resultArr[1] && resultArr[1].gearboxname}` : '' }}</div>
-                    <div class="descript">
-                        <div class="item" v-if="resultArr.length >= 2 && resultArr[1].torque"><span style="color: #888888;">输出扭矩:</span>{{resultArr[1].torque }}</div>
-                        <div class="item" v-if="resultArr.length >= 2 && resultArr[1].maxruntime"><span style="color: #888888;">开关时间:</span>{{resultArr[1].maxruntime }}</div>
-                        <div class="item" v-if="resultArr.length >= 2 && resultArr[1].speed"><span style="color: #888888;">转速:</span>{{resultArr[1].speed }}</div>
-                        <div class="item" v-if="resultArr.length >= 2 && resultArr[1].handwheelratio"><span style="color: #888888;">减速比:</span>{{resultArr[1].ratio }}</div>
-                        <div class="item" v-if="resultArr.length >= 2 && resultArr[1].supplyvoltage"><span style="color: #888888;">电压:</span>{{resultArr[1].supplyvoltage }}</div>
-                        <div class="item" v-if="resultArr.length >= 2 && resultArr[1].ratedcurrent"><span style="color: #888888;">电流:</span>{{resultArr[1].ratedcurrent }}</div>
-                        <div class="item" v-if="resultArr.length >= 2 && resultArr[1].ratedpower"><span style="color: #888888;">功率:</span>{{resultArr[1].ratedpower }}</div>
-                    </div>
-                </td>
-            </tr>
-            <tr>
-                <td class="title">辅件</td>
-                <td style="padding: 0;">
-                    <tr style="border-bottom: 1px solid #DDDDDD;" class="custom-table">
-                        <div>定位器</div>
-                        <div class="text1">{{ resultArr.filter(item => item.itemname == '定位器').length ? resultArr.filter(item => item.itemname == '定位器')[0].model : '-' }}</div>
-                        <div>电磁阀</div>
-                        <div class="text1">{{ resultArr.filter(item => item.itemname == '电磁阀').length ? resultArr.filter(item => item.itemname == '电磁阀')[0].model : '-' }}</div>
-                    </tr>
-
-                    <tr class="custom-table">
-                        <div>限位开关</div>
-                        <div class="text1">{{ resultArr.filter(item => item.itemname == '限位开关').length ? resultArr.filter(item => item.itemname == '限位开关')[0].model : '-' }}</div>
-                        <div>过滤减压阀</div>
-                        <div class="text1">{{ resultArr.filter(item => item.itemname == '过滤减压阀').length ? resultArr.filter(item => item.itemname == '过滤减压阀')[0].model : '-' }}</div>
-                    </tr>
-                </td>
-            </tr>
-            <tr>
-                <td class="title">成品料号</td>
-                <td class="text1">{{ Object.keys(product).length ? product.itemno||'-' : '' }}</td>
-            </tr>
-            <tr>
-                <td class="title">{{product.itemno?'牌价':'预估价格'}}</td>
-                <td class="text2">¥{{ Object.keys(product).length ? tool.formatAmount(product.price,2) : 'xxxxxx' }}</td>
-            </tr>
-        </table>
-    </div>
-
-    <div class="fixed__btn__panel">
-        <el-button size="small" @click="close" class="normal-btn-width">取 消</el-button>
-        <el-button size="small" @click="guangtouParam.content.where.drivetype == '电动' ? active = 2 : active = 3" type="primary" v-if="active == 4" class="normal-btn-width">上一步</el-button>
-        <el-button size="small" type="primary" @click="active=4" class="normal-btn-width" v-if="active == 3" :disabled="$refs.fujianRef.list.length!= 0">下一步</el-button>
-        <el-button size="small" type="primary" @click="onSubmit" class="normal-btn-width" v-if="active == 4">确认添加</el-button>
     </div>
   </div>
 </template>
@@ -236,9 +207,11 @@
 <script>
 import MySelect from '@/optionSystem/FProductManage/modules/select.vue'
 import MyTable from '@/optionSystem/FProductManage/modules/table.vue'
+import SelectBar from '@/optionSystem/FProductManage/modules/selectBar.vue'
+import Aside from '@/optionSystem/FProductManage/modules/aside.vue'
 export default {
     props:['position'],
-    components:{MySelect,MyTable},
+    components:{MySelect,MyTable,SelectBar,Aside},
     inject:['valvetype'],
     data () {
         return {
@@ -356,6 +329,13 @@ export default {
         }
     },
     watch: {
+        'excelParam.content.where.actuatorbrand': {
+            handler (val) {
+                setTimeout(() => {
+                    this.calcTableHieght('excelRef')
+                },500)
+            }
+        },
         active (val) {
             switch (val) {
                 case 1:
@@ -391,6 +371,23 @@ export default {
         }
     },
     methods: {
+        resultRefresh (type) {
+            if (type == '光头') {
+                this.active=1
+                this.resultArr=[]
+                this.fujianArr=[]
+                this.items.splice(2,1)
+            } else if (type == '执行器') {
+                this.active=2
+                this.resultArr.splice(1)
+                this.fujianArr=[]
+            } else {
+                this.fujianArr=[]
+                this.active = 3
+                this.fujianParam.content.othertypes = ['电磁阀','限位开关','过滤减压阀']
+                this.$refs.fujianRef.listData()
+            } 
+        },
         close () {
             this.active = 1
             this.guangtouParam.content.where.drivetype = '电动'
@@ -495,6 +492,7 @@ export default {
         },
         calcTableHieght (id) {
             this.$nextTick(() => {
+                if (!this.$refs[id]) return 
                 let target = this.$refs[id].$el.getBoundingClientRect()
                 let clientHeight = document.body.clientHeight
                 this.tableHeight = clientHeight - target.top - 85 + 'px'
@@ -643,22 +641,6 @@ export default {
             }
             this.resultArr[this.resultArr.length - 1] = data
         },
-        handleClose (tag) {
-            this.fujianArr = this.fujianArr.filter(item => {
-                if (item.itemid != tag.itemid) {
-                    return item
-                } else {
-                    this.fujianParam.content.othertypes.push(item.itemname)
-                }
-            })
-            this.resultArr = this.resultArr.filter(item => {
-                if (item.itemid != tag.itemid) {
-                    return item
-                }
-            })
-            
-            this.$refs.fujianRef.listData()
-        },
         //重置
         refresh () {
             this.resultArr = []
@@ -740,9 +722,109 @@ export default {
         color:#3874F6 !important;
         font-weight: bold;
     }
+    /deep/.fixed__btn__panel {
+        padding-left: 240px !important;
+    }
+    .scroll {
+        height: calc(100vh - 60px);
+        overflow-y: scroll;
+    }
+    ::-webkit-scrollbar {
+        display: none;
+    }
+    .select-info {
+        background: #F5F6FA;
+        font-family: Microsoft YaHei, Microsoft YaHei;
+        width: 240px;
+        border-right: 1px #999999 solid;
+        z-index: 99999991;
+        flex-shrink: 0;
+        word-wrap: break-word;
+    }
+    .select-info .info-title {
+        font-weight: bold;
+        font-size: 20px;
+        color: #333333;
+        padding: 10px 20px;
+        border-bottom: 1px solid #D9D9D9;
+    }
+    .select-info .product-wrapper {
+        padding: 0 20px;
+    }
+
+    .select-info .product-wrapper .product {
+        padding-bottom:20px;
+        border-bottom: #D9D9D9 1px solid;
+    }
+    .select-info .product-wrapper .product:last-child {
+        border-bottom: none !important;
+    }
+    .select-info .product-wrapper .product .product-header {
+        display: flex;
+        align-items: center;
+        align-content: center;
+        padding: 10px 0;
+    }
+    .select-info .product-wrapper .product .product-header span:last-child {
+        color: #3874F6;
+        margin-left: 18px;
+        cursor: pointer;
+    }
+    .select-info .product-wrapper .product .product-header .title {
+        font-weight: bold;
+        font-size: 14px;
+        color: #333333;
+    }
+    .select-info .product-wrapper .product .product-header img {
+        width: 12px;
+        height: 12px;
+    }
+    .select-info .product-wrapper .product .product-name {
+        font-weight: 400;
+        font-size: 14px;
+        color: #555555;
+    }
+    .select-info .product-wrapper .product .attrite {
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        font-weight: 400;
+        font-size: 12px;
+        color: #999999;
+        padding-top: 10px;
+    }
+    .select-info .product-wrapper .product .attrite .attrite-title {
+        color: #555555;
+    }
+    .select-info .product-wrapper .product .attrite .attrite-value {
+    }
+
+    .select-info .product-wrapper .product .attrite2 {
+        display: flex;
+        flex-direction: column;
+        font-weight: 400;
+        font-size: 12px;
+        color: #999999;
+        padding-top: 10px;
+    }
+    .select-info .product-wrapper .product .attrite2 .attrite-title {
+        color: #555555;
+        margin-bottom: 5px;
+    }
+    .select-info .product-wrapper .product .attrite2 .attrite-value {
+    }
+
+    .select-info .product-wrapper .product {
+        display: flex;
+        flex-direction: column;
+    }
+
+
     .drawer__panel {
-        padding: 10px 40px !important;
         font-family: Source Han Sans SC, Source Han Sans SC;
+        padding: 10px 40px !important;
+        flex: 1;
+        overflow: hidden;
     }
     .my-steps {
         padding: 0px 68px;
@@ -848,7 +930,7 @@ export default {
     .dialog-content .option-line .item .label {
         width: 70px;
         flex-shrink: 0;
-        text-align: right;
+        text-align-last: justify;
         margin-right: 15px;
         color: #000000 !important;
     }

+ 1036 - 0
src/optionSystem/valveOption/DieFa.vue

@@ -0,0 +1,1036 @@
+<template>
+  <div style="display: flex;height: calc(100vh - 120px)">
+    <Aside :resultArr="resultArr" :fujianArr="fujianArr" @refresh="resultRefresh"></Aside>
+    <div class="drawer__panel">
+        <div class="my-steps">
+            <a-steps :current="active-1" style="margin-bottom: 10px;">
+                <a-step :title="item.title" v-for="(item,index) in items" :key="index">
+                    <i slot="icon" class="iconfont" style="font-size: 32px;color: #3874F6 !important" v-if="active > index+1">&#xe6fd;</i>
+                </a-step>
+            </a-steps>
+        </div>
+        <!--选光头-->
+        <div class="dialog-content" v-show="active == 1">
+            <div class="option-line">
+                <MySelect type="radius" :isClear="false" :options="[{remarks:'自动选配',value:'自动选配'},{remarks:'手动输入',value:'手动输入'}]" v-model="mode"></MySelect>
+            </div>
+            <div v-show="mode == '自动选配'">
+                <div class="option-line">
+                    <div class="item">
+                        <div class="label">驱动方式:</div>
+                        <MySelect :isClear="false" @click="guangtouChange" :options="drivetype" v-model="guangtouParam.content.where.drivetype"></MySelect>
+                    </div>
+                </div>
+                <div class="option-line">
+                    <div class="item">
+                        <div class="label">公称通径:</div>
+                        <el-select filterable v-model="guangtouParam.content.where.caliber" placeholder="请选择公称通径" size="small" style="width:100%" clearable @change="Search('guangtouParam','caliber')">
+                            <el-option v-for="item in caliber" :key="item.value" :value="item.value" :label="item.value"></el-option>
+                        </el-select>
+                    </div>
+                    <div class="item">
+                        <div class="label">公称压力:</div>
+                        <el-select filterable @change="Search('guangtouParam','nominalpressure')" :disabled="!guangtouParam.content.where.caliber" v-model="guangtouParam.content.where.nominalpressure" placeholder="请选择公称压力" size="small" style="width:100%" clearable>
+                            <el-option v-for="item in nominalpressure" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
+                        </el-select>
+                    </div>
+                </div>
+                <div class="option-line">
+                    <div class="item">
+                        <div class="label">连接方式:</div>
+                        <MySelect @click="Search('guangtouParam','connection')" :disabled="!guangtouParam.content.where.nominalpressure" :options="connection" v-model="guangtouParam.content.where.connection"></MySelect>
+                    </div>
+                </div>
+                <div class="option-line">
+                    <div class="item">
+                        <div class="label">阀体材质:</div>
+                        <el-select filterable @change="Search('guangtouParam','bodymaterial')" :disabled="!guangtouParam.content.where.connection" v-model="guangtouParam.content.where.bodymaterial" placeholder="请选择阀体材质" size="small" style="width:100%" clearable>
+                            <el-option v-for="item in bodymaterial" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
+                        </el-select>
+                    </div>
+                    <div class="item">
+                        <div class="label">阀杆材质:</div>
+                        <el-select filterable @change="Search('guangtouParam','stemmaterial')" :disabled="!guangtouParam.content.where.bodymaterial" v-model="guangtouParam.content.where.stemmaterial" placeholder="请选择阀杆材质" size="small" style="width:100%" clearable>
+                            <el-option v-for="item in stemmaterial" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
+                        </el-select>
+                    </div>
+                    <div class="item">
+                        <div class="label">阀座材质:</div>
+                        <el-select filterable @change="Search('guangtouParam','plinthmaterial')" :disabled="!guangtouParam.content.where.stemmaterial" v-model="guangtouParam.content.where.plinthmaterial" placeholder="请选择阀座材质" size="small" style="width:100%" clearable>
+                            <el-option v-for="item in plinthmaterial" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
+                        </el-select>
+                    </div>
+                </div>
+                <!--光头-->
+                <MyTable :height="tableHeight" ref="guangtouRef" :layout="tool.tabelCol($route.name)['guangtouTable'].tablecols" :param="guangtouParam" :opwidth="200" :custom="true" style="margin-top: 14px">
+                    <template v-slot:customcol="scope">
+                        <span v-if="scope.column.columnname != 'operation'">{{scope.column.data[scope.column.columnname]}}</span>
+                    </template>
+                    <template v-slot:opreation="scope">
+                        <el-button type="text" size="mini" @click="selectTarget(scope.data,'主阀')" :disabled="!guangtouParam.content.where.drivetype">选择</el-button>
+                    </template>
+                </MyTable>
+            </div>
+
+            <div class="write" style="margin-top: 10px" v-show="mode == '手动输入'">
+                <el-row :gutter="10">
+                    <el-form :model="guangtouParam.content.where" ref="ruleForm" label-width="130px">
+                        <el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="6">
+                            <el-form-item label="驱动方式:" prop="drivetype" :rules="{required:true,message:'请选择驱动方式',trigger:'blur'}">
+                                <el-select filterable v-model="guangtouParam.content.where.drivetype" placeholder="请选择驱动方式" size="small" style="width:100%">
+                                    <el-option v-for="item in drivetype" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
+                                </el-select>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="6">
+                            <el-form-item label="扭矩:" prop="torque" :rules="{required:true,message:'请输入扭矩',trigger:'blur'}">
+                                <el-input v-model="guangtouParam.content.where.torque" size="small" placeholder="请输入扭矩"></el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="6">
+                            <el-form-item label="法兰号:" prop="flh" :rules="{required:true,message:'请选择法兰号',trigger:'blur'}">
+                                <el-select filterable v-model="guangtouParam.content.where.flh" placeholder="请选择法兰号" size="small" style="width:100%">
+                                    <el-option v-for="item in flh" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
+                                </el-select>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="6" v-if="!guangtouParam.content.where.maxrounddiameter">
+                            <el-form-item label="方阀杆最大宽度:" prop="maxsquarewidth" :rules="{required:true,message:'请输入方阀杆最大宽度',trigger:'blur'}">
+                                <el-input size="small" v-model="guangtouParam.content.where.maxsquarewidth"  placeholder="请输入方阀杆最大宽度"></el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="6" v-if="!guangtouParam.content.where.maxsquarewidth">
+                            <el-form-item label="圆阀杆最大直径:" prop="maxrounddiameter" :rules="{required:true,message:'请输入圆阀杆最大直径',trigger:'blur'}">
+                                <el-input size="small" v-model="guangtouParam.content.where.maxrounddiameter"  placeholder="请输入圆阀杆最大直径"></el-input>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="6">
+                            <el-form-item label="公称通径:" prop="caliber">
+                                <el-select filterable v-model="guangtouParam.content.where.caliber" placeholder="请选择公称通径" size="small" style="width:100%" clearable="">
+                                    <el-option v-for="item in caliber" :key="item.value" :value="item.value" :label="item.value"></el-option>
+                                </el-select>
+                            </el-form-item>
+                        </el-col>
+                        <el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="6">
+                            <el-form-item label="公称压力:" prop="nominalpressure">
+                                <el-select filterable v-model="guangtouParam.content.where.nominalpressure" placeholder="请选择公称压力" size="small" style="width:100%" clearable="">
+                                    <el-option v-for="item in nominalpressure" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
+                                </el-select>
+                            </el-form-item>
+                        </el-col>
+                    </el-form>
+                </el-row>
+            </div>
+        </div>
+        <!--选执行器-->
+        <div class="dialog-content" v-show="active == 2">
+            <div class="option-line" v-if="guangtouParam.content.where.drivetype=='气动'">
+                <div class="item">
+                    <div class="label">驱动方式:</div>
+                    <MySelect :isClear="false" :options="[{remarks:'气动调节',value:'气动调节'},{remarks:'气动开关',value:'气动开关'}]" v-model="excelParam.content.where.drivetype"></MySelect>
+                </div>
+            </div>
+
+            <div class="option-line">
+                <div class="item">
+                    <div class="label">品牌:</div>
+                    <MySelect @click="Search('excelParam','actuatorbrand')" :options="actuatorbrand" v-model="excelParam.content.where.actuatorbrand"></MySelect>
+                </div>
+            </div>
+            <!-- <div class="option-line">
+                <div class="item">
+                    <div class="label" style="width: 75px;">执行器类型:</div>
+                    <el-select filterable @change="Search('excelParam','actuatorname')" :disabled="!excelParam.content.where.actuatorbrand" v-model="excelParam.content.where.actuatorname" placeholder="请选择执行器类型" size="small" style="width:100%" clearable>
+                        <el-option v-for="item in actuatorname" :key="item.value" :value="item.value" :label="item.remarks"></el-option>
+                    </el-select>
+                </div>
+            </div> -->
+            <div class="option-line" v-show="guangtouParam.content.where.drivetype=='气动'">
+                <div class="item">
+                    <div class="label">功能:</div>
+                    <MySelect :disabled="!excelParam.content.where.actuatorname" @click="Search('excelParam','func')" :options="func" v-model="excelParam.content.where.func"></MySelect>
+                </div>
+            </div>
+
+            <div class="option-line" v-show="guangtouParam.content.where.drivetype=='气动'">
+                <div class="item">
+                    <div class="label">结构:</div>
+                    <MySelect :disabled="!excelParam.content.where.func"  @click="Search('excelParam','bodystructure')" :options="bodystructure" v-model="excelParam.content.where.bodystructure"></MySelect>
+                </div>
+            </div>
+            <div v-if="guangtouParam.content.where.drivetype == '电动' && excelParam.content.where.actuatorbrand && actuatorname.length">
+                <div class="option-line">
+                    <div class="item">
+                        <div class="label" style="width: 80px;">执行器类型:</div>
+                        <span style="font-size: 14px;font-weight: bold;color:#3874F6">{{ excelParam.content.where.actuatorname || '--' }}</span>
+                    </div>
+                </div>
+                <SelectBar style="margin: 20px 0" v-model="excelParam.content.where.actuatorname" :options="actuatorname" @change="Search('excelParam','actuatorname')"></SelectBar>
+            </div>
+            <div class="tips" v-if="guangtouParam.content.where.drivetype=='电动'" style="color:#3874F6;margin-top: 10px;"><i class="el-icon-warning" style="margin-right: 5px;"></i>建议开关阀时间{{ caliber.filter(v=>v.value==guangtouParam.content.where.caliber).length ? caliber.filter(v=>v.value==guangtouParam.content.where.caliber)[0].remarks:'-' }}秒</div>
+            <!--执行器-->
+            <MyTable fixedName="operation" :height="tableHeight" :noQuery="true" ref="excelRef" :layout="guangtouParam.content.where.drivetype=='电动'?tool.tabelCol($route.name)['excelTable1'].tablecols:tool.tabelCol($route.name)['excelTable2'].tablecols" :param="excelParam" :opwidth="200" :custom="true" style="margin-top: 14px">
+                <template v-slot:customcol="scope">
+                    <span v-if="scope.column.columnname == 'matchratio'" style="color:red">{{scope.column.data[scope.column.columnname]}}</span>
+                    <span v-else-if="scope.column.columnname != 'operation'">{{scope.column.data[scope.column.columnname]}}</span>
+                </template>
+                <template v-slot:opreation="scope">
+                    <el-button type="text" size="mini" @click="selectTarget(scope.data,'执行器')" :disabled="(loading) || (guangtouParam.content.where.drivetype=='电动' && resultArr.length == 2)">选择</el-button>
+                </template>
+            </MyTable>
+        </div>
+        <!--选辅件-->
+        <div class="dialog-content" v-show="active == 3">
+            <MyTable :noQuery="true" ref="fujianRef" :height="tableHeight" :layout="tool.tabelCol($route.name)['itemList'].tablecols" :param="fujianParam" :opwidth="200" :custom="true" style="margin-top: 14px">
+            <template v-slot:customcol="scope">
+                <span v-if="scope.column.columnname != 'operation'">{{scope.column.data[scope.column.columnname]}}</span>
+            </template>
+            <template v-slot:opreation="scope">
+                <el-button type="text" size="mini" @click="selectTarget(scope.data,'辅件')" :disabled="loading">选择</el-button>
+            </template>
+            </MyTable>
+        </div>
+        <div class="dialog-content" v-if="active == 4">
+            <table bgcolor="#FAFAFA" cellpadding="0" style="width: 100%;" class="result">
+                <tr style="width: 100px;">
+                    <td class="title">光头</td>
+                    <td>
+                        <div class="text1" style="margin-bottom: 8px;">{{ resultArr[0] && resultArr[0].itemname}}</div>
+                        <div class="descript">
+                            <div class="item" v-if="resultArr.length && resultArr[0].itemno"><span style="color: #888888;">料号:</span>{{resultArr[0].itemno }}</div>
+                            <div class="item" v-if="resultArr.length && resultArr[0].torque"><span style="color: #888888;">扭矩:</span>{{resultArr[0].torque }}</div>
+                            <div class="item" v-if="resultArr.length && resultArr[0].flh"><span style="color: #888888;">法兰号:</span>{{resultArr[0].flh }}</div>
+                            <div class="item" v-if="resultArr.length && resultArr[0].caliber"><span style="color: #888888;">公称通径:</span>{{resultArr[0].caliber }}</div>
+                            <div class="item" v-if="resultArr.length && resultArr[0].stemmaterial"><span style="color: #888888;">阀杆材质:</span>{{resultArr[0].stemmaterial }}</div>
+                            <div class="item" v-if="resultArr.length && resultArr[0].mainmaterial"><span style="color: #888888;">主体材质:</span>{{resultArr[0].mainmaterial }}</div>
+                        </div>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="title">执行器</td>
+                    <td>
+                        <div class="text1" style="margin-bottom: 8px;">{{ resultArr[1] && resultArr[1].actuatormodel }} {{guangtouParam.content.where.drivetype == '电动' ? ` + 减速箱:${resultArr[1] && resultArr[1].gearboxname}` : '' }}</div>
+                        <div class="descript">
+                            <div class="item" v-if="resultArr.length >= 2 && resultArr[1].torque"><span style="color: #888888;">输出扭矩:</span>{{resultArr[1].torque }}</div>
+                            <div class="item" v-if="resultArr.length >= 2 && resultArr[1].maxruntime"><span style="color: #888888;">开关时间:</span>{{resultArr[1].maxruntime }}</div>
+                            <div class="item" v-if="resultArr.length >= 2 && resultArr[1].speed"><span style="color: #888888;">转速:</span>{{resultArr[1].speed }}</div>
+                            <div class="item" v-if="resultArr.length >= 2 && resultArr[1].handwheelratio"><span style="color: #888888;">减速比:</span>{{resultArr[1].ratio }}</div>
+                            <div class="item" v-if="resultArr.length >= 2 && resultArr[1].supplyvoltage"><span style="color: #888888;">电压:</span>{{resultArr[1].supplyvoltage }}</div>
+                            <div class="item" v-if="resultArr.length >= 2 && resultArr[1].ratedcurrent"><span style="color: #888888;">电流:</span>{{resultArr[1].ratedcurrent }}</div>
+                            <div class="item" v-if="resultArr.length >= 2 && resultArr[1].ratedpower"><span style="color: #888888;">功率:</span>{{resultArr[1].ratedpower }}</div>
+                        </div>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="title">辅件</td>
+                    <td style="padding: 0;">
+                        <tr style="border-bottom: 1px solid #DDDDDD;" class="custom-table">
+                            <div>定位器</div>
+                            <div class="text1">{{ resultArr.filter(item => item.itemname == '定位器').length ? resultArr.filter(item => item.itemname == '定位器')[0].model : '-' }}</div>
+                            <div>电磁阀</div>
+                            <div class="text1">{{ resultArr.filter(item => item.itemname == '电磁阀').length ? resultArr.filter(item => item.itemname == '电磁阀')[0].model : '-' }}</div>
+                        </tr>
+
+                        <tr class="custom-table">
+                            <div>限位开关</div>
+                            <div class="text1">{{ resultArr.filter(item => item.itemname == '限位开关').length ? resultArr.filter(item => item.itemname == '限位开关')[0].model : '-' }}</div>
+                            <div>过滤减压阀</div>
+                            <div class="text1">{{ resultArr.filter(item => item.itemname == '过滤减压阀').length ? resultArr.filter(item => item.itemname == '过滤减压阀')[0].model : '-' }}</div>
+                        </tr>
+                    </td>
+                </tr>
+                <tr>
+                    <td class="title">成品料号</td>
+                    <td class="text1">{{ Object.keys(product).length ? product.itemno||'-' : '' }}</td>
+                </tr>
+                <tr>
+                    <td class="title">{{product.itemno?'牌价':'预估价格'}}</td>
+                    <td class="text2">¥{{ Object.keys(product).length ? tool.formatAmount(product.price,2) : 'xxxxxx' }}</td>
+                </tr>
+            </table>
+        </div>
+        <div class="fixed__btn__panel" v-if="(active == 1 && mode == '手动输入') || active == 3 || active == 4">
+            <el-button size="small" type="primary" @click="next" class="normal-btn-width" v-if="active == 1 && mode == '手动输入'">下一步</el-button>
+            <el-button size="small" type="primary" @click="active=4" class="normal-btn-width" v-if="active == 3" :disabled="$refs.fujianRef.list.length!= 0">下一步</el-button>
+            <el-button size="small" type="primary" @click="close" class="normal-btn-width" v-if="active == 4">完成</el-button>
+        </div>
+    </div>
+  </div>
+</template>
+
+<script>
+import MySelect from '@/optionSystem/FProductManage/modules/select.vue'
+import MyTable from '@/optionSystem/FProductManage/modules/table.vue'
+import SelectBar from '@/optionSystem/FProductManage/modules/selectBar.vue'
+import Aside from '@/optionSystem/FProductManage/modules/aside.vue'
+export default {
+    props:['position'],
+    components:{MySelect,MyTable,SelectBar,Aside},
+    data () {
+        return {
+            items: [
+                {title:'选光头',value:'光头'},
+                {title:'选执行器',value:'执行器'},
+                {title:'选辅件',value:'辅件'},
+                {title:'确认配置',value:'配置'}
+            ],
+            mode:'自动选配',
+            active:1,
+            tableHeight:'400px',
+            excel:'',
+            gangtou:'',
+            resultArr:[],
+            caliber:[],
+            nominalpressure:[],
+            connection:[],
+            bodymaterial:[],
+            stemmaterial:[],
+            plinthmaterial:[],
+            actuatorbrand:[],
+            actuatorname:[],
+            actuatordrivetype:[],
+            flh:[],
+            drivetype:[],
+            bodystructure:[],
+            func:[],
+            guangtouList:[],
+            isFujianShow:false,//辅件是否显示
+            form: {
+                "itemid": 0,
+                "plm_itemextendid": 0,
+                "valvetype": "蝶阀", //阀门类型(固定)
+                "itemno": "", //产品编码(必填,唯一)
+                "itemname": "", //产品名称(必填)
+                "erpitemno": "", //erp品号(必填)
+                "erpitemname": "", //erp品名(必填)
+                "spec": "", //规格尺寸(必填)
+                "model": "", //型号(必填)
+                "material": "", //材质(必填,选项)
+                "marketprice": '',
+                "caliber": "", //公称通径
+                "nominalpressure": [
+                    
+                ], //公称压力
+                "connection": "",
+                "drivetype": [
+             
+                ], //驱动方式
+                "valveplatematerial": "",
+                "bodymaterial": "",
+                "stemmaterial": "",
+                "plinthmaterial": "",
+                "torque": "", //
+                "maxruntime": "", //90°最大运行时间
+                "actuatorbrand":"",//执行器品牌
+                "actuatordrivetype":"",//执行器类型
+                "part_itemids": [
+                    
+                ]
+            },
+            guangtouParam: {
+                "id": 20240718162102,
+                "content": {
+                    "pageNumber": 1,
+                    "pageSize": 9999999,
+                    "where": {
+                        "condition": "",
+                        "caliber": "", //公称通径
+                        "nominalpressure": "", //公称压力
+                        "connection": "", //连接方式
+                        "bodymaterial": "", //阀体材质
+                        "stemmaterial": "", //阀杆材质
+                        "plinthmaterial": "", //阀座材质
+                        "drivetype": "电动" //驱动方式
+                    }
+                },
+            },
+            excelList:[],
+            excelParam: {
+                "id": 20240718162202,
+                "content": {
+                    "itemid": "",//光头id
+                    "pageNumber": 1,
+                    "pageSize": 9999999,
+                    "where": {
+                        "condition1": "",
+                        "condition2": "",
+                        "torque": "", //阀门扭矩
+                        "flh": "", //法兰号
+                        "actuatorbrand": "", //品牌
+                        "actuatorname":'',
+                        "actuatordrivetype": "", //驱动方式
+                        "maxsquarewidth": "", //方阀杆最大宽度
+                        "maxrounddiameter": "" //圆阀杆最大直径
+                    }
+                },
+            },
+            fujianList:[],
+            fujianArr:[],
+            loading:false,
+            fujianParam: {
+                "id": 20240718162402,
+                "content": {
+                    "othertypes": [
+                    ],
+                    "pageNumber": 1,
+                    "pageSize": 300,
+                    "where": {
+                        "actuatorbrand": "" //品牌
+                    }
+                },
+            },
+            timer:null,
+            product:{}
+        }
+    },
+    watch: {
+        'excelParam.content.where.actuatorbrand': {
+            handler (val) {
+                setTimeout(() => {
+                    this.calcTableHieght('excelRef')
+                },500)
+            }
+        },
+        active (val) {
+            switch (val) {
+                case 1:
+                    this.calcTableHieght('guangtouRef')
+                    break;
+                case 2:
+                    this.calcTableHieght('excelRef')
+                    break;
+                case 3:
+                    this.calcTableHieght('fujianRef')
+                    break;
+                default:
+                    break;
+            }
+            if (val == 4) {
+                if (this.guangtouParam.content.where.drivetype == '电动') {
+                    if (this.resultArr[1].gearboxid) this.resultArr.push({parttype:'减速箱',itemid:this.resultArr[1].gearboxid,itemname:this.resultArr[1].gearboxname,actuatorbrand:this.resultArr[1].gearboxbrand})
+                }
+                this.$api.requested({
+                    "id": 2024071916224702,
+                    "content": {
+                        "part_itemids": this.resultArr.map(item => {
+                            return {
+                                parttype:item.parttype,
+                                itemid:item.itemid
+                            }
+                        })
+                    },
+                }).then(res => {
+                    this.product = res.data
+                })
+            }
+        }
+    },
+    methods: {
+        resultRefresh (type) {
+            if (type == '光头') {
+                this.active=1
+                this.resultArr=[]
+                this.fujianArr=[]
+                this.items.splice(2,1)
+            } else if (type == '执行器') {
+                this.active=2
+                this.resultArr.splice(1)
+                this.fujianArr=[]
+            } else {
+                this.fujianArr=[]
+                this.active = 3
+                this.fujianParam.content.othertypes = ['电磁阀','限位开关','过滤减压阀']
+                this.$refs.fujianRef.listData()
+            } 
+        },
+        //手动输入下一步
+        next () {
+            this.$refs.ruleForm.validate(async val => {
+                if (val) {
+                    let data = JSON.parse(JSON.stringify(this.guangtouParam.content.where))
+                    this.selectTarget(data,'主阀')
+                }
+            })
+        },
+        close () {
+            this.active = 1
+            this.guangtouParam.content.where.drivetype = '电动'
+            this.resultArr = []
+            this.fujianArr = []
+            if (this.$refs.ruleForm) {
+                this.$refs.ruleForm.resetFields()
+                this.guangtouParam.content.where.drivetype = '电动'
+            }
+        },
+        //搜索
+        Search (type,position) {
+            let index = 0
+            let whereKeys = Object.keys(this[type].content.where)
+            if (position) {
+                index = whereKeys.indexOf(position) + 1
+            }
+            if (type != 'excelParam') {
+                for (let i = index; i < whereKeys.length - 1; i++) {
+                    if (!position && whereKeys[i].indexOf('condition') != -1) continue
+                    this[type].content.where[whereKeys[i]] = ''            
+                }
+            } else if (type == 'excelParam') {
+                for (let i = index; i < whereKeys.length; i++) {
+                    if (whereKeys[i].indexOf('condition') != -1 || whereKeys[i].indexOf('flh') != -1 || whereKeys[i].indexOf('maxrounddiameter') != -1 || whereKeys[i].indexOf('maxsquarewidth') != -1 || whereKeys[i].indexOf('torque') != -1 || whereKeys[i].indexOf('drivetype') != -1) continue
+                    this[type].content.where[whereKeys[i]] = ''
+                }
+            }
+            switch (type) {
+                case 'guangtouParam':
+                    if (this.loading) return
+                    this.loading = true
+                    whereKeys = whereKeys.filter(item => item != 'caliber')
+                    this.$refs.guangtouRef&&this.$refs.guangtouRef.listData(_changeOption)
+                    break;
+                case 'excelParam':
+                    if (this.loading) return
+                    this.loading = true
+                    this.$nextTick(() => {
+                        this.$refs.excelRef&&this.$refs.excelRef.listData(_changeOption2)
+                    })
+                    break;
+                default:
+                    break;
+            }
+            //更新选项列表
+            let that = this
+            function _changeOption () {
+                that.loading = false
+                let isbreak=false
+                for (let i = 0; i < whereKeys.length; i++) {
+                    if (isbreak) break;
+                    if (whereKeys[i].indexOf('condition') == -1) {
+                        if (that.$refs.guangtouRef.list.length) {
+                            if (i >= index-1 && whereKeys[i]!='drivetype') {
+                                that[whereKeys[i]] = that.$refs.guangtouRef.list[0].option[whereKeys[i]]
+                                if (that[whereKeys[i]].length == 1) {
+                                    if (that.guangtouParam.content.where[position]) that.guangtouParam.content.where[whereKeys[i]] = that[whereKeys[i]][0].value
+                                    if (that.timer) clearTimeout(that.timer)
+                                    that.timer = setTimeout(() => {
+                                        that.$refs.guangtouRef&&that.$refs.guangtouRef.listData()
+                                    })
+                                } else if (that[whereKeys[i]].length > 1) {
+                                    that.guangtouParam.content.where[whereKeys[i]] = ''
+                                }
+
+                                if (that.$refs.guangtouRef.list[0].option[whereKeys[i]].length>1) {
+                                    isbreak = true
+                                }
+                            }
+                        } else {
+                            if (i >= index && whereKeys[i] != 'drivetype') that[whereKeys[i]] = []
+                        }
+                    }
+                }
+            }
+            function _changeOption2 () {
+                that.loading = false
+                let isbreak=false
+                for (let i = 5; i < whereKeys.length; i++) {
+                    if (isbreak) break;
+                    if (whereKeys[i].indexOf('condition') == -1) {
+                        if (that.$refs.excelRef.list.length) {
+                            if (i >= index) {
+                                if (whereKeys[i] != 'drivetype') that[whereKeys[i]] = that.$refs.excelRef.list[0].option[whereKeys[i]]
+                                if (that[whereKeys[i]].length == 1) {
+                                    if (that.excelParam.content.where[position]) that.excelParam.content.where[whereKeys[i]] = that[whereKeys[i]][0].value
+                                    if (that.timer) clearTimeout(that.timer)
+                                    that.timer = setTimeout(() => {
+                                        that.$refs.excelRef&&that.$refs.excelRef.listData()
+                                    })
+                                } else if (that[whereKeys[i]].length > 1 && whereKeys[i] != 'drivetype') {
+                                    that.excelParam.content.where[whereKeys[i]] = ''
+                                }
+                                if (that.$refs.excelRef.list[0].option[whereKeys[i]].length>1) {
+                                    isbreak = true
+                                }
+                            }
+                        } else {
+                            if (i >= index && whereKeys[i] != 'drivetype') that[whereKeys[i]] = []
+                        }
+                    }
+                }
+            }
+        },
+        calcTableHieght (id) {
+            this.$nextTick(() => {
+                let target = this.$refs[id].$el.getBoundingClientRect()
+                let clientHeight = document.body.clientHeight
+                this.tableHeight = clientHeight - target.top - 85 + 'px'
+                
+            })
+        },
+        guangtouChange (val) {
+            switch (val) {
+                case '电动':
+                    this.excelParam = {
+                        "id": 20240718162202,
+                        "content": {
+                            "itemid": 0,//光头id
+                            "pageNumber": 1,
+                            "pageSize": 9999999,
+                            "where": {
+                                "condition1": "",
+                                "condition2": "",
+                                "torque": "", //阀门扭矩
+                                "flh": "", //法兰号
+                                "actuatorbrand": "", //品牌
+                                "actuatorname":'',
+                                "actuatordrivetype": "", //驱动方式
+                                "maxsquarewidth": "", //方阀杆最大宽度
+                                "maxrounddiameter": "" //圆阀杆最大直径
+                            }
+                        },
+                    }
+                    break;
+                case '气动':
+                    
+                this.excelParam = {
+                    "id": 20240718162302,
+                    "content": {
+                        "pageNumber": 1,
+                        "pageSize": 9999999,
+                        "where": {
+                            "condition1": "",
+                            "torque": "", //阀门扭矩
+                            "flh": "", //法兰号
+                            "maxsquarewidth": "", //方阀杆最大宽度
+                            "maxrounddiameter": "", //圆阀杆最大直径
+                            "actuatorbrand": "", //品牌
+                            "actuatorname":'',
+                            "func": "", //功能
+                            "bodystructure": "", //结构
+                            "drivetype":'气动调节',
+                        }
+                    },
+                }
+                break;
+                default:
+                    break;
+            }
+        },
+        //选择目标
+        selectTarget (data,type) {
+            data.parttype = type
+            this.resultArr.push(data)
+            if (type == '主阀') {
+                this.guangtouChange(this.guangtouParam.content.where.drivetype)
+                this.excelParam.content.itemid = data.itemid
+                this.excelParam.content.where.torque = data.torque
+                this.excelParam.content.where.flh = data.flh
+                this.excelParam.content.where.maxsquarewidth = data.maxsquarewidth
+                this.excelParam.content.where.maxrounddiameter = data.maxrounddiameter
+                this.$nextTick(() => {
+                    this.$refs.excelRef.listData(() => {
+                        if (!this.$refs.excelRef.list.length) return
+                        this.actuatorbrand = this.$refs.excelRef.list[0].option.actuatorbrand
+                        this.bodystructure = this.$refs.excelRef.list[0].option.bodystructure
+                        this.func = this.$refs.excelRef.list[0].option.func
+                    })
+                })
+            this.active = 2
+            } else if (type == '执行器') {
+                this.resultArr[1].itenname = this.resultArr[1].actuatorname
+                this.resultArr[1].itemno = this.resultArr[1].actuatorno
+
+                if (this.excelParam.content.where.drivetype == '气动调节') {
+                    this.fujianParam.content.othertypes = ['定位器','过滤减压阀']
+                } else {
+                    this.fujianParam.content.othertypes = ['电磁阀','限位开关','过滤减压阀']
+                }
+                data.itemid = data.actuatorid
+                data.itemname = data.actuatorname
+                if (this.guangtouParam.content.where.drivetype == '气动') {
+                    this.active = 3
+                    this.$refs.fujianRef.listData()
+                } else {
+                    this.active = 4
+                }
+            } else {
+                if (this.fujianArr.filter(item=>item.itemid==data.itemid).length) return
+                this.fujianParam.content.othertypes.splice(this.fujianParam.content.othertypes.indexOf(data.itemname),1)
+                this.loading = true
+                this.$refs.fujianRef.listData(()=> {
+                    this.fujianArr.push(data)
+                    this.loading = false
+                })
+                
+            }
+            this.resultArr[this.resultArr.length - 1] = data
+        },
+        //重置
+        refresh () {
+            this.resultArr = []
+            this.fujianArr = []
+            this.dialogVisible = false
+            this.active = 1
+            this.items = this.items.splice(0,2)
+        },
+        //选项
+        optionsList () {
+            this.$store.dispatch("optiontypeselect", "caliber").then((res) => {
+                this.caliber = res.data;
+                console.log(this.caliber, "公称通径");
+            });
+            this.$store.dispatch("optiontypeselect", "pressure").then((res) => {
+                this.nominalpressure = res.data;
+                console.log(this.nominalpressure, "公称压力");
+            });
+            this.$store.dispatch("optiontypeselect", "connection").then((res) => {
+                this.connection = res.data;
+                console.log(this.connection, "连接方式");
+            });
+            this.$store.dispatch("optiontypeselect", "bodymaterial").then((res) => {
+                this.bodymaterial = res.data;
+                console.log(this.bodymaterial, "阀体材质");
+            });
+            this.$store.dispatch("optiontypeselect", "stemmaterial").then((res) => {
+                this.stemmaterial = res.data;
+                console.log(this.stemmaterial, "阀杆材质");
+            });
+            this.$store.dispatch("optiontypeselect", "plinthmaterial").then((res) => {
+                this.plinthmaterial = res.data;
+                console.log(this.plinthmaterial, "阀座材质");
+            });
+            this.drivetype = [{remarks:'电动',value:'电动'},{remarks:'气动',value:'气动'}];
+            console.log(this.drivetype, "驱动方式");
+            this.$store.dispatch("optiontypeselect", "actuatorbrand").then((res) => {
+                this.actuatorbrand = res.data;
+                console.log(this.actuatorbrand, "执行器品牌");
+            });
+            this.$store.dispatch("optiontypeselect", "actuatordrivetype").then((res) => {
+                this.actuatordrivetype = res.data;
+                console.log(this.actuatordrivetype, "执行器驱动方式");
+            });
+            this.$store.dispatch("optiontypeselect", "bodystructure").then((res) => {
+                this.bodystructure = res.data;
+                console.log(this.bodystructure, "结构");
+            });
+            this.$store.dispatch("optiontypeselect", "func").then((res) => {
+                this.func = res.data;
+                console.log(this.func, "功能");
+            });
+            this.$store.dispatch("optiontypeselect", "flh").then((res) => {
+                this.flh = res.data;
+                console.log(this.func, "法兰号");
+            });
+        }
+    },
+    created () {
+        this.optionsList()
+    },
+    mounted () {
+        this.calcTableHieght('guangtouRef')
+    }
+}
+</script>
+
+<style scoped>
+    /deep/.ant-steps-item-finish > .ant-steps-item-container > .ant-steps-item-content > .ant-steps-item-title::after {
+        background: #3874F6 !important;
+    }
+    /deep/.ant-steps-item-finish .ant-steps-item-icon {
+        background: none !important;
+    }
+    /deep/.ant-steps-item-icon {
+        background: #3874F6;
+        height: 32px !important;
+    }
+    /deep/.ant-steps-item-wait .ant-steps-item-icon {
+        background: none !important;
+    }
+    /deep/.ant-steps-item-active .ant-steps-item-title {
+        color:#3874F6 !important;
+        font-weight: bold;
+    }
+    .scroll {
+        height: calc(100vh - 60px);
+        overflow-y: scroll;
+    }
+    ::-webkit-scrollbar {
+        display: none;
+    }
+    .select-info {
+        background: #F5F6FA;
+        font-family: Microsoft YaHei, Microsoft YaHei;
+        width: 240px;
+        border-right: 1px #999999 solid;
+        z-index: 99999991;
+        flex-shrink: 0;
+        word-wrap: break-word;
+    }
+    .select-info .info-title {
+        font-weight: bold;
+        font-size: 20px;
+        color: #333333;
+        padding: 10px 20px;
+        border-bottom: 1px solid #D9D9D9;
+    }
+    .select-info .product-wrapper {
+        padding: 0 20px;
+    }
+
+    .select-info .product-wrapper .product {
+        padding-bottom:20px;
+        border-bottom: #D9D9D9 1px solid;
+    }
+    .select-info .product-wrapper .product:last-child {
+        border-bottom: none !important;
+    }
+    .select-info .product-wrapper .product .product-header {
+        display: flex;
+        align-items: center;
+        align-content: center;
+        padding: 10px 0;
+    }
+    .select-info .product-wrapper .product .product-header span:last-child {
+        color: #3874F6;
+        margin-left: 18px;
+        cursor: pointer;
+    }
+    .select-info .product-wrapper .product .product-header .title {
+        font-weight: bold;
+        font-size: 14px;
+        color: #333333;
+    }
+    .select-info .product-wrapper .product .product-header img {
+        width: 12px;
+        height: 12px;
+    }
+    .select-info .product-wrapper .product .product-name {
+        font-weight: 400;
+        font-size: 14px;
+        color: #555555;
+    }
+    .select-info .product-wrapper .product .attrite {
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        font-weight: 400;
+        font-size: 12px;
+        color: #999999;
+        padding-top: 10px;
+    }
+    .select-info .product-wrapper .product .attrite .attrite-title {
+        color: #555555;
+    }
+    .select-info .product-wrapper .product .attrite .attrite-value {
+    }
+
+    .select-info .product-wrapper .product .attrite2 {
+        display: flex;
+        flex-direction: column;
+        font-weight: 400;
+        font-size: 12px;
+        color: #999999;
+        padding-top: 10px;
+    }
+    .select-info .product-wrapper .product .attrite2 .attrite-title {
+        color: #555555;
+        margin-bottom: 5px;
+    }
+    .select-info .product-wrapper .product .attrite2 .attrite-value {
+    }
+
+    .select-info .product-wrapper .product {
+        display: flex;
+        flex-direction: column;
+    }
+
+
+    .drawer__panel {
+        font-family: Source Han Sans SC, Source Han Sans SC;
+        padding: 10px 40px !important;
+        flex: 1;
+        overflow: hidden;
+    }
+    .my-steps {
+        padding: 0px 68px;
+    }
+    .product-info {
+        padding: 10px 20px;
+        border: 1px solid #3874F6;
+        background: rgba(56, 116, 246, 0.08);
+        margin-top: 5px;
+        border-radius: 2px;
+    }
+    .product-info .title {
+        margin-bottom: 16px;
+        font-weight: bold;
+        color: #333333;
+        font-size: 16px !important;
+    }
+    .product-info .info-content {
+        display: flex;
+        flex-wrap: wrap;
+    }
+    .product-info .info-content .info-item {
+        display: flex;
+        flex-direction: column;
+    } 
+    .product-info .info-content .info-item .info-title {
+        margin-bottom: 4px;
+        display: flex;
+        align-content: center;
+        align-items: center;
+    }
+    .product-info .info-content .info-item .info-title .title {
+        margin-bottom: 0px !important;
+    }
+    .product-info .info-content .info-item .info-title div {
+        margin-right: 20px;
+        font-size: 14px !important;
+    }
+    .product-info .info-content .info-item .info-title span {
+        font-size: 14px;
+        color: #3874F6 !important;
+        cursor: pointer;
+        display: inline-block;
+        display: flex;
+        align-items: center;
+        align-content: center;
+    }
+    .product-info .info-content .info-item .info-title span img {
+        width: 12px;
+        height: 12px;
+        margin-right: 4px;
+    }
+    .product-info .info-content .info-item .name {
+        font-weight: 400;
+        font-size: 14px;
+        color: #555555;
+    }
+    .product-info .info-content .info-item .names {
+        font-weight: 400;
+        font-size: 14px;
+        color: #555555;
+        display: flex;
+    }
+    .product-info .info-content .info-item .names div {
+        margin-right: 20px;
+    }
+    .product-info .info-content .info-item .names div span {
+        margin-right: 10px;
+    }
+    .product-content .block {
+        margin-top: 30px;
+        padding-left: 20px;
+    }
+    .product-content .block .header {
+        display: flex;
+        align-content: center;
+        align-items: center;
+        margin-bottom: 20px;
+    }
+    .product-content .block .header .title {
+        font-size: 16px;
+        font-weight: bold;
+        margin-right: 20px;
+    }
+    .product-content .block .header .handle {
+        display: flex;
+    }
+    
+    .dialog-content {
+
+    }
+    .dialog-content .option-line {
+        display: flex;
+        margin-top: 10px;
+    }
+    .dialog-content .option-line .item {
+        display: flex;
+        align-items: center;
+        font-size: 14px;
+        font-weight: 500px;
+        margin-right: 20px;
+    }
+    .dialog-content .option-line .item .label {
+        width: 70px;
+        flex-shrink: 0;
+        text-align-last: justify;
+        margin-right: 15px;
+        color: #000000 !important;
+    }
+    .descript {
+       font-size:12px;
+       color:red;
+    }
+    table,td,tr {
+        border-collapse: collapse;
+    }
+    td {
+        padding: 20px 20px;
+    }
+    table,td {
+        border: 1px solid #DDDDDD;
+    }
+    .result{
+        margin-top: 20px;
+    }
+    .result .title {
+        font-family: Source Han Sans SC, Source Han Sans SC;
+        font-weight: bold;
+        font-size: 16px;
+        color: #333333;
+        padding: 34px 20px;
+    }
+    .custom-table {
+        border: none;
+        display: flex;
+        height: 64px;
+        align-items: center;
+        align-content: center;
+    }
+    .custom-table div{
+        border-right: 1px solid #DDDDDD;
+        height: 100%;
+        display: flex;
+        align-items: center;
+        align-content: center;
+        padding-left: 20px;
+    }
+    .custom-table div:nth-child(1) {
+        width: 120px;
+    }
+    .custom-table div:nth-child(2) {
+        flex: 1;
+    }
+    .custom-table div:nth-child(3) {
+        width: 120px;
+    }
+    .custom-table div:nth-child(4) {
+        flex: 1;
+    }
+    .descript {
+        display: flex;
+    }
+    .descript .item {
+        font-family: Source Han Sans SC, Source Han Sans SC;
+        font-weight: 400;
+        font-size: 14px;
+        color: #333333;
+        margin-right: 40px;
+    }
+    .descript .item:last-child {
+        margin-right: 0 !important;
+    }
+    .text1 {
+        font-family: Source Han Sans SC, Source Han Sans SC;
+        font-weight: bold;
+        font-size: 16px;
+        color: #3874F6;
+    }
+    .text2 {
+        font-family: Source Han Sans SC, Source Han Sans SC;
+        font-weight: bold;
+        font-size: 16px;
+        color: #E80000;
+    }
+
+</style>

+ 9 - 0
src/router/optionSystem.js

@@ -148,6 +148,15 @@ const HManagement = [
           component: () => import(/* webpackChunkName: "about" */ '@/optionSystem/optionOrder/detail/index.vue')
         },]
     },
+    {
+      path: '/diefaOption',
+      name: 'diefaOption',
+      meta: {
+        title: '蝶阀选型',
+        ast_nav: true
+      },
+      component: () => import(/* webpackChunkName: "about" */ '@/optionSystem/valveOption/DieFa.vue'),
+    },
 ]
 
 export default HManagement