From 5ec73adcca1d7f2b96c623cfdc66e309958ae2bf Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 13 十月 2023 17:24:15 +0800
Subject: [PATCH] 开发

---
 h5/pages/index_2/index.vue                                                             | 1891 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 server/zhubo/src/main/resources/application.yml                                        |    2 
 .idea/jarRepositories.xml                                                              |    5 
 server/service/src/main/java/com/doumee/service/business/impl/WebParamServiceImpl.java |   39 +
 server/company/src/main/java/com/doumee/api/business/WebParamController.java           |   13 
 server/service/src/main/java/com/doumee/dao/system/vo/WebParamVO.java                  |   51 +
 server/service/src/main/java/com/doumee/service/business/WebParamService.java          |    3 
 server/zhubo/src/main/java/com/doumee/api/business/WebParamController.java             |    5 
 server/service/src/main/java/com/doumee/dao/business/model/WebParam.java               |    3 
 server/service/src/main/java/com/doumee/dao/system/dto/UpdateWebParamDTO.java          |    2 
 server/company/src/main/resources/application.yml                                      |    2 
 server/service/src/main/java/com/doumee/dao/system/vo/WebParamDetailVO.java            |   28 
 12 files changed, 2,040 insertions(+), 4 deletions(-)

diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml
index 712ab9d..d46a6c7 100644
--- a/.idea/jarRepositories.xml
+++ b/.idea/jarRepositories.xml
@@ -4,6 +4,11 @@
     <remote-repository>
       <option name="id" value="central" />
       <option name="name" value="Central Repository" />
+      <option name="url" value="http://maven.aliyun.com/nexus/content/groups/public/" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Central Repository" />
       <option name="url" value="https://repo.maven.apache.org/maven2" />
     </remote-repository>
     <remote-repository>
diff --git a/h5/pages/index_2/index.vue b/h5/pages/index_2/index.vue
new file mode 100644
index 0000000..4ac7cd0
--- /dev/null
+++ b/h5/pages/index_2/index.vue
@@ -0,0 +1,1891 @@
+<template>
+	<view class="box">
+		<view class="box_bg" :style="{backgroundImage: 'url(' + Config.resourcePath + Config.bgImg + ')'}"></view>
+		<view class="box_user">
+			<text>{{User.username}}</text>
+			<image src="@/static/ic_logout@2x.png" mode="widthFix" @click="loginOut"></image>
+		</view>
+		<view class="box_content" :style="{maxWidth: Config.rangeSize + 'px', minWidth: Config.rangeSize + 'px'}">
+			<!-- 骞垮憡鍥� -->
+			<view class="advertisement">
+				<image :src="Config.resourcePath + Config.topImg" mode="widthFix"></image>
+			</view>
+			
+			<view class="box_content_left" v-if="status > 0" @click="fanhuiPage">
+				<image src="@/static/ic_left@2x.png" mode="widthFix"></image>
+			</view>
+			<view class="box_content_right" @click="xiaPage" v-if="status > 0 && status !== 2">
+				<image src="@/static/ic_right@2x.png" mode="widthFix"></image>
+			</view>
+			
+			<!-- 涓�閿竻绌烘寜閽� -->
+			<view class="box_content_close" v-if="status === 0" @click="empty">
+				涓�閿竻绌�
+			</view>
+			
+			<!-- 棣栭〉 -->
+			<template v-if="status === 0">
+				<view class="commodityFrom" v-if="shopList && shopList.length > 0">
+					<view class="commodityFrom_head">
+						<view class="commodityFrom_head_item">绫诲埆</view>
+						<view class="commodityFrom_head_item">鍝佺墝</view>
+						<view class="commodityFrom_head_item">鍨嬪彿</view>
+						<view class="commodityFrom_head_item">鎸囧浠�</view>
+						<view class="commodityFrom_head_item">鍏ユ墜浠�</view>
+					</view>
+					<view class="commodityFrom_body">
+						<view class="commodityFrom_body_content">
+							<view class="commodityFrom_body_content_item" v-for="(item, index) in shopList" :key="index">
+								<view class="commodityFrom_body_content_item_num">
+									<view class="commodityFrom_body_content_item_num_img">
+										<image :src="item.categoryImgurl" mode="widthFix"></image>
+									</view>
+									<text>{{item.categoryName}}</text>
+									<!-- {{stringOperations(item.categoryName, 4)}} -->
+								</view>
+								 <!-- @click="open(index, 1)" -->
+								<view class="commodityFrom_body_content_item_num" @mouseenter.stop="mouseenterP(index, item.categoryId)" @mouseleave.stop="mouseleaveP(index)">
+									<!-- {{stringOperations(item.brandName, 4)}}  brandData -->
+									<text>{{item.brandName}}</text> 
+									<view class="drop-down" :style="{ opacity: item.ppShow ? opacity : '0', zIndex: item.ppShow ? zIndex : '-1' }">
+										<view class="drop-down-item" v-for="(child, i) in item.ppData" :key="i" @click.stop="clickBrand(item, child, index)">
+											<text>{{child.name}}</text>
+										</view>
+									</view>
+								</view>
+								 <!-- @click="open(index, 2)" -->
+								<view class="commodityFrom_body_content_item_num" @mouseenter.stop="mouseenterX(index)" @mouseleave.stop="mouseleaveX(index)">
+									<!-- {{stringOperations(item.name, 16)}} -->
+									<text>{{item.name}}</text>
+									
+									<view class="drop-top" v-show="item.name">
+										{{item.name}}
+									</view>
+									<view class="drop-down" :style="{ opacity: item.xhShow ? opacity : '0', zIndex: item.xhShow ? zIndex : '-1' }">
+										<view class="drop-down-item" v-for="(data, s) in item.xhData" :key="s" @click.stop="clickXH(data, index)">
+											<!-- {{ stringOperations(data.name, 7)}} -->
+											<text>{{data.name}}</text>
+										</view>
+									</view>
+								</view>
+								<view class="commodityFrom_body_content_item_num">
+									<text>{{ item.zdPrice }}</text>
+								</view>
+								<view class="commodityFrom_body_content_item_num">
+									<input
+										type="number"
+										v-model="item.price"
+										@onkeyup="checkInput(this)"
+										@input="changePrice(item.price, index)" />
+								</view>
+								<view class="commodityFrom_body_content_item_tips">
+									<image src="@/static/ic_img@2x.png" mode="widthFix" @click="openImg(index)"></image>
+									<image src="@/static/ic_copy@2x.png" mode="widthFix" @click="copyItem(item)"></image>
+									<image src="@/static/ic_delete@2x.png" mode="widthFix" @click="deleItem(index)"></image>
+								</view>
+							</view>
+						</view>
+						<view class="commodityFrom_body_total">
+							<view class="commodityFrom_body_total_item">鎬昏锛�</view>
+							<view class="commodityFrom_body_total_item">
+								{{simplifyNum(zdj)}}
+								<!-- {{unitConvert(zdTotalPrice).num}}{{unitConvert(zdTotalPrice).unit}} -->
+							</view>
+							<view class="commodityFrom_body_total_item">
+								{{simplifyNum(totalPrices)}}
+								<!-- {{unitConvert(totalPrice).num}}{{unitConvert(totalPrice).unit}} -->
+							</view>
+						</view>
+					</view>
+				</view>
+				<view class="productCategory">
+				<view class="productCategory_list">
+					<view
+					class="productCategory_list_item"
+					v-for="(item, index) in category"
+					:key="index"
+					@click="clickItem(index, item.id, item.name)">
+						<image :src="item.imgurl ? item.prefixUrl + item.imgurl : ''" mode="widthFix"></image>
+						<text>{{item.name}}</text>
+					</view>
+					<view class="productCategory_list_zw"></view>
+					<view class="productCategory_list_zw"></view>
+					<view class="productCategory_list_zw"></view>
+					<view class="productCategory_list_zw"></view>
+					<view class="productCategory_list_zw"></view>
+				</view>
+			</view>
+			</template>
+			
+			<!-- 鍟嗗搧鍒楄〃 -->
+			<template v-if="status === 1 || status === 2">
+				<view class="productPage">
+					<view class="productPage_head">
+						<view class="productPage_head_item" v-if="attrFirstList && attrFirstList.length > 0">
+							<text>{{attributeOne.name ? attributeOne.name : attrFirstName}}</text>
+							<image src="@/static/ar_open@2x.png" mode="widthFix"></image>
+							<view class="productPage_xl" v-if="attrFirstList.length > 0">
+								<view class="productPage_xl_iten" v-for="(item, index) in attrFirstList" :key="index" @click="clickShopPageCheck(item, 1)">
+									<text>{{item.name}}</text>
+								</view>
+							</view>
+						</view>
+						<view class="productPage_head_item" v-if="attrSecondList && attrSecondList.length > 0">
+							<text>{{attributeTwo.name ? attributeTwo.name : attrSecondName}}</text>
+							<image src="@/static/ar_open@2x.png" mode="widthFix"></image>
+							<view class="productPage_xl" v-if="attrSecondList.length > 0">
+								<view class="productPage_xl_iten" v-for="(item, index) in attrSecondList" :key="index" @click="clickShopPageCheck(item, 2)">
+									<text>{{item.name}}</text>
+								</view>
+							</view>
+						</view>
+						<view class="productPage_head_item">
+							<text v-if="budget.type == 1 || budget.type == 2">{{budget.name}}</text>
+							<text v-else>{{budget.max && budget.min ? budget.min + '~' + budget.max : '棰勭畻'}}</text>
+							<image src="@/static/ar_open@2x.png" mode="widthFix"></image>
+							<view class="productPage_xl" v-if="budgetList.length > 0">
+								<view class="productPage_xl_iten" v-for="(item, index) in budgetList" :key="index" @click="clickShopPageCheck(item, 3)">
+									<template v-if="!item.name">
+										<text>{{item.minamount}}~{{item.maxamount}}</text>
+									</template>
+									<template v-else>
+										<text>{{item.name}}</text>
+									</template>
+								</view>
+							</view>
+						</view>
+						<view class="productPage_head_item">
+							<text>{{shopPageBrand.name ? shopPageBrand.name : '鍝佺墝'}}</text>
+							<image src="@/static/ar_open@2x.png" mode="widthFix"></image>
+							<view class="productPage_xl" v-if="brandData1.length > 0">
+								<view class="productPage_xl_iten" v-for="(item, index) in brandData1" :key="index" @click="clickShopPageCheck(item, 4)">
+									<text>{{item.name}}</text>
+								</view>
+							</view>
+						</view>
+					</view>
+					<view class="productPage_pk" v-if="isPK || status === 2">
+						<view class="productPage_pk_shop">
+							<view class="productPage_pk_shop_sp" @click="openSearch('left')" v-if="JSON.stringify(leftShop) == '{}'">
+								<image src="@/static/ic_add@2x.png" mode="widthFix"></image>
+							</view>
+							<view class="productPage_pk_shop_sp1" @click="clickPKshop(leftShop)" v-else>
+								<view class="productPage_pk_shop_sp1_img">
+									<image :src="leftShop.imgurl ? leftShop.prefixUrl + leftShop.imgurl : ''" mode="widthFix"></image>
+								</view>
+								<text>{{leftShop.name}}</text>
+							</view>
+							<view class="productPage_pk_shop_t">
+								<image :src="Config.resourcePath + Config.pkImg" mode="widthFix"></image>
+							</view>
+						</view>
+						<view class="productPage_pk_z" @click="jumpPK">
+							<image src="@/static/ic_pk@2x.png" mode="widthFix"></image>
+						</view>
+						<view class="productPage_pk_shop">
+							<view class="productPage_pk_shop_sp" @click="openSearch('right')" v-if="JSON.stringify(rightShop) == '{}'">
+								<image src="@/static/ic_add@2x.png" mode="widthFix"></image>
+							</view>
+							<view class="productPage_pk_shop_sp1" @click="clickPKshop(rightShop)" v-else>
+								<view class="productPage_pk_shop_sp1_img">
+									<image :src="rightShop.imgurl ? rightShop.prefixUrl + rightShop.imgurl : ''" mode="widthFix"></image>
+								</view>
+								<text>{{rightShop.name}}</text>
+							</view>
+							<view class="productPage_pk_shop_t">
+								<image :src="Config.resourcePath + Config.pkImg" mode="widthFix"></image>
+							</view>
+						</view>
+					</view>
+					<view class="productPage_shop" v-if="status === 1 && !pkcontent">
+						<noData v-if="shopPageData.length === 0 && shopPageDataSou.length === 0" />
+						<template v-else>
+							<view class="productPage_shop_item" v-for="(item, index) in isSOU ? shopPageDataSou : shopPageData" :key="index" @click="clickshoppageItem(item)">
+								<view class="productPage_shop_item_img">
+									<image :src="item.imgurl ? item.prefixUrl + item.imgurl : ''" mode="widthFix"></image>
+								</view>
+								<!-- stringOperations(item.name, 6) -->
+								<text>{{item.name}}</text>
+							</view>
+							<view class="productPage_shop_zw"></view>
+							<view class="productPage_shop_zw"></view>
+							<view class="productPage_shop_zw"></view>
+						</template>
+					</view>
+					 <!-- v-if="status === 2" -->
+					<view class="productPage_parameter" v-if="isPK && pkcontent">
+						<view class="productPage_parameter_item" v-for="(item, index) in [leftShop, rightShop]" :key="index">
+							<view class="productPage_parameter_item_head">
+								<text>{{item.name}}</text>
+							</view>
+							<view class="productPage_parameter_item_content">
+								<view class="productPage_parameter_item_content_price">
+									<view class="zdj">
+										<text>鎸囧浠凤細</text>
+										<text>楼{{item.zdPrice}}</text>
+									</view>
+									<view class="rsj">
+										<text>寤鸿鍏ユ墜浠凤細</text>
+										<text>楼{{item.price}}</text>
+									</view>
+								</view>
+								<view class="productPage_parameter_item_content_nr">
+									<view class="item" v-if="item.param1"  v-for="(child, i) in item.param1" :key="child.index">
+										<view class="label">{{child.name}}锛�</view>
+										<view class="value">{{child.val}}</view>
+									</view>
+									<view v-if="item.param2.length>0" class="paramline"></view>
+									<view class="item" v-if="item.param2" v-for="(child, j) in item.param2" :key="child.index">
+										<view class="label">{{child.name}}锛�</view>
+										<view class="value">{{child.val}}</view>
+									</view>
+								</view>
+							</view>
+						</view>
+					</view>
+				</view>
+			</template>
+			
+			<!-- 鎼滅储缁勪欢 -->
+			<search
+				ref="search"
+				:categoryList="category"
+				:shopList="shopData"
+				:status="status"
+				:categoryName="categoryName"
+				:categoryid="categoryId"
+				@result="result" /> 
+		</view>
+	</view>
+</template>
+
+<script>
+	import search from '@/components/search.vue'
+	import noData from '@/components/noData.vue'
+	import { mapState } from 'vuex'
+	import { categoryList, goodsList, brandList, h5Image, goodsPage, listForH5, logout } from '@/apis/index.js'
+	export default {
+		data() {
+			return {
+				status: 0,	// 0棣栭〉 1鍟嗗搧鍒楄〃 2pk椤�
+				
+				img: '',
+				
+				opacity: 1,
+				zIndex: 2,
+				
+				index: '',
+				
+				val: '',
+				
+				isPK: false,
+				pkcontent: false,
+				
+				imgList: [],  // 鏌ョ湅鍥剧墖鏁版嵁闆嗗悎
+				i: 0,
+				
+				categoryId: '',	// 绫诲埆id
+				categoryName: '',	// 绫诲埆鍚嶇О
+				category: [],	// 绫诲埆鏁版嵁
+				shopList: [],	// 棣栭〉宸查�夊晢鍝�
+				shopData: [],	// 鍟嗗搧鏁版嵁
+				brandData: [],	// 鍝佺墝鏁版嵁
+				brandData1: [],		// 鍟嗗搧鍒楄〃椤垫煡璇㈡悳绱�
+				
+				attrFirstName: '',
+				attrSecondName: '',
+				attrFirstList: [],	// 灞炴��1
+				attrSecondList: [],	// 灞炴��2
+				budgetList: [],	// 棰勭畻
+				isSOU: false,
+				shopPageData: [],	// 鍟嗗搧鍒楄〃椤甸潰鏁版嵁
+				shopPageDataSou: [],	// 鍟嗗搧鍒楄〃椤甸潰鎼滅储鏁版嵁
+				attributeOne: {		// 鍟嗗搧椤甸潰灞炴�т竴
+					id: '',
+					name: ''
+				},
+				attributeTwo: {		// 鍟嗗搧椤甸潰灞炴�т簩
+					id: '',
+					name: ''
+				},
+				budget: {		// 鍟嗗搧椤甸潰棰勭畻
+					id: '',
+					max: '',
+					min: '',
+					type: ''
+				},
+				shopPageBrand: {		// 鍟嗗搧椤甸潰鍝佺墝
+					id: '',
+					name: ''
+				},
+				
+				leftShop: {},	// pk宸︿晶鍟嗗搧
+				rightShop: {},	// pk鍙充晶鍟嗗搧
+				
+				totalPrices: 0,
+				zdj: 0,
+				
+				select: [],	// 宸查��
+				
+				model: {		// 鍟嗗搧鏌ヨ鏁版嵁
+					attrFirst: '',
+					attrSecond: '',
+					brandId: '',
+					categoryId: '',
+					eprice: '',
+					sprice: '',
+					keyword: ''
+				},
+				
+				page: 1
+			}
+		},
+		components: { search, noData },
+		onLoad() {
+			var that = this
+			// 鐩戝惉閿洏缁勫悎閿�
+			document.onkeydown = function(e) {
+				var keyCode = e.keyCode || e.which || e.charCode;
+				var ctrlKey = e.ctrlKey || e.metaKey;
+				if (!that.$refs.search.show) {
+					if (ctrlKey && keyCode == 70) {
+						if (that.status === 0) {
+							that.$refs.search.index = 0
+							that.$refs.search.open()
+						}
+						e.preventDefault();
+						return false;
+					} else if (keyCode === 37) {
+						that.fanhuiPage()
+						e.preventDefault();
+						return false;
+					} else if (keyCode === 39) {
+						that.xiaPage()
+						e.preventDefault();
+						return false;
+					}
+				} else {
+					console.log('宸茬粡鎵撳紑鎼滅储妗�', keyCode)
+					if (keyCode === 38) {
+						that.$refs.search.changeTop()
+					} else if (keyCode === 40) {
+						that.$refs.search.changeBottom()
+					} else if (keyCode === 13) {
+						that.$refs.search.confirm()
+					}
+				}
+			}
+			this.getCategoryList()
+			// this.getGoodsList()
+			this.getbrandList()
+			this.h5Images()
+		},
+		onReady() {
+			var that = this
+			let divs = document.getElementsByClassName('box')
+			let start = 0
+			divs[0].onmousedown = function(ev){
+				if (that.status === 1) {
+					start = ev.pageY
+					//event鐨勫吋瀹规��
+					var ev = ev || event;
+					//鑾峰彇榧犳爣鎸変笅鐨勫潗鏍�
+					var x1 = ev.clientX;
+					var y1 = ev.clientY;
+					//鑾峰彇鍏冪礌鐨刲eft锛宼op鍊�
+					var l = divs.offsetLeft;
+					var t = divs.offsetTop;
+					//缁欏彲瑙嗗尯鍩熸坊鍔犻紶鏍囩殑绉诲姩浜嬩欢
+					document.onmousemove = function(ev) {
+					    //event鐨勫吋瀹规��
+					    var ev = ev || event;
+					    //鑾峰彇榧犳爣绉诲姩鏃剁殑鍧愭爣
+					    var x2 = ev.clientX;
+					    var y2 = ev.clientY;
+					    //璁$畻鍑洪紶鏍囩殑绉诲姩璺濈
+					    var x = x2 - x1;
+					    var y = y2 - y1;
+					    //绉诲姩鐨勬暟鍊间笌鍏冪礌鐨刲eft锛宼op鐩稿姞锛屽緱鍑哄厓绱犵殑绉诲姩鐨勮窛绂�
+					    var lt = y + t;
+					    var ls = x + l;
+						let num = start - ev.pageY
+						if (num < -100) {
+							that.isPK = true
+						} else if (num > 100) {
+							that.leftShop = {}
+							that.rightShop = {}
+							that.isPK = false
+						}
+					}
+					//娓呴櫎
+					document.onmouseup = function(ev){
+					    document.onmousemove = null;
+					}
+				}
+			}
+		},
+		onUnload() {
+			//娓呴櫎
+			document.onmouseup = function(ev){
+			    document.onmousemove = null;
+			}
+			//娓呴櫎
+			document.onkeydown = null
+		},
+		computed: {
+			// 鎸囧浠锋�昏
+			zdTotalPrice() {
+				let num = 0
+				this.shopList.forEach(item => {
+					// num = num + Number(item.zdPrice)
+					num = this.addPrice(num, Number(item.zdPrice))
+				})
+				return num || 0
+			},
+			// 鍏ユ墜浠�
+			totalPrice() {
+				let num = 0
+				this.shopList.forEach(item => {
+					// num = num + Number(item.price)
+					num = this.addPrice(num, Number(item.price))
+				})
+				return num || 0
+			},
+			...mapState(['Cookies', 'Config', 'User'])
+		},
+		watch: {
+			status: {
+				handler(news, old) {
+					if (news === 0) {
+						this.page = 1
+						this.categoryName = ''
+						this.categoryId = ''
+						this.shopPageData = []
+					}
+				}
+			},
+			shopList: {
+				deep: true,
+				handler(news, old) {
+					let rsj = 0
+					let zdj = 0
+					this.shopList.forEach(item => {
+						// rsj = rsj + Number(item.price)
+						rsj = this.addPrice(rsj, Number(item.price))
+						// zdj = zdj + Number(item.zdPrice)
+						zdj = this.addPrice(zdj, Number(item.zdPrice))
+					})
+					// console.log('rsj', rsj)
+					// console.log('zdj', zdj)
+					this.totalPrices = rsj
+					this.zdj = zdj
+				}
+			}
+		},
+		methods: {
+			async mouseenterP(index, categoryId) {
+				this.shopList[index].ppShow = true
+				if (!this.shopList[index].ppData || this.shopList[index].ppData.length == 0) {
+					let res = await brandList({ categoryId })
+					if (res.code === 200) {
+						this.shopList[index].ppData = res.data
+					}
+				}
+				this.$forceUpdate()
+			},
+			mouseleaveP(index) {
+				this.shopList[index].ppShow = false
+				this.$forceUpdate()
+			},
+			async mouseenterX(index) {
+				this.shopList[index].xhShow = true
+				if (this.shopList[index].xhData && this.shopList[index].xhData.length > 0) {
+					
+					this.$forceUpdate()
+				} else {
+					let res = await listForH5({
+						categoryId: this.shopList[index].categoryId,
+						brandId: this.shopList[index].brandId
+					})
+					if (res.code === 200) {
+						this.shopList[index].xhData = res.data;
+						// this.shopList[index].xhShow = true
+						this.$forceUpdate()
+					}
+				}
+				// this.shopList[index].xhShow = true
+				// this.$forceUpdate()
+			},
+			mouseleaveX(index) {
+				this.shopList[index].xhShow = false
+				this.$forceUpdate()
+				// listForH5({
+				// 	categoryId: this.shopList[index].categoryId,
+				// 	brandId: this.shopList[index].brandId
+				// }).then(res => {
+				// 	this.shopList[index].xhData = res.data;
+				// 	this.shopList[index].xhShow = false
+				// 	this.$forceUpdate()
+				// })
+				// this.shopList[index].ppShow = false
+				// this.$forceUpdate()
+			},
+			addPrice (arg1, arg2) {
+				let r1, r2, m;
+				try {
+					r1 = arg1.toString().split('.')[1].length; // 鑾峰彇arg1灏忔暟浣嶇殑闀垮害
+				} catch (e) {
+					r1 = 0;
+				}
+				try {
+					r2 = arg2.toString().split('.')[1].length; // 鑾峰彇arg2灏忔暟浣嶇殑闀垮害
+				} catch (e) {
+					r2 = 0;
+				}
+				m = Math.pow(10, Math.max(r1, r2)); // max()鍑芥暟鏄�夊嚭灏忔暟鐐逛綅鏈�澶х殑鍙傛暟鐨勯暱搴︼紝淇濊瘉灏嗕袱涓弬鏁伴兘鍖栦负鏁存暟锛宲ow()鍑芥暟鏄皢10鍋氭寚鏁板箓鎿嶄綔,灏嗗弬鏁伴兘鍖栦负鏁存暟
+				return (arg1 * m + arg2 * m )/m;
+			},
+			// 閫�鍑�
+			loginOut() {
+				logout({})
+					.then(res => {
+						this.$store.commit('clean')
+						uni.redirectTo({ url: '/pages/login/login' });
+					})
+			},
+			// 鏌ヨ鍟嗗搧鏁版嵁
+			getShopList(type) {
+				if (type === 1) {
+					this.page = 1
+					this.shopPageData = []
+				}
+				goodsPage({
+					capacity: 20,
+					page: this.page,
+					model: this.model
+				}).then(res => {
+					if (this.shopPageData.length === res.data.total) return
+					let arr = [...this.shopPageData, ...res.data.records]
+					this.shopPageData = arr
+					this.page = this.page + 1
+				})
+			},
+			checkInput(_this) {
+			  if (_this.value != '' && _this.value.substr(0, 1) == '.') {
+				_this.value = 0
+			  }
+			  if (_this.value == '') {
+				_this.value = 0
+			  }
+			  _this.value = _this.value.replace(/^0*(0\.|[1-9])/, '$1') // 绂佹绮樿创
+			  _this.value = _this.value.replace(/[^\d.]/g, '0.00') // 绂佹杈撳叆闈炴暟瀛�
+			  _this.value = _this.value.replace(/\.{2,}/g, '.') // 鍙繚鐣欑涓�涓�. 娓呴櫎澶氫綑鐨�
+			  _this.value = _this.value.replace('.', '$#$').replace(/\./g, '').replace('$#$', '.')
+			  _this.value = _this.value.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3') // 鍙兘杈撳叆涓や釜灏忔暟
+
+			  if (_this.value.indexOf('.') < 0 && _this.value != '') {
+				// 浠ヤ笂宸茬粡杩囨护锛屾澶勬帶鍒剁殑鏄鏋滄病鏈夊皬鏁扮偣锛岄浣嶄笉鑳戒负绫讳技浜� 01銆�02鐨勯噾棰�
+				if (_this.value.substr(0, 1) == '0' && _this.value.length == 2) {
+				  _this.value = _this.value.substr(1, _this.value.length)
+				}
+			  }
+			  if (!_this.value) {
+				_this.value = 0
+			  }
+			},
+			changePrice(price, index) {
+				if (price.indexOf('-') !== -1) {
+					console.log('-')
+					this.shopList[index].price = ''
+					return
+				}
+				// if (!/^\d[0,9]$/.test(price)) {
+				// 	this.shopList[index].price = JSON.parse(JSON.stringify(price.replace(/-/g, '')))
+				// 	return
+				// }
+				let rsj = 0
+				this.shopList.forEach(item => {
+					rsj = rsj + Number(item.price)
+				})
+				console.log('rsj', rsj)
+				this.totalPrices = rsj
+			},
+			simplifyNum(number) {
+				if (!number && number != 0) return number;
+				let test = number.toFixed(0)
+				// console.log(test)
+				if(test.length >= 7){
+					const moneys = number / 10000
+					const realVal = parseFloat(moneys).toFixed(0);
+					return realVal + "w"
+				} else {
+					return number
+				}
+			},
+			// 鑾峰彇娴锋姤鍥�
+			h5Images() {
+				h5Image({})
+					.then(res => {
+						this.img = res.data
+					})
+			},
+			xiaPage() {
+				if (this.status === 2 || this.status === 0) return
+				this.status = this.status + 1
+			},
+			// 杩斿洖涓婁竴椤�
+			fanhuiPage() {
+				if (this.status === 0) return
+				this.status = this.status - 1
+				if (this.status === 0) {
+					this.leftShop = {}
+					this.rightShop = {}
+					this.isPK = false,
+					this.pkcontent = false
+					this.attributeOne = {
+						id: '',
+						name: ''
+					},
+					this.attributeTwo = {
+						id: '',
+						name: ''
+					},
+					this.budget = {
+						id: '',
+						max: '',
+						min: ''
+					}
+					this.shopPageBrand = {
+						id: '',
+						name: ''
+					}
+				} else if (this.status === 1) {
+					this.leftShop = {}
+					this.rightShop = {}
+					this.isPK = false,
+					this.pkcontent = false
+				}
+			},
+			// 鐐瑰嚮鍨嬪彿
+			clickXH(item, index) {
+				let obj = JSON.parse(JSON.stringify(this.shopList[index]))
+				obj.name = JSON.parse(JSON.stringify(item.name))
+				obj.zdPrice = JSON.parse(JSON.stringify(item.zdPrice))
+				obj.price = JSON.parse(JSON.stringify(item.price))
+				obj.multifileList = JSON.parse(JSON.stringify(item.multifileList))
+				obj.xhShow = false
+				// this.shopList.splice(index, 1)
+				this.shopList[index] = JSON.parse(JSON.stringify(obj))
+				console.log(this.shopList[index])
+				console.log(JSON.parse(JSON.stringify(obj)))
+				let rsj = 0
+				let zdj = 0
+				this.shopList.forEach(item => {
+					rsj = this.addPrice(rsj, Number(item.price))
+					zdj = this.addPrice(zdj, Number(item.zdPrice))
+				})
+				this.totalPrices = rsj
+				this.zdj = zdj
+				this.$forceUpdate()
+			},
+			// 鐐瑰嚮pk鍟嗗搧甯﹀洖棣栭〉
+			clickPKshop(item) {
+				this.shopList.push(item)
+				this.status = 0
+				this.isPK = false
+				this.pkcontent = false
+				this.leftShop = {}
+				this.rightShop = {}
+			},
+			// 鏌ョ湅澶у浘
+			openImg(i) {
+				this.imgList = []
+				this.shopList.forEach((item, index) => {
+					if (index === i) {
+						item.multifileList.forEach(child => {
+							this.imgList.push(item.prefixUrl + child.fileurl)
+						})
+					}
+				})
+				if (this.imgList.length === 0) return
+				this.$viewerApi({
+				  images: this.imgList,
+				})
+			},
+			empty() {
+				this.shopList = []
+			},
+			// 璺宠浆pk
+			jumpPK() {
+				if (JSON.stringify(this.leftShop) !== '{}' && JSON.stringify(this.rightShop) !== '{}') {
+					this.isPK = true
+					this.pkcontent = true
+					this.status = 2
+				}
+			},
+			// 鐐瑰嚮鍔犲叆pk鍟嗗搧
+			openSearch(type) {
+				if (type === 'left') {
+					this.$refs.search.open('left')
+				} else if (type === 'right') {
+					this.$refs.search.open('right')
+				}
+			},
+			// 鐐瑰嚮鍟嗗搧鍒楄〃椤甸潰鏌ヨ
+			clickShopPageCheck(item, type) {
+				this.leftShop = {}
+				this.rightShop = {}
+				// this.isSOU = true
+				// this.shopPageDataSou = []
+				if (type === 1) {
+					this.attributeOne.name = item.name  === '鍏ㄩ儴' ? '' : item.name
+					this.attributeOne.id = item.id
+					
+					if (item.name === '鍏ㄩ儴') {
+						this.model.attrFirst = ''
+					} else {
+						this.model.attrFirst = item.id
+					}
+					
+					this.getShopList(1)
+					
+				} else if (type === 2) {
+					this.attributeTwo.name = item.name === '鍏ㄩ儴' ? '' : item.name
+					this.attributeTwo.id = item.id
+					
+					if (item.name === '鍏ㄩ儴') {
+						this.model.attrSecond = ''
+					} else {
+						this.model.attrSecond = item.id
+					}
+					
+					this.getShopList(1)
+				} else if (type === 3) {
+					console.log(item)
+					this.budget.id = item.id
+					this.budget.max = item.maxamount
+					this.budget.min = item.minamount
+					this.budget.type = item.type
+					if (item.name) {
+						this.budget.name = item.name
+					}
+					if (item.name === '鍏ㄩ儴') {
+						this.model.sprice = ''
+						this.model.eprice = ''
+					} else {
+						this.model.sprice = item.minamount || 0
+						this.model.eprice = item.maxamount || 99999
+					}
+					
+					this.getShopList(1)
+				} else if (type === 4) {
+					this.shopPageBrand.id = item.id
+					this.shopPageBrand.name = item.name === '鍏ㄩ儴' ? '' : item.name
+					
+					if (item.name === '鍏ㄩ儴') {
+						this.model.brandId = ''
+					} else {
+						this.model.brandId = item.id
+					}
+					
+					this.getShopList(1)
+				}
+				this.isPK = false
+				this.pkcontent = false
+				this.status = 1
+				this.shopPageData.forEach(item => {
+					if (
+					(this.attributeOne.id ? item.attrFirstIds.indexOf(String(this.attributeOne.id)) !== -1 : true) &&
+					(this.attributeTwo.id ? item.attrSecodIds.indexOf(String(this.attributeTwo.id)) !== -1 : true) &&
+					(this.budget.type == 3 ? (item.price <= Number(this.budget.max)) && (item.price >= Number(this.budget.min)) : true) &&
+					(this.budget.type == 1 ? (item.price <= Number(this.budget.max)) : true) &&
+					(this.budget.type == 2 ? (item.price >= Number(this.budget.min)) : true) &&
+					(this.shopPageBrand.id ? item.brandId === this.shopPageBrand.id : true)
+					) {
+						this.shopPageDataSou.push(item)
+					}
+				})
+			},
+			// 鐐瑰嚮鍟嗗搧鍒楄〃椤甸潰鍟嗗搧
+			clickshoppageItem(item) {
+				this.shopList.push(item)
+				this.attrFirstList = []
+				this.attrSecondList = []
+				this.budgetList = []
+				this.status = 0
+				this.isPK = false
+				this.pkcontent = false
+			},
+			// 鑾峰彇鎼滅储缁撴灉
+			getSelectShop(categoryId, brandId) {
+				this.select = []
+				this.shopData.forEach(item => {
+					if (item.categoryId === categoryId && item.brandId === brandId) {
+						this.select.push(JSON.parse(JSON.stringify(item)))
+					}
+				})
+			},
+			// 閫夋嫨鍝佺墝
+			clickBrand(item, val, index) {
+				// let res = await listForH5({
+				// 	categoryId: this.shopList[index].categoryId,
+				// 	brandId: this.shopList[index].brandId
+				// })
+				// if (res.code === 200) {
+				// 	this.shopList[index].xhData = res.data;
+				// }
+				this.shopList[index].brandName = JSON.parse(JSON.stringify(val.name))
+				this.shopList[index].brandId = JSON.parse(JSON.stringify(val.id))
+				this.shopList[index].name = ''
+				this.shopList[index].zdPrice = ''
+				this.shopList[index].price = ''
+				this.shopList[index].xhData = []
+				this.shopList[index].multifileList = []
+				this.shopList[index].ppShow = false
+				this.$forceUpdate()
+			},
+			// 鍝佺墝
+			getbrandList() {
+				// brandList({})
+				// 	.then(res => {
+				// 		this.brandData = JSON.parse(JSON.stringify(res.data))
+				// 		this.brandData1 = JSON.parse(JSON.stringify(res.data))
+				// 		this.brandData1.unshift({ name: '鍏ㄩ儴', id: '' })
+				// 	})
+			},
+			// 鑾峰彇閫変腑鍟嗗搧
+			result(val) {
+				val.ppShow = false
+				val.xhShow = false
+				if (this.$refs.search.typeName === 'left') {
+					this.leftShop = JSON.parse(JSON.stringify(val))
+				} else if (this.$refs.search.typeName === 'right') {
+					this.rightShop = JSON.parse(JSON.stringify(val))
+					let leftParamList = this.leftShop.goodsParamList;
+					let rightParamList = this.rightShop.goodsParamList;
+					let leftList1 = new Array();
+					let leftList2 =  new Array();
+					let rightList1 = new Array();
+					let rightList2 =  new Array();
+					if(leftParamList && leftParamList.length>0){
+						leftParamList.forEach(item => {
+							let flag =0;
+							let rightTemp = null;
+							if(rightParamList && rightParamList.length>0){
+								rightParamList.forEach(item1 => {
+									if (item.name === item1.name ) {
+										flag =1;
+										rightTemp = item1;
+										return;
+									}
+								})	
+							}
+							if(flag === 1){
+								leftList1.push(item);
+								rightList1.push(rightTemp);
+							}else{
+								leftList2.push(item);
+							}
+						})	
+					}
+					if(rightParamList && rightParamList.length>0){
+						rightParamList.forEach(item=> {
+							let flag1 = 0;
+							rightList1.forEach(item1 => {
+								if (item.name === item1.name ) {
+									flag1 =1; 
+									//return;
+								}
+							})	
+							if(flag1 === 0){
+								rightList2.push(item);
+							}
+						})	
+					}
+					Reflect.set(this.leftShop, "param1",leftList1);
+					Reflect.set(this.leftShop, "param2",leftList2);
+					Reflect.set(this.rightShop, "param1",rightList1);
+					Reflect.set(this.rightShop, "param2",rightList2);
+				} else {
+					this.shopList.push(JSON.parse(JSON.stringify(val)))
+				}
+			},
+			// 鑾峰彇鍏ㄩ儴鍟嗗搧
+			getGoodsList() {
+				goodsList({})
+					.then(res => {
+						this.shopData = res.data
+					})
+			},
+			// 鑾峰彇鍏ㄩ儴鍝佺被
+			getCategoryList() {
+				categoryList({})
+					.then(res => {
+						res.data.forEach(item => {
+							item.active = false
+						})
+						this.category = res.data
+					})
+			},
+			stringOperations(val, num) {
+				if (!val) return
+				if (val.length <= num) return val
+				return val.substring(0, num) + '...'
+			},
+			copyItem(item) {
+				let obj = JSON.parse(JSON.stringify(item))
+				obj.multifileList = []
+				obj.xhData = []
+				obj.brandId = ''
+				obj.brand = ''
+				obj.brandName = ''
+				obj.name = ''
+				obj.zdPrice = ''
+				obj.price = ''
+				console.log(obj)
+				this.shopList.push(obj)
+			},
+			deleItem(i) {
+				this.shopList.splice(i, 1)
+			},
+			// 棣栭〉宸查�夊垪琛ㄥ搧鐗屼笅鎷�
+			open(index, type) {
+				this.shopList.forEach((item, i) => {
+					item.ppShow = false
+					item.xhShow = false
+				})
+				
+				this.shopList.forEach((item, i) => {
+					if (i === index) {
+						if (type === 1) {
+							item.ppShow = true
+						} else {
+							listForH5({
+								categoryId: this.shopList[index].categoryId,
+								brandId: this.shopList[index].brandId
+							}).then(res => {
+								this.shopList[index].xhData = res.data;
+								item.xhShow = true
+								this.$forceUpdate()
+							})
+							
+							// let arr = []
+							// this.shopData.forEach(element => {
+							// 	// console.log(element.categoryId === item.categoryId && element.brandId === item.brandId)
+							// 	if (
+							// 	(item.categoryId ? element.categoryId === item.categoryId : true) &&
+							// 	(item.brandId ? element.brandId === item.brandId : true)) {
+							// 		arr.push(JSON.parse(JSON.stringify(element)))
+							// 	}
+							// })
+							// this.shopList[index].xhData = arr;
+							// item.xhShow = true
+						}
+					}
+				})
+				this.$forceUpdate()
+			},
+			// 鐐瑰嚮绫诲埆
+			clickItem(index, id, name) {
+				this.categoryId = id
+				this.model.categoryId = id
+				this.categoryName = name
+				
+				this.getShopList()
+				
+				brandList({ categoryId: id })
+					.then(res => {
+						this.brandData1 = JSON.parse(JSON.stringify(res.data))
+						this.brandData1.unshift({ name: '鍏ㄩ儴', id: '' })
+						console.log(this.brandData1)
+					})
+				
+				this.category.forEach((item, num) => {
+					if (index === num) {
+						item.active = true
+						
+						this.attrSecondList = []
+						this.attrFirstList = []
+						this.budgetList = []
+						
+						this.attrFirstName = item.attrFirst
+						this.attrSecondName = item.attrSecond
+						if (item.cateParamFirstList) {
+							this.attrFirstList = JSON.parse(JSON.stringify(item.cateParamFirstList))
+							this.attrFirstList.unshift({ name: '鍏ㄩ儴', id: '' })
+						}
+						if (item.cateParamSecondList) {
+							this.attrSecondList = JSON.parse(JSON.stringify(item.cateParamSecondList))
+							this.attrSecondList.unshift({ name: '鍏ㄩ儴', id: '' })
+						}
+						// this.budgetList = JSON.parse(JSON.stringify(item.budgetList))
+						// console.log(item.budgetList)
+						let arr = []
+						item.budgetList.forEach(item => {
+							// 娌℃湁鏈�灏忛噾棰�
+							if (!item.minamount) {
+								arr.push({
+									id: JSON.parse(JSON.stringify(item.id)),
+									type: 1,
+									maxamount: JSON.parse(JSON.stringify(item.maxamount)),
+									minamount: JSON.parse(JSON.stringify(item.minamount)),
+									name: `${JSON.parse(JSON.stringify(item.maxamount))}浠ュ唴`
+								})
+							// 娌℃湁鏈�澶ч噾棰�
+							} else if (!item.maxamount) {
+								arr.push({
+									id: JSON.parse(JSON.stringify(item.id)),
+									type: 2,
+									maxamount: JSON.parse(JSON.stringify(item.maxamount)),
+									minamount: JSON.parse(JSON.stringify(item.minamount)),
+									name: `${JSON.parse(JSON.stringify(item.minamount))}浠ヤ笂`
+								})
+							} else {
+								arr.push({
+									id: JSON.parse(JSON.stringify(item.id)),
+									type: 3,
+									maxamount: JSON.parse(JSON.stringify(item.maxamount)),
+									minamount: JSON.parse(JSON.stringify(item.minamount))
+								})
+							}
+						})
+						arr.unshift({ name: '鍏ㄩ儴', id: '' })
+						this.budgetList = arr
+						// console.log(this.budgetList)
+					} else {
+						item.active = false
+					}
+				})
+				// this.shopPageData = []
+				// this.shopData.forEach(item => {
+				// 	if (item.categoryId === id) {
+				// 		this.shopPageData.push(JSON.parse(JSON.stringify(item)))
+				// 	}
+				// })
+				this.attributeOne = {
+					id: '',
+					name: ''
+				},
+				this.attributeTwo = {
+					id: '',
+					name: ''
+				},
+				this.budget = {
+					id: '',
+					max: '',
+					min: ''
+				},
+				this.shopPageBrand = {
+					id: '',
+					name: ''
+				},
+				this.status = 1
+			},
+			mousemove(e) {
+				if (e === this.index) return
+				this.index = e
+			}
+		},
+		onReachBottom() {
+			if (this.status == 1) {
+				this.getShopList()
+			}
+		}
+	}
+</script>
+
+<style lang="scss" scoped>
+	.box {
+		width: 100vw;
+		min-height: 100vh;
+		display: flex;
+		justify-content: center;
+		.box_bg {
+			position: fixed;
+			top: 0;
+			left: 0;
+			z-index: -1;
+			width: 100vw;
+			height: 100vh;
+			background-repeat: no-repeat;
+			background-size: 100% 100%;
+		}
+		.box_user {
+			z-index: 9;
+			position: fixed;
+			top: 30px;
+			right: 40px;
+			display: flex;
+			align-items: center;
+			text {
+				font-size: 16px;
+				font-family: PingFangSC-Medium, PingFang SC;
+				font-weight: 500;
+				color: #FFFFFF;
+			}
+			image {
+				width: 18px;
+				height: 18px;
+				cursor: pointer;
+				margin-left: 10px;
+			}
+		}
+		.box_content {
+			// max-width: 750px;
+			// min-width: 750px;
+			.box_content_left {
+				position: fixed;
+				left: 80px;
+				top: 50%;
+				cursor: pointer;
+				transform: translate(-50%, 0);
+				width: 80px;
+				height: 80px;
+				z-index: 9;
+				image {
+					width: 100%;
+					height: 100%;
+				}
+			}
+			.box_content_right {
+				position: fixed;
+				right: 0px;
+				top: 50%;
+				cursor: pointer;
+				transform: translate(-50%, 0);
+				width: 80px;
+				height: 80px;
+				z-index: 9;
+				image {
+					width: 100%;
+					height: 100%;
+				}
+			}
+			.box_content_close {
+				position: fixed;
+				right: 0;
+				bottom: 30px;
+				cursor: pointer;
+				transform: translate(-50%, 0);
+				width: 80px;
+				height: 80px;
+				border-radius: 50%;
+				background-color: rgba(0, 224, 255, 0.18);
+				color: #FFFFFF;
+				font-size: 16px;
+				display: flex;
+				align-items: center;
+				justify-content: center;
+			}
+			.advertisement {
+				width: 100%;
+				// height: 300px;
+				image {
+					width: 100%;
+					height: 100%;
+				}
+			}
+			.commodityFrom {
+				width: 100%;
+				padding: 0 22px;
+				box-sizing: border-box;
+				margin-top: 16px;
+				.commodityFrom_head {
+					width: 100%;
+					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%);
+					border-radius: 8px 8px 0px 0px;
+					display: flex;
+					align-items: center;
+					.commodityFrom_head_item {
+						// flex: 1;
+						width: 126px;
+						height: 100%;
+						display: flex;
+						align-items: center;
+						justify-content: center;
+						font-size: 16px;
+						font-family: SourceHanSansSC-Medium, SourceHanSansSC;
+						font-weight: 500;
+						color: #FFFFFF;
+						margin-right: 6px;
+						&:last-child {
+							margin-right: 0 !important;
+						}
+						&:nth-child(3) {
+							flex: 1 !important;
+						}
+						&:nth-child(4) {
+							width: 100px !important;
+						}
+						&:nth-child(5) {
+							width: 100px !important;
+						}
+					}
+				}
+				.commodityFrom_body {
+					width: 100%;
+					padding: 10px 8px;
+					box-sizing: border-box;
+					background: rgba(0,224,255,0.3);
+					border-radius: 0 0 8px 8px;
+					display: flex;
+					flex-direction: column;
+					.commodityFrom_body_content {
+						width: 100%;
+						display: flex;
+						flex-direction: column;
+						.commodityFrom_body_content_item {
+							width: 100%;
+							height: 45px;
+							display: flex;
+							align-items: center;
+							margin-bottom: 6px;
+							position: relative;
+							transition: .5s;
+							&:hover .commodityFrom_body_content_item_tips {
+								transform: translate(100%, 0%);
+								opacity: 1;
+								z-index: 1;
+							}
+							.commodityFrom_body_content_item_tips {
+								transition: .5s;
+								position: absolute;
+								padding: 0 4px;
+								box-sizing: border-box;
+								right: -16px;
+								top: 0;
+								opacity: 0;
+								transform: translate(0%, 0%);
+								z-index: -1;
+								height: 45px;
+								display: flex;
+								align-items: center;
+								background: rgba(0,224,255,0.3);
+								border-radius: 8px;
+								image {
+									width: 32px;
+									height: 32px;
+									cursor: pointer;
+								}
+							}
+							.commodityFrom_body_content_item_num {
+								width: 126px;
+								height: 100%;
+								padding: 0 15px;
+								box-sizing: border-box;
+								background: #FFFFFF;
+								border-radius: 8px;
+								margin-right: 6px;
+								display: flex;
+								align-items: center;
+								justify-content: center;
+								position: relative;
+								&:hover {
+									.drop-top {
+										z-index: 5;
+										opacity: 1;
+									}
+								}
+								&:nth-child(4) {
+									width: 100px !important;
+								}
+								&:nth-child(5) {
+									width: 100px !important;
+									margin-right: 0 !important;
+								}
+								&:nth-child(2) {
+									cursor: pointer;
+								}
+								&:nth-child(3) {
+									cursor: pointer;
+									flex: 1 !important;
+								}
+								text {
+									text-align: center;
+									width: 100%;
+									font-size: 16px;
+									font-family: PingFangSC-Medium, PingFang SC;
+									font-weight: 500;
+									color: #111111;
+									overflow: hidden;
+									white-space: nowrap;
+									text-overflow: ellipsis;
+								}
+								.drop-top {
+									transition: .5s;
+									z-index: -2;
+									opacity: 0;
+									position: absolute;
+									top: 0;
+									left: 0;
+									white-space: nowrap;
+									transform: translate(0, -100%);
+									padding: 5px 15px;
+									box-sizing: border-box;
+									line-height: 40px;
+									background: rgba(0, 0, 0, 0.8);
+									border-radius: 10px;
+									color: #FFFFFF;
+									font-size: 16px;
+									font-weight: 500;
+								}
+								.commodityFrom_body_content_item_num_img {
+									width: 28px;
+									height: 28px;
+									display: flex;
+									align-items: center;
+									justify-content: center;
+									margin-right: 4px;
+									image {
+										width: 100%;
+										height: 100%;
+									}
+								}
+								input {
+									font-size: 16px;
+									font-family: PingFangSC-Medium, PingFang SC;
+									font-weight: 500;
+									color: #111111;
+									text-align: center;
+								}
+								.drop-down::-webkit-scrollbar {
+								    width: 6px;
+									background: rgba(255,255,255,0.5);
+									border-radius: 4px;
+								}
+								.drop-down::-webkit-scrollbar-thumb {
+								    box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
+									background: rgba(255,255,255,0.8);
+								}
+								.drop-down {
+									position: absolute;
+									bottom: 0;
+									left: 0;
+									width: 100%;
+									min-height: 0;
+									max-height: 260px;
+									overflow-y: scroll;
+									overflow-x: hidden;
+									height: auto;
+									transform: translate(0%, 100%);
+									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;
+									// display: flex;
+									// flex-direction: column;
+									transition: .5s;
+									.drop-down-item {
+										width: 100%;
+										height: 52px;
+										// padding: 0 10px;
+										// box-sizing: border-box;
+										// overflow: hidden;
+										// white-space: nowrap;
+										// text-overflow: ellipsis;
+										cursor: pointer;
+										display: flex;
+										align-items: center;
+										justify-content: center;
+										padding: 0 10px;
+										box-sizing: border-box;
+										&:hover {
+											text {
+												color: #FFF200;
+											}
+										}
+										text {
+											width: 100%;
+											text-align: center;
+											font-size: 16px;
+											font-family: PingFangSC-Regular, PingFang SC;
+											font-weight: 400;
+											color: #FFFFFF;
+											overflow: hidden;
+											white-space: nowrap;
+											text-overflow: ellipsis;
+										}
+									}
+								}
+							}
+						}
+					}
+					.commodityFrom_body_total {
+						width: 100%;
+						height: 45px;
+						display: flex;
+						align-items: center;
+						.commodityFrom_body_total_item {
+							width: 100px;
+							height: 100%;
+							background: rgba(255,255,255,0.4);
+							border-radius: 8px;
+							margin-right: 6px;
+							font-size: 16px;
+							font-family: SourceHanSansSC-Bold, SourceHanSansSC;
+							font-weight: bold;
+							color: #FFF200;
+							display: flex;
+							align-items: center;
+							justify-content: center;
+							input {
+								font-size: 16px;
+								font-family: SourceHanSansSC-Bold, SourceHanSansSC;
+								font-weight: bold;
+								color: #FFF200;
+								text-align: center;
+							}
+							&:first-child {
+								flex: 1;
+								display: flex;
+								align-items: center;
+								justify-content: flex-end;
+								font-size: 16px;
+								font-family: SourceHanSansSC-Medium, SourceHanSansSC;
+								font-weight: 500;
+								color: #FFFFFF;
+							}
+							&:last-child {
+								margin-right: 0 !important;
+							}
+						}
+					}
+				}
+			}
+			.productCategory {
+				width: 100%;
+				padding: 0 22px;
+				box-sizing: border-box;
+				margin-top: 10px;
+				.productCategory_list {
+					width: 100%;
+					padding: 10px 20px 0px 20px;
+					box-sizing: border-box;
+					background: rgba(0,224,255,0.18);
+					border-radius: 8px;
+					display: flex;
+					align-items: center;
+					justify-content: space-between;
+					flex-wrap: wrap;
+					margin-bottom: 30px;
+					.productCategory_list_zw {
+						width: 20%;
+						height: 0;
+					}
+					.productCategory_active {
+						background: rgba(255,255,255,0.24) !important;
+						border-radius: 8px !important;
+					}
+					.productCategory_list_item {
+						width: 20%	;
+						height: 108px;
+						display: flex;
+						transition: .5s;
+						flex-direction: column;
+						align-items: center;
+						justify-content: center;
+						margin-bottom: 12px;
+						cursor: pointer;
+						&:hover {
+							background: rgba(255,255,255,0.24) !important;
+							border-radius: 8px !important;
+						}
+						image {
+							width: 52px;
+							height: 52px;
+							margin-bottom: 4px;
+						}
+						text {
+							font-size: 16px;
+							font-family: SourceHanSansSC-Normal, SourceHanSansSC;
+							font-weight: 400;
+							color: #FFFFFF;
+						}
+					}
+				}
+			}
+			.productPage {
+				width: 100%;
+				padding: 0 22px;
+				box-sizing: border-box;
+				margin-top: 16px;
+				.productPage_head {
+					width: 100%;
+					height: 45px;
+					display: flex;
+					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%;
+						display: flex;
+						align-items: center;
+						justify-content: center;
+						cursor: pointer;
+						position: relative;
+						&:hover {
+							border-radius: 8px 8px 0px 0px;
+							background: linear-gradient(360deg, #025170 0%, #529DB9 100%) !important;
+						}
+						&:hover image {
+							transform: rotate(180deg);
+						}
+						&:hover .productPage_xl {
+							transform: translate(0%, 100%);
+							display: block;
+							animation: move 0.5s 0s;
+						}
+						@keyframes move {
+							0%{
+								opacity: 0;
+							}
+							100%{
+								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;
+							bottom: 0;
+							left: 0;
+							min-height: 0;
+							max-height: 260px;
+							overflow-y: scroll;
+							overflow-x: hidden;
+							height: auto;
+							display: none;
+							z-index: 3;
+							transform: translate(0%, 90%);
+							width: 100%;
+							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;
+								line-height: 40px;
+								text-align: center;
+								cursor: pointer;
+								padding: 0 10px;
+								box-sizing: border-box;
+								&:hover {
+									text {
+										color: #FFF200;
+									}
+								}
+								text {
+									width: 100%;
+									text-align: center;
+									font-size: 16px;
+									font-family: PingFangSC-Regular, PingFang SC;
+									font-weight: 400;
+									color: #FFFFFF;
+									overflow: hidden;
+									white-space: nowrap;
+									text-overflow: ellipsis;
+								}
+							}
+						}
+						text {
+							font-size: 16px;
+							font-family: SourceHanSansSC-Regular, SourceHanSansSC;
+							font-weight: 400;
+							color: #FFFFFF;
+						}
+						image {
+							transition: .3s;
+							width: 14px;
+							height: 10px;
+							margin-left: 4px;
+							margin-top: 7px;
+							transform: rotate(0deg);
+						}
+					}
+				}
+				.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;
+							margin-top: 84px;
+							cursor: pointer;
+							margin-bottom: 52px;
+							image {
+								width: 100%;
+								height: 100%;
+							}
+						}
+						.productPage_pk_shop_sp1 {
+							width: 184px;
+							height: 200px;
+							background: linear-gradient(180deg, rgba(225,255,252,0.8) 0%, rgba(179,255,252,0.61) 36%, rgba(0,255,251,0.36) 100%);
+							border-radius: 8px;
+							border: 2px solid #FFFFFF;
+							display: flex;
+							padding: 0 15px;
+							box-sizing: border-box;
+							align-items: center;
+							justify-content: center;
+							flex-direction: column;
+							margin-bottom: 12px;
+							margin-top: 24px;
+							cursor: pointer;
+							.productPage_pk_shop_sp1_img {
+								width: 100px;
+								height: 100px;
+								image {
+									width: 100%;
+									height: 100%;
+								}
+							}
+							text {
+								width: 100%;
+								font-size: 16px;
+								font-family: SourceHanSansSC-Medium, SourceHanSansSC;
+								font-weight: 500;
+								color: #FFFFFF;
+								margin-top: 18px;
+								overflow: hidden;
+								white-space: nowrap;
+								text-overflow: ellipsis;
+							}
+						}
+						.productPage_pk_shop_t {
+							width: 254px;
+							height: 76px;
+							image {
+								width: 100%;
+								height: 100%;
+							}
+						}
+					}
+					.productPage_pk_z {
+						flex-shrink: 0;
+						width: 100px;
+						height: 50px;
+						cursor: pointer;
+						image {
+							width: 100%;
+							height: 100%;
+						}
+					}
+				}
+				.productPage_shop {
+					width: 100%;
+					margin-top: 12px;
+					display: flex;
+					justify-content: space-between;
+					flex-wrap: wrap;
+					.productPage_shop_zw {
+						width: 168px;
+						height: 0;
+					}
+					.productPage_shop_item {
+						width: 168px;
+						// height: 204px;
+						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;
+						// justify-content: center;
+						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;
+						}
+					}
+				}
+				.productPage_parameter {
+					width: 100%;
+					display: flex;
+					align-items: flex-start;
+					justify-content: space-between;
+					margin-bottom: 30px;
+					.productPage_parameter_item {
+						width: 49%;
+						&:first-child {
+							margin-right: 18px;
+						}
+						.productPage_parameter_item_head {
+							width: 100%;
+							height: 40px;
+							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;
+							display: flex;
+							align-items: center;
+							justify-content: center;
+							overflow: hidden;
+							white-space: nowrap;
+							text-overflow: ellipsis;
+							text {
+								width: 100%;
+								text-align: center;
+								font-size: 16px;
+								font-family: SourceHanSansSC-Medium, SourceHanSansSC;
+								font-weight: 500;
+								color: #FFFFFF;
+								overflow: hidden;
+								white-space: nowrap;
+								text-overflow: ellipsis;
+							}
+						}
+						.productPage_parameter_item_content {
+							width: 100%;
+							padding: 14px;
+							box-sizing: border-box;
+							background: rgba(0,224,255,0.3);
+							border-radius: 0px 0px 8px 8px;
+							display: flex;
+							flex-direction: column;
+							.productPage_parameter_item_content_price {
+								padding: 16px 0;
+								box-sizing: border-box;
+								background: #FFFFFF;
+								border-radius: 8px;
+								display: flex;
+								align-items: center;
+								.zdj {
+									flex: 1;
+									display: flex;
+									flex-direction: column;
+									align-items: flex-start;
+									justify-content: center;
+									margin-left: 20px;
+									text {
+										&:first-child {
+											font-size: 16px;
+											font-family: SourceHanSansSC-Regular, SourceHanSansSC;
+											font-weight: 400;
+											color: #333333;
+										}
+										&:last-child {
+											font-size: 16px;
+											font-family: SourceHanSansSC-Bold, SourceHanSansSC;
+											font-weight: bold;
+											color: #222222;
+											margin-top: 10px;
+										}
+									}
+								}
+								.rsj {
+									flex: 1;
+									display: flex;
+									flex-direction: column;
+									align-items: flex-start;
+									justify-content: center;
+									text {
+										&:first-child {
+											font-size: 16px;
+											font-family: SourceHanSansSC-Regular, SourceHanSansSC;
+											font-weight: 400;
+											color: #333333;
+										}
+										&:last-child {
+											font-size: 16px;
+											font-family: SourceHanSansSC-Bold, SourceHanSansSC;
+											font-weight: bold;
+											color: #F10000;
+											margin-top: 10px;
+										}
+									}
+								}
+							}
+							.productPage_parameter_item_content_nr {
+								padding: 16px 18px;
+								box-sizing: border-box;
+								background: #FFFFFF;
+								border-radius: 8px;
+								margin-top: 12px;
+								display: flex;
+								flex-direction: column;
+								.paramline{
+									border-bottom: #c7c9ce 2px dashed;
+									margin-bottom: 15px;
+								} 
+								.item {
+									display: flex;
+									align-items: flex-start;
+									margin-bottom: 15px;
+									&:last-child {
+										margin-bottom: 0 !important;
+									}
+									.label {
+										flex-shrink: 0;
+										font-size: 16px;
+										font-family: SourceHanSansSC-Normal, SourceHanSansSC;
+										font-weight: 400;
+										color: #222222;
+									}
+									.value {
+										flex: 1;
+										font-size: 16px;
+										font-family: SourceHanSansSC-Normal, SourceHanSansSC;
+										font-weight: 400;
+										color: #222222;
+									}
+								}
+							}
+						}
+					}
+				}
+			}
+		}
+	}
+</style>
diff --git a/server/company/src/main/java/com/doumee/api/business/WebParamController.java b/server/company/src/main/java/com/doumee/api/business/WebParamController.java
index 84a49b3..c3c4b46 100644
--- a/server/company/src/main/java/com/doumee/api/business/WebParamController.java
+++ b/server/company/src/main/java/com/doumee/api/business/WebParamController.java
@@ -31,12 +31,17 @@
     @Autowired
     private WebParamService webParamService;
 
-
     @ApiOperation("鑾峰彇褰撳墠鐧诲綍浼佷笟閰嶇疆淇℃伅")
     @GetMapping("/getByLogin")
 //    @RequiresPermissions("business:webparam:query")
     public ApiResponse<WebParam> getByLogin() {
         return ApiResponse.success(webParamService.findOne());
+    }
+    @ApiOperation("鑾峰彇褰撳墠鐧诲綍浼佷笟閰嶇疆淇℃伅1.0.2")
+    @GetMapping("/getByLoginNew")
+//    @RequiresPermissions("business:webparam:query")
+    public ApiResponse<WebParam> getByLoginNew() {
+        return ApiResponse.success(webParamService.findOneNew());
     }
 
     @ApiOperation("鏇存柊浼佷笟閰嶇疆淇℃伅")
@@ -46,5 +51,11 @@
         webParamService.renew(updateWebParamDTO);
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
+    @ApiOperation("鏇存柊浼佷笟閰嶇疆淇℃伅1.0.2")
+    @PostMapping("/renewUpdate")
+    public ApiResponse renewUpdate(@RequestBody UpdateWebParamDTO updateWebParamDTO) {
+        webParamService.renewUpdate(updateWebParamDTO);
+        return ApiResponse.success("鎿嶄綔鎴愬姛");
+    }
 
 }
diff --git a/server/company/src/main/resources/application.yml b/server/company/src/main/resources/application.yml
index 6e685b9..ffeb82e 100644
--- a/server/company/src/main/resources/application.yml
+++ b/server/company/src/main/resources/application.yml
@@ -11,7 +11,7 @@
 #  application:git
 #    name: doumeemes
   profiles:
-    active: pro
+    active: dev
 
   # JSON杩斿洖閰嶇疆
   jackson:
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/WebParam.java b/server/service/src/main/java/com/doumee/dao/business/model/WebParam.java
index 13701cb..0452999 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/WebParam.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/WebParam.java
@@ -75,6 +75,9 @@
     @ApiModelProperty(value = "鍐呭鑼冨洿灏哄")
     @ExcelColumn(name="鍐呭鑼冨洿灏哄")
     private String rangeSize;
+    @ApiModelProperty(value = "1.0.2鐗堟湰鍗囩骇閰嶇疆瀛樺偍淇℃伅")
+    @ExcelColumn(name="1.0.2鐗堟湰鍗囩骇閰嶇疆瀛樺偍淇℃伅")
+    private String newParam;
 
     @ApiModelProperty(value = "鍓嶇紑鍦板潃")
     @TableField(exist = false)
diff --git a/server/service/src/main/java/com/doumee/dao/system/dto/UpdateWebParamDTO.java b/server/service/src/main/java/com/doumee/dao/system/dto/UpdateWebParamDTO.java
index 421e16c..aaf5079 100644
--- a/server/service/src/main/java/com/doumee/dao/system/dto/UpdateWebParamDTO.java
+++ b/server/service/src/main/java/com/doumee/dao/system/dto/UpdateWebParamDTO.java
@@ -29,6 +29,8 @@
 
     @ApiModelProperty(value = "PK鍙板浘")
     private String pkImg;
+    @ApiModelProperty(value = "閰嶇疆鍙傛暟 1.0.2鐗堟湰鍙渶瑕佷紶璇ュ弬鏁�")
+    private String newParam;
 
 
 }
diff --git a/server/service/src/main/java/com/doumee/dao/system/vo/WebParamDetailVO.java b/server/service/src/main/java/com/doumee/dao/system/vo/WebParamDetailVO.java
new file mode 100644
index 0000000..feb1236
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/system/vo/WebParamDetailVO.java
@@ -0,0 +1,28 @@
+package com.doumee.dao.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @author Eva.Caesar Liu
+ * @date 2023/02/14 11:14
+ */
+@Data
+@ApiModel("椤甸潰閰嶇疆椤跺眰")
+public class WebParamDetailVO implements Serializable {
+
+    @ApiModelProperty(value = "鏄惁榛樿 0榛樿 1鑷畾涔� 2鑷畾涔夋笎鍙�")
+    private int isDefault;
+    @ApiModelProperty(value = "鍙傛暟閰嶇疆1 锛堥鑹�1")
+    private String param1;
+    @ApiModelProperty(value = "鍙傛暟閰嶇疆2 锛堥�忔槑搴�1锛�")
+    private String param2;
+    @ApiModelProperty(value = "鍙傛暟閰嶇疆3 锛堥鑹�2锛�")
+    private String param3;
+    @ApiModelProperty(value = "鍙傛暟閰嶇疆4 锛堥�忔槑搴�2锛�")
+    private String param4;
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/system/vo/WebParamVO.java b/server/service/src/main/java/com/doumee/dao/system/vo/WebParamVO.java
new file mode 100644
index 0000000..bb42518
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/system/vo/WebParamVO.java
@@ -0,0 +1,51 @@
+package com.doumee.dao.system.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+
+/**
+ * @author Eva.Caesar Liu
+ * @date 2023/02/14 11:14
+ */
+@Data
+@ApiModel("椤甸潰閰嶇疆椤跺眰")
+public class WebParamVO implements Serializable {
+    public interface  KeyName{
+        //鍐呭鍖哄煙灏哄锛�
+        String pageSize = "pageSize";
+        //鑳屾櫙棰滆壊锛�
+        String bgColor = "bgColor";
+        //鏄惁灞曠ず鑳屾櫙鍥剧墖锛�
+        String showBgImg = "showBgImg";
+        //鑳屾櫙鍥剧墖锛�
+        String bgImg = "bgImg";
+        //椤堕儴涓诲浘锛�
+        String topImg = "topImg";
+        //PK鍙板浘锛�
+        String pkImg = "pkImg";
+        //琛ㄥご鑳屾櫙棰滆壊锛�
+        String tableHeaderColor = "tableHeaderColor";
+        //琛ㄥご瀛椾綋棰滆壊锛�
+        String tableWordColor = "tableWordColor";
+        //閫変腑瀛椾綋棰滆壊锛�
+        String selectedWordColor = "selectedWordColor";
+        //涓嬫媺妗嗚儗鏅壊锛�
+        String pullColor = "pullColor";
+        //鎼滅储妗嗚儗鏅壊锛�
+        String searchColor = "searchColor";
+        //鍒楄〃鑳屾櫙鑹诧細
+        String listColor = "listColor";
+        //鍒嗙被鑳屾櫙鑹诧細
+        String cateColor = "cateColor";
+    }
+    @ApiModelProperty(value = "浣嶇疆 0鍐呭鍖哄煙灏哄")
+    private String key;
+
+    @ApiModelProperty(value = "鍙傛暟閰嶇疆璇︽儏")
+    private WebParamDetailVO val;
+
+}
diff --git a/server/service/src/main/java/com/doumee/service/business/WebParamService.java b/server/service/src/main/java/com/doumee/service/business/WebParamService.java
index 823bcfe..01605f5 100644
--- a/server/service/src/main/java/com/doumee/service/business/WebParamService.java
+++ b/server/service/src/main/java/com/doumee/service/business/WebParamService.java
@@ -15,6 +15,9 @@
 public interface WebParamService {
 
     WebParam findOne();
+    WebParam findOneNew();
 
     void renew(UpdateWebParamDTO updateWebParamDTO);
+
+    void renewUpdate(UpdateWebParamDTO updateWebParamDTO);
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/WebParamServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/WebParamServiceImpl.java
index 4e811eb..0fc1495 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/WebParamServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/WebParamServiceImpl.java
@@ -1,6 +1,8 @@
 package com.doumee.service.business.impl;
 
 import com.doumee.biz.system.SystemDictDataBiz;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
 import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
@@ -14,6 +16,7 @@
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.commons.lang3.StringUtils;
 import org.apache.shiro.SecurityUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -61,6 +64,16 @@
         return webParam;
     }
 
+    @Override
+    public WebParam findOneNew() {
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        QueryWrapper<WebParam> wrapper = new QueryWrapper<>();
+        wrapper.lambda().eq(WebParam::getCompanyId,user.getCompanyId());
+        wrapper.last(" limit 1  ");
+        WebParam webParam = webParamMapper.selectOne(wrapper);
+        return webParam;
+    }
+
 
     @Override
     public void renew(UpdateWebParamDTO updateWebParamDTO) {
@@ -84,6 +97,30 @@
             webParamMapper.updateById(webParam);
         }
     }
-
+    @Override
+    public void  renewUpdate(UpdateWebParamDTO updateWebParamDTO){
+        if(StringUtils.isBlank(updateWebParamDTO.getNewParam())){
+            throw  new BusinessException(ResponseStatus.BAD_REQUEST);
+        }
+        LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        QueryWrapper<WebParam> wrapper = new QueryWrapper<>();
+        wrapper.lambda().eq(WebParam::getCompanyId,user.getCompanyId());
+        wrapper.last(" limit 1  ");
+        WebParam webParam = webParamMapper.selectOne(wrapper);
+        if(Objects.isNull(webParam)){
+            webParam = new WebParam();
+            BeanUtils.copyProperties(updateWebParamDTO,webParam);
+            webParam.setCreateTime(new Date());
+            webParam.setDeleted(Constants.ZERO);
+            webParam.setCompanyId(user.getCompanyId());
+            webParam.setCreateUser(user.getId());
+            webParamMapper.insert(webParam);
+        }else{
+            BeanUtils.copyProperties(updateWebParamDTO,webParam);
+            webParam.setUpdateUser(user.getId());
+            webParam.setUpdateTime(new Date());
+            webParamMapper.updateById(webParam);
+        }
+    }
 
 }
diff --git a/server/zhubo/src/main/java/com/doumee/api/business/WebParamController.java b/server/zhubo/src/main/java/com/doumee/api/business/WebParamController.java
index 7e7bb5a..d26fdbb 100644
--- a/server/zhubo/src/main/java/com/doumee/api/business/WebParamController.java
+++ b/server/zhubo/src/main/java/com/doumee/api/business/WebParamController.java
@@ -36,6 +36,11 @@
     public ApiResponse<WebParam> getByLogin() {
         return ApiResponse.success(webParamService.findOne());
     }
+    @ApiOperation("鑾峰彇褰撳墠鐧诲綍浼佷笟閰嶇疆淇℃伅1.0.2")
+    @GetMapping("/getByLoginNew")
+    public ApiResponse<WebParam> getByLoginNew() {
+        return ApiResponse.success(webParamService.findOneNew());
+    }
 
     @ApiOperation("鏇存柊浼佷笟閰嶇疆淇℃伅")
     @PostMapping("/renew")
diff --git a/server/zhubo/src/main/resources/application.yml b/server/zhubo/src/main/resources/application.yml
index 4fb560e..cfb19a6 100644
--- a/server/zhubo/src/main/resources/application.yml
+++ b/server/zhubo/src/main/resources/application.yml
@@ -11,7 +11,7 @@
 #  application:
 #    name: doumeemes
   profiles:
-    active: pro
+    active: dev
 
   # JSON杩斿洖閰嶇疆
   jackson:

--
Gitblit v1.9.3