xiangpei
2024-07-23 7946bf542e0650bfb1ea384f69f6b4dd234ddc59
报备审核记录
2个文件已修改
123 ■■■■■ 已修改文件
src/api/platform/report.js 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/report/index.vue 116 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/platform/report.js
@@ -36,11 +36,10 @@
}
// 审核报备
export function auditing(data) {
export function auditing(id) {
  return request({
    url: '/report/auditing',
    method: 'post',
    data: data
    url: '/report/auditing/record/' + id,
    method: 'get'
  })
}
src/views/system/report/index.vue
@@ -8,14 +8,18 @@
        <el-input v-model="queryParams.pointId" placeholder="点位" clearable @keyup.enter.native="handleQuery" />
      </el-form-item>
      <el-form-item label="报备类型" prop="reportType">
        <el-select v-model="queryParams.reportType" placeholder="报备类型" clearable>
        <el-select v-model="queryParams.reportType" @change="handleQuery" placeholder="报备类型" clearable>
          <el-option label="事前报备" value="事前报备" />
          <el-option label="事后报备" value="事后报备" />
        </el-select>
      </el-form-item>
      <el-form-item label="报备时间">
        <el-date-picker v-model="daterangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd" type="daterange"
          range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
      <el-form-item label="审核状态">
        <el-select v-model="queryParams.status" @change="handleQuery" placeholder="审核状态" clearable>
          <el-option label="全部" value="" />
          <el-option label="审核中" :value="0" />
          <el-option label="审核未通过" :value="2" />
          <el-option label="审核通过" :value="1" />
        </el-select>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery">搜索</el-button>
@@ -73,33 +77,23 @@
        </template>
      </el-table-column>
      <el-table-column type="selection" width="55" align="center" />
      <el-table-column label="运维单位" align="center" prop="unitName" />
      <el-table-column label="运维单位" width="200" align="center" prop="unitName" />
      <el-table-column label="报备人员" align="center" prop="peopleName" />
      <el-table-column label="点位" align="center" prop="pointName" />
      <el-table-column label="点位" width="250" align="center" prop="pointName" />
      <el-table-column label="报备类型" align="center" prop="reportType" />
      <!-- <el-table-column label="报备内容" align="center" prop="reportContent" show-overflow-tooltip="true" />
      <el-table-column label="上报材料" align="center" prop="reportMaterials" show-overflow-tooltip="true">
        <template slot-scope="scope">
          <div v-for="(item, index) in scope.row.reportMaterials.split(',')" :key="index">{{
      item.substring(item.lastIndexOf("/") + 1) }}</div>
        </template>
      </el-table-column> -->
      <el-table-column label="上报时间" width="200" align="center" prop="createTime" />
      <el-table-column label="故障类型" align="center" prop="errorType" />
      <el-table-column label="审核结果" align="center" prop="status" :formatter="formatStatus"/>
      <el-table-column label="审核时间" align="center" prop="auditingTime" width="180">
      <el-table-column label="操作" fixed="right" width="250" align="center" class-name="small-padding fixed-width">
        <template slot-scope="scope">
          <span>{{ parseTime(scope.row.auditingTime, '{y}-{m}-{d}') }}</span>
        </template>
      </el-table-column>
      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
        <template slot-scope="scope">
          <!--          <el-button-->
          <!--            size="mini"-->
          <!--            type="text"-->
          <!--            icon="el-icon-edit"-->
          <!--            @click="handleUpdate(scope.row)"-->
          <!--            v-hasPermi="['system:report:edit']"-->
          <!--          >修改</el-button>-->
          <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
            @click="handleUpdate(scope.row)"
            v-hasPermi="['system:report:edit']"
            v-if="scope.row.status === 2 || scope.row.status === 0"
          >修改</el-button>
          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleAuditing(scope.row)"
            v-hasPermi="['system:report:edit']" v-if="scope.row.status === 0">审核</el-button>
          <el-button size="mini" type="text" icon="el-icon-s-check" @click="handleAuditingRecord(scope.row.id)"
@@ -136,8 +130,8 @@
            <el-option label="设备遗失" value="设备遗失" />
          </el-select>
        </el-form-item>
        <el-form-item label="报备时间" prop="expirTime">
          <el-date-picker v-model="form.expirTime" style="width: 240px" value-format="yyyy-MM-dd" type="daterange"
        <el-form-item label="报备时间">
          <el-date-picker v-model="daterangeCreateTime" style="width: 240px" value-format="yyyy-MM-dd" type="daterange"
            range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期"
            @change="handleExpirTimeChange"></el-date-picker>
        </el-form-item>
@@ -149,11 +143,40 @@
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="submitForm">确 定</el-button>
        <el-button type="primary" @click="submitForm">提交审核</el-button>
        <el-button @click="cancel">取 消</el-button>
      </div>
    </el-dialog>
    <!-- 查看审核记录 -->
    <el-dialog title="报备审核记录" :visible.sync="recordOpen" width="900px">
      <div slot="footer" class="dialog-footer" style="max-height: 500px;overflow-y: auto;">
        <el-timeline v-for="record in auditingRecordList" :key="record.id">
          <el-timeline-item :timestamp="record.createTime" placement="top">
            <el-card>
              <el-descriptions title="提交数据" :column="3" border>
                <el-descriptions-item label="点位" label-class-name="my-label" content-class-name="my-content">{{record.pointName}}</el-descriptions-item>
                <el-descriptions-item label="报备类型">{{record.reportType}}</el-descriptions-item>
                <el-descriptions-item label="故障类型">{{record.errorType}}</el-descriptions-item>
                <el-descriptions-item label="审核结果">{{formatStatus(record)}}</el-descriptions-item>
                <el-descriptions-item label="审核意见">{{record.auditOpinion}}</el-descriptions-item>
                <el-descriptions-item label="审核时间">{{record.auditingTime}}</el-descriptions-item>
                <el-descriptions-item label="报备内容">
                  <div class="content" v-html="getHtmlContent(record.reportContent)"></div>
                </el-descriptions-item>
                <el-descriptions-item label="上报材料">
                  <el-link
                    v-for="item in record.reportMaterials != null ? record.reportMaterials.split(',') : record.reportMaterials"
                    :underline="false" type="primary" :key="item" @click="handleDownload(item)">{{ item.substring(item.lastIndexOf("/") + 1)
                    }}</el-link>
                </el-descriptions-item>
              </el-descriptions>
            </el-card>
          </el-timeline-item>
        </el-timeline>
        <el-button type="primary" @click="recordOpen = false">关闭</el-button>
      </div>
    </el-dialog>
    <!-- 审核报备 -->
    <el-dialog title="报备审核" :visible.sync="auditingOpen" width="500px" append-to-body>
@@ -185,7 +208,7 @@
        <el-form-item label="上报材料">
          <el-link
            v-for="item in auditingForm.reportMaterials != null ? auditingForm.reportMaterials.split(',') : auditingForm.reportMaterials"
            :underline="false" :key="item" @click="handleDownload(item)">{{ item.substring(item.lastIndexOf("/") + 1)
            :underline="false" type="primary" :key="item" @click="handleDownload(item)">{{ item.substring(item.lastIndexOf("/") + 1)
            }}</el-link>
        </el-form-item>
        <el-form-item label="审核结果">
@@ -216,7 +239,7 @@
  data() {
    return {
      fileType: ["doc", "xls", "xlsx", "ppt", "txt", "pdf", "png", "jpg"],
      auditingRecordList: [],
      // 点位list
      pointList: [],
      // 遮罩层
@@ -239,6 +262,7 @@
      title: "",
      // 是否显示弹出层
      open: false,
      recordOpen: false,
      // 报备时间范围
      daterangeCreateTime: [],
      expirTime: [],
@@ -266,7 +290,8 @@
        pointId: null,
        createTime: null,
        auditingTime: null,
        errorType: null
        errorType: null,
        status: 0
      },
      // 表单参数
      form: {},
@@ -302,13 +327,20 @@
    this.getList();
  },
  methods: {
    getHtmlContent(content) {
      if (content) {
        return content
      } else {
        return "无"
      }
    },
    formatStatus(item) {
      if (item.status === 0) {
        return '待审核'
        return '审核中'
      } else if (item.status === 1) {
        return '审核通过'
      } else if (item.status === 2) {
        return '未通过审核'
        return '审核未通过'
      }
    },
    auditingCancel() {
@@ -316,7 +348,10 @@
    },
    // 获取审核记录
    handleAuditingRecord(reportId) {
      auditing(reportId).then(res => {
        this.auditingRecordList = res.data;
        this.recordOpen = true
      })
    },
    handleAuditing(row) {
      this.auditingOpen = true;
@@ -416,6 +451,7 @@
      this.reset();
      const id = row.id || this.ids
      getReport(id).then(response => {
        this.daterangeCreateTime = [response.data.beginCreateTime, response.data.endCreateTime]
        this.form = response.data;
        this.open = true;
        this.title = "修改报备";
@@ -444,11 +480,10 @@
    },
    /** 提交按钮 */
    submitForm() {
      // todo 判断是事前报备
      this.$refs["form"].validate(valid => {
        if (valid) {
          this.form.beginCreateTime = this.daterangeCreateTime[0]
          this.form.endCreateTime = this.daterangeCreateTime[1]
          if (this.form.id != null) {
            updateReport(this.form).then(response => {
              this.$modal.msgSuccess("修改成功");
@@ -498,6 +533,11 @@
</script>
<style lang="scss" scoped>
.content {
  height: 100px;
  max-height: 300px;
  overflow-y: auto;
}
.info-container {
  width: 100%;
  max-height: 400px;