.设备报修 设备事故登记表  产品质量隐患确认表 维修人员  三不放过原则表 维修工单表 基础代码
已添加16个文件
已修改2个文件
2675 ■■■■■ 文件已修改
src/views/eam/repair/EamRepairPersonList.vue 195 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/repair/EamReportAccidentsRegisterList.vue 456 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/repair/EamReportProductHazardsList.vue 236 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/repair/EamReportRepairList.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/repair/EamReportThreeNoSpareList.vue 222 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/repair/modules/EamRepairPersonForm.vue 124 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/repair/modules/EamRepairPersonModal.Style#Drawer.vue 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/repair/modules/EamRepairPersonModal.vue 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/repair/modules/EamReportAccidentsRegisterForm.vue 314 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/repair/modules/EamReportAccidentsRegisterModal.Style#Drawer.vue 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/repair/modules/EamReportAccidentsRegisterModal.vue 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/repair/modules/EamReportProductHazardsForm.vue 159 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/repair/modules/EamReportProductHazardsModal.Style#Drawer.vue 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/repair/modules/EamReportProductHazardsModal.vue 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/repair/modules/EamReportRepairList/EamReportRepairModal.vue 235 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/repair/modules/EamReportThreeNoSpareForm.vue 144 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/repair/modules/EamReportThreeNoSpareModal.Style#Drawer.vue 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/repair/modules/EamReportThreeNoSpareModal.vue 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/repair/EamRepairPersonList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,195 @@
<template>
  <a-card :bordered="false">
    <!-- æŸ¥è¯¢åŒºåŸŸ -->
    <div class="table-page-search-wrapper">
      <a-form layout="inline" @keyup.enter.native="searchQuery">
        <a-row :gutter="24">
        </a-row>
      </a-form>
    </div>
    <!-- æŸ¥è¯¢åŒºåŸŸ-END -->
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <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>
      <!-- é«˜çº§æŸ¥è¯¢åŒºåŸŸ -->
      <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
      <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"
        :scroll="{x:true}"
        bordered
        rowKey="id"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
        class="j-table-force-nowrap"
        @change="handleTableChange">
        <template slot="htmlSlot" slot-scope="text">
          <div v-html="text"></div>
        </template>
        <template slot="imgSlot" slot-scope="text,record">
          <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
          <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
        </template>
        <template slot="fileSlot" slot-scope="text">
          <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
          <a-button
            v-else
            :ghost="true"
            type="primary"
            icon="download"
            size="small"
            @click="downloadFile(text)">
            ä¸‹è½½
          </a-button>
        </template>
        <span slot="action" slot-scope="text, record">
          <a @click="handleEdit(record)">编辑</a>
          <a-divider type="vertical" />
          <a-dropdown>
            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
            <a-menu slot="overlay">
              <a-menu-item>
                <a @click="handleDetail(record)">详情</a>
              </a-menu-item>
              <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>
    <eam-repair-person-modal ref="modalForm" @ok="modalFormOk"></eam-repair-person-modal>
  </a-card>
</template>
<script>
  import '@/assets/less/TableExpand.less'
  import { mixinDevice } from '@/utils/mixin'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import EamRepairPersonModal from './modules/EamRepairPersonModal'
  export default {
    name: 'EamRepairPersonList',
    mixins:[JeecgListMixin, mixinDevice],
    components: {
      EamRepairPersonModal
    },
    data () {
      return {
        description: '故障维修人员管理页面',
        // è¡¨å¤´
        columns: [
          {
            title: '#',
            dataIndex: '',
            key:'rowIndex',
            width:60,
            align:"center",
            customRender:function (t,r,index) {
              return parseInt(index)+1;
            }
          },
          {
            title:'维修工单Id',
            align:"center",
            dataIndex: 'repairId'
          },
          {
            title:'维修人',
            align:"center",
            dataIndex: 'repairUser'
          },
          {
            title:'是否是主维修人',
            align:"center",
            dataIndex: 'repairPrimary'
          },
          {
            title:'维修时长',
            align:"center",
            dataIndex: 'repairDuration'
          },
          {
            title:'备注',
            align:"center",
            dataIndex: 'remark'
          },
          {
            title: '操作',
            dataIndex: 'action',
            align:"center",
            fixed:"right",
            width:147,
            scopedSlots: { customRender: 'action' }
          }
        ],
        url: {
          list: "/eam/eamRepairPerson/list",
          delete: "/eam/eamRepairPerson/delete",
          deleteBatch: "/eam/eamRepairPerson/deleteBatch",
          exportXlsUrl: "/eam/eamRepairPerson/exportXls",
          importExcelUrl: "eam/eamRepairPerson/importExcel",
        },
        dictOptions:{},
        superFieldList:[],
      }
    },
    created() {
    this.getSuperFieldList();
    },
    computed: {
      importExcelUrl: function(){
        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
      },
    },
    methods: {
      initDictConfig(){
      },
      getSuperFieldList(){
        let fieldList=[];
        fieldList.push({type:'string',value:'repairId',text:'维修工单Id',dictCode:''})
        fieldList.push({type:'string',value:'repairUser',text:'维修人',dictCode:''})
        fieldList.push({type:'string',value:'repairPrimary',text:'是否是主维修人',dictCode:''})
        fieldList.push({type:'string',value:'repairDuration',text:'维修时长',dictCode:''})
        fieldList.push({type:'string',value:'remark',text:'备注',dictCode:''})
        this.superFieldList = fieldList
      }
    }
  }
</script>
<style scoped>
  @import '~@assets/less/common.less';
</style>
src/views/eam/repair/EamReportAccidentsRegisterList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,456 @@
<template>
  <a-card :bordered="false">
    <!-- æŸ¥è¯¢åŒºåŸŸ -->
    <div class="table-page-search-wrapper">
      <a-form layout="inline" @keyup.enter.native="searchQuery">
        <a-row :gutter="24">
        </a-row>
      </a-form>
    </div>
    <!-- æŸ¥è¯¢åŒºåŸŸ-END -->
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <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>
      <!-- é«˜çº§æŸ¥è¯¢åŒºåŸŸ -->
      <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
      <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"
        :scroll="{x:true}"
        bordered
        rowKey="id"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
        class="j-table-force-nowrap"
        @change="handleTableChange">
        <template slot="htmlSlot" slot-scope="text">
          <div v-html="text"></div>
        </template>
        <template slot="imgSlot" slot-scope="text,record">
          <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
          <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
        </template>
        <template slot="fileSlot" slot-scope="text">
          <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
          <a-button
            v-else
            :ghost="true"
            type="primary"
            icon="download"
            size="small"
            @click="downloadFile(text)">
            ä¸‹è½½
          </a-button>
        </template>
        <span slot="action" slot-scope="text, record">
          <a @click="handleEdit(record)">编辑</a>
          <a-divider type="vertical" />
          <a-dropdown>
            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
            <a-menu slot="overlay">
              <a-menu-item>
                <a @click="handleDetail(record)">详情</a>
              </a-menu-item>
              <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>
    <eam-report-accidents-register-modal ref="modalForm" @ok="modalFormOk"></eam-report-accidents-register-modal>
  </a-card>
</template>
<script>
  import '@/assets/less/TableExpand.less'
  import { mixinDevice } from '@/utils/mixin'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import EamReportAccidentsRegisterModal from './modules/EamReportAccidentsRegisterModal'
  export default {
    name: 'EamReportAccidentsRegisterList',
    mixins:[JeecgListMixin, mixinDevice],
    components: {
      EamReportAccidentsRegisterModal
    },
    data () {
      return {
        description: '设备事故登记表管理页面',
        // è¡¨å¤´
        columns: [
          {
            title: '#',
            dataIndex: '',
            key:'rowIndex',
            width:60,
            align:"center",
            customRender:function (t,r,index) {
              return parseInt(index)+1;
            }
          },
          {
            title:'报修ID',
            align:"center",
            dataIndex: 'reportId'
          },
          {
            title:'设备ID',
            align:"center",
            dataIndex: 'equipmentId'
          },
          {
            title:'是否有设备操作证 æ˜¯å¦',
            align:"center",
            dataIndex: 'operationCertificate'
          },
          {
            title:'是否断电重启',
            align:"center",
            dataIndex: 'powerOffRestart'
          },
          {
            title:'是否为批次首件',
            align:"center",
            dataIndex: 'batchFirstPiece'
          },
          {
            title:'变动因素 æ˜¯å¦',
            align:"center",
            dataIndex: 'variableFactors'
          },
          {
            title:'变动因素内容 åˆ€å…·æ›´æ¢ã€å·¥è‰ºæ›´æ”¹ã€åŠ å·¥ç¨‹åºæ›´æ”¹ã€åˆ€å…·è¡¥å¿å€¼æ›´æ”¹ã€',
            align:"center",
            dataIndex: 'variableFactorsValue'
          },
          {
            title:'执行程序',
            align:"center",
            dataIndex: 'executeNc'
          },
          {
            title:'事故现象',
            align:"center",
            dataIndex: 'accidentPhenomenon'
          },
          {
            title:'采取措施',
            align:"center",
            dataIndex: 'measure'
          },
          {
            title:'造成结果',
            align:"center",
            dataIndex: 'causingResults'
          },
          {
            title:'操作工',
            align:"center",
            dataIndex: 'confirmer'
          },
          {
            title:'操作工确认时间',
            align:"center",
            dataIndex: 'confirmTime',
            customRender:function (text) {
              return !text?"":(text.length>10?text.substr(0,10):text)
            }
          },
          {
            title:'区长',
            align:"center",
            dataIndex: 'district'
          },
          {
            title:'区长确认时间',
            align:"center",
            dataIndex: 'districtTime',
            customRender:function (text) {
              return !text?"":(text.length>10?text.substr(0,10):text)
            }
          },
          {
            title:'中心主任',
            align:"center",
            dataIndex: 'centerDirector'
          },
          {
            title:'中心主任确认时间',
            align:"center",
            dataIndex: 'centerDirectorTime',
            customRender:function (text) {
              return !text?"":(text.length>10?text.substr(0,10):text)
            }
          },
          {
            title:'维修开始时间',
            align:"center",
            dataIndex: 'reportStartTime',
            customRender:function (text) {
              return !text?"":(text.length>10?text.substr(0,10):text)
            }
          },
          {
            title:'设备状态',
            align:"center",
            dataIndex: 'equipmentStatus'
          },
          {
            title:'原因分析',
            align:"center",
            dataIndex: 'causeAnalysis'
          },
          {
            title:'检查结果',
            align:"center",
            dataIndex: 'inspectionResults'
          },
          {
            title:'采取措施',
            align:"center",
            dataIndex: 'takeSteps'
          },
          {
            title:'建议采取措施',
            align:"center",
            dataIndex: 'suggestionTakeSteps'
          },
          {
            title:'建议采取措施时间',
            align:"center",
            dataIndex: 'suggestionTakeStepsTime',
            customRender:function (text) {
              return !text?"":(text.length>10?text.substr(0,10):text)
            }
          },
          {
            title:'维修确认',
            align:"center",
            dataIndex: 'repairConfirm'
          },
          {
            title:'维修确认意见',
            align:"center",
            dataIndex: 'repairConfirmComment'
          },
          {
            title:'维修确认时间',
            align:"center",
            dataIndex: 'repairConfirmTime',
            customRender:function (text) {
              return !text?"":(text.length>10?text.substr(0,10):text)
            }
          },
          {
            title:'维修组长确认',
            align:"center",
            dataIndex: 'repairGroupLeader'
          },
          {
            title:'维修组长意见',
            align:"center",
            dataIndex: 'repairGroupLeaderComment'
          },
          {
            title:'维修组长确认时间',
            align:"center",
            dataIndex: 'repairGroupLeaderTime',
            customRender:function (text) {
              return !text?"":(text.length>10?text.substr(0,10):text)
            }
          },
          {
            title:'维修组长确认',
            align:"center",
            dataIndex: 'repairDistrict'
          },
          {
            title:'维修组长意见',
            align:"center",
            dataIndex: 'repairDistrictComment'
          },
          {
            title:'维修组长确认时间',
            align:"center",
            dataIndex: 'repairDistrictTime',
            customRender:function (text) {
              return !text?"":(text.length>10?text.substr(0,10):text)
            }
          },
          {
            title:'原因分析核对同意、不同意',
            align:"center",
            dataIndex: 'checkAgree'
          },
          {
            title:'不同意原因分析',
            align:"center",
            dataIndex: 'disagreeReason'
          },
          {
            title:'整改措施',
            align:"center",
            dataIndex: 'rectificationMeasures'
          },
          {
            title:'事故结论',
            align:"center",
            dataIndex: 'accidentConclusion'
          },
          {
            title:'技术负责人',
            align:"center",
            dataIndex: 'technicalDirector'
          },
          {
            title:'技术负责人确认时间',
            align:"center",
            dataIndex: 'technicalDirectorTime',
            customRender:function (text) {
              return !text?"":(text.length>10?text.substr(0,10):text)
            }
          },
          {
            title:'技术主管室级领导',
            align:"center",
            dataIndex: 'technicalDirectorLeader'
          },
          {
            title:'技术主管室级领导确认时间',
            align:"center",
            dataIndex: 'technicalDirectorLeaderTime',
            customRender:function (text) {
              return !text?"":(text.length>10?text.substr(0,10):text)
            }
          },
          {
            title:'主管部级领导',
            align:"center",
            dataIndex: 'technicalDirectorPart'
          },
          {
            title:'主管部级领导确认时间',
            align:"center",
            dataIndex: 'technicalDirectorPartTime',
            customRender:function (text) {
              return !text?"":(text.length>10?text.substr(0,10):text)
            }
          },
          {
            title: '操作',
            dataIndex: 'action',
            align:"center",
            fixed:"right",
            width:147,
            scopedSlots: { customRender: 'action' }
          }
        ],
        url: {
          list: "/eam/eamReportAccidentsRegister/list",
          delete: "/eam/eamReportAccidentsRegister/delete",
          deleteBatch: "/eam/eamReportAccidentsRegister/deleteBatch",
          exportXlsUrl: "/eam/eamReportAccidentsRegister/exportXls",
          importExcelUrl: "eam/eamReportAccidentsRegister/importExcel",
        },
        dictOptions:{},
        superFieldList:[],
      }
    },
    created() {
    this.getSuperFieldList();
    },
    computed: {
      importExcelUrl: function(){
        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
      },
    },
    methods: {
      initDictConfig(){
      },
      getSuperFieldList(){
        let fieldList=[];
        fieldList.push({type:'string',value:'reportId',text:'报修ID',dictCode:''})
        fieldList.push({type:'string',value:'equipmentId',text:'设备ID',dictCode:''})
        fieldList.push({type:'string',value:'operationCertificate',text:'是否有设备操作证 æ˜¯å¦',dictCode:''})
        fieldList.push({type:'string',value:'powerOffRestart',text:'是否断电重启',dictCode:''})
        fieldList.push({type:'string',value:'batchFirstPiece',text:'是否为批次首件',dictCode:''})
        fieldList.push({type:'string',value:'variableFactors',text:'变动因素 æ˜¯å¦',dictCode:''})
        fieldList.push({type:'string',value:'variableFactorsValue',text:'变动因素内容 åˆ€å…·æ›´æ¢ã€å·¥è‰ºæ›´æ”¹ã€åŠ å·¥ç¨‹åºæ›´æ”¹ã€åˆ€å…·è¡¥å¿å€¼æ›´æ”¹ã€',dictCode:''})
        fieldList.push({type:'string',value:'executeNc',text:'执行程序',dictCode:''})
        fieldList.push({type:'string',value:'accidentPhenomenon',text:'事故现象',dictCode:''})
        fieldList.push({type:'string',value:'measure',text:'采取措施',dictCode:''})
        fieldList.push({type:'string',value:'causingResults',text:'造成结果',dictCode:''})
        fieldList.push({type:'string',value:'confirmer',text:'操作工',dictCode:''})
        fieldList.push({type:'date',value:'confirmTime',text:'操作工确认时间'})
        fieldList.push({type:'string',value:'district',text:'区长',dictCode:''})
        fieldList.push({type:'date',value:'districtTime',text:'区长确认时间'})
        fieldList.push({type:'string',value:'centerDirector',text:'中心主任',dictCode:''})
        fieldList.push({type:'date',value:'centerDirectorTime',text:'中心主任确认时间'})
        fieldList.push({type:'date',value:'reportStartTime',text:'维修开始时间'})
        fieldList.push({type:'string',value:'equipmentStatus',text:'设备状态',dictCode:''})
        fieldList.push({type:'string',value:'causeAnalysis',text:'原因分析',dictCode:''})
        fieldList.push({type:'string',value:'inspectionResults',text:'检查结果',dictCode:''})
        fieldList.push({type:'string',value:'takeSteps',text:'采取措施',dictCode:''})
        fieldList.push({type:'string',value:'suggestionTakeSteps',text:'建议采取措施',dictCode:''})
        fieldList.push({type:'date',value:'suggestionTakeStepsTime',text:'建议采取措施时间'})
        fieldList.push({type:'string',value:'repairConfirm',text:'维修确认',dictCode:''})
        fieldList.push({type:'string',value:'repairConfirmComment',text:'维修确认意见',dictCode:''})
        fieldList.push({type:'date',value:'repairConfirmTime',text:'维修确认时间'})
        fieldList.push({type:'string',value:'repairGroupLeader',text:'维修组长确认',dictCode:''})
        fieldList.push({type:'string',value:'repairGroupLeaderComment',text:'维修组长意见',dictCode:''})
        fieldList.push({type:'date',value:'repairGroupLeaderTime',text:'维修组长确认时间'})
        fieldList.push({type:'string',value:'repairDistrict',text:'维修组长确认',dictCode:''})
        fieldList.push({type:'string',value:'repairDistrictComment',text:'维修组长意见',dictCode:''})
        fieldList.push({type:'date',value:'repairDistrictTime',text:'维修组长确认时间'})
        fieldList.push({type:'string',value:'checkAgree',text:'原因分析核对同意、不同意',dictCode:''})
        fieldList.push({type:'string',value:'disagreeReason',text:'不同意原因分析',dictCode:''})
        fieldList.push({type:'string',value:'rectificationMeasures',text:'整改措施',dictCode:''})
        fieldList.push({type:'string',value:'accidentConclusion',text:'事故结论',dictCode:''})
        fieldList.push({type:'string',value:'technicalDirector',text:'技术负责人',dictCode:''})
        fieldList.push({type:'date',value:'technicalDirectorTime',text:'技术负责人确认时间'})
        fieldList.push({type:'string',value:'technicalDirectorLeader',text:'技术主管室级领导',dictCode:''})
        fieldList.push({type:'date',value:'technicalDirectorLeaderTime',text:'技术主管室级领导确认时间'})
        fieldList.push({type:'string',value:'technicalDirectorPart',text:'主管部级领导',dictCode:''})
        fieldList.push({type:'date',value:'technicalDirectorPartTime',text:'主管部级领导确认时间'})
        this.superFieldList = fieldList
      }
    }
  }
</script>
<style scoped>
  @import '~@assets/less/common.less';
</style>
src/views/eam/repair/EamReportProductHazardsList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,236 @@
<template>
  <a-card :bordered="false">
    <!-- æŸ¥è¯¢åŒºåŸŸ -->
    <div class="table-page-search-wrapper">
      <a-form layout="inline" @keyup.enter.native="searchQuery">
        <a-row :gutter="24">
        </a-row>
      </a-form>
    </div>
    <!-- æŸ¥è¯¢åŒºåŸŸ-END -->
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <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>
      <!-- é«˜çº§æŸ¥è¯¢åŒºåŸŸ -->
      <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
      <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"
        :scroll="{x:true}"
        bordered
        rowKey="id"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
        class="j-table-force-nowrap"
        @change="handleTableChange">
        <template slot="htmlSlot" slot-scope="text">
          <div v-html="text"></div>
        </template>
        <template slot="imgSlot" slot-scope="text,record">
          <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
          <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
        </template>
        <template slot="fileSlot" slot-scope="text">
          <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
          <a-button
            v-else
            :ghost="true"
            type="primary"
            icon="download"
            size="small"
            @click="downloadFile(text)">
            ä¸‹è½½
          </a-button>
        </template>
        <span slot="action" slot-scope="text, record">
          <a @click="handleEdit(record)">编辑</a>
          <a-divider type="vertical" />
          <a-dropdown>
            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
            <a-menu slot="overlay">
              <a-menu-item>
                <a @click="handleDetail(record)">详情</a>
              </a-menu-item>
              <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>
    <eam-report-product-hazards-modal ref="modalForm" @ok="modalFormOk"></eam-report-product-hazards-modal>
  </a-card>
</template>
<script>
  import '@/assets/less/TableExpand.less'
  import { mixinDevice } from '@/utils/mixin'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import EamReportProductHazardsModal from './modules/EamReportProductHazardsModal'
  export default {
    name: 'EamReportProductHazardsList',
    mixins:[JeecgListMixin, mixinDevice],
    components: {
      EamReportProductHazardsModal
    },
    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: 'confirmer'
          },
          {
            title:'操作工确认时间',
            align:"center",
            dataIndex: 'confirmTime',
            customRender:function (text) {
              return !text?"":(text.length>10?text.substr(0,10):text)
            }
          },
          {
            title:'产品损失情况',
            align:"center",
            dataIndex: 'productLoss'
          },
          {
            title:'产品损失质量影响分析',
            align:"center",
            dataIndex: 'qualityAnalysis'
          },
          {
            title:'主管工艺',
            align:"center",
            dataIndex: 'technologist'
          },
          {
            title:'主管工艺确认时间',
            align:"center",
            dataIndex: 'technologistTime',
            customRender:function (text) {
              return !text?"":(text.length>10?text.substr(0,10):text)
            }
          },
          {
            title:'主管工艺确认意见',
            align:"center",
            dataIndex: 'technologistComment'
          },
          {
            title:'部级领导',
            align:"center",
            dataIndex: 'deputyDepartment'
          },
          {
            title:'部级领导确认时间',
            align:"center",
            dataIndex: 'deputyDepartmentTime',
            customRender:function (text) {
              return !text?"":(text.length>10?text.substr(0,10):text)
            }
          },
          {
            title:'部级领导确认意见',
            align:"center",
            dataIndex: 'deputyDepartmentComment'
          },
          {
            title: '操作',
            dataIndex: 'action',
            align:"center",
            fixed:"right",
            width:147,
            scopedSlots: { customRender: 'action' }
          }
        ],
        url: {
          list: "/eam/eamReportProductHazards/list",
          delete: "/eam/eamReportProductHazards/delete",
          deleteBatch: "/eam/eamReportProductHazards/deleteBatch",
          exportXlsUrl: "/eam/eamReportProductHazards/exportXls",
          importExcelUrl: "eam/eamReportProductHazards/importExcel",
        },
        dictOptions:{},
        superFieldList:[],
      }
    },
    created() {
    this.getSuperFieldList();
    },
    computed: {
      importExcelUrl: function(){
        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
      },
    },
    methods: {
      initDictConfig(){
      },
      getSuperFieldList(){
        let fieldList=[];
        fieldList.push({type:'string',value:'reportId',text:'报修ID',dictCode:''})
        fieldList.push({type:'string',value:'equipmentId',text:'设备ID',dictCode:''})
        fieldList.push({type:'string',value:'confirmer',text:'操作工',dictCode:''})
        fieldList.push({type:'date',value:'confirmTime',text:'操作工确认时间'})
        fieldList.push({type:'string',value:'productLoss',text:'产品损失情况',dictCode:''})
        fieldList.push({type:'string',value:'qualityAnalysis',text:'产品损失质量影响分析',dictCode:''})
        fieldList.push({type:'string',value:'technologist',text:'主管工艺',dictCode:''})
        fieldList.push({type:'date',value:'technologistTime',text:'主管工艺确认时间'})
        fieldList.push({type:'string',value:'technologistComment',text:'主管工艺确认意见',dictCode:''})
        fieldList.push({type:'string',value:'deputyDepartment',text:'部级领导',dictCode:''})
        fieldList.push({type:'date',value:'deputyDepartmentTime',text:'部级领导确认时间'})
        fieldList.push({type:'string',value:'deputyDepartmentComment',text:'部级领导确认意见',dictCode:''})
        this.superFieldList = fieldList
      }
    }
  }
</script>
<style scoped>
  @import '~@assets/less/common.less';
</style>
src/views/eam/repair/EamReportRepairList.vue
@@ -58,7 +58,7 @@
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <div class="table-operator" v-if="isDisplayOperation">
      <a-button @click="handleAdd" type="primary" icon="plus" v-if="isShowAuth('eam:reportRepair:add')">新增</a-button>
      <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">-->
@@ -66,7 +66,7 @@
      <!--</a-upload>-->
      <a-dropdown v-if="selectedRowKeys.length > 0">
        <a-menu slot="overlay">
          <a-menu-item key="1" @click="batchDel" v-if="isShowAuth('eam:reportRepair:abolish')">
          <a-menu-item key="1" @click="batchDel">
            <a-icon type="delete"/>
            ä½œåºŸ
          </a-menu-item>
@@ -103,15 +103,15 @@
        </template>
        <span slot="action" slot-scope="text, record" v-if="record.reportStatus=='WAIT_REPAIR'">
          <a @click="handleEdit(record)" v-if="isShowAuth('eam:reportRepair:edit')">编辑</a>
          <a @click="handleEdit(record)">编辑</a>
          <a-divider type="vertical" v-if="isShowAuth('eam:reportRepair:edit')"/>
          <a-divider type="vertical"/>
          <a @click="handleAssign(record)" v-if="isShowAuth('eam:reportRepair:assign')">指派</a>
          <a @click="handleAssign(record)" >指派</a>
          <a-divider type="vertical" v-if="isShowAuth('eam:reportRepair:assign')"/>
          <a-divider type="vertical" />
          <a-popconfirm title="确定作废吗?" @confirm="() => handleDelete(record.id)" v-if="isShowAuth('eam:reportRepair:abolish')">
          <a-popconfirm title="确定作废吗?" @confirm="() => handleDelete(record.id)" >
            <a>作废</a>
          </a-popconfirm>
        </span>
src/views/eam/repair/EamReportThreeNoSpareList.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,222 @@
<template>
  <a-card :bordered="false">
    <!-- æŸ¥è¯¢åŒºåŸŸ -->
    <div class="table-page-search-wrapper">
      <a-form layout="inline" @keyup.enter.native="searchQuery">
        <a-row :gutter="24">
        </a-row>
      </a-form>
    </div>
    <!-- æŸ¥è¯¢åŒºåŸŸ-END -->
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <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>
      <!-- é«˜çº§æŸ¥è¯¢åŒºåŸŸ -->
      <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>
      <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"
        :scroll="{x:true}"
        bordered
        rowKey="id"
        :columns="columns"
        :dataSource="dataSource"
        :pagination="ipagination"
        :loading="loading"
        :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
        class="j-table-force-nowrap"
        @change="handleTableChange">
        <template slot="htmlSlot" slot-scope="text">
          <div v-html="text"></div>
        </template>
        <template slot="imgSlot" slot-scope="text,record">
          <span v-if="!text" style="font-size: 12px;font-style: italic;">无图片</span>
          <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/>
        </template>
        <template slot="fileSlot" slot-scope="text">
          <span v-if="!text" style="font-size: 12px;font-style: italic;">无文件</span>
          <a-button
            v-else
            :ghost="true"
            type="primary"
            icon="download"
            size="small"
            @click="downloadFile(text)">
            ä¸‹è½½
          </a-button>
        </template>
        <span slot="action" slot-scope="text, record">
          <a @click="handleEdit(record)">编辑</a>
          <a-divider type="vertical" />
          <a-dropdown>
            <a class="ant-dropdown-link">更多 <a-icon type="down" /></a>
            <a-menu slot="overlay">
              <a-menu-item>
                <a @click="handleDetail(record)">详情</a>
              </a-menu-item>
              <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>
    <eam-report-three-no-spare-modal ref="modalForm" @ok="modalFormOk"></eam-report-three-no-spare-modal>
  </a-card>
</template>
<script>
  import '@/assets/less/TableExpand.less'
  import { mixinDevice } from '@/utils/mixin'
  import { JeecgListMixin } from '@/mixins/JeecgListMixin'
  import EamReportThreeNoSpareModal from './modules/EamReportThreeNoSpareModal'
  export default {
    name: 'EamReportThreeNoSpareList',
    mixins:[JeecgListMixin, mixinDevice],
    components: {
      EamReportThreeNoSpareModal
    },
    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: 'reportId'
          },
          {
            title:'设备ID',
            align:"center",
            dataIndex: 'equipmentId'
          },
          {
            title:'原因分析',
            align:"center",
            dataIndex: 'causeAnalysis'
          },
          {
            title:'培训教育是 å¦',
            align:"center",
            dataIndex: 'isTrainingEducation'
          },
          {
            title:'培训形式',
            align:"center",
            dataIndex: 'trainingFormat'
          },
          {
            title:'培训内容',
            align:"center",
            dataIndex: 'trainingContent'
          },
          {
            title:'培训人',
            align:"center",
            dataIndex: 'trainingUser'
          },
          {
            title:'培训时间',
            align:"center",
            dataIndex: 'trainingUserTime',
            customRender:function (text) {
              return !text?"":(text.length>10?text.substr(0,10):text)
            }
          },
          {
            title: '操作',
            dataIndex: 'action',
            align:"center",
            fixed:"right",
            width:147,
            scopedSlots: { customRender: 'action' }
          }
        ],
        url: {
          list: "/eam/eamReportThreeNoSpare/list",
          delete: "/eam/eamReportThreeNoSpare/delete",
          deleteBatch: "/eam/eamReportThreeNoSpare/deleteBatch",
          exportXlsUrl: "/eam/eamReportThreeNoSpare/exportXls",
          importExcelUrl: "eam/eamReportThreeNoSpare/importExcel",
        },
        dictOptions:{},
        superFieldList:[],
      }
    },
    created() {
    this.getSuperFieldList();
    },
    computed: {
      importExcelUrl: function(){
        return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
      },
    },
    methods: {
      initDictConfig(){
      },
      getSuperFieldList(){
        let fieldList=[];
        fieldList.push({type:'string',value:'delFlag',text:'删除标记',dictCode:''})
        fieldList.push({type:'string',value:'reportId',text:'报修ID',dictCode:''})
        fieldList.push({type:'string',value:'equipmentId',text:'设备ID',dictCode:''})
        fieldList.push({type:'string',value:'causeAnalysis',text:'原因分析',dictCode:''})
        fieldList.push({type:'string',value:'isTrainingEducation',text:'培训教育是 å¦',dictCode:''})
        fieldList.push({type:'string',value:'trainingFormat',text:'培训形式',dictCode:''})
        fieldList.push({type:'string',value:'trainingContent',text:'培训内容',dictCode:''})
        fieldList.push({type:'string',value:'trainingUser',text:'培训人',dictCode:''})
        fieldList.push({type:'date',value:'trainingUserTime',text:'培训时间'})
        this.superFieldList = fieldList
      }
    }
  }
</script>
<style scoped>
  @import '~@assets/less/common.less';
</style>
src/views/eam/repair/modules/EamRepairPersonForm.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,124 @@
<template>
  <a-spin :spinning="confirmLoading">
    <j-form-container :disabled="formDisabled">
      <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
        <a-row>
          <a-col :span="24">
            <a-form-model-item label="维修工单Id" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairId">
              <a-input v-model="model.repairId" placeholder="请输入维修工单Id"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="维修人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairUser">
              <a-input v-model="model.repairUser" placeholder="请输入维修人"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="是否是主维修人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairPrimary">
              <a-input v-model="model.repairPrimary" placeholder="请输入是否是主维修人"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="维修时长" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairDuration">
              <a-input v-model="model.repairDuration" placeholder="请输入维修时长"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="备注" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark">
              <a-input v-model="model.remark" placeholder="请输入备注"  ></a-input>
            </a-form-model-item>
          </a-col>
        </a-row>
      </a-form-model>
    </j-form-container>
  </a-spin>
</template>
<script>
  import { httpAction, getAction } from '@/api/manage'
  import { validateDuplicateValue } from '@/utils/util'
  export default {
    name: 'EamRepairPersonForm',
    components: {
    },
    props: {
      //表单禁用
      disabled: {
        type: Boolean,
        default: false,
        required: false
      }
    },
    data () {
      return {
        model:{
         },
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 },
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 },
        },
        confirmLoading: false,
        validatorRules: {
        },
        url: {
          add: "/eam/eamRepairPerson/add",
          edit: "/eam/eamRepairPerson/edit",
          queryById: "/eam/eamRepairPerson/queryById"
        }
      }
    },
    computed: {
      formDisabled(){
        return this.disabled
      },
    },
    created () {
       //备份model原始值
      this.modelDefault = JSON.parse(JSON.stringify(this.model));
    },
    methods: {
      add () {
        this.edit(this.modelDefault);
      },
      edit (record) {
        this.model = Object.assign({}, record);
        this.visible = true;
      },
      submitForm () {
        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;
            })
          }
        })
      },
    }
  }
</script>
src/views/eam/repair/modules/EamRepairPersonModal.Style#Drawer.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,84 @@
<template>
  <a-drawer
    :title="title"
    :width="width"
    placement="right"
    :closable="false"
    @close="close"
    destroyOnClose
    :visible="visible">
    <eam-repair-person-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></eam-repair-person-form>
    <div class="drawer-footer">
      <a-button @click="handleCancel" style="margin-bottom: 0;">关闭</a-button>
      <a-button v-if="!disableSubmit"  @click="handleOk" type="primary" style="margin-bottom: 0;">提交</a-button>
    </div>
  </a-drawer>
</template>
<script>
  import EamRepairPersonForm from './EamRepairPersonForm'
  export default {
    name: 'EamRepairPersonModal',
    components: {
      EamRepairPersonForm
    },
    data () {
      return {
        title:"操作",
        width:800,
        visible: false,
        disableSubmit: false
      }
    },
    methods: {
      add () {
        this.visible=true
        this.$nextTick(()=>{
          this.$refs.realForm.add();
        })
      },
      edit (record) {
        this.visible=true
        this.$nextTick(()=>{
          this.$refs.realForm.edit(record);
        });
      },
      close () {
        this.$emit('close');
        this.visible = false;
      },
      submitCallback(){
        this.$emit('ok');
        this.visible = false;
      },
      handleOk () {
        this.$refs.realForm.submitForm();
      },
      handleCancel () {
        this.close()
      }
    }
  }
</script>
<style lang="less" scoped>
/** Button按钮间距 */
  .ant-btn {
    margin-left: 30px;
    margin-bottom: 30px;
    float: right;
  }
  .drawer-footer{
    position: absolute;
    bottom: -8px;
    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/repair/modules/EamRepairPersonModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
<template>
  <j-modal
    :title="title"
    :width="width"
    :visible="visible"
    switchFullscreen
    @ok="handleOk"
    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
    @cancel="handleCancel"
    cancelText="关闭">
    <eam-repair-person-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></eam-repair-person-form>
  </j-modal>
</template>
<script>
  import EamRepairPersonForm from './EamRepairPersonForm'
  export default {
    name: 'EamRepairPersonModal',
    components: {
      EamRepairPersonForm
    },
    data () {
      return {
        title:'',
        width:800,
        visible: false,
        disableSubmit: false
      }
    },
    methods: {
      add () {
        this.visible=true
        this.$nextTick(()=>{
          this.$refs.realForm.add();
        })
      },
      edit (record) {
        this.visible=true
        this.$nextTick(()=>{
          this.$refs.realForm.edit(record);
        })
      },
      close () {
        this.$emit('close');
        this.visible = false;
      },
      handleOk () {
        this.$refs.realForm.submitForm();
      },
      submitCallback(){
        this.$emit('ok');
        this.visible = false;
      },
      handleCancel () {
        this.close()
      }
    }
  }
</script>
src/views/eam/repair/modules/EamReportAccidentsRegisterForm.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,314 @@
<template>
  <a-spin :spinning="confirmLoading">
    <j-form-container :disabled="formDisabled">
      <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
        <a-row>
          <a-col :span="24">
            <a-form-model-item label="报修ID" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="reportId">
              <a-input v-model="model.reportId" placeholder="请输入报修ID"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="设备ID" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentId">
              <a-input v-model="model.equipmentId" placeholder="请输入设备ID"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="是否有设备操作证 æ˜¯å¦" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operationCertificate">
              <a-input v-model="model.operationCertificate" placeholder="请输入是否有设备操作证 æ˜¯å¦"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="是否断电重启" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="powerOffRestart">
              <a-input v-model="model.powerOffRestart" placeholder="请输入是否断电重启"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="是否为批次首件" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="batchFirstPiece">
              <a-input v-model="model.batchFirstPiece" placeholder="请输入是否为批次首件"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="变动因素 æ˜¯å¦" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="variableFactors">
              <a-input v-model="model.variableFactors" placeholder="请输入变动因素 æ˜¯å¦"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="变动因素内容 åˆ€å…·æ›´æ¢ã€å·¥è‰ºæ›´æ”¹ã€åŠ å·¥ç¨‹åºæ›´æ”¹ã€åˆ€å…·è¡¥å¿å€¼æ›´æ”¹ã€" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="variableFactorsValue">
              <a-input v-model="model.variableFactorsValue" placeholder="请输入变动因素内容 åˆ€å…·æ›´æ¢ã€å·¥è‰ºæ›´æ”¹ã€åŠ å·¥ç¨‹åºæ›´æ”¹ã€åˆ€å…·è¡¥å¿å€¼æ›´æ”¹ã€"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="执行程序" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="executeNc">
              <a-input v-model="model.executeNc" placeholder="请输入执行程序"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="事故现象" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="accidentPhenomenon">
              <a-input v-model="model.accidentPhenomenon" placeholder="请输入事故现象"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="采取措施" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="measure">
              <a-input v-model="model.measure" placeholder="请输入采取措施"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="造成结果" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="causingResults">
              <a-input v-model="model.causingResults" placeholder="请输入造成结果"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="操作工" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="confirmer">
              <a-input v-model="model.confirmer" placeholder="请输入操作工"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="操作工确认时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="confirmTime">
              <j-date placeholder="请选择操作工确认时间" v-model="model.confirmTime"  style="width: 100%" />
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="区长" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="district">
              <a-input v-model="model.district" placeholder="请输入区长"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="区长确认时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="districtTime">
              <j-date placeholder="请选择区长确认时间" v-model="model.districtTime"  style="width: 100%" />
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="中心主任" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="centerDirector">
              <a-input v-model="model.centerDirector" placeholder="请输入中心主任"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="中心主任确认时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="centerDirectorTime">
              <j-date placeholder="请选择中心主任确认时间" v-model="model.centerDirectorTime"  style="width: 100%" />
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="维修开始时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="reportStartTime">
              <j-date placeholder="请选择维修开始时间" v-model="model.reportStartTime"  style="width: 100%" />
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="设备状态" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentStatus">
              <a-input v-model="model.equipmentStatus" placeholder="请输入设备状态"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="原因分析" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="causeAnalysis">
              <a-input v-model="model.causeAnalysis" placeholder="请输入原因分析"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="检查结果" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="inspectionResults">
              <a-input v-model="model.inspectionResults" placeholder="请输入检查结果"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="采取措施" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="takeSteps">
              <a-input v-model="model.takeSteps" placeholder="请输入采取措施"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="建议采取措施" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="suggestionTakeSteps">
              <a-input v-model="model.suggestionTakeSteps" placeholder="请输入建议采取措施"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="建议采取措施时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="suggestionTakeStepsTime">
              <j-date placeholder="请选择建议采取措施时间" v-model="model.suggestionTakeStepsTime"  style="width: 100%" />
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="维修确认" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairConfirm">
              <a-input v-model="model.repairConfirm" placeholder="请输入维修确认"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="维修确认意见" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairConfirmComment">
              <a-input v-model="model.repairConfirmComment" placeholder="请输入维修确认意见"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="维修确认时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairConfirmTime">
              <j-date placeholder="请选择维修确认时间" v-model="model.repairConfirmTime"  style="width: 100%" />
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="维修组长确认" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairGroupLeader">
              <a-input v-model="model.repairGroupLeader" placeholder="请输入维修组长确认"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="维修组长意见" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairGroupLeaderComment">
              <a-input v-model="model.repairGroupLeaderComment" placeholder="请输入维修组长意见"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="维修组长确认时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairGroupLeaderTime">
              <j-date placeholder="请选择维修组长确认时间" v-model="model.repairGroupLeaderTime"  style="width: 100%" />
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="维修组长确认" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairDistrict">
              <a-input v-model="model.repairDistrict" placeholder="请输入维修组长确认"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="维修组长意见" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairDistrictComment">
              <a-input v-model="model.repairDistrictComment" placeholder="请输入维修组长意见"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="维修组长确认时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairDistrictTime">
              <j-date placeholder="请选择维修组长确认时间" v-model="model.repairDistrictTime"  style="width: 100%" />
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="原因分析核对同意、不同意" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="checkAgree">
              <a-input v-model="model.checkAgree" placeholder="请输入原因分析核对同意、不同意"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="不同意原因分析" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="disagreeReason">
              <a-input v-model="model.disagreeReason" placeholder="请输入不同意原因分析"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="整改措施" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="rectificationMeasures">
              <a-input v-model="model.rectificationMeasures" placeholder="请输入整改措施"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="事故结论" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="accidentConclusion">
              <a-input v-model="model.accidentConclusion" placeholder="请输入事故结论"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="技术负责人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="technicalDirector">
              <a-input v-model="model.technicalDirector" placeholder="请输入技术负责人"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="技术负责人确认时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="technicalDirectorTime">
              <j-date placeholder="请选择技术负责人确认时间" v-model="model.technicalDirectorTime"  style="width: 100%" />
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="技术主管室级领导" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="technicalDirectorLeader">
              <a-input v-model="model.technicalDirectorLeader" placeholder="请输入技术主管室级领导"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="技术主管室级领导确认时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="technicalDirectorLeaderTime">
              <j-date placeholder="请选择技术主管室级领导确认时间" v-model="model.technicalDirectorLeaderTime"  style="width: 100%" />
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="主管部级领导" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="technicalDirectorPart">
              <a-input v-model="model.technicalDirectorPart" placeholder="请输入主管部级领导"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="主管部级领导确认时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="technicalDirectorPartTime">
              <j-date placeholder="请选择主管部级领导确认时间" v-model="model.technicalDirectorPartTime"  style="width: 100%" />
            </a-form-model-item>
          </a-col>
        </a-row>
      </a-form-model>
    </j-form-container>
  </a-spin>
</template>
<script>
  import { httpAction, getAction } from '@/api/manage'
  import { validateDuplicateValue } from '@/utils/util'
  export default {
    name: 'EamReportAccidentsRegisterForm',
    components: {
    },
    props: {
      //表单禁用
      disabled: {
        type: Boolean,
        default: false,
        required: false
      }
    },
    data () {
      return {
        model:{
         },
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 },
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 },
        },
        confirmLoading: false,
        validatorRules: {
        },
        url: {
          add: "/eam/eamReportAccidentsRegister/add",
          edit: "/eam/eamReportAccidentsRegister/edit",
          queryById: "/eam/eamReportAccidentsRegister/queryById"
        }
      }
    },
    computed: {
      formDisabled(){
        return this.disabled
      },
    },
    created () {
       //备份model原始值
      this.modelDefault = JSON.parse(JSON.stringify(this.model));
    },
    methods: {
      add () {
        this.edit(this.modelDefault);
      },
      edit (record) {
        this.model = Object.assign({}, record);
        this.visible = true;
      },
      submitForm () {
        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;
            })
          }
        })
      },
    }
  }
</script>
src/views/eam/repair/modules/EamReportAccidentsRegisterModal.Style#Drawer.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,84 @@
<template>
  <a-drawer
    :title="title"
    :width="width"
    placement="right"
    :closable="false"
    @close="close"
    destroyOnClose
    :visible="visible">
    <eam-report-accidents-register-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></eam-report-accidents-register-form>
    <div class="drawer-footer">
      <a-button @click="handleCancel" style="margin-bottom: 0;">关闭</a-button>
      <a-button v-if="!disableSubmit"  @click="handleOk" type="primary" style="margin-bottom: 0;">提交</a-button>
    </div>
  </a-drawer>
</template>
<script>
  import EamReportAccidentsRegisterForm from './EamReportAccidentsRegisterForm'
  export default {
    name: 'EamReportAccidentsRegisterModal',
    components: {
      EamReportAccidentsRegisterForm
    },
    data () {
      return {
        title:"操作",
        width:800,
        visible: false,
        disableSubmit: false
      }
    },
    methods: {
      add () {
        this.visible=true
        this.$nextTick(()=>{
          this.$refs.realForm.add();
        })
      },
      edit (record) {
        this.visible=true
        this.$nextTick(()=>{
          this.$refs.realForm.edit(record);
        });
      },
      close () {
        this.$emit('close');
        this.visible = false;
      },
      submitCallback(){
        this.$emit('ok');
        this.visible = false;
      },
      handleOk () {
        this.$refs.realForm.submitForm();
      },
      handleCancel () {
        this.close()
      }
    }
  }
</script>
<style lang="less" scoped>
/** Button按钮间距 */
  .ant-btn {
    margin-left: 30px;
    margin-bottom: 30px;
    float: right;
  }
  .drawer-footer{
    position: absolute;
    bottom: -8px;
    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/repair/modules/EamReportAccidentsRegisterModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
<template>
  <j-modal
    :title="title"
    :width="width"
    :visible="visible"
    switchFullscreen
    @ok="handleOk"
    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
    @cancel="handleCancel"
    cancelText="关闭">
    <eam-report-accidents-register-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></eam-report-accidents-register-form>
  </j-modal>
</template>
<script>
  import EamReportAccidentsRegisterForm from './EamReportAccidentsRegisterForm'
  export default {
    name: 'EamReportAccidentsRegisterModal',
    components: {
      EamReportAccidentsRegisterForm
    },
    data () {
      return {
        title:'',
        width:800,
        visible: false,
        disableSubmit: false
      }
    },
    methods: {
      add () {
        this.visible=true
        this.$nextTick(()=>{
          this.$refs.realForm.add();
        })
      },
      edit (record) {
        this.visible=true
        this.$nextTick(()=>{
          this.$refs.realForm.edit(record);
        })
      },
      close () {
        this.$emit('close');
        this.visible = false;
      },
      handleOk () {
        this.$refs.realForm.submitForm();
      },
      submitCallback(){
        this.$emit('ok');
        this.visible = false;
      },
      handleCancel () {
        this.close()
      }
    }
  }
</script>
src/views/eam/repair/modules/EamReportProductHazardsForm.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,159 @@
<template>
  <a-spin :spinning="confirmLoading">
    <j-form-container :disabled="formDisabled">
      <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
        <a-row>
          <a-col :span="24">
            <a-form-model-item label="报修ID" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="reportId">
              <a-input v-model="model.reportId" placeholder="请输入报修ID"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="设备ID" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentId">
              <a-input v-model="model.equipmentId" placeholder="请输入设备ID"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="操作工" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="confirmer">
              <a-input v-model="model.confirmer" placeholder="请输入操作工"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="操作工确认时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="confirmTime">
              <j-date placeholder="请选择操作工确认时间" v-model="model.confirmTime"  style="width: 100%" />
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="产品损失情况" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="productLoss">
              <a-input v-model="model.productLoss" placeholder="请输入产品损失情况"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="产品损失质量影响分析" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="qualityAnalysis">
              <a-input v-model="model.qualityAnalysis" placeholder="请输入产品损失质量影响分析"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="主管工艺" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="technologist">
              <a-input v-model="model.technologist" placeholder="请输入主管工艺"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="主管工艺确认时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="technologistTime">
              <j-date placeholder="请选择主管工艺确认时间" v-model="model.technologistTime"  style="width: 100%" />
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="主管工艺确认意见" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="technologistComment">
              <a-input v-model="model.technologistComment" placeholder="请输入主管工艺确认意见"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="部级领导" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="deputyDepartment">
              <a-input v-model="model.deputyDepartment" placeholder="请输入部级领导"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="部级领导确认时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="deputyDepartmentTime">
              <j-date placeholder="请选择部级领导确认时间" v-model="model.deputyDepartmentTime"  style="width: 100%" />
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="部级领导确认意见" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="deputyDepartmentComment">
              <a-input v-model="model.deputyDepartmentComment" placeholder="请输入部级领导确认意见"  ></a-input>
            </a-form-model-item>
          </a-col>
        </a-row>
      </a-form-model>
    </j-form-container>
  </a-spin>
</template>
<script>
  import { httpAction, getAction } from '@/api/manage'
  import { validateDuplicateValue } from '@/utils/util'
  export default {
    name: 'EamReportProductHazardsForm',
    components: {
    },
    props: {
      //表单禁用
      disabled: {
        type: Boolean,
        default: false,
        required: false
      }
    },
    data () {
      return {
        model:{
         },
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 },
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 },
        },
        confirmLoading: false,
        validatorRules: {
        },
        url: {
          add: "/eam/eamReportProductHazards/add",
          edit: "/eam/eamReportProductHazards/edit",
          queryById: "/eam/eamReportProductHazards/queryById"
        }
      }
    },
    computed: {
      formDisabled(){
        return this.disabled
      },
    },
    created () {
       //备份model原始值
      this.modelDefault = JSON.parse(JSON.stringify(this.model));
    },
    methods: {
      add () {
        this.edit(this.modelDefault);
      },
      edit (record) {
        this.model = Object.assign({}, record);
        this.visible = true;
      },
      submitForm () {
        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;
            })
          }
        })
      },
    }
  }
</script>
src/views/eam/repair/modules/EamReportProductHazardsModal.Style#Drawer.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,84 @@
<template>
  <a-drawer
    :title="title"
    :width="width"
    placement="right"
    :closable="false"
    @close="close"
    destroyOnClose
    :visible="visible">
    <eam-report-product-hazards-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></eam-report-product-hazards-form>
    <div class="drawer-footer">
      <a-button @click="handleCancel" style="margin-bottom: 0;">关闭</a-button>
      <a-button v-if="!disableSubmit"  @click="handleOk" type="primary" style="margin-bottom: 0;">提交</a-button>
    </div>
  </a-drawer>
</template>
<script>
  import EamReportProductHazardsForm from './EamReportProductHazardsForm'
  export default {
    name: 'EamReportProductHazardsModal',
    components: {
      EamReportProductHazardsForm
    },
    data () {
      return {
        title:"操作",
        width:800,
        visible: false,
        disableSubmit: false
      }
    },
    methods: {
      add () {
        this.visible=true
        this.$nextTick(()=>{
          this.$refs.realForm.add();
        })
      },
      edit (record) {
        this.visible=true
        this.$nextTick(()=>{
          this.$refs.realForm.edit(record);
        });
      },
      close () {
        this.$emit('close');
        this.visible = false;
      },
      submitCallback(){
        this.$emit('ok');
        this.visible = false;
      },
      handleOk () {
        this.$refs.realForm.submitForm();
      },
      handleCancel () {
        this.close()
      }
    }
  }
</script>
<style lang="less" scoped>
/** Button按钮间距 */
  .ant-btn {
    margin-left: 30px;
    margin-bottom: 30px;
    float: right;
  }
  .drawer-footer{
    position: absolute;
    bottom: -8px;
    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/repair/modules/EamReportProductHazardsModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
<template>
  <j-modal
    :title="title"
    :width="width"
    :visible="visible"
    switchFullscreen
    @ok="handleOk"
    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
    @cancel="handleCancel"
    cancelText="关闭">
    <eam-report-product-hazards-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></eam-report-product-hazards-form>
  </j-modal>
</template>
<script>
  import EamReportProductHazardsForm from './EamReportProductHazardsForm'
  export default {
    name: 'EamReportProductHazardsModal',
    components: {
      EamReportProductHazardsForm
    },
    data () {
      return {
        title:'',
        width:800,
        visible: false,
        disableSubmit: false
      }
    },
    methods: {
      add () {
        this.visible=true
        this.$nextTick(()=>{
          this.$refs.realForm.add();
        })
      },
      edit (record) {
        this.visible=true
        this.$nextTick(()=>{
          this.$refs.realForm.edit(record);
        })
      },
      close () {
        this.$emit('close');
        this.visible = false;
      },
      handleOk () {
        this.$refs.realForm.submitForm();
      },
      submitCallback(){
        this.$emit('ok');
        this.visible = false;
      },
      handleCancel () {
        this.close()
      }
    }
  }
</script>
src/views/eam/repair/modules/EamReportRepairList/EamReportRepairModal.vue
@@ -1,86 +1,151 @@
<template>
  <j-modal
    :title="title"
    :width="800"
    fullscreen
    :visible="visible"
    centered
    :confirmLoading="confirmLoading"
    switchFullscreen
    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
    @ok="handleOk"
    @cancel="close"
    :mask-closable="false"
    @cancel="handleCancel"
    cancelText="关闭">
    <a-spin :spinning="confirmLoading">
      <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol" :wrapperCol="wrapperCol">
        <a-row>
          <a-col :span="12">
            <a-form-model-item prop="equipmentId" label="设备编号">
              <lx-search-equipment-select placeholder="请输入设备编号或名称搜索" v-model="model.equipmentId"/>
            </a-form-model-item>
          </a-col>
      <j-form-container :disabled="disableSubmit">
        <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelCol"
                      :wrapperCol="wrapperCol" slot="detail">
          <a-row>
            <a-col :span="customSpan">
              <a-form-model-item prop="equipmentId" label="设备编号">
                <lx-search-equipment-select placeholder="请输入设备编号或名称搜索" v-model="model.equipmentId"/>
              </a-form-model-item>
            </a-col>
            <a-col :span="customSpan">
              <a-form-model-item label="是否加工">
                <j-dict-select-tag dict-code="is_processed" type="radio" v-model="model.isProcessed"
                                   @change="handleRadioChange($event,'faultStartTime,breakdownFlag,' +
                                    'faultDescription,batchNumber,processingPart,quantity')"/>
              </a-form-model-item>
            </a-col>
            <a-col :span="customSpan">
              <a-form-model-item label="故障开始时间">
                <a-date-picker :disabled="!Boolean(+model.isProcessed)" v-model="model.faultStartTime" value-format="YYYY-MM-DD" style="width:100%"/>
              </a-form-model-item>
            </a-col>
            <a-col :span="customSpan">
              <a-form-model-item label="是否停机">
                <j-dict-select-tag :disabled="!Boolean(+model.isProcessed)" dict-code="yn" placeholder="请选择是否停机" v-model="model.breakdownFlag"/>
              </a-form-model-item>
            </a-col>
          </a-row>
          <a-col :span="12">
            <a-form-model-item prop="faultName" label="故障简称">
              <a-select placeholder="请选择故障简称" v-model="model.faultName" @change="handleFaultNameChange">
                <a-select-option v-for="item in faultReasonList" :key="item.faultName">
                  {{ item.faultName }}
                </a-select-option>
              </a-select>
            </a-form-model-item>
          </a-col>
        </a-row>
          <a-row>
            <a-col :span="customSpan">
              <a-form-model-item label="故障现象">
                <a-input  :disabled="!Boolean(+model.isProcessed)" placeholder="请输入故障现象" v-model="model.faultDescription"/>
              </a-form-model-item>
            </a-col>
            <a-col :span="customSpan">
              <a-form-model-item label="批次号">
                <a-input  :disabled="!Boolean(+model.isProcessed)" placeholder="请输入批次号" v-model="model.batchNumber"/>
              </a-form-model-item>
            </a-col>
            <a-col :span="customSpan">
              <a-form-model-item label="加工零件号">
                <a-input  :disabled="!Boolean(+model.isProcessed)" placeholder="请输入加工零件号" v-model="model.processingPart"/>
              </a-form-model-item>
            </a-col>
            <a-col :span="customSpan">
              <a-form-model-item label="件数">
                <a-input-number  :disabled="!Boolean(+model.isProcessed)" placeholder="请输入件数" v-model="model.quantity" :min="0" style="width: 100%"/>
              </a-form-model-item>
            </a-col>
          </a-row>
        <a-row>
          <a-col :span="12">
            <a-form-model-item label="故障分类">
              <a-input placeholder="请输入故障分类" v-model="model.faultType_dictText" readOnly/>
            </a-form-model-item>
          </a-col>
        </a-row>
          <a-row>
            <a-col :span="customSpan">
              <a-form-model-item label="设备事故">
                <j-dict-select-tag dict-code="yn" placeholder="请选择设备事故" v-model="model.isAccidentsRegister"/>
              </a-form-model-item>
            </a-col>
            <a-col :span="customSpan">
              <a-form-model-item label="废品件号">
                <a-input placeholder="请输入废品件号" v-model="model.scrapPartNumber"/>
              </a-form-model-item>
            </a-col>
            <a-col :span="customSpan">
              <a-form-model-item label="废品件数">
                <a-input-number placeholder="请输入废品件数" v-model="model.scrapPartQuantity" :min="0" style="width: 100%"/>
              </a-form-model-item>
            </a-col>
            <a-col :span="customSpan">
              <a-form-model-item label="废品价值">
                <a-input placeholder="请输入废品价值" v-model="model.scrapPartValue"/>
              </a-form-model-item>
            </a-col>
          </a-row>
        <a-row>
          <a-col :span="24">
            <a-form-model-item label="故障描述" prop="faultDescription" :labelCol="labelColLong"
                               :wrapperCol="wrapperColLong">
              <a-textarea placeholder="请输入故障描述" v-model="model.faultDescription"/>
            </a-form-model-item>
          </a-col>
        </a-row>
          <a-row>
            <a-col :span="customSpan">
              <a-form-model-item label="是否有设备操作证">
                <j-dict-select-tag dict-code="yn" placeholder="请选择是否有设备操作证" v-model="model.operationCertificate"/>
              </a-form-model-item>
            </a-col>
            <a-col :span="customSpan">
              <a-form-model-item label="是否断电重启">
                <j-dict-select-tag dict-code="yn" placeholder="请选择是否断电重启" v-model="model.powerOffRestart"/>
              </a-form-model-item>
            </a-col>
            <a-col :span="customSpan">
              <a-form-model-item label="是否为批次首件">
                <j-dict-select-tag dict-code="yn" placeholder="请选择是否为批次首件" v-model="model.batchFirstPiece"/>
              </a-form-model-item>
            </a-col>
            <a-col :span="customSpan">
              <a-form-model-item label="变动因素">
                <j-dict-select-tag dict-code="yn" placeholder="请选择变动因素" v-model="model.variableFactors"/>
              </a-form-model-item>
            </a-col>
          </a-row>
        <a-row>
          <a-col :span="12">
            <a-form-model-item prop="faultStartTime" label="故障开始时间">
              <a-date-picker showTime placeholder="请选择故障开始时间" v-model="model.faultStartTime"
                             :allow-clear="false" value-format="YYYY-MM-DD HH:mm:ss" :disabledDate="disabledDate"
                             :disabledTime="disabledTime"/>
            </a-form-model-item>
          </a-col>
          <a-row>
            <a-col :span="customSpan">
              <a-form-model-item label="变动因素内容">
                <j-dict-select-tag dict-code="variable_factors_value" placeholder="请选择变动因素内容" v-model="model.variableFactorsValue"/>
              </a-form-model-item>
            </a-col>
            <a-col :span="customSpan">
              <a-form-model-item label="执行程序">
                <a-input placeholder="请输入执行程序" v-model="model.executeNc"/>
              </a-form-model-item>
            </a-col>
            <a-col :span="customSpan">
              <a-form-model-item label="事故现象">
                <a-input placeholder="请输入事故现象" v-model="model.accidentPhenomenon"/>
              </a-form-model-item>
            </a-col>
            <a-col :span="customSpan">
              <a-form-model-item label="采取措施">
                <a-input placeholder="请输入采取措施" v-model="model.measure"/>
              </a-form-model-item>
            </a-col>
          </a-row>
          <a-col :span="12">
            <a-form-model-item prop="breakdownFlag" label="是否停机">
              <a-radio-group v-model="model.breakdownFlag">
                <a-radio v-for="item in breakdownFlagList" :value="item.value">{{ item.label }}</a-radio>
              </a-radio-group>
            </a-form-model-item>
          </a-col>
        </a-row>
          <a-row>
            <a-col :span="customSpan">
              <a-form-model-item label="造成结果">
                <a-input placeholder="请输入造成结果" v-model="model.causingResults"/>
              </a-form-model-item>
            </a-col>
        <a-row>
          <a-col :span="24">
            <a-form-model-item prop="imageFiles" label="报修图片" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
              <lx-upload :returnUrl="false" :isMultiple="true" file-type="image" :number="3"
                         v-model="model.imageFilesResult"/>
            </a-form-model-item>
          </a-col>
        </a-row>
            <a-col :span="customSpan">
              <a-form-model-item label="备注">
                <a-input placeholder="请输入备注" v-model="model.measure"/>
              </a-form-model-item>
            </a-col>
          </a-row>
        <a-row>
          <a-col :span="24">
            <a-form-model-item prop="remark" label="备注" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
              <a-textarea placeholder="请输入备注" v-model="model.remark"/>
            </a-form-model-item>
          </a-col>
        </a-row>
      </a-form-model>
        </a-form-model>
      </j-form-container>
    </a-spin>
  </j-modal>
</template>
@@ -105,7 +170,10 @@
      return {
        title: '操作',
        visible: false,
        //详情控制
        disableSubmit: false,
        model: {},
        customSpan: 6,
        labelCol: {
          xs: { span: 24 },
          sm: { span: 8 }
@@ -148,11 +216,12 @@
    },
    methods: {
      add() {
        this.editable = true
        //初始化默认值
        this.edit({
          faultDescription: '',
          breakdownFlag: this.breakdownFlagList.find(item => item.label === '否').value
        })
        this.model = {
          isProcessed: 0,
        }
        this.visible = true
      },
      edit(record) {
@@ -210,6 +279,23 @@
        }
      },
      /**\
       * å•选框值发生改变时触发
       * @param value å•选框值
       * @param key å•选框关联字段
       */
      handleRadioChange(value, key) {
        //key包含,说明是多选框
        if (key.includes(',')) {
          const keys = key.split(',')
          keys.forEach(key => {
            if (value === '0') delete this.model[key]
          })
        }else {
          if (value === '0') delete this.model[key]
        }
      },
      /**
       * ç¦ç”¨æ—¥æœŸ
       * @params current è¢«ç¦ç”¨çš„æ—¶é—´
@@ -243,7 +329,10 @@
        this.$emit('close')
        this.visible = false
        if (this.$refs.form) this.$refs.form.clearValidate()
      }
      },
      handleCancel() {
        this.close()
      },
    }
  }
</script>
src/views/eam/repair/modules/EamReportThreeNoSpareForm.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,144 @@
<template>
  <a-spin :spinning="confirmLoading">
    <j-form-container :disabled="formDisabled">
      <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
        <a-row>
          <a-col :span="24">
            <a-form-model-item label="删除标记" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="delFlag">
              <a-input v-model="model.delFlag" placeholder="请输入删除标记"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="报修ID" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="reportId">
              <a-input v-model="model.reportId" placeholder="请输入报修ID"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="设备ID" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentId">
              <a-input v-model="model.equipmentId" placeholder="请输入设备ID"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="原因分析" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="causeAnalysis">
              <a-input v-model="model.causeAnalysis" placeholder="请输入原因分析"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="培训教育是 å¦" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isTrainingEducation">
              <a-input v-model="model.isTrainingEducation" placeholder="请输入培训教育是 å¦"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="培训形式" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="trainingFormat">
              <a-input v-model="model.trainingFormat" placeholder="请输入培训形式"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="培训内容" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="trainingContent">
              <a-input v-model="model.trainingContent" placeholder="请输入培训内容"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="培训人" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="trainingUser">
              <a-input v-model="model.trainingUser" placeholder="请输入培训人"  ></a-input>
            </a-form-model-item>
          </a-col>
          <a-col :span="24">
            <a-form-model-item label="培训时间" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="trainingUserTime">
              <j-date placeholder="请选择培训时间" v-model="model.trainingUserTime"  style="width: 100%" />
            </a-form-model-item>
          </a-col>
        </a-row>
      </a-form-model>
    </j-form-container>
  </a-spin>
</template>
<script>
  import { httpAction, getAction } from '@/api/manage'
  import { validateDuplicateValue } from '@/utils/util'
  export default {
    name: 'EamReportThreeNoSpareForm',
    components: {
    },
    props: {
      //表单禁用
      disabled: {
        type: Boolean,
        default: false,
        required: false
      }
    },
    data () {
      return {
        model:{
         },
        labelCol: {
          xs: { span: 24 },
          sm: { span: 5 },
        },
        wrapperCol: {
          xs: { span: 24 },
          sm: { span: 16 },
        },
        confirmLoading: false,
        validatorRules: {
        },
        url: {
          add: "/eam/eamReportThreeNoSpare/add",
          edit: "/eam/eamReportThreeNoSpare/edit",
          queryById: "/eam/eamReportThreeNoSpare/queryById"
        }
      }
    },
    computed: {
      formDisabled(){
        return this.disabled
      },
    },
    created () {
       //备份model原始值
      this.modelDefault = JSON.parse(JSON.stringify(this.model));
    },
    methods: {
      add () {
        this.edit(this.modelDefault);
      },
      edit (record) {
        this.model = Object.assign({}, record);
        this.visible = true;
      },
      submitForm () {
        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;
            })
          }
        })
      },
    }
  }
</script>
src/views/eam/repair/modules/EamReportThreeNoSpareModal.Style#Drawer.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,84 @@
<template>
  <a-drawer
    :title="title"
    :width="width"
    placement="right"
    :closable="false"
    @close="close"
    destroyOnClose
    :visible="visible">
    <eam-report-three-no-spare-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></eam-report-three-no-spare-form>
    <div class="drawer-footer">
      <a-button @click="handleCancel" style="margin-bottom: 0;">关闭</a-button>
      <a-button v-if="!disableSubmit"  @click="handleOk" type="primary" style="margin-bottom: 0;">提交</a-button>
    </div>
  </a-drawer>
</template>
<script>
  import EamReportThreeNoSpareForm from './EamReportThreeNoSpareForm'
  export default {
    name: 'EamReportThreeNoSpareModal',
    components: {
      EamReportThreeNoSpareForm
    },
    data () {
      return {
        title:"操作",
        width:800,
        visible: false,
        disableSubmit: false
      }
    },
    methods: {
      add () {
        this.visible=true
        this.$nextTick(()=>{
          this.$refs.realForm.add();
        })
      },
      edit (record) {
        this.visible=true
        this.$nextTick(()=>{
          this.$refs.realForm.edit(record);
        });
      },
      close () {
        this.$emit('close');
        this.visible = false;
      },
      submitCallback(){
        this.$emit('ok');
        this.visible = false;
      },
      handleOk () {
        this.$refs.realForm.submitForm();
      },
      handleCancel () {
        this.close()
      }
    }
  }
</script>
<style lang="less" scoped>
/** Button按钮间距 */
  .ant-btn {
    margin-left: 30px;
    margin-bottom: 30px;
    float: right;
  }
  .drawer-footer{
    position: absolute;
    bottom: -8px;
    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/repair/modules/EamReportThreeNoSpareModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
<template>
  <j-modal
    :title="title"
    :width="width"
    :visible="visible"
    switchFullscreen
    @ok="handleOk"
    :okButtonProps="{ class:{'jee-hidden': disableSubmit} }"
    @cancel="handleCancel"
    cancelText="关闭">
    <eam-report-three-no-spare-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></eam-report-three-no-spare-form>
  </j-modal>
</template>
<script>
  import EamReportThreeNoSpareForm from './EamReportThreeNoSpareForm'
  export default {
    name: 'EamReportThreeNoSpareModal',
    components: {
      EamReportThreeNoSpareForm
    },
    data () {
      return {
        title:'',
        width:800,
        visible: false,
        disableSubmit: false
      }
    },
    methods: {
      add () {
        this.visible=true
        this.$nextTick(()=>{
          this.$refs.realForm.add();
        })
      },
      edit (record) {
        this.visible=true
        this.$nextTick(()=>{
          this.$refs.realForm.edit(record);
        })
      },
      close () {
        this.$emit('close');
        this.visible = false;
      },
      handleOk () {
        this.$refs.realForm.submitForm();
      },
      submitCallback(){
        this.$emit('ok');
        this.visible = false;
      },
      handleCancel () {
        this.close()
      }
    }
  }
</script>