1、批次管理新增申城数控加工程序确认表功能并实现打印功能
2、调整批次管理新增/修改信息弹窗样式
3、删除设备监控页面异常反馈功能
4、车间看板详情弹窗与设备监控页面详情弹窗保持一致
| | |
| | | <template> |
| | | <div style="flex: 0.25;margin-right: 10px"> |
| | | <a-table :columns="columns" :data-source="dataSource" bordered :pagination="false" |
| | | <a-table :columns="columns" :data-source="dataSource" bordered :pagination="false" :loading="loading" |
| | | :scroll="{y:265}" :customRow="customRow" :size="size" rowKey="id" @change="handleTableChange"> |
| | | |
| | | </a-table> |
| | |
| | | console.log('currentLevelInfo', this.currentTreeNodeInfo) |
| | | const { id, type } = this.currentTreeNodeInfo |
| | | this.queryParam = Object.assign({}, { attributionId: id, attributionType: type }) |
| | | this.dataSource = [] |
| | | this.loadData() |
| | | }, |
| | | |
| | |
| | | </a-col> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="å¾ç" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="picture"> |
| | | <j-image-upload isMultiple :number="1" v-model="model.picture" ></j-image-upload> |
| | | <j-image-upload :number="1" v-model="model.picture" ></j-image-upload> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | <a-col :span="24"> |
| | |
| | | |
| | | <a-divider type="vertical" /> |
| | | |
| | | <a @click="handleDetail(record)">çææ°æ§å å·¥ç¨åºç¡®è®¤è¡¨</a> |
| | | <a @click="handleOpenPrintModal(record)">çææ°æ§å å·¥ç¨åºç¡®è®¤è¡¨</a> |
| | | |
| | | <a-divider type="vertical" /> |
| | | |
| | |
| | | <guide-card-batch-modal ref="modalForm" @ok="modalFormOk"></guide-card-batch-modal> |
| | | |
| | | <GuideCardBatchModalDrawer ref="modalEditForm" @ok="modalFormOk"></GuideCardBatchModalDrawer> |
| | | |
| | | <guide-card-print-modal ref="guideCardPrintModal"/> |
| | | </a-card> |
| | | </template> |
| | | |
| | |
| | | import GuideCardBatchModal from './GuideCardBatchModal' |
| | | import GuideCardBatchModalDrawer from './GuideCardBatchModal.Style#Drawer.vue' |
| | | import { getAction } from '@api/manage' |
| | | import GuideCardPrintModal from './GuideCardPrintModal' |
| | | |
| | | export default { |
| | | name: 'GuideCardBatchList', |
| | |
| | | } |
| | | }, |
| | | components: { |
| | | GuideCardPrintModal, |
| | | GuideCardBatchModal, |
| | | GuideCardBatchModalDrawer |
| | | }, |
| | |
| | | this.$refs.modalEditForm.title = "ä¸ä¼ /ä¿®æ¹ä¿¡æ¯"; |
| | | this.$refs.modalEditForm.disableSubmit = false; |
| | | }, |
| | | |
| | | handleOpenPrintModal(record){ |
| | | this.$refs.guideCardPrintModal.visible = true |
| | | this.$refs.guideCardPrintModal.detail = Object.assign({},record) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | :visible="visible"> |
| | | <GuideCardBatchEditForm ref="realForm" @ok="submitCallback" :disabled="disableSubmit" normal></GuideCardBatchEditForm> |
| | | <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> |
| | | <a-space> |
| | | <a-button @click="handleCancel">å
³é</a-button> |
| | | <a-button v-if="!disableSubmit" @click="handleOk" type="primary">æäº¤</a-button> |
| | | </a-space> |
| | | </div> |
| | | </a-drawer> |
| | | </template> |
| | |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | /** Buttonæé®é´è· */ |
| | | .ant-btn { |
| | | margin-left: 30px; |
| | | margin-bottom: 30px; |
| | | float: right; |
| | | } |
| | | .drawer-footer{ |
| | | position: absolute; |
| | | bottom: -8px; |
| | | bottom: 0; |
| | | width: 100%; |
| | | border-top: 1px solid #e8e8e8; |
| | | padding: 10px 16px; |
| | | text-align: right; |
| | | left: 0; |
| | | background: #fff; |
| | | border-radius: 0 0 2px 2px; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <a-modal title="æ°æ§å å·¥å å·¥ç¨åºç¡®è®¤è¡¨" :width="1000" :visible="visible" @cancel="handleCancel" centered> |
| | | |
| | | <div id="table"> |
| | | <div class="table-header"> |
| | | <h3>æ°æ§å å·¥ç¨åºç¡®è®¤è¡¨</h3> |
| | | <div> |
| | | <div>åä½ï¼<span>æºå ä¸å¿</span></div> |
| | | <div>ç¼å·ï¼<span>25-C140-PST-293</span></div> |
| | | </div> |
| | | </div> |
| | | |
| | | <table border="1"> |
| | | <tr> |
| | | <th colspan="2">ç¨åºæä»¶å</th> |
| | | <td colspan="9">TY9F-11-2507-002-TY9F1W0130-30-3</td> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <th colspan="2">é¶ä»¶å¾å·</th> |
| | | <td colspan="4">TY9F-11-2507-002-TY9F1W0130</td> |
| | | <th>é¶ä»¶åç§°</th> |
| | | <td colspan="4">转æ¥å¤´</td> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <th colspan="2">é¶ä»¶ææ</th> |
| | | <td colspan="4">颿£</td> |
| | | <th>夹å
·</th> |
| | | <td colspan="4">{{detail.fixtureInformation}}</td> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <th colspan="2">å·¥åºï¼å·¥æ¥å·ï¼</th> |
| | | <td colspan="2">30-3</td> |
| | | <th>å å·¥æ¹æ¬¡</th> |
| | | <td>S2501</td> |
| | | <th>å å·¥æ°é</th> |
| | | <td colspan="2">20</td> |
| | | <th>å 工设å¤</th> |
| | | <td>3140123</td> |
| | | </tr> |
| | | |
| | | <tr style="height: 500px"> |
| | | <td colspan="11"> |
| | | <img :src="getImageUrl(detail.picture)" width="300" height="300"/> |
| | | </td> |
| | | </tr> |
| | | |
| | | <tr style="height: 100px;"> |
| | | <th colspan="2" style="text-align: left">说æ</th> |
| | | <td colspan="9" style="text-align: left;white-space: pre-wrap" v-html="detail.remake"></td> |
| | | </tr> |
| | | |
| | | <tr> |
| | | <th colspan="2">ç¼åæ¥æ</th> |
| | | <td colspan="2">å¼ ä¸/2025-4-16</td> |
| | | <th>å å·¥æ¹æ¬¡</th> |
| | | <td colspan="2">æå/2025-4-18</td> |
| | | <th colspan="2">æä½è
/馿£æ¥æ</th> |
| | | <td colspan="2">èµµäº/2025-4-18</td> |
| | | </tr> |
| | | |
| | | <tr style="height: 70px"> |
| | | <th colspan="7">æ ¹æ®é¦ä»¶æ£éªæ
åµï¼åæè¯¥ç¨åºç¨äºæ¬æ¹æ¬¡ç产ï¼</th> |
| | | <th colspan="2">审æ¹/æ¥æ</th> |
| | | <td colspan="2">çå
/2025-4-20</td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | |
| | | <template slot="footer"> |
| | | <a-button type="primary" v-print="'#table'">æå°</a-button> |
| | | </template> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: 'GuideCardPrintModal', |
| | | data() { |
| | | return { |
| | | visible: false, |
| | | detail: {} |
| | | } |
| | | }, |
| | | methods: { |
| | | getImageUrl(imgSrcSuffix) { |
| | | return `${window._CONFIG['domianURL']}/${imgSrcSuffix}` |
| | | }, |
| | | |
| | | handleCancel() { |
| | | this.visible = false |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scopedl lang="less"> |
| | | .table-header { |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | |
| | | > div { |
| | | width: 100%; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | padding: 10px 5px; |
| | | } |
| | | } |
| | | |
| | | table { |
| | | width: 100%; |
| | | table-layout: fixed; |
| | | text-align: center; |
| | | font-size: 12px; |
| | | |
| | | th, td { |
| | | padding: 10px 5px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | import VueDragResize from 'vue-drag-resize' |
| | | import api from '@/api/mdc' |
| | | import { getFileAccessHttpUrl } from '@/api/manage' |
| | | import EquipmentDetailModal from './modules/WorkshopSignage/EquipmentDetailModal' |
| | | import EquipmentDetailModal from './modules/DeviceBaseInfo/EquipmentDetailModal.vue' |
| | | import { message } from 'ant-design-vue' |
| | | |
| | | message.config({ |
| | |
| | | |
| | | <a-table ref="table" bordered size="middle" rowKey="equipmentId" :columns="columns" :dataSource="dataSource" |
| | | :pagination="false" :loading="loading" :scroll="{x:'max-content',y:scrollY}"> |
| | | <template slot="equipmentId" slot-scope="text, record"> |
| | | <div :style="{color:record.equipmentStatus!==0?'#f00':null}">{{text}}</div> |
| | | </template> |
| | | <template slot="equipmentName" slot-scope="text, record"> |
| | | <div :style="{color:record.equipmentStatus!==0?'#f00':null}">{{text}}</div> |
| | | </template> |
| | | <template slot="oporationDict" slot-scope="text, record"> |
| | | <div :style="{color:record.equipmentStatus!==0?'#f00':null}">{{text}}</div> |
| | | </template> |
| | | <!--<template slot="equipmentId" slot-scope="text, record">--> |
| | | <!--<div :style="{color:record.equipmentStatus!==0?'#f00':null}">{{text}}</div>--> |
| | | <!--</template>--> |
| | | <!--<template slot="equipmentName" slot-scope="text, record">--> |
| | | <!--<div :style="{color:record.equipmentStatus!==0?'#f00':null}">{{text}}</div>--> |
| | | <!--</template>--> |
| | | <!--<template slot="oporationDict" slot-scope="text, record">--> |
| | | <!--<div :style="{color:record.equipmentStatus!==0?'#f00':null}">{{text}}</div>--> |
| | | <!--</template>--> |
| | | <template slot="equipmentStatus" slot-scope="text"> |
| | | <div :style="{color:text!==0?'#f00':null}">{{text===0?'æ£å¸¸':'å¼å¸¸'}}</div> |
| | | <div>{{text===0?'æ£å¸¸':'å¼å¸¸'}}</div> |
| | | </template> |
| | | <template slot="collecttime" slot-scope="text, record"> |
| | | <div :style="{color:record.equipmentStatus!==0?'#f00':null}">{{text}}</div> |
| | | </template> |
| | | <template slot="action" slot-scope="text, record"> |
| | | <a-popconfirm title="ç¡®å®åé¦å?" @confirm="$emit('editEquipmentStatus',record)" v-has="'deiveBaseInfo:responseStatus'"> |
| | | <a>ç¶æåé¦</a> |
| | | </a-popconfirm> |
| | | </template> |
| | | <!--<template slot="collecttime" slot-scope="text, record">--> |
| | | <!--<div :style="{color:record.equipmentStatus!==0?'#f00':null}">{{text}}</div>--> |
| | | <!--</template>--> |
| | | <!--<template slot="action" slot-scope="text, record">--> |
| | | <!--<a-popconfirm title="ç¡®å®åé¦å?" @confirm="$emit('editEquipmentStatus',record)" v-has="'deiveBaseInfo:responseStatus'">--> |
| | | <!--<a>ç¶æåé¦</a>--> |
| | | <!--</a-popconfirm>--> |
| | | <!--</template>--> |
| | | </a-table> |
| | | |
| | | </div> |
| | |
| | | data() { |
| | | return { |
| | | loading:false, |
| | | url: { |
| | | |
| | | }, |
| | | url: {}, |
| | | columns: [ |
| | | { |
| | | title: '设å¤ID', |
| | | align: "center", |
| | | align: 'center', |
| | | dataIndex: 'equipmentId', |
| | | scopedSlots: {customRender: 'equipmentId'}, |
| | | width:210 |
| | | }, |
| | | { |
| | | title: '设å¤åç§°', |
| | | align: "center", |
| | | align: 'center', |
| | | dataIndex: 'equipmentName', |
| | | scopedSlots: {customRender: 'equipmentName'}, |
| | | width:300 |
| | | }, |
| | | { |
| | | title: 'ç¶æ', |
| | | align: "center", |
| | | align: 'center', |
| | | dataIndex: 'oporationDict', |
| | | scopedSlots: {customRender: 'oporationDict'}, |
| | | width:200 |
| | | }, |
| | | { |
| | | title: '设å¤å¼å¸¸', |
| | | align: "center", |
| | | align: 'center', |
| | | dataIndex: 'equipmentStatus', |
| | | scopedSlots: {customRender: 'equipmentStatus'}, |
| | | width:200 |
| | | }, |
| | | { |
| | | title: 'ééæ¶é´', |
| | | align: "center", |
| | | align: 'center', |
| | | dataIndex: 'collecttime', |
| | | defaultSortOrder:'descend', |
| | | sorter: (a, b) => {return a.collecttime>b.collecttime?1:-1}, |
| | | scopedSlots: {customRender: 'collecttime'}, |
| | | sorter: (a, b) => { |
| | | return a.collecttime > b.collecttime ? 1 : -1 |
| | | }, |
| | | width:350 |
| | | }, |
| | | { |
| | | title: 'æä½', |
| | | dataIndex: 'action', |
| | | scopedSlots: {customRender: 'action'}, |
| | | align: "center", |
| | | width: 150, |
| | | fixed:'right' |
| | | } |
| | | // { |
| | | // title: 'æä½', |
| | | // dataIndex: 'action', |
| | | // scopedSlots: {customRender: 'action'}, |
| | | // align: "center", |
| | | // width: 150, |
| | | // fixed:'right' |
| | | // } |
| | | ], |
| | | scrollY:465, |
| | | scrollY: 465 |
| | | } |
| | | }, |
| | | props: { dataSource: { |
| | | props: { |
| | | dataSource: { |
| | | type: Array, |
| | | required: true, |
| | | default: [] |
| | | } }, |
| | | watch: { |
| | | } |
| | | }, |
| | | watch: {}, |
| | | methods: { |
| | | handleWindowResize(){ |
| | | const boxHeight = +window.getComputedStyle(document.getElementById('DeviceList')).height.slice(0,-2) |
| | | const tableHeadHeight = +window.getComputedStyle(document.querySelector('.ant-table-thead th')).height.slice(0,-2) |
| | | this.scrollY = boxHeight - tableHeadHeight |
| | | }, |
| | | } |
| | | }, |
| | | mounted(){ |
| | | window.addEventListener('resize',this.handleWindowResize) |
| | | this.handleWindowResize() |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped> |
| | |
| | | height: 640px!important; |
| | | } |
| | | } |
| | | |
| | | @media screen and (min-width: 1680px) and (max-width: 1920px){ |
| | | .equipmentList{ |
| | | height: 640px!important; |
| | | } |
| | | } |
| | | |
| | | @media screen and (min-width: 1400px) and (max-width: 1680px){ |
| | | .equipmentList{ |
| | | height: 493px!important; |
| | | } |
| | | } |
| | | |
| | | @media screen and (min-width: 1280px) and (max-width: 1400px){ |
| | | .equipmentList{ |
| | | height: 493px!important; |
| | | } |
| | | } |
| | | |
| | | @media screen and (max-width: 1280px){ |
| | | .equipmentList{ |
| | | height: 394px!important; |