sf
jiangping
2025-04-30 36d1f24952e857c971aed06042f6c7ebba6b147e
company_admin/src/views/business/pageConfiguration.vue
@@ -16,11 +16,12 @@
          <template v-if="type != 1">
            <div>
              <div class="commodityFrom_head" :style="tableHeaderStyle">
                <div class="commodityFrom_head_item" @mouseenter="mouseenter" @mouseleave="mouseleave">类别</div>
                <div class="commodityFrom_head_item" @mouseenter="mouseenter" @mouseleave="mouseleave">品牌</div>
                <div class="commodityFrom_head_item" @mouseenter="mouseenter" @mouseleave="mouseleave">型号</div>
                <div class="commodityFrom_head_item" @mouseenter="mouseenter" @mouseleave="mouseleave">指导价</div>
                <div class="commodityFrom_head_item" @mouseenter="mouseenter" @mouseleave="mouseleave">入手价</div>
                <!-- @mouseenter="mouseenter" @mouseleave="mouseleave" -->
                <div class="commodityFrom_head_item" >类别</div>
                <div class="commodityFrom_head_item" >品牌</div>
                <div class="commodityFrom_head_item" >型号</div>
                <div class="commodityFrom_head_item" >指导价</div>
                <div class="commodityFrom_head_item" >入手价</div>
              </div>
              <div class="commodityFrom_body" :style="tableBodyStyle">
                <div class="commodityFrom_body_content">
@@ -69,10 +70,10 @@
                </div>
                <div class="commodityFrom_body_total">
                  <div class="commodityFrom_body_total_item" :style="tableHeaderStyle">总计:</div>
                  <div class="commodityFrom_body_total_item" :style="tableHeaderStyle">
                  <div class="commodityFrom_body_total_item" :style="{...tableHeaderStyle, ...selStyle}">
                    18999
                  </div>
                  <div class="commodityFrom_body_total_item" :style="tableHeaderStyle">
                  <div class="commodityFrom_body_total_item" :style="{...tableHeaderStyle, ...selStyle}">
                    898999
                  </div>
                </div>
@@ -81,9 +82,9 @@
            <div class="productCategory">
              <div class="productCategory_list" :style="categoryStyle">
                <div class="productCategory_list_item" v-for="(item, index) in category" :key="index"
                  @click="clickItem(index, item.id, item.name)">
                  @click1="clickItem(index, item.id, item.name)">
                  <img :src="item.img" mode="widthFix" />
                  <span>{{ item.name }}</span>
                  <span  :style="{...selListNameStyle}">{{ item.name }}</span>
                </div>
                <div class="productCategory_list_zw"></div>
                <div class="productCategory_list_zw"></div>
@@ -94,8 +95,8 @@
            </div>
          </template>
          <div class="productPage" v-if="type == 1">
            <div class="productPage_head">
              <div class="productPage_head_item">
            <div class="productPage_head" :style="tableHeaderStyle">
              <div class="productPage_head_item" @mouseenter="mouseenterHead" @mouseleave="mouseleaveHead">
                <span>属性1</span>
                <img src="@/assets/images/ar_open@2x.png" mode="widthFix">
                <!-- <div class="productPage_xl" v-if="attrFirstList.length > 0">
@@ -105,7 +106,7 @@
                  </div>
                </div> -->
              </div>
              <div class="productPage_head_item">
              <div class="productPage_head_item" @mouseenter="mouseenterHead" @mouseleave="mouseleaveHead">
                <span>属性2</span>
                <img src="@/assets/images/ar_open@2x.png" mode="widthFix">
                <!-- <div class="productPage_xl" v-if="attrSecondList.length > 0">
@@ -115,7 +116,7 @@
                  </div>
                </div> -->
              </div>
              <div class="productPage_head_item">
              <div class="productPage_head_item" @mouseenter="mouseenterHead" @mouseleave="mouseleaveHead">
                <span>预算</span>
                <img src="@/assets/images/ar_open@2x.png" mode="widthFix">
                <!-- <div class="productPage_xl" v-if="budgetList.length > 0">
@@ -130,7 +131,7 @@
                  </div>
                </div> -->
              </div>
              <div class="productPage_head_item">
              <div class="productPage_head_item" @mouseenter="mouseenterHead" @mouseleave="mouseleaveHead">
                <span>品牌</span>
                <img src="@/assets/images/ar_open@2x.png" mode="widthFix">
                <!-- <div class="productPage_xl" v-if="brandData1.length > 0">
@@ -144,7 +145,7 @@
            <div class="productPage_pk">
              <div class="productPage_pk_shop">
                <div class="productPage_pk_shop_sp1">
                <div class="productPage_pk_shop_sp1" :style="tableHeaderStyle">
                  <div class="productPage_pk_shop_sp1_img">
                    <img src="@/assets/images/Samsung@2x.png" mode="widthFix">
                  </div>
@@ -158,9 +159,9 @@
              <div class="productPage_pk_z">
                <img src="@/assets/images/ic_pk@2x.png" mode="widthFix">
              </div>
              <div class="productPage_pk_shop">
              <div class="productPage_pk_shop" >
                <div class="productPage_pk_shop_sp1">
                <div class="productPage_pk_shop_sp1" :style="tableHeaderStyle">
                  <div class="productPage_pk_shop_sp1_img">
                    <img src="@/assets/images/Galanz@2x.png" mode="widthFix">
                  </div>
@@ -174,10 +175,10 @@
            </div>
            <div class="productPage_parameter">
                  <div class="productPage_parameter_item" v-for="(item, index) in [leftShop, rightShop]" :key="index">
                     <div class="productPage_parameter_item_head">
                     <div class="productPage_parameter_item_head" :style="tableHeaderStyle">
                        <span>{{item.name}}</span>
                     </div>
                     <div class="productPage_parameter_item_content">
                     <div class="productPage_parameter_item_content" :style="tableBodyStyle">
                        <div class="productPage_parameter_item_content_price">
                           <div class="zdj">
                              <span>指导价:</span>
@@ -272,8 +273,8 @@
              <div class="upload">
                <div><el-button icon="el-icon-plus" @click="$refs.upBackground.click()">上传背景</el-button></div>
                <span
                  style="color: #999; font-size: 13px; line-height: 18px;">建议尺寸:750px*1600px,其中主要展示区域高度为1008px,大小不超过1M</span>
                <input type="file" @change="upbgImgUrl" ref="upBackground" style="display: none;" />
                  style="color: #999; font-size: 13px; line-height: 18px;">建议尺寸:1920px*1080px,其中主要展示区域高度为1080px,大小不超过1M</span>
                <input type="file" accept="image/*" @change="upbgImgUrl" ref="upBackground" style="display: none;" />
              </div>
            </div>
          </div>
@@ -298,7 +299,7 @@
            <div class="upload">
              <div><el-button icon="el-icon-plus" @click="$refs.upTop.click()">上传图片</el-button></div>
              <span style="color: #999; font-size: 13px; line-height: 18px;">建议尺寸700px*300px,大小不超过1M</span>
              <input type="file" @change="upTopImgUrl" ref="upTop" style="display: none;" />
              <input type="file" accept="image/*" @change="upTopImgUrl" ref="upTop" style="display: none;" />
            </div>
          </div>
        </el-form-item>
@@ -322,7 +323,7 @@
            <div class="upload">
              <div><el-button icon="el-icon-plus" @click="$refs.upPk.click()">上传图片</el-button></div>
              <span style="color: #999; font-size: 13px; line-height: 18px;">只能上传图片格式,建议尺寸254*76px</span>
              <input type="file" @change="upPkImgUrl" ref="upPk" style="display: none;" />
              <input type="file" accept="image/*" @change="upPkImgUrl" ref="upPk" style="display: none;" />
            </div>
          </div>
        </el-form-item>
@@ -428,10 +429,24 @@
            </template>
          </div>
        </el-form-item>
        <el-form-item label="列表字体颜色">
          <div class="color-select-item">
            <el-radio-group v-model="form.listname.selType" @change="selectListName">
              <el-radio :label="0">默认</el-radio>
              <el-radio :label="1">自定义</el-radio>
            </el-radio-group>
           <template v-if="form.listname.selType == 1">
              <el-color-picker v-model="form.listname.selColor" size="mini"  style="margin-right: 10px; margin-left: 10px;"></el-color-picker>
              不透明度:<el-input v-model="form.listname.selAlpha" type="number" style="width: 100px;"></el-input> %
            </template>
          </div>
        </el-form-item>
      </el-form>
      <div class="pz_footer">
        <el-button type="primary" @click="submit">保存</el-button>
      </div>
    </div>
@@ -440,12 +455,178 @@
  </div>
</template>
<script>
import { getByLoginNew, renewUpdate } from '@/api/business/page.js'
import UploadAvatarImage from '@/components/common/UploadAvatarImage.vue'
import { upload } from '@/api/system/common'
export default {
  methods: {
    selectBackground(v) {
      if (v == 0) {
        this.form.main.bgColor = '#f7f7f7'
        this.form.main.alpha = '100'
      }
    },
    // 上传背景图片
    upbgImgUrl(file) {
      // console.log(file);
      const formdate = new FormData()
      this.isUploading = true
      formdate.append('file', file.target.files[0])
      formdate.append('folder', 'web_param')
      upload(formdate)
          .then(res => {
            this.form.bgImg.img = res.imgaddr
            this.form.bgImg.imgurl = res.url
          })
          .catch(e => {
            this.$message.error(e)
          })
          .finally(() => this.isUploading = false)
      this.$refs.upBackground.value = null
    },
    // 上传顶部图片
    upTopImgUrl(file) {
      const formdate = new FormData()
      this.isUploading = true
      formdate.append('file', file.target.files[0])
      formdate.append('folder', 'web_param')
      upload(formdate)
          .then(res => {
            this.form.topImg.img = res.imgaddr
            this.form.topImg.imgurl = res.url
          })
          .catch(e => {
            this.$message.error(e)
          })
          .finally(() => this.isUploading = false)
      this.$refs.upTop.value = null
    },
    // 上传pk太图片
    upPkImgUrl(file) {
      const formdate = new FormData()
      this.isUploading = true
      formdate.append('file', file.target.files[0])
      formdate.append('folder', 'web_param')
      upload(formdate)
          .then(res => {
            this.form.pkImg.img = res.imgaddr
            this.form.pkImg.imgurl = res.url
          })
          .catch(e => {
            this.$message.error(e)
          })
          .finally(() => this.isUploading = false)
      this.$refs.upPk.value = null
    },
    selectHeaderBg(v) {
      if (v == 0) {
        this.form.header.bgColor = '#0D1E41'
        this.form.header.bgAlpha = '100'
      } else if (v == 2) {
        this.form.header.bgColor2 = '#0D1E41'
        this.form.header.bgAlpha2 = '100'
      }
    },
    selectHeader(v) {
      if (v == 0) {
        this.form.header.color = '#ffffff'
        this.form.header.alpha = '100'
      }
    },
    selectSel(v) {
      if (v == 0) {
        this.form.pull.selColor = '#FFDC6C'
        this.form.pull.selAlpha = '100'
      }
    },
    selectPull(v) {
      if (v == 0) {
        this.form.pull.bgColor = '#6C82AA'
        this.form.pull.bgAlpha = '100'
      }
    },
    selectListName(v) {
      if (v == 0) {
        this.form.listname.selColor = '#ffffff'
        this.form.listname.selAlpha = '100'
      }
    },
    selectCategroy(v) {
      if (v == 0) {
        this.form.category.bgColor = '#899FC5'
        this.form.category.bgAlpha = '100'
      }
    },
    selectSearch(v) {
      if (v == 0) {
        this.form.search.bgColor = '#0D1E41'
        this.form.search.bgAlpha = '70'
      }
    },
    selectList(v) {
      if (v == 0) {
        this.form.list.bgColor = '#000000'
        this.form.list.bgAlpha = '0'
      }
    },
    mouseenterHead(v) {
      v.target.style.background = 'rgba(255,255,255,0.16)'
    },
    mouseleaveHead(v) {
      v.target.style.background = ''
    },
    mouseenter(v) {
      let alpha = +(this.form.header.selAlpha * 2.55).toFixed(0)
      v.target.style.ba = this.form.header.selColor + alpha.toString(16)
    },
    mouseleave(v) {
      v.target.style.color = ''
    },
    clickBrand(item, child) {
      item.brandName = child
      item.ppShow = false
    },
    clickXH(item, data) {
      item.name = data
      item.ppShow = false
    },
    getDesc() {
      getByLoginNew()
          .then(res => {
            if (res.newParam) {
              var param= JSON.parse(res.newParam)
              for (const key in this.form) {
                this.form[key] =param[key]||{}
              }
              // this.form = JSON.parse(res.newParam)
            }
            console.log(this.form)
          })
    },
    submit() {
      if (this.form.rangeSize < 750) {
        this.$message.warning({ message: '尺寸必须大于750' })
        return
      }
      if (this.form.rangeSize > 1200) {
        this.$message.warning({ message: '尺寸必须小于1200' })
        return
      }
      renewUpdate({ newParam: JSON.stringify(this.form) })
          .then(res => {
            this.$message.success({ message: '保存成功' })
          })
    },
  },
  components: { UploadAvatarImage },
  data() {
    return {
@@ -519,7 +700,7 @@
      },
      form: {
        rangeSize: '',
        rangeSize: '750',
        main: {
          bgType: 0, //0默认 1自定义
          bgColor: '#f7f7f7',
@@ -544,9 +725,9 @@
        },
        header: {
          backgroundType: 0,
          bgColor: '#f7f7f7',
          bgColor: '#0D1E41',
          bgAlpha: '100',
          bgColor2: '#f7f7f7',
          bgColor2: '#0D1E41',
          bgAlpha2: '100',
          type: 0,
          color: '#ffffff',
@@ -555,26 +736,35 @@
        },
        pull: {
          bgType: 0,
          bgColor: '#f7f7f7',
          bgColor: '#6C82AA',
          bgAlpha: '100',
          selType: 0,
          selColor: '#ff0000',
          selColor: '#FFDC6C',
          selAlpha: '100'
        },
        selType:0,
        listname: {
          bgType: 0,
          bgColor: '#6C82AA',
          bgAlpha: '100',
          selType: '0',
          selColor: '#ffffff',
          selAlpha: '100'
        },
        search: {
          bgType: 0,
          bgColor: '#f7f7f7',
          bgAlpha: '100',
          bgColor: '#0D1E41',
          bgAlpha: '70',
        },
        category: {
          bgType: 0,
          bgColor: '#f7f7f7',
          bgColor: '#899FC5',
          bgAlpha: '100',
        },
        list: {
          bgType: 0,
          bgColor: '#f7f7f7',
          bgAlpha: '100',
          bgColor: '#000000',
          bgAlpha: '0',
        }
      }
    }
@@ -602,198 +792,53 @@
        // 渐变
        let alpha = +(this.form.header.bgAlpha * 2.55).toFixed(0)
        let alpha2 = +(this.form.header.bgAlpha2 * 2.55).toFixed(0)
        let start = this.form.header.bgColor + alpha.toString(16)
        let end = this.form.header.bgColor2 + alpha2.toString(16)
        let start = this.form.header.bgColor + (alpha==0?"00":alpha.toString(16))
        let end = this.form.header.bgColor2 + (alpha2==0?"00":alpha2.toString(16))
        headerStyle.background = `linear-gradient(180deg, ${start} 0%, ${end} 100%)`
      } else {
        let alpha = +(this.form.header.alpha * 2.55).toFixed(0)
        headerStyle.background = this.form.header.bgColor + alpha.toString(16)
        headerStyle.background = this.form.header.bgColor + (alpha==0?"00":alpha.toString(16))
      }
      console.log(headerStyle);
      return headerStyle
    },
    tableBodyStyle() {
      let alpha = +(this.form.list.bgAlpha * 2.55).toFixed(0)
      let background = this.form.list.bgColor + alpha.toString(16)
      let background = this.form.list.bgColor + (alpha==0?"00":alpha.toString(16))
      return { background }
    },
    pullStyle() {
      let alpha = +(this.form.pull.bgAlpha * 2.55).toFixed(0)
      let background = this.form.pull.bgColor + alpha.toString(16)
      let background = this.form.pull.bgColor + (alpha==0?"00":alpha.toString(16))
      return { background }
    },
    selStyle() {
      let selStyle = {}
      let alpha = +(this.form.pull.selAlpha * 2.55).toFixed(0)
      selStyle.color = this.form.pull.selColor + alpha.toString(16)
      console.log(selStyle);
      selStyle.color = this.form.pull.selColor + (alpha==0?"00":alpha.toString(16))
      return selStyle
    },
    selListNameStyle() {
      let selListNameStyle = {}
      let alpha = +(this.form.listname.selAlpha * 2.55).toFixed(0)
      selListNameStyle.color = this.form.listname.selColor + (alpha==0?"00":alpha.toString(16))
      return selListNameStyle
    },
    searchStyle() {
      let alpha = +(this.form.search.bgAlpha * 2.55).toFixed(0)
      let background = this.form.search.bgColor + alpha.toString(16)
      let background = this.form.search.bgColor + (alpha==0?"00":alpha.toString(16))
      return { background }
    },
    categoryStyle() {
      let alpha = +(this.form.category.bgAlpha * 2.55).toFixed(0)
      let background = this.form.category.bgColor + alpha.toString(16)
      let background = this.form.category.bgColor + (alpha==0?"00":alpha.toString(16))
      return { background }
    },
  },
  created() {
    this.getDesc()
  },
  methods: {
    selectBackground(v) {
      console.log(v);
      if (v == 0) {
        this.form.main.bgColor = '#f7f7f7'
        this.form.main.alpha = '100'
      }
    },
    // 上传背景图片
    upbgImgUrl(file) {
      const formdate = new FormData()
      this.isUploading = true
      formdate.append('file', file.target.files[0])
      formdate.append('folder', 'web_param')
      upload(formdate)
        .then(res => {
          this.form.bgImg.img = res.imgaddr
          this.form.bgImg.imgurl = res.url
        })
        .catch(e => {
          this.$message.error(e)
        })
        .finally(() => this.isUploading = false)
      this.$refs.upBackground.value = null
    },
    // 上传顶部图片
    upTopImgUrl(file) {
      const formdate = new FormData()
      this.isUploading = true
      formdate.append('file', file.target.files[0])
      formdate.append('folder', 'web_param')
      upload(formdate)
        .then(res => {
          this.form.topImg.img = res.imgaddr
          this.form.topImg.imgurl = res.url
        })
        .catch(e => {
          this.$message.error(e)
        })
        .finally(() => this.isUploading = false)
      this.$refs.upTop.value = null
    },
    // 上传pk太图片
    upPkImgUrl(file) {
      const formdate = new FormData()
      this.isUploading = true
      formdate.append('file', file.target.files[0])
      formdate.append('folder', 'web_param')
      upload(formdate)
        .then(res => {
          this.form.pkImg.img = res.imgaddr
          this.form.pkImg.imgurl = res.url
        })
        .catch(e => {
          this.$message.error(e)
        })
        .finally(() => this.isUploading = false)
      this.$refs.upPk.value = null
    },
    selectHeaderBg(v) {
      if (v == 0) {
        this.form.header.bgColor = '#f7f7f7'
        this.form.header.bgAlpha = '100'
      } else if (v == 1) {
        this.form.header.bgColor = '#f7f7f7'
        this.form.header.bgAlpha = '100'
      } else {
        this.form.header.bgColor = '#f7f7f7'
        this.form.header.bgAlpha = '100'
        this.form.header.bgColor2 = '#f7f7f7'
        this.form.header.bgAlpha2 = '100'
      }
    },
    selectHeader(v) {
      if (v == 0) {
        this.form.header.color = '#f7f7f7'
        this.form.header.alpha = '100'
      }
    },
    selectSel(v) {
      if (v == 0) {
        this.form.pull.selColor = '#f7f7f7'
        this.form.pull.selAlpha = '100'
      }
    },
    selectPull(v) {
      if (v == 0) {
        this.form.pull.bgColor = '#f7f7f7'
        this.form.pull.bgAlpha = '100'
      }
    },
    selectCategroy(v) {
      if (v == 0) {
        this.form.category.bgColor = '#f7f7f7'
        this.form.category.bgAlpha = '100'
      }
    },
    selectSearch(v) {
      if (v == 0) {
        this.form.search.bgColor = '#f7f7f7'
        this.form.search.bgAlpha = '100'
      }
    },
    selectList(v) {
      if (v == 0) {
        this.form.list.bgColor = '#f7f7f7'
        this.form.list.bgAlpha = '100'
      }
    },
    mouseenter(v) {
      let alpha = +(this.form.header.selAlpha * 2.55).toFixed(0)
      v.target.style.color = this.form.header.selColor + alpha.toString(16)
    },
    mouseleave(v) {
      v.target.style.color = ''
    },
    clickBrand(item, child) {
      item.brandName = child
      item.ppShow = false
    },
    clickXH(item, data) {
      item.name = data
      item.ppShow = false
    },
    getDesc() {
      getByLoginNew()
        .then(res => {
          if (res.newParam) {
            this.form = JSON.parse(res.newParam)
          }
        })
    },
    submit() {
      if (this.form.rangeSize < 750) {
        this.$message.warning({ message: '尺寸必须大于750' })
        return
      }
      if (this.form.rangeSize > 1000) {
        this.$message.warning({ message: '尺寸必须小于1000' })
        return
      }
      renewUpdate({ newParam: JSON.stringify(this.form) })
        .then(res => {
          this.$message.success({ message: '保存成功' })
        })
    },
    console.log(this.form.listname)
    console.log(this.form.listname.selType)
  }
}
/**
@@ -811,7 +856,7 @@
  .prediv {
    width: 400px;
    height: 1000px;
    height: 1200px;
    position: relative;
    overflow: hidden;
    margin-right: 10px;
@@ -841,9 +886,9 @@
      .content {
        // background-image: url('../../assets/images/background_defult.png');
        // background-image: url('../../assets/images/background_defult.png') !important;
        background-position: center;
        background-size: 100% 100%;
        background-size: cover;
        height: 1600px;
        width: 750px;
        transform: scale(0.5) translate(-50%, -50%);
@@ -891,10 +936,6 @@
                margin-left: 3px;
              }
              &:hover {
                border-radius: 8px 8px 0px 0px;
                background: linear-gradient(360deg, #025170 0%, #529DB9 100%) !important;
              }
              &:hover img {
                transform: rotate(180deg);
@@ -1373,8 +1414,9 @@
  .pz_head {
    font-size: 20px;
    margin-bottom: 16px0px;
    margin-bottom: 16px;
    font-weight: bold;
  }
  .pz_item {
@@ -1406,7 +1448,7 @@
  height: 45px;
  padding: 10px 8px;
  box-sizing: border-box;
  //
  //
  // background: rgba(0, 224, 255, 0.24) linear-gradient(180deg, rgba(255, 255, 255, 0.35) 0%, rgba(0, 0, 0, 0.21) 100%);
  display: flex;
  align-items: center;
@@ -1814,4 +1856,4 @@
    }
  }
}
</style>
</style>