已添加13个文件
已修改11个文件
3527 ■■■■■ 文件已修改
src/api/api.js 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/jeecgbiz/JSelectBaseFactory.vue 183 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/jeecgbiz/modal/JSelectBaseFactoryModal.vue 294 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/base/EamMaintenanceStandardList.vue 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/base/EamTechnicalStatusEvaluationStandardList.vue 47 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/base/modules/EamMaintenanceStandardDetailList.vue 84 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/base/modules/EamTechnicalStatusEvaluationStandardModal.vue 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/equipment/EamEquipmentLedger.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/equipment/modules/EamEquipmentModal.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/maintenance/modules/EamInspectionOrderModal.vue 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/technical/EamTechnicalStatusChangeList.vue 225 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/technical/EamTechnicalStatusDeactivateList.vue 230 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/technical/EamTechnicalStatusEvaluationApplicationList.vue 245 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/technical/EamTechnicalStatusEvaluationOrderChangeList.vue 255 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/technical/EamTechnicalStatusEvaluationOrderList.vue 315 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/technical/modules/EamTechnicalStatusChangeModal.vue 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/technical/modules/EamTechnicalStatusDeactivateModal.vue 147 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/technical/modules/EamTechnicalStatusEvaluationApplicationModal.vue 156 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderChangeModal.vue 162 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue 198 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/workflow/FlowTodo.vue 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/flowable/workflow/InspectionOrder/InspectionOrderHandle.vue 413 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/modules/SelectEamDeviceModal.vue 231 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/modules/UserModal.vue 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/api.js
@@ -67,7 +67,10 @@
const queryRepairDepartTreeList = (params)=>getAction("/eam/eamBaseRepairDepart/queryTreeList",params);
const queryRepDepIdTree = (params)=>getAction("/eam/eamBaseRepairDepart/queryIdTree",params);
const deleteByRepairDepartId   = (params)=>deleteAction("/eam/eamBaseRepairDepart/delete",params);
//EAM中心
const queryEamCenterTreeList = (params)=>getAction("/eam/BaseFactory/queryTreeList",params);
const queryEamCenterIdTree = (params)=>getAction("/eam/BaseFactory/queryIdTree",params);
const deleteByEamCenterId   = (params)=>deleteAction("/eam/BaseFactory/delete",params);
//产线树
@@ -190,8 +193,10 @@
  editEquipment,
  queryRepairDepartTreeList,
  queryRepDepIdTree,
  deleteByRepairDepartId
  deleteByRepairDepartId,
  queryEamCenterTreeList,
  queryEamCenterIdTree,
  deleteByEamCenterId
}
src/components/jeecgbiz/JSelectBaseFactory.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,183 @@
<template>
  <div class="components-input-demo-presuffix">
    <!---->
    <a-input @click="openModal" placeholder="请点击选择EAM中心" v-model="textVals" readOnly :disabled="disabled">
      <a-icon slot="prefix" type="cluster" title="EAM中心选择控件"/>
      <a-icon v-if="storeVals" slot="suffix" type="close-circle" @click="handleEmpty" title="清空"/>
    </a-input>
    <JSelectBaseFactoryModal
      ref="innerBaseFactorySelectModal"
      :modal-width="modalWidth"
      :multi="multi"
      :rootOpened="rootOpened"
      :BaseFactoryId="value"
      :store="storeField"
      :text="textField"
      :treeBaseFactory="treeBaseFactory"
      @ok="handleOK"
      @initComp="initComp">
    </JSelectBaseFactoryModal>
  </div>
</template>
<script>
  import JSelectBaseFactoryModal from './modal/JSelectBaseFactoryModal'
  import { underLinetoHump } from '@/components/_util/StringUtil'
  export default {
    name: 'JSelectBaseFactory',
    components:{
      JSelectBaseFactoryModal
    },
    props:{
      modalWidth:{
        type:Number,
        default:500,
        required:false
      },
      multi:{
        type:Boolean,
        default:false,
        required:false
      },
      rootOpened:{
        type:Boolean,
        default:true,
        required:false
      },
      value:{
        type:String,
        required:false
      },
      disabled:{
        type: Boolean,
        required: false,
        default: false
      },
      // è‡ªå®šä¹‰è¿”回字段,默认返回 id
      customReturnField: {
        type: String,
        default: ''
      },
      backBaseFactory: {
        type: Boolean,
        default: false,
        required: false
      },
      // å­˜å‚¨å­—段 [key field]
      store: {
        type: String,
        default: 'id',
        required: false
      },
      // æ˜¾ç¤ºå­—段 [label field]
      text: {
        type: String,
        default: 'factoryName',
        required: false
      },
      treeBaseFactory: {
        type: Boolean,
        default: false,
        required: false
      }
    },
    data(){
      return {
        visible:false,
        confirmLoading:false,
        storeVals: '', //[key values]
        textVals: '' //[label values]
      }
    },
    computed:{
      storeField(){
        let field = this.customReturnField
        if(!field){
          field = this.store;
        }
        return underLinetoHump(field)
      },
      textField(){
        return underLinetoHump(this.text)
      }
    },
    mounted(){
      this.storeVals = this.value
    },
    watch:{
      value(val){
        this.storeVals = val
      }
    },
    methods:{
      initComp(textVals){
        this.textVals = textVals
      },
      //返回选中的车间信息
      backBaseFactoryInfo(){
        if(this.backBaseFactory===true){
          //LOWCOD-2147 ã€ç”¨æˆ·ç®¡ç†ã€‘选择部门和上级以后,负责部门没有数据可选 (陶炎改造自定义返回字段导致)
          if(this.storeVals && this.storeVals.length>0){
            let arr1 = this.storeVals.split(',')
            let arr2 = this.textVals.split(',')
            let info = []
            for(let i=0;i<arr1.length;i++){
              info.push({
                value: arr1[i],
                text: arr2[i]
              })
            }
            this.$emit('back', info)
          }
        }
      },
      openModal(){
        this.$refs.innerBaseFactorySelectModal.show()
      },
      handleOK(rows) {
        if (!rows && rows.length <= 0) {
          this.textVals = ''
          this.storeVals = ''
        } else {
          let arr1 = []
          let arr2 = []
          for(let dep of rows){
            arr1.push(dep[this.storeField])
            arr2.push(dep[this.textField])
          }
          this.storeVals = arr1.join(',')
          this.textVals = arr2.join(',')
        }
        this.$emit("change", this.storeVals)
        this.backBaseFactoryInfo()
      },
      getBaseFactoryNames(){
        return this.departNames
      },
      handleEmpty(){
        this.handleOK('')
      }
    },
    model: {
      prop: 'value',
      event: 'change'
    }
  }
</script>
<style scoped>
  .components-input-demo-presuffix .anticon-close-circle {
    cursor: pointer;
    color: #ccc;
    transition: color 0.3s;
    font-size: 12px;
  }
  .components-input-demo-presuffix .anticon-close-circle:hover {
    color: #f5222d;
  }
  .components-input-demo-presuffix .anticon-close-circle:active {
    color: #666;
  }
</style>
src/components/jeecgbiz/modal/JSelectBaseFactoryModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,294 @@
<template>
  <j-modal
    title="请点击选择EAM中心"
    :width="modalWidth"
    :visible="visible"
    :confirmLoading="confirmLoading"
    @ok="handleSubmit"
    @cancel="handleCancel"
    @update:fullscreen="isFullscreen"
    wrapClassName="j-repair-depart-select-modal"
    switchFullscreen
    cancelText="关闭">
    <a-spin tip="Loading..." :spinning="false">
      <a-input-search style="margin-bottom: 1px" placeholder="请输入中心/工区/工段名称按回车进行搜索" @search="onSearch" />
      <a-tree
        checkable
        :class="treeScreenClass"
        :treeData="treeData"
        :checkStrictly="checkStrictly"
        @check="onCheck"
        @select="onSelect"
        @expand="onExpand"
        :autoExpandParent="autoExpandParent"
        :expandedKeys="expandedKeys"
        :checkedKeys="checkedKeys">
        <template slot="title" slot-scope="{title}">
          <span v-if="title.indexOf(searchValue) > -1">
            {{title.substr(0, title.indexOf(searchValue))}}
            <span style="color: #f50">{{searchValue}}</span>
            {{title.substr(title.indexOf(searchValue) + searchValue.length)}}
          </span>
          <span v-else>{{title}}</span>
        </template>
      </a-tree>
    </a-spin>
  </j-modal>
</template>
<script>
import {queryEamCenterTreeList} from '@/api/api'
  export default {
    name: 'JSelectBaseFactoryModal',
    props:['modalWidth','multi','rootOpened','BaseFactoryId', 'store', 'text','treeBaseFactory'],
    data(){
      return {
        visible:false,
        confirmLoading:false,
        treeData:[],
        autoExpandParent:true,
        expandedKeys:[],
        dataList:[],
        checkedKeys:[],
        checkedRows:[],
        searchValue:"",
        checkStrictly: false,
        fullscreen:false
      }
    },
    created(){
      this.loadDepart();
    },
    watch:{
      BaseFactoryId(){
        this.initDepartComponent()
      },
      visible: {
        handler() {
          this.initDepartComponent(true)
        }
      }
    },
    computed:{
      treeScreenClass() {
        return {
          'my-dept-select-tree': true,
          'fullscreen': this.fullscreen,
        }
      },
    },
    methods:{
      show(){
        this.visible=true
        this.checkedRows=[]
        this.checkedKeys=[]
      },
      loadDepart(){
        // è¿™ä¸ªæ–¹æ³•是找到所有的部门信息
        queryEamCenterTreeList().then(res=>{
          if(res.success){
            let arr = [...res.result]
            this.reWriterWithSlot(arr)
            this.treeData = arr
            this.initDepartComponent()
            if(this.rootOpened){
              this.initExpandedKeys(res.result)
            }
          }
        })
      },
      initDepartComponent(flag){
        let arr = []
        //该方法两个地方用 1.visible改变事件重新设置选中项 2.组件编辑页面回显
        let fieldName = flag==true?'key':this.text
        if(this.BaseFactoryId){
          let arr2 = this.BaseFactoryId.split(',')
          for(let item of this.dataList){
            if(arr2.indexOf(item[this.store])>=0){
              arr.push(item[fieldName])
            }
          }
        }
        if(flag==true){
          this.checkedKeys = [...arr]
        }else{
          this.$emit("initComp", arr.join(','))
        }
      },
      reWriterWithSlot(arr){
        for(let item of arr){
          if(item.children && item.children.length>0){
            this.reWriterWithSlot(item.children)
            let temp = Object.assign({},item)
            temp.children = {}
            this.dataList.push(temp)
          }else{
            this.dataList.push(item)
            item.scopedSlots={ title: 'title' }
          }
        }
      },
      initExpandedKeys(arr){
        if(arr && arr.length>0){
          let keys = []
          for(let item of arr){
            if(item.children && item.children.length>0){
              keys.push(item.id)
            }
          }
          this.expandedKeys=[...keys]
          //全部keys
          //this.allTreeKeys = [...keys]
        }else{
          this.expandedKeys=[]
          //this.allTreeKeys = []
        }
      },
      onCheck (checkedKeys,info) {
        if(!this.multi){
          let arr = checkedKeys.checked.filter(item => this.checkedKeys.indexOf(item) < 0)
          this.checkedKeys = [...arr]
          this.checkedRows = (this.checkedKeys.length === 0) ? [] : [info.node.dataRef]
        }else{
          if(this.checkStrictly){
            this.checkedKeys = checkedKeys.checked
          }else{
            this.checkedKeys = checkedKeys
          }
          this.checkedRows = this.getCheckedRows(this.checkedKeys)
        }
      },
      onSelect(selectedKeys,info) {
        //取消关联的情况下才走onSelect的逻辑
        if(this.checkStrictly){
          let keys = []
          keys.push(selectedKeys[0])
          if(!this.checkedKeys || this.checkedKeys.length===0 || !this.multi){
            this.checkedKeys = [...keys]
            this.checkedRows=[info.node.dataRef]
          }else{
            let currKey = info.node.dataRef.key
            if(this.checkedKeys.indexOf(currKey)>=0){
              this.checkedKeys = this.checkedKeys.filter(item=> item !==currKey)
            }else{
              this.checkedKeys.push(...keys)
            }
          }
          this.checkedRows = this.getCheckedRows(this.checkedKeys)
        }
      },
      onExpand (expandedKeys) {
        this.expandedKeys = expandedKeys
        this.autoExpandParent = false
      },
      handleSubmit(){
        if(!this.checkedKeys || this.checkedKeys.length==0){
          this.$emit("ok",'')
        }else{
          let checkRow = this.getCheckedRows(this.checkedKeys)
          let keyStr = this.checkedKeys.join(",")
          this.$emit("ok", checkRow, keyStr)
        }
        this.handleClear()
      },
      handleCancel(){
        this.handleClear()
      },
      handleClear(){
        this.visible=false
        this.checkedKeys=[]
      },
      getParentKey(currKey,treeData){
        let parentKey
        for (let i = 0; i < treeData.length; i++) {
          const node = treeData[i]
          if (node.children) {
            if (node.children.some(item => item.key === currKey)) {
              parentKey = node.key
            } else if (this.getParentKey(currKey, node.children)) {
              parentKey = this.getParentKey(currKey, node.children)
            }
          }
        }
        return parentKey
      },
      onSearch(value){
        const expandedKeys = this.dataList.map((item) => {
          if (item.title.indexOf(value) > -1) {
            return this.getParentKey(item.key,this.treeData)
          }
          return null
        }).filter((item, i, self) => item && self.indexOf(item) === i)
        Object.assign(this, {
          expandedKeys,
          searchValue: value,
          autoExpandParent: true,
        })
      },
      // æ ¹æ® checkedKeys èŽ·å– rows
      getCheckedRows(checkedKeys) {
        const forChildren = (list, key) => {
          for (let item of list) {
            if (item.id === key) {
              return item
            }
            if (item.children instanceof Array) {
              let value = forChildren(item.children, key)
              if (value != null) {
                return value
              }
            }
          }
          return null
        }
        let rows = []
        for (let key of checkedKeys) {
          let row = forChildren(this.treeData, key)
          if (row != null) {
            rows.push(row)
          }
        }
        return rows
      },
      switchCheckStrictly (v) {
        if(v==1){
          this.checkStrictly = false
        }else if(v==2){
          this.checkStrictly = true
        }
      },
      isFullscreen(val){
        this.fullscreen=val
      }
    }
  }
</script>
<style lang="less" scoped>
// é™åˆ¶éƒ¨é—¨é€‰æ‹©æ ‘高度,避免部门太多时点击确定不便
.my-dept-select-tree{
  height:350px;
  &.fullscreen{
    height: calc(100vh - 250px);
  }
  overflow-y: scroll;
}
.drawer-bootom-button {
  position: absolute;
  bottom: 0;
  width: 100%;
  border-top: 1px solid #e8e8e8;
  padding: 10px 16px;
  text-align: right;
  left: 0;
  background: #fff;
  border-radius: 0 0 2px 2px;
}
</style>
src/views/eam/base/EamMaintenanceStandardList.vue
@@ -90,19 +90,10 @@
        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
      </div>
      <a-table
        ref="table"
        size="middle"
        bordered
        rowKey="id"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        class="j-table-force-nowrap"
        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
        :customRow='clickThenSelect'
        @change="handleTableChange">
      <a-table ref="table" size="middle" bordered rowKey="id" :columns="columns" :dataSource="dataSource"
               :pagination="ipagination" :loading="loading" class="j-table-force-nowrap"
               :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" :customRow='clickThenSelect'
               @change="handleTableChange">
        <span slot="action" slot-scope="text, record">
          <a v-if="record.standardStatus === 'START'" @click.stop="handleUpgrade(record)">升版</a>
@@ -125,14 +116,33 @@
        </span>
      </a-table>
      <a-tabs defaultActiveKey="1">
        <a-tab-pane tab='保养标准明细项' key="1">
          <div class="table-operator" style="margin:-16px">
            <eam-maintenance-standard-detail-list ref="standardDetailRef" :standardId="standardId"
                                                  :pageSelectionRow="selectionRows[0]"/>
          </div>
        </a-tab-pane>
      <a-tabs defaultActiveKey="1" v-if="selectionRows.length===1">
        <template v-if="selectionRows[0]&&selectionRows[0].maintenanceCategory=='POINT_INSPECTION'">
          <a-tab-pane tab="日点检" key="1">
            <eam-maintenance-standard-detail-list :standardId="standardId" :pageSelectionRow="selectionRows[0]"
                                                  filterKey="DAY_INSPECTION"/>
          </a-tab-pane>
          <a-tab-pane tab="周点检" key="2" forceRender>
            <eam-maintenance-standard-detail-list :standardId="standardId" :pageSelectionRow="selectionRows[0]"
                                                  filterKey="WEEK_INSPECTION"/>
          </a-tab-pane>
        </template>
        <template v-if="selectionRows[0]&&selectionRows[0].maintenanceCategory=='SECOND_MAINTENANCE'">
          <a-tab-pane tab="操作工" key="1">
            <eam-maintenance-standard-detail-list :standardId="standardId" :pageSelectionRow="selectionRows[0]"
                                                  filterKey="OPERATOR_MAINTENANCE"/>
          </a-tab-pane>
          <a-tab-pane tab="维修工" key="2" forceRender>
            <eam-maintenance-standard-detail-list :standardId="standardId" :pageSelectionRow="selectionRows[0]"
                                                  filterKey="REPAIRER_MAINTENANCE"/>
          </a-tab-pane>
        </template>
        <a-tab-pane tab="三保" key="1" v-if="selectionRows[0]&&selectionRows[0].maintenanceCategory=='THIRD_MAINTENANCE'">
          <eam-maintenance-standard-detail-list :standardId="standardId"
                                                :pageSelectionRow="selectionRows[0]"/>
        </a-tab-pane>
      </a-tabs>
    </div>
    <!-- table区域-end -->
@@ -243,9 +253,8 @@
          secondMaintenanceImportExcel: '/eam/maintenanceStandard/importSecondMaintenanceStandard',
          thirdMaintenanceImportExcel: '/eam/maintenanceStandard/importThirdMaintenanceStandard',
          inspectionXlsDownloadUrl: '导入模板/点检标准导入模板_v1.0.xlsx',
          weekMaintenanceXlsDownloadUrl: '导入模板/周保标准导入模板_v1.0.xlsx',
          secondMaintenanceXlsDownloadUrl: '导入模板/二保标准导入模板_v1.0.xlsx',
          thirdMaintenanceXlsDownloadUrl: '导入模板/三保标准导入模板_v1.0.xlsx'
          secondMaintenanceXlsDownloadUrl: '导入模板/二保标准导入模板_v1.0.docx',
          thirdMaintenanceXlsDownloadUrl: '导入模板/三保标准导入模板_v1.0.docx'
        },
        standardId: '-1'
      }
src/views/eam/base/EamTechnicalStatusEvaluationStandardList.vue
@@ -43,9 +43,20 @@
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <div class="table-operator">
      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl"
      <a-upload name="file" :showUploadList="false" :multiple="true" :headers="tokenHeader"
                :action="importSafetyEquipmentCheck"
                @change="handleImportExcel">
        <a-button type="primary" icon="import">导入</a-button>
        <a-button type="primary" icon="import">安全装置检查导入</a-button>
      </a-upload>
      <a-upload name="file" :showUploadList="false" :multiple="true" :headers="tokenHeader"
                :action="importPrecisionCheck"
                @change="handleImportExcel">
        <a-button type="primary" icon="import">设备精度检查导入</a-button>
      </a-upload>
      <a-upload name="file" :showUploadList="false" :multiple="true" :headers="tokenHeader"
                :action="importOtherCheck"
                @change="handleImportExcel">
        <a-button type="primary" icon="import">其他检查导入</a-button>
      </a-upload>
      <a-dropdown v-if="selectedRowKeys.length > 0">
        <a-menu slot="overlay">
@@ -153,17 +164,22 @@
            align: 'center',
            dataIndex: 'standardName'
          },
          {
            title: '鉴定周期(年)',
            align: 'center',
            dataIndex: 'evaluationPeriod',
            width: 150
          },
          // {
          //   title: '鉴定周期(年)',
          //   align: 'center',
          //   dataIndex: 'evaluationPeriod',
          //   width: 150
          // },
          {
            title: '规范状态',
            align: 'center',
            dataIndex: 'standardStatus_dictText',
            width: 150
          },
          {
            title: '版本',
            align: 'center',
            dataIndex: 'standardVersion',
          },
          {
            title: '是否有安全装置检查',
@@ -196,13 +212,22 @@
        url: {
          list: '/eam/eamTechnicalStatusEvaluationStandard/list',
          submit: '/eam/eamTechnicalStatusEvaluationStandard/submit',
          importExcelUrl: 'eam/eamTechnicalStatusEvaluationStandard/importExcel'
          importSafetyEquipmentCheck: 'eam/eamTechnicalStatusEvaluationStandard/importSafetyEquipmentCheck',
          importPrecisionCheck: 'eam/eamTechnicalStatusEvaluationStandard/importPrecisionCheck',
          importOtherCheck: 'eam/eamTechnicalStatusEvaluationStandard/importOtherCheck',
        }
      }
    },
    computed: {
      importExcelUrl: function() {
        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
      importSafetyEquipmentCheck: function() {
        return `${window._CONFIG['domianURL']}/${this.url.importSafetyEquipmentCheck}`
      },
      importPrecisionCheck: function() {
        return `${window._CONFIG['domianURL']}/${this.url.importPrecisionCheck}`
      },
      importOtherCheck: function() {
        return `${window._CONFIG['domianURL']}/${this.url.importOtherCheck}`
      }
    },
    methods: {
src/views/eam/base/modules/EamMaintenanceStandardDetailList.vue
@@ -32,6 +32,9 @@
        type: Object,
        default: () => {
        }
      },
      filterKey: {
        type: String
      }
    },
    data() {
@@ -39,18 +42,12 @@
        description: '保养标准明细管理页面',
        // è¡¨å¤´
        columns: [],
        defaultColumns: [
        inspectionColumns: [
          {
            title: '序号',
            align: 'center',
            dataIndex: 'itemCode',
            width: 60
          },
          {
            title: '部位',
            align: 'center',
            dataIndex: 'itemPart',
            ellipsis: true
          },
          {
            title: '保养项分类',
@@ -71,6 +68,53 @@
            ellipsis: true
          }
        ],
        secondMaintenanceColumns: [
          {
            title: '序号',
            align: 'center',
            dataIndex: 'itemCode',
            width: 60
          },
          {
            title: '保养项分类',
            align: 'center',
            dataIndex: 'itemCategory_dictText',
            width: 150
          },
          {
            title: '保养项目',
            align: 'center',
            dataIndex: 'itemName',
            ellipsis: true
          }
        ],
        thirdMaintenanceColumns: [
          {
            title: '序号',
            align: 'center',
            dataIndex: 'itemCode',
            width: 60
          },
          {
            title: '保养部位',
            align: 'center',
            dataIndex: 'itemPart',
            ellipsis: true
          },
          {
            title: '保养内容',
            align: 'center',
            dataIndex: 'itemName',
            ellipsis: true
          },
          {
            title: '验收标准',
            align: 'center',
            dataIndex: 'itemDemand',
            ellipsis: true
          }
        ],
        disableMixinCreated: true,
        url: {
          list: '/eam/eamMaintenanceStandardDetail/list'
        }
@@ -81,28 +125,32 @@
        immediate: true,
        handler(val) {
          if (val) {
            this.loadData(1)
            console.log('val---------------------', val)
            this.$nextTick(() => this.loadData(1))
          } else {
            this.clearList()
          }
        }
      },
      pageSelectionRow: {
        immediate: true,
        handler(val) {
          if (val) {
            if (val.maintenanceCategory != 'THIRD_MAINTENANCE') this.columns = [...this.defaultColumns.filter(item => item.dataIndex != 'itemPart')]
            else this.columns = [...this.defaultColumns.filter(item => item.dataIndex != 'itemCategory_dictText')]
          switch (val.maintenanceCategory) {
            case 'POINT_INSPECTION':
              this.columns = this.inspectionColumns
              break
            case 'SECOND_MAINTENANCE':
              this.columns = this.secondMaintenanceColumns
              break
            case 'THIRD_MAINTENANCE':
              this.columns = this.thirdMaintenanceColumns
              break
          }
        }
      }
    },
    computed: {},
    methods: {
      loadData(arg) {
        if (!this.url.list) {
          this.$message.error('请设置url.list属性!')
          return
        }
        if (this.standardId && this.standardId === '-1') {
          this.clearList()
          return
@@ -118,11 +166,13 @@
        this.dataSource = []
        params.standardId = this.standardId
        this.loading = true
        console.log('----------------------', this.filterKey)
        getAction(this.url.list, params).then((res) => {
          if (res.success) {
            // console.log(res)
            //update-begin---author:zhangyafei    Date:20201118  for:适配不分页的数据列表------------
            this.dataSource = res.result.records || res.result
            if (this.filterKey) this.dataSource = res.result.records.filter(item => item.itemCategory == this.filterKey)
            else this.dataSource = res.result.records
            if (res.result.total) {
              this.ipagination.total = res.result.total
            } else {
src/views/eam/base/modules/EamTechnicalStatusEvaluationStandardModal.vue
@@ -23,13 +23,13 @@
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="8">
            <a-form-model-item label="鉴定周期(å¹´)">
              <a-input-number v-model="model.evaluationPeriod" :min="1" placeholder="请输入鉴定周期(å¹´)" style="width: 100%"/>
            </a-form-model-item>
          </a-col>
        </a-row>
<!--        <a-row>-->
<!--          <a-col :span="8">-->
<!--            <a-form-model-item label="鉴定周期(å¹´)">-->
<!--              <a-input-number v-model="model.evaluationPeriod" :min="1" placeholder="请输入鉴定周期(å¹´)" style="width: 100%"/>-->
<!--            </a-form-model-item>-->
<!--          </a-col>-->
<!--        </a-row>-->
        <a-row>
          <!--<a-col :span="8">-->
@@ -213,7 +213,7 @@
              width: 150,
              validateRules: [
                { required: true, message: '请输入${title}' },
                { unique: true, message: '${title}不能重复' }
                { unique: false, message: '${title}不能重复' }
              ]
            },
            {
@@ -230,7 +230,7 @@
              placeholder: '请输入${title}',
              type: JVXETypes.textarea,
              align: 'center',
              validateRules: [{ required: true, message: '请输入${title}' }]
              validateRules: [{ required: false, message: '请输入${title}' }]
            },
            {
              title: '允差值',
src/views/eam/equipment/EamEquipmentLedger.vue
@@ -468,7 +468,7 @@
          importExcelUrl: 'eam/equipment/importExcel',
          getProductionTreeList: '/eam/BaseFactory/queryTreeList',
          repairDepartTreeList: '/eam/eamBaseRepairDepart/queryTreeList',
          templateXlsDownloadUrl: '导入模板/设备台账导入模板_v1.1.xlsx'
          templateXlsDownloadUrl: '导入模板/设备台账导入模板.xls'
        },
        currentTableRowRecord: {},
        productionTreeData: [],
src/views/eam/equipment/modules/EamEquipmentModal.vue
@@ -99,7 +99,7 @@
              <a-row>
                <a-col :span="customSpan">
                  <a-form-model-item label="系统">
                    <a-input placeholder="请输入系统" :disabled="Boolean(+model.operationSystem)" v-model="model.system"/>
                    <a-input placeholder="请输入系统" :disabled="!Boolean(+model.operationSystem)" v-model="model.system"/>
                  </a-form-model-item>
                </a-col>
                <a-col :span="customSpan">
src/views/eam/maintenance/modules/EamInspectionOrderModal.vue
@@ -128,7 +128,7 @@
            {
              title: '序号',
              key: 'itemCode',
              type: JVXETypes.inputNumber,
              type: JVXETypes.normal,
              width: 100,
              align: 'center',
              disabled: true
@@ -156,42 +156,42 @@
              type: JVXETypes.normal,
              width: 60,
              align: 'center',
              fixed: 'left'
              disabled: true
            },
            {
              title: '保养项',
              key: 'itemName',
              type: JVXETypes.textarea,
              align: 'center',
              fixed: 'left'
              disabled: true
            },
            {
              title: '保养要求',
              key: 'itemDemand',
              type: JVXETypes.textarea,
              align: 'center',
              fixed: 'left'
              disabled: true
            },
            {
              title: '点检结果',
              key: 'inspectionResult',
              type: JVXETypes.slot,
              slotName: 'inspectionResult',
              align: 'center'
              type: JVXETypes.textarea,
              align: 'center',
              disabled: true
            },
            {
              title: '异常描述',
              key: 'exceptionDescription',
              type: JVXETypes.slot,
              slotName: 'exceptionDescription',
              align: 'center'
              type: JVXETypes.textarea,
              align: 'center',
              disabled: true
            },
            {
              title: '异常是否报修',
              key: 'reportFlag',
              type: JVXETypes.slot,
              slotName: 'reportFlag',
              align: 'center'
              type: JVXETypes.textarea,
              align: 'center',
              disabled: true
            }
          ]
        }
src/views/eam/technical/EamTechnicalStatusChangeList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,225 @@
<template>
  <a-card :bordered="false">
    <!-- æŸ¥è¯¢åŒºåŸŸ -->
    <div class="table-page-search-wrapper">
      <a-form layout="inline" @keyup.enter.native="searchQuery">
        <a-row :gutter="24">
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="删除标记">
              <a-input placeholder="请输入删除标记" v-model="queryParam.delFlag"></a-input>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="变更单号">
              <a-input placeholder="请输入变更单号" v-model="queryParam.changeOrderNum"></a-input>
            </a-form-item>
          </a-col>
        <template v-if="toggleSearchStatus">
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="变更单状态">
              <a-input placeholder="请输入变更单状态" v-model="queryParam.changeStatus"></a-input>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="编制人">
              <a-input placeholder="请输入编制人" v-model="queryParam.designer"></a-input>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="编制时间">
              <a-input placeholder="请输入编制时间" v-model="queryParam.designerTime"></a-input>
            </a-form-item>
          </a-col>
          </template>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
              <a-button type="info" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
              <a @click="handleToggleSearch" style="margin-left: 8px">
                {{ toggleSearchStatus ? '收起' : '展开' }}
                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
              </a>
            </span>
          </a-col>
        </a-row>
      </a-form>
    </div>
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <div class="table-operator">
      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
      <a-button type="primary" icon="download" @click="handleExportXls('技术状态变更申请')">导出</a-button>
      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
        <a-button type="primary" icon="import">导入</a-button>
      </a-upload>
      <a-dropdown v-if="selectedRowKeys.length > 0">
        <a-menu slot="overlay">
          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
        </a-menu>
        <a-button style="margin-left: 8px"> æ‰¹é‡æ“ä½œ <a-icon type="down" /></a-button>
      </a-dropdown>
    </div>
    <!-- table区域-begin -->
    <div>
      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
        <i class="anticon anticon-info-circle ant-alert-icon"></i> å·²é€‰æ‹© <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
      </div>
      <a-table
        ref="table"
        size="middle"
        bordered
        rowKey="id"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        class="j-table-force-nowrap"
        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
        @change="handleTableChange">
        <span slot="action" slot-scope="text, record">
          <a @click="handleEdit(record)">编辑</a>
          <a-divider type="vertical" />
          <a-dropdown>
            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
            <a-menu slot="overlay">
              <a-menu-item>
                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
                  <a>删除</a>
                </a-popconfirm>
              </a-menu-item>
            </a-menu>
          </a-dropdown>
        </span>
      </a-table>
    </div>
    <!-- table区域-end -->
    <!-- è¡¨å•区域 -->
    <eamTechnicalStatusChange-modal ref="modalForm" @ok="modalFormOk"></eamTechnicalStatusChange-modal>
  </a-card>
</template>
<script>
  import '@/assets/less/TableExpand.less'
  import EamTechnicalStatusChangeModal from './modules/EamTechnicalStatusChangeModal'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  export default {
    name: "EamTechnicalStatusChangeList",
    mixins:[JeecgListMixin],
    components: {
      EamTechnicalStatusChangeModal
    },
    data () {
      return {
        description: '技术状态变更申请管理页面',
        // è¡¨å¤´
        columns: [
          {
            title: '#',
            dataIndex: '',
            key:'rowIndex',
            width:60,
            align:"center",
            customRender:function (t,r,index) {
              return parseInt(index)+1;
            }
           },
           {
            title: '删除标记',
            align:"center",
            dataIndex: 'delFlag'
           },
           {
            title: '变更单号',
            align:"center",
            dataIndex: 'changeOrderNum'
           },
           {
            title: '变更单状态',
            align:"center",
            dataIndex: 'changeStatus'
           },
           {
            title: '编制人',
            align:"center",
            dataIndex: 'designer'
           },
           {
            title: '编制时间',
            align:"center",
            dataIndex: 'designerTime'
           },
           {
            title: '使用单位室主管签字',
            align:"center",
            dataIndex: 'departHeaderSignature'
           },
           {
            title: '使用单位室主管签字时间',
            align:"center",
            dataIndex: 'departHeaderSignatureTime'
           },
           {
            title: '使用单位室主管意见',
            align:"center",
            dataIndex: 'departHeaderSignatureComment'
           },
           {
            title: '使用单位部主管签字',
            align:"center",
            dataIndex: 'departLeaderSignature'
           },
           {
            title: '使用单位部主管签字时间',
            align:"center",
            dataIndex: 'departLeaderSignatureTime'
           },
           {
            title: '使用单位部主管签字',
            align:"center",
            dataIndex: 'departLeaderSignatureComment'
           },
           {
            title: 'HF编码',
            align:"center",
            dataIndex: 'hfCode'
           },
          {
            title: '操作',
            dataIndex: 'action',
            align:"center",
            scopedSlots: { customRender: 'action' },
          }
        ],
        url: {
          list: "/eam/eamTechnicalStatusChange/list",
          delete: "/eam/eamTechnicalStatusChange/delete",
          deleteBatch: "/eam/eamTechnicalStatusChange/deleteBatch",
          exportXlsUrl: "eam/eamTechnicalStatusChange/exportXls",
          importExcelUrl: "eam/eamTechnicalStatusChange/importExcel",
       },
    }
  },
  computed: {
    importExcelUrl: function(){
      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
    }
  },
    methods: {
    }
  }
</script>
<style scoped>
  @import '~@assets/less/common.less';
</style>
src/views/eam/technical/EamTechnicalStatusDeactivateList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,230 @@
<template>
  <a-card :bordered="false">
    <!-- æŸ¥è¯¢åŒºåŸŸ -->
    <div class="table-page-search-wrapper">
      <a-form layout="inline" @keyup.enter.native="searchQuery">
        <a-row :gutter="24">
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="删除标记">
              <a-input placeholder="请输入删除标记" v-model="queryParam.delFlag"></a-input>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="停用单号">
              <a-input placeholder="请输入停用单号" v-model="queryParam.deactivateOrderNum"></a-input>
            </a-form-item>
          </a-col>
        <template v-if="toggleSearchStatus">
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="申请人">
              <a-input placeholder="请输入申请人" v-model="queryParam.applicant"></a-input>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="申请部门">
              <a-input placeholder="请输入申请部门" v-model="queryParam.factoryOrgCode"></a-input>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="申请日期">
              <a-input placeholder="请输入申请日期" v-model="queryParam.applyDate"></a-input>
            </a-form-item>
          </a-col>
          </template>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
              <a-button type="info" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
              <a @click="handleToggleSearch" style="margin-left: 8px">
                {{ toggleSearchStatus ? '收起' : '展开' }}
                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
              </a>
            </span>
          </a-col>
        </a-row>
      </a-form>
    </div>
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <div class="table-operator">
      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
      <a-button type="primary" icon="download" @click="handleExportXls('停用加工设备申请单')">导出</a-button>
      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
        <a-button type="primary" icon="import">导入</a-button>
      </a-upload>
      <a-dropdown v-if="selectedRowKeys.length > 0">
        <a-menu slot="overlay">
          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
        </a-menu>
        <a-button style="margin-left: 8px"> æ‰¹é‡æ“ä½œ <a-icon type="down" /></a-button>
      </a-dropdown>
    </div>
    <!-- table区域-begin -->
    <div>
      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
        <i class="anticon anticon-info-circle ant-alert-icon"></i> å·²é€‰æ‹© <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
      </div>
      <a-table
        ref="table"
        size="middle"
        bordered
        rowKey="id"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        class="j-table-force-nowrap"
        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
        @change="handleTableChange">
        <span slot="action" slot-scope="text, record">
          <a @click="handleEdit(record)">编辑</a>
          <a-divider type="vertical" />
          <a-dropdown>
            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
            <a-menu slot="overlay">
              <a-menu-item>
                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
                  <a>删除</a>
                </a-popconfirm>
              </a-menu-item>
            </a-menu>
          </a-dropdown>
        </span>
      </a-table>
    </div>
    <!-- table区域-end -->
    <!-- è¡¨å•区域 -->
    <eamTechnicalStatusDeactivate-modal ref="modalForm" @ok="modalFormOk"></eamTechnicalStatusDeactivate-modal>
  </a-card>
</template>
<script>
  import '@/assets/less/TableExpand.less'
  import EamTechnicalStatusDeactivateModal from './modules/EamTechnicalStatusDeactivateModal'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  export default {
    name: "EamTechnicalStatusDeactivateList",
    mixins:[JeecgListMixin],
    components: {
      EamTechnicalStatusDeactivateModal
    },
    data () {
      return {
        description: '停用加工设备申请单管理页面',
        // è¡¨å¤´
        columns: [
          {
            title: '#',
            dataIndex: '',
            key:'rowIndex',
            width:60,
            align:"center",
            customRender:function (t,r,index) {
              return parseInt(index)+1;
            }
           },
           {
            title: '删除标记',
            align:"center",
            dataIndex: 'delFlag'
           },
           {
            title: '停用单号',
            align:"center",
            dataIndex: 'deactivateOrderNum'
           },
           {
            title: '申请人',
            align:"center",
            dataIndex: 'applicant'
           },
           {
            title: '申请部门',
            align:"center",
            dataIndex: 'factoryOrgCode'
           },
           {
            title: '申请日期',
            align:"center",
            dataIndex: 'applyDate'
           },
           {
            title: '申请单状态;待提交、待单位室级领导审核、生产设备管理主管审核、待保障部领导审核、已作废、已完成',
            align:"center",
            dataIndex: 'applicationStatus'
           },
           {
            title: '使用单位室主管签字',
            align:"center",
            dataIndex: 'departHeaderSignature'
           },
           {
            title: '使用单位室主管签字时间',
            align:"center",
            dataIndex: 'departHeaderSignatureTime'
           },
           {
            title: '使用单位室主管意见',
            align:"center",
            dataIndex: 'departHeaderSignatureComment'
           },
           {
            title: '使用单位部主管签字',
            align:"center",
            dataIndex: 'departLeaderSignature'
           },
           {
            title: '使用单位部主管签字时间',
            align:"center",
            dataIndex: 'departLeaderSignatureTime'
           },
           {
            title: '使用单位部主管签字',
            align:"center",
            dataIndex: 'departLeaderSignatureComment'
           },
           {
            title: 'HF编码',
            align:"center",
            dataIndex: 'hfCode'
           },
          {
            title: '操作',
            dataIndex: 'action',
            align:"center",
            scopedSlots: { customRender: 'action' },
          }
        ],
        url: {
          list: "/eam/eamTechnicalStatusDeactivate/list",
          delete: "/eam/eamTechnicalStatusDeactivate/delete",
          deleteBatch: "/eam/eamTechnicalStatusDeactivate/deleteBatch",
          exportXlsUrl: "eam/eamTechnicalStatusDeactivate/exportXls",
          importExcelUrl: "eam/eamTechnicalStatusDeactivate/importExcel",
       },
    }
  },
  computed: {
    importExcelUrl: function(){
      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
    }
  },
    methods: {
    }
  }
</script>
<style scoped>
  @import '~@assets/less/common.less';
</style>
src/views/eam/technical/EamTechnicalStatusEvaluationApplicationList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,245 @@
<template>
  <a-card :bordered="false">
    <!-- æŸ¥è¯¢åŒºåŸŸ -->
    <div class="table-page-search-wrapper">
      <a-form layout="inline" @keyup.enter.native="searchQuery">
        <a-row :gutter="24">
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="删除标记">
              <a-input placeholder="请输入删除标记" v-model="queryParam.delFlag"></a-input>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="申请单号">
              <a-input placeholder="请输入申请单号" v-model="queryParam.applicationOrderNum"></a-input>
            </a-form-item>
          </a-col>
        <template v-if="toggleSearchStatus">
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="申请人">
              <a-input placeholder="请输入申请人" v-model="queryParam.applicant"></a-input>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="申请部门">
              <a-input placeholder="请输入申请部门" v-model="queryParam.factoryOrgCode"></a-input>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="申请日期">
              <a-input placeholder="请输入申请日期" v-model="queryParam.applyDate"></a-input>
            </a-form-item>
          </a-col>
          </template>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
              <a-button type="info" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
              <a @click="handleToggleSearch" style="margin-left: 8px">
                {{ toggleSearchStatus ? '收起' : '展开' }}
                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
              </a>
            </span>
          </a-col>
        </a-row>
      </a-form>
    </div>
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <div class="table-operator">
      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
      <a-button type="primary" icon="download" @click="handleExportXls('加工设备技术鉴定申请')">导出</a-button>
      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
        <a-button type="primary" icon="import">导入</a-button>
      </a-upload>
      <a-dropdown v-if="selectedRowKeys.length > 0">
        <a-menu slot="overlay">
          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
        </a-menu>
        <a-button style="margin-left: 8px"> æ‰¹é‡æ“ä½œ <a-icon type="down" /></a-button>
      </a-dropdown>
    </div>
    <!-- table区域-begin -->
    <div>
      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
        <i class="anticon anticon-info-circle ant-alert-icon"></i> å·²é€‰æ‹© <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
      </div>
      <a-table
        ref="table"
        size="middle"
        bordered
        rowKey="id"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        class="j-table-force-nowrap"
        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
        @change="handleTableChange">
        <span slot="action" slot-scope="text, record">
          <a @click="handleEdit(record)">编辑</a>
          <a-divider type="vertical" />
          <a-dropdown>
            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
            <a-menu slot="overlay">
              <a-menu-item>
                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
                  <a>删除</a>
                </a-popconfirm>
              </a-menu-item>
            </a-menu>
          </a-dropdown>
        </span>
      </a-table>
    </div>
    <!-- table区域-end -->
    <!-- è¡¨å•区域 -->
    <eamTechnicalStatusEvaluationApplication-modal ref="modalForm" @ok="modalFormOk"></eamTechnicalStatusEvaluationApplication-modal>
  </a-card>
</template>
<script>
  import '@/assets/less/TableExpand.less'
  import EamTechnicalStatusEvaluationApplicationModal from './modules/EamTechnicalStatusEvaluationApplicationModal'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  export default {
    name: "EamTechnicalStatusEvaluationApplicationList",
    mixins:[JeecgListMixin],
    components: {
      EamTechnicalStatusEvaluationApplicationModal
    },
    data () {
      return {
        description: '加工设备技术鉴定申请管理页面',
        // è¡¨å¤´
        columns: [
          {
            title: '#',
            dataIndex: '',
            key:'rowIndex',
            width:60,
            align:"center",
            customRender:function (t,r,index) {
              return parseInt(index)+1;
            }
           },
           {
            title: '删除标记',
            align:"center",
            dataIndex: 'delFlag'
           },
           {
            title: '申请单号',
            align:"center",
            dataIndex: 'applicationOrderNum'
           },
           {
            title: '申请人',
            align:"center",
            dataIndex: 'applicant'
           },
           {
            title: '申请部门',
            align:"center",
            dataIndex: 'factoryOrgCode'
           },
           {
            title: '申请日期',
            align:"center",
            dataIndex: 'applyDate'
           },
           {
            title: '申请单状态;待提交、待单位室级领导审核、生产设备管理主管审核、待保障部领导审核、已作废、已完成',
            align:"center",
            dataIndex: 'applicationStatus'
           },
           {
            title: '申请单位室级领导签字',
            align:"center",
            dataIndex: 'departHeaderSignature'
           },
           {
            title: '申请单位室级领导签字时间',
            align:"center",
            dataIndex: 'departHeaderSignatureTime'
           },
           {
            title: '申请单位室级领导意见',
            align:"center",
            dataIndex: 'departHeaderComment'
           },
           {
            title: '生产设备管理主管签字',
            align:"center",
            dataIndex: 'productionHeaderSignature'
           },
           {
            title: '生产设备管理主管签字四件',
            align:"center",
            dataIndex: 'productionHeaderSignatureTime'
           },
           {
            title: '生产设备管理主管意见',
            align:"center",
            dataIndex: 'productionHeaderComment'
           },
           {
            title: '生产保障部领导签字',
            align:"center",
            dataIndex: 'productionSupportSignature'
           },
           {
            title: '生产保障部领导签字时间',
            align:"center",
            dataIndex: 'productionSupportSignatureTime'
           },
           {
            title: '生产保障部领导意见',
            align:"center",
            dataIndex: 'productionSupportComment'
           },
           {
            title: 'HF编码',
            align:"center",
            dataIndex: 'hfCode'
           },
          {
            title: '操作',
            dataIndex: 'action',
            align:"center",
            scopedSlots: { customRender: 'action' },
          }
        ],
        url: {
          list: "/eam/eamTechnicalStatusEvaluationApplication/list",
          delete: "/eam/eamTechnicalStatusEvaluationApplication/delete",
          deleteBatch: "/eam/eamTechnicalStatusEvaluationApplication/deleteBatch",
          exportXlsUrl: "eam/eamTechnicalStatusEvaluationApplication/exportXls",
          importExcelUrl: "eam/eamTechnicalStatusEvaluationApplication/importExcel",
       },
    }
  },
  computed: {
    importExcelUrl: function(){
      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
    }
  },
    methods: {
    }
  }
</script>
<style scoped>
  @import '~@assets/less/common.less';
</style>
src/views/eam/technical/EamTechnicalStatusEvaluationOrderChangeList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,255 @@
<template>
  <a-card :bordered="false">
    <!-- æŸ¥è¯¢åŒºåŸŸ -->
    <div class="table-page-search-wrapper">
      <a-form layout="inline" @keyup.enter.native="searchQuery">
        <a-row :gutter="24">
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="删除标记">
              <a-input placeholder="请输入删除标记" v-model="queryParam.delFlag"></a-input>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="工单ID">
              <a-input placeholder="请输入工单ID" v-model="queryParam.orderId"></a-input>
            </a-form-item>
          </a-col>
        <template v-if="toggleSearchStatus">
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="变更单号">
              <a-input placeholder="请输入变更单号" v-model="queryParam.changeOrderNum"></a-input>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="申请人">
              <a-input placeholder="请输入申请人" v-model="queryParam.applicant"></a-input>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="申请部门">
              <a-input placeholder="请输入申请部门" v-model="queryParam.factoryOrgCode"></a-input>
            </a-form-item>
          </a-col>
          </template>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
              <a-button type="info" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
              <a @click="handleToggleSearch" style="margin-left: 8px">
                {{ toggleSearchStatus ? '收起' : '展开' }}
                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
              </a>
            </span>
          </a-col>
        </a-row>
      </a-form>
    </div>
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <div class="table-operator">
      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
      <a-button type="primary" icon="download" @click="handleExportXls('技术状态鉴定工单变更')">导出</a-button>
      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
        <a-button type="primary" icon="import">导入</a-button>
      </a-upload>
      <a-dropdown v-if="selectedRowKeys.length > 0">
        <a-menu slot="overlay">
          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
        </a-menu>
        <a-button style="margin-left: 8px"> æ‰¹é‡æ“ä½œ <a-icon type="down" /></a-button>
      </a-dropdown>
    </div>
    <!-- table区域-begin -->
    <div>
      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
        <i class="anticon anticon-info-circle ant-alert-icon"></i> å·²é€‰æ‹© <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
      </div>
      <a-table
        ref="table"
        size="middle"
        bordered
        rowKey="id"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        class="j-table-force-nowrap"
        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
        @change="handleTableChange">
        <span slot="action" slot-scope="text, record">
          <a @click="handleEdit(record)">编辑</a>
          <a-divider type="vertical" />
          <a-dropdown>
            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
            <a-menu slot="overlay">
              <a-menu-item>
                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
                  <a>删除</a>
                </a-popconfirm>
              </a-menu-item>
            </a-menu>
          </a-dropdown>
        </span>
      </a-table>
    </div>
    <!-- table区域-end -->
    <!-- è¡¨å•区域 -->
    <eamTechnicalStatusEvaluationOrderChange-modal ref="modalForm" @ok="modalFormOk"></eamTechnicalStatusEvaluationOrderChange-modal>
  </a-card>
</template>
<script>
  import '@/assets/less/TableExpand.less'
  import EamTechnicalStatusEvaluationOrderChangeModal from './modules/EamTechnicalStatusEvaluationOrderChangeModal'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  export default {
    name: "EamTechnicalStatusEvaluationOrderChangeList",
    mixins:[JeecgListMixin],
    components: {
      EamTechnicalStatusEvaluationOrderChangeModal
    },
    data () {
      return {
        description: '技术状态鉴定工单变更管理页面',
        // è¡¨å¤´
        columns: [
          {
            title: '#',
            dataIndex: '',
            key:'rowIndex',
            width:60,
            align:"center",
            customRender:function (t,r,index) {
              return parseInt(index)+1;
            }
           },
           {
            title: '删除标记',
            align:"center",
            dataIndex: 'delFlag'
           },
           {
            title: '工单ID',
            align:"center",
            dataIndex: 'orderId'
           },
           {
            title: '变更单号',
            align:"center",
            dataIndex: 'changeOrderNum'
           },
           {
            title: '申请人',
            align:"center",
            dataIndex: 'applicant'
           },
           {
            title: '申请部门',
            align:"center",
            dataIndex: 'factoryOrgCode'
           },
           {
            title: '申请日期',
            align:"center",
            dataIndex: 'applyDate'
           },
           {
            title: '变更状态;待提交、待主管审核、待部门确认、待保障部确认、已作废、已完成',
            align:"center",
            dataIndex: 'changeStatus'
           },
           {
            title: '变更原因;生产任务急无法停机、设备故障正处于维修状态、设备已报废、设备大修、搬迁、改造',
            align:"center",
            dataIndex: 'applyReason'
           },
           {
            title: '变更鉴定日期',
            align:"center",
            dataIndex: 'deferredMaintenanceDate'
           },
           {
            title: '主管领导签字',
            align:"center",
            dataIndex: 'equipmentManagerSignature'
           },
           {
            title: '主管领导签字时间',
            align:"center",
            dataIndex: 'equipmentManagerSignatureTime'
           },
           {
            title: '部门领导签字;根据变更原因类型区分不同的人审批',
            align:"center",
            dataIndex: 'departManagerSignature'
           },
           {
            title: '部门领导签字时间',
            align:"center",
            dataIndex: 'departManagerSignatureTime'
           },
           {
            title: '部门领导意见',
            align:"center",
            dataIndex: 'departManagerComment'
           },
           {
            title: '生产保障部领导签字',
            align:"center",
            dataIndex: 'productionSupportSignature'
           },
           {
            title: '生产保障部领导签字时间',
            align:"center",
            dataIndex: 'productionSupportSignatureTime'
           },
           {
            title: '生产保障部领导意见',
            align:"center",
            dataIndex: 'productionSupportComment'
           },
           {
            title: 'HF编码',
            align:"center",
            dataIndex: 'hfCode'
           },
          {
            title: '操作',
            dataIndex: 'action',
            align:"center",
            scopedSlots: { customRender: 'action' },
          }
        ],
        url: {
          list: "/eam/eamTechnicalStatusEvaluationOrderChange/list",
          delete: "/eam/eamTechnicalStatusEvaluationOrderChange/delete",
          deleteBatch: "/eam/eamTechnicalStatusEvaluationOrderChange/deleteBatch",
          exportXlsUrl: "eam/eamTechnicalStatusEvaluationOrderChange/exportXls",
          importExcelUrl: "eam/eamTechnicalStatusEvaluationOrderChange/importExcel",
       },
    }
  },
  computed: {
    importExcelUrl: function(){
      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
    }
  },
    methods: {
    }
  }
</script>
<style scoped>
  @import '~@assets/less/common.less';
</style>
src/views/eam/technical/EamTechnicalStatusEvaluationOrderList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,315 @@
<template>
  <a-card :bordered="false">
    <!-- æŸ¥è¯¢åŒºåŸŸ -->
    <div class="table-page-search-wrapper">
      <a-form layout="inline" @keyup.enter.native="searchQuery">
        <a-row :gutter="24">
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="删除标记">
              <a-input placeholder="请输入删除标记" v-model="queryParam.delFlag"></a-input>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="工单号">
              <a-input placeholder="请输入工单号" v-model="queryParam.orderNum"></a-input>
            </a-form-item>
          </a-col>
        <template v-if="toggleSearchStatus">
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="设备ID">
              <a-input placeholder="请输入设备ID" v-model="queryParam.equipmentId"></a-input>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="规范ID">
              <a-input placeholder="请输入规范ID" v-model="queryParam.standardId"></a-input>
            </a-form-item>
          </a-col>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <a-form-item label="计划鉴定日期;提前70天生成工单">
              <a-input placeholder="请输入计划鉴定日期;提前70天生成工单" v-model="queryParam.evaluationDate"></a-input>
            </a-form-item>
          </a-col>
          </template>
          <a-col :xl="6" :lg="7" :md="8" :sm="24">
            <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
              <a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
              <a-button type="info" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
              <a @click="handleToggleSearch" style="margin-left: 8px">
                {{ toggleSearchStatus ? '收起' : '展开' }}
                <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>
              </a>
            </span>
          </a-col>
        </a-row>
      </a-form>
    </div>
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <div class="table-operator">
      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
      <a-button type="primary" icon="download" @click="handleExportXls('技术状态鉴定工单')">导出</a-button>
      <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">
        <a-button type="primary" icon="import">导入</a-button>
      </a-upload>
      <a-dropdown v-if="selectedRowKeys.length > 0">
        <a-menu slot="overlay">
          <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>删除</a-menu-item>
        </a-menu>
        <a-button style="margin-left: 8px"> æ‰¹é‡æ“ä½œ <a-icon type="down" /></a-button>
      </a-dropdown>
    </div>
    <!-- table区域-begin -->
    <div>
      <div class="ant-alert ant-alert-info" style="margin-bottom: 16px;">
        <i class="anticon anticon-info-circle ant-alert-icon"></i> å·²é€‰æ‹© <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>项
        <a style="margin-left: 24px" @click="onClearSelected">清空</a>
      </div>
      <a-table
        ref="table"
        size="middle"
        bordered
        rowKey="id"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        class="j-table-force-nowrap"
        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
        @change="handleTableChange">
        <span slot="action" slot-scope="text, record">
          <a @click="handleEdit(record)">编辑</a>
          <a-divider type="vertical" />
          <a-dropdown>
            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
            <a-menu slot="overlay">
              <a-menu-item>
                <a-popconfirm title="确定删除吗?" @confirm="() => handleDelete(record.id)">
                  <a>删除</a>
                </a-popconfirm>
              </a-menu-item>
            </a-menu>
          </a-dropdown>
        </span>
      </a-table>
    </div>
    <!-- table区域-end -->
    <!-- è¡¨å•区域 -->
    <eamTechnicalStatusEvaluationOrder-modal ref="modalForm" @ok="modalFormOk"></eamTechnicalStatusEvaluationOrder-modal>
  </a-card>
</template>
<script>
  import '@/assets/less/TableExpand.less'
  import EamTechnicalStatusEvaluationOrderModal from './modules/EamTechnicalStatusEvaluationOrderModal'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  export default {
    name: "EamTechnicalStatusEvaluationOrderList",
    mixins:[JeecgListMixin],
    components: {
      EamTechnicalStatusEvaluationOrderModal
    },
    data () {
      return {
        description: '技术状态鉴定工单管理页面',
        // è¡¨å¤´
        columns: [
          {
            title: '#',
            dataIndex: '',
            key:'rowIndex',
            width:60,
            align:"center",
            customRender:function (t,r,index) {
              return parseInt(index)+1;
            }
           },
           {
            title: '删除标记',
            align:"center",
            dataIndex: 'delFlag'
           },
           {
            title: '工单号',
            align:"center",
            dataIndex: 'orderNum'
           },
           {
            title: '设备ID',
            align:"center",
            dataIndex: 'equipmentId'
           },
           {
            title: '规范ID',
            align:"center",
            dataIndex: 'standardId'
           },
           {
            title: '计划鉴定日期;提前70天生成工单',
            align:"center",
            dataIndex: 'evaluationDate'
           },
           {
            title: '锁定工单日期;提前55天锁定工单',
            align:"center",
            dataIndex: 'freezeOrderDate'
           },
           {
            title: '工单过期日期;到期未做直接过期,并修改设备技术状态为禁用',
            align:"center",
            dataIndex: 'orderExpirationDate'
           },
           {
            title: '实际开始时间',
            align:"center",
            dataIndex: 'actualStartTime'
           },
           {
            title: '实际结束时间',
            align:"center",
            dataIndex: 'actualEndTime'
           },
           {
            title: '鉴定人',
            align:"center",
            dataIndex: 'evaluator'
           },
           {
            title: '鉴定状态;待鉴定、鉴定中、维修室主任签字、工艺人员签字、技术主管签字、设备检验员签字、已完成、已锁定、变更中、已过期',
            align:"center",
            dataIndex: 'evaluationStatus'
           },
           {
            title: '创建方式',
            align:"center",
            dataIndex: 'creationMethod'
           },
           {
            title: '安全装置检查结果;是、否',
            align:"center",
            dataIndex: 'safetyEquipmentCheckResult'
           },
           {
            title: '精度参数检查结果;是、否、无',
            align:"center",
            dataIndex: 'precisionCheckResult'
           },
           {
            title: '功能状态检查结果;是、否',
            align:"center",
            dataIndex: 'functionalCheckResult'
           },
           {
            title: '其他检查结果;是、否、无',
            align:"center",
            dataIndex: 'otherCheckResult'
           },
           {
            title: '维修室主任签字',
            align:"center",
            dataIndex: 'repairManagerSignature'
           },
           {
            title: '维修室主任签字时间',
            align:"center",
            dataIndex: 'repairManagerSignatureTime1'
           },
           {
            title: '试件检查结果;合格、不合格',
            align:"center",
            dataIndex: 'sampleCheckResult'
           },
           {
            title: '工艺员签字',
            align:"center",
            dataIndex: 'processTechnicianSignature'
           },
           {
            title: '工艺员签字时间',
            align:"center",
            dataIndex: 'processTechnicianSignatureTime'
           },
           {
            title: '鉴定结果;合格、限用、禁用',
            align:"center",
            dataIndex: 'evaluationResult'
           },
           {
            title: '限\禁用原因(多选);安全装置、设备功能、精度、试件、其他',
            align:"center",
            dataIndex: 'evaluationReason'
           },
           {
            title: '设备检查人签字',
            align:"center",
            dataIndex: 'inspectorSignature'
           },
           {
            title: '设备检查人签字时间',
            align:"center",
            dataIndex: 'inspectorSignatureTime'
           },
           {
            title: '附录A HF编码',
            align:"center",
            dataIndex: 'hfCodeA'
           },
           {
            title: '附录B HF编码',
            align:"center",
            dataIndex: 'hfCodeB'
           },
           {
            title: '附录C HF编码',
            align:"center",
            dataIndex: 'hfCodeC'
           },
           {
            title: '附录D HF编码',
            align:"center",
            dataIndex: 'hfCodeD'
           },
           {
            title: '备注',
            align:"center",
            dataIndex: 'remark'
           },
          {
            title: '操作',
            dataIndex: 'action',
            align:"center",
            scopedSlots: { customRender: 'action' },
          }
        ],
        url: {
          list: "/eam/eamTechnicalStatusEvaluationOrder/list",
          delete: "/eam/eamTechnicalStatusEvaluationOrder/delete",
          deleteBatch: "/eam/eamTechnicalStatusEvaluationOrder/deleteBatch",
          exportXlsUrl: "eam/eamTechnicalStatusEvaluationOrder/exportXls",
          importExcelUrl: "eam/eamTechnicalStatusEvaluationOrder/importExcel",
       },
    }
  },
  computed: {
    importExcelUrl: function(){
      return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
    }
  },
    methods: {
    }
  }
</script>
<style scoped>
  @import '~@assets/less/common.less';
</style>
src/views/eam/technical/modules/EamTechnicalStatusChangeModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,144 @@
<template>
  <j-modal
    :title="title"
    :width="800"
    :visible="visible"
    :confirmLoading="confirmLoading"
    switchFullscreen
    @ok="handleOk"
    @cancel="handleCancel"
    cancelText="关闭">
    <a-spin :spinning="confirmLoading">
      <a-form-model ref="form" :model="model" :rules="validatorRules">
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="delFlag" label="删除标记">
          <a-input-number v-model="model.delFlag"/>
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="changeOrderNum" label="变更单号">
          <a-input placeholder="请输入变更单号" v-model="model.changeOrderNum" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="changeStatus" label="变更单状态">
          <a-input placeholder="请输入变更单状态" v-model="model.changeStatus" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="designer" label="编制人">
          <a-input placeholder="请输入编制人" v-model="model.designer" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="designerTime" label="编制时间">
          <a-input placeholder="请输入编制时间" v-model="model.designerTime" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departHeaderSignature" label="使用单位室主管签字">
          <a-input placeholder="请输入使用单位室主管签字" v-model="model.departHeaderSignature" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departHeaderSignatureTime" label="使用单位室主管签字时间">
          <a-input placeholder="请输入使用单位室主管签字时间" v-model="model.departHeaderSignatureTime" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departHeaderSignatureComment" label="使用单位室主管意见">
          <a-input placeholder="请输入使用单位室主管意见" v-model="model.departHeaderSignatureComment" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departLeaderSignature" label="使用单位部主管签字">
          <a-input placeholder="请输入使用单位部主管签字" v-model="model.departLeaderSignature" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departLeaderSignatureTime" label="使用单位部主管签字时间">
          <a-input placeholder="请输入使用单位部主管签字时间" v-model="model.departLeaderSignatureTime" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departLeaderSignatureComment" label="使用单位部主管签字">
          <a-input placeholder="请输入使用单位部主管签字" v-model="model.departLeaderSignatureComment" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hfCode" label="HF编码">
          <a-input placeholder="请输入HF编码" v-model="model.hfCode" />
        </a-form-model-item>
      </a-form-model>
    </a-spin>
  </j-modal>
</template>
<script>
  import { httpAction } from '@/api/manage'
  import moment from "moment"
  export default {
    name: "EamTechnicalStatusChangeModal",
    data () {
      return {
        title:"操作",
        visible: false,
        model: {},
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 },
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 },
        },
        confirmLoading: false,
        validatorRules:{
        },
        url: {
          add: "/eam/eamTechnicalStatusChange/add",
          edit: "/eam/eamTechnicalStatusChange/edit",
        },
      }
    },
    created () {
    },
    methods: {
      add () {
        //初始化默认值
        this.edit({});
      },
      edit (record) {
        this.model = Object.assign({}, record);
        this.visible = true;
      },
      close () {
        this.$emit('close');
        this.visible = false;
        this.$refs.form.clearValidate();
      },
      handleOk () {
        const that = this;
        // è§¦å‘表单验证
         this.$refs.form.validate(valid => {
          if (valid) {
            that.confirmLoading = true;
            let httpurl = '';
            let method = '';
            if(!this.model.id){
              httpurl+=this.url.add;
              method = 'post';
            }else{
              httpurl+=this.url.edit;
               method = 'put';
            }
            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()
      },
    }
  }
</script>
<style lang="less" scoped>
</style>
src/views/eam/technical/modules/EamTechnicalStatusDeactivateModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,147 @@
<template>
  <j-modal
    :title="title"
    :width="800"
    :visible="visible"
    :confirmLoading="confirmLoading"
    switchFullscreen
    @ok="handleOk"
    @cancel="handleCancel"
    cancelText="关闭">
    <a-spin :spinning="confirmLoading">
      <a-form-model ref="form" :model="model" :rules="validatorRules">
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="delFlag" label="删除标记">
          <a-input-number v-model="model.delFlag"/>
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="deactivateOrderNum" label="停用单号">
          <a-input placeholder="请输入停用单号" v-model="model.deactivateOrderNum" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="applicant" label="申请人">
          <a-input placeholder="请输入申请人" v-model="model.applicant" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="factoryOrgCode" label="申请部门">
          <a-input placeholder="请输入申请部门" v-model="model.factoryOrgCode" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="applyDate" label="申请日期">
          <a-input placeholder="请输入申请日期" v-model="model.applyDate" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="applicationStatus" label="申请单状态;待提交、待单位室级领导审核、生产设备管理主管审核、待保障部领导审核、已作废、已完成">
          <a-input placeholder="请输入申请单状态;待提交、待单位室级领导审核、生产设备管理主管审核、待保障部领导审核、已作废、已完成" v-model="model.applicationStatus" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departHeaderSignature" label="使用单位室主管签字">
          <a-input placeholder="请输入使用单位室主管签字" v-model="model.departHeaderSignature" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departHeaderSignatureTime" label="使用单位室主管签字时间">
          <a-input placeholder="请输入使用单位室主管签字时间" v-model="model.departHeaderSignatureTime" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departHeaderSignatureComment" label="使用单位室主管意见">
          <a-input placeholder="请输入使用单位室主管意见" v-model="model.departHeaderSignatureComment" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departLeaderSignature" label="使用单位部主管签字">
          <a-input placeholder="请输入使用单位部主管签字" v-model="model.departLeaderSignature" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departLeaderSignatureTime" label="使用单位部主管签字时间">
          <a-input placeholder="请输入使用单位部主管签字时间" v-model="model.departLeaderSignatureTime" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departLeaderSignatureComment" label="使用单位部主管签字">
          <a-input placeholder="请输入使用单位部主管签字" v-model="model.departLeaderSignatureComment" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hfCode" label="HF编码">
          <a-input placeholder="请输入HF编码" v-model="model.hfCode" />
        </a-form-model-item>
      </a-form-model>
    </a-spin>
  </j-modal>
</template>
<script>
  import { httpAction } from '@/api/manage'
  import moment from "moment"
  export default {
    name: "EamTechnicalStatusDeactivateModal",
    data () {
      return {
        title:"操作",
        visible: false,
        model: {},
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 },
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 },
        },
        confirmLoading: false,
        validatorRules:{
        },
        url: {
          add: "/eam/eamTechnicalStatusDeactivate/add",
          edit: "/eam/eamTechnicalStatusDeactivate/edit",
        },
      }
    },
    created () {
    },
    methods: {
      add () {
        //初始化默认值
        this.edit({});
      },
      edit (record) {
        this.model = Object.assign({}, record);
        this.visible = true;
      },
      close () {
        this.$emit('close');
        this.visible = false;
        this.$refs.form.clearValidate();
      },
      handleOk () {
        const that = this;
        // è§¦å‘表单验证
         this.$refs.form.validate(valid => {
          if (valid) {
            that.confirmLoading = true;
            let httpurl = '';
            let method = '';
            if(!this.model.id){
              httpurl+=this.url.add;
              method = 'post';
            }else{
              httpurl+=this.url.edit;
               method = 'put';
            }
            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()
      },
    }
  }
</script>
<style lang="less" scoped>
</style>
src/views/eam/technical/modules/EamTechnicalStatusEvaluationApplicationModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,156 @@
<template>
  <j-modal
    :title="title"
    :width="800"
    :visible="visible"
    :confirmLoading="confirmLoading"
    switchFullscreen
    @ok="handleOk"
    @cancel="handleCancel"
    cancelText="关闭">
    <a-spin :spinning="confirmLoading">
      <a-form-model ref="form" :model="model" :rules="validatorRules">
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="delFlag" label="删除标记">
          <a-input-number v-model="model.delFlag"/>
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="applicationOrderNum" label="申请单号">
          <a-input placeholder="请输入申请单号" v-model="model.applicationOrderNum" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="applicant" label="申请人">
          <a-input placeholder="请输入申请人" v-model="model.applicant" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="factoryOrgCode" label="申请部门">
          <a-input placeholder="请输入申请部门" v-model="model.factoryOrgCode" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="applyDate" label="申请日期">
          <a-input placeholder="请输入申请日期" v-model="model.applyDate" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="applicationStatus" label="申请单状态;待提交、待单位室级领导审核、生产设备管理主管审核、待保障部领导审核、已作废、已完成">
          <a-input placeholder="请输入申请单状态;待提交、待单位室级领导审核、生产设备管理主管审核、待保障部领导审核、已作废、已完成" v-model="model.applicationStatus" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departHeaderSignature" label="申请单位室级领导签字">
          <a-input placeholder="请输入申请单位室级领导签字" v-model="model.departHeaderSignature" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departHeaderSignatureTime" label="申请单位室级领导签字时间">
          <a-input placeholder="请输入申请单位室级领导签字时间" v-model="model.departHeaderSignatureTime" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departHeaderComment" label="申请单位室级领导意见">
          <a-input placeholder="请输入申请单位室级领导意见" v-model="model.departHeaderComment" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="productionHeaderSignature" label="生产设备管理主管签字">
          <a-input placeholder="请输入生产设备管理主管签字" v-model="model.productionHeaderSignature" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="productionHeaderSignatureTime" label="生产设备管理主管签字四件">
          <a-input placeholder="请输入生产设备管理主管签字四件" v-model="model.productionHeaderSignatureTime" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="productionHeaderComment" label="生产设备管理主管意见">
          <a-input placeholder="请输入生产设备管理主管意见" v-model="model.productionHeaderComment" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="productionSupportSignature" label="生产保障部领导签字">
          <a-input placeholder="请输入生产保障部领导签字" v-model="model.productionSupportSignature" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="productionSupportSignatureTime" label="生产保障部领导签字时间">
          <a-input placeholder="请输入生产保障部领导签字时间" v-model="model.productionSupportSignatureTime" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="productionSupportComment" label="生产保障部领导意见">
          <a-input placeholder="请输入生产保障部领导意见" v-model="model.productionSupportComment" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hfCode" label="HF编码">
          <a-input placeholder="请输入HF编码" v-model="model.hfCode" />
        </a-form-model-item>
      </a-form-model>
    </a-spin>
  </j-modal>
</template>
<script>
  import { httpAction } from '@/api/manage'
  import moment from "moment"
  export default {
    name: "EamTechnicalStatusEvaluationApplicationModal",
    data () {
      return {
        title:"操作",
        visible: false,
        model: {},
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 },
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 },
        },
        confirmLoading: false,
        validatorRules:{
        },
        url: {
          add: "/eam/eamTechnicalStatusEvaluationApplication/add",
          edit: "/eam/eamTechnicalStatusEvaluationApplication/edit",
        },
      }
    },
    created () {
    },
    methods: {
      add () {
        //初始化默认值
        this.edit({});
      },
      edit (record) {
        this.model = Object.assign({}, record);
        this.visible = true;
      },
      close () {
        this.$emit('close');
        this.visible = false;
        this.$refs.form.clearValidate();
      },
      handleOk () {
        const that = this;
        // è§¦å‘表单验证
         this.$refs.form.validate(valid => {
          if (valid) {
            that.confirmLoading = true;
            let httpurl = '';
            let method = '';
            if(!this.model.id){
              httpurl+=this.url.add;
              method = 'post';
            }else{
              httpurl+=this.url.edit;
               method = 'put';
            }
            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()
      },
    }
  }
</script>
<style lang="less" scoped>
</style>
src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderChangeModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,162 @@
<template>
  <j-modal
    :title="title"
    :width="800"
    :visible="visible"
    :confirmLoading="confirmLoading"
    switchFullscreen
    @ok="handleOk"
    @cancel="handleCancel"
    cancelText="关闭">
    <a-spin :spinning="confirmLoading">
      <a-form-model ref="form" :model="model" :rules="validatorRules">
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="delFlag" label="删除标记">
          <a-input-number v-model="model.delFlag"/>
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderId" label="工单ID">
          <a-input placeholder="请输入工单ID" v-model="model.orderId" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="changeOrderNum" label="变更单号">
          <a-input placeholder="请输入变更单号" v-model="model.changeOrderNum" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="applicant" label="申请人">
          <a-input placeholder="请输入申请人" v-model="model.applicant" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="factoryOrgCode" label="申请部门">
          <a-input placeholder="请输入申请部门" v-model="model.factoryOrgCode" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="applyDate" label="申请日期">
          <a-input placeholder="请输入申请日期" v-model="model.applyDate" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="changeStatus" label="变更状态;待提交、待主管审核、待部门确认、待保障部确认、已作废、已完成">
          <a-input placeholder="请输入变更状态;待提交、待主管审核、待部门确认、待保障部确认、已作废、已完成" v-model="model.changeStatus" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="applyReason" label="变更原因;生产任务急无法停机、设备故障正处于维修状态、设备已报废、设备大修、搬迁、改造">
          <a-input placeholder="请输入变更原因;生产任务急无法停机、设备故障正处于维修状态、设备已报废、设备大修、搬迁、改造" v-model="model.applyReason" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="deferredMaintenanceDate" label="变更鉴定日期">
          <a-input placeholder="请输入变更鉴定日期" v-model="model.deferredMaintenanceDate" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentManagerSignature" label="主管领导签字">
          <a-input placeholder="请输入主管领导签字" v-model="model.equipmentManagerSignature" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentManagerSignatureTime" label="主管领导签字时间">
          <a-input placeholder="请输入主管领导签字时间" v-model="model.equipmentManagerSignatureTime" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departManagerSignature" label="部门领导签字;根据变更原因类型区分不同的人审批">
          <a-input placeholder="请输入部门领导签字;根据变更原因类型区分不同的人审批" v-model="model.departManagerSignature" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departManagerSignatureTime" label="部门领导签字时间">
          <a-input placeholder="请输入部门领导签字时间" v-model="model.departManagerSignatureTime" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="departManagerComment" label="部门领导意见">
          <a-input placeholder="请输入部门领导意见" v-model="model.departManagerComment" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="productionSupportSignature" label="生产保障部领导签字">
          <a-input placeholder="请输入生产保障部领导签字" v-model="model.productionSupportSignature" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="productionSupportSignatureTime" label="生产保障部领导签字时间">
          <a-input placeholder="请输入生产保障部领导签字时间" v-model="model.productionSupportSignatureTime" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="productionSupportComment" label="生产保障部领导意见">
          <a-input placeholder="请输入生产保障部领导意见" v-model="model.productionSupportComment" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hfCode" label="HF编码">
          <a-input placeholder="请输入HF编码" v-model="model.hfCode" />
        </a-form-model-item>
      </a-form-model>
    </a-spin>
  </j-modal>
</template>
<script>
  import { httpAction } from '@/api/manage'
  import moment from "moment"
  export default {
    name: "EamTechnicalStatusEvaluationOrderChangeModal",
    data () {
      return {
        title:"操作",
        visible: false,
        model: {},
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 },
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 },
        },
        confirmLoading: false,
        validatorRules:{
        },
        url: {
          add: "/eam/eamTechnicalStatusEvaluationOrderChange/add",
          edit: "/eam/eamTechnicalStatusEvaluationOrderChange/edit",
        },
      }
    },
    created () {
    },
    methods: {
      add () {
        //初始化默认值
        this.edit({});
      },
      edit (record) {
        this.model = Object.assign({}, record);
        this.visible = true;
      },
      close () {
        this.$emit('close');
        this.visible = false;
        this.$refs.form.clearValidate();
      },
      handleOk () {
        const that = this;
        // è§¦å‘表单验证
         this.$refs.form.validate(valid => {
          if (valid) {
            that.confirmLoading = true;
            let httpurl = '';
            let method = '';
            if(!this.model.id){
              httpurl+=this.url.add;
              method = 'post';
            }else{
              httpurl+=this.url.edit;
               method = 'put';
            }
            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()
      },
    }
  }
</script>
<style lang="less" scoped>
</style>
src/views/eam/technical/modules/EamTechnicalStatusEvaluationOrderModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,198 @@
<template>
  <j-modal
    :title="title"
    :width="800"
    :visible="visible"
    :confirmLoading="confirmLoading"
    switchFullscreen
    @ok="handleOk"
    @cancel="handleCancel"
    cancelText="关闭">
    <a-spin :spinning="confirmLoading">
      <a-form-model ref="form" :model="model" :rules="validatorRules">
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="delFlag" label="删除标记">
          <a-input-number v-model="model.delFlag"/>
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderNum" label="工单号">
          <a-input placeholder="请输入工单号" v-model="model.orderNum" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentId" label="设备ID">
          <a-input placeholder="请输入设备ID" v-model="model.equipmentId" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="standardId" label="规范ID">
          <a-input placeholder="请输入规范ID" v-model="model.standardId" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="evaluationDate" label="计划鉴定日期;提前70天生成工单">
          <a-input placeholder="请输入计划鉴定日期;提前70天生成工单" v-model="model.evaluationDate" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="freezeOrderDate" label="锁定工单日期;提前55天锁定工单">
          <a-input placeholder="请输入锁定工单日期;提前55天锁定工单" v-model="model.freezeOrderDate" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="orderExpirationDate" label="工单过期日期;到期未做直接过期,并修改设备技术状态为禁用">
          <a-input placeholder="请输入工单过期日期;到期未做直接过期,并修改设备技术状态为禁用" v-model="model.orderExpirationDate" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="actualStartTime" label="实际开始时间">
          <a-input placeholder="请输入实际开始时间" v-model="model.actualStartTime" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="actualEndTime" label="实际结束时间">
          <a-input placeholder="请输入实际结束时间" v-model="model.actualEndTime" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="evaluator" label="鉴定人">
          <a-input placeholder="请输入鉴定人" v-model="model.evaluator" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="evaluationStatus" label="鉴定状态;待鉴定、鉴定中、维修室主任签字、工艺人员签字、技术主管签字、设备检验员签字、已完成、已锁定、变更中、已过期">
          <a-input placeholder="请输入鉴定状态;待鉴定、鉴定中、维修室主任签字、工艺人员签字、技术主管签字、设备检验员签字、已完成、已锁定、变更中、已过期" v-model="model.evaluationStatus" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="creationMethod" label="创建方式">
          <a-input placeholder="请输入创建方式" v-model="model.creationMethod" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="safetyEquipmentCheckResult" label="安全装置检查结果;是、否">
          <a-input placeholder="请输入安全装置检查结果;是、否" v-model="model.safetyEquipmentCheckResult" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="precisionCheckResult" label="精度参数检查结果;是、否、无">
          <a-input placeholder="请输入精度参数检查结果;是、否、无" v-model="model.precisionCheckResult" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="functionalCheckResult" label="功能状态检查结果;是、否">
          <a-input placeholder="请输入功能状态检查结果;是、否" v-model="model.functionalCheckResult" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="otherCheckResult" label="其他检查结果;是、否、无">
          <a-input placeholder="请输入其他检查结果;是、否、无" v-model="model.otherCheckResult" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairManagerSignature" label="维修室主任签字">
          <a-input placeholder="请输入维修室主任签字" v-model="model.repairManagerSignature" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairManagerSignatureTime1" label="维修室主任签字时间">
          <a-input placeholder="请输入维修室主任签字时间" v-model="model.repairManagerSignatureTime1" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="sampleCheckResult" label="试件检查结果;合格、不合格">
          <a-input placeholder="请输入试件检查结果;合格、不合格" v-model="model.sampleCheckResult" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processTechnicianSignature" label="工艺员签字">
          <a-input placeholder="请输入工艺员签字" v-model="model.processTechnicianSignature" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="processTechnicianSignatureTime" label="工艺员签字时间">
          <a-input placeholder="请输入工艺员签字时间" v-model="model.processTechnicianSignatureTime" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="evaluationResult" label="鉴定结果;合格、限用、禁用">
          <a-input placeholder="请输入鉴定结果;合格、限用、禁用" v-model="model.evaluationResult" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="evaluationReason" label="限\禁用原因(多选);安全装置、设备功能、精度、试件、其他">
          <a-input placeholder="请输入限\禁用原因(多选);安全装置、设备功能、精度、试件、其他" v-model="model.evaluationReason" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="inspectorSignature" label="设备检查人签字">
          <a-input placeholder="请输入设备检查人签字" v-model="model.inspectorSignature" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="inspectorSignatureTime" label="设备检查人签字时间">
          <a-input placeholder="请输入设备检查人签字时间" v-model="model.inspectorSignatureTime" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hfCodeA" label="附录A HF编码">
          <a-input placeholder="请输入附录A HF编码" v-model="model.hfCodeA" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hfCodeB" label="附录B HF编码">
          <a-input placeholder="请输入附录B HF编码" v-model="model.hfCodeB" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hfCodeC" label="附录C HF编码">
          <a-input placeholder="请输入附录C HF编码" v-model="model.hfCodeC" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="hfCodeD" label="附录D HF编码">
          <a-input placeholder="请输入附录D HF编码" v-model="model.hfCodeD" />
        </a-form-model-item>
        <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark" label="备注">
          <a-input placeholder="请输入备注" v-model="model.remark" />
        </a-form-model-item>
      </a-form-model>
    </a-spin>
  </j-modal>
</template>
<script>
  import { httpAction } from '@/api/manage'
  import moment from "moment"
  export default {
    name: "EamTechnicalStatusEvaluationOrderModal",
    data () {
      return {
        title:"操作",
        visible: false,
        model: {},
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 },
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 },
        },
        confirmLoading: false,
        validatorRules:{
        },
        url: {
          add: "/eam/eamTechnicalStatusEvaluationOrder/add",
          edit: "/eam/eamTechnicalStatusEvaluationOrder/edit",
        },
      }
    },
    created () {
    },
    methods: {
      add () {
        //初始化默认值
        this.edit({});
      },
      edit (record) {
        this.model = Object.assign({}, record);
        this.visible = true;
      },
      close () {
        this.$emit('close');
        this.visible = false;
        this.$refs.form.clearValidate();
      },
      handleOk () {
        const that = this;
        // è§¦å‘表单验证
         this.$refs.form.validate(valid => {
          if (valid) {
            that.confirmLoading = true;
            let httpurl = '';
            let method = '';
            if(!this.model.id){
              httpurl+=this.url.add;
              method = 'post';
            }else{
              httpurl+=this.url.edit;
               method = 'put';
            }
            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()
      },
    }
  }
</script>
<style lang="less" scoped>
</style>
src/views/flowable/workflow/FlowTodo.vue
@@ -90,6 +90,8 @@
    <maintenance-standard-approval-modal ref="maintenanceStandardApprovalModal" @modalFormOk="modalFormOk"
                                         :selectShenpiData="selectedRowData"/>
    <inspection-order-handle ref="modalFormInspectionOrder" :selectShenpiData="selectedRowData"/>
  </a-card>
</template>
@@ -98,11 +100,12 @@
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import { getAction } from '@api/manage'
  import MaintenanceStandardApprovalModal from './MaintenanceStandard/MaintenanceStandardApprovalModal'
  import InspectionOrderHandle from './InspectionOrder/InspectionOrderHandle'
  export default {
    name: 'NcDeviceCharactersList',
    mixins: [JeecgListMixin, mixinDevice],
    components: { MaintenanceStandardApprovalModal },
    components: { InspectionOrderHandle, MaintenanceStandardApprovalModal },
    data() {
      return {
        description: '工作流-我的待办',
@@ -225,8 +228,11 @@
        }
      },
      /**
       * ç‚¹å‡»ä¿å…»è§„范分类流程详情时触发
       * @param record
       */
      handleMaintenanceStandard(record) {
        console.log('this.$refs.maintenanceStandardApprovalModal.', this.$refs.maintenanceStandardApprovalModal)
        this.selectedRowData = Object.assign({}, record)
        this.$refs.maintenanceStandardApprovalModal.visible = true
        this.$refs.maintenanceStandardApprovalModal.title = '保养规范'
src/views/flowable/workflow/InspectionOrder/InspectionOrderHandle.vue
@@ -1,201 +1,198 @@
<template>
  <j-modal
    :title="title"
    :width="1200"
    :visible="visible"
    :okButtonProps="{ class:{'jee-hidden': disableSubmit||!hasInspectionDateArrived} }"
    @ok="submitForm"
    @cancel="handleCancel"
    :mask-closable="false"
    :confirmLoading="confirmLoading"
    switchFullscreen
    centered
  >
  <j-modal :title="title" :width="1200" :visible="visible"
           :okButtonProps="{ class:{'jee-hidden': disableSubmit||!hasInspectionDateArrived} }" @ok="submitForm"
           @cancel="handleCancel" :mask-closable="false" :confirmLoading="confirmLoading" fullscreen>
    <a-spin :spinning="spinning">
      <a-form-model ref='form' :model='tableRowRecord' :labelCol="labelCol" :wrapperCol="wrapperCol"
                    :rules="validatorRules">
        <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> ç‚¹æ£€åŸºç¡€ä¿¡æ¯</a-divider>
        <a-row :gutter="48">
          <a-col :span="8">
            <a-tabs>
              <a-tab-pane tab="基础信息">
                <a-row>
                  <a-col :span='span'>
                    <a-form-model-item label="工单号">
                      <a-input readOnly v-model="tableRowRecord.orderNum"/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span='span'>
                    <a-form-model-item label="设备编号">
                      <MaintenanceEquipmentSelect v-model="tableRowRecord.equipmentId"
                                                  :maintenanceCategory="'POINT_INSPECTION'"
                                                  disabled @autocompleteForm="autoCompleteForm"/>
                    </a-form-model-item>
                  </a-col>
        <a-row>
          <a-col :span='span'>
            <a-form-model-item label="工单号">
              <a-input readOnly v-model="tableRowRecord.orderNum"/>
            </a-form-model-item>
          </a-col>
          <a-col :span='span'>
            <a-form-model-item label="设备编号">
              <MaintenanceEquipmentSelect v-model="tableRowRecord.equipmentId"
                                          :maintenanceCategory="'POINT_INSPECTION'" disabled
                                          @autocompleteForm="autoCompleteForm"/>
            </a-form-model-item>
          </a-col>
          <a-col :span='span'>
            <a-form-model-item label="标准名称">
              <a-input readOnly v-model="tableRowRecord.standardName"/>
            </a-form-model-item>
          </a-col>
        </a-row>
                </a-row>
        <a-row>
          <a-col :span='span'>
            <a-form-model-item label="标准编码">
              <a-input readOnly v-model="tableRowRecord.standardCode"/>
            </a-form-model-item>
          </a-col>
          <a-col :span='span'>
            <a-form-model-item label="点检日期">
              <a-input v-model="tableRowRecord.inspectionDate" readOnly/>
            </a-form-model-item>
          </a-col>
          <a-col :span='span'>
            <a-form-model-item label="点检过期时间">
              <a-input v-model="tableRowRecord.expirationTime" readOnly/>
            </a-form-model-item>
          </a-col>
        </a-row>
                <a-row>
                  <a-col :span='span'>
                    <a-form-model-item label="规范名称">
                      <a-input readOnly v-model="tableRowRecord.standardName"/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span='span'>
                    <a-form-model-item label="规范编码">
                      <a-input readOnly v-model="tableRowRecord.standardCode"/>
                    </a-form-model-item>
                  </a-col>
        <a-row>
          <a-col :span='span'>
            <a-form-model-item label="保养周期">
              <a-input v-model="tableRowRecord.maintenancePeriod" readOnly/>
            </a-form-model-item>
                </a-row>
                <a-row>
                  <a-col :span='span'>
                    <a-form-model-item label="点检日期">
                      <a-input v-model="tableRowRecord.inspectionDate" readOnly/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span='span'>
                    <a-form-model-item label="点检过期时间">
                      <a-input v-model="tableRowRecord.expirationTime" readOnly/>
                    </a-form-model-item>
                  </a-col>
                </a-row>
                <a-row>
                  <a-col :span='span'>
                    <a-form-model-item label="保养周期">
                      <a-input v-model="tableRowRecord.maintenancePeriod" readOnly/>
                    </a-form-model-item>
                  </a-col>
                  <a-col :span='span'>
                    <a-form-model-item label="点检人">
                      <a-input v-model="tableRowRecord.operator_dictText" readOnly/>
                    </a-form-model-item>
                  </a-col>
                </a-row>
                <a-row>
                  <a-col :span="span*2">
                    <a-form-model-item label="备注" :labelCol="{span:4}" :wrapperCol="{span:20}">
                      <a-textarea v-model="tableRowRecord.remark" rows="3" readOnly/>
                    </a-form-model-item>
                  </a-col>
                </a-row>
              </a-tab-pane>
            </a-tabs>
          </a-col>
          <a-col :span='span'>
            <a-form-model-item label="点检人">
              <a-input v-model="tableRowRecord.operator_dictText" readOnly/>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row>
          <a-col :span="span*3">
            <a-form-model-item label="备注" :labelCol="{span:2}" :wrapperCol="{span:21}">
              <a-textarea v-model="tableRowRecord.remark" rows="3" readOnly/>
            </a-form-model-item>
          </a-col>
        </a-row>
          <a-col :span="disableSubmit||tableRowRecord.inspectionStatus=='UNDER_INSPECTION'?16:10">
            <a-tabs v-model="activeTabKey">
              <a-tab-pane key="1" tab="日点检">
                <j-vxe-table ref="editableDetailTable" :rowNumber="false" rowSelection bordered
                             alwaysEdit :toolbar="false" keep-source :height="300" :loading="detail.loading"
                             :dataSource="detail.dataSource" :columns="detail.columns"
                             @selectRowChange="handleTableSelectRowChange">
                  <template v-slot:inspectionResult="props">
                    <j-dict-select-tag v-model="props.row.inspectionResult" dictCode="eam_inspection_result"
                                       :disabled="isDisableOperation" placeholder="请选择点检结果"
                                       @change="handleInspectionResultSelectChange($event,props.row)"
                                       style="width: 100%"/>
                  </template>
        <a-row>
          <a-form-model-item prop="imageFilesResult" label="点检图片" :labelCol="{span:2}" :wrapperCol="{span:21}">
            <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" :number="3"
                       :disabled="isDisableOperation||!hasInspectionDateArrived"
                       v-model="tableRowRecord.fileList"/>
          </a-form-model-item>
        </a-row>
                  <template v-slot:exceptionDescription="props">
                    <a-textarea style="height: 32px" v-model="props.row.exceptionDescription"
                                :placeholder="props.row.inspectionResult==='2'?'请输入异常描述':''"
                                :disabled="isDisableOperation||!props.row.inspectionResult||props.row.inspectionResult==='1'"/>
                  </template>
        <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;">
          ä¿å…»é¡¹ä¿¡æ¯
        </a-divider>
                  <template v-slot:reportFlag="props">
                    <j-dict-select-tag v-model="props.row.reportFlag"
                                       :placeholder="props.row.inspectionResult==='2'?'请选择异常是否报修':''"
                                       :disabled="isDisableOperation||!props.row.inspectionResult||props.row.inspectionResult==='1'"
                                       dictCode="yn" style="width: 100%"/>
                  </template>
                </j-vxe-table>
              </a-tab-pane>
        <a-tabs v-model="activeTabKey">
          <a-tab-pane key="1" tab="保养项明细">
            <j-vxe-table
              ref="editableDetailTable"
              :rowNumber="false"
              :rowSelection="true"
              :bordered="true"
              :alwaysEdit="true"
              :toolbar="false"
              keep-source
              :height="300"
              :loading="detail.loading"
              :dataSource="detail.dataSource"
              :columns="detail.columns"
              @selectRowChange="handleTableSelectRowChange"
            >
              <template v-slot:inspectionResult="props">
                <j-dict-select-tag v-model="props.row.inspectionResult" dictCode="eam_inspection_result"
                                   :disabled="isDisableOperation"
                                   placeholder="请选择点检结果"
                                   @change="handleInspectionResultSelectChange($event,props.row)"
                                   style="width: 100%"/>
              <a-tab-pane key="2" tab="周点检">
                <j-vxe-table ref="editableDetailTable" :rowNumber="false" rowSelection bordered
                             alwaysEdit :toolbar="false" keep-source :height="300" :loading="detail.loading"
                             :dataSource="detail.weekInspectionList" :columns="detail.columns"
                             @selectRowChange="handleTableSelectRowChange">
                  <template v-slot:inspectionResult="props">
                    <j-dict-select-tag v-model="props.row.inspectionResult" dictCode="eam_inspection_result"
                                       :disabled="isDisableOperation" placeholder="请选择点检结果"
                                       @change="handleInspectionResultSelectChange($event,props.row)"
                                       style="width: 100%"/>
                  </template>
                  <template v-slot:exceptionDescription="props">
                    <a-textarea style="height: 32px" v-model="props.row.exceptionDescription"
                                :placeholder="props.row.inspectionResult==='2'?'请输入异常描述':''"
                                :disabled="isDisableOperation||!props.row.inspectionResult||props.row.inspectionResult==='1'"/>
                  </template>
                  <template v-slot:reportFlag="props">
                    <j-dict-select-tag v-model="props.row.reportFlag"
                                       :placeholder="props.row.inspectionResult==='2'?'请选择异常是否报修':''"
                                       :disabled="isDisableOperation||!props.row.inspectionResult||props.row.inspectionResult==='1'"
                                       dictCode="yn" style="width: 100%"/>
                  </template>
                </j-vxe-table>
              </a-tab-pane>
              <template v-if="selectShenpiData.procInstId">
                <a-tab-pane key='3' tab='流程节点'>
                  <a-card :bordered="false">
                    <a-timeline>
                      <a-timeline-item v-for="(item,index) in hitaskDataSource" :key="index">
                        <div>
                          <h3 style="font-weight: bold;">{{item.taskName}}</h3>
                          <div>处理人:{{item.assignee_dictText}}</div>
                          <div v-if="index !==0">处理时长:{{item.duration}}</div>
                          <div v-if="item.name !== '提交申请'">处理类型:{{item.sequenceFlowName}}</div>
                          <div v-if="item.description">处理意见:{{item.description}}</div>
                        </div>
                      </a-timeline-item>
                    </a-timeline>
                  </a-card>
                </a-tab-pane>
                <a-tab-pane key='4' tab='流程图'>
                  <img :src="imageSrc" width="100%" v-if="imageSrc"/>
                </a-tab-pane>
              </template>
              <template v-slot:exceptionDescription="props">
                <a-textarea style="height: 32px" v-model="props.row.exceptionDescription"
                            :placeholder="props.row.inspectionResult==='2'?'请输入异常描述':''"
                            :disabled="isDisableOperation||!props.row.inspectionResult||props.row.inspectionResult==='1'"/>
              </template>
              <a-button
                v-if="selectedRowKeys.length>0&&!isDisableOperation&&hasInspectionDateArrived&&activeTabKey==='1'&&activeTabKey==='2'"
                slot="tabBarExtraContent" type="primary"
                @click="handleSelectAllInspectionResult">批量点检正常
              </a-button>
            </a-tabs>
          </a-col>
              <template v-slot:reportFlag="props">
                <j-dict-select-tag v-model="props.row.reportFlag"
                                   :placeholder="props.row.inspectionResult==='2'?'请选择异常是否报修':''"
                                   :disabled="isDisableOperation||!props.row.inspectionResult||props.row.inspectionResult==='1'"
                                   dictCode="yn"
                                   style="width: 100%"/>
              </template>
            </j-vxe-table>
          </a-tab-pane>
          <a-col v-if="!disableSubmit&&isDisplayConfirm" :span="6">
            <a-tabs>
              <a-tab-pane tab="维修工确认">
                <a-row>
                  <a-col :span="24">
                    <a-form-model-item prop="confirmDealType" label="处理类型">
                      <j-dict-select-tag type='radio' v-model='tableRowRecord.confirmDealType'
                                         dictCode='approved_rejected'
                                         :disabled="disableSubmit||tableRowRecord.inspectionStatus!=='WAIT_CONFIRM'"/>
                    </a-form-model-item>
                  </a-col>
          <template v-if="selectShenpiData.procInstId">
            <a-tab-pane key='2' tab='流程节点'>
              <a-card :bordered="false">
                <a-timeline>
                  <a-timeline-item v-for="(item,index) in hitaskDataSource" :key="index">
                    <div>
                      <h3 style="font-weight: bold;">{{item.taskName}}</h3>
                      <div>处理人:{{item.assignee_dictText}}</div>
                      <div v-if="index !==0">处理时长:{{item.duration}}</div>
                      <div v-if="item.name !== '提交申请'">处理类型:{{item.sequenceFlowName}}</div>
                      <div v-if="item.description">处理意见:{{item.description}}</div>
                    </div>
                  </a-timeline-item>
                </a-timeline>
              </a-card>
            </a-tab-pane>
            <a-tab-pane key='3' tab='流程图'>
              <img :src="imageSrc" alt="Fetched Image"/>
            </a-tab-pane>
          </template>
          <a-button
            v-if="selectedRowKeys.length>0&&!isDisableOperation&&hasInspectionDateArrived&&activeTabKey==='1'"
            slot="tabBarExtraContent" type="primary"
            @click="handleSelectAllInspectionResult">批量点检正常
          </a-button>
          <!--<a-dropdown slot="tabBarExtraContent" v-if="selectedRowKeys.length>0">-->
          <!--<a-menu slot="overlay">-->
          <!--<a-menu-item key="1" @click="handleSelectAllInspectionResult('正常')">正常</a-menu-item>-->
          <!--<a-menu-item key="2" @click="handleSelectAllInspectionResult('异常')">异常</a-menu-item>-->
          <!--</a-menu>-->
          <!--<a-button> æ‰¹é‡é€‰æ‹©ç‚¹æ£€ç»“æžœ-->
          <!--<a-icon type="down"/>-->
          <!--</a-button>-->
          <!--</a-dropdown>-->
        </a-tabs>
        <template v-if="isDisplayConfirm">
          <a-divider orientation="center" style="font-size: large;font-style: italic;color: #66aeed;"> ç®¡ç†å‘˜ç¡®è®¤ä¿¡æ¯
          </a-divider>
          <a-row :gutter="24">
            <a-col :span="12">
              <a-form-model-item prop="confirmDealType" label="处理类型">
                <j-dict-select-tag type='radio' v-model='tableRowRecord.confirmDealType' dictCode='approved_rejected'
                                   :disabled="disableSubmit||tableRowRecord.inspectionStatus!=='WAIT_CONFIRM'"/>
              </a-form-model-item>
            </a-col>
            <a-col :span="12">
              <a-form-model-item prop="confirmComment" label="处理意见">
                <a-textarea placeholder="请输入处理意见"
                            :disabled="disableSubmit||tableRowRecord.inspectionStatus!=='WAIT_CONFIRM'"
                            v-model="tableRowRecord.confirmComment"/>
              </a-form-model-item>
            </a-col>
          </a-row>
        </template>
                  <a-col :span="24">
                    <a-form-model-item prop="confirmComment" label="处理意见">
                      <a-textarea placeholder="请输入处理意见"
                                  :disabled="disableSubmit||tableRowRecord.inspectionStatus!=='WAIT_CONFIRM'"
                                  v-model="tableRowRecord.confirmComment"/>
                    </a-form-model-item>
                  </a-col>
                </a-row>
              </a-tab-pane>
            </a-tabs>
          </a-col>
        </a-row>
      </a-form-model>
    </a-spin>
  </j-modal>
</template>
<script>
  import '@assets/less/TableExpand.less'
  import { getAction, deleteAction, postAction, downFile, httpAction } from '@api/manage'
  import { getAction, postAction, downFile } from '@api/manage'
  import MaintenanceEquipmentSelect from '@views/eam/equipment/modules/MaintenanceEquipmentSelect.vue'
  import { JVXETypes } from '@comp/jeecg/JVxeTable'
  import moment from 'moment'
@@ -210,11 +207,10 @@
    },
    data() {
      return {
        span: 8,
        span: 12,
        confirmLoading: false,
        spinning: false,
        tableRowRecord: {},
        assignFileStream: {},
        hitaskDataSource: [],
        validatorRules: {
          confirmDealType: [
@@ -227,21 +223,21 @@
        imageSrc: null,
        labelCol: {
          xs: { span: 24 },
          sm: { span: 6 }
          sm: { span: 9 }
        },
        wrapperCol: {
          xs: { span: 30 },
          sm: { span: 16 }
          sm: { span: 15 }
        },
        visible: false,
        // è¡¨å¤´
        url: {
          // queryBomDataById: '/eam/eamInspectionOrder/selectVoById',
          diagramView: '/assign/flow/diagramView',
          queryHisTaskList: '/assign/flow/queryHisTaskList',
          approve: '/eam/eamInspectionOrder/approval',
          queryById: '/eam/eamInspectionOrder/queryById',
          detailList: '/eam/eamInspectionOrderDetail/queryList'
          detailList: '/eam/eamInspectionOrderDetail/queryList',
          weekInspectionOrderList: '/eam/eamWeekInspectionDetail/queryStandardList'
        },
        detail: {
          loading: false,
@@ -251,7 +247,7 @@
              title: '序号',
              key: 'itemCode',
              type: JVXETypes.normal,
              width: '5%',
              width: 60,
              align: 'center',
              fixed: 'left'
            },
@@ -259,7 +255,6 @@
              title: '保养项',
              key: 'itemName',
              type: JVXETypes.normal,
              width: '15%',
              align: 'center',
              fixed: 'left'
            },
@@ -267,7 +262,6 @@
              title: '保养要求',
              key: 'itemDemand',
              type: JVXETypes.normal,
              width: '15%',
              align: 'center',
              fixed: 'left'
            },
@@ -276,10 +270,9 @@
              key: 'inspectionResult',
              type: JVXETypes.slot,
              slotName: 'inspectionResult',
              width: '15%',
              align: 'center',
              validateRules: [
                { required: true, message: '${title}不能为空!' }
                { required: true, message: '${title}不能为空' }
              ]
            },
            {
@@ -287,7 +280,6 @@
              key: 'exceptionDescription',
              type: JVXETypes.slot,
              slotName: 'exceptionDescription',
              width: '20%',
              align: 'center',
              validateRules: [
                { handler: this.customValidator }
@@ -298,13 +290,13 @@
              key: 'reportFlag',
              type: JVXETypes.slot,
              slotName: 'reportFlag',
              width: '20%',
              align: 'center',
              validateRules: [
                { handler: this.customValidator }
              ]
            }
          ]
          ],
          weekInspectionList: []
        },
        selectedRowKeys: [],
        disableSubmit: false,
@@ -363,13 +355,11 @@
        this.detail.dataSource = []
        this.spinning = true
        const param = { id: record.dataId }
        let res = await getAction(this.url.queryById, param);
        this.tableRowRecord = Object.assign({}, res.result);
        if (this.tableRowRecord.imageFiles) {
          let obj = JSON.parse(this.tableRowRecord.imageFiles)
          this.tableRowRecord.fileList = [...obj]
        }
        await this.loadDetail(record.dataId)
        let res = await getAction(this.url.queryById, param)
        this.tableRowRecord = Object.assign({}, res.result)
        this.loadDetail(record.dataId)
        console.log('record', record)
        this.getWeekInspectionOrderListByApi(this.tableRowRecord.standardId)
      },
      async submitForm() {
@@ -390,11 +380,9 @@
            flowTaskVo.values = this.selectShenpiData.variables
            flowTaskVo.confirmDealType = this.tableRowRecord.confirmDealType
            flowTaskVo.confirmComment = this.tableRowRecord.confirmComment
            flowTaskVo.fileList = this.tableRowRecord.fileList
            flowTaskVo.tableDetailList = this.$refs.editableDetailTable.getTableData()
            const that = this
            console.log('表单提交数据', flowTaskVo)
            httpAction(this.url.approve, flowTaskVo, 'post')
            postAction(this.url.approve, flowTaskVo)
              .then((res) => {
                if (res.success) {
                  that.$message.success(res.message)
@@ -468,10 +456,14 @@
        this.selectedRowKeys = []
        this.visible = false
      },
      //标准选择变化
      /**
       * èŽ·å–æ—¥ç‚¹æ£€æ˜Žç»†
       * @param orderId
       */
      loadDetail(orderId) {
        if (orderId) {
          getAction(this.url.detailList, { orderId: orderId })
          getAction(this.url.detailList, { orderId })
            .then(res => {
              if (res.success) {
                this.detail.dataSource = [...res.result]
@@ -482,6 +474,21 @@
            })
        }
      },
      /**
       * èŽ·å–ç‚¹æ£€å·¥å•ä¸­çš„å‘¨ç‚¹æ£€åˆ—è¡¨
       * @param standardId è§„范id
       */
      getWeekInspectionOrderListByApi(standardId) {
        console.log('standardId-------------------------', standardId)
        getAction(this.url.weekInspectionOrderList, { standardId, inspectionDate: this.tableRowRecord.inspectionDate })
          .then(res => {
            if (res.success) this.detail.weekInspectionList = res.result
          })
          .finally(() => {
            this.spinning = false
          })
      }
    }
  }
</script>
@@ -489,6 +496,4 @@
  /deep/ .ant-select-dropdown-menu {
    text-align: left;
  }
  @import '~@assets/less/common.less';
</style>
src/views/system/modules/SelectEamDeviceModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,231 @@
<template>
  <a-modal
    :title="title"
    :visible="visible"
    @ok="handleOk"
    @cancel="handleCancel"
  >
    <a-spin :spinning="loading">
      <!-- showLine -->
      <a-form>
        <a-form-item label="车间层级:">
          <a-tree showLine ref="tree" :expandedKeys.sync="expandedKeys"
                  :treeData="treeDataSource" checkable @check="onCheck" v-model="checkedKeys"
                  @expand="onExpand">
          </a-tree>
        </a-form-item>
      </a-form>
    </a-spin>
    <template slot="footer">
      <div>
        <a-dropdown
          style="float: left"
          :trigger="['click']"
          placement="topCenter"
        >
          <a-menu slot="overlay">
            <a-menu-item key="1" @click="expandAll">展开所有</a-menu-item>
            <a-menu-item key="2" @click="closeAll">合并所有</a-menu-item>
            <a-menu-item key="3" @click="refreshTree">刷新</a-menu-item>
          </a-menu>
          <a-button>
            æ ‘操作
            <a-icon type="up"/>
          </a-button>
        </a-dropdown>
        <a-popconfirm title="确定放弃编辑?" @confirm="handleCancel" okText="确定" cancelText="取消">
          <a-button style="margin-right: .8rem">关闭</a-button>
        </a-popconfirm>
        <a-button
          @click="handleOk"
          type="primary"
        >确定
        </a-button>
      </div>
    </template>
  </a-modal>
</template>
<script>
  import {
    getAction,
    postAction,
    deleteAction
  } from '@/api/manage'
  import BaseTree from '@/views/mdc/common/BaseTree'
  import DepartTree from '@/views/mdc/base/modules/DepartList/DepartListTree/DepartTree'
  export default {
    name: 'selectEamDeviceModal',
    components: {
      BaseTree, DepartTree
    },
    props: {
      editDisable: {
        type: Boolean,
        default() {
          return true
        }
      },
      title: {
        type: String
      },
      selectedProduction: {
        type: String
      }
    },
    data() {
      return {
        loading: false,
        treeDataSource: [],
        expandedKeys: [],
        checkedKeys: [],
        url: {
          getDeviceTree: '/eam/equipment/loadTreeListByEamCenterIds'
        },
        selectedWorkshopIds: '',
        dataList: [],
        allTreeKeys: [],
        visible: false,
        dataSource: []
      }
    },
    created() {
      this.closeAll()
    },
    methods: {
      onExpand(expandedKeys) {
        this.expandedKeys = expandedKeys
        this.autoExpandParent = false
      },
      queryTreeData(value) {
        this.loading = true
        this.selectedWorkshopIds = value
        getAction(this.url.getDeviceTree, { ids: value })
          .then(res => {
            if (res.success) {
              this.dataList = []
              this.allTreeKeys = []
              this.getTreeDataSouce(res.result)
              this.treeDataSource = res.result
              this.generateList(this.treeDataSource)
              this.expandedKeys = this.allTreeKeys
            } else {
              this.$notification.warning({
                message: '消息',
                description: res.message
              })
            }
          })
          .catch(err => {
            this.$notification.error({
              message: '消息',
              description: err.message
            })
          })
          .finally(() => {
            this.loading = false
          })
      },
      generateList(data) {
        for (let i = 0; i < data.length; i++) {
          const node = data[i]
          const key = node.key
          const title = node.title
          this.dataList.push({
            key,
            title: title
          })
          this.allTreeKeys.push(key)
          if (node.children) {
            this.generateList(node.children)
          }
        }
      },
      getTreeDataSouce(data) {
        data.forEach(item => {
          if (item.children && item.children.length > 0) {
            this.getTreeDataSouce(item.children)
          }
          item.key = item.equipmentId ? item.equipmentId : item.key
          item.value = item.equipmentId ? item.equipmentId : item.value
        })
      },
      expandAll() {
        this.expandedKeys = this.allTreeKeys
      },
      closeAll() {
        this.expandedKeys = ['-1']
      },
      refreshTree() {
        this.queryTreeData(this.selectedWorkshopIds)
      },
      onCheck(value, obj) {
        this.checkedKeys = value
        this.deviceNodes = obj.checkedNodes.filter(item => item.data.props.equipmentId).map(item => item.data.props.equipmentId)
      },
      handleCancel() {
        this.visible = false
      },
      handleOk() {
        this.$emit('selectFinished', this.deviceNodes)
        this.visible = false
      }
    }
  }
</script>
<style lang="less" scoped>
  /deep/ .ant-modal {
    /*transform-origin: 337px 50px;*/
  }
  .ant-card-body .table-operator {
    margin-bottom: 18px;
  }
  .ant-table-tbody .ant-table-row td {
    padding-top: 15px;
    padding-bottom: 15px;
  }
  .anty-row-operator button {
    margin: 0 5px
  }
  .ant-btn-danger {
    background-color: #ffffff
  }
  .ant-modal-cust-warp {
    height: 100%
  }
  .ant-modal-cust-warp .ant-modal-body {
    height: calc(100% - 110px) !important;
    overflow-y: auto
  }
  .ant-modal-cust-warp .ant-modal-content {
    height: 90% !important;
    overflow-y: hidden
  }
  .drawer-bottom-button {
    position: absolute;
    bottom: 0;
    width: 100%;
    border-top: 1px solid #e8e8e8;
    padding: 10px 16px;
    text-align: right;
    left: 0;
    background: #fff;
    border-radius: 0 0 2px 2px;
  }
</style>
src/views/system/modules/UserModal.vue
@@ -74,12 +74,12 @@
          <a-input-search :readOnly="true" v-model="model.equipmentIds" @search="deviceSearch" enter-button placeholder="请选择设备" :disabled="!model.selectedProduction"/>
        </a-form-model-item>
        <a-form-model-item label="EAM中心分配" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="areaId">
          <j-multi-select-tag :triggerChange="true" v-model="model.eamFactoryIds" dictCode="mom_base_area,name,id,del_flag = 0 and type = 1" placeholder="请维护中心"/>
        <a-form-model-item label="EAM中心分配" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="eamFactoryIds">
          <JSelectBaseFactory v-model="model.selectedBaseFactory" :multi="true" @back="backBaseFactoryInfo" :backProduction="true" :treeProductOpera="true"/>
        </a-form-model-item>
        <a-form-model-item label="EAM设备分配" :labelCol="labelCol" :wrapperCol="wrapperCol" v-show="!productionDisabled">
          <a-input-search :readOnly="true" v-model="model.eamEquipmentIds" @search="deviceSearch" enter-button placeholder="请选择设备" :disabled="!model.selectedProduction"/>
          <a-input-search :readOnly="true" v-model="model.eamEquipmentIds" @search="eamDeviceSearch" enter-button placeholder="请选择EAM设备" :disabled="!model.selectedBaseFactory"/>
        </a-form-model-item>
        <a-form-model-item label="维修部门/班组分配" :labelCol="labelCol" :wrapperCol="wrapperCol" v-show="!repairDepartDisabled">
@@ -100,6 +100,9 @@
    </div>
    <select-device-modal ref="selectDeviceModal" @selectFinished="selectOK" :title="'选择设备'"/>
    <select-eam-device-modal ref="selectEamDeviceModal" @selectFinished="selectEamOK" :title="'选择EAM设备'"/>
  </a-drawer>
</template>
@@ -116,13 +119,17 @@
  import { mapActions } from 'vuex'
  import { ajaxGetDictItems, getDictItemsFromCache } from '@/api/api'
  import SelectDeviceModal from './SelectDeviceModal'
  import SelectEamDeviceModal from './SelectEamDeviceModal'
  import JSelectBaseFactory from "@comp/jeecgbiz/JSelectBaseFactory.vue";
  export default {
    name: 'UserModal',
    components: {
      JSelectBaseFactory,
      SelectDeviceModal,
      JSelectProduction,
      JSelectRepairDepart
      JSelectRepairDepart,
      SelectEamDeviceModal
    },
    data() {
      return {
@@ -181,17 +188,20 @@
          syncUserByUserName: '/act/process/extActProcess/doSyncUserByUserName',//同步用户到工作流
          queryTenantList: '/sys/tenant/queryList',
          userRepairDepartList: '/sys/user/userRepairDepartList',
          userBaseFactoryList: '/sys/user/userBaseFactoryList',
          repairDepartTreeList: '/eam/eamBaseRepairDepart/queryTreeList'
        },
        tenantsOptions: [],
        rolesOptions: [],
        nextDepartOptions: [],
        nextProductionOptions: [],
        nextBaseFactoryOptions:[],
        nextRepairDepartOptions: [],
        isDepartType: '',
        model: {
          selectedProduction: '',
          selectedRepairDeparts: ''
          selectedRepairDeparts: '',
          selectedBaseFactory:'',
        }
      }
    },
@@ -210,6 +220,17 @@
          }
          // å¦‚果清空车间值则重置选择设备
          if (newVal === '') this.model.equipmentIds = ''
        }
      },
      'model.selectedBaseFactory': {
        handler(newVal, oldVal) {
          if (newVal && this.$refs.selectEamDeviceModal) {
            // å¦‚果车间选择前后不一致则重置选择设备
            if ((oldVal && newVal !== oldVal)) this.model.eamEquipmentIds = ''
            this.$refs.selectEamDeviceModal.queryTreeData(newVal)
          }
          // å¦‚果清空车间值则重置选择设备
          if (newVal === '') this.model.eamEquipmentIds = ''
        }
      }
    },
@@ -265,6 +286,7 @@
          selectedroles: '',
          selecteddeparts: '',
          selectedProduction: '',
          selectedBaseFactory:'',
          selectedRepairDeparts: ''
        })
      },
@@ -288,6 +310,7 @@
          that.getUserDeparts(record.id)
          that.getUserProductions(record.id)
          that.getUserRepairDeparts(record.id)
          this.getUserBaseFactorys(record.id)
        }
      },
      isDisabledAuth(code) {
@@ -403,6 +426,27 @@
          }
        })
      },
      getUserBaseFactorys(userid) {
        let that = this
        // èŽ·å–EAM中心/工区/工段分配
        getAction(that.url.userBaseFactoryList, { userId: userid }).then((res) => {
          if (res.success) {
            let BaseFactoryOptions = []
            let selectedBaseFactoryOptionsKeys = []
            for (let i = 0; i < res.result.length; i++) {
              selectedBaseFactoryOptionsKeys.push(res.result[i].key)
              //新增负责维修部门/班组选择下拉框
              BaseFactoryOptions.push({
                value: res.result[i].key,
                label: res.result[i].title
              })
            }
            this.$set(this.model, 'selectedBaseFactory', selectedBaseFactoryOptionsKeys.join(','))
            that.nextBaseFactoryOptions = BaseFactoryOptions
          }
        })
      },
      backDepartInfo(info) {
        this.model.departIds = this.model.selecteddeparts
        this.nextDepartOptions = info.map((item, index, arr) => {
@@ -413,6 +457,13 @@
      backProductionInfo(info) {
        this.model.productionIds = this.model.selectedProduction
        this.nextProductionOptions = info.map((item, index, arr) => {
          let c = { label: item.text, value: item.value + '' }
          return c
        })
      },
      backBaseFactoryInfo(info) {
        this.model.eamFactoryIds = this.model.selectedBaseFactory
        this.nextBaseFactoryOptions = info.map((item, index, arr) => {
          let c = { label: item.text, value: item.value + '' }
          return c
        })
@@ -429,6 +480,7 @@
        this.userId = ''
        this.nextDepartOptions = []
        this.nextProductionOptions = []
        this.nextBaseFactoryOptions = []
        this.nextRepairDepartOptions = []
        this.departIdShow = false
      },
@@ -437,6 +489,7 @@
        this.visible = false
        this.disableSubmit = false
        this.nextDepartOptions = []
        this.nextProductionOptions = []
        this.nextProductionOptions = []
        this.nextRepairDepartOptions = []
        this.departIdShow = false
@@ -615,6 +668,13 @@
        this.$refs.selectDeviceModal.checkedKeys = this.model.equipmentIds ? this.model.equipmentIds.split(',') : []
      },
      eamDeviceSearch(){
        this.$refs.selectEamDeviceModal.visible = true
        this.$refs.selectEamDeviceModal.selectedRowKeys = []
        this.$refs.selectEamDeviceModal.selectedRows = []
        this.$refs.selectEamDeviceModal.checkedKeys = this.model.eamEquipmentIds ? this.model.eamEquipmentIds.split(',') : []
      },
      /**
       * é€‰æ‹©å·²æœ‰è®¾å¤‡åŽç‚¹å‡»ç¡®å®šæ—¶è§¦å‘
       * @param data å·²é€‰æ‹©çš„设备数组
@@ -622,6 +682,10 @@
      selectOK(data) {
        console.log('data=', data)
        this.$set(this.model, 'equipmentIds', data.join(','))
      },
      selectEamOK(data) {
        console.log('data=', data)
        this.$set(this.model, 'eamEquipmentIds', data.join(','))
      }
    }
  }