You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
424 lines
21 KiB
424 lines
21 KiB
<view class="complete-info" >
|
|
<block >
|
|
<view class="content">
|
|
<view class="personal-info {{isDisabled ? 'disabled' : ''}}">
|
|
<view class="basic-info">
|
|
|
|
<view class="item">
|
|
<view class="field">
|
|
<text class="must">*</text>
|
|
<view class="field-text">所属组织</view>
|
|
</view>
|
|
<view class="value-dl" bind:tap="showPicker">
|
|
<view class="{{agencyName?'di-name':'di-name1'}}">{{agencyName?agencyName:'请选择'}}</view>
|
|
|
|
<image class="di-but" src="../../../../../images/right.png" mode="aspectFit" />
|
|
</view>
|
|
</view>
|
|
<view class="item">
|
|
<view class="field">
|
|
<text class="must">*</text>
|
|
<view class="field-text">诉求类型</view>
|
|
</view>
|
|
<view class="value-mobile" wx:if="{{!optionsId}}">
|
|
<radio-group class="radio-group" bind:change="handleChangeType">
|
|
<radio checked="{{tabVal === '0'}}" value="0" checked="true" color="#4193fe" class="radio small-radio" style="font-size: 12px;">事件上报</radio>
|
|
<radio checked="{{tabVal === '1'}}" value="1" color="#4193fe" class="radio small-radio" style="font-size: 12px;">居民需求</radio>
|
|
<radio checked="{{tabVal === '2'}}" value="2" color="#4193fe" class="radio small-radio" style="font-size: 12px;">城管事件</radio>
|
|
</radio-group>
|
|
</view>
|
|
<view wx:else>
|
|
{{tabVal ==0?'事件上报':tabVal ==1?'居民需求':'城管事件'}}
|
|
</view>
|
|
</view>
|
|
<view class="item" wx:if="{{tabVal === '1'}}">
|
|
<view class="field" >
|
|
<text class="must">*</text>
|
|
<view class="field-text">需求类型</view>
|
|
</view>
|
|
<view class="value-dl" bind:tap="showMeasurePicker">
|
|
<view class="di-name">{{categoryName?categoryName:'请选择'}}</view>
|
|
<image class="di-but" src="../../../../../images/right.png" mode="aspectFit" />
|
|
</view>
|
|
</view>
|
|
<view class="item" wx:if="{{tabVal === '1'}}">
|
|
<view class="field" >
|
|
<text class="must">*</text>
|
|
<view class="field-text">上报类型</view>
|
|
</view>
|
|
<view class="value-dl" bind:tap="showReportTypePicker">
|
|
<view class="di-name">{{reportTypeName?reportTypeName:'请选择'}}</view>
|
|
<image class="di-but" src="../../../../../images/right.png" mode="aspectFit" />
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="add-issue">
|
|
<view class="issue-content">
|
|
<view class="item1">
|
|
<view class="field">
|
|
<text class="must">*</text>
|
|
<view class="field-text">{{tabVal==='1'?'需求描述':'事件描述'}}</view>
|
|
</view>
|
|
</view>
|
|
<textarea class="{{isDisabled ? 'disabled' : ''}}" maxlength="500" value="{{fmData.content}}" bindblur="bindTextareaInput" bindinput="bindTextareaInput" bindfocus="bindTextareaFocus" placeholder="请输入事件描述(不超过500字)">
|
|
</textarea>
|
|
<!-- 语音播放 -->
|
|
<view class="audio-play" wx:if="{{fmData.voiceList.length>0&& (tabVal==0 || tabVal==2)}}">
|
|
<view class="audio-play-left">
|
|
<image src="../../../images/zt.png" mode="" bind:tap="handlePlay" wx:if="{{!hasPlay}}"/>
|
|
<image src="../../../images/bf.png" mode="" bind:tap="handlePlay" wx:else/>
|
|
<slider value="{{stepValue}}" min="0" max="{{totalMax}}" bindchange="slideChange" bindchanging="handleSlideMove" class="audio-slider" active-color="#3A80E7" block-color="#3A80E7" block-size="2" />
|
|
<view class="audio-time">{{totalTime}}</view>
|
|
</view>
|
|
<image src="../../../images/sc.png" bind:tap="handleAudioDel" mode=""/>
|
|
</view>
|
|
|
|
<view class="mkf-img" bindtap="showRecordSheet" wx:if="{{fmData.voiceList.length<=0 && (tabVal==0 || tabVal==2)}}">
|
|
<image src="../../../images/mkf.png" mode="widthFix"/> 您也可以语音输入描述
|
|
</view>
|
|
</view>
|
|
<!-- 上传图片 -->
|
|
<view class="image-box" wx:if="{{tabVal == 0 || tabVal==2}}">
|
|
<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-list-label">
|
|
<view class="field-text">上传图片</view>
|
|
</view>
|
|
<view
|
|
class="image-item"
|
|
wx:for="{{uploadImageList}}"
|
|
wx:for-index="index"
|
|
wx:for-item="item"
|
|
wx:key="imageId">
|
|
<image class="issue-image" src="{{item.ossUrl.url}}" />
|
|
<image wx:if="{{!item.uploaded}}" class="loading" src="../../../images/loading.gif" />
|
|
<image bindtap="deleteImage" data-imageid="{{item.imageId}}" class="close" wx:else src="../../../images/sc.png" />
|
|
</view>
|
|
<image class="{{isDisabled ? 'disabled' : ''}}" wx:if="{{uploadImageList.length < 3}}" src="../../../images/ig_tianjiatupian@2x.png" bindtap="chooseImage" />
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="personal-info {{isDisabled ? 'disabled' : ''}}">
|
|
<view class="basic-info {{isDisabled ? 'disabled' : ''}}">
|
|
<view class="item">
|
|
<view class="field">
|
|
<text class="must">*</text>
|
|
<view class="field-text">{{tabVal === '1'?'需求时间':'发生时间'}}</view>
|
|
</view>
|
|
<view class="value-dl" bind:tap="showTimePicker">
|
|
<view class="{{agencyName?'di-name':'di-name1'}}">{{showTime?showTime:'请选择'}}</view>
|
|
<image class="di-but" src="../../../../../images/right.png" mode="aspectFit" />
|
|
</view>
|
|
</view>
|
|
<view class="item" wx:if="{{tabVal ==='1'}}">
|
|
<view class="field">
|
|
<text class="must">*</text>
|
|
<view class="field-text">服务时间 </view>
|
|
</view>
|
|
<view class="value-dl" bind:tap="showTimePickerW">
|
|
<view class="di-name">{{showWantServiceTimeTime?showWantServiceTimeTime:'请选择'}}</view>
|
|
<image class="di-but" src="../../../../../images/right.png" mode="aspectFit" />
|
|
</view>
|
|
</view>
|
|
<view class="item" wx:if="{{tabVal === '0' || tabVal === '2'}}">
|
|
<view class="field">
|
|
<text class="must">*</text>
|
|
<view class="field-text">发生地点</view>
|
|
</view>
|
|
<view class="value-dl" bind:tap="toughGetLocation">
|
|
<view class="di-name">{{addressContent}}</view>
|
|
<image class="di-but" src="../../../../../images/right.png" mode="aspectFit" />
|
|
</view>
|
|
</view>
|
|
<view class="item" wx:if="{{tabVal === '0' || tabVal === '1'}}">
|
|
<view class="field">
|
|
<text class="must">*</text>
|
|
<view class="field-text" >{{tabVal === '1'?'需求人':'联系人'}}</view>
|
|
</view>
|
|
<navigator hover-class="backC" class="value-dl" url="/subpages/demandCheck/pages/dissatisfied/searchResi/searchResi" >
|
|
<view class="{{resiName?'di-name':'di-name1'}}" >
|
|
{{resiName?resiName:'请选择'}}
|
|
</view>
|
|
<image class="di-but" src="../../../../../images/right.png" mode="aspectFit" />
|
|
</navigator>
|
|
</view>
|
|
<view class="item" wx:if="{{tabVal === '0' || tabVal === '1'}}">
|
|
<view class="field">
|
|
<text class="must">*</text>
|
|
<view class="field-text">联系电话</view>
|
|
</view>
|
|
<view hover-class="backC" class="value-dl" >
|
|
<!-- <view class="di-name" >
|
|
{{resiMobile?resiMobile:'请输入'}}
|
|
</view> -->
|
|
<input class="telInput" type="text" placeholder="请输入" value="{{resiMobile}}" bindblur="bindMobile"/>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="item" wx:if="{{tabVal === '2' || fmData.demandType==='chengguan'}}">
|
|
<view class="field">
|
|
<text class="must">*</text>
|
|
<view class="field-text-small">有无责任单位</view>
|
|
</view>
|
|
<view hover-class="backC" class="value-dl" >
|
|
<radio-group class="radio-group-small" bind:change="handleChangeResponsibleUnit">
|
|
<radio checked="{{ruTabVal === 'yes'}}" value="yes" checked="true" color="#4193fe" class="radio">有</radio>
|
|
<radio checked="{{ruTabVal === 'no'}}" value="no" color="#4193fe" class="radio" >无</radio>
|
|
</radio-group>
|
|
</view>
|
|
</view>
|
|
|
|
|
|
<view class="item" wx:if="{{tabVal === '2' && ruTabVal=== 'yes' && fmData.demandType==='chengguan'}}">
|
|
<view class="field">
|
|
<text class="must">*</text>
|
|
<view class="field-text">责任人</view>
|
|
</view>
|
|
<view hover-class="backC" class="value-dl" >
|
|
<input class="telInput" type="text" placeholder="请输入" value="{{responsibleName}}" bindblur="bindResponsibleName"/>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="item" wx:if="{{tabVal === '2' && ruTabVal=== 'yes' && fmData.demandType==='chengguan'}}">
|
|
<view class="field">
|
|
<text class="must">*</text>
|
|
<view class="field-text">责任人电话</view>
|
|
</view>
|
|
<view hover-class="backC" class="value-dl" >
|
|
<input class="telInput" type="text" placeholder="请输入" value="{{responsibleMobile}}" bindblur="bindResponsibleMobile"/>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="card" wx:if="{{fmData.status==='closed_case'}}">
|
|
<view class="title1" style="margin-bottom: 0;">满意度评价</view>
|
|
<view>
|
|
<view class="satisfy_image-row">
|
|
<block>
|
|
<view>
|
|
<image src="{{selBad?badurl_light:badurl}}" mode="aspectFill" bindtap="clickSatisfy" data-satisfy="bad"/>
|
|
</view>
|
|
</block>
|
|
<block>
|
|
<view>
|
|
<image src="{{selGood?goodurl_light:goodurl}}" mode="aspectFill" bindtap="clickSatisfy" data-satisfy="good"/>
|
|
</view>
|
|
</block>
|
|
<block>
|
|
<view>
|
|
<image src="{{selPerfect?perfecturl_light:perfecturl}}" mode="aspectFill" bindtap="clickSatisfy" data-satisfy="perfect"/>
|
|
</view>
|
|
</block>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="card" wx:if="{{(tabVal === '0' || tabVal === '2') && processData.length > 0}}">
|
|
<view class="title1" style="margin-bottom: 0;">处理进展</view>
|
|
<wux-steps wx:if="{{processData.length > 0}}" style="margin-top: 50rpx" direction="vertical" :current="0">
|
|
<wux-step wx:for="{{processData}}" wx:key="index" icon="none">
|
|
<view slot="title" class="step-container">
|
|
<view class="step-title" wx:if="{{item.agencyId}}">【指派】</view>
|
|
<view class="step-title" wx:if="{{!item.timeLimit}}">【完成并回复】</view>
|
|
<view class="step-title" wx:if="{{!item.agencyId && item.timeLimit}}">【{{ item.processName }}】
|
|
</view>
|
|
<view class="step-time">{{item.formattedTime}}</view>
|
|
</view>
|
|
<view slot="content">
|
|
<view wx:if="{{item.type === 'event'}}">
|
|
<view wx:if="{{item.agencyId}}">
|
|
<view class="card_content">
|
|
<view class="label1">指派人:</view>
|
|
<view class="value1">
|
|
{{ item.departmentName }}
|
|
</view>
|
|
</view>
|
|
<view class="card_content">
|
|
<view class="label1">指派部门:</view>
|
|
<view class="value1">
|
|
{{ item.agencyName }}
|
|
</view>
|
|
</view>
|
|
<view class="card_content">
|
|
<view class="label1">转办意见:</view>
|
|
<view class="value1">
|
|
{{ item.publicReply }}
|
|
</view>
|
|
</view>
|
|
<view class="card_content" wx:if="{{item.timeLimit && item.timeLimit!='null'}}">
|
|
<view class="label1">办结时限:</view>
|
|
<view class="value1">
|
|
{{ item.limitTime }}
|
|
</view>
|
|
</view>
|
|
<view class="card_content" wx:if="{{item.internalFile.length > 0}}">
|
|
<view class="label1">附件:</view>
|
|
<view class="value1">
|
|
<view class="image-row">
|
|
<block wx:for="{{item.internalFile}}" wx:key="*this">
|
|
<view wx:if="{{item.attachmentType === 'image'}}">
|
|
<image src="{{item.attachmentUrl}}" mode="aspectFill" bindtap="previewImage" data-url="{{item.attachmentUrl}}" />
|
|
</view>
|
|
</block>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view wx:else>
|
|
<view class="card_content">
|
|
<view class="label1">回复人:</view>
|
|
<view class="value1">
|
|
{{ item.departmentName }}
|
|
</view>
|
|
</view>
|
|
<view class="card_content">
|
|
<view class="label1">回复内容:</view>
|
|
<view class="value1">
|
|
{{ item.publicReply }}
|
|
</view>
|
|
</view>
|
|
<view class="card_content" wx:if="{{item.timeLimit && item.timeLimit!='null'}}">
|
|
<view class="label1">办结时限:</view>
|
|
<view class="value1">
|
|
{{ item.limitTime }}
|
|
</view>
|
|
</view>
|
|
|
|
<view class="card_content" wx:if="{{item.internalFile.length > 0}}">
|
|
<view class="label1">附件:</view>
|
|
<view class="value1">
|
|
<view class="image-row">
|
|
<block wx:for="{{item.internalFile}}" wx:key="*this">
|
|
<view wx:if="{{item.attachmentType === 'image'}}">
|
|
<image src="{{item.attachmentUrl}}" mode="aspectFill" bindtap="previewImage" data-url="{{item.attachmentUrl}}" />
|
|
</view>
|
|
<view wx:else>
|
|
<navigator url="{{item.attachmentUrl}}" data-url="{{item.attachmentUrl}}" bindtap="downloadFile" open-type="navigateTo" class="download-link">
|
|
下载附件
|
|
</navigator>
|
|
</view>
|
|
</block>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
|
|
</wux-step>
|
|
</wux-steps>
|
|
|
|
</view>
|
|
|
|
<view class="submit-button" wx:if="{{!optionsId}}">
|
|
<button disabled="{{ submitDisabled }}" bindtap="submitPersonalInfo" hover-class="hover-submit" >提交</button>
|
|
</view>
|
|
|
|
</view>
|
|
|
|
|
|
<view class="bto_btn" wx:if="{{optionsId && fmData.status!='' && fmData.status!='closed_case'}}">
|
|
<button hover-class="btn-hover" bind:tap="update" class="btn_blue" >{{isDisabled ? '修改' : '提交'}}</button>
|
|
<button bind:tap="delete" class="btn_yellow" wx:if="{{!isDisabled}}">删除</button>
|
|
<button bind:tap="process" class="btn_red" wx:if="{{tabVal === '0' || tabVal === '2'}}">处理</button>
|
|
</view>
|
|
|
|
<view class="bto_btn" wx:if="{{fmData.status==='closed_case' && fmData.satisfaction==='' }}">
|
|
<button bind:tap="comment" class="btn_blue" wx:if="{{selGood || selPerfect || selBad}}">提交满意度</button>
|
|
</view>
|
|
</block>
|
|
</view>
|
|
<view class="sheet-bg" wx:if="{{showRecord}}"></view>
|
|
<view class="record-actionsheet {{showRecord ? '' : 'record-actionsheet-hide'}}">
|
|
|
|
<view class="sound-cancle" bind:tap="hancleCancle">取消</view>
|
|
<view class="sound-time">{{recordingTime}}</view>
|
|
<view class="sound-operate">
|
|
<view class="sound-operate-del" bind:tap="handleRecordDel">
|
|
<image wx:if="{{isStart}}" src="../../../images/del.png" />
|
|
</view>
|
|
<view class="sound-operate-btn">
|
|
<view class="sound-circel">
|
|
<view wx:if="{{isStart}}" class="sound-circle-bd" bind:tap="handleRecord">
|
|
<view class="sound-play {{!hasStart && 'sound-play-stop'}}">
|
|
<view class="sound-play-item"></view>
|
|
<view class="sound-play-item"></view>
|
|
<view class="sound-play-item"></view>
|
|
<view class="sound-play-item"></view>
|
|
</view>
|
|
</view>
|
|
<view wx:else class="sound-circle-bd sound-circle-bg" bind:tap="handleOpenRecord"></view>
|
|
</view>
|
|
</view>
|
|
<view class="sound-operate-finish" bind:tap="recordStop">
|
|
<image wx:if="{{isStart}}" src="../../../images/save.png" />
|
|
</view>
|
|
</view>
|
|
<view class="sound-tips">
|
|
<view >点击发布语音内容</view>
|
|
<view >限10分钟内</view>
|
|
</view>
|
|
</view>
|
|
|
|
<wux-actionsheet id="wux-actionsheet" />
|
|
<!-- 需求时间/发生时间 -->
|
|
<wux-date-picker
|
|
visible="{{ visibleTime }}"
|
|
controlled
|
|
mode="datetime"
|
|
value="{{ fmData.happenTime }}"
|
|
lang="zh_CN"
|
|
minDate="{{minDate}}"
|
|
maxDate="{{maxDate}}"
|
|
bind:confirm="onConfirmDate"
|
|
bind:visibleChange="onVisibleChange"
|
|
bind:cancel="onCancel"
|
|
/>
|
|
|
|
<!-- 服务时间 bind:visibleChange="onVisibleChange"-->
|
|
<wux-date-picker
|
|
visible="{{ visibleTimeWantServiceTime }}"
|
|
controlled
|
|
mode="datetime"
|
|
value="{{ fmData.wantServiceTime }}"
|
|
lang="zh_CN"
|
|
minDate="{{minDate}}"
|
|
maxDate="{{maxDate}}"
|
|
bind:confirm="onConfirmWantServiceTime"
|
|
bind:cancel="onCancel"
|
|
/>
|
|
|
|
<wux-picker
|
|
options="{{ angencyList }}"
|
|
value="{{ fmData.gridId }}"
|
|
visible="{{angencyVisible}}"
|
|
controlled
|
|
cascade
|
|
bind:cancel="hidePickerAngency"
|
|
bind:confirm="onConfirmAngecy"
|
|
>
|
|
</wux-picker>
|
|
<wux-picker
|
|
options="{{ reportTypeList }}"
|
|
value="{{ form.reportType }}"
|
|
visible="{{reportTypeVisible}}"
|
|
controlled
|
|
cascade
|
|
bind:cancel="hidePickerReportType"
|
|
bind:confirm="onConfirmReportType"
|
|
>
|
|
</wux-picker>
|
|
<wux-picker
|
|
options="{{ measureList }}"
|
|
value="{{ measureValue }}"
|
|
visible="{{measureVisible}}"
|
|
defaultFieldNames="{{defaultMeasureNames}}"
|
|
cols="2"
|
|
controlled
|
|
cascade
|
|
bind:cancel="hidePickerMeasure"
|
|
bind:confirm="onConfirmMeasure"
|
|
>
|
|
</wux-picker>
|