zhaowei
昨天 6c86748e1a987865cbf5bafa9b122c76bd24a695
src/views/eam/maintenance/EamSecondMaintenanceOrderList.vue
@@ -39,12 +39,40 @@
    <!-- 操作按钮区域 -->
    <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-dropdown v-if="selectedRowKeys.length > 0">
        <a-menu slot="overlay">
          <a-menu-item key="1" @click="handlerBatchAbolish">
            <a-icon type="delete"/>
            作废
          </a-menu-item>
          <a-menu-item key="2" @click="handlerBatchCollect">
            <a-icon type="form"/>
            领取
          </a-menu-item>
          <a-menu-item key="3" @click="handlerBatchRestore">
            <a-icon type="reload"/>
            还原
          </a-menu-item>
        </a-menu>
        <a-button style="margin-left: 8px"> 批量操作
          <a-icon type="down"/>
        </a-button>
      </a-dropdown>
    </div>
    <!-- table区域-begin -->
    <div>
      <a-table size="middle" bordered rowKey="id" :columns="columns" :dataSource="dataSource" :pagination="ipagination"
               :loading="loading" :scroll="{ x: 'max-content' }" @change="handleTableChange">
      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;" v-if="isDisplayOperation">
        <i class="anticon anticon-info-circle ant-alert-icon"></i> 已选择 <a style="font-weight: 600">{{selectedRowKeys.length
        }}</a>项
        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
      </div>
      <a-table ref="table" size="middle" bordered rowKey="id" :columns="columns" :dataSource="dataSource"
               :pagination="ipagination" :loading="loading" class="j-table-force-nowrap" :scroll="{x:'max-content'}"
               :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>
@@ -57,11 +85,31 @@
            <a-divider type="vertical"/>
            <a @click="handleDetail(record)">详情</a>
            <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>作废</a>
                </a-popconfirm>
              </a-menu-item>
               <a-menu-item>
                <a @click="handleDetail(record)">详情</a>
              </a-menu-item>
            </a-menu>
          </a-dropdown>
          </template>
          <template v-else>
            <a @click="handleDetail(record)">详情</a>
            <a-divider v-if="record.maintenanceStatus === 'ABOLISH'" type="vertical"/>
            <a-popconfirm v-if="record.maintenanceStatus === 'ABOLISH'" title="确定还原吗?" @confirm="() => handlerRestore(record.id)">
              <a>还原</a>
            </a-popconfirm>
            <a-divider type="vertical" v-if="record.maintenanceStatus === 'COMPLETE'"/>
            <a v-if="record.maintenanceStatus === 'COMPLETE'" @click="handlePrint(record)">打印</a>
          </template>
@@ -72,6 +120,8 @@
    <!-- 表单区域 -->
    <eamSecondMaintenanceOrder-modal ref="modalForm" @ok="modalFormOk"/>
    <eam-second-maintenance-batch-order-modal ref="batchModalForm" @ok="modalFormOk"/>
    <second-maintenance-approval-modal ref="secondMaintenanceApprovalModal"
                                       :selectShenpiData="selectSecondMaintenanceData"/>
@@ -85,11 +135,13 @@
  import SecondMaintenanceApprovalModal
    from '@views/flowable/workflow/secondMaintenance/SecondMaintenanceApprovalModal.vue'
  import LxSearchEquipmentSelect from '../equipment/modules/LxSearchEquipmentSelect'
  import EamSecondMaintenanceBatchOrderModal from './modules/EamSecondMaintenanceBatchOrderModal'
  export default {
    name: 'EamSecondMaintenanceOrderList',
    mixins: [JeecgListMixin],
    components: {
      EamSecondMaintenanceBatchOrderModal,
      LxSearchEquipmentSelect,
      EamSecondMaintenanceOrderModal,
      SecondMaintenanceApprovalModal
@@ -210,7 +262,11 @@
        url: {
          list: '/eam/secondMaintenanceOrder/list',
          abolish: '/eam/secondMaintenanceOrder/abolish',
          collect: '/eam/secondMaintenanceOrder/collect'
          collect: '/eam/secondMaintenanceOrder/collect',
          restore:'/eam/secondMaintenanceOrder/restore',
          abolishBatch: '/eam/secondMaintenanceOrder/abolishBatch',
          collectBatch: '/eam/secondMaintenanceOrder/collectBatch',
          restoreBatch: '/eam/secondMaintenanceOrder/restoreBatch',
        }
      }
    },
@@ -230,17 +286,59 @@
      this.loadData(1)
    },
    methods: {
      onMaintenanceDateChange: function(dataArray) {
        this.queryParam.maintenanceDateBegin = dataArray[0]
        this.queryParam.maintenanceDateEnd = dataArray[1]
      handleBatchAdd() {
        this.$refs.batchModalForm.title = '批量新增'
        this.$refs.batchModalForm.visible = true
      },
      /**
       * 点击领取时触发
       * @param id 行记录id
       */
      handlerCollect(id) {
        let that = this
        this.loading = true
        getAction(that.url.collect, { 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
            }
          })
      },
      /**
       * 点击详情时触发
       * @param record 列表行记录
       */
      handleDetail(record) {
        this.selectSecondMaintenanceData = Object.assign({}, record)
        this.$refs.secondMaintenanceApprovalModal.title = '详情'
        this.$refs.secondMaintenanceApprovalModal.visible = true
        this.$refs.secondMaintenanceApprovalModal.disableSubmit = true
        this.$refs.secondMaintenanceApprovalModal.recordDetail(record)
      },
      /**
       * 点击打印时触发
       * @param record 列表行记录
       */
      handlePrint(record) {
        let href = `${window._CONFIG['domianURL']}/jmreport/view/1094834721929232384?id=` + record.id //网站链接
        window.open(href, '_blank')
      },
      handlerAbolish(id) {
        var that = this
        deleteAction(that.url.abolish, { id })
          .then((res) => {
            if (res.success) {
              that.$notification.success({
@@ -256,25 +354,162 @@
            }
          })
      },
      /**
       * 点击详情时触发
       * @param record 列表行记录
       */
      handleDetail(record) {
        this.selectSecondMaintenanceData = Object.assign({}, record)
        this.$refs.secondMaintenanceApprovalModal.recordDetail(record)
        this.$refs.secondMaintenanceApprovalModal.title = '详情'
        this.$refs.secondMaintenanceApprovalModal.disableSubmit = true
      handlerBatchAbolish() {
        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.abolishBatch, { ids })
              .then((res) => {
                if (res.success) {
                  that.$notification.success({
                    message: '消息',
                    description: res.message
                  })
                  that.loadData()
                  that.onClearSelected()
                } else {
                  that.$notification.warning({
                    message: '消息',
                    description: res.message
                  })
                }
              })
              .finally(() => {
                that.loading = false
              })
          }
        })
      },
      //还原
      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) {
          this.$message.error('请设置url.abolishBatch属性!')
          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.collectBatch, { 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
              })
            }
          })
        }
      },
      /**
       * 点击打印时触发
       * @param record 列表行记录
       */
      handlePrint(record) {
        let href = `${window._CONFIG['domianURL']}/jmreport/view/1094834721929232384?id=` + record.id //网站链接
        window.open(href, '_blank')
      onMaintenanceDateChange: function(dataArray) {
        this.queryParam.maintenanceDateBegin = dataArray[0]
        this.queryParam.maintenanceDateEnd = dataArray[1]
      }
    }
  }