This commit is contained in:
2025-04-07 18:04:39 +08:00
parent 0b9f4dc555
commit e3debde7e2
21 changed files with 818 additions and 74 deletions

View File

@@ -0,0 +1,27 @@
<script setup>
</script>
<template>
<view class="x-button">
<slot></slot>
</view>
</template>
<style scoped lang="scss">
.x-button {
color: #fff;
background-color: var(--primary-color);
padding: 22rpx 0;
display: flex;
align-items: center;
justify-content: center;
color: rgb(255, 255, 255);
font-size: 14px;
font-weight: 400;
line-height: 22px;
letter-spacing: 0;
text-align: left;
border-radius: 8rpx;
}
</style>

View File

@@ -1,24 +1,85 @@
<script setup> <script setup>
const {src} = defineProps({ import {ref} from 'vue';
const {src, list} = defineProps({
src: { src: {
type: String, type: String,
default: "", default: "",
},
list: {
type: Array,
default: () => [],
},
cur: {
type: Number,
default: 0,
} }
}); });
const show = ref(false);
const preview = () => { const preview = () => {
uni.previewImage({ show.value = true;
current: 0,
urls: [src],
indicator: true,
}).then();
} }
</script> </script>
<template> <template>
<image @click="preview" v-bind="$attrs" :src="src"></image>
<image @click="preview" v-bind="$attrs" :src="src" mode="aspectFill"></image>
<view
v-if="show"
@click="show=false"
class="x-image-preview">
<view class="x-image-docker">
<template v-if="list.length>1">
<swiper class="!size-full" :current="cur" @change="({detail:{current}})=>cur=current">
<swiper-item v-for="src in list">
<image class="!size-full" :src="src" mode="aspectFit"></image>
</swiper-item>
</swiper>
<view class="bg-[rgba(255,255,255,.3)] text-[#fff] test-28r rounded-full px-[20rpx] py-[6rpx] fixed left-1/2 -translate-x-1/2">
{{cur+1}} / {{list.length}}
</view>
</template>
<template v-else>
<image class="!size-full" :src="src" mode="aspectFit"></image>
</template>
<image
v-if="list.length>1"
@click="show=false"
class="!w-[52rpx] !h-[52rpx] !absolute left-1/2 -translate-x-1/2 bottom-[-130rpx]"
src="/static/icons/close.png">
</image>
<image
v-else
@click="show=false"
class="!w-[52rpx] !h-[52rpx] !absolute left-1/2 -translate-x-1/2 bottom-[-60rpx]"
src="/static/icons/close.png">
</image>
</view>
</view>
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">
.x-image-preview {
position: fixed;
width: 100%;
height: 100%;
left: 0;
top: 0;
background-color: rgba(0, 0, 0, .6);
z-index: 999;
display: flex;
justify-content: center;
align-items: center;
.x-image-docker {
width: 620rpx;
height: 1060rpx;
position: relative;
}
}
</style> </style>

View File

@@ -1,13 +1,24 @@
<script setup> <script setup>
const {showDescription} = defineProps({
showDescription: {
type: Boolean,
default: false,
}
});
</script> </script>
<template> <template>
<view class="text-[var(--primary-color)]"> <view :class="['x-link', showDescription?'x-description':'']">
<slot></slot> <slot></slot>
</view> </view>
</template> </template>
<style scoped> <style lang="scss" scoped>
.x-link {
color: var(--primary-color);
}
.x-description {
text-decoration: underline;
}
</style> </style>

View File

@@ -1,6 +1,29 @@
<script setup> <script setup>
import {ref, onMounted} from "vue"; import {ref, onMounted} from "vue";
import warn from '../static/icons/warn.png'; import warn from '../static/icons/warn.png';
import success from '../static/icons/info.png';
const STATUS = {
error: {
bg: 'x-notice-box-error',
context: 'context-error'
},
success: {
bg: 'x-notice-box-success',
context: 'context-success'
},
};
const {text, status} = defineProps({
text: {
type: String,
default: '提示请在规定时间内按要求提交回填1。以免影响收益。哈哈哈哈哈哈哈哈哈哈'
},
status: {
type: String,
default: 'error'
}
});
const XNoticeBox = ref(); const XNoticeBox = ref();
const Context = ref(); const Context = ref();
@@ -18,22 +41,39 @@ onMounted(() => {
</script> </script>
<template> <template>
<view ref="XNoticeBox" class="x-notice-box"> <view ref="XNoticeBox" :class="['x-notice-box', STATUS[status].bg]">
<view ref="Context" :class="['context', roll ? 'roll' : '']"> <view ref="Context" :class="['context', roll ? 'roll' : '', STATUS[status].context]">
<image class="!size-[26rpx] flex-shrink-0" :src="warn"></image> <image v-if="status==='error'" class="!size-[26rpx] flex-shrink-0" :src="warn"></image>
<text class="!whitespace-nowrap flex-shrink-0">提示请在规定时间内按要求提交回填1以免影响收益哈哈哈哈哈哈哈哈哈哈</text> <image v-else class="!size-[26rpx] flex-shrink-0" :src="success"></image>
<text class="!whitespace-nowrap flex-shrink-0">{{ text }}</text>
</view> </view>
</view> </view>
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">
.x-notice-box { .x-notice-box-error {
padding: 18rpx 24rpx;
background-color: #FFF7E8; background-color: #FFF7E8;
} }
.context { .x-notice-box-success {
background-color: #E8F3FF;
}
.context-error {
color: rgb(255, 87, 34); color: rgb(255, 87, 34);
}
.context-success {
color: rgb(29, 33, 41);
}
.x-notice-box {
padding: 18rpx 24rpx;
width: 100%;
overflow: hidden;
}
.context {
font-size: 24rpx; font-size: 24rpx;
font-weight: 400; font-weight: 400;
line-height: 22px; line-height: 22px;

View File

@@ -0,0 +1,24 @@
<script setup>
import testIcon from '../static/images/test.png';
const {list} = defineProps({
list: {
type: Array,
default: [
testIcon, testIcon, testIcon, testIcon
],
},
});
</script>
<template>
<swiper class="!w-[160rpx] !h-[160rpx] !aspect-square" indicator-dots>
<swiper-item v-for="v in list">
<image class="!w-full !h-full" mode="aspectFill" :src="v"></image>
</swiper-item>
</swiper>
</template>
<style scoped lang="scss">
</style>

View File

@@ -72,6 +72,13 @@
"navigationStyle": "custom" "navigationStyle": "custom"
} }
}, },
{
"path": "pages/downloadMaterials/index",
"style": {
"navigationBarTitleText": "领取素材",
"navigationStyle": "custom"
}
},
{ {
"path": "pages/comingSoon/index", "path": "pages/comingSoon/index",
"style": { "style": {

View File

@@ -0,0 +1,168 @@
<script setup>
import {ref} from "vue";
import XNav from "../../components/XNav.vue";
import {copy, download} from "../../utils/uils.js";
import XLink from "../../components/XLink.vue";
import XImage from "../../components/XImage.vue";
import testIcon from "../../static/images/test.png";
const mock = [
'https://udnsunusn.oss-cn-hangzhou.aliyuncs.com/iShot_2025-04-07_13.51.57.png',
'https://udnsunusn.oss-cn-hangzhou.aliyuncs.com/iShot_2025-04-07_13.51.57.png',
'https://udnsunusn.oss-cn-hangzhou.aliyuncs.com/iShot_2025-04-07_13.51.57.png',
'https://udnsunusn.oss-cn-hangzhou.aliyuncs.com/iShot_2025-04-07_13.51.57.png',
'https://udnsunusn.oss-cn-hangzhou.aliyuncs.com/iShot_2025-04-07_13.51.57.png',
];
const current = ref(0);
const tabs = ref([
{
id: 1,
name: '素材1',
},
{
id: 2,
name: '素材2',
},
{
id: 3,
name: '素材3',
},
]);
</script>
<template>
<!--下载素材-->
<x-nav></x-nav>
<tui-tabs :tabs="tabs" :currentTab="current" @change="({index})=>current=index"></tui-tabs>
<view class="block">
<view class="title">标题</view>
<view class="info">
我是标题我是标题我是标题我是标题我是标题
<view class="copy-button" @click="copy('我是标题我是标题我是标题我是标题我是标题')">复制</view>
</view>
</view>
<view class="block">
<view class="title">
话题
<x-link class="!ml-auto" show-description>查看引导</x-link>
</view>
<view class="info">
我是标题我是标题我是标题我是标题我是标题
<view class="copy-button" @click="copy('我是标题我是标题我是标题我是标题我是标题')">复制</view>
</view>
</view>
<view class="block">
<view class="title">正文</view>
<view class="info">
正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文文正文正文文正文正文文正文正文
<view class="copy-button" @click="copy('我是标题我是标题我是标题我是标题我是标题')">复制</view>
</view>
</view>
<view class="block">
<view class="title">素材请按顺序下载&发布</view>
<view class="info">
<view class="!grid grid-cols-5 flex-wrap gap-[32rpx]">
<x-image :src="testIcon" class="!w-[100%] !h-auto !aspect-square"></x-image>
<x-image :src="testIcon" class="!w-[100%] !h-auto !aspect-square"></x-image>
<x-image :src="testIcon" class="!w-[100%] !h-auto !aspect-square"></x-image>
<x-image :src="testIcon" class="!w-[100%] !h-auto !aspect-square"></x-image>
<x-image :src="testIcon" class="!w-[100%] !h-auto !aspect-square"></x-image>
<x-image :src="testIcon" class="!w-[100%] !h-auto !aspect-square"></x-image>
<x-image :src="testIcon" class="!w-[100%] !h-auto !aspect-square"></x-image>
<x-image :src="testIcon" class="!w-[100%] !h-auto !aspect-square"></x-image>
</view>
<view class="copy-button" @click="download(mock)">批量保存</view>
</view>
</view>
<view class="block">
<view class="title">评论1</view>
<view class="info">
正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文文正文正文文正文正文文正文正文
<view class="!grid grid-cols-5 flex-wrap gap-[32rpx]">
<x-image :src="testIcon" class="!w-[100%] !h-auto !aspect-square"></x-image>
<x-image :src="testIcon" class="!w-[100%] !h-auto !aspect-square"></x-image>
<x-image :src="testIcon" class="!w-[100%] !h-auto !aspect-square"></x-image>
</view>
<view class="!flex gap-[24rpx] justify-center">
<view class="copy-button !mx-0" @click="copy('我是标题我是标题我是标题我是标题我是标题')">复制文字</view>
<view class="copy-button !mx-0" @click="download(mock)">保存图片</view>
</view>
</view>
</view>
<view class="block">
<view class="title">评论2<x-link class="!ml-auto" show-description>查看引导</x-link></view>
<view class="info">
正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文正文文正文正文文正文正文文正文正文
<view class="!grid grid-cols-5 flex-wrap gap-[32rpx]">
<x-image :src="testIcon" class="!w-[100%] !h-auto !aspect-square"></x-image>
<x-image :src="testIcon" class="!w-[100%] !h-auto !aspect-square"></x-image>
</view>
<view class="!flex gap-[24rpx] justify-center">
<view class="copy-button !mx-0" @click="copy('我是标题我是标题我是标题我是标题我是标题')">复制文字</view>
<view class="copy-button !mx-0" @click="download(mock)">保存图片</view>
</view>
</view>
</view>
</template>
<style scoped lang="scss">
.block {
background-color: #fff;
padding: 20rpx;
.copy-button {
padding: 7rpx 24rpx;
background: rgb(22, 93, 255);
color: #fff;
border-radius: 4rpx;
width: fit-content;
margin-top: 24rpx;
margin-left: auto;
margin-right: auto;
color: rgb(255, 255, 255);
font-size: 12px;
font-weight: 400;
line-height: 140%;
letter-spacing: 0;
font-weight: 300;
}
.info {
color: rgb(29, 33, 41);
font-size: 14px;
font-weight: 500;
line-height: 22px;
letter-spacing: 0;
text-align: left;
padding: 24rpx;
background-color: #F7F8FA;
border: 1px solid #E5E6EB;
border-radius: 8rpx;
position: relative;
}
.title {
color: rgb(78, 89, 105);
font-size: 14px;
font-weight: 500;
line-height: 20px;
letter-spacing: 0;
padding-bottom: 14rpx;
display: flex;
}
}
</style>

View File

@@ -1,11 +1,130 @@
<script setup> <script setup>
import {ref, reactive} from "vue";
import XSquareCarouselImage from "../../../components/XSquareCarouselImage.vue";
import {toPage} from "../../../utils/uils.js";
const current = ref(0);
const list = reactive([
{
id: 0,
name: '素材1',
},
{
id: 1,
name: '素材2',
},
{
id: 2,
name: '素材3',
},
]);
</script> </script>
<template> <template>
<!--领取素材--> <!--领取素材-->
<view class="!flex gap-[24rpx] !mb-[28rpx]">
<view
v-for="(item,index) in list"
@click="current=index"
:class="['tab-item', index===current?'cur':'']">
素材1
</view>
</view>
<template v-if="true">
<view class="block">
<view class="block-title">
标题:
</view>
<view class="block-info">
标题内容标题内容标题内容标题内容标题内容标题内容标题内容标题内容
</view>
</view>
<view class="block">
<view class="block-title">
话题:
</view>
<view class="block-info">
#话题1 #话题2 #话题3 #话题4 #话题5
</view>
</view>
<view class="block">
<view class="block-title">
正文:
</view>
<view class="block-info">
简介内容简介内容简介内容简介内容简介内容简介内容简介内容简介内容简介内容简介内...
</view>
</view>
<view class="block">
<view class="block-title">
素材:
</view>
<view class="block-info">
<x-square-carousel-image></x-square-carousel-image>
</view>
</view>
<view class="block">
<view class="block-title">
评论区案例:
</view>
<view class="block-info">
<view>
<view>评论1我用的也是这款早tb可以购买噢~我用的也是这款早tb可以购买噢~</view>
<view class="!flex gap-[20rpx] flex-wrap">
<image class="!w-[96rpx] !h-[96rpx] !aspect-square" mode="aspectFill" src="/static/images/test.png"></image>
<image class="!w-[96rpx] !h-[96rpx] !aspect-square" mode="aspectFill" src="/static/images/test.png"></image>
<image class="!w-[96rpx] !h-[96rpx] !aspect-square" mode="aspectFill" src="/static/images/test.png"></image>
<image class="!w-[96rpx] !h-[96rpx] !aspect-square" mode="aspectFill" src="/static/images/test.png"></image>
</view>
</view>
</view>
</view>
<tui-button size="28" @click="toPage('/pages/downloadMaterials/index')">
<tui-icon size="20" color="#fff" name="bottom"></tui-icon>
<view class="!ml-[20rpx]">一键下载</view>
</tui-button>
</template>
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">
.tab-item {
padding: 12rpx 32rpx;
border-radius: 9999rpx;
background-color: #F7F8FA;
font-size: 24rpx;
color: #4E5969;
transition: 500ms;
}
.cur {
background-color: #E8F3FF;
color: #165DFF;
}
.block {
display: flex;
gap: 20rpx;
margin-bottom: 20rpx;
.block-title {
flex-shrink: 0;
color: rgb(134, 144, 156);
font-size: 24rpx;
font-weight: 500;
line-height: 140%;
letter-spacing: 0;
text-align: left;
width: 160rpx;
}
.block-info {
color: rgb(78, 89, 105);
font-size: 24rpx;
font-weight: 500;
line-height: 140%;
letter-spacing: 0;
}
}
</style> </style>

View File

@@ -4,6 +4,7 @@
<template> <template>
<!--我的回填--> <!--我的回填-->
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">

View File

@@ -1,11 +1,142 @@
<script setup> <script setup>
import ysq from "../../../static/icons/ysq.png";
import avatar from "../../../static/images/Avatar.png";
import XNoticeBar from "../../../components/XNoticeBar.vue";
import XButton from "../../../components/XButton.vue";
import rback from "../../../static/icons/rout-back.png";
</script> </script>
<template> <template>
<!--审核沟通--> <!--审核沟通-->
<view class="context">
<x-notice-bar status="success"></x-notice-bar>
<view class="chat-box">
<view class="!flex gap-[12rpx]">
<image class="!size-[80rpx]" mode="aspectFill" :src="avatar"></image>
<view class="flex-grow">
<view class="time">07月21日 13:42</view>
<view class="px-[24rpx] py-[16rpx] bg-[#fff] rounded-[8rpx]">
123
</view>
<view :class="['status', 'read']">
未读
</view>
</view>
</view>
<view
class="bg-[#fff] !w-[460rpx] p-[24rpx] rounded-[8rpx] !mx-auto !mt-[24rpx] !flex flex-col gap-[16rpx]">
<view class="prompt">
<image class="!w-[26rpx]" :src="ysq" mode="widthFix"></image>
提示点击下方按钮快速回复
</view>
<view class="prompt-button">
我已重新回填
</view>
<view class="prompt-button">
拒绝修改并放弃任务
<view class="!mt-[16rpx] text-[#86909C] test-22r">
商家将根据约定扣钱或不结算
</view>
</view>
<view class="prompt-button">
发起申诉
</view>
</view>
</view>
<view class="p-[24rpx] !pt-0 !flex gap-[22rpx]">
<x-button class="!w-[220rpx]">
发起申述
</x-button>
<x-button class="flex-grow !flex gap-[16rpx]">
<image :src="rback" class="!w-[22rpx]" mode="widthFix"></image>
发起申述
</x-button>
</view>
</view>
</template> </template>
<style scoped lang="scss"> <style scoped lang="scss">
.prompt-button {
color: var(--primary-color);
font-size: 28rpx;
font-weight: 400;
letter-spacing: 0;
text-align: left;
background-color: #E8F3FF;
padding: 15rpx 0;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
border-radius: 4rpx;
}
.prompt {
padding: 18rpx 30rpx;
background-color: #F2F3F5;
color: rgb(134, 144, 156);
font-size: 22rpx;
font-weight: 400;
line-height: 20px;
letter-spacing: 0;
text-align: center;
display: flex;
align-items: center;
gap: 18rpx;
}
.status {
margin-top: 8rpx;
color: rgb(29, 33, 41);
font-size: 20rpx;
font-weight: 400;
line-height: 140%;
letter-spacing: 0;
display: flex;
align-items: center;
gap: 8rpx;
&::before {
content: '';
border-radius: 50%;
display: block;
width: 24rpx;
height: 24rpx;
}
}
.read {
&::before {
background-color: var(--primary-color);
}
}
.unread {
&::before {
background-color: var(--warning-color);
}
}
.context {
background-color: #F2F3F5;
width: 100%;
}
.time {
color: rgb(134, 144, 156);
font-size: 20rpx;
font-weight: 400;
line-height: 16px;
letter-spacing: 0;
margin-bottom: 8rpx;
}
.chat-box {
box-sizing: border-box;
padding: 24rpx;
}
</style> </style>

View File

@@ -28,9 +28,9 @@ import XImage from "../../../components/XImage.vue";
<view class="block"> <view class="block">
<view class="block-title">素材案例:</view> <view class="block-title">素材案例:</view>
<view class="block-info !grid grid-cols-3 gap-[20rpx]"> <view class="block-info !grid grid-cols-3 gap-[20rpx]">
<x-image class="!size-[160rpx]" :src="fmt" mode="aspectFill" :draggable="false"></x-image> <x-image class="!size-[160rpx]" :src="fmt" :list="[fmt,fmt,fmt]" :cur="0" mode="aspectFill" :draggable="false"></x-image>
<x-image class="!size-[160rpx]" :src="fmt" mode="aspectFill" :draggable="false"></x-image> <x-image class="!size-[160rpx]" :src="fmt" :list="[fmt,fmt,fmt]" :cur="1" mode="aspectFill" :draggable="false"></x-image>
<x-image class="!size-[160rpx]" :src="fmt" mode="aspectFill" :draggable="false"></x-image> <x-image class="!size-[160rpx]" :src="fmt" :list="[fmt,fmt,fmt]" :cur="2" mode="aspectFill" :draggable="false"></x-image>
</view> </view>
</view> </view>
<view class="block"> <view class="block">

View File

@@ -93,7 +93,7 @@ onMounted(() => {
@change="({index})=>currentTabs=index"> @change="({index})=>currentTabs=index">
</tui-tabs> </tui-tabs>
<view class="!p-[24rpx]"> <view :style="{padding: currentTabs===3?'0':'24rpx'}">
<Suspense> <Suspense>
<template #default> <template #default>
<div class="h-full flex flex-col items-start"> <div class="h-full flex flex-col items-start">
@@ -108,6 +108,7 @@ onMounted(() => {
</view> </view>
</view> </view>
<template v-if="currentTabs === 0">
<view class="rounded-[16rpx] bg-[#fff] main-details overflow-hidden !p-[24rpx]"> <view class="rounded-[16rpx] bg-[#fff] main-details overflow-hidden !p-[24rpx]">
<view class="w-full"> <view class="w-full">
<view class="title"> <view class="title">
@@ -136,7 +137,8 @@ onMounted(() => {
<view class="block-info gap-[20rpx]"> <view class="block-info gap-[20rpx]">
<view>请使用抖音扫码下图收藏音乐发布时使用</view> <view>请使用抖音扫码下图收藏音乐发布时使用</view>
<view class="!grid grid-cols-3 !mt-[12rpx]"> <view class="!grid grid-cols-3 !mt-[12rpx]">
<x-image class="!size-[96rpx]" :src="fmt" mode="aspectFill" :draggable="false"></x-image> <x-image class="!size-[96rpx]" :src="fmt" mode="aspectFill"
:draggable="false"></x-image>
</view> </view>
</view> </view>
</view> </view>
@@ -150,24 +152,127 @@ onMounted(() => {
</view> </view>
<view class="block flex-col"> <view class="block flex-col">
<view class="block-title">第1次回填:</view> <view class="block-title">第1次回填:</view>
<view class="block-info"> <view class="block-info !flex w-full">
10分钟 <view
class="bg-[#F7F8FA] py-[12rpx] px-[20rpx] border-1 border-[rgb(229,230,235)] w-[60%] whitespace-nowrap">
0813-09:54 0813-17:14之间
</view>
<view
class="bg-[#F7F8FA] py-[12rpx] px-[20rpx] border-1 border-[rgb(229,230,235)] flex-grow">
3个作品评论区截图
</view>
</view> </view>
</view> </view>
<view class="block flex-col"> <view class="block flex-col">
<view class="block-title">第2次回填:</view> <view class="block-title">第2次回填:</view>
<view class="block-info"> <view class="block-info !flex w-full">
10分钟 <view
class="bg-[#F7F8FA] py-[12rpx] px-[20rpx] border-1 border-[rgb(229,230,235)] w-[60%] whitespace-nowrap">
0813-09:54 0813-17:14之间
</view>
<view
class="bg-[#F7F8FA] py-[12rpx] px-[20rpx] border-1 border-[rgb(229,230,235)] flex-grow">
3个作品链接
</view>
</view> </view>
</view> </view>
<view class="block flex-col"> <view class="block flex-col">
<view class="block-title">第3次回填:</view> <view class="block-title">第3次回填:</view>
<view class="block-info !flex w-full">
<view
class="bg-[#F7F8FA] py-[12rpx] px-[20rpx] border-1 border-[rgb(229,230,235)] w-[60%] whitespace-nowrap">
0814-10:00 0814-11:30之间
</view>
<view
class="bg-[#F7F8FA] py-[12rpx] px-[20rpx] border-1 border-[rgb(229,230,235)] flex-grow">
每一个作品的播放量截图
</view>
</view>
</view>
</view>
</view>
<view class="rounded-[16rpx] bg-[#fff] main-details overflow-hidden !p-[24rpx]">
<view class="w-full">
<view class="title">
时间要求
</view>
<view class="block items-center">
<view class="block-title">作品保留时间:</view>
<view class="block-info"> <view class="block-info">
10分钟 3
</view>
</view>
<view class="block-extend">
*若未到保留时间提前删除有对应惩罚
</view>
<view class="block items-center">
<view class="block-title !w-[300rpx]">每次回填将在该时间内审核:</view>
<view class="block-info">
4小时内
</view>
</view>
<view class="block-extend">
*若您的回填未在上述时间内审核可在沟通中发起申诉
</view> </view>
</view> </view>
</view> </view>
<view class="rounded-[16rpx] bg-[#fff] main-details overflow-hidden !p-[24rpx]">
<view class="w-full">
<view class="title">
扣款说明
</view> </view>
<view class="block !flex !gap-0">
<view class="test-24r px-[20rpx] py-[12rpx] bg-[#F7F8FA] border-1 border-[rgb(229,230,235)]">1.
</view>
<view
class="test-24r px-[20rpx] py-[12rpx] bg-[#F7F8FA] border-1 border-[rgb(229,230,235)] flex-grow">
未按约定评论
</view>
<view
class="test-24r px-[20rpx] py-[12rpx] bg-[#F7F8FA] border-1 border-[rgb(229,230,235)] !w-[210rpx]">
扣除20%收益
</view>
</view>
<view class="block !flex !gap-0">
<view class="test-24r px-[20rpx] py-[12rpx] bg-[#F7F8FA] border-1 border-[rgb(229,230,235)]">2.
</view>
<view
class="test-24r px-[20rpx] py-[12rpx] bg-[#F7F8FA] border-1 border-[rgb(229,230,235)] flex-grow">
当天发布其他广告
</view>
<view
class="test-24r px-[20rpx] py-[12rpx] bg-[#F7F8FA] border-1 border-[rgb(229,230,235)] !w-[210rpx]">
扣除100%收益
</view>
</view>
<view class="block-extend">
*请认真阅读该说明商家将按照提前约定的事由扣款
</view>
</view>
</view>
<view class="rounded-[16rpx] bg-[#fff] main-details overflow-hidden !p-[24rpx]">
<view class="w-full">
<view class="title">
其他说明
</view>
<view class="block">
<view class="test-24r">
未到约定期限达人提前删除视频处罚扣除1点达人信用分
</view>
</view>
<view class="py-[7rpx] px-[32rpx] rounded-full text-[var(--primary-color)] bg-[#E8F3FF] w-fit">
查看信用分管理方法
</view>
</view>
</view>
<view class="bg-[#94BFFF] rounded-[8rpx] py-[26rpx] text-[#fff] !flex justify-center items-center">
已接受
</view>
</template>
</view> </view>
</template> </template>
@@ -176,6 +281,16 @@ page {
background-color: #6AA1FF; background-color: #6AA1FF;
} }
.block-extend {
color: rgb(255, 125, 0);
font-size: 20rpx;
font-weight: 400;
letter-spacing: 0;
text-align: left;
margin-top: -8rpx;
margin-bottom: 24rpx;
}
.block { .block {
display: flex; display: flex;
gap: 20rpx; gap: 20rpx;

View File

@@ -6,7 +6,7 @@ $primary-color: #2D5CF6;
} }
.tui-btn { .tui-btn {
border-radius: 12rpx !important; border-radius: 10rpx !important;
} }
.tui-primary-outline { .tui-primary-outline {
@@ -47,3 +47,15 @@ $primary-color: #2D5CF6;
.nowrap { .nowrap {
white-space: nowrap; white-space: nowrap;
} }
.test-22r {
font-size: 22rpx;
}
.test-24r {
font-size: 24rpx;
}
.test-28r {
font-size: 28rpx;
}

View File

@@ -1,7 +1,6 @@
Page {
--primary-color: #2D5CF6;
}
page { page {
background-color: #F2F3F5; background-color: #F2F3F5;
font-family: PingFang SC; font-family: PingFang SC;
--primary-color: #165DFF;
--warning-color: #FF7900;
} }

View File

@@ -6,7 +6,7 @@
//组件内主色配置 //组件内主色配置
const color = { const color = {
primary: '#2D5CF6', primary: '#165DFF',
success: '#07c160', success: '#07c160',
warning: '#ff7900', warning: '#ff7900',
danger: '#EB0909', danger: '#EB0909',

BIN
src/static/icons/info.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 677 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 406 B

BIN
src/static/icons/ysq.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 749 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

BIN
src/static/images/test.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

View File

@@ -23,3 +23,32 @@ export const toPage = (url) => {
export const backPage = () => { export const backPage = () => {
window.history.back(); window.history.back();
} }
export const copy = (context) => {
try {
navigator.clipboard.writeText(context)
.then(() => {
showToast('已复制');
})
.catch(() => {
showToast('复制失败');
});
} catch (e) {
showToast('复制失败');
}
}
export const download = (urls) => {
const promises = urls.map((url, index) => new Promise((resolve, reject) => {
const iframe = document.createElement('iframe');
iframe.src = url;
iframe.style.display = 'none';
document.body.appendChild(iframe);
resolve(true);
}));
Promise.all(promises).then(res => {
console.log(res);
}).catch(err => {
console.log(err);
});
}