名片个人版-0.01

This commit is contained in:
高健 2021-09-03 15:03:38 +08:00
parent 0b1a169901
commit b8cc34ad4b
19 changed files with 773 additions and 342 deletions

View File

@ -4224,6 +4224,34 @@ l .text-depblack {
padding: 10rpx 0rpx;
}
.play-box-shadow {
display: flex;
flex-direction: column;
width: 80%;
background-color: white;
border-radius: 15rpx;
align-items: center;
justify-content: center;
padding: 15rpx;
position: relative;
margin-bottom: 15rpx;
box-shadow: 0 4rpx 8rpx 0 rgba(0, 0, 0, 0.2), 0 6rpx 20rpx 0 rgba(0, 0, 0, 0.19);
}
.play-box-shadow-little {
display: flex;
flex-direction: column;
width: 100%;
background-color: white;
border-radius: 15rpx;
align-items: center;
justify-content: center;
padding: 15rpx;
position: relative;
margin-bottom: 15rpx;
box-shadow: 0 0 4rpx 0 rgba(0, 0, 0, 0.2), 0 0 10rpx 0 rgba(0, 0, 0, 0.04);
}
.page-box {
width: 100%;
padding: 15rpx;
@ -4279,6 +4307,26 @@ l .text-depblack {
border-radius: 50%;
}
.play-box-shadow image {
width: 60rpx;
height: 60rpx;
}
.play-box-shadow image:active {
background-color: rgb(204, 202, 202);
border-radius: 50%;
}
.play-box-shadow-little image {
width: 60rpx;
height: 60rpx;
}
.play-box-shadow-little image:active {
background-color: rgb(204, 202, 202);
border-radius: 50%;
}
.text-left input {
text-align: right;
}

View File

@ -8,8 +8,10 @@
<image src="{{cardUrl}}{{cardInfo.picturesTemplateBackgroundImage}}" alt="" class="card-bgImg"
wx:if="{{cardInfo.picturesTemplateBackgroundImage}}"></image>
<!-- 文字 -->
<view class="area-box" wx:for="{{areaList}}" data-cur="{{index}}" catchtap="giveFocus" wx:key="index"
style="position:absolute;top: {{(item.templateAreaTop / cardInfo.picturesTemplateHeight) * 100 + '%'}};left:{{(item.templateAreaLeft / cardInfo.picturesTemplateWidth) * 100 + '%'}};color:{{item.templateAreaFontColor}};;width:{{item.templateAreaWidth }}px;height:{{item.templateAreaHeight}}px;font-size:{{item.templateAreaFontSize}};font-style:{{item.templateAreaFontStyle}};font-weight:{{item.templateAreaFontBold}};text-align:{{item.templateAreaFontCenter}};line-height: {{item.templateAreaHeight}}px;"
<view
class="area-box {{item.templateAreaFontCenter == 'left' ? 'wrap-line' :''}} {{item.templateAreaFontCenter == 'center' ? 'wrap-center' :''}} {{item.templateAreaFontCenter == 'right' ? 'wrap-line' :''}} "
wx:for="{{areaList}}" data-cur="{{index}}" catchtap="giveFocus" wx:key="index"
style="position:absolute;top: {{(item.templateAreaTop / cardInfo.picturesTemplateHeight) * 100 + '%'}};left:{{(item.templateAreaLeft / cardInfo.picturesTemplateWidth) * 100 + '%'}};color:{{item.templateAreaFontColor}};;width:{{item.templateAreaWidth }}px;height:{{item.templateAreaHeight}}px;font-size:{{item.templateAreaFontSize}};font-style:{{item.templateAreaFontStyle}};font-weight:{{item.templateAreaFontBold}};text-align:{{item.templateAreaFontCenter}};"
wx:if="{{item.templateAreaServerLink == '1' && item.templateAreaType != '1'}}">
{{item.templateAreaFontValue}}
</view>

View File

@ -207,4 +207,17 @@
text-align: right;
color: #fd9494;
font-size: 24rpx;
}
/* 换行 */
.wrap-line {
white-space: pre-line;
}
/* 居中 */
.wrap-center {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}

View File

@ -27,7 +27,7 @@ Page({
curTypeId: '',
isShowOptions: false, //是否显示选项
curItemIndex: -1, //点击分享按钮弹出的
curTypeName: '全部'
},
/**
@ -56,17 +56,22 @@ Page({
if (res.data.length > 0) {
_self.setData({
optionsList: res.data,
curTypeId: res.data[0].dataId
})
//根据第一条获取数据
_self.getTempleteList()
}
var allItem = {
dataName: '全部',
dataId: '2'
}
var tempItem = {
dataName: '我的收藏',
dataId: '1'
}
_self.data.optionsList.unshift(allItem)
_self.data.optionsList.push(tempItem)
_self.setData({
curTypeId: res.data[0].dataId,
optionsList: _self.data.optionsList
})
})
@ -86,9 +91,11 @@ Page({
var _self = this
var id = e.currentTarget.dataset.id
var idx = e.currentTarget.dataset.idx
var name = e.currentTarget.dataset.name
_self.setData({
currentTypeIndex: idx,
curTypeId: id,
curTypeName:name ,
posterHistoryList: [],
posterTempleteList: [],
isShowOptions: false
@ -314,7 +321,7 @@ Page({
token: app.globalData.token
},
data: {
templateType: _self.data.curTypeId
templateType: _self.data.curTypeId == '2' ? '' : _self.data.curTypeId
}
})
.then(res => {
@ -385,7 +392,7 @@ Page({
},
data: {
mode: '2',
templateType: _self.data.curTypeId
templateType: _self.data.curTypeId == '2' ? '' : _self.data.curTypeId
}
})
.then(res => {

View File

@ -11,14 +11,15 @@
</van-tab>
</block>
</van-tabs>
<view style="width: 128rpx;" catchtap="showType">
筛选
<view style="width: 180rpx;text-align: center;" catchtap="showType">
{{curTypeName}}
<text class="cuIcon-triangledownfill"></text>
</view>
</view>
<view class="options-box" wx:if="{{isShowOptions}}">
<block wx:for="{{optionsList}}" wx:key="index">
<view class="item" catchtap="chooseType" data-id="{{item.dataId}}" data-idx="{{index}}">
<view class="item" catchtap="chooseType" data-id="{{item.dataId}}" data-idx="{{index}}"
data-name="{{item.dataName}}">
<view class="{{currentTypeIndex==index ? 'line-yellowlight2' : 'text-black'}}">{{item.dataName}}</view>
<text
class="{{currentTypeIndex==index ? 'cuIcon-radiobox line-yellowlight2' : 'cuIcon-round text-black'}}"></text>

View File

@ -254,5 +254,5 @@ Page({
})
},
})

View File

@ -8,8 +8,10 @@
<image src="{{imgUrl}}{{cardInfo.picturesTemplateBackgroundImage}}" alt="" class="card-bgImg"
wx:if="{{cardInfo.picturesTemplateBackgroundImage}}"></image>
<!-- 文字 -->
<view class="area-box" wx:for="{{areaList}}" data-cur="{{index}}" catchtap="giveFocus" wx:key="index"
style="position:absolute;top: {{(item.templateAreaTop / cardInfo.picturesTemplateHeight) * 100 + '%'}};left:{{(item.templateAreaLeft / cardInfo.picturesTemplateWidth) * 100 + '%'}};color:{{item.templateAreaFontColor}};;width:{{item.templateAreaWidth }}px;height:{{item.templateAreaHeight}}px;font-size:{{item.templateAreaFontSize}};font-style:{{item.templateAreaFontStyle}};font-weight:{{item.templateAreaFontBold}};text-align:{{item.templateAreaFontCenter}};line-height: {{item.templateAreaHeight}}px;"
<view
class="area-box {{item.templateAreaFontCenter == 'left' ? 'wrap-line' :''}} {{item.templateAreaFontCenter == 'center' ? 'wrap-center' :''}} {{item.templateAreaFontCenter == 'right' ? 'wrap-line' :''}} "
wx:for="{{areaList}}" data-cur="{{index}}" catchtap="giveFocus" wx:key="index"
style="position:absolute;top: {{(item.templateAreaTop / cardInfo.picturesTemplateHeight) * 100 + '%'}};left:{{(item.templateAreaLeft / cardInfo.picturesTemplateWidth) * 100 + '%'}};color:{{item.templateAreaFontColor}};;width:{{item.templateAreaWidth }}px;height:{{item.templateAreaHeight}}px;font-size:{{item.templateAreaFontSize}};font-style:{{item.templateAreaFontStyle}};font-weight:{{item.templateAreaFontBold}};text-align:{{item.templateAreaFontCenter}};"
wx:if="{{item.templateAreaServerLink == '1' && item.templateAreaType != '1'}}">
{{item.templateAreaFontValue}}
</view>

View File

@ -1,210 +1,222 @@
.card {
width: 100%;
height: 0;
position: relative;
box-sizing: border-box;
z-index: 100;
/* text-align: center; */
}
.card-bgImg {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.area-box {
white-space: nowrap;
background: none !important;
z-index: 111;
}
.area-box image {
width: 100%;
height: 100%;
}
.card-info {
padding-bottom: 100rpx;
width: 100%;
margin-top: 15rpx;
}
.card-title {
font-size: 30rpx;
background: #ffffff;
width: 100%;
padding: 15rpx;
}
.row {
display: flex;
border-bottom: 1px solid #EEE;
background: #ffffff;
border-bottom: 1rpx solid #f5f5f5;
}
.row-ver {
display: flex;
border-bottom: 1px solid #EEE;
border-bottom: 1rpx solid #f5f5f5;
flex-direction: column;
background-color: #ffffff;
padding: 15rpx;
}
.row-ver:nth-child(1) {
padding: 15rpx 15rpx 7.5rpx 15rpx;
}
.row-ver:last-child {
padding: 7.5rpx 15rpx 15rpx 15rpx;
}
.item-title {
flex: 1;
font-size: 32rpx;
line-height: 50rpx;
color: #808080;
}
.item-title-box {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
margin-top: 7.5rpx;
}
.item-input {
flex: 4;
box-sizing: border-box;
display: flex;
align-items: center;
margin-top: 15rpx;
}
.item-input input {
width: 100%;
text-align: left;
height: 50rpx;
font-size: 32rpx;
color: #333;
}
.item-input image {
max-width: 70%;
/* max-height: 120rpx; */
}
.item-code-input image {
max-width: 35%;
max-height: 160rpx;
}
.hide-link {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: rgba(0, 0, 0, 0.6);
z-index: 1000;
}
.hide {
position: absolute;
top: 50%;
left: 50%;
width: 60%;
transform: translate(-50%, -50%);
border-radius: 10rpx;
background: #fff;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.hide-btn {
display: flex;
width: 50%;
height: 60rpx;
background: #1d7ff0;
color: #fff;
font-size: 30rpx;
justify-content: center;
align-items: center;
border-bottom-left-radius: 10rpx;
border-bottom-right-radius: 10rpx;
}
.hide-btn:nth-child(1) {
background: #E6B980;
border-bottom-left-radius: 10rpx;
border-bottom-right-radius: 0rpx;
}
.hide-btn:last-child {
border-bottom-left-radius: 0rpx;
border-bottom-right-radius: 10rpx;
}
.hide-text {
font-size: 36rpx;
color: #000;
padding: 50rpx 30rpx;
}
.hide-title {
font-size: 43rpx;
color: #ffC107;
padding: 10rpx;
}
.hide-btn-box {
display: flex;
width: 100%;
justify-content: space-between;
}
.input-box {
width: 100%;
}
.content-box {
width: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
padding: 15rpx;
}
.cuIcon-cameraadd {
font-size: 60rpx;
}
.card-img-box {
display: flex;
flex-direction: row;
align-items: center;
margin-right: 40rpx;
justify-content: space-between;
}
.card-img-box image {
width: 200rpx;
height: 200rpx;
}
.hint-txt {
text-align: right;
color: #fd9494;
font-size: 24rpx;
}
width: 100%;
height: 0;
position: relative;
box-sizing: border-box;
z-index: 100;
/* text-align: center; */
}
.card-bgImg {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
}
.area-box {
white-space: nowrap;
background: none !important;
z-index: 111;
}
.area-box image {
width: 100%;
height: 100%;
}
.card-info {
padding-bottom: 100rpx;
width: 100%;
margin-top: 15rpx;
}
.card-title {
font-size: 30rpx;
background: #ffffff;
width: 100%;
padding: 15rpx;
}
.row {
display: flex;
border-bottom: 1px solid #EEE;
background: #ffffff;
border-bottom: 1rpx solid #f5f5f5;
}
.row-ver {
display: flex;
border-bottom: 1px solid #EEE;
border-bottom: 1rpx solid #f5f5f5;
flex-direction: column;
background-color: #ffffff;
padding: 15rpx;
}
.row-ver:nth-child(1) {
padding: 15rpx 15rpx 7.5rpx 15rpx;
}
.row-ver:last-child {
padding: 7.5rpx 15rpx 15rpx 15rpx;
}
.item-title {
flex: 1;
font-size: 32rpx;
line-height: 50rpx;
color: #808080;
}
.item-title-box {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
margin-top: 7.5rpx;
}
.item-input {
flex: 4;
box-sizing: border-box;
display: flex;
align-items: center;
margin-top: 15rpx;
}
.item-input input {
width: 100%;
text-align: left;
height: 50rpx;
font-size: 32rpx;
color: #333;
}
.item-input image {
max-width: 70%;
/* max-height: 120rpx; */
}
.item-code-input image {
max-width: 35%;
max-height: 160rpx;
}
.hide-link {
position: fixed;
top: 0;
bottom: 0;
left: 0;
right: 0;
background: rgba(0, 0, 0, 0.6);
z-index: 1000;
}
.hide {
position: absolute;
top: 50%;
left: 50%;
width: 60%;
transform: translate(-50%, -50%);
border-radius: 10rpx;
background: #fff;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.hide-btn {
display: flex;
width: 50%;
height: 60rpx;
background: #1d7ff0;
color: #fff;
font-size: 30rpx;
justify-content: center;
align-items: center;
border-bottom-left-radius: 10rpx;
border-bottom-right-radius: 10rpx;
}
.hide-btn:nth-child(1) {
background: #E6B980;
border-bottom-left-radius: 10rpx;
border-bottom-right-radius: 0rpx;
}
.hide-btn:last-child {
border-bottom-left-radius: 0rpx;
border-bottom-right-radius: 10rpx;
}
.hide-text {
font-size: 36rpx;
color: #000;
padding: 50rpx 30rpx;
}
.hide-title {
font-size: 43rpx;
color: #ffC107;
padding: 10rpx;
}
.hide-btn-box {
display: flex;
width: 100%;
justify-content: space-between;
}
.input-box {
width: 100%;
}
.content-box {
width: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
padding: 15rpx;
}
.cuIcon-cameraadd {
font-size: 60rpx;
}
.card-img-box {
display: flex;
flex-direction: row;
align-items: center;
margin-right: 40rpx;
justify-content: space-between;
}
.card-img-box image {
width: 200rpx;
height: 200rpx;
}
.hint-txt {
text-align: right;
color: #fd9494;
font-size: 24rpx;
}
/* 换行 */
.wrap-line {
white-space: pre-line;
}
/* 居中 */
.wrap-center {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}

View File

@ -39,6 +39,7 @@ Page({
isShowVideo: false, //是否显示视频编辑框
isShowLink: false, //是否显示链接输入框
isShowSelect: false, //是否显示选项弹框
isShowAudio: false, //是否显示录音弹框
curTextValue: '', //当前输入的文本内容
curLinkText: '', //当前链接输入的文本内容
isShowEdit: false, //是否显示编辑
@ -52,21 +53,29 @@ Page({
selDirection: '1', //选中的插入方向 1.插入到下面 2.插入的上面
isInsert: false, //是否显示插入选项
topBoxHeight: 100, //顶部类型选择框的高度
audioFile: null, //当前的录音文件
audioDuration: 0, //录音文件的时长
isRecording: false, //是否正在录音
optionsList: [{
id: '1',
name: '选项一'
name: '选项一',
isSel: false
}, {
id: '2',
name: '选项二'
name: '选项二',
isSel: false
}, {
id: '3',
name: '选项三'
name: '选项三',
isSel: false
}, {
id: '4',
name: '选项四'
name: '选项四',
isSel: false
}, {
id: '5',
name: '选项五'
name: '选项五',
isSel: false
}], //选项
},
@ -133,6 +142,7 @@ Page({
_self.chooseVideo()
break
case 'audio': //音频
_self.checkRecordPermission()
break
case 'photo': //图片
_self.chooseImg()
@ -141,6 +151,9 @@ Page({
_self.doChooseLocation()
break
case 'select': //选项
_self.setData({
isShowSelect: true
})
break
case 'link': //链接
_self.setData({
@ -329,7 +342,8 @@ Page({
onClose() {
this.setData({
isShowInput: false,
isShowLink: false
isShowLink: false,
isShowSelect: false
})
},
//输入框监听
@ -502,17 +516,283 @@ Page({
}
})
},
onHide() {
//选项选择
chooseTags(e) {
var _self = this
var idx = e.currentTarget.dataset.idx
var item = e.currentTarget.dataset.item
_self.data.optionsList[idx].isSel = !item.isSel
_self.setData({
optionsList: _self.data.optionsList
})
},
//保存选定的选项
doConfirmSel() {
var _self = this
var tempList = []
_self.data.optionsList.forEach(it => {
if (it.isSel) {
tempList.push(it)
}
})
var tempSel = {}
tempSel['type'] = 'select'
tempSel['valueList'] = tempList
_self.data.valueList.push(tempSel)
_self.data.optionsList.forEach(it => {
it.isSel = false
})
_self.setData({
valueList: _self.data.valueList,
isShowSelect: false,
optionsList: _self.data.optionsList
})
},
//确定音频
doConfirmAudio() {
var _self = this
var tempAudio = {}
tempAudio['type'] = 'audio'
tempAudio['value'] = _self.data.audioFile
_self.data.valueList.push(tempAudio)
_self.setData({
valueList: _self.data.valueList,
audioFile: null,
isShowAudio: false
})
},
//校验录音权限
checkRecordPermission() {
var _self = this
wx.getSetting({
success(res) {
if (!res.authSetting['scope.record']) {
wx.authorize({
scope: 'scope.record',
success() {
_self.setData({
isShowAudio: true
})
}
})
} else {
_self.setData({
isShowAudio: true
})
}
}
})
},
//开始录音
startRecord() {
var _self = this
//1.启动定时器用来记录时间
_self.data.setInter = setInterval(
function () {
var audioDuration = parseInt(_self.data.audioDuration + 1);
_self.setData({
audioDuration: parseInt(audioDuration),
isRecording: true
});
}, 1000)
//2.开始录音
_self.start()
},
//开始录音
start() {
console.log('开始录音')
const options = {
duration: 60000,
format: 'mp3', //音频格式,有效值 aac/mp3
}
//开始录音
recorderManager.start(options);
recorderManager.onStart(() => {
console.log('recorder start')
});
//错误回调
recorderManager.onError((res) => {
console.log(res);
_self.stop(false);
})
},
//结束录音
doEndRecord() {
var _self = this
clearInterval(_self.data.setInter);
//判断时长是否达到要求
recorderManager.stop();
recorderManager.onStop((res) => {
//进行录音文件上传
if (_self.data.audioDuration < 10) {
wx.showToast({
title: '录音时长需大于10秒',
icon: 'none'
})
} else {
//可以上传
// res tempFilePath 路径 duration 毫秒 fileSize 大小
res.isPlay = false
res.durationStr = _self.data.audioDuration + ''
res.duration = _self.data.audioDuration
res.totalDurationStr = '00:' + (_self.data.audioDuration > 9 ? _self.data.audioDuration : '0' + _self.data.audioDuration)
res.curDurationStr = '00:00'
res.curDuration = 0
res.isPlay = false
// _self.doUploadAudio(res)
_self.setData({
audioFile: res
})
}
_self.setData({
audioDuration: 0,
isRecording: false,
})
})
},
//删除录音
delAudio() {
var _self = this
wx.showModal({
title: '警告',
content: '确定要删除该条录音吗?',
success(res) {
if (res.confirm) {
_self.setData({
audioFile: null
})
}
}
})
},
//隐藏各类弹框
closePop() {
closePop(e) {
var type = e.currentTarget.dataset.type
var _self = this
if (type && type == 'audio') {
if (_self.data.audioFile != null) {
wx.showModal({
title: '警告',
content: '关闭录音弹窗将清除当前录制的音频文件,确定要关闭吗?',
success(res) {
if (res.confirm) {
_self.setData({
audioFile: null,
isShowAudio: false
})
}
}
})
} else {
_self.setData({
isShowAudio: false
})
}
}
this.setData({
isShowPhoto: false,
isShowEdit: false,
isShowVideo: false
isShowVideo: false,
isShowSelect: false,
})
},
//音频拖动
slider4change(e) {
var _self = this
var audio = e.currentTarget.dataset.item
if (audio.isPlay) {
innerAudioContext.seek(e.detail.value)
}
},
play(e) {
//进行播放
var audio = e.currentTarget.dataset.item
var _self = this
var type = e.currentTarget.dataset.type
var idx = e.currentTarget.dataset.idx
if (audio.isPlay) {
innerAudioContext.stop()
} else {
//找到该文件
innerAudioContext = wx.createInnerAudioContext()
// 播放音频文件
innerAudioContext.src = audio.tempFilePath
innerAudioContext.autoplay = true
}
//先需要停止其他录音文件的播放
innerAudioContext.onPlay(() => {
_self.data.audioFile.isPlay = true
_self.setData({
audioFile: _self.data.audioFile
})
});
innerAudioContext.onStop((res) => {
console.log('停止播放')
//重置文件的状态
_self.setAudioDefault()
})
innerAudioContext.onEnded((res) => {
console.log('播放结束')
//重置文件的状态
_self.setAudioDefault()
})
innerAudioContext.onError((res) => {
wx.showToast({
title: '播放失败',
icon: 'error'
})
_self.setAudioDefault()
})
innerAudioContext.onTimeUpdate(() => {
_self.data.audioFile.curDuration = innerAudioContext.currentTime
var time = Number.parseInt(_self.data.audioFile.curDuration)
_self.data.audioFile.curDurationStr = '00:' + (time > 9 ? time : '0' + time)
_self.setData({
audioFile: _self.data.audioFile
})
})
},
//设置录音文件恢复初始
setAudioDefault() {
var _self = this
//重置文件的状态
_self.data.audioFile.curDurationStr = '00:00'
_self.data.audioFile.curDuration = 0
_self.data.audioFile.isPlay = false
_self.setData({
audioFile: _self.data.audioFile
})
},
//倒退5秒
rewind(e) {
var _self = this
var index = e.currentTarget.dataset.index
var item = e.currentTarget.dataset.item
var idx = e.currentTarget.dataset.idx
var ix = e.currentTarget.dataset.i
if (item.isPlay) {
_self.data.dataList[index].list[idx].valueList[ix].curDuration = _self.data.dataList[index].list[idx].valueList[ix].curDuration - _self.data.speedStep
innerAudioContext.seek(_self.data.dataList[index].list[idx].valueList[ix].curDuration)
_self.setData({
dataList: _self.data.dataList
})
}
},
//快进5秒
speed(e) {
var _self = this
var index = e.currentTarget.dataset.index
var item = e.currentTarget.dataset.item
var idx = e.currentTarget.dataset.idx
var ix = e.currentTarget.dataset.i
if (item.isPlay) {
_self.data.dataList[index].list[idx].valueList[ix].curDuration = _self.data.dataList[index].list[idx].valueList[ix].curDuration + _self.data.speedStep
innerAudioContext.seek(_self.data.dataList[index].list[idx].valueList[ix].curDuration)
_self.setData({
dataList: _self.data.dataList
})
}
},
onUnload() {
chooseLocation.setLocation(null)
this.setData({

View File

@ -45,7 +45,7 @@
<view class="page-box-2" bindtap="hideEditBox" style="margin-top: {{topBoxHeight}}px;">
<!-- 输入的内容 -->
<block wx:if="{{valueList.length>0}}">
<view wx:for="{{valueList}}" wx:key="index" style="width: 100%;" style="margin-top: 15rpx;">
<view wx:for="{{valueList}}" wx:key="index" style="margin-top: 15rpx;width: 100%;">
<!-- 文本域 -->
<view wx:if="{{item.type=='text' || item.type=='textarea'}}" catchtap="showEditBox" class="item-box"
data-idx="{{index}}">
@ -102,7 +102,26 @@
</view>
<!-- 音频 -->
<view wx:if="{{item.type=='audio'}}" catchtap="showEditBox" class="item-box" data-idx="{{index}}">
<view class="play-box-shadow-little">
<view class="flex justify-between align-center" style="width:80%;">
<text>{{item.value.curDurationStr}}</text>
<slider class="flex-sub" bindchange="slider4change" min="{{0}}" max="{{item.value.duration}}"
value="{{item.value.curDuration}}" backgroundColor="#cacaca" activeColor="#1296db"
block-size="14" data-item="{{item.value}}" block-color="#1296db" data-idx="{{index}}" />
<text>{{item.value.totalDurationStr}}</text>
</view>
<view class="flex justify-between" style="width:80%;">
<image src="/images/ic_audio_rewind.png" mode="scaleToFill" catchtap="rewind"
data-idx="{{index}}" data-item="{{item.value}}">
</image>
<image src="{{item.value.isPlay ? '/images/ic_audio_playing.png':'/images/ic_audio_play.png'}}"
data-idx="{{index}}" mode="scaleToFill" catchtap="play" data-item="{{item.value}}">
</image>
<image src="/images/ic_audio_speed.png" mode="scaleToFill" catchtap="speed" data-idx="{{index}}"
data-item="{{item.value}}">
</image>
</view>
</view>
</view>
<!-- 地图 -->
<view wx:if="{{item.type=='map'}}" catchtap="showEditBox" class="item-box" data-idx="{{index}}">
@ -126,8 +145,16 @@
<view style="width: 100%;font-size: 32rpx;">{{item.value}}</view>
</view>
<!-- 选项 -->
<view wx:if="{{item.type=='select'}}" catchtap="showEditBox" class="item-box" data-idx="{{index}}">
<view wx:if="{{item.type=='select'}}" catchtap="showEditBox"
class="item-box {{currentIndex==index ? 'sel-border':''}}" data-idx="{{index}}">
<view
style="display: flex;flex-direction: row;justify-content: flex-start;align-items: center;flex-wrap: wrap;width: 100%;">
<block wx:for="{{item.valueList}}" wx:key="index" wx:for-item="options">
<view class="cu-tag bg-blue" style="margin:15rpx 15rpx 0rpx 15rpx;">
{{options.name}}
</view>
</block>
</view>
</view>
<view wx:if="{{currentIndex == index}}">
<view class="control-box">
@ -241,24 +268,43 @@
</van-popup>
<!-- 语音弹框 -->
<van-action-sheet show="{{ isShowAudio }}" title="语音介绍添加" bind:close="closePop" data-type="1"
style="padding-bottom:180rpx;">
<view class="flex flex-direction align-center" style="margin-top:10rpx;padding-bottom:80rpx;"
wx:if="{{audioFile==null}}">
<image src="{{isRecording? '/images/ic_voice_record.gif':'/images/ic_record_start.png'}}" mode="heightFix"
style="width:300rpx;height:300rpx;"></image>
<text>00:{{speck_time>9 ? speck_time : '0'+ speck_time}}</text>
<view class="cu-btn bg-blue radius margin-top-sm" style="width:70%;" bindlongpress="startRecord"
bindtouchend="doEndRecord">长按录音</view>
</view>
<!-- 存在录音文件 -->
<view class="flex flex-direction align-center" style="margin-top:10rpx;padding-bottom:80rpx;" wx:else>
<image src="{{audioFile.isPlay? '/images/ic_voice_record.gif':'/images/ic_record_start.png'}}" mode="heightFix"
style="width:300rpx;height:300rpx;"></image>
<text>{{audioFile.isPlay ? '播放中:'+speck_time+'秒' : '时长:'+audioFile.duration+'秒'}}</text>
<view class="flex" style="width:80%;">
<view class="cu-btn bg-blue radius margin-top-sm flex-sub" bindtap="playAudio">点击播放</view>
<view class="cu-btn bg-red radius margin-top-sm flex-sub margin-left" bindtap="delAudio">删除</view>
<van-action-sheet show="{{ isShowAudio }}" title="语音" bind:close="closePop" data-type="audio"
close-on-click-overlay="{{false}}" overlay="{{true}}" style="padding-bottom:180rpx;">
<view class="audio-box">
<view class="flex flex-direction align-center" style="margin-top:10rpx;padding-bottom:80rpx;width: 100%;"
wx:if="{{audioFile==null}}">
<image src="{{isRecording? '/images/ic_voice_record.gif':'/images/ic_record_start.png'}}" mode="heightFix"
style="width:300rpx;height:300rpx;"></image>
<text>00:{{audioDuration > 9 ? audioDuration : '0'+ audioDuration}}</text>
<view class="cu-btn bg-blue radius margin-top-sm" style="width:70%;" bindtouchstart="startRecord"
bindtouchend="doEndRecord">长按录音</view>
</view>
<!-- 存在录音文件 -->
<view style="width: 100%;display: flex;flex-direction: column;justify-content: center;align-items: center;"
wx:else>
<view class="play-box-shadow">
<view class="flex justify-between align-center" style="width:80%;">
<text>{{audioFile.curDurationStr}}</text>
<slider class="flex-sub" bindchange="slider4change" min="{{0}}" max="{{audioFile.duration}}"
value="{{audioFile.curDuration}}" backgroundColor="#cacaca" activeColor="#1296db"
block-size="14" data-item="{{audioFile}}" block-color="#1296db" />
<text>{{audioFile.totalDurationStr}}</text>
</view>
<view class="flex justify-between" style="width:80%;">
<image src="/images/ic_audio_rewind.png" mode="scaleToFill" bindtap="rewind"
data-item="{{audioFile}}">
</image>
<image src="{{audioFile.isPlay ? '/images/ic_audio_playing.png':'/images/ic_audio_play.png'}}"
mode="scaleToFill" bindtap="play" data-item="{{audioFile}}">
</image>
<image src="/images/ic_audio_speed.png" mode="scaleToFill" bindtap="speed"
data-item="{{audioFile}}">
</image>
</view>
<text class="cuIcon-roundclose" catchtap="delAudio"
style="position: absolute;top: -15rpx;right:-15rpx;font-size: 50rpx;color: #1296db;"></text>
</view>
<button class="cu-btn bg-blue" style="width:80%;margin-top: 15rpx;" bindtap="doConfirmAudio">确定</button>
</view>
</view>
</van-action-sheet>
@ -366,11 +412,15 @@
style="padding-bottom:180rpx;">
<view class="flex flex-direction align-center" style="margin-top:10rpx;padding-bottom:30rpx;">
<scroll-view style="height:320rpx;max-height:320rpx;padding:0rpx 20rpx;" scroll-y>
<view class="cu-capsule radius" wx:for="{{optionsList}}" wx:key="index">
<view class="cu-tag {{item.isSel ? 'bg-blue' : 'bg-gray' }}" catchtap="chooseTags" data-idx="{{index}}">
<view class="cu-capsule radius sel-item" wx:for="{{optionsList}}" wx:key="index">
<view class="cu-tag {{item.isSel ? 'bg-blue' : 'bg-gray' }}" catchtap="chooseTags" data-idx="{{index}}"
data-item="{{item}}">
{{item.name}}
</view>
</view>
</scroll-view>
<view style="width: 60%;margin-top: 15rpx;">
<button class="cu-btn bg-blue" style="width:100%" bindtap="doConfirmSel">确定</button>
</view>
</view>
</van-action-sheet>

View File

@ -215,4 +215,25 @@ van-action-sheet .noline:active {
.dir-parent-box .title {
width: 120rpx;
}
.sel-item {
margin: 15rpx;
}
/* 选中的条目边框 */
.sel-border {
border: 1rpx solid #E6B980;
border-radius: 10rpx;
padding-bottom: 15rpx;
}
/* 语音弹框 */
.audio-box {
display: flex;
flex-direction: row;
width: 100%;
justify-content: center;
align-items: center;
min-height: 400rpx;
}

View File

@ -61,6 +61,13 @@ Page({
})
return
}
if (_self.data.takeValue < 1) {
wx.showToast({
title: '最低提现1元',
icon: 'error'
})
return
}
if (_self.data.takeValue > (_self.data.accountInfo.accountMoney / 100)) {
wx.showToast({
title: '超过零钱余额',

View File

@ -15,12 +15,13 @@
<view class="cash-box">
<view class="title">提现金额</view>
<view class="input-box">
<view>¥</view>
<text style="line-height: 1.4rem;text-align: center;">¥</text>
<input type="digit" value="{{takeValue}}" bindinput="inputWatch" />
<view style="width: 25%;" catchtap="takeAll">全部提现</view>
</view>
</view>
<text class="cuIcon-edit text-white" style="font-size: 60rpx;position: absolute;top: 150rpx;right: 30rpx;" bindtap="toRecord"></text>
<text class="cuIcon-edit text-white" style="font-size: 60rpx;position: absolute;top: 150rpx;right: 30rpx;"
bindtap="toRecord"></text>
</view>
<view class="foot" style="padding: 15rpx;">
<button class="cu-btn bg-blue" style="width:100%" bindtap="doCash">申请提现</button>

View File

@ -83,7 +83,7 @@ Page({
var token = res.data.data.split('_')[0]
var isBind = res.data.data.split('_')[1]
self.setData({
isBindPhone: isBind
isBindPhone: isBind == 0
})
wx.setStorageSync('token', token)
wx.setStorageSync('bindPhone', isBind)
@ -571,9 +571,6 @@ Page({
//绑定过
goList: function () {
//TODO 测试
// wx.navigateTo({
// url: '/packagecard/paypage/paypage',
// })
wx.navigateTo({
url: '/packagecard/cardList/cardList',
})
@ -730,12 +727,6 @@ Page({
phoneNumber: phone,
})
}
// wx.navigateTo({
// url: '/packagecard/moments/publish/momentpublish',
// })
// wx.navigateTo({
// url: '/packagecard/moments/list/momentsshowlist',
// })
},
// 获取浏览数
getViewCount: function () {
@ -898,13 +889,17 @@ Page({
},
// 展示名片码
showBarCode: function () {
this.setData({
isNeedRefresh: false
})
var _self = this
// TODO 测试
wx.navigateTo({
url: '/packagecard/sharePage/cardcode?cardImg=' + _self.data.cardInfo.cardTemplateUsePhotoUrl + '&id=' + _self.data.cardInfo.cardTemplateUseBarcode,
url: '/packagecard/moments/publish/momentpublish',
})
// this.setData({
// isNeedRefresh: false
// })
// var _self = this
// wx.navigateTo({
// url: '/packagecard/sharePage/cardcode?cardImg=' + _self.data.cardInfo.cardTemplateUsePhotoUrl + '&id=' + _self.data.cardInfo.cardTemplateUseBarcode,
// })
},
// 隐藏名片码
hideBarCode: function () {

View File

@ -1,7 +1,7 @@
<cu-custom isBack="{{true}}">
<view slot="content">会员中心</view>
<view slot="content">收益记录</view>
</cu-custom>
<view class="page-box">
<view class="page-box" wx:if="{{recordList.length>0}}">
<block wx:for="{{recordList}}" wx:key="index">
<view class="item">
<view class="content">
@ -18,4 +18,8 @@
</view>
</block>
<van-loading wx:if="{{isLoadMore}}" size="24px">加载中...</van-loading>
</view>
<view wx:else style="margin-top:200rpx;width:100%;">
<van-empty description="暂无数据" />
</view>

View File

@ -38,7 +38,7 @@ Page({
})
}
_self.setData({
isBindPhone: isBind != 0
isBindPhone: isBind == 0
})
} catch (err) {
console.log(err)
@ -212,10 +212,12 @@ Page({
onShow() {
var name = wx.getStorageSync('name')
var userIcon = wx.getStorageSync('userIcon')
var isBind = wx.getStorageSync('bindPhone')
if (name) {
this.setData({
name: name,
userIcon: userIcon
userIcon: userIcon,
isBindPhone: isBind == 0
})
}
// this.getMenuState()
@ -313,21 +315,9 @@ Page({
path = it.configColumnGroupTargetUrl
}
})
if (path.indexOf('/cardList/cardList') != -1) {
if (_self.data.isPay) {
wx.navigateTo({
url: '/packagecard/cardList/cardList',
})
} else {
wx.navigateTo({
url: '/packagecard/paypage/paypage?displayTreaty=1',
})
}
} else {
wx.navigateTo({
url: path,
})
}
wx.navigateTo({
url: path,
})
},
//获取手机号进行绑定
getPhoneNumber(e) {
@ -400,10 +390,6 @@ Page({
wx.navigateTo({
url: '/pages/mine/income/incomelist',
})
},
//去提现
toCash() {
},
//会员中心
vipCenter() {
@ -431,8 +417,5 @@ Page({
wx.navigateTo({
url: '/packagecard/purse/takecash',
})
// wx.navigateTo({
// url: '/packagecard/paypage/paypage?price=0.01&teamprice=100&displayTreaty=1&type=1&code=111',
// })
}
})

View File

@ -87,7 +87,7 @@
<text>¥</text>
<text>{{accountInfo.sysMoney/100}}</text>
</view>
<view class="text-28">
<view class="text-28" catchtap="toStatistics">
<text>累计收益</text>
<text class="cuIcon-questionfill"></text>
</view>

View File

@ -2,47 +2,52 @@
<view slot="content">会员中心</view>
</cu-custom>
<view class="page-box" wx:if="{{!isDredge}}">
<!-- 会员信息卡片显示 -->
<view class="info-box bg-yellow-yellow">
<view class="base-info">
<image class="user-icon" src="{{userIcon}}" mode="scaleToFill"></image>
<view class="base-info-text-box">
<view class="name-box">
<view class="name">{{name}}</view>
<image src="/images/ic_vip_icon.png" mode="scaleToFill"></image>
<block wx:if="{{recordList.length > 0}}">
<!-- 会员信息卡片显示 -->
<view class="info-box bg-yellow-yellow">
<view class="base-info">
<image class="user-icon" src="{{userIcon}}" mode="scaleToFill"></image>
<view class="base-info-text-box">
<view class="name-box">
<view class="name">{{name}}</view>
<image src="/images/ic_vip_icon.png" mode="scaleToFill"></image>
</view>
<view wx:if="{{!payState.cardCharge}}">
会员将于{{payState.cardChargeEnd}}到期
</view>
<view wx:else>会员已于{{payState.cardChargeEnd}}到期</view>
</view>
<view wx:if="{{!payState.cardCharge}}">
会员将于{{payState.cardChargeEnd}}到期
</view>
<view bindtap="doRenew"
style="align-self: flex-end;margin-right: 15rpx;padding: 10rpx 15rpx;border-radius: 15rpx;border: 1rpx solid #ffffff;">
立即续费</view>
</view>
<block wx:for="{{recordList}}" wx:key="index">
<view class="item">
<image class="icon" src="{{item.cardChargeUserAvatarUrl}}" mode="scaleToFill"></image>
<view class="content">
<view class="title">{{item.cardChargeRemark}}</view>
<view class="hint-msg">支付时间:{{item.cardChargeOrderTime}}</view>
<view class="hint-msg">支付金额:<text
style="font-size: 32rpx;color: #E6B980;">¥{{item.cardChargePrice}}</text></view>
</view>
<view class="subscript">
<image src="/images/ic_hot_number_bg.png" mode="scaleToFill"></image>
<!-- 2:已核对账单,1:支付成功,0:待支付 -->
<block wx:if="{{item.cardChargeOrderStatus=='0'}}">
<view class="state">已取消</view>
</block>
<block wx:else>
<view class="state">支付成功</view>
</block>
</view>
<view wx:else>会员已于{{payState.cardChargeEnd}}到期</view>
</view>
</view>
<view bindtap="doRenew"
style="align-self: flex-end;margin-right: 15rpx;padding: 10rpx 15rpx;border-radius: 15rpx;border: 1rpx solid #ffffff;">
立即续费</view>
</view>
<block wx:for="{{recordList}}" wx:key="index">
<view class="item">
<image class="icon" src="{{item.cardChargeUserAvatarUrl}}" mode="scaleToFill"></image>
<view class="content">
<view class="title">{{item.cardChargeRemark}}</view>
<view class="hint-msg">支付时间:{{item.cardChargeOrderTime}}</view>
<view class="hint-msg">支付金额:<text
style="font-size: 32rpx;color: #E6B980;">¥{{item.cardChargePrice}}</text></view>
</view>
<view class="subscript">
<image src="/images/ic_hot_number_bg.png" mode="scaleToFill"></image>
<!-- 2:已核对账单,1:支付成功,0:待支付 -->
<block wx:if="{{item.cardChargeOrderStatus=='0'}}">
<view class="state">已取消</view>
</block>
<block wx:else>
<view class="state">支付成功</view>
</block>
</view>
</view>
</block>
<van-loading wx:if="{{isLoadMore}}" size="24px">加载中...</van-loading>
</block>
<van-loading wx:if="{{isLoadMore}}" size="24px">加载中...</van-loading>
<view wx:else style="margin-top:200rpx;width:100%;">
<van-empty description="暂无数据" />
</view>
</view>
<view class="page-box" wx:else>
<image src="/images/ic_pay_order_icon.png" style="width: 400rpx;height: 400rpx;align-self: center;"

View File

@ -1,15 +1,15 @@
var apis = {
url: 'http://192.168.0.115:8091/systemcard/',
userCenter: 'http://192.168.0.115:8091/systemcard/',
baseImgUrl: 'http://192.168.0.115:8091/systemcard/route/file/download/true/',
// url: 'http://192.168.0.115:8091/systemcard/',
// userCenter: 'http://192.168.0.115:8091/systemcard/',
// baseImgUrl: 'http://192.168.0.115:8091/systemcard/route/file/download/true/',
// url: 'https://cbc.wgink.ink/systemcard/',
// userCenter: 'https://cbc.wgink.ink/systemcard/',
// baseImgUrl: 'https://cbc.wgink.ink/systemcard/route/file/download/true/',
// url: 'https://www.tenlion.com.cn/systemcard/',
// userCenter: 'https://www.tenlion.com.cn/systemcard/',
// baseImgUrl: 'https://www.tenlion.com.cn/systemcard/route/file/download/true/',
url: 'https://www.tenlion.com.cn/systemcard/',
userCenter: 'https://www.tenlion.com.cn/systemcard/',
baseImgUrl: 'https://www.tenlion.com.cn/systemcard/route/file/download/true/',
// url: 'http://192.168.0.111:8091/systemcard/',
// userCenter: 'http://192.168.0.111:8091/systemcard/',