epmet 工作端 小程序
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

<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>