whyczyk
2021-09-03 65b367f51fc7b1ce8e005a513bb9365b872894c5
代码已提交
3个文件已修改
205 ■■■■■ 已修改文件
src/pages/alarm-details.vue 197 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/alarm-handle.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/index.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/alarm-details.vue
@@ -96,83 +96,88 @@
          </div>
        </div>
      </div>
      <div v-if="userPower!=0&&!isNoAlarm">
        <div class="subBtn" @click="startHandle" v-if="alarmInfo.status==1">开始处理</div>
        <div class="card" v-if="alarmInfo.status==2">
          <div class="commonTitle cardTitle">
            订单状态:
          </div>
          <van-steps :active="stepsActive">
            <van-step>处理中</van-step>
            <van-step>待审核</van-step>
            <van-step>已完成</van-step>
          </van-steps>
      <!-- 如果是处理中状态 -->
      <div class="card" v-if="alarmInfo.status==2||alarmInfo.status==3">
        <div class="commonTitle cardTitle">
          订单状态:
        </div>
        <div class="subBtn" @click="toPage('edit')" v-if="alarmInfo.status==2&&stepsActive==0">继续处理</div>
        <div class="card" v-else-if="alarmInfo.status==2&&stepsActive==1||alarmInfo.status==2&&stepsActive==2">
          <div class="commonTitle cardTitle">
            告警处理:
        <van-steps :active="stepsActive">
          <van-step>处理中</van-step>
          <van-step>待审核</van-step>
          <van-step>已完成</van-step>
        </van-steps>
      </div>
      <!-- 如果是进入审核状态 -->
      <div class="card"
        v-if="alarmInfo.status==2&&stepsActive==1||alarmInfo.status==2&&stepsActive==2||alarmInfo.status==3">
        <div class="commonTitle cardTitle">
          告警处理:
        </div>
        <div class="commonTitle">
          <div class="label">
            问题描述:
          </div>
          <div class="commonTitle">
            <div class="label">
              问题描述:
            </div>
            <div class="text">
              {{handleInfo.description}}
            </div>
          <div class="text">
            {{handleInfo.description}}
          </div>
          <div class="commonTitle">
            <div class="label">
              处理前照片:
            </div>
            <div class="text">
              <div class="van-uploader__wrapper"
                v-if="handleInfo.imageBefore&&handleInfo.imageBefore.split(',').length>0">
                <div class="van-uploader__preview" v-for="(item,i) in handleInfo.imageBefore.split(',')" :key="i"
                  @click="toShowImgpreview(handleInfo.imageBefore.split(','))">
                  <div class="van-image van-uploader__preview-image">
                    <img :src="item" class="van-image__img" style="object-fit: cover;">
                  </div>
        </div>
        <div class="commonTitle">
          <div class="label">
            处理前照片:
          </div>
          <div class="text">
            <div class="van-uploader__wrapper"
              v-if="handleInfo.imageBefore&&handleInfo.imageBefore.split(',').length>0">
              <div class="van-uploader__preview" v-for="(item,i) in handleInfo.imageBefore.split(',')" :key="i"
                @click="toShowImgpreview(handleInfo.imageBefore.split(','))">
                <div class="van-image van-uploader__preview-image">
                  <img :src="item" class="van-image__img" style="object-fit: cover;">
                </div>
              </div>
            </div>
          </div>
          <div class="commonTitle">
            <div class="label">
              处理方法:
            </div>
            <div class="text">
              {{handleInfo.workWay}}
            </div>
        </div>
        <div class="commonTitle">
          <div class="label">
            处理方法:
          </div>
          <div class="commonTitle">
            <div class="label">
              处理后照片:
            </div>
            <div class="text">
              <div class="van-uploader__wrapper"
                v-if="handleInfo.imageAfter&&handleInfo.imageAfter.split(',').length>0">
                <div class="van-uploader__preview" v-for="(item,i) in handleInfo.imageAfter.split(',')" :key="i"
                  @click="toShowImgpreview(handleInfo.imageAfter.split(','))">
                  <div class="van-image van-uploader__preview-image">
                    <img :src="item" class="van-image__img" style="object-fit: cover;">
                  </div>
          <div class="text">
            {{handleInfo.workWay}}
          </div>
        </div>
        <div class="commonTitle">
          <div class="label">
            处理后照片:
          </div>
          <div class="text">
            <div class="van-uploader__wrapper" v-if="handleInfo.imageAfter&&handleInfo.imageAfter.split(',').length>0">
              <div class="van-uploader__preview" v-for="(item,i) in handleInfo.imageAfter.split(',')" :key="i"
                @click="toShowImgpreview(handleInfo.imageAfter.split(','))">
                <div class="van-image van-uploader__preview-image">
                  <img :src="item" class="van-image__img" style="object-fit: cover;">
                </div>
              </div>
            </div>
          </div>
          <div class="commonTitle">
            <div class="label">
              意见建议:
            </div>
            <div class="text">
              {{handleInfo.workSuggest}}
            </div>
        </div>
        <div class="commonTitle">
          <div class="label">
            意见建议:
          </div>
          <div class="text">
            {{handleInfo.workSuggest}}
          </div>
        </div>
      </div>
      <!-- 如果是维护员并且有实时告警 -->
      <div v-if="userPower!=0&&!isNoAlarm">
        <div class="subBtn" @click="startHandle" v-if="alarmInfo.status==1">开始处理</div>
        <div class="subBtn" @click="toPage('edit')" v-if="alarmInfo.status==2&&stepsActive==0">继续处理</div>
      </div>
      <!-- 如果是维护员并且实时告警已自动消除 -->
      <div class="subBtn" @click="completeAlarm" v-else-if="userPower!=0&&isNoAlarm">确认告警自动消除</div>
      <div class="" v-else-if="userPower==0&&alarmInfo.status==0">
      <!-- 如果是管理员未派发 -->
      <div v-if="userPower==0&&alarmInfo.status==0">
        <div class="card">
          <div class="commonTitle cardTitle">
            指派人员:
@@ -185,6 +190,17 @@
        </div>
        <div class="subBtn" @click="toAssign">确认指派</div>
      </div>
      <!-- 如果是管理员待审核 -->
      <div v-if="userPower==0&&alarmInfo.status==2&&stepsActive==1">
        <div class="card">
          <van-field v-model="handleInfo.note" rows="2" autosize label="审核意见" type="textarea" placeholder="请输入审核意见…"
            show-word-limit />
        </div>
        <div class="btnCon">
          <div class="subBtn" @click="suggest(3)">通过</div>
          <div class="subBtn" @click="suggest(-1)">不通过</div>
        </div>
      </div>
    </div>
    <van-image-preview v-model="showImgPreview" :images="ImgPreviewList">
    </van-image-preview>
@@ -196,6 +212,7 @@
    updateWorkAlarm,
    searchStatusById,
    dispatchTask,
    updateUserWork,
  } from '@/assets/js/api'
  import {
    mapState,
@@ -246,7 +263,6 @@
    },
    mounted() {
      this.alarmInfo = JSON.parse(this.$route.query.alarmData);
      console.log(this.alarmInfo)
      let assignUser = sessionStorage.getItem('assignUser')
      if (assignUser) {
        this.assignUser = JSON.parse(assignUser)
@@ -262,7 +278,8 @@
          path: '/alarmHandle',
          query: {
            id: this.alarmInfo.id,
            type: type
            type: type,
            managerId: this.alarmInfo.managerId
          }
        })
      },
@@ -329,11 +346,14 @@
            if (resData.data.dispatchTime) {
              this.alarmInfo.dispatchTime = resData.data.dispatchTime;
            }
            if (resData.data.userWorkList.length > 0) {
              this.handleInfo = resData.data.userWorkList[0];
              this.stepsActive = this.handleInfo.checkStatus
            if (resData.data.managerId) {
              this.alarmInfo.managerId = resData.data.managerId;
            }
            if (this.alarmInfo.status != 3) {
            if (resData.data.userWorkList && resData.data.userWorkList.length > 0) {
              this.handleInfo = resData.data.userWorkList[0];
              this.stepsActive = this.handleInfo.checkStatus - 1
            }
            if (this.alarmInfo.status != 3 && resData.data.flg == 0) {
              this.isNoAlarm = true
            } else {
              this.isNoAlarm = false
@@ -352,6 +372,24 @@
          let resData = JSON.parse(res.data.result)
          if (resData.code == 1) {
            this.toPage('add')
          }
        }).catch((err) => {
          console.log(err)
        });
      },
      suggest(checkStatus) {
        this.handleInfo.checkStatus = checkStatus;
        let endTime = this.$units.timeFormat(new Date().getTime, 'yyyy-mm-dd hh:MM:ss');
        this.handleInfo.endTime = endTime;
        if (this.handleInfo.note == '') {
          this.$toast('请输入审核意见…')
          return
        }
        updateUserWork(this.handleInfo).then((res) => {
          let resData = JSON.parse(res.data.result)
          if (resData.code == 1) {
            this.$toast('审核成功!')
            this.loadStatus()
          }
        }).catch((err) => {
          console.log(err)
@@ -419,4 +457,29 @@
    font-size: 36px;
    margin-top: 48px;
  }
  .btnCon {
    width: 100%;
    display: flex;
    align-items: center;
  }
  .btnCon .subBtn {
    flex: 1;
    height: 98px;
    background: #07c160;
    border-radius: 8px;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #FFFFFF;
    font-size: 36px;
    margin-top: 48px;
    margin-right: 24px;
  }
  .btnCon .subBtn:last-of-type {
    margin-right: 0;
    background: #f9534b;
  }
</style>
src/pages/alarm-handle.vue
@@ -20,8 +20,8 @@
          show-word-limit />
      </div>
      <div class="btnCon">
        <div class="subBtn" @click="submit(0)">保存</div>
        <div class="subBtn" @click="submit(1)">提交</div>
        <div class="subBtn" @click="submit(1)">保存</div>
        <div class="subBtn" @click="submit(2)">提交</div>
      </div>
    </div>
  </div>
@@ -57,6 +57,7 @@
    },
    mounted() {
      this.alarmInfo.workId = this.$route.query.id;
      this.alarmInfo.managerId = this.$route.query.managerId;
      let type = this.$route.query.type;
      if (type == 'edit') {
        this.loadHandle()
@@ -76,7 +77,6 @@
        }
        serchByCondition(postData).then((res) => {
          let resData = JSON.parse(res.data.result)
          console.log(resData)
          if (resData.code == 1) {
            this.alarmInfo = resData.data[resData.data.length - 1]
          }
@@ -109,6 +109,7 @@
          let resData = JSON.parse(res.data.result)
          if (resData.code == 1) {
            this.$toast(resData.msg)
            this.$router.back();
          }
        }).catch((err) => {
          console.log(err)
src/pages/index.vue
@@ -195,7 +195,6 @@
        searchAllByUserIdAndStatus(postData).then((res) => {
          let resData = JSON.parse(res.data.result).data
          tab.loading = false;
          console.log(resData)
          if (resData && resData.obj && resData.obj.length > 0) {
            tab.listData.push(...resData.obj)
          }