After Width: | Height: | Size: 7.4 KiB |
Before Width: | Height: | Size: 144 KiB After Width: | Height: | Size: 40 KiB |
Before Width: | Height: | Size: 192 KiB After Width: | Height: | Size: 43 KiB |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 74 KiB |
@ -0,0 +1,67 @@ |
|||
import { $wuxActionSheet } from '../../../../../components/dist/index' |
|||
|
|||
Page({ |
|||
|
|||
/** |
|||
* 页面的初始数据 |
|||
*/ |
|||
data: { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面加载 |
|||
*/ |
|||
onLoad(options) { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面初次渲染完成 |
|||
*/ |
|||
onReady() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面显示 |
|||
*/ |
|||
onShow() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面隐藏 |
|||
*/ |
|||
onHide() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 生命周期函数--监听页面卸载 |
|||
*/ |
|||
onUnload() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 页面相关事件处理函数--监听用户下拉动作 |
|||
*/ |
|||
onPullDownRefresh() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 页面上拉触底事件的处理函数 |
|||
*/ |
|||
onReachBottom() { |
|||
|
|||
}, |
|||
|
|||
/** |
|||
* 用户点击右上角分享 |
|||
*/ |
|||
onShareAppMessage() { |
|||
|
|||
} |
|||
}) |
@ -0,0 +1,3 @@ |
|||
{ |
|||
"usingComponents": {} |
|||
} |
@ -0,0 +1,244 @@ |
|||
<view class="content"> |
|||
<view class="personal-info"> |
|||
<view class="basic-info"> |
|||
<view class="item"> |
|||
<view class="field"> |
|||
<text class="must">*</text> |
|||
<view class="field-text">事件位置</view> |
|||
</view> |
|||
<view class="value-dl" bindtap="getPosition"> |
|||
<view class="di-name">{{addressContent}}</view> |
|||
<image class="di-but" src="../../images/dingwei.png" mode="aspectFit" /> |
|||
</view> |
|||
</view> |
|||
|
|||
|
|||
<view class="item"> |
|||
<view class="field field-d"> |
|||
<view class="field-text">详细地址</view> |
|||
</view> |
|||
<view class="value value-d"> |
|||
<view class="input" style="width: 100%;"> |
|||
<input type="text" |
|||
placeholder-class="placeholder-style" |
|||
value="{{ personalInfo.issueAddress }}" |
|||
placeholder="请输入准确位置,便于事件办理" |
|||
bindinput="bindIssueAddressInput" |
|||
cursor-spacing="14" |
|||
maxlength="100" /> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<!-- wx:if="{{streetList.length>0}}" --> |
|||
<view class="item"> |
|||
<view class="field"> |
|||
<text class="must">*</text> |
|||
<view class="field-text">所属街道</view> |
|||
</view> |
|||
<view class="value"> |
|||
<picker class="picker" |
|||
range="{{streetList}}" |
|||
range-key="label" |
|||
data-list-name="streetList" |
|||
data-id-key="streetId" |
|||
data-name-key="street" |
|||
bindchange="inputSyncPicker"> |
|||
<view class="picker-text" wx:if="{{personalInfo.street}}">{{personalInfo.street}}</view> |
|||
<view class="picker-text z-weak" wx:else>请选择</view> |
|||
<image class="menu-arrow" src="../../images/arrow.png" mode="aspectFit" /> |
|||
</picker> |
|||
</view> |
|||
</view> |
|||
<!-- wx:if="{{communityList.length>0}}" --> |
|||
<view class="item"> |
|||
<view class="field"> |
|||
<text class="must">*</text> |
|||
<view class="field-text">所属社区</view> |
|||
</view> |
|||
<view class="value" data-name="community" bindtap="organizationTip"> |
|||
<picker class="picker" |
|||
disabled="{{ communityList.length == 0 ? true : false }}" |
|||
range="{{communityList}}" |
|||
range-key="label" |
|||
data-list-name="communityList" |
|||
data-id-key="communityId" |
|||
data-name-key="community" |
|||
bindchange="inputSyncPicker"> |
|||
<view class="picker-text" wx:if="{{personalInfo.community}}">{{personalInfo.community}}</view> |
|||
<view class="picker-text z-weak" wx:else>请选择</view> |
|||
<image class="menu-arrow" src="../../images/arrow.png" mode="aspectFit" /> |
|||
</picker> |
|||
</view> |
|||
</view> |
|||
<!-- wx:if="{{gridList.length>0}}" --> |
|||
<view class="item"> |
|||
<view class="field"> |
|||
<text class="must">*</text> |
|||
<view class="field-text">所属网格</view> |
|||
</view> |
|||
<view class="value" data-name="grid" bindtap="organizationTip"> |
|||
<picker class="picker" |
|||
disabled="{{ gridList.length == 0 ? true : false }}" |
|||
range="{{gridList}}" |
|||
range-key="label" |
|||
data-list-name="gridList" |
|||
data-id-key="gridId" |
|||
data-name-key="grid" |
|||
bindchange="inputSyncPicker"> |
|||
<view class="picker-text" wx:if="{{personalInfo.grid}}">{{personalInfo.grid}}</view> |
|||
<view class="picker-text z-weak" wx:else>请选择</view> |
|||
<image class="menu-arrow" src="../../images/arrow.png" mode="aspectFit" /> |
|||
</picker> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="item"> |
|||
<view class="field"> |
|||
<text class="must">*</text> |
|||
<view class="field-text">是否公开</view> |
|||
</view> |
|||
<view class="value-mobile"> |
|||
<radio-group class="radio-group" bindchange="bindFlagChange"> |
|||
<radio checked="{{personalInfo.showFlag === '0'}}" value="0" color="#F82525" class="radio">不公开</radio> |
|||
<radio checked="{{personalInfo.showFlag === '1'}}" value="1" color="#F82525" class="radio">公开</radio> |
|||
</radio-group> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="item"> |
|||
<view class="field"> |
|||
<text class="must">*</text> |
|||
<view class="field-text">联系人姓名</view> |
|||
</view> |
|||
<view class="value"> |
|||
<view class="input"> |
|||
<input type="text" |
|||
placeholder-class="placeholder-style" |
|||
value="{{ personalInfo.contactName }}" |
|||
placeholder="请输入" |
|||
bindinput="bindContactNameInput" |
|||
cursor-spacing="14" |
|||
maxlength="100" /> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="item no-border-bottom" wx:if="{{getMobileType === 'wx'}}"> |
|||
<view class="field mobile-field"> |
|||
<text class="must">*</text> |
|||
<view class="field-text">手机号</view> |
|||
</view> |
|||
<view class="value-mobile"> |
|||
<input wx:if="{{ personalInfo.mobile }}" disabled="{{true}}" type="number" bindblur="bindMobileInput" bindinput="bindMobileInput" value="{{ personalInfo.mobile }}" placeholder-class="placeholder-style" placeholder="请获取手机号" /> |
|||
<button hover-class="button-hover" class="get-code" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">{{ personalInfo.mobile ? '重新获取' : '获取手机号'}}</button> |
|||
</view> |
|||
</view> |
|||
|
|||
<view class="item" wx:if="{{getMobileType === 'self'}}"> |
|||
<view class="field"> |
|||
<view class="must">*</view> |
|||
<view class="field-text">手机号</view> |
|||
</view> |
|||
<view class="value"> |
|||
<view class="input"> |
|||
<input |
|||
type="number" |
|||
bindblur="bindMobileInput" |
|||
bindinput="bindMobileInput" |
|||
value="{{personalInfo.mobile}}" |
|||
placeholder-class="placeholder-style" |
|||
placeholder="请输入手机号" /> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="item no-border-bottom" wx:if="{{getMobileType === 'self'}}"> |
|||
<view class="field"> |
|||
<text class="must">*</text> |
|||
<view class="field-text">验证码</view> |
|||
</view> |
|||
<view class="value-mobile"> |
|||
<input bindblur="bindSmsCodeInput" bindinput="bindSmsCodeInput" value="{{personalInfo.smsCode}}" placeholder-class="placeholder-style" placeholder="请输入验证码" /> |
|||
<button disabled="{{smsCodeText !== '获取验证码'}}" bindtap="getSmsCode" hover-class="button-hover" class="get-code">{{smsCodeText}}</button> |
|||
</view> |
|||
</view> |
|||
</view> |
|||
<view class="note" bindtap="changeGetMobileType">{{getMobileType === 'wx' ? '*如若获取手机号异常,请点击切换至手机号/验证码注册方式' : '*点击可切回至从微信获取手机号注册方式'}}</view> |
|||
</view> |
|||
|
|||
<view class="add-issue"> |
|||
<view class="issue-content"> |
|||
<view class="item"> |
|||
<view class="field"> |
|||
<text class="must">*</text> |
|||
<view class="field-text">问题描述</view> |
|||
</view> |
|||
</view> |
|||
<textarea maxlength="500" value="{{personalInfo.itemContent}}" bindblur="bindTextareaBlur" bindinput="bindTextareaInput" bindfocus="bindTextareaFocus"> |
|||
<view class="textarea-placeholder" wx:if="{{placeholderShow}}"> |
|||
<view>请输入主要问题内容(不少于10字)</view> |
|||
</view> |
|||
</textarea> |
|||
<view class="{{ uploadImageList.length < 4 ? 'image-list' : uploadImageList.length > 3 && uploadImageList.length < 7 ? 'image-list image-list-2' : uploadImageList.length > 6 && uploadImageList.length < 10 ? 'image-list image-list-3' : 'image-list image-list-4' }}"> |
|||
<view |
|||
class="image-item" |
|||
wx:for="{{uploadImageList}}" |
|||
wx:for-index="index" |
|||
wx:for-item="item" |
|||
wx:key="imageId"> |
|||
<image class="issue-image" src="{{item.imgUrl}}" /> |
|||
<image wx:if="{{!item.uploaded}}" class="loading" src="../../images/loading.gif" /> |
|||
<image bindtap="deleteImage" data-imageid="{{item.imageId}}" class="close" wx:else src="../../images/icon_close.png" /> |
|||
</view> |
|||
<!-- <image wx:if="{{uploadImageList.length < 3}}" src="../../images/ig_tianjiatupian@2x.png" bindtap="chooseImage" /> --> |
|||
</view> |
|||
<view class="audio" wx:if="{{recorderData.tempFilePath && !showRecord}}"> |
|||
<view class="delete-audio"> |
|||
<image bindtap="deleteRecord" src="../../images/icon_close.png" /> |
|||
</view> |
|||
<view class="control-button" wx:if="{{!uploadRecord.uploaded}}"> |
|||
<image src="../../images/loading.gif"/> |
|||
</view> |
|||
<block wx:else> |
|||
<view class="control-button"> |
|||
<image src="../../images/xiaozanting.png" wx:if="{{!isPlayAudio}}" bindtap="onPlayAudio"/> |
|||
<image src="../../images/xiaobofang.png" wx:else bindtap="onStopAudio"/> |
|||
</view> |
|||
<view class="control-line"> |
|||
<slider class="control-slider" value="{{audioTimeline}}" bindchange="sliderchange" min="0" max="100" block-size="15" selected-color="#fd6161"/> |
|||
<view class="line-time"> |
|||
<view class="time-text">{{recorderTimeCur}}</view> |
|||
<view class="time-text">{{recorderTimeMax}}</view> |
|||
</view> |
|||
</view> |
|||
</block> |
|||
</view> |
|||
<!-- <view class="{{ uploadImageList.length < 3 ? 'image-list' : uploadImageList.length > 2 && uploadImageList.length < 6 ? 'image-list image-list-2' : uploadImageList.length > 5 && uploadImageList.length < 9 ? 'image-list image-list-3' : 'image-list image-list-4' }}"> |
|||
<view |
|||
class="image-item" |
|||
wx:for="{{uploadImageList}}" |
|||
wx:for-index="index" |
|||
wx:for-item="item" |
|||
wx:key="imageId"> |
|||
<image class="issue-image" src="{{item.imgUrl}}" /> |
|||
<image wx:if="{{!item.uploaded}}" class="loading" src="../../../../images/loading.gif" /> |
|||
<image bindtap="deleteImage" data-imageid="{{item.imageId}}" class="close" wx:else src="../../images/icon_close.png" /> |
|||
</view> |
|||
<image wx:if="{{uploadImageList.length < 10}}" src="../../images/ig_tianjiatupian@2x.png" bindtap="chooseImage" /> |
|||
</view> |
|||
<view class="tip">*最多可添加10张图片</view> --> |
|||
</view> |
|||
|
|||
<view class="image-box"> |
|||
<!-- <view class="yg-zp">图片、录音</view> --> |
|||
<!-- <view class="yg-zp-1">图片不多于 10 张、录音不超过 1 分钟</view> --> |
|||
<view> |
|||
<image class="add-icon" src="../../images/tupian.png" bindtap="chooseImage"/> |
|||
<image class="add-icon" src="../../images/yuyin.png" bindtap="showRecordSheet"/> |
|||
</view> |
|||
|
|||
</view> |
|||
</view> |
|||
|
|||
<view class="submit-button"> |
|||
<button disabled="{{ submitDisabled }}" bindtap="submitPersonalInfo" hover-class="hover-submit">提交</button> |
|||
</view> |
|||
</view> |
@ -0,0 +1,158 @@ |
|||
/* subpages/demandCheck/pages/dissatisfied/demandCheck/demandCheck.wxss */ |
|||
.content { |
|||
width: 100%; |
|||
min-height: calc(100vh - 100rpx); |
|||
margin-top: 100rpx; |
|||
} |
|||
|
|||
.personal-info { |
|||
width: 100%; |
|||
height: 100%; |
|||
box-sizing: border-box; |
|||
padding: 0 20rpx; |
|||
overflow: hidden; |
|||
} |
|||
.basic-info { |
|||
width: 100%; |
|||
background: #fff; |
|||
border-radius: 16rpx; |
|||
box-sizing: border-box; |
|||
padding: 0 20rpx; |
|||
margin-top: 20rpx; |
|||
} |
|||
|
|||
.item { |
|||
border-bottom: 1rpx solid #e7eeee; |
|||
padding: 25rpx 0; |
|||
line-height: 60rpx; |
|||
display: flex; |
|||
justify-content: space-between; |
|||
} |
|||
.item .field { |
|||
position: relative; |
|||
box-sizing: border-box; |
|||
width: 300rpx; |
|||
padding-left: 25rpx; |
|||
} |
|||
|
|||
.field-d { |
|||
width: 220rpx !important; |
|||
} |
|||
.value-d{ |
|||
width: 450rpx !important; |
|||
} |
|||
.item .field.mobile-field { |
|||
width: 250rpx !important; |
|||
} |
|||
.item .field .must { |
|||
position: absolute; |
|||
top: 0; |
|||
left: 0; |
|||
margin: 0 auto; |
|||
color: #F61616; |
|||
font-size: 30rpx; |
|||
} |
|||
|
|||
.item .field .field-text { |
|||
font-size: 32rpx; |
|||
font-family: Source Han Serif SC; |
|||
font-weight: 400; |
|||
color: #333; |
|||
} |
|||
|
|||
.item .value { |
|||
position: relative; |
|||
width: 410rpx; |
|||
display: flex; |
|||
font-size: 32rpx; |
|||
font-family: Source Han Serif SC; |
|||
font-weight: 400; |
|||
color: #333; |
|||
line-height: 60rpx; |
|||
} |
|||
|
|||
.item .value-dl { |
|||
position: relative; |
|||
width: 410rpx; |
|||
display: flex; |
|||
font-size: 32rpx; |
|||
font-family: Source Han Serif SC; |
|||
font-weight: 400; |
|||
color: #333; |
|||
line-height: 60rpx; |
|||
align-items: center; |
|||
} |
|||
|
|||
.di-name{ |
|||
margin-right: 14rpx; |
|||
text-align: right; |
|||
width: calc(100% - 30rpx); |
|||
} |
|||
|
|||
.di-but{ |
|||
width: 30rpx; |
|||
height: 34rpx; |
|||
} |
|||
|
|||
.item .value input { |
|||
text-align: right; |
|||
font-size: 34rpx; |
|||
color: #333; |
|||
height: 100%; |
|||
width: 100%; |
|||
} |
|||
.item .value .picker { |
|||
position: relative; |
|||
width: 100%; |
|||
padding-right: 40rpx; |
|||
text-align: right; |
|||
} |
|||
|
|||
.item .value .picker .z-weak { |
|||
color: #999; |
|||
} |
|||
|
|||
.item .value .picker .menu-arrow { |
|||
position: absolute; |
|||
top: 20rpx; |
|||
right: 0; |
|||
width: 16rpx; |
|||
height: 23rpx; |
|||
} |
|||
.item .value-mobile { |
|||
position: relative; |
|||
width: 410rpx; |
|||
display: flex; |
|||
font-size: 32rpx; |
|||
font-family: Source Han Serif SC; |
|||
font-weight: 400; |
|||
color: #333; |
|||
line-height: 60rpx; |
|||
display: flex; |
|||
justify-content: flex-end; |
|||
} |
|||
.item .value-mobile .get-code { |
|||
padding: 0 15rpx; |
|||
height: 60rpx; |
|||
line-height: 60rpx; |
|||
background: linear-gradient(to right, #F40C0C, #FF4E4E); |
|||
color: #fff; |
|||
font-size: 24rpx; |
|||
border-radius: 6rpx; |
|||
margin: 0; |
|||
margin-left: 25rpx; |
|||
} |
|||
.item .value-mobile .button-hover { |
|||
background: rgb(175, 1, 1); |
|||
} |
|||
.item .value-mobile input { |
|||
text-align: right; |
|||
font-size: 34rpx; |
|||
color: #333; |
|||
height: 100%; |
|||
width: 55%; |
|||
} |
|||
.placeholder-style { |
|||
font-size: 28rpx; |
|||
color: #999; |
|||
} |