From dbb30331f9fb339a099a438b2d3c6d8b99b55d23 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期一, 20 一月 2025 18:01:09 +0800 Subject: [PATCH] #打印预览 --- zy-asrs-admin/src/views/out/flat/index.vue | 189 +++++++++++++++++++++++++++++++++++++---------- 1 files changed, 148 insertions(+), 41 deletions(-) diff --git a/zy-asrs-admin/src/views/out/flat/index.vue b/zy-asrs-admin/src/views/out/flat/index.vue index 4ccc2a1..d556efe 100644 --- a/zy-asrs-admin/src/views/out/flat/index.vue +++ b/zy-asrs-admin/src/views/out/flat/index.vue @@ -1,59 +1,115 @@ <template> - <a-table :columns="columns" :data-source="datasource" bordered> + <div class="table-header"> + <div style="display: flex;padding: 10px;"> + <div style="margin-right: 10px;"> + <a-input v-model:value="searchParam.pickNo" + placeholder="璇疯緭鎷h揣鍗曠紪鍙�" + style="width: 200px;margin-right: 10px;"/> + <a-input v-model:value="searchParam.waveNo" placeholder="璇疯緭鍏ユ尝娆″彿" + style="width: 200px;" /> + <a-button @click="queryPickSheets" type="primary" style="margin-left: 35px">鏌ヨ</a-button> + </div> + </div> + + </div> + <a-table :columns="columns" + :data-source="datasource" bordered + :defaultExpandAllRows="false" + :row-selection="{ selectedRowKeys: state.selectedRowKeys, onChange: onSelectChange }" + :scroll="{y: columns.length * 140}" + style="margin: 5px" + > <template #bodyCell="{column, record, index}"> <template v-if="column.key === 'number'"> - {{index + 1}} + {{ index + 1 }} </template> <template v-if="column.key === 'operate'"> - <a-button @click="viewDetail(column)" type="link"> + <a-button @click="viewDetail(column, record)" type="link"> {{ "鏌ョ湅鏄庣粏" }} </a-button> - <a-button @click="showDeleteConfirm(record)" danger type="link">{{"鍒犻櫎"}}</a-button> + <a-button @click="handlePrint(column, record)" type="link">鎵撳嵃</a-button> + <a-button @click="showDeleteConfirm(record)" danger type="link">{{ "鍒犻櫎" }}</a-button> </template> <template v-if="column.key === 'status'"> - <a-tag :color="record.status === 1 ? 'green' : 'volcano'"> - {{record.status === 1 ? "姝e父" : "绂佺敤"}} - </a-tag> + <a-tag :color="record.status === 1 ? 'green' : 'volcano'"> + {{ record.status === 1 ? "姝e父" : "绂佺敤" }} + </a-tag> </template> </template> </a-table> - <a-modal ref="sheetDetl" v-model:open="show" :width="'80%'" title="鎷h揣鍗曟槑缁�" @ok="handleOk"> - <a-table :columns="childNodes" :data-source="childList"> - <template #bodyCell="{column, record, index}"> - <template v-if="column.key === 'number'"> - {{index + 1}} + <a-modal ref="sheetDetl" v-model:open="show" :width="'80%'" title="鎷h揣鍗曟槑缁�" @ok="handleOk" @cancel="cancel" + :okText="isPrint ? '鎵撳嵃' : '纭'" cancel-text="鍏抽棴"> + <div id="pcik-detl"> + <div class="component-header"> + <div> + <h3> + 鎷h揣鍗曞彿锛歿{ selectDetl.pickNo }} + </h3> + <h3> + 娉㈡锛歿{ selectDetl.waveNo }} + </h3> + </div> + <div class="qrcode"> + <a-qrcode :value="selectDetl.pickNo" :size="100" :bordered="false"/> + </div> + </div> + <a-table :columns="childNodes" + :data-source="childList" + bordered + :pagination="{hideOnSinglePage: true}" + > + <template #bodyCell="{column, record, index}"> + <template v-if="column.key === 'number'"> + {{ index + 1 }} + </template> + <template v-if="column.key === 'status'"> + <a-tag :color="record.status === 1 ? 'green' : 'volcano'"> + {{ record.status === 1 ? "姝e父" : "绂佺敤" }} + </a-tag> + </template> </template> - <template v-if="column.key === 'status'"> - <a-tag :color="record.status === 1 ? 'green' : 'volcano'"> - {{record.status === 1 ? "姝e父" : "绂佺敤"}} - </a-tag> - </template> - </template> - </a-table> + </a-table> + </div> </a-modal> </template> <script> import {post, get} from "@/utils/request.js"; import {message, Modal} from "ant-design-vue"; - import { createVNode } from 'vue'; - import {formatMessage} from "@/utils/localeUtils.js"; - import { ExclamationCircleOutlined } from '@ant-design/icons-vue'; + import {createVNode} from 'vue'; + import {ExclamationCircleOutlined} from '@ant-design/icons-vue'; + import printJS from 'print-js' + export default { name: "out-stock-flat", data() { return { + searchParam: { + pickNo: '', + waveNo:'' + }, + state: { + selectedRowKeys: [] + }, + searchInput: '', columns: [ - {key: 'number', title: '搴忓彿', dataIndex: 'number'}, - {key: 'pickNo', title: '鍗曞彿', dataIndex: 'pickNo'}, - {key: 'waveNo', title: '娉㈡鍙�', dataIndex: 'waveNo'}, - {key: 'anfme', title: '鏁伴噺', dataIndex: 'anfme'}, - {key: 'status', title: '鍗曟嵁鐘舵��', dataIndex: 'status'}, - {key: 'memo', title: '澶囨敞', dataIndex: ''}, - {key: 'createdTime', title: '鍒涘缓鏃堕棿', dataIndex: 'createdTime'}, - {key: 'updatedTime', title: '淇敼鏃堕棿', dataIndex: 'updatedTime'}, - {key: 'operate', title: '鎿嶄綔', dataIndex: 'operate'} + {key: 'number', title: '搴忓彿', dataIndex: 'number', align: 'center', width: '65px'}, + {key: 'pickNo', title: '鍗曞彿', dataIndex: 'pickNo', align: 'center', width: '205px'}, + {key: 'waveNo', title: '娉㈡鍙�', dataIndex: 'waveNo', align: 'center', width: '155px'}, + {key: 'anfme', title: '鏁伴噺', dataIndex: 'anfme', align: 'center', width: '85px'}, + {key: 'status', title: '鍗曟嵁鐘舵��', dataIndex: 'status', align: 'center', width: '105px'}, + {key: 'createdTime', title: '鍒涘缓鏃堕棿', dataIndex: 'createdTime', align: 'center', width: '185px'}, + {key: 'updatedTime', title: '淇敼鏃堕棿', dataIndex: 'updatedTime', align: 'center', width: '185px'}, + {key: 'memo', title: '澶囨敞', dataIndex: '', align: 'center'}, + { + key: 'operate', + title: '鎿嶄綔', + dataIndex: 'operate', + fixed: 'right', + align: 'center', + width: '155px' + } ], childNodes: [ {key: 'number', title: '搴忓彿', dataIndex: 'number'}, @@ -68,19 +124,53 @@ // {key: 'operate', title: '鎿嶄綔', dataIndex: 'operate'} ], datasource: [], - childList:[], + childList: [], show: false, + isPrint: false, + selectDetl: {}, } }, - mounted() { //鑾峰彇鎷h揣鍗曟暟鎹簮 this.getOutFlatSheet(); }, methods: { - showDeleteConfirm(record){ - let that = this + queryPickSheets() { + this.getOutFlatSheet() + }, + + handleOk() { + if (this.isPrint) { + printJS('pcik-detl', 'html') + } + }, + + cancel() { + this.isPrint = false + }, + onSelectChange(selectedRowKeys) { + state.selectedRowKeys = selectedRowKeys; + + }, + /** + * 鎵撳嵃 + */ + handlePrint(column, record) { + this.show = true + this.isPrint = true + this.selectDetl = record + this.getSheetDetl(record) + }, + /** + * 鎼滅储 + */ + onSearch() { + console.log(this) + }, + + showDeleteConfirm(record) { + let that = this Modal.confirm({ title: '鏄惁纭鍒犻櫎褰撳墠鎷h揣鍗�', icon: createVNode(ExclamationCircleOutlined), @@ -100,7 +190,7 @@ //鍒犻櫎褰撳墠琛� removeRow(record) { let that = this - get('/api/pick/flat/remove/' + record.id).then((resp)=>{ + get('/api/pick/flat/remove/' + record.id).then((resp) => { let result = resp.data; if (result.code == 200) { that.getOutFlatSheet() @@ -111,14 +201,15 @@ }) }, //鏌ョ湅鏄庣粏 - viewDetail(record) { - console.log(record) + viewDetail(column, record) { this.show = !this.show + this.isPrint = false + this.selectDetl = record this.getSheetDetl(record) }, getOutFlatSheet() { let that = this - post('/api/pick/flat/page',{page: {currnt: 1, size: 10}}).then((resp) => { + post('/api/pick/flat/page', {page: {currnt: 1, size: 10}, params: {pickNo: this.searchParam.pickNo, waveNo: this.searchParam.waveNo}}).then((resp) => { let result = resp.data; if (result.code == 200) { // message.success(formatMessage('page.add.success', '鎴愬姛')); @@ -129,8 +220,11 @@ }) }, getSheetDetl(record) { - let that = this - post('/api/pick/flat/detl/page',{page: {currnt: 1, size: 10}, params: {pickId: record.id}}).then((resp) => { + let that = this + post('/api/pick/flat/detl/page', { + page: {currnt: 1, size: 10}, + params: {pickId: record.id} + }).then((resp) => { let result = resp.data; if (result.code == 200) { // message.success(formatMessage('page.add.success', '鎴愬姛')); @@ -145,5 +239,18 @@ </script> <style scoped> + .component-header { + display: flex; + } + .component-header > div { + flex: 1; + } + + + .qrcode { + display: flex; + justify-content: flex-end; + margin-right: 30px; + } </style> \ No newline at end of file -- Gitblit v1.9.1