whychdw
2021-09-10 28b07a5caf9ffc42f5690a8932bf669940a9da77
审核内容提交
2个文件已添加
5个文件已修改
294 ■■■■■ 已修改文件
src/assets/js/api.js 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/tools/getStationSrc.js 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/image-list-wrapper.vue 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/alarmMager/components/waitVerity.vue 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/alarmMager/dialog/reviewComments.vue 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/alarmMager/dialog/verityDialog.vue 123 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/login.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/js/api.js
@@ -353,7 +353,7 @@
        url: "LoginAction_check",
        data: null
    });
}
};
/**
 * 根据基站信息查询基站的告警和落后信息
@@ -503,4 +503,26 @@
        url: `WorkAlarmAction!dispatchTask`,
        data: 'json=' + JSON.stringify(data)
    })
}
/**
 * 开始处理更新状态
 */
export const searchStatusById = (data) => {
    return axios({
        method: "post",
        url: `UserWorkAction!searchStatusById`,
        data: 'json=' + JSON.stringify(data)
    })
}
/**
 * 更新告警处理
 */
export const updateUserWork = (data) => {
    return axios({
        method: "post",
        url: `UserWorkAction!updateUserWork`,
        data: 'json=' + JSON.stringify(data)
    })
}
src/assets/js/tools/getStationSrc.js
New file
@@ -0,0 +1,11 @@
function getStationSrc(url) {
    let src = "";
    if (process.env.NODE_ENV == 'dev') {
        src = "http://localhost:8920/stationsrc";
    } else {
        src = window.location.origin + "/stationsrc";
    }
    let result = url.replace(/.*stationsrc/, src);
    return result;
}
export default getStationSrc;
src/components/image-list-wrapper.vue
@@ -1,7 +1,8 @@
<template>
  <div class="image-list-container">
    <span class="image-title">{{ title }}</span>
    <div class="image-block" v-for="(item, key) in urls" :key="'key' + key">
      <el-image :style="getImageStyle" :src="item" :preview-src="list">
      <el-image :style="getImageStyle" :src="item" :preview-src-list="list">
      </el-image>
    </div>
  </div>
@@ -10,6 +11,10 @@
<script>
export default {
  props: {
    title: {
      type: String,
      default: "",
    },
    width: {
      type: [String, Number],
      default: 100,
@@ -37,9 +42,17 @@
</script>
<style scoped>
.image-list-container {
  padding: 8px 0;
}
.image-block {
  display: inline-block;
  box-sizing: border-box;
  padding: 8px;
}
.image-title {
  display: inline-block;
  vertical-align: top;
  font-weight: bold;
}
</style>
src/pages/alarmMager/components/waitVerity.vue
@@ -1,6 +1,6 @@
<template>
  <div class="page-content">
    <alarm-bill-type :note="3">
    <alarm-bill-type :note="3" ref="alarmBillType">
      <el-table-column
        prop="cztime"
        fixed="right"
@@ -24,11 +24,13 @@
      top="0"
      class="dialog-center"
      :modal-append-to-body="false"
      :close-on-press-escape="false"
    >
      <verity-dialog
        v-if="dialog"
        :info="info"
        :visible.sync="dialog"
        @success="success"
      ></verity-dialog>
    </el-dialog>
  </div>
@@ -53,6 +55,9 @@
      this.info = data;
      this.dialog = true;
    },
    success() {
      this.$refs.alarmBillType.queryData(true);
    },
  },
};
</script>
src/pages/alarmMager/dialog/reviewComments.vue
New file
@@ -0,0 +1,113 @@
<template>
  <div class="params-container z-index-two">
    <el-form
      ref="ruleForm"
      size="mini"
      label-position="top"
      :model="params"
      :rules="rules"
      class="params-dialog bg-white"
    >
      <el-form-item label="审核意见">
        <el-input
          v-model="params.note"
          type="textarea"
          :rows="6"
          resize="none"
        ></el-input>
      </el-form-item>
      <div class="form-footer">
        <three-btn @click="suggest">确认</three-btn>
        <three-btn @click="close">取消</three-btn>
      </div>
    </el-form>
  </div>
</template>
<script>
import { updateUserWork } from "@/assets/js/api";
export default {
  props: {
    visible: {
      type: Boolean,
      default: false,
    },
    type: {
      type: Number,
      default: 0, // 3.审核通过,-1.审核不通过
    },
    info: {
      type: Object,
      default() {
        return {
          note: "",
        };
      },
    },
  },
  data() {
    return {
      params: {
        note: "",
      },
      rules: {},
    };
  },
  methods: {
    suggest() {
      let params = this.params;
      params.checkStatus = this.type;
      params.endTime = new Date().format("yyyy-mm-dd hh:MM:ss");
      if (params.note == "") {
        this.$layer.msg("请输入审核意见...");
        return;
      }
      updateUserWork(params)
        .then((res) => {
          let rs = JSON.parse(res.data.result);
          if (rs.code == 1) {
            this.$layer.msg("审核成功!");
            this.$emit("success");
            this.close();
          } else {
            this.$layer.msg("提交内容失败");
          }
        })
        .catch((error) => {
          this.$layer.msg("提交内容失败");
        });
    },
    close() {
      this.$emit("update:visible", false);
    },
  },
  mounted() {
    let params = {
      note: "",
    };
    let info = this.info;
    for (let key in info) {
      params[key] = info[key];
    }
    this.params = params;
  },
};
</script>
<style scoped>
.params-container.z-index-two {
  width: 400px;
  background-color: #ececec;
}
.form-footer {
  margin-top: 16px;
  margin-bottom: 16px;
  text-align: right;
}
.form-footer .three-btn {
  margin-left: 12px;
}
</style>
src/pages/alarmMager/dialog/verityDialog.vue
@@ -1,18 +1,57 @@
<template>
  <div class="params-container">
    <div class="params-dialog">
      处理前照片:
      <image-list-wrapper :urls="urls"></image-list-wrapper>
  <div class="params-container other-style">
    <el-form
      ref="ruleForm"
      size="mini"
      label-position="top"
      :model="params"
      :rules="rules"
      class="params-dialog bg-white"
    >
      <div class="p-title">问题描述:{{ params.description }}</div>
      <image-list-wrapper
        title="处理前照片:"
        :urls="imageBefores"
      ></image-list-wrapper>
      <div class="p-title">处理方式:{{ params.workWay }}</div>
      <image-list-wrapper
        title="处理后照片:"
        :urls="imageAfters"
      ></image-list-wrapper>
      <div class="p-title">意见建议:{{ params.workSuggest }}</div>
      <div class="form-footer">
        <three-btn>通过</three-btn>
        <three-btn>不通过</three-btn>
        <three-btn @click="showDialog(3)">通过</three-btn>
        <three-btn @click="showDialog(-1)">不通过</three-btn>
      </div>
    </div>
    </el-form>
    <!-- 系统提示 -->
    <el-dialog
      title="系统提示"
      width="auto"
      :visible.sync="dialog"
      :close-on-click-modal="false"
      top="0"
      class="dialog-center"
      :modal-append-to-body="false"
      :close-on-press-escape="false"
      :modal="false"
    >
      <review-comments
        v-if="dialog"
        :visible.sync="dialog"
        :info="params"
        :type="type"
        @success="successReview"
      ></review-comments>
    </el-dialog>
  </div>
</template>
<script>
import ImageListWrapper from "@/components/image-list-wrapper.vue";
import ReviewComments from "./reviewComments.vue";
import { searchStatusById } from "@/assets/js/api";
import getStationSrc from "@/assets/js/tools/getStationSrc";
export default {
  props: {
    visible: {
@@ -28,30 +67,81 @@
  },
  components: {
    ImageListWrapper,
    ReviewComments,
  },
  data() {
    return {
      urls: [
        "http://localhost:8920/stationsrc/alarm/null/after/%E7%A5%9E%E4%BB%99%E5%A7%90%E5%A7%903.jpg",
        "http://localhost:8920/stationsrc/alarm/null/after/%E7%A5%9E%E4%BB%99%E5%A7%90%E5%A7%903.jpg",
        "http://localhost:8920/stationsrc/alarm/null/after/%E7%A5%9E%E4%BB%99%E5%A7%90%E5%A7%903.jpg",
      ],
      dialog: false,
      params: {
        description: "",
        workWay: "",
        workSuggest: "",
      },
      rules: {},
      type: 1,
      imageAfters: [],
      imageBefores: [],
    };
  },
  methods: {
    showDialog(type) {
      this.type = type;
      this.dialog = true;
    },
    loadData() {
      let postData = {
        id: this.info.id,
      };
      searchStatusById(postData)
        .then((res) => {
          let rs = JSON.parse(res.data.result);
          console.log(rs);
          let data = [];
          if (rs.code == 1) {
            data = rs.data.userWorkList;
          }
          // 如果存在
          if (data.length != 0) {
            let info = data[0];
            this.params = info;
            this.imageAfters = info.imageAfter.split(",").map((item) => {
              return getStationSrc(item);
            });
            this.imageAfters = info.imageAfter.split(",").map((item) => {
              return getStationSrc(item);
            });
            this.imageBefores = info.imageBefore.split(",").map((item) => {
              return getStationSrc(item);
            });
          }
        })
        .catch((error) => {});
    },
    successReview() {
      this.$emit("success");
      this.close();
    },
    close() {
      this.$emit("update:visible", false);
    },
  },
  mounted() {
    this.loadData();
  },
};
</script>
<style scoped>
.params-container {
  width: 580px;
  width: 680px;
  background-color: #ececec;
}
.other-style {
  max-height: 543px;
  overflow-y: auto;
}
.form-footer {
  margin-top: 16px;
  margin-bottom: 16px;
@@ -61,4 +151,9 @@
.form-footer .three-btn {
  margin-left: 12px;
}
.p-title {
  font-weight: bold;
  border-bottom: 1px solid #cccccc;
  padding: 8px 0;
}
</style>
src/pages/login.vue
@@ -359,7 +359,6 @@
        .checkReferer()
        .then((res) => {
          let rs = JSON.parse(res.data.result);
          console.log(rs);
          if (rs) {
            this.$store.dispatch("user/changeAutoLogin", 1);
            this.loginForm.username = "zhdl";