|  |  |  | 
|---|
|  |  |  | <template> | 
|---|
|  |  |  | <view class="main_app"> | 
|---|
|  |  |  | <view class="status_wrap"> | 
|---|
|  |  |  | <view class="name">{{ info.categoryName }}</view> | 
|---|
|  |  |  | <view v-if="info.status == '0'" class="status">{{ | 
|---|
|  |  |  | statusMap[info.status] | 
|---|
|  |  |  | }}</view> | 
|---|
|  |  |  | <image | 
|---|
|  |  |  | v-if="info.status == '1'" | 
|---|
|  |  |  | src="@/static/ic_yizhenggai.png" | 
|---|
|  |  |  | mode="widthFix" | 
|---|
|  |  |  | class="status_img" | 
|---|
|  |  |  | ></image> | 
|---|
|  |  |  | <image | 
|---|
|  |  |  | v-if="info.status == '2'" | 
|---|
|  |  |  | src="@/static/ic_yituihui-1.png" | 
|---|
|  |  |  | mode="widthFix" | 
|---|
|  |  |  | class="status_img" | 
|---|
|  |  |  | ></image> | 
|---|
|  |  |  | <image | 
|---|
|  |  |  | v-if="info.status == '3' || info.status == '6'" | 
|---|
|  |  |  | src="@/static/ic_refused@2x.png" | 
|---|
|  |  |  | mode="widthFix" | 
|---|
|  |  |  | class="status_img" | 
|---|
|  |  |  | ></image> | 
|---|
|  |  |  | <view>{{ info.content }}</view> | 
|---|
|  |  |  | <view class="file_list"> | 
|---|
|  |  |  | <view | 
|---|
|  |  |  | class="img_wrap" | 
|---|
|  |  |  | v-for="item in info.submitFileList" | 
|---|
|  |  |  | :key="item.id" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <image | 
|---|
|  |  |  | v-if="item.type == 0" | 
|---|
|  |  |  | :src="item.fileurlFull" | 
|---|
|  |  |  | mode="widthFix" | 
|---|
|  |  |  | class="img" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | <video | 
|---|
|  |  |  | v-if="item.type == 1" | 
|---|
|  |  |  | :src="item.fileurlFull" | 
|---|
|  |  |  | class="img" | 
|---|
|  |  |  | controls | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="text_wrap"> | 
|---|
|  |  |  | <view class="line"> | 
|---|
|  |  |  | <text class="label">隐患区域:</text> | 
|---|
|  |  |  | <text>{{ info.areaName }}</text> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="line"> | 
|---|
|  |  |  | <text class="label">提报人:</text> | 
|---|
|  |  |  | <text>{{ info.memberName }} {{ info.memberPhone }}</text> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <!--  --> | 
|---|
|  |  |  | <view class="emyty"></view> | 
|---|
|  |  |  | <view v-if="info.status == 1" class="module_list"> | 
|---|
|  |  |  | <view class="item"> | 
|---|
|  |  |  | <view class="label">处理结果</view> | 
|---|
|  |  |  | <view class="value primaryColor">{{ statusMap[info.status] }}</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="item"> | 
|---|
|  |  |  | <view class="label">整改前</view> | 
|---|
|  |  |  | <view class="value"> | 
|---|
|  |  |  | <view | 
|---|
|  |  |  | class="adduser_list_item_ipt1_upload" | 
|---|
|  |  |  | v-for="(item, i) in info.dealBeforeFileList" | 
|---|
|  |  |  | :key="i" | 
|---|
|  |  |  | ><image | 
|---|
|  |  |  | v-if="item.type == 0" | 
|---|
|  |  |  | :src="item.fileurlFull" | 
|---|
|  |  |  | mode="widthFix" | 
|---|
|  |  |  | ></image | 
|---|
|  |  |  | ><video v-if="item.type == 1" :src="item.fileurlFull"></video | 
|---|
|  |  |  | ></view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="item"> | 
|---|
|  |  |  | <view class="label">整改后</view> | 
|---|
|  |  |  | <view class="value"> | 
|---|
|  |  |  | <view | 
|---|
|  |  |  | class="adduser_list_item_ipt1_upload" | 
|---|
|  |  |  | v-for="(item, i) in info.dealAfterFileList" | 
|---|
|  |  |  | :key="i" | 
|---|
|  |  |  | ><image | 
|---|
|  |  |  | v-if="item.type == 0" | 
|---|
|  |  |  | :src="item.fileurlFull" | 
|---|
|  |  |  | mode="widthFix" | 
|---|
|  |  |  | ></image | 
|---|
|  |  |  | ><video v-if="item.type == 1" :src="item.fileurlFull"></video | 
|---|
|  |  |  | ></view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="item"> | 
|---|
|  |  |  | <view class="label">整改说明</view> | 
|---|
|  |  |  | <view class="value">{{ info.checkInfo }}</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <!-- 流程 --> | 
|---|
|  |  |  | <view class="flow_wrap"> | 
|---|
|  |  |  | <view class="flow_title">处理流程</view> | 
|---|
|  |  |  | <view | 
|---|
|  |  |  | class="list" | 
|---|
|  |  |  | v-if=" | 
|---|
|  |  |  | info.approveDateVO != null && info.approveDateVO.approveList != null | 
|---|
|  |  |  | " | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <view | 
|---|
|  |  |  | class="item" | 
|---|
|  |  |  | v-for="(item, index) in info.approveDateVO.approveList" | 
|---|
|  |  |  | :key="item.id" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <view class="separate"></view> | 
|---|
|  |  |  | <view class="avatar"> | 
|---|
|  |  |  | <image | 
|---|
|  |  |  | class="img" | 
|---|
|  |  |  | :src=" | 
|---|
|  |  |  | item.faceImg | 
|---|
|  |  |  | ? item.faceImg | 
|---|
|  |  |  | : require('@/static/meeting/common/default_user@2x.png') | 
|---|
|  |  |  | " | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | <image | 
|---|
|  |  |  | v-if="item.status == 1" | 
|---|
|  |  |  | class="status" | 
|---|
|  |  |  | src="@/static/staff/liucheng_success@2x.png" | 
|---|
|  |  |  | mode="widthFix" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | <image | 
|---|
|  |  |  | v-if="item.status == 2" | 
|---|
|  |  |  | class="status" | 
|---|
|  |  |  | src="@/static/staff/liucheng_fail@2x.png" | 
|---|
|  |  |  | mode="widthFix" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="content"> | 
|---|
|  |  |  | <view class="head"> | 
|---|
|  |  |  | <view class="event">{{ item.title }}</view> | 
|---|
|  |  |  | <view class="time" v-if="item.createDate">{{ | 
|---|
|  |  |  | item.createDate.slice(0, 16) | 
|---|
|  |  |  | }}</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="name_wrap"> | 
|---|
|  |  |  | <text | 
|---|
|  |  |  | >{{ item.memberName | 
|---|
|  |  |  | }}<text class="status" v-if="item.statusInfo" | 
|---|
|  |  |  | >({{ item.statusInfo }})</text | 
|---|
|  |  |  | ></text | 
|---|
|  |  |  | > | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view v-if="item.checkInfo" class="remark">{{ | 
|---|
|  |  |  | item.checkInfo | 
|---|
|  |  |  | }}</view> | 
|---|
|  |  |  | <!-- 抄送人 --> | 
|---|
|  |  |  | <view v-if="item.approveType == 1" class="children"> | 
|---|
|  |  |  | <view | 
|---|
|  |  |  | class="child" | 
|---|
|  |  |  | v-for="child in item.approveList" | 
|---|
|  |  |  | :key="child.id" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <image | 
|---|
|  |  |  | class="child_img" | 
|---|
|  |  |  | :src=" | 
|---|
|  |  |  | child.faceImg | 
|---|
|  |  |  | ? child.faceImg | 
|---|
|  |  |  | : require('@/static/meeting/common/default_user@2x.png') | 
|---|
|  |  |  | " | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | <view>{{ child.memberName }}</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="emyty"></view> | 
|---|
|  |  |  | <view v-if="info.approveDateVO!=null&& info.approveDateVO.canBeApproved!=null &&info.approveDateVO.canBeApproved ==1 && info.status == 0" class="main_footer" > | 
|---|
|  |  |  | <view class="btn" @click="handleBack">退回</view> | 
|---|
|  |  |  | <view class="btn transfer" @click="handleTransfer">转交</view> | 
|---|
|  |  |  | <view class="btn handle" @click="handleOpen">处理</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!-- 退回 --> | 
|---|
|  |  |  | <u-popup | 
|---|
|  |  |  | :show="isShowBack" | 
|---|
|  |  |  | :round="10" | 
|---|
|  |  |  | :safeAreaInsetBottom="true" | 
|---|
|  |  |  | mode="bottom" | 
|---|
|  |  |  | @close="isShowBack = false" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <view class="appr_modal"> | 
|---|
|  |  |  | <view class="title">隐患退回</view> | 
|---|
|  |  |  | <view class="df_sb"> | 
|---|
|  |  |  | <view>退回时间</view> | 
|---|
|  |  |  | <view | 
|---|
|  |  |  | class="df_ac" | 
|---|
|  |  |  | @click="isShowBackDate = true" | 
|---|
|  |  |  | v-if="backParam.dealTime" | 
|---|
|  |  |  | >{{ backParam.dealTime }}<u-icon name="arrow-right"></u-icon | 
|---|
|  |  |  | ></view> | 
|---|
|  |  |  | <view @click="isShowBackDate = true" v-else class="placeholder9 df_ac" | 
|---|
|  |  |  | >请选择<u-icon name="arrow-right"></u-icon | 
|---|
|  |  |  | ></view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <view class="label">图片/视频</view> | 
|---|
|  |  |  | <view class="upload_wrap"> | 
|---|
|  |  |  | <view class="adduser_list_item_ipt1_upload" @click="showUpload = true" | 
|---|
|  |  |  | ><u-icon name="plus" color="rgb(153, 153, 153)" size="28"></u-icon> | 
|---|
|  |  |  | <view class="mt6">图片/视频</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view | 
|---|
|  |  |  | class="adduser_list_item_ipt1_upload" | 
|---|
|  |  |  | v-for="(item, i) in submitFileList" | 
|---|
|  |  |  | :key="i" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <u-icon | 
|---|
|  |  |  | class="close" | 
|---|
|  |  |  | size="20" | 
|---|
|  |  |  | name="close-circle-fill" | 
|---|
|  |  |  | color="red" | 
|---|
|  |  |  | @click="fileDel('submitFileList', i)" | 
|---|
|  |  |  | ></u-icon> | 
|---|
|  |  |  | <image | 
|---|
|  |  |  | v-if="item.type == 0" | 
|---|
|  |  |  | :src="item.fileurlFull" | 
|---|
|  |  |  | mode="widthFix" | 
|---|
|  |  |  | ></image | 
|---|
|  |  |  | ><video v-if="item.type == 1" :src="item.fileurlFull"></video | 
|---|
|  |  |  | ></view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="label">退回说明</view> | 
|---|
|  |  |  | <textarea | 
|---|
|  |  |  | v-model="backParam.checkInfo" | 
|---|
|  |  |  | placeholder="请详细描述现场情况,不少于10个字" | 
|---|
|  |  |  | placeholder-class="placeholder9" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | <view class="back_footer"> | 
|---|
|  |  |  | <view class="btn" @click="isShowBack = false">取消</view> | 
|---|
|  |  |  | <view class="btn agree" @click="onSubBack">提交</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </u-popup> | 
|---|
|  |  |  | <!-- 处理 --> | 
|---|
|  |  |  | <u-popup | 
|---|
|  |  |  | :show="isShowHandle" | 
|---|
|  |  |  | :round="10" | 
|---|
|  |  |  | :safeAreaInsetBottom="true" | 
|---|
|  |  |  | mode="bottom" | 
|---|
|  |  |  | @close="isShowHandle = false" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <view class="appr_modal"> | 
|---|
|  |  |  | <view class="title">隐患整改</view> | 
|---|
|  |  |  | <view class="df_sb"> | 
|---|
|  |  |  | <view>整改时间</view> | 
|---|
|  |  |  | <view | 
|---|
|  |  |  | class="df_ac" | 
|---|
|  |  |  | @click="isShowHandleDate = true" | 
|---|
|  |  |  | v-if="handleParam.dealTime" | 
|---|
|  |  |  | >{{ handleParam.dealTime }} | 
|---|
|  |  |  | <u-icon name="arrow-right"></u-icon> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view | 
|---|
|  |  |  | @click="isShowHandleDate = true" | 
|---|
|  |  |  | v-else | 
|---|
|  |  |  | class="placeholder9 df_ac" | 
|---|
|  |  |  | >请选择<u-icon name="arrow-right"></u-icon | 
|---|
|  |  |  | ></view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <view class="label"><text>*</text>整改前</view> | 
|---|
|  |  |  | <view class="upload_wrap"> | 
|---|
|  |  |  | <view | 
|---|
|  |  |  | class="adduser_list_item_ipt1_upload" | 
|---|
|  |  |  | @click="showUploadBe = true" | 
|---|
|  |  |  | ><u-icon name="plus" color="rgb(153, 153, 153)" size="28"></u-icon> | 
|---|
|  |  |  | <view class="mt6">图片/视频</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view | 
|---|
|  |  |  | class="adduser_list_item_ipt1_upload" | 
|---|
|  |  |  | v-for="(item, i) in dealBeforeFileList" | 
|---|
|  |  |  | :key="i" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <u-icon | 
|---|
|  |  |  | class="close" | 
|---|
|  |  |  | size="20" | 
|---|
|  |  |  | name="close-circle-fill" | 
|---|
|  |  |  | color="red" | 
|---|
|  |  |  | @click="fileDel('dealBeforeFileList', i)" | 
|---|
|  |  |  | ></u-icon> | 
|---|
|  |  |  | <image | 
|---|
|  |  |  | v-if="item.type == 0" | 
|---|
|  |  |  | :src="item.fileurlFull" | 
|---|
|  |  |  | mode="widthFix" | 
|---|
|  |  |  | ></image | 
|---|
|  |  |  | ><video v-if="item.type == 1" :src="item.fileurlFull"></video | 
|---|
|  |  |  | ></view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="label"><text>*</text>整改后</view> | 
|---|
|  |  |  | <view class="upload_wrap"> | 
|---|
|  |  |  | <view | 
|---|
|  |  |  | class="adduser_list_item_ipt1_upload" | 
|---|
|  |  |  | @click="showUploadAf = true" | 
|---|
|  |  |  | ><u-icon name="plus" color="rgb(153, 153, 153)" size="28"></u-icon> | 
|---|
|  |  |  | <view class="mt6">图片/视频</view></view | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <view | 
|---|
|  |  |  | class="adduser_list_item_ipt1_upload" | 
|---|
|  |  |  | v-for="(item, i) in dealAfterFileList" | 
|---|
|  |  |  | :key="i" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <u-icon | 
|---|
|  |  |  | class="close" | 
|---|
|  |  |  | size="20" | 
|---|
|  |  |  | name="close-circle-fill" | 
|---|
|  |  |  | color="red" | 
|---|
|  |  |  | @click="fileDel('dealAfterFileList', i)" | 
|---|
|  |  |  | ></u-icon> | 
|---|
|  |  |  | <image | 
|---|
|  |  |  | v-if="item.type == 0" | 
|---|
|  |  |  | :src="item.fileurlFull" | 
|---|
|  |  |  | mode="widthFix" | 
|---|
|  |  |  | ></image | 
|---|
|  |  |  | ><video v-if="item.type == 1" :src="item.fileurlFull"></video | 
|---|
|  |  |  | ></view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="label">整改说明</view> | 
|---|
|  |  |  | <textarea | 
|---|
|  |  |  | v-model="handleParam.checkInfo" | 
|---|
|  |  |  | placeholder="请详细描述现场情况,不少于10个字" | 
|---|
|  |  |  | placeholder-class="placeholder9" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | <view class="back_footer"> | 
|---|
|  |  |  | <view class="btn" @click="isShowHandle = false">取消</view> | 
|---|
|  |  |  | <view class="btn agree" @click="onSubmit">提交</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </u-popup> | 
|---|
|  |  |  | <!-- 上传 --> | 
|---|
|  |  |  | <u-popup :show="showUpload" @close="showUpload = false" closeOnClickOverlay> | 
|---|
|  |  |  | <view class="sel_upload_wrap"> | 
|---|
|  |  |  | <view class="btn" @click="uploadImage">选择图片</view> | 
|---|
|  |  |  | <view class="btn" @click="uploadVideo">选择视频</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </u-popup> | 
|---|
|  |  |  | <u-popup | 
|---|
|  |  |  | :show="showUploadBe" | 
|---|
|  |  |  | @close="showUploadBe = false" | 
|---|
|  |  |  | closeOnClickOverlay | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <view class="sel_upload_wrap"> | 
|---|
|  |  |  | <view class="btn" @click="uploadBeImage">选择图片</view> | 
|---|
|  |  |  | <view class="btn" @click="uploadBeVideo">选择视频</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </u-popup> | 
|---|
|  |  |  | <u-popup | 
|---|
|  |  |  | :show="showUploadAf" | 
|---|
|  |  |  | @close="showUploadAf = false" | 
|---|
|  |  |  | closeOnClickOverlay | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <view class="sel_upload_wrap"> | 
|---|
|  |  |  | <view class="btn" @click="uploadAfImage">选择图片</view> | 
|---|
|  |  |  | <view class="btn" @click="uploadAfVideo">选择视频</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </u-popup> | 
|---|
|  |  |  | <!-- 转交 --> | 
|---|
|  |  |  | <u-popup | 
|---|
|  |  |  | :show="isShowTransfer" | 
|---|
|  |  |  | :round="10" | 
|---|
|  |  |  | safeAreaInsetBottom | 
|---|
|  |  |  | mode="bottom" | 
|---|
|  |  |  | @close="isShowTransfer = false" | 
|---|
|  |  |  | > | 
|---|
|  |  |  | <view class="appr_modal"> | 
|---|
|  |  |  | <view class="title">选择员工</view> | 
|---|
|  |  |  | <view class="search_inp df_ac"> | 
|---|
|  |  |  | <image | 
|---|
|  |  |  | class="mr12 search" | 
|---|
|  |  |  | src="@/static/ic_search@2x.png" | 
|---|
|  |  |  | mode="widthFix" | 
|---|
|  |  |  | ></image> | 
|---|
|  |  |  | <input | 
|---|
|  |  |  | v-model="transferModel.name" | 
|---|
|  |  |  | @blur="getMemList()" | 
|---|
|  |  |  | type="text" | 
|---|
|  |  |  | placeholder="搜索部门/人员" | 
|---|
|  |  |  | placeholder-style="color: #999999;" | 
|---|
|  |  |  | /> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="member_list"> | 
|---|
|  |  |  | <view class="mt24 placeholder6">共{{ memberList.length }}条数据</view> | 
|---|
|  |  |  | <view v-for="item in memberList" :key="item.id" class="line"> | 
|---|
|  |  |  | <image | 
|---|
|  |  |  | :src=" | 
|---|
|  |  |  | item.faceImgFull | 
|---|
|  |  |  | ? item.faceImgFull | 
|---|
|  |  |  | : require('@/static/meeting/common/default_user@2x.png') | 
|---|
|  |  |  | " | 
|---|
|  |  |  | class="avatar" | 
|---|
|  |  |  | mode="" | 
|---|
|  |  |  | ></image> | 
|---|
|  |  |  | <view class="content"> | 
|---|
|  |  |  | <view class="info"> | 
|---|
|  |  |  | <text class="name">{{ item.name }}</text> | 
|---|
|  |  |  | <!-- <text class="tag">tag</text> --> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="depart">{{ item.companyName }}</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <image | 
|---|
|  |  |  | @click="changeMem(item)" | 
|---|
|  |  |  | v-if="transferParam.id == item.id" | 
|---|
|  |  |  | src="@/static/meeting/icon/ic_choose_sel@2x.png" | 
|---|
|  |  |  | mode="widthFix" | 
|---|
|  |  |  | class="checked" | 
|---|
|  |  |  | ></image> | 
|---|
|  |  |  | <image | 
|---|
|  |  |  | @click="changeMem(item)" | 
|---|
|  |  |  | v-else | 
|---|
|  |  |  | src="@/static/meeting/icon/ic_choose@2x.png" | 
|---|
|  |  |  | mode="widthFix" | 
|---|
|  |  |  | class="checked" | 
|---|
|  |  |  | ></image> | 
|---|
|  |  |  | <text></text> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="empty"></view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="Transfer_footer"> | 
|---|
|  |  |  | <view class="btn" @click="isShowTransfer = fales">取消</view> | 
|---|
|  |  |  | <view class="btn active" @click="enterTransfer">确认转交</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </u-popup> | 
|---|
|  |  |  | <!-- 退回时间 --> | 
|---|
|  |  |  | <u-datetime-picker | 
|---|
|  |  |  | :show="isShowBackDate" | 
|---|
|  |  |  | @confirm="confirmBackDate" | 
|---|
|  |  |  | @cancel="isShowBackDate = false" | 
|---|
|  |  |  | mode="datetime" | 
|---|
|  |  |  | ></u-datetime-picker> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <u-datetime-picker | 
|---|
|  |  |  | :minDate="new Date().getTime()" | 
|---|
|  |  |  | :show="isShowHandleDate" | 
|---|
|  |  |  | @confirm="confirmHandleDate" | 
|---|
|  |  |  | @cancel="isShowHandleDate = false" | 
|---|
|  |  |  | mode="datetime" | 
|---|
|  |  |  | ></u-datetime-picker> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <script> | 
|---|
|  |  |  | import { | 
|---|
|  |  |  | hiddenDangerDetail, | 
|---|
|  |  |  | uploadUrl, | 
|---|
|  |  |  | findHiddenAreaMemberList, | 
|---|
|  |  |  | dealHiddenDanger, | 
|---|
|  |  |  | transferHiddenDanger | 
|---|
|  |  |  | } from '@/api' | 
|---|
|  |  |  | import dayjs from 'dayjs' | 
|---|
|  |  |  | export default { | 
|---|
|  |  |  | data() { | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | isShowBack: false, | 
|---|
|  |  |  | param: {}, | 
|---|
|  |  |  | info: {}, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | id: '', | 
|---|
|  |  |  | type: '', | 
|---|
|  |  |  | cateList: [ | 
|---|
|  |  |  | { name: '访客申请', id: 0 }, | 
|---|
|  |  |  | { name: '访客报备', id: 1 }, | 
|---|
|  |  |  | { name: '用车申请', id: 2 }, | 
|---|
|  |  |  | { name: '隐患随手拍', id: 3 }, | 
|---|
|  |  |  | { name: '物流车申请', id: 4 }, | 
|---|
|  |  |  | ], | 
|---|
|  |  |  | statusMap: { | 
|---|
|  |  |  | 0: '待处理', | 
|---|
|  |  |  | 1: '已整改', | 
|---|
|  |  |  | 2: '已退回', | 
|---|
|  |  |  | 3: '审批未通过', | 
|---|
|  |  |  | 4: '已取消', | 
|---|
|  |  |  | 5: '他人或签', | 
|---|
|  |  |  | 6: '他人拒绝', | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | showUpload: false, | 
|---|
|  |  |  | isShowBackDate: false, | 
|---|
|  |  |  | submitFileList: [], | 
|---|
|  |  |  | backParam: {}, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | isShowHandle: false, | 
|---|
|  |  |  | handleParam: {}, | 
|---|
|  |  |  | isShowHandleDate: false, | 
|---|
|  |  |  | showUploadBe: false, | 
|---|
|  |  |  | showUploadAf: false, | 
|---|
|  |  |  | dealBeforeFileList: [], | 
|---|
|  |  |  | dealAfterFileList: [], | 
|---|
|  |  |  |  | 
|---|
|  |  |  | isShowTransfer: false, | 
|---|
|  |  |  | transferParam: {}, | 
|---|
|  |  |  | transferModel: {}, | 
|---|
|  |  |  | pagination: { | 
|---|
|  |  |  | page: 1, | 
|---|
|  |  |  | capacity: 50 | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | memberList: [] | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | onLoad(op) { | 
|---|
|  |  |  | this.id = op.id | 
|---|
|  |  |  | this.type = op.objType | 
|---|
|  |  |  | this.getDetail() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | methods: { | 
|---|
|  |  |  | handleOpen() { | 
|---|
|  |  |  | this.isShowHandle = true | 
|---|
|  |  |  | console.log('info', this.info) | 
|---|
|  |  |  | this.dealBeforeFileList = [...this.info.submitFileList] | 
|---|
|  |  |  | this.$set(this.handleParam, 'dealTime', dayjs().format('YYYY-MM-DD HH:mm:ss')) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | handleBack() { | 
|---|
|  |  |  | this.isShowBack = true | 
|---|
|  |  |  | this.submitFileList = [...this.info.submitFileList] | 
|---|
|  |  |  | this.$set(this.backParam, 'dealTime', dayjs().format('YYYY-MM-DD HH:mm:ss')) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | getDetail() { | 
|---|
|  |  |  | const { id } = this | 
|---|
|  |  |  | hiddenDangerDetail(id).then(res => { | 
|---|
|  |  |  | this.info = res.data | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | onSubmit() { | 
|---|
|  |  |  | const { dealBeforeFileList, dealAfterFileList, handleParam } = this | 
|---|
|  |  |  | if (dealBeforeFileList.length === 0) return uni.showToast({ | 
|---|
|  |  |  | title: '请上传整改前图片或视频', | 
|---|
|  |  |  | icon: 'none' | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | if (dealAfterFileList.length === 0) return uni.showToast({ | 
|---|
|  |  |  | title: '请上传整改后图片或视频', | 
|---|
|  |  |  | icon: 'none' | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | dealHiddenDanger({ | 
|---|
|  |  |  | ...handleParam, | 
|---|
|  |  |  | dealBeforeFileList: dealBeforeFileList, | 
|---|
|  |  |  | dealAfterFileList: dealAfterFileList, | 
|---|
|  |  |  | status: 1, | 
|---|
|  |  |  | id: this.id | 
|---|
|  |  |  | }).then(res => { | 
|---|
|  |  |  | if (res.code === 200) { | 
|---|
|  |  |  | this.isShowHandle = false | 
|---|
|  |  |  | setTimeout(() => { | 
|---|
|  |  |  | uni.showToast({ | 
|---|
|  |  |  | title: '操作成功', | 
|---|
|  |  |  | icon: 'success' | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | uni.navigateBack() | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | enterTransfer() { | 
|---|
|  |  |  | const { transferParam, id } = this | 
|---|
|  |  |  | if (!transferParam.id) return uni.showToast({ | 
|---|
|  |  |  | title: '请选择人员', | 
|---|
|  |  |  | icon: 'none' | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | transferHiddenDanger({ | 
|---|
|  |  |  | checkUserId: transferParam.id, | 
|---|
|  |  |  | id | 
|---|
|  |  |  | }).then(res => { | 
|---|
|  |  |  | if (res.code === 200) { | 
|---|
|  |  |  | this.isShowTransfer = false | 
|---|
|  |  |  | setTimeout(() => { | 
|---|
|  |  |  | uni.showToast({ | 
|---|
|  |  |  | title: '操作成功', | 
|---|
|  |  |  | icon: 'success' | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | uni.navigateBack() | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | changeMem(e) { | 
|---|
|  |  |  | this.transferParam = e | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | handleTransfer() { | 
|---|
|  |  |  | this.isShowTransfer = true | 
|---|
|  |  |  | this.getMemList() | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | getMemList() { | 
|---|
|  |  |  | findHiddenAreaMemberList({ | 
|---|
|  |  |  | model: { | 
|---|
|  |  |  | ...this.transferModel, | 
|---|
|  |  |  | id: this.info.areaId | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ...this.pagination, | 
|---|
|  |  |  | }).then(res => { | 
|---|
|  |  |  | this.memberList = res.data || [] | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | confirmBackDate(e) { | 
|---|
|  |  |  | this.$set(this.backParam, 'dealTime', dayjs(e.value).format('YYYY-MM-DD HH:mm:ss')) | 
|---|
|  |  |  | this.isShowBackDate = false | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | confirmHandleDate(e) { | 
|---|
|  |  |  | this.$set(this.handleParam, 'dealTime', dayjs(e.value).format('YYYY-MM-DD HH:mm:ss')) | 
|---|
|  |  |  | this.isShowHandleDate = false | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | onSubBack() { | 
|---|
|  |  |  | const { submitFileList, backParam } = this | 
|---|
|  |  |  | dealHiddenDanger({ | 
|---|
|  |  |  | ...backParam, | 
|---|
|  |  |  | dealBeforeFileList: submitFileList, | 
|---|
|  |  |  | status: 2, | 
|---|
|  |  |  | id: this.id | 
|---|
|  |  |  | }).then(res => { | 
|---|
|  |  |  | if (res.code === 200) { | 
|---|
|  |  |  | this.isShowBack = false | 
|---|
|  |  |  | setTimeout(() => { | 
|---|
|  |  |  | uni.showToast({ | 
|---|
|  |  |  | title: '操作成功', | 
|---|
|  |  |  | icon: 'success' | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | uni.navigateBack() | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | fileDel(str, i) { | 
|---|
|  |  |  | this[str].splice(i, 1) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | uploadBeImage() { | 
|---|
|  |  |  | this.showUploadBe = false | 
|---|
|  |  |  | let token = uni.getStorageSync('token') || '' | 
|---|
|  |  |  | uni.chooseImage({ | 
|---|
|  |  |  | count: 4, | 
|---|
|  |  |  | success: (chooseImageRes) => { | 
|---|
|  |  |  | uni.showLoading({ title: '上传中', mask: true }) | 
|---|
|  |  |  | const tempFilePaths = chooseImageRes.tempFilePaths | 
|---|
|  |  |  | let imgs = tempFilePaths.map((value, index) => { | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | name: 'file', | 
|---|
|  |  |  | uri: value | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | uni.uploadFile({ | 
|---|
|  |  |  | url: `${uploadUrl}`, | 
|---|
|  |  |  | files: imgs, | 
|---|
|  |  |  | name: 'file', | 
|---|
|  |  |  | formData: { | 
|---|
|  |  |  | folder: 'HIDDEN_DANGER_FILE' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | header: { | 
|---|
|  |  |  | Dm_user_token: token | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | success: (uploadFileRes) => { | 
|---|
|  |  |  | let res = JSON.parse(uploadFileRes.data) | 
|---|
|  |  |  | let obj = { | 
|---|
|  |  |  | type: '0' | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if (res.data && res.data.length > 0) { | 
|---|
|  |  |  | res.data.forEach(i => { | 
|---|
|  |  |  | i.type = 0 | 
|---|
|  |  |  | i.fileurl = i.imgaddr | 
|---|
|  |  |  | i.fileurlFull = i.url | 
|---|
|  |  |  | this.dealBeforeFileList.push(i) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | fail(err) { | 
|---|
|  |  |  | console.log('err', err) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | complete() { | 
|---|
|  |  |  | uni.hideLoading() | 
|---|
|  |  |  | // if (i === chooseImageRes.tempFilePaths.length - 1) { | 
|---|
|  |  |  | //   uni.hideLoading() | 
|---|
|  |  |  | // } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | uploadBeVideo() { | 
|---|
|  |  |  | this.showUploadBe = false | 
|---|
|  |  |  | let token = uni.getStorageSync('token') || '' | 
|---|
|  |  |  | uni.chooseVideo({ | 
|---|
|  |  |  | success: (chooseImageRes) => { | 
|---|
|  |  |  | uni.showLoading({ title: '上传中', mask: true }) | 
|---|
|  |  |  | uni.uploadFile({ | 
|---|
|  |  |  | url: `${uploadUrl}`, | 
|---|
|  |  |  | filePath: chooseImageRes.tempFilePath, | 
|---|
|  |  |  | header: { | 
|---|
|  |  |  | Dm_user_token: token | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | name: 'file', | 
|---|
|  |  |  | formData: { | 
|---|
|  |  |  | folder: 'HIDDEN_DANGER_FILE' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | success: (uploadFileRes) => { | 
|---|
|  |  |  | let res = JSON.parse(uploadFileRes.data) | 
|---|
|  |  |  | if (res.data && res.data.length > 0) { | 
|---|
|  |  |  | res.data.forEach(i => { | 
|---|
|  |  |  | i.type = 1 | 
|---|
|  |  |  | i.fileurl = i.imgaddr | 
|---|
|  |  |  | i.fileurlFull = i.url | 
|---|
|  |  |  | this.dealBeforeFileList.push(i) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | complete() { | 
|---|
|  |  |  | uni.hideLoading() | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | uploadAfImage() { | 
|---|
|  |  |  | this.showUploadAf = false | 
|---|
|  |  |  | let token = uni.getStorageSync('token') || '' | 
|---|
|  |  |  | uni.chooseImage({ | 
|---|
|  |  |  | count: 4, | 
|---|
|  |  |  | success: (chooseImageRes) => { | 
|---|
|  |  |  | uni.showLoading({ title: '上传中', mask: true }) | 
|---|
|  |  |  | const tempFilePaths = chooseImageRes.tempFilePaths | 
|---|
|  |  |  | let imgs = tempFilePaths.map((value, index) => { | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | name: 'file', | 
|---|
|  |  |  | uri: value | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | uni.uploadFile({ | 
|---|
|  |  |  | url: `${uploadUrl}`, | 
|---|
|  |  |  | files: imgs, | 
|---|
|  |  |  | name: 'file', | 
|---|
|  |  |  | formData: { | 
|---|
|  |  |  | folder: 'HIDDEN_DANGER_FILE' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | header: { | 
|---|
|  |  |  | Dm_user_token: token | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | success: (uploadFileRes) => { | 
|---|
|  |  |  | let res = JSON.parse(uploadFileRes.data) | 
|---|
|  |  |  | if (res.data && res.data.length > 0) { | 
|---|
|  |  |  | res.data.forEach(i => { | 
|---|
|  |  |  | i.type = 0 | 
|---|
|  |  |  | i.fileurl = i.imgaddr | 
|---|
|  |  |  | i.fileurlFull = i.url | 
|---|
|  |  |  | this.dealAfterFileList.push(i) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | fail(err) { | 
|---|
|  |  |  | console.log('err', err) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | complete() { | 
|---|
|  |  |  | uni.hideLoading() | 
|---|
|  |  |  | // if (i === chooseImageRes.tempFilePaths.length - 1) { | 
|---|
|  |  |  | //   uni.hideLoading() | 
|---|
|  |  |  | // } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | uploadAfVideo() { | 
|---|
|  |  |  | this.showUploadAf = false | 
|---|
|  |  |  | let token = uni.getStorageSync('token') || '' | 
|---|
|  |  |  | uni.chooseVideo({ | 
|---|
|  |  |  | success: (chooseImageRes) => { | 
|---|
|  |  |  | uni.showLoading({ title: '上传中', mask: true }) | 
|---|
|  |  |  | uni.uploadFile({ | 
|---|
|  |  |  | url: `${uploadUrl}`, | 
|---|
|  |  |  | filePath: chooseImageRes.tempFilePath, | 
|---|
|  |  |  | header: { | 
|---|
|  |  |  | Dm_user_token: token | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | name: 'file', | 
|---|
|  |  |  | formData: { | 
|---|
|  |  |  | folder: 'HIDDEN_DANGER_FILE' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | success: (uploadFileRes) => { | 
|---|
|  |  |  | let res = JSON.parse(uploadFileRes.data) | 
|---|
|  |  |  | if (res.data && res.data.length > 0) { | 
|---|
|  |  |  | res.data.forEach(i => { | 
|---|
|  |  |  | i.type = 1 | 
|---|
|  |  |  | i.fileurl = i.imgaddr | 
|---|
|  |  |  | i.fileurlFull = i.url | 
|---|
|  |  |  | this.dealAfterFileList.push(i) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | complete() { | 
|---|
|  |  |  | uni.hideLoading() | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | uploadImage() { | 
|---|
|  |  |  | this.showUpload = false | 
|---|
|  |  |  | let token = uni.getStorageSync('token') || '' | 
|---|
|  |  |  | uni.chooseImage({ | 
|---|
|  |  |  | count: 4, | 
|---|
|  |  |  | success: (chooseImageRes) => { | 
|---|
|  |  |  | uni.showLoading({ title: '上传中', mask: true }) | 
|---|
|  |  |  | const tempFilePaths = chooseImageRes.tempFilePaths | 
|---|
|  |  |  | let imgs = tempFilePaths.map((value, index) => { | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | name: 'file', | 
|---|
|  |  |  | uri: value | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | uni.uploadFile({ | 
|---|
|  |  |  | url: `${uploadUrl}`, | 
|---|
|  |  |  | files: imgs, | 
|---|
|  |  |  | name: 'file', | 
|---|
|  |  |  | formData: { | 
|---|
|  |  |  | folder: 'HIDDEN_DANGER_FILE' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | header: { | 
|---|
|  |  |  | Dm_user_token: token | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | success: (uploadFileRes) => { | 
|---|
|  |  |  | let res = JSON.parse(uploadFileRes.data) | 
|---|
|  |  |  | if (res.data && res.data.length > 0) { | 
|---|
|  |  |  | res.data.forEach(i => { | 
|---|
|  |  |  | i.type = 0 | 
|---|
|  |  |  | i.fileurl = i.imgaddr | 
|---|
|  |  |  | i.fileurlFull = i.url | 
|---|
|  |  |  | this.submitFileList.push(i) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | fail(err) { | 
|---|
|  |  |  | console.log('err', err) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | complete() { | 
|---|
|  |  |  | uni.hideLoading() | 
|---|
|  |  |  | // if (i === chooseImageRes.tempFilePaths.length - 1) { | 
|---|
|  |  |  | //   uni.hideLoading() | 
|---|
|  |  |  | // } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | uploadVideo() { | 
|---|
|  |  |  | this.showUpload = false | 
|---|
|  |  |  | let token = uni.getStorageSync('token') || '' | 
|---|
|  |  |  | uni.chooseVideo({ | 
|---|
|  |  |  | success: (chooseImageRes) => { | 
|---|
|  |  |  | uni.showLoading({ title: '上传中', mask: true }) | 
|---|
|  |  |  | uni.uploadFile({ | 
|---|
|  |  |  | url: `${uploadUrl}`, | 
|---|
|  |  |  | filePath: chooseImageRes.tempFilePath, | 
|---|
|  |  |  | header: { | 
|---|
|  |  |  | Dm_user_token: token | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | name: 'file', | 
|---|
|  |  |  | formData: { | 
|---|
|  |  |  | folder: 'HIDDEN_DANGER_FILE' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | success: (uploadFileRes) => { | 
|---|
|  |  |  | let res = JSON.parse(uploadFileRes.data) | 
|---|
|  |  |  | if (res.data && res.data.length > 0) { | 
|---|
|  |  |  | res.data.forEach(i => { | 
|---|
|  |  |  | i.type = 1 | 
|---|
|  |  |  | i.fileurl = i.imgaddr | 
|---|
|  |  |  | i.fileurlFull = i.url | 
|---|
|  |  |  | this.submitFileList.push(i) | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | complete() { | 
|---|
|  |  |  | uni.hideLoading() | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </script> | 
|---|
|  |  |  | <style> | 
|---|
|  |  |  | page { | 
|---|
|  |  |  | background-color: #f7f7f7; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </style> | 
|---|
|  |  |  | <style lang="scss"> | 
|---|
|  |  |  | .main_app { | 
|---|
|  |  |  | background-color: #fff; | 
|---|
|  |  |  | padding-bottom: 0; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .flow_wrap { | 
|---|
|  |  |  | padding: 30rpx 0; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .flow_title { | 
|---|
|  |  |  | font-weight: 600; | 
|---|
|  |  |  | font-size: 32rpx; | 
|---|
|  |  |  | color: #222222; | 
|---|
|  |  |  | margin-bottom: 24rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .list { | 
|---|
|  |  |  | .item { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | margin-bottom: 48rpx; | 
|---|
|  |  |  | position: relative; | 
|---|
|  |  |  | .separate { | 
|---|
|  |  |  | position: absolute; | 
|---|
|  |  |  | width: 4rpx; | 
|---|
|  |  |  | height: 100%; | 
|---|
|  |  |  | background-color: #eeeeee; | 
|---|
|  |  |  | left: 40rpx; | 
|---|
|  |  |  | transform: translate(-50%, 0); | 
|---|
|  |  |  | top: 80rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .avatar { | 
|---|
|  |  |  | width: 80rpx; | 
|---|
|  |  |  | height: 80rpx; | 
|---|
|  |  |  | position: relative; | 
|---|
|  |  |  | margin-right: 20rpx; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .img { | 
|---|
|  |  |  | width: 80rpx; | 
|---|
|  |  |  | height: 80rpx; | 
|---|
|  |  |  | border-radius: 50%; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .status { | 
|---|
|  |  |  | width: 28rpx; | 
|---|
|  |  |  | height: 28rpx; | 
|---|
|  |  |  | border-radius: 50%; | 
|---|
|  |  |  | position: absolute; | 
|---|
|  |  |  | right: 0; | 
|---|
|  |  |  | bottom: 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .content { | 
|---|
|  |  |  | flex: 1; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .head { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | justify-content: space-between; | 
|---|
|  |  |  | margin-bottom: 4rpx; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .event { | 
|---|
|  |  |  | font-size: 30rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .time { | 
|---|
|  |  |  | font-size: 26rpx; | 
|---|
|  |  |  | color: #999999; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .name_wrap { | 
|---|
|  |  |  | font-size: 26rpx; | 
|---|
|  |  |  | color: #777777; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .status { | 
|---|
|  |  |  | color: $uni-color-primary; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .children { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | flex-wrap: wrap; | 
|---|
|  |  |  | margin-top: 12rpx; | 
|---|
|  |  |  | .child { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | flex-direction: column; | 
|---|
|  |  |  | justify-content: center; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  | margin-right: 12rpx; | 
|---|
|  |  |  | .child_img { | 
|---|
|  |  |  | width: 48rpx; | 
|---|
|  |  |  | height: 48rpx; | 
|---|
|  |  |  | border-radius: 50%; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .remark { | 
|---|
|  |  |  | margin-top: 12rpx; | 
|---|
|  |  |  | background-color: #f7f7f7; | 
|---|
|  |  |  | padding: 14rpx 20rpx; | 
|---|
|  |  |  | border-radius: 8rpx; | 
|---|
|  |  |  | font-size: 26rpx; | 
|---|
|  |  |  | color: #666666; | 
|---|
|  |  |  | line-height: 36rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .carbon { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | width: 590rpx; | 
|---|
|  |  |  | overflow-x: auto; | 
|---|
|  |  |  | margin-top: 12rpx; | 
|---|
|  |  |  | .carbon_item { | 
|---|
|  |  |  | text-align: center; | 
|---|
|  |  |  | flex-shrink: 0; | 
|---|
|  |  |  | width: 100rpx; | 
|---|
|  |  |  | image { | 
|---|
|  |  |  | width: 60rpx; | 
|---|
|  |  |  | height: 60rpx; | 
|---|
|  |  |  | margin: 0 auto; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | view { | 
|---|
|  |  |  | font-size: 26rpx; | 
|---|
|  |  |  | color: #777777; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | &:nth-last-child(1) { | 
|---|
|  |  |  | .separate { | 
|---|
|  |  |  | height: 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .adduser_list_item_ipt1_upload { | 
|---|
|  |  |  | width: 120rpx; | 
|---|
|  |  |  | height: 120rpx; | 
|---|
|  |  |  | margin-right: 24rpx; | 
|---|
|  |  |  | border: 2rpx solid #e5e5e5; | 
|---|
|  |  |  | background: #f7f7f7; | 
|---|
|  |  |  | color: #666666; | 
|---|
|  |  |  | font-size: 22rpx; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | flex-direction: column; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  | justify-content: center; | 
|---|
|  |  |  | position: relative; | 
|---|
|  |  |  | .close { | 
|---|
|  |  |  | position: absolute; | 
|---|
|  |  |  | right: -20rpx; | 
|---|
|  |  |  | top: -20rpx; | 
|---|
|  |  |  | z-index: 9999; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | image { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | height: 100%; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | video { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | max-height: 120rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .module_list { | 
|---|
|  |  |  | .item { | 
|---|
|  |  |  | padding: 30rpx 0; | 
|---|
|  |  |  | border-bottom: 1rpx solid #e5e5e5; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .label { | 
|---|
|  |  |  | font-size: 26rpx; | 
|---|
|  |  |  | color: #666666; | 
|---|
|  |  |  | margin-bottom: 20rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .value { | 
|---|
|  |  |  | font-size: 30rpx; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .avatar { | 
|---|
|  |  |  | margin-right: 20rpx; | 
|---|
|  |  |  | width: 120rpx; | 
|---|
|  |  |  | height: 120rpx; | 
|---|
|  |  |  | border-radius: 8rpx; | 
|---|
|  |  |  | border: 2rpx solid #e5e5e5; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .info { | 
|---|
|  |  |  | flex: 1; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | flex-direction: column; | 
|---|
|  |  |  | justify-content: space-between; | 
|---|
|  |  |  | font-size: 26rpx; | 
|---|
|  |  |  | color: #666666; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .name { | 
|---|
|  |  |  | font-size: 30rpx; | 
|---|
|  |  |  | color: #333333; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .status_wrap { | 
|---|
|  |  |  | position: relative; | 
|---|
|  |  |  | padding: 30rpx 0; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .name { | 
|---|
|  |  |  | font-weight: 600; | 
|---|
|  |  |  | font-size: 32rpx; | 
|---|
|  |  |  | margin-bottom: 20rpx; | 
|---|
|  |  |  | color: $uni-color-primary; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .desc { | 
|---|
|  |  |  | font-size: 26rpx; | 
|---|
|  |  |  | color: #ed4545; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .gray { | 
|---|
|  |  |  | color: #999999; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .file_list { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | flex-wrap: wrap; | 
|---|
|  |  |  | margin-bottom: 20rpx; | 
|---|
|  |  |  | .img_wrap { | 
|---|
|  |  |  | margin-top: 24rpx; | 
|---|
|  |  |  | width: 120rpx; | 
|---|
|  |  |  | height: 120rpx; | 
|---|
|  |  |  | margin-right: 24rpx; | 
|---|
|  |  |  | border: 2rpx solid #e5e5e5; | 
|---|
|  |  |  | background: #f7f7f7; | 
|---|
|  |  |  | color: #666666; | 
|---|
|  |  |  | font-size: 22rpx; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | flex-direction: column; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  | justify-content: center; | 
|---|
|  |  |  | position: relative; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .img { | 
|---|
|  |  |  | width: 120rpx; | 
|---|
|  |  |  | max-height: 120rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .text_wrap { | 
|---|
|  |  |  | padding: 20rpx; | 
|---|
|  |  |  | background-color: #f8f7f7; | 
|---|
|  |  |  | border-radius: 8rpx; | 
|---|
|  |  |  | margin-top: 20rpx; | 
|---|
|  |  |  | .line { | 
|---|
|  |  |  | margin-bottom: 12rpx; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | font-size: 24rpx; | 
|---|
|  |  |  | .label { | 
|---|
|  |  |  | color: #999999; | 
|---|
|  |  |  | width: 140rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .status { | 
|---|
|  |  |  | position: absolute; | 
|---|
|  |  |  | right: -30rpx; | 
|---|
|  |  |  | top: 0; | 
|---|
|  |  |  | height: 60rpx; | 
|---|
|  |  |  | line-height: 60rpx; | 
|---|
|  |  |  | padding: 0 32rpx; | 
|---|
|  |  |  | border-radius: 0rpx 0rpx 0rpx 30rpx; | 
|---|
|  |  |  | background-color: #e9edff; | 
|---|
|  |  |  | color: $uni-color-primary; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .status_img { | 
|---|
|  |  |  | position: absolute; | 
|---|
|  |  |  | right: 0rpx; | 
|---|
|  |  |  | top: 20rpx; | 
|---|
|  |  |  | width: 120rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .main_footer { | 
|---|
|  |  |  | position: fixed; | 
|---|
|  |  |  | bottom: 0; | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | left: 0; | 
|---|
|  |  |  | padding: 30rpx 10rpx 60rpx; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | justify-content: space-between; | 
|---|
|  |  |  | background: #ffffff; | 
|---|
|  |  |  | .btn { | 
|---|
|  |  |  | flex: 1; | 
|---|
|  |  |  | height: 88rpx; | 
|---|
|  |  |  | line-height: 88rpx; | 
|---|
|  |  |  | background: #ffffff; | 
|---|
|  |  |  | border-radius: 44rpx; | 
|---|
|  |  |  | border: 1rpx solid #999999; | 
|---|
|  |  |  | font-size: 32rpx; | 
|---|
|  |  |  | text-align: center; | 
|---|
|  |  |  | margin: 16rpx 8rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .transfer { | 
|---|
|  |  |  | color: $uni-color-primary; | 
|---|
|  |  |  | border: 1rpx solid $uni-color-primary; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .handle { | 
|---|
|  |  |  | flex: 2; | 
|---|
|  |  |  | background: $uni-color-primary; | 
|---|
|  |  |  | color: #fff; | 
|---|
|  |  |  | border: 1rpx solid $uni-color-primary; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .appr_modal { | 
|---|
|  |  |  | padding: 36rpx 30rpx 0; | 
|---|
|  |  |  | .title { | 
|---|
|  |  |  | font-weight: 600; | 
|---|
|  |  |  | font-size: 32rpx; | 
|---|
|  |  |  | color: #222222; | 
|---|
|  |  |  | margin-bottom: 40rpx; | 
|---|
|  |  |  | text-align: center; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .label { | 
|---|
|  |  |  | text { | 
|---|
|  |  |  | color: #ed4545; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .df_sb { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | justify-content: space-between; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  | height: 90rpx; | 
|---|
|  |  |  | border-bottom: 1rpx solid #e4e4e4; | 
|---|
|  |  |  | margin-bottom: 30rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .back_footer { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | .btn { | 
|---|
|  |  |  | flex: 1; | 
|---|
|  |  |  | height: 88rpx; | 
|---|
|  |  |  | line-height: 88rpx; | 
|---|
|  |  |  | background: #ffffff; | 
|---|
|  |  |  | border-radius: 44rpx; | 
|---|
|  |  |  | border: 1rpx solid #999999; | 
|---|
|  |  |  | font-size: 32rpx; | 
|---|
|  |  |  | text-align: center; | 
|---|
|  |  |  | margin: 16rpx 8rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .agree { | 
|---|
|  |  |  | background: $uni-color-primary; | 
|---|
|  |  |  | color: #fff; | 
|---|
|  |  |  | border: 1rpx solid $uni-color-primary; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | textarea { | 
|---|
|  |  |  | box-sizing: border-box; | 
|---|
|  |  |  | width: 690rpx; | 
|---|
|  |  |  | min-height: 200rpx; | 
|---|
|  |  |  | background-color: #f7f7f7; | 
|---|
|  |  |  | font-size: 28rpx; | 
|---|
|  |  |  | color: #333333; | 
|---|
|  |  |  | padding: 24rpx; | 
|---|
|  |  |  | border-radius: 8rpx; | 
|---|
|  |  |  | margin-bottom: 30rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .upload_wrap { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | flex-wrap: wrap; | 
|---|
|  |  |  | margin-bottom: 30rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .adduser_list_item_ipt1_upload { | 
|---|
|  |  |  | margin-top: 24rpx; | 
|---|
|  |  |  | width: 120rpx; | 
|---|
|  |  |  | height: 120rpx; | 
|---|
|  |  |  | margin-right: 24rpx; | 
|---|
|  |  |  | border: 2rpx solid #e5e5e5; | 
|---|
|  |  |  | background: #f7f7f7; | 
|---|
|  |  |  | color: #666666; | 
|---|
|  |  |  | font-size: 22rpx; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | flex-direction: column; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  | justify-content: center; | 
|---|
|  |  |  | position: relative; | 
|---|
|  |  |  | .close { | 
|---|
|  |  |  | position: absolute; | 
|---|
|  |  |  | right: -20rpx; | 
|---|
|  |  |  | top: -20rpx; | 
|---|
|  |  |  | z-index: 9999; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | image { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | height: 100%; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | video { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | max-height: 120rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .emyty { | 
|---|
|  |  |  | width: 750rpx; | 
|---|
|  |  |  | height: 20rpx; | 
|---|
|  |  |  | background-color: #f7f7f7; | 
|---|
|  |  |  | margin: 0 -30rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .sel_upload_wrap { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | border-top: 1px solid #333333; | 
|---|
|  |  |  | box-shadow: 0 1 1 #333333; | 
|---|
|  |  |  | .btn { | 
|---|
|  |  |  | height: 90rpx; | 
|---|
|  |  |  | line-height: 90rpx; | 
|---|
|  |  |  | text-align: center; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .member_list { | 
|---|
|  |  |  | height: 920rpx; | 
|---|
|  |  |  | overflow: auto; | 
|---|
|  |  |  | .line { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  | border-bottom: 1rpx solid #e5e5e5; | 
|---|
|  |  |  | padding: 30rpx 0; | 
|---|
|  |  |  | .avatar { | 
|---|
|  |  |  | width: 64rpx; | 
|---|
|  |  |  | height: 64rpx; | 
|---|
|  |  |  | border-radius: 50%; | 
|---|
|  |  |  | overflow: hidden; | 
|---|
|  |  |  | margin-right: 20rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .content { | 
|---|
|  |  |  | flex: 1; | 
|---|
|  |  |  | .depart { | 
|---|
|  |  |  | font-size: 24rpx; | 
|---|
|  |  |  | color: #666666; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .info { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | margin-bottom: 16rpx; | 
|---|
|  |  |  | .name { | 
|---|
|  |  |  | font-size: 30rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .tag { | 
|---|
|  |  |  | font-size: 24rpx; | 
|---|
|  |  |  | border-radius: 4rpx; | 
|---|
|  |  |  | border: 1rpx solid #f62710; | 
|---|
|  |  |  | color: #f62710; | 
|---|
|  |  |  | padding: 0rpx 6rpx; | 
|---|
|  |  |  | margin-left: 8rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .checked { | 
|---|
|  |  |  | width: 48rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .empty { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | height: 280rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .search_inp { | 
|---|
|  |  |  | height: 72rpx; | 
|---|
|  |  |  | background: #f7f7f7; | 
|---|
|  |  |  | border-radius: 4rpx; | 
|---|
|  |  |  | padding-left: 16rpx; | 
|---|
|  |  |  | .search { | 
|---|
|  |  |  | width: 28rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | input { | 
|---|
|  |  |  | flex: 1; | 
|---|
|  |  |  | font-size: 28rpx; | 
|---|
|  |  |  | color: #333333; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .Transfer_footer { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | .btn { | 
|---|
|  |  |  | flex: 1; | 
|---|
|  |  |  | height: 88rpx; | 
|---|
|  |  |  | line-height: 88rpx; | 
|---|
|  |  |  | background: #ffffff; | 
|---|
|  |  |  | border-radius: 44rpx; | 
|---|
|  |  |  | border: 1rpx solid #999999; | 
|---|
|  |  |  | font-size: 32rpx; | 
|---|
|  |  |  | text-align: center; | 
|---|
|  |  |  | margin: 16rpx 8rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .active { | 
|---|
|  |  |  | background: $uni-color-primary; | 
|---|
|  |  |  | color: #fff; | 
|---|
|  |  |  | border: 1rpx solid $uni-color-primary; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </style> | 
|---|
|  |  |  | <template> | 
|---|
|  |  |  | <view class="main_app"> | 
|---|
|  |  |  | <view class="status_wrap"> | 
|---|
|  |  |  | <view class="name">{{ info.categoryName }}</view> | 
|---|
|  |  |  | <view v-if="info.status == '0'" class="status">{{ statusMap[info.status] }}</view> | 
|---|
|  |  |  | <image v-if="info.status == '1'" src="@/static/ic_yizhenggai.png" mode="widthFix" class="status_img"></image> | 
|---|
|  |  |  | <image v-if="info.status == '2'" src="@/static/ic_yituihui-1.png" mode="widthFix" class="status_img"></image> | 
|---|
|  |  |  | <image v-if="info.status == '3' || info.status == '6'" src="@/static/ic_refused@2x.png" mode="widthFix" | 
|---|
|  |  |  | class="status_img"></image> | 
|---|
|  |  |  | <view>{{ info.content }}</view> | 
|---|
|  |  |  | <view class="file_list"> | 
|---|
|  |  |  | <view class="img_wrap" v-for="item in info.submitFileList" :key="item.id"> | 
|---|
|  |  |  | <image v-if="item.type == 0" :src="item.fileurlFull" @click="priviewImage(item.fileurlFull)" mode="widthFix" | 
|---|
|  |  |  | class="img" /> | 
|---|
|  |  |  | <video v-if="item.type == 1" :src="item.fileurlFull" class="video" controls /> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="text_wrap"> | 
|---|
|  |  |  | <view class="line"> | 
|---|
|  |  |  | <text class="label">隐患区域:</text> | 
|---|
|  |  |  | <text>{{ info.areaName }}</text> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="line"> | 
|---|
|  |  |  | <text class="label">提报人:</text> | 
|---|
|  |  |  | <text>{{ info.memberName }} {{ info.memberPhone }}</text> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <!--  --> | 
|---|
|  |  |  | <view class="emyty"></view> | 
|---|
|  |  |  | <view v-if="info.status == 1 || info.status == 2" class="module_list"> | 
|---|
|  |  |  | <view class="flow_title">处理结果</view> | 
|---|
|  |  |  | <view class="item"> | 
|---|
|  |  |  | <view class="label">处理结果</view> | 
|---|
|  |  |  | <view class="value primaryColor" :class="{ red: info.status == 2 }">{{ statusMap[info.status] }}</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="item"> | 
|---|
|  |  |  | <view class="label">{{info.status == '1' ? '整改前' : '视频/图片'}}</view> | 
|---|
|  |  |  | <view class="value"> | 
|---|
|  |  |  | <view class="adduser_list_item_ipt1_upload" v-for="(item, i) in info.dealBeforeFileList" :key="i"> | 
|---|
|  |  |  | <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image> | 
|---|
|  |  |  | <video v-if="item.type == 1" :src="item.fileurlFull"></video> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="item" v-if="info.dealAfterFileList && info.dealAfterFileList.length > 0"> | 
|---|
|  |  |  | <view class="label">整改后</view> | 
|---|
|  |  |  | <view class="value"> | 
|---|
|  |  |  | <view class="adduser_list_item_ipt1_upload" v-for="(item, i) in info.dealAfterFileList" :key="i"> | 
|---|
|  |  |  | <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image> | 
|---|
|  |  |  | <video v-if="item.type == 1" :src="item.fileurlFull"></video> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="item"> | 
|---|
|  |  |  | <view class="label">{{info.status == '1' ? '整改说明' : '退回说明'}}</view> | 
|---|
|  |  |  | <view class="value">{{ info.checkInfo }}</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <!-- 流程 --> | 
|---|
|  |  |  | <view class="flow_wrap"> | 
|---|
|  |  |  | <view class="flow_title">处理流程</view> | 
|---|
|  |  |  | <view class="list"> | 
|---|
|  |  |  | <view class="item" v-for="(item, index) in flowList" :key="item.id"> | 
|---|
|  |  |  | <view class="separate"></view> | 
|---|
|  |  |  | <view class="avatar"> | 
|---|
|  |  |  | <image src="@/static/staff/liucheng_success@2x.png" class="status" | 
|---|
|  |  |  | v-if="info.status == 1 || index < flowList.length - 1" /> | 
|---|
|  |  |  | <image src="@/static/staff/liucheng_fail@2x.png" class="status" | 
|---|
|  |  |  | v-if="info.status == 2 && index == flowList.length - 1" /> | 
|---|
|  |  |  | <image v-if="item.avatar != null && item.avatar != ''" :src="item.avatar" class="img" alt="" /> | 
|---|
|  |  |  | <!-- <image v-else src="@/static/default_avatar.png" class="img" mode=""></image> --> | 
|---|
|  |  |  | <span v-if="item.avatar == null || item.avatar == ''" | 
|---|
|  |  |  | class="img_name">{{ item.createUserName && item.createUserName.slice(0, 1) }}</span> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="content"> | 
|---|
|  |  |  | <view class="head"> | 
|---|
|  |  |  | <view class="event">{{ item.title }}</view> | 
|---|
|  |  |  | <view class="time">{{ item.createDate }}</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="line"> | 
|---|
|  |  |  | <view class="company"> | 
|---|
|  |  |  | {{ item.createUserName }} {{ item.companyName }} | 
|---|
|  |  |  | <view style="display: inline" v-if="index == flowList.length - 1"> | 
|---|
|  |  |  | ( | 
|---|
|  |  |  | <span v-if="info.status == 1">已同意</span> | 
|---|
|  |  |  | <span class="status-green" v-if="info.status == 0">待处理</span> | 
|---|
|  |  |  | <span class="status-red" v-if="info.status == 2">已退回</span> | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="emyty"></view> | 
|---|
|  |  |  | <view class="main_footer"> | 
|---|
|  |  |  | <view  v-if="info.status==0&& info.checkUserId == userInfo.memberId" class="btn" @click="handleBack">退回</view> | 
|---|
|  |  |  | <view v-if="info.status==0 && info.checkUserId == userInfo.memberId" class="btn transfer" @click="handleTransfer">转交</view> | 
|---|
|  |  |  | <view v-if="info.status==0&& info.checkUserId == userInfo.memberId" class="btn handle" @click="handleOpen">处理</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <!-- 退回 --> | 
|---|
|  |  |  | <u-popup :show="isShowBack" :round="10" :safeAreaInsetBottom="true" mode="bottom" @close="isShowBack = false"> | 
|---|
|  |  |  | <view class="appr_modal"> | 
|---|
|  |  |  | <view class="title">隐患退回</view> | 
|---|
|  |  |  | <view class="df_sb"> | 
|---|
|  |  |  | <view>退回时间</view> | 
|---|
|  |  |  | <view class="df_ac" @click="isShowBackDate = true" v-if="backParam.dealTime"> | 
|---|
|  |  |  | {{ backParam.dealTime }} | 
|---|
|  |  |  | <u-icon name="arrow-right"></u-icon> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view @click="isShowBackDate = true" v-else class="placeholder9 df_ac"> | 
|---|
|  |  |  | 请选择 | 
|---|
|  |  |  | <u-icon name="arrow-right"></u-icon> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <view class="label">图片/视频</view> | 
|---|
|  |  |  | <view class="upload_wrap"> | 
|---|
|  |  |  | <view class="adduser_list_item_ipt1_upload" @click="showUploadBe = true"> | 
|---|
|  |  |  | <u-icon name="plus" color="rgb(153, 153, 153)" size="28"></u-icon> | 
|---|
|  |  |  | <view class="mt6">图片/视频</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="adduser_list_item_ipt1_upload" v-for="(item, i) in dealBeforeFileList" :key="i"> | 
|---|
|  |  |  | <u-icon class="close" size="20" name="close-circle-fill" color="red" | 
|---|
|  |  |  | @click="fileDel('dealBeforeFileList', i)"></u-icon> | 
|---|
|  |  |  | <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image> | 
|---|
|  |  |  | <video v-if="item.type == 1" :src="item.fileurlFull"></video> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="label">退回说明</view> | 
|---|
|  |  |  | <textarea v-model="backParam.checkInfo" placeholder="请详细描述现场情况,不少于10个字" placeholder-class="placeholder9" /> | 
|---|
|  |  |  | <view class="back_footer"> | 
|---|
|  |  |  | <view class="btn" @click="isShowBack = false">取消</view> | 
|---|
|  |  |  | <view class="btn agree" @click="onSubBack">提交</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </u-popup> | 
|---|
|  |  |  | <!-- 处理 --> | 
|---|
|  |  |  | <u-popup :show="isShowHandle" :round="10" :safeAreaInsetBottom="true" mode="bottom" @close="isShowHandle = false"> | 
|---|
|  |  |  | <view class="appr_modal"> | 
|---|
|  |  |  | <view class="title">隐患整改</view> | 
|---|
|  |  |  | <view class="df_sb"> | 
|---|
|  |  |  | <view>整改时间</view> | 
|---|
|  |  |  | <view class="df_ac" @click="isShowHandleDate = true" v-if="handleParam.dealTime"> | 
|---|
|  |  |  | {{ handleParam.dealTime }} | 
|---|
|  |  |  | <u-icon name="arrow-right"></u-icon> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view @click="isShowHandleDate = true" v-else class="placeholder9 df_ac"> | 
|---|
|  |  |  | 请选择 | 
|---|
|  |  |  | <u-icon name="arrow-right"></u-icon> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <view class="label"> | 
|---|
|  |  |  | <text>*</text> | 
|---|
|  |  |  | 整改前 | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="upload_wrap"> | 
|---|
|  |  |  | <view class="adduser_list_item_ipt1_upload" @click="showUploadBe = true"> | 
|---|
|  |  |  | <u-icon name="plus" color="rgb(153, 153, 153)" size="28"></u-icon> | 
|---|
|  |  |  | <view class="mt6">图片/视频</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="adduser_list_item_ipt1_upload" v-for="(item, i) in dealBeforeFileList" :key="i"> | 
|---|
|  |  |  | <u-icon class="close" size="20" name="close-circle-fill" color="red" | 
|---|
|  |  |  | @click="fileDel('dealBeforeFileList', i)"></u-icon> | 
|---|
|  |  |  | <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image> | 
|---|
|  |  |  | <video v-if="item.type == 1" :src="item.fileurlFull"></video> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="label"> | 
|---|
|  |  |  | <text>*</text> | 
|---|
|  |  |  | 整改后 | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="upload_wrap"> | 
|---|
|  |  |  | <view class="adduser_list_item_ipt1_upload" @click="showUploadAf = true"> | 
|---|
|  |  |  | <u-icon name="plus" color="rgb(153, 153, 153)" size="28"></u-icon> | 
|---|
|  |  |  | <view class="mt6">图片/视频</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="adduser_list_item_ipt1_upload" v-for="(item, i) in dealAfterFileList" :key="i"> | 
|---|
|  |  |  | <u-icon class="close" size="20" name="close-circle-fill" color="red" | 
|---|
|  |  |  | @click="fileDel('dealAfterFileList', i)"></u-icon> | 
|---|
|  |  |  | <image v-if="item.type == 0" :src="item.fileurlFull" mode="widthFix"></image> | 
|---|
|  |  |  | <video v-if="item.type == 1" :src="item.fileurlFull"></video> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="label">整改说明</view> | 
|---|
|  |  |  | <textarea v-model="handleParam.checkInfo" placeholder="请详细描述现场情况,不少于10个字" placeholder-class="placeholder9" /> | 
|---|
|  |  |  | <view class="back_footer"> | 
|---|
|  |  |  | <view class="btn" @click="isShowHandle = false">取消</view> | 
|---|
|  |  |  | <view class="btn agree" @click="onSubmit">提交</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </u-popup> | 
|---|
|  |  |  | <!-- 上传 --> | 
|---|
|  |  |  | <u-popup :show="showUpload" @close="showUpload = false" closeOnClickOverlay> | 
|---|
|  |  |  | <view class="sel_upload_wrap"> | 
|---|
|  |  |  | <view class="btn" @click="uploadImage">选择图片</view> | 
|---|
|  |  |  | <view class="btn" @click="uploadVideo">选择视频</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </u-popup> | 
|---|
|  |  |  | <u-popup :show="showUploadBe" @close="showUploadBe = false" closeOnClickOverlay> | 
|---|
|  |  |  | <view class="sel_upload_wrap"> | 
|---|
|  |  |  | <view class="btn" @click="uploadBeImage">选择图片</view> | 
|---|
|  |  |  | <view class="btn" @click="uploadBeVideo">选择视频</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </u-popup> | 
|---|
|  |  |  | <u-popup :show="showUploadAf" @close="showUploadAf = false" closeOnClickOverlay> | 
|---|
|  |  |  | <view class="sel_upload_wrap"> | 
|---|
|  |  |  | <view class="btn" @click="uploadAfImage">选择图片</view> | 
|---|
|  |  |  | <view class="btn" @click="uploadAfVideo">选择视频</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </u-popup> | 
|---|
|  |  |  | <!-- 转交 --> | 
|---|
|  |  |  | <u-popup :show="isShowTransfer" :round="10" safeAreaInsetBottom mode="bottom" @close="isShowTransfer = false"> | 
|---|
|  |  |  | <view class="appr_modal"> | 
|---|
|  |  |  | <view class="title">选择员工</view> | 
|---|
|  |  |  | <view class="search_inp df_ac"> | 
|---|
|  |  |  | <image class="mr12 search" src="@/static/ic_search@2x.png" mode="widthFix"></image> | 
|---|
|  |  |  | <input v-model="transferModel.name" @blur="getMemList()" type="text" placeholder="搜索部门/人员" | 
|---|
|  |  |  | placeholder-style="color: #999999;" /> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="member_list"> | 
|---|
|  |  |  | <view class="mt24 placeholder6">共{{ memberList.length }}条数据</view> | 
|---|
|  |  |  | <view v-for="item in memberList" :key="item.id" class="line"> | 
|---|
|  |  |  | <image :src="item.faceImgFull ? item.faceImgFull : require('@/static/meeting/common/default_user@2x.png')" | 
|---|
|  |  |  | class="avatar" mode=""></image> | 
|---|
|  |  |  | <view class="content"> | 
|---|
|  |  |  | <view class="info"> | 
|---|
|  |  |  | <text class="name">{{ item.name }}</text> | 
|---|
|  |  |  | <!-- <text class="tag">tag</text> --> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="depart">{{ item.companyName }}</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <image @click="changeMem(item)" v-if="transferParam.id == item.id" | 
|---|
|  |  |  | src="@/static/checkbox_sel@2x.png" mode="widthFix" class="checked"></image> | 
|---|
|  |  |  | <image @click="changeMem(item)" v-else src="@/static/video@2x.png" mode="widthFix" | 
|---|
|  |  |  | class="checked"></image> | 
|---|
|  |  |  | <text></text> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="empty"></view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | <view class="Transfer_footer"> | 
|---|
|  |  |  | <view class="btn" @click="isShowTransfer = fales">取消</view> | 
|---|
|  |  |  | <view class="btn active" @click="enterTransfer">确认转交</view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </u-popup> | 
|---|
|  |  |  | <!-- 退回时间 --> | 
|---|
|  |  |  | <u-datetime-picker :show="isShowBackDate" @confirm="confirmBackDate" @cancel="isShowBackDate = false" | 
|---|
|  |  |  | mode="datetime"></u-datetime-picker> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <u-datetime-picker :minDate="new Date().getTime()" :show="isShowHandleDate" @confirm="confirmHandleDate" | 
|---|
|  |  |  | @cancel="isShowHandleDate = false" mode="datetime"></u-datetime-picker> | 
|---|
|  |  |  | </view> | 
|---|
|  |  |  | </template> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <script> | 
|---|
|  |  |  | import { | 
|---|
|  |  |  | hiddenDangerDetail, | 
|---|
|  |  |  | uploadUrl, | 
|---|
|  |  |  | findHiddenAreaMemberList, | 
|---|
|  |  |  | dealHiddenDanger, | 
|---|
|  |  |  | transferHiddenDanger, | 
|---|
|  |  |  | findListFlowDanger | 
|---|
|  |  |  | } from '@/api'; | 
|---|
|  |  |  | import dayjs from 'dayjs'; | 
|---|
|  |  |  | export default { | 
|---|
|  |  |  | data() { | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | isShowBack: false, | 
|---|
|  |  |  | param: {}, | 
|---|
|  |  |  | info: {}, | 
|---|
|  |  |  | userInfo: this.$store.state.userInfo, | 
|---|
|  |  |  | flowList: [], | 
|---|
|  |  |  |  | 
|---|
|  |  |  | id: '', | 
|---|
|  |  |  | type: '', | 
|---|
|  |  |  | cateList: [{ | 
|---|
|  |  |  | name: '访客申请', | 
|---|
|  |  |  | id: 0 | 
|---|
|  |  |  | }, { | 
|---|
|  |  |  | name: '访客报备', | 
|---|
|  |  |  | id: 1 | 
|---|
|  |  |  | }, { | 
|---|
|  |  |  | name: '用车申请', | 
|---|
|  |  |  | id: 2 | 
|---|
|  |  |  | }, { | 
|---|
|  |  |  | name: '隐患随手拍', | 
|---|
|  |  |  | id: 3 | 
|---|
|  |  |  | }, { | 
|---|
|  |  |  | name: '物流车申请', | 
|---|
|  |  |  | id: 4 | 
|---|
|  |  |  | }], | 
|---|
|  |  |  | statusMap: { | 
|---|
|  |  |  | 0: '待处理', | 
|---|
|  |  |  | 1: '已整改', | 
|---|
|  |  |  | 2: '已退回', | 
|---|
|  |  |  | 3: '已拒绝', | 
|---|
|  |  |  | 4: '已取消', | 
|---|
|  |  |  | 5: '他人或签', | 
|---|
|  |  |  | 6: '他人拒绝' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | showUpload: false, | 
|---|
|  |  |  | isShowBackDate: false, | 
|---|
|  |  |  | submitFileList: [], | 
|---|
|  |  |  | backParam: {}, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | isShowHandle: false, | 
|---|
|  |  |  | handleParam: {}, | 
|---|
|  |  |  | isShowHandleDate: false, | 
|---|
|  |  |  | showUploadBe: false, | 
|---|
|  |  |  | showUploadAf: false, | 
|---|
|  |  |  | dealBeforeFileList: [], | 
|---|
|  |  |  | dealAfterFileList: [], | 
|---|
|  |  |  |  | 
|---|
|  |  |  | isShowTransfer: false, | 
|---|
|  |  |  | transferParam: {}, | 
|---|
|  |  |  | transferModel: {}, | 
|---|
|  |  |  | pagination: { | 
|---|
|  |  |  | page: 1, | 
|---|
|  |  |  | capacity: 50 | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | memberList: [] | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | onLoad(op) { | 
|---|
|  |  |  | this.id = op.id; | 
|---|
|  |  |  | this.type = op.objType; | 
|---|
|  |  |  | this.getDetail(); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | methods: { | 
|---|
|  |  |  | priviewImage(url) { | 
|---|
|  |  |  | uni.previewImage({ | 
|---|
|  |  |  | urls: [url] | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | handleOpen() { | 
|---|
|  |  |  | this.isShowHandle = true; | 
|---|
|  |  |  | const submitFileList = this.info.submitFileList || [] | 
|---|
|  |  |  | this.submitFileList = [...submitFileList]; | 
|---|
|  |  |  | this.$set(this.handleParam, 'dealTime', dayjs().format('YYYY-MM-DD HH:mm:ss')); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | handleBack() { | 
|---|
|  |  |  | this.isShowBack = true; | 
|---|
|  |  |  | // const submitFileList = this.info.submitFileList || [] | 
|---|
|  |  |  | // this.submitFileList = [...submitFileList]; | 
|---|
|  |  |  | this.dealBeforeFileList = [] | 
|---|
|  |  |  | this.$set(this.backParam, 'dealTime', dayjs().format('YYYY-MM-DD HH:mm:ss')); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | getDetail() { | 
|---|
|  |  |  | const { | 
|---|
|  |  |  | id | 
|---|
|  |  |  | } = this; | 
|---|
|  |  |  | hiddenDangerDetail(id).then(res => { | 
|---|
|  |  |  | this.info = res.data; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | findListFlowDanger({ | 
|---|
|  |  |  | hiddenDangerId: id | 
|---|
|  |  |  | }).then(res => { | 
|---|
|  |  |  | this.flowList = res.data; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | onSubmit() { | 
|---|
|  |  |  | const { | 
|---|
|  |  |  | dealBeforeFileList, | 
|---|
|  |  |  | dealAfterFileList, | 
|---|
|  |  |  | handleParam | 
|---|
|  |  |  | } = this; | 
|---|
|  |  |  | if (dealBeforeFileList.length === 0) | 
|---|
|  |  |  | return uni.showToast({ | 
|---|
|  |  |  | title: '请上传整改前图片或视频', | 
|---|
|  |  |  | icon: 'none' | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | if (dealAfterFileList.length === 0) | 
|---|
|  |  |  | return uni.showToast({ | 
|---|
|  |  |  | title: '请上传整改后图片或视频', | 
|---|
|  |  |  | icon: 'none' | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | dealHiddenDanger({ | 
|---|
|  |  |  | ...handleParam, | 
|---|
|  |  |  | dealBeforeFileList: dealBeforeFileList, | 
|---|
|  |  |  | dealAfterFileList: dealAfterFileList, | 
|---|
|  |  |  | status: 1, | 
|---|
|  |  |  | id: this.id | 
|---|
|  |  |  | }).then(res => { | 
|---|
|  |  |  | if (res.code === 200) { | 
|---|
|  |  |  | this.isShowHandle = false; | 
|---|
|  |  |  | setTimeout(() => { | 
|---|
|  |  |  | uni.showToast({ | 
|---|
|  |  |  | title: '操作成功', | 
|---|
|  |  |  | icon: 'success' | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | uni.navigateBack(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | enterTransfer() { | 
|---|
|  |  |  | const { | 
|---|
|  |  |  | transferParam, | 
|---|
|  |  |  | id | 
|---|
|  |  |  | } = this; | 
|---|
|  |  |  | if (!transferParam.id) | 
|---|
|  |  |  | return uni.showToast({ | 
|---|
|  |  |  | title: '请选择人员', | 
|---|
|  |  |  | icon: 'none' | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | transferHiddenDanger({ | 
|---|
|  |  |  | checkUserId: transferParam.id, | 
|---|
|  |  |  | id | 
|---|
|  |  |  | }).then(res => { | 
|---|
|  |  |  | if (res.code === 200) { | 
|---|
|  |  |  | this.isShowTransfer = false; | 
|---|
|  |  |  | setTimeout(() => { | 
|---|
|  |  |  | uni.showToast({ | 
|---|
|  |  |  | title: '操作成功', | 
|---|
|  |  |  | icon: 'success' | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | uni.navigateBack(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | changeMem(e) { | 
|---|
|  |  |  | this.transferParam = e; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | handleTransfer() { | 
|---|
|  |  |  | this.isShowTransfer = true; | 
|---|
|  |  |  | this.getMemList(); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | getMemList() { | 
|---|
|  |  |  | findHiddenAreaMemberList({ | 
|---|
|  |  |  | model: { | 
|---|
|  |  |  | ...this.transferModel, | 
|---|
|  |  |  | id: this.info.areaId | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | ...this.pagination | 
|---|
|  |  |  | }).then(res => { | 
|---|
|  |  |  | this.memberList = res.data || []; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | confirmBackDate(e) { | 
|---|
|  |  |  | this.$set(this.backParam, 'dealTime', dayjs(e.value).format('YYYY-MM-DD HH:mm:ss')); | 
|---|
|  |  |  | this.isShowBackDate = false; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | confirmHandleDate(e) { | 
|---|
|  |  |  | this.$set(this.handleParam, 'dealTime', dayjs(e.value).format('YYYY-MM-DD HH:mm:ss')); | 
|---|
|  |  |  | this.isShowHandleDate = false; | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | onSubBack() { | 
|---|
|  |  |  | const { | 
|---|
|  |  |  | dealBeforeFileList, | 
|---|
|  |  |  | backParam | 
|---|
|  |  |  | } = this; | 
|---|
|  |  |  | dealHiddenDanger({ | 
|---|
|  |  |  | ...backParam, | 
|---|
|  |  |  | dealBeforeFileList, | 
|---|
|  |  |  | status: 2, | 
|---|
|  |  |  | id: this.id | 
|---|
|  |  |  | }).then(res => { | 
|---|
|  |  |  | if (res.code === 200) { | 
|---|
|  |  |  | this.isShowBack = false; | 
|---|
|  |  |  | setTimeout(() => { | 
|---|
|  |  |  | uni.showToast({ | 
|---|
|  |  |  | title: '操作成功', | 
|---|
|  |  |  | icon: 'success' | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | uni.navigateBack(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | fileDel(str, i) { | 
|---|
|  |  |  | this[str].splice(i, 1); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | uploadBeImage() { | 
|---|
|  |  |  | this.showUploadBe = false; | 
|---|
|  |  |  | let token = uni.getStorageSync('token') || ''; | 
|---|
|  |  |  | uni.chooseImage({ | 
|---|
|  |  |  | count: 4, | 
|---|
|  |  |  | success: chooseImageRes => { | 
|---|
|  |  |  | uni.showLoading({ | 
|---|
|  |  |  | title: '上传中', | 
|---|
|  |  |  | mask: true | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | const tempFilePaths = chooseImageRes.tempFilePaths; | 
|---|
|  |  |  | let imgs = tempFilePaths.map((value, index) => { | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | name: 'file', | 
|---|
|  |  |  | uri: value | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | uni.uploadFile({ | 
|---|
|  |  |  | url: `${uploadUrl}`, | 
|---|
|  |  |  | files: imgs, | 
|---|
|  |  |  | name: 'file', | 
|---|
|  |  |  | formData: { | 
|---|
|  |  |  | folder: 'HIDDEN_DANGER_FILE' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | header: { | 
|---|
|  |  |  | Dm_user_token: token | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | success: uploadFileRes => { | 
|---|
|  |  |  | let res = JSON.parse(uploadFileRes.data); | 
|---|
|  |  |  | let obj = { | 
|---|
|  |  |  | type: '0' | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | if (res.data && res.data.length > 0) { | 
|---|
|  |  |  | res.data.forEach(i => { | 
|---|
|  |  |  | i.type = 0; | 
|---|
|  |  |  | i.fileurl = i.imgaddr; | 
|---|
|  |  |  | i.fileurlFull = i.url; | 
|---|
|  |  |  | this.dealBeforeFileList.push(i); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | fail(err) { | 
|---|
|  |  |  | console.log('err', err); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | complete() { | 
|---|
|  |  |  | uni.hideLoading(); | 
|---|
|  |  |  | // if (i === chooseImageRes.tempFilePaths.length - 1) { | 
|---|
|  |  |  | //   uni.hideLoading() | 
|---|
|  |  |  | // } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | uploadBeVideo() { | 
|---|
|  |  |  | this.showUploadBe = false; | 
|---|
|  |  |  | let token = uni.getStorageSync('token') || ''; | 
|---|
|  |  |  | uni.chooseVideo({ | 
|---|
|  |  |  | success: chooseImageRes => { | 
|---|
|  |  |  | uni.showLoading({ | 
|---|
|  |  |  | title: '上传中', | 
|---|
|  |  |  | mask: true | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | uni.uploadFile({ | 
|---|
|  |  |  | url: `${uploadUrl}`, | 
|---|
|  |  |  | filePath: chooseImageRes.tempFilePath, | 
|---|
|  |  |  | header: { | 
|---|
|  |  |  | Dm_user_token: token | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | name: 'file', | 
|---|
|  |  |  | formData: { | 
|---|
|  |  |  | folder: 'HIDDEN_DANGER_FILE' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | success: uploadFileRes => { | 
|---|
|  |  |  | let res = JSON.parse(uploadFileRes.data); | 
|---|
|  |  |  | if (res.data && res.data.length > 0) { | 
|---|
|  |  |  | res.data.forEach(i => { | 
|---|
|  |  |  | i.type = 1; | 
|---|
|  |  |  | i.fileurl = i.imgaddr; | 
|---|
|  |  |  | i.fileurlFull = i.url; | 
|---|
|  |  |  | this.dealBeforeFileList.push(i); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | complete() { | 
|---|
|  |  |  | uni.hideLoading(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | uploadAfImage() { | 
|---|
|  |  |  | this.showUploadAf = false; | 
|---|
|  |  |  | let token = uni.getStorageSync('token') || ''; | 
|---|
|  |  |  | uni.chooseImage({ | 
|---|
|  |  |  | count: 4, | 
|---|
|  |  |  | success: chooseImageRes => { | 
|---|
|  |  |  | uni.showLoading({ | 
|---|
|  |  |  | title: '上传中', | 
|---|
|  |  |  | mask: true | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | const tempFilePaths = chooseImageRes.tempFilePaths; | 
|---|
|  |  |  | let imgs = tempFilePaths.map((value, index) => { | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | name: 'file', | 
|---|
|  |  |  | uri: value | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | uni.uploadFile({ | 
|---|
|  |  |  | url: `${uploadUrl}`, | 
|---|
|  |  |  | files: imgs, | 
|---|
|  |  |  | name: 'file', | 
|---|
|  |  |  | formData: { | 
|---|
|  |  |  | folder: 'HIDDEN_DANGER_FILE' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | header: { | 
|---|
|  |  |  | Dm_user_token: token | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | success: uploadFileRes => { | 
|---|
|  |  |  | let res = JSON.parse(uploadFileRes.data); | 
|---|
|  |  |  | if (res.data && res.data.length > 0) { | 
|---|
|  |  |  | res.data.forEach(i => { | 
|---|
|  |  |  | i.type = 0; | 
|---|
|  |  |  | i.fileurl = i.imgaddr; | 
|---|
|  |  |  | i.fileurlFull = i.url; | 
|---|
|  |  |  | this.dealAfterFileList.push(i); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | fail(err) { | 
|---|
|  |  |  | console.log('err', err); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | complete() { | 
|---|
|  |  |  | uni.hideLoading(); | 
|---|
|  |  |  | // if (i === chooseImageRes.tempFilePaths.length - 1) { | 
|---|
|  |  |  | //   uni.hideLoading() | 
|---|
|  |  |  | // } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | uploadAfVideo() { | 
|---|
|  |  |  | this.showUploadAf = false; | 
|---|
|  |  |  | let token = uni.getStorageSync('token') || ''; | 
|---|
|  |  |  | uni.chooseVideo({ | 
|---|
|  |  |  | success: chooseImageRes => { | 
|---|
|  |  |  | uni.showLoading({ | 
|---|
|  |  |  | title: '上传中', | 
|---|
|  |  |  | mask: true | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | uni.uploadFile({ | 
|---|
|  |  |  | url: `${uploadUrl}`, | 
|---|
|  |  |  | filePath: chooseImageRes.tempFilePath, | 
|---|
|  |  |  | header: { | 
|---|
|  |  |  | Dm_user_token: token | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | name: 'file', | 
|---|
|  |  |  | formData: { | 
|---|
|  |  |  | folder: 'HIDDEN_DANGER_FILE' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | success: uploadFileRes => { | 
|---|
|  |  |  | let res = JSON.parse(uploadFileRes.data); | 
|---|
|  |  |  | if (res.data && res.data.length > 0) { | 
|---|
|  |  |  | res.data.forEach(i => { | 
|---|
|  |  |  | i.type = 1; | 
|---|
|  |  |  | i.fileurl = i.imgaddr; | 
|---|
|  |  |  | i.fileurlFull = i.url; | 
|---|
|  |  |  | this.dealAfterFileList.push(i); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | complete() { | 
|---|
|  |  |  | uni.hideLoading(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | uploadImage() { | 
|---|
|  |  |  | this.showUpload = false; | 
|---|
|  |  |  | let token = uni.getStorageSync('token') || ''; | 
|---|
|  |  |  | uni.chooseImage({ | 
|---|
|  |  |  | count: 4, | 
|---|
|  |  |  | success: chooseImageRes => { | 
|---|
|  |  |  | uni.showLoading({ | 
|---|
|  |  |  | title: '上传中', | 
|---|
|  |  |  | mask: true | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | const tempFilePaths = chooseImageRes.tempFilePaths; | 
|---|
|  |  |  | let imgs = tempFilePaths.map((value, index) => { | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | name: 'file', | 
|---|
|  |  |  | uri: value | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | uni.uploadFile({ | 
|---|
|  |  |  | url: `${uploadUrl}`, | 
|---|
|  |  |  | files: imgs, | 
|---|
|  |  |  | name: 'file', | 
|---|
|  |  |  | formData: { | 
|---|
|  |  |  | folder: 'HIDDEN_DANGER_FILE' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | header: { | 
|---|
|  |  |  | Dm_user_token: token | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | success: uploadFileRes => { | 
|---|
|  |  |  | let res = JSON.parse(uploadFileRes.data); | 
|---|
|  |  |  | if (res.data && res.data.length > 0) { | 
|---|
|  |  |  | res.data.forEach(i => { | 
|---|
|  |  |  | i.type = 0; | 
|---|
|  |  |  | i.fileurl = i.imgaddr; | 
|---|
|  |  |  | i.fileurlFull = i.url; | 
|---|
|  |  |  | this.submitFileList.push(i); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | fail(err) { | 
|---|
|  |  |  | console.log('err', err); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | complete() { | 
|---|
|  |  |  | uni.hideLoading(); | 
|---|
|  |  |  | // if (i === chooseImageRes.tempFilePaths.length - 1) { | 
|---|
|  |  |  | //   uni.hideLoading() | 
|---|
|  |  |  | // } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | uploadVideo() { | 
|---|
|  |  |  | this.showUpload = false; | 
|---|
|  |  |  | let token = uni.getStorageSync('token') || ''; | 
|---|
|  |  |  | uni.chooseVideo({ | 
|---|
|  |  |  | success: chooseImageRes => { | 
|---|
|  |  |  | uni.showLoading({ | 
|---|
|  |  |  | title: '上传中', | 
|---|
|  |  |  | mask: true | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | uni.uploadFile({ | 
|---|
|  |  |  | url: `${uploadUrl}`, | 
|---|
|  |  |  | filePath: chooseImageRes.tempFilePath, | 
|---|
|  |  |  | header: { | 
|---|
|  |  |  | Dm_user_token: token | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | name: 'file', | 
|---|
|  |  |  | formData: { | 
|---|
|  |  |  | folder: 'HIDDEN_DANGER_FILE' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | success: uploadFileRes => { | 
|---|
|  |  |  | let res = JSON.parse(uploadFileRes.data); | 
|---|
|  |  |  | if (res.data && res.data.length > 0) { | 
|---|
|  |  |  | res.data.forEach(i => { | 
|---|
|  |  |  | i.type = 1; | 
|---|
|  |  |  | i.fileurl = i.imgaddr; | 
|---|
|  |  |  | i.fileurlFull = i.url; | 
|---|
|  |  |  | this.submitFileList.push(i); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | complete() { | 
|---|
|  |  |  | uni.hideLoading(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }; | 
|---|
|  |  |  | </script> | 
|---|
|  |  |  | <style> | 
|---|
|  |  |  | page { | 
|---|
|  |  |  | background-color: #f7f7f7; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </style> | 
|---|
|  |  |  | <style lang="scss"> | 
|---|
|  |  |  | .main_app { | 
|---|
|  |  |  | background-color: #fff; | 
|---|
|  |  |  | padding-bottom: 0; | 
|---|
|  |  |  | .flow_title { | 
|---|
|  |  |  | font-weight: 600; | 
|---|
|  |  |  | font-size: 32rpx; | 
|---|
|  |  |  | color: #222222; | 
|---|
|  |  |  | margin-bottom: 24rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .flow_wrap { | 
|---|
|  |  |  | padding: 30rpx 0; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .list { | 
|---|
|  |  |  | .item { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | margin-bottom: 48rpx; | 
|---|
|  |  |  | position: relative; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .separate { | 
|---|
|  |  |  | position: absolute; | 
|---|
|  |  |  | width: 4rpx; | 
|---|
|  |  |  | height: 100%; | 
|---|
|  |  |  | background-color: #eeeeee; | 
|---|
|  |  |  | left: 40rpx; | 
|---|
|  |  |  | transform: translate(-50%, 0); | 
|---|
|  |  |  | top: 80rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .avatar { | 
|---|
|  |  |  | width: 80rpx; | 
|---|
|  |  |  | height: 80rpx; | 
|---|
|  |  |  | position: relative; | 
|---|
|  |  |  | margin-right: 20rpx; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .img { | 
|---|
|  |  |  | width: 80rpx; | 
|---|
|  |  |  | height: 80rpx; | 
|---|
|  |  |  | border-radius: 50%; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .status { | 
|---|
|  |  |  | width: 28rpx; | 
|---|
|  |  |  | height: 28rpx; | 
|---|
|  |  |  | border-radius: 50%; | 
|---|
|  |  |  | position: absolute; | 
|---|
|  |  |  | right: 0; | 
|---|
|  |  |  | bottom: 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .content { | 
|---|
|  |  |  | flex: 1; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .head { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | justify-content: space-between; | 
|---|
|  |  |  | margin-bottom: 4rpx; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .event { | 
|---|
|  |  |  | font-size: 30rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .time { | 
|---|
|  |  |  | font-size: 26rpx; | 
|---|
|  |  |  | color: #999999; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .name_wrap { | 
|---|
|  |  |  | font-size: 26rpx; | 
|---|
|  |  |  | color: #777777; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .status { | 
|---|
|  |  |  | color: $uni-color-primary; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .line{ | 
|---|
|  |  |  | .company{ | 
|---|
|  |  |  | font-size: 26rpx; | 
|---|
|  |  |  | color: #777777; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .status-green{ | 
|---|
|  |  |  | color: $uni-color-primary; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .status-red{ | 
|---|
|  |  |  | color: red; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .remark { | 
|---|
|  |  |  | margin-top: 12rpx; | 
|---|
|  |  |  | background-color: #f7f7f7; | 
|---|
|  |  |  | padding: 14rpx 20rpx; | 
|---|
|  |  |  | border-radius: 8rpx; | 
|---|
|  |  |  | font-size: 26rpx; | 
|---|
|  |  |  | color: #666666; | 
|---|
|  |  |  | line-height: 36rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .carbon { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | width: 590rpx; | 
|---|
|  |  |  | overflow-x: auto; | 
|---|
|  |  |  | margin-top: 12rpx; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .carbon_item { | 
|---|
|  |  |  | text-align: center; | 
|---|
|  |  |  | flex-shrink: 0; | 
|---|
|  |  |  | width: 100rpx; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | image { | 
|---|
|  |  |  | width: 60rpx; | 
|---|
|  |  |  | height: 60rpx; | 
|---|
|  |  |  | margin: 0 auto; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | view { | 
|---|
|  |  |  | font-size: 26rpx; | 
|---|
|  |  |  | color: #777777; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | &:nth-last-child(1) { | 
|---|
|  |  |  | .separate { | 
|---|
|  |  |  | height: 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .adduser_list_item_ipt1_upload { | 
|---|
|  |  |  | width: 120rpx; | 
|---|
|  |  |  | height: 120rpx; | 
|---|
|  |  |  | margin-right: 24rpx; | 
|---|
|  |  |  | border: 2rpx solid #e5e5e5; | 
|---|
|  |  |  | background: #f7f7f7; | 
|---|
|  |  |  | color: #666666; | 
|---|
|  |  |  | font-size: 22rpx; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | flex-direction: column; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  | justify-content: center; | 
|---|
|  |  |  | position: relative; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .close { | 
|---|
|  |  |  | position: absolute; | 
|---|
|  |  |  | right: -20rpx; | 
|---|
|  |  |  | top: -20rpx; | 
|---|
|  |  |  | z-index: 9999; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | image { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | height: 100%; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | video { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | max-height: 120rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .module_list { | 
|---|
|  |  |  | .title{ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | .item { | 
|---|
|  |  |  | padding: 30rpx 0; | 
|---|
|  |  |  | border-bottom: 1rpx solid #e5e5e5; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .label { | 
|---|
|  |  |  | font-size: 26rpx; | 
|---|
|  |  |  | color: #666666; | 
|---|
|  |  |  | margin-bottom: 20rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .value { | 
|---|
|  |  |  | font-size: 30rpx; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .avatar { | 
|---|
|  |  |  | margin-right: 20rpx; | 
|---|
|  |  |  | width: 120rpx; | 
|---|
|  |  |  | height: 120rpx; | 
|---|
|  |  |  | border-radius: 8rpx; | 
|---|
|  |  |  | border: 2rpx solid #e5e5e5; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .info { | 
|---|
|  |  |  | flex: 1; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | flex-direction: column; | 
|---|
|  |  |  | justify-content: space-between; | 
|---|
|  |  |  | font-size: 26rpx; | 
|---|
|  |  |  | color: #666666; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .name { | 
|---|
|  |  |  | font-size: 30rpx; | 
|---|
|  |  |  | color: #333333; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .status_wrap { | 
|---|
|  |  |  | position: relative; | 
|---|
|  |  |  | padding: 30rpx 0; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .name { | 
|---|
|  |  |  | font-weight: 600; | 
|---|
|  |  |  | font-size: 32rpx; | 
|---|
|  |  |  | margin-bottom: 20rpx; | 
|---|
|  |  |  | color: $uni-color-primary; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .desc { | 
|---|
|  |  |  | font-size: 26rpx; | 
|---|
|  |  |  | color: #ed4545; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .gray { | 
|---|
|  |  |  | color: #999999; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .file_list { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | margin-bottom: 20rpx; | 
|---|
|  |  |  | overflow-x: auto; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .img_wrap { | 
|---|
|  |  |  | margin-top: 24rpx; | 
|---|
|  |  |  | min-width: 160rpx; | 
|---|
|  |  |  | height: 160rpx; | 
|---|
|  |  |  | border: 2rpx solid #e5e5e5; | 
|---|
|  |  |  | background: #f7f7f7; | 
|---|
|  |  |  | color: #666666; | 
|---|
|  |  |  | font-size: 22rpx; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | flex-direction: column; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  | justify-content: center; | 
|---|
|  |  |  | position: relative; | 
|---|
|  |  |  | margin-right: 16rpx; | 
|---|
|  |  |  | flex-shrink: 0; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .img { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | max-height: 100%; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .video { | 
|---|
|  |  |  | height: 160rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .text_wrap { | 
|---|
|  |  |  | padding: 20rpx; | 
|---|
|  |  |  | background-color: #f8f7f7; | 
|---|
|  |  |  | border-radius: 8rpx; | 
|---|
|  |  |  | margin-top: 20rpx; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .line { | 
|---|
|  |  |  | margin-bottom: 12rpx; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | font-size: 24rpx; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .label { | 
|---|
|  |  |  | color: #999999; | 
|---|
|  |  |  | width: 140rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .status { | 
|---|
|  |  |  | position: absolute; | 
|---|
|  |  |  | right: -30rpx; | 
|---|
|  |  |  | top: 0; | 
|---|
|  |  |  | height: 60rpx; | 
|---|
|  |  |  | line-height: 60rpx; | 
|---|
|  |  |  | padding: 0 32rpx; | 
|---|
|  |  |  | border-radius: 0rpx 0rpx 0rpx 30rpx; | 
|---|
|  |  |  | background-color: #e9edff; | 
|---|
|  |  |  | color: $uni-color-primary; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .status_img { | 
|---|
|  |  |  | position: absolute; | 
|---|
|  |  |  | right: 0rpx; | 
|---|
|  |  |  | top: 20rpx; | 
|---|
|  |  |  | width: 120rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .main_footer { | 
|---|
|  |  |  | position: fixed; | 
|---|
|  |  |  | bottom: 0; | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | left: 0; | 
|---|
|  |  |  | padding: 30rpx 10rpx 60rpx; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | justify-content: space-between; | 
|---|
|  |  |  | background: #ffffff; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .btn { | 
|---|
|  |  |  | flex: 1; | 
|---|
|  |  |  | height: 88rpx; | 
|---|
|  |  |  | line-height: 88rpx; | 
|---|
|  |  |  | background: #ffffff; | 
|---|
|  |  |  | border-radius: 44rpx; | 
|---|
|  |  |  | border: 1rpx solid #999999; | 
|---|
|  |  |  | font-size: 32rpx; | 
|---|
|  |  |  | text-align: center; | 
|---|
|  |  |  | margin: 16rpx 8rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .transfer { | 
|---|
|  |  |  | color: $uni-color-primary; | 
|---|
|  |  |  | border: 1rpx solid $uni-color-primary; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .handle { | 
|---|
|  |  |  | flex: 2; | 
|---|
|  |  |  | background: $uni-color-primary; | 
|---|
|  |  |  | color: #fff; | 
|---|
|  |  |  | border: 1rpx solid $uni-color-primary; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .appr_modal { | 
|---|
|  |  |  | padding: 36rpx 30rpx 0; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .title { | 
|---|
|  |  |  | font-weight: 600; | 
|---|
|  |  |  | font-size: 32rpx; | 
|---|
|  |  |  | color: #222222; | 
|---|
|  |  |  | margin-bottom: 40rpx; | 
|---|
|  |  |  | text-align: center; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .label { | 
|---|
|  |  |  | text { | 
|---|
|  |  |  | color: #ed4545; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .df_sb { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | justify-content: space-between; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  | height: 90rpx; | 
|---|
|  |  |  | border-bottom: 1rpx solid #e4e4e4; | 
|---|
|  |  |  | margin-bottom: 30rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .back_footer { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .btn { | 
|---|
|  |  |  | flex: 1; | 
|---|
|  |  |  | height: 88rpx; | 
|---|
|  |  |  | line-height: 88rpx; | 
|---|
|  |  |  | background: #ffffff; | 
|---|
|  |  |  | border-radius: 44rpx; | 
|---|
|  |  |  | border: 1rpx solid #999999; | 
|---|
|  |  |  | font-size: 32rpx; | 
|---|
|  |  |  | text-align: center; | 
|---|
|  |  |  | margin: 16rpx 8rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .agree { | 
|---|
|  |  |  | background: $uni-color-primary; | 
|---|
|  |  |  | color: #fff; | 
|---|
|  |  |  | border: 1rpx solid $uni-color-primary; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | textarea { | 
|---|
|  |  |  | box-sizing: border-box; | 
|---|
|  |  |  | width: 690rpx; | 
|---|
|  |  |  | min-height: 200rpx; | 
|---|
|  |  |  | background-color: #f7f7f7; | 
|---|
|  |  |  | font-size: 28rpx; | 
|---|
|  |  |  | color: #333333; | 
|---|
|  |  |  | padding: 24rpx; | 
|---|
|  |  |  | border-radius: 8rpx; | 
|---|
|  |  |  | margin-bottom: 30rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .upload_wrap { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | flex-wrap: wrap; | 
|---|
|  |  |  | margin-bottom: 30rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .adduser_list_item_ipt1_upload { | 
|---|
|  |  |  | margin-top: 24rpx; | 
|---|
|  |  |  | width: 120rpx; | 
|---|
|  |  |  | height: 120rpx; | 
|---|
|  |  |  | margin-right: 24rpx; | 
|---|
|  |  |  | border: 2rpx solid #e5e5e5; | 
|---|
|  |  |  | background: #f7f7f7; | 
|---|
|  |  |  | color: #666666; | 
|---|
|  |  |  | font-size: 22rpx; | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | flex-direction: column; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  | justify-content: center; | 
|---|
|  |  |  | position: relative; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .close { | 
|---|
|  |  |  | position: absolute; | 
|---|
|  |  |  | right: -20rpx; | 
|---|
|  |  |  | top: -20rpx; | 
|---|
|  |  |  | z-index: 9999; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | image { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | height: 100%; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | video { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | max-height: 120rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .emyty { | 
|---|
|  |  |  | width: 750rpx; | 
|---|
|  |  |  | height: 20rpx; | 
|---|
|  |  |  | background-color: #f7f7f7; | 
|---|
|  |  |  | margin: 0 -30rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .sel_upload_wrap { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | border-top: 1px solid #333333; | 
|---|
|  |  |  | box-shadow: 0 1 1 #333333; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .btn { | 
|---|
|  |  |  | height: 90rpx; | 
|---|
|  |  |  | line-height: 90rpx; | 
|---|
|  |  |  | text-align: center; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .member_list { | 
|---|
|  |  |  | height: 920rpx; | 
|---|
|  |  |  | overflow: auto; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .line { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | align-items: center; | 
|---|
|  |  |  | border-bottom: 1rpx solid #e5e5e5; | 
|---|
|  |  |  | padding: 30rpx 0; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .avatar { | 
|---|
|  |  |  | width: 64rpx; | 
|---|
|  |  |  | height: 64rpx; | 
|---|
|  |  |  | border-radius: 50%; | 
|---|
|  |  |  | overflow: hidden; | 
|---|
|  |  |  | margin-right: 20rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .content { | 
|---|
|  |  |  | flex: 1; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .depart { | 
|---|
|  |  |  | font-size: 24rpx; | 
|---|
|  |  |  | color: #666666; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .info { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  | margin-bottom: 16rpx; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .name { | 
|---|
|  |  |  | font-size: 30rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .tag { | 
|---|
|  |  |  | font-size: 24rpx; | 
|---|
|  |  |  | border-radius: 4rpx; | 
|---|
|  |  |  | border: 1rpx solid #f62710; | 
|---|
|  |  |  | color: #f62710; | 
|---|
|  |  |  | padding: 0rpx 6rpx; | 
|---|
|  |  |  | margin-left: 8rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .checked { | 
|---|
|  |  |  | width: 48rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .empty { | 
|---|
|  |  |  | width: 100%; | 
|---|
|  |  |  | height: 280rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .search_inp { | 
|---|
|  |  |  | height: 72rpx; | 
|---|
|  |  |  | background: #f7f7f7; | 
|---|
|  |  |  | border-radius: 4rpx; | 
|---|
|  |  |  | padding-left: 16rpx; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .search { | 
|---|
|  |  |  | width: 28rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | input { | 
|---|
|  |  |  | flex: 1; | 
|---|
|  |  |  | font-size: 28rpx; | 
|---|
|  |  |  | color: #333333; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .Transfer_footer { | 
|---|
|  |  |  | display: flex; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .btn { | 
|---|
|  |  |  | flex: 1; | 
|---|
|  |  |  | height: 88rpx; | 
|---|
|  |  |  | line-height: 88rpx; | 
|---|
|  |  |  | background: #ffffff; | 
|---|
|  |  |  | border-radius: 44rpx; | 
|---|
|  |  |  | border: 1rpx solid #999999; | 
|---|
|  |  |  | font-size: 32rpx; | 
|---|
|  |  |  | text-align: center; | 
|---|
|  |  |  | margin: 16rpx 8rpx; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | .active { | 
|---|
|  |  |  | background: $uni-color-primary; | 
|---|
|  |  |  | color: #fff; | 
|---|
|  |  |  | border: 1rpx solid $uni-color-primary; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | </style> | 
|---|