zhaowei
6 天以前 722b647891b3d4f120ffb492fea2159b54c20768
新增二保工单批量新增弹窗
已添加1个文件
已修改3个文件
303 ■■■■ 文件已修改
src/views/eam/maintenance/EamSecondMaintenanceOrderList.vue 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/maintenance/modules/EamSecondMaintenanceBatchOrderModal.vue 156 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/maintenance/modules/EamSecondMaintenanceOrderModal.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/maintenance/modules/EamThirdMaintenanceOrderModal.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/maintenance/EamSecondMaintenanceOrderList.vue
@@ -39,53 +39,36 @@
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <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-icon type="delete"/>
            ä½œåºŸ
          </a-menu-item>
          <a-menu-item key="2" @click="handlerBatchCollect">
            <a-icon type="form" />
            <a-icon type="form"/>
            é¢†å–
          </a-menu-item>
        </a-menu>
        <a-button style="margin-left: 8px"> æ‰¹é‡æ“ä½œ
          <a-icon type="down" />
          <a-icon type="down"/>
        </a-button>
      </a-dropdown>
    </div>
    <!-- table区域-begin -->
    <div>
      <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 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"
      >
      <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>
@@ -121,6 +104,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"/>
  </a-card>
@@ -133,11 +118,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
@@ -280,10 +267,11 @@
      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
@@ -315,9 +303,10 @@
       */
      handleDetail(record) {
        this.selectSecondMaintenanceData = Object.assign({}, record)
        this.$refs.secondMaintenanceApprovalModal.recordDetail(record)
        this.$refs.secondMaintenanceApprovalModal.title = '详情'
        this.$refs.secondMaintenanceApprovalModal.visible = true
        this.$refs.secondMaintenanceApprovalModal.disableSubmit = true
        this.$refs.secondMaintenanceApprovalModal.recordDetail(record)
      },
      /**
@@ -329,58 +318,37 @@
        window.open(href, '_blank')
      },
      handlerAbolish(id) {
        if (!this.url.abolish) {
          this.$message.error('请设置url.abolish属性!')
          return
        }
        var that = this
        deleteAction(that.url.abolish, { id: id }).then((res) => {
          if (res.success) {
            //重新计算分页问题
            that.reCalculatePage(1)
            // that.$message.success(res.message);
            that.$notification.success({
              message: '消息',
              description: res.message
            })
            that.loadData()
          } else {
            // that.$message.warning(res.message);
            that.$notification.warning({
              message: '消息',
              description: res.message
            })
          }
        })
        deleteAction(that.url.abolish, { id })
          .then((res) => {
            if (res.success) {
              that.$notification.success({
                message: '消息',
                description: res.message
              })
              that.loadData()
            } else {
              that.$notification.warning({
                message: '消息',
                description: res.message
              })
            }
          })
      },
      handlerBatchAbolish() {
        if (!this.url.abolishBatch) {
          this.$message.error('请设置url.abolishBatch属性!')
          return
        var ids = ''
        for (var a = 0; a < this.selectedRowKeys.length; a++) {
          ids += this.selectedRowKeys[a] + ','
        }
        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.abolishBatch, { ids: ids }).then((res) => {
        var that = this
        this.$confirm({
          title: '确认作废',
          content: '是否作废选中数据,只有待保养状态的数据才可作废成功?',
          onOk: function() {
            that.loading = true
            deleteAction(that.url.abolishBatch, { ids })
              .then((res) => {
                if (res.success) {
                  //重新计算分页问题
                  that.reCalculatePage(that.selectedRowKeys.length)
                  // that.$message.success(res.message);
                  that.$notification.success({
                    message: '消息',
                    description: res.message
@@ -388,18 +356,17 @@
                  that.loadData()
                  that.onClearSelected()
                } else {
                  // that.$message.warning(res.message);
                  that.$notification.warning({
                    message: '消息',
                    description: res.message
                  })
                }
              }).finally(() => {
              })
              .finally(() => {
                that.loading = false
              })
            }
          })
        }
          }
        })
      },
      //批量领取
      handlerBatchCollect() {
@@ -423,7 +390,7 @@
          this.$confirm({
            title: '确认领取',
            content: '是否领取选中数据,只有待保养状态的数据才可领取成功?',
            onOk: function () {
            onOk: function() {
              that.loading = true
              deleteAction(that.url.collectBatch, { ids: ids }).then((res) => {
                if (res.success) {
@@ -450,6 +417,11 @@
          })
        }
      },
      onMaintenanceDateChange: function(dataArray) {
        this.queryParam.maintenanceDateBegin = dataArray[0]
        this.queryParam.maintenanceDateEnd = dataArray[1]
      }
    }
  }
</script>
src/views/eam/maintenance/modules/EamSecondMaintenanceBatchOrderModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,156 @@
<template>
  <j-modal :title="title" :width="1200" :visible="visible" :confirmLoading="confirmLoading" switchFullscreen centered
           :mask-closable="false" @ok="handleOk" @cancel="handleCancel" cancelText="关闭">
    <a-spin :spinning="spinning">
      <j-vxe-table ref="editableDetailTable" rowNumber rowSelection bordered alwaysEdit toolbar @added="addNewRow"
                   :toolbarConfig="detail.toolbarConfig" keep-source :height="500"
                   :dataSource="detail.dataSource" :columns="detail.columns"/>
    </a-spin>
  </j-modal>
</template>
<script>
  import { getAction, httpAction } from '@/api/manage'
  import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect.vue'
  import { JVXETypes } from '@comp/jeecg/JVxeTable'
  export default {
    name: 'EamSecondMaintenanceBatchOrderModal',
    components: { MaintenanceEquipmentSelect },
    data() {
      return {
        title: '操作',
        visible: false,
        confirmLoading: false,
        spinning: false,
        url: {
          batchAdd: '/eam/secondMaintenanceOrder/batchAdd'
        },
        detail: {
          dataSource: [],
          columns: [
            {
              title: 'ID',
              key: 'id',
              type: JVXETypes.hidden
            },
            {
              title: '工单号',
              dataIndex: 'orderNum',
              align: 'center',
              type: JVXETypes.inputNumber,
              disabled: true,
              placeholder: '工单号系统自动生成'
            },
            {
              title: '统一编码',
              dataIndex: 'equipmentId',
              align: 'center',
              type: JVXETypes.slot,
              slotName: 'equipmentId'
            },
            {
              title: '规范名称',
              dataIndex: 'standardName',
              align: 'center',
              type: JVXETypes.input,
              disabled: true,
              placeholder: '选择设备后自动带出'
            },
            {
              title: '保养日期',
              dataIndex: 'maintenanceDate',
              align: 'center',
              type: JVXETypes.date
            },
            {
              title: '保养周期',
              dataIndex: 'maintenancePeriod',
              align: 'center',
              type: JVXETypes.inputNumber,
              defaultValue: '6'
            }
          ],
          toolbarConfig: {
            // prefix å‰ç¼€ï¼›suffix åŽç¼€
            slot: ['prefix', 'suffix'],
            // add æ–°å¢žæŒ‰é’®ï¼›remove åˆ é™¤æŒ‰é’®ï¼›clearSelection æ¸…空选择按钮
            btn: ['add', 'remove', 'clearSelection']
          }
        }
      }
    },
    methods: {
      add() {
        //初始化默认值
        this.model = { maintenancePeriod: 6 }
        this.visible = true
        this.editable = true
        this.detail.operatorMaintenanceList = this.detail.repairerMaintenanceList = []
      },
      addNewRow({ row }) {
        console.log('row', row)
        row.maintenancePeriod = 6
        this.$refs.editableDetailTable.updateData()
      },
      autocompleteForm(selectObj) {
        this.$set(this.model, 'standardName', selectObj.standardName)
        this.$set(this.model, 'standardId', selectObj.id)
        this.$set(this.model, 'equipmentId', selectObj.equipmentId)
        if (!this.model.id) this.loadStandardDetail(selectObj.id)
      },
      async handleOk() {
        const that = this
        // è§¦å‘表单验证
        this.$refs.form.validate(valid => {
          if (valid) {
            that.confirmLoading = that.spinning = true
            let httpUrl = ''
            let method = ''
            if (!this.model.id) {
              httpUrl += this.url.add
              method = 'post'
            } else {
              httpUrl += this.url.edit
              method = 'put'
            }
            httpAction(httpUrl, this.model, method)
              .then((res) => {
                if (res.success) {
                  that.$notification.success({
                    message: '消息',
                    description: res.message
                  })
                  that.$emit('ok')
                  that.close()
                } else {
                  that.$notification.warning({
                    message: '消息',
                    description: res.message
                  })
                }
              })
              .finally(() => {
                that.confirmLoading = that.spinning = false
              })
          } else {
            return false
          }
        })
      },
      handleCancel() {
        this.close()
      },
      close() {
        this.$emit('close')
        this.visible = false
      }
    }
  }
</script>
src/views/eam/maintenance/modules/EamSecondMaintenanceOrderModal.vue
@@ -1,5 +1,5 @@
<template>
  <j-modal :title="title" :width="1200" :visible="visible" :confirmLoading="confirmLoading" switchFullscreen
  <j-modal :title="title" :width="1200" :visible="visible" :confirmLoading="confirmLoading" switchFullscreen centered
           :mask-closable="false" @ok="handleOk" @cancel="handleCancel" cancelText="关闭">
    <a-spin :spinning="spinning">
      <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol">
src/views/eam/maintenance/modules/EamThirdMaintenanceOrderModal.vue
@@ -13,8 +13,7 @@
          <a-col :span="8">
            <a-form-model-item prop="equipmentId" label="统一编码">
              <maintenance-equipment-select placeholder="请输入统一编码或名称搜索" v-model="model.equipmentId"
                                            maintenanceCategory="THIRD_MAINTENANCE" @autocompleteForm="autocompleteForm"
                                            :disabled="editable"/>
                                            maintenanceCategory="THIRD_MAINTENANCE" @autocompleteForm="autocompleteForm"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="8">