Commit c96e4114 authored by 王李辉's avatar 王李辉
Browse files

恢复删除的文件

parent 1ea5a41b
Loading
Loading
Loading
Loading
Loading
+15.8 KiB
Loading image diff...
+61 −0
Original line number Diff line number Diff line
@@ -551,6 +551,67 @@ const routes = [{
  component: () => import( /* webpackChunkName: "SaveWorkbench" */ '../views/danger/majorDanger/majorSurvey'),
},

// 隐患巡查首页
{
  path: '/danger-patrol',
  name: 'danger-patrol',
  meta: {
    title: '隐患巡查首页',
    index: 1
  },
  component: () => import( /* webpackChunkName: "SaveWorkbench" */ '../views/danger/dangerPatrol'),
},
// 执行巡查首页-安全管理类
{
  path: '/implement',
  name: 'implement',
  meta: {
    title: '执行巡查首页-安全管理类',
    index: 1
  },
  component: () => import( /* webpackChunkName: "SaveWorkbench" */ '../views/danger/dangerPatrol/implement'),
},
// 取消巡查
{
  path: '/cancel-patrol',
  name: 'cancel-patrol',
  meta: {
    title: '取消巡查',
    index: 1
  },
  component: () => import( /* webpackChunkName: "SaveWorkbench" */ '../views/danger/dangerPatrol/cancelPatrol'),
},
// 巡查记录
{
  path: '/record-patrol',
  name: 'record-patrol',
  meta: {
    title: '巡查记录',
    index: 1
  },
  component: () => import( /* webpackChunkName: "SaveWorkbench" */ '../views/danger/dangerPatrol/recordPatrol'),
},
// 巡查记录详情
{
  path: '/record-detail',
  name: 'record-detail',
  meta: {
    title: '巡查记录详情',
    index: 1
  },
  component: () => import( /* webpackChunkName: "SaveWorkbench" */ '../views/danger/dangerPatrol/recordPatrol/detail.vue'),
},
// 巡查统计
{
  path: '/statistics',
  name: 'statistics',
  meta: {
    title: '巡查统计',
    index: 1
  },
  component: () => import( /* webpackChunkName: "SaveWorkbench" */ '../views/danger/dangerPatrol/statistics'),
},



// 延期审批列表
+272 −0
Original line number Diff line number Diff line
<template>
    <div>
        <van-sticky offset-top="0">
            <LHeader :text="text"></LHeader>
        </van-sticky>
        <van-sticky offset-top="1.5rem">
            <van-search
                v-model="searchValue"
                show-action
                placeholder="请输入搜索内容"
                @search="onSearch"
            >
                <template #action>
                    <div @click="onSearch">搜索</div>
                </template>
            </van-search>
        </van-sticky>
        <!-- 内容列表 -->
        <!-- 接口对接4 START -->
        <van-tabs
            v-model="active"
            @change="
                getList(searchValue);
                showIndex = null;
            "
            color="#2980f7"
            animated
            :sticky="true"
            offset-top="2.93rem"
        >
            <van-tab v-for="(item, key) in tabs" :key="key" :title="item.title">
                <div
                    class="con-list"
                    @touchmove="showIndex = null"
                    v-if="key == active"
                >
                    <van-cell-group
                        inset
                        v-for="(item, index) in messageList"
                        :key="index"
                        @click="touchstart(index, item)"
                    >
                        <van-row gutter="">
                            <van-col span="7">隐患单编号:</van-col>
                            <van-col span="17">{{
                                item.businessId || item.pid
                            }}</van-col>
                        </van-row>
                        <van-row gutter="">
                            <van-col span="7">所属项目:</van-col>
                            <van-col span="17">{{ item.proId }}</van-col>
                        </van-row>
                        <van-row gutter="">
                            <van-col span="7" v-if="item.hdLev"
                                >隐患级别:</van-col
                            >
                            <van-col span="17">{{
                                item.hdLev | dangerText
                            }}</van-col>
                        </van-row>
                        <van-row gutter="" v-show="item.examineResult">
                            <van-col span="7">是否通过:</van-col>
                            <van-col span="17">{{
                                item.examineResult == 1 ? "是" : "否"
                            }}</van-col>
                        </van-row>
                        <van-row gutter="" v-show="item.examineReason">
                            <van-col span="7">意见:</van-col>
                            <van-col span="17">{{
                                item.examineReason
                            }}</van-col>
                        </van-row>
                        <van-row gutter="" v-if="item.taskName">
                            <van-col span="7">工单状态:</van-col>
                            <van-col span="17">{{ item.taskName }}</van-col>
                        </van-row>
                        <!-- 长按显示遮罩层 -->
                        <template>
                            <van-overlay :show="showIndex == index">
                                <div
                                    class="wrapper"
                                    @click.stop="showIndex = null"
                                >
                                    <van-button
                                        round
                                        type="primary"
                                        @click="goDetail(item, 'normal-detail')"
                                        >隐患详情</van-button
                                    >
                                    <van-button
                                        round
                                        type="info"
                                        @click="goConfirm(item)"
                                        v-if="active == 0"
                                        >审批
                                    </van-button>
                                    <van-button
                                        round
                                        type="info"
                                        @click="
                                            goDetail(
                                                item,
                                                'finish-delay-detail'
                                            )
                                        "
                                        v-if="active == 1"
                                        >延期查看</van-button
                                    >
                                </div>
                            </van-overlay>
                        </template>
                    </van-cell-group>
                </div>
                <!-- 暂无数据 -->
                <div
                    style="
                        width: 100%;
                        text-align: center;
                        font-size: 0.48rem;
                        position: fixed;
                        top: 30%;
                    "
                    v-if="messageList.length == 0"
                >
                    暂无数据
                </div>
            </van-tab>
        </van-tabs>
    </div>
</template>

<script>
import LHeader from "@/components/header.vue";
import { getFun, postFun } from "@/service/table.js";
import { delayList } from "@/service/danger";

export default {
    name:'delay-approval',
    components: {
        LHeader,
    },
    data() {
        return {
            text: "延期审批",
            searchValue: "",
            isHaveNews: false,
            messageList: [],
            Loop: "", // 定时器
            showIndex: null, // 是否显示遮罩层
            active: 0,
            tabs: [
                {
                    title: "待审批",
                    api: "/delayApply/list",
                },
                {
                    title: "已审批",
                    api: "/delayApply/finishList",
                },
            ],
        };
    },
    created() {
        this.getList();
    },
    methods: {
        getList(select = "") {
            /*接口对接3 START*/
            // 例子:
            this.$toast.loading({
                message: "加载中...",
                forbidClick: true,
                loadingType: "spinner",
                duration: 0,
            });
            let formdata = new FormData();
            formdata.append("select", select);
            postFun(this.tabs[this.active]["api"], formdata)
                .then((res) => {
                    this.$toast.clear();
                    this.messageList = res.rows || res.data;
                    // 判断有无数据返回
                    if (this.messageList.length == 0) {
                        this.isHaveNews = true;
                    }
                })
                .catch((err) => {
                    console.log(err);
                    this.$toast.clear();
                    this.$toast.fail("加载失败,请稍后再试");
                });
            /*接口对接3 END*/
        },
        onSearch() {
            this.getList(this.searchValue);
        },
        touchstart(index, item) {
            if (this.showIndex != null) {
                this.showIndex = null;
                return;
            }
            this.showIndex = index;
        },

        // 详情

        goDetail(data, name = "normal-detail") {
            let id =
                name == "normal-detail" ? data.businessId || data.pid : data.id;
            this.$router.push({
                name,
                params: {
                    id,
                },
            });
            this.showIndex = null;
        },
        // 审批
        goConfirm(data) {
            this.$router.push({
                name: "ratify-info",
                params: {
                    taskId: data.taskId,
                },
            });
            this.showIndex = null;
        },
    },
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
#app {
    font-family: "";
    color: #2c3e50;
}
.con-list {
    padding: 0;
    background-color: #f0f1f5;
    .van-cell-group--inset {
        margin: 0;
        margin-bottom: 0.26667rem;
        padding: 0.25rem;
        font-size: 0.4rem;
        position: relative;
        border-radius: 4%;
        box-shadow: 0px 0px 10px 2px #f3f3f3;
        width: 90%;
        margin: 0.4rem auto;
        .van-row {
            font-size: 0.4rem;
            line-height: 0.8rem;
            margin-bottom: 0;
        }
        .van-overlay {
            position: absolute;
            .wrapper {
                display: flex;
                align-items: center;
                justify-content: space-evenly;
                height: 100%;
            }
        }
    }
}
/deep/.van-tab__pane-wrapper {
    min-height: 8rem;
}
.van-tabs__track {
    min-height: 3rem;
}
</style>
+162 −0
Original line number Diff line number Diff line
<template>
  <div>
    <LHeader :text="text"></LHeader>
    <van-form
      @submit="onSubmit"
      :show-error="false"
      :scroll-to-error="true"
      validate-trigger="onSubmit"
    >
      <van-field
        v-model="applyDate"
        readonly
        name="applyDate"
        label="延期时间"
        placeholder="空"
        
      />

      <van-field
        v-model="applyReason"
        readonly
        label="延期理由"
        name="applyReason"
        rows="1"
        autosize
        type="textarea"
        placeholder="空"
      />

      <van-field name="isAgree" label="延期是否通过">
        <template #input>
          <van-radio-group
            v-model="isAgree"
            direction="horizontal"
            @change="selectResult"
          >
            <van-radio name="1">通过</van-radio>
            <van-radio name="0">退回</van-radio>
          </van-radio-group>
        </template>
      </van-field>

      <van-field
        v-model="opinion"
        label='审批意见'
        name="examineReason"
        rows="3"
        type="textarea"
        placeholder="请输入"
        required
        :rules="[{ required: true, message: '理由或者意见不能为空' }]"
      />

      <div style="margin: 16px">
        <van-button round block type="info" native-type="submit"
          >保存</van-button
        >
      </div>
    </van-form>
    <div style="margin: 10px 16px 0px; padding-bottom: 16px">
      <van-button round block type="warning" @click.native="cancel"
        >取消</van-button
      >
    </div>
  </div>
</template>

<script>
import LHeader from "@/components/header.vue";
import {getFun,postFun} from "@/service/table.js";
import { delayReturn } from "@/service/danger";
import { delayEdit } from "@/service/danger";
export default {
  components: {
    LHeader,
  },
  data() {
    return {
      pid:'',
      id:'',
      text: "延期审批",
      taskId: "",
      delayTime: "", // 延迟时间
      showDelayTime: false,
      delayApply: "", // 延迟理由
      isAgree: '1', // 延期是否通过
      opinion: "", //理由或者意见
      applyDate: "", //延期时间
      applyReason: "", //延期理由
    };
  },
  created() {
    this.taskId = this.$route.params.taskId;
    this.getReturnEcho();
  },
  
  methods: {
    onSubmit(values) {
    this.$toast.loading({
      message: "提交中...",
      forbidClick: true,
      loadingType: "spinner",
      duration: 0,
    });
    // console.log(this.isAgree)
    let formdata = new FormData();
    formdata.append("examineResult", this.isAgree*1);
    formdata.append("examineReason", values.examineReason);
    formdata.append("taskId", this.taskId);
    formdata.append("pid", this.pid);
    formdata.append('applyDate',this.applyDate);
    formdata.append('id',this.id);
    delayEdit(`/delayApply/edit`, formdata)
      .then((res) => {
        this.$toast.clear();
        this.$toast.success({
          message: "提交成功",
          duration: 2000,
        });
        history.go(-1);
      })
      .catch(() => {
        this.$toast.clear();
        this.$toast.fail("提交失败,请稍后再试");
      });
  },
  // 请求已退回详情数据
  getReturnEcho() {
    this.$toast.loading({
      message: "加载中...",
      forbidClick: true,
      loadingType: "spinner",
      duration: 0,
    });
    delayReturn(`/delayApply/edit/${this.taskId}`)
      .then((res) => {
        this.$toast.clear();
        // 对数据进行赋值
        this.applyDate = res.data.delayApply.applyDate;
        this.applyReason = res.data.delayApply.applyReason;
        this.pid=res.data.delayApply.pid;
        this.id=res.data.delayApply.id;
      })
      .catch(() => {
        this.$toast.clear();
        this.$toast.fail("加载失败,请稍后再试");
      });
  },

    selectResult(val) {
      this.isAgree = val;
    },

    cancel() {
      this.$router.go(-1);
    },
  },
};
</script>
<style lang="less" scoped>
/* @import url(); 引入css类 */
</style>