zhaowei
2025-03-06 ddd818f74d59c1fdeeed29714d660d7e49200c04
src/views/eam/DailyInspectionStandardList.vue
@@ -1,6 +1,6 @@
<template>
  <a-card
    title="自主维护点检标准"
    title=""
    :bordered='false'
  >
    <div class='table-page-search-wrapper'>
@@ -67,7 +67,31 @@
        type='primary'
        icon='plus'
        v-has="'dailyInspectionStandard:add'"
      >新增</a-button>
      >编制</a-button>
      <a-upload
        name="file"
        :showUploadList="false"
        :multiple="false"
        :headers="tokenHeader"
        :action="importExcelUrl"
        @change="handleImportExcel"
      >
        <a-button
          type="primary"
          icon="import"
        >导入</a-button>
      </a-upload>
      <a-button
        type="primary"
        @click="handleDownload"
        icon="download"
      >模版下载</a-button>
      <a-button
        v-show="selectedRowKeys.length == 1 "
        type="primary"
        @click="handlePrint(selectionRows[0])"
        icon="highlight"
      >模版打印</a-button>
      <a-button
        type="primary"
        @click="searchQuery"
@@ -79,6 +103,22 @@
        icon="reload"
        style="margin-left: 8px"
      >重置</a-button>
      <a-button
        v-show="this.selectedRowKeys.length > 0 && this.queryParam.versionStatus == '1'"
        type="primary"
        @click="batchHandleOK"
        icon="reload"
        style="margin-left: 8px"
        v-has="'dailyInspectionStandard:batchHandleOK'"
      >批量通过</a-button>
      <a-button
        v-show="this.selectedRowKeys.length > 0 && this.queryParam.versionStatus == '1'"
        type="primary"
        @click="batchHandleReject"
        icon="reload"
        style="margin-left: 8px"
        v-has="'dailyInspectionStandard:batchHandleReject'"
      >批量驳回</a-button>
    </div>
    <!-- table区域-begin -->
@@ -99,7 +139,7 @@
        size='middle'
        bordered
        rowKey='id'
        :scroll="{ x: 'calc(1600px + 50%)', y: 900 }"
        :scroll="{ x: 'calc(2300px + 50%)', y: 900 }"
        :columns='columns'
        :dataSource='dataSource'
        :pagination='ipagination'
@@ -108,6 +148,24 @@
        :customRow='clickThenSelect'
        @change='handleTableChange'
      >
        <span
          slot="disUda1"
          slot-scope="text"
        >
          <j-ellipsis
            :value="text"
            :length="10"
          />
        </span>
        <span
          slot="teamName"
          slot-scope="text"
        >
          <j-ellipsis
            :value="text"
            :length="10"
          />
        </span>
        <!-- <span
          slot='action'
@@ -135,32 +193,51 @@
          slot="action"
          slot-scope="text, record"
        >
          <a
            v-if="record.versionStatus == '2'"
            @click="handleRevise(record)"
            v-has="'dailyInspectionStandard:revise'"
          >升版</a>
            v-show="record.versionStatus == '1' && record.approvalStatus == '1' "
            @click="handleAuditApproval(record)"
            v-has="'dailyInspectionStandard:audit'"
          >审核</a>
          <a-divider type="vertical" />
          <a
            v-if="record.versionStatus == '1'"
            @click="handleTakeEffect(record)"
            v-has="'dailyInspectionStandard:takeEffect'"
          >生效</a>
            v-show="record.versionStatus == '1' && record.approvalStatus == '4'"
            @click="handleAuditApproval(record)"
            v-has="'dailyInspectionStandard:againAudit'"
          >重新审核</a>
          <a-divider type="vertical" />
          <a
            v-if="record.versionStatus == '1'"
            v-show="record.versionStatus == '1'&& record.approvalStatus == '3' "
            @click="handleAuditApproval(record)"
            v-has="'dailyInspectionStandard:approval'"
          >审批</a>
          <a-divider type="vertical" />
          <a
            v-show="record.versionStatus == '1' && (record.approvalStatus == '1' || record.approvalStatus == '2')"
            @click="handleEdit(record)"
            v-has="'dailyInspectionStandard:edit'"
          >编辑</a>
          <a-divider type="vertical" />
          <a-popconfirm
            v-if="record.versionStatus == '1'"
            v-show="record.versionStatus == '1' && (record.approvalStatus == '1' || record.approvalStatus == '2')"
            title="确定删除吗?"
            @confirm="() => handleDelete(record.id)"
            v-has="'dailyInspectionStandard:delete'"
          >
            <a>删除</a>
          </a-popconfirm>
          <a-divider type="vertical" />
          <a
            v-show="record.versionStatus != '1'"
            @click="handleRevise(record)"
            v-has="'dailyInspectionStandard:revise'"
          >升版</a>
          <a-divider type="vertical" />
          <a
            v-show="record.versionStatus == '2'"
            @click="handleTakeEffect(record)"
            v-has="'dailyInspectionStandard:loseEfficacy'"
          >失效</a>
        </span>
      </a-table>
@@ -184,6 +261,11 @@
      ref='modalForm'
      @ok='modalFormOk'
    ></dailylnspection-standard-modal>
    <audit-approval-modal
      ref='auditApprovalModal'
      @ok='modalFormOk'
    ></audit-approval-modal>
  </a-card>
</template>
@@ -191,17 +273,21 @@
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import { getAction, requestPut } from '@/api/manage'
import { getAction, requestPut, downFile } from '@/api/manage'
import DailyInspectionStandardDetail from './modules/dailyInspectionStandard/DailyInspectionStandardDetail'
import DailylnspectionStandardModal from './modules/dailyInspectionStandard/DailylnspectionStandardModal'
import AuditApprovalModal from './modules/dailyInspectionStandard/AuditApprovalModal'
import '@/assets/less/TableExpand.less'
import JEllipsis from "@/components/jeecg/JEllipsis";
export default {
  name: 'DailyInspectionStandardList',
  mixins: [JeecgListMixin],
  components: {
    JEllipsis,
    DailyInspectionStandardDetail,
    DailylnspectionStandardModal
    DailylnspectionStandardModal,
    AuditApprovalModal
  },
  data() {
    return {
@@ -223,12 +309,19 @@
          dataIndex: 'num',
        },
        {
          title: '使用部门',
          title: '管理制度',
          align: 'center',
          dataIndex: 'useDepartName',
          dataIndex: 'disUda1',
          scopedSlots: { customRender: 'disUda1' },
        },
        {
          title: '设备编码',
          title: '签审状态',
          align: 'center',
          dataIndex: 'approvalStatusName',
        },
        {
          title: '统一编码',
          align: 'center',
          dataIndex: 'equipmentNum',
        },
@@ -243,25 +336,79 @@
          dataIndex: 'equipmentModel',
        },
        {
          title: '使用部门',
          align: 'center',
          dataIndex: 'useDepartName',
        },
        {
          title: '责任班组',
          align: 'center',
          dataIndex: 'teamName',
          scopedSlots: { customRender: 'teamName' },
        },
        // {
        //   title: '派工方式',
        //   align: 'center',
        //   dataIndex: 'assignModeName',
        // },
        {
          title: '审核结果',
          align: 'center',
          dataIndex: 'disUda2',
        },
        {
          title: '派工方式',
          title: '审核意见',
          align: 'center',
          dataIndex: 'assignModeName',
          dataIndex: 'auditFeedback',
        },
        // {
        //   title: '生效时间',
        //   align: 'center',
        //   dataIndex: 'takeEffectTime',
        // },
        // {
        //   title: '失效时间',
        //   align: 'center',
        //   dataIndex: 'loseEfficacyTime',
        // },
        {
          title: '审批结果',
          align: 'center',
          dataIndex: 'disUda3',
        },
        {
          title: '审批意见',
          align: 'center',
          dataIndex: 'approvalFeedback',
        },
        {
          title: '编制人',
          align: 'center',
          dataIndex: 'writePerson',
        },
        {
          title: '审核人',
          align: 'center',
          dataIndex: 'auditPerson',
        },
        {
          title: '审批人',
          align: 'center',
          dataIndex: 'approvalPerson',
        },
        {
          title: '失效人',
          align: 'center',
          dataIndex: 'loseEfficacyPerson',
        },
        {
          title: '编制日期',
          align: 'center',
          dataIndex: 'createTime',
          width: 150,
        },
        {
          title: '生效时间',
          align: 'center',
          dataIndex: 'takeEffectTime',
          width: 150,
        },
        {
          title: '失效时间',
          align: 'center',
          dataIndex: 'loseEfficacyTime',
          width: 150,
        },
        {
          title: '版本',
          align: 'center',
@@ -272,16 +419,12 @@
          align: 'center',
          dataIndex: 'versionStatusName',
        },
        {
          title: '创建人',
          align: 'center',
          dataIndex: 'createBy',
        },
        {
          title: '创建日期',
          align: 'center',
          dataIndex: 'createTime',
        },
        // {
        //   title: '创建人',
        //   align: 'center',
        //   dataIndex: 'createBy',
        // },
        // {
        //   title: '更新人',
        //   align: 'center',
@@ -298,7 +441,7 @@
          align: 'center',
          fixed: 'right',
          scopedSlots: { customRender: 'action' },
          width: 200,
          width: 230,
        }
      ],
      url: {
@@ -306,14 +449,18 @@
        delete: '/eam/inspectionStandard/delete',
        deleteBatch: '/eam/inspectionStandard/deleteBatch',
        versionTakeEffect: "/eam/inspectionStandard/versionTakeEffect",
        importExcelUrl: "/eam/inspectionStandard/importExcel",
        passBatch: '/eam/inspectionStandard/auditApprovalBatch',
        download: '/sys/upload/downloadFile',
        uploadList: '/sys/upload/list',
      },
      version: '1.0',
      dictOptions: {},
      /* 分页参数 */
      ipagination: {
        current: 1,
        pageSize: 5,
        pageSizeOptions: ['5', '10', '50'],
        pageSize: 20,
        pageSizeOptions: ['5', '10', '20', '50'],
        showTotal: (total, range) => {
          return range[0] + '-' + range[1] + ' 共' + total + '条'
        },
@@ -322,6 +469,11 @@
        total: 0
      },
      inspectionStandardId: '-1'
    }
  },
  computed: {
    importExcelUrl: function () {
      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
    }
  },
  methods: {
@@ -362,6 +514,12 @@
      this.$refs.modalForm.isRevise = false;
    },
    //审核审批
    handleAuditApproval: function (record) {
      this.$refs.auditApprovalModal.showModals(record);
      this.$refs.auditApprovalModal.title = "审核";
    },
    //升版
    handleRevise: function (record) {
      this.$refs.modalForm.edit(record);
@@ -369,23 +527,22 @@
      this.$refs.modalForm.disableSubmit = false;
      this.$refs.modalForm.isRevise = true;
    },
    //生效
    //失效
    handleTakeEffect(record) {
      const that = this;
      that.confirmLoading = true;
      this.$confirm({
        title: '日常点检标准版本生效!',
        content: '提示:版本生效后上一版本将自动失效,请谨慎操作!',
        title: '日常点检标准版本失效!',
        content: '提示:版本失效后将禁止使用,请谨慎操作!',
        okText: '确认',
        cancelText: '取消',
        onOk() {
          requestPut(that.url.versionTakeEffect, { id: record.id, num: record.num, versionStatus: '2' }).then((res) => {
          requestPut(that.url.versionTakeEffect, { id: record.id, num: record.num, versionStatus: '3' }).then((res) => {
            if (res.success) {
              that.$message.success("版本生效成功!")
              that.$message.success("版本失效成功!")
              that.loadData(1)
            } else {
              that.$message.warning("版本生效失败!")
              that.$message.warning("版本失效失败!")
            }
          }).finally(() => {
            that.confirmLoading = false;
@@ -424,9 +581,148 @@
    },
    searchReset() {
      this.inspectionStandardId = '-1'
      this.queryParam = {}
      this.queryParam = { versionStatus: '2' }
      this.loadData(1);
    },
    modalFormOk() {
      // 新增/修改 成功时,重载列表
      this.loadData();
      //清空列表选中
      // this.onClearSelected()
    },
    batchHandleReject: function () {
      if (this.selectedRowKeys.length <= 0) {
        // this.$message.warning('请选择一条记录!');
        this.$notification.warning({
          message: '消息',
          description: "请选择一条记录"
        });
        return;
      } else {
        var that = this;
        this.$confirm({
          title: "确认批量驳回",
          content: "是否批量驳回选中数据?",
          onOk: function () {
            that.loading = true;
            that.confirmLoading = true;
            let formData = {};
            let dailyInspectionStandardlist = that.selectionRows
            for (var i = 0; i < dailyInspectionStandardlist.length; i++) {
              let record = dailyInspectionStandardlist[i]
              if (record.approvalStatus == '1') {
                record.approvalStatus = '2'
              } else if (record.approvalStatus == '3') {
                record.approvalStatus = '4'
              } else if (record.approvalStatus == '4') {
                record.approvalStatus = '2'
              }
            }
            formData.dailyInspectionStandardlist = dailyInspectionStandardlist
            requestPut(that.url.passBatch, formData).then((res) => {
              if (res.success) {
                that.$message.success("批量驳回成功!")
                that.loadData(1)
              } else {
                that.$message.warning("批量通过失败!")
              }
            }).finally(() => {
              that.confirmLoading = false;
              that.loading = false;
            })
          }
        });
      }
    },
    batchHandleOK: function () {
      if (this.selectedRowKeys.length <= 0) {
        // this.$message.warning('请选择一条记录!');
        this.$notification.warning({
          message: '消息',
          description: "请选择一条记录"
        });
        return;
      } else {
        var that = this;
        this.$confirm({
          title: "确认批量通过",
          content: "是否批量通过选中数据?",
          onOk: function () {
            that.loading = true;
            that.confirmLoading = true;
            let formData = {};
            let dailyInspectionStandardlist = that.selectionRows
            for (var i = 0; i < dailyInspectionStandardlist.length; i++) {
              let record = dailyInspectionStandardlist[i]
              if (record.approvalStatus == '1') {
                record.approvalStatus = '3'
              } else if (record.approvalStatus == '2') {
                record.approvalStatus = '3'
              } else if (record.approvalStatus == '3') {
                record.approvalStatus = '5'
              } else if (record.approvalStatus == '4') {
                record.approvalStatus = '3'
              }
            }
            formData.dailyInspectionStandardlist = dailyInspectionStandardlist
            requestPut(that.url.passBatch, formData).then((res) => {
              if (res.success) {
                that.$message.success("批量通过成功!")
                that.loadData(1)
              } else {
                that.$message.warning("批量通过失败!")
              }
            }).finally(() => {
              that.confirmLoading = false;
              that.loading = false;
            })
          }
        });
      }
    },
    handleDownload() {
      var params = {}//查询条件
      params.type = "inspection"
      params.pageNo = 1
      params.pageSize = 10
      getAction(this.url.uploadList, params).then((res2) => {
        if (res2.success) {
          if (res2.result.records.length > 0) {
            downFile(this.url.download, { id: res2.result.records[0].id }).then((res) => {
              if (!res) {
                this.$message.warning('文件下载失败')
                return
              } else {
                let fileName = res2.result.records[0].name
                if (typeof window.navigator.msSaveBlob !== 'undefined') {
                  window.navigator.msSaveBlob(new Blob([res]), fileName)
                } else {
                  let url = window.URL.createObjectURL(new Blob([res]))
                  let link = document.createElement('a')
                  link.style.display = 'none'
                  link.href = url
                  link.setAttribute('download', fileName)
                  document.body.appendChild(link)
                  link.click()
                  document.body.removeChild(link) //下载完成移除元素
                  window.URL.revokeObjectURL(url) //释放掉blob对象
                }
              }
            })
          }
        }
      })
    },
    handlePrint(record) {
      let href = `${window._CONFIG['domianURL']}/jmreport/view/934677113625829376?id=` + record.id; //网站链接
      window.open(href, "_blank");
    },
  }
}
</script>