ll
liukangdong
2024-09-13 7a29f062e2e9ea3fe7ecbf937ed7a51461f5299a
h5/pages/staff/task/vDangetAppr.vue
@@ -2,47 +2,17 @@
  <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 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 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">
@@ -66,33 +36,19 @@
      <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 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 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">
@@ -103,150 +59,79 @@
    <!-- 流程 -->
    <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="list">
            <view class="item" v-for="(item, index) in flowList" :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"
            />
                  <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" v-if="item.createDate">{{
                item.createDate.slice(0, 16)
              }}</view>
                     <view class="time">{{ item.createDate }}</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 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
      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 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"
    >
      <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 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="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 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"
        />
            <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>
@@ -254,94 +139,55 @@
      </view>
    </u-popup>
    <!-- 处理 -->
    <u-popup
      :show="isShowHandle"
      :round="10"
      :safeAreaInsetBottom="true"
      mode="bottom"
      @close="isShowHandle = false"
    >
      <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 }}
               <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 @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="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="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 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 class="label"><text>*</text>整改后</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 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"
        />
            <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>
@@ -355,62 +201,32 @@
        <view class="btn" @click="uploadVideo">选择视频</view>
      </view>
    </u-popup>
    <u-popup
      :show="showUploadBe"
      @close="showUploadBe = false"
      closeOnClickOverlay
    >
      <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
    >
      <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"
    >
      <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;"
          />
               <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>
                  <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>
@@ -418,20 +234,10 @@
              </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>
                  <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>
@@ -443,20 +249,11 @@
      </view>
    </u-popup>
    <!-- 退回时间 -->
    <u-datetime-picker
      :show="isShowBackDate"
      @confirm="confirmBackDate"
      @cancel="isShowBackDate = false"
      mode="datetime"
    ></u-datetime-picker>
      <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>
      <u-datetime-picker :minDate="new Date().getTime()" :show="isShowHandleDate" @confirm="confirmHandleDate"
         @cancel="isShowHandleDate = false" mode="datetime"></u-datetime-picker>
  </view>
</template>
@@ -466,25 +263,37 @@
  uploadUrl,
  findHiddenAreaMemberList,
  dealHiddenDanger,
  transferHiddenDanger
} from '@/api'
import dayjs from 'dayjs'
      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 },
      ],
            cateList: [{
               name: '访客申请',
               id: 0
            }, {
               name: '访客报备',
               id: 1
            }, {
               name: '用车申请',
               id: 2
            }, {
               name: '隐患随手拍',
               id: 3
            }, {
               name: '物流车申请',
               id: 4
            }],
      statusMap: {
        0: '待处理',
        1: '已整改',
@@ -492,9 +301,8 @@
        3: '已拒绝',
        4: '已取消',
        5: '他人或签',
        6: '他人拒绝',
               6: '他人拒绝'
      },
      showUpload: false,
      isShowBackDate: false,
@@ -517,46 +325,59 @@
        capacity: 50
      },
      memberList: []
    }
         };
  },
  onLoad(op) {
    this.id = op.id
    this.type = op.objType
    this.getDetail()
         this.id = op.id;
         this.type = op.objType;
         this.getDetail();
  },
  methods: {
    priviewImage(url) {
      uni.previewImage({
        urls: [url]
      })
            });
    },
    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'))
            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'))
            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
            const {
               id
            } = this;
      hiddenDangerDetail(id).then(res => {
        this.info = res.data
      })
               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({
            const {
               dealBeforeFileList,
               dealAfterFileList,
               handleParam
            } = this;
            if (dealBeforeFileList.length === 0)
               return uni.showToast({
        title: '请上传整改前图片或视频',
        icon: 'none'
      })
      if (dealAfterFileList.length === 0) return uni.showToast({
               });
            if (dealAfterFileList.length === 0)
               return uni.showToast({
        title: '请上传整改后图片或视频',
        icon: 'none'
      })
               });
      dealHiddenDanger({
        ...handleParam,
        dealBeforeFileList: dealBeforeFileList,
@@ -565,45 +386,49 @@
        id: this.id
      }).then(res => {
        if (res.code === 200) {
          this.isShowHandle = false
                  this.isShowHandle = false;
          setTimeout(() => {
            uni.showToast({
              title: '操作成功',
              icon: 'success'
            })
          })
          uni.navigateBack()
                     });
                  });
                  uni.navigateBack();
        }
      })
            });
    },
    enterTransfer() {
      const { transferParam, id } = this
      if (!transferParam.id) return uni.showToast({
            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
                  this.isShowTransfer = false;
          setTimeout(() => {
            uni.showToast({
              title: '操作成功',
              icon: 'success'
            })
          })
          uni.navigateBack()
                     });
                  });
                  uni.navigateBack();
        }
      })
            });
    },
    changeMem(e) {
      this.transferParam = e
            this.transferParam = e;
    },
    handleTransfer() {
      this.isShowTransfer = true
      this.getMemList()
            this.isShowTransfer = true;
            this.getMemList();
    },
    getMemList() {
      findHiddenAreaMemberList({
@@ -611,21 +436,24 @@
          ...this.transferModel,
          id: this.info.areaId
        },
        ...this.pagination,
               ...this.pagination
      }).then(res => {
        this.memberList = res.data || []
      })
               this.memberList = res.data || [];
            });
    },
    confirmBackDate(e) {
      this.$set(this.backParam, 'dealTime', dayjs(e.value).format('YYYY-MM-DD HH:mm:ss'))
      this.isShowBackDate = false
            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
            this.$set(this.handleParam, 'dealTime', dayjs(e.value).format('YYYY-MM-DD HH:mm:ss'));
            this.isShowHandleDate = false;
    },
    onSubBack() {
      const { submitFileList, backParam } = this
            const {
               submitFileList,
               backParam
            } = this;
      dealHiddenDanger({
        ...backParam,
        dealBeforeFileList: submitFileList,
@@ -633,34 +461,37 @@
        id: this.id
      }).then(res => {
        if (res.code === 200) {
          this.isShowBack = false
                  this.isShowBack = false;
          setTimeout(() => {
            uni.showToast({
              title: '操作成功',
              icon: 'success'
            })
          })
          uni.navigateBack()
                     });
                  });
                  uni.navigateBack();
        }
      })
            });
    },
    fileDel(str, i) {
      this[str].splice(i, 1)
            this[str].splice(i, 1);
    },
    uploadBeImage() {
      this.showUploadBe = false
      let token = uni.getStorageSync('token') || ''
            this.showUploadBe = false;
            let token = uni.getStorageSync('token') || '';
      uni.chooseImage({
        count: 4,
        success: (chooseImageRes) => {
          uni.showLoading({ title: '上传中', mask: true })
          const tempFilePaths = chooseImageRes.tempFilePaths
               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,
@@ -671,39 +502,42 @@
            header: {
              Dm_user_token: token
            },
            success: (uploadFileRes) => {
              let res = JSON.parse(uploadFileRes.data)
                     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)
                })
                              i.type = 0;
                              i.fileurl = i.imgaddr;
                              i.fileurlFull = i.url;
                              this.dealBeforeFileList.push(i);
                           });
              }
            },
            fail(err) {
              console.log('err', err)
                        console.log('err', err);
            },
            complete() {
              uni.hideLoading()
                        uni.hideLoading();
              // if (i === chooseImageRes.tempFilePaths.length - 1) {
              //   uni.hideLoading()
              // }
            }
          })
                  });
        }
      })
            });
    },
    uploadBeVideo() {
      this.showUploadBe = false
      let token = uni.getStorageSync('token') || ''
            this.showUploadBe = false;
            let token = uni.getStorageSync('token') || '';
      uni.chooseVideo({
        success: (chooseImageRes) => {
          uni.showLoading({ title: '上传中', mask: true })
               success: chooseImageRes => {
                  uni.showLoading({
                     title: '上传中',
                     mask: true
                  });
          uni.uploadFile({
            url: `${uploadUrl}`,
            filePath: chooseImageRes.tempFilePath,
@@ -714,38 +548,41 @@
            formData: {
              folder: 'HIDDEN_DANGER_FILE'
            },
            success: (uploadFileRes) => {
              let res = JSON.parse(uploadFileRes.data)
                     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)
                })
                              i.type = 1;
                              i.fileurl = i.imgaddr;
                              i.fileurlFull = i.url;
                              this.dealBeforeFileList.push(i);
                           });
              }
            },
            complete() {
              uni.hideLoading()
                        uni.hideLoading();
            }
          })
                  });
        }
      })
            });
    },
    uploadAfImage() {
      this.showUploadAf = false
      let token = uni.getStorageSync('token') || ''
            this.showUploadAf = false;
            let token = uni.getStorageSync('token') || '';
      uni.chooseImage({
        count: 4,
        success: (chooseImageRes) => {
          uni.showLoading({ title: '上传中', mask: true })
          const tempFilePaths = chooseImageRes.tempFilePaths
               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,
@@ -756,36 +593,39 @@
            header: {
              Dm_user_token: token
            },
            success: (uploadFileRes) => {
              let res = JSON.parse(uploadFileRes.data)
                     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)
                })
                              i.type = 0;
                              i.fileurl = i.imgaddr;
                              i.fileurlFull = i.url;
                              this.dealAfterFileList.push(i);
                           });
              }
            },
            fail(err) {
              console.log('err', err)
                        console.log('err', err);
            },
            complete() {
              uni.hideLoading()
                        uni.hideLoading();
              // if (i === chooseImageRes.tempFilePaths.length - 1) {
              //   uni.hideLoading()
              // }
            }
          })
                  });
        }
      })
            });
    },
    uploadAfVideo() {
      this.showUploadAf = false
      let token = uni.getStorageSync('token') || ''
            this.showUploadAf = false;
            let token = uni.getStorageSync('token') || '';
      uni.chooseVideo({
        success: (chooseImageRes) => {
          uni.showLoading({ title: '上传中', mask: true })
               success: chooseImageRes => {
                  uni.showLoading({
                     title: '上传中',
                     mask: true
                  });
          uni.uploadFile({
            url: `${uploadUrl}`,
            filePath: chooseImageRes.tempFilePath,
@@ -796,38 +636,41 @@
            formData: {
              folder: 'HIDDEN_DANGER_FILE'
            },
            success: (uploadFileRes) => {
              let res = JSON.parse(uploadFileRes.data)
                     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)
                })
                              i.type = 1;
                              i.fileurl = i.imgaddr;
                              i.fileurlFull = i.url;
                              this.dealAfterFileList.push(i);
                           });
              }
            },
            complete() {
              uni.hideLoading()
                        uni.hideLoading();
            }
          })
                  });
        }
      })
            });
    },
    uploadImage() {
      this.showUpload = false
      let token = uni.getStorageSync('token') || ''
            this.showUpload = false;
            let token = uni.getStorageSync('token') || '';
      uni.chooseImage({
        count: 4,
        success: (chooseImageRes) => {
          uni.showLoading({ title: '上传中', mask: true })
          const tempFilePaths = chooseImageRes.tempFilePaths
               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,
@@ -838,36 +681,39 @@
            header: {
              Dm_user_token: token
            },
            success: (uploadFileRes) => {
              let res = JSON.parse(uploadFileRes.data)
                     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)
                })
                              i.type = 0;
                              i.fileurl = i.imgaddr;
                              i.fileurlFull = i.url;
                              this.submitFileList.push(i);
                           });
              }
            },
            fail(err) {
              console.log('err', err)
                        console.log('err', err);
            },
            complete() {
              uni.hideLoading()
                        uni.hideLoading();
              // if (i === chooseImageRes.tempFilePaths.length - 1) {
              //   uni.hideLoading()
              // }
            }
          })
                  });
        }
      })
            });
    },
    uploadVideo() {
      this.showUpload = false
      let token = uni.getStorageSync('token') || ''
            this.showUpload = false;
            let token = uni.getStorageSync('token') || '';
      uni.chooseVideo({
        success: (chooseImageRes) => {
          uni.showLoading({ title: '上传中', mask: true })
               success: chooseImageRes => {
                  uni.showLoading({
                     title: '上传中',
                     mask: true
                  });
          uni.uploadFile({
            url: `${uploadUrl}`,
            filePath: chooseImageRes.tempFilePath,
@@ -878,26 +724,26 @@
            formData: {
              folder: 'HIDDEN_DANGER_FILE'
            },
            success: (uploadFileRes) => {
              let res = JSON.parse(uploadFileRes.data)
                     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)
                })
                              i.type = 1;
                              i.fileurl = i.imgaddr;
                              i.fileurlFull = i.url;
                              this.submitFileList.push(i);
                           });
              }
            },
            complete() {
              uni.hideLoading()
                        uni.hideLoading();
            }
          })
                  });
        }
      })
    },
  },
            });
}
      }
   };
</script>
<style>
page {
@@ -924,6 +770,7 @@
        display: flex;
        margin-bottom: 48rpx;
        position: relative;
        .separate {
          position: absolute;
          width: 4rpx;
@@ -933,6 +780,7 @@
          transform: translate(-50%, 0);
          top: 80rpx;
        }
        .avatar {
          width: 80rpx;
          height: 80rpx;
@@ -981,21 +829,17 @@
              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%;
                  .line{
                     .company{
                        font-size: 26rpx;
                        color: #777777;
              }
                     .status-green{
                        color: $uni-color-primary;
                     }
                     .status-red{
                        color: red;
            }
          }
@@ -1009,26 +853,31 @@
            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;
@@ -1037,6 +886,7 @@
      }
    }
  }
  .adduser_list_item_ipt1_upload {
    width: 120rpx;
    height: 120rpx;
@@ -1050,16 +900,19 @@
    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;
@@ -1122,13 +975,16 @@
      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;
@@ -1145,23 +1001,28 @@
        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;
@@ -1180,6 +1041,7 @@
      background-color: #e9edff;
      color: $uni-color-primary;
    }
    .status_img {
      position: absolute;
      right: 0rpx;
@@ -1197,6 +1059,7 @@
    display: flex;
    justify-content: space-between;
    background: #ffffff;
    .btn {
      flex: 1;
      height: 88rpx;
@@ -1208,6 +1071,7 @@
      text-align: center;
      margin: 16rpx 8rpx;
    }
    .transfer {
      color: $uni-color-primary;
      border: 1rpx solid $uni-color-primary;
@@ -1223,6 +1087,7 @@
  .appr_modal {
    padding: 36rpx 30rpx 0;
    .title {
      font-weight: 600;
      font-size: 32rpx;
@@ -1230,11 +1095,13 @@
      margin-bottom: 40rpx;
      text-align: center;
    }
    .label {
      text {
        color: #ed4545;
      }
    }
    .df_sb {
      display: flex;
      justify-content: space-between;
@@ -1243,8 +1110,10 @@
      border-bottom: 1rpx solid #e4e4e4;
      margin-bottom: 30rpx;
    }
    .back_footer {
      display: flex;
      .btn {
        flex: 1;
        height: 88rpx;
@@ -1256,12 +1125,14 @@
        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;
@@ -1273,11 +1144,13 @@
      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;
@@ -1292,16 +1165,19 @@
      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;
@@ -1316,24 +1192,29 @@
    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;
@@ -1341,18 +1222,23 @@
      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;
@@ -1363,31 +1249,38 @@
        }
      }
    }
    .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;
@@ -1399,6 +1292,7 @@
    text-align: center;
    margin: 16rpx 8rpx;
  }
  .active {
    background: $uni-color-primary;
    color: #fff;