xiangpei
2024-04-26 84562e1978146f396c6976c75dc931c12b188982
src/views/system/report/index.vue
@@ -52,6 +52,7 @@
          icon="el-icon-plus"
          size="mini"
          @click="handleAdd"
          v-hasPermi="['system:report:add']"
        >新增</el-button>
      </el-col>
<!--      <el-col :span="1.5">-->
@@ -72,6 +73,7 @@
          size="mini"
          :disabled="multiple"
          @click="handleDelete"
          v-hasPermi="['system:report:remove']"
        >删除</el-button>
      </el-col>
      <el-col :span="1.5">
@@ -81,6 +83,7 @@
          icon="el-icon-download"
          size="mini"
          @click="handleExport"
          v-hasPermi="['system:report:export']"
        >导出</el-button>
      </el-col>
      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
@@ -92,8 +95,12 @@
      <el-table-column label="报备人员" align="center" prop="peopleName" />
      <el-table-column label="点位" align="center" prop="pointName" />
      <el-table-column label="报备类型" align="center" prop="reportType" />
      <el-table-column label="报备内容" align="center" prop="reportContent" />
      <el-table-column label="上报材料" align="center" prop="reportMaterials" />
      <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="故障类型" align="center" prop="errorType" />
      <el-table-column label="审核时间" align="center" prop="auditingTime" width="180">
        <template slot-scope="scope">
@@ -114,7 +121,8 @@
            type="text"
            icon="el-icon-edit"
            @click="handleAuditing(scope.row)"
            v-hasPermi="['system:report:audit']"
            v-hasPermi="['system:report:edit']"
            v-if="scope.row.status === 0"
          >审核</el-button>
          <el-button
            size="mini"
@@ -168,15 +176,16 @@
            <el-option label="设备遗失" value="设备遗失"/>
          </el-select>
        </el-form-item>
        <el-form-item label="有效时间">
        <el-form-item label="报备时间" prop="expirTime">
          <el-date-picker
            v-model="expirTime"
            v-model="form.expirTime"
            style="width: 240px"
            value-format="yyyy-MM-dd"
            type="daterange"
            range-separator="-"
            start-placeholder="生效日期"
            end-placeholder="失效日期"
            start-placeholder="开始日期"
            end-placeholder="结束日期"
            @change="handleExpirTimeChange"
          ></el-date-picker>
        </el-form-item>
        <el-form-item label="报备内容" prop="reportContent">
@@ -211,22 +220,30 @@
        <el-form-item label="故障类型">
          <el-input v-model="auditingForm.errorType" disabled />
        </el-form-item>
        <el-form-item label="生效时间">
          <el-date-picker v-model="auditingForm.beginCreateTime" disabled />
        </el-form-item>
        <el-form-item label="失效时间">
          <el-date-picker v-model="auditingForm.endCreateTime" disabled />
        </el-form-item>
        <el-form-item label="报备内容">
          <el-input v-model="auditingForm.pointName" disabled />
          <el-input type="textarea" v-html="auditingForm.reportContent" disabled />
        </el-form-item>
        <el-form-item label="上报材料">
          <el-upload v-model="auditingForm.reportMaterials" disabled/>
          <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) }}</el-link>
        </el-form-item>
        <el-form-item label="审核结果" prop="auditing">
          <el-radio v-model="auditingForm.auditing" label="pass">通过</el-radio>
          <el-radio v-model="auditingForm.auditing" label="reject">驳回</el-radio>
        <el-form-item label="审核结果">
          <el-radio-group v-model="auditingForm.status">
            <el-radio :label="1">通过</el-radio>
            <el-radio :label="2">驳回</el-radio>
          </el-radio-group>
        </el-form-item>
        <el-form-item label="审核意见" prop="suggest">
          <el-input v-model="auditingForm.suggest"/>
          <el-input v-model="auditingForm.auditOpinion"/>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary">确 定</el-button>
        <el-button type="primary" @click="auditingSubmit">确 定</el-button>
        <el-button @click="auditingCancel">取 消</el-button>
      </div>
    </el-dialog>
@@ -280,6 +297,8 @@
        auditing: "",
        suggest: "",
        reportType: "",
        beginCreateTime: null,
        endCreateTime: null
      },
      // 查询参数
      queryParams: {
@@ -313,6 +332,12 @@
        reportType: [
          { required: true, message: "请选择报备类型", trigger: "blur" }
        ],
        errorType: [
          { required: true, message: "请选择故障类型", trigger: "blur" }
        ],
        expirTime: [
          { required: true, message: "请选择报备时间", trigger: "blur" }
        ],
      }
    };
  },
@@ -326,12 +351,16 @@
    handleAuditing(row) {
      this.auditingOpen = true;
      this.auditingForm.id =row.id
      this.auditingForm.pointId =row.pointId
      this.auditingForm.pointName =row.pointName
      this.auditingForm.unitName =row.unitName
      this.auditingForm.peopleName =row.peopleName
      this.auditingForm.errorType =row.errorType
      this.auditingForm.reportContent =row.reportContent
      this.auditingForm.reportType =row.reportType
      this.auditingForm.endCreateTime =row.endCreateTime
      this.auditingForm.beginCreateTime =row.beginCreateTime
      this.auditingForm.reportMaterials =row.reportMaterials
    },
    // 远程搜索点位
    remoteGetPoints(query) {
@@ -396,6 +425,8 @@
    resetQuery() {
      this.daterangeCreateTime = [];
      this.daterangeAuditingTime = [];
      this.queryParams["beginCreateTime"] = null;
      this.queryParams["endCreateTime"] = null;
      this.resetForm("queryForm");
      this.handleQuery();
    },
@@ -421,13 +452,24 @@
        this.title = "修改报备";
      });
    },
    /** 审核按钮操作 */
    auditingSubmit() {
      this.auditingForm.auditingTime = new Date();
      updateReport(this.auditingForm).then(response => {
        this.$modal.msgSuccess("审核成功");
        this.auditingOpen = false
        this.getList();
        this.auditingForm = {}
      });
    },
    handleExpirTimeChange() {
      if (null != this.form.expirTime && '' != this.form.expirTime) {
        this.form["beginCreateTime"] = this.form.expirTime[0];
        this.form["endCreateTime"] = this.form.expirTime[1];
      }
    },
    /** 提交按钮 */
    submitForm() {
      if (null != this.expirTime && '' != this.expirTime) {
        this.form["beginCreateTime"] = this.expirTime[0];
        this.form["endCreateTime"] = this.expirTime[1];
      }
      // todo 判断是事前报备
@@ -461,9 +503,13 @@
    },
    /** 导出按钮操作 */
    handleExport() {
      this.download('system/report/export', {
      this.download('report/export', {
        ...this.queryParams
      }, `report_${new Date().getTime()}.xlsx`)
    },
    /** 下载按钮操作 */
    handleDownload (data) {
      this.$download.resource(data);
    }
  }
};