Browse Source

Merge branch 'BVS' into allTestUrgent

qymljy 5 days ago
parent
commit
fdc527e836

BIN
.DS_Store


+ 21 - 19
src/optionSystem/calculationAndSelection/index.vue

@@ -249,34 +249,34 @@
           </h3>
           <div class="mt-10">
             <p style="display: inline-block; width: 100px;;font-size:14px">{{$t('节流件类型')}}: </p>
-            <el-select v-model="valveSelection.throttletype" :placeholder="$t('请选择节流件类型')" size="small">
+            <el-select v-model="valveSelection.throttletype" :placeholder="$t('请选择')" size="small">
               <el-option v-for="item in throttletype" :key="item.value" :label="item.remarks" :value="item.value"></el-option>
             </el-select>&nbsp;
             <!-- <el-button type="primary" size="small" disabled>开始选型</el-button> -->
           </div>
           <div class="mt-10">
             <p style="display: inline-block; width: 100px;font-size:14px">{{$t('节流件')}}: </p>
-            <el-select :disabled="!valveSelection.throttletype" v-model="valveSelection.throttleValue" :placeholder="$t('请选择节流件类型')" size="small" @visible-change="queryThrottle">
+            <el-select :disabled="!valveSelection.throttletype" v-model="valveSelection.throttleValue" :placeholder="$t('请选择节流件')" size="small" @visible-change="queryThrottle">
               <el-option v-for="item in throttle" :key="item.value" :label="item.itemname" :value="item.itemid"></el-option>
             </el-select>&nbsp;
-            <el-button type="primary" :disabled="!valveSelection.throttleValue" size="small" @click="beginSelection(() => {},'table')">{{$t('开始选型')}}</el-button>
+            <el-button type="primary" :disabled="!valveSelection.throttleValue" size="small" @click="beginSelection(() => {},'table')">{{$t('选型验证')}}</el-button>
           </div>
           <el-table :data="tableData" style="width: 100%" size="mini" border>
             <el-table-column prop="workingCondition" :label="$t('工况')" align="center"></el-table-column>
-              <el-table-column prop="conditionName" :label="$t('条件名称')" align="center"></el-table-column>
-              <el-table-column prop="q" :label="$t('流量') + '(q)'" align="center"></el-table-column>
-              <el-table-column prop="p1" :label="$t('阀前压力') + '(p1)'" align="center"></el-table-column>
-              <el-table-column prop="p2" :label="$t('阀后压力') + '(p2)'" align="center"></el-table-column>
-            <el-table-column prop="p" :label="$t('前后压差') + '(p)'" align="center"></el-table-column>
-            <el-table-column prop="pv" :label="$t('饱和蒸汽压') + '(pV)'" align="center"></el-table-column>
-            <el-table-column prop="kv" :label="$t('流量系数') + '(kv)'" align="center"></el-table-column>
-            <el-table-column prop="li" :label="$t('开度') + '(li)'" align="center"></el-table-column>
-            <el-table-column prop="ldc" :label="$t('临界汽蚀系数') + 'σc(Idc)'" align="center"></el-table-column>
-            <el-table-column prop="dc" :label="$t('气蚀系数') + 'σ(dc)'" align="center"></el-table-column>
-            <el-table-column prop="fi" :label="$t('压力恢复系数') + 'FI(fi)'" align="center"></el-table-column>
-            <el-table-column prop="fr" :label="$t('流阻系数') + 'ζ(fr)'" align="center"></el-table-column>
-            <el-table-column prop="fkv" :label="$t('阻塞流修正系数') + 'Fkv(fkv)'" align="center"></el-table-column>
-            <el-table-column prop="v" :label="$t('流速') + 'V(v)'" align="center"></el-table-column>
+            <el-table-column prop="conditionName" :label="$t('条件名称')" align="center"></el-table-column>
+            <el-table-column prop="q" :label="$t('流量') + '(m³/h)'" align="center"></el-table-column>
+            <el-table-column prop="p1" :label="$t('阀前压力') + '(kPa)'" align="center"></el-table-column>
+            <el-table-column prop="p2" :label="$t('阀后压力') + '(kPa)'" align="center"></el-table-column>
+            <el-table-column prop="p" :label="$t('前后压差') + '(kPa)'" align="center"></el-table-column>
+            <el-table-column prop="pv" :label="$t('饱和蒸汽压') + '(kPa)'" align="center"></el-table-column>
+            <el-table-column prop="kv" :label="$t('Kv')" align="center"></el-table-column>
+            <el-table-column prop="li" :label="$t('开度') + '(%)'" align="center"></el-table-column>
+            <el-table-column prop="ldc" :label="$t('临界汽蚀系数')" align="center"></el-table-column>
+            <el-table-column prop="dc" :label="$t('气蚀系数')" align="center"></el-table-column>
+            <el-table-column prop="fi" :label="$t('压力恢复系数')" align="center"></el-table-column>
+            <el-table-column prop="fr" :label="$t('流阻系数')" align="center"></el-table-column>
+            <el-table-column prop="fkv" :label="$t('阻塞流修正系数')" align="center"></el-table-column>
+            <el-table-column prop="v" :label="$t('流速') + '(m/h)'" align="center"></el-table-column>
           </el-table>
           <!-- 开度设置 -->
           <el-divider content-position="left">{{$t('开度设置')}}</el-divider>
@@ -773,11 +773,13 @@ export default {
         // 处理表格数据
         const minData = {
           ...res.data.min,
+          li: res.data.min.li * 100,
           workingCondition: this.$t('通用'),
           conditionName: this.$t('最小流量')
         }
         const maxData = {
           ...res.data.max,
+          li: res.data.max.li * 100,
           workingCondition: this.$t('通用'),
           conditionName: this.$t('最大流量')
         }
@@ -1079,13 +1081,13 @@ export default {
         // 设置坐标轴
         this.flowChartInstance.axis('opening', {
           title: {
-            text: this.$t('开度 (%)')
+            text: this.$t('压差')
           }
         })
         
         this.flowChartInstance.axis('value', {
           title: {
-            text: this.$t('数值')
+            text: this.$t('流量')
           }
         })
         

+ 26 - 18
src/optionSystem/optionOrder/detail/indexCalc.vue

@@ -19,6 +19,8 @@
       "
     >
       <div slot="slot0">
+        <h3 style="color:#333">选型结果</h3>
+        <SetOrderCalc class="mt-10"></SetOrderCalc>
         <el-descriptions title="环境条件" :column="4">
             <el-descriptions-item label="大气压 (mH₂O)">{{mainData.calculate.pa}}</el-descriptions-item>
             <el-descriptions-item label="重力加速度 (m/s²)">{{mainData.calculate.g}}</el-descriptions-item>
@@ -42,19 +44,19 @@
         <el-table :data="mainData.conditions" style="width: 100%" size="mini" border>
           <el-table-column prop="workingCondition" label="工况" align="center"></el-table-column>
           <el-table-column prop="conditionName" label="条件名称" align="center"></el-table-column>
-          <el-table-column prop="q" label="流量(q)" align="center"></el-table-column>
-          <el-table-column prop="p1" label="阀前压力(p1)" align="center"></el-table-column>
-          <el-table-column prop="p2" label="阀后压力(p2)" align="center"></el-table-column>
-          <el-table-column prop="p" label="前后压差(p)" align="center"></el-table-column>
-          <el-table-column prop="pv" label="饱和蒸汽压(pV)" align="center"></el-table-column>
-          <el-table-column prop="kv" label="KV(kv)" align="center"></el-table-column>
-          <el-table-column prop="li" label="开度(li)" align="center"></el-table-column>
-          <el-table-column prop="ldc" label="临界汽蚀系数σc(Idc)" align="center"></el-table-column>
-          <el-table-column prop="dc" label="气蚀系数σ(dc)" align="center"></el-table-column>
-          <el-table-column prop="fi" label="压力恢复系数FI(fi)" align="center"></el-table-column>
-          <el-table-column prop="fr" label="流阻系数ζ(fr)" align="center"></el-table-column>
-          <el-table-column prop="fkv" label="阻塞流修正系数Fkv(fkv)" align="center"></el-table-column>
-          <el-table-column prop="v" label="流速V(v)" align="center"></el-table-column>
+          <el-table-column prop="q" label="流量(m³/h)" align="center"></el-table-column>
+          <el-table-column prop="p1" label="阀前压力(kPa)" align="center"></el-table-column>
+          <el-table-column prop="p2" label="阀后压力(kPa)" align="center"></el-table-column>
+          <el-table-column prop="p" label="前后压差(kPa)" align="center"></el-table-column>
+          <el-table-column prop="pv" label="饱和蒸汽压(kPa)" align="center"></el-table-column>
+          <el-table-column prop="kv" label="Kv" align="center"></el-table-column>
+          <el-table-column prop="li" label="开度(%)" align="center"></el-table-column>
+          <el-table-column prop="ldc" label="临界汽蚀系数" align="center"></el-table-column>
+          <el-table-column prop="dc" label="气蚀系数" align="center"></el-table-column>
+          <el-table-column prop="fi" label="压力恢复系数" align="center"></el-table-column>
+          <el-table-column prop="fr" label="流阻系数" align="center"></el-table-column>
+          <el-table-column prop="fkv" label="阻塞流修正系数" align="center"></el-table-column>
+          <el-table-column prop="v" label="流速(m/h)" align="center"></el-table-column>
         </el-table>
         
         <!-- 图表区域 -->
@@ -79,7 +81,7 @@
               </div>
               <!-- 流量开度曲线图 -->
               <div v-if="showFlowChart" class="chart-container">
-                <el-divider content-position="left">流量开度曲线图</el-divider>
+                <el-divider content-position="left">流量-压差-开度曲线图</el-divider>
                 <div id="flowOpeningChart" style="width: 100%; height: 400px;"></div>
               </div>
             </el-col>
@@ -93,9 +95,10 @@
   <script>
 import Table from "@/optionSystem/FProductManage/modules/table";
 import SetOrder from "./modules/setOrder.vue";
+import SetOrderCalc from "./modules/setOrderCalc.vue";
 export default {
   name: "detail",
-  components: { Table, SetOrder },
+  components: { Table, SetOrder, SetOrderCalc },
   provide() {
     return {
       resultArrs: () => this.$refs.Product.resultArr,
@@ -103,7 +106,10 @@ export default {
   },
   data() {
     return {
-      mainData: {},
+      mainData: {
+        calculate: {},
+        conditions: []
+      },
       mainAreaData: {},
       chartData: {},
       // 图表显示控制
@@ -131,11 +137,13 @@ export default {
       this.mainData = res.data;
       const minData = {
         ...res.data.conditions[0],
+        li: res.data.conditions[0].li * 100,
         workingCondition: '通用',
         conditionName: '最小流量'
       }
       const maxData = {
         ...res.data.conditions[1],
+        li: res.data.conditions[0].li * 100,
         workingCondition: '通用',
         conditionName: '最大流量'
       }
@@ -223,13 +231,13 @@ export default {
          // 设置坐标轴
          this.flowChartInstance.axis('opening', {
            title: {
-             text: '开度 (%)'
+             text: '压差'
            }
          })
          
          this.flowChartInstance.axis('value', {
            title: {
-             text: '数值'
+             text: '流量'
            }
          })
          

+ 220 - 0
src/optionSystem/optionOrder/detail/modules/setOrderCalc.vue

@@ -0,0 +1,220 @@
+<template>
+    <table bgcolor="#FAFAFA" cellpadding="0" style="width: 100%;" class="result">
+        <tr style="width: 100px;">
+            <td class="title">{{$t('光头')}}</td>
+            <td>
+                <div class="text1" v-if="!resultArr[0].itemname && !resultArr[0].actuatorbrand">-</div>
+                <div v-else>
+                    <div class="text1" style="margin-bottom: 8px;">
+                        <el-tag style="margin-right: 10px;" size="small" type="warning">{{ resultArr[0] && resultArr[0].actuatorbrand || '无品牌' }}</el-tag>
+                        <span>{{ resultArr[0] && resultArr[0].itemname || '无'}}</span>
+                    </div>
+
+                    <div class="descript">
+                        <div class="item" v-if="resultArr.length && resultArr[0].itemno"><span style="color: #888888;">{{$t('料号')}}:</span>{{resultArr[0].itemno }}</div>
+                        <div class="item" v-if="resultArr.length && resultArr[0].torque"><span style="color: #888888;">{{$t('扭矩')}}:</span>{{resultArr[0].torque }}</div>
+                        <div class="item" v-if="resultArr.length && resultArr[0].flh"><span style="color: #888888;">{{$t('法兰号')}}:</span>{{resultArr[0].flh.join('-') }}</div>
+                        <div class="item" v-if="resultArr.length && resultArr[0].caliber"><span style="color: #888888;">{{$t('公称通径')}}:</span>{{resultArr[0].caliber }}</div>
+                        <div class="item" v-if="resultArr.length && resultArr[0].nominalpressure"><span style="color: #888888;">{{$t('公称压力')}}:</span>{{ tool.nominalPressureSet(resultArr[0].nominalpressure) }}</div>
+                        <div class="item" v-if="resultArr.length && resultArr[0].stemmaterial"><span style="color: #888888;">{{$t('阀杆材质')}}:</span>{{resultArr[0].stemmaterial }}</div>
+                        <div class="item" v-if="resultArr.length && resultArr[0].mainmaterial"><span style="color: #888888;">{{$t('主体材质')}}:</span>{{resultArr[0].mainmaterial }}</div>
+                    </div>
+                </div>
+            </td>
+        </tr>
+        <tr>
+            <td class="title">{{$t('节流件')}}</td>
+            <td>
+                <div class="text1" style="margin-bottom: 8px;">
+                    <el-tag style="margin-right: 10px;" size="small" type="warning">{{ resultArr[1] && resultArr[1].actuatorbrand || '无品牌' }}</el-tag>
+                    <span>{{ resultArr[1].itemname || '无' }}</span>
+                </div>
+                <div class="descript">
+                    <!-- <div class="item" v-if="resultArr.length >= 2 && resultArr[1].actuatorname"><span style="color: #888888;">{{$t('执行器名称')}}:</span>{{resultArr[1].actuatorname }}</div> -->
+                    <div class="item" v-if="resultArr.length >= 2 && resultArr[1].itemno"><span style="color: #888888;">{{$t('节流件料号')}}:</span>{{resultArr[1].itemno }}</div>
+                    <div class="item" v-if="resultArr.length >= 2 && resultArr[1].itemname"><span style="color: #888888;">{{$t('节流件类型')}}:</span>{{resultArr[1].throttletype }}</div>
+                    <div class="item" v-if="resultArr.length >= 2 && resultArr[1].itemname"><span style="color: #888888;">{{$t('Kv100')}}:</span>{{resultArr[1].kv100 }}</div>
+                </div>
+            </td>
+        </tr>
+        <!-- <tr>
+            <td class="title">{{$t('辅件')}}</td>
+            <td style="padding: 0;">
+                <tr style="border-bottom: 1px solid #DDDDDD;" class="custom-table">
+                    <div style="color: #333333;">{{$t('定位器')}}</div>
+                    <div class="text1">
+                        <el-tag style="margin-right: 10px;" size="small" type="warning" v-if="resultArr.filter(item => item.itemname == '定位器').length ">{{resultArr.filter(item => item.itemname == '定位器')[0].actuatorbrand }}</el-tag>
+                        <span>{{ resultArr.filter(item => item.itemname == '定位器').length ? resultArr.filter(item => item.itemname == '定位器')[0].model : '-' }}</span>
+                    </div>
+                    <div style="color: #333333;">{{$t('电磁阀')}}</div>
+                    <div class="text1">
+                        <el-tag style="margin-right: 10px;" size="small" type="warning" v-if="resultArr.filter(item => item.itemname == '电磁阀').length ">{{resultArr.filter(item => item.itemname == '电磁阀')[0].actuatorbrand }}</el-tag>
+                        <span>{{ resultArr.filter(item => item.itemname == '电磁阀').length ? resultArr.filter(item => item.itemname == '电磁阀')[0].model : '-' }}</span>
+                    </div>
+                </tr>
+
+                <tr class="custom-table">
+                    <div style="color: #333333;">{{$t('限位开关')}}</div>
+                    <div class="text1">
+                        <el-tag style="margin-right: 10px;" size="small" type="warning" v-if="resultArr.filter(item => item.itemname == '限位开关').length ">{{resultArr.filter(item => item.itemname == '限位开关')[0].actuatorbrand }}</el-tag>
+                        <span>{{ resultArr.filter(item => item.itemname == '限位开关').length ? resultArr.filter(item => item.itemname == '限位开关')[0].model : '-' }}</span>
+                    </div>
+                    <div style="color: #333333;">{{$t('过滤减压阀')}}</div>
+                    <div class="text1">
+                        <el-tag style="margin-right: 10px;" size="small" type="warning" v-if="resultArr.filter(item => item.itemname == '过滤减压阀').length ">{{resultArr.filter(item => item.itemname == '过滤减压阀')[0].actuatorbrand }}</el-tag>
+                        <span>{{ resultArr.filter(item => item.itemname == '过滤减压阀').length ? resultArr.filter(item => item.itemname == '过滤减压阀')[0].model : '-' }}</span>
+                    </div>
+                </tr>
+            </td>
+        </tr> -->
+        <tr>
+            <td class="title">{{$t('成品料号')}}</td>
+            <td class="text1" style="height: 100%;"><span>{{ Object.keys(product).length ? product.itemno||'-' : '' }}</span></td>
+        </tr>
+        <tr>
+            <td class="title">{{$t(product.itemno?'牌价':'最低经销价')}}</td>
+            <td class="text2">
+                ¥{{ Object.keys(product).length ? tool.formatAmount(product.price,2) : 'xxxxxx' }}
+                <div style="color:#1C1919;font-weight: normal;font-size: 12px;">*{{$t('非标准产品,当前价格仅供参考')}}!</div>
+            </td>
+        </tr>
+    </table>
+</template>
+
+<script>
+export default {
+    data () {
+        return {
+            resultArr:[],
+            product:{}
+        }
+    },
+    methods: {
+        listData () {
+            this.$api.requested({
+                "id": 20240718162002,
+                "content": {
+                    "sa_lectotypecfgid": this.$route.query.id
+                },
+            }).then(res => {
+                console.log("123123321",res)
+                this.resultArr = res.data
+                // 判断数组中是否存在parttype为'主阀'的项,如果没有则在第一行插入一条空数据
+                const hasMainValve = this.resultArr.some(item => item.parttype === '主阀')
+                if (!hasMainValve) {
+                    this.resultArr.unshift({
+                        parttype: '主阀',
+                        actuatorbrand: '',
+                        itemname: '',
+                        itemno: '',
+                        torque: '',
+                        flh: [],
+                        caliber: '',
+                        nominalpressure: '',
+                        stemmaterial: '',
+                        mainmaterial: '',
+                        itemid: ''
+                    })
+                }
+                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
+                })
+            })
+        }
+    },
+    created () {
+        this.listData()
+    }
+}
+</script>
+
+<style scoped>
+.descript {
+    font-size:12px;
+    color:red;
+    display: flex;
+    flex-wrap: wrap;
+}
+table,td,tr {
+    border-collapse: collapse;
+}
+td {
+    padding: 10px;
+}
+table,td {
+    border: 1px solid #DDDDDD;
+}
+.result{
+    margin-top: 10px;
+}
+.result .title {
+    font-family: Source Han Sans SC, Source Han Sans SC;
+    font-weight: bold;
+    font-size: 16px;
+    color: #333333;
+    padding: 10px;
+    min-width: 120px;
+}
+.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>

+ 15 - 0
src/optionSystem/optionOrder/index.vue

@@ -34,6 +34,21 @@
           ></el-option>
         </el-select>
       </div>
+      <div class="mt-10">
+        <label class="search__label">{{ $t("选型类型") }}:</label>
+        <el-select
+          class="inline-24"
+          v-model="selectParam.valvetype"
+          :placeholder="$t('请选择状态')"
+          @change="selectStatusChange"
+          size="small"
+          clearable
+        >
+          <el-option :label="$t(`计算选型`)" value="计算选型"></el-option>
+          <el-option :label="$t(`蝶阀`)" value="蝶阀"></el-option>
+        </el-select>
+      </div>
+      
       <div class="mt-10" style="margin-right: 10px">
         <label class="search__label">{{ $t("选型时间") }}:</label>
         <el-date-picker