From 3ac279c9df7181c9f21d35a689a321b990b87b22 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期一, 08 六月 2026 17:42:33 +0800
Subject: [PATCH] aaa
---
company_admin/src/views/business/pageConfiguration.vue | 830 +++++++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 585 insertions(+), 245 deletions(-)
diff --git a/company_admin/src/views/business/pageConfiguration.vue b/company_admin/src/views/business/pageConfiguration.vue
index f29bd7a..340777a 100644
--- a/company_admin/src/views/business/pageConfiguration.vue
+++ b/company_admin/src/views/business/pageConfiguration.vue
@@ -7,13 +7,13 @@
<el-tab-pane label="涓荤晫闈�" name="0"></el-tab-pane>
<el-tab-pane label="PK鏁堟灉" name="1"></el-tab-pane>
<el-tab-pane label="鎼滅储鏁堟灉" name="2"></el-tab-pane>
+ <el-tab-pane label="鍟嗗搧鍒楄〃" name="3"></el-tab-pane>
</el-tabs>
</div>
-
<div class="prediv-content">
<div class="content" :style="contentStyle">
<img :src="form.topImg.type ? form.topImg.imgurl : defaultBanner" alt="">
- <template v-if="type != 1">
+ <template v-if="type != 1 && type !=3">
<div>
<div class="commodityFrom_head" :style="tableHeaderStyle">
<!-- @mouseenter="mouseenter" @mouseleave="mouseleave" -->
@@ -82,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,7 +94,7 @@
</div>
</div>
</template>
- <div class="productPage" v-if="type == 1">
+ <div class="productPage" v-if="type == 1 || type ==3">
<div class="productPage_head" :style="tableHeaderStyle">
<div class="productPage_head_item" @mouseenter="mouseenterHead" @mouseleave="mouseleaveHead">
<span>灞炴��1</span>
@@ -142,72 +142,86 @@
</div> -->
</div>
</div>
- <div class="productPage_pk">
- <div class="productPage_pk_shop">
+ <template v-if="type ==1">
+ <div class="productPage_pk" >
+ <div class="productPage_pk_shop">
- <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 class="productPage_pk_shop_sp1" :style="tableHeaderStyle">
+ <div class="productPage_pk_shop_sp1_img">
+ <img src="@/assets/images/Samsung@2x.png" mode="widthFix">
+ </div>
+ <span>涓夋槦323娲楃儤</span>
</div>
- <span>涓夋槦323娲楃儤</span>
+ <div class="productPage_pk_shop_t">
+ <img v-if="form.pkImg.type==0" src="@/assets/images/pk_defult.png" alt="">
+ <img v-else :src="form.pkImg.imgurl" alt="">
+ </div>
</div>
- <div class="productPage_pk_shop_t">
- <img v-if="form.pkImg.type==0" src="@/assets/images/pk_defult.png" alt="">
- <img v-else :src="form.pkImg.imgurl" alt="">
+ <div class="productPage_pk_z">
+ <img src="@/assets/images/ic_pk@2x.png" mode="widthFix">
</div>
- </div>
- <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" :style="tableHeaderStyle">
- <div class="productPage_pk_shop_sp1_img">
- <img src="@/assets/images/Galanz@2x.png" mode="widthFix">
+ <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>
+ <span>鏍煎叞浠�434娲楃儤</span>
</div>
- <span>鏍煎叞浠�434娲楃儤</span>
- </div>
- <div class="productPage_pk_shop_t">
- <img v-if="form.pkImg.type==0" src="@/assets/images/pk_defult.png" alt="">
- <img v-else :src="form.pkImg.imgurl" alt="">
+ <div class="productPage_pk_shop_t">
+ <img v-if="form.pkImg.type==0" src="@/assets/images/pk_defult.png" alt="">
+ <img v-else :src="form.pkImg.imgurl" alt="">
+ </div>
</div>
</div>
- </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" :style="tableHeaderStyle">
- <span>{{item.name}}</span>
- </div>
- <div class="productPage_parameter_item_content" :style="tableBodyStyle">
- <div class="productPage_parameter_item_content_price">
- <div class="zdj">
- <span>鎸囧浠凤細</span>
- <span>楼{{item.zdPrice}}</span>
- </div>
- <div class="rsj">
- <span>寤鸿鍏ユ墜浠凤細</span>
- <span>楼{{item.price}}</span>
- </div>
- </div>
- <div class="productPage_parameter_item_content_nr">
- <div class="item" v-if="item.param1" v-for="(child, i) in item.param1" :key="child.index">
- <div class="label">{{child.name}}锛�</div>
- <div class="value">{{child.val}}</div>
- </div>
- <div v-if="item.param2.length>0" class="paramline"></div>
- <div class="item" v-if="item.param2" v-for="(child, j) in item.param2" :key="child.index">
- <div class="label">{{child.name}}锛�</div>
- <div class="value">{{child.val}}</div>
- </div>
- </div>
- </div>
- </div>
- </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" :style="tableHeaderStyle">
+ <span>{{item.name}}</span>
+ </div>
+ <div class="productPage_parameter_item_content" :style="tableBodyStyle">
+ <div class="productPage_parameter_item_content_price">
+ <div class="zdj">
+ <span>鎸囧浠凤細</span>
+ <span>楼{{item.zdPrice}}</span>
+ </div>
+ <div class="rsj">
+ <span>寤鸿鍏ユ墜浠凤細</span>
+ <span>楼{{item.price}}</span>
+ </div>
+ </div>
+ <div class="productPage_parameter_item_content_nr">
+ <div class="item" v-if="item.param1" v-for="(child, i) in item.param1" :key="child.index">
+ <div class="label">{{child.name}}锛�</div>
+ <div class="value">{{child.val}}</div>
+ </div>
+ <div v-if="item.param2.length>0" class="paramline"></div>
+ <div class="item" v-if="item.param2" v-for="(child, j) in item.param2" :key="child.index">
+ <div class="label">{{child.name}}锛�</div>
+ <div class="value">{{child.val}}</div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </template>
+ <template v-if="type==3">
+ <div class="productPage_shop" >
+ <div class="productPage_shop_item" v-for="(item, index) in productList" :style="{...selectList}" :key="index" >
+ <div class="productPage_shop_item_img">
+ <img :src="item.img" mode="widthFix"/>
+ </div>
+ <span :style="{...selProNameStyle}">{{item.name}}</span>
+ </div>
+ <div class="productPage_shop_zw"></div>
+ <div class="productPage_shop_zw"></div>
+ <div class="productPage_shop_zw"></div>
+ </div>
+ </template>
</div>
-
</div>
</div>
- <div class="search" v-if="type == 2">
+ <div class="search" v-if="type == 2 ">
<div class="search_box">
<div class="search_box_item" :style="searchStyle">
<div class="icon">
@@ -228,7 +242,32 @@
</div>
<div class="setting">
- <div class="pz_head">淇℃伅</div>
+ <div class="pz_head pz_head--with-switch">
+ <span>涓绘挱绔〉闈㈤厤缃� <span class="version-tag">V2</span></span>
+ <span
+ class="version-switch version-switch--v2"
+ :class="{ 'version-switch--active': useThisVersion }"
+ >
+ <span class="version-switch__icon"><i class="el-icon-mobile-phone" /></span>
+ <span class="version-switch__body">
+ <span class="version-switch__label">绔嬪嵆浣跨敤璇ョ増鏈�</span>
+ <span class="version-switch__status">{{ useThisVersion ? '宸插惎鐢� 路 涓绘挱绔綋鍓嶇増鏈�' : '鐐瑰嚮鎸夐挳鍚庝富鎾灏嗗垏鎹㈣嚦鏈増鏈�' }}</span>
+ </span>
+ <span v-if="useThisVersion" class="version-switch__badge">
+ <i class="el-icon-success" /> 褰撳墠鐗堟湰
+ </span>
+ <el-button
+ v-else
+ type="primary"
+ size="medium"
+ :loading="versionSwitchLoading"
+ class="version-switch__btn version-switch__btn--v2"
+ @click="onUseThisVersion"
+ >
+ 绔嬪嵆鐢熸晥
+ </el-button>
+ </span>
+ </div>
<el-form ref="form" :model="form" label-width="130px" label-suffix="锛�">
<el-form-item label="鍐呭鑼冨洿灏哄" props="rangeSize">
<el-input v-model="form.rangeSize" type="number" style="width: 200px;" placeholder="鏀寔750px-1200px"></el-input>
@@ -429,30 +468,261 @@
</template>
</div>
</el-form-item>
+ <el-form-item label="鍝佺被鍒楄〃瀛椾綋">
+ <div class="color-select-item">
+ 棰滆壊 <el-radio-group v-model="form.listname.selType" @change="selectListName" style="margin-left: 15px">
+ <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>
+ <div >
+ <div class="color-select-item" style="margin-top: 10px">
+ 澶у皬<el-input v-model="form.listname.fontSize" type="number" style="width: 80px;margin-left: 15px"></el-input> px (榛樿16px)
+ </div>
+ </div>
+ </el-form-item>
+ <el-form-item label="鍟嗗搧鍒楄〃瀛椾綋">
+ <div class="color-select-item">
+ 棰滆壊 <el-radio-group v-model="form.listproname.selType" @change="selectproName" style="margin-left: 15px">
+ <el-radio :label="0">榛樿</el-radio>
+ <el-radio :label="1">鑷畾涔�</el-radio>
+ </el-radio-group>
+ <template v-if="form.listproname.selType == 1">
+ <el-color-picker v-model="form.listproname.selColor" size="mini" style="margin-right: 10px; margin-left: 10px;"></el-color-picker>
+ 涓嶉�忔槑搴� <el-input v-model="form.listproname.selAlpha" type="number" style="width: 100px;"></el-input> %
+ </template>
+ </div>
+ <div >
+ <div class="color-select-item" style="margin-top: 10px">
+ 澶у皬<el-input v-model="form.listproname.fontSize" type="number" style="width: 80px;margin-left: 15px"></el-input> px (榛樿16px)
+ </div>
+ </div>
+ </el-form-item>
</el-form>
<div class="pz_footer">
<el-button type="primary" @click="submit">淇濆瓨</el-button>
</div>
-
+
</div>
-
+
</div>
</template>
-
+
<script>
-import { getByLoginNew, renewUpdate } from '@/api/business/page.js'
+import { getByLoginNew, renewUpdate, updateAnchorPageVersion } 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'
+ }
+ },
+ selectproName(v) {
+ if (v == 0) {
+ this.form.listproname.selColor = '#ffffff'
+ this.form.listproname.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 && res.newParam) {
+ var param= JSON.parse(res.newParam)
+ for (const key in this.form) {
+ if(param[key]){
+ this.form[key] = param[key]
+ }
+ }
+ }
+ this.anchorPageVersion = (res && res.anchorPageVersion) || 'v2'
+ this.useThisVersion = this.anchorPageVersion === 'v2'
+ })
+ },
+
+ onUseThisVersion () {
+ if (this.useThisVersion || this.versionSwitchLoading) return
+ this.versionSwitchLoading = true
+ updateAnchorPageVersion({ anchorPageVersion: 'v2' })
+ .then(() => {
+ this.anchorPageVersion = 'v2'
+ this.useThisVersion = true
+ this.$message.success('宸插惎鐢� V2 閰嶇疆')
+ })
+ .catch(e => {
+ this.$tip.apiFailed(e)
+ })
+ .finally(() => {
+ this.versionSwitchLoading = false
+ })
+ },
+
+ 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),
+ anchorPageVersion: this.anchorPageVersion
+ })
+ .then(res => {
+ this.$message.success({ message: '淇濆瓨鎴愬姛' })
+ })
+ },
+ },
components: { UploadAvatarImage },
data() {
return {
isUploading: false,
+ useThisVersion: false,
+ versionSwitchLoading: false,
+ anchorPageVersion: 'v2',
type: '0', // 0銆佷富鐣岄潰 1銆丳K鏁堟灉 2銆佹悳绱㈡晥鏋�
shopList: [
{ categoryImgurl: '', categoryName: '娲楄。鏈�', brandName: '娴峰皵', ppShow: false, ppData: ['CLOMO', '娴峰皵', '鏍煎叞浠�', '涓夋槦'], name: 'EG100MATE35S', xhShow: false, xhData: ['EG100MATE35S', 'DG100MATE35S', 'FG100MATE35S'], zdPrice: '1899', price: '1899' },
@@ -477,6 +747,38 @@
{ img: require('@/assets/images/category/ic_xiwanji@2x.png'), name: '娲楃鏈�' },
{ img: require('@/assets/images/category/ic_jinshui@2x.png'), name: '鍑�姘村櫒' },
{ img: require('@/assets/images/category/ic_qita@2x.png'), name: '鍏朵粬' },
+ ],
+ productList: [
+ { img: require('@/assets/images/product/1a.png'), name: '鍗¤惃甯�' },
+ { img: require('@/assets/images/product/2a.png'), name: '澶ф捣璞�' },
+ { img: require('@/assets/images/product/3a.png'), name: '灏忕櫧妗�' },
+ { img: require('@/assets/images/product/4a.png'), name: '鐧界弽鐝�' },
+ { img: require('@/assets/images/product/5a.png'), name: '涓滆姖58' },
+ { img: require('@/assets/images/product/6a.png'), name: '涓滆姖59' },
+ { img: require('@/assets/images/product/7a.png'), name: '鏉句笅50' },
+ { img: require('@/assets/images/product/8a.png'), name: '缇庣殑55' },
+ { img: require('@/assets/images/product/9a.png'), name: '娴峰皵57' },
+ { img: require('@/assets/images/product/10a.png'), name: '缇庣殑46' },
+ { img: require('@/assets/images/product/1a.png'), name: '鍗¤惃甯�' },
+ { img: require('@/assets/images/product/2a.png'), name: '澶ф捣璞�' },
+ { img: require('@/assets/images/product/3a.png'), name: '灏忕櫧妗�' },
+ { img: require('@/assets/images/product/4a.png'), name: '鐧界弽鐝�' },
+ { img: require('@/assets/images/product/5a.png'), name: '涓滆姖58' },
+ { img: require('@/assets/images/product/6a.png'), name: '涓滆姖59' },
+ { img: require('@/assets/images/product/7a.png'), name: '鏉句笅50' },
+ { img: require('@/assets/images/product/8a.png'), name: '缇庣殑55' },
+ { img: require('@/assets/images/product/9a.png'), name: '娴峰皵57' },
+ { img: require('@/assets/images/product/10a.png'), name: '缇庣殑46' },
+ { img: require('@/assets/images/product/1a.png'), name: '鍗¤惃甯�' },
+ { img: require('@/assets/images/product/2a.png'), name: '澶ф捣璞�' },
+ { img: require('@/assets/images/product/3a.png'), name: '灏忕櫧妗�' },
+ { img: require('@/assets/images/product/4a.png'), name: '鐧界弽鐝�' },
+ { img: require('@/assets/images/product/5a.png'), name: '涓滆姖58' },
+ { img: require('@/assets/images/product/6a.png'), name: '涓滆姖59' },
+ { img: require('@/assets/images/product/7a.png'), name: '鏉句笅50' },
+ { img: require('@/assets/images/product/8a.png'), name: '缇庣殑55' },
+ { img: require('@/assets/images/product/9a.png'), name: '娴峰皵57' },
+ { img: require('@/assets/images/product/10a.png'), name: '缇庣殑46' },
],
action: process.env.VUE_APP_API_PREFIX + '/public/upload',
defaultBanner: require('@/assets/images/banner_defult.png'),
@@ -528,7 +830,6 @@
bgColor: '#f7f7f7',
alpha: '100'
},
-
bgImg: {
isShow: 0, // 0闅愯棌 1鏄剧ず
type: 0,
@@ -562,6 +863,21 @@
bgAlpha: '100',
selType: 0,
selColor: '#FFDC6C',
+ selAlpha: '100'
+ },
+ selType:0,
+ listname: {
+ fontType: 0,
+ fontSize: '16',
+ selType: '0',
+ selColor: '#ffffff',
+ selAlpha: '100'
+ },
+ listproname: {
+ fontType: 0,
+ fontSize: '16',
+ selType: 0,
+ selColor: '#ffffff',
selAlpha: '100'
},
search: {
@@ -630,12 +946,24 @@
selStyle.color = this.form.pull.selColor + (alpha==0?"00":alpha.toString(16))
return selStyle
},
+ selListNameStyle() {
+ let alpha = +(this.form.listname.selAlpha * 2.55).toFixed(0)
+ let color = this.form.listname.selColor + (alpha==0?"00":alpha.toString(16))
+ let selListNameStyle = {color: color,'font-size':(this.form.listname.fontSize || '16')+'px'}
+ return selListNameStyle
+ },
+ selProNameStyle() {
+ let alpha = +(this.form.listproname.selAlpha * 2.55).toFixed(0)
+ let color = this.form.listproname.selColor + (alpha==0?"00":alpha.toString(16))
+ let selProNameStyle = {color: color,'font-size':(this.form.listproname.fontSize || '16')+'px'}
+ return selProNameStyle
+ },
searchStyle() {
let alpha = +(this.form.search.bgAlpha * 2.55).toFixed(0)
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==0?"00":alpha.toString(16))
@@ -644,160 +972,6 @@
},
created() {
this.getDesc()
- },
- 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'
- }
- },
- 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) {
- this.form = JSON.parse(res.newParam)
- }
- })
- },
-
- 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: '淇濆瓨鎴愬姛' })
- })
- },
}
}
/**
@@ -878,7 +1052,6 @@
align-items: center;
background: rgba(0, 224, 255, 0.34) linear-gradient(180deg, rgba(255, 255, 255, 0.35) 0%, rgba(0, 0, 0, 0.21) 100%);
border-radius: 8px 8px 0px 0px;
-
.productPage_head_item {
flex: 1;
height: 100%;
@@ -889,23 +1062,18 @@
position: relative;
color: #fff;
font-size: 12px;
-
img {
width: 14px;
margin-left: 3px;
}
-
-
&:hover img {
transform: rotate(180deg);
}
-
&:hover .productPage_xl {
transform: translate(0%, 100%);
display: block;
animation: move 0.5s 0s;
}
-
@keyframes move {
0% {
opacity: 0;
@@ -915,18 +1083,15 @@
opacity: 1;
}
}
-
.productPage_xl::-webkit-scrollbar {
width: 6px;
background: rgba(255, 255, 255, 0.5);
border-radius: 4px;
}
-
.productPage_xl::-webkit-scrollbar-thumb {
box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
background: rgba(255, 255, 255, 0.8);
}
-
.productPage_xl {
transition: .3s;
position: absolute;
@@ -944,7 +1109,6 @@
background: linear-gradient(180deg, #518198 0%, #033B58 100%);
box-shadow: 0px 4px 12px 0px rgba(0, 0, 0, 0.19);
border-radius: 0px 0px 8px 8px;
-
.productPage_xl_iten {
width: 100%;
height: 40px;
@@ -953,13 +1117,11 @@
cursor: pointer;
padding: 0 10px;
box-sizing: border-box;
-
&:hover {
text {
color: #FFF200;
}
}
-
text {
width: 100%;
text-align: center;
@@ -973,14 +1135,12 @@
}
}
}
-
text {
font-size: 16px;
font-family: SourceHanSansSC-Regular, SourceHanSansSC;
font-weight: 400;
color: #FFFFFF;
}
-
image {
transition: .3s;
width: 14px;
@@ -991,20 +1151,17 @@
}
}
}
-
.productPage_pk {
width: 100%;
margin-bottom: 32px;
display: flex;
align-items: center;
-
.productPage_pk_shop {
flex: 1;
display: flex;
justify-content: center;
align-items: center;
flex-direction: column;
-
.productPage_pk_shop_sp {
width: 100px;
height: 100px;
@@ -1017,7 +1174,6 @@
height: 100%;
}
}
-
.productPage_pk_shop_sp1 {
width: 184px;
height: 200px;
@@ -1091,12 +1247,12 @@
flex-wrap: wrap;
.productPage_shop_zw {
- width: 168px;
+ width: 15%;
height: 0;
}
.productPage_shop_item {
- width: 168px;
+ width: 15%;
// height: 204px;
margin-bottom: 12px;
cursor: pointer;
@@ -1122,8 +1278,8 @@
}
.productPage_shop_item_img {
- width: 136px;
- height: 136px;
+ width: 50px;
+ height: 50px;
display: flex;
align-items: center;
justify-content: center;
@@ -1378,6 +1534,129 @@
}
+ .pz_head--with-switch {
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: 16px;
+ flex-wrap: wrap;
+ }
+
+ .version-tag {
+ display: inline-block;
+ margin-left: 8px;
+ padding: 3px 10px;
+ border-radius: 4px;
+ font-size: 13px;
+ font-weight: 700;
+ color: #409eff;
+ background: #ecf5ff;
+ border: 1px solid #b3d8ff;
+ vertical-align: middle;
+ }
+
+ .version-switch {
+ display: inline-flex;
+ align-items: center;
+ gap: 14px;
+ padding: 12px 20px;
+ border-radius: 10px;
+ border: 2px solid #409eff;
+ background: linear-gradient(135deg, #ecf5ff 0%, #f5faff 100%);
+ box-shadow: 0 4px 14px rgba(64, 158, 255, 0.22);
+ transition: all 0.25s ease;
+ cursor: default;
+
+ &--active {
+ border-color: #409eff;
+ background: linear-gradient(135deg, #409eff 0%, #66b1ff 100%);
+ box-shadow: 0 6px 20px rgba(64, 158, 255, 0.4);
+
+ .version-switch__icon {
+ background: rgba(255, 255, 255, 0.25);
+ color: #fff;
+ }
+
+ .version-switch__label {
+ color: #fff;
+ }
+
+ .version-switch__status {
+ color: rgba(255, 255, 255, 0.88);
+ }
+ }
+
+ &__icon {
+ flex-shrink: 0;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ width: 40px;
+ height: 40px;
+ border-radius: 50%;
+ background: rgba(64, 158, 255, 0.15);
+ color: #409eff;
+ font-size: 20px;
+ }
+
+ &__body {
+ display: flex;
+ flex-direction: column;
+ gap: 2px;
+ min-width: 0;
+ }
+
+ &__label {
+ font-size: 15px;
+ font-weight: 700;
+ color: #409eff;
+ white-space: nowrap;
+ line-height: 1.3;
+ }
+
+ &__status {
+ font-size: 12px;
+ color: #909399;
+ white-space: nowrap;
+ line-height: 1.3;
+ }
+
+ &__badge {
+ flex-shrink: 0;
+ display: inline-flex;
+ align-items: center;
+ gap: 6px;
+ padding: 8px 16px;
+ border-radius: 20px;
+ font-size: 14px;
+ font-weight: 600;
+ color: #fff;
+ background: rgba(255, 255, 255, 0.25);
+ white-space: nowrap;
+ }
+
+ &__btn {
+ flex-shrink: 0;
+ padding: 10px 22px;
+ font-size: 14px;
+ font-weight: 700;
+ border-radius: 20px;
+ border: none;
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
+
+ &--v2 {
+ background: #fff;
+ color: #409eff;
+
+ &:hover,
+ &:focus {
+ background: #f5faff;
+ color: #409eff;
+ }
+ }
+ }
+ }
+
.pz_item {
// width: 750px;
display: flex;
@@ -1407,7 +1686,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;
@@ -1815,4 +2094,65 @@
}
}
}
-</style>
\ No newline at end of file
+
+.productPage_shop {
+ width: 100%;
+ margin-top: 12px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ flex-wrap: wrap;
+ .productPage_shop_zw {
+ width: 15%;
+ height: 0;
+ }
+ .productPage_shop_item {
+ width: 15%;
+ margin-bottom: 12px;
+ cursor: pointer;
+ background: rgba(0,224,255,0.18);
+ border-radius: 8px;
+ display: flex;
+ transition: .5s;
+ padding: 15px;
+ box-sizing: border-box;
+ flex-direction: column;
+ align-items: center;
+ box-sizing: border-box;
+ white-space: pre-wrap;
+ word-break: break-all;
+ text-align: center;
+ &:hover {
+ background: linear-gradient(180deg, rgba(0,224,255,0.3) 0%, rgba(255,255,255,0.41) 100%);
+ border-radius: 8px;
+ border: 2px solid #FFFFFF;
+ box-sizing: border-box;
+ }
+ .productPage_shop_item_img {
+ width: 136px;
+ height: 136px;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ overflow: hidden;
+ image {
+ width: 100%;
+ height: 100%;
+ }
+ }
+ text {
+ width: 100%;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ display: -webkit-box;
+ -webkit-line-clamp: 2;
+ -webkit-box-orient: vertical;
+ font-size: 16px;
+ font-family: SourceHanSansSC-Normal, SourceHanSansSC;
+ font-weight: 400;
+ color: #FFFFFF;
+ margin-top: 12px;
+ }
+ }
+}
+</style>
--
Gitblit v1.9.3