baijunde 3 mēneši atpakaļ
vecāks
revīzija
73d8aae0ef

+ 16 - 15
components/index_nav.vue

@@ -55,29 +55,30 @@
 					// 	url: '/static/index/audit.png',
 					// 	path: '/pages/store/examine'
 					// },
+					{
+						name: '提现管理',
+						url: '/static/index/withdraw.png'
+					},
 					{
 						name: '商品管理',
 						url: '/static/index/product.png',
 						path: '/pages/product/index'
 					},
 					{
-						name: '提现管理',
-						url: '/static/index/withdraw.png'
+						name: '客户评价',
+						url: '/static/index/evaluate.png',
+						path: '/pages/evaluate/evaluate'
 					},
 					{
 						name: '广告管理',
 						url: '/static/index/ad.png',
 						path: '/pages/adManagement/adlist'
 					},
-					{
-						name: '秒杀活动',
-						url: '/static/index/seckill.png'
-					},
-					{
-						name: '客户评价',
-						url: '/static/index/evaluate.png',
-						path: '/pages/evaluate/evaluate'
-					},
+					// {
+					// 	name: '秒杀活动',
+					// 	url: '/static/index/seckill.png'
+					// },
+					
 					{
 						name: '全部服务',
 						url: '/static/index/all.png',
@@ -154,7 +155,7 @@
 		display: flex;
 		flex-wrap: wrap;
 		justify-content: space-between;
-
+		padding-top: 32rpx;
 	}
 
 	.card {
@@ -167,9 +168,9 @@
 		font-size: 24rpx;
 
 		image {
-			width: 56rpx;
-			height: 56rpx;
-			margin-bottom: 4rpx;
+			width: 60rpx;
+			height: 60rpx;
+			margin-bottom: 8rpx;
 		}
 	}
 

+ 2 - 2
manifest.json

@@ -2,8 +2,8 @@
     "name" : "掌柜生活商户版",
     "appid" : "__UNI__E0EA6E1",
     "description" : "",
-    "versionName" : "1.1.6.7",
-    "versionCode" : 1167,
+    "versionName" : "1.1.7.2",
+    "versionCode" : 1172,
     "transformPx" : false,
     "app-plus" : {
         /* 5+App特有相关 */

+ 32 - 31
pages/adManagement/adlist.vue

@@ -15,7 +15,7 @@
 		<view class="adlist dis f-c  ">
 			<view class="dataView dis a-c j-s" v-for="(item,index) in dataList" :key="index" @click="godetails(item)">
 				<view class="dataView-left dis a-start">
-					<image src="/static/banner/banner3.jpg" mode=""></image>
+					<image :src="item.taskImage" mode=""></image>
 					<view class="content dis  f-c ">
 						<text class="title">{{item.name}}</text>
 						<view class="tag dis a-c ">
@@ -24,26 +24,26 @@
 						</view>
 						<view class="dis a-c mb-1">
 							<view class="time-tag mr-1">始</view>
-							<text class="time-text"> 开始时间:{{item.startDate}} </text>
+							<text class="time-text"> 开始时间:{{item.planStartTime}} </text>
 						</view>
 						<view class="dis a-c">
 							<view class="time-tag mr-1" style="background-color: #FF5353;">终</view>
-							<text class="time-text"> 结束时间:{{item.endDate}} </text>
+							<text class="time-text"> 结束时间:{{item.planEndTime}} </text>
 						</view>
 					</view>
 				</view>
 				<view class="dataView-right ">
 					<text class="status"
-						:style="{color:statusColorMap(item.status)}">{{statusTypeMap(item.status)}}</text>
+						:style="{color:statusColorMap(item.status)}">{{item.statusName}}</text>
 					<u-icon name="arrow-right" class="ml-1" color="#979797" size="24"></u-icon>
 				</view>
 			</view>
 		</view>
 		<view class="footer">
-			<view class="btn dis a-c j-c" @click="createAdShow=true">
+			<view class="btn dis a-c j-c" @click="ifPlatform=true">
 				<image src="/static/ad/createAd.png" mode="" style="width: 32rpx ; height: 32rpx;margin-right: 13rpx;">
 				</image>
-				<text>创建广告</text>
+				<text>广告</text>
 			</view>
 		</view>
 		<u-popup v-model="createAdShow" mode="center" width="580rpx" :closeable="true" border-radius="20">
@@ -106,18 +106,21 @@
 			</view>
 		</u-popup>
 		<my-date-picker ref="datePicker" @confirmPickDate="confirmPickDate" />
+		<AdServicePopup v-if="ifPlatform" @contact="onContactPlatform"/>
 	</view>
 </template>
 <script>
 	import myDatePicker from '@/components/date-picker.vue';
 	import uniNavBar from '@/components/uni-NavBar/uni-NavBar.vue'
+	import AdServicePopup from './popup_platform.vue'
+
 	import {
 		USER_INFO
 	} from '@/common/util/constants.js'
 	export default {
 		components: {
 			myDatePicker,
-			uniNavBar
+			uniNavBar,AdServicePopup
 		},
 		data() {
 			return {
@@ -196,21 +199,21 @@
 							label: "全部",
 							value: " ",
 						},
-						{
-							id: 1,
-							label: "待审核",
-							value: "0",
-						},
-						{
-							id: 2,
-							label: "审核通过",
-							value: "1",
-						},
-						{
-							id: 3,
-							label: "审核驳回",
-							value: "2",
-						},
+						// {
+						// 	id: 1,
+						// 	label: "待审核",
+						// 	value: "0",
+						// },
+						// {
+						// 	id: 2,
+						// 	label: "审核通过",
+						// 	value: "1",
+						// },
+						// {
+						// 	id: 3,
+						// 	label: "审核驳回",
+						// 	value: "2",
+						// },
 						{
 							id: 4,
 							label: "未开始",
@@ -237,7 +240,7 @@
 				dataList: [], //广告列表
 				userInfo: {},
 				adSlotList: [], //广告位列表
-
+				ifPlatform:false
 			}
 		},
 		onShow() {
@@ -248,6 +251,9 @@
 			this.userInfo = uni.getStorageSync(USER_INFO);
 		},
 		methods: {
+			onContactPlatform(){
+				this.ifPlatform = false
+			},
 			adSlotOptions(item) {
 				this.selectedOptions.positionId = item.id;
 			},
@@ -280,9 +286,6 @@
 			},
 			statusTypeMap(ele) {
 				const map = {
-					0: '待审核',
-					1: '审核驳回',
-					2: '审核通过',
 					3: '未开始',
 					4: '已生效',
 					5: '已作废',
@@ -303,15 +306,13 @@
 				return map[ele] || ''
 			},
 			pageLlist() {
-				this.$http.get('advert/localAdvertTask/list', {
-					params: {
+				this.$http.post('advert/localAdvertTask/pageList', {
 						pageNo: 1,
 						pageSize: 10,
 						adType: "1",
 						merchantId: this.userInfo.merchantId,
 						merchantName: this.userInfo.merchantName,
 						...this.selectedOptions,
-					}
 				}).then(res => {
 					if (res.data.code == '200') {
 						this.dataList = res.data.result.records
@@ -320,7 +321,7 @@
 			},
 			godetails(item) {
 				uni.navigateTo({
-					url: '/pages/adManagement/fullscreenAdDetails?info=' + JSON.stringify(item)
+					url: '/pages/adManagement/fullscreenAdDetails?id=' + item.id
 				})
 			},
 			//回车搜索事件
@@ -585,4 +586,4 @@
 			margin-left: 24rpx;
 		}
 	}
-</style>
+</style>

+ 435 - 425
pages/adManagement/fullscreenAdDetails.vue

@@ -1,523 +1,481 @@
 <template>
 	<view class="page">
 		<u-sticky :h5-nav-height="0" z-index="9099" :offset-top='0'>
-			<uni-NavBar :headerTitle="`${headerTitle}详情`" background="#fff" :isSlot="false"></uni-NavBar>
-			<view class="status-message dis a-c " :style="{background:detailsInfo.styleCOlor.backcolor}">
-				<text>{{adTypeMap}}</text>
-				<view class="status"
-					:style="{background:detailsInfo.styleCOlor.backcolor1,color:detailsInfo.styleCOlor.color}">
-					{{statusTypeMap}}
-				</view>
-				<text class="error" v-if="detailsInfo.status=='1'" @click="rejectReasonShow=true">查看驳回原因</text>
-			</view>
-		</u-sticky>
-		<view class="body">
-			<view class="module dis f-c ">
-				<text class="module-title ">基本信息</text>
-				<view class="views dis a-c j-s ">
-					<text>投放计划名称</text>
-					<text>{{detailsInfo.name}}</text>
-				</view>
-				<view class="views dis a-c j-s ">
-					<text>位置名称</text>
-					<text>{{detailsInfo.positionName}}</text>
-				</view>
-				<view class="views dis a-c j-s ">
-					<text>广告类型</text>
-					<text>{{adTypeMap}}</text>
-				</view>
-			</view>
-			<view class="module dis f-c ">
-				<text class="module-title ">投放区域</text>
-				<text class="address">{{detailsInfo.address}}</text>
-			</view>
-			<view class="module dis f-c ">
-				<text class="module-title ">投放时间</text>
-				<view class="views dis a-c j-s ">
-					<text>投放开始日期</text>
-					<text>{{detailsInfo.startDate}}</text>
-				</view>
-				<view class="views dis a-c j-s ">
-					<text>投放结束日期</text>
-					<text>{{detailsInfo.endDate}}</text>
-				</view>
-				<view class="views dis a-c j-s ">
-					<text>生效周期</text>
-					<text>{{detailsInfo.validPeriodType==0?'每天':detailsInfo.validPeriodType==1 ? '每周':'每月'}}</text>
-				</view>
-				<view class="extendArea dis a-c  f-wrap mt-2" style="padding-bottom: 0;"
-					v-if="detailsInfo.validPeriodType!='0'">
-					<view class="cycleStrategy dis a-c j-c" v-for="(item,index) in cycleStrategylist" :key="index"
-						:class="{ 'tcycleStrategy-active': selectedDays.includes(item.value) }">
-						<text>{{item.label}}</text>
+			<uni-NavBar headerTitle="广告列表" background="linear-gradient(230deg, #CFE6FF 40%, #FFFFFF 100%)"
+				:isSlot="false"></uni-NavBar>
+			<div class="search dis a-c j-s ">
+				<u-search v-model="selectedOptions.name" @custom="custom" @search="search" shape="square" :height='68'
+					color="#AAAAAA" bg-color="#F6F8FC" :input-style="{background:'transparent'}"
+					:actionStyle="{position: 'absolute',right:'50px',boxSiting:'border-box',borderLeft:'2rpx solid #DDDDDD'}"
+					placeholder-color="#AAAAAA" :clearabled="true" @clear="clear" placeholder="请输入关键词"></u-search>
+				<u-icon name="list" class="ml-2" color="#333" size="48" @click="categoryFilterShow=true"></u-icon>
+			</div>
+		</u-sticky> 
+		<!-- 广告列表 -->
+		<view class="adlist dis f-c  ">
+			<view class="dataView dis a-c j-s" v-for="(item,index) in dataList" :key="index" @click="godetails(item)">
+				<view class="dataView-left dis a-start">
+					<image :src="item.taskImage" mode=""></image>
+					<view class="content dis  f-c ">
+						<text class="title">{{item.name}}</text>
+						<view class="tag dis a-c ">
+							<text>{{adTypeMap(item.type)}}</text>
+							<text>{{item.positionName}}</text>
+						</view>
+						<view class="dis a-c mb-1">
+							<view class="time-tag mr-1">始</view>
+							<text class="time-text"> 开始时间:{{item.planStartTime}} </text>
+						</view>
+						<view class="dis a-c">
+							<view class="time-tag mr-1" style="background-color: #FF5353;">终</view>
+							<text class="time-text"> 结束时间:{{item.planEndTime}} </text>
+						</view>
 					</view>
 				</view>
-				<view class="views dis a-c j-s ">
-					<text>生效时段</text>
-					<text>{{detailsInfo.validTimeRangeType==0?'全天':'指定时间段'}}</text>
-				</view>
-				<view class="extendArea  mt-2" style="font-size: 26rpx;" v-if="detailsInfo.validTimeRangeType=='1'">
-					<view class=" dis a-c j-s mb-3">
-						<text style="color: #333;">开始时间</text>
-						<text style="color: #aaa;" class="mr-1">{{timeSegmentStart}}</text>
-					</view>
-					<view class=" dis a-c j-s ">
-						<text style="color: #333;">开始时间</text>
-						<text style="color: #aaa;" class="mr-1">{{timeSegmentEnd }}</text>
-					</view>
-				</view>
-			</view>
-			<view class="module dis f-c ">
-				<text class="module-title ">投放内容</text>
-				<view class="admaterial mt-3 ">
-					<u-swiper :list="imagelist" mode="number" indicator-pos="bottomRight" height="330"
-						v-if="detailsInfo.imageType=='1'"></u-swiper>
-					<video v-else id="myVideo" :src="detailsInfo.taskImage"
-						:style="{height:'330rpx',width:'100%',borderRadius:'10rpx'}" :muted="false"
-						:enable-progress-gesture="true">
-					</video>
-				</view>
-			</view>
-			<view class="module dis f-c ">
-				<text class="module-title ">计费方式</text>
-				<view class="views dis a-c j-s " v-for="(item,index) in adPricingModelList" :key="index">
-					<text>{{item.pricingName}}</text>
-					<text>{{item.amount}} {{item.pricingUnit}}</text>
-				</view>
-			</view>
-			<view class="module dis f-c ">
-				<text class="module-title ">投放频次</text>
-				<view class="views dis a-c j-s ">
-					<text>每人每天展示次数</text>
-					<text>{{detailsInfo.userDailyDisplayLimit || '不限'}}次</text>
-				</view>
-				<view class="views dis a-c j-s ">
-					<text>每人展示总次数</text>
-					<text>{{detailsInfo.userTotalDisplayLimit || '不限'}}次</text>
-				</view>
-				<view class="views dis a-c j-s ">
-					<text>展示时间间隔</text>
-					<text>{{detailsInfo.showInterval || '不限'}}分钟</text>
-				</view>
-
-			</view>
-			<view class="module dis f-c ">
-				<text class="module-title ">广告预算</text>
-				<view class="views dis a-c j-s">
-					<text>广告预算</text>
-					<text>{{detailsInfo.adBudget}}元</text>
+				<view class="dataView-right ">
+					<text class="status"
+						:style="{color:statusColorMap(item.status)}">{{item.statusName}}</text>
+					<u-icon name="arrow-right" class="ml-1" color="#979797" size="24"></u-icon>
 				</view>
 			</view>
 		</view>
-		<view class="footer-view dis a-c j-s ">
-			<view class="dis a-c j-c " @click="adEdit">
-				编辑
-			</view>
-			<view class="dis a-c j-c " @click="delShow=true">
-				作废
+		<view class="footer">
+			<view class="btn dis a-c j-c" @click="ifPlatform=true">
+				<image src="/static/ad/createAd.png" mode="" style="width: 32rpx ; height: 32rpx;margin-right: 13rpx;">
+				</image>
+				<text>投广告</text>
 			</view>
 		</view>
-		<u-popup v-model="rejectReasonShow" mode="center" width="580rpx" :closeable="false" border-radius="20">
+		<u-popup v-model="createAdShow" mode="center" width="580rpx" :closeable="true" border-radius="20">
 			<view class="popup">
 				<view class="header dis a-c j-c ">
-					<text>驳回原因</text>
-				</view>
-				<view class="content dis f-c  a-c ">
-					{{detailsInfo.rejectReason}}
+					<text>选择广告类型</text>
 				</view>
-			</view>
-			<view class="popup-footer dis a-c j-s">
-				<view class="dis a-c j-c" @click="rejectReasonShow=false">
-					我知道了
-				</view>
-				<view class="dis a-c j-c" @click="adEdit">
-					去修改
+				<view class="createAd-content dis f-wrap j-s">
+					<view class="adimage dis f-c j-c" v-for="(item,index) in adbgImage" :key="index"
+						:style="{ backgroundImage: `url('${item.image}')` }" @click="adTypeSelect(item.value)">
+						<text class="mb-1">{{item.name}}</text>
+						<text>{{item.content}}</text>
+					</view>
 				</view>
 			</view>
+
 		</u-popup>
-		<u-popup v-model="delShow" mode="center" width="580rpx" :closeable="false" border-radius="20">
+		<u-popup v-model="categoryFilterShow" mode="bottom" :closeable="true" border-radius="20" height="730px">
 			<view class="popup">
 				<view class="header dis a-c j-c ">
-					<text>提示</text>
+					<text>请选择</text>
 				</view>
-				<view class="content dis f-c  a-c ">
-					<text class="title mb-3">是否将此广告作废?</text>
-					<text>广告一旦作废将无法使用,只能重新 投放新广告哦~</text>
+				<view class="categoryFilter">
+					<view class="view dis f-c " v-for="(item,index) in categoryFilter" :key="index">
+						<text class="title">{{item.title}}</text>
+						<view class="dis f-wrap a-c">
+							<view class="status-options dis a-c j-c" :class="{ 'active': isActive(item, Filteritem) }"
+								v-for="(Filteritem,Filterindex) in item.options" :key="Filterindex"
+								@click="optionsClick(item, Filteritem)">
+								<text>{{Filteritem.label}}</text>
+							</view>
+						</view>
+					</view>
+					<view class="view dis f-c ">
+						<text class="title">投放页面</text>
+						<view class="dis f-wrap a-c">
+							<view class="status-options dis a-c j-c"
+								:class="{'active':selectedOptions.positionId==item.id}"
+								v-for="(item,index) in adSlotList" :key="index" @click="adSlotOptions(item)">
+								<text>{{item.positionName}}</text>
+							</view>
+						</view>
+					</view>
+					<view class="view dis f-c ">
+						<text class="title">广告日期</text>
+						<view class="time-select dis a-c j-s" @click="timeChange">
+							<text class="">{{startTime && endTime ? startTime+" - "+endTime:'请选择' }}</text>
+							<u-icon name="arrow-right" color="#979797" size="28"></u-icon>
+						</view>
+					</view>
 				</view>
 			</view>
-			<view class="popup-footer dis a-c j-s">
-				<view class="dis a-c j-c" @click="delShow=false">
-					取消
+			<view class="categoryFilter-footer dis a-c j-s">
+				<view class="dis a-c j-c" @click="categoryFilterShow=false">
+					重置
 				</view>
-				<view class="dis a-c j-c" @click="markAsInvalid">
-					确定
+				<view class="dis a-c j-c" @click="queryType">
+					查询
 				</view>
 			</view>
 		</u-popup>
+		<my-date-picker ref="datePicker" @confirmPickDate="confirmPickDate" />
+		<AdServicePopup v-if="ifPlatform" @contact="onContactPlatform"/>
 	</view>
 </template>
-
 <script>
+	import myDatePicker from '@/components/date-picker.vue';
+	import uniNavBar from '@/components/uni-NavBar/uni-NavBar.vue'
+	import AdServicePopup from './popup_platform.vue'
+
+	import {
+		USER_INFO
+	} from '@/common/util/constants.js'
 	export default {
+		components: {
+			myDatePicker,
+			uniNavBar,AdServicePopup
+		},
 		data() {
 			return {
-				rejectReasonShow: false, //驳回弹窗
-				delShow: false, //作废弹窗
-				timeSegmentStart: "", //生效开始时间
-				timeSegmentEnd: "", //生效结束时间
-				imagelist: [], //图片回显列表
-				colorList: [{
-						id: 0,
-						color: "rgba(230, 141, 0, 1)",
-						backcolor: "rgba(230, 141, 0, 0.1)",
-						backcolor1: "rgba(230, 141, 0, 0.2)",
-					},
-					{
-						id: 1,
-						color: "rgba(255, 19, 19, 1)",
-						backcolor: "rgba(255, 19, 19, 0.1)",
-						backcolor1: "rgba(255, 19, 19, 0.2)",
-					},
-					{
-						id: 2,
-						color: "rgba(100, 166, 255, 1)",
-						backcolor: "rgba(100, 166, 255, 0.1)",
-						backcolor1: "rgba(100, 166, 255, 0.2)",
+				categoryFilterShow: false, //分类筛选
+				createAdShow: false, //创建广告弹窗
+				selectedOptions: {
+					type: null,
+					status: null,
+					positionId: null,
+					name: "",
+					startDate: "",
+					endDate: "",
+				},
+				startTime: "",
+				endTime: "",
+				adbgImage: [{
+						name: "全屏广告",
+						value: "0",
+						content: "沉浸式覆盖",
+						image: require("../../static/ad/adtype1.png")
 					},
 					{
-						id: 3,
-						color: "rgba(119, 119, 120, 1)",
-						backcolor: "rgba(119, 119, 120, 0.1)",
-						backcolor1: "rgba(119, 119, 120, 0.2)",
+						name: "轮播广告",
+						value: "2",
+						content: "多内容循环展示",
+						image: require("../../static/ad/adtype2.png")
 					},
 					{
-						id: 4,
-						color: "rgba(100, 166, 255, 1)",
-						backcolor: "rgba(100, 166, 255, 0.1)",
-						backcolor1: "rgba(100, 166, 255, 0.2)",
+						name: "页面嵌入广告",
+						value: "3",
+						content: "自然融入页面",
+						image: require("../../static/ad/adtype3.png")
 					},
 					{
-						id: 5,
-						color: "rgba(0, 129, 171, 1)",
-						backcolor: "rgba(0, 129, 171, 0.1)",
-						backcolor1: "rgba(0, 129, 171, 0.2)",
-					},
-					{
-						id: 6,
-						color: "rgba(175, 96, 255, 1)",
-						backcolor: "rgba(175, 96, 255, 0.1)",
-						backcolor1: "rgba(175, 96, 255, 0.2)",
+						name: "弹窗广告",
+						value: "1",
+						content: "强提醒触达",
+						image: require("../../static/ad/adtype4.png")
 					}
 				],
-				detailsInfo: {}, //详情数据
-				weekList: [], //周
-				monthList: [], //月
-				selectedDays: [], //周期策略选中日期
-				adPricingModelList: [], //计费模式列表
-				adSlotPriceList: [], //广告位价格列表
-				headerTitle: "",
+				categoryFilter: [{
+					title: "广告类型",
+					filed: "type",
+					options: [{
+							id: 0,
+							label: "全部",
+							value: "",
+						},
+						{
+							id: 1,
+							label: "全屏广告",
+							value: "0",
+						},
+						{
+							id: 2,
+							label: "弹窗广告",
+							value: "1",
+						},
+						{
+							id: 3,
+							label: "轮播广告",
+							value: "2",
+						},
+						{
+							id: 4,
+							label: "嵌入商品列表广告",
+							value: "3",
+						},
+					]
+
+				}, {
+					title: "状态",
+					filed: "status",
+					options: [{
+							id: 0,
+							label: "全部",
+							value: " ",
+						},
+						// {
+						// 	id: 1,
+						// 	label: "待审核",
+						// 	value: "0",
+						// },
+						// {
+						// 	id: 2,
+						// 	label: "审核通过",
+						// 	value: "1",
+						// },
+						// {
+						// 	id: 3,
+						// 	label: "审核驳回",
+						// 	value: "2",
+						// },
+						{
+							id: 4,
+							label: "未开始",
+							value: "3",
+						},
+						{
+							id: 5,
+							label: "已生效",
+							value: "4"
+						},
+						{
+							id: 6,
+							label: "已作废",
+							value: "5",
+						},
+						{
+							id: 7,
+							label: "已结束",
+							value: "6",
+						},
+					]
+
+				}, ],
+				dataList: [], //广告列表
+				userInfo: {},
+				adSlotList: [], //广告位列表
+				ifPlatform:false
 			}
 		},
 		onShow() {
-
+			this.pageLlist(); //列表接口
+			this.queryAdSlot(); //查询广告位
 		},
-		computed: {
+		onLoad() {
+			this.userInfo = uni.getStorageSync(USER_INFO);
+		},
+		methods: {
+			onContactPlatform(){
+				this.ifPlatform = false
+			},
+			adSlotOptions(item) {
+				this.selectedOptions.positionId = item.id;
+			},
+			queryAdSlot() {
+				this.$http.get('/adPosition/queryPageList').then(res => {
+					if (res.data.code == 200) {
+						if (res.data.code == 200) {
+							res.data.result.records.unshift({
+								id: "",
+								positionName: "全部"
+							})
+							this.adSlotList = res.data.result.records
+						}
+					}
+				})
+			},
+			queryType() {
+				this.pageLlist();
+				this.categoryFilterShow = false
 
-			//区分月和周
-			cycleStrategylist() {
-				return this.detailsInfo.validPeriodType == '1' ? this.weekList : this.monthList;
 			},
-			//广告类型
-			adTypeMap() {
+			adTypeMap(ele) {
 				const map = {
 					0: '全屏广告',
 					1: '弹窗广告',
 					2: '轮播广告',
 					3: '页面嵌入广告',
 				}
-				return map[this.detailsInfo.type] || ''
+				return map[ele] || ''
 			},
-			//状态
-			statusTypeMap() {
+			statusTypeMap(ele) {
 				const map = {
-					0: '待审核',
-					1: '审核驳回',
-					2: '审核通过',
 					3: '未开始',
 					4: '已生效',
 					5: '已作废',
 					6: '已结束',
 				}
-				return map[this.detailsInfo.status] || ''
-			}
-		},
-		async onLoad(options) {
-			this.generateWeek();
-			this.generatemonth();
-			this.detailsInfo = JSON.parse(options.info);
-			this.colorList.map(val => {
-				if (val.id == this.detailsInfo.status) {
-					this.detailsInfo.styleCOlor = val;
-				}
-				return val;
-			})
-			await this.getadBillingModel();
-			this.imagelist = this.detailsInfo.taskImage.split(',');
-			this.selectedDays = this.detailsInfo.validPeriodValue.split(',');
-			let list = this.detailsInfo.validTimeRangeValue.split(',');
-			this.timeSegmentStart = list[0];
-			this.timeSegmentEnd = list[1];
-			const map = {
-				'0': '全屏广告',
-				'1': '弹窗广告',
-				'2': '轮播广告',
-				'3': '页面嵌入广告',
-			}
-			this.headerTitle = map[this.detailsInfo.type] || ''
-		},
-		methods: {
-			adEdit() {
-				uni.navigateTo({
-					url: '/pages/adManagement/createFullscreenAd?id=' + this.detailsInfo.id,
-				})
+				return map[ele] || ''
 			},
-			//作废操作
-			markAsInvalid() {
-				this.$http.delete('advert/localAdvertTask/cancelDispatch?id=' + this.detailsInfo.id).then(res => {
-					if (res.data.code == 200) {
-						uni.navigateBack({
-							delta: 1
-						});
-					}
-				})
+			statusColorMap(ele) {
+				const map = {
+					0: '#E68D00',
+					1: '#F00000',
+					2: '#006DFF',
+					3: '#777777',
+					4: '#006DFF',
+					5: '#0081AB',
+					6: '#AF60FF',
+				}
+				return map[ele] || ''
 			},
-			//获取计费模式
-			getadBillingModel() {
-				this.$http.get('/adPricingPrice/queryPageList', {
-					params: {
-						adPositionId: this.detailsInfo.positionId,
-						city: this.detailsInfo.cityCode,
+			pageLlist() {
+				this.$http.post('advert/localAdvertTask/pageList', {
 						pageNo: 1,
-						pageSize: 1000,
-					}
+						pageSize: 10,
+						adType: "1",
+						merchantId: this.userInfo.merchantId,
+						merchantName: this.userInfo.merchantName,
+						...this.selectedOptions,
 				}).then(res => {
-					if (res.data.result.records.length > 0) {
-						this.adSlotPriceList = res.data.result.records[0]?.adPositionPriceRelList;
-						this.$http.get('/adPricingModel/queryPageList', {
-							params: {
-								pageNo: 1,
-								pageSize: 1000,
-								isDelete: 0,
-							}
-						}).then(res => {
-							const pricingUnitMap = {
-								"1": "元/点击",
-								"2": "元/天",
-								"3": "元/笔销售",
-								"4": "元/千次曝光",
-							}
-							this.adPricingModelList = res.data.result.records.map(val => {
-								return {
-									adPricingModelId: val.id,
-									pricingName: val.pricingName,
-									pricingUnit: pricingUnitMap[val.pricingUnit],
-									checked: false,
-									amount: "",
-								}
-							})
-							const result = this.adPricingModelList.map(model => {
-								const matchedPrice = this.adSlotPriceList.find(price => price
-									.adPricingModelId === model.adPricingModelId);
-								return {
-									...model,
-									amount: matchedPrice ? matchedPrice.amount : model.amount,
-									checked: false,
-									id: matchedPrice?.id,
-								};
-							}).filter(val => val.amount).filter(val => val.id == this.detailsInfo
-								.relId)
-							this.adPricingModelList = result;
-							console.log(this.adPricingModelList);
-						})
-					} else {
-						uni.showToast({
-							icon: "none",
-							title: "该区域暂无计费模式相关配置"
-						})
+					if (res.data.code == '200') {
+						this.dataList = res.data.result.records
 					}
-
 				})
 			},
-			//周列表
-			generateWeek() {
-				const weekList = ['周一', '周二', '周三', '周四', '周五', '周六', '周日'].map((val, index) => {
-					return {
-						label: val,
-						value: (index + 1).toString()
-					}
+			godetails(item) {
+				uni.navigateTo({
+					url: '/pages/adManagement/fullscreenAdDetails?id=' + item.id
 				})
-				this.weekList = weekList;
 			},
-			// 月列表
-			generatemonth() {
-				const monthList = Array.from({
-					length: 31
-				}, (_, index) => {
-					const value = (index + 1).toString();
-					return {
-						label: value,
-						value
-					};
-				});
-				this.monthList = monthList;
+			//回车搜索事件
+			search(val) {
+				this.pageLlist();
+			},
+			//搜索按钮事件
+			custom(val) {
+				this.pageLlist();
+			},
+			clear(val) {
+				this.pageLlist();
+			},
+			optionsClick(item, Filteritem) {
+				if (item.filed) {
+					this.selectedOptions[item.filed] = Filteritem.value;
+				}
+			},
+			isActive(item, Filteritem) {
+				return this.selectedOptions[item.filed] === Filteritem.value;
+			},
+			timeChange() {
+				this.$refs.datePicker.open()
+			},
+			confirmPickDate(dateStr, dateStr1) {
+				if (dateStr) {
+					dateStr += ' 00:00:00'
+				}
+				if (dateStr1) {
+					dateStr1 += ' 23:59:59'
+				}
+				this.selectedOptions.startTime = dateStr;
+				this.selectedOptions.endTime = dateStr1;
 			},
+			adTypeSelect(value) {
+				uni.navigateTo({
+					url: '/pages/adManagement/createFullscreenAd?adType=' + value
+				})
+				this.createAdShow = false
+			}
 		}
 	}
 </script>
 
 <style lang="scss" scoped>
-	::v-deep {
-		.u-sticky {
-			background-color: #fff;
-		}
-	}
-
 	.page {
 		background-color: #F7F8FC;
-
-	}
-
-	.body {
-		padding: 0 24rpx 154rpx;
-		box-sizing: border-box;
+		height: 100vh;
 	}
 
-	.status-message {
-		z-index: 9999;
-		padding: 13rpx 24rpx;
+	.search {
+		background-color: #fff;
+		padding: 14rpx 24rpx;
 		box-sizing: border-box;
+		border-bottom: 1rpx solid #eee;
 
-		text {
-			font-size: 26rpx;
-			color: #333;
+		image {
+			width: 36rpx;
+			height: 36rpx;
 		}
 
-		.status {
-			border-radius: 10rpx;
-			margin-left: 27rpx;
-			padding: 10rpx 20rpx;
-			box-sizing: border-box;
-			font-size: 26rpx;
-			font-weight: bold;
-			line-height: 1;
-		}
-
-		.error {
-			margin-left: auto;
-			color: #F00000;
+		::v-deep {
+			.u-close-wrap {
+				margin-right: 70rpx;
+			}
 		}
 	}
 
-	.module {
-		padding: 30rpx 20rpx;
+	.dataView {
+		background: #FFFFFF;
+		margin-bottom: 20rpx;
+		padding: 30rpx 24rpx;
 		box-sizing: border-box;
-		margin-top: 20rpx;
-		background-color: #fff;
-		border-radius: 10rpx;
+		height: 100%;
 
-		.module-title {
-			font-size: 34rpx;
-			color: #333;
-			font-weight: bold;
-		}
+		.dataView-left {
+			height: 100%;
+			flex: 1;
 
-		.views {
-			margin-top: 30rpx;
+			.content {
+				height: 100%;
 
-			text:first-child {
-				font-size: 26rpx;
-				color: #666;
+				.title {
+					font-size: 30rpx;
+					font-weight: bold;
+					color: #000;
+					margin-bottom: 10rpx;
+				}
+
+				.tag {
+					margin-bottom: 10rpx;
+
+					text {
+						font-size: 24rpx;
+						color: #777;
+						border-right: 1rpx solid #777;
+						padding-right: 10rpx;
+						margin-right: 10rpx;
+					}
+
+					text:last-child {
+						border: none;
+					}
+
+				}
+
+				.time-tag {
+					background-color: #3C96FF;
+					padding: 3rpx 6rpx;
+					box-sizing: border-box;
+					color: #fff;
+					border-radius: 4rpx;
+					font-size: 20rpx;
+				}
+
+				.time-text {
+					font-size: 22rpx;
+					color: #8F96AC;
+				}
 			}
 
-			text:last-child {
-				font-size: 26rpx;
-				color: #333;
+			>image {
+				width: 160rpx;
+				height: 160rpx;
+				margin-right: 25rpx;
+				border-radius: 10rpx;
 			}
 		}
 
-		.address {
-			margin-top: 30rpx;
-			font-size: 26rpx;
-			color: #666;
-		}
+		.dataView-right {
+			font-size: 24rpx;
 
-		.admaterial {
-			border-radius: 10rpx;
 		}
 	}
 
-	.footer-view {
-		z-index: 99;
+	.footer {
+		box-sizing: border-box;
+		padding: 17rpx 24rpx;
 		position: fixed;
 		bottom: 0;
 		left: 0;
 		right: 0;
 		background-color: #fff;
-		padding: 17rpx 24rpx;
-		box-sizing: border-box;
-		box-shadow: 0rpx 0rpx 12rpx 1rpx rgba(225, 225, 225, 0.3);
 
-		>view {
-			width: 50%;
-			padding: 26rpx;
+		.btn {
 			box-sizing: border-box;
-			border-radius: 100rpx;
+			padding: 26rpx;
+			border-radius: 40rpx;
+			background-color: #4B9DFF;
 			font-size: 30rpx;
-		}
-
-		:first-child {
-			background: #fff;
-			color: #888;
-			border: 1px solid #E5E5E5;
-			margin-right: 20rpx;
-		}
-
-		:last-child {
-			background: #4B9DFF;
 			color: #fff;
 		}
 	}
 
-	.extendArea {
-		padding: 20rpx 20rpx;
-		box-sizing: border-box;
-		background: #F6F8FC;
-		border-radius: 10rpx;
-	}
-
-	.cycleStrategy {
-		min-width: 100rpx;
-		background: #FFFFFF;
-		border-radius: 10rpx;
-		border: 1px solid #E5E5E5;
-		font-size: 26rpx;
-		color: #333;
-		padding: 10rpx 32rpx;
-		box-sizing: border-box;
-		margin-left: 20rpx;
-		margin-bottom: 20rpx;
-
-		text {
-			line-height: 1;
-		}
-	}
-
-	.tcycleStrategy-active {
-		background: #E0EDFF;
-		color: #006DFF;
-		border: 1rpx solid #E0EDFF;
-	}
-
 	.popup {
 		padding: 0 20rpx;
 		box-sizing: border-box;
@@ -530,23 +488,75 @@
 			font-weight: bold;
 			border-bottom: 1rpx solid #eee;
 		}
+	}
 
-		.content {
-			min-height: 350rpx;
-			font-size: 26rpx;
-			color: #888;
-			padding: 50rpx;
-			box-sizing: border-box;
+	.createAd-content {
+		padding: 30rpx 0;
+		box-sizing: border-box;
+
+		.adimage {
+			width: 260rpx;
+			height: 143rpx;
+			border-radius: 10rpx;
+			background-size: 100% 100%;
+			margin-bottom: 20rpx;
+			padding: 0 20rpx;
+
+			text:first-child {
+				font-size: 26rpx;
+				color: #333;
+			}
+
+			text:last-child {
+				font-size: 22rpx;
+				color: #888;
+			}
+		}
+	}
+
+	.categoryFilter {
+		padding: 30rpx 0;
+		box-sizing: border-box;
+
+		.view {
+			margin-bottom: 20rpx;
 
 			.title {
-				font-size: 32rpx;
+				font-size: 26rpx;
+				color: #666;
+				margin-bottom: 32rpx;
+			}
+
+			.status-options {
+				min-width: 165rpx;
+				background: #F7F8FC;
+				border-radius: 5rpx;
+				margin-bottom: 14rpx;
+				margin-right: 16rpx;
+				padding: 26rpx 28rpx;
+				box-sizing: border-box;
+				font-size: 28rpx;
 				color: #333;
-				font-weight: bold;
+				border: 1px solid transparent;
+			}
+
+			.active {
+				background: #ECF5FF;
+				border: 1px solid #3F99FF;
+				color: #1476EA;
+			}
+
+			.time-select {
+				height: 88rpx;
+				background: #F7F8FC;
+				border-radius: 5rpx;
+				padding: 30rpx 24rpx;
+				box-sizing: border-box;
 			}
 		}
 	}
 
-	.popup-footer {
+	.categoryFilter-footer {
 		position: absolute;
 		bottom: 0;
 		width: 100%;
@@ -557,9 +567,9 @@
 		font-size: 30rpx;
 
 		view:first-child {
-			width: 50%;
+			width: 30%;
 			background: #FFFFFF;
-			padding: 20rpx;
+			padding: 27rpx;
 			box-sizing: border-box;
 			border-radius: 100px;
 			border: 1px solid #E5E5E5;
@@ -567,13 +577,13 @@
 		}
 
 		view:last-child {
-			width: 50%;
+			width: 70%;
 			background: #4B9DFF;
 			color: #fff;
-			padding: 20rpx;
+			padding: 27rpx;
 			box-sizing: border-box;
 			border-radius: 100px;
 			margin-left: 24rpx;
 		}
 	}
-</style>
+</style>

+ 98 - 0
pages/adManagement/popup_platform.vue

@@ -0,0 +1,98 @@
+<template>
+  <!-- 遮罩:点击自己关闭,点击子元素不关闭 -->
+  <view class="popup-mask" @click="closePopup">
+    <view class="popup-box">
+      <!-- 标题 -->
+      <view class="popup-title">提示</view>
+      <!-- 内容 -->
+      <view class="popup-content">
+        平台可提供代建广告服务,内容更优质
+      </view>
+      <!-- 按钮 -->
+      <button class="popup-btn" @click="handleContact">
+        联系平台
+      </button>
+    </view>
+  </view>
+</template>
+
+<script>
+export default {
+  name: "AdServicePopup",
+  props: {
+    visible: {
+      type: Boolean,
+      default: false,
+    },
+  },
+  methods: {
+    // 联系平台
+    handleContact() {
+      // uni.showToast({
+      //   title: "正在联系平台",
+      //   icon: "none",
+      // });
+      this.$emit("contact");
+    },
+    // 关闭弹窗
+    closePopup() {
+      this.$emit("update:visible", false);
+    },
+  },
+};
+</script>
+
+<style scoped>
+/* 遮罩 */
+.popup-mask {
+  position: fixed;
+  top: 0;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  background: rgba(0, 0, 0, 0.7);
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  z-index: 999;
+}
+
+/* 弹窗内容盒子 */
+.popup-box {
+  width: 80%;
+  height:408rpx;
+	
+  background: #fff;
+  border-radius: 16rpx;
+  padding: 48rpx 32rpx;
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+	justify-content: space-between;
+}
+
+.popup-title {
+  font-size: 36rpx;
+  font-weight: bold;
+  color: #333;
+  /* margin-bottom: 86rpx; */
+}
+
+.popup-content {
+  font-size: 32rpx;
+  color: #333;
+  text-align: center;
+  /* margin-bottom: 97rpx; */
+}
+
+.popup-btn {
+  width: 100%;
+  height: 68rpx;
+  line-height: 68rpx;
+  background: #409eff;
+  color: #fff;
+  border-radius: 44rpx;
+  font-size: 32rpx;
+  border: none;
+}
+</style>

+ 346 - 203
pages/index/index.vue

@@ -1,49 +1,78 @@
 <template>
 	<view class="index">
-		<view class="top"></view>
 		<view class="head">
-			<view class="header" @click="shopDetails">
-				<image src="/static/index/address.png" mode=""></image>
-				{{name}}
-				<image src="/static/index/down.png" mode=""></image>
-			</view>
-
-		</view>
-		<view class="data_box">
-			<view class="title" @click="scanRecordaa">
-				今日概况
-				<image src="/static/index/today.png" mode=""></image>
-			</view>
-			<view class="data">
-				<view class="item">
-					<span>{{numberOrders}}</span>订单
-				</view>
-				<view class="item">
-					<span>{{income}}</span>收益
-				</view>
-				<view class="item" @click="goUser">
-					<span>{{newCustomer || 0}}</span>新客
-				</view>
-			</view>
+		  <!-- 顶部状态栏占位 -->
+		  <view class="top"></view>
+		  <!-- 头部内容 -->
+		  <view class="header" @click="shopDetails">
+		    <view class="logo">
+		      <image :src="logo?logo:'/static/index/address.png'" mode=""></image>
+		    </view>
+		    {{ name }}
+		    <image src="/static/index/down.png" mode=""></image>
+		  </view>
+		  <view class="data_box">
+		    <view class="title" @click="scanRecordaa">
+		      今日概况
+		    </view>
+		    <view class="data">
+		      <view class="item">
+		        <span>{{ numberOrders }}</span>订单数
+		      </view>
+		      <view class="item">
+		        <span>{{ income }}</span>收益(元)
+		      </view>
+		      <view class="item" @click="goUser">
+		        <span>{{ newCustomer || 0 }}</span>新客
+		      </view>
+		    </view>
+		  </view>
+		  <!-- 背景图 改为绝对定位 + 父级相对定位 -->
+		  <view class="head-back">
+		    <image src="/static/index/top-back.png" mode="widthFix"></image>
+		  </view>
 		</view>
+
 		<view class="service">
 			<view class="main">
-				<view class="scan" @click="scan">
-					<image src="/static/index/scan.png" mode=""></image>核销
-				</view>
-				<view class="scan" @click="scanRecord">
-					<image src="/static/index/record.png" mode=""></image>核销记录
+				<view class="left">
+					<view class="scan blue" @click="scanRecord">
+						<view class="">
+							<span>核销记录</span><br />
+							查看历史核销记录<u-icon name="arrow-right" ></u-icon>
+						</view>
+						<view class="back">
+							<image src="/static/index/recores-back.png" mode=""></image>
+						</view>
+						<image src="/static/index/scan.png" mode=""></image>
+					</view>
+					<view class="scan green" >
+						<view class="">
+							<span>售卖订单</span><br />
+							查看历史核销记录<u-icon name="arrow-right" ></u-icon>
+						</view>
+						<view class="back">
+							<image src="/static/index/order-back.png" mode=""></image>
+						</view>
+						<image src="/static/index/order.png" mode=""></image>
+					</view>
 				</view>
-				<view class="scan">
-					<image src="/static/index/order.png" mode=""></image>售卖订单
+				<view class="right" @click="scan">
+					<span>核销记录</span><br />
+					扫一扫快速核销<u-icon name="arrow-right" style="margin-left: 10rpx;"></u-icon>
+					<view class="back">
+						<image src="/static/index/scan-back.png" mode=""></image>
+					</view>
+					<image src="/static/index/records.png" mode=""></image>
 				</view>
 			</view>
 			<view class="other">
-				<indexNav/>
+				<indexNav />
 			</view>
 		</view>
 		<!-- 完善信息弹窗,storeStatus == 3 (店铺已经审核通过 ) -->
-		<checkPopup :status="storeStatus" :describe="describe" :referenceId="referenceId" @cutPopup="isPopup = false " v-if="isPopup" />
+		<checkPopup :status="storeStatus" :describe="describe" :referenceId="referenceId" @cutPopup="isPopup = false"
+			v-if="isPopup" />
 		<!-- <view class="message">
 			<view class="title">
 				实时消息
@@ -75,60 +104,61 @@
 </template>
 
 <script>
-	import indexNav from '@/components/index_nav.vue';
-	import checkPopup from '@/components/check-popup.vue'
+	import indexNav from "@/components/index_nav.vue";
+	import checkPopup from "@/components/check-popup.vue";
 	export default {
 		components: {
 			indexNav,
-			checkPopup
+			checkPopup,
 		},
 		data() {
 			return {
-				numberOrders: '', //订单
-				newCustomer: '', //新客
-				income: '', //收益
-				name: '',
+				numberOrders: "", //订单
+				newCustomer: "", //新客
+				income: "", //收益
+				name: "",
 				num: 222,
 				msg: [],
-				merchantId: '',
+				merchantId: "",
 				storeStatus: 0, //商户店铺设置状态
-				userId: '', //用户id
-				describe: '', //描述
-				isPopup: false ,//弹窗是否出现
-				referenceId:''//邀请码
-			}
+				userId: "", //用户id
+				describe: "", //描述
+				isPopup: false, //弹窗是否出现
+				referenceId: "", //邀请码
+				logo: ''
+			};
 		},
 		onLoad: function() {
-			this.PageCur = 'home'
-				++this.commponent1Key
-				++this.commponent2Key
+			this.PageCur = "home";
+			++this.commponent1Key;
+			++this.commponent2Key;
 		},
 		methods: {
 			NavChange: function(e) {
-				this.PageCur = e.currentTarget.dataset.cur
+				this.PageCur = e.currentTarget.dataset.cur;
 			},
 			//新客
 			goUser() {
 				uni.navigateTo({
-					url: '/pages/index/userControl'
-				})
+					url: "/pages/index/userControl",
+				});
 			},
 			//扫码核销
 			scan() {
 				uni.navigateTo({
-					url: '/pages/scan/manual'
-				})
+					url: "/pages/scan/manual",
+				});
 			},
 			//跳转至门店详情页
 			shopDetails() {
 				uni.navigateTo({
-					url: '/pages/index/shop'
-				})
+					url: "/pages/index/shop",
+				});
 			},
 			scanRecord() {
 				uni.navigateTo({
-					url: '/pages/scan/record'
-				})
+					url: "/pages/scan/record",
+				});
 			},
 			scanRecordaa() {
 				// uni.navigateTo({
@@ -136,189 +166,305 @@
 				// })
 			},
 			gettodayData() {
-				this.$http.get("/merchant/app/home/todayData?merchantId=" + this.merchantId, {}).then(res => {
-					if (res.data.code == 200) {
-						this.income = res.data.result.income
-						// this.newCustomer = res.data.result.newCustomer
-						this.numberOrders = res.data.result.numberOrders
-					}
-				})
+				this.$http
+					.get("/merchant/app/home/todayData?merchantId=" + this.merchantId, {})
+					.then((res) => {
+						if (res.data.code == 200) {
+							this.income = res.data.result.income;
+							// this.newCustomer = res.data.result.newCustomer
+							this.numberOrders = res.data.result.numberOrders;
+						}
+					});
 			},
 			getMessage() {
-				this.$http.get("/merchant/app/home/realMessage?merchantId=" + this.merchantId, {}).then(res => {
-					if (res.data.code == 200) {
-						this.msg = res.data.result.records
-						// 	this.income = res.data.result.income
-						// 	this.newCustomer = res.data.result.newCustomer
-						// 	this.numberOrders = res.data.result.numberOrders
-					}
-				})
+				this.$http
+					.get("/merchant/app/home/realMessage?merchantId=" + this.merchantId, {})
+					.then((res) => {
+						if (res.data.code == 200) {
+							this.msg = res.data.result.records;
+							// 	this.income = res.data.result.income
+							// 	this.newCustomer = res.data.result.newCustomer
+							// 	this.numberOrders = res.data.result.numberOrders
+						}
+					});
 			},
 			getNum() {
-				let data = {}
-				this.$http.post('/newCustomer/count', data).then(res => {
-					this.newCustomer = res.data.result.newCustomerCount
-				})
+				let data = {};
+				this.$http.post("/newCustomer/count", data).then((res) => {
+					this.newCustomer = res.data.result.newCustomerCount;
+				});
 			},
 			//获取商户是否完善店铺信息
 			getStroeStatus() {
-				this.$http.get("/merchant/app/checkMerchantInfo?userId=" + this.userId).then(res => {
-					if (res.data.code == 200) {
-						//message == 3(审核已通过)
-						if (res.data.result != 3)  {
-							this.storeStatus = res.data.result
-							this.describe = res.data.message
-							// this.referenceId = res.data.result.referenceId
-							res.data.result == 3 ? this.isPopup = false : this.isPopup = true
-							uni.hideTabBar()
+				this.$http
+					.get("/merchant/app/checkMerchantInfo?userId=" + this.userId)
+					.then((res) => {
+						if (res.data.code == 200) {
+							//message == 3(审核已通过)
+							if (res.data.result != 3) {
+								this.storeStatus = res.data.result;
+								this.describe = res.data.message;
+								// this.referenceId = res.data.result.referenceId
+								res.data.result == 3 ?
+									(this.isPopup = false) :
+									(this.isPopup = true);
+								uni.hideTabBar();
+							}
 						}
-					}
-				})
+					});
 			},
 		},
 		mounted() {
-			// let info = 
-			let that = this
+			// let info =
+			let that = this;
 		},
 		onShow() {
-			let that = this
+			let that = this;
 			uni.getStorage({
-				key: 'login_user_info',
+				key: "login_user_info",
 				success: function(res) {
-					console.log(res)
-					that.name = res.data.merchantName
-					that.merchantId = res.data.merchantId
-					that.userId = res.data.id
-					that.gettodayData()
-					that.getMessage()
-					that.getNum()
-					that.getStroeStatus()
-				}
+					console.log(res);
+					that.name = res.data.merchantName;
+					that.merchantId = res.data.merchantId;
+					that.userId = res.data.id;
+					that.logo = res.data.merchantHeadPhoto;
+					that.gettodayData();
+					that.getMessage();
+					that.getNum();
+					that.getStroeStatus();
+
+				},
 			});
-		}
-	}
+		},
+	};
 </script>
 
 <style scoped lang="scss">
 	.index {
 		width: 100vw;
-		height: 94vh;
-		background: #F7F8FC;
+		// height: 94vh;
+		// background: #F2F3F5;
 
 		.head {
-			width: 100%;
-			height: 272rpx;
-			background: linear-gradient(90deg, #E6FFFF 0%, #CEF7FF 40%, #A3CEFE 73%, #BCD6FF 100%), linear-gradient(360deg, #F7F8FC 0%, rgba(247, 248, 252, 0) 100%);
-			padding: 20rpx;
-
-			.header {
-				width: 100%;
-				height: 112rpx;
-				display: flex;
-				align-items: center;
-				padding: 0px 24rpx;
-				font-size: 32rpx;
-				font-weight: 600;
-
-				image {
-					width: 48rpx;
-					height: 48rpx;
-					margin-right: 10rpx;
-				}
-
-				image:nth-child(2) {
-					width: 24rpx;
-					height: 24rpx;
-					margin-left: 10rpx;
-				}
-			}
+		  width: 100%;
+		  height: auto; 
+		  position: relative; 
+		  overflow: hidden;
+		  
+		  .top {
+		    width: 100%;
+		    height: var(--status-bar-height);
+		    background-color: transparent;
+		  }
+		  
+		  .head-back {
+		    position: absolute;
+		    top: 0;
+		    left: 0;
+		    width: 100%;
+		    height: 100%;
+		    z-index: 1;
+		    
+		    image {
+		      width: 100%;
+		      height: 100%;
+		      // object-fit: cover; 
+		    }
+		  }
+		
+		  .header {
+		    width: 100%;
+		    height: 56rpx;
+		    display: flex;
+		    align-items: center;
+		    padding: 0px 32rpx;
+		    font-size: 32rpx;
+		    font-weight: 600;
+		    position: relative;
+		    z-index: 10;
+		    margin-top: 44rpx;
+		
+		    .logo {
+		      width: 56rpx;
+		      height: 56rpx;
+		      border-radius: 50%;
+		      overflow: hidden;
+		      margin-right: 10rpx;
+		
+		      image {
+		        width: 56rpx;
+		        height: 56rpx;
+		        margin: 0;
+		      }
+		    }
+		
+		    image {
+		      width: 25rpx;
+		      height: 25rpx;
+		      margin-left: 10rpx;
+		    }
+		  }
+		
+		  .data_box {
+		    width: 686rpx;
+		    height: 180rpx;
+		    margin: 36rpx auto;
+		    background: #ffffff;
+		    box-shadow: 0px 2rpx 8rpx 0px rgba(214, 225, 237, 0.1);
+		    border-radius: 16rpx;
+		    position: relative;
+		    z-index: 19;
+		    margin-bottom: 42rpx;
+		
+		    .title {
+		      display: flex;
+		      align-items: center;
+		      width: 100%;
+		      height: 53rpx;
+		      font-size: 26rpx;
+		      color: #86909C;
+		      padding: 18rpx;
+		
+		      image {
+		        width: 40rpx;
+		        height: 40rpx;
+		        margin-left: 10rpx;
+		      }
+		    }
+		
+		    .data {
+		      display: flex;
+		      justify-content: space-around;
+		      align-items: center;
+		      padding: 20rpx 0px;
+		
+		      .item {
+		        display: flex;
+		        flex-direction: column;
+		        justify-content: space-around;
+		        align-items: center;
+		        font-size: 24rpx;
+		        line-height: 28rpx;
+		        color: #86909C;
+		
+		        span {
+		          height: 62rpx;
+		          color: #333;
+		          font-size: 48rpx;
+		          font-weight: 600;
+		          line-height: 56rpx;
+		        }
+		      }
+		    }
+		  }
 		}
 
-		/*#ifdef APP-PLUS*/
-		.top {
-			width: 100%;
-			height: var(--status-bar-height);
-			background: linear-gradient(90deg, #E6FFFF 0%, #CEF7FF 40%, #A3CEFE 73%, #BCD6FF 100%), linear-gradient(to bottom, #F7F8FC 0%, rgba(247, 248, 252, 0) 100%);
-		}
 
-		/*#endif*/
 
-		.data_box {
-			width: 676rpx;
-			height: 196rpx;
-			margin: 20rpx auto;
-			margin-top: -141rpx;
-			background: linear-gradient(0, #FFFFFF 0%, #FFF4EA 100%);
+		.service {
+			width: 686rpx;
+			// height: 468rpx;
 			box-shadow: 0px 2rpx 8rpx 0px rgba(214, 225, 237, 0.1);
-			border-radius: 16rpx 16rpx 16rpx 16rpx;
-
-			.title {
-				display: flex;
-				align-items: center;
-				width: 100%;
-				height: 53rpx;
-				font-size: 28rpx;
-				font-weight: 600;
-				border-bottom: 1px solid #eeeeee;
-				padding: 12rpx 16rpx;
-
-				image {
-					width: 40rpx;
-					height: 40rpx;
-					margin-left: 10rpx;
-				}
-			}
+			border-radius: 16rpx;
+			padding: 24rpx 18rpx;
+			margin: 0 auto;
 
-			.data {
+			.main {
+				height: auto;
 				display: flex;
-				justify-content: space-around;
-				align-items: center;
-				padding: 20rpx 0px;
+				justify-content: space-between;
+				margin-bottom: 16rpx;
+				align-items: stretch;
 
-				.item {
+				.left {
+					flex: 1;
+					margin-right: 24rpx;
+					height: 340rpx;
 					display: flex;
 					flex-direction: column;
-					justify-content: space-around;
-					align-items: center;
-					font-size: 24rpx;
-					line-height: 28rpx;
-					color: #999999;
+					justify-content: space-between;
 
-					span {
-						color: #333;
-						font-size: 48rpx;
+					.scan {
+						font-size: 20rpx;
 						font-weight: 600;
-						line-height: 56rpx;
+						width: 100%;
+						height: 160rpx;
+						padding: 12rpx 12rpx 12rpx 28rpx;
+						display: flex;
+						justify-content: space-between;
+						align-items: center;
+						position: relative;
+						z-index: 2;
+
+						.back {
+							width: 100%;
+							height: 100%;
+							position: absolute;
+							bottom: 0;
+							right: 0;
+							z-index: -1;
+
+							image {
+								width: 100%;
+								height: 100%;
+							}
+						}
+
+						span {
+							font-size: 32rpx;
+						}
+
+						image {
+							width: 138rpx;
+							height: 134rpx;
+						}
+					}
+
+					.scan.blue {
+						color: #197FFD;
+						margin-bottom: 22rpx;
+					}
+
+					.scan.green {
+						color: #14C584;
+						background: #E7FFF7;
 					}
 				}
-			}
-		}
 
-		.service {
-			width: 676rpx;
-			// height: 468rpx;
-			background: linear-gradient(180deg, #FFFFFF 0%, #FFFFFF 100%);
-			box-shadow: 0px 2rpx 8rpx 0px rgba(214, 225, 237, 0.1);
-			border-radius: 16rpx;
-			padding: 24rpx 18rpx;
-			margin: 0 auto;
+				.right {
+					width: 272rpx;
+					height: 338rpx;
+					color: #624FE3;
+					font-size: 20rpx;
+					padding: 28rpx;
+					background: #F6F4FF;
+					position: relative;
+					z-index: 2;
 
-			.main {
-				display: flex;
-				justify-content: space-around;
-				margin-bottom: 40rpx;
+					.back {
+						width: 100%;
+						height: 100%;
+						position: absolute;
+						bottom: 0;
+						right: 0;
+						z-index: -1;
 
-				.scan {
-					display: flex;
-					flex-direction: column;
-					font-size: 26rpx;
-					font-weight: 600;
-					align-items: center;
+						image {
+							width: 100%;
+							height: 100%;
+						}
+					}
+
+					span {
+						font-weight: 600;
+						font-size: 32rpx;
+						margin-bottom: 10rpx;
+					}
 
 					image {
-						width: 106rpx;
-						height: 106rpx;
-						margin-bottom: 4rpx;
+						width: 182rpx;
+						height: 214rpx;
+						margin: 8rpx auto 0;
 					}
 				}
 			}
@@ -328,7 +474,7 @@
 			width: 676rpx;
 			padding: 20rpx 16rpx;
 			margin: 20rpx auto 0px;
-			background: linear-gradient(0, #FFFFFF 0%, #E2EFFF 100%);
+			background: linear-gradient(0, #ffffff 0%, #e2efff 100%);
 			border-radius: 16rpx;
 
 			.title {
@@ -344,8 +490,6 @@
 
 				.item {
 					width: 100%;
-					// height: 126rpx;
-					// margin: 20rpx auto;
 					border-bottom: 1px solid #dddddd;
 					margin-bottom: 20rpx;
 
@@ -384,6 +528,5 @@
 				}
 			}
 		}
-
 	}
 </style>

BIN
static/index/ad.png


BIN
static/index/all.png


BIN
static/index/coupon.png


BIN
static/index/down.png


BIN
static/index/evaluate.png


BIN
static/index/indent.png


BIN
static/index/order-back.png


BIN
static/index/order.png


BIN
static/index/product.png


BIN
static/index/record.png


BIN
static/index/records.png


BIN
static/index/recores-back.png


BIN
static/index/refund.png


BIN
static/index/scan-back.png


BIN
static/index/scan.png


BIN
static/index/shop.png


BIN
static/index/top-back.png


BIN
static/index/withdraw.png