|
|
@@ -0,0 +1,675 @@
|
|
|
+<template>
|
|
|
+ <div class='container'>
|
|
|
+ <div class="containerTitle">
|
|
|
+ <div class="titleTop" @click="chooseLevel('photographer')">
|
|
|
+ <div class="name">选择摄影师</div>
|
|
|
+ <div class="sub">{{choosePhotographerLevelInfo.levelName}}</div>
|
|
|
+ <img src="/static/images/gouwuche_icon_zhankai.png" alt="">
|
|
|
+ </div>
|
|
|
+ <div class="tips">点击图片可以查看详情</div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="list">
|
|
|
+ <customizeItem v-for="(item,index) in filifterPhotographer" type='photographer' @chooseSelect='chooseSelect' :id='item.id' :isChoose="checkChoose('photographer',item.id)" :name='item.serviceName' :image='item.listImage' :key='index'></customizeItem>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="containerTitle">
|
|
|
+ <div class="titleTop" @click="chooseLevel('makeup_artist')">
|
|
|
+ <div class="name">选择化妆师</div>
|
|
|
+ <div class="sub">{{chooseMakeUpLevelInfo.levelName}}</div>
|
|
|
+ <img src="/static/images/gouwuche_icon_zhankai.png" alt="">
|
|
|
+ </div>
|
|
|
+ <div class="tips">点击图片可以查看详情</div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="list">
|
|
|
+ <customizeItem v-for="(item,index) in filifterMakeUp" type='makeup_artist' @chooseSelect='chooseSelect' :id='item.id' :isChoose="checkChoose('makeup_artist',item.id)" :name='item.serviceName' :image='item.listImage' :key='index'></customizeItem>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="containerTitle">
|
|
|
+ <div class="titleTop" @click="chooseLevel('clothing')">
|
|
|
+ <div class="name">选择服装道具</div>
|
|
|
+ <div class="sub">{{chooseClothingLevelInfo.levelName}}</div>
|
|
|
+ <img src="/static/images/gouwuche_icon_zhankai.png" alt="">
|
|
|
+ </div>
|
|
|
+ <div class="tips">点击图片可以查看详情,可多选</div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="list">
|
|
|
+ <customizeItem v-for="(item,index) in filifterClothing" type='clothing' @chooseSelect='chooseSelect' :id='item.id' :isChoose="checkChoose('clothing',item.id)" :name='item.serviceName' :image='item.listImage' :key='index'></customizeItem>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="containerTitle">
|
|
|
+ <div class="titleTop" @click="chooseLevel('album')">
|
|
|
+ <div class="name">选择相框</div>
|
|
|
+ <div class="sub">{{chooseAlbumLevelInfo.levelName}}</div>
|
|
|
+ <img src="/static/images/gouwuche_icon_zhankai.png" alt="">
|
|
|
+ </div>
|
|
|
+ <div class="tips">点击图片可以查看详情,可多选</div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="list">
|
|
|
+ <customizeItem v-for="(item,index) in filifterAlbum" @chooseSelect='chooseSelect' :id='item.id' type='album' :isChoose="checkChoose('album',item.id)" :name='item.serviceName' :image='item.listImage' :key='index'></customizeItem>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="tipsContnt">
|
|
|
+ <div class="title">不需要选择的服务</div>
|
|
|
+ <div class="content">
|
|
|
+ <div v-for="(item,index) in mandatory" :key="index">{{item.serviceName}}</div>
|
|
|
+ </div>
|
|
|
+ <div class="line"></div>
|
|
|
+ <div class="title">购买须知</div>
|
|
|
+ <div class="content">1、购买后需联系客服预约档期(需提前15-40天) <br />2、用户若选择定金支付,剩余资金可在拍摄前线上支付,也可以线下门店支付 <br />3、最终用户选择的照片数量超过了套餐中标示的数量,则需要补齐相关差价</div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="subContent">
|
|
|
+ <span>总价:</span>
|
|
|
+ <span class="price">{{total}}</span>
|
|
|
+ <span class="detail" @click="showDetail=true">详情</span>
|
|
|
+ <img src="/static/images/more.png" @click="showDetail=true" alt="">
|
|
|
+ <div style="flex-grow:1"></div>
|
|
|
+ <button @click="submit">立即下单</button>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <actionSheet :list='chooseList' label='levelName' :visible='showAction' @close='close'></actionSheet>
|
|
|
+ <customizeDetail :list='allChooseInfo' :mandatory='mandatory' :visible='showDetail' @close="showDetail=false"></customizeDetail>
|
|
|
+ <specificationsContent :visible='showSpecifications' type='customize' :productInfo='productInfo' @close='showSpecifications=false' :totalMoney='total' :chooseType='chooseSpecificationType' :chooseNum='1' @changeType='changeType' @changeChoose='changeChoose'></specificationsContent>
|
|
|
+
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+<script>
|
|
|
+import { mapState } from 'vuex';
|
|
|
+import customizeItem from '../../components/CustomizeItem';
|
|
|
+import actionSheet from '../../components/ActionSheet';
|
|
|
+import customizeDetail from '../../components/CustomizeDetail';
|
|
|
+import specificationsContent from '../../components/SpecificationsContent';
|
|
|
+import { all } from 'q';
|
|
|
+import calc from '../../calc';
|
|
|
+export default {
|
|
|
+ name: '',
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ storeServiceList: '',
|
|
|
+ allPhotographer: [],
|
|
|
+ allPhotographerLevel: [],
|
|
|
+ choosePhotographerLevel: 0,
|
|
|
+ allMakeupList: [],
|
|
|
+ allMakeupLevel: [],
|
|
|
+ chooseMakeupLevel: 0,
|
|
|
+ showAction: false,
|
|
|
+ chooseList: [],
|
|
|
+ chooseType: '',
|
|
|
+ allClothingList: [],
|
|
|
+ allClothingLevel: [],
|
|
|
+ chooseClothingLevel: '0',
|
|
|
+ allAlbumList: [],
|
|
|
+ allAlbumLevel: [],
|
|
|
+ chooseAlbumLevel: 0,
|
|
|
+ choosePhotographer: 0,
|
|
|
+ chooseMakeup: 0,
|
|
|
+ chooseClothing: [],
|
|
|
+ chooseAlbum: [],
|
|
|
+ mandatory: [],
|
|
|
+ showDetail: false,
|
|
|
+ showSpecifications: false,
|
|
|
+ chooseSpecificationType: 'all',
|
|
|
+ };
|
|
|
+ },
|
|
|
+ computed: {
|
|
|
+ ...mapState(['userInfo', 'storeId']),
|
|
|
+ choosePhotographerLevelInfo() {
|
|
|
+ var info = {};
|
|
|
+ var list = [...this.allPhotographerLevel];
|
|
|
+ list.forEach(item => {
|
|
|
+ if (item.id == this.choosePhotographerLevel) {
|
|
|
+ info = item;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return info;
|
|
|
+ },
|
|
|
+ filifterPhotographer() {
|
|
|
+ var list = [];
|
|
|
+ var allList = [...this.allPhotographer];
|
|
|
+ allList.forEach(item => {
|
|
|
+ if (
|
|
|
+ item.typeLevel == this.choosePhotographerLevel ||
|
|
|
+ this.choosePhotographerLevel == 0
|
|
|
+ ) {
|
|
|
+ list.push(item);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return list;
|
|
|
+ },
|
|
|
+ chooseMakeUpLevelInfo() {
|
|
|
+ var info = {};
|
|
|
+ var list = [...this.allMakeupLevel];
|
|
|
+ list.forEach(item => {
|
|
|
+ if (item.id == this.chooseMakeupLevel) {
|
|
|
+ info = item;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return info;
|
|
|
+ },
|
|
|
+ filifterMakeUp() {
|
|
|
+ var list = [];
|
|
|
+ var allList = [...this.allMakeupList];
|
|
|
+ allList.forEach(item => {
|
|
|
+ if (
|
|
|
+ item.typeLevel == this.chooseMakeupLevel ||
|
|
|
+ this.chooseMakeupLevel == 0
|
|
|
+ ) {
|
|
|
+ list.push(item);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return list;
|
|
|
+ },
|
|
|
+ chooseClothingLevelInfo() {
|
|
|
+ var info = {};
|
|
|
+ var list = [...this.allClothingLevel];
|
|
|
+ list.forEach(item => {
|
|
|
+ if (item.id == this.chooseClothingLevel) {
|
|
|
+ info = item;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return info;
|
|
|
+ },
|
|
|
+ filifterClothing() {
|
|
|
+ var list = [];
|
|
|
+ var allList = [...this.allClothingList];
|
|
|
+ allList.forEach(item => {
|
|
|
+ if (
|
|
|
+ item.typeLevel == this.chooseClothingLevel ||
|
|
|
+ this.chooseClothingLevel == 0
|
|
|
+ ) {
|
|
|
+ list.push(item);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return list;
|
|
|
+ },
|
|
|
+ chooseAlbumLevelInfo() {
|
|
|
+ var info = {};
|
|
|
+ var list = [...this.allAlbumLevel];
|
|
|
+ list.forEach(item => {
|
|
|
+ if (item.id == this.chooseAlbumLevel) {
|
|
|
+ info = item;
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return info;
|
|
|
+ },
|
|
|
+ filifterAlbum() {
|
|
|
+ var list = [];
|
|
|
+ var allList = [...this.allAlbumList];
|
|
|
+ allList.forEach(item => {
|
|
|
+ if (
|
|
|
+ item.typeLevel == this.chooseAlbumLevel ||
|
|
|
+ this.chooseAlbumLevel == 0
|
|
|
+ ) {
|
|
|
+ list.push(item);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return list;
|
|
|
+ },
|
|
|
+ choosePhotographerInfo() {
|
|
|
+ var info = {};
|
|
|
+ var allList = [...this.allPhotographer];
|
|
|
+ allList.forEach(item => {
|
|
|
+ if (item.id == this.choosePhotographer) {
|
|
|
+ info = item;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ return info;
|
|
|
+ },
|
|
|
+ chooseMakeupInfo() {
|
|
|
+ var info = {};
|
|
|
+ var allList = [...this.allMakeupList];
|
|
|
+ allList.forEach(item => {
|
|
|
+ if (item.id == this.chooseMakeup) {
|
|
|
+ info = item;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ return info;
|
|
|
+ },
|
|
|
+ chooseClothingInfo() {
|
|
|
+ var list = [];
|
|
|
+ var allList = [...this.allClothingList];
|
|
|
+ allList.forEach(item => {
|
|
|
+ if (this.chooseClothing.indexOf(item.id) != -1) {
|
|
|
+ list.push(item);
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ return list;
|
|
|
+ },
|
|
|
+ chooseAlbumInfo() {
|
|
|
+ var list = [];
|
|
|
+ var allList = [...this.allAlbumList];
|
|
|
+ allList.forEach(item => {
|
|
|
+ if (this.chooseAlbum.indexOf(item.id) != -1) {
|
|
|
+ list.push(item);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ return list;
|
|
|
+ },
|
|
|
+ allChooseInfo() {
|
|
|
+ var list = [];
|
|
|
+ if (this.choosePhotographerInfo.id) {
|
|
|
+ list.push(this.choosePhotographerInfo);
|
|
|
+ }
|
|
|
+ if (this.chooseMakeupInfo.id) {
|
|
|
+ list.push(this.chooseMakeupInfo);
|
|
|
+ }
|
|
|
+
|
|
|
+ list = list.concat(this.chooseClothingInfo);
|
|
|
+ list = list.concat(this.chooseAlbumInfo);
|
|
|
+
|
|
|
+ return list;
|
|
|
+ },
|
|
|
+ total() {
|
|
|
+ var money = 0;
|
|
|
+ var mandatory = [...this.mandatory];
|
|
|
+ mandatory.forEach(item => {
|
|
|
+ money = calc.Add(money, item.price || 0);
|
|
|
+ });
|
|
|
+
|
|
|
+ money = calc.Add(
|
|
|
+ money,
|
|
|
+ Number(this.choosePhotographerInfo.price || 0),
|
|
|
+ );
|
|
|
+ money = calc.Add(money, this.chooseMakeupInfo.price || 0);
|
|
|
+
|
|
|
+ var chooseClothingList = [...this.chooseClothingInfo];
|
|
|
+ chooseClothingList.forEach(item => {
|
|
|
+ money = calc.Add(money, item.price || 0);
|
|
|
+ });
|
|
|
+
|
|
|
+ var chooseAlbumInfo = [...this.chooseAlbumInfo];
|
|
|
+ chooseAlbumInfo.forEach(item => {
|
|
|
+ money = calc.Add(money, item.price || 0);
|
|
|
+ });
|
|
|
+ return money;
|
|
|
+ },
|
|
|
+ productInfo() {
|
|
|
+ return {
|
|
|
+ title: '私人定制套餐',
|
|
|
+ typeFlag: 0,
|
|
|
+ price: this.total,
|
|
|
+ downPayment: this.total ? calc.Mul(this.total, 0.3) : 0,
|
|
|
+ };
|
|
|
+ },
|
|
|
+ },
|
|
|
+ onLoad() {
|
|
|
+ this.getStoreService('photographer').then(res => {
|
|
|
+ this.allPhotographer = res;
|
|
|
+ });
|
|
|
+ this.getStoreServiceLevel('photographer').then(res => {
|
|
|
+ res.push({
|
|
|
+ levelName: '全部摄影师',
|
|
|
+ id: 0,
|
|
|
+ });
|
|
|
+ this.allPhotographerLevel = res;
|
|
|
+ });
|
|
|
+
|
|
|
+ this.getStoreService('makeup_artist').then(res => {
|
|
|
+ this.allMakeupList = res;
|
|
|
+ });
|
|
|
+ this.getStoreServiceLevel('makeup_artist').then(res => {
|
|
|
+ res.push({
|
|
|
+ levelName: '全部化妆师',
|
|
|
+ id: 0,
|
|
|
+ });
|
|
|
+ this.allMakeupLevel = res;
|
|
|
+ });
|
|
|
+
|
|
|
+ this.getStoreService('clothing').then(res => {
|
|
|
+ this.allClothingList = res;
|
|
|
+ });
|
|
|
+ this.getStoreServiceLevel('clothing').then(res => {
|
|
|
+ res.push({
|
|
|
+ levelName: '全部服装道具',
|
|
|
+ id: 0,
|
|
|
+ });
|
|
|
+ this.allClothingLevel = res;
|
|
|
+ });
|
|
|
+
|
|
|
+ this.getStoreService('album').then(res => {
|
|
|
+ this.allAlbumList = res;
|
|
|
+ });
|
|
|
+ this.getStoreServiceLevel('album').then(res => {
|
|
|
+ res.push({
|
|
|
+ levelName: '全部相框',
|
|
|
+ id: 0,
|
|
|
+ });
|
|
|
+ this.allAlbumLevel = res;
|
|
|
+ });
|
|
|
+
|
|
|
+ this.getStoreService('song').then(res => {
|
|
|
+ this.mandatory = res;
|
|
|
+ });
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ chooseSelect(info) {
|
|
|
+ var type = info.type;
|
|
|
+ var id = info.id;
|
|
|
+ switch (type) {
|
|
|
+ case 'photographer':
|
|
|
+ if (this.choosePhotographer == id) {
|
|
|
+ this.choosePhotographer = 0;
|
|
|
+ } else {
|
|
|
+ this.choosePhotographer = id;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'makeup_artist':
|
|
|
+ if (this.chooseMakeup == id) {
|
|
|
+ this.chooseMakeup = 0;
|
|
|
+ } else {
|
|
|
+ this.chooseMakeup = id;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'clothing':
|
|
|
+ if (this.chooseClothing.indexOf(id) == -1) {
|
|
|
+ this.chooseClothing.push(id);
|
|
|
+ } else {
|
|
|
+ this.chooseClothing.splice(
|
|
|
+ this.chooseClothing.indexOf(id),
|
|
|
+ 1,
|
|
|
+ );
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'album':
|
|
|
+ if (this.chooseAlbum.indexOf(id) == -1) {
|
|
|
+ this.chooseAlbum.push(id);
|
|
|
+ } else {
|
|
|
+ this.chooseAlbum.splice(
|
|
|
+ this.chooseAlbum.indexOf(id),
|
|
|
+ 1,
|
|
|
+ );
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ },
|
|
|
+ close(value) {
|
|
|
+ if (value != 'close') {
|
|
|
+ switch (this.chooseType) {
|
|
|
+ case 'photographer':
|
|
|
+ this.choosePhotographerLevel = value;
|
|
|
+ break;
|
|
|
+ case 'makeup_artist':
|
|
|
+ this.chooseMakeupLevel = value;
|
|
|
+ break;
|
|
|
+ case 'clothing':
|
|
|
+ this.chooseClothingLevel = value;
|
|
|
+ break;
|
|
|
+ case 'album':
|
|
|
+ this.chooseAlbumLevel = value;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.showAction = false;
|
|
|
+ },
|
|
|
+ chooseLevel(type) {
|
|
|
+ var list = [];
|
|
|
+ this.chooseType = type;
|
|
|
+ switch (type) {
|
|
|
+ case 'photographer':
|
|
|
+ list = [...this.allPhotographerLevel];
|
|
|
+ break;
|
|
|
+ case 'makeup_artist':
|
|
|
+ list = [...this.allMakeupLevel];
|
|
|
+ break;
|
|
|
+ case 'clothing':
|
|
|
+ list = [...this.allClothingLevel];
|
|
|
+ break;
|
|
|
+ case 'album':
|
|
|
+ list = [...this.allAlbumLevel];
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ this.chooseList = list;
|
|
|
+ this.showAction = true;
|
|
|
+ },
|
|
|
+ checkChoose(type, id) {
|
|
|
+ var result = false;
|
|
|
+ switch (type) {
|
|
|
+ case 'photographer':
|
|
|
+ if (this.choosePhotographer == id) {
|
|
|
+ result = true;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'makeup_artist':
|
|
|
+ if (this.chooseMakeup == id) {
|
|
|
+ result = true;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'clothing':
|
|
|
+ if (this.chooseClothing.indexOf(id) != -1) {
|
|
|
+ result = true;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case 'album':
|
|
|
+ if (this.chooseAlbum.indexOf(id) != -1) {
|
|
|
+ result = true;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ },
|
|
|
+ getStoreService(typeFlag) {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ this.$http
|
|
|
+ .get('/storeService/all', {
|
|
|
+ typeFlag: typeFlag,
|
|
|
+ })
|
|
|
+ .then(res => {
|
|
|
+ if (res.success) {
|
|
|
+ resolve(res.data);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(e => {
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ getStoreServiceLevel(typeFlag) {
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ this.$http
|
|
|
+ .get(
|
|
|
+ '/storeServiceLevel/all',
|
|
|
+ {
|
|
|
+ typeFlag: typeFlag,
|
|
|
+ },
|
|
|
+ {},
|
|
|
+ false,
|
|
|
+ )
|
|
|
+ .then(res => {
|
|
|
+ if (res.success) {
|
|
|
+ resolve(res.data);
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(e => {
|
|
|
+ console.log(e);
|
|
|
+ });
|
|
|
+ });
|
|
|
+ },
|
|
|
+ submit() {
|
|
|
+ if (!this.choosePhotographer) {
|
|
|
+ wx.showToast({
|
|
|
+ title: '请选择摄影师',
|
|
|
+ icon: 'none',
|
|
|
+ duration: 1500,
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ if (!this.chooseMakeup) {
|
|
|
+ wx.showToast({
|
|
|
+ title: '请选化妆师',
|
|
|
+ icon: 'none',
|
|
|
+ duration: 1500,
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ this.showSpecifications = true;
|
|
|
+
|
|
|
+
|
|
|
+ },
|
|
|
+ changeType(type) {
|
|
|
+ this.chooseSpecificationType = type;
|
|
|
+ },
|
|
|
+ changeChoose(){
|
|
|
+ var idList = this.allChooseInfo.map(item => {
|
|
|
+ return item.id;
|
|
|
+ });
|
|
|
+ idList = idList.concat(
|
|
|
+ this.mandatory.map(item => {
|
|
|
+ return item.id;
|
|
|
+ }),
|
|
|
+ );
|
|
|
+
|
|
|
+ wx.navigateTo({
|
|
|
+ url:
|
|
|
+ '/pages/submit/submit?submitPage=customize&serviceList=' +
|
|
|
+ idList.join(',')+'&typeFlag='+(this.chooseSpecificationType=='all'?0:1),
|
|
|
+ });
|
|
|
+ }
|
|
|
+ },
|
|
|
+ components: {
|
|
|
+ customizeItem,
|
|
|
+ actionSheet,
|
|
|
+ customizeDetail,
|
|
|
+ specificationsContent,
|
|
|
+ },
|
|
|
+};
|
|
|
+</script>
|
|
|
+<style lang='less' scoped>
|
|
|
+.container {
|
|
|
+ min-height: 100%;
|
|
|
+ background-color: #f2f4f5;
|
|
|
+ // padding-bottom: 10px;
|
|
|
+ box-sizing: border-box;
|
|
|
+}
|
|
|
+.containerTitle {
|
|
|
+ padding: 20px 15px 15px;
|
|
|
+
|
|
|
+ .titleTop {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+
|
|
|
+ .name {
|
|
|
+ font-size: 26px;
|
|
|
+ font-weight: bold;
|
|
|
+ color: rgba(0, 0, 0, 1);
|
|
|
+ line-height: 37px;
|
|
|
+ flex-grow: 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ .sub {
|
|
|
+ font-size: 13px;
|
|
|
+ color: rgba(0, 0, 0, 1);
|
|
|
+ line-height: 18px;
|
|
|
+ }
|
|
|
+
|
|
|
+ img {
|
|
|
+ width: 24px;
|
|
|
+ height: 24px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .tips {
|
|
|
+ font-size: 13px;
|
|
|
+ color: rgba(153, 153, 153, 1);
|
|
|
+ line-height: 18px;
|
|
|
+ margin-top: 2px;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.list {
|
|
|
+ padding-left: 15px;
|
|
|
+}
|
|
|
+
|
|
|
+.tipsContnt {
|
|
|
+ margin: 0 15px 15px;
|
|
|
+ background: rgba(255, 255, 255, 1);
|
|
|
+ border-radius: 8px;
|
|
|
+ padding: 0 12px 15px;
|
|
|
+ .title {
|
|
|
+ font-size: 14px;
|
|
|
+ font-weight: bold;
|
|
|
+ color: rgba(0, 0, 0, 1);
|
|
|
+ line-height: 20px;
|
|
|
+ padding: 20px 0 10px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .content {
|
|
|
+ font-size: 14px;
|
|
|
+ font-family: PingFangSC-Regular;
|
|
|
+ font-weight: 400;
|
|
|
+ color: rgba(153, 153, 153, 1);
|
|
|
+ line-height: 24px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .line {
|
|
|
+ height: 1px;
|
|
|
+ background-color: #f2f4f5;
|
|
|
+ margin-top: 15px;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+.subContent {
|
|
|
+ height: 56px;
|
|
|
+ background: rgba(255, 255, 255, 1);
|
|
|
+ position: sticky;
|
|
|
+ bottom: 0;
|
|
|
+ z-index: 20;
|
|
|
+
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ padding: 0 15px;
|
|
|
+ span {
|
|
|
+ font-size: 12px;
|
|
|
+ color: rgba(56, 56, 56, 1);
|
|
|
+ line-height: 17px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .price {
|
|
|
+ font-size: 22px;
|
|
|
+ font-weight: bold;
|
|
|
+ color: rgba(255, 59, 48, 1);
|
|
|
+ line-height: 30px;
|
|
|
+ margin-left: 3px;
|
|
|
+
|
|
|
+ &::before {
|
|
|
+ font-size: 16px;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ img {
|
|
|
+ width: 22px;
|
|
|
+ height: 22px;
|
|
|
+ transition: all ease-in-out 0.3s;
|
|
|
+ }
|
|
|
+ button {
|
|
|
+ width: 136px;
|
|
|
+ height: 40px;
|
|
|
+ background: rgba(0, 197, 242, 1);
|
|
|
+ border-radius: 22px;
|
|
|
+ font-size: 15px;
|
|
|
+ font-weight: bold;
|
|
|
+ color: rgba(255, 255, 255, 1);
|
|
|
+ line-height: 40px;
|
|
|
+
|
|
|
+ &:active {
|
|
|
+ background-color: darken(rgba(0, 197, 242, 1), 10);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ .detail {
|
|
|
+ font-size: 12px;
|
|
|
+ color: rgba(0, 197, 242, 1);
|
|
|
+ line-height: 17px;
|
|
|
+ margin-left: 10px;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|
|
|
+
|
|
|
+
|