# Conflicts:
#	src/views/mall/promotion/rewardActivity/RewardForm.vue
This commit is contained in:
YunaiV
2024-08-23 09:08:16 +08:00
114 changed files with 311 additions and 291 deletions

View File

@ -6,7 +6,7 @@
<!-- 查询条件 -->
<div class="flex flex-row items-center gap-2">
<el-radio-group v-model="timeRangeType" @change="handleTimeRangeTypeChange">
<el-radio-button v-for="[key, value] in timeRange.entries()" :key="key" :label="key">
<el-radio-button v-for="[key, value] in timeRange.entries()" :key="key" :value="key">
{{ value.name }}
</el-radio-button>
</el-radio-group>

View File

@ -21,7 +21,7 @@
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)"
:key="dict.value"
:label="dict.value"
:value="dict.value"
>
{{ dict.label }}
</el-radio>

View File

@ -33,7 +33,7 @@
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)"
:key="dict.value"
:label="dict.value"
:value="dict.value"
>
{{ dict.label }}
</el-radio>

View File

@ -3,7 +3,7 @@
<el-table v-loading="loading" :data="list" show-overflow-tooltip>
<el-table-column label="#" width="55">
<template #default="{ row }">
<el-radio :label="row.id" v-model="selectedSkuId" @change="handleSelected(row)"
<el-radio :value="row.id" v-model="selectedSkuId" @change="handleSelected(row)"
>&nbsp;
</el-radio>
</template>

View File

@ -70,7 +70,7 @@
<!-- 2. 单选模式 -->
<el-table-column label="#" width="55" v-else>
<template #default="{ row }">
<el-radio :label="row.id" v-model="selectedSpuId" @change="handleSingleSelected(row)">
<el-radio :value="row.id" v-model="selectedSpuId" @change="handleSingleSelected(row)">
<!-- 空格不能省略是为了让单选框不显示label如果不指定label不会有选中的效果 -->
&nbsp;
</el-radio>

View File

@ -6,7 +6,7 @@
<el-checkbox
v-for="dict in getIntDictOptions(DICT_TYPE.TRADE_DELIVERY_TYPE)"
:key="dict.value"
:label="dict.value"
:value="dict.value"
>
{{ dict.label }}
</el-checkbox>

View File

@ -14,14 +14,14 @@
class="w-80"
@change="changeSubCommissionType"
>
<el-radio :label="false">默认设置</el-radio>
<el-radio :label="true" class="radio">单独设置</el-radio>
<el-radio :value="false">默认设置</el-radio>
<el-radio :value="true" class="radio">单独设置</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="商品规格" props="specType">
<el-radio-group v-model="formData.specType" class="w-80" @change="onChangeSpec">
<el-radio :label="false" class="radio">单规格</el-radio>
<el-radio :label="true">多规格</el-radio>
<el-radio :value="false" class="radio">单规格</el-radio>
<el-radio :value="true">多规格</el-radio>
</el-radio-group>
</el-form-item>
<!-- 多规格添加-->

View File

@ -51,7 +51,7 @@
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)"
:key="dict.value"
:label="dict.value"
:value="dict.value"
>
{{ dict.label }}
</el-radio>
@ -64,7 +64,7 @@
<el-radio
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
:key="dict.value"
:label="dict.value"
:value="dict.value"
>
{{ dict.label }}
</el-radio>
@ -77,7 +77,7 @@
<el-radio
v-for="dict in getBoolDictOptions(DICT_TYPE.INFRA_BOOLEAN_STRING)"
:key="dict.value"
:label="dict.value"
:value="dict.value"
>
{{ dict.label }}
</el-radio>

View File

@ -20,7 +20,7 @@
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)"
:key="dict.value"
:label="dict.value"
:value="dict.value"
>
{{ dict.label }}
</el-radio>

View File

@ -34,7 +34,7 @@
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)"
:key="dict.value"
:label="dict.value"
:value="dict.value"
>
{{ dict.label }}
</el-radio>
@ -47,7 +47,7 @@
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.PROMOTION_BANNER_POSITION)"
:key="dict.value"
:label="dict.value"
:value="dict.value"
>
{{ dict.label }}
</el-radio>

View File

@ -15,7 +15,7 @@
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.PROMOTION_PRODUCT_SCOPE)"
:key="dict.value"
:label="dict.value"
:value="dict.value"
>
{{ dict.label }}
</el-radio>
@ -40,7 +40,7 @@
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.PROMOTION_DISCOUNT_TYPE)"
:key="dict.value"
:label="dict.value"
:value="dict.value"
>
{{ dict.label }}
</el-radio>
@ -101,8 +101,8 @@
</el-form-item>
<el-form-item label="领取方式" prop="takeType">
<el-radio-group v-model="formData.takeType">
<el-radio :key="1" :label="1">直接领取</el-radio>
<el-radio :key="2" :label="2">指定发放</el-radio>
<el-radio :key="1" :value="1">直接领取</el-radio>
<el-radio :key="2" :value="2">指定发放</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="formData.takeType === 1" label="发放数量" prop="totalCount">
@ -130,7 +130,7 @@
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.PROMOTION_COUPON_TEMPLATE_VALIDITY_TYPE)"
:key="dict.value"
:label="dict.value"
:value="dict.value"
>
{{ dict.label }}
</el-radio>

View File

@ -18,7 +18,7 @@
@change="handleTemplateItemChange"
>
<el-tooltip v-for="(item, index) in templateItems" :key="index" :content="item.name">
<el-radio-button :label="index">
<el-radio-button :value="index">
<Icon :icon="item.icon" :size="24" />
</el-radio-button>
</el-tooltip>

View File

@ -22,17 +22,16 @@
<div class="ml-10px w-100%">
<div class="flex justify-between items-center w-100%">
<span class="username">{{ item.userNickname }}</span>
<span class="color-[#989EA6]">
{{ formatPast(item.lastMessageTime, 'YYYY-mm-dd') }}
<span class="color-[var(--left-menu-text-color)]" style="font-size: 13px;">
{{ formatPast(item.lastMessageTime, 'YYYY-MM-DD') }}
</span>
</div>
<!-- 最后聊天内容 -->
<div
v-dompurify-html="
getConversationDisplayText(item.lastMessageContentType, item.lastMessageContent)
"
class="last-message flex items-center color-[#989EA6]"
></div>
v-dompurify-html="getConversationDisplayText(item.lastMessageContentType, item.lastMessageContent)"
class="last-message flex items-center color-[var(--left-menu-text-color)]"
>
</div>
</div>
</div>
</div>
@ -182,7 +181,7 @@ watch(showRightMenu, (val) => {
&-conversation {
height: 60px;
padding: 10px;
background-color: #fff;
//background-color: #fff;
transition: border-left 0.05s ease-in-out; /* 设置过渡效果 */
.username {
@ -196,6 +195,7 @@ watch(showRightMenu, (val) => {
}
.last-message {
font-size: 13px;
width: 200px;
overflow: hidden; // 隐藏超出的文本
white-space: nowrap; // 禁止换行
@ -205,16 +205,16 @@ watch(showRightMenu, (val) => {
.active {
border-left: 5px #3271ff solid;
background-color: #eff0f1;
background-color: var(--left-menu-bg-active-color);
}
.pinned {
background-color: #eff0f1;
background-color: var(--left-menu-bg-active-color);
}
.right-menu-ul {
position: absolute;
background-color: #fff;
background-color: var(--app-content-bg-color);
padding: 10px;
margin: 0;
list-style-type: none; /* 移除默认的项目符号 */
@ -228,7 +228,7 @@ watch(showRightMenu, (val) => {
border-radius: 12px;
transition: background-color 0.3s; /* 平滑过渡 */
&:hover {
background-color: #e0e0e0; /* 悬停时的背景颜色 */
background-color: var(--left-menu-bg-active-color); /* 悬停时的背景颜色 */
}
}
}

View File

@ -369,9 +369,10 @@ const showTime = computed(() => (item: KeFuMessageRespVO, index: number) => {
position: absolute;
bottom: 35px;
right: 35px;
background-color: #fff;
background-color: var(--app-content-bg-color);
padding: 10px;
border-radius: 30px;
font-size: 12px;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* 阴影效果 */
}
@ -445,7 +446,7 @@ const showTime = computed(() => (item: KeFuMessageRespVO, index: number) => {
border-radius: 12rpx;
padding: 8rpx 16rpx;
margin-bottom: 16rpx;
background-color: #e8e8e8;
//background-color: #e8e8e8;
color: #999;
font-size: 24rpx;
}

View File

@ -7,7 +7,7 @@
<el-tab-pane label="订单列表" name="b" />
</el-tabs>
<div>
<el-scrollbar ref="scrollbarRef" always height="calc(100vh - 400px)" @scroll="handleScroll">
<el-scrollbar ref="scrollbarRef" always height="calc(115vh - 400px)" @scroll="handleScroll">
<!-- 最近浏览 -->
<ProductBrowsingHistory v-if="activeName === 'a'" ref="productBrowsingHistoryRef" />
<!-- 订单列表 -->

View File

@ -1,7 +1,7 @@
<template>
<div v-if="isObject(getMessageContent)">
<div :key="getMessageContent.id" class="order-list-card-box mt-14px">
<div class="order-card-header flex items-center justify-between p-x-20px">
<div class="order-card-header flex items-center justify-between p-x-5px">
<div class="order-no">订单号{{ getMessageContent.no }}</div>
<div :class="formatOrderColor(getMessageContent)" class="order-state font-16">
{{ formatOrderStatus(getMessageContent) }}
@ -16,7 +16,7 @@
:title="item.spuName"
/>
</div>
<div class="pay-box flex justify-end pr-20px">
<div class="pay-box flex justify-end pr-5px">
<div class="flex items-center">
<div class="discounts-title pay-color"
> {{ getMessageContent?.productCount }} 件商品,总金额:
@ -97,18 +97,21 @@ function formatOrderStatus(order: any) {
.order-list-card-box {
border-radius: 10px;
padding: 10px;
background-color: #e2e2e2;
border: 1px #6a6a6a solid;
background-color: var(--app-content-bg-color);
.order-card-header {
height: 28px;
.order-no {
font-size: 16px;
font-size: 10px;
font-weight: 500;
}
}
.pay-box {
padding-top: 10px;
.discounts-title {
font-size: 16px;
line-height: normal;
@ -123,24 +126,33 @@ function formatOrderStatus(order: any) {
}
.pay-color {
color: #333;
font-size: 13px;
color: var(--left-menu-text-color);
}
}
}
.warning-color {
color: #faad14;
font-size: 11px;
font-weight: bold;
}
.danger-color {
color: #ff3000;
font-size: 11px;
font-weight: bold;
}
.success-color {
color: #52c41a;
font-size: 11px;
font-weight: bold;
}
.info-color {
color: #999999;
font-size: 11px;
font-weight: bold;
}
</style>

View File

@ -113,7 +113,8 @@ const skuString = computed(() => {
.ss-order-card-warp {
padding: 20px;
border-radius: 10px;
background-color: #e2e2e2;
border: 1px #6a6a6a solid;
background-color: var(--app-content-bg-color);
.img-box {
width: 80px;
@ -139,13 +140,13 @@ const skuString = computed(() => {
}
.title-text {
font-size: 16px;
font-size: 13px;
font-weight: 500;
line-height: 20px;
}
.spec-text {
font-size: 16px;
font-size: 10px;
font-weight: 400;
color: #999999;
min-width: 0;
@ -157,13 +158,13 @@ const skuString = computed(() => {
}
.price-text {
font-size: 16px;
font-size: 11px;
font-weight: 500;
font-family: OPPOSANS;
}
.total-text {
font-size: 16px;
font-size: 10px;
font-weight: 400;
line-height: 16px;
color: #999999;

View File

@ -80,8 +80,8 @@ export const useEmoji = () => {
/**
* 将文本中的表情替换成图片
*
* @param data 文本
* @return 替换后的文本
* @param content 消息内容
*/
const replaceEmoji = (content: string) => {
let newData = content
@ -93,7 +93,7 @@ export const useEmoji = () => {
const emojiFile = getEmojiFileByName(item)
newData = newData.replace(
item,
`<img class="chat-img" style="width: 24px;height: 24px;margin: 0 3px;" src="${emojiFile}"/>`
`<img class="chat-img" style="width: 24px;height: 24px;margin: 0 3px;" src="${emojiFile}" alt=""/>`
)
})
}

View File

@ -32,7 +32,7 @@
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)"
:key="dict.value"
:label="dict.value"
:value="dict.value"
>
{{ dict.label }}
</el-radio>

View File

@ -12,8 +12,8 @@
<el-form-item label="用户类型" prop="level">
<el-radio-group v-model="queryParams.level" @change="handleQuery">
<el-radio-button checked>全部</el-radio-button>
<el-radio-button label="1">一级推广人</el-radio-button>
<el-radio-button label="2">二级推广人</el-radio-button>
<el-radio-button value="1">一级推广人</el-radio-button>
<el-radio-button value="2">二级推广人</el-radio-button>
</el-radio-group>
</el-form-item>
<el-form-item label="状态" prop="status">

View File

@ -12,8 +12,8 @@
<el-form-item label="用户类型" prop="level">
<el-radio-group v-model="queryParams.level" @change="handleQuery">
<el-radio-button checked>全部</el-radio-button>
<el-radio-button label="1">一级推广人</el-radio-button>
<el-radio-button label="2">二级推广人</el-radio-button>
<el-radio-button value="1">一级推广人</el-radio-button>
<el-radio-button value="2">二级推广人</el-radio-button>
</el-radio-group>
</el-form-item>
<el-form-item label="绑定时间" prop="bindUserTime">

View File

@ -82,7 +82,7 @@
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.BROKERAGE_ENABLED_CONDITION)"
:key="dict.value"
:label="dict.value"
:value="dict.value"
>
{{ dict.label }}
</el-radio>
@ -99,7 +99,7 @@
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.BROKERAGE_BIND_MODE)"
:key="dict.value"
:label="dict.value"
:value="dict.value"
>
{{ dict.label }}
</el-radio>
@ -182,7 +182,7 @@
<el-checkbox
v-for="dict in getIntDictOptions(DICT_TYPE.BROKERAGE_WITHDRAW_TYPE)"
:key="dict.value"
:label="dict.value"
:value="dict.value"
>
{{ dict.label }}
</el-checkbox>

View File

@ -25,7 +25,7 @@
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)"
:key="dict.value"
:label="dict.value"
:value="dict.value"
>
{{ dict.label }}
</el-radio>

View File

@ -15,7 +15,7 @@
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.EXPRESS_CHARGE_MODE)"
:key="dict.value"
:label="dict.value"
:value="dict.value"
>
{{ dict.label }}
</el-radio>

View File

@ -20,7 +20,7 @@
<el-radio
v-for="dict in getIntDictOptions(DICT_TYPE.COMMON_STATUS)"
:key="dict.value"
:label="dict.value"
:value="dict.value"
>
{{ dict.label }}
</el-radio>

View File

@ -41,7 +41,7 @@
<template #header>
<div
class="mr-[20px] h-[35px] flex items-center pl-[10px] pr-[10px]"
style="background-color: #f7f7f7"
style="background-color: var(--app-content-bg-color)"
>
<span class="mr-20px">订单号{{ scope.row.no }} </span>
<span class="mr-20px">下单时间{{ formatDate(scope.row.createTime) }}</span>

View File

@ -397,13 +397,14 @@ onMounted(async () => {
align-items: center;
min-height: 30px;
padding: 10px;
background-color: #f7f8fa;
border-radius: var(--el-card-border-radius);
background-color: var(--app-content-bg-color);
&::before {
position: absolute;
top: 10px;
left: 13px; /* 将伪元素水平居中 */
border-color: transparent #f7f8fa transparent transparent; /* 尖角颜色,左侧朝向 */
border-color: transparent var(--app-content-bg-color) transparent transparent; /* 尖角颜色,左侧朝向 */
border-style: solid;
border-width: 8px; /* 调整尖角大小 */
content: ''; /* 必须设置 content 属性 */

View File

@ -3,8 +3,8 @@
<el-form ref="formRef" v-loading="formLoading" :model="formData" label-width="80px">
<el-form-item label="发货方式">
<el-radio-group v-model="expressType">
<el-radio border label="express">快递物流</el-radio>
<el-radio border label="none">无需发货</el-radio>
<el-radio border value="express">快递物流</el-radio>
<el-radio border value="none">无需发货</el-radio>
</el-radio-group>
</el-form-item>
<template v-if="expressType === 'express'">