Merge branch 'v4.7.0dev' of https://gitee.com/ZhongBangKeJi/CRMEB into v4.7.0dev

This commit is contained in:
吴昊天 2023-02-20 12:24:06 +08:00
commit e38b75cd52
14 changed files with 1415 additions and 1402 deletions

View File

@ -53,7 +53,7 @@
class="label"
:style="'border:1px solid ' + labelColor + ';color:' + labelColor"
:class="priceShow ? '' : 'on'"
v-if="couponShow && item.checkCoupon"
v-if="couponShow"
>
券
</div>
@ -408,6 +408,7 @@ export default {
text-align center
line-height 18px
font-size 11px
border-radius 3px
&.on
margin-left 0;
</style>

View File

@ -223,7 +223,7 @@ export default {
let keys = Object.keys(this.editData);
keys.forEach((item) => {
this.formValidate[item] = this.editData[item];
if (item === 'coupon_title') {
if (item === 'coupon_title' && this.editData[item]) {
this.couponName.push({
title: this.editData[item],
id: this.editData.coupon_id,

View File

@ -294,7 +294,7 @@
>
<!-- 批量设置-->
<Col span="24" v-if="!formValidate.is_virtual">
<Col span="24" v-if="[0, 3].includes(formValidate.virtual_type)">
<FormItem label="批量设置:" class="labeltop">
<Table :data="oneFormBatch" :columns="formValidate.is_virtual ? columns3 : columns2" border>
<template slot-scope="{ row, index }" slot="pic">
@ -2137,7 +2137,7 @@ export default {
},
end() {
this.moveIndex = '';
this.generate(1)
this.generate(1);
},
// 单独设置会员设置
checkAllGroupChange(data) {

View File

@ -145,12 +145,12 @@
v-model="batchModal"
class="batch-box"
scrollable
closable
:closable="false"
title="批量设置"
:mask-closable="false"
width="1000"
@on-ok="batchSub"
@on-visible-change="clearBatchData"
@on-cancel="clearBatchData"
>
<Form
class="batchFormData"
@ -326,7 +326,7 @@ export default {
limit: 15,
cate_id: '',
type: '1',
store_name: ''
store_name: '',
},
list: [],
tableList: [],
@ -458,7 +458,9 @@ export default {
.then((res) => {
this.$Message.success(res.msg);
this.getDataList();
this.clearBatchData();
this.clearBatchData(false);
this.ids = [];
this.clearAll(false);
})
.catch((err) => {
this.$Message.error(err.msg);
@ -477,9 +479,7 @@ export default {
coupon_ids: [],
recommend: [],
};
this.ids = [];
this.dataLabel = [];
this.clearAll(false);
}
},
// 批量设置商品

View File

@ -125,7 +125,7 @@
<a @click="delTask(row, '删除这条信息', index)">删除</a>
</template>
</Table>
<div class="acea-row row-right page">
<!-- <div class="acea-row row-right page">
<Page
:total="taskTotal"
:current="taskData.page"
@ -134,7 +134,7 @@
@on-change="pageTaskChange"
:page-size="taskData.limit"
/>
</div>
</div> -->
</div>
</div>
</Modal>

View File

@ -392,13 +392,13 @@
bottom: 0px;
width: 100%;
height: 30px;
background-color: rgb(231, 27, 27, .5);
background-color: rgb(197, 150, 63, 0.5);
line-height: 30px;
color: #fff;
}
.suc-bg {
background-color: rgba(92, 184, 92, .5);
background-color: rgb(197, 150, 63, 0.5);
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#7f5CB85C, endcolorstr=#7f5CB85C);
}

View File

@ -11,7 +11,7 @@
</view>
<transition name="tips">
<text v-if="tipWords" class="verify-tips"
:class="passFlag ? 'suc-bg' : 'err-bg'">{{ tipWords }}</text>
:class="passFalg ? 'suc-bg' : 'err-bg'">{{ tipWords }}</text>
</transition>
</view>
</view>
@ -123,7 +123,7 @@ export default {
data() {
return {
secretKey: "", // 后端返回的加密秘钥 字段
passFlag: "", // 是否通过的标识
passFalg: "", // 是否通过的标识
backImgBase: "", // 验证码背景图片
blockBackImgBase: "", // 验证滑块的背景图片
backToken: "", // 后端返回的唯一token值
@ -491,13 +491,13 @@ export default {
bottom: 0px;
width: 100%;
height: 30px;
background-color: rgb(231, 27, 27, .5);
background-color: rgb(197, 150, 63, 0.5);
line-height: 30px;
color: #fff;
}
.suc-bg {
background-color: rgba(92, 184, 92, .5);
background-color: rgb(197, 150, 63, 0.5);
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#7f5CB85C, endcolorstr=#7f5CB85C);
}

View File

@ -1,195 +1,197 @@
<template>
<view v-show="!isSortType">
<view class="explosion" :style="'margin-top:' + mbConfig*2 +'rpx;background-color:' + boxColor+';'"
v-if="explosiveMoney.length">
<view class="hd skeleton-rect">
<!-- <image src="/static/images/explosion-title.png" mode=""></image> -->
<view class="title" :style="'color:'+themeColor+';'">{{$t(titleConfig)}}</view>
<view class="txt"
:style="'background: linear-gradient(90deg, '+ bgColor[0].item +' 0%, '+ bgColor[1].item +' 100%);'">
{{$t(desConfig)}}
</view>
</view>
<view class="bd">
<view class="item skeleton-rect" @click="goDetail(item)" v-for="(item,index) in explosiveMoney" :key="index">
<view class="con-box">
<view class="title line1">{{$t(item.info[0].value)}}</view>
<view class="con line2">{{$t(item.info[1].value)}}</view>
<view class="go">GO!<image src="/static/images/right-icon.png" mode=""></image>
</view>
</view>
<image :src="item.img" mode="aspectFill"></image>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
name: 'activeParty',
props: {
dataConfig: {
type: Object,
default: () => {}
},
isSortType: {
type: String | Number,
default: 0
}
},
data() {
return {
titleConfig: this.dataConfig.titleConfig.value,
desConfig: this.dataConfig.desConfig.value,
explosiveMoney: this.dataConfig.menuConfig.list,
themeColor: this.dataConfig.themeColor.color[0].item,
bgColor: this.dataConfig.bgColor.color,
mbConfig: this.dataConfig.mbConfig.val,
boxColor: this.dataConfig.boxColor.color[0].item
};
},
created() {},
methods: {
goDetail(item) {
let urls = item.info[2].value
if (['/pages/goods_cate/goods_cate', '/pages/order_addcart/order_addcart', '/pages/user/index']
.indexOf(urls) == -1) {
uni.navigateTo({
url: urls
})
} else {
uni.switchTab({
url: urls
})
}
}
}
}
</script>
<style lang="scss">
.explosion {
width: 710rpx;
margin-top: 20rpx;
margin: 20rpx auto 0 auto;
padding: 30rpx 20rpx;
padding: 30rpx 20rpx 6rpx 20rpx;
background-color: #FFE5E3;
background-size: 100% 100%;
border-radius: 13px;
box-sizing: border-box;
.hd {
display: flex;
align-items: center;
.title {
font-size: 32rpx;
font-weight: bold;
margin-right: 12rpx;
}
image {
width: 147rpx;
height: 35rpx;
margin-right: 20rpx;
}
.txt {
padding: 0 10rpx;
height: 36rpx;
// background: linear-gradient(90deg, rgba(255, 168, 0, 1) 0%, rgba(255, 34, 15, 1) 100%);
border-radius: 26rpx 0px 26rpx 0px;
color: #fff;
text-align: center;
font-size: 22rpx;
box-shadow: 3px 1px 1px 1px var(--view-minorColorT);
}
}
.bd {
display: flex;
flex-wrap: wrap;
margin-top: 28rpx;
.item {
display: flex;
align-items: center;
justify-content: space-between;
position: relative;
width: 325rpx;
height: 180rpx;
margin-bottom: 20rpx;
margin-right: 20rpx;
background-color: #fff;
border-radius: 16rpx;
padding: 0 20rpx;
box-sizing: border-box;
image {
width: 140rpx;
height: 140rpx;
}
.con-box {
display: flex;
flex-direction: column;
justify-content: center;
width: 130rpx;
height: 100%;
.title {
color: #282828;
font-size: 28rpx;
}
.con {
color: #999999;
font-size: 20rpx;
margin-top: 2rpx;
}
.go {
display: flex;
align-items: center;
justify-content: center;
margin-top: 10rpx;
width: 112rpx;
height: 36rpx;
border-radius: 18rpx;
color: #fff;
font-size: 26rpx;
font-weight: bold;
font-style: italic;
image {
width: 26rpx;
height: 26rpx;
}
}
}
&:first-child .go {
background: linear-gradient(90deg, rgba(75, 196, 255, 1) 0%, rgba(32, 126, 255, 1) 100%);
}
&:nth-child(2) .go {
background: linear-gradient(90deg, rgba(255, 144, 67, 1) 0%, rgba(255, 83, 29, 1) 100%);
}
&:nth-child(3) .go {
background: linear-gradient(90deg, rgba(150, 225, 135, 1) 0%, rgba(72, 206, 44, 1) 100%);
}
&:nth-child(4) .go {
background: linear-gradient(90deg, rgba(255, 197, 96, 1) 0%, rgba(255, 156, 0, 1) 100%);
}
&:nth-child(2n) {
margin-right: 0;
}
}
}
}
</style>
<template>
<view v-show="!isSortType">
<view class="explosion" :style="'margin-top:' + mbConfig*2 +'rpx;background-color:' + boxColor+';'"
v-if="explosiveMoney.length">
<view class="hd skeleton-rect">
<!-- <image src="/static/images/explosion-title.png" mode=""></image> -->
<view class="title" :style="'color:'+themeColor+';'">{{$t(titleConfig)}}</view>
<view class="txt"
:style="'background: linear-gradient(90deg, '+ bgColor[0].item +' 0%, '+ bgColor[1].item +' 100%);'">
{{$t(desConfig)}}
</view>
</view>
<view class="bd">
<view class="item skeleton-rect" @click="goDetail(item)" v-for="(item,index) in explosiveMoney"
:key="index">
<view class="con-box">
<view class="title line1">{{$t(item.info[0].value)}}</view>
<view class="con line2">{{$t(item.info[1].value)}}</view>
<view class="go">GO!<image src="/static/images/right-icon.png" mode=""></image>
</view>
</view>
<image :src="item.img" mode="aspectFill"></image>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
name: 'activeParty',
props: {
dataConfig: {
type: Object,
default: () => {}
},
isSortType: {
type: String | Number,
default: 0
}
},
data() {
return {
titleConfig: this.dataConfig.titleConfig.value,
desConfig: this.dataConfig.desConfig.value,
explosiveMoney: this.dataConfig.menuConfig.list,
themeColor: this.dataConfig.themeColor.color[0].item,
bgColor: this.dataConfig.bgColor.color,
mbConfig: this.dataConfig.mbConfig.val,
boxColor: this.dataConfig.boxColor.color[0].item
};
},
created() {},
methods: {
goDetail(item) {
let urls = item.info[2].value
if (['/pages/goods_cate/goods_cate', '/pages/order_addcart/order_addcart', '/pages/user/index']
.indexOf(urls) == -1) {
uni.navigateTo({
url: urls
})
} else {
uni.switchTab({
url: urls
})
}
}
}
}
</script>
<style lang="scss">
.explosion {
width: 710rpx;
margin-top: 20rpx;
margin: 20rpx auto 0 auto;
padding: 30rpx 20rpx;
padding: 30rpx 20rpx 6rpx 20rpx;
background-color: #FFE5E3;
background-size: 100% 100%;
border-radius: 13px;
box-sizing: border-box;
.hd {
display: flex;
align-items: center;
.title {
font-size: 32rpx;
font-weight: bold;
margin-right: 12rpx;
}
image {
width: 147rpx;
height: 35rpx;
margin-right: 20rpx;
}
.txt {
padding: 0 10rpx;
height: 36rpx;
line-height: 36rpx;
// background: linear-gradient(90deg, rgba(255, 168, 0, 1) 0%, rgba(255, 34, 15, 1) 100%);
border-radius: 26rpx 0px 26rpx 0px;
color: #fff;
text-align: center;
font-size: 22rpx;
box-shadow: 3px 1px 1px 1px var(--view-minorColorT);
}
}
.bd {
display: flex;
flex-wrap: wrap;
margin-top: 28rpx;
.item {
display: flex;
align-items: center;
justify-content: space-between;
position: relative;
width: 325rpx;
height: 180rpx;
margin-bottom: 20rpx;
margin-right: 20rpx;
background-color: #fff;
border-radius: 16rpx;
padding: 0 20rpx;
box-sizing: border-box;
image {
width: 140rpx;
height: 140rpx;
}
.con-box {
display: flex;
flex-direction: column;
justify-content: center;
width: 130rpx;
height: 100%;
.title {
color: #282828;
font-size: 28rpx;
}
.con {
color: #999999;
font-size: 20rpx;
margin-top: 2rpx;
}
.go {
display: flex;
align-items: center;
justify-content: center;
margin-top: 10rpx;
width: 112rpx;
height: 36rpx;
border-radius: 18rpx;
color: #fff;
font-size: 26rpx;
font-weight: bold;
font-style: italic;
image {
width: 26rpx;
height: 26rpx;
}
}
}
&:first-child .go {
background: linear-gradient(90deg, rgba(75, 196, 255, 1) 0%, rgba(32, 126, 255, 1) 100%);
}
&:nth-child(2) .go {
background: linear-gradient(90deg, rgba(255, 144, 67, 1) 0%, rgba(255, 83, 29, 1) 100%);
}
&:nth-child(3) .go {
background: linear-gradient(90deg, rgba(150, 225, 135, 1) 0%, rgba(72, 206, 44, 1) 100%);
}
&:nth-child(4) .go {
background: linear-gradient(90deg, rgba(255, 197, 96, 1) 0%, rgba(255, 156, 0, 1) 100%);
}
&:nth-child(2n) {
margin-right: 0;
}
}
}
}
</style>

View File

@ -706,18 +706,19 @@
addCart: function(index) {
let that = this;
let item = that.cartList.valid[index];
item.cart_num = Number(item.cart_num) + 1;
let lastnum = Number(item.cart_num) + 1
let productInfo = item.productInfo;
if (productInfo.hasOwnProperty('attrInfo') && item.cart_num >= item.productInfo.attrInfo.stock) {
item.cart_num = item.productInfo.attrInfo.stock;
if (productInfo.hasOwnProperty('attrInfo') && lastnum >= item.productInfo.attrInfo.stock) {
lastnum = item.productInfo.attrInfo.stock;
item.numAdd = true;
item.numSub = false;
} else {
item.numAdd = false;
item.numSub = false;
}
that.setCartNum(item.id, item.cart_num, function(data) {
that.setCartNum(item.id, lastnum, (data) => {
that.cartList.valid[index] = item;
item.cart_num = Number(item.cart_num) + 1;
that.getCartNum();
that.switchSelect();
});

File diff suppressed because it is too large Load Diff

View File

@ -52,7 +52,7 @@
<!-- #endif -->
</view>
<view class="info">
<!-- #ifdef MP -->
<!-- #ifdef MP || APP-PLUS -->
<view class="name" v-if="!userInfo.uid" @click="openAuto"
style="height: 100%; display: flex; align-items: center;">
{{$t('请点击授权')}}

View File

@ -392,13 +392,13 @@
bottom: 0px;
width: 100%;
height: 30px;
background-color: rgb(231, 27, 27, .5);
background-color: rgb(197, 150, 63, 0.5);;
line-height: 30px;
color: #fff;
}
.suc-bg {
background-color: rgba(92, 184, 92, .5);
background-color: rgb(197, 150, 63, 0.5);;
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#7f5CB85C, endcolorstr=#7f5CB85C);
}

View File

@ -11,7 +11,7 @@
</view>
<transition name="tips">
<text v-if="tipWords" class="verify-tips"
:class="passFlag ? 'suc-bg' : 'err-bg'">{{ tipWords }}</text>
:class="passFalg ? 'suc-bg' : 'err-bg'">{{ tipWords }}</text>
</transition>
</view>
</view>
@ -123,7 +123,7 @@ export default {
data() {
return {
secretKey: "", // 后端返回的加密秘钥 字段
passFlag: "", // 是否通过的标识
passFalg: "", // 是否通过的标识
backImgBase: "", // 验证码背景图片
blockBackImgBase: "", // 验证滑块的背景图片
backToken: "", // 后端返回的唯一token值
@ -491,13 +491,13 @@ export default {
bottom: 0px;
width: 100%;
height: 30px;
background-color: rgb(231, 27, 27, .5);
background-color: rgb(197, 150, 63, 0.5);;
line-height: 30px;
color: #fff;
}
.suc-bg {
background-color: rgba(92, 184, 92, .5);
background-color: rgb(197, 150, 63, 0.5);;
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#7f5CB85C, endcolorstr=#7f5CB85C);
}

View File

@ -10,7 +10,7 @@
<view class='name line1'>{{$t(itemn.title)}}</view>
<view>{{itemn.add_time}}</view>
</view>
<view class='num font-color'>+{{itemn.number}}</view>
<view class='num'>+{{itemn.number}}</view>
</view>
</view>
</view>