Commit 61dd7cab authored by 王李辉's avatar 王李辉
Browse files

隐患模块接口对接(80%)

parent b455b64d
Loading
Loading
Loading
Loading
+107 −9
Original line number Original line Diff line number Diff line
import request from '@/utils/axios'
import request from '@/utils/axios'


// 隐患上报模块
// 隐患上报模块
// 隐患上报已退回
export function dangerReturn(url,data) {
    return request({
      url: url,
      method: 'post',
      data
    })
}

// 请求新增表单数据信息的
// 请求新增表单数据信息的
export function getFormList(url,params) {
export function getFormList(url,params) {
  return request({
  return request({
@@ -59,6 +50,7 @@ export function postHdShowPeople(url,data) {
  })
  })
}
}



// 隐患上报保存接口
// 隐患上报保存接口
export function postHdReportAdd(url,data) {
export function postHdReportAdd(url,data) {
  return request({
  return request({
@@ -67,3 +59,109 @@ export function postHdReportAdd(url,data) {
    data
    data
  })
  })
}
}

// 隐患上报已退回列表
export function dangerReturn(url,data) {
  return request({
    url: url,
    method: 'post',
    data
  })
}
// 隐患上报已退回删除
export function dangerReturnDel(url,data) {
  return request({
    url: url,
    method: 'post',
    data
  })
}

// 隐患上报已退回  回显所有数据接口
export function dangerReturnEcho(url,data) {
  return request({
    url: url,
    method: 'get',
    data
  })
}


// 隐患确认模块
// 隐患确认列表
export function dangerConfirm(url,data) {
  return request({
    url: url,
    method: 'post',
    data
  })
}
// 隐患确认form表单列表数据
export function getConfirmFormList(url,params) {
  return request({
    url: url,
    method: 'get',
    params
  })
}
// 隐患确认提交
export function dangerConSub(url,data) {
  return request({
    url: url,
    method: 'post',
    data
  })
}

// 隐患整改模块
// 隐患整改列表
export function dangerRect(url,data) {
  return request({
    url: url,
    method: 'post',
    data
  })
}
// 隐患整改 有退回原因的
export function dangerRectReturn(url,params) {
  return request({
    url: url,
    method: 'get',
    params
  })
}
// 隐患整改保存 没有退回原因
export function dangerRectAdd(url,data) {
  return request({
    url: url,
    method: 'post',
    data
  })
}

// 整改复查模块
// 整改复查列表
export function dangerReview(url,data) {
  return request({
    url: url,
    method: 'post',
    data
  })
}
// 整改复查保存
export function dangerReviewAdd(url,data) {
  return request({
    url: url,
    method: 'post',
    data
  })
}

// 隐患历史台账模块
export function dangerStandBook(url,data) {
  return request({
    url: url,
    method: 'post',
    data
  })
}
+31 −6
Original line number Original line Diff line number Diff line
@@ -13,7 +13,7 @@
        v-model="returnCause"
        v-model="returnCause"
        readonly
        readonly
        rows="1"
        rows="1"
        autosize=""
        autosize
        label="退回原因"
        label="退回原因"
        type="textarea"
        type="textarea"
      />
      />
@@ -266,22 +266,27 @@ import {
  postHdInventories,
  postHdInventories,
  postHdRiskSource,
  postHdRiskSource,
  postHdShowPeople,
  postHdShowPeople,
  postHdReportAdd
  postHdReportAdd,
  dangerReturnEcho
} from "@/service/danger";
} from "@/service/danger";
export default {
export default {
  components: {
  components: {
    LHeader
    LHeader
  },
  },
  created() {
  created() {
    if (this.$route.params.status) {
    this.taskId = this.$route.params.taskId
    if (this.taskId) {
      this.isShowreturnCause = true;
      this.isShowreturnCause = true;
      this.text = "隐患上报退回";
      this.text = "隐患上报退回";
      this.postReturnEcho()
    }
    }
    console.log("taskid"+this.taskId);
    this.getList();
    this.getList();
  },
  },
  data() {
  data() {
    return {
    return {
      text: "新增隐患",
      text: "新增隐患",
      taskId:"",
      projectId: "", // 所属工程
      projectId: "", // 所属工程
      projectName: "",
      projectName: "",
      showProjectName: false,
      showProjectName: false,
@@ -334,8 +339,8 @@ export default {
      formdata.append("dangerSource", values.dangerSource)
      formdata.append("dangerSource", values.dangerSource)
      formdata.append("hdPosition", values.hdPosition)
      formdata.append("hdPosition", values.hdPosition)
      formdata.append("hdDescribe",  values.hdDescribe)
      formdata.append("hdDescribe",  values.hdDescribe)
      formdata.append("hdPicture1", values.hdPicture1)
      formdata.append("hdPicture1[]", values.hdPicture1)
      formdata.append("hdVideo1", values.hdVideo1)
      formdata.append("hdVideo1[]", values.hdVideo1)
      formdata.append("hdExpirationTime", values.hdExpirationTime)
      formdata.append("hdExpirationTime", values.hdExpirationTime)
      formdata.append("rectificationUser", values.rectificationUser)
      formdata.append("rectificationUser", values.rectificationUser)
      this.$toast.loading({
      this.$toast.loading({
@@ -379,6 +384,25 @@ export default {
        });
        });
    },
    },


    // 请求已退回详情数据
    postReturnEcho(){
      this.$toast.loading({
        message: "加载中...",
        forbidClick: true,
        loadingType: "spinner",
        duration: 0
      });
      dangerReturnEcho(`/hdreport/edit/${this.taskId}`)
        .then(res => {
          this.$toast.clear();
          console.log(res);
        })
        .catch(() => {
          this.$toast.clear();
          this.$toast.fail("加载失败,请稍后再试");
        });
    },

    // 所属工程名称
    // 所属工程名称
    onConProjectName(value) {
    onConProjectName(value) {
      this.projectId = value.id;
      this.projectId = value.id;
@@ -456,7 +480,8 @@ export default {


    cancel() {
    cancel() {
      this.$router.go(-1);
      this.$router.go(-1);
    }
    },

  }
  }
};
};
</script>
</script>
+0 −123
Original line number Original line Diff line number Diff line
<template>
  <div>
    <!-- 内容列表 -->
    <div class="con-list">
      <van-cell-group
        inset
        v-for="(item, index) in messageList"
        :key="index"
        @click="read(item)"
        @touchstart="touchstart(index, item)"
        @touchend.prevent="touchend(index)"
      >
        <van-row gutter="">
          <van-col span="7">所属工程名称:</van-col>
          <van-col span="17">{{ item.project }}</van-col>
        </van-row>
        <van-row gutter="">
          <van-col span="7">隐患项目名称:</van-col>
          <van-col span="17">{{ item.subject }}</van-col>
        </van-row>
        <van-row gutter="">
          <van-col span="7">隐患发现时间:</van-col>
          <van-col span="17">{{ item.findTime }}</van-col>
        </van-row>
        <van-row gutter="">
          <van-col span="7">隐患级别:</van-col>
          <van-col span="17">{{ item.level }}</van-col>
        </van-row>
 

        <!-- 长按显示遮罩层 -->
        <van-overlay :show="showIndex == index">
          <div class="wrapper" @click.stop>
            <van-button round type="primary" @touchstart="goDetail(item)"
              >详情</van-button
            >
            <van-button round type="info" @touchstart="goConfirm(item)"
              >确认</van-button
            >
          </div>
        </van-overlay>
      </van-cell-group>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      messageList: [
        {
          project: "朝阳区和平街14区简易住宅楼改造项目",
          subject: "临时用电施工组织设计未对盾构施工用电进行专项说明。",
          findTime: "2021-10-26 16:30:00",
          level: "一般隐患A"
        }
      ],
      Loop: "", // 定时器
      showIndex: null // 是否显示遮罩层
    };
  },
  mounted() {},
  methods: {
    read() {},

    touchstart(index, item) {
      clearTimeout(this.Loop); //再次清空延时器,防止重复注册定时器
      if (this.showIndex != null) {
        this.showIndex = null;
        return;
      }
      this.Loop = setTimeout(() => {
        this.showIndex = index;
      }, 300); // 这里的1000是指需要长按的时间,单位为ms
    },
    touchend(index) {
      // 这个方法主要是用来将每次手指移出之后将计时器清零
      clearInterval(this.Loop);
    },

    // 详情
    goDetail(data) {
      console.log(data);
      this.$router.push("/change-detail");
      this.showIndex = null;
    },
    // 确认
    goConfirm(data) {
      console.log(data);
      this.$router.push("/change-info");
      this.showIndex = null;
    }
  }
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
.con-list {
  padding: 10px 10px 0;
  background-color: #f0f1f5;
  .van-cell-group--inset {
    margin: 0;
    margin-bottom: 10px;
    padding: 10px;
    font-size: 13px;
    position: relative;
    .van-row{
      margin-bottom: .133333rem;
      line-height: .64rem;
    }
    .van-overlay {
      position: absolute;
      .wrapper {
        display: flex;
        align-items: center;
        justify-content: space-evenly;
        height: 100%;
      }
    }
  }
}
</style>
+73 −4
Original line number Original line Diff line number Diff line
@@ -3,14 +3,24 @@
    <LHeader :text="text"></LHeader>
    <LHeader :text="text"></LHeader>
    <van-form
    <van-form
      @submit="onSubmit"
      @submit="onSubmit"
      :show-error='false'
      :show-error="false"
      :scroll-to-error="true"
      :scroll-to-error="true"
      validate-trigger="onSubmit"
      validate-trigger="onSubmit"
    >
    >
      <van-field
        v-if="isShowreturnCause"
        v-model="returnCause"
        readonly
        rows="1"
        autosize
        label="退回原因"
        type="textarea"
      />

      <van-field
      <van-field
        v-model="value"
        v-model="value"
        label="隐患整改描述"
        label="隐患整改描述"
        name="隐患整改描述"
        name="details"
        rows="3"
        rows="3"
        type="textarea"
        type="textarea"
        placeholder="请输入"
        placeholder="请输入"
@@ -20,7 +30,6 @@
      <van-field
      <van-field
        name="uploader"
        name="uploader"
        label="整改照片"
        label="整改照片"
        :rules="[{ required: true, message: '请上传图像' }]"
      >
      >
        <template #input>
        <template #input>
          <van-uploader v-model="uploaderImg" />
          <van-uploader v-model="uploaderImg" />
@@ -49,6 +58,7 @@


<script>
<script>
import LHeader from "@/components/header.vue";
import LHeader from "@/components/header.vue";
import { dangerRectReturn, dangerRectAdd } from "@/service/danger";
export default {
export default {
  components: {
  components: {
    LHeader
    LHeader
@@ -56,16 +66,75 @@ export default {
  data() {
  data() {
    return {
    return {
      text: "整改确认",
      text: "整改确认",
      taskId: "",
      taskName: "",
      returnCause: "",
      isShowreturnCause: false,
      value: "",
      value: "",
      uploaderImg: [], //图像上传
      uploaderImg: [], //图像上传
      uploaderVideo: [] //视频上传
      uploaderVideo: [] //视频上传
    };
    };
  },
  },
  mounted() {},
  created() {
    this.taskId = this.$route.params.taskId;
    this.taskName = this.$route.params.taskName;
    if (this.taskName == "隐患整改(已退回)") {
      this.isShowreturnCause = true;
      // 请求退回原因
      this.getRectReturn();
    }
  },
  methods: {
  methods: {
    onSubmit(values) {
    onSubmit(values) {
      console.log("submit", values);
      console.log("submit", values);
      this.$toast.loading({
        message: "提交中...",
        forbidClick: true,
        loadingType: "spinner",
        duration: 0
      });
      let formdata = new FormData();
      formdata.append("details", this.value);
      // formdata.append("rePicture[]", values.uploader);
      // formdata.append("reVideo[]", values.uploader2);
      // 判断保存的url
      let url = `/rectification/add1/${this.taskId}`;
      if (this.taskName == "隐患整改(已退回)") {
        url = `/rectification/add2/${this.taskId}`;
      }
      dangerRectAdd(url,formdata)
        .then(res => {
          this.$toast.clear();
          this.$toast.success({
            message: "提交成功",
            duration: 2000
          });
          history.go(-1);
        })
        .catch(() => {
          this.$toast.clear();
          this.$toast.fail("提交失败,请稍后再试");
        });
    },
    },
    // 请求退回原因方法
    getRectReturn() {
      this.$toast.loading({
        message: "加载中...",
        forbidClick: true,
        loadingType: "spinner",
        duration: 0
      });
      dangerRectReturn(`/rectification/addReturn/${this.taskId}`)
        .then(res => {
          this.$toast.clear();
          this.returnCause = res.data.reason;
        })
        .catch(() => {
          this.$toast.clear();
          this.$toast.fail("加载失败,请稍后再试");
        });
    },

    cancel() {
    cancel() {
      this.$router.go(-1);
      this.$router.go(-1);
    }
    }
+145 −16
Original line number Original line Diff line number Diff line
@@ -2,42 +2,171 @@
  <div>
  <div>
    <LHeader :text="text"></LHeader>
    <LHeader :text="text"></LHeader>
    <van-search v-model="searchValue" placeholder="搜索" @search="onSearch" />
    <van-search v-model="searchValue" placeholder="搜索" @search="onSearch" />
    <van-tabs
    <!-- 内容列表 -->
      v-model="active"
    <div class="con-list">
      color="#247df7"
      <van-cell-group
      title-inactive-colo="#d0d1d1"
        inset
      title-active-color="#000000"
        v-for="(item, index) in messageList"
        :key="index"
        @click="read(item)"
        @touchstart="touchstart(index, item)"
        @touchend.prevent="touchend(index)"
      >
      >
      <van-tab title="隐患整改">
        <van-row gutter="">
          <change-danger></change-danger>
          <van-col span="5">所属项目:</van-col>
      </van-tab>
          <van-col span="19">{{ item.proId }}</van-col>
    </van-tabs>
        </van-row>
        <van-row gutter="">
          <van-col span="5">隐患级别:</van-col>
          <van-col span="19">{{ item.hdLev }}</van-col>
        </van-row>
        <van-row gutter="">
          <van-col span="5">适用范围:</van-col>
          <van-col span="19">{{ item.hdRange }}</van-col>
        </van-row>
        <van-row gutter="">
          <van-col span="5">隐患类型:</van-col>
          <van-col span="19">{{ item.hdType }}</van-col>
        </van-row>
        <van-row gutter="">
          <van-col span="5">发现时间:</van-col>
          <van-col span="19">{{ item.hdDiscoveryTime }}</van-col>
        </van-row>
        <van-row gutter="">
          <van-col span="5">超期标识:</van-col>
          <van-col span="19">{{ item.dueDate | formatTime }}</van-col>
        </van-row>
        <van-row gutter="">
          <van-col span="5">状态:</van-col>
          <van-col span="19">{{ item.taskName }}</van-col>
        </van-row>
 

        <!-- 长按显示遮罩层 -->
        <van-overlay :show="showIndex == index">
          <div class="wrapper" @click.stop>
            <van-button round type="primary" @touchstart="goDetail(item)"
              >详情</van-button
            >
            <van-button round type="info" @touchstart="goConfirm(item)"
              >确认</van-button
            >
          </div>
        </van-overlay>
      </van-cell-group>
    </div>
  </div>
  </div>
</template>
</template>


<script>
<script>
import LHeader from "@/components/header.vue";
import LHeader from "@/components/header.vue";
import changeDanger from "./changeDanger.vue";
import { dangerRect } from "@/service/danger";
export default {
export default {
  components: {
  components: {
    LHeader,
    LHeader,
    changeDanger
  },
  },
  data() {
  data() {
    return {
    return {
      text: "隐患整改",
      text: "隐患整改",
      active: "1",
      searchValue: "",
      searchValue: ""
      messageList: [],
      Loop: "", // 定时器
      showIndex: null // 是否显示遮罩层
    };
    };
  },
  },
  mounted() {},
  created() {
    this.postList()
  },
  methods: {
  methods: {
      onSearch(val) {
      onSearch(val) {
      console.log(val);
      console.log(val);
    },
    postList(){
       this.$toast.loading({
        message: "加载中...",
        forbidClick: true,
        loadingType: "spinner",
        duration: 0
      });
      dangerRect("/rectification/list").then(res =>{
         this.$toast.clear();
         this.messageList = res.rows
      }).catch(() => {
          this.$toast.clear();
          this.$toast.fail("加载失败,请稍后再试");
        });
    },

     touchstart(index, item) {
      clearTimeout(this.Loop); //再次清空延时器,防止重复注册定时器
      if (this.showIndex != null) {
        this.showIndex = null;
        return;
      }
      this.Loop = setTimeout(() => {
        this.showIndex = index;
      }, 300); // 这里的1000是指需要长按的时间,单位为ms
    },
    touchend(index) {
      // 这个方法主要是用来将每次手指移出之后将计时器清零
      clearInterval(this.Loop);
    },

    // 详情
    goDetail(data) {
      console.log(data);
      this.showIndex = null;
    },
    // 确认
    goConfirm(data) {
      console.log(data);
      this.$router.push({
        name:"change-info",
        params:{
          "taskId":data.taskId,
          "taskName":data.taskName
        }
      });
      this.showIndex = null;
    }
  },
  filters:{
    formatTime:function(val){
      if (new Date(val).getTime() <= new Date().getTime()){
          return "超期"
      }else if(new Date(val).getTime()>= new Date().getTime() &&  new Date(val).getTime()  <= new Date().getTime() + 259200000){
          return "临期"
      }else {
          return "正常"
      }
    }
    }
  }
  }
};
};
</script>
</script>
<style scoped>
<style lang="less" scoped>
/* @import url(); 引入css类 */
/* @import url(); 引入css类 */
.con-list {
  padding: 10px 10px 0;
  background-color: #f0f1f5;
  .van-cell-group--inset {
    margin: 0;
    margin-bottom: 10px;
    padding: 10px;
    font-size: 13px;
    position: relative;
    .van-row{
      margin-bottom: .133333rem;
      line-height: .64rem;
    }
    .van-overlay {
      position: absolute;
      .wrapper {
        display: flex;
        align-items: center;
        justify-content: space-evenly;
        height: 100%;
      }
    }
  }
}
</style>
</style>
Loading