xiongchao 3 éve
szülő
commit
fb9431a37e
2 módosított fájl, 399 hozzáadás és 0 törlés
  1. 1 0
      .gitignore
  2. 398 0
      src/views/check/checkjob/modules/CheckJobTableWaitDo.vue

+ 1 - 0
.gitignore

@@ -6,3 +6,4 @@
 *.cubin
 *.fatbin
 
+/node_modules/

+ 398 - 0
src/views/check/checkjob/modules/CheckJobTableWaitDo.vue

@@ -0,0 +1,398 @@
+<template>
+  <a-modal
+    :title="modalTitle"
+    :width="1200"
+    :visible="visible"
+    :confirmLoading="confirmLoading"
+    class="ant-modal2"
+    @cancel="handleCancel"
+    :footer="false"
+  >
+    <div class="table-page-search-wrapper">
+      <a-form layout="inline">
+        <a-row :gutter="48">
+<!--          <a-col :md="8" :sm="24">
+            <a-form-item label="计划名称">
+              <a-input v-model="queryParam.planName" placeholder="请输入计划名称"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="负责人">
+              <a-input v-model="queryParam.keyword" placeholder="请输入负责人"/>
+            </a-form-item>
+          </a-col>
+          <a-col :md="8" :sm="24">
+            <a-form-item label="任务状态">
+              <a-select
+                v-model="queryParam.status"
+                placeholder="请选择">
+                <a-select-option
+                  v-for="(label,value) in statusMap"
+                  :key="value"
+                  :label="label"
+                  :value="parseInt(value)">{{ label }}
+                </a-select-option>
+              </a-select>
+            </a-form-item>
+          </a-col>-->
+<!--          <a-col :md="8 || 24" :sm="24">
+            <span class="table-page-search-submitButtons">
+              <a-button type="primary" @click="$refs.table.refresh(true)">查询</a-button>
+              <a-button style="margin-left: 8px" @click="resetSearchForm">重置</a-button>
+            </span>
+          </a-col>-->
+        </a-row>
+      </a-form>
+    </div>
+
+    <div class="table-operator">
+      <!--      <a-button v-if="$auth('check-jobs-add')" type="primary" icon="plus" @click="$refs.baseModal.base()">新增</a-button>
+      <a-button style="margin-left: 8px" v-if="($auth('check-spot-jobs-export') || $auth('check-polling-jobs-export'))" type="primary" icon="download" @click="doExport">导出</a-button>-->
+      <a-dropdown v-action:edit v-if="selectedRowKeys.length > 0 && ($auth('check-spot-jobs-finish') || $auth('check-polling-jobs-finish'))">
+        <a-menu slot="overlay">
+          <a-popconfirm title="是否要删除所选数据?" @confirm="batchDelete()">
+            <a-menu-item key="1"><a-icon type="delete" /><a>删除</a></a-menu-item>
+          </a-popconfirm>
+        </a-menu>
+        <a-button style="margin-left: 8px">
+          批量操作 <a-icon type="down" />
+        </a-button>
+      </a-dropdown>
+    </div>
+
+    <s-table
+      ref="table"
+      size="default"
+      rowKey="id"
+      :columns="columns"
+      :data="loadData"
+      :alert="options.alert"
+      :rowSelection="options.rowSelection"
+      showPagination="auto"
+    >
+      <span slot="action" slot-scope="record">
+        <template>
+          <a @click="handleView(record)">查看</a>
+          <a-popconfirm v-if="($auth('check-spot-jobs-execute') || $auth('check-polling-jobs-execute')) && record.status === DictCache.VALUE.CHECK_JOB_STATUS.NOT_EXECUTE" title="确定开始执行任务?" @confirm="handleExecute(record)">
+            <a-divider type="vertical" />
+            <a>执行</a>
+          </a-popconfirm>
+          <template v-if="($auth('check-spot-jobs-finish') || $auth('check-polling-jobs-finish')) && record.status === DictCache.VALUE.CHECK_JOB_STATUS.EXECUTING">
+            <a-divider type="vertical" />
+            <a @click="handleFinish(record)">完成</a>
+          </template>
+          <!--          <a-divider type="vertical" />-->
+          <!--          <a-popconfirm v-if="$auth('check-jobs-del')" title="是否要删除该条数据?" @confirm="batchDelete(record.id)">-->
+          <!--            <a>删除</a>-->
+          <!--          </a-popconfirm>-->
+        </template>
+      </span>
+      <span slot="status" slot-scope="text">
+        <badge
+          :status="DictCache.COLOR.JOB_STATUS[text]"
+          :text="statusMap[text]" />
+      </span>
+      <span slot="stopFlag" slot-scope="text">
+        <badge
+          :status="DictCache.COLOR.YES_NO[text]"
+          :text="sbStatusMap[text]" />
+      </span>
+    </s-table>
+    <base-form :check-type="checkType" ref="baseModal" @ok="handleOk"/>
+    <detail :check-type="checkType" ref="detailModal"/>
+  </a-modal>
+</template>
+
+<script>
+import { STable, Ellipsis } from '@/components'
+import BaseForm from './BaseForm'
+import Detail from './Detail'
+import { getCheckJobPage, deleteCheckJobs, fetchCheckJob, exportCheckJob, executeJob } from '@/api/check/checkjob'
+
+export default {
+  name: 'CheckJobList',
+  components: {
+    STable,
+    Ellipsis,
+    BaseForm,
+    Detail
+  },
+  props: {
+    /**
+     * 检查类型: 1-负责 2-巡检
+     */
+    checkType: {
+      type: Number,
+      default: 1
+    },
+    type: {
+      type: Number,
+      default: 1
+    },
+    status: {
+      type: Number,
+      default: 1
+    },
+    tableParams: {
+      type: Object,
+      default: () => ({})
+    },
+    modelParams: {
+      type: Object,
+      default: () => ({})
+    }
+  },
+  watch: {
+    tableParams: {
+      // deep: true, // 深度监听
+      handler (newVal, oldVal) {
+        if (newVal.sbId !== oldVal.sbId) {
+          this.handleOk()
+        }
+      }
+    }
+  },
+  data () {
+    return {
+      // 查询参数
+      queryParam: {
+        type: this.checkType
+      },
+      modalTitle: null,
+      visible: false,
+      dataParam: {},
+      confirmLoading: false,
+      // 表头
+      columns: [
+        {
+          title: '序号',
+          dataIndex: 'index',
+          customRender: (text, record, index) => {
+            return `${(this.$refs.table.localPagination.current - 1) * this.$refs.table.localPagination.pageSize + index + 1}`
+          },
+          checked: true
+        },
+        {
+          title: '计划单号',
+          dataIndex: 'planNo',
+          checked: true
+        },
+        {
+          title: '任务名称',
+          dataIndex: 'name',
+          checked: true
+        },
+        {
+          title: '计划名称',
+          dataIndex: 'planName',
+          checked: true
+        },
+        {
+          title: '负责人',
+          dataIndex: 'checkUserName',
+          checked: true
+        },
+        {
+          title: '设备',
+          dataIndex: 'sbName',
+          checked: true
+        },
+        // {
+        // title: '点检部件',
+        // dataIndex: 'partName',
+        // checked: true
+        // },
+        {
+          title: '任务开始时间',
+          dataIndex: 'startTime',
+          checked: true
+        },
+        {
+          title: '任务结束时间',
+          dataIndex: 'endTime',
+          checked: true
+        },
+        {
+          title: '实际开始时间',
+          dataIndex: 'actualStartTime'
+        },
+        {
+          title: '实际结束时间',
+          dataIndex: 'actualEndTime'
+        },
+        {
+          title: '任务状态',
+          dataIndex: 'status',
+          checked: true,
+          scopedSlots: { customRender: 'status' }
+        },
+        //{
+        //  title: '是否停机',
+        //  dataIndex: 'stopFlag',
+        //  checked: true,
+        //  scopedSlots: { customRender: 'stopFlag' }
+        //},
+        {
+          title: '创建人名称',
+          dataIndex: 'createdUserName'
+        },
+        {
+          title: '创建时间',
+          dataIndex: 'createdTime',
+          checked: true
+        },
+        {
+          title: '操作',
+          key: 'action',
+          width: '200px',
+          align: 'center',
+          scopedSlots: { customRender: 'action' },
+          checked: true
+        }
+      ],
+      // 下拉框map
+      statusMap: {},
+      sbStatusMap: {},
+      // 加载数据方法 必须为 Promise 对象
+      loadData: parameter => {
+        parameter = {
+          ...parameter,
+          ...this.queryParam,
+          ...this.tableParams,
+          dataScope: {
+          }
+        }
+        return getCheckJobPage(Object.assign(parameter, this.queryParam))
+          .then(res => {
+            return res.data
+          })
+      },
+      selectedRowKeys: [],
+      selectedRows: [],
+
+      options: {
+        alert: { show: true, clear: () => { this.selectedRowKeys = [] } },
+        rowSelection: {
+          selectedRowKeys: this.selectedRowKeys,
+          onChange: this.onSelectChange
+        }
+      },
+      optionAlertShow: false
+    }
+  },
+  created () {
+    // 下拉框map
+    this.statusMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.CHECK_JOB_STATUS)
+    this.sbStatusMap = this.DictCache.getLabelByValueMapByType(this.DictCache.TYPE.YES_NO)
+    //this.tableOption()
+  },
+  methods: {
+    tableOption () {
+      if (!this.optionAlertShow) {
+        this.options = {
+          alert: { show: true, clear: () => { this.selectedRowKeys = [] } },
+          rowSelection: {
+            selectedRowKeys: this.selectedRowKeys,
+            onChange: this.onSelectChange,
+            getCheckboxProps: record => ({
+              props: {
+                disabled: false,
+                name: record.id
+              }
+            })
+          }
+        }
+        this.optionAlertShow = true
+      } else {
+        this.options = {
+          alert: false,
+          rowSelection: null
+        }
+        this.optionAlertShow = false
+      }
+    },
+    base (dataParam = {}, queryParam = {}) {
+      this.visible = true
+      this.modalTitle = '待执行保养列表'
+      this.queryParam = queryParam
+      this.sbId = queryParam.sbId
+      this.dataParam = dataParam
+      if (this.isCreated) {
+        this.$refs.table.clearSelected()
+        this.handleOk()
+      } else {
+        this.tableOption()
+        this.isCreated = true
+      }
+      // this.mySelect(this.selectedRowKeys, this.selectedRows)
+    },
+    batchDelete (id) {
+      let ids = []
+      if (this.BaseTool.String.isBlank(id)) {
+        const length = this.selectedRows.length
+        if (length === 0) {
+          this.$message.info('请选择要删除的记录')
+          return
+        }
+        ids = this.selectedRows.map(item => item.id)
+      } else {
+        ids = [id]
+      }
+      deleteCheckJobs(ids).then(res => {
+        this.$message.info('删除成功')
+        this.handleOk()
+        this.$refs.table.clearSelected()
+      })
+    },
+    handleEdit (record) {
+      fetchCheckJob({ id: record.id }).then(res => {
+        const modal = this.$refs.baseModal
+        modal.base(res.data)
+      })
+    },
+    handleFinish (record) {
+      fetchCheckJob({ id: record.id }).then(res => {
+        const modal = this.$refs.baseModal
+        modal.base(res.data)
+      })
+    },
+    handleExecute (record) {
+      executeJob({ id: record.id }).then(res => {
+        this.handleOk()
+      })
+    },
+    handleView (record) {
+      fetchCheckJob({ id: record.id }).then(res => {
+        const modal = this.$refs.detailModal
+        modal.base(res.data)
+      })
+    },
+    handleOk () {
+      this.$refs.table.refresh()
+    },
+    onSelectChange (selectedRowKeys, selectedRows) {
+      this.selectedRowKeys = selectedRowKeys
+      this.selectedRows = selectedRows
+    },
+    resetSearchForm () {
+      this.queryParam = {
+      }
+      this.$refs.table.refresh(true)
+    },
+    handleCancel () {
+      this.visible = false
+      this.confirmLoading = false
+      this.$emit('ok')
+    },
+    doExport () {
+      const parameter = {
+        ...this.queryParam,
+        ...this.tableParams
+      }
+      exportCheckJob(parameter).then(file => {
+        this.BaseTool.UPLOAD.downLoadExportExcel(file)
+      })
+    }
+  }
+}
+</script>