已添加10个文件
已修改43个文件
5369 ■■■■■ 文件已修改
.env.development 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/ABC/ABCAssessmentList.vue 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/ABC/StreamList.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/ABC/modules/StreamForm.vue 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/Daily3MaintenanceOrderList.vue 50 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/DailyInspectionOrderList.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/DailyInspectionStandardList.vue 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/DailyMaintenanceStandardList.vue 30 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/EquipmentCalibrationOrder.vue 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/EquipmentListOfAll.vue 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/EquipmentListOfCrane.vue 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/EquipmentListOfEnvProEquipment.vue 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/EquipmentListOfFilesCarousel.vue 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/EquipmentListOfPressureVessel.vue 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/EquipmentListOfProduct.vue 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/EquipmentListOfRide.vue 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/EquipmentListOfTester.vue 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/EquipmentListOfTruck.vue 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/EquipmentListOfWeldingMachine.vue 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/EquipmentOfLine.vue 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/FaultInfoList.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/MalfunctionRepair.vue 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/QuanlityConfirmList.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/RepairOrderList.vue 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/TeamList.vue 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/daily3MaintenanceOrder/DailyMaintenanceOrderExeDrawer.vue 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/daily3MaintenanceOrder/DailyMaintenanceStandard3List.vue 228 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/daily3MaintenanceOrder/MaintenanceOrder3Modal.vue 747 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/daily3MaintenanceOrder/StoveCategoryReportList.vue 319 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/daily3MaintenanceOrder/StoveCategoryReportModal.vue 382 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/daily3MaintenanceOrder/TechnologyStatusAuthenticateModal.vue 632 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/dailyInspectionStandard/DailyInspectionStandardDetail.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/dailyInspectionStandard/DailylnspectionStandardModal.vue 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/dailyMaintenanceOrder/DailyMaintenanceStandardList.vue 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/dailyMaintenanceOrder/MaintenanceOrderModal.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/dailyMaintenanceStandard/DailyMaintenanceStandardModal.vue 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/equipmentCalibrationOrder/EquipmentTechnologyStatusModal.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/equipmentCalibrationOrder/TechnologyStatusAuthenticateModal.vue 591 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/equipmentNew/DailyMaintenanceList.vue 153 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/equipmentNew/EquipmentModal.vue 49 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/equipmentNew/SecondMaintenanceList.vue 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/equipmentNew/ThirdMaintenanceList.vue 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/equipmentScrap/EquipmentSelectModal.vue 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/inspectionProject/InspectionProjectRight.vue 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/line/EquipmentOfLineForm.vue 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/malfunctionRepair/AcceptModel.vue 155 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/malfunctionRepair/FaultDescriptionList.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/repairorder/moudles/RepairOrderActualHoursReport.vue 148 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/repairorder/moudles/RepairOrderFaultAnalysisReport.vue 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/repairorder/repairOrderExcuteDrawer.vue 300 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/siteAreaLine/SiteAreaLineLeft.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/modules/siteAreaLine/SiteAreaLineModel.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/modules/UserModal.vue 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.env.development
@@ -1,5 +1,5 @@
NODE_ENV=development
VUE_APP_API_BASE_URL=http://127.0.0.1:8099
VUE_APP_API_BASE_URL=http://localhost:8080
# VUE_APP_API_BASE_URL=http://195.0.1.10:8099
VUE_APP_CAS_BASE_URL=http://cas.example.org:8443/cas
VUE_APP_ONLINE_BASE_URL=http://fileview.jeecg.com/onlinePreview
src/views/eam/ABC/ABCAssessmentList.vue
@@ -35,6 +35,7 @@
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :rowClassName="tableRowClass"
        :loading="loading"
        @change="handleTableChange">
@@ -74,6 +75,7 @@
<script>
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import '@/assets/less/TableExpand.less'
  export default {
    name: "ABCAssessmentList",
@@ -205,11 +207,21 @@
        this.dataSource=[]
        this.selectedRowKeys=[]
        this.ipagination.current = 1
      },
      tableRowClass(record, index) {
      if (record.equipmentImportanceId!==record.finalStandard) {
          return 'primary'
      }
    },
    }
  }
</script>
<style scoped>
  @import '~@assets/less/common.less'
<style lang="less" scoped>
  @import '~@assets/less/common.less';
  /deep/.primary {
  color: rgb(0, 115, 255);
  font-weight: bold;
}
</style>
src/views/eam/ABC/StreamList.vue
@@ -86,9 +86,9 @@
        </template>
        <span slot="action" slot-scope="text, record">
          <div v-if="nodeValue===record.status">
            <a @click="handleStreamNext(record)" :disabled="nodeSort===1&&nodeValue!==record.status" >{{button1.name}}</a>
          <a-divider type="vertical" />
            <a @click="handleStreamLast(record)" :disabled="nodeSort===1" >{{button2.name}}</a>
            <a @click="handleStreamNext(record)" :disabled="nodeSort===1&&nodeValue!==record.status" v-if="button1!={}">{{button1.name}}</a>
          <a-divider type="vertical" v-if="button2!={}"/>
            <a @click="handleStreamLast(record)" :disabled="nodeSort===1" v-if="button2!={}" >{{button2.name}}</a>
         </div>
         <div v-if="nodeSort===1&&nodeValue===record.status">
          <a-divider type="vertical" />
@@ -149,6 +149,14 @@
      return {
        description: '设备ABC评价管理页面',
        // è¡¨å¤´
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 },
        },
          wrapperCol: {
            xs: { span: 24 },
            sm: { span: 16 },
        },
        columns: [
          {
            title: '#',
@@ -331,7 +339,9 @@
        getAction(this.url.getPreInfo).then(res=>{
            if(res.result.msg==='ok'){
              this.button1 = res.result.buttons[0];
              this.button2 = res.result.buttons[1];
              if(res.result.buttons.length===2){
                this.button2 = res.result.buttons[1];
              }
              this.nodeSort = res.result.nodeSort;
              this.nodeValue = res.result.nodeValue;
            }
src/views/eam/ABC/modules/StreamForm.vue
@@ -153,7 +153,7 @@
          :loading="aBCAssessmentTable.loading"
          :columns="aBCAssessmentTable.columns"
          :dataSource="aBCAssessmentTable.dataSource"
          :maxHeight="300"
          :maxHeight="1000"
          :disabled="formDisabled"
          :rowNumber="true"
          :rowSelection="true"
@@ -224,7 +224,7 @@
              title: '统一编码',
              key: 'num',
               type: JVXETypes.normal,
              width:"250px",
              width:"160px",
              placeholder: '请输入${title}',
              disabled:true,
              align:'center',
@@ -234,7 +234,7 @@
              title: '设备名称',
              key: 'name',
               type: JVXETypes.normal,
              width:"250px",
              width:"160px",
              placeholder: '请输入${title}',
              disabled:true,
              align:'center',
@@ -244,7 +244,7 @@
              title: '设备型号',
              key: 'model',
               type: JVXETypes.normal,
              width:"250px",
              width:"160px",
              placeholder: '请输入${title}',
              disabled:true,
              align:'center',
@@ -263,7 +263,7 @@
              title: '平均使用率',
              key: 'standardA',
              type: JVXETypes.select,
              width:"250px",
              width:"180px",
              placeholder: '请输入${title}',
              defaultValue:'',
              dictCode:'ABC-standardA',
@@ -280,7 +280,7 @@
              title: '可替换性',
              key: 'standardB',
              type: JVXETypes.select,
              width:"250px",
              width:"180px",
              placeholder: '请输入${title}',
              defaultValue:'',
              dictCode:'ABC-standardB',
@@ -297,7 +297,7 @@
              title: '故障影响度',
              key: 'standardC',
              type: JVXETypes.select,
              width:"250px",
              width:"230px",
              placeholder: '请输入${title}',
              defaultValue:'',
              dictCode:'ABC-standardC',
@@ -314,7 +314,7 @@
              title: '生产超差度',
              key: 'standardD',
              type: JVXETypes.select,
              width:"250px",
              width:"180px",
              placeholder: '请输入${title}',
              defaultValue:'',
              dictCode:'ABC-standardD',
@@ -331,7 +331,7 @@
              title: '故障频率',
              key: 'standardE',
              type: JVXETypes.select,
              width:"250px",
              width:"180px",
              placeholder: '请输入${title}',
              defaultValue:'',
              dictCode:'ABC-standardE',
@@ -348,7 +348,7 @@
              title: '设备价值',
              key: 'standardF',
              type: JVXETypes.select,
              width:"250px",
              width:"180px",
              placeholder: '请输入${title}',
              defaultValue:'',
              dictCode:'ABC-standardF',
@@ -365,7 +365,7 @@
              title: '旧标识',
              key: 'equipmentImportanceId',
              type: JVXETypes.select,
              width:"250px",
              width:"180px",
              disabled:true,
              placeholder: '请输入${title}',
              defaultValue:'',
@@ -377,7 +377,7 @@
              title: '新标识',
              key: 'finalStandard',
              type: JVXETypes.select,
              width:"250px",
              width:"180px",
              placeholder: '请输入${title}',
              defaultValue:'',
              dictCode:'ABC-standard-result',
@@ -483,7 +483,7 @@
      }
      var standardA = this.model.standardA == null || this.model.standardA == undefined || this.model.standardA == '' ? 0 : parseInt(this.model.standardA);
      var standardB = this.model.standardB == null || this.model.standardB == undefined || this.model.standardB == '' ? 0 : parseInt(this.model.standardB);
      var standardC = this.model.standardA == null || this.model.standardC == undefined || this.model.standardC == '' ? 0 : parseInt(this.model.standardC);
      var standardC = this.model.standardC == null || this.model.standardC == undefined || this.model.standardC == '' ? 0 : parseInt(this.model.standardC);
      var standardD = this.model.standardD == null || this.model.standardD == undefined || this.model.standardD == '' ? 0 : parseInt(this.model.standardD);
      var standardE = this.model.standardE == null || this.model.standardE == undefined || this.model.standardE == '' ? 0 : parseInt(this.model.standardE);
      var standardF = this.model.standardF == null || this.model.standardF == undefined || this.model.standardF == '' ? 0 : parseInt(this.model.standardF);
@@ -524,7 +524,14 @@
              num: data[i].num,
              name: data[i].name,
              model:data[i].model,
              standardA:data[i].standardA,
              standardB:data[i].standardB,
              standardC:data[i].standardC,
              standardD:data[i].standardD,
              standardE:data[i].standardE,
              standardF:data[i].standardF,
              equipmentImportanceId:data[i].equipmentImportanceId,
              finalStandard:data[i].equipmentImportanceId,
            }
          }
          addRows.push(equipment)
@@ -534,7 +541,7 @@
      changeDate(target){
            var standardA = target.row.standardA == null || target.row.standardA == undefined || target.row.standardA == '' ? 0 : parseInt(target.row.standardA);
            var standardB = target.row.standardB == null || target.row.standardB == undefined || target.row.standardB == '' ? 0 : parseInt(target.row.standardB);
            var standardC = target.row.standardA == null || target.row.standardC == undefined || target.row.standardC == '' ? 0 : parseInt(target.row.standardC);
            var standardC = target.row.standardC == null || target.row.standardC == undefined || target.row.standardC == '' ? 0 : parseInt(target.row.standardC);
            var standardD = target.row.standardD == null || target.row.standardD == undefined || target.row.standardD == '' ? 0 : parseInt(target.row.standardD);
            var standardE = target.row.standardE == null || target.row.standardE == undefined || target.row.standardE == '' ? 0 : parseInt(target.row.standardE);
            var standardF = target.row.standardF == null || target.row.standardF == undefined || target.row.standardF == '' ? 0 : parseInt(target.row.standardF);
@@ -551,7 +558,7 @@
        changeDateByRow(row){
            var standardA = row.standardA == null || row.standardA == undefined || row.standardA == '' ? 0 : parseInt(row.standardA);
            var standardB = row.standardB == null || row.standardB == undefined || row.standardB == '' ? 0 : parseInt(row.standardB);
            var standardC = row.standardA == null || row.standardC == undefined || row.standardC == '' ? 0 : parseInt(row.standardC);
            var standardC = row.standardC == null || row.standardC == undefined || row.standardC == '' ? 0 : parseInt(row.standardC);
            var standardD = row.standardD == null || row.standardD == undefined || row.standardD == '' ? 0 : parseInt(row.standardD);
            var standardE = row.standardE == null || row.standardE == undefined || row.standardE == '' ? 0 : parseInt(row.standardE);
            var standardF = row.standardF == null || row.standardF == undefined || row.standardF == '' ? 0 : parseInt(row.standardF);
src/views/eam/Daily3MaintenanceOrderList.vue
@@ -306,12 +306,21 @@
            type="vertical"
          />
          <a
            v-show="record.status === '5' && record.isNotStoveCategoryFlag == false && record.precisionParameters == '0'"
            v-show="record.status === '5' && record.isNotStoveCategoryFlag == true && (record.stoveExemptStatus == '0' ||record.stoveExemptStatus == '1' ||record.stoveExemptStatus == '2')"
            @click="handleStoveReport(record)"
            v-has="'daily3MaintenanceOrder:StoveCategoryReport'"
          >炉类报告</a>
          <a-divider
            v-show="record.status === '5'&& record.isNotStoveCategoryFlag == true && (record.stoveExemptStatus == '0' ||record.stoveExemptStatus == '1' ||record.stoveExemptStatus == '2')"
            type="vertical"
          />
          <a
            v-show="record.status === '5' && record.isNotStoveCategoryFlag == false && record.precisionParameters != '1'"
            @click="handleTechnologyStatus(record)"
            v-has="'daily3MaintenanceOrder:TechnologyStatus'"
          >技术状态鉴定</a>
          <a-divider
            v-show="record.status === '5'&& record.isNotStoveCategoryFlag == false && record.precisionParameters == '0' "
            v-show="record.status === '5'&& record.isNotStoveCategoryFlag == false && record.precisionParameters != '1'"
            type="vertical"
          />
          <a
@@ -367,10 +376,10 @@
      </a-table>
    </div>
    <maintenance-order-modal
    <maintenance-order3-modal
      ref="modalForm"
      @ok="modalFormOk"
    ></maintenance-order-modal>
    ></maintenance-order3-modal>
    <finish-devolution-modal
      ref="FinishDevolutionModal"
      @ok="modalFormOk"
@@ -387,6 +396,10 @@
      ref="StoveCategoryModal"
      @ok="modalFormOk"
    ></stove-category-modal>
    <stove-category-report-modal
      ref="StoveCategoryReportModal"
      @ok="modalFormOk"
    ></stove-category-report-modal>
    <maintenance-order-assign-modal
      ref="MaintenanceOrderAssignModal"
      @ok="modalFormOk"
@@ -399,6 +412,10 @@
      ref="EquipmentTechnologyStatusModal"
      @ok="modalFormOk"
    ></equipment-technology-status-modal>
    <technology-status-authenticate-modal
      ref="TechnologyStatusAuthenticateModal"
      @ok="modalFormOk"
    ></technology-status-authenticate-modal>
    <maintenance-3-receipt-modal
      ref="Maintenance3ReceiptModal"
      @ok="modalFormOk"
@@ -411,14 +428,16 @@
import '@/assets/less/TableExpand.less'
import { mixinDevice } from '@/utils/mixin'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import MaintenanceOrderModal from './modules/dailyMaintenanceOrder/MaintenanceOrderModal'
import MaintenanceOrder3Modal from './modules/daily3MaintenanceOrder/MaintenanceOrder3Modal'
import FinishDevolutionModal from './modules/dailyMaintenanceOrder/FinishDevolutionModal'
import MaintenanceOrderChangeModal from './modules/dailyMaintenanceOrder/MaintenanceOrderChangeModal'
import EquipmentPrecisionCheckOrderModal from './modules/daily3MaintenanceOrder/EquipmentPrecisionCheckOrderModal'
import StoveCategoryModal from './modules/daily3MaintenanceOrder/StoveCategoryModal'
import StoveCategoryReportModal from './modules/daily3MaintenanceOrder/StoveCategoryReportModal'
import MaintenanceOrderAssignModal from './modules/dailyMaintenanceOrder/MaintenanceOrderAssignModal'
import DailyMaintenanceOrderExeDrawer from './modules/daily3MaintenanceOrder/DailyMaintenanceOrderExeDrawer'
import EquipmentTechnologyStatusModal from './modules/daily3MaintenanceOrder/EquipmentTechnologyStatusModal'
import TechnologyStatusAuthenticateModal from './modules/daily3MaintenanceOrder/TechnologyStatusAuthenticateModal'
import Maintenance3ReceiptModal from './modules/daily3MaintenanceOrder/Maintenance3ReceiptModal.vue'
import { getAction, postAction, requestPut } from '@/api/manage'
import JEllipsis from "@/components/jeecg/JEllipsis";
@@ -427,14 +446,16 @@
  name: 'DailyMaintenanceOrderList',
  mixins: [JeecgListMixin, mixinDevice],
  components: {
    MaintenanceOrderModal,
    MaintenanceOrder3Modal,
    FinishDevolutionModal,
    MaintenanceOrderAssignModal,
    EquipmentPrecisionCheckOrderModal,
    DailyMaintenanceOrderExeDrawer,
    MaintenanceOrderChangeModal,
    StoveCategoryModal,
    StoveCategoryReportModal,
    EquipmentTechnologyStatusModal,
    TechnologyStatusAuthenticateModal,
    Maintenance3ReceiptModal,
    JEllipsis
  },
@@ -683,9 +704,13 @@
    },
    handleTechnologyStatus: function (record) {
      this.$refs.EquipmentTechnologyStatusModal.edit(record);
      this.$refs.EquipmentTechnologyStatusModal.title = "技术状态编辑";
      this.$refs.EquipmentTechnologyStatusModal.disableSubmit = false;
      // this.$refs.EquipmentTechnologyStatusModal.edit(record);
      // this.$refs.EquipmentTechnologyStatusModal.title = "技术状态编辑";
      // this.$refs.EquipmentTechnologyStatusModal.disableSubmit = false;
      this.$refs.TechnologyStatusAuthenticateModal.edit(record);
      this.$refs.TechnologyStatusAuthenticateModal.title = "技术状态编辑";
      this.$refs.TechnologyStatusAuthenticateModal.disableSubmit = false;
    },
    handleStoveDetection: function (record) {
@@ -693,6 +718,13 @@
      this.$refs.StoveCategoryModal.title = "温度均匀性检测条件确认表";
      this.$refs.StoveCategoryModal.disableSubmit = false;
    },
    handleStoveReport: function (record) {
      this.$refs.StoveCategoryReportModal.add();
      this.$refs.StoveCategoryReportModal.title = "炉类设备报告上传";
      this.$refs.StoveCategoryReportModal.disableSubmit = false;
      this.$refs.StoveCategoryReportModal.maintenanceStandardId = record.id
      this.$refs.StoveCategoryReportModal.equipmentId = record.equipmentId
    },
    handleOrderChange: function (record) {
      this.$refs.MaintenanceOrderChangeModal.edit(record);
src/views/eam/DailyInspectionOrderList.vue
@@ -120,6 +120,7 @@
        :loading="loading"
        class="j-table-force-nowrap"
        @change="handleTableChange"
        :rowClassName="tableRowClass"
      >
        <!-- :rowSelection="rowSelection" -->
        <!-- :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" -->
@@ -509,7 +510,7 @@
    },
    handleOrderExe(record) {
      this.$refs.DailyInspectionOrderExeDrawer.visible = true
      this.$refs.DailyInspectionOrderExeDrawer.title = '日常点检工单执行'
      this.$refs.DailyInspectionOrderExeDrawer.title = '自主维护点检执行'
      this.$refs.DailyInspectionOrderExeDrawer.handleShow(record)
      if (record.status === '3') {
        this.$refs.DailyInspectionOrderExeDrawer.buttonDistable = true//保存、暂存、报工
@@ -594,10 +595,41 @@
      })
    },
    //预警颜色
    tableRowClass(record, index) {
      if (("1" == record.status || "2" == record.status) && "1日" == record.inspectionCycleName) {
        if (record.redWarningTime < record.currentDateTime) {
          return 'error'
        }
      }
    },
  }
}
</script>
<style scoped>
<style>
@import '~@assets/less/common.less';
.frozenRowClass {
  color: #c9c9c9;
  font-weight: bold;
}
.success {
  color: green;
}
.error {
  color: red;
  font-weight: bold;
}
.yellow {
  color: rgba(255, 255, 0, 0.443);
  font-weight: bold;
}
.fontweight {
  font-weight: bold;
}
.ant-table-tbody .red {
  background-color: red !important;
}
</style>
src/views/eam/DailyInspectionStandardList.vue
@@ -92,6 +92,22 @@
        icon="reload"
        style="margin-left: 8px"
      >重置</a-button>
      <a-button
        v-show="this.selectedRowKeys.length > 0 && this.queryParam.versionStatus == '1'"
        type="primary"
        @click="batchHandleOK"
        icon="reload"
        style="margin-left: 8px"
        v-has="'dailyInspectionStandard:batchHandleOK'"
      >批量通过</a-button>
      <a-button
        v-show="this.selectedRowKeys.length > 0 && this.queryParam.versionStatus == '1'"
        type="primary"
        @click="batchHandleReject"
        icon="reload"
        style="margin-left: 8px"
        v-has="'dailyInspectionStandard:batchHandleReject'"
      >批量驳回</a-button>
    </div>
    <!-- table区域-begin -->
@@ -292,11 +308,11 @@
          align: 'center',
          dataIndex: 'teamName',
        },
        {
          title: '派工方式',
          align: 'center',
          dataIndex: 'assignModeName',
        },
        // {
        //   title: '派工方式',
        //   align: 'center',
        //   dataIndex: 'assignModeName',
        // },
        {
          title: '审核意见',
          align: 'center',
@@ -377,7 +393,7 @@
          align: 'center',
          fixed: 'right',
          scopedSlots: { customRender: 'action' },
          width: 200,
          width: 230,
        }
      ],
      url: {
@@ -386,6 +402,7 @@
        deleteBatch: '/eam/inspectionStandard/deleteBatch',
        versionTakeEffect: "/eam/inspectionStandard/versionTakeEffect",
        importExcelUrl: "/eam/inspectionStandard/importExcel",
        passBatch: '/eam/inspectionStandard/auditApprovalBatch',
      },
      version: '1.0',
      dictOptions: {},
@@ -514,7 +531,7 @@
    },
    searchReset() {
      this.inspectionStandardId = '-1'
      this.queryParam = {}
      this.queryParam = { versionStatus: '2' }
      this.loadData(1);
    },
    modalFormOk() {
@@ -523,6 +540,99 @@
      //清空列表选中
      // this.onClearSelected()
    },
    batchHandleReject: function () {
      if (this.selectedRowKeys.length <= 0) {
        // this.$message.warning('请选择一条记录!');
        this.$notification.warning({
          message: '消息',
          description: "请选择一条记录"
        });
        return;
      } else {
        var that = this;
        this.$confirm({
          title: "确认批量驳回",
          content: "是否批量驳回选中数据?",
          onOk: function () {
            that.loading = true;
            that.confirmLoading = true;
            let formData = {};
            let dailyInspectionStandardlist = that.selectionRows
            for (var i = 0; i < dailyInspectionStandardlist.length; i++) {
              let record = dailyInspectionStandardlist[i]
              if (record.approvalStatus == '1') {
                record.approvalStatus = '2'
              } else if (record.approvalStatus == '3') {
                record.approvalStatus = '4'
              } else if (record.approvalStatus == '4') {
                record.approvalStatus = '2'
              }
            }
            formData.dailyInspectionStandardlist = dailyInspectionStandardlist
            requestPut(that.url.passBatch, formData).then((res) => {
              if (res.success) {
                that.$message.success("批量驳回成功!")
                that.loadData(1)
              } else {
                that.$message.warning("批量通过失败!")
              }
            }).finally(() => {
              that.confirmLoading = false;
              that.loading = false;
            })
          }
        });
      }
    },
    batchHandleOK: function () {
      if (this.selectedRowKeys.length <= 0) {
        // this.$message.warning('请选择一条记录!');
        this.$notification.warning({
          message: '消息',
          description: "请选择一条记录"
        });
        return;
      } else {
        var that = this;
        this.$confirm({
          title: "确认批量通过",
          content: "是否批量通过选中数据?",
          onOk: function () {
            that.loading = true;
            that.confirmLoading = true;
            let formData = {};
            let dailyInspectionStandardlist = that.selectionRows
            for (var i = 0; i < dailyInspectionStandardlist.length; i++) {
              let record = dailyInspectionStandardlist[i]
              if (record.approvalStatus == '1') {
                record.approvalStatus = '3'
              } else if (record.approvalStatus == '2') {
                record.approvalStatus = '3'
              } else if (record.approvalStatus == '3') {
                record.approvalStatus = '5'
              } else if (record.approvalStatus == '4') {
                record.approvalStatus = '3'
              }
            }
            formData.dailyInspectionStandardlist = dailyInspectionStandardlist
            requestPut(that.url.passBatch, formData).then((res) => {
              if (res.success) {
                that.$message.success("批量通过成功!")
                that.loadData(1)
              } else {
                that.$message.warning("批量通过失败!")
              }
            }).finally(() => {
              that.confirmLoading = false;
              that.loading = false;
            })
          }
        });
      }
    },
  }
}
src/views/eam/DailyMaintenanceStandardList.vue
@@ -102,6 +102,19 @@
        icon='reload'
        style='margin-left: 8px'
      >重置</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>
    </div>
    <!-- table区域-begin -->
@@ -312,6 +325,11 @@
          dataIndex: 'num',
        },
        {
          title: '标准类型',
          align: 'center',
          dataIndex: 'maintenanceTypeName',
        },
        {
          title: '签审状态',
          align: 'center',
          dataIndex: 'approvalStatusName',
@@ -336,11 +354,7 @@
          align: 'center',
          dataIndex: 'useDepartName',
        },
        {
          title: '派工方式',
          align: 'center',
          dataIndex: 'assignModeName',
        },
        {
          title: '责任班组',
          align: 'center',
@@ -439,6 +453,7 @@
        delete: '/eam/maintenanceStandard/delete',
        deleteBatch: '/eam/maintenanceStandard/deleteBatch',
        versionTakeEffect: "/eam/maintenanceStandard/versionTakeEffect",
        importExcelUrl: "/eam/maintenanceStandard/importExcelOfTwoMaintenance",
      },
      /* åˆ†é¡µå‚æ•° */
      ipagination: {
@@ -456,6 +471,11 @@
      queryParam: { type: 'daily' }
    }
  },
  computed: {
    importExcelUrl: function () {
      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
    }
  },
  watch: {
    selectionRows() {
      this.$bus.$emit('dailyMaintenanceStandardSelectionRows', this.selectionRows);
src/views/eam/EquipmentCalibrationOrder.vue
@@ -113,13 +113,23 @@
            type='vertical'
          />
          <a
            v-show="record.status === '2'"
            v-show="record.status === '2' && record.equipmentImportance != 'D'"
            @click='handleTechnologyStatus(record)'
            v-has="'calibrationOrder:audit'"
          >结果审核</a>
          <a-divider
            v-show="record.status === '2'"
            v-show="record.status === '2' && record.equipmentImportance != 'D'"
            type='vertical'
          />
          <a
            v-show="record.status === '2' && record.equipmentImportance == 'D'"
            @click='handleTechnologyStatusAuthenticate(record)'
            v-has="'calibrationOrder:authenticate'"
          >D类技术状态鉴定</a>
          <a-divider
            v-show="record.status === '2' && record.equipmentImportance == 'D'"
            type='vertical'
          />
          <a @click='handleDetail(record)'>详情</a>
@@ -263,6 +273,11 @@
      ref="EquipmentTechnologyStatusModal"
      @ok="modalFormOk"
    ></equipment-technology-status-modal>
    <technology-status-authenticate-modal
      ref="TechnologyStatusAuthenticateModal"
      @ok="modalFormOk"
    ></technology-status-authenticate-modal>
  </a-card>
</template>
@@ -280,6 +295,7 @@
import EquipmentCalibrationOrderReportModal
  from './modules/equipmentCalibrationOrder/EquipmentCalibrationOrderReportModal'
import EquipmentTechnologyStatusModal from './modules/equipmentCalibrationOrder/EquipmentTechnologyStatusModal'
import TechnologyStatusAuthenticateModal from './modules/equipmentCalibrationOrder/TechnologyStatusAuthenticateModal'
export default {
  name: 'EquipmentCalibrationOrder',
@@ -291,7 +307,8 @@
    EquipmentCalibrationOrderReportList,
    EquipmentCalibrationOrderReportModal,
    FinalModal,
    EquipmentTechnologyStatusModal
    EquipmentTechnologyStatusModal,
    TechnologyStatusAuthenticateModal
  },
  data() {
    return {
@@ -441,6 +458,13 @@
      this.$refs.EquipmentTechnologyStatusModal.disableSubmit = false;
    },
    handleTechnologyStatusAuthenticate: function (record) {
      this.$refs.TechnologyStatusAuthenticateModal.edit(record);
      this.$refs.TechnologyStatusAuthenticateModal.title = "技术状态编辑";
      this.$refs.TechnologyStatusAuthenticateModal.disableSubmit = false;
    },
    handleOrderExe(record) {
      this.$refs.EquipmentCalibrationOrderExeDrawer.visible = true
      this.$refs.EquipmentCalibrationOrderExeDrawer.title = '检定工单执行'
src/views/eam/EquipmentListOfAll.vue
@@ -121,6 +121,21 @@
              />
            </a-form-item>
          </a-col>
          <a-col :span="6">
            <a-form-item
              label="是否生产线设备"
              :labelCol="labelCol"
            :wrapperCol="wrapperCol"
            >
              <j-dict-select-tag
                allow-clear
                placeholder="请选择"
                :triggerChange="true"
                dictCode="is_product"
                v-model="queryParam.isLineEquip"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="6">
@@ -236,7 +251,7 @@
      <a-table
        ref="table"
        size="middle"
        size="small"
        bordered
        rowKey="id"
        :scroll="{x:true}"
@@ -430,11 +445,17 @@
      <a-tab-pane tab="ABC标识变更记录" key="5" forceRender>
        <equipment-update-ABC-list :mainId="selectedMainId" />
      </a-tab-pane>
      <a-tab-pane tab="质保期变更记录" key="6" forceRender>
      <a-tab-pane tab="质保期变更" key="6" forceRender>
        <equipment-update-warranty-list :mainId="selectedMainId" />
      </a-tab-pane>
      <a-tab-pane tab="保养点检标准" key="7" forceRender>
       <standard-of-maintenance :mainId="selectedMainId"/>
      <a-tab-pane tab="日保标准" key="7" forceRender>
        <daily-maintenance-list :mainId="selectedMainId"></daily-maintenance-list>
      </a-tab-pane>
      <a-tab-pane tab="二保标准" key="8" forceRender>
        <second-maintenance-list :mainId="selectedMainId"></second-maintenance-list>
      </a-tab-pane>
      <a-tab-pane tab="三保标准" key="9" forceRender>
        <third-maintenance-list :mainId="selectedMainId"></third-maintenance-list>
      </a-tab-pane>
    </a-tabs>
    <equipment-modal ref="modalForm" @ok="modalFormOk" :caytegoryParam="caytegoryParam"></equipment-modal>
@@ -464,10 +485,13 @@
  import EquipmentUpdateWarrantyList from './modules/equipmentNew/EquipmentUpdateWarrantyList.vue'
  import ABCUpdateEditModel from './modules/equipmentNew/edit/ABCUpdateEditModel'
  import WarrantyUpdateModel from './modules/equipmentNew/edit/WarrantyUpdateModel.vue'
  import EquipmentSpareParts from './modules/equipmentNew/EquipmentSpareParts.vue'
  import EquipmentSpareParts from './modules/equipmentNew/EquipmentSpareParts'
  import EquipmentSparePartsModal from './modules/equipmentNew/EquipmentSparePartsModal'
  import StandardOfInspection from './modules/equipmentNew/StandardOfInspection.vue'
  import StandardOfMaintenance from './modules/equipmentNew/StandardOfMaintenance.vue'
  import DailyMaintenanceList from './modules/equipmentNew/DailyMaintenanceList.vue'
  import SecondMaintenanceList from './modules/equipmentNew/SecondMaintenanceList.vue'
  import ThirdMaintenanceList from './modules/equipmentNew/ThirdMaintenanceList.vue'
  export default {
    name: "EquipmentList",
    mixins:[JeecgListMixin,mixinDevice],
@@ -488,6 +512,9 @@
        EquipmentSparePartsModal,
        StandardOfInspection,
        StandardOfMaintenance,
        DailyMaintenanceList,
        SecondMaintenanceList,
        ThirdMaintenanceList,
    },
    data () {
      return {
@@ -509,6 +536,11 @@
          title: '设备类型',
          align: "center",
          dataIndex: 'equipmentCategoryId_dictText',
        },
        {
          title: '是否生产线设备',
          align: "center",
          dataIndex: 'isLineEquip_dictText',
        },
        {
          title: '统一编码',
@@ -571,11 +603,16 @@
          dataIndex: 'technologyStatusVerificationType_dictText',
        },
       
        // {
        //   title: '工区',
        //   align: "center",
        //   dataIndex: 'equipmentUda1',
        // },
        {
          title: '生产线编号',
          align: "center",
          dataIndex: 'lineId_dictText',
        },
        {
          title: '主设备?',
          align: "center",
          dataIndex: 'isMeta_dictText',
        },
        // {
        //   title: '安全配置',
        //   align: "center",
src/views/eam/EquipmentListOfCrane.vue
@@ -106,6 +106,21 @@
              />
            </a-form-item>
          </a-col>
          <a-col :span="6">
            <a-form-item
              label="是否生产线设备"
              :labelCol="labelCol"
            :wrapperCol="wrapperCol"
            >
              <j-dict-select-tag
                allow-clear
                placeholder="请选择"
                :triggerChange="true"
                dictCode="is_product"
                v-model="queryParam.isLineEquip"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="6">
@@ -415,11 +430,17 @@
      <a-tab-pane tab="ABC标识变更记录" key="5" forceRender>
        <equipment-update-ABC-list :mainId="selectedMainId" />
      </a-tab-pane>
      <a-tab-pane tab="质保期变更记录" key="6" forceRender>
      <a-tab-pane tab="质保期变更" key="6" forceRender>
        <equipment-update-warranty-list :mainId="selectedMainId" />
      </a-tab-pane>
      <a-tab-pane tab="保养点检标准" key="7" forceRender>
       <standard-of-maintenance :mainId="selectedMainId"/>
      <a-tab-pane tab="日保标准" key="7" forceRender>
        <daily-maintenance-list :mainId="selectedMainId"></daily-maintenance-list>
      </a-tab-pane>
      <a-tab-pane tab="二保标准" key="8" forceRender>
        <second-maintenance-list :mainId="selectedMainId"></second-maintenance-list>
      </a-tab-pane>
      <a-tab-pane tab="三保标准" key="9" forceRender>
        <third-maintenance-list :mainId="selectedMainId"></third-maintenance-list>
      </a-tab-pane>
    </a-tabs>
    <equipment-modal ref="modalForm" @ok="modalFormOk" :caytegoryParam="caytegoryParam"></equipment-modal>
@@ -449,10 +470,13 @@
  import EquipmentUpdateWarrantyList from './modules/equipmentNew/EquipmentUpdateWarrantyList.vue'
  import ABCUpdateEditModel from './modules/equipmentNew/edit/ABCUpdateEditModel'
  import WarrantyUpdateModel from './modules/equipmentNew/edit/WarrantyUpdateModel.vue'
  import EquipmentSpareParts from './modules/equipmentNew/EquipmentSpareParts.vue'
  import EquipmentSpareParts from './modules/equipmentNew/EquipmentSpareParts'
  import EquipmentSparePartsModal from './modules/equipmentNew/EquipmentSparePartsModal'
  import StandardOfInspection from './modules/equipmentNew/StandardOfInspection.vue'
  import StandardOfMaintenance from './modules/equipmentNew/StandardOfMaintenance.vue'
  import DailyMaintenanceList from './modules/equipmentNew/DailyMaintenanceList.vue'
  import SecondMaintenanceList from './modules/equipmentNew/SecondMaintenanceList.vue'
  import ThirdMaintenanceList from './modules/equipmentNew/ThirdMaintenanceList.vue'
  export default {
    name: "EquipmentList",
    mixins:[JeecgListMixin,mixinDevice],
@@ -473,6 +497,9 @@
        EquipmentSparePartsModal,
        StandardOfInspection,
        StandardOfMaintenance,
        DailyMaintenanceList,
        SecondMaintenanceList,
        ThirdMaintenanceList,
    },
    data () {
      return {
@@ -494,6 +521,11 @@
          title: '设备类型',
          align: "center",
          dataIndex: 'equipmentCategoryId_dictText',
        },
        {
          title: '是否生产线设备',
          align: "center",
          dataIndex: 'isLineEquip_dictText',
        },
        {
          title: '统一编码',
@@ -555,6 +587,16 @@
          align: "center",
          dataIndex: 'technologyStatusVerificationType_dictText',
        },
        {
          title: '生产线编号',
          align: "center",
          dataIndex: 'lineId_dictText',
        },
        {
          title: '主设备?',
          align: "center",
          dataIndex: 'isMeta_dictText',
        },
        // {
        //   title: '工区',
        //   align: "center",
src/views/eam/EquipmentListOfEnvProEquipment.vue
@@ -121,6 +121,21 @@
              />
            </a-form-item>
          </a-col>
          <a-col :span="6">
            <a-form-item
              label="是否生产线设备"
              :labelCol="labelCol"
            :wrapperCol="wrapperCol"
            >
              <j-dict-select-tag
                allow-clear
                placeholder="请选择"
                :triggerChange="true"
                dictCode="is_product"
                v-model="queryParam.isLineEquip"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="6">
@@ -430,14 +445,20 @@
      <a-tab-pane tab="ABC标识变更记录" key="5" forceRender>
        <equipment-update-ABC-list :mainId="selectedMainId" />
      </a-tab-pane>
      <a-tab-pane tab="质保期变更记录" key="6" forceRender>
      <a-tab-pane tab="质保期变更" key="6" forceRender>
        <equipment-update-warranty-list :mainId="selectedMainId" />
      </a-tab-pane>
      <a-tab-pane tab="维保标准" key="7" forceRender>
       <standard-of-maintenance :mainId="selectedMainId"/>
      </a-tab-pane>
      <a-tab-pane tab="保养点检标准" key="7" forceRender>
       <standard-of-maintenance :mainId="selectedMainId"/>
      <a-tab-pane tab="日保标准" key="7" forceRender>
        <daily-maintenance-list :mainId="selectedMainId"></daily-maintenance-list>
      </a-tab-pane>
      <a-tab-pane tab="二保标准" key="8" forceRender>
        <second-maintenance-list :mainId="selectedMainId"></second-maintenance-list>
      </a-tab-pane>
      <a-tab-pane tab="三保标准" key="9" forceRender>
        <third-maintenance-list :mainId="selectedMainId"></third-maintenance-list>
      </a-tab-pane>
    </a-tabs>
    <equipment-modal ref="modalForm" @ok="modalFormOk" :caytegoryParam="caytegoryParam"></equipment-modal>
@@ -467,10 +488,13 @@
  import EquipmentUpdateWarrantyList from './modules/equipmentNew/EquipmentUpdateWarrantyList.vue'
  import ABCUpdateEditModel from './modules/equipmentNew/edit/ABCUpdateEditModel'
  import WarrantyUpdateModel from './modules/equipmentNew/edit/WarrantyUpdateModel.vue'
  import EquipmentSpareParts from './modules/equipmentNew/EquipmentSpareParts.vue'
  import EquipmentSpareParts from './modules/equipmentNew/EquipmentSpareParts'
  import EquipmentSparePartsModal from './modules/equipmentNew/EquipmentSparePartsModal'
  import StandardOfInspection from './modules/equipmentNew/StandardOfInspection.vue'
  import StandardOfMaintenance from './modules/equipmentNew/StandardOfMaintenance.vue'
  import DailyMaintenanceList from './modules/equipmentNew/DailyMaintenanceList.vue'
  import SecondMaintenanceList from './modules/equipmentNew/SecondMaintenanceList.vue'
  import ThirdMaintenanceList from './modules/equipmentNew/ThirdMaintenanceList.vue'
  export default {
    name: "EquipmentList",
    mixins:[JeecgListMixin,mixinDevice],
@@ -491,6 +515,9 @@
        EquipmentSparePartsModal,
        StandardOfInspection,
        StandardOfMaintenance,
        DailyMaintenanceList,
        SecondMaintenanceList,
        ThirdMaintenanceList,
    },
    data () {
      return {
@@ -512,6 +539,11 @@
          title: '设备类型',
          align: "center",
          dataIndex: 'equipmentCategoryId_dictText',
        },
         {
          title: '是否生产线设备',
          align: "center",
          dataIndex: 'isLineEquip_dictText',
        },
        {
          title: '统一编码',
@@ -573,6 +605,16 @@
          align: "center",
          dataIndex: 'technologyStatusVerificationType_dictText',
        },
        {
          title: '生产线编号',
          align: "center",
          dataIndex: 'lineId_dictText',
        },
        {
          title: '主设备?',
          align: "center",
          dataIndex: 'isMeta_dictText',
        },
        // {
        //   title: '工区',
        //   align: "center",
src/views/eam/EquipmentListOfFilesCarousel.vue
@@ -121,6 +121,21 @@
              />
            </a-form-item>
          </a-col>
          <a-col :span="6">
            <a-form-item
              label="是否生产线设备"
              :labelCol="labelCol"
            :wrapperCol="wrapperCol"
            >
              <j-dict-select-tag
                allow-clear
                placeholder="请选择"
                :triggerChange="true"
                dictCode="is_product"
                v-model="queryParam.isLineEquip"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="6">
@@ -430,11 +445,17 @@
      <a-tab-pane tab="ABC标识变更记录" key="5" forceRender>
        <equipment-update-ABC-list :mainId="selectedMainId" />
      </a-tab-pane>
      <a-tab-pane tab="质保期变更记录" key="6" forceRender>
      <a-tab-pane tab="质保期变更" key="6" forceRender>
        <equipment-update-warranty-list :mainId="selectedMainId" />
      </a-tab-pane>
      <a-tab-pane tab="保养点检标准" key="7" forceRender>
       <standard-of-maintenance :mainId="selectedMainId"/>
      <a-tab-pane tab="日保标准" key="7" forceRender>
        <daily-maintenance-list :mainId="selectedMainId"></daily-maintenance-list>
      </a-tab-pane>
      <a-tab-pane tab="二保标准" key="8" forceRender>
        <second-maintenance-list :mainId="selectedMainId"></second-maintenance-list>
      </a-tab-pane>
      <a-tab-pane tab="三保标准" key="9" forceRender>
        <third-maintenance-list :mainId="selectedMainId"></third-maintenance-list>
      </a-tab-pane>
    </a-tabs>
    <equipment-modal ref="modalForm" @ok="modalFormOk" :caytegoryParam="caytegoryParam"></equipment-modal>
@@ -464,10 +485,13 @@
  import EquipmentUpdateWarrantyList from './modules/equipmentNew/EquipmentUpdateWarrantyList.vue'
  import ABCUpdateEditModel from './modules/equipmentNew/edit/ABCUpdateEditModel'
  import WarrantyUpdateModel from './modules/equipmentNew/edit/WarrantyUpdateModel.vue'
  import EquipmentSpareParts from './modules/equipmentNew/EquipmentSpareParts.vue'
  import EquipmentSpareParts from './modules/equipmentNew/EquipmentSpareParts'
  import EquipmentSparePartsModal from './modules/equipmentNew/EquipmentSparePartsModal'
  import StandardOfInspection from './modules/equipmentNew/StandardOfInspection.vue'
  import StandardOfMaintenance from './modules/equipmentNew/StandardOfMaintenance.vue'
  import DailyMaintenanceList from './modules/equipmentNew/DailyMaintenanceList.vue'
  import SecondMaintenanceList from './modules/equipmentNew/SecondMaintenanceList.vue'
  import ThirdMaintenanceList from './modules/equipmentNew/ThirdMaintenanceList.vue'
  export default {
    name: "EquipmentList",
    mixins:[JeecgListMixin,mixinDevice],
@@ -488,6 +512,9 @@
        EquipmentSparePartsModal,
        StandardOfInspection,
        StandardOfMaintenance,
        DailyMaintenanceList,
        SecondMaintenanceList,
        ThirdMaintenanceList,
    },
    data () {
      return {
@@ -509,6 +536,11 @@
          title: '设备类型',
          align: "center",
          dataIndex: 'equipmentCategoryId_dictText',
        },
        {
          title: '是否生产线设备',
          align: "center",
          dataIndex: 'isLineEquip_dictText',
        },
        {
          title: '统一编码',
@@ -570,6 +602,16 @@
          align: "center",
          dataIndex: 'technologyStatusVerificationType_dictText',
        },
        {
          title: '生产线编号',
          align: "center",
          dataIndex: 'lineId_dictText',
        },
        {
          title: '主设备?',
          align: "center",
          dataIndex: 'isMeta_dictText',
        },
        // {
        //   title: '工区',
        //   align: "center",
src/views/eam/EquipmentListOfPressureVessel.vue
@@ -121,6 +121,21 @@
              />
            </a-form-item>
          </a-col>
          <a-col :span="6">
            <a-form-item
              label="是否生产线设备"
              :labelCol="labelCol"
            :wrapperCol="wrapperCol"
            >
              <j-dict-select-tag
                allow-clear
                placeholder="请选择"
                :triggerChange="true"
                dictCode="is_product"
                v-model="queryParam.isLineEquip"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="6">
@@ -430,11 +445,17 @@
      <a-tab-pane tab="ABC标识变更记录" key="5" forceRender>
        <equipment-update-ABC-list :mainId="selectedMainId" />
      </a-tab-pane>
      <a-tab-pane tab="质保期变更记录" key="6" forceRender>
      <a-tab-pane tab="质保期变更" key="6" forceRender>
        <equipment-update-warranty-list :mainId="selectedMainId" />
      </a-tab-pane>
      <a-tab-pane tab="保养点检标准" key="7" forceRender>
       <standard-of-maintenance :mainId="selectedMainId"/>
      <a-tab-pane tab="日保标准" key="7" forceRender>
        <daily-maintenance-list :mainId="selectedMainId"></daily-maintenance-list>
      </a-tab-pane>
      <a-tab-pane tab="二保标准" key="8" forceRender>
        <second-maintenance-list :mainId="selectedMainId"></second-maintenance-list>
      </a-tab-pane>
      <a-tab-pane tab="三保标准" key="9" forceRender>
        <third-maintenance-list :mainId="selectedMainId"></third-maintenance-list>
      </a-tab-pane>
    </a-tabs>
    <equipment-modal ref="modalForm" @ok="modalFormOk" :caytegoryParam="caytegoryParam"></equipment-modal>
@@ -464,10 +485,13 @@
  import EquipmentUpdateWarrantyList from './modules/equipmentNew/EquipmentUpdateWarrantyList.vue'
  import ABCUpdateEditModel from './modules/equipmentNew/edit/ABCUpdateEditModel'
  import WarrantyUpdateModel from './modules/equipmentNew/edit/WarrantyUpdateModel.vue'
  import EquipmentSpareParts from './modules/equipmentNew/EquipmentSpareParts.vue'
  import EquipmentSpareParts from './modules/equipmentNew/EquipmentSpareParts'
  import EquipmentSparePartsModal from './modules/equipmentNew/EquipmentSparePartsModal'
  import StandardOfInspection from './modules/equipmentNew/StandardOfInspection.vue'
  import StandardOfMaintenance from './modules/equipmentNew/StandardOfMaintenance.vue'
  import DailyMaintenanceList from './modules/equipmentNew/DailyMaintenanceList.vue'
  import SecondMaintenanceList from './modules/equipmentNew/SecondMaintenanceList.vue'
  import ThirdMaintenanceList from './modules/equipmentNew/ThirdMaintenanceList.vue'
  export default {
    name: "EquipmentList",
    mixins:[JeecgListMixin,mixinDevice],
@@ -488,6 +512,9 @@
        EquipmentSparePartsModal,
        StandardOfInspection,
        StandardOfMaintenance,
        DailyMaintenanceList,
        SecondMaintenanceList,
        ThirdMaintenanceList,
    },
    data () {
      return {
@@ -509,6 +536,11 @@
          title: '设备类型',
          align: "center",
          dataIndex: 'equipmentCategoryId_dictText',
        },
        {
          title: '是否生产线设备',
          align: "center",
          dataIndex: 'isLineEquip_dictText',
        },
        {
          title: '统一编码',
@@ -570,6 +602,16 @@
          align: "center",
          dataIndex: 'technologyStatusVerificationType_dictText',
        },
        {
          title: '生产线编号',
          align: "center",
          dataIndex: 'lineId_dictText',
        },
        {
          title: '主设备?',
          align: "center",
          dataIndex: 'isMeta_dictText',
        },
        // {
        //   title: '工区',
        //   align: "center",
src/views/eam/EquipmentListOfProduct.vue
@@ -121,6 +121,21 @@
              />
            </a-form-item>
          </a-col>
          <a-col :span="6">
            <a-form-item
              label="是否生产线设备"
              :labelCol="labelCol"
            :wrapperCol="wrapperCol"
            >
              <j-dict-select-tag
                allow-clear
                placeholder="请选择"
                :triggerChange="true"
                dictCode="is_product"
                v-model="queryParam.isLineEquip"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="6">
@@ -430,11 +445,17 @@
      <a-tab-pane tab="ABC标识变更记录" key="5" forceRender>
        <equipment-update-ABC-list :mainId="selectedMainId" />
      </a-tab-pane>
      <a-tab-pane tab="质保期变更记录" key="6" forceRender>
      <a-tab-pane tab="质保期变更" key="6" forceRender>
        <equipment-update-warranty-list :mainId="selectedMainId" />
      </a-tab-pane>
      <a-tab-pane tab="保养点检标准" key="7" forceRender>
       <standard-of-maintenance :mainId="selectedMainId"/>
      <a-tab-pane tab="日保标准" key="7" forceRender>
        <daily-maintenance-list :mainId="selectedMainId"></daily-maintenance-list>
      </a-tab-pane>
      <a-tab-pane tab="二保标准" key="8" forceRender>
        <second-maintenance-list :mainId="selectedMainId"></second-maintenance-list>
      </a-tab-pane>
      <a-tab-pane tab="三保标准" key="9" forceRender>
        <third-maintenance-list :mainId="selectedMainId"></third-maintenance-list>
      </a-tab-pane>
    </a-tabs>
    <equipment-modal ref="modalForm" @ok="modalFormOk" :caytegoryParam="caytegoryParam"></equipment-modal>
@@ -464,10 +485,13 @@
  import EquipmentUpdateWarrantyList from './modules/equipmentNew/EquipmentUpdateWarrantyList.vue'
  import ABCUpdateEditModel from './modules/equipmentNew/edit/ABCUpdateEditModel'
  import WarrantyUpdateModel from './modules/equipmentNew/edit/WarrantyUpdateModel.vue'
  import EquipmentSpareParts from './modules/equipmentNew/EquipmentSpareParts.vue'
  import EquipmentSpareParts from './modules/equipmentNew/EquipmentSpareParts'
  import EquipmentSparePartsModal from './modules/equipmentNew/EquipmentSparePartsModal'
  import StandardOfInspection from './modules/equipmentNew/StandardOfInspection.vue'
  import StandardOfMaintenance from './modules/equipmentNew/StandardOfMaintenance.vue'
  import DailyMaintenanceList from './modules/equipmentNew/DailyMaintenanceList.vue'
  import SecondMaintenanceList from './modules/equipmentNew/SecondMaintenanceList.vue'
  import ThirdMaintenanceList from './modules/equipmentNew/ThirdMaintenanceList.vue'
  export default {
    name: "EquipmentList",
    mixins:[JeecgListMixin,mixinDevice],
@@ -488,6 +512,9 @@
        EquipmentSparePartsModal,
        StandardOfInspection,
        StandardOfMaintenance,
        DailyMaintenanceList,
        SecondMaintenanceList,
        ThirdMaintenanceList,
    },
    data () {
      return {
@@ -509,6 +536,11 @@
          title: '设备类型',
          align: "center",
          dataIndex: 'equipmentCategoryId_dictText',
        },
        {
          title: '是否生产线设备',
          align: "center",
          dataIndex: 'isLineEquip_dictText',
        },
        {
          title: '统一编码',
@@ -570,6 +602,16 @@
          align: "center",
          dataIndex: 'technologyStatusVerificationType_dictText',
        },
        {
          title: '生产线编号',
          align: "center",
          dataIndex: 'lineId_dictText',
        },
        {
          title: '主设备?',
          align: "center",
          dataIndex: 'isMeta_dictText',
        },
        // {
        //   title: '工区',
        //   align: "center",
src/views/eam/EquipmentListOfRide.vue
@@ -121,6 +121,21 @@
              />
            </a-form-item>
          </a-col>
          <a-col :span="6">
            <a-form-item
              label="是否生产线设备"
              :labelCol="labelCol"
            :wrapperCol="wrapperCol"
            >
              <j-dict-select-tag
                allow-clear
                placeholder="请选择"
                :triggerChange="true"
                dictCode="is_product"
                v-model="queryParam.isLineEquip"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="6">
@@ -430,11 +445,17 @@
      <a-tab-pane tab="ABC标识变更记录" key="5" forceRender>
        <equipment-update-ABC-list :mainId="selectedMainId" />
      </a-tab-pane>
      <a-tab-pane tab="质保期变更记录" key="6" forceRender>
      <a-tab-pane tab="质保期变更" key="6" forceRender>
        <equipment-update-warranty-list :mainId="selectedMainId" />
      </a-tab-pane>
      <a-tab-pane tab="保养点检标准" key="7" forceRender>
       <standard-of-maintenance :mainId="selectedMainId"/>
      <a-tab-pane tab="日保标准" key="7" forceRender>
        <daily-maintenance-list :mainId="selectedMainId"></daily-maintenance-list>
      </a-tab-pane>
      <a-tab-pane tab="二保标准" key="8" forceRender>
        <second-maintenance-list :mainId="selectedMainId"></second-maintenance-list>
      </a-tab-pane>
      <a-tab-pane tab="三保标准" key="9" forceRender>
        <third-maintenance-list :mainId="selectedMainId"></third-maintenance-list>
      </a-tab-pane>
    </a-tabs>
    <equipment-modal ref="modalForm" @ok="modalFormOk" :caytegoryParam="caytegoryParam"></equipment-modal>
@@ -464,10 +485,13 @@
  import EquipmentUpdateWarrantyList from './modules/equipmentNew/EquipmentUpdateWarrantyList.vue'
  import ABCUpdateEditModel from './modules/equipmentNew/edit/ABCUpdateEditModel'
  import WarrantyUpdateModel from './modules/equipmentNew/edit/WarrantyUpdateModel.vue'
  import EquipmentSpareParts from './modules/equipmentNew/EquipmentSpareParts.vue'
  import EquipmentSpareParts from './modules/equipmentNew/EquipmentSpareParts'
  import EquipmentSparePartsModal from './modules/equipmentNew/EquipmentSparePartsModal'
  import StandardOfInspection from './modules/equipmentNew/StandardOfInspection.vue'
  import StandardOfMaintenance from './modules/equipmentNew/StandardOfMaintenance.vue'
  import DailyMaintenanceList from './modules/equipmentNew/DailyMaintenanceList.vue'
  import SecondMaintenanceList from './modules/equipmentNew/SecondMaintenanceList.vue'
  import ThirdMaintenanceList from './modules/equipmentNew/ThirdMaintenanceList.vue'
  export default {
    name: "EquipmentList",
    mixins:[JeecgListMixin,mixinDevice],
@@ -488,6 +512,9 @@
        EquipmentSparePartsModal,
        StandardOfInspection,
        StandardOfMaintenance,
        DailyMaintenanceList,
        SecondMaintenanceList,
        ThirdMaintenanceList,
    },
    data () {
      return {
@@ -509,6 +536,11 @@
          title: '设备类型',
          align: "center",
          dataIndex: 'equipmentCategoryId_dictText',
        },
        {
          title: '是否生产线设备',
          align: "center",
          dataIndex: 'isLineEquip_dictText',
        },
        {
          title: '统一编码',
@@ -570,6 +602,16 @@
          align: "center",
          dataIndex: 'technologyStatusVerificationType_dictText',
        },
        {
          title: '生产线编号',
          align: "center",
          dataIndex: 'lineId_dictText',
        },
        {
          title: '主设备?',
          align: "center",
          dataIndex: 'isMeta_dictText',
        },
        // {
        //   title: '工区',
        //   align: "center",
src/views/eam/EquipmentListOfTester.vue
@@ -121,6 +121,21 @@
              />
            </a-form-item>
          </a-col>
          <a-col :span="6">
            <a-form-item
              label="是否生产线设备"
              :labelCol="labelCol"
            :wrapperCol="wrapperCol"
            >
              <j-dict-select-tag
                allow-clear
                placeholder="请选择"
                :triggerChange="true"
                dictCode="is_product"
                v-model="queryParam.isLineEquip"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="6">
@@ -430,11 +445,17 @@
      <a-tab-pane tab="ABC标识变更记录" key="5" forceRender>
        <equipment-update-ABC-list :mainId="selectedMainId" />
      </a-tab-pane>
      <a-tab-pane tab="质保期变更记录" key="6" forceRender>
      <a-tab-pane tab="质保期变更" key="6" forceRender>
        <equipment-update-warranty-list :mainId="selectedMainId" />
      </a-tab-pane>
      <a-tab-pane tab="保养点检标准" key="7" forceRender>
       <standard-of-maintenance :mainId="selectedMainId"/>
      <a-tab-pane tab="日保标准" key="7" forceRender>
        <daily-maintenance-list :mainId="selectedMainId"></daily-maintenance-list>
      </a-tab-pane>
      <a-tab-pane tab="二保标准" key="8" forceRender>
        <second-maintenance-list :mainId="selectedMainId"></second-maintenance-list>
      </a-tab-pane>
      <a-tab-pane tab="三保标准" key="9" forceRender>
        <third-maintenance-list :mainId="selectedMainId"></third-maintenance-list>
      </a-tab-pane>
    </a-tabs>
    <equipment-modal ref="modalForm" @ok="modalFormOk" :caytegoryParam="caytegoryParam"></equipment-modal>
@@ -464,10 +485,13 @@
  import EquipmentUpdateWarrantyList from './modules/equipmentNew/EquipmentUpdateWarrantyList.vue'
  import ABCUpdateEditModel from './modules/equipmentNew/edit/ABCUpdateEditModel'
  import WarrantyUpdateModel from './modules/equipmentNew/edit/WarrantyUpdateModel.vue'
  import EquipmentSpareParts from './modules/equipmentNew/EquipmentSpareParts.vue'
  import EquipmentSpareParts from './modules/equipmentNew/EquipmentSpareParts'
  import EquipmentSparePartsModal from './modules/equipmentNew/EquipmentSparePartsModal'
  import StandardOfInspection from './modules/equipmentNew/StandardOfInspection.vue'
  import StandardOfMaintenance from './modules/equipmentNew/StandardOfMaintenance.vue'
  import DailyMaintenanceList from './modules/equipmentNew/DailyMaintenanceList.vue'
  import SecondMaintenanceList from './modules/equipmentNew/SecondMaintenanceList.vue'
  import ThirdMaintenanceList from './modules/equipmentNew/ThirdMaintenanceList.vue'
  export default {
    name: "EquipmentList",
    mixins:[JeecgListMixin,mixinDevice],
@@ -488,6 +512,9 @@
        EquipmentSparePartsModal,
        StandardOfInspection,
        StandardOfMaintenance,
        DailyMaintenanceList,
        SecondMaintenanceList,
        ThirdMaintenanceList,
    },
    data () {
      return {
@@ -509,6 +536,11 @@
          title: '设备类型',
          align: "center",
          dataIndex: 'equipmentCategoryId_dictText',
        },
        {
          title: '是否生产线设备',
          align: "center",
          dataIndex: 'isLineEquip_dictText',
        },
        {
          title: '统一编码',
@@ -570,6 +602,16 @@
          align: "center",
          dataIndex: 'technologyStatusVerificationType_dictText',
        },
        {
          title: '生产线编号',
          align: "center",
          dataIndex: 'lineId_dictText',
        },
        {
          title: '主设备?',
          align: "center",
          dataIndex: 'isMeta_dictText',
        },
        // {
        //   title: '工区',
        //   align: "center",
src/views/eam/EquipmentListOfTruck.vue
@@ -121,6 +121,21 @@
              />
            </a-form-item>
          </a-col>
          <a-col :span="6">
            <a-form-item
              label="是否生产线设备"
              :labelCol="labelCol"
            :wrapperCol="wrapperCol"
            >
              <j-dict-select-tag
                allow-clear
                placeholder="请选择"
                :triggerChange="true"
                dictCode="is_product"
                v-model="queryParam.isLineEquip"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="6">
@@ -430,11 +445,17 @@
      <a-tab-pane tab="ABC标识变更记录" key="5" forceRender>
        <equipment-update-ABC-list :mainId="selectedMainId" />
      </a-tab-pane>
      <a-tab-pane tab="质保期变更记录" key="6" forceRender>
      <a-tab-pane tab="质保期变更" key="6" forceRender>
        <equipment-update-warranty-list :mainId="selectedMainId" />
      </a-tab-pane>
      <a-tab-pane tab="保养点检标准" key="7" forceRender>
       <standard-of-maintenance :mainId="selectedMainId"/>
      <a-tab-pane tab="日保标准" key="7" forceRender>
        <daily-maintenance-list :mainId="selectedMainId"></daily-maintenance-list>
      </a-tab-pane>
      <a-tab-pane tab="二保标准" key="8" forceRender>
        <second-maintenance-list :mainId="selectedMainId"></second-maintenance-list>
      </a-tab-pane>
      <a-tab-pane tab="三保标准" key="9" forceRender>
        <third-maintenance-list :mainId="selectedMainId"></third-maintenance-list>
      </a-tab-pane>
    </a-tabs>
    <equipment-modal ref="modalForm" @ok="modalFormOk" :caytegoryParam="caytegoryParam"></equipment-modal>
@@ -464,10 +485,13 @@
  import EquipmentUpdateWarrantyList from './modules/equipmentNew/EquipmentUpdateWarrantyList.vue'
  import ABCUpdateEditModel from './modules/equipmentNew/edit/ABCUpdateEditModel'
  import WarrantyUpdateModel from './modules/equipmentNew/edit/WarrantyUpdateModel.vue'
  import EquipmentSpareParts from './modules/equipmentNew/EquipmentSpareParts.vue'
  import EquipmentSpareParts from './modules/equipmentNew/EquipmentSpareParts'
  import EquipmentSparePartsModal from './modules/equipmentNew/EquipmentSparePartsModal'
  import StandardOfInspection from './modules/equipmentNew/StandardOfInspection.vue'
  import StandardOfMaintenance from './modules/equipmentNew/StandardOfMaintenance.vue'
  import DailyMaintenanceList from './modules/equipmentNew/DailyMaintenanceList.vue'
  import SecondMaintenanceList from './modules/equipmentNew/SecondMaintenanceList.vue'
  import ThirdMaintenanceList from './modules/equipmentNew/ThirdMaintenanceList.vue'
  export default {
    name: "EquipmentList",
    mixins:[JeecgListMixin,mixinDevice],
@@ -488,6 +512,9 @@
        EquipmentSparePartsModal,
        StandardOfInspection,
        StandardOfMaintenance,
        DailyMaintenanceList,
        SecondMaintenanceList,
        ThirdMaintenanceList,
    },
    data () {
      return {
@@ -509,6 +536,11 @@
          title: '设备类型',
          align: "center",
          dataIndex: 'equipmentCategoryId_dictText',
        },
        {
          title: '是否生产线设备',
          align: "center",
          dataIndex: 'isLineEquip_dictText',
        },
        {
          title: '统一编码',
@@ -570,6 +602,16 @@
          align: "center",
          dataIndex: 'technologyStatusVerificationType_dictText',
        },
        {
          title: '生产线编号',
          align: "center",
          dataIndex: 'lineId_dictText',
        },
        {
          title: '主设备?',
          align: "center",
          dataIndex: 'isMeta_dictText',
        },
        // {
        //   title: '工区',
        //   align: "center",
src/views/eam/EquipmentListOfWeldingMachine.vue
@@ -121,6 +121,21 @@
              />
            </a-form-item>
          </a-col>
          <a-col :span="6">
            <a-form-item
              label="是否生产线设备"
              :labelCol="labelCol"
            :wrapperCol="wrapperCol"
            >
              <j-dict-select-tag
                allow-clear
                placeholder="请选择"
                :triggerChange="true"
                dictCode="is_product"
                v-model="queryParam.isLineEquip"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="6">
@@ -430,11 +445,17 @@
      <a-tab-pane tab="ABC标识变更记录" key="5" forceRender>
        <equipment-update-ABC-list :mainId="selectedMainId" />
      </a-tab-pane>
      <a-tab-pane tab="质保期变更记录" key="6" forceRender>
      <a-tab-pane tab="质保期变更" key="6" forceRender>
        <equipment-update-warranty-list :mainId="selectedMainId" />
      </a-tab-pane>
      <a-tab-pane tab="保养点检标准" key="7" forceRender>
       <standard-of-maintenance :mainId="selectedMainId"/>
      <a-tab-pane tab="日保标准" key="7" forceRender>
        <daily-maintenance-list :mainId="selectedMainId"></daily-maintenance-list>
      </a-tab-pane>
      <a-tab-pane tab="二保标准" key="8" forceRender>
        <second-maintenance-list :mainId="selectedMainId"></second-maintenance-list>
      </a-tab-pane>
      <a-tab-pane tab="三保标准" key="9" forceRender>
        <third-maintenance-list :mainId="selectedMainId"></third-maintenance-list>
      </a-tab-pane>
    </a-tabs>
    <equipment-modal ref="modalForm" @ok="modalFormOk" :caytegoryParam="caytegoryParam"></equipment-modal>
@@ -464,10 +485,13 @@
  import EquipmentUpdateWarrantyList from './modules/equipmentNew/EquipmentUpdateWarrantyList.vue'
  import ABCUpdateEditModel from './modules/equipmentNew/edit/ABCUpdateEditModel'
  import WarrantyUpdateModel from './modules/equipmentNew/edit/WarrantyUpdateModel.vue'
  import EquipmentSpareParts from './modules/equipmentNew/EquipmentSpareParts.vue'
  import EquipmentSpareParts from './modules/equipmentNew/EquipmentSpareParts'
  import EquipmentSparePartsModal from './modules/equipmentNew/EquipmentSparePartsModal'
  import StandardOfInspection from './modules/equipmentNew/StandardOfInspection.vue'
  import StandardOfMaintenance from './modules/equipmentNew/StandardOfMaintenance.vue'
  import DailyMaintenanceList from './modules/equipmentNew/DailyMaintenanceList.vue'
  import SecondMaintenanceList from './modules/equipmentNew/SecondMaintenanceList.vue'
  import ThirdMaintenanceList from './modules/equipmentNew/ThirdMaintenanceList.vue'
  export default {
    name: "EquipmentList",
    mixins:[JeecgListMixin,mixinDevice],
@@ -488,6 +512,9 @@
        EquipmentSparePartsModal,
        StandardOfInspection,
        StandardOfMaintenance,
        DailyMaintenanceList,
        SecondMaintenanceList,
        ThirdMaintenanceList,
    },
    data () {
      return {
@@ -509,6 +536,11 @@
          title: '设备类型',
          align: "center",
          dataIndex: 'equipmentCategoryId_dictText',
        },
        {
          title: '是否生产线设备',
          align: "center",
          dataIndex: 'isLineEquip_dictText',
        },
        {
          title: '统一编码',
@@ -570,6 +602,16 @@
          align: "center",
          dataIndex: 'technologyStatusVerificationType_dictText',
        },
        {
          title: '生产线编号',
          align: "center",
          dataIndex: 'lineId_dictText',
        },
        {
          title: '主设备?',
          align: "center",
          dataIndex: 'isMeta_dictText',
        },
        // {
        //   title: '工区',
        //   align: "center",
src/views/eam/EquipmentOfLine.vue
@@ -61,7 +61,7 @@
        @click="searchReset"
        icon="reload"
      >重置</a-button>
      <a-button @click="handleAdd" type="primary" icon="plus" v-has="'equipmentAccount:add&delete&import&Edit'">新增</a-button>
      <a-button @click="handleAdd" type="primary" icon="plus" v-has="'line:add&edit&delete'">新增</a-button>
      <!-- <a-button type="primary" icon="download" @click="handleExportXls('设备台账')" v-has="'equipmentAccount:outport'">导出</a-button>
      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
        <a-button type="primary" icon="import"  v-has="'equipmentAccount:add&delete&import&Edit'">导入</a-button>
@@ -78,7 +78,7 @@
      <a-table
        ref="table"
        size="middle"
        size="small"
        bordered
        rowKey="id"
        :scroll="{x:true}"
@@ -119,20 +119,21 @@
        >详情</a>
        <a-divider type="vertical" />
        <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  v-has="'equipmentAccount:add&delete&import&Edit'">
            <a-menu-item  v-has="'line:add&edit&delete'">
             
            </a-menu-item>
            <a-menu-item>
              <a-popconfirm
                title="确定删除吗?"
                @confirm="() => handleDelete(record.id)"
                v-has="'equipmentAccount:add&delete&import&Edit'"
                v-has="'line:add&edit&delete'"
              >
                <a>删除</a>
              </a-popconfirm>
@@ -159,7 +160,7 @@
  import '@/assets/less/TableExpand.less'
  import JSearchSelectTag from '../../components/dict/JSearchSelectTag.vue'
  import EquipmentOfLineModal from './modules/line/EquipmentOfLineModal.vue'
  import EquipmentListOfLine from './modules/line/EquipmentListOfLine.vue'
  import EquipmentListOfLine from './modules/line/EquipmentListOfLine'
  export default {
    name: "EquipmentOfLine",
    mixins:[JeecgListMixin,mixinDevice],
@@ -188,16 +189,43 @@
          title: '生产线编码',
          align: "center",
          dataIndex: 'num',
          width: 200,
        },
        {
          title: '生产线名称',
          align: "center",
          dataIndex: 'name',
          width: 200,
        },
        {
          title: '使用部门',
          align: "center",
          dataIndex: 'useId_dictText',
          width: 150,
        },
        {
          title: '维护部门',
          align: "center",
          dataIndex: 'manageId_dictText',
          width: 150,
        },
        {
          title: '维修班组',
          align: "center",
          dataIndex: 'teamId_dictText',
          width: 150,
        },
        {
          title: '工区',
          align: "center",
          dataIndex: 'factoryModelId_dictText',
          width: 150,
        },
        {
          title: '设备总数',
          align: "center",
          dataIndex: 'sumOfEquipment',
          width: 150,
        },
        {
          title: '操作',
@@ -206,8 +234,7 @@
          scopedSlots: {
            customRender: 'action',
          },
          width: 147,
          fixed: 'right',
          width: 150,
        },
        ],
        url: {
src/views/eam/FaultInfoList.vue
@@ -108,7 +108,7 @@
        </template>
        <span slot="action" slot-scope="text, record">
          <a @click="handleEdit(record)" v-if="record.isConfirm!=='yes'">录入</a>
          <a @click="handleEdit(record)" v-if="record.isConfirm!=='yes'" v-has="'fault:update'">录入</a>
          <a-divider type="vertical" />
          <a @click="handleDetail(record)">详情</a>
@@ -117,7 +117,7 @@
            title="确认结果后不可再录入,确认吗?"
            @confirm="() => handleConfirm(record)"
          >
            <a v-if="record.isConfirm!=='yes'">确认</a>
            <a v-if="record.isConfirm!=='yes'" v-has="'fault:confirm'">确认</a>
          </a-popconfirm>
        </span>
src/views/eam/MalfunctionRepair.vue
@@ -193,6 +193,7 @@
        @click="handleAdd"
        type="primary"
        icon="plus"
        v-has="'report:add&edit'"
      >新增</a-button>
    </div>
@@ -215,7 +216,12 @@
          slot="action"
          slot-scope="text, record"
        >
          <a-popconfirm
          <a
            :disabled=" record.status !== '4'"
            @click="handleAccept(record)"
            v-has="'report:accept'"
          >验收</a>
          <!-- <a-popconfirm
            v-if="record.status == '1' || record.status == '4'"
            title="确认提交吗?"
            @confirm="() =>handleCommit(record, 'commit')"
@@ -271,9 +277,9 @@
                </a-popconfirm>
              </a-menu-item>
            </a-menu>
          </a-dropdown>
          </a-dropdown> -->
        </span>
        <span slot="faultDescription" slot-scope="text">
        <span slot="jell" slot-scope="text">
            <j-ellipsis :value="text" :length="10" />
        </span>
@@ -307,6 +313,10 @@
      @ok='approvalModalFormOk'
      @cancel='approvalModalFormOk'
    ></approvel-modal>
    <accept-model
    ref="acceptModel"
    @ok="modalFormOk"
    ></accept-model>
  </a-card>
</template>
  
@@ -321,6 +331,7 @@
import ApprovelModal from './modules/malfunctionRepair/ApprovelModal'
import JEllipsis from '@/components/jeecg/JEllipsis'
import moment from 'moment'
import AcceptModel from './modules/malfunctionRepair/AcceptModel'
export default {
  name: 'MalfunctionRepairList',
@@ -329,7 +340,8 @@
    MalfunctionRepairModal,
    FaultDescriptionList,
    ApprovelModal,
    JEllipsis
    JEllipsis,
    AcceptModel,
  },
  data() {
    return {
@@ -430,24 +442,27 @@
          align: "center",
          dataIndex: 'createBy'
        },
        // {
        //   title: '创建时间',
        //   align: "center",
        //   dataIndex: 'createTime',
        // },
        {
          title: '验收意见',
          align: "center",
          dataIndex: 'errUda5',
          scopedSlots: {
            customRender: 'jell'
          }
        },
        {
          title: '备注',
          align: "center",
          dataIndex: 'remark'
        },
        // {
        //   title: '操作',
        //   dataIndex: 'action',
        //   align: "center",
        //   fixed: "right",
        //   width: 200,
        //   scopedSlots: { customRender: 'action' }
        // }
        {
          title: '操作',
          dataIndex: 'action',
          align: "center",
          fixed: "right",
          width: 200,
          scopedSlots: { customRender: 'action' }
        }
      ],
      url: {
        list: "/eam/equipmentReportRepair/getReportRepairList",
@@ -632,6 +647,10 @@
    timeChange(){
      this.queryParam.faultStartTime = moment(this.faultTime[0]).format("YYYY-MM-DD HH:mm:ss")
      this.queryParam.faultEndTime = moment(this.faultTime[1]).format("YYYY-MM-DD HH:mm:ss")
    },
    handleAccept(record){
      this.$refs.acceptModel.title="验收"
      this.$refs.acceptModel.edit(record)
    }
  }
}
src/views/eam/QuanlityConfirmList.vue
@@ -118,7 +118,7 @@
        </template>
        <span slot="action" slot-scope="text, record">
          <a @click="handleEdit(record)" :disabled="record.isConfirm==='yes'">确认</a>
          <a @click="handleEdit(record)" :disabled="record.isConfirm==='yes'" v-has="'quanlity:confirm'">确认</a>
          <!-- <a-divider type="vertical" />
          <a-dropdown>
src/views/eam/RepairOrderList.vue
@@ -189,10 +189,10 @@
    <div class="table-operator">
      <a-dropdown>
        <a-menu slot="overlay">
          <a-menu-item
          <!-- <a-menu-item
            key="1"
            @click="handleAddPre(1)"
          ><a-icon type="smile" />自建</a-menu-item>
          ><a-icon type="smile" />自建</a-menu-item> -->
          <!-- <a-menu-item
            key="2"
            @click="handleAddPre(2)"
@@ -229,6 +229,7 @@
          type="primary"
          icon="plus"
          @click="getReports"
          v-has="'repair:accept'"
      >领取</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">
@@ -332,6 +333,7 @@
          <a
            v-if="record.status === '2' || record.status === '3' "
            @click="handleOrderExe(record)"
            v-has="'repair:excute'"
          >执行</a>
          <a-divider
            v-if="record.status === '2' || record.status === '3' "
@@ -523,7 +525,7 @@
          }
        },
        {
          title: '关键设备?',
          title: '关键设备',
          align: "center",
          dataIndex: 'specificEquipment',
          scopedSlots: { customRender: 'specificEquipment' }
@@ -958,13 +960,15 @@
  },
}
</script>
<style scoped>
<style lang="less" scoped>
@import '~@assets/less/common.less';
.error {
/deep/.error {
  color: red;
  font-weight: bold;
}
.primary {
/deep/.primary {
  color: rgb(255, 0, 251);
  font-weight: bold;
}
src/views/eam/TeamList.vue
@@ -10,6 +10,49 @@
        @keyup.enter.native="searchQuery"
      >
        <a-row :gutter="24">
          <a-col
            :md="6"
            :sm="8"
          >
            <a-form-item label="班组编码">
              <j-input
                placeholder="请输入班组编码检索"
                v-model="queryParam.num"
              ></j-input>
            </a-form-item>
          </a-col>
          <a-col
            :md="6"
            :sm="8"
          >
            <a-form-item label="班组名称">
              <j-input
                placeholder="请输入班组名称检索"
                v-model="queryParam.name"
              ></j-input>
            </a-form-item>
          </a-col>
          <a-col
            :md="6"
            :sm="8"
          >
            <span
              style="float: left;overflow: hidden;"
              class="table-page-search-submitButtons"
            >
              <a-button
                type="primary"
                @click="searchQuery"
                icon="search"
              >查询</a-button>
              <a-button
                type="primary"
                @click="searchReset"
                icon="reload"
                style="margin-left: 8px"
              >重置</a-button>
            </span>
          </a-col>
        </a-row>
      </a-form>
    </div>
@@ -59,7 +102,7 @@
    <!-- table区域-begin -->
    <div>
      <div
      <!-- <div
        class="ant-alert ant-alert-info"
        style="margin-bottom: 16px;"
      >
@@ -68,7 +111,7 @@
          style="margin-left: 24px"
          @click="onClearSelected"
        >清空</a>
      </div>
      </div> -->
      <a-table
        ref="table"
src/views/eam/modules/daily3MaintenanceOrder/DailyMaintenanceOrderExeDrawer.vue
@@ -286,6 +286,17 @@
                ></actual-work-hours-edit-table>
              </div>
            </a-tab-pane>
            <a-tab-pane
              tab='炉类报告'
              key="7"
            >
              <div
                class="table-operator"
                style="margin:-16px"
              >
                <stove-category-report-list :maintenanceStandardId='this.model.id' />
              </div>
            </a-tab-pane>
          </a-tabs>
        </a-card>
      </template>
@@ -333,6 +344,7 @@
import MaintenanceStandardWorkInstruction from '../dailyMaintenanceOrder/MaintenanceStandardWorkInstruction'
import ActualMaterialEditTable from '../dailyMaintenanceOrder/ActualMaterialEditTable.vue'
import ActualWorkHoursEditTable from '../dailyMaintenanceOrder/ActualWorkHoursEditTable.vue'
import StoveCategoryReportList from './StoveCategoryReportList.vue'
export default {
  name: 'DailyMaintenanceOrderExeDrawer',
@@ -345,7 +357,8 @@
    MaintenanceStandardSafetyRequirement,
    MaintenanceStandardWorkInstruction,
    ActualMaterialEditTable,
    ActualWorkHoursEditTable
    ActualWorkHoursEditTable,
    StoveCategoryReportList
  },
  data() {
    return {
@@ -359,6 +372,7 @@
      revocationDistable: false,
      currentNodeSelect: '',
      maintenanceStandardId: '-1',
      maintenanceOrderId: '-1',
      loading: false,
      dataSource: [],
      model: {},
@@ -473,6 +487,7 @@
    handleShow(record) {
      this.model = Object.assign({}, record);
      this.maintenanceStandardId = record.maintenanceStandardId
      this.maintenanceOrderId = record.id
      this.dataSource = []
      this.visible = true;
      this.queryParam.dailyMaintenanceOrderId = record.id
@@ -522,6 +537,8 @@
      return "background-color:rgba(127, 127, 127,0.08)";
    },
    handleCancel() {
      debugger
      this.maintenanceOrderId = '-1'
      this.$emit('ok');
      this.alterFlag = new Date();
      this.close()
src/views/eam/modules/daily3MaintenanceOrder/DailyMaintenanceStandard3List.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,228 @@
<template>
  <a-modal
    :title="title"
    :width="1250"
    :visible="visible"
    :confirmLoading="confirmLoading"
    @ok="handleOk"
    @cancel="handleCancel"
    cancelText="关闭"
  >
    <a-spin :spinning="confirmLoading">
      <a-form :form="form">
        <!-- æŸ¥è¯¢åŒºåŸŸ -->
        <div class="table-page-search-wrapper">
          <a-form
            layout="inline"
            @keyup.enter.native="searchQuery"
          >
            <a-row :gutter="24">
              <a-col
                :md="6"
                :sm="8"
              >
                <a-form-item label="标准编号">
                  <a-input
                    placeholder="请输入标准编号检索"
                    v-model="queryParam.num"
                  ></a-input>
                </a-form-item>
              </a-col>
              <a-col
                :md="6"
                :sm="8"
              >
                <a-form-item label="设备名称">
                  <a-input
                    placeholder="请输入设备名称检索"
                    v-model="queryParam.equipmentName"
                  ></a-input>
                </a-form-item>
              </a-col>
              <a-col
                :md="6"
                :sm="8"
              >
                <a-button
                  type="primary"
                  @click="searchQuery"
                  icon="search"
                >查询</a-button>
                <a-button
                  @click="searchReset"
                  icon="reload"
                  style="margin-left:8px;"
                >重置</a-button>
              </a-col>
            </a-row>
            <a-row :gutter="24">
              <a-col :span="24">
              </a-col>
            </a-row>
          </a-form>
        </div>
        <div style="margin-top:8px;">
          <a-table
            ref="table"
            bordered
            size="middle"
            rowKey="id"
            :columns="columns"
            :dataSource="dataSource"
            :pagination="ipagination"
            :loading="loading"
            :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange, type: 'radio'}"
            @change="handleTableChange"
            :customRow="clickThenCheck"
          >
          </a-table>
        </div>
      </a-form>
    </a-spin>
  </a-modal>
</template>
<script>
import pick from 'lodash.pick'
import { httpAction, getAction } from '@/api/manage'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import JInput from '@/components/jeecg/JInput'
import JEllipsis from '@/components/jeecg/JEllipsis'//引入过长裁剪
export default {
  name: "DailyMaintenanceStandardList",
  mixins: [JeecgListMixin],
  components: {
    JInput,
    JEllipsis,
  },
  data() {
    return {
      title: "操作",
      visible: false,
      model: {},
      confirmLoading: false,
      form: this.$form.createForm(this),
      columns: [
        {
          title: '#',
          dataIndex: '',
          key: 'rowIndex',
          align: 'center',
          width: 40,
          customRender: function (t, r, index) {
            return parseInt(index) + 1
          },
        },
        {
          title: '标准编码',
          align: 'center',
          dataIndex: 'num',
        },
        {
          title: '统一编码',
          align: 'center',
          dataIndex: 'equipmentNum',
        },
        {
          title: '设备名称',
          align: 'center',
          dataIndex: 'equipmentName',
        },
        {
          title: '设备型号',
          align: 'center',
          dataIndex: 'equipmentModel',
        },
        {
          title: '特种设备',
          align: 'center',
          dataIndex: 'specificEquipment',
        },
      ],
      url: {
        list: "/eam/maintenanceStandard/getMaintenanceStandard3List",
      },
      useId: '',
    }
  },
  methods: {
    searchQuery() {
      this.queryParam = { type: "daily", delFlag: '0', useId: this.useId, maintenanceType: '3' };
      this.loadData(1);
    },
    searchReset() {
      this.queryParam = { type: "daily", delFlag: '0', useId: this.useId, maintenanceType: '3' };
      this.loadData(1)
    },
    list(useId) {
      this.visible = true;
      this.useId = useId;
      this.queryParam = { type: "daily", delFlag: '0', useId: useId, versionStatus: '2', maintenanceType: '3' };
      this.loadData(1);
    },
    clickThenCheck(record) {
      return {
        on: {
          click: (e) => {
            this.selectedRowRecord = record;
            this.onSelectChange(record.id.split(","), [record]);
          }
        }
      };
    },
    onSelectChange(selectedRowKeys, selectedRows) {
      this.selectedRowKeys = selectedRowKeys;
      this.selectedRowRecord = selectedRows[0];
    },
    close() {
      this.queryParam = {};
      this.$emit('close');
      this.visible = false;
    },
    handleOk() {
      const that = this;
      // è§¦å‘表单验证
      if (that.selectedRowKeys.length > 0) {
        if (that.selectedRowRecord.id != null && that.selectedRowRecord.id != "") {
          that.$emit('send3MaintenanceStandardRecord', { record: that.selectedRowRecord });
          that.close();
        } else {
          that.$message.error("请选择保养标准!")
        }
      } else {
        that.$message.error("请选择保养标准!")
      }
    },
    handleCancel() {
      this.close();
    }
  }
}
</script>
<style scoped>
@import '~@assets/less/common.less';
rozenRowClass {
  color: #c9c9c9;
}
.success {
  color: green;
}
.error {
  color: red;
}
.fontweight {
  font-weight: bold;
}
.ant-card {
  margin-left: -30px;
  margin-right: -30px;
}
.fontweight {
  font-weight: bold;
}
</style>
src/views/eam/modules/daily3MaintenanceOrder/MaintenanceOrder3Modal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,747 @@
<template>
  <a-modal
    :title="title"
    :width="1250"
    :visible="visible"
    :maskClosable="false"
    @ok="handleOk"
    cancelText="关闭"
    @cancel="handleCancel"
    :confirmLoading="confirmLoading"
  >
    <a-spin :spinning="confirmLoading">
      <a-form :form="form">
        <a-row :gutter="24">
          <a-col :span="12">
            <a-form-item
              label="保养工单"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
            >
              <a-input
                allow-clear
                :disabled="codeDisable"
                :placeholder="disableSubmit?'':'请输入保养工单编码'"
                v-decorator="['num', validatorRules.num ]"
              />
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item
              label="使用部门"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
            >
              <a-select
                :disabled="disableSubmit"
                :placeholder="disableSubmit?'':'请选择使用部门'"
                :options="this.departs"
                style="width: 100%"
                v-decorator="['useId', validatorRules.useId]"
                @change="(e)=>handle2Change(e)"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="12">
            <a-form-item
              label="保养标准"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
            >
              <!-- <j-dict-select-tag
                allow-clear
                :disabled="codeDisable"
                :placeholder="disableSubmit?'':'请选择保养标准'"
                :triggerChange="true"
                dictCode=""
                @change="(e)=>handleChange(e)"
                v-decorator="['maintenanceStandardId', validatorRules.maintenanceStandardId]"
              /> -->
              <a-input-search
                :disabled="disableSubmit"
                placeholder="请选择保养标准"
                enter-button
                @search="onSearchMaintenanceStandard()"
                :read-only="true"
                v-decorator="['maintenanceStandardNum', validatorRules.maintenanceStandardNum]"
              />
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item
              label="统一编码/名称/型号"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
            >
              <a-input
                allow-clear
                :disabled="true"
                :placeholder="disableSubmit?'':'请输入统一编码/名称/型号'"
                v-decorator="['equipmentNum', validatorRules.equipmentNum ]"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row
          hidden
          :gutter="24"
        >
          <a-col :span="12">
            <a-form-item
              label="保养标准Id"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
            >
              <a-input
                allow-clear
                :disabled="true"
                :placeholder="disableSubmit?'':'请输入保养标准Id'"
                v-decorator="['maintenanceStandardId', validatorRules.maintenanceStandardId ]"
              />
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item
              label="设备Id"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
            >
              <a-input
                allow-clear
                :disabled="true"
                :placeholder="disableSubmit?'':'请输入统一编码/名称/型号'"
                v-decorator="['equipmentId', validatorRules.equipmentId ]"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="12">
            <a-form-item
              label="保养周期"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
            >
              <a-select
                :placeholder="disableSubmit?'':'请选择保养周期'"
                :options="this.maintenanceCycles"
                @change="(e)=>handle3Change(e)"
                style="width: 100%"
                :disabled="disableSubmit"
                v-decorator="['maintenanceCycleId', validatorRules.maintenanceCycleId]"
              />
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item
              label="计划开始时间"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
            >
              <j-date
                :disabled="disableSubmit"
                v-decorator="['planStartTime', validatorRules.planStartTime ]"
                placeholder="请选择计划开始时间"
                style="width: 100%"
                :showTime="true"
                dateFormat="YYYY-MM-DD HH:mm:ss"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="24 / 2">
            <a-form-item
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              label="派工方式"
            >
              <j-dict-select-tag
                allow-clear
                :disabled="true"
                :placeholder="disableSubmit?'':'请选择派工方式'"
                :triggerChange="true"
                dictCode="assign_mode"
                v-decorator="['assignMode', validatorRules.assignMode]"
              />
            </a-form-item>
          </a-col>
          <a-col :span="24 / 2">
            <a-form-item
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              label="责任班组"
            >
              <a-input
                allow-clear
                :disabled="true"
                :placeholder="disableSubmit?'':'请输入责任班组'"
                v-decorator="['teamName', validatorRules.teamName ]"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row
          hidden
          :gutter="24"
        >
          <a-col :span="12">
            <a-form-item
              label="有效时长"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
            >
              <a-input-number
                style="width: 100%"
                allow-clear
                :disabled="true"
                :placeholder="disableSubmit?'':'请输入有效时长'"
                v-decorator="['effectiveTime', validatorRules.effectiveTime ]"
              />
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item
              label="时间单位"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
            >
              <a-input
                allow-clear
                :disabled="true"
                :placeholder="disableSubmit?'':'请输入时间单位'"
                v-decorator="['unit', validatorRules.unit ]"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col
            v-if="!isHidden"
            :span="12"
          >
            <a-form-item
              label="责任人"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
            >
              <a-input-search
                :disabled="disableSubmit"
                placeholder="责任人"
                enter-button
                @search="onDutyUserList()"
                :read-only="true"
                v-decorator="['maintenanceUserName', validatorRules.maintenanceUserName]"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row
          hidden
          :gutter="24"
        >
          <a-col :span="12">
            <a-form-item
              label="责任班组"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
            >
              <a-input
                allow-clear
                :disabled="true"
                :placeholder="disableSubmit?'':'请输入责任班组'"
                v-decorator="['teamId', validatorRules.teamId ]"
              />
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item
              label="责任人/点检人"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
            >
              <a-input
                allow-clear
                :disabled="true"
                :placeholder="disableSubmit?'':'请输入责任人/点检人'"
                v-decorator="['maintenanceUserId', validatorRules.maintenanceUserId ]"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="24">
            <a-form-item
              :labelCol="{span:3}"
              :wrapperCol="{span:21}"
              label="备注"
            >
              <a-textarea
                allow-clear
                :disabled="disableSubmit"
                :placeholder="disableSubmit?'':'请输入备注'"
                v-decorator="['remark', validatorRules.remark]"
              />
            </a-form-item>
          </a-col>
        </a-row>
      </a-form>
    </a-spin>
    <a-table
      ref="table"
      bordered
      size="middle"
      rowKey='id'
      :columns="columns"
      :dataSource="dataSource"
      :pagination="false"
    >
      <!-- <span
        slot="photo"
        slot-scope="text,record"
      >
        <Tooltip
          placement="top"
          title="预览图片"
        >
          <img
            v-if=" record.upload.path && (record.upload.format.toLowerCase()=='jpg'||record.upload.format.toLowerCase()=='bmp'||record.upload.format.toLowerCase()=='png'||record.upload.format.toLowerCase()=='jpeg'||record.upload.format.toLowerCase()=='gif')"
            width="30"
            height="14"
            border="1"
            draggable="false"
            preview="1"
            :preview-text="''"
            :src="record.upload.src"
          />
        </Tooltip>
        <a
          v-if="record.upload.path && record.upload.format.toLowerCase()=='pdf'"
          href="javascript:;"
          @click="view(record.upload)"
        >
          é¢„览
        </a>
      </span> -->
      <template
        slot="photo"
        slot-scope="text,record"
      >
        <span
          v-if="!text"
          style="font-size: 12px;font-style: italic;"
        >无图片</span>
        <img
          v-else
          :src="getImgView(text)"
          :preview="record.maintenanceStandardDetailId"
          height="25px"
          alt=""
          style="max-width:80px;font-size: 12px;font-style: italic;"
        />
      </template>
      <!-- <span
        slot="action"
        slot-scope="text, record, index"
      >
        <a-popconfirm
          title="确定删除吗?"
          @confirm="() => handleDelete(text,record, index)"
        >
          <a>删除</a>
        </a-popconfirm>
      </span> -->
    </a-table>
    <template slot="footer">
      <a-button
        :style="{marginRight: '8px'}"
        @click="handleCancel()"
      >
        å…³é—­
      </a-button>
      <a-button
        @click="handleOk()"
        type="primary"
        :loading="confirmLoading"
        :disabled="disableSubmit || confirmLoading"
      >确定</a-button>
    </template>
    <daily-maintenance-standard3-list
      ref="DailyMaintenanceStandard3List"
      @send3MaintenanceStandardRecord='send3MaintenanceStandardRecord'
    ></daily-maintenance-standard3-list>
    <user-list
      ref="UserList"
      @sendDutyUserRecord='sendDutyUserRecord'
    ></user-list>
  </a-modal>
</template>
<script>
import { getAction, postAction, requestPut } from '@/api/manage'
import pick from 'lodash.pick'
import JMultiSelectTag from '@/components/dict/JMultiSelectTag'
import Tooltip from 'ant-design-vue/es/tooltip'
import DailyMaintenanceStandard3List from './DailyMaintenanceStandard3List'
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import { preview } from 'vue-photo-preview'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import Vue from 'vue'
import PdfView from '@views/common/PdfView'
import { getFileAccessHttpUrl } from '@/api/manage';
import UserList from '.././dailyInspectionOrder/UserList'
export default {
  name: "MaintenanceOrderModal",
  mixins: [JeecgListMixin],
  components: {
    JMultiSelectTag,
    Tooltip,
    PdfView,
    preview,
    DailyMaintenanceStandard3List,
    UserList
  },
  data() {
    return {
      columns: [
        {
          title: '#',
          dataIndex: '',
          key: 'rowIndex',
          align: 'center',
          customRender: function (t, r, index) {
            return parseInt(index) + 1
          },
          width: 50,
        },
        {
          title: '部位',
          align: 'center',
          dataIndex: 'location'
        },
        {
          title: '保养项目',
          align: 'center',
          dataIndex: 'maintenanceProjectName'
        },
        {
          title: '保养标准',
          align: 'center',
          dataIndex: 'standard'
        },
        // {
        //   title: '方法',
        //   align: 'center',
        //   dataIndex: 'maintenanceMethod'
        // },
        // {
        //   title: '工具',
        //   align: 'center',
        //   dataIndex: 'maintenanceTool'
        // },
        // {
        //   title: '示意图',
        //   align: 'center',
        //   dataIndex: 'photo',
        //   scopedSlots: { customRender: 'photo' }
        // },
        // {
        //   title: '维保专业',
        //   align: 'center',
        //   dataIndex: 'maintenanceSpecialty',
        // },
      ],
      title: "操作",
      visible: false,
      disableSubmit: false,
      codeDisable: true,
      isHidden: true,
      dataSource: [],
      model: {},
      departs: [],
      maintenanceCycles: [],
      labelCol: {
        xs: { span: 24 },
        sm: { span: 6 },
      },
      wrapperCol: {
        xs: { span: 24 },
        sm: { span: 18 },
      },
      confirmLoading: false,
      form: this.$form.createForm(this),
      validatorRules: {
        num: {
          rules: [
            { required: true, message: '请输入保养工单编码!' },
          ]
        },
        useId: {
          rules: [
            { required: false, message: '请选择使用部门!' },
          ]
        },
        maintenanceCycleId: {
          rules: [
            { required: true, message: '请选择保养周期!' },
          ]
        },
        maintenanceStandardNum: {
          rules: [
            { required: true, message: '请选择保养标准!' },
          ]
        },
        equipmentNum: {
          rules: [
            { required: true, message: '请选择设备!' },
          ]
        },
        maintenanceUserName: {
          rules: [
            { required: true, message: '请维护责任人!' },
          ]
        },
        assignMode: {
          rules: [
            { required: true, message: '请维护派工方式!' },
          ]
        },
        teamName: {
          rules: [
            { required: true, message: '请维护责任班组!' },
          ]
        },
        planStartTime: {
          rules: [
            { required: true, message: '请维护计划开始时间!' },
          ]
        }
      },
      url: {
        add: "/eam/dailyMaintenanceOrder/add",
        edit: "/eam/dailyMaintenanceOrder/edit",
        getCycleByStandardId: "/eam/dailyMaintenanceOrder/getMaintenanceCycleByStandardId",
        getMaintenanceProjectList: "/eam/dailyMaintenanceOrder/getMaintenanceProjectId",
        getSysDeparts: "/eam/dailyMaintenanceOrder/getSysDeparts",
        list: "/eam/dailyMaintenanceOrder/getMaintenanceCycleByStandardId",
        getNum: '/eam/sysIdentity/getNumNew'
      },
    }
  },
  methods: {
    add() {
      this.edit({})
      this.getSeq()
    },
    edit(record) {
      let that = this;
      this.getSysDeparts()
      this.form.resetFields();
      this.model = Object.assign({}, record);
      this.visible = true;
      this.maintenanceCycles = record.maintenanceCycles
      if (record.dailyMaintenanceDetails != undefined) {
        const temp = [...record.dailyMaintenanceDetails];
        that.dataSource = temp;
        // for (let i = 0; i < temp.length; i++) {
        //   let r = temp[i].upload;
        //   r.src = this.getSrc(temp[i].upload);
        // }
      }
      that.$nextTick(() => {
        that.form.setFieldsValue(pick(that.model, 'num', 'useId', 'maintenanceStandardNum',
          'effectiveTime', 'equipmentNum', 'maintenanceStandardId', 'equipmentId', 'maintenanceCycleId',
          'planStartTime', 'assignMode', 'teamName', 'unit', 'teamId', 'remark'));
      });
      if (record.id) {
        if ("3" == record.assignMode) {
          this.isHidden = false
        } else {
          this.isHidden = true
        }
        this.codeDisable = true;
      } else {
        this.isHidden = true
        this.codeDisable = false;
      }
    },
    onDutyUserList() {
      let data = this.form.getFieldsValue(['teamId']);
      if (data.teamId == null || data.teamId == "") {
        this.$message.warning("请先维护班组!");
        return
      }
      this.$refs.UserList.list(data.teamId);
      this.$refs.UserList.title = "选择人员";
    },
    sendDutyUserRecord(data) {
      let record = data.record;
      this.form.setFieldsValue({ maintenanceUserId: record.id, maintenanceUserName: record.username + "/" + record.realname });
    },
    close() {
      this.$emit('close');
      this.visible = false;
    },
    handleCancel() {
      this.close();
    },
    handleOk() {
      const that = this;
      this.form.validateFields((err, values) => {
        if (!err) {
          that.confirmLoading = true;
          let formData = Object.assign(this.model, values);
          formData.dailyMaintenanceOrderDetails = that.dataSource;
          let obj;
          if (!this.model.id) {
            obj = postAction(this.url.add, formData);
          } else {
            obj = requestPut(this.url.edit, formData, { id: this.model.id });
          }
          obj.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();
          })
        }
      })
    },
    handleDelete(text, record, index) {
      this.dataSource.splice(index, 1);
    },
    onSearchMaintenanceStandard() {
      let data = this.form.getFieldsValue(['useId']);
      // if (data.useId == null || data.useId == "") {
      //   this.$message.warning("请先选择使用部门!");
      //   return
      // }
      this.$refs.DailyMaintenanceStandard3List.list(data.useId);
      this.$refs.DailyMaintenanceStandard3List.title = "选择日常保养标准";
    },
    send3MaintenanceStandardRecord(data) {
      let record = data.record;
      this.form.setFieldsValue({ equipmentId: record.equipmentId, maintenanceStandardId: record.id, equipmentNum: record.equipmentNum, maintenanceStandardNum: record.num, maintenanceCycleId: null });
      this.form.setFieldsValue({ assignMode: record.assignMode, teamId: record.teamId, teamName: record.teamName });
      this.getCycleByStandardId(record.id);
      if ("3" == record.assignMode) {
        this.isHidden = false
      } else {
        this.isHidden = true
      }
    },
    getCycleByStandardId(maintenanceStandardId) {
      getAction(this.url.getCycleByStandardId, { maintenanceStandardId: maintenanceStandardId }).then((res) => {
        if (res.success) {
          this.maintenanceCycles = res.result
          this.dataSource = [];
        }
      })
    },
    getSysDeparts() {
      getAction(this.url.getSysDeparts).then((res) => {
        if (res.success) {
          this.departs = res.result
        }
      })
    },
    getSeq() {
      getAction(this.url.getNum, { type: 'MaintenanceOrder', length: 4 }).then(res => {
        if (res.success) {
          this.form.setFieldsValue({ "num": res.result })
        }
      })
    },
    handle3Change(val) {
      let data = this.form.getFieldsValue(['maintenanceStandardId']);
      getAction(this.url.getMaintenanceProjectList, { maintenanceStandardId: data.maintenanceStandardId, maintenanceCycleId: val }).then((res) => {
        if (res.success) {
          this.dataSource = res.result;
          if (res.result.length == 0) {
            this.form.setFieldsValue({ "effectiveTime": null, "unit": null })
          } else {
            this.form.setFieldsValue({ "effectiveTime": res.result[0].effectiveTime, "unit": res.result[0].unit })
          }
        }
      })
    },
    handle2Change(val) {
      this.maintenanceCycles = [];
      this.dataSource = [];
      this.form.setFieldsValue({ equipmentId: null, maintenanceStandardId: null, equipmentNum: null, maintenanceStandardNum: null, maintenanceCycleId: null })
    },
    // handleChange(value, key, column, index) {
    //   let that = this;
    //   const temp = [...that.dataSource];
    //   const target = temp.filter(item => key === item.key)[index];
    //   if (target) {
    //     if (column.dataIndex == 'inspectionCycleId') {
    //       target[column.dataIndex] = value;
    //     }
    //     //显示带过来的数据
    //     that.dataSource = temp;
    //   }
    // },
  },
}
</script>
<style lang="less" scoped>
/deep/ .frozenRowClass {
  color: #c9c9c9;
}
.fontweight {
  font-weight: bold;
}
.ant-btn {
  padding: 0 10px;
  margin-left: 3px;
}
.ant-form-item-control {
  line-height: 0px;
}
/** ä¸»è¡¨å•行间距 */
.ant-form .ant-form-item {
  margin-bottom: 10px;
}
/** Tab页面行间距 */
.ant-tabs-content .ant-form-item {
  margin-bottom: 0px;
}
</style>
src/views/eam/modules/daily3MaintenanceOrder/StoveCategoryReportList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,319 @@
<template>
  <a-card
    :bordered="false"
    :class="'cust-erp-sub-tab'"
  >
    <!-- æŸ¥è¯¢åŒºåŸŸ -->
    <div class="table-page-search-wrapper">
      <a-form
        layout="inline"
        @keyup.enter.native="searchQuery"
      >
        <a-row :gutter="24">
        </a-row>
      </a-form>
    </div>
    <div>
      <a-table
        ref="table"
        size="middle"
        bordered
        rowKey="id"
        :scroll="{x:true}"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        @change="handleTableChange"
      >
        <span
          slot="size"
          slot-scope="text"
          class="error"
        >
          {{sizeConvert(text)}}
        </span>
        <span
          slot="action"
          slot-scope="text, record"
        >
          <Tooltip
            placement="top"
            title="预览图片"
          >
            <img
              v-if="record.upload.path && (record.upload.format.toLowerCase()=='jpg'||record.upload.format.toLowerCase()=='bmp'||record.upload.format.toLowerCase()=='png'||record.upload.format.toLowerCase()=='jpeg'||record.upload.format.toLowerCase()=='gif')"
              width="30"
              height="14"
              border="1"
              draggable="false"
              preview="1"
              :preview-text="''"
              :src="record.upload.src"
            />
          </Tooltip>
          <a
            v-if="record.upload.path && record.upload.format.toLowerCase()=='pdf'"
            href="javascript:;"
            @click="view(record)"
          >
            é¢„览
          </a>
          <a-divider
            v-if="record.upload.path && (record.upload.format.toLowerCase()=='jpg'||record.upload.format.toLowerCase()=='bmp'||record.upload.format.toLowerCase()=='png'||record.upload.format.toLowerCase()=='jpeg'||record.upload.format.toLowerCase()=='gif'||record.upload.format.toLowerCase()=='pdf')"
            type="vertical"
          />
          <a
            href="javascript:;"
            @click="handleDownload(record)"
          >下载</a>
          <!--
          <a-divider type="vertical" />
          <a-popconfirm
            title="确定删除吗?"
            @confirm="() => handleDelete(record.id)"
          >
            <a>删除</a>
          </a-popconfirm> -->
        </span>
      </a-table>
    </div>
    <pdf-view ref="pdfview"></pdf-view>
  </a-card>
</template>
<script>
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import { getAction, deleteAction, downFile } from '@/api/manage'
import Tooltip from 'ant-design-vue/es/tooltip'
import JInput from '@/components/jeecg/JInput'
import JEllipsis from "@/components/jeecg/JEllipsis";
import { preview } from 'vue-photo-preview'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import Vue from 'vue'
import PdfView from '@views/common/PdfView'
import { getFileAccessHttpUrl } from '@/api/manage';
import store from '@/store/'
export default {
  name: "MaintenanceStandardWorkInstruction",
  components: {
    Tooltip,
    JInput,
    JEllipsis,
    PdfView,
    preview,
  },
  mixins: [JeecgListMixin],
  props: {
    maintenanceStandardId: {
      type: String,
      default: '-1',
      required: false
    }
  },
  watch: {
    maintenanceStandardId: {
      immediate: true,
      handler(val) {
        if (!this.maintenanceStandardId) {
          this.clearList()
        } else {
          this.queryParam['maintenanceStandardId'] = val;
          this.queryParam['delFlag'] = 0;
          this.loadData(1);
        }
      }
    }
  },
  data() {
    return {
      columns: [
        {
          title: '#',
          dataIndex: '',
          key: 'rowIndex',
          width: 100,
          align: "center",
          customRender: function (t, r, index) {
            return parseInt(index) + 1;
          }
        },
        {
          title: '报告编码',
          align: 'center',
          dataIndex: 'num'
        },
        {
          title: '报告名称',
          align: 'center',
          dataIndex: 'name'
        },
        // {
        //   title: '报告类型',
        //   align: 'center',
        //   dataIndex: 'typeName'
        // },
        {
          title: '报告大小',
          align: 'center',
          dataIndex: 'size',
          scopedSlots: { customRender: 'size' },
        },
        {
          title: '操作',
          align: 'center',
          dataIndex: 'action',
          scopedSlots: {
            customRender: 'action'
          },
        }
      ],
      url: {
        list: "/eam/maintenanceStandardWorkInstruction/getMaintenanceStandardWorkInstructionList",
        urlDownload: window._CONFIG['staticDomainURL'],
        download: '/sys/upload/downloadFile',
      },
    }
  },
  methods: {
    clearList() {
      this.dataSource = []
      this.selectedRowKeys = []
      this.ipagination.current = 1
    },
    loadData(arg) {
      if (!this.url.list) {
        this.$message.error("请设置url.list属性!")
        return
      }
      //加载数据 è‹¥ä¼ å…¥å‚æ•°1则加载第一页的内容
      if (arg === 1) {
        this.ipagination.current = 1;
      }
      var params = this.getQueryParams();//查询条件
      this.loading = true;
      getAction(this.url.list, params).then((res) => {
        if (res.success) {
          for (let i = 0; i < res.result.records.length; i++) {
            let r = res.result.records[i].upload;
            r.src = this.getSrc(res.result.records[i].upload);
          }
          this.dataSource = res.result.records || res.result;
          if (res.result.total) {
            this.ipagination.total = res.result.total;
          } else {
            this.ipagination.total = 0;
          }
          //update-end---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
        } else {
          this.$message.warning(res.message)
        }
      }).finally(() => {
        this.loading = false
      })
    },
    handleDownload(record) {
      downFile(this.url.download, { id: record.upload.id }).then((res) => {
        if (!res) {
          this.$message.warning('文件下载失败')
          return
        } else {
          let fileName = record.name;
          if (typeof window.navigator.msSaveBlob !== 'undefined') {
            window.navigator.msSaveBlob(new Blob([res]), fileName);
          } else {
            let url = window.URL.createObjectURL(new Blob([res]));
            let link = document.createElement('a');
            link.style.display = 'none';
            link.href = url;
            link.setAttribute('download', fileName);
            document.body.appendChild(link);
            link.click()
            document.body.removeChild(link) //下载完成移除元素
            window.URL.revokeObjectURL(url) //释放掉blob对象
          }
        }
      })
    },
    //拼装src
    getSrc(record) {
      if (!record.path) {
        return '';
      }
      //本地:local\Minio:minio\阿里云:alioss
      if (record.uploadType == 'local') {
        let ssoLoginFlag = Vue.ls.get("ssoLoginFlag");
        let deployMode = Vue.ls.get("deployMode");
        if (ssoLoginFlag && deployMode == "container") {
          var baseProject = Vue.ls.get("baseProject");
          console.log("baseProject==>" + baseProject)
          var hostname = window.location.protocol + "//" + window.location.host;
          var url = hostname + '/' + baseProject + '/sys/common/static';
          return getFileAccessHttpUrl(record.path + record.encodeName, url, window._CONFIG['hyperTextTransfer'])
        } else {
          //根据发布状态修改https æˆ– http
          return getFileAccessHttpUrl(record.path + record.encodeName, this.url.urlDownload, window._CONFIG['hyperTextTransfer'])
        }
      } else if (record.uploadType == 'alioss') {
        const OSS = require('ali-oss')
        const client = new OSS({
          // region以杭州为例(oss-cn-hangzhou),其他region按实际情况填写。
          region: window._CONFIG['region'],
          // é˜¿é‡Œäº‘主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
          accessKeyId: window._CONFIG['accessKeyId'],
          accessKeySecret: window._CONFIG['accessKeySecret'],
          bucket: window._CONFIG['bucket'],
        })
        // object-key表示从OSS下载文件时需要指定包含文件后缀在内的完整路径,例如abc/efg/123.jpg。
        return client.signatureUrl(record.path)
      }
    },
    sizeConvert(limit) {
      var size = "";
      if (limit < 0.1 * 1024) {
        size = parseFloat(limit).toFixed(2) + "B";//小于0.1KB,则转化成B
      } else if (limit < 0.1 * 1024 * 1024) {
        size = (parseFloat(limit) / 1024).toFixed(2) + "KB";//小于0.1MB,则转化成KB
      } else if (limit < 0.1 * 1024 * 1024 * 1024) {
        size = (parseFloat(limit) / (1024 * 1024)).toFixed(2) + "MB";//小于0.1GB,则转化成MB
      } else {
        size = (parseFloat(limit) / (1024 * 1024 * 1024)).toFixed(2) + "GB";//其他转化成GB
      }
      var sizeStr = size + "";//转成字符串
      var index = sizeStr.indexOf(".");//获取小数点处的索引
      var dou = sizeStr.substr(index + 1, 2);//获取小数点后两位的值
      if (dou == "00") {//判断后两位是否为00,如果是则删除00
        return sizeStr.substring(0, index) + sizeStr.substr(index + 3, 2);
      }
      return size;
    },
    view(record) {
      this.$refs.pdfview.showPdf(record.src);
    },
  }
}
</script>
<style scoped>
@import '~@assets/less/common.less';
</style>
src/views/eam/modules/daily3MaintenanceOrder/StoveCategoryReportModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,382 @@
<template>
  <a-modal
    :title="title"
    :width="850"
    :visible="visible"
    :maskClosable="false"
    :confirmLoading="confirmLoading"
    :okButtonProps="{ props: {disabled: disableSubmit} }"
    @ok="handleOk"
    @cancel="handleCancel"
    cancelText="关闭"
  >
    <a-spin :spinning="confirmLoading">
      <a-form :form="form">
        <a-row :gutter="24">
          <a-col :span="24">
            <a-form-item
              :labelCol="{span:4}"
              :wrapperCol="{span:18}"
              label="报告编码"
            >
              <a-input
                :disabled="disableSubmit"
                placeholder="请输入报告编码"
                v-decorator="['num', validatorRules.num ]"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <!-- <a-row :gutter="24">
          <a-col :span="24">
            <a-form-item
              :labelCol="{span:4}"
              :wrapperCol="{span:18}"
              label="报告类型"
            >
              <j-dict-select-tag
                allow-clear
                placeholder="请选择文档类型"
                :triggerChange="true"
                dictCode="mom_eam_document_type,name,id, del_flag!='1'"
                v-decorator="['fileType', validatorRules.fileType ]"
              />
            </a-form-item>
          </a-col>
        </a-row> -->
        <a-row :gutter="24">
          <a-col :span="24">
            <a-form-item
              :labelCol="{span:4}"
              :wrapperCol="{span:18}"
              label="文件上传"
            >
              <a-upload-dragger
                name="file"
                :customRequest="customRequest"
                @change="handleChange"
                :file-list="fileList"
                :multiple="false"
              >
                <p class="ant-upload-drag-icon">
                  <a-icon type="inbox" />
                </p>
                <p class="ant-upload-text">
                  ç‚¹å‡»ä¸Šä¼ æˆ–拖拽文件至该区域进行上传
                </p>
                <p class="ant-upload-hint">
                  ä»…支持单文件上传
                </p>
              </a-upload-dragger>
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="24">
            <a-form-item
              :labelCol="{span:4}"
              :wrapperCol="{span:18}"
              label="报告名称"
            >
              <a-input
                :disabled="true "
                placeholder="请输入报告名称"
                v-decorator="['name', validatorRules.name ]"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="24">
            <a-form-model-item
              label="技术状态"
              :labelCol="{span:4}"
              :wrapperCol="{span:18}"
            >
              <j-dict-select-tag
                allow-clear
                placeholder="请选择技术状态"
                :triggerChange="true"
                dictCode="technology_status_stove"
                v-decorator="['technologyStatus', validatorRules.technologyStatus ]"
              />
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="24">
            <a-form-item
              :labelCol="{span:4}"
              :wrapperCol="{span:18}"
              label="报告描述"
            >
              <a-textarea
                :disabled="disableSubmit"
                placeholder="请输入报告描述"
                allow-clear
                v-decorator="['description', validatorRules.description]"
              />
            </a-form-item>
          </a-col>
        </a-row>
      </a-form>
    </a-spin>
    <template slot='footer'>
      <a-button
        :style="{marginRight: '8px'}"
        @click="handleCancel"
        :loading='confirmLoading'
      >
        å–消
      </a-button>
      <a-popconfirm
        @confirm="() => handleOk()"
        title="确认此操作?"
      >
        <a-button
          type='primary'
          :loading='confirmLoading'
          :style="{marginRight: '8px'}"
        >
          ç¡®å®š
        </a-button>
      </a-popconfirm>
    </template>
  </a-modal>
</template>
<script>
import { getAction, postAction, postFileAction } from '@/api/manage'
import Vue from 'vue'
import JInput from '@/components/jeecg/JInput'
import Tooltip from 'ant-design-vue/es/tooltip'
import JEllipsis from "@/components/jeecg/JEllipsis";
import { ajaxGetDictItems } from '@/api/api'
import { ACCESS_TOKEN, TENANT_ID } from "@/store/mutation-types"
export default {
  name: "StoveCategoryReportModal",
  components: {
    JInput,
    Tooltip,
    JEllipsis,
  },
  data() {
    return {
      title: "操作",
      visible: false,
      disableSubmit: false,
      model: {},
      labelCol: {
        xs: { span: 24 },
        sm: { span: 8 },
      },
      wrapperCol: {
        xs: { span: 24 },
        sm: { span: 16 },
      },
      confirmLoading: false,
      form: this.$form.createForm(this),
      headers: {},
      validatorRules: {
        num: {
          rules: [
            { required: true, message: '请输入编码!' },
            { min: 0, max: 150, message: '最长 30 ä¸ªå­—符', trigger: 'blur' },
          ]
        },
        fileType: {
          rules: [
            { required: true, message: '请输入选择类型!' },
          ]
        },
        name: {
          rules: [
            { required: true, message: '请输入名称!' },
          ]
        },
        technologyStatus: {
          rules: [
            { required: true, message: '请选择技术状态!' },
          ]
        },
      },
      url: {
        add: "/eam/maintenanceStandardWorkInstruction/addStoveCategoryReport",
        edit: "/eam/maintenanceStandardWorkInstruction/edit",
        listByBusIdAndBusType: "/system/sysUploadRela/listByBusIdAndBusType",
      },
      //用于展示文件
      fileList: [],
      fileObject: {},
      fileTypes: [],
      //用于判断附件的状态  add:新增页面的附件  edit:编辑页面的附件为被修改i   editUpdate:编辑页面的附件被修改
      isFileChange: false,
      uploadId: '',
      maintenanceStandardId: '',
      equipmentId: '',
    }
  },
  methods: {
    customRequest(val) {
      if (this.fileList.length == 0) {
        this.fileObject = val;
      }
    },
    handleChange(info) {
      //默认给附件状态,仅控制样式
      let file = info.file;
      //文件更改,标记更新
      if (this.model.id) {
        this.isFileChange = true;
      }
      //删除
      if (file.status == "removed") {
        this.fileList = [];
        this.fileObject.file = {};
        this.form.setFieldsValue({ name: '' });
        return false;
      }
      //单文件控制
      if (this.fileList.length > 0) {
        this.$message.warning("当前仅允许上传一个文件!");
        return false;
      }
      file.status = 'done';
      //页面展示上传文件
      this.fileList.push(file);
      this.form.setFieldsValue({ name: file.name });
    },
    add() {
      this.edit({})
    },
    edit(record) {
      let that = this;
      that.visible = true;
      that.isFileChange = false;
      that.model = Object.assign({}, record);
      that.fileList = [];
      that.form.resetFields();
      that.uploadId = ''
      if (record.isNoPhotoFlag) {
        //获取当前文件对应附件
        getAction(that.url.listByBusIdAndBusType, { busId: record.id, busType: 'maintenance_standard_work_instruction' }).then((res) => {
          if (res.success) {
            for (let i = 0; i < res.result.length; i++) {
              that.fileList.push({
                uid: res.result[i].upload.id,
                name: res.result[i].upload.name,
                status: "done",
              })
              that.$nextTick(() => {
                that.form.setFieldsValue({ name: res.result[i].upload.name });
              });
            }
          }
        })
      }
    },
    close() {
      this.$emit('close');
      this.visible = false;
    },
    handleOk() {
      const that = this;
      // è§¦å‘表单验证
      that.form.validateFields((err, values) => {
        if (JSON.stringify(that.fileObject.file) == '{}' && that.uploadId == '' && that.fileList.length == 0) {
          that.$message.warning("请上传文件");
          return false
        }
        if (!err) {
          that.confirmLoading = true;
          let httpurl = ''
          let method = ''
          if (!that.model.id) {
            httpurl += that.url.add;
            method = 'post';
          } else {
            httpurl += that.url.edit;
            method = 'put';
          }
          let formData = Object.assign(that.model, values);
          formData.type = "maintenance_standard_work_instruction";
          formData.uploadId = that.uploadId;
          // formData.fileType = "7";//文件类型  7:图片
          formData.maintenanceStandardId = this.maintenanceStandardId;
          formData.equipmentId = this.equipmentId
          var saveDate = new FormData();
          formData.isFileChange = that.isFileChange;
          saveDate.append("file", that.fileObject.file);
          saveDate.append('data', JSON.stringify(formData));
          postFileAction(httpurl, saveDate, this.headers).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();
          })
        }
      }).catch((e) => { })
    },
    handleCancel() {
      this.close();
    },
    // initFileTypes() {
    //   ajaxGetDictItems("common_upload_type", null).then((res) => {
    //     if (res.success) {
    //       this.fileTypes = res.result;
    //     }
    //   })
    // },
  },
  created() {
    // this.initFileTypes();
    const token = Vue.ls.get(ACCESS_TOKEN);
    const tenantid = Vue.ls.get(TENANT_ID)
    this.headers = {
      'Content-Type': 'multipart/form-data',
      "X-Access-Token": token,
      'X-Access-Tenant': tenantid
    };
  },
}
</script>
<style scoped>
.ant-btn {
  padding: 0 10px;
  margin-left: 3px;
}
.ant-form-item-control {
  line-height: 0px;
}
/** ä¸»è¡¨å•行间距 */
.ant-form .ant-form-item {
  margin-bottom: 10px;
}
/** Tab页面行间距 */
.ant-tabs-content .ant-form-item {
  margin-bottom: 0px;
}
</style>
src/views/eam/modules/daily3MaintenanceOrder/TechnologyStatusAuthenticateModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,632 @@
<template>
  <a-modal
    :width="800"
    :visible="visible"
    :maskClosable="false"
    @ok="handleOk"
    cancelText="关闭"
    @cancel="handleCancel"
    :confirmLoading="confirmLoading"
    title="附录3"
  >
    <span
      class="ant-descriptions-title"
      style="font-size: large;font-size: 15px;float: right;"
    >{{this.model.receiptsNum}}</span>
    <a-divider
      orientation="center"
      style="font-size: large;font-style: normal;font-size: 30px;color: #66aeed;"
    > {{this.model.receiptsName}} </a-divider>
    <a-row :gutter="24">
      <a-col :span="12">
        <a-form-item
          label="使用单位"
          :labelCol="labelCol"
          :wrapperCol="wrapperCol"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >
          {{this.model.departName}}
        </a-form-item>
      </a-col>
      <a-col :span="12">
        <a-form-item
          label="检查日期"
          :labelCol="labelCol"
          :wrapperCol="wrapperCol"
        >
          {{this.model.updateTime}}
        </a-form-item>
      </a-col>
    </a-row>
    <div>
      <div :style="{height: '45px',float: 'left',width: '15%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >设备名称</span>
      </div>
      <div :style="{height: '45px',float: 'left',width: '19%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >{{this.model.equipmentName}}</span>
      </div>
      <div :style="{height: '45px',float: 'left',width: '15%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >设备型号</span>
      </div>
      <div :style="{height: '45px',float: 'left',width: '18%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >{{this.model.equipmentModel}}</span>
      </div>
      <div :style="{height: '45px',float: 'left',width: '15%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >统一编号</span>
      </div>
      <div :style="{height: '45px',float: 'left',width: '18%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >{{this.model.equipmentNum}}</span>
      </div>
    </div>
    <div>
      <div :style="{height: '45px',float: 'left',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >检查部位</span>
      </div>
      <div :style="{height: '45px',float: 'left',width: '40%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >检查标准</span>
      </div>
      <div :style="{height: '45px',float: 'right',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >检查结果(合格/不合格)</span>
      </div>
    </div>
    <div>
      <div :style="{height: '45px',float: 'left',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >操纵手柄及开关</span>
      </div>
      <div :style="{height: '45px',float: 'left',width: '40%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >安全、无破损</span>
      </div>
      <div :style="{height: '45px',float: 'right',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <a-switch
          checked-children="合格"
          un-checked-children="不合格"
          :checked="model.result_1 == '0'"
          @change="handleSwitch(model.result_1)"
        />
      </div>
    </div>
    <div>
      <div :style="{height: '45px',float: 'left',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >传动系统</span>
      </div>
      <div :style="{height: '45px',float: 'left',width: '40%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >灵活、无异响</span>
      </div>
      <div :style="{height: '45px',float: 'right',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <a-switch
          checked-children="合格"
          un-checked-children="不合格"
          :checked="model.result_2 == '0'"
          @change="handle2Switch(model.result_2)"
        />
      </div>
    </div>
    <div>
      <div :style="{height: '45px',float: 'left',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >安全装置</span>
      </div>
      <div :style="{height: '45px',float: 'left',width: '40%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >安全、灵敏、可靠</span>
      </div>
      <div :style="{height: '45px',float: 'right',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <a-switch
          checked-children="合格"
          un-checked-children="不合格"
          :checked="model.result_3 == '0'"
          @change="handle3Switch(model.result_3)"
        />
      </div>
    </div>
    <div>
      <div :style="{height: '45px',float: 'left',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >设备外观</span>
      </div>
      <div :style="{height: '45px',float: 'left',width: '40%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >整洁</span>
      </div>
      <div :style="{height: '45px',float: 'right',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <a-switch
          checked-children="合格"
          un-checked-children="不合格"
          :checked="model.result_4 == '0'"
          @change="handle4Switch(model.result_4)"
        />
      </div>
    </div>
    <div>
      <div :style="{height: '45px',float: 'left',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >电气线路</span>
      </div>
      <div :style="{height: '45px',float: 'left',width: '40%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >线路整齐、接线正确</span>
      </div>
      <div :style="{height: '45px',float: 'right',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <a-switch
          checked-children="合格"
          un-checked-children="不合格"
          :checked="model.result_5 == '0'"
          @change="handle5Switch(model.result_5)"
        />
      </div>
    </div>
    <div>
      <div :style="{height: '45px',float: 'left',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >检查各紧固装置</span>
      </div>
      <div :style="{height: '45px',float: 'left',width: '40%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >无松动</span>
      </div>
      <div :style="{height: '45px',float: 'right',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <a-switch
          checked-children="合格"
          un-checked-children="不合格"
          :checked="model.result_6 == '0'"
          @change="handle6Switch(model.result_6)"
        />
      </div>
    </div>
    <div>
      <div :style="{height: '45px',float: 'left',width: '70%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;float: center"
        >是否满足生产加工要求</span>
      </div>
      <div :style="{height: '45px',float: 'right',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <a-switch
          checked-children="合格"
          un-checked-children="不合格"
          :checked="model.result_7 == '0'"
          @change="handle7Switch(model.result_7)"
        />
      </div>
    </div>
    <div>
      <div :style="{height: '130px',float: 'left',width: '100%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <a-row :gutter="24">
          <a-col :span="12">
            <a-form-item
              style="font-size: large;font-style: normal;font-size: 15px;"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              label="鉴定结论"
            >
              <j-dict-select-tag
                style="font-size: large;font-style: normal;font-size: 15px;width: 100%"
                allow-clear
                :triggerChange="true"
                dictCode="technology_status"
                v-model="model.technologyStatus"
              />
              <!-- :placeholder="请选择鉴定结论" -->
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="12">
            <span
              class="ant-descriptions-title"
              style="font-size: large;font-style: normal;font-size: 15px;"
            >&nbsp;&nbsp;&nbsp;鉴定人员签字:&nbsp;&nbsp;&nbsp;</span>
            <span v-if="this.model != null">{{ this.model.appraiser }}</span>
            <span v-else>-</span>
          </a-col>
          <a-col :span="12">
            <span
              class="ant-descriptions-title"
              style="font-size: large;font-style: normal;font-size: 15px;"
            >&nbsp;&nbsp;&nbsp;单位领导签字:&nbsp;&nbsp;&nbsp;</span>
            <span v-if="this.model != null">{{ this.model.leadership }}</span>
            <span v-else>-</span>
          </a-col>
        </a-row>
      </div>
    </div>
    <template slot="footer">
      <a-button
        :style="{marginRight: '8px'}"
        @click="handleCancel()"
      >
        å…³é—­
      </a-button>
      <a-button
        @click="handleOk1('1')"
        type="primary"
        :loading="confirmLoading"
        :disabled="disableSubmit || confirmLoading"
        v-has="'technologyStatusAuthenticate:admin'"
      >确定</a-button>
      <a-button
        @click="handleOk2('2')"
        type="primary"
        :loading="confirmLoading"
        :disabled="disableSubmit || confirmLoading"
        v-has="'technologyStatusAuthenticate:appraiser'"
      >确定</a-button>
      <a-button
        @click="handleOk3('3')"
        type="primary"
        :loading="confirmLoading"
        :disabled="disableSubmit || confirmLoading"
        v-has="'technologyStatusAuthenticate:leadership'"
      >确定</a-button>
    </template>
  </a-modal>
</template>
<script>
import { getAction, postAction, requestPut } from '@/api/manage'
import pick from 'lodash.pick'
import JMultiSelectTag from '@/components/dict/JMultiSelectTag'
import Tooltip from 'ant-design-vue/es/tooltip'
// import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import { getFileAccessHttpUrl } from '@/api/manage';
export default {
  name: "StoveCategoryModal",
  // mixins: [JeecgListMixin],
  components: {
    JMultiSelectTag,
    Tooltip,
  },
  data() {
    return {
      title: "操作",
      visible: false,
      disableSubmit: false,
      codeDisable: true,
      dataSource: [],
      model: {},
      labelCol: {
        xs: { span: 24 },
        sm: { span: 6 },
      },
      wrapperCol: {
        xs: { span: 24 },
        sm: { span: 18 },
      },
      confirmLoading: false,
      form: this.$form.createForm(this),
      validatorRules: {
        num: {
          rules: [
            { required: true, message: '请输入保养工单编码!' },
          ]
        },
      },
      url: {
        add: "/eam/technologyStatus/technologyStatusAuthenticate",
        getTechnologyStatus: "/eam/technologyStatus/getTechnologyStatus",
        list: "/eam/dailyMaintenanceOrder/getMaintenanceCycleByStandardId",
      },
    }
  },
  methods: {
    edit(record) {
      let that = this;
      this.form.resetFields();
      this.model = Object.assign({}, record);
      this.getTechnologyStatus()
      this.visible = true;
      that.$nextTick(() => {
        // that.form.setFieldsValue(pick(that.model, 'num', 'teamId', 'remark'));
      });
    },
    close() {
      this.$emit('close');
      this.visible = false;
    },
    handleCancel() {
      this.close();
    },
    handleOk1(arg) {
      if (this.model.technologyStatus == "" || this.model.technologyStatus == null) {
        this.$message.warning("请先维护鉴定结论!");
        return
      }
      this.handleOk(arg);
    },
    handleOk2(arg) {
      this.handleOk(arg);
    },
    handleOk3(arg) {
      if (this.model.technologyStatus == "" || this.model.technologyStatus == null) {
        this.$message.warning("请先维护鉴定结论!");
        return
      }
      this.handleOk(arg);
    },
    handleOk(arg) {
      const that = this;
      // è§¦å‘表单验证
      that.form.validateFields((err, values) => {
        if (!err) {
          this.$confirm({
            title: '生产设备技术状态鉴定确认',
            content: '提示:请谨慎操作!',
            okText: '确认',
            cancelText: '取消',
            onOk() {
              let formData = Object.assign(that.model, values);
              if (arg == '1') {//管理员
                formData.flag = "1"
              } else if (arg == '2') {//鉴定人员
                formData.flag = "2"
              } else {//领导
                formData.flag = "3"
              }
              that.confirmLoading = true;
              postAction(that.url.add, formData).then((res) => {
                if (res.success) {
                  that.$message.success(res.message);
                  that.$emit('ok', new Date());
                } else {
                  that.$message.warning(res.message);
                }
              }).finally(() => {
                that.confirmLoading = false;
                that.close();
              })
            },
          })
        }
      })
    },
    handleDelete(text, record, index) {
      this.dataSource.splice(index, 1);
    },
    getTechnologyStatus() {
      getAction(this.url.getTechnologyStatus, { orderId: this.model.id }).then((res) => {
        if (res.success) {
          this.model = Object.assign(this.model, res.result[0]);
        }
      })
    },
    handleSwitch(result_1) {
      if ('0' == result_1) {
        this.model.result_1 = '1'
      } else {
        this.model.result_1 = '0'
      }
      this.model = Object.assign({}, this.model);
    },
    handle2Switch(result_2) {
      if ('0' == result_2) {
        this.model.result_2 = '1'
      } else {
        this.model.result_2 = '0'
      }
      this.model = Object.assign({}, this.model);
    },
    handle3Switch(result_3) {
      if ('0' == result_3) {
        this.model.result_3 = '1'
      } else {
        this.model.result_3 = '0'
      }
      this.model = Object.assign({}, this.model);
    },
    handle4Switch(result_4) {
      if ('0' == result_4) {
        this.model.result_4 = '1'
      } else {
        this.model.result_4 = '0'
      }
      this.model = Object.assign({}, this.model);
    },
    handle5Switch(result_5) {
      if ('0' == result_5) {
        this.model.result_5 = '1'
      } else {
        this.model.result_5 = '0'
      }
      this.model = Object.assign({}, this.model);
    },
    handle6Switch(result_6) {
      if ('0' == result_6) {
        this.model.result_6 = '1'
      } else {
        this.model.result_6 = '0'
      }
      this.model = Object.assign({}, this.model);
    },
    handle7Switch(result_7) {
      if ('0' == result_7) {
        this.model.result_7 = '1'
      } else {
        this.model.result_7 = '0'
      }
      this.model = Object.assign({}, this.model);
    },
    // handle21Switch(result_21) {
    //   if ('0' == result_21) {
    //     this.model.result_21 = '1'
    //     this.disabled22Switch = true
    //   } else {
    //     this.model.result_21 = '0'
    //     this.disabled22Switch = false
    //   }
    //   this.model = Object.assign({}, this.model);
    // },
    // handle22Switch(result_22) {
    //   if ('0' == result_22) {
    //     this.model.result_22 = '1'
    //     this.disabled21Switch = true
    //   } else {
    //     this.model.result_22 = '0'
    //     this.disabled21Switch = false
    //   }
    //   this.model = Object.assign({}, this.model);
    // },
    // onChangeJudgmentResult(e) {
    //   this.model.judgmentResult = e.target.value
    // },
    // handleChange(value, key, column, index) {
    //   let that = this;
    //   const temp = [...that.dataSource];
    //   const target = temp.filter(item => key === item.key)[index];
    //   if (target) {
    //     if ('actualMeasure' == column.dataIndex) {
    //       target['actualMeasure'] = value.target.value;
    //     }
    //     //显示带过来的数据
    //     that.dataSource = temp;
    //   }
    // },
  },
}
</script>
<style lang="less" scoped>
/deep/ .frozenRowClass {
  color: #c9c9c9;
}
.fontweight {
  font-weight: bold;
}
.ant-btn {
  padding: 0 10px;
  margin-left: 3px;
}
.ant-form-item-control {
  line-height: 0px;
}
/** ä¸»è¡¨å•行间距 */
.ant-form .ant-form-item {
  margin-bottom: 10px;
}
/** Tab页面行间距 */
.ant-tabs-content .ant-form-item {
  margin-bottom: 0px;
}
.hightColor {
  height: 10%;
  font-weight: bold;
  font-size: 20px;
  color: #1b1e1e;
}
.frozenRowClass {
  color: #c9c9c9;
}
.fontweight {
  font-weight: bold;
}
.hight {
  color: #f5222d;
}
/deep/ .red {
  color: red;
}
.line {
  width: 1px;
  height: 300px;
  background-color: #000;
  border: none;
  float: left;
}
</style>
src/views/eam/modules/dailyInspectionStandard/DailyInspectionStandardDetail.vue
@@ -109,12 +109,12 @@
          align: "center",
          dataIndex: 'location',
        },
        {
          title: '示意图',
          align: "center",
          dataIndex: 'photo',
          scopedSlots: { customRender: 'photo' },
        },
        // {
        //   title: '示意图',
        //   align: "center",
        //   dataIndex: 'photo',
        //   scopedSlots: { customRender: 'photo' },
        // },
        {
          title: '点检项目',
          align: "center",
src/views/eam/modules/dailyInspectionStandard/DailylnspectionStandardModal.vue
@@ -129,7 +129,7 @@
          </a-col> -->
        </a-row>
        <a-row :gutter="24">
          <a-col :span="12">
          <!-- <a-col :span="12">
            <a-form-item
              label="派工方式"
              :labelCol="labelCol"
@@ -144,7 +144,7 @@
                v-decorator="['assignMode', validatorRules.assignMode]"
              />
            </a-form-item>
          </a-col>
          </a-col> -->
          <a-col :span="12">
            <a-form-item
              label="版本"
@@ -226,7 +226,7 @@
            style="width: 100%"
            :disabled="false"
          />
          <j-image-upload
          <!-- <j-image-upload
            :value="text"
            v-if="col.dataIndex == 'photo'"
            :isMultiple="false"
@@ -234,7 +234,7 @@
            placeholder="请上传图片"
            @change="(e)=>handleChange(e, record.key, col, index)"
          >
          </j-image-upload>
          </j-image-upload> -->
          <a-input
            :value="text"
            v-if="col.dataIndex == 'location'"
@@ -352,13 +352,13 @@
          scopedSlots: { customRender: 'inspectionCycleId' },
          width: 170,
        },
        {
          title: '示意图',
          align: 'center',
          dataIndex: 'photo',
          scopedSlots: { customRender: 'photo' },
          width: 170,
        },
        // {
        //   title: '示意图',
        //   align: 'center',
        //   dataIndex: 'photo',
        //   scopedSlots: { customRender: 'photo' },
        //   width: 170,
        // },
        {
          title: '部位',
          align: 'center',
src/views/eam/modules/dailyMaintenanceOrder/DailyMaintenanceStandardList.vue
@@ -151,17 +151,17 @@
  },
  methods: {
    searchQuery() {
      this.queryParam = { type: "daily", delFlag: '0', useId: this.useId };
      this.queryParam = { type: "daily", delFlag: '0', useId: this.useId, maintenanceType: '2' };
      this.loadData(1);
    },
    searchReset() {
      this.queryParam = { type: "daily", delFlag: '0', useId: this.useId };
      this.queryParam = { type: "daily", delFlag: '0', useId: this.useId, maintenanceType: '2' };
      this.loadData(1)
    },
    list(useId) {
      this.visible = true;
      this.useId = useId;
      this.queryParam = { type: "daily", delFlag: '0', useId: useId, versionStatus: '2' };
      this.queryParam = { type: "daily", delFlag: '0', useId: useId, versionStatus: '2', maintenanceType: '2' };
      this.loadData(1);
    },
    clickThenCheck(record) {
src/views/eam/modules/dailyMaintenanceOrder/MaintenanceOrderModal.vue
@@ -488,7 +488,7 @@
        },
        useId: {
          rules: [
            { required: true, message: '请选择使用部门!' },
            { required: false, message: '请选择使用部门!' },
          ]
        },
        maintenanceCycleId: {
@@ -636,10 +636,10 @@
    onSearchMaintenanceStandard() {
      let data = this.form.getFieldsValue(['useId']);
      if (data.useId == null || data.useId == "") {
        this.$message.warning("请先选择使用部门!");
        return
      }
      // if (data.useId == null || data.useId == "") {
      //   this.$message.warning("请先选择使用部门!");
      //   return
      // }
      this.$refs.DailyMaintenanceStandardList.list(data.useId);
      this.$refs.DailyMaintenanceStandardList.title = "选择日常保养标准";
    },
src/views/eam/modules/dailyMaintenanceStandard/DailyMaintenanceStandardModal.vue
@@ -160,6 +160,22 @@
        <a-row :gutter="24">
          <a-col :span="12">
            <a-form-item
              label="保养类型"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
            >
              <j-dict-select-tag
                allow-clear
                :disabled="disableSubmit"
                :placeholder="disableSubmit?'':'请选择保养类型'"
                :triggerChange="true"
                dictCode="maintenance_type"
                v-decorator="['maintenanceType', validatorRules.maintenanceType]"
              />
            </a-form-item>
          </a-col>
          <!-- <a-col :span="12">
            <a-form-item
              label="派工方式"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
@@ -173,7 +189,7 @@
                v-decorator="['assignMode', validatorRules.assignMode]"
              />
            </a-form-item>
          </a-col>
          </a-col> -->
          <a-col :span="12">
            <a-form-item
              label="版本"
@@ -281,14 +297,14 @@
      >
        <div :key="col.dataIndex">
          <a-select
          <!-- <a-select
            v-if="col.dataIndex == 'maintenanceCycleId'"
            :value="text"
            :options="record.maintenanceCycles"
            @change="(e) => handleChange(e, record.key, col, index)"
            style="width: 100%"
            :disabled="false"
          />
          /> -->
          <a-textarea
            :value="text"
            v-if="col.dataIndex == 'maintenanceRequire'"
@@ -475,13 +491,13 @@
          // scopedSlots: { customRender: 'location' },
          // width: 150,
        },
        {
          title: '周期',
          align: 'center',
          dataIndex: 'maintenanceCycleId',
          scopedSlots: { customRender: 'maintenanceCycleId' },
          width: 150,
        },
        // {
        //   title: '周期',
        //   align: 'center',
        //   dataIndex: 'maintenanceCycleId',
        //   scopedSlots: { customRender: 'maintenanceCycleId' },
        //   width: 150,
        // },
        {
          title: '保养角色',
          align: 'center',
@@ -539,9 +555,9 @@
            { required: true, message: '请选择设备!' },
          ]
        },
        assignMode: {
        maintenanceType: {
          rules: [
            { required: true, message: '请选择派工方式!' },
            { required: true, message: '请选择保养类型!' },
          ]
        },
        version: {
@@ -590,7 +606,7 @@
          maintenanceRequire: data[i].maintenanceRequire,
          workingHourQuota: data[i].workingHourQuota,
          // upload: this.upload,
          maintenanceCycles: this.maintenanceCycles,
          // maintenanceCycles: this.maintenanceCycles,
        })
        // let formData = {};
@@ -650,11 +666,11 @@
        that.dataSource = temp;
      }
      that.$nextTick(() => {
        that.form.setFieldsValue(pick(that.model, 'num', 'departId', 'teamId', 'equipmentId', 'equipmentName', 'useDepartName', 'useId', 'teamName', 'assignMode', 'version', 'remark'));
        that.form.setFieldsValue(pick(that.model, 'num', 'departId', 'teamId', 'equipmentId', 'equipmentName', 'useDepartName', 'useId', 'maintenanceType', 'teamName', 'version', 'remark'));
      });
      if (record.id) {
        this.maintenanceCycles = []
        this.getMaintenanceCycle(this.model.equipmentId)
        // this.maintenanceCycles = []
        // this.getMaintenanceCycle(this.model.equipmentId)
        this.codeDisable = true;
        that.$nextTick(() => {
          if (that.isRevise) {
@@ -693,17 +709,17 @@
    onEquipmentList() {
      let data = this.form.getFieldsValue(['departId']);
      if (data.departId == null || data.departId == "") {
        this.$message.warning("请先选择使用部门!");
        return
      }
      // if (data.departId == null || data.departId == "") {
      //   this.$message.warning("请先选择使用部门!");
      //   return
      // }
      this.$refs.EquipmentList.list(data.departId);
      this.$refs.EquipmentList.title = "选择设备信息";
    },
    sendEquipmentRecord(data) {
      this.dataSource = [];
      let record = data.record;
      this.getMaintenanceCycle(record.id)
      // this.getMaintenanceCycle(record.id)
      this.form.setFieldsValue({ equipmentId: record.id, equipmentName: record.num + "/" + record.name + "/" + record.model, teamId: record.teamId, teamName: record.teamId_dictText });
    },
src/views/eam/modules/equipmentCalibrationOrder/EquipmentTechnologyStatusModal.vue
@@ -164,7 +164,7 @@
        },
        judgmentResult: {
          rules: [
            { required: true, message: '请选择技术状态!' },
            { required: false, message: '请选择技术状态!' },
          ]
        },
      },
src/views/eam/modules/equipmentCalibrationOrder/TechnologyStatusAuthenticateModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,591 @@
<template>
  <a-modal
    :width="800"
    :visible="visible"
    :maskClosable="false"
    @ok="handleOk"
    cancelText="关闭"
    @cancel="handleCancel"
    :confirmLoading="confirmLoading"
    title="附录3"
  >
    <span
      class="ant-descriptions-title"
      style="font-size: large;font-size: 15px;float: right;"
    >{{this.model.receiptsNum}}</span>
    <a-divider
      orientation="center"
      style="font-size: large;font-style: normal;font-size: 30px;color: #66aeed;"
    > {{this.model.receiptsName}} </a-divider>
    <a-row :gutter="24">
      <a-col :span="12">
        <a-form-item
          label="使用单位"
          :labelCol="labelCol"
          :wrapperCol="wrapperCol"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >
          {{this.model.useDepartName}}
        </a-form-item>
      </a-col>
      <a-col :span="12">
        <a-form-item
          label="检查日期"
          :labelCol="labelCol"
          :wrapperCol="wrapperCol"
        >
          {{this.model.updateTime}}
        </a-form-item>
      </a-col>
    </a-row>
    <div>
      <div :style="{height: '45px',float: 'left',width: '15%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >设备名称</span>
      </div>
      <div :style="{height: '45px',float: 'left',width: '19%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >{{this.model.equipmentName}}</span>
      </div>
      <div :style="{height: '45px',float: 'left',width: '15%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >设备型号</span>
      </div>
      <div :style="{height: '45px',float: 'left',width: '18%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >{{this.model.equipmentModel}}</span>
      </div>
      <div :style="{height: '45px',float: 'left',width: '15%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >统一编号</span>
      </div>
      <div :style="{height: '45px',float: 'left',width: '18%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >{{this.model.equipmentNum}}</span>
      </div>
    </div>
    <div>
      <div :style="{height: '45px',float: 'left',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >检查部位</span>
      </div>
      <div :style="{height: '45px',float: 'left',width: '40%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >检查标准</span>
      </div>
      <div :style="{height: '45px',float: 'right',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >检查结果(合格/不合格)</span>
      </div>
    </div>
    <div>
      <div :style="{height: '45px',float: 'left',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >操纵手柄及开关</span>
      </div>
      <div :style="{height: '45px',float: 'left',width: '40%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >安全、无破损</span>
      </div>
      <div :style="{height: '45px',float: 'right',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <a-switch
          checked-children="合格"
          un-checked-children="不合格"
          :checked="model.result_1 == '0'"
          @change="handleSwitch(model.result_1)"
        />
      </div>
    </div>
    <div>
      <div :style="{height: '45px',float: 'left',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >传动系统</span>
      </div>
      <div :style="{height: '45px',float: 'left',width: '40%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >灵活、无异响</span>
      </div>
      <div :style="{height: '45px',float: 'right',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <a-switch
          checked-children="合格"
          un-checked-children="不合格"
          :checked="model.result_2 == '0'"
          @change="handle2Switch(model.result_2)"
        />
      </div>
    </div>
    <div>
      <div :style="{height: '45px',float: 'left',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >安全装置</span>
      </div>
      <div :style="{height: '45px',float: 'left',width: '40%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >安全、灵敏、可靠</span>
      </div>
      <div :style="{height: '45px',float: 'right',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <a-switch
          checked-children="合格"
          un-checked-children="不合格"
          :checked="model.result_3 == '0'"
          @change="handle3Switch(model.result_3)"
        />
      </div>
    </div>
    <div>
      <div :style="{height: '45px',float: 'left',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >设备外观</span>
      </div>
      <div :style="{height: '45px',float: 'left',width: '40%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >整洁</span>
      </div>
      <div :style="{height: '45px',float: 'right',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <a-switch
          checked-children="合格"
          un-checked-children="不合格"
          :checked="model.result_4 == '0'"
          @change="handle4Switch(model.result_4)"
        />
      </div>
    </div>
    <div>
      <div :style="{height: '45px',float: 'left',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >电气线路</span>
      </div>
      <div :style="{height: '45px',float: 'left',width: '40%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >线路整齐、接线正确</span>
      </div>
      <div :style="{height: '45px',float: 'right',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <a-switch
          checked-children="合格"
          un-checked-children="不合格"
          :checked="model.result_5 == '0'"
          @change="handle5Switch(model.result_5)"
        />
      </div>
    </div>
    <div>
      <div :style="{height: '45px',float: 'left',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >检查各紧固装置</span>
      </div>
      <div :style="{height: '45px',float: 'left',width: '40%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;"
        >无松动</span>
      </div>
      <div :style="{height: '45px',float: 'right',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <a-switch
          checked-children="合格"
          un-checked-children="不合格"
          :checked="model.result_6 == '0'"
          @change="handle6Switch(model.result_6)"
        />
      </div>
    </div>
    <div>
      <div :style="{height: '45px',float: 'left',width: '70%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <span
          class="ant-descriptions-title"
          style="font-size: large;font-style: normal;font-size: 15px;float: center"
        >是否满足生产加工要求</span>
      </div>
      <div :style="{height: '45px',float: 'right',width: '30%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <a-switch
          checked-children="合格"
          un-checked-children="不合格"
          :checked="model.result_7 == '0'"
          @change="handle7Switch(model.result_7)"
        />
      </div>
    </div>
    <div>
      <div :style="{height: '130px',float: 'left',width: '100%',border: '1px solid #e9e9e9',padding: '10px 10px',background: '#fff',}">
        <a-row :gutter="24">
          <a-col :span="12">
            <a-form-item
              style="font-size: large;font-style: normal;font-size: 15px;"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              label="鉴定结论"
            >
              <j-dict-select-tag
                style="width: 100%"
                allow-clear
                :triggerChange="true"
                dictCode="technology_status"
                v-model="model.technologyStatus"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="24">
          <a-col :span="12">
            <span
              class="ant-descriptions-title"
              style="font-size: large;font-style: normal;font-size: 15px;"
            >&nbsp;&nbsp;&nbsp;鉴定人员签字:&nbsp;&nbsp;&nbsp;</span>
            <span v-if="this.model != null">{{ this.model.appraiser }}</span>
            <span v-else>-</span>
          </a-col>
          <a-col :span="12">
            <span
              class="ant-descriptions-title"
              style="font-size: large;font-style: normal;font-size: 15px;"
            >&nbsp;&nbsp;&nbsp;单位领导签字:&nbsp;&nbsp;&nbsp;</span>
            <span v-if="this.model != null">{{ this.model.leadership }}</span>
            <span v-else>-</span>
          </a-col>
        </a-row>
      </div>
    </div>
    <template slot="footer">
      <a-button
        :style="{marginRight: '8px'}"
        @click="handleCancel()"
      >
        å…³é—­
      </a-button>
      <a-button
        @click="handleOk1('1')"
        type="primary"
        :loading="confirmLoading"
        :disabled="disableSubmit || confirmLoading"
        v-has="'calibrationOrder:admin'"
      >确定</a-button>
      <a-button
        @click="handleOk2('2')"
        type="primary"
        :loading="confirmLoading"
        :disabled="disableSubmit || confirmLoading"
        v-has="'calibrationOrder:appraiser'"
      >确定</a-button>
      <a-button
        @click="handleOk3('3')"
        type="primary"
        :loading="confirmLoading"
        :disabled="disableSubmit || confirmLoading"
        v-has="'calibrationOrder:leadership'"
      >确定</a-button>
    </template>
  </a-modal>
</template>
<script>
import { getAction, postAction, requestPut } from '@/api/manage'
import pick from 'lodash.pick'
import JMultiSelectTag from '@/components/dict/JMultiSelectTag'
import Tooltip from 'ant-design-vue/es/tooltip'
// import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import { getFileAccessHttpUrl } from '@/api/manage';
export default {
  name: "StoveCategoryModal",
  // mixins: [JeecgListMixin],
  components: {
    JMultiSelectTag,
    Tooltip,
  },
  data() {
    return {
      title: "操作",
      visible: false,
      disableSubmit: false,
      codeDisable: true,
      dataSource: [],
      model: {},
      labelCol: {
        xs: { span: 24 },
        sm: { span: 6 },
      },
      wrapperCol: {
        xs: { span: 24 },
        sm: { span: 18 },
      },
      confirmLoading: false,
      form: this.$form.createForm(this),
      validatorRules: {
        num: {
          rules: [
            { required: true, message: '请输入保养工单编码!' },
          ]
        },
      },
      url: {
        add: "/eam/technologyStatus/technologyStatusAuthenticateD",
        getTechnologyStatus: "/eam/technologyStatus/getTechnologyStatus",
        list: "/eam/dailyMaintenanceOrder/getMaintenanceCycleByStandardId",
      },
    }
  },
  methods: {
    edit(record) {
      let that = this;
      this.form.resetFields();
      this.model = Object.assign({}, record);
      this.getTechnologyStatus()
      this.visible = true;
      that.$nextTick(() => {
        // that.form.setFieldsValue(pick(that.model, 'num', 'teamId', 'remark'));
      });
    },
    close() {
      this.$emit('close');
      this.visible = false;
    },
    handleCancel() {
      this.close();
    },
    handleOk1(arg) {
      if (this.model.technologyStatus == "" || this.model.technologyStatus == null) {
        this.$message.warning("请先维护鉴定结论!");
        return
      }
      console.log(this.model)
      this.handleOk(arg);
    },
    handleOk2(arg) {
      this.handleOk(arg);
    },
    handleOk3(arg) {
      if (this.model.technologyStatus == "" || this.model.technologyStatus == null) {
        this.$message.warning("请先维护鉴定结论!");
        return
      }
      this.handleOk(arg);
    },
    handleOk(arg) {
      const that = this;
      // è§¦å‘表单验证
      that.form.validateFields((err, values) => {
        if (!err) {
          this.$confirm({
            title: '生产设备技术状态鉴定确认',
            content: '提示:请谨慎操作!',
            okText: '确认',
            cancelText: '取消',
            onOk() {
              let formData = Object.assign(that.model, values);
              if (arg == '1') {//管理员
                formData.flag = "1"
              } else if (arg == '2') {//鉴定人员
                formData.flag = "2"
              } else {//领导
                formData.flag = "3"
              }
              that.confirmLoading = true;
              postAction(that.url.add, formData).then((res) => {
                if (res.success) {
                  that.$message.success(res.message);
                  that.$emit('ok', new Date());
                } else {
                  that.$message.warning(res.message);
                }
              }).finally(() => {
                that.confirmLoading = false;
                that.close();
              })
            },
          })
        }
      })
    },
    handleDelete(text, record, index) {
      this.dataSource.splice(index, 1);
    },
    getTechnologyStatus() {
      getAction(this.url.getTechnologyStatus, { orderId: this.model.id }).then((res) => {
        if (res.success) {
          this.model = Object.assign(this.model, res.result[0]);
          this.model = Object.assign({}, this.model);
        }
      })
    },
    handleSwitch(result_1) {
      if ('0' == result_1) {
        this.model.result_1 = '1'
      } else {
        this.model.result_1 = '0'
      }
      this.model = Object.assign({}, this.model);
    },
    handle2Switch(result_2) {
      if ('0' == result_2) {
        this.model.result_2 = '1'
      } else {
        this.model.result_2 = '0'
      }
      this.model = Object.assign({}, this.model);
    },
    handle3Switch(result_3) {
      if ('0' == result_3) {
        this.model.result_3 = '1'
      } else {
        this.model.result_3 = '0'
      }
      this.model = Object.assign({}, this.model);
    },
    handle4Switch(result_4) {
      if ('0' == result_4) {
        this.model.result_4 = '1'
      } else {
        this.model.result_4 = '0'
      }
      this.model = Object.assign({}, this.model);
    },
    handle5Switch(result_5) {
      if ('0' == result_5) {
        this.model.result_5 = '1'
      } else {
        this.model.result_5 = '0'
      }
      this.model = Object.assign({}, this.model);
    },
    handle6Switch(result_6) {
      if ('0' == result_6) {
        this.model.result_6 = '1'
      } else {
        this.model.result_6 = '0'
      }
      this.model = Object.assign({}, this.model);
    },
    handle7Switch(result_7) {
      if ('0' == result_7) {
        this.model.result_7 = '1'
      } else {
        this.model.result_7 = '0'
      }
      this.model = Object.assign({}, this.model);
    },
  },
}
</script>
<style lang="less" scoped>
/deep/ .frozenRowClass {
  color: #c9c9c9;
}
.fontweight {
  font-weight: bold;
}
.ant-btn {
  padding: 0 10px;
  margin-left: 3px;
}
.ant-form-item-control {
  line-height: 0px;
}
/** ä¸»è¡¨å•行间距 */
.ant-form .ant-form-item {
  margin-bottom: 10px;
}
/** Tab页面行间距 */
.ant-tabs-content .ant-form-item {
  margin-bottom: 0px;
}
.hightColor {
  height: 10%;
  font-weight: bold;
  font-size: 20px;
  color: #1b1e1e;
}
.frozenRowClass {
  color: #c9c9c9;
}
.fontweight {
  font-weight: bold;
}
.hight {
  color: #f5222d;
}
/deep/ .red {
  color: red;
}
.line {
  width: 1px;
  height: 300px;
  background-color: #000;
  border: none;
  float: left;
}
</style>
src/views/eam/modules/equipmentNew/DailyMaintenanceList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,153 @@
<template>
  <a-card :bordered="false" :class="'cust-erp-sub-tab'">
    <!-- æŸ¥è¯¢åŒºåŸŸ -->
    <div class="table-page-search-wrapper">
      <a-form layout="inline" @keyup.enter.native="searchQuery">
        <a-row :gutter="24">
        </a-row>
      </a-form>
    </div>
    <div>
      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
        <i class="anticon anticon-info-circle ant-alert-icon"></i> å·²é€‰æ‹© <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
      </div>
      <a-table
        ref="table"
        size="middle"
        bordered
        rowKey="id"
        :scroll="{x:true}"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        @change="handleTableChange">
  <!-- :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" -->
        <template slot="htmlSlot" slot-scope="text">
          <div v-html="text"></div>
        </template>
        <template slot="imgSlot" slot-scope="text,record">
          <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
          <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
        </template>
        <template slot="fileSlot" slot-scope="text">
          <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
          <a-button
            v-else
            :ghost="true"
            type="primary"
            icon="download"
            size="small"
            @click="downloadFile(text)">
            ä¸‹è½½
          </a-button>
        </template>
        <span slot="action" slot-scope="text, record">
          <a @click="handleEdit(record)">编辑</a>
          <a-divider type="vertical" />
          <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
            <a>删除</a>
          </a-popconfirm>
        </span>
      </a-table>
    </div>
  </a-card>
</template>
<script>
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  export default {
    name: "UpdateABC",
    mixins:[JeecgListMixin],
    components: { },
    props:{
      mainId:{
        type:String,
        default:'',
        required:false
      }
    },
    watch:{
      mainId:{
        immediate: true,
        handler(val) {
          if(!this.mainId){
            this.clearList()
          }else{
            this.queryParam['equipmentId'] = val
            this.queryParam['type'] = '1'
            this.loadData(1);
          }
        }
      }
    },
    data () {
      return {
        description: '材料出库单管理页面',
        disableMixinCreated:true,
        // è¡¨å¤´
        columns: [
            {
              title: '#',
              dataIndex: '',
              key: 'rowIndex',
              width: 60,
              align: 'center',
              customRender: function (t, r, index) {
                return parseInt(index) + 1
              }
            },
            {
              title: '保养项目',
              align: 'center',
              dataIndex: 'projectName',
              width: 250,
            },
            {
              title: '保养标准',
              align: 'center',
              dataIndex: 'standard',
              width: 250,
            },
        ],
        url: {
          list: "/eam/equipment/getEquipmentStansdardList",
        },
        dictOptions:{
        }
      }
    },
    created() {
    },
    computed: {
      importExcelUrl(){
        return `${window._CONFIG['domianURL']}/${this.url.importUrl}/${this.mainId}`;
      }
    },
    methods: {
      clearList(){
        this.dataSource=[]
        this.selectedRowKeys=[]
        this.ipagination.current = 1
      }
    },
    mounted(){
      this.$bus.$on('loadData', (data) => {
            this.loadData();
      });
    }
  }
</script>
<style scoped>
  @import '~@assets/less/common.less'
</style>
src/views/eam/modules/equipmentNew/EquipmentModal.vue
@@ -117,15 +117,9 @@
              :wrapperCol="wrapperCol"
              prop="useId"
            >
              <!-- <a-tree-select
                style="width: 100%"
                :disabled="formDisabled"
                :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
                :tree-data="treeData"
                placeholder="请选择使用部门"
                tree-default-expand-all
                v-model="model.useId"
              /> -->
              <j-dict-select-tag
                allow-clear
                :disabled="formDisabled"
@@ -155,6 +149,40 @@
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="6">
            <a-form-model-item
              label="是否生产线设备"
              :labelCol="labelCol"
            :wrapperCol="wrapperCol"
            prop="isLineEquip"
            >
              <j-dict-select-tag
                allow-clear
                placeholder="请选择"
                :triggerChange="true"
                :disabled="true"
                dictCode="is_product"
                v-model="model.isLineEquip"
              />
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item
              label="是否生产线"
              :labelCol="labelCol"
            :wrapperCol="wrapperCol"
            prop="isLine"
            >
              <j-dict-select-tag
                allow-clear
                placeholder="请选择"
                :triggerChange="true"
                :disabled="true"
                dictCode="is_product"
                v-model="model.isLine"
              />
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item
              label="设备图片"
@@ -1031,7 +1059,6 @@
  },
  methods: {
    add() {
      this
      this.edit(this.modelDefault);
    },
    edit(record) {
@@ -1039,6 +1066,8 @@
      this.model = Object.assign({}, record);
      if (!this.model.id) {
        this.model.equipmentStatus = '1'
        this.model.isLineEquip = 'no'
        this.model.isLine = 'no'
      }
      this.visible = true;
    },
src/views/eam/modules/equipmentNew/SecondMaintenanceList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,159 @@
<template>
  <a-card :bordered="false" :class="'cust-erp-sub-tab'">
    <!-- æŸ¥è¯¢åŒºåŸŸ -->
    <div class="table-page-search-wrapper">
      <a-form layout="inline" @keyup.enter.native="searchQuery">
        <a-row :gutter="24">
        </a-row>
      </a-form>
    </div>
    <div>
      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
        <i class="anticon anticon-info-circle ant-alert-icon"></i> å·²é€‰æ‹© <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
      </div>
      <a-table
        ref="table"
        size="middle"
        bordered
        rowKey="id"
        :scroll="{x:true}"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        @change="handleTableChange">
  <!-- :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" -->
        <template slot="htmlSlot" slot-scope="text">
          <div v-html="text"></div>
        </template>
        <template slot="imgSlot" slot-scope="text,record">
          <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
          <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
        </template>
        <template slot="fileSlot" slot-scope="text">
          <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
          <a-button
            v-else
            :ghost="true"
            type="primary"
            icon="download"
            size="small"
            @click="downloadFile(text)">
            ä¸‹è½½
          </a-button>
        </template>
        <span slot="action" slot-scope="text, record">
          <a @click="handleEdit(record)">编辑</a>
          <a-divider type="vertical" />
          <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
            <a>删除</a>
          </a-popconfirm>
        </span>
      </a-table>
    </div>
  </a-card>
</template>
<script>
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  export default {
    name: "UpdateABC",
    mixins:[JeecgListMixin],
    components: { },
    props:{
      mainId:{
        type:String,
        default:'',
        required:false
      }
    },
    watch:{
      mainId:{
        immediate: true,
        handler(val) {
          if(!this.mainId){
            this.clearList()
          }else{
            this.queryParam['equipmentId'] = val
            this.queryParam['type'] = '2'
            this.loadData(1);
          }
        }
      }
    },
    data () {
      return {
        description: '材料出库单管理页面',
        disableMixinCreated:true,
        // è¡¨å¤´
        columns: [
            {
              title: '#',
              dataIndex: '',
              key: 'rowIndex',
              width: 60,
              align: 'center',
              customRender: function (t, r, index) {
                return parseInt(index) + 1
              }
            },
            {
              title: '保养项目',
              align: 'center',
              dataIndex: 'projectName',
              width: 250,
            },
            {
              title: '保养标准',
              align: 'center',
              dataIndex: 'standard',
              width: 250,
            },
            {
              title: '保养周期',
              align: "center",
              dataIndex: 'cycleName',
              width: 250,
            }
        ],
        url: {
          list: "/eam/equipment/getEquipmentStansdardList",
        },
        dictOptions:{
        }
      }
    },
    created() {
    },
    computed: {
      importExcelUrl(){
        return `${window._CONFIG['domianURL']}/${this.url.importUrl}/${this.mainId}`;
      }
    },
    methods: {
      clearList(){
        this.dataSource=[]
        this.selectedRowKeys=[]
        this.ipagination.current = 1
      }
    },
    mounted(){
      this.$bus.$on('loadData', (data) => {
            this.loadData();
      });
    }
  }
</script>
<style scoped>
  @import '~@assets/less/common.less'
</style>
src/views/eam/modules/equipmentNew/ThirdMaintenanceList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,159 @@
<template>
  <a-card :bordered="false" :class="'cust-erp-sub-tab'">
    <!-- æŸ¥è¯¢åŒºåŸŸ -->
    <div class="table-page-search-wrapper">
      <a-form layout="inline" @keyup.enter.native="searchQuery">
        <a-row :gutter="24">
        </a-row>
      </a-form>
    </div>
    <div>
      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
        <i class="anticon anticon-info-circle ant-alert-icon"></i> å·²é€‰æ‹© <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
      </div>
      <a-table
        ref="table"
        size="middle"
        bordered
        rowKey="id"
        :scroll="{x:true}"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        @change="handleTableChange">
  <!-- :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" -->
        <template slot="htmlSlot" slot-scope="text">
          <div v-html="text"></div>
        </template>
        <template slot="imgSlot" slot-scope="text,record">
          <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
          <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
        </template>
        <template slot="fileSlot" slot-scope="text">
          <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
          <a-button
            v-else
            :ghost="true"
            type="primary"
            icon="download"
            size="small"
            @click="downloadFile(text)">
            ä¸‹è½½
          </a-button>
        </template>
        <span slot="action" slot-scope="text, record">
          <a @click="handleEdit(record)">编辑</a>
          <a-divider type="vertical" />
          <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
            <a>删除</a>
          </a-popconfirm>
        </span>
      </a-table>
    </div>
  </a-card>
</template>
<script>
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  export default {
    name: "UpdateABC",
    mixins:[JeecgListMixin],
    components: { },
    props:{
      mainId:{
        type:String,
        default:'',
        required:false
      }
    },
    watch:{
      mainId:{
        immediate: true,
        handler(val) {
          if(!this.mainId){
            this.clearList()
          }else{
            this.queryParam['equipmentId'] = val
            this.queryParam['type'] = '3'
            this.loadData(1);
          }
        }
      }
    },
    data () {
      return {
        description: '材料出库单管理页面',
        disableMixinCreated:true,
        // è¡¨å¤´
        columns: [
            {
              title: '#',
              dataIndex: '',
              key: 'rowIndex',
              width: 60,
              align: 'center',
              customRender: function (t, r, index) {
                return parseInt(index) + 1
              }
            },
            {
              title: '保养项目',
              align: 'center',
              dataIndex: 'projectName',
              width: 250,
            },
            {
              title: '保养标准',
              align: 'center',
              dataIndex: 'standard',
              width: 250,
            },
            {
              title: '保养周期',
              align: "center",
              dataIndex: 'cycleName',
              width: 250,
            }
        ],
        url: {
          list: "/eam/equipment/getEquipmentStansdardList",
        },
        dictOptions:{
        }
      }
    },
    created() {
    },
    computed: {
      importExcelUrl(){
        return `${window._CONFIG['domianURL']}/${this.url.importUrl}/${this.mainId}`;
      }
    },
    methods: {
      clearList(){
        this.dataSource=[]
        this.selectedRowKeys=[]
        this.ipagination.current = 1
      }
    },
    mounted(){
      this.$bus.$on('loadData', (data) => {
            this.loadData();
      });
    }
  }
</script>
<style scoped>
  @import '~@assets/less/common.less'
</style>
src/views/eam/modules/equipmentScrap/EquipmentSelectModal.vue
@@ -178,7 +178,7 @@
      visible: false,
      loading: false,
      url: {
        list: '/eam/equipment/list'
        list: '/eam/equipment/getEquipmentList'
      }
    }
  },
@@ -208,6 +208,7 @@
      }
      let that = this
      this.loading = true
      this.queryParam.isLine = 'no'
      let params = this.getQueryParams()//查询条件
      // params.equipmentStatus = '1'
      await getAction(this.url.list, params).then((res) => {
src/views/eam/modules/inspectionProject/InspectionProjectRight.vue
@@ -101,7 +101,7 @@
        :loading="loading"
        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
        @change="handleTableChange"
        :scroll="{ x: 'calc(1000px + 50%)', y: 900 }"
        :scroll="{ x: 'calc(600px + 50%)', y: 900 }"
      >
        <!--字符串超长截取省略号显示-->
        <span
@@ -309,27 +309,27 @@
        //   align: "center",
        //   dataIndex: 'inspectionTool',
        // },
        {
          title: '创建人',
          align: "center",
          dataIndex: 'createBy',
        },
        {
          title: '创建时间',
          align: "center",
          dataIndex: 'createTime',
        },
        // {
        //   title: '创建人',
        //   align: "center",
        //   dataIndex: 'createBy',
        // },
        // {
        //   title: '创建时间',
        //   align: "center",
        //   dataIndex: 'createTime',
        // },
        {
          title: '操作',
          dataIndex: 'action',
          align: 'center',
          width: 150,
          scopedSlots: {
            customRender: 'action'
          },
          fixed: 'right',
        },
        // width: 150,
        // fixed: 'right',
      ],
      url: {
        list: '/eam/inspectionProject/list',
src/views/eam/modules/line/EquipmentOfLineForm.vue
@@ -49,6 +49,85 @@
              ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item
              label="使用部门"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="useId"
            >
              <j-dict-select-tag
                allow-clear
                :disabled="formDisabled"
                placeholder="请选择使用部门"
                :triggerChange="true"
                dictCode="sys_depart,depart_name,id,del_flag!='1'"
                v-model="model.useId"
              />
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="6">
            <a-form-model-item
              label="维护部门"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="manageId"
            >
              <!-- <a-tree-select
                :disabled="formDisabled"
                style="width: 100%"
                :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
                :tree-data="treeData"
                placeholder="请选择维护部门"
                tree-default-expand-all
                v-model="model.manageId"
              /> -->
              <j-dict-select-tag
                allow-clear
                :disabled="formDisabled"
                placeholder="请选择维护部门"
                :triggerChange="true"
                dictCode="sys_depart,depart_name,id,del_flag!='1'"
                v-model="model.manageId"
              />
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item
              label="维修班组"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="teamId"
            >
              <j-dict-select-tag
                allow-clear
                :disabled="formDisabled"
                placeholder="请选择责任班组"
                :triggerChange="true"
                dictCode="mom_base_team,name,id,status='1' and del_flag='0'"
                v-model="model.teamId"
              />
            </a-form-model-item>
          </a-col>
          <a-col :span="6">
            <a-form-model-item
              label="工区"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="factoryModelId"
            >
              <j-dict-select-tag
                allow-clear
                :disabled="formDisabled"
                placeholder="请选择工区"
                :triggerChange="true"
                dictCode="mom_base_area,name,id,del_flag!='1'"
                v-model="model.factoryModelId"
              />
            </a-form-model-item>
          </a-col>
        </a-row>
      </a-form-model>
    </j-form-container>
@@ -65,7 +144,6 @@
          :disabled="formDisabled"
          :rowNumber="true"
          :rowSelection="true"
          :bordered="true"
          :alwaysEdit="true"
          :toolbar="true"
          @valueChange="changeDate"
@@ -125,11 +203,11 @@
        },
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 },
          sm: { span: 11 },
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 },
          sm: { span: 13 },
        },
        model:{
         },
@@ -145,7 +223,19 @@
        ],
        equipmentCategoryId:[
          { required: true, message: '请输入分类!' }
        ]
        ],
        manageId: [
          { required: true, message: '请选择维护部门!' },
        ],
        useId: [
          { required: true, message: '请选择使用部门!' },
        ],
        factoryModelId: [
          { required: true, message: '请选择工区!' },
        ],
        teamId: [
          { required: true, message: '请选择责任班组!' },
        ],
        },
        refKeys: ['equipmentOfLineTable', ],
        tableKeys:['equipmentOfLineTable', ],
src/views/eam/modules/malfunctionRepair/AcceptModel.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,155 @@
<template>
  <j-modal
    :title="title"
    :width="width"
    :visible="visible"
    :confirmLoading="confirmLoading"
    switchFullscreen
    @ok="handleOk"
    @cancel="handleCancel"
    cancelText="关闭"
  >
    <a-spin :spinning="confirmLoading">
      <a-form-model
        ref="form"
        :model="model"
        :rules="validatorRules"
      >
        <a-row :gutter="24">
          <a-col :span='24'>
            <a-form-model-item
              label='验收人'
              prop='errUda3'
              :labelCol="labelCol"
              :wrapperCol="wrapperCol">
              <a-input v-model='model.errUda3'
              >
            </a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item
              label="验收意见"
              :labelCol="labelCol"
              :wrapperCol="wrapperCol"
              prop="errUda5"
            >
               <a-textarea v-model="model.errUda5" rows="4" placeholder="验收意见" />
            </a-form-model-item>
          </a-col>
        </a-row>
      </a-form-model>
    </a-spin>
  </j-modal>
</template>
<script>
import { httpAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'
import pick from 'lodash.pick'
import { postAction, requestPut, getAction } from '@/api/manage'
import { duplicateCheck } from '@/api/api'
import moment from 'moment'
import { JVxeTableModelMixin } from '@/mixins/JVxeTableModelMixin.js'
import { JVXETypes } from '@/components/jeecg/JVxeTable'
export default {
  name: "NodeModel",
  mixins: [JVxeTableModelMixin],
  components: {
    validateDuplicateValue,
  },
  props: {
    disableSubmit: {
      type: Boolean,
      default: false,
      required: false
    },
    caytegoryParam: {
      type: String,
      default: '',
      required: false
    }
  },
  data() {
    return {
      title: "操作",
      width: 1500,
      visible: false,
      model: {
      },
      labelCol: {
          xs: { span: 24 },
          sm: { span: 5 },
      },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 },
      },
      confirmLoading: false,
      validatorRules: {
        errUda5: [
          {required:true,message:"请输入验收意见"},
          { min: 0, max: 100, message: '长度不超过 100 ä¸ªå­—符' },
        ],
        errUda3 :[
          {required:true,message:"请输入名称"},
          { min: 0, max: 10, message: '名称不超过 10 ä¸ªå­—符'},
        ],
      },
      url: {
        accept: "/eam/equipmentReportRepair/accept",
      },
    }
  },
  created() {
    //备份model原始值
    this.modelDefault = JSON.parse(JSON.stringify(this.model));
  },
  methods: {
    add() {
      this.edit(this.modelDefault);
    },
    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 = this.url.accept;
          let method = 'put';
          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();
          })
        } else {
          return false
        }
      })
    },
    handleCancel() {
      this.close()
    },
  },
  computed: {
    formDisabled() {
      return this.disableSubmit
    },
  },
}
</script>
src/views/eam/modules/malfunctionRepair/FaultDescriptionList.vue
@@ -95,7 +95,7 @@
      this.loading = true
      getAction(this.url.list, params)
        .then(res => {
          if (res.success) {
          if (res.success&&res.result!==null) {
            //update-begin---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
            this.dataSource = res.result.records
            if (this.dataSource != null && this.dataSource != "") {
src/views/eam/modules/repairorder/moudles/RepairOrderActualHoursReport.vue
@@ -18,12 +18,9 @@
        slot-scope='text, record, index'
      >
        <div :key='col.dataIndex'>
          <a-input-search
            v-if="col.dataIndex == 'username'"
            enter-button
            @search='onSearchUser(index)'
          <a-input
            v-if="col.dataIndex == 'userId'"
            :value='text'
            :read-only='true'
            @change='(e) => handleChange(e, record.key, col, index)'
            :disabled="repairOrderStatus=='4'"
          />
@@ -40,12 +37,13 @@
          <!--                    v-if="col.dataIndex == 'principalContractor'" />-->
          <a-select default-value='0' :value='text' :disabled="repairOrderStatus=='4'"
                    v-if="col.dataIndex == 'principalContractor'"
                    style="width: 100%;"
                    @change='(e)=>handleChange(e, record.key, col, index)'>
            <a-select-opt-group>
              <a-select-option value='1'>
              <a-select-option value='1' style="width: 100%;">
                æ˜¯
              </a-select-option>
              <a-select-option value='0'>
              <a-select-option value='0' style="width: 100%;">
                å¦
              </a-select-option>
            </a-select-opt-group>
@@ -111,13 +109,13 @@
        >
          å–消
        </a-button>
        <a-button
        <!-- <a-button
          @click='handleOk(1)'
          type='primary'
          :style="{marginRight: '8px'}"
          :disabled="this.repairOrderStatus=='4' || this.repairOrderStatus=='2'"
        >暂存
        </a-button>
        </a-button> -->
        <a-button
          @click='handleOk(0)'
          type='primary'
@@ -161,7 +159,6 @@
    repairOrderId: {
      type: String,
      required: false,
      default: '-1'
    },
    repairOrderStatus: {
      type: String,
@@ -198,7 +195,7 @@
      validatorRules: {
        userId: {
          rules: [
            { required: true, message: '请选择人员!' }
            { required: true, message: '请填写人员!' }
          ]
        },
        actual_hour: {
@@ -233,25 +230,20 @@
          }
        },
        {
          title: '*人员编码',
          dataIndex: 'username',
          title: '*人员名称',
          dataIndex: 'userId',
          align: 'center',
          scopedSlots: { customRender: 'username' },
          scopedSlots: { customRender: 'userId' },
          className: 'red',
          width: 250
          width: 200
        },
        {
          title: '人员名称',
          dataIndex: 'realname',
          align: 'center',
          width: 150
        },
        {
          title: '主承修人',
          title: '*主承修人',
          dataIndex: 'principalContractor',
          align: 'center',
          scopedSlots: { customRender: 'principalContractor' },
          width: 100
          className: 'red',
          width: 150
        },
        {
          title: '*实际工时',
@@ -259,19 +251,22 @@
          align: 'center',
          className: 'red',
          scopedSlots: { customRender: 'actualHour' },
          width: 120
          width: 150
        },
        {
          title: '开始时间',
          dataIndex: 'startTime',
          scopedSlots: { customRender: 'startTime' },
          align: 'center'
          align: 'center',
          width: 200
        },
        {
          title: '结束时间',
          dataIndex: 'endTime',
          align: 'center',
          scopedSlots: { customRender: 'endTime' }
          scopedSlots: { customRender: 'endTime' },
          width: 200
        },
        {
@@ -279,12 +274,14 @@
          dataIndex: 'theoreticalTime',
          align: 'center'
          // scopedSlots: { customRender: 'theoreticalTime' },
          ,
          width: 150
        },
        {
          title: '操作',
          dataIndex: 'action',
          align: 'center',
          width: 250,
          width: 150,
          scopedSlots: { customRender: 'action' }
        }
      ],
@@ -300,9 +297,11 @@
    repairOrderId: {
      immediate: true,
      handler(val) {
        this.clearList()
        this.queryParam['repairOrderId'] = val
        this.loadData(1)
        if(this.repairOrderId){
          this.clearList()
          this.queryParam['repairOrderId'] = val
          this.loadData(1)
        }
      }
    }
  },
@@ -332,7 +331,8 @@
      this.disableSubmit = false
      this.visible = false
    },
    handleDelete(text, record, index) {
    handleDelete(index) {
      console.log(index)
      this.dataSource.splice(index, 1)
    },
@@ -390,16 +390,31 @@
      const temp = [...that.dataSource]
      const target = temp[index]
      if (target) {
        target[column.dataIndex] = value
        if ('userId' == column.dataIndex) {
          target['userId'] = value
          target['userId'] = value.target.value
        }
        if ('principalContractor' == column.dataIndex) {
          target['principalContractor'] = value
          if(value==='1'){
            for(var i = 0;i<temp.length;i++){
                if(i!==index){
                  temp[i]['principalContractor']='0';
                }
            }
          }
        }
        if ('actualHour' == column.dataIndex) {
          target['actualHour'] = value
          if(target['theoreticalTime']!==null&&target['theoreticalTime']<value){
            that.$message.error('请检查第' + (index + 1) + '行实际工时不能小于理论工时,请重新填写')
            target['actualHour']=null;
          }else if(target['theoreticalTime']===null||target['theoreticalTime']===undefined){
            that.$message.error('请检查第' + (index + 1) + '请先填写开始时间与结束时间')
            target['actualHour']=null;
          }else{
            target['actualHour'] = value
          }
        }
        // if ('theoreticalTime' == column.dataIndex) {
        //   target['theoreticalTime'] = value
@@ -408,56 +423,55 @@
          if (target['endTime'] == null) {
            target['startTime'] = value
          } else if (target['startTime'] != null && target['endTime'] != null) {
            const diffInHours = this.getTimeDiff(target['startTime'], target['endTime'])
            if (diffInHours < 0) {
              target['startTime'] = ''
              target['theoreticalTime'] = ''
              that.$message.error('请检查第' + (index + 1) + '行开始时间不能小于结束时间,请重新选择')
            } else {
              target['startTime'] = value
              target['theoreticalTime'] = diffInHours
            }
          } else if (target['startTime'] == null && target['endTime'] != null) {
          } else  {
            const diffInHours = this.getTimeDiff(value, target['endTime'])
            if (diffInHours < 0) {
              target['startTime'] = ''
              target['theoreticalTime'] = ''
              that.$message.error('请检查第' + (index + 1) + '行开始时间不能小于结束时间,请重新选择')
              that.$message.error('开始时间不能小于结束时间,请重新选择')
            } else {
              target['startTime'] = value
              target['theoreticalTime'] = diffInHours
              if(target['actualHour']!==null){
                  if(diffInHours<target['actualHour']){
                    target['startTime'] = ''
                    target['theoreticalTime'] = ''
                    that.$message.error('实际工时不能小于理论工时,请重新填写')
                  }else{
                    target['startTime'] = value
                    target['theoreticalTime'] = diffInHours
                  }
              }else{
                target['startTime'] = value
                target['theoreticalTime'] = diffInHours
              }
            }
          }
          }
        }
        if ('endTime' == column.dataIndex) {
          if (target['startTime'] == null) {
            target['endTime'] = value
          } else if (target['startTime'] != null && target['endTime'] != null) {
            const diffInHours = this.getTimeDiff(target['startTime'], target['endTime'])
            if (diffInHours < 0) {
              target['endTime'] = ''
              target['theoreticalTime'] = ''
              that.$message.error('请检查第' + (index + 1) + '行开始时间不能小于结束时间,请重新选择')
            } else {
              target['endTime'] = value
              target['theoreticalTime'] = diffInHours
            }
          } else if (target['startTime'] != null && target['endTime'] == null) {
          } else {
            const diffInHours = this.getTimeDiff(target['startTime'], value)
            if (diffInHours < 0) {
              target['endTime'] = ''
              target['theoreticalTime'] = ''
              that.$message.error('请检查第' + (index + 1) + '行开始时间不能小于结束时间,请重新选择')
              that.$message.error('开始时间不能小于结束时间,请重新选择')
            } else {
              target['endTime'] = value
              target['theoreticalTime'] = diffInHours
              if(target['actualHour']!==null){
                  if(diffInHours<target['actualHour']){
                    target['endTime'] = ''
                    target['theoreticalTime'] = ''
                    that.$message.error('实际工时不能小于理论工时,请重新填写')
                  }else{
                    target['endTime'] = value
                    target['theoreticalTime'] = diffInHours
                  }
              }else{
                target['endTime'] = value
                target['theoreticalTime'] = diffInHours
              }
            }
          }
        }
        that.dataSource = temp
src/views/eam/modules/repairorder/moudles/RepairOrderFaultAnalysisReport.vue
@@ -19,7 +19,7 @@
                allow-clear
                placeholder='请输入故障现象'
                v-decorator="['repairOrderFaultAnalysisUda1', validatorRules.repairOrderFaultAnalysisUda1]"
                :disabled="isEdit"
                :disabled="disabledEdit"
              ></a-textarea>
            </a-form-item>
          </a-col>
@@ -32,7 +32,7 @@
              <a-textarea
                placeholder='请输入故障检查'
                v-decorator="['faultCause', validatorRules.faultCause]"
                :disabled="isEdit"
                :disabled="disabledEdit"
              ></a-textarea>
            </a-form-item>
          </a-col>
@@ -47,7 +47,7 @@
              <a-textarea
                placeholder='请输入故障维修'
                v-decorator="['maintenanceMeasures', validatorRules.maintenanceMeasures]"
                :disabled="isEdit"
                :disabled="disabledEdit"
              ></a-textarea>
            </a-form-item>
          </a-col>
@@ -60,7 +60,7 @@
              <a-textarea
                v-decorator="['suggestion', validatorRules.suggestion]"
                placeholder='请输入故障预防'
                :disabled="isEdit"
                :disabled="disabledEdit"
              ></a-textarea>
            </a-form-item>
          </a-col>
@@ -68,7 +68,7 @@
      <a-button
        :style="{marginRight: '8px'}"
        @click='handleEdit2()'
        :disabled="buttonStatus"
        :disabled="disabledButton||!disabledEdit"
        :loading='confirmLoading'
      >
       ç¼–辑
@@ -78,7 +78,7 @@
        @click='handleOk()'
        type='primary'
        :loading='confirmLoading'
        :disabled="buttonStatus"
        :disabled="disabledButton||disabledEdit"
      >保存
      </a-button>
      </a-form>
@@ -103,15 +103,26 @@
      'repairOrder.id':{
        immediate: true,
        handler(val) {
          this.form.resetFields();
          if(this.repairOrder.id!==undefined&&this.repairOrder.status==='3'){
            this.isEdit = false;
          this.loadData(val);
          if(this.repairOrder.id!==undefined&&this.repairOrder.id!==null&&this.repairOrder.id!==''){
            if(this.repairOrder.status!=='3'){
              this.disabledButton = true;
            }else{
              this.disabledButton = false;
            }
          }else{
            this.loadData(val);
            this.disabledButton = true;
          }
          if(this.repairOrder.status!=='3'){
            this.buttonStatus = true;
          }
        }
      },
      'repairOrder.status':{
        immediate: true,
        handler(val) {
            if(val!=='3'){
              this.disabledButton = true;
            }else{
              this.disabledButton = false;
            }
        }
      }
  },
@@ -127,7 +138,7 @@
        getInfo:'/eam/repairOrderFaultAnalysis/list',
      },
      dictOptions: {},
      isEdit:false,
      disabledEdit:false,
      validatorRules: {
        faultCause: {
          rules: [
@@ -161,7 +172,7 @@
        xs: { span: 24 },
        sm: { span: 16 }
      },
      buttonStatus:false
      disabledButton:false
    }
  },
  methods: {
@@ -182,7 +193,6 @@
          obj.then((res) => {
            if (res.success) {
              that.$message.success(res.message);
              that.isEdit = true;
            } else {
              that.$message.warning(res.message);
            }
@@ -194,23 +204,24 @@
      })
    },
    loadData(repairOrderId){
      let that = this;
      let that = this;
      getAction(that.url.getInfo,{repairOrderId:repairOrderId}).then(res=>{
                if(res.success){
                   if(res.result.records.length!==0){
                      that.isEdit=true;
                if(res.success&&res.result.records.length!==0){
                      that.disabledEdit=true;
                      that.form.setFieldsValue(pick(res.result.records[0], 'faultCause','repairOrderFaultAnalysisUda1', 'faultTypeId', 'suggestion', 'maintenanceMeasures','id'))
                      that.model = Object.assign({}, res.result.records[0]);
                   }else if(this.repairOrder.status==='3'){
                      that.isEdit=false;
                   }else{
                      that.isEdit=true;
                   }
                }else{
                  if(that.repairOrder.status==='3'){
                    that.disabledEdit=false;
                  }else{
                    that.disabledEdit=true;
                  }
                  that.form.resetFields();
                }
      })
    },
    handleEdit2(){
    this.isEdit=false;
    this.disabledEdit=false;
    }
  },
src/views/eam/modules/repairorder/repairOrderExcuteDrawer.vue
@@ -57,17 +57,21 @@
                :loading="confirmLoading"
                :disabled="repairOrder.status!='3'||repairOrder.repairOrderUda1==='needPart'||repairOrder.repairOrderUda1==='needSpare'"
                type="primary"
              >报工</a-button>
              <a-button
              >修完</a-button>
              <!-- <a-button
                :style="{marginRight: '8px'}"
                @click="handleRevoke"
                :loading="confirmLoading"
                :disabled="repairOrder.status!='4'"
                type="primary"
              >撤销</a-button>
              >撤销</a-button> -->
            </a-row>
          </div>
          <div :style="{width: '100%',border: '1px solid #e9e9e9',padding: '10px 16px',background: '#fff',}">
            <a-divider
            orientation="center"
            style="font-size: large;font-style: italic;color: #66aeed;"
          > åŸºç¡€ä¿¡æ¯ </a-divider>
            <a-row :gutter="24">
              <a-col :span="6">
                <a-form-item
@@ -205,6 +209,10 @@
                </a-form-item>
              </a-col>
            </a-row>
            <a-divider
            orientation="center"
            style="font-size: large;font-style: italic;color: #66aeed;"
          > æŠ¥ä¿®é¢†å–信息 </a-divider>
            <a-row :gutter="24">
              <a-col :span="6">
                <a-form-item
@@ -263,6 +271,10 @@
                </a-form-item>
              </a-col>
            </a-row>
            <a-divider
            orientation="center"
            style="font-size: large;font-style: italic;color: #66aeed;"
          > ç»´ä¿®ä¿¡æ¯ </a-divider>
            <a-row
              :gutter="24"
            >
@@ -301,7 +313,8 @@
                  label="维修时长"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.actualHour }}</span>
                  <span v-if="this.repairOrder != null">{{this.formattedElapsedTime}}</span>
                  <span
                    v-else
                    class="frozenRowClass"
@@ -315,7 +328,7 @@
                  label="完成人"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.recipientUserId_dictText }}</span>
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.recipientUserId}}</span>
                  <span
                    v-else
                    class="frozenRowClass"
@@ -323,6 +336,110 @@
                </a-form-item>
              </a-col>
            </a-row>
            <a-divider
            orientation="center"
            style="font-size: large;font-style: italic;color: #66aeed;"
          > ç­‰é‡‡è´­ä»¶ </a-divider>
            <a-row
            :gutter="24"
            >
            <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="等采购件开始"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.repairOrderUda2}}</span>
                  <span
                    v-else
                    class="frozenRowClass"
                  >-</span>
                </a-form-item>
              </a-col>
              <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="等采购件结束"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.repairOrderUda3 }}</span>
                  <span
                    v-else
                    class="frozenRowClass"
                  >-</span>
                </a-form-item>
              </a-col>
              <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="累计时长"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.time1 }}</span>
                  <span
                    v-else
                    class="frozenRowClass"
                  >-</span>
                </a-form-item>
              </a-col>
            </a-row>
            <a-divider
            orientation="center"
            style="font-size: large;font-style: italic;color: #66aeed;"
          > ç­‰åР工件 </a-divider>
            <a-row
            :gutter="24"
            >
            <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="等加工件开始"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.repairOrderUda4 }}</span>
                  <span
                    v-else
                    class="frozenRowClass"
                  >-</span>
                </a-form-item>
              </a-col>
              <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="等加工件结束"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.repairOrderUda5 }}</span>
                  <span
                    v-else
                    class="frozenRowClass"
                  >-</span>
                </a-form-item>
              </a-col>
              <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="累计时长"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.time2 }}</span>
                  <span
                    v-else
                    class="frozenRowClass"
                  >-</span>
                </a-form-item>
              </a-col>
            </a-row>
            <a-divider
            orientation="center"
            style="font-size: large;font-style: italic;color: #66aeed;"
          > éªŒæ”¶ä¿¡æ¯ </a-divider>
            <a-row
              :gutter="24"
            >
@@ -361,99 +478,7 @@
                  label="故障时长"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.faultHour }}</span>
                  <span
                    v-else
                    class="frozenRowClass"
                  >-</span>
                </a-form-item>
              </a-col>
            </a-row>
            <a-row
            :gutter="24"
            >
            <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="等采购件开始"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.repairOrderUda2}}</span>
                  <span
                    v-else
                    class="frozenRowClass"
                  >-</span>
                </a-form-item>
              </a-col>
              <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="等采购件结束"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.repairOrderUda3 }}</span>
                  <span
                    v-else
                    class="frozenRowClass"
                  >-</span>
                </a-form-item>
              </a-col>
              <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="累计时间"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.spareTime }}</span>
                  <span
                    v-else
                    class="frozenRowClass"
                  >-</span>
                </a-form-item>
              </a-col>
            </a-row>
            <a-row
            :gutter="24"
            >
            <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="等加工件开始"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.repairOrderUda4 }}</span>
                  <span
                    v-else
                    class="frozenRowClass"
                  >-</span>
                </a-form-item>
              </a-col>
              <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="等加工件结束"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.repairOrderUda5 }}</span>
                  <span
                    v-else
                    class="frozenRowClass"
                  >-</span>
                </a-form-item>
              </a-col>
              <a-col :span="6">
                <a-form-item
                  :labelCol="labelCol"
                  :wrapperCol="wrapperCol"
                  label="累计时间"
                  class="hightColor"
                >
                  <span v-if="this.repairOrder != null">{{ this.repairOrder.partTime }}</span>
                  <span v-if="this.repairOrder != null">{{ this.time3 }}</span>
                  <span
                    v-else
                    class="frozenRowClass"
@@ -511,6 +536,7 @@
<script>
import { JeecgListMixin } from '@/mixins/JeecgListMixin'
import { putAction } from '@/api/manage'
import dayjs from 'dayjs'
import Tooltip from 'ant-design-vue/es/tooltip'
import RepairOrderActualMaterialList from './moudles/RepairOrderActualMaterialReport'
import RepairOrderActualWorkHoursList from './moudles/RepairOrderActualHoursReport'
@@ -523,7 +549,8 @@
    Tooltip,
    RepairOrderActualMaterialList,
    RepairOrderActualWorkHoursList,
    RepairOrderFaultAnalysisList
    RepairOrderFaultAnalysisList,
    dayjs
  },
  props: {
    repairOrder: {
@@ -552,11 +579,11 @@
      dataSource: [],
      labelCol: {
        xs: { span: 24 },
        sm: { span: 6 },
        sm: { span: 12 },
      },
      wrapperCol: {
        xs: { span: 24 },
        sm: { span: 18 },
        sm: { span: 12 },
      },
      url: {
        orderStart: "eam/repairOrder/start",
@@ -569,13 +596,26 @@
        handlePartStop:"/eam/repairOrder/handlePartStop",
        getInfo:'/eam/repairOrderFaultAnalysis/list',
      },
      elapsedTime: 0, // è®°å½•已过去的时间(单位:毫秒)
      formattedElapsedTime: '0秒',
      time1:'0秒',
      time2:'0秒',
      time3:'0秒',
      timer:null // æ ¼å¼åŒ–后的已过去时间
    }
  },
  mounted() {
    this.$bus.$on('closeDrawer', (data) => {
      this.handleCancel()
    })
    // this.$bus.$on('closeDrawer', (data) => {
    //   this.handleCancel()
    // })
    this.timer = setInterval(() => {
      this.updateElapsedTime();
    }, 1000);
  },
  beforeDestroy() {
    // åœ¨ç»„件销毁前清除计时器
    clearInterval(this.timer);
  },
  methods: {
@@ -627,6 +667,7 @@
    },
    //报工
    handleReportPro(){
      let that = this;
      getAction(that.url.getInfo,{repairOrderId:this.repairOrder.id}).then(res=>{
                if(res.success){
@@ -658,11 +699,10 @@
          putAction(that.url.orderReport, that.repairOrder).then(res => {
            if (res.result) {
              that.$message.success('报工成功');
              that.repairOrder.status = '4'
              that.reload();
              that.$emit('loadData');
            } else {
              that.$message.error('报工出现异常')
              that.$message.error(res.message)
            }
          }).finally(() => {
            that.confirmLoading = false;
@@ -684,7 +724,6 @@
          putAction(that.url.orderRevoke, that.repairOrder).then(res => {
            if (res.result) {
              that.$message.success('撤销成功');
              that.repairOrder.status = '3'
              that.$emit('loadData');
            } else {
              that.$message.error('撤销出现异常')
@@ -798,7 +837,52 @@
          this.repairOrder = res.result.records[0];
        }
      })
    }
    },
    updateElapsedTime() {
      const stardand = new Date();
      if(this.repairOrder.actualEndTime!==null&&this.repairOrder.actualEndTime!==undefined&&this.repairOrder.actualEndTime!==''){
        this.formattedElapsedTime = this.repairOrder.actualHour+'时';
      }else if(this.repairOrder.actualStartTime!==null&&this.repairOrder.actualStartTime!==undefined&&this.repairOrder.actualStartTime!==''){
        const startDateTime = dayjs(this.repairOrder.actualStartTime, { format: 'YYYY-MM-DD HH:mm:ss' });
        this.elapsedTime = stardand-startDateTime;
        this.formattedElapsedTime = this.formatTime(this.elapsedTime);
      }else{
        this.formattedElapsedTime="开工后计算时长";
      }
      if(this.repairOrder.repairOrderUda3!==null&&this.repairOrder.repairOrderUda3!==undefined&&this.repairOrder.repairOrderUda3!==''){
        this.time1 = this.repairOrder.spareTime+'时';
      }else if(this.repairOrder.repairOrderUda2!==null&&this.repairOrder.repairOrderUda2!==undefined&&this.repairOrder.repairOrderUda2!==''){
        const startDateTime1 = dayjs(this.repairOrder.repairOrderUda2, { format: 'YYYY-MM-DD HH:mm:ss' });
        this.time1 = this.formatTime(stardand-startDateTime1);
      }else{
        this.time1 = "等采购件后计算时长"
      }
      if(this.repairOrder.repairOrderUda5!==null&&this.repairOrder.repairOrderUda5!==undefined&&this.repairOrder.repairOrderUda5!==''){
        this.time2 = this.repairOrder.partTime+'时';
      }else if(this.repairOrder.repairOrderUda4!==null&&this.repairOrder.repairOrderUda4!==undefined&&this.repairOrder.repairOrderUda4!==''){
        const startDateTime2 = dayjs(this.repairOrder.repairOrderUda4, { format: 'YYYY-MM-DD HH:mm:ss' });
        this.time2 = this.formatTime(stardand-startDateTime2);
      }else{
        this.time2 = "等加工件后计算时长"
      }
      if(this.repairOrder.acceptTime!==null&&this.repairOrder.acceptTime!==undefined&&this.repairOrder.acceptTime!==''){
        this.time3 = this.repairOrder.faultHour+'时';
      }else if(this.repairOrder.faultTime!==null&&this.repairOrder.faultTime!==undefined&&this.repairOrder.faultTime!==''){
        const startDateTime3 = dayjs(this.repairOrder.faultTime, { format: 'YYYY-MM-DD HH:mm:ss' });
        this.time3 = this.formatTime(stardand-startDateTime3);
      }else{
        this.time3 = "验收后计算时长"
      }
    },
    formatTime(timeInMilliseconds) {
      // å°†æ¯«ç§’转换为更友好的格式(例如:x小时x分钟x秒)
      // è¿™é‡Œåªæ˜¯ä¸€ä¸ªç®€å•的实现,你可能需要根据需求进行更改
      const seconds = Math.floor(timeInMilliseconds / 1000);
      const minutes = Math.floor(seconds / 60);
      const hours = Math.floor(minutes / 60);
      return `${hours}时 ${minutes % 60}分 ${seconds % 60}秒`;
    },
  },
}
src/views/eam/modules/siteAreaLine/SiteAreaLineLeft.vue
@@ -216,7 +216,7 @@
    }
  },
  mounted() {
    this.$bus.$on('queryTreeData', this.queryTreeData);
    this.$bus.$on('queryAreaTreeData', this.queryTreeData);
  },
  //监听
  watch: {
src/views/eam/modules/siteAreaLine/SiteAreaLineModel.vue
@@ -251,7 +251,7 @@
  },
  watch: {
    alterFlag() {
      this.$bus.$emit('queryTreeData');
      this.$bus.$emit('queryAreaTreeData');
    },
  }
}
src/views/system/modules/UserModal.vue
@@ -74,7 +74,14 @@
          placeholder="请维护班组"
          ></j-dict-select-tag>
        </a-form-model-item>
        <a-form-model-item label="中心分配" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="areaId">
          <j-dict-select-tag
          v-model="model.areaId"
          :triggerChange="true"
          dictCode="mom_base_area,name,id,del_flag = 0"
          placeholder="请维护中心"
          ></j-dict-select-tag>
        </a-form-model-item>
        <a-form-model-item label="负责部门" :labelCol="labelCol" :wrapperCol="wrapperCol"  v-if="departIdShow==true">
          <j-multi-select-tag
            :disabled="disableSubmit"