zenglf
2023-09-18 92ff846fb659c62037a32b1d8c15eae9df9d9b54
src/views/eam/InspectionCycleList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,398 @@
<template>
  <a-card
    :bordered="false"
    title="点检周期规则"
  >
    <!-- æŸ¥è¯¢åŒºåŸŸ -->
    <div class="table-page-search-wrapper">
      <a-form
        layout="inline"
        @keyup.enter.native="searchQuery"
      >
        <a-row :gutter="24">
          <a-col
            :xl="6"
            :lg="7"
            :md="8"
            :sm="24"
          >
            <a-form-item label="周期编码">
              <a-input
                placeholder="请输入周期编码"
                v-model="queryParam.code"
              ></a-input>
            </a-form-item>
          </a-col>
          <a-col
            :xl="6"
            :lg="7"
            :md="8"
            :sm="24"
          >
            <a-form-item label="周期名称">
              <a-input
                placeholder="请输入周期名称"
                v-model="queryParam.name"
              ></a-input>
            </a-form-item>
          </a-col>
          <a-col
            :md="10"
            :sm="8"
          >
            <a-form-item label="版本状态">
              <!-- button-style="solid" -->
              <!-- size="small" -->
              <a-radio-group
                v-model="queryParam.versionStatus"
                @change="onChange"
                default-value="2"
              >
                <a-radio-button value="1">
                  æœªç”Ÿæ•ˆ
                </a-radio-button>
                <a-radio-button value="2">
                  å·²ç”Ÿæ•ˆ
                </a-radio-button>
                <a-radio-button value="3">
                  å·²å¤±æ•ˆ
                </a-radio-button>
              </a-radio-group>
            </a-form-item>
          </a-col>
        </a-row>
      </a-form>
    </div>
    <div class="table-operator">
      <a-button
        @click="handleAdd"
        type="primary"
        icon="plus"
        v-has="'inspectionCycle:add'"
      >新增</a-button>
      <a-button
        type="primary"
        @click="searchQuery"
        icon="search"
      >查询</a-button>
      <a-button
        type="primary"
        @click="searchReset"
        icon="reload"
        style="margin-left: 8px"
      >重置</a-button>
      <a-dropdown v-if="selectedRowKeys.length > 0">
        <a-menu slot="overlay">
          <a-menu-item
            key="1"
            @click="batchDel"
          ><a-icon type="delete" />删除</a-menu-item>
        </a-menu>
        <a-button style="margin-left: 8px"> æ‰¹é‡æ“ä½œ <a-icon type="down" /></a-button>
      </a-dropdown>
      <!-- <a-row
        :gutter="24"
        style="margin-top: 15px"
      >
        <a-col :md="6">
          æ—¥åŽ†ï¼š<a-checkbox
            :checked="checked"
            @change="onChangeCheckAll"
          >班组工作日历</a-checkbox>
        </a-col>
      </a-row> -->
    </div>
    <div>
      <div
        class="ant-alert ant-alert-info"
        style="margin-bottom: 16px"
      >
        <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"
        :scroll="{ x: 'calc(2000px + 50%)', y: 900 }"
        bordered
        rowKey="id"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        class="j-table-force-nowrap"
        @change="handleTableChange"
      >
        <!-- :rowSelection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" -->
        <span
          slot="action"
          slot-scope="text, record"
        >
          <a
            v-if="record.versionStatus == '2'"
            @click="handleRevise(record)"
            v-has="'inspectionCycle:revise'"
          >升版</a>
          <a-divider type="vertical" />
          <a
            v-if="record.versionStatus == '1'"
            @click="handleTakeEffect(record)"
            v-has="'inspectionCycle:takeEffect'"
          >生效</a>
          <a-divider type="vertical" />
          <a
            v-if="record.versionStatus == '1'"
            @click="handleEdit(record)"
            v-has="'inspectionCycle:edit'"
          >编辑</a>
          <a-divider type="vertical" />
          <a-popconfirm
            v-if="record.versionStatus == '1'"
            title="确定删除吗?"
            @confirm="() => handleDelete(record.id)"
            v-has="'inspectionCycle:delete'"
          >
            <a>删除</a>
          </a-popconfirm>
        </span>
      </a-table>
    </div>
    <inspection-cycle-modal
      ref="modalForm"
      @ok="modalFormOk"
    ></inspection-cycle-modal>
  </a-card>
</template>
<script>
import '@/assets/less/TableExpand.less'
import { mixinDevice } from '@/utils/mixin'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import InspectionCycleModal from './modules/inspectionCycle/InspectionCycleModal'
import { deleteAction, getAction, postAction, requestPut } from '@/api/manage'
import { filterObj } from '@/utils/util';
import dayjs from 'dayjs'
export default {
  name: 'InspectionCycleList',
  mixins: [JeecgListMixin, mixinDevice],
  components: {
    InspectionCycleModal,
    dayjs,
  },
  data() {
    return {
      description: '点检周期规则',
      // è¡¨å¤´
      columns: [
        {
          title: '#',
          dataIndex: '',
          key: 'rowIndex',
          width: 60,
          align: 'center',
          customRender: function (t, r, index) {
            return parseInt(index) + 1
          },
        },
        {
          title: '版本',
          align: 'center',
          dataIndex: 'version',
        },
        {
          title: '版本状态',
          align: 'center',
          dataIndex: 'versionStatusName',
        },
        {
          title: '周期编码',
          align: 'center',
          dataIndex: 'code',
        },
        {
          title: '周期名称',
          align: 'center',
          dataIndex: 'name',
        },
        {
          title: '周期',
          align: 'center',
          dataIndex: 'cycle',
        },
        {
          title: '周期单位',
          align: 'center',
          dataIndex: 'cycleUnitName',
        },
        {
          title: '首次点检日期',
          align: 'center',
          dataIndex: 'firstInspectionTime1',
          // customRender: function (text) {
          //   return !text ? '' : text.length > 10 ? text.substr(0, 10) : text
          // },
        },
        {
          title: '首次点检时间',
          align: 'center',
          dataIndex: 'firstInspectionTime2',
          // customRender: function (text) {
          //   return !text ? '' : text.length > 10 ? text.substr(11) : text
          // },
        },
        {
          title: '提前时间',
          align: 'center',
          dataIndex: 'leadTime',
        },
        {
          title: '有效时间',
          align: 'center',
          dataIndex: 'effectiveTime',
        },
        {
          title: '时间单位',
          align: 'center',
          dataIndex: 'unitName',
        },
        {
          title: '调整方式',
          align: 'center',
          dataIndex: 'arrangeWayName',
        },
        {
          title: '开工条件',
          align: 'center',
          dataIndex: 'startConditionName',
        },
        {
          title: '逾期处理方式',
          align: 'center',
          dataIndex: 'overdueDisposeModeName',
        },
        {
          title: '依据日历',
          align: 'center',
          dataIndex: 'accordingCalendarName',
        },
        {
          title: '生效时间',
          align: 'center',
          dataIndex: 'takeEffectTime',
        },
        {
          title: '失效时间',
          align: 'center',
          dataIndex: 'loseEfficacyTime',
        },
        {
          title: '创建人',
          align: 'center',
          dataIndex: 'createBy',
        },
        {
          title: '创建日期',
          align: 'center',
          dataIndex: 'createTime',
        },
        {
          title: '操作',
          dataIndex: 'action',
          align: 'center',
          fixed: 'right',
          width: 147,
          scopedSlots: { customRender: 'action' },
        },
      ],
      url: {
        list: '/eam/inspectionCycle/list',
        delete: '/eam/inspectionCycle/delete',
        deleteBatch: '/eam/inspectionCycle/deleteBatch',
        versionTakeEffect: "/eam/inspectionCycle/versionTakeEffect",
      },
      checked: false,
    }
  },
  methods: {
    //升版
    handleRevise: function (record) {
      this.$refs.modalForm.revise(record);
      this.$refs.modalForm.title = "点检周期规则版本升级";
      this.$refs.modalForm.disableSubmit = false;
    },
    //生效
    handleTakeEffect(record) {
      const that = this;
      that.confirmLoading = true;
      this.$confirm({
        title: '点检周期版本生效!',
        content: '提示:版本生效后上一版本将自动失效,请谨慎操作!',
        okText: '确认',
        cancelText: '取消',
        onOk() {
          requestPut(that.url.versionTakeEffect, { id: record.id, code: record.code, versionStatus: '2' }).then((res) => {
            if (res.success) {
              that.$message.success("版本生效成功!")
              that.loadData(1)
            } else {
              that.$message.warning("版本生效失败!")
            }
          }).finally(() => {
            that.confirmLoading = false;
          })
        },
      })
    },
    onChange(e) {
      this.queryParam.versionStatus = e.target.value;
      this.loadData();
    },
    loadData(arg) {
      if (!this.url.list) {
        this.$message.error("请设置url.list属性!")
        return
      }
      //加载数据 è‹¥ä¼ å…¥å‚æ•°1则加载第一页的内容
      if (arg === 1) {
        this.ipagination.current = 1;
      }
      var params = this.getQueryParams();//查询条件
      this.loading = true;
      getAction(this.url.list, params).then((res) => {
        if (res.success) {
          //update-begin---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
          this.dataSource = res.result.records || res.result;
          if (res.result.total) {
            this.ipagination.total = res.result.total;
          } else {
            this.ipagination.total = 0;
          }
          //update-end---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
        } else {
          this.$message.warning(res.message)
        }
      }).finally(() => {
        this.loading = false
      })
    },
  },
}
</script>
<style scoped>
@import '~@assets/less/common.less';
</style>