qushaowei
2024-01-31 12f60de079fefef9bbf15faabbe6675d023555d4
增加报表
已添加1个文件
576 ■■■■■ 文件已修改
src/views/eam/EquipmentListAllStandard.vue 576 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/EquipmentListAllStandard.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,576 @@
<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 :span="6">
            <a-form-item
              label="设备所属分类"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
            >
              <j-dict-select-tag
                dictCode="mom_eam_equipment_category,name,id"
                placeholder="请输入搜索条件并选择"
                v-model="queryParam.equipmentCategoryId"
              />
            </a-form-item>
          </a-col>
          <a-col :span="6">
            <a-form-item
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              label="统一编码"
            >
              <a-input
                placeholder="请输入设备统一编码查询"
                v-model="queryParam.num"
              ></a-input>
            </a-form-item>
          </a-col>
          <a-col :span="6">
            <a-form-item
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              label="设备名称"
            >
              <a-input
                placeholder="请输入设备名称查询"
                v-model="queryParam.name"
              ></a-input>
            </a-form-item>
          </a-col>
          <a-col :span="6">
            <a-form-item
              label="型号"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
            >
              <a-input
                v-model="queryParam.model"
                placeholder="请输入型号"
              ></a-input>
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="6">
            <a-form-item
              label="工区"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
            >
              <j-dict-select-tag
                allow-clear
                placeholder="请选择工区"
                :triggerChange="true"
                dictCode="mom_base_area,name,id,del_flag!='1'"
                v-model="queryParam.factoryModelId"
              />
            </a-form-item>
          </a-col>
          <a-col :span="6">
            <a-form-item
              label="使用部门"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
            >
              <a-tree-select
                style="width: 100%"
                :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
                :tree-data="treeData"
                placeholder="请选择使用部门"
                tree-default-expand-all
                v-model="queryParam.useId"
              />
            </a-form-item>
          </a-col>
          <a-col :span="6">
            <a-form-item
              label="ABC标识"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
            >
              <j-dict-select-tag
                allow-clear
                placeholder="请选择ABC标识"
                :triggerChange="true"
                dictCode="ABC-standard-result"
                v-model="queryParam.equipmentImportanceId"
              />
            </a-form-item>
          </a-col>
          <a-col :span="6">
            <a-form-item
              label="技术状态"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
            >
              <j-dict-select-tag
                allow-clear
                placeholder="请选择技术状态"
                :triggerChange="true"
                dictCode="technology_status"
                v-model="queryParam.technologyStatus"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="6">
            <a-form-item
              label="设备状态"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
            >
              <j-dict-select-tag
                allow-clear
                placeholder="请选择设备状态"
                :triggerChange="true"
                dictCode="equipment_status"
                v-model="queryParam.equipmentStatus"
              />
            </a-form-item>
          </a-col>
          <a-col :span="6">
            <a-form-item
              label="关键设备标识"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
            >
              <j-dict-select-tag
                allow-clear
                :triggerChange="true"
                placeholder="请选择关键设备标识"
                dictCode="specific_equipment"
                v-model="queryParam.specificEquipment"
              />
            </a-form-item>
          </a-col>
        </a-row>
      </a-form>
    </div>
    <div class="table-operator">
      <a-button
        type="primary"
        @click="searchQuery"
        icon="search"
      >查询</a-button>
      <a-button
        @click="searchReset"
        icon="reload"
      >重置</a-button>
    </div>
    <div>
      <a-table
        ref="table"
        size="small"
        bordered
        rowKey="id"
        :scroll="{x:true}"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange, type:'checkbox'}"
        :customRow="clickThenSelect"
        @change="handleTableChange"
      >
        <span
          slot="yseNoPrecisionParameters"
          slot-scope="text"
        >
          <a-icon
            type="check"
            style="color: chartreuse;"
            v-if="text==='0'"
          />
          <a-icon
            type="close"
            v-else
            style="color:red;"
          />
        </span>
        <span
          slot="yseNoInspectionStandard"
          slot-scope="text"
        >
          <a-icon
            type="check"
            style="color: chartreuse;"
            v-if="text==='0'"
          />
          <a-icon
            type="close"
            v-else
            style="color:red;"
          />
        </span>
        <span
          slot="yseNoMaintenance2Standard"
          slot-scope="text"
        >
          <a-icon
            type="check"
            style="color: chartreuse;"
            v-if="text==='0'"
          />
          <a-icon
            type="close"
            v-else
            style="color:red;"
          />
        </span>
        <span
          slot="yseNoMaintenance3Standard"
          slot-scope="text"
        >
          <a-icon
            type="check"
            style="color: chartreuse;"
            v-if="text==='0'"
          />
          <a-icon
            type="close"
            v-else
            style="color:red;"
          />
        </span>
      </a-table>
    </div>
    <a-tabs defaultActiveKey="1">
      <a-tab-pane
        tab="设备精度"
        key="2"
        forceRender
      >
        <EquipmentPrecisionParametersList
          :isOpen="isOpenPrecision"
          :mainId="precisionParametersTemplateId"
        />
      </a-tab-pane>
      <a-tab-pane
        tab="日保标准"
        key="7"
        forceRender
      >
        <daily-maintenance-list :mainId="selectedMainId"></daily-maintenance-list>
      </a-tab-pane>
      <a-tab-pane
        tab="二保标准"
        key="8"
        forceRender
      >
        <second-maintenance-list :mainId="selectedMainId"></second-maintenance-list>
      </a-tab-pane>
      <a-tab-pane
        tab="三保标准"
        key="9"
        forceRender
      >
        <third-maintenance-list :mainId="selectedMainId"></third-maintenance-list>
      </a-tab-pane>
    </a-tabs>
  </a-card>
</template>
<script>
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import { mixinDevice } from '@/utils/mixin'
import { getAction } from '@/api/manage'
import EquipmentPrecisionParametersList from './modules/equipmentNew/EquipmentPrecisionParametersList'
import '@/assets/less/TableExpand.less'
import JSearchSelectTag from '../../components/dict/JSearchSelectTag.vue'
import StandardOfInspection from './modules/equipmentNew/StandardOfInspection.vue'
import StandardOfMaintenance from './modules/equipmentNew/StandardOfMaintenance.vue'
import DailyMaintenanceList from './modules/equipmentNew/DailyMaintenanceList.vue'
import SecondMaintenanceList from './modules/equipmentNew/SecondMaintenanceList.vue'
import ThirdMaintenanceList from './modules/equipmentNew/ThirdMaintenanceList.vue'
export default {
  name: "EquipmentList",
  mixins: [JeecgListMixin, mixinDevice],
  components: {
    EquipmentPrecisionParametersList,
    JSearchSelectTag,
    StandardOfInspection,
    StandardOfMaintenance,
    DailyMaintenanceList,
    SecondMaintenanceList,
    ThirdMaintenanceList,
  },
  data() {
    return {
      description: '设备台账-保养标准',
      caytegoryParam: 'all',
      // è¡¨å¤´
      columns: [
        {
          title: '#',
          dataIndex: '',
          key: 'rowIndex',
          align: 'center',
          customRender: function (t, r, index) {
            return parseInt(index) + 1
          },
          width: 50,
        },
        {
          title: '设备类型',
          align: "center",
          dataIndex: 'categoryName',
        },
        {
          title: '统一编码',
          align: "center",
          dataIndex: 'equipmentNum',
        },
        {
          title: '设备名称',
          align: "center",
          dataIndex: 'equipmentName',
        },
        {
          title: '型号',
          align: "center",
          dataIndex: 'equipmentModel',
        },
        {
          title: '使用部门',
          align: "center",
          dataIndex: 'departName',
        },
        {
          title: 'ABC标识',
          align: "center",
          dataIndex: 'abc',
        },
        {
          title: '关键设备标识',
          align: "center",
          dataIndex: 'specificEquipment',
        },
        {
          title: '技术状态',
          align: "center",
          dataIndex: 'technologyStatus',
        },
        {
          title: '有无精度',
          align: "center",
          dataIndex: 'yseNoPrecisionParameters',
          scopedSlots: { customRender: 'yseNoPrecisionParameters' }
        },
        {
          title: '有无日保标准',
          align: "center",
          dataIndex: 'yseNoInspectionStandard',
          scopedSlots: { customRender: 'yseNoInspectionStandard' }
        },
        {
          title: '有无二保标准',
          align: "center",
          dataIndex: 'yseNoMaintenance2Standard',
          scopedSlots: { customRender: 'yseNoMaintenance2Standard' }
        },
        {
          title: '有无三保标准',
          align: "center",
          dataIndex: 'yseNoMaintenance3Standard',
          scopedSlots: { customRender: 'yseNoMaintenance3Standard' }
        },
        // {
        //   title: '操作',
        //   align: "center",
        //   dataIndex: 'action',
        //   scopedSlots: {
        //     customRender: 'action',
        //   },
        //   width: 147,
        //   fixed: 'right',
        // },
      ],
      url: {
        list: "/eam/equipment/getEquipmentListAllStandard",
        loadOptions: '/sys/sysDepart/loadDepartTreeOptions',
      },
      dictOptions: {
      },
      /* åˆ†é¡µå‚æ•° */
      ipagination: {
        current: 1,
        pageSize: 20,
        pageSizeOptions: ['5', '10', '20', '50'],
        showTotal: (total, range) => {
          return range[0] + "-" + range[1] + " å…±" + total + "条"
        },
        showQuickJumper: true,
        showSizeChanger: true,
        total: 0
      },
      selectedMainId: '',
      // superFieldList: [],
      equipmentProcessParametersMainId: '',
      equipmentDocumentMainId: '',
      equipmentPrecisionParametersMainId: '',
      precisionParametersTemplateId: '',
      isOpenPrecision: true,
      isOpenProcess: true,
      treeData: [],
      labelCol: {
        xs: { span: 24 },
        sm: { span: 5 },
      },
      wrapperCol: {
        xs: { span: 24 },
        sm: { span: 16 },
      },
      mainId: '',
    }
  },
  created() {
    // this.getSuperFieldList();
    this.initOptions();
  },
  computed: {
    importExcelUrl: function () {
      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
    }
  },
  methods: {
    initDictConfig() {
    },
    clickThenSelect(record) {
      return {
        on: {
          click: () => {
            this.onSelectChange(record.id.split(","), [record]);
          }
        }
      }
    },
    onClearSelected() {
      this.selectedRowKeys = [];
      this.selectionRows = [];
      this.selectedMainId = ''
    },
    onSelectChange(selectedRowKeys, selectionRows) {
      if (selectedRowKeys.length == 1) {
        this.selectedMainId = selectedRowKeys[0]
        this.precisionParametersTemplateId = selectionRows[0].precisionParametersTemplateId;
        // this.isOpenProcess = selectionRows[0].processParameters == 1;
        this.isOpenPrecision = selectionRows[0].precisionParameters == 1;
      } else {
        this.selectedMainId = ''
        this.precisionParametersTemplateId = ''
      }
      this.selectedRowKeys = selectedRowKeys;
      this.selectionRows = selectionRows;
    },
    loadData(arg) {
      if (!this.url.list) {
        this.$message.error("请设置url.list属性!")
        return
      }
      //加载数据 è‹¥ä¼ å…¥å‚æ•°1则加载第一页的内容
      if (arg === 1) {
        this.ipagination.current = 1;
      }
      this.onClearSelected()
      var params = this.getQueryParams();//查询条件
      this.loading = true;
      getAction(this.url.list, params).then((res) => {
        if (res.success) {
          this.dataSource = res.result.records;
          this.ipagination.total = res.result.total;
        }
        if (res.code === 510) {
          this.$message.warning(res.message)
        }
        this.loading = false;
      })
    },
    // getSuperFieldList() {
    //   let fieldList = [];
    //   fieldList.push({ type: 'string', value: 'num', text: '统一编码', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'name', text: '设备名称', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'model', text: '型号', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'specification', text: '规格', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'equipmentStatus', text: '设备状态', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'technologyStatus', text: 'technologyStatus', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'assetNumber', text: 'assetNumber', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'equipmentCategoryId', text: 'equipmentCategoryId', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'specificEquipment', text: 'specificEquipment', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'equipmentPhoto', text: 'equipmentPhoto', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'constructorId', text: '资产制造商', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'supplierId', text: 'supplierId', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'factoryNumber', text: 'factoryNumber', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'leaveFactoryDate', text: '出厂日期', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'acceptanceCheckDate', text: '验收日期', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'affiliationId', text: 'affiliationId', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'manageId', text: '维护部门ID', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'manager', text: 'manager', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'useId', text: '使用部门ID', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'functionary', text: 'functionary', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'location', text: 'location', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'equipmentImportanceId', text: 'ABC标识ID', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'processParameters', text: 'processParameters', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'processParametersTemplateId', text: 'processParametersTemplateId', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'precisionParameters', text: 'precisionParameters', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'precisionParametersTemplateId', text: 'precisionParametersTemplateId', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'verification', text: 'verification', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'verificationPeriod', text: 'verificationPeriod', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'lastVerificationDate', text: 'lastVerificationDate', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'nextVerificationDate', text: 'nextVerificationDate', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'status', text: 'status', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'remark', text: 'remark', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'equipmentUda1', text: '工区', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'equipmentUda2', text: '安装位置', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'equipmentUda3', text: '重量', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'equipmentUda4', text: '重量计量单位ID', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'equipmentUda5', text: '功能位置', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'tenantId', text: 'tenantId', dictCode: '' })
    //   fieldList.push({ type: 'int', value: 'delFlag', text: 'delFlag', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'teamId', text: '维修班组ID', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'sourceId', text: 'sourceId', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'fundSource', text: '资金来源', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'factoryNo', text: '出厂编号', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'mfr', text: '制造商', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'sourceCountry', text: '资产来源国家', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'gpo', text: '总功率', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'keyEquipmentIdentification', text: '关键设备标识', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'securityConfiguration', text: '安全配置', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'coolingSystem', text: '冷却系统', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'fireExtinguisher', text: '灭火器', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'fireExtinguisherValidityPeriod', text: '灭火器有效期', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'operatingSystem', text: '操作系统', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'system', text: '系统', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'port', text: '端口', dictCode: '' })
    //   fieldList.push({ type: 'BigDecimal', value: 'coordinateNum', text: '坐标数量', dictCode: '' })
    //   fieldList.push({ type: 'string', value: 'projectApprovalNo', text: '立项卡号', dictCode: '' })
    //   this.superFieldList = fieldList
    // },
    initOptions() {
      getAction(this.url.loadOptions).then(res => {
        if (res.success) {
          this.treeData = res.result
        } else {
          this.$message.warning(res.message)
        }
      })
    },
  }
}
</script>
<style scoped>
@import '~@assets/less/common.less';
</style>