更新项目,ios打包

This commit is contained in:
liuyuan
2025-03-17 17:00:10 +08:00
parent efb76a1716
commit 896f897014
27 changed files with 1147 additions and 237 deletions

View File

@@ -33,6 +33,9 @@ const courtConfig = {
// #endif
}
};
// 订单编号的正则
const orderRegular = /[0-9]\d{31}$/;
//手机号验证正则表达式
// (中国大陆)
// const phoneRegular = /^1\d{10}$/;
@@ -46,6 +49,7 @@ const mailRegular = /^\w+([-+._']\w+)*@\w+(\.[a-zA-Z]{2,3}){1,2}$/;
// const passwordRegular = /^[a-zA-Z0-9]{4,10}$/;
const passwordRegular = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$/;
export default Object.assign({
orderRegular,
phoneRegular,
mailRegular,
passwordRegular

View File

@@ -15,7 +15,7 @@ Vue.prototype.$commonJS = commonJS
import store from '@/store'
Vue.prototype.$store = store;
//权限配置中心
import base from '@/config/baseUrl'
import base from '@/config/baseUrl.js'
Vue.prototype.$base = base;
Vue.config.productionTip = false
@@ -25,6 +25,7 @@ import { judgeLogin } from '@/config/login';
Vue.prototype.judgeLogin = judgeLogin;
Vue.prototype.isShowHtml = store.state.loadingShow;
Vue.prototype.$baseUrl = "https://api.nuttyreading.com/"
//判断手机型号
uni.getSystemInfo({
success: function (res) {

View File

@@ -2,8 +2,8 @@
"name" : "心灵空间",
"appid" : "__UNI__BBBDFD2",
"description" : "心灵空间",
"versionName" : "1.0.0",
"versionCode" : "100",
"versionName" : "1.0.02",
"versionCode" : 1002,
"transformPx" : false,
/* 5+App */
"app-plus" : {
@@ -34,37 +34,30 @@
},
/* */
"distribute" : {
"apple" : {
"devices" : "universal"
},
/* android */
"android" : {
"permissions" : [
"<uses-feature android:name=\"android.hardware.camera\"/>",
"<uses-feature android:name=\"android.hardware.camera.autofocus\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_COARSE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_FINE_LOCATION\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.CALL_PHONE\"/>",
"<uses-permission android:name=\"android.permission.CAMERA\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>",
"<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>",
"<uses-permission android:name=\"android.permission.FLASHLIGHT\"/>",
"<uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>",
"<uses-permission android:name=\"android.permission.INSTALL_PACKAGES\"/>",
"<uses-permission android:name=\"android.permission.INTERNET\"/>",
"<uses-permission android:name=\"android.permission.MODIFY_AUDIO_SETTINGS\"/>",
"<uses-permission android:name=\"android.permission.MOUNT_UNMOUNT_FILESYSTEMS\"/>",
"<uses-permission android:name=\"android.permission.READ_PHONE_STATE\"/>",
"<uses-permission android:name=\"android.permission.RECEIVE_BOOT_COMPLETED\"/>",
"<uses-permission android:name=\"android.permission.RECORD_AUDIO\"/>",
"<uses-permission android:name=\"android.permission.REQUEST_INSTALL_PACKAGES\"/>",
"<uses-permission android:name=\"android.permission.SYSTEM_ALERT_WINDOW\"/>",
"<uses-permission android:name=\"android.permission.VIBRATE\"/>",
"<uses-permission android:name=\"android.permission.WAKE_LOCK\"/>",
"<uses-permission android:name=\"android.permission.WRITE_EXTERNAL_STORAGE\"/>",
"<uses-permission android:name=\"android.permission.WRITE_SETTINGS\"/>"
],
"minSdkVersion" : 21,
"targetSdkVersion" : 30,
"minSdkVersion" : 23,
"targetSdkVersion" : 35,
"abiFilters" : [ "armeabi-v7a", "arm64-v8a", "x86" ]
},
/* ios */

View File

@@ -1,6 +1,6 @@
<template>
<view style="width: 100%; height: 100%">
<scroll-view @scrolltolower="lower" scroll-y="true" class="scroll-Y" v-if="dataList.length > 0">
<scroll-view @scrolltolower="lower" scroll-y="true" class="scroll-Y" v-if="dataList.length > 0">
<view
@click="gotoDetail(item)"
class="scroll-view-item list_item"

View File

@@ -1,83 +1,105 @@
<template>
<view class="commonPageBox commonDetailPage" style="height: auto !important;padding-bottom: 0 !important;">
<u-popup :show="show" mode="bottom" @close="close" class="popup_box">
<view class="popup_top">
<view class="product_image">
<image
:src="selectGoodsData.productImages"
mode="aspectFit"
class="goods_image"
></image>
</view>
<view class="title">已选{{ selectGoodsData.productName }}</view>
</view>
<view :class="`common_radius_box goods_box popup_content`">
<view class="title title_box"
><text class="title_price">{{ selectGoodsData.activityPrice?selectGoodsData.activityPrice:selectGoodsData.price }}</text
>
<u-icon
name="close"
color="#333"
size="18"
@click="close"
style="display: inline-block"
></u-icon
></view>
<view class="title title_list"
><text>商品列表{{ goodsList.length }}</text></view
>
<common-list
imgUrl="url"
isNoIcon
imgMode="aspectFit"
defaultUrl=""
:isCondition="true"
:dataList="goodsList"
@hancleClick="selectGoods"
label="title"
>
<template slot="labelSlot" slot-scope="slotProps">
<!-- isSelectGoods -->
<view
class="related_courses_name"
:class="`goods_item ${
selectGoodsData &&
selectGoodsData.productId == slotProps.row.productId
? 'isSelectGoods color_shandow'
: ''
}`"
>
<view class="image_box" style="margin-right: 10rpx">
<image
:src="slotProps.row.productImages"
mode="aspectFit"
class="goods_image"
></image>
</view>
<view :class="`goods_info `">
<view class="name">{{ slotProps.row.productName }}</view>
<view class="price" style=" color: #333;">
{{ slotProps.row.activityPrice?slotProps.row.activityPrice:slotProps.row.price }}</view>
<view class="commonPageBox commonDetailPage" style="height: auto !important;padding-bottom: 0 !important;">
<u-popup :show="show" mode="bottom" @close="close" class="popup_box">
<view class="popup_top">
<view class="product_image">
<image
:src="selectGoodsData.productImages"
mode="aspectFit"
class="goods_image"
></image>
</view>
</view>
</template>
</common-list>
<view class="title">已选{{ selectGoodsData.productName }}</view>
</view>
<view class="goods_nav_box">
<uni-goods-nav
:fill="true"
:options="buyOptions"
:button-group="customButtonGroup1"
@click="onHandleClickBuy"
@buttonClick="onHandleClickBuy"
/>
</view>
</view>
</u-popup></view
>
<view :class="`common_radius_box goods_box popup_content`">
<view class="title title_box">
<view class="title_price" v-if="selectGoodsData.isVipPrice==1&&selectGoodsData.vipPrice!=null&&selectGoodsData.vipPrice!=0">
{{selectGoodsData.vipPrice}}
<text style=" font-weight: normal; padding-left: 15rpx; font-size: 26rpx;">VIP到手价</text>
</view>
<view class="title_price" v-else-if="selectGoodsData.activityPrice&&selectGoodsData.activityPrice>0">
{{selectGoodsData.activityPrice}}
<text style=" font-weight: normal; padding-left: 15rpx; font-size: 26rpx; color: #999;">活动价</text>
</view>
<text class="title_price" v-else>
{{selectGoodsData.price}}
</text>
<u-icon
name="close"
color="#333"
size="18"
@click="close"
style="display: inline-block"
></u-icon>
</view>
<view class="title title_list">
<text>商品列表{{ goodsList.length }}</text>
</view>
<common-list
imgUrl="url"
isNoIcon
imgMode="aspectFit"
defaultUrl=""
:isCondition="true"
:dataList="goodsList"
@hancleClick="selectGoods"
label="title"
>
<template slot="labelSlot" slot-scope="slotProps">
<!-- isSelectGoods -->
<view
class="related_courses_name"
:class="`goods_item ${
selectGoodsData &&
selectGoodsData.productId == slotProps.row.productId
? 'isSelectGoods color_shandow'
: ''
}`"
>
<view class="image_box" style="margin-right: 10rpx">
<image
:src="slotProps.row.productImages"
mode="aspectFit"
class="goods_image"></image>
</view>
<view :class="`goods_info `">
<view class="name">{{ slotProps.row.productName }}</view>
<view class="price">
<view class="goods_price" v-if="slotProps.row.isVipPrice==1&&slotProps.row.vipPrice!=null&&slotProps.row.vipPrice!=0">
{{slotProps.row.vipPrice}}
<text class="line_text">{{slotProps.row.price}}</text>
</view>
<view class="goods_price" v-else-if="slotProps.row.activityPrice&&slotProps.row.activityPrice>0">
{{slotProps.row.activityPrice}}
<text class="line_text">{{slotProps.row.price}}</text>
</view>
<text v-else>
{{slotProps.row.price}}
</text>
<text class="goods_text" v-if="slotProps.row.isVipPrice==1&&slotProps.row.vipPrice!=null&&slotProps.row.vipPrice!=0">
VIP优惠
</text>
</view>
</view>
</view>
</template>
</common-list>
<view class="goods_nav_box">
<uni-goods-nav
:fill="true"
:options="buyOptions"
:button-group="customButtonGroup1"
@click="onHandleClickBuy"
@buttonClick="onHandleClickBuy"
/>
</view>
</view>
</u-popup>
</view>
</template>
<script>
@@ -177,9 +199,6 @@ export default {
.goods_info {
width: calc(100%);
box-sizing: border-box;
display: flex;
align-items: center;
justify-content: space-between;
float: left;
.name {
font-size: 26rpx;
@@ -188,6 +207,8 @@ export default {
.price {
font-size: 26rpx;
color: #aaa;
display: flex;
align-items: center;
}
}
.isSelectGoods {
@@ -298,4 +319,19 @@ export default {
font-weight: 700;
}
}
.line_text{
text-decoration: line-through;
font-size: 24rpx;
padding: 0 20rpx;
color: #999;
}
.goods_price{
color: #ff1f00;
font-weight: bold;
}
.goods_text{
font-size: 22rpx;
color: #ff1f00;
font-weight: bold;
}
</style>

View File

@@ -237,8 +237,6 @@ export default {
});
},
openVideo(data) {
console.log("data at line 380:", data.type);
var mynavData = JSON.stringify(data); // 这里转换成 字符串
if (data.type == 0) {
//视频云点播

View File

@@ -28,7 +28,7 @@
<view class="list_block" v-if="!statusXLCP" :style="labelsList.length>0&&childrenList.length==0?`marginTop: ${45 + statusBarHeight}px;`:''">
<view class="list_item" v-if="list.length>0" v-for="(item,index) in list" :key="index" @click.stop="goToDetail(item)">
<view class="list_item_image">
<image v-if="item.image" :src="item.image" mode="aspectFit"></image>
<image v-if="item.squareImage" :src="item.squareImage" mode="aspectFit"></image>
<text class="image_null" v-else>暂无封面图</text>
</view>
<view class="list_item_right">
@@ -450,8 +450,8 @@ export default {
border-radius: 10rpx;
}
.list_item_image,.image_null{
width: 250rpx;
height: 220rpx;
width: 240rpx;
height: 240rpx;
background-color: rgba(125, 193, 240, 0.1);
display: flex;
justify-content: center;

View File

@@ -320,6 +320,8 @@
role = '国学';
}else if(type==8){
role = '心理学';
}else if(type==9){
role = '中西汇通学';
}
this.goBuyTitle = '尊贵的'+role+'VIP您的有效期到'+res.userVip.endTime;
this.goBuyType = 1;
@@ -358,6 +360,8 @@
text = '国学';
}else if(item=='8'){
text = '心理学';
}else if(item=='9'){
text = '中西汇通学';
}
this.textList.push(text);
});
@@ -1270,6 +1274,9 @@
padding-bottom: 10rpx;
color: #333;
}
/deep/ .prof img{
width: 100%;
}
.containerBg1 {
background: #fff;

View File

@@ -153,16 +153,27 @@
</span>
<span>¥</span>{{ orderContet.shippingMoney }}
</view>
<view class="orderReal" v-if="orderContet.orderType == 'order'&&orderContet.vipDiscountAmount&&orderContet.vipDiscountAmount>0">
<span style="color: red; margin-right: 10rpx; float: left;">VIP专享立减 :
</span>
<span style=" color: red;">-¥{{orderContet.vipDiscountAmount}}</span>
</view>
<view class="orderReal" v-if="orderContet.orderType == 'order'&&orderContet.districtMoney&&orderContet.districtMoney>0">
<span style="color: red; margin-right: 10rpx; float: left;">活动立减 :
</span>
<span style=" color: red;">-¥{{orderContet.districtMoney}}</span>
</view>
<view class="orderReal" v-if="orderContet.orderType == 'order'">
<span style="color: #666; margin-right: 10rpx; float: left">积分 :
</span>
<span v-if="orderContet.jfDeduction > 0">-</span> <span>¥</span>{{ orderContet.jfDeduction }}
</view>
<view class="orderReal" v-if="orderContet.orderStatus != 0">
<span style="color: #666; margin-right: 10rpx; float: left">
实付款 :
</span>
<b style="color: #dd3c0c"><span>¥</span>{{ orderContet.realMoney }}</b>
<b style="color: red;"><span>¥</span>{{ orderContet.realMoney }}</b>
</view>
<view class="orderReal" v-if="orderContet.remark">
<span style="color: #666; margin-right: 10rpx; float: left">
@@ -563,7 +574,7 @@ export default {
let that = this;
for (var i = 0; i < e.file.length; i++) {
uni.uploadFile({
url: this.$baseUrl + "oss/fileoss",
url: this.$baseUrl + "/oss/fileoss",
filePath: e.file[i].url,
name: "file",
formData: {},

View File

@@ -13,30 +13,45 @@
<view class="goods_box">
<view class="curriulum_title_box">
<view v-if="this.options.isMiaosha == 1" class="miaosha_box">
<view class="price_box">
<view class="price_box"
v-if="curriculumData.isVipPrice==1&&curriculumData.vipPrice!=null&&curriculumData.vipPrice!=0
||curriculumData.activityPrice && curriculumData.activityPrice > 0">
<view class="price_left">
<template v-if="
curriculumData.activityPrice &&
curriculumData.activityPrice > 0
">
<template v-if="curriculumData.isVipPrice==1&&curriculumData.vipPrice!=null&&curriculumData.vipPrice!=0">
<text class="aui-text-danger price">
¥{{ curriculumData.vipPrice }}
</text>
<text class="price original_price">¥{{ curriculumData.price }}
</text>
</template>
<template v-else>
<text class="aui-text-danger price">
¥{{ curriculumData.activityPrice }}
</text>
<text class="price original_price">原价:¥{{ curriculumData.price }}
</text>
</template>
<template v-else>
<text class="aui-text-danger price">
¥{{ curriculumData.price }}
</text>
</template>
<view class="price original_price sales_number">已售 {{ curriculumData.sumSales }}件
</view>
</view>
<view class="xianshimaiosha_box">
<text class="xianshimaiosha">秒杀商品</text>
<text class="xianshimaiosha"
v-if="curriculumData.isVipPrice==1&&curriculumData.vipPrice!=null&&curriculumData.vipPrice!=0">
VIP优惠
</text>
<text class="xianshimaiosha" v-else-if="curriculumData.activityPrice && curriculumData.activityPrice > 0">活动立减</text>
</view>
</view>
<view class="putong" v-else>
<template>
<text class="aui-text-danger price">
¥{{ curriculumData.price }}
</text>
</template>
<view class="price original_price sales_number">已售 {{ curriculumData.sumSales }}件
</view>
</view>
@@ -424,8 +439,6 @@
productImages: this.selectGoodsData.productImages,
productId: this.selectGoodsData.productId,
productName: this.selectGoodsData.productName,
price: this.selectGoodsData.activityPrice ?
this.selectGoodsData.activityPrice : this.selectGoodsData.price,
goodsType: this.selectGoodsData.goodsType,
}],
navTitle: this.options.navTitle,
@@ -796,15 +809,12 @@
background-color: #fff;
.curriulum_title {
padding: 0 30rpx;
width: calc(100%);
font-weight: 600;
font-size: 34rpx;
// line-height: 40rpx;
// display: flex;
// align-items: center;
margin-top: 80rpx;
margin-bottom: 0rpx;
// padding: 20rpx;
font-size: 38rpx;
margin-top: 40rpx;
margin-bottom: 30rpx;
box-sizing: border-box;
}
}
@@ -816,10 +826,6 @@
box-sizing: border-box;
}
/deep/.titleItem {
// width: calc(100% - 120rpx) !important;
}
/deep/.scroll-view-item:nth-child(2n-1) {
background-color: transparent !important;
}
@@ -957,12 +963,12 @@
.original_price {
font-size: 28rpx !important;
font-weight: 500;
color: #999 !important;
font-weight: normal;
white-space: nowrap;
text-decoration: line-through;
float: left;
margin-top: 6rpx;
margin-left: 20rpx;
}
.price {
@@ -970,7 +976,6 @@
font-weight: 700;
float: left;
margin-right: 10rpx;
// font-family: PangMenZhengDaoBiaoTiTiMianFeiBan;
}
.price_box {
@@ -1009,13 +1014,6 @@
color: #fff !important;
}
.original_price {
color: #e4dede !important;
font-weight: 500;
margin-left: 20rpx;
font-size: 26rpx !important;
}
.sales_number {
display: block;
width: 100%;
@@ -1028,12 +1026,6 @@
padding: 30rpx 20rpx 30rpx;
background: linear-gradient(to right, #ff2701, #fd8d024d);
// height: 100rpx;
}
.curriulum_title {
padding: 20rpx 40rpx;
margin-top: 20rpx !important;
}
}
@@ -1279,4 +1271,10 @@
display: block;
}
}
.putong{
padding: 30rpx 30rpx 0 30rpx;
display: flex;
align-items: center;
justify-content: space-between;
}
</style>

View File

@@ -26,23 +26,31 @@
</view>
<view class="order_top common_radius_box color_shandow goods_box">
<view class="curriulum_title_box goods_item" v-for="(v, i) in goodsDataList">
<view class="curriulum_title_box goods_item" style=" position: relative;" v-for="(v, i) in goodsDataList">
<text class="goods_item_vip" v-if="v.isVipPrice==1&&v.vipPrice!=null&&v.vipPrice!=0">VIP优惠</text>
<image class="goods_item_img" :src="v.productImages" mode="aspectFit">
</image>
<view class="normal_box">
<view class="normal_box_top" style="justify-content: space-between">
<view class="normal_box_top">
<view class="curriulum_title">{{ v.productName }} </view>
<view class="price_box">
<text class="price" v-if="v.activityPrice&&v.activityPrice>0" style="margin-right: 0">
{{ v.activityPrice }}
<view class="vip_price" v-if="v.isVipPrice==1&&v.vipPrice!=null&&v.vipPrice!=0">
<text class="vip_price_jg">{{ v.vipPrice }}</text>
<text class="vip_price_text">VIP到手价</text>
<text class="vip_price_line">{{ v.price }}</text>
</view>
<text class="price" v-else-if="v.activityPrice&&v.activityPrice>0">
<text class="vip_price_jg">{{ v.activityPrice }}</text>
<text class="vip_price_text">活动价</text>
<text class="vip_price_line">{{ v.price }}</text>
</text>
<text v-else>{{ v.price }}</text>
<view>
x 1
</view>
</view>
</view>
<view style="width: 100%; text-align: right">
x 1
</view>
</view>
</view>
<view class="pay_box" style="margin-top: 20rpx">
@@ -81,7 +89,7 @@
<u-icon v-if="v.icon" name="map-fill" color="#018F89" size="20"
style="display: inline-block"></u-icon>
<text> {{ v.text }}</text>
<text :class="v.type==5||v.type==6?'type_text_red':''">{{ v.text }}</text>
<template v-if="v.type == 3">
<text style="color: #aaa; margin-left: 10rpx">
(全部积分{{ initData.user.jf }})</text>
@@ -96,6 +104,9 @@
<template v-if="v.type == 3">
<text style="color: #fe6035"> -{{ jfNumberShow }}</text>
</template>
<template v-if="v.type == 5||v.type == 6">
<text class="type_text_red">-{{districtAmount}}</text>
</template>
</view>
</view>
@@ -129,7 +140,7 @@
<text v-else> {{ v.text }}</text>
</view>
<template v-if="isDefaultCurrency">
<radio v-if="i == 2" :value="v.value" color="#7dc1f0"
<radio :value="v.value" color="#7dc1f0"
:checked="selectPayIndex == i ? true : false" @click="radioChange(i)" size="10" />
</template>
<template v-else>
@@ -342,7 +353,7 @@ import parse from "../../uni_modules/uview-ui/libs/config/props/parse";
scrollViewHeight: 0,
urlList: {
list: "app/phone.do?getCourseDetail_new",
initPrepareOrder: "/common/buyOrder/initPrepareOrder",
initPrepareOrder: "common/buyOrder/initPrepareOrder",
buyOrder: "book/buyOrder/placeOrder",
curriculumInfo: "app/phone.do?getCourseInfo",
detailInfo: "app/phoneDoctor.do?getTaiHuClassInfo_new",
@@ -361,13 +372,15 @@ import parse from "../../uni_modules/uview-ui/libs/config/props/parse";
backgroundColor: "linear-gradient(90deg, #294a97 0%, #7dc1f0 80%)",
color: "#fff",
}, ],
//立减金额
districtAmount: 0,
orderNumber: 1, //商品数量
};
},
async onLoad(options) {
var that = this;
var mynavData = uni.getStorageSync('mynavData');
this.options = mynavData;
this.goodsDataList = this.options.goods;
if (this.options.sourceType == "curriculum") {
this.goToInfo = {
url: "/pages/curriculum/index/index",
@@ -379,7 +392,7 @@ import parse from "../../uni_modules/uview-ui/libs/config/props/parse";
type: 1,
};
}
that.initPrepareOrder();
that.getData();
},
async onShow() {
var that = this;
@@ -392,13 +405,12 @@ import parse from "../../uni_modules/uview-ui/libs/config/props/parse";
consigneePhone: data.consigneePhone,
};
that.$forceUpdate();
that.getUserAddress();
} else {
}
});
if (that.$platform == "ios") {
if (platform == "ios") {
that.payList = [
{
text: "天医币",
@@ -438,6 +450,88 @@ import parse from "../../uni_modules/uview-ui/libs/config/props/parse";
...mapState(["userInfo"]),
},
methods: {
//获取数据
async getData(){
this.$http.request({
url: 'book/buyOrder/getShopProductListByIds',
method: "POST",
data: {
productIds: this.options.goods[0].productId.toString()
},
header: {
"Content-Type": "application/json",
},
})
.then(async (res) => {
if (res.code == 0) {
this.goodsDataList = res.shopProductList;
//请求VIP还是活动的逻辑
if(this.goodsDataList[0].isVipPrice==1&&
this.goodsDataList[0].vipPrice!=null&&
this.goodsDataList[0].vipPrice!=0){
await this.getVipDiscountAmount();
}else if(this.goodsDataList[0].activityPrice&&
this.goodsDataList[0].activityPrice>0){
await this.getDistrictAmount();
}else{
await this.initPrepareOrder();
}
}
});
},
//VIP立减
async getVipDiscountAmount(){
let data = [];
this.goodsDataList.forEach((item, index) => {
data.push({
productId: item.productId,
quantity: this.orderNumber,
});
});
this.$http.request({
url: 'book/buyOrder/getVipDiscountAmount',
method: "POST",
data: {
productList: data
},
header: {
"Content-Type": "application/json",
},
})
.then(async (res) => {
if (res.code == 0) {
this.districtAmount = res.discountAmount;
await this.initPrepareOrder();
}
});
},
//活动立减
async getDistrictAmount(){
let data = [];
this.goodsDataList.forEach((item, index) => {
data.push({
productId: item.productId,
quantity: this.orderNumber,
});
});
this.$http.request({
url: 'book/buyOrder/getDistrictAmount',
method: "POST",
data: {
productList: data
},
header: {
"Content-Type": "application/json",
},
})
.then(async (res) => {
if (res.code == 0) {
this.districtAmount = res.districtAmount;
await this.initPrepareOrder();
}
});
},
handleChangejf(val) {
var value = val;
this.$nextTick(() => {
@@ -454,7 +548,7 @@ import parse from "../../uni_modules/uview-ui/libs/config/props/parse";
this.jfNumberShow = this.jfNumber.toFixed(2);
}
this.actualPayment = this.totalPrice - this.jfNumber + this.freightNum;
this.actualPayment = this.totalPrice - this.jfNumber -this.districtAmount + this.freightNum;
if (this.actualPayment == 0) {
this.isDefaultCurrency = true;
@@ -492,12 +586,28 @@ import parse from "../../uni_modules/uview-ui/libs/config/props/parse";
type: 2,
},
];
//如果是vip
if(this.goodsDataList[0].activityPrice&&this.goodsDataList[0].activityPrice>0){
this.priceBreakdownList.push({
text: "活动立减",
imgUrl: "",
type: 5,
})
}
//如果是vip
if(this.goodsDataList[0].isVipPrice==1&&this.goodsDataList[0].vipPrice!=null&&this.goodsDataList[0].vipPrice!=0){
this.priceBreakdownList.push({
text: "VIP专享立减",
imgUrl: "",
type: 6,
})
}
var data = {
uid: this.userInfo.id,
productList: this.goodsDataList.map((e) => {
return {
productId: this.goodsDataList[0].productId,
quantity: 1,
quantity: this.orderNumber,
};
}),
};
@@ -594,7 +704,7 @@ import parse from "../../uni_modules/uview-ui/libs/config/props/parse";
products: this.goodsDataList.map((e) => {
return {
productId: e.productId,
quantity: 1,
quantity: this.orderNumber,
};
}),
regionCode: this.addressData.regionCode,
@@ -625,39 +735,47 @@ import parse from "../../uni_modules/uview-ui/libs/config/props/parse";
handleFresh() {
this.show = false;
},
getTotalPrice() {
//获取总金额
async getTotalPrice() {
var s = 0;
var that = this;
for (var i = this.goodsDataList.length - 1; i >= 0; i--) {
if(this.goodsDataList[i].activityPrice&&this.goodsDataList[i].activityPrice>0){
s += this.goodsDataList[i].activityPrice ? this.goodsDataList[i].activityPrice : 0;
}else{
s += this.goodsDataList[i].price ? this.goodsDataList[i].price : 0;
}
s += this.goodsDataList[i].price;
}
that.totalPrice = s;
that.totalPrice = s * that.orderNumber;
if (!this.isShowAddress) {
if (this.initData.user.jf >= that.totalPrice) {
this.jfNumber = that.totalPrice;
this.jfNumberMax = that.totalPrice;
this.jfNumber = that.totalPrice - that.districtAmount;
this.jfNumberMax = that.totalPrice - that.districtAmount;
} else {
this.jfNumber = this.initData.user.jf;
this.jfNumberMax = this.initData.user.jf;
}
if (that.jfNumber == 0 || that.jfNumber == null) {
that.jfNumberShow = "0.00";
that.actualPayment = that.totalPrice;
that.actualPayment = that.totalPrice - that.districtAmount;
} else {
that.jfNumberShow = that.jfNumber.toFixed(2);
that.actualPayment = that.totalPrice - that.jfNumber;
}
that.actualPayment = that.actualPayment + that.freightNum;
that.actualPayment = that.actualPayment + that.freightNum - that.districtAmount;
} else {
that.actualPayment = that.totalPrice + that.freightNum;
that.actualPayment = that.totalPrice + that.freightNum - that.districtAmount;
}
if (this.actualPayment == 0 && !this.isShowAddress) {
this.isDefaultCurrency = true;
this.payList = [
{
text: "天医币",
imgUrl: require("@/static/icon/pay_3.png"),
type: 4,
value: "2",
},
];
this.selectPayIndex = 0;
this.payType = 4;
} else {
this.isDefaultCurrency = false;
}
@@ -717,14 +835,13 @@ import parse from "../../uni_modules/uview-ui/libs/config/props/parse";
shippingMoney: this.freightNum, //运费
remark: this.remark, //备注
couponId: null, //优惠券Id
// isSend: this.isSend,
couponName: "", //优惠券名称
districtMoney: 0, //优惠金额
districtMoney: 0, //活动
productList: this.goodsDataList.map((e) => {
return {
productId: e.productId,
quantity: 1,
quantity: this.orderNumber,
};
}), //订单列表商品
orderType: "order", //订单类型
@@ -732,6 +849,14 @@ import parse from "../../uni_modules/uview-ui/libs/config/props/parse";
appName: "xlkj",
come: "3", //3心灵空间
}
if(this.goodsDataList[0].isVipPrice==1&&
this.goodsDataList[0].vipPrice!=null&&
this.goodsDataList[0].vipPrice!=0){
data.vipDiscountAmount = this.districtAmount; //vip
}else if(this.goodsDataList[0].activityPrice&&
this.goodsDataList[0].activityPrice>0){
data.districtMoney = this.districtAmount; //活动
}
await $http.request({
url: that.urlList.buyOrder,
@@ -851,7 +976,6 @@ import parse from "../../uni_modules/uview-ui/libs/config/props/parse";
}
}
}
uni.removeStorageSync('mynavData');
});
}, 200);
@@ -957,7 +1081,6 @@ import parse from "../../uni_modules/uview-ui/libs/config/props/parse";
.normal_box_top {
width: 100%;
display: flex;
height: 100rpx;
}
}
@@ -1031,7 +1154,6 @@ import parse from "../../uni_modules/uview-ui/libs/config/props/parse";
font-weight: 500;
font-size: 30rpx;
margin-top: 10rpx;
float: left;
margin-bottom: 0rpx;
color: #333;
box-sizing: border-box;
@@ -1088,13 +1210,32 @@ import parse from "../../uni_modules/uview-ui/libs/config/props/parse";
float: right;
margin-right: 10rpx;
color: #333;
// font-family: PangMenZhengDaoBiaoTiTiMianFeiBan;
}
.price_box {
.normal_box_top .price_box {
width: auto;
overflow: hidden;
margin-top: 10rpx;
margin-top: 20rpx;
display: flex;
align-items: center;
justify-content: space-between;
.vip_price_jg{
color: red;
font-weight: bold;
}
.vip_price_text{
color: red;
padding-left: 10rpx;
font-size: 24rpx;
font-weight: normal;
}
.vip_price_line{
color: #666;
text-decoration: line-through;
padding-left: 15rpx;
}
}
.commonTags {
@@ -1416,8 +1557,20 @@ import parse from "../../uni_modules/uview-ui/libs/config/props/parse";
.hasRemark {
color: #333 !important;
}
.bgGrey {
.goods_item_vip{
position: absolute;
left: 0px;
top: 0;
z-index: 99;
background: #ff1f00;
padding: 0 4px;
border-radius: 4px;
line-height: 18px;
font-size: 9px;
color: #fff;
}
.type_text_red{
color: red;
}
</style>

View File

@@ -8,33 +8,7 @@
<text class="curriculum_item_name">{{ item.name }}</text>
</view>
</view>
<!-- 应对华为审核去掉app跳转 -->
<view class="appJump" v-if="$platform=='android'">
<view class="app_item wumen" @click="appjumpfun('wumen')">
<view class="img">
<image src="@/static/logo_wumen.png" mode="widthFix"></image>
</view>
<view class="text">
<text>吴门医述</text>
</view>
</view>
<view class="app_item zmzm" @click="appjumpfun('zmzm')">
<view class="img">
<image src="@/static/logo_zmzm.png" mode="widthFix"></image>
</view>
<view class="text">
<text>众妙之门</text>
</view>
</view>
<view class="app_item fzds" @click="appjumpfun('nuttyreading')">
<view class="img">
<image src="@/static/logo_fzds.png" mode="widthFix"></image>
</view>
<view class="text">
<text>疯子读书</text>
</view>
</view>
</view>
<view class="cate_box">
<scroll-view scroll-x="true">
<view class="cate_list" v-if="cateList.length>0">
@@ -65,6 +39,7 @@
<view class="miaosha_list">
<view class="miaosha_item" @click="goGoodsDetail(v)"
v-for="(v, i) in seckillLst">
<text class="miaosha_youhui" v-if="v.isVipPrice==1&&v.vipPrice!=null&&v.vipPrice!=0">VIP优惠</text>
<image class="book_image" :src="v.productImages" mode="aspectFit"></image>
<view class="book_name">{{ v.productName }}</view>
</view>
@@ -152,12 +127,7 @@ export default {
name: "免费课程",
url: "/pages/curriculum/index/free",
imgUrl: require("@/static/icon/home_bg2.png")
},
{
name: "VIP情况",
url: "/pages/vip/index",
imgUrl: require("@/static/icon/home_bg3.png")
},
}
]
}else{
this.curriculumList = [
@@ -530,6 +500,7 @@ export default {
width: 180rpx;
margin-right: 20rpx;
text-align: center;
position: relative;
.book_image{
width: 180rpx;
@@ -588,7 +559,7 @@ export default {
background-color: rgba(125, 193, 240, 0.15);
display: block;
width: 100% !important;
height: 170rpx;
height: 180rpx;
}
}
}
@@ -645,4 +616,16 @@ export default {
}
}
}
.miaosha_youhui{
position: absolute;
left: 0rpx;
top: 0;
z-index: 99;
background: #ff1f00;
padding: 0 10rpx;
border-radius: 10rpx;
line-height: 38rpx;
font-size: 20rpx;
color: #fff;
}
</style>

View File

@@ -23,7 +23,6 @@
</view>
<view class="userInfoBox">
<view class="name">{{ userMes.nickname ? userMes.nickname : "未设置" }}</view>
<view class="phone" v-if="userMes.tel">手机号({{ userMes.tel }})</view>
<view class="vip_type" v-if="$platform=='android'&&textList.length>0">
<view class="vip_type_item" v-for="(item,index) in textList" :key="index">
{{item}}<image src="@/static/icon/chao_vip.png"></image>
@@ -320,6 +319,9 @@ export default {
}else if(item.type=='8'){
item.text = '心理学';
this.textList.push(item.text);
}else if(item.type=='9'){
item.text = '中西汇通学';
this.textList.push(item.text);
}else if(item.type=='1'){
item.text = '医学S';
}else if(item.type=='2'){

View File

@@ -802,7 +802,7 @@
afterRead(e) {
let that = this;
uni.uploadFile({
url: this.$baseUrl + "oss/fileoss",
url: this.$baseUrl + "/oss/fileoss",
filePath: e.file[0].url,
name: "file",
formData: {},

View File

@@ -59,7 +59,7 @@
<u--input v-model="loginForm.password" :password="!isSee" placeholder="请输入密码"
placeholder-class="grey" @confirm="onSubmit" class="form_input_box">
</u--input><u-icon class="active" :name="isSee ? 'eye-fill' : 'eye-off'" @click="isSee = !isSee"
:color="isSee ? '#018F89' : '#b0b0b0'" size="22"
:color="isSee ? '#7dc1f0' : '#b0b0b0'" size="22"
style="display: block; margin-right: 10rpx"></u-icon>
</view>
</view>

View File

@@ -206,7 +206,7 @@ export default {
let that = this;
for (var i = 0; i < e.file.length; i++) {
uni.uploadFile({
url: this.$baseUrl + "oss/fileoss",
url: this.$baseUrl + "/oss/fileoss",
filePath: e.file[i].url,
name: "file",
formData: {},
@@ -268,8 +268,8 @@ export default {
showCancel: false,
success: (res) => {
this.fileList1 = []
uni.navigateBack({
delta: 1
uni.switchTab({
url: '/pages/my/index'
});
}
});

View File

@@ -223,7 +223,7 @@ export default {
scrollViewHeight: 0,
urlList: {
list: "app/phone.do?getCourseDetail_new",
initPrepareOrder: "/common/buyOrder/initPrepareOrder",
initPrepareOrder: "common/buyOrder/initPrepareOrder",
buyOrder: "common/userVip/placeVipOrder",
curriculumInfo: "app/phone.do?getCourseInfo",
detailInfo: "app/phoneDoctor.do?getTaiHuClassInfo_new",

View File

@@ -4,17 +4,7 @@
<common-anchor-link style="width: 100%" baseHeight="200" ref="commonAnchorLink" :allDataList="allDataList"
titleKey="title" dataListKey="courseList" :titleStyle="{}" :tabStyle="{background: '#fff'}">
<template slot="otherContent" slot-scope="slotProps">
<view class="describe_block">
<view style=" display: flex; align-items: center;">
<uni-icons type="info" size="20" color="#fff"></uni-icons>
<text>购买VIP即可畅享更多专属权益</text>
</view>
<button class="saveBtn flexbox buyBtn" @click="toLogin()">
立即购买
</button>
</view>
<view v-if="curriculumData.image" style="padding-top:80rpx;">
<view v-if="curriculumData.image">
<image style="width: 100%" :src="curriculumData.image" mode="widthFix"></image>
</view>
<view v-else class="headImage" style="height: 400rpx; background-color: #f5f5f5"></view>

View File

@@ -0,0 +1,584 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 55;
objects = {
/* Begin PBXBuildFile section */
54F073D82D8807C600D76110 /* testApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54F073D72D8807C600D76110 /* testApp.swift */; };
54F073DA2D8807C600D76110 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54F073D92D8807C600D76110 /* ContentView.swift */; };
54F073DC2D8807C800D76110 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 54F073DB2D8807C800D76110 /* Assets.xcassets */; };
54F073DF2D8807C800D76110 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 54F073DE2D8807C800D76110 /* Preview Assets.xcassets */; };
54F073E92D8807C900D76110 /* testTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54F073E82D8807C900D76110 /* testTests.swift */; };
54F073F32D8807C900D76110 /* testUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54F073F22D8807C900D76110 /* testUITests.swift */; };
54F073F52D8807C900D76110 /* testUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54F073F42D8807C900D76110 /* testUITestsLaunchTests.swift */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
54F073E52D8807C900D76110 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 54F073CC2D8807C600D76110 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 54F073D32D8807C600D76110;
remoteInfo = test;
};
54F073EF2D8807C900D76110 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 54F073CC2D8807C600D76110 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 54F073D32D8807C600D76110;
remoteInfo = test;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
54F073D42D8807C600D76110 /* test.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = test.app; sourceTree = BUILT_PRODUCTS_DIR; };
54F073D72D8807C600D76110 /* testApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = testApp.swift; sourceTree = "<group>"; };
54F073D92D8807C600D76110 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
54F073DB2D8807C800D76110 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
54F073DE2D8807C800D76110 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
54F073E42D8807C900D76110 /* testTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = testTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
54F073E82D8807C900D76110 /* testTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = testTests.swift; sourceTree = "<group>"; };
54F073EE2D8807C900D76110 /* testUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = testUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
54F073F22D8807C900D76110 /* testUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = testUITests.swift; sourceTree = "<group>"; };
54F073F42D8807C900D76110 /* testUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = testUITestsLaunchTests.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
54F073D12D8807C600D76110 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
54F073E12D8807C900D76110 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
54F073EB2D8807C900D76110 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
54F073CB2D8807C600D76110 = {
isa = PBXGroup;
children = (
54F073D62D8807C600D76110 /* test */,
54F073E72D8807C900D76110 /* testTests */,
54F073F12D8807C900D76110 /* testUITests */,
54F073D52D8807C600D76110 /* Products */,
);
sourceTree = "<group>";
};
54F073D52D8807C600D76110 /* Products */ = {
isa = PBXGroup;
children = (
54F073D42D8807C600D76110 /* test.app */,
54F073E42D8807C900D76110 /* testTests.xctest */,
54F073EE2D8807C900D76110 /* testUITests.xctest */,
);
name = Products;
sourceTree = "<group>";
};
54F073D62D8807C600D76110 /* test */ = {
isa = PBXGroup;
children = (
54F073D72D8807C600D76110 /* testApp.swift */,
54F073D92D8807C600D76110 /* ContentView.swift */,
54F073DB2D8807C800D76110 /* Assets.xcassets */,
54F073DD2D8807C800D76110 /* Preview Content */,
);
path = test;
sourceTree = "<group>";
};
54F073DD2D8807C800D76110 /* Preview Content */ = {
isa = PBXGroup;
children = (
54F073DE2D8807C800D76110 /* Preview Assets.xcassets */,
);
path = "Preview Content";
sourceTree = "<group>";
};
54F073E72D8807C900D76110 /* testTests */ = {
isa = PBXGroup;
children = (
54F073E82D8807C900D76110 /* testTests.swift */,
);
path = testTests;
sourceTree = "<group>";
};
54F073F12D8807C900D76110 /* testUITests */ = {
isa = PBXGroup;
children = (
54F073F22D8807C900D76110 /* testUITests.swift */,
54F073F42D8807C900D76110 /* testUITestsLaunchTests.swift */,
);
path = testUITests;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
54F073D32D8807C600D76110 /* test */ = {
isa = PBXNativeTarget;
buildConfigurationList = 54F073F82D8807C900D76110 /* Build configuration list for PBXNativeTarget "test" */;
buildPhases = (
54F073D02D8807C600D76110 /* Sources */,
54F073D12D8807C600D76110 /* Frameworks */,
54F073D22D8807C600D76110 /* Resources */,
);
buildRules = (
);
dependencies = (
);
name = test;
productName = test;
productReference = 54F073D42D8807C600D76110 /* test.app */;
productType = "com.apple.product-type.application";
};
54F073E32D8807C900D76110 /* testTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 54F073FB2D8807C900D76110 /* Build configuration list for PBXNativeTarget "testTests" */;
buildPhases = (
54F073E02D8807C900D76110 /* Sources */,
54F073E12D8807C900D76110 /* Frameworks */,
54F073E22D8807C900D76110 /* Resources */,
);
buildRules = (
);
dependencies = (
54F073E62D8807C900D76110 /* PBXTargetDependency */,
);
name = testTests;
productName = testTests;
productReference = 54F073E42D8807C900D76110 /* testTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
54F073ED2D8807C900D76110 /* testUITests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 54F073FE2D8807C900D76110 /* Build configuration list for PBXNativeTarget "testUITests" */;
buildPhases = (
54F073EA2D8807C900D76110 /* Sources */,
54F073EB2D8807C900D76110 /* Frameworks */,
54F073EC2D8807C900D76110 /* Resources */,
);
buildRules = (
);
dependencies = (
54F073F02D8807C900D76110 /* PBXTargetDependency */,
);
name = testUITests;
productName = testUITests;
productReference = 54F073EE2D8807C900D76110 /* testUITests.xctest */;
productType = "com.apple.product-type.bundle.ui-testing";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
54F073CC2D8807C600D76110 /* Project object */ = {
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = 1;
LastSwiftUpdateCheck = 1320;
LastUpgradeCheck = 1320;
TargetAttributes = {
54F073D32D8807C600D76110 = {
CreatedOnToolsVersion = 13.2.1;
};
54F073E32D8807C900D76110 = {
CreatedOnToolsVersion = 13.2.1;
TestTargetID = 54F073D32D8807C600D76110;
};
54F073ED2D8807C900D76110 = {
CreatedOnToolsVersion = 13.2.1;
TestTargetID = 54F073D32D8807C600D76110;
};
};
};
buildConfigurationList = 54F073CF2D8807C600D76110 /* Build configuration list for PBXProject "test" */;
compatibilityVersion = "Xcode 13.0";
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
en,
Base,
);
mainGroup = 54F073CB2D8807C600D76110;
productRefGroup = 54F073D52D8807C600D76110 /* Products */;
projectDirPath = "";
projectRoot = "";
targets = (
54F073D32D8807C600D76110 /* test */,
54F073E32D8807C900D76110 /* testTests */,
54F073ED2D8807C900D76110 /* testUITests */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
54F073D22D8807C600D76110 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
54F073DF2D8807C800D76110 /* Preview Assets.xcassets in Resources */,
54F073DC2D8807C800D76110 /* Assets.xcassets in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
54F073E22D8807C900D76110 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
54F073EC2D8807C900D76110 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
54F073D02D8807C600D76110 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
54F073DA2D8807C600D76110 /* ContentView.swift in Sources */,
54F073D82D8807C600D76110 /* testApp.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
54F073E02D8807C900D76110 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
54F073E92D8807C900D76110 /* testTests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
54F073EA2D8807C900D76110 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
54F073F52D8807C900D76110 /* testUITestsLaunchTests.swift in Sources */,
54F073F32D8807C900D76110 /* testUITests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
54F073E62D8807C900D76110 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 54F073D32D8807C600D76110 /* test */;
targetProxy = 54F073E52D8807C900D76110 /* PBXContainerItemProxy */;
};
54F073F02D8807C900D76110 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 54F073D32D8807C600D76110 /* test */;
targetProxy = 54F073EF2D8807C900D76110 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin XCBuildConfiguration section */
54F073F62D8807C900D76110 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = dwarf;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_DYNAMIC_NO_PIC = NO;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
"$(inherited)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.2;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
ONLY_ACTIVE_ARCH = YES;
SDKROOT = iphoneos;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
};
name = Debug;
};
54F073F72D8807C900D76110 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
COPY_PHASE_STRIP = NO;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
GCC_C_LANGUAGE_STANDARD = gnu11;
GCC_NO_COMMON_BLOCKS = YES;
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.2;
MTL_ENABLE_DEBUG_INFO = NO;
MTL_FAST_MATH = YES;
SDKROOT = iphoneos;
SWIFT_COMPILATION_MODE = wholemodule;
SWIFT_OPTIMIZATION_LEVEL = "-O";
VALIDATE_PRODUCT = YES;
};
name = Release;
};
54F073F92D8807C900D76110 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_ASSET_PATHS = "\"test/Preview Content\"";
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "-.test";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Debug;
};
54F073FA2D8807C900D76110 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_ASSET_PATHS = "\"test/Preview Content\"";
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "-.test";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = YES;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
};
name = Release;
};
54F073FC2D8807C900D76110 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.2;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "-.testTests";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = NO;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/test.app/test";
};
name = Debug;
};
54F073FD2D8807C900D76110 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.2;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "-.testTests";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = NO;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/test.app/test";
};
name = Release;
};
54F073FF2D8807C900D76110 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "-.testUITests";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = NO;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TEST_TARGET_NAME = test;
};
name = Debug;
};
54F074002D8807C900D76110 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = "-.testUITests";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_EMIT_LOC_STRINGS = NO;
SWIFT_VERSION = 5.0;
TARGETED_DEVICE_FAMILY = "1,2";
TEST_TARGET_NAME = test;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
54F073CF2D8807C600D76110 /* Build configuration list for PBXProject "test" */ = {
isa = XCConfigurationList;
buildConfigurations = (
54F073F62D8807C900D76110 /* Debug */,
54F073F72D8807C900D76110 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
54F073F82D8807C900D76110 /* Build configuration list for PBXNativeTarget "test" */ = {
isa = XCConfigurationList;
buildConfigurations = (
54F073F92D8807C900D76110 /* Debug */,
54F073FA2D8807C900D76110 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
54F073FB2D8807C900D76110 /* Build configuration list for PBXNativeTarget "testTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
54F073FC2D8807C900D76110 /* Debug */,
54F073FD2D8807C900D76110 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
54F073FE2D8807C900D76110 /* Build configuration list for PBXNativeTarget "testUITests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
54F073FF2D8807C900D76110 /* Debug */,
54F074002D8807C900D76110 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 54F073CC2D8807C600D76110 /* Project object */;
}

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:">
</FileRef>
</Workspace>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEDidComputeMac32BitWarning</key>
<true/>
</dict>
</plist>

View File

@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>SchemeUserState</key>
<dict>
<key>test.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>0</integer>
</dict>
</dict>
</dict>
</plist>

View File

@@ -0,0 +1,11 @@
{
"colors" : [
{
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,98 @@
{
"images" : [
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "20x20"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "20x20"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "29x29"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "29x29"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "40x40"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "40x40"
},
{
"idiom" : "iphone",
"scale" : "2x",
"size" : "60x60"
},
{
"idiom" : "iphone",
"scale" : "3x",
"size" : "60x60"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "20x20"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "20x20"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "29x29"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "29x29"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "40x40"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "40x40"
},
{
"idiom" : "ipad",
"scale" : "1x",
"size" : "76x76"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "76x76"
},
{
"idiom" : "ipad",
"scale" : "2x",
"size" : "83.5x83.5"
},
{
"idiom" : "ios-marketing",
"scale" : "1x",
"size" : "1024x1024"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,6 @@
{
"info" : {
"author" : "xcode",
"version" : 1
}
}