已添加1个文件
已修改14个文件
2436 ■■■■■ 文件已修改
src/views/eam/base/EamMaintenanceStandardList.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/base/modules/EamMaintenanceStandardDetailList.vue 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/base/modules/EamMaintenanceStandardModal.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/base/modules/EamTechnicalStatusEvaluationStandardModal.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/equipment/EamEquipmentLedger.vue 62 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/equipment/modules/EamEquipmentModal.vue 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/equipment/modules/TechnicalStatusEquipmentSelect.vue 155 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/maintenance/EamInspectionOrderList.vue 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/maintenance/EamSecondMaintenanceOrderList.vue 739 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/maintenance/EamThirdMaintenanceOrderList.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/maintenance/modules/EamInspectionOrderModal.vue 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/maintenance/modules/EamSecondMaintenanceOrderModal.vue 347 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/technical/EamTechnicalStatusEvaluationOrderList.vue 395 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue 358 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/DictList.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/base/EamMaintenanceStandardList.vue
@@ -115,7 +115,7 @@
          </template>
          <template v-if="record.standardStatus != 'WAIT_SUBMIT'">
            <a-divider type="vertical"/>
            <a-divider type="vertical" v-if="record.standardStatus=='START'"/>
          <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
            <a @click.stop="event=>event.stopPropagation()">删除</a>
@@ -260,9 +260,9 @@
          inspectionImportExcel: '/eam/maintenanceStandard/importPointInspection',
          secondMaintenanceImportExcel: '/eam/maintenanceStandard/importSecondMaintenanceStandard',
          thirdMaintenanceImportExcel: '/eam/maintenanceStandard/importThirdMaintenanceStandard',
          inspectionXlsDownloadUrl: '导入模板/点检标准导入模板_v1.0.xlsx',
          secondMaintenanceXlsDownloadUrl: '导入模板/二保标准导入模板_v1.0.docx',
          thirdMaintenanceXlsDownloadUrl: '导入模板/三保标准导入模板_v1.0.docx'
          inspectionXlsDownloadUrl: '导入模板/设备点检标准导入模板.xlsx',
          secondMaintenanceXlsDownloadUrl: '导入模板/生产设备二级保养规范.docx',
          thirdMaintenanceXlsDownloadUrl: '导入模板/生产设备三级保养规范.docx'
        },
        standardId: '-1'
      }
src/views/eam/base/modules/EamMaintenanceStandardDetailList.vue
@@ -1,18 +1,6 @@
<template>
  <a-card :bordered="false">
    <a-table
      ref="detailTable"
      size="middle"
      bordered
      rowKey="id"
      :columns="columns"
      :dataSource="dataSource"
      :pagination="ipagination"
      :loading="loading"
      class="j-table-force-nowrap"
      @change="handleTableChange">
    </a-table>
  </a-card>
  <a-table ref="detailTable" size="middle" bordered rowKey="id" :columns="columns" :dataSource="dataSource"
           :pagination="ipagination" :loading="loading" class="j-table-force-nowrap" @change="handleTableChange"/>
</template>
<script>
@@ -34,7 +22,8 @@
        }
      },
      filterKey: {
        type: String
        type: String,
        default: ''
      }
    },
    data() {
@@ -125,8 +114,7 @@
        immediate: true,
        handler(val) {
          if (val) {
            console.log('val---------------------', val)
            this.$nextTick(() => this.loadData(1))
            this.loadData(1)
          } else {
            this.clearList()
          }
@@ -151,10 +139,6 @@
    },
    methods: {
      loadData(arg) {
        if (this.standardId && this.standardId === '-1') {
          this.clearList()
          return
        }
        //加载数据 è‹¥ä¼ å…¥å‚æ•°1则加载第一页的内容
        if (arg === 1) {
          this.ipagination.current = 1
@@ -165,31 +149,32 @@
        }
        this.dataSource = []
        params.standardId = this.standardId
        params.itemCategory = this.filterKey
        this.loading = true
        console.log('----------------------', this.filterKey)
        getAction(this.url.list, params).then((res) => {
          if (res.success) {
            // console.log(res)
            //update-begin---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
            if (this.filterKey) this.dataSource = res.result.records.filter(item => item.itemCategory == this.filterKey)
            else this.dataSource = res.result.records
            if (res.result.total) {
              this.ipagination.total = res.result.total
        getAction(this.url.list, params)
          .then((res) => {
            if (res.success) {
              this.dataSource = res.result.records
              if (res.result.total) {
                this.ipagination.total = res.result.total
              } else {
                this.ipagination.total = 0
              }
            } else {
              this.ipagination.total = 0
              this.$notification.warning({
                message: '消息',
                description: res.message
              })
            }
            //update-end---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
          } else {
            this.$message.warning(res.message)
          }
        }).finally(() => {
          this.loading = false
        })
          })
          .finally(() => {
            this.loading = false
          })
      },
      clearList() {
        this.dataSource = []
        this.selectedRowKeys = []
        this.ipagination.current = 1
        this.clearSelected()
      }
    }
  }
src/views/eam/base/modules/EamMaintenanceStandardModal.vue
@@ -194,6 +194,14 @@
              type: JVXETypes.textarea,
              align: 'center',
              validateRules: [{ required: true, message: '请输入${title}' }]
            },
            {
              title: '保养规范或要求',
              key: 'itemDemand',
              placeholder: '请输入保养规范或要求',
              type: JVXETypes.textarea,
              align: 'center',
              validateRules: [{ required: true, message: '请输入${title}' }]
            }
          ],
          secondMaintenanceColumns: [
@@ -220,14 +228,6 @@
              title: '保养项目',
              key: 'itemName',
              placeholder: '请输入保养项目',
              type: JVXETypes.textarea,
              align: 'center',
              validateRules: [{ required: true, message: '请输入${title}' }]
            },
            {
              title: '保养规范或要求',
              key: 'itemDemand',
              placeholder: '请输入保养规范或要求',
              type: JVXETypes.textarea,
              align: 'center',
              validateRules: [{ required: true, message: '请输入${title}' }]
src/views/eam/base/modules/EamTechnicalStatusEvaluationStandardModal.vue
@@ -23,40 +23,8 @@
          </a-col>
        </a-row>
<!--        <a-row>-->
<!--          <a-col :span="8">-->
<!--            <a-form-model-item label="鉴定周期(å¹´)">-->
<!--              <a-input-number v-model="model.evaluationPeriod" :min="1" placeholder="请输入鉴定周期(å¹´)" style="width: 100%"/>-->
<!--            </a-form-model-item>-->
<!--          </a-col>-->
<!--        </a-row>-->
        <a-row>
          <!--<a-col :span="8">-->
          <!--<a-form-model-item label="安全装置检查">-->
          <!--<j-dict-select-tag @change="handleCheckListChange($event,1)" dict-code="yn " type="radio"-->
          <!--:disabled="model.hasPrecisionCheck=='0'&&model.hasOtherCheck=='0'"-->
          <!--v-model="model.hasSafetyEquipmentCheck"/>-->
          <!--</a-form-model-item>-->
          <!--</a-col>-->
          <!--<a-col :span="8">-->
          <!--<a-form-model-item label="设备精度检查">-->
          <!--<j-dict-select-tag @change="handleCheckListChange($event,2)" dict-code="yn " type="radio"-->
          <!--:disabled="model.hasSafetyEquipmentCheck=='0'&&model.hasOtherCheck=='0'"-->
          <!--v-model="model.hasPrecisionCheck"/>-->
          <!--</a-form-model-item>-->
          <!--</a-col>-->
          <!--<a-col :span="8">-->
          <!--<a-form-model-item label="其他检查">-->
          <!--<j-dict-select-tag @change="handleCheckListChange($event,3)" dict-code="yn " type="radio"-->
          <!--:disabled="model.hasPrecisionCheck=='0'&&model.hasSafetyEquipmentCheck=='0'"-->
          <!--v-model="model.hasOtherCheck"/>-->
          <!--</a-form-model-item>-->
          <!--</a-col>-->
          <a-col :span="8" v-for="item in checkList">
          <a-col :span="8" v-for="item in checkList" :key="item.key">
            <a-form-model-item :label="item.label">
              <j-dict-select-tag @change="handleCheckListChange($event,item.key)" dict-code="yn" type="radio"
                                 :disabled="checkList.filter(i=>i.key!=item.key).every(i=>i.value=='0')"
@@ -342,7 +310,7 @@
          if (tableData.length == 0) {
            this.$notification.warning({
              message: '消息',
              description: hasCheckedCheckList[index].label + '必填项不能为空'
              description: hasCheckedCheckList[index].label + '不能为空'
            })
            return
          }
src/views/eam/equipment/EamEquipmentLedger.vue
@@ -151,34 +151,6 @@
      </a-table>
    </div>
    <!-- table区域-end -->
    <!--<a-tabs v-model="activeTabKey" @change="handleTabChange">-->
    <!--<a-tab-pane tab="设备文档" :key="1">-->
    <!--<eam-equipment-attachment-list ref="tabPaneTableListRef1"/>-->
    <!--</a-tab-pane>-->
    <!--<a-tab-pane tab="点检工单" :key="2">-->
    <!--<eam-inspection-order-list ref="tabPaneTableListRef2" :isDisplayOperation="false"/>-->
    <!--</a-tab-pane>-->
    <!--<a-tab-pane tab="二保工单" :key="3">-->
    <!--<eam-second-maintenance-order-list ref="tabPaneTableListRef3" :isDisplayOperation="false"/>-->
    <!--</a-tab-pane>-->
    <!--<a-tab-pane tab="三保工单" :key="4">-->
    <!--<eam-third-maintenance-order-list ref="tabPaneTableListRef4" :isDisplayOperation="false"/>-->
    <!--</a-tab-pane>-->
    <!--<a-tab-pane tab="维修工单" :key="5">-->
    <!--<eam-repair-order-list ref="tabPaneTableListRef5" :isDisplayOperation="false"/>-->
    <!--</a-tab-pane>-->
    <!--<a-tab-pane tab="保养标准" :key="6">-->
    <!--<eam-maintenance-standard-list ref="tabPaneTableListRef6" :isDisplayOperation="false"/>-->
    <!--</a-tab-pane>-->
    <!--<a-tab-pane tab="工艺参数" :key="7" v-if="isOpenProcess">-->
    <!--<eam-equipment-process-list ref="tabPaneTableListRef7" :isDisplayOperation="false"/>-->
    <!--</a-tab-pane>-->
    <!--<a-tab-pane tab="设备精度" :key="8" v-if="isOpenPrecision">-->
    <!--<eam-equipment-precision-list ref="tabPaneTableListRef8" :isDisplayOperation="false"/>-->
    <!--</a-tab-pane>-->
    <!--</a-tabs>-->
    <!-- è¡¨å•区域 -->
    <eamEquipment-modal ref="modalForm" @ok="modalFormOk" :productionTreeData="productionTreeData"
                        :repairDepartTreeData="repairDepartTreeData"/>
@@ -191,31 +163,14 @@
  import EamEquipmentModal from './modules/EamEquipmentModal.vue'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import { getAction, templateXlsDownload } from '@api/manage'
  import { getSystemConfigValue } from '@api/api'
  import ResumeDrawer from '@views/eam/equipment/modules/ResumeDrawer.vue'
  import EamMaintenanceStandardList from '@views/eam/base/EamMaintenanceStandardList.vue'
  import EamRepairOrderList from '../repair/EamRepairOrderList'
  import EamInspectionOrderList from '../maintenance/EamInspectionOrderList'
  import EamEquipmentAttachmentList from '@views/eam/equipment/EamEquipmentAttachmentList.vue'
  import EamEquipmentProcessList from '@views/eam/equipment/modules/EamEquipmentProcessList.vue'
  import EamEquipmentPrecisionList from '@views/eam/equipment/modules/EamEquipmentPrecisionList.vue'
  import EamSecondMaintenanceOrderList from '@views/eam/maintenance/EamSecondMaintenanceOrderList.vue'
  import EamThirdMaintenanceOrderList from '@views/eam/maintenance/EamThirdMaintenanceOrderList.vue'
  export default {
    name: 'EquipmentLedger',
    mixins: [JeecgListMixin],
    components: {
      EamInspectionOrderList,
      EamRepairOrderList,
      EamMaintenanceStandardList,
      ResumeDrawer,
      EamEquipmentModal,
      EamEquipmentAttachmentList,
      EamEquipmentProcessList,
      EamEquipmentPrecisionList,
      EamSecondMaintenanceOrderList,
      EamThirdMaintenanceOrderList
    },
    data() {
      return {
@@ -244,15 +199,18 @@
            align: 'center',
            dataIndex: 'equipmentCode',
            scopedSlots: { customRender: 'equipmentCode' },
            ellipsis: true,
            fixed: 'left',
            sorter: true
            fixed: 'left'
          },
          {
            title: '设备名称',
            align: 'center',
            dataIndex: 'equipmentName',
            ellipsis: true,
            fixed: 'left'
          },
          {
            title: '型号',
            align: 'center',
            dataIndex: 'equipmentModel',
            fixed: 'left'
          },
          {
@@ -384,17 +342,11 @@
            align: 'center',
            dataIndex: 'manufacturingEnterprise',
            scopedSlots: { customRender: 'manufacturingEnterprise' },
            ellipsis: true
          },
          {
            title: '资产来源国家',
            align: 'center',
            dataIndex: 'originCountry'
          },
          {
            title: '型号',
            align: 'center',
            dataIndex: 'equipmentModel'
          },
          {
            title: '设备规格',
src/views/eam/equipment/modules/EamEquipmentModal.vue
@@ -33,6 +33,14 @@
                  </a-form-model-item>
                </a-col>
                <a-col :span="customSpan">
                  <a-form-model-item label="型号">
                    <a-input placeholder="请输入型号" v-model="model.equipmentModel"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item prop="factoryOrgCode" label="使用部门">
                    <a-tree-select v-model="model.factoryOrgCode" style="width: 100%" show-search
                                   :tree-data="productionTreeData" :disabled="!editable"
@@ -42,9 +50,6 @@
                                   searchPlaceholder="请输入关键字搜索" tree-default-expand-all/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item prop="equipmentCategory" label="所属分类">
                    <j-dict-select-tag dict-code="equipment_category" placeholder="请选择所属分类" :disabled="!editable"
@@ -65,14 +70,14 @@
                                   allow-clear tree-default-expand-all/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="安全配置">
                    <a-input placeholder="请输入安全配置" v-model="model.securityConfiguration"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="冷却系统">
                    <j-dict-select-tag dict-code="cooling_system" placeholder="请选择冷却系统" v-model="model.coolSystem"/>
@@ -89,14 +94,15 @@
                             v-model="model.fireExtinguisherExpirationDate" placeholder="请输入灭火器有效期"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="操作系统">
                    <j-dict-select-tag dict-code="yn " type="radio" v-model="model.operationSystem"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="系统">
                    <a-input placeholder="请输入系统" :disabled="!Boolean(+model.operationSystem)" v-model="model.system"/>
@@ -113,14 +119,15 @@
                                    style="width: 100%"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="重量">
                    <a-input-number placeholder="请输入重量" v-model="model.equipmentWeight" :min="0" style="width: 100%"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="重量计量单位">
                    <a-input placeholder="请输入重量计量单位" v-model="model.weightUnit"/>
@@ -136,14 +143,14 @@
                    <a-input placeholder="请输入安装位置" v-model="model.installationPosition"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="出厂日期">
                    <a-date-picker v-model="model.leaveFactoryDate" value-format="YYYY-MM-DD" style="width:100%"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="立项卡号">
                    <a-input placeholder="请输入立项卡号" v-model="model.cardNumber"/>
@@ -159,14 +166,14 @@
                    <a-date-picker v-model="model.acceptanceCheckDate" value-format="YYYY-MM-DD" style="width:100%"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="出厂编号">
                    <a-input placeholder="请输入出厂编号" v-model="model.factoryNumber"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="资产制造商">
                    <a-input placeholder="请输入资产制造商" v-model="model.manufacturingEnterprise"/>
@@ -175,11 +182,6 @@
                <a-col :span="customSpan">
                  <a-form-model-item label="资产来源国家">
                    <a-input placeholder="请输入资产来源国家" v-model="model.originCountry"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="customSpan">
                  <a-form-model-item label="型号">
                    <a-input placeholder="请输入型号" v-model="model.equipmentModel"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="customSpan">
@@ -232,15 +234,21 @@
                  </a-form-model-item>
                </a-col>
                <a-col :span="customSpan">
                  <a-form-model-item label="本次技术鉴定日期">
                    <a-date-picker v-model="model.latestTechnologyCheck" value-format="YYYY-MM-DD"
                                   :disabled="!editable" style="width:100%"/>
                  <a-form-model-item label="技术状态">
                    <j-dict-select-tag placeholder="请选择技术状态" dict-code="equipment_technology_status"
                                       v-model="model.technologyStatus"/>
                  </a-form-model-item>
                </a-col>
              </a-row>
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="本次技术鉴定日期">
                    <a-date-picker v-model="model.latestTechnologyCheck" value-format="YYYY-MM-DD"
                                   :disabled="!editable" style="width:100%"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="customSpan">
                  <a-form-model-item label="下次技术鉴定日期">
                    <a-date-picker v-model="model.nextTechnologyCheck" value-format="YYYY-MM-DD" style="width:100%"/>
                  </a-form-model-item>
src/views/eam/equipment/modules/TechnicalStatusEquipmentSelect.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,155 @@
<template>
  <a-select showSearch labelInValue :disabled="disabled" :getPopupContainer="getParentContainer" @search="loadData"
            :placeholder="placeholder" v-model="selectedAsyncValue" style="width: 100%" :filterOption="false"
            @change="handleAsyncChange" :allowClear="allowClear" :notFoundContent="loading ? undefined : null"
            mode="default">
    <template #suffixIcon>
      <a-icon type="search"/>
    </template>
    <a-spin v-if="loading" slot="notFoundContent" size="small"/>
    <a-select-option v-for="d in options" :key="d.equipmentId" :value="d.equipmentId">{{
      d.equipmentCode+`[${d.equipmentName}]` }}
    </a-select-option>
  </a-select>
</template>
<script>
  import debounce from 'lodash/debounce'
  import { getAction } from '@/api/manage'
  export default {
    name: 'TechnicalStatusEquipmentSelect',
    props: {
      disabled: Boolean,
      value: [String, Number],
      placeholder: {
        type: String,
        default: '请选择',
        required: false
      },
      pageSize: {
        type: Number,
        default: 20,
        required: false
      },
      allowClear: {
        type: Boolean,
        default: () => true,
        required: false
      }
    },
    data() {
      this.loadData = debounce(this.loadData, 800)//消抖
      this.lastLoad = 0
      return {
        loading: false,
        selectedValue: undefined,
        selectedAsyncValue: undefined,
        options: [],
        url: {
          list: '/eam/eamTechnicalStatusEvaluationStandard/selectEnableEquipment'
        }
      }
    },
    watch: {
      'value': {
        immediate: true,
        handler(val) {
          if (!val) {
            this.selectedValue = undefined
            this.selectedAsyncValue = undefined
            this.initDictData()
          } else {
            this.initSelectValue()
          }
        }
      }
    },
    methods: {
      initSelectValue() {
        if (!this.selectedAsyncValue || !this.selectedAsyncValue.key || this.selectedAsyncValue.key != this.value) {
          getAction(this.url.list, { equipmentId: this.value })
            .then(res => {
              if (res.success) {
                if (res.result && res.result.length > 0) {
                  let obj = {
                    key: this.value,
                    label: res.result[0].text
                  }
                  this.selectedAsyncValue = { ...obj }
                  this.$emit('autocompleteForm', res.result[0])
                }
                this.options = res.result
              }
            })
        }
      },
      loadData(value) {
        this.lastLoad += 1
        const currentLoad = this.lastLoad
        this.options = []
        this.loading = true
        // å­—å…¸code格式:table,text,code
        getAction(this.url.list, { keyword: value, pageSize: this.pageSize })
          .then(res => {
            this.loading = false
            if (res.success) {
              if (currentLoad != this.lastLoad) {
                return
              }
              this.options = res.result
            } else {
              this.$message.warning(res.message)
            }
          })
      },
      initDictData() {
        //异步一开始也加载一点数据
        this.loading = true
        getAction(this.url.list, { pageSize: this.pageSize, keyword: '' })
          .then(res => {
            this.loading = false
            if (res.success) {
              this.options = [...res.result]
            } else {
              this.$message.warning(res.message)
            }
          })
      },
      filterOption(input, option) {
        return option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
      },
      handleAsyncChange(selectedObj) {
        if (selectedObj) {
          this.selectedAsyncValue = selectedObj
          this.selectedValue = selectedObj.key
          this.$emit('autocompleteForm', this.options.find(item => item.equipmentId === selectedObj.key))
        } else {
          this.selectedAsyncValue = undefined
          this.selectedValue = null
          this.options = []
          this.loadData('')
          this.$emit('autocompleteForm', {})
        }
        this.callback()
      },
      callback() {
        this.$emit('change', this.selectedValue)
      },
      getParentContainer(node) {
        if (typeof this.getPopupContainer === 'function') {
          return this.getPopupContainer(node)
        } else if (!this.popContainer) {
          return node.parentNode
        } else {
          return document.querySelector(this.popContainer)
        }
      }
    },
    model: {
      prop: 'value',
      event: 'change'
    }
  }
</script>
src/views/eam/maintenance/EamInspectionOrderList.vue
@@ -1,26 +1,17 @@
<template>
  <a-card :bordered="false">
    <!-- æŸ¥è¯¢åŒºåŸŸ -->
    <div
      class="table-page-search-wrapper"
      v-if="isDisplayOperation"
    >
      <a-form
        layout="inline"
        @keyup.enter.native="searchQuery"
      >
    <div class="table-page-search-wrapper" v-if="isDisplayOperation">
      <a-form layout="inline" @keyup.enter.native="searchQuery">
        <a-row :gutter="24">
          <a-col :xl="4" :lg="7" :md="8" :sm="24">
            <a-form-item label="工单号">
              <a-input
                placeholder="请输入工单号"
                v-model="queryParam.orderNum"
              ></a-input>
            </a-form-item>
          </a-col>
          <a-col :xl="5" :lg="7" :md="8" :sm="24">
            <a-form-item label="统一编码">
              <lx-search-equipment-select placeholder="请输入统一编码或名称搜索" v-model="queryParam.equipmentId"/>
            </a-form-item>
          </a-col>
          <a-col :xl="4" :lg="7" :md="8" :sm="24">
            <a-form-item label="工单号">
              <a-input placeholder="请输入工单号" v-model="queryParam.orderNum"/>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
@@ -98,7 +89,7 @@
              </a-menu-item>
              <a-menu-item>
                <a-popconfirm title="确定作废吗?" @confirm="() => handleOrReceive(record.id)">
                <a-popconfirm title="确定作废吗?" @confirm="() => handleAbolish(record.id)">
                  <a>作废</a>
                </a-popconfirm>
              </a-menu-item>
@@ -118,22 +109,19 @@
</template>
<script>
  import '@/assets/less/TableExpand.less'
  import { mixinDevice } from '@/utils/mixin'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import EamInspectionOrderModal from './modules/EamInspectionOrderModal'
  import { deleteAction, getAction } from '@api/manage'
  import InspectionOrderHandle from '../../flowable/workflow/InspectionOrder/InspectionOrderHandle'
  import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue'
  import LxSearchEquipmentSelect from '../equipment/modules/LxSearchEquipmentSelect'
  export default {
    name: 'EamInspectionOrderList',
    mixins: [JeecgListMixin, mixinDevice],
    mixins: [JeecgListMixin],
    components: {
      LxSearchEquipmentSelect,
      InspectionOrderHandle,
      EamInspectionOrderModal,
      LxSearchEquipmentSelect
      EamInspectionOrderModal
    },
    props: {
      isDisplayOperation: {
@@ -143,7 +131,7 @@
    },
    data() {
      return {
        description: 'eam_inspection_order管理页面',
        description: '点检工单页面',
        disableMixinCreated: true,
        // è¡¨å¤´
        columns: [
@@ -219,7 +207,7 @@
            dataIndex: 'operateTime'
          },
          {
            title: '管理员确认',
            title: '维修工',
            align: 'center',
            dataIndex: 'confirmUser_dictText'
          },
@@ -269,8 +257,6 @@
      }
    },
    methods: {
      initDictConfig() {
      },
      //详情
      handleDetail: function(record) {
        this.selectInspectionOrderXqData = Object.assign({}, record)
@@ -280,6 +266,7 @@
        this.$refs.modalFormXq.getAllApproveData(record)
        this.$refs.modalFormXq.getBasicInformation({ ...record, dataId: record.id })
      },
      handleInspection(id) {
        var that = this
        this.loading = true
@@ -292,7 +279,6 @@
              })
              that.loadData()
            } else {
              // that.$message.warning(res.message);
              that.$notification.warning({
                message: '消息',
                description: res.message
@@ -301,11 +287,8 @@
            }
          })
      },
      handleOrReceive(id) {
        if (!this.url.cancelInspectionOrder) {
          this.$message.error('请设置url.cancelInspectionOrder!')
          return
        }
      handleAbolish(id) {
        var that = this
        getAction(that.url.cancelInspectionOrder, { id: id }).then((res) => {
          if (res.success) {
@@ -315,7 +298,6 @@
            })
            that.loadData()
          } else {
            // that.$message.warning(res.message);
            that.$notification.warning({
              message: '消息',
              description: res.message
@@ -324,62 +306,50 @@
        })
      },
      batchZf(type) {
        if (this.selectedRowKeys.length <= 0) {
          this.$notification.warning({
            message: '消息',
            description: '请选择一条记录'
          })
        } 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
              getAction(that.url.cancelOrReceive, { ids: ids, type: type }).then((res) => {
                if (res.success) {
                  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
              })
            }
          })
        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
            getAction(that.url.cancelOrReceive, { ids, type }).then((res) => {
              if (res.success) {
                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
            })
          }
        })
      },
      batchLq(type) {
        if (this.selectedRowKeys.length <= 0) {
          this.$notification.warning({
            message: '消息',
            description: '请选择一条记录'
          })
        } 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
              getAction(that.url.cancelOrReceive, { ids: ids, type: type }).then((res) => {
        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
            getAction(that.url.cancelOrReceive, { ids, type })
              .then((res) => {
                if (res.success) {
                  that.$notification.success({
                    message: '消息',
@@ -393,12 +363,12 @@
                    description: res.message
                  })
                }
              }).finally(() => {
              })
              .finally(() => {
                that.loading = false
              })
            }
          })
        }
          }
        })
      },
      onInspectionDateChange: function(value, dateString) {
        this.queryParam.inspectionDateBegin = dateString[0]
@@ -406,7 +376,4 @@
      }
    }
  }
</script>
<style scoped>
  @import '~@assets/less/common.less';
</style>
</script>
src/views/eam/maintenance/EamSecondMaintenanceOrderList.vue
@@ -1,578 +1,275 @@
<template>
  <a-card :bordered="false">
    <!-- æŸ¥è¯¢åŒºåŸŸ -->
    <div
      class="table-page-search-wrapper"
      v-if="isDisplayOperation"
    >
      <a-form
        layout="inline"
        @keyup.enter.native="searchQuery"
      >
    <div class="table-page-search-wrapper" v-if="isDisplayOperation">
      <a-form layout="inline" @keyup.enter.native="searchQuery">
        <a-row :gutter="24">
          <a-col
            :xl="4"
            :lg="7"
            :md="8"
            :sm="24"
          >
          <a-col :xl="5" :lg="7" :md="8" :sm="24">
            <a-form-item label="统一编码">
              <lx-search-equipment-select placeholder="请输入统一编码或名称搜索" v-model="queryParam.equipmentId"/>
            </a-form-item>
          </a-col>
          <a-col :xl="5" :lg="7" :md="8" :sm="24">
            <a-form-item label="工单号">
              <a-input
                placeholder="请输入工单号"
                v-model="queryParam.orderNum"
              ></a-input>
              <a-input placeholder="请输入工单号" v-model="queryParam.orderNum"/>
            </a-form-item>
          </a-col>
          <a-col
            :xl="4"
            :lg="7"
            :md="8"
            :sm="24"
          >
            <a-form-item label="设备编号">
              <lx-search-equipment-select
                placeholder="请输入设备编号或名称搜索"
                v-model="queryParam.equipmentId"
              ></lx-search-equipment-select>
            </a-form-item>
          </a-col>
          <a-col
            :xl="6"
            :lg="7"
            :md="8"
            :sm="24"
          >
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="计划保养日期">
              <a-range-picker
                v-model="queryParam.maintenanceDateRange"
                @change="onMaintenanceDateChange"
                format="YYYY-MM-DD"
                value-format="YYYY-MM-DD"
              />
              <a-range-picker v-model="queryParam.maintenanceDateRange" @change="onMaintenanceDateChange"
                              value-format="YYYY-MM-DD"/>
            </a-form-item>
          </a-col>
          <a-col
            :xl="4"
            :lg="7"
            :md="8"
            :sm="24"
          >
          <a-col :xl="4" :lg="7" :md="8" :sm="24">
            <a-form-item label="保养状态">
              <j-dict-select-tag
                placeholder="请选择保养状态"
                dict-code="second_maintenance_status"
                v-model="queryParam.maintenanceStatus"
              />
              <j-dict-select-tag placeholder="请选择保养状态" dict-code="second_maintenance_status"
                                 v-model="queryParam.maintenanceStatus"/>
            </a-form-item>
          </a-col>
          <a-col
            :xl="4"
            :lg="7"
            :md="8"
            :sm="24"
          >
            <span
              style="float: left;overflow: hidden;"
              class="table-page-search-submitButtons"
            >
              <a-button
                type="primary"
                @click="searchQuery"
                icon="search"
              >查询</a-button>
              <a-button
                type="info"
                @click="searchReset"
                icon="reload"
                style="margin-left: 8px"
              >重置</a-button>
          <a-col :xl="4" :lg="7" :md="8" :sm="24">
            <span class="table-page-search-submitButtons">
              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
              <a-button type="info" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
            </span>
          </a-col>
        </a-row>
      </a-form>
    </div>
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <div
      class="table-operator"
      v-if="isDisplayOperation"
    >
      <a-button
        @click="handleAdd"
        type="primary"
        icon="plus"
        v-if="isShowAuth('eam:secondMaintenance:add')"
      >新增
      </a-button>
      <a-dropdown v-if="selectedRowKeys.length > 0">
        <a-menu slot="overlay">
          <a-menu-item
            key="1"
            @click="handlerBatchAbolish"
            v-if="isShowAuth('eam:secondMaintenance:abolish')"
          >
            <a-icon type="delete" />
            ä½œåºŸ
          </a-menu-item>
          <a-menu-item
            key="2"
            @click="handlerBatchCollect"
            v-if="isShowAuth('eam:secondMaintenance:collect')"
          >
            <a-icon type="form" />
            é¢†å–
          </a-menu-item>
        </a-menu>
        <a-button style="margin-left: 8px"> æ‰¹é‡æ“ä½œ
          <a-icon type="down" />
        </a-button>
      </a-dropdown>
    <div class="table-operator" v-if="isDisplayOperation">
      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
    </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>
      <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"
        >
      <a-table size="middle" bordered rowKey="id" :columns="columns" :dataSource="dataSource" :pagination="ipagination"
               :loading="loading" :scroll="{ x: 'max-content' }" @change="handleTableChange">
        <span slot="action" slot-scope="text, record">
          <template v-if="record.maintenanceStatus === 'WAIT_MAINTENANCE'">
            <a
              @click="handleEdit(record)"
              v-if="isShowAuth('eam:secondMaintenance:edit')"
            >编辑</a>
            <a @click="handleEdit(record)">编辑</a>
            <a-divider
              type="vertical"
              v-if="isShowAuth('eam:secondMaintenance:edit')"
            />
            <a-divider type="vertical"/>
            <a-popconfirm
              title="确定领取吗?"
              @confirm="() => handlerCollect(record.id)"
              v-if="isShowAuth('eam:secondMaintenance:collect')"
            >
            <a-popconfirm title="确定领取吗?" @confirm="() => handlerCollect(record.id)">
              <a>领取</a>
            </a-popconfirm>
            <a-divider
              type="vertical"
              v-if="isShowAuth('eam:secondMaintenance:collect')"
            />
            <a-divider type="vertical"/>
            <a-dropdown>
              <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
              <a-menu slot="overlay">
                <a-menu-item v-if="isShowAuth('eam:secondMaintenance:abolish')">
                  <a-popconfirm
                    title="确定作废吗?"
                    @confirm="() => handlerAbolish(record.id)"
                  >
                    <a>作废</a>
                  </a-popconfirm>
                </a-menu-item>
                <a-menu-item>
                  <a @click="handleDetail(record)">详情</a>
                </a-menu-item>
              </a-menu>
            </a-dropdown>
            <a @click="handleDetail(record)">详情</a>
          </template>
          <template v-else>
            <a @click="handleDetail(record)">详情</a>
            <a-divider
              type="vertical"
              v-if="record.maintenanceStatus === 'COMPLETE'"
            />
            <a
              v-if="record.maintenanceStatus === 'COMPLETE'"
              @click="handlePrint(record)"
            >打印</a>
            <a-divider type="vertical" v-if="record.maintenanceStatus === 'COMPLETE'"/>
            <a v-if="record.maintenanceStatus === 'COMPLETE'" @click="handlePrint(record)">打印</a>
          </template>
        </span>
      </a-table>
    </div>
    <!-- table区域-end -->
    <!-- è¡¨å•区域 -->
    <eamSecondMaintenanceOrder-modal
      ref="modalForm"
      @ok="modalFormOk"
    ></eamSecondMaintenanceOrder-modal>
    <eamSecondMaintenanceOrder-modal ref="modalForm" @ok="modalFormOk"/>
    <second-maintenance-approval-modal
      ref="secondMaintenanceApprovalModal"
      :selectShenpiData="selectSecondMaintenanceData"
    />
    <second-maintenance-approval-modal ref="secondMaintenanceApprovalModal" :selectShenpiData="selectSecondMaintenanceData"/>
  </a-card>
</template>
<script>
import '@/assets/less/TableExpand.less'
import EamSecondMaintenanceOrderModal from './modules/EamSecondMaintenanceOrderModal'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue'
import { deleteAction, getAction } from '@api/manage'
import SecondMaintenanceApprovalModal from '@views/flowable/workflow/secondMaintenance/SecondMaintenanceApprovalModal.vue'
  import EamSecondMaintenanceOrderModal from './modules/EamSecondMaintenanceOrderModal'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import { deleteAction, getAction } from '@api/manage'
  import SecondMaintenanceApprovalModal from '@views/flowable/workflow/secondMaintenance/SecondMaintenanceApprovalModal.vue'
  import LxSearchEquipmentSelect from '../equipment/modules/LxSearchEquipmentSelect'
export default {
  name: 'EamSecondMaintenanceOrderList',
  mixins: [JeecgListMixin],
  components: {
    LxSearchEquipmentSelect,
    EamSecondMaintenanceOrderModal,
    SecondMaintenanceApprovalModal
  },
  props: {
    isDisplayOperation: {
      type: Boolean,
      default: true
    }
  },
  data() {
    return {
      description: '设备二级保养管理页面',
      disableMixinCreated: true,
      selectSecondMaintenanceData: {},
      // è¡¨å¤´
      columns: [
        {
          title: '#',
          dataIndex: '',
          key: 'rowIndex',
          width: 60,
          align: 'center',
          fixed: 'left',
          customRender: function (t, r, index) {
            return parseInt(index) + 1
  export default {
    name: 'EamSecondMaintenanceOrderList',
    mixins: [JeecgListMixin],
    components: {
      LxSearchEquipmentSelect,
      EamSecondMaintenanceOrderModal,
      SecondMaintenanceApprovalModal
    },
    props: {
      isDisplayOperation: {
        type: Boolean,
        default: true
      }
    },
    data() {
      return {
        description: '设备二级保养管理页面',
        disableMixinCreated: true,
        selectSecondMaintenanceData: {},
        // è¡¨å¤´
        columns: [
          {
            title: '#',
            dataIndex: '',
            key: 'rowIndex',
            width: 60,
            align: 'center',
            customRender: function(t, r, index) {
              return parseInt(index) + 1
            }
          },
          {
            title: '统一编码',
            align: 'center',
            dataIndex: 'equipmentCode'
          },
          {
            title: '设备名称',
            align: 'center',
            dataIndex: 'equipmentName'
          },
          {
            title: '设备型号',
            align: 'center',
            dataIndex: 'equipmentModel'
          },
          {
            title: '工单号',
            align: 'center',
            dataIndex: 'orderNum'
          },
          {
            title: '规范名称',
            align: 'center',
            dataIndex: 'standardId_dictText'
          },
          {
            title: '计划保养日期',
            align: 'center',
            dataIndex: 'maintenanceDate'
          },
          {
            title: '实际开始时间',
            align: 'center',
            dataIndex: 'actualStartTime'
          },
          {
            title: '实际结束时间',
            align: 'center',
            dataIndex: 'actualEndTime'
          },
          {
            title: '操作工',
            align: 'center',
            dataIndex: 'operator_dictText'
          },
          {
            title: '维修工',
            align: 'center',
            dataIndex: 'repairer_dictText'
          },
          {
            title: '保养状态',
            align: 'center',
            dataIndex: 'maintenanceStatus_dictText'
          },
          {
            title: '创建方式',
            align: 'center',
            dataIndex: 'creationMethod_dictText'
          },
          {
            title: '管理员确认',
            align: 'center',
            dataIndex: 'confirmUser_dictText'
          },
          {
            title: '管理员确认时间',
            align: 'center',
            dataIndex: 'confirmTime'
          },
          {
            title: '检查人确认',
            align: 'center',
            dataIndex: 'inspector_dictText'
          },
          {
            title: '检查人确认时间',
            align: 'center',
            dataIndex: 'inspectConfirmTime'
          },
          {
            title: 'HF编码',
            align: 'center',
            dataIndex: 'hfCode'
          }
        },
        {
          title: '工单号',
          align: 'center',
          dataIndex: 'orderNum',
          fixed: 'left',
          width: 60
        },
        {
          title: '设备编号',
          align: 'center',
          dataIndex: 'equipmentCode',
          fixed: 'left',
          width: 60
        },
        {
          title: '设备名称',
          align: 'center',
          dataIndex: 'equipmentName',
          fixed: 'left',
          width: 60
        },
        {
          title: '标准名称',
          align: 'center',
          dataIndex: 'standardId_dictText'
        },
        {
          title: '计划保养日期',
          align: 'center',
          dataIndex: 'maintenanceDate'
        },
        {
          title: '实际开始时间',
          align: 'center',
          dataIndex: 'actualStartTime'
        },
        {
          title: '实际结束时间',
          align: 'center',
          dataIndex: 'actualEndTime'
        },
        {
          title: '保养人',
          align: 'center',
          dataIndex: 'operator_dictText'
        },
        {
          title: '保养状态',
          align: 'center',
          dataIndex: 'maintenanceStatus_dictText'
        },
        {
          title: '创建方式',
          align: 'center',
          dataIndex: 'creationMethod_dictText'
        },
        {
          title: '确认管理员',
          align: 'center',
          dataIndex: 'confirmUser_dictText',
          width: 60
        },
        {
          title: '管理员确认时间',
          align: 'center',
          dataIndex: 'confirmTime',
          width: 60
        },
        {
          title: '管理员意见',
          align: 'center',
          dataIndex: 'confirmComment',
          width: 60
        },
        {
          title: '确认领导',
          align: 'center',
          dataIndex: 'confirmLeader_dictText',
          width: 60
        },
        {
          title: '领导确认时间',
          align: 'center',
          dataIndex: 'leaderConfirmTime',
          width: 60
        },
        {
          title: '领导意见',
          align: 'center',
          dataIndex: 'leaderConfirmComment',
          width: 60
        },
        {
          title: '备注',
          align: 'center',
          dataIndex: 'remark'
        ],
        url: {
          list: '/eam/secondMaintenanceOrder/list',
          abolish: '/eam/secondMaintenanceOrder/abolish',
          collect: '/eam/secondMaintenanceOrder/collect'
        }
      ],
      url: {
        list: '/eam/secondMaintenanceOrder/list',
        abolish: '/eam/secondMaintenanceOrder/abolish',
        abolishBatch: '/eam/secondMaintenanceOrder/abolishBatch',
        collect: '/eam/secondMaintenanceOrder/collect',
        collectBatch: '/eam/secondMaintenanceOrder/collectBatch'
      }
    }
  },
  created() {
    if (!this.isDisplayOperation) {
      return
    }
    const operationColumn = {
      title: '操作',
      dataIndex: 'action',
      align: 'center',
      fixed: 'right',
      width: 200,
      scopedSlots: { customRender: 'action' }
    }
    this.columns = [...this.columns, operationColumn]
    this.loadData(1)
  },
  computed: {},
  methods: {
    onMaintenanceDateChange: function (value, dateString) {
      if (dateString && dateString.length === 2) {
        this.queryParam.maintenanceDateBegin = dateString[0]
        this.queryParam.maintenanceDateEnd = dateString[1]
      } else {
        this.queryParam.maintenanceDateBegin = undefined
        this.queryParam.maintenanceDateEnd = undefined
      }
    },
    handlerAbolish(id) {
      if (!this.url.abolish) {
        this.$message.error('请设置url.abolish属性!')
    created() {
      if (!this.isDisplayOperation) {
        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
      const operationColumn = {
        title: '操作',
        dataIndex: 'action',
        align: 'center',
        fixed: 'right',
        width: 200,
        scopedSlots: { customRender: 'action' }
      }
      this.columns = [...this.columns, operationColumn]
      this.loadData(1)
    },
    methods: {
      onMaintenanceDateChange: function(dataArray) {
        this.queryParam.maintenanceDateBegin = dataArray[0]
        this.queryParam.maintenanceDateEnd = dataArray[1]
      },
      /**
       * ç‚¹å‡»é¢†å–时触发
       * @param id è¡Œè®°å½•id
       */
      handlerCollect(id) {
        let that = this
        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
              })
            }
          })
          that.loadData()
        } else {
          // that.$message.warning(res.message);
          that.$notification.warning({
            message: '消息',
            description: res.message
          })
        }
      })
    },
    handlerBatchAbolish() {
      if (!this.url.abolishBatch) {
        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.abolishBatch, { 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
            })
          }
        })
      }
    },
    //单个领取
    handlerCollect(id) {
      if (!this.url.collect) {
        this.$message.error('请设置url.collect属性!')
        return
      }
      let that = this
      getAction(that.url.collect, { 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
          })
        }
      })
    },
    //批量领取
    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
            })
          }
        })
      }
    },
    handleDetail(record) {
      this.selectSecondMaintenanceData = Object.assign({}, record)
      this.$refs.secondMaintenanceApprovalModal.recordDetail(record)
      this.$refs.secondMaintenanceApprovalModal.title = '详情'
      this.$refs.secondMaintenanceApprovalModal.disableSubmit = true
    },
      },
    handlePrint(record) {
      // let href = `${window._CONFIG['domianURL']}/jmreport/view/1094871242505912320`; //网站链接
      let href = `${window._CONFIG['domianURL']}/jmreport/view/1094834721929232384?id=` + record.id; //网站链接
      window.open(href, "_blank");
    },
      /**
       * ç‚¹å‡»è¯¦æƒ…时触发
       * @param record åˆ—表行记录
       */
      handleDetail(record) {
        this.selectSecondMaintenanceData = Object.assign({}, record)
        this.$refs.secondMaintenanceApprovalModal.recordDetail(record)
        this.$refs.secondMaintenanceApprovalModal.title = '详情'
        this.$refs.secondMaintenanceApprovalModal.disableSubmit = true
      },
      /**
       * ç‚¹å‡»æ‰“印时触发
       * @param record åˆ—表行记录
       */
      handlePrint(record) {
        let href = `${window._CONFIG['domianURL']}/jmreport/view/1094834721929232384?id=` + record.id //网站链接
        window.open(href, '_blank')
      }
    }
  }
}
</script>
<style scoped>
@import '~@assets/less/common.less';
</style>
</script>
src/views/eam/maintenance/EamThirdMaintenanceOrderList.vue
@@ -103,7 +103,6 @@
        @click="handleAdd"
        type="primary"
        icon="plus"
        v-if="isShowAuth('eam:secondMaintenance:add')"
      >新增
      </a-button>
      <a-dropdown v-if="selectedRowKeys.length > 0">
@@ -111,7 +110,6 @@
          <a-menu-item
            key="1"
            @click="handlerBatchAbolish"
            v-if="isShowAuth('eam:secondMaintenance:abolish')"
          >
            <a-icon type="delete" />
            ä½œåºŸ
@@ -119,7 +117,6 @@
          <a-menu-item
            key="2"
            @click="handlerBatchCollect"
            v-if="isShowAuth('eam:secondMaintenance:collect')"
          >
            <a-icon type="form" />
            é¢†å–
@@ -167,31 +164,27 @@
          <template v-if="record.maintenanceStatus === 'WAIT_MAINTENANCE'">
            <a
              @click="handleEdit(record)"
              v-if="isShowAuth('eam:thirdMaintenance:edit')"
            >编辑</a>
            <a-divider
              type="vertical"
              v-if="isShowAuth('eam:thirdMaintenance:edit')"
            />
            <a-popconfirm
              title="确定领取吗?"
              @confirm="() => handlerCollect(record.id)"
              v-if="isShowAuth('eam:thirdMaintenance:collect')"
            >
              <a>领取</a>
            </a-popconfirm>
            <a-divider
              type="vertical"
              v-if="isShowAuth('eam:thirdMaintenance:collect')"
            />
            <a-dropdown>
              <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
              <a-menu slot="overlay">
                <a-menu-item v-if="isShowAuth('eam:thirdMaintenance:abolish')">
                <a-menu-item>
                  <a-popconfirm
                    title="确定作废吗?"
                    @confirm="() => handlerAbolish(record.id)"
src/views/eam/maintenance/modules/EamInspectionOrderModal.vue
@@ -33,7 +33,7 @@
          </a-col>
          <a-col :span="8">
            <a-form-model-item label="保养周期">
              <a-input placeholder="选择设备后自动带出" v-model="model.maintenancePeriod" disabled/>
              <a-input v-model="model.maintenancePeriod" disabled/>
            </a-form-model-item>
          </a-col>
          <a-col :span="8">
@@ -130,19 +130,19 @@
              key: 'itemCode',
              type: JVXETypes.normal,
              width: 100,
              align: 'center',
              align: 'center'
            },
            {
              title: '保养项',
              key: 'itemName',
              type: JVXETypes.normal,
              align: 'center',
              align: 'center'
            },
            {
              title: '保养规范或要求',
              key: 'itemDemand',
              type: JVXETypes.normal,
              align: 'center',
              align: 'center'
            }
          ],
          weekInspectionColumns: [],
@@ -152,19 +152,19 @@
              key: 'itemCode',
              type: JVXETypes.normal,
              width: 60,
              align: 'center',
              align: 'center'
            },
            {
              title: '保养项',
              key: 'itemName',
              type: JVXETypes.normal,
              align: 'center',
              align: 'center'
            },
            {
              title: '保养要求',
              key: 'itemDemand',
              type: JVXETypes.normal,
              align: 'center',
              align: 'center'
            },
            {
              title: '点检结果',
@@ -178,7 +178,7 @@
              title: '异常描述',
              key: 'exceptionDescription',
              type: JVXETypes.normal,
              align: 'center',
              align: 'center'
            },
            {
              title: '异常是否报修',
@@ -194,7 +194,7 @@
    },
    methods: {
      add() {
        this.model = {}
        this.model = { maintenancePeriod: 1 }
        this.visible = true
        this.editable = true
        this.detail.dayInspectionList = []
@@ -202,7 +202,7 @@
      },
      edit(record) {
        this.model = Object.assign({}, record)
        this.model = Object.assign({ maintenancePeriod: 1 }, record)
        this.editable = false
        this.visible = true
        this.spinning = true
@@ -249,7 +249,6 @@
      autocompleteForm(selectObj) {
        this.model.standardName = selectObj.standardName
        this.model.maintenancePeriod = selectObj.maintenancePeriod
        this.model.standardCode = selectObj.standardCode
        this.standardId = selectObj.id
        this.detail.dayInspectionList = []
src/views/eam/maintenance/modules/EamSecondMaintenanceOrderModal.vue
@@ -1,105 +1,82 @@
<template>
  <j-modal
    :title="title"
    :width="1200"
    :visible="visible"
    :confirmLoading="confirmLoading"
    switchFullscreen
    :mask-closable="false"
    @ok="handleOk"
    @cancel="handleCancel"
    cancelText="关闭">
  <j-modal :title="title" :width="1200" :visible="visible" :confirmLoading="confirmLoading" switchFullscreen
           :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">
        <a-row :gutter="24">
        <a-row>
          <a-col :span="8">
            <a-form-model-item prop="orderNum" label="工单号">
              <a-input placeholder="工单号系统自动生成" v-model="model.orderNum" disabled/>
            </a-form-model-item>
          </a-col>
          <a-col :span="8">
            <a-form-model-item prop="equipmentId" label="设备编码">
              <maintenance-equipment-select placeholder="请输入设备编号或名称搜索" v-model="model.equipmentId"
                                            :maintenanceCategory="maintenanceCategory"
                                            @autocompleteForm="autocompleteForm"
                                            :disabled="editable"></maintenance-equipment-select>
            <a-form-model-item prop="equipmentId" label="统一编码">
              <maintenance-equipment-select placeholder="请输入统一编码或名称搜索" v-model="model.equipmentId"
                                            maintenanceCategory="SECOND_MAINTENANCE" :allowClear="false"
                                            @autocompleteForm="autocompleteForm" :disabled="!editable"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="8">
            <a-form-model-item prop="standardName" label="标准名称">
            <a-form-model-item prop="standardName" label="规范名称">
              <a-input placeholder="选择设备后自动带出" v-model="model.standardName" disabled/>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
        <a-row>
          <a-col :span="8">
            <a-form-model-item prop="maintenanceDate" label="保养日期">
              <a-date-picker placeholder="请选择计划保养日期" v-model="model.maintenanceDate" format="YYYY-MM-DD"
              <a-date-picker v-model="model.maintenanceDate" value-format="YYYY-MM-DD" :allowClear="false"
                             style="width: 100%"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="8">
            <a-form-model-item prop="operator" label="保养人">
              <j-search-select-tag v-model="model.operator" placeholder="请选择保养人" :disabled="!model.equipmentId"
                                   :dictOptions="maintenanceOperatorOptions"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="8">
            <a-form-model-item prop="maintenancePeriod" label="保养周期">
              <a-input placeholder="选择设备后自动带出" v-model="model.maintenancePeriod" disabled/>
            <a-form-model-item label="保养周期">
              <a-input v-model="model.maintenancePeriod" disabled/>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
        <a-row>
          <a-form-model-item :labelCol="labelColLong" :wrapperCol="wrapperColLong" prop="remark" label="备注">
            <a-textarea placeholder="请输入备注" v-model="model.remark"/>
          </a-form-model-item>
        </a-row>
        <a-row :gutter="24">
          <a-spin :spinning="detail.loading">
            <j-vxe-table
              ref="editableDetailTable"
              :rowNumber="true"
              :rowSelection="true"
              :bordered="true"
              :alwaysEdit="true"
              :toolbar="true"
              :toolbarConfig="detail.toolbarConfig"
              keep-source
              :height="300"
              :dataSource="detail.dataSource"
              :columns="detail.columns"
              style="margin-top: 8px;"/>
          </a-spin>
        </a-row>
        <a-tabs default-active-key="1">
          <a-tab-pane tab="操作工" key="1">
            <j-vxe-table rowNumber bordered keep-source :height="300" :dataSource="detail.operatorMaintenanceList"
                         :columns="detail.columns"/>
          </a-tab-pane>
          <a-tab-pane tab="维修工" key="2" forceRender>
            <j-vxe-table rowNumber bordered keep-source :height="300" :dataSource="detail.repairerMaintenanceList"
                         :columns="detail.columns"/>
          </a-tab-pane>
        </a-tabs>
      </a-form-model>
    </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'
  import { getAction, httpAction } from '@/api/manage'
  import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect.vue'
  import { JVXETypes } from '@comp/jeecg/JVxeTable'
export default {
    name: "EamSecondMaintenanceOrderModal",
  export default {
    name: 'EamSecondMaintenanceOrderModal',
    components: { MaintenanceEquipmentSelect },
    data () {
    data() {
      return {
        title:"操作",
        title: '操作',
        visible: false,
        editable: false,
        editable: true,
        model: {},
        maintenanceCategory: 'SECOND_MAINTENANCE',
        labelCol: {
          xs: { span: 24 },
          sm: { span: 6 }
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 }
          sm: { span: 15 }
        },
        labelColLong: {
          xs: { span: 24 },
@@ -111,24 +88,23 @@
        },
        confirmLoading: false,
        spinning: false,
        validatorRules:{
        validatorRules: {
          equipmentId: [
            { required: true, message: '请选择设备!' }
            { required: true, message: '请输入设备编号或名称搜索', trigger: 'change' }
          ],
          maintenanceDate: [
            { required: true, message: '请选择计划保养日期!' }
            { required: true, message: '请选择计划保养日期', trigger: 'change' }
          ]
        },
        url: {
          add: "/eam/secondMaintenanceOrder/add",
          edit: "/eam/secondMaintenanceOrder/edit",
          add: '/eam/secondMaintenanceOrder/add',
          edit: '/eam/secondMaintenanceOrder/edit',
          standardDetail: '/eam/eamMaintenanceStandardDetail/queryList',
          detail: '/eam/secondMaintenanceOrderDetail/queryList',
          userSelect: '/eam/user_select/list'
          detail: '/eam/secondMaintenanceOrderDetail/queryList'
        },
        detail: {
          loading: false,
          dataSource: [],
          operatorMaintenanceList: [],
          repairerMaintenanceList: [],
          columns: [
            {
              title: 'ID',
@@ -143,199 +119,130 @@
            {
              title: '序号',
              key: 'itemCode',
              type: JVXETypes.inputNumber,
              width: '10%',
              align: 'center',
              validateRules: [
                { required: true, unique: true, message: '序号不能重复' }
              ]
            },
            {
              title: '部位',
              key: 'itemPart',
              type: JVXETypes.textarea,
              width: '25%',
              type: JVXETypes.normal,
              width: 60,
              align: 'center'
            },
            {
              title: '保养项',
              key: 'itemName',
              type: JVXETypes.textarea,
              width: '20%',
              align: 'center',
              validateRules: [
                { required: true, message: '保养项不能为空!' }
              ]
            },
            {
              title: '保养要求',
              key: 'itemDemand',
              type: JVXETypes.textarea,
              width: '30%',
              align: 'center',
              validateRules: [
                { required: true, message: '保养要求不能为空!' }
              ]
              type: JVXETypes.normal,
              align: 'center'
            }
          ],
          toolbarConfig: {
            // prefix å‰ç¼€ï¼›suffix åŽç¼€
            slot: ['prefix', 'suffix'],
            // add æ–°å¢žæŒ‰é’®ï¼›remove åˆ é™¤æŒ‰é’®ï¼›clearSelection æ¸…空选择按钮
            btn: ['add', 'remove', 'clearSelection']
          }
          ]
        }
      }
    },
    created () {
    },
    methods: {
      add() {
        //初始化默认值
        this.model = {}
        this.visible = true
        this.editable = false
        this.detail.dataSource = []
      },
      edit(record) {
        this.model = Object.assign({}, record)
        this.model = { maintenancePeriod: 6 }
        this.visible = true
        this.editable = true
        this.detail.dataSource = []
        this.detail.operatorMaintenanceList = this.detail.repairerMaintenanceList = []
      },
      edit(record) {
        this.model = Object.assign({ maintenancePeriod: 6 }, record)
        this.visible = true
        this.editable = false
        this.detail.operatorMaintenanceList = this.detail.repairerMaintenanceList = []
        this.loadDetail(record.id)
      },
      close() {
        this.$emit('close')
        this.visible = false
        this.$refs.form.clearValidate()
      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)
      },
      /**
       * èŽ·å–ä¿å…»è§„èŒƒæ•°æ®
       * @param standardId è§„范Id
       */
      loadStandardDetail(standardId) {
        this.spinning = true
        getAction(this.url.standardDetail, { standardId })
          .then(res => {
            if (res.success) {
              this.detail.operatorMaintenanceList = res.result.filter(item => item.itemCategory == 'OPERATOR_MAINTENANCE')
              this.detail.repairerMaintenanceList = res.result.filter(item => item.itemCategory == 'REPAIRER_MAINTENANCE')
            }
          })
          .finally(() => {
            this.spinning = false
          })
      },
      /**
       * èŽ·å–äºŒä¿å·¥å•æ˜Žç»†
       * @param orderId å·¥å•Id
       */
      loadDetail(orderId) {
        this.spinning = true
        getAction(this.url.detail, { orderId })
          .then(res => {
            if (res.success) {
              this.detail.operatorMaintenanceList = res.result.filter(item => item.itemCategory == 'OPERATOR_MAINTENANCE')
              this.detail.repairerMaintenanceList = res.result.filter(item => item.itemCategory == 'REPAIRER_MAINTENANCE')
            }
          })
          .finally(() => {
            this.spinning = false
          })
      },
      async handleOk() {
        const that = this
        let errMap = await that.$refs.editableDetailTable.validateTable()
        if (errMap) {
          this.$message.warning('数据校验失败!')
          return
        }
        // è§¦å‘表单验证
        this.$refs.form.validate(valid => {
          if (valid) {
            let tableData = that.$refs.editableDetailTable.getTableData()
            let removeData = that.$refs.editableDetailTable.getDeleteData()
            that.model.tableDetailList = [...tableData]
            that.model.removeDetailList = [...removeData]
            that.confirmLoading = true
            let httpurl = ''
            that.confirmLoading = that.spinning = true
            let httpUrl = ''
            let method = ''
            if (!this.model.id) {
              httpurl += this.url.add
              httpUrl += this.url.add
              method = 'post'
            } else {
              httpurl += this.url.edit
              httpUrl += this.url.edit
              method = 'put'
            }
            httpAction(httpurl, this.model, method).then((res) => {
              if (res.success) {
                that.$message.success(res.message)
                that.$emit('ok')
                that.close()
              } else {
                that.$message.warning(res.message)
              }
            }).finally(() => {
              that.confirmLoading = false
            })
            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()
      },
      autocompleteForm(selectObj) {
        //标准名称,保养周期不刷新解决办法
        //办法一  validatorRules equipmentId è¿˜æ˜¯æœ‰é—®é¢˜
        // const newObj = {
        //   standardName: selectObj.standardName,
        //   maintenancePeriod: selectObj.maintenancePeriod,
        //   standardId : selectObj.id,
        //   equipmentId: selectObj.equipmentId,
        // };
        // this.model = Object.assign({}, newObj, this.model)
        //办法二
        this.$set(this.model, 'standardName', selectObj.standardName)
        this.$set(this.model, 'maintenancePeriod', selectObj.maintenancePeriod)
        this.$set(this.model, 'standardId', selectObj.id)
        this.$set(this.model, 'equipmentId', selectObj.equipmentId)
        // console.log('model', this.model)
        if (!this.model.equipmentId) delete this.model.operator
        if (!this.model.id) {
          this.loadStandardDetail(selectObj.id)
        }
        this.loadMaintenanceOperatorList(this.model.equipmentId)
      },
      //加载详情数据
      loadStandardDetail(standardId) {
        this.detail.dataSource = []
        if (standardId) {
          this.spinning = true
          getAction(this.url.standardDetail, { standardId: standardId })
            .then(res => {
              if (res.success) {
                this.detail.dataSource = res.result.map(item => ({
                  itemCode: item.itemCode,
                  itemName: item.itemName,
                  itemPart: item.itemPart,
                  itemDemand: item.itemDemand
                }))
              }
            })
            .finally(() => {
              this.spinning = false
            })
        }
      },
      //标准选择变化
      loadDetail(orderId) {
        if (orderId) {
          getAction(this.url.detail, { orderId: orderId }).then(res => {
            if (res.success) {
              this.detail.dataSource = [...res.result]
            }
          })
        }
      },
      loadMaintenanceOperatorList(equipmentId) {
        this.maintenanceOperatorOptions = []
        let params = { positionCode: 'PCR0001' }
        if (equipmentId) {
          params.equipmentId = equipmentId
        }
        else return
        const that = this
        getAction(this.url.userSelect, params)
          .then(res => {
            if (res.success) {
              that.maintenanceOperatorOptions = res.result.map(item => ({
                key: item.id,
                value: item.username,
                text: item.realname
              }))
              if (!that.maintenanceOperatorOptions.find(item => item.value === that.model.operator)) delete that.model.operator
            } else {
              if (that.model.operator) delete that.model.operator
            }
          })
          .catch(err => {
            if (that.model.operator) delete that.model.operator
          })
      close() {
        this.$emit('close')
        this.visible = false
        this.$refs.form.clearValidate()
      }
    }
  }
</script>
<style lang="less" scoped>
</style>
src/views/eam/technical/EamTechnicalStatusEvaluationOrderList.vue
@@ -1,49 +1,30 @@
<template>
  <a-card :bordered="false">
    <!-- æŸ¥è¯¢åŒºåŸŸ -->
    <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.delFlag"></a-input>
          <a-col :xl="5" :lg="6" :md="8" :sm="12">
            <a-form-item label="统一编码">
              <technical-status-equipment-select placeholder="请输入统一编码或名称搜索" v-model="queryParam.equipmentId"/>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
          <a-col :xl="5" :lg="6" :md="8" :sm="12">
            <a-form-item label="工单号">
              <a-input placeholder="请输入工单号" v-model="queryParam.orderNum"></a-input>
              <a-input placeholder="请输入工单号" v-model="queryParam.orderNum"/>
            </a-form-item>
          </a-col>
        <template v-if="toggleSearchStatus">
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="设备ID">
              <a-input placeholder="请输入设备ID" v-model="queryParam.equipmentId"></a-input>
          <a-col :xl="5" :lg="6" :md="8" :sm="12">
            <a-form-item label="计划鉴定日期">
              <a-date-picker v-model="queryParam.evaluationDate" style="width: 100%"/>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="规范ID">
              <a-input placeholder="请输入规范ID" v-model="queryParam.standardId"></a-input>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="计划鉴定日期;提前70天生成工单">
              <a-input placeholder="请输入计划鉴定日期;提前70天生成工单" v-model="queryParam.evaluationDate"></a-input>
            </a-form-item>
          </a-col>
          </template>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
          <a-col :xl="4" :lg="6" :md="8" :sm="12">
            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
              <a-button type="info" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
              <a @click="handleToggleSearch" style="margin-left: 8px">
                {{ toggleSearchStatus ? '收起' : '展开' }}
                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
              </a>
            </span>
          </a-col>
        </a-row>
      </a-form>
    </div>
@@ -51,75 +32,40 @@
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <div class="table-operator">
      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
      <a-button type="primary" icon="download" @click="handleExportXls('技术状态鉴定工单')">导出</a-button>
      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
        <a-button type="primary" icon="import">导入</a-button>
      </a-upload>
      <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>
    </div>
    <!-- table区域-begin -->
    <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"
        bordered
        rowKey="id"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        class="j-table-force-nowrap"
        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
        @change="handleTableChange">
    <a-table bordered rowKey="id" :columns="columns" :dataSource="dataSource" :pagination="ipagination"
             :scroll="{ x: 'max-content' }" :loading="loading" @change="handleTableChange">
        <span slot="action" slot-scope="text, record">
          <a @click="handleEdit(record)">编辑</a>
          <a-divider type="vertical" />
          <a-dropdown>
            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
            <a-menu slot="overlay">
              <a-menu-item>
                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
                  <a>删除</a>
                </a-popconfirm>
              </a-menu-item>
            </a-menu>
          </a-dropdown>
          <a-popconfirm v-if="record.evaluationStatus=='WAIT_EVALUATION'" title="确定领取吗?"
                        @confirm="handleReceive(record.id)">
            <a>领取</a>
          </a-popconfirm>
        </span>
      </a-table>
    </div>
    </a-table>
    <!-- table区域-end -->
    <!-- è¡¨å•区域 -->
    <eamTechnicalStatusEvaluationOrder-modal ref="modalForm" @ok="modalFormOk"></eamTechnicalStatusEvaluationOrder-modal>
    <eamTechnicalStatusEvaluationOrder-modal ref="modalForm" @ok="modalFormOk"/>
  </a-card>
</template>
<script>
  import '@/assets/less/TableExpand.less'
  import EamTechnicalStatusEvaluationOrderModal from './modules/EamTechnicalStatusEvaluationOrderModal'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import TechnicalStatusEquipmentSelect from '../equipment/modules/TechnicalStatusEquipmentSelect'
  import { getAction } from '@/api/manage'
  export default {
    name: "EamTechnicalStatusEvaluationOrderList",
    mixins:[JeecgListMixin],
    name: 'EamTechnicalStatusEvaluationOrderList',
    mixins: [JeecgListMixin],
    components: {
      TechnicalStatusEquipmentSelect,
      EamTechnicalStatusEvaluationOrderModal
    },
    data () {
    data() {
      return {
        description: '技术状态鉴定工单管理页面',
        // è¡¨å¤´
@@ -127,189 +73,204 @@
          {
            title: '#',
            dataIndex: '',
            key:'rowIndex',
            width:60,
            align:"center",
            customRender:function (t,r,index) {
              return parseInt(index)+1;
            }
           },
           {
            title: '删除标记',
            align:"center",
            dataIndex: 'delFlag'
           },
           {
            key: 'rowIndex',
            width: 60,
            align: 'center',
            customRender: function(t, r, index) {
              return parseInt(index) + 1
            },
            fixed: 'left'
          },
          {
            title: '统一编码',
            align: 'center',
            dataIndex: 'equipmentCode',
            fixed: 'left'
          },
          {
            title: '设备名称',
            align: 'center',
            dataIndex: 'equipmentName',
            fixed: 'left'
          },
          {
            title: '设备型号',
            align: 'center',
            dataIndex: 'equipmentModel',
            fixed: 'left'
          },
          {
            title: '工单号',
            align:"center",
            dataIndex: 'orderNum'
           },
           {
            title: '设备ID',
            align:"center",
            dataIndex: 'equipmentId'
           },
           {
            title: '规范ID',
            align:"center",
            dataIndex: 'standardId'
           },
           {
            title: '计划鉴定日期;提前70天生成工单',
            align:"center",
            dataIndex: 'evaluationDate'
           },
           {
            title: '锁定工单日期;提前55天锁定工单',
            align:"center",
            align: 'center',
            dataIndex: 'orderNum',
            fixed: 'left'
          },
          {
            title: '计划鉴定日期',
            align: 'center',
            dataIndex: 'evaluationDate',
            fixed: 'left'
          },
          {
            title: '锁定工单日期',
            align: 'center',
            dataIndex: 'freezeOrderDate'
           },
           {
            title: '工单过期日期;到期未做直接过期,并修改设备技术状态为禁用',
            align:"center",
          },
          {
            title: '工单过期日期',
            align: 'center',
            dataIndex: 'orderExpirationDate'
           },
           {
          },
          {
            title: '实际开始时间',
            align:"center",
            align: 'center',
            dataIndex: 'actualStartTime'
           },
           {
          },
          {
            title: '实际结束时间',
            align:"center",
            align: 'center',
            dataIndex: 'actualEndTime'
           },
           {
          },
          {
            title: '鉴定人',
            align:"center",
            align: 'center',
            dataIndex: 'evaluator'
           },
           {
            title: '鉴定状态;待鉴定、鉴定中、维修室主任签字、工艺人员签字、技术主管签字、设备检验员签字、已完成、已锁定、变更中、已过期',
            align:"center",
            dataIndex: 'evaluationStatus'
           },
           {
          },
          {
            title: '鉴定状态',
            align: 'center',
            dataIndex: 'evaluationStatus_dictText'
          },
          {
            title: '创建方式',
            align:"center",
            dataIndex: 'creationMethod'
           },
           {
            title: '安全装置检查结果;是、否',
            align:"center",
            align: 'center',
            dataIndex: 'creationMethod_dictText'
          },
          {
            title: '安全装置检查结果',
            align: 'center',
            dataIndex: 'safetyEquipmentCheckResult'
           },
           {
            title: '精度参数检查结果;是、否、无',
            align:"center",
          },
          {
            title: '精度参数检查结果',
            align: 'center',
            dataIndex: 'precisionCheckResult'
           },
           {
            title: '功能状态检查结果;是、否',
            align:"center",
          },
          {
            title: '功能状态检查结果',
            align: 'center',
            dataIndex: 'functionalCheckResult'
           },
           {
            title: '其他检查结果;是、否、无',
            align:"center",
          },
          {
            title: '其他检查结果',
            align: 'center',
            dataIndex: 'otherCheckResult'
           },
           {
          },
          {
            title: '维修室主任签字',
            align:"center",
            align: 'center',
            dataIndex: 'repairManagerSignature'
           },
           {
          },
          {
            title: '维修室主任签字时间',
            align:"center",
            align: 'center',
            dataIndex: 'repairManagerSignatureTime1'
           },
           {
            title: '试件检查结果;合格、不合格',
            align:"center",
          },
          {
            title: '试件检查结果',
            align: 'center',
            dataIndex: 'sampleCheckResult'
           },
           {
          },
          {
            title: '工艺员签字',
            align:"center",
            align: 'center',
            dataIndex: 'processTechnicianSignature'
           },
           {
          },
          {
            title: '工艺员签字时间',
            align:"center",
            align: 'center',
            dataIndex: 'processTechnicianSignatureTime'
           },
           {
            title: '鉴定结果;合格、限用、禁用',
            align:"center",
          },
          {
            title: '鉴定结果',
            align: 'center',
            dataIndex: 'evaluationResult'
           },
           {
            title: '限\禁用原因(多选);安全装置、设备功能、精度、试件、其他',
            align:"center",
          },
          {
            title: '限/禁用原因',
            align: 'center',
            dataIndex: 'evaluationReason'
           },
           {
          },
          {
            title: '设备检查人签字',
            align:"center",
            align: 'center',
            dataIndex: 'inspectorSignature'
           },
           {
          },
          {
            title: '设备检查人签字时间',
            align:"center",
            align: 'center',
            dataIndex: 'inspectorSignatureTime'
           },
           {
          },
          {
            title: '附录A HF编码',
            align:"center",
            align: 'center',
            dataIndex: 'hfCodeA'
           },
           {
          },
          {
            title: '附录B HF编码',
            align:"center",
            align: 'center',
            dataIndex: 'hfCodeB'
           },
           {
          },
          {
            title: '附录C HF编码',
            align:"center",
            align: 'center',
            dataIndex: 'hfCodeC'
           },
           {
          },
          {
            title: '附录D HF编码',
            align:"center",
            align: 'center',
            dataIndex: 'hfCodeD'
           },
           {
            title: '备注',
            align:"center",
            dataIndex: 'remark'
           },
          },
          {
            title: '操作',
            dataIndex: 'action',
            align:"center",
            align: 'center',
            scopedSlots: { customRender: 'action' },
            fixed: 'right'
          }
        ],
        url: {
          list: "/eam/eamTechnicalStatusEvaluationOrder/list",
          delete: "/eam/eamTechnicalStatusEvaluationOrder/delete",
          deleteBatch: "/eam/eamTechnicalStatusEvaluationOrder/deleteBatch",
          exportXlsUrl: "eam/eamTechnicalStatusEvaluationOrder/exportXls",
          importExcelUrl: "eam/eamTechnicalStatusEvaluationOrder/importExcel",
       },
    }
  },
  computed: {
    importExcelUrl: function(){
      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
    }
  },
        url: {
          list: '/eam/eamTechnicalStatusEvaluationOrder/list',
          receive: '/eam/eamTechnicalStatusEvaluationOrder/collect',
          delete: '/eam/eamTechnicalStatusEvaluationOrder/delete',
          deleteBatch: '/eam/eamTechnicalStatusEvaluationOrder/deleteBatch',
          exportXlsUrl: 'eam/eamTechnicalStatusEvaluationOrder/exportXls',
          importExcelUrl: 'eam/eamTechnicalStatusEvaluationOrder/importExcel'
        }
      }
    },
    computed: {
      importExcelUrl: function() {
        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
      }
    },
    methods: {
      handleReceive(id) {
        getAction(this.url.receive, { id })
          .then(res => {
            if (res.success) {
              this.$notification.success({
                message: '消息',
                description: res.message
              })
            } else {
              this.$notification.warning({
                message: '消息',
                description: res.message
              })
            }
          })
      }
    }
  }
</script>
<style scoped>
  @import '~@assets/less/common.less';
</style>
</script>
src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue
@@ -1,194 +1,240 @@
<template>
  <j-modal
    :title="title"
    :width="800"
    :visible="visible"
    :confirmLoading="confirmLoading"
    switchFullscreen
    @ok="handleOk"
    @cancel="handleCancel"
    cancelText="关闭">
    <a-spin :spinning="confirmLoading">
      <a-form-model ref="form" :model="model" :rules="validatorRules">
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="delFlag" label="删除标记">
          <a-input-number v-model="model.delFlag"/>
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderNum" label="工单号">
          <a-input placeholder="请输入工单号" v-model="model.orderNum" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentId" label="设备ID">
          <a-input placeholder="请输入设备ID" v-model="model.equipmentId" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="standardId" label="规范ID">
          <a-input placeholder="请输入规范ID" v-model="model.standardId" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="evaluationDate" label="计划鉴定日期;提前70天生成工单">
          <a-input placeholder="请输入计划鉴定日期;提前70天生成工单" v-model="model.evaluationDate" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="freezeOrderDate" label="锁定工单日期;提前55天锁定工单">
          <a-input placeholder="请输入锁定工单日期;提前55天锁定工单" v-model="model.freezeOrderDate" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderExpirationDate" label="工单过期日期;到期未做直接过期,并修改设备技术状态为禁用">
          <a-input placeholder="请输入工单过期日期;到期未做直接过期,并修改设备技术状态为禁用" v-model="model.orderExpirationDate" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="actualStartTime" label="实际开始时间">
          <a-input placeholder="请输入实际开始时间" v-model="model.actualStartTime" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="actualEndTime" label="实际结束时间">
          <a-input placeholder="请输入实际结束时间" v-model="model.actualEndTime" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="evaluator" label="鉴定人">
          <a-input placeholder="请输入鉴定人" v-model="model.evaluator" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="evaluationStatus" label="鉴定状态;待鉴定、鉴定中、维修室主任签字、工艺人员签字、技术主管签字、设备检验员签字、已完成、已锁定、变更中、已过期">
          <a-input placeholder="请输入鉴定状态;待鉴定、鉴定中、维修室主任签字、工艺人员签字、技术主管签字、设备检验员签字、已完成、已锁定、变更中、已过期" v-model="model.evaluationStatus" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="creationMethod" label="创建方式">
          <a-input placeholder="请输入创建方式" v-model="model.creationMethod" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="safetyEquipmentCheckResult" label="安全装置检查结果;是、否">
          <a-input placeholder="请输入安全装置检查结果;是、否" v-model="model.safetyEquipmentCheckResult" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="precisionCheckResult" label="精度参数检查结果;是、否、无">
          <a-input placeholder="请输入精度参数检查结果;是、否、无" v-model="model.precisionCheckResult" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="functionalCheckResult" label="功能状态检查结果;是、否">
          <a-input placeholder="请输入功能状态检查结果;是、否" v-model="model.functionalCheckResult" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="otherCheckResult" label="其他检查结果;是、否、无">
          <a-input placeholder="请输入其他检查结果;是、否、无" v-model="model.otherCheckResult" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairManagerSignature" label="维修室主任签字">
          <a-input placeholder="请输入维修室主任签字" v-model="model.repairManagerSignature" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairManagerSignatureTime1" label="维修室主任签字时间">
          <a-input placeholder="请输入维修室主任签字时间" v-model="model.repairManagerSignatureTime1" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="sampleCheckResult" label="试件检查结果;合格、不合格">
          <a-input placeholder="请输入试件检查结果;合格、不合格" v-model="model.sampleCheckResult" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processTechnicianSignature" label="工艺员签字">
          <a-input placeholder="请输入工艺员签字" v-model="model.processTechnicianSignature" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processTechnicianSignatureTime" label="工艺员签字时间">
          <a-input placeholder="请输入工艺员签字时间" v-model="model.processTechnicianSignatureTime" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="evaluationResult" label="鉴定结果;合格、限用、禁用">
          <a-input placeholder="请输入鉴定结果;合格、限用、禁用" v-model="model.evaluationResult" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="evaluationReason" label="限\禁用原因(多选);安全装置、设备功能、精度、试件、其他">
          <a-input placeholder="请输入限\禁用原因(多选);安全装置、设备功能、精度、试件、其他" v-model="model.evaluationReason" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="inspectorSignature" label="设备检查人签字">
          <a-input placeholder="请输入设备检查人签字" v-model="model.inspectorSignature" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="inspectorSignatureTime" label="设备检查人签字时间">
          <a-input placeholder="请输入设备检查人签字时间" v-model="model.inspectorSignatureTime" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hfCodeA" label="附录A HF编码">
          <a-input placeholder="请输入附录A HF编码" v-model="model.hfCodeA" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hfCodeB" label="附录B HF编码">
          <a-input placeholder="请输入附录B HF编码" v-model="model.hfCodeB" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hfCodeC" label="附录C HF编码">
          <a-input placeholder="请输入附录C HF编码" v-model="model.hfCodeC" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hfCodeD" label="附录D HF编码">
          <a-input placeholder="请输入附录D HF编码" v-model="model.hfCodeD" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark" label="备注">
          <a-input placeholder="请输入备注" v-model="model.remark" />
        </a-form-model-item>
  <j-modal :title="title" :width="1300" :visible="visible" :confirmLoading="confirmLoading" switchFullscreen
           @ok="handleOk" @cancel="handleCancel" cancelText="关闭">
    <a-spin :spinning="spinning">
      <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol">
        <a-row>
          <a-col :span="8">
            <a-form-model-item label="工单号">
              <a-input placeholder="工单号系统自动生成" v-model="model.orderNum" disabled/>
            </a-form-model-item>
          </a-col>
          <a-col :span="8">
            <a-form-model-item prop="equipmentId" label="统一编码">
              <technical-status-equipment-select placeholder="请输入统一编码或名称搜索" v-model="model.equipmentId"
                                                 @autocompleteForm="getDetailDataByOrderId" :allowClear="false"/>
            </a-form-model-item>
          </a-col>
          <a-col :span="8">
            <a-form-model-item prop="evaluationDate" label="计划鉴定日期">
              <a-date-picker v-model="model.evaluationDate" value-format="YYYY-MM-DD" :allowClear="false"
                             style="width: 100%"/>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="24">
            <a-form-model-item :labelCol="{span:2}" :wrapperCol="{span:21}" label="备注">
              <a-textarea placeholder="请输入备注" v-model="model.remark"/>
            </a-form-model-item>
          </a-col>
        </a-row>
      </a-form-model>
      <a-tabs default-active-key="1" v-if="model.equipmentId">
        <a-tab-pane tab="安全装置检查" key="1" v-if="detail.safetyEquipmentCheckList.length>0">
          <j-vxe-table ref="editableDetailTable1" rowNumber bordered keep-source :height="300"
                       :dataSource="detail.safetyEquipmentCheckList" :columns="detail.columns"/>
        </a-tab-pane>
        <a-tab-pane tab="设备精度检查" key="2" v-if="detail.precisionCheckList.length>0">
          <j-vxe-table ref="editableDetailTable2" rowNumber bordered keep-source :height="300"
                       :dataSource="detail.precisionCheckList" :columns="detail.precisionCheckColumns"/>
        </a-tab-pane>
        <a-tab-pane tab="其他检查" key="3" v-if="detail.otherCheckList.length>0">
          <j-vxe-table ref="editableDetailTable3" rowNumber bordered keep-source :height="300"
                       :dataSource="detail.otherCheckList" :columns="detail.columns"/>
        </a-tab-pane>
      </a-tabs>
    </a-spin>
  </j-modal>
</template>
<script>
  import { httpAction } from '@/api/manage'
  import moment from "moment"
  import { httpAction, getAction } from '@/api/manage'
  import TechnicalStatusEquipmentSelect from '../../equipment/modules/TechnicalStatusEquipmentSelect'
  import { JVXETypes } from '@/components/jeecg/JVxeTable'
  import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js'
  export default {
    name: "EamTechnicalStatusEvaluationOrderModal",
    data () {
    name: 'EamTechnicalStatusEvaluationOrderModal',
    components: {
      TechnicalStatusEquipmentSelect
    },
    mixins: [JVxeTableModelMixin],
    data() {
      return {
        title:"操作",
        title: '操作',
        visible: false,
        model: {},
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 },
          sm: { span: 6 }
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 },
          sm: { span: 15 }
        },
        confirmLoading: false,
        validatorRules:{
        spinning: false,
        validatorRules: {
          equipmentId: [{ required: true, message: '请输入统一编码或名称搜索', trigger: 'change' }],
          evaluationDate: [{ required: true, message: '请选择日期', trigger: 'change' }]
        },
        detail: {
          safetyEquipmentCheckList: [],
          precisionCheckList: [],
          otherCheckList: [],
          columns: [
            {
              title: 'ID',
              key: 'id',
              type: JVXETypes.hidden
            },
            {
              title: 'standardId',
              key: 'standardId',
              type: JVXETypes.hidden
            },
            {
              title: '项目序号',
              key: 'itemCode',
              type: JVXETypes.normal,
              align: 'center',
              width: 150
            },
            {
              title: '检查项目',
              key: 'itemName',
              type: JVXETypes.normal,
              align: 'center'
            }
          ],
          precisionCheckColumns: [
            {
              title: 'ID',
              key: 'id',
              type: JVXETypes.hidden
            },
            {
              title: 'standardId',
              key: 'standardId',
              type: JVXETypes.hidden
            },
            {
              title: '项目序号',
              key: 'itemCode',
              type: JVXETypes.normal,
              align: 'center',
              width: 150
            },
            {
              title: '检查项目',
              key: 'itemName',
              type: JVXETypes.normal,
              align: 'center'
            },
            {
              title: '检查子项目',
              key: 'subItemName',
              type: JVXETypes.normal,
              align: 'center'
            },
            {
              title: '允差值',
              key: 'toleranceValue',
              type: JVXETypes.normal,
              align: 'center'
            }
          ]
        },
        url: {
          add: "/eam/eamTechnicalStatusEvaluationOrder/add",
          edit: "/eam/eamTechnicalStatusEvaluationOrder/edit",
        },
          add: '/eam/eamTechnicalStatusEvaluationOrder/add',
          edit: '/eam/eamTechnicalStatusEvaluationOrder/edit',
          detail: '/eam/eamTechnicalStatusEvaluationStandardDetail/queryList'
        }
      }
    },
    created () {
    },
    methods: {
      add () {
      add() {
        //初始化默认值
        this.edit({});
        this.edit({})
      },
      edit (record) {
        this.model = Object.assign({}, record);
        this.visible = true;
      edit(record) {
        this.model = Object.assign({}, record)
        this.visible = true
      },
      close () {
        this.$emit('close');
        this.visible = false;
        this.$refs.form.clearValidate();
      },
      handleOk () {
        const that = this;
        // è§¦å‘表单验证
         this.$refs.form.validate(valid => {
          if (valid) {
            that.confirmLoading = true;
            let httpurl = '';
            let method = '';
            if(!this.model.id){
              httpurl+=this.url.add;
              method = 'post';
            }else{
              httpurl+=this.url.edit;
               method = 'put';
      getDetailDataByOrderId({ id }) {
        this.model.standardId = id
        this.spinning = true
        getAction(this.url.detail, { standardId: id })
          .then(res => {
            if (res.success) {
              this.detail.safetyEquipmentCheckList = res.result.filter(item => item.checkCategory == 'SAFETY_EQUIPMENT_CHECK')
              this.detail.precisionCheckList = res.result.filter(item => item.checkCategory == 'PRECISION_CHECK')
              this.detail.otherCheckList = res.result.filter(item => item.checkCategory == 'OTHER_CHECK')
            }
            httpAction(httpurl,this.model,method).then((res)=>{
              if(res.success){
                that.$message.success(res.message);
                that.$emit('ok');
              }else{
                that.$message.warning(res.message);
              }
            }).finally(() => {
              that.confirmLoading = false;
              that.close();
          })
          .finally(() => {
            this.spinning = false
          })
      },
      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'
            }
            this.model.tableDetailList = [...this.detail.safetyEquipmentCheckList, ...this.detail.precisionCheckList, ...this.detail.otherCheckList]
            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;
          } else {
            return false
          }
        })
      },
      handleCancel () {
      handleCancel() {
        this.close()
      },
      close() {
        this.$emit('close')
        this.visible = false
        this.$refs.form.clearValidate()
      }
    }
  }
</script>
src/views/system/DictList.vue
@@ -17,10 +17,10 @@
              :labelCol="{span: 6}"
              :wrapperCol="{span: 14, offset: 1}"
            >
              <a-input
              <j-input
                placeholder="请输入字典名称"
                v-model="queryParam.dictName"
              ></a-input>
              ></j-input>
            </a-form-item>
          </a-col>
          <a-col
@@ -32,10 +32,10 @@
              :labelCol="{span: 6}"
              :wrapperCol="{span: 14, offset: 1}"
            >
              <a-input
              <j-input
                placeholder="请输入字典编号"
                v-model="queryParam.dictCode"
              ></a-input>
              ></j-input>
            </a-form-item>
          </a-col>
          <a-col