222efa89f74386c97cce2b0ea33d13b1ddbdb49e..fdd08d56e9d84d2f9578e82c44578d099b29572f
3 天以前 zhaowei
三保变更批量导出及打印
fdd08d 对比 | 目录
3 天以前 zhaowei
真空热处理炉三保批量导出及打印
b99765 对比 | 目录
已添加2个文件
已修改3个文件
469 ■■■■■ 文件已修改
src/views/eam/maintenance/EamThirdMaintenanceChangeList.vue 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/maintenance/EamThirdMaintenanceFurnaceList.vue 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/maintenance/modules/EamThirdMaintenanceChangeBatchPrintModal.vue 215 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/maintenance/modules/EamThirdMaintenanceFurnaceBatchPrintModal.vue 192 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/repair/modules/EamProductHazardsBatchPrintModal.vue 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/eam/maintenance/EamThirdMaintenanceChangeList.vue
@@ -36,9 +36,16 @@
      </a-form>
    </div>
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <div class="table-operator">
      <a-button @click="handleBatchPrint" type="primary" icon="monitor" :disabled="selectedRowKeys.length===0">批量预览
      </a-button>
    </div>
    <!-- table区域-begin -->
    <a-table ref="table" size="middle" bordered rowKey="id" :columns="columns" :dataSource="dataSource"
             :pagination="ipagination" :loading="loading" :scroll="{x:'max-content'}"
             :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
             @change="handleTableChange">
      <!--使用部门-->
@@ -46,7 +53,7 @@
        {{[record.zxfactoryOrgCode_dictText].filter(item=>item).join('/')}}
      </template>
        <span slot="action" slot-scope="text, record">
      <span slot="action" slot-scope="text, record">
          <template v-if="record.changeStatus=='WAIT_SUBMIT'">
            <a @click="handleEdit(record)">编辑</a>
@@ -75,6 +82,9 @@
    <!--审批窗口-->
    <third-maintenance-order-change-approval-modal ref="thirdMaintenanceOrderChangeApprovalModal"
                                                   :selectShenpiData="selectedRowData"/>
    <!--批量打印窗口-->
    <eam-third-maintenance-change-batch-print-modal ref="batchPrintModal"/>
  </a-card>
</template>
@@ -85,11 +95,13 @@
  import EamThirdMaintenanceChangeModal from './modules/EamThirdMaintenanceChangeModal.vue'
  import ThirdMaintenanceOrderChangeApprovalModal
    from '../../flowable/workflow/thirdMaintenance/ThirdMaintenanceOrderChangeApprovalModal'
  import EamThirdMaintenanceChangeBatchPrintModal from './modules/EamThirdMaintenanceChangeBatchPrintModal'
  export default {
    name: 'EamThirdMaintenanceChangeList',
    mixins: [JeecgListMixin],
    components: {
      EamThirdMaintenanceChangeBatchPrintModal,
      ThirdMaintenanceOrderChangeApprovalModal,
      EamThirdMaintenanceChangeModal,
      LxSearchEquipmentSelect
@@ -323,6 +335,11 @@
        this.queryParam.dateEnd = dateStringArray[1]
      },
      // æ‰¹é‡æ‰“印
      handleBatchPrint() {
        this.$refs.batchPrintModal.handlePreview(this.selectedRowKeys.join())
      },
      handlePrint(record) {
        let href = `${window._CONFIG['domianURL']}/jmreport/view/1094880052100399104?id=` + record.id
        //  + `&orderId=` + record.id; //网站链接
src/views/eam/maintenance/EamThirdMaintenanceFurnaceList.vue
@@ -40,21 +40,12 @@
    <!-- æ“ä½œæŒ‰é’®åŒºåŸŸ -->
    <div class="table-operator">
      <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button>
      <a-dropdown v-if="selectedRowKeys.length > 0">
        <a-menu slot="overlay">
          <a-menu-item key="1" @click="handleBatchCollect">
            <a-icon type="form"/>
            é¢†å–
          </a-menu-item>
          <a-menu-item key="1" @click="handleBatchAbolish">
            <a-icon type="delete"/>
            ä½œåºŸ
          </a-menu-item>
        </a-menu>
        <a-button style="margin-left: 8px"> æ‰¹é‡æ“ä½œ
          <a-icon type="down"/>
        </a-button>
      </a-dropdown>
      <a-button @click="handleBatchCollect" type="primary" icon="form" :disabled="selectedRowKeys.length===0">批量领取
      </a-button>
      <a-button @click="handleBatchPrint" type="primary" icon="monitor" :disabled="selectedRowKeys.length===0">批量预览
      </a-button>
      <a-button @click="handleBatchAbolish" type="primary" icon="delete" :disabled="selectedRowKeys.length===0">批量作废
      </a-button>
    </div>
    <!-- table区域-begin -->
@@ -109,6 +100,9 @@
    <!--审批窗口-->
    <third-maintenance-furnace-approval-modal ref="thirdMaintenanceFurnaceApprovalModal"
                                              :selectShenpiData="selectedRowData"/>
    <!--批量打印窗口-->
    <eam-third-maintenance-furnace-batch-print-modal ref="batchPrintModal"/>
  </a-card>
</template>
@@ -119,11 +113,13 @@
  import { getAction, deleteAction } from '@/api/manage'
  import ThirdMaintenanceFurnaceApprovalModal
    from '../../flowable/workflow/thirdMaintenance/ThirdMaintenanceFurnaceApprovalModal'
  import EamThirdMaintenanceFurnaceBatchPrintModal from './modules/EamThirdMaintenanceFurnaceBatchPrintModal'
  export default {
    name: 'EamThirdMaintenanceFurnaceList',
    mixins: [JeecgListMixin],
    components: {
      EamThirdMaintenanceFurnaceBatchPrintModal,
      ThirdMaintenanceFurnaceApprovalModal,
      LxSearchEquipmentSelect,
      EamThirdMaintenanceFurnaceModal
@@ -333,6 +329,11 @@
        })
      },
      // æ‰¹é‡æ‰“印
      handleBatchPrint() {
        this.$refs.batchPrintModal.handlePreview(this.selectedRowKeys.join())
      },
      /**
       * ç‚¹å‡»ä½œåºŸæ—¶è§¦å‘
       * @param id è¡Œè®°å½•id
src/views/eam/maintenance/modules/EamThirdMaintenanceChangeBatchPrintModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,215 @@
<template>
  <j-modal title="预览(仅可预览已完成工单)" :width="948" :visible="visible" switchFullscreen centered
           :mask-closable="false" @cancel="handleCancel" cancelText="关闭">
    <a-spin :spinning="spinning" style="height: 100%">
      <div id="dataTable">
        <div v-for="dataItem in dataSource" class="table-container">
          <div style="page-break-before:always"></div>
          <table class="import-table" :id="dataItem.equipmentCode">
            <thead>
            <tr>
              <td colspan="12" style="border: none">
                <div style="text-align: right">{{dataItem.hfCode}}</div>
              </td>
            </tr>
            </thead>
            <tbody>
            <tr style="height: 48px;">
              <th colspan="12" style="border: none;font-size: 20px">加工设备保养计划变更申请单</th>
            </tr>
            <tr>
              <td colspan="6" style="border: none;padding-left: 20px">
                <div style="text-align: left">申请单位:{{dataItem.zxfactoryOrgCode_dictText}}</div>
              </td>
              <td colspan="6" style="border: none;padding-right: 20px">
                <div style="text-align: right">
                  {{dataItem.applyDate.split('-')[0]}} å¹´ {{dataItem.applyDate.split('-')[1]}} æœˆ
                  {{dataItem.applyDate.split('-')[2]}} æ—¥
                </div>
              </td>
            </tr>
            <tr style="height: 40px;">
              <td colspan="2">设备名称</td>
              <td colspan="2">{{dataItem.equipmentName}}</td>
              <td colspan="2">型号</td>
              <td colspan="2">{{dataItem.equipmentModel}}</td>
              <td colspan="2">统一编号</td>
              <td colspan="2">{{dataItem.equipmentCode}}</td>
            </tr>
            <tr style="height: 40px;">
              <td colspan="2">原计划时间</td>
              <td colspan="2">{{dataItem.oldPlanDate}}</td>
              <td colspan="2">申请延保时间</td>
              <td colspan="2">{{dataItem.deferredMaintenanceDate}}</td>
              <td colspan="2">设备管理主管</td>
              <td colspan="2">{{dataItem.applicant_dictText}}</td>
            </tr>
            <tr>
              <td colspan="2" style="padding: 5px">延保(或变更)原因</td>
              <td colspan="10" style="text-align: left;padding: 5px">
                <div style="text-align: left" v-html="dataItem.equipmentManagerComment"></div>
                <br/><br/><br/><br/>
                <div style="text-align: right;padding-right: 20px">
                  ä¸»ç®¡å®¤çº§é¢†å¯¼ç­¾å­—:{{dataItem.equipmentManagerSignature_dictText}}
                </div>
              </td>
            </tr>
            <tr>
              <td colspan="2" style="padding: 5px">确认部门</td>
              <td colspan="10" style="padding: 5px">
                <div style="text-align: left" v-html="dataItem.departManagerComment"></div>
                <br/><br/><br/><br/>
                <div style="text-align: right;padding-right: 20px">
                  ä¸»ç®¡å®¤çº§é¢†å¯¼ç­¾å­—:{{dataItem.departManagerSignature_dictText}}
                </div>
              </td>
            </tr>
            <tr>
              <td colspan="2" style="padding: 5px">生产保障部</td>
              <td colspan="10" style="padding: 5px">
                <div style="text-align: left" v-html="dataItem.productionSupportComment"></div>
                <br/><br/><br/><br/>
                <div style="text-align: right;padding-right: 20px">
                  ä¸»ç®¡å®¤çº§é¢†å¯¼ç­¾å­—:{{dataItem.productionSupportSignature_dictText}}
                </div>
              </td>
            </tr>
            <tr>
              <td colspan="12" style="padding: 5px 40px;border: none;">
                <div style="text-align: left">
                  å¤‡æ³¨ï¼šç¡®è®¤éƒ¨é—¨ä¸ºç”Ÿäº§æŒ‡æŒ¥éƒ¨ã€è®¾å¤‡ç»´ä¿®éƒ¨é—¨ã€é¡¹ç›®å®žæ–½éƒ¨é—¨ã€‚其中因生产任务紧急无法停机的情况须经生产指挥部签字
                </div>
              </td>
            </tr>
            </tbody>
          </table>
        </div>
      </div>
    </a-spin>
    <template slot="footer">
      <a-button @click="handleCancel">关闭</a-button>
      <a-button type="primary" @click="handleImport">导出</a-button>
      <a-button type="primary" v-print="'#dataTable'">打印</a-button>
    </template>
  </j-modal>
</template>
<script>
  import { getAction } from '@/api/manage'
  import $ from 'jquery'
  import '@/components/table2excel/table2excel'
  export default {
    name: 'EamThirdMaintenanceChangeBatchPrintModal',
    data() {
      return {
        visible: false,
        spinning: false,
        dataSource: [],
        url: {
          list: '/eam/eamThirdMaintenanceChange/batchExport'
        }
      }
    },
    methods: {
      /**
       * æ‰¹é‡é¢„览
       * @param ids String ä¸»é¡µé¢åˆ—表勾选ids
       */
      handlePreview(ids) {
        this.visible = true
        this.spinning = true
        this.dataSource = []
        const that = this
        getAction(this.url.list, { ids })
          .then(res => {
            if (res.success) that.dataSource = res.result
          })
          .finally(() => {
            that.spinning = false
          })
      },
      // å¯¼å‡ºåˆ°Excel
      handleImport() {
        document.querySelectorAll('table.import-table').forEach(item => {
          $(item).table2excel({
            exclude: '.noExl',
            name: 'Excel Document Name',
            filename: '加工设备保养计划变更申请单-' + item.id,
            exclude_img: true,
            fileext: '.xls',
            exclude_links: true,
            exclude_inputs: false
          })
        })
      },
      handleCancel() {
        this.close()
      },
      close() {
        this.$emit('close')
        this.visible = false
        if (this.$refs.form) this.$refs.form.clearValidate()
      }
    }
  }
</script>
<style scoped lang="less">
  /deep/ .ant-modal {
    height: 90%;
    overflow: hidden;
    .ant-modal-content {
      height: 100%;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      ::-webkit-scrollbar {
        width: 8px;
        height: 8px;
      }
      .ant-modal-body {
        flex: 1;
        overflow: auto;
      }
    }
  }
  .table-container:not(:last-child) {
    margin-bottom: 20px;
  }
  table {
    width: 100%;
    text-align: center;
    table-layout: fixed;
    td, th {
      border: 1px solid #000;
    }
    td.vertical-display {
      transform: rotate(360deg);
      writing-mode: vertical-lr;
      letter-spacing: 5px;
      padding: 10px 0;
    }
  }
</style>
src/views/eam/maintenance/modules/EamThirdMaintenanceFurnaceBatchPrintModal.vue
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,192 @@
<template>
  <j-modal title="预览(仅可预览已完成工单)" :width="948" :visible="visible" switchFullscreen centered
           :mask-closable="false" @cancel="handleCancel" cancelText="关闭">
    <a-spin :spinning="spinning" style="height: 100%">
      <div id="dataTable">
        <div v-for="dataItem in dataSource" class="table-container">
          <div style="page-break-before:always"></div>
          <table class="import-table" :id="dataItem.equipmentCode">
            <thead>
            <tr>
              <td colspan="14" style="border: none">
                <div style="text-align: right">{{dataItem.hfCode}}</div>
              </td>
            </tr>
            </thead>
            <tbody>
            <tr style="height: 55px;">
              <td colspan="14">真空热处理炉整体性能检测表</td>
            </tr>
            <tr style="height: 40px">
              <td colspan="4" style="border-right:none">
                <div style="text-align: left">生产单位:{{dataItem.zxfactoryOrgCode_dictText}}</div>
              </td>
              <td colspan="4" style="border:none">
                <div style="text-align: left">设备名称:{{dataItem.equipmentName}}</div>
              </td>
              <td colspan="3" style="border:none">
                <div style="text-align: left">设备型号:{{dataItem.equipmentModel}}</div>
              </td>
              <td colspan="3" style="border-left:none">
                <div style="text-align: left">统一编码:{{dataItem.equipmentCode}}</div>
              </td>
            </tr>
            <tr style="height: 80px">
              <td colspan="3">压缩空气压力(MPa)</td>
              <td colspan="2">极限真空(Pa)</td>
              <td colspan="2">泄漏率(Pa/h)</td>
              <td colspan="2">净化处理</td>
              <td colspan="3">炉温均匀性检测</td>
              <td colspan="2">加热功率测试</td>
            </tr>
            <tr style="height: 100px">
              <td colspan="3">{{dataItem.compressedAirPressureValue}}</td>
              <td colspan="2">{{dataItem.ultimateVacuumValue}}</td>
              <td colspan="2">{{dataItem.leakRate}}</td>
              <td colspan="2">{{dataItem.purificationTreatment}}</td>
              <td colspan="3">{{dataItem.furnaceTemperatureUniformityTesting}}</td>
              <td colspan="2">{{dataItem.heatingPowerTest}}</td>
            </tr>
            <tr>
              <td colspan="14" style="padding: 20px 100px;border: none">
                <div style="text-align: right">
                  èƒ½å¦æ»¡è¶³åŠ å·¥éœ€æ±‚ï¼š{{dataItem.processingRequirementsFlag==='1'?'能(√)否()':'能()否(√)'}}
                </div>
                <br/><br/>
                <div style="text-align: right">执行人:<i>第三方维护人员签字</i>&nbsp;&nbsp;{{dataItem.operator_dictText}}
                </div>
                <br/><br/>
                <div style="text-align: right">确认人:<i>第三方维护组长签字</i>&nbsp;&nbsp;{{dataItem.confirmUser_dictText}}
                </div>
                <br/><br/>
                <div style="text-align: right">确认时间:{{dataItem.confirmTime}}</div>
              </td>
            </tr>
            </tbody>
          </table>
        </div>
      </div>
    </a-spin>
    <template slot="footer">
      <a-button @click="handleCancel">关闭</a-button>
      <a-button type="primary" @click="handleExportToExcel">导出</a-button>
      <a-button type="primary" v-print="'#dataTable'">打印</a-button>
    </template>
  </j-modal>
</template>
<script>
  import { getAction } from '@/api/manage'
  import $ from 'jquery'
  import '@/components/table2excel/table2excel'
  export default {
    name: 'EamThirdMaintenanceFurnaceBatchPrintModal',
    data() {
      return {
        visible: false,
        spinning: false,
        dataSource: [],
        url: {
          list: '/eam/eamThirdMaintenanceFurnace/batchExport'
        }
      }
    },
    methods: {
      /**
       * æ‰¹é‡é¢„览
       * @param ids String ä¸»é¡µé¢åˆ—表勾选ids
       */
      handlePreview(ids) {
        this.visible = true
        this.spinning = true
        this.dataSource = []
        const that = this
        getAction(this.url.list, { ids })
          .then(res => {
            if (res.success) that.dataSource = res.result
          })
          .finally(() => {
            that.spinning = false
          })
      },
      // å¯¼å‡ºåˆ°Excel
      handleExportToExcel() {
        document.querySelectorAll('table.import-table').forEach(element => {
          console.log('element', element.id)
          $(element).table2excel({
            exclude: '.noExl',
            name: 'Excel Document Name',
            filename: '真空热处理炉整体性能检测表-' + element.id,
            exclude_img: true,
            fileext: '.xls',
            exclude_links: true,
            exclude_inputs: false
          })
        })
      },
      handleCancel() {
        this.close()
      },
      close() {
        this.$emit('close')
        this.visible = false
        if (this.$refs.form) this.$refs.form.clearValidate()
      }
    }
  }
</script>
<style scoped lang="less">
  /deep/ .ant-modal {
    height: 90%;
    overflow: hidden;
    .ant-modal-content {
      height: 100%;
      display: flex;
      flex-direction: column;
      overflow: hidden;
      ::-webkit-scrollbar {
        width: 8px;
        height: 8px;
      }
      .ant-modal-body {
        flex: 1;
        overflow: auto;
      }
    }
  }
  .table-container:not(:last-child) {
    margin-bottom: 20px;
  }
  table {
    width: 100%;
    text-align: center;
    table-layout: fixed;
    td, th {
      border: 1px solid #000;
    }
    td.vertical-display {
      writing-mode: vertical-lr;
      letter-spacing: 5px;
      padding: 5px 0;
    }
  }
</style>
src/views/eam/repair/modules/EamProductHazardsBatchPrintModal.vue
@@ -108,17 +108,7 @@
      return {
        visible: false,
        spinning: false,
        dataSource: [
          {
            hfCode: 'HF-16548ASDSADA',
            equipmentName: '手打十点多',
            equipmentModel: '6500P',
            equipmentCode: '2125400',
            factoryName: '燃机厂',
            maintenanceDateFormatted: '2025å¹´5月20日'
          }
        ],
        dataSource: [],
        url: {
          list: '/eam/eamReportProductHazards/batchExport'
        }