tanghaolin
2025-04-07 fb5bec5a9659d2a00c0eed835c6dcd4f91cd7508
src/views/SPump/Select/ByPara2/components/selPumpSeries.vue
@@ -1,14 +1,14 @@
<template>
  <div class="productSeries">
    <div id="productLines" style="height: 100%; position: relative; overflow: auto">
      <div class="sticky-container" style="height: 0.55rem">
        <div style=" width: 100%; max-width: 5.36rem; margin-top: 0rem; top: 0rem; bottom: auto; "
      <div class="sticky-container" style="height: 55px">
        <div style=" width: 100%; max-width: 536px; margin-top: 0px; top: 0px; bottom: auto; "
          class="sticky is-anchored is-at-top">
          <div id="productlinePicker">
            <div class="row">
              <div class="columns">
                <ul class="menu head-tool-style">
                  <li style="margin-right: 0.05rem;height: unset;">
                  <li style="margin-right: 5px;height: unset;">
                    <el-checkbox class="select_all_style" v-model="state.m_isSelectAllSeries"
                      @change="clickSelAllSeries" v-if="state.m_selSeriesMethod.current == 0"><span>
                        {{ state.m_isSelectAllSeries ? t("selectPage.reselect.TR") : t("selectPage.selectAll.TR") }}
@@ -38,7 +38,7 @@
      <!-- 按类型下拉 -->
      <div class="row" id="prod_line_filters" v-show="state.m_selSeriesMethod.current == 0">
        <div class="shrink columns" style="display: flex; align-items: center">
          <label class="c-form-label" style="width: 0.65rem; margin-bottom: 0.16rem" for="comboxCatalog">{{
          <label class="c-form-label" style="width: 65px; margin-bottom: 16px" for="comboxCatalog">{{
            t("selectPage.type.TR") }}:</label>
          <select name="comboxCatalog" class="small" v-model="state.m_selCatalogID" @change="changeCatalog">
            <option v-for="item in state.m_allCatalogList" :key="item.ID" :value="item.ID">
@@ -48,17 +48,17 @@
        </div>
      </div>
      <!-- 按类型分类 -->
      <div style="height: calc(100% - 1.1rem); overflow: auto" v-if="state.m_selSeriesMethod.current == 0">
        <label v-if="state.m_ruleSelectStatus" style="position: absolute; top: 1rem; font-size: 0.1rem; color: red">*{{
      <div style="height: calc(100% - 110px); overflow: auto" v-if="state.m_selSeriesMethod.current == 0">
        <label v-if="state.m_ruleSelectStatus" style="position: absolute; top: 100px; font-size: 0.100px; color: red">*{{
          t("selectPage.seriesRule.TR") }}</label>
        <div class="c-product-line-select" v-for="(series_item, series_index) in state.m_allDispSeriesList"
          :key="series_index" :class="series_item.isSelected ? 'is-selected' : ''" style="position: relative">
          <div @click="clickSeriesItem(series_index)">
            <div class="c-product-line-select__overview" style="height: 1.5rem">
            <div class="c-product-line-select__overview" style="height: 150px">
              <button type="button" class="c-product-line-select__select-button" style="flex-grow: 1;">
                <span class="fa fa-fw c-product-line-select__select-icon"></span>
                <span class="c-product-line-select__name"
                  style="max-width: 2.19rem;display: inline-block; word-wrap: break-word;">
                  style="max-width: 219px;display: inline-block; word-wrap: break-word;">
                  {{ series_item.Name }}
                </span>
                <img alt="Product Line" :onerror="useDefaultImage" :src="series_item.ThumbnailImage"
@@ -79,19 +79,19 @@
        </div>
      </div>
      <!-- 按行业分类 -->
      <div style="height: calc(100% - 0.55rem); overflow: auto" v-if="state.m_selSeriesMethod.current == 1">
        <label v-if="state.m_ruleSelectHY" style="position: absolute; top: 0.3rem; font-size: 0.1rem; color: red">*{{
      <div style="height: calc(100% - 55px); overflow: auto" v-if="state.m_selSeriesMethod.current == 1">
        <label v-if="state.m_ruleSelectHY" style="position: absolute; top: 30px; font-size: 0.100px; color: red">*{{
          $t("selectPage.hangyeRule.TR") }}</label>
        <div v-for="(hy_item, hy_index) in state.m_allHangYeList" :key="hy_index" class="c-product-line-select"
          :class="hy_item.isSelected ? 'is-selected' : ''" @click="clickHangYeItem(hy_index)">
          <div class="c-product-line-select__overview" style="height: 1.5rem">
          <div class="c-product-line-select__overview" style="height: 150px">
            <button type="button" class="c-product-line-select__select-button">
              <span class="fa fa-fw c-product-line-select__select-icon"></span>
              <span class="c-product-line-select__name">{{
                hy_item.Name
              }}</span>
              <img alt="Product Line" :src="hy_item.ImageSrc"
                style=" height: 1.2rem; width: 1.2rem; filter: drop-shadow(0.02rem 0.04rem 0.06rem black); "
                style=" height: 120px; width: 120px; filter: drop-shadow(2px 4px 6px black); "
                class="c-product-line-select__image" />
            </button>
            <button @click.stop="hy_item.isShowDetail = !hy_item.isShowDetail" type="button"
@@ -105,12 +105,12 @@
        </div>
      </div>
      <!-- 按介质分类 -->
      <div style="height: calc(100% - 0.55rem); overflow: auto" v-if="state.m_selSeriesMethod.current == 2">
        <label v-if="state.m_ruleSelectJZ" style="position: absolute; top: 0.3rem; font-size: 0.1rem; color: red">*{{
      <div style="height: calc(100% - 55px); overflow: auto" v-if="state.m_selSeriesMethod.current == 2">
        <label v-if="state.m_ruleSelectJZ" style="position: absolute; top: 30px; font-size: 0.100px; color: red">*{{
          t("selectPage.jiezhiRule.TR") }}</label>
        <div v-for="(jz_item, jz_index) in state.m_allJieZhiList" :key="jz_index" class="c-product-line-select"
          :class="jz_item.isSelected ? 'is-selected' : ''" @click="clickJieZhiItem(jz_index)">
          <div class="c-product-line-select__overview" style="height: 1.5rem">
          <div class="c-product-line-select__overview" style="height: 150px">
            <button type="button" class="c-product-line-select__select-button">
              <span class="fa fa-fw c-product-line-select__select-icon"></span>
              <span class="c-product-line-select__name">{{
@@ -134,17 +134,17 @@
<script setup name="selPumpSeries">
import { onMounted, reactive } from "vue";
import { ElRadioGroup, ElRadioButton, ElCheckbox, ElCheckboxGroup } from 'element-plus'
import { useSelect } from '/@/store/select.js';
import ConstParas from "/@/utils/constParas";
import Utils from "/@/utils/utils";
import SelectByCorpFlag from "/@/utils/selectByCorpFlag";
import defaultImgUrl from '/@/views/assets/img_fail.png';
import { useSelect } from '@/stores/select';
import ConstParas from "@/utils/constParas";
import Utils from "@/utils/utils";
import SelectByCorpFlag from "@/utils/selectByCorpFlag.js";
import defaultImgUrl from '@/assets/img_fail.png';
import { useI18n } from 'vue-i18n';
import noneImg from '/@/views/assets/none_img.png'
import noneImg from '@/assets/none_img.png'
const { t } = useI18n()
const selectStore = useSelect()
let state = reactive({
  m_currentCorpFlag: window.globalConfig.CorpInfo.CorpFlag,
  m_currentCorpFlag: 'DESMI',
  m_selSeriesMethod: {
    current: 0, //0 类型
    byCatalog: {
@@ -217,7 +217,7 @@
    let ThumbnailImage = noneImg
    if (element.ThumbnailImage && element.ThumbnailImage != "") {
      ThumbnailImage = window.globalConfig.WebApiUrl.FileUrl + 'Data/' + element.ThumbnailImage
      ThumbnailImage = window.globalConfig.WebApiUrl.FileUrl  + 'Data/' +  element.ThumbnailImage
    }
    series_info.ThumbnailImage = ThumbnailImage
    allInfoList.push(series_info);
@@ -711,17 +711,17 @@
<style lang="scss">
.productSeries {
  height: calc(100% - 0rem);
  height: calc(100% - 0px);
  .c-card {
    margin: 0 0 0.16rem 0;
    padding: 0.16rem;
    border-radius: 0.03rem;
    margin: 0 0 16px 0;
    padding: 16px;
    border-radius: 3px;
    position: relative;
    color: #16181a;
    background: #fefefe;
    border: 0.01rem solid #dbe0e3;
    box-shadow: 0 0.01rem 0.03rem rgba(145, 161, 170, 0.25);
    border: 1px solid #dbe0e3;
    box-shadow: 0 1px 3px rgba(145, 161, 170, 0.25);
  }
  .c-card> :last-child {
@@ -742,18 +742,18 @@
  }
  .columns {
    padding: 0 0.15rem;
    padding: 0 15px;
  }
  .column,
  .columns {
    padding-left: 0.08rem;
    padding-right: 0.08rem;
    padding-left: 8px;
    padding-right: 8px;
  }
  .column,
  .columns {
    flex: 1 1 0rem;
    flex: 1 1 0px;
    min-width: initial;
  }
@@ -781,7 +781,7 @@
  .menu>li>a {
    display: block;
    padding: 0.08rem 0rem;
    padding: 8px 0px;
    line-height: 1;
  }
@@ -807,10 +807,10 @@
  }
  .c-product-line-select {
    border: 0.01rem solid #ddd;
    border-radius: 0.03rem;
    border: 1px solid #ddd;
    border-radius: 3px;
    color: #555;
    margin-top: 0.08rem;
    margin-top: 8px;
    overflow: hidden;
  }
@@ -830,7 +830,7 @@
    border: 0;
    border-radius: 0;
    color: currentColor;
    font-size: calc(0.5vw + 0.16rem);
    font-size: calc(0.5vw + 16px);
  }
  .c-product-line-select__select-button {
@@ -844,13 +844,13 @@
  .c-product-line-select__select-icon {
    display: block;
    flex: none;
    padding: 0.16rem;
    padding: 16px;
  }
  .c-product-line-select__name {
    flex-grow: 1;
    font-size: calc(0.5vw + 0.12rem);
    padding: 0.16rem 0 0.16rem 0.32rem;
    font-size: calc(0.5vw + 12px);
    padding: 16px 0 16px 32px;
  }
  .c-product-line-select__select-icon::before {
@@ -871,22 +871,22 @@
  .c-product-line-select__image {
    display: block;
    flex: none;
    max-width: -webkit-calc(4vw + 6.4rem);
    max-width: calc(4vw + 6.4rem);
    padding: 0.16rem;
    max-width: -webkit-calc(4vw + 640px);
    max-width: calc(4vw + 640px);
    padding: 16px;
  }
  .c-product-line-select__summary-button {
    background-color: #ddd;
    color: currentColor;
    flex: none;
    padding: 0 0.12rem;
    padding: 0 12px;
  }
  .c-product-line-select__summary {
    background-color: #ddd;
    color: black;
    padding: 0.16rem;
    padding: 16px;
    text-align: left;
  }
@@ -900,7 +900,7 @@
  .error_tip {
    color: red;
    padding: 0.16rem;
    padding: 16px;
    text-align: left;
    font-size: 18px;
    font-weight: 600;
@@ -908,7 +908,7 @@
  .unclick-mask {
    width: 100%;
    height: 1.5rem;
    height: 150px;
    background-color: #fff;
    position: absolute;
    top: 0;