zhaowei
2025-07-25 31d62d0ac0bf6fdcb200ffeaa7b4e15aaf2d4946
src/views/eam/maintenance/EamSecondMaintenanceOrderList.vue
@@ -38,17 +38,21 @@
    <!-- 操作按钮区域 -->
    <div class="table-operator" v-if="isDisplayOperation">
      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
      <a-button @click="handleBatchAdd" type="primary" icon="plus">批量新增</a-button>
      <a-button v-has="'secondMaintenanceOrder:add'" @click="handleAdd" type="primary" icon="plus">新增</a-button>
      <a-button v-has="'secondMaintenanceOrder:batchAdd'" @click="handleBatchAdd" type="primary" icon="plus">批量新增</a-button>
      <a-dropdown v-if="selectedRowKeys.length > 0">
        <a-menu slot="overlay">
          <a-menu-item key="1" @click="handlerBatchAbolish">
          <a-menu-item v-has="'secondMaintenanceOrder:batchAbolish'" key="1" @click="handlerBatchAbolish">
            <a-icon type="delete"/>
            作废
          </a-menu-item>
          <a-menu-item key="2" @click="handlerBatchCollect">
          <a-menu-item v-has="'secondMaintenanceOrder:batchCollect'" key="2" @click="handlerBatchCollect">
            <a-icon type="form"/>
            领取
          </a-menu-item>
          <a-menu-item v-has="'secondMaintenanceOrder:batchRestore'" key="3" @click="handlerBatchRestore">
            <a-icon type="reload"/>
            还原
          </a-menu-item>
        </a-menu>
        <a-button style="margin-left: 8px"> 批量操作
@@ -71,21 +75,21 @@
               :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" @change="handleTableChange">
        <span slot="action" slot-scope="text, record">
          <template v-if="record.maintenanceStatus === 'WAIT_MAINTENANCE'">
            <a @click="handleEdit(record)">编辑</a>
            <a v-has="'secondMaintenanceOrder:edit'" @click="handleEdit(record)">编辑</a>
            <a-divider type="vertical"/>
            <a-divider v-has="'secondMaintenanceOrder:edit'" type="vertical"/>
            <a-popconfirm title="确定领取吗?" @confirm="() => handlerCollect(record.id)">
            <a-popconfirm v-has="'secondMaintenanceOrder:collect'" title="确定领取吗?" @confirm="() => handlerCollect(record.id)">
              <a>领取</a>
            </a-popconfirm>
            <a-divider type="vertical"/>
            <a-divider v-has="'secondMaintenanceOrder:collect'" type="vertical"/>
            <a-dropdown>
            <a class="ant-dropdown-link">更多 <a-icon type="down"/></a>
            <a-menu slot="overlay">
              <a-menu-item>
                <a-popconfirm title="确定作废吗?" @confirm="() => handleAbolish(record.id)">
                <a-popconfirm v-has="'secondMaintenanceOrder:abolish'" title="确定作废吗?" @confirm="() => handlerAbolish(record.id)">
                  <a>作废</a>
                </a-popconfirm>
              </a-menu-item>
@@ -98,8 +102,16 @@
          <template v-else>
            <a @click="handleDetail(record)">详情</a>
            <a-divider type="vertical" v-if="record.maintenanceStatus === 'COMPLETE'"/>
            <a v-if="record.maintenanceStatus === 'COMPLETE'" @click="handlePrint(record)">打印</a>
            <a-divider v-has="'secondMaintenanceOrder:restore'" v-if="record.maintenanceStatus === 'ABOLISH'" type="vertical"/>
            <a-popconfirm v-has="'secondMaintenanceOrder:restore'"  v-if="record.maintenanceStatus === 'ABOLISH'" title="确定还原吗?" @confirm="() => handlerRestore(record.id)">
              <a>还原</a>
            </a-popconfirm>
<!--            <a-divider v-has="'secondMaintenanceOrder:print'" type="vertical" v-if="record.maintenanceStatus === 'COMPLETE'"/>-->
<!--            <a v-has="'secondMaintenanceOrder:print'" v-if="record.maintenanceStatus === 'COMPLETE'" @click="handlePrint(record)">打印</a>-->
          </template>
        </span>
      </a-table>
@@ -177,6 +189,12 @@
            fixed: 'left'
          },
          {
            title: '保养状态',
            align: 'center',
            dataIndex: 'maintenanceStatus_dictText',
            fixed: 'left'
          },
          {
            title: '工单号',
            align: 'center',
            dataIndex: 'orderNum'
@@ -210,11 +228,6 @@
            title: '维修工',
            align: 'center',
            dataIndex: 'repairman_dictText'
          },
          {
            title: '保养状态',
            align: 'center',
            dataIndex: 'maintenanceStatus_dictText'
          },
          {
            title: '创建方式',
@@ -251,8 +264,10 @@
          list: '/eam/secondMaintenanceOrder/list',
          abolish: '/eam/secondMaintenanceOrder/abolish',
          collect: '/eam/secondMaintenanceOrder/collect',
          restore: '/eam/secondMaintenanceOrder/restore',
          abolishBatch: '/eam/secondMaintenanceOrder/abolishBatch',
          collectBatch: '/eam/secondMaintenanceOrder/collectBatch'
          collectBatch: '/eam/secondMaintenanceOrder/collectBatch',
          restoreBatch: '/eam/secondMaintenanceOrder/restoreBatch'
        }
      }
    },
@@ -311,7 +326,7 @@
        this.$refs.secondMaintenanceApprovalModal.title = '详情'
        this.$refs.secondMaintenanceApprovalModal.visible = true
        this.$refs.secondMaintenanceApprovalModal.disableSubmit = true
        this.$refs.secondMaintenanceApprovalModal.recordDetail(record)
        this.$refs.secondMaintenanceApprovalModal.handleDetail(record)
      },
      /**
@@ -373,6 +388,76 @@
          }
        })
      },
      //还原
      handlerRestore(id) {
        let that = this
        this.loading = true
        getAction(that.url.restore, { id })
          .then((res) => {
            if (res.success) {
              that.$notification.success({
                message: '消息',
                description: res.message
              })
              that.loadData()
            } else {
              that.$notification.warning({
                message: '消息',
                description: res.message
              })
              this.loading = false
            }
          })
      },
      //批量还原
      handlerBatchRestore() {
        if (!this.url.restoreBatch) {
          this.$message.error('请设置url.restoreBatch属性!')
          return
        }
        if (this.selectedRowKeys.length <= 0) {
          // this.$message.warning('请选择一条记录!');
          this.$notification.warning({
            message: '消息',
            description: '请选择一条记录'
          })
          return
        } else {
          var ids = ''
          for (var a = 0; a < this.selectedRowKeys.length; a++) {
            ids += this.selectedRowKeys[a] + ','
          }
          var that = this
          this.$confirm({
            title: '确认还原',
            content: '是否还原选中数据,只有作废状态的数据才可还原成功?',
            onOk: function() {
              that.loading = true
              deleteAction(that.url.restoreBatch, { ids: ids }).then((res) => {
                if (res.success) {
                  //重新计算分页问题
                  that.reCalculatePage(that.selectedRowKeys.length)
                  // that.$message.success(res.message);
                  that.$notification.success({
                    message: '消息',
                    description: res.message
                  })
                  that.loadData()
                  that.onClearSelected()
                } else {
                  // that.$message.warning(res.message);
                  that.$notification.warning({
                    message: '消息',
                    description: res.message
                  })
                }
              }).finally(() => {
                that.loading = false
              })
            }
          })
        }
      },
      //批量领取
      handlerBatchCollect() {
        if (!this.url.collectBatch) {