Browse Source

门禁/打印机

master
xuhuajiao 2 months ago
parent
commit
eed0b73361
  1. 10
      src/api/system/zkt.js
  2. 124
      src/views/archivesManage/archivesList/archivesAnjuan/index.vue
  3. 140
      src/views/archivesManage/caseManage/caseList/module/print.vue
  4. 10
      src/views/components/AccessDoor.vue

10
src/api/system/zkt.js

@ -62,4 +62,12 @@ export function FetchHikMinor(params) {
})
}
export default { add, FetchZKTDoorList, FetchInitZktParam, FetchRealTimeZKTLog, FetchInitHikDoorLog, FetchHikMajor, FetchHikMinor }
export function FetchInitRealTimeHikDoorLog(params) {
return request({
url: 'api/securitydoor/initRealTimeHikDoorLog',
method: 'get',
params
})
}
export default { add, FetchZKTDoorList, FetchInitZktParam, FetchRealTimeZKTLog, FetchInitHikDoorLog, FetchHikMajor, FetchHikMinor, FetchInitRealTimeHikDoorLog }

124
src/views/archivesManage/archivesList/archivesAnjuan/index.vue

@ -123,24 +123,19 @@
</el-table-column>
<el-table-column v-if="!recycleMain.isRecycle && selectedCategory.isType !== 3" label="标签" width="100" align="center" :fixed="fixedStatusBar ? false : 'right' ">
<template slot-scope="scope">
<!-- 未绑 / 已绑 -->
<span :class="['row-state', 'row-binding', scope.row.tid ? 'state-active' : '' ]">{{ scope.row.tid ? '已绑': '未绑' }}</span>
</template>
</el-table-column>
<el-table-column v-if="!recycleMain.isRecycle" label="装盒" width="100" align="center" :fixed="fixedStatusBar ? false : 'right' ">
<!-- state-active 已装/已入/已借/已绑 -->
<template slot-scope="scope">
<!-- 未装 / 已装 -->
<span :class="['row-state', 'row-packing', scope.row.case_no ? 'state-active' : '' ]">{{ scope.row.case_no ? '已装': '未装' }}</span>
</template>
</el-table-column>
<el-table-column v-if="!recycleMain.isRecycle" label="入库" width="100" align="center" :fixed="fixedStatusBar ? false : 'right' ">
<template slot-scope="scope">
<!-- is_storage 为空的情况下即没装盒 / 0 未入 / 1 待入 / 2 已入 / 3 待出-->
<span :class="['row-state', 'row-warehousing', (storageTxt[scope.$index] === '已入' )? 'state-active' : '' ]">{{ storageTxt[scope.$index] }}</span>
</template>
</el-table-column>
<!-- is_borrow 4 已归还 / 为空 - 未加入待借列表 - 在库 / 2 待借阅在待借列表/借出确认列表 - 待借 / 1待登记 - 不可借- 表示 / 3 待归还 - 已借 -->
<el-table-column v-if="!recycleMain.isRecycle && selectedCategory.isType !== 3" label="借阅" width="100" align="center" :fixed="fixedStatusBar ? false : 'right' ">
<template slot-scope="scope">
<span :class="['row-state', 'row-lending', (borrowTxt[scope.$index] === '已借' )? 'state-active' : '' ]">{{ borrowTxt[scope.$index] }}</span>
@ -193,7 +188,8 @@
</div>
</el-dialog>
<el-dialog title="标签打印" :visible.sync="printDialogVisible" width="800px">
<!-- 打印弹窗优化后 -->
<el-dialog title="标签打印" :visible.sync="printDialogVisible" width="800px" @closed="handlePrintDialogClosed">
<span class="dialog-right-top" />
<span class="dialog-left-bottom" />
<div class="setting-dialog">
@ -315,17 +311,19 @@ export default {
tableDisplayFields(val) {
this.doLayout()
},
isProject: function(newValue, oldValue) {
},
isHasProject: function(newValue, oldValue) {
},
fixedStatusBar: function(newValue, oldValue) {
},
projectSelection: function(newValue, oldValue) {
//
printDialogVisible(newVal) {
if (newVal && this.$refs.printComponent) {
//
this.$refs.printComponent.connectprinter()
}
},
isProject: function(newValue, oldValue) {},
isHasProject: function(newValue, oldValue) {},
fixedStatusBar: function(newValue, oldValue) {},
projectSelection: function(newValue, oldValue) {},
smartQuery: {
handler(n, o) {
},
handler(n, o) {},
deep: true
}
},
@ -353,51 +351,41 @@ export default {
}
this.query.queryType = this.stateOptions[0].value
},
mounted() {
},
mounted() {},
methods: {
//
//
onPrint(res) {
console.log('打印条码', res.length)
this.codeLoading = true
if (res && res.length !== 0) {
//
this.printLabelList = res.map(item => {
return {
lsfFileVarList: [
{
lsfFileVar: {
varname: 'barcode', //
// varvalue: '' + item.barcode
// varvalue: '\r\n10000001'
// varvalue: '15000000001'
varvalue: item.archive_no
varname: 'barcode',
varvalue: item.archive_no || ''
}
},
{
lsfFileVar: {
varname: 'title',
// varvalue: '' + item.title
// varvalue: '\r\n'
// varvalue: ''
varvalue: item.maintitle
varvalue: item.maintitle || ''
}
},
{
lsfFileVar: {
varname: 'nativePlace',
// varvalue: '\r\n'
// varvalue: ''
varvalue: item.native_place
varvalue: item.native_place || ''
}
}
]
}
})
//
// props
this.printDialogVisible = true
this.$nextTick(() => {
this.$refs.printComponent.connectprinter()
})
this.codeLoading = false
} else {
this.$message({
@ -408,44 +396,81 @@ export default {
}
},
//
handlePrintDialogClosed() {
if (this.$refs.printComponent) {
// WebSocket
if (this.$refs.printComponent.wsocket) {
this.$refs.printComponent.wsocket.close()
this.$refs.printComponent.wsocket = null
}
//
this.$refs.printComponent.isPrinting = false
this.$refs.printComponent.hasSentPrintCmd = false
this.$refs.printComponent.numberPrinted = 0
}
//
this.printLabelList = []
},
// /query
resetQuery() {
this.query = {
queryType: '',
queryTitle: '',
archiveNo: '',
archiveCtgNo: '',
responsibleby: '',
docNo: '',
documentNo: '',
barcode: '',
folderLocation: '',
tempNo: ''
}
if (this.selectedCategory.isType === 5) {
this.queryOption = [
{ value: 'queryTitle', label: '姓名' },
{ value: 'archiveNo', label: '编号' }
// { value: 'responsibleby', label: '' },
// { value: 'docNo', label: ' ' },
// { value: 'barcode', label: '' },
// { value: 'folderLocation', label: '' },
// { value: 'tempNo', label: '' }
]
} else {
this.queryOption = [
{ value: 'queryTitle', label: '姓名' },
{ value: 'archiveNo', label: '档号' }
// { value: 'archiveCtgNo', label: '' },
// { value: 'barcode', label: '' },
// { value: 'folderLocation', label: '' }
]
}
this.anjuanInputSelect = this.queryOption[0].value
},
//
getTableDisplayFields(type) {
this.getTableItemCommon(type)
},
//
doLayout() {
this.$nextTick(() => {
this.$refs.table?.doLayout()
})
},
//
handleSizeChange(size) {
this.page.size = size
this.page.page = 1
this.getListCommon('anjuanData', 'anjuanTableHeight', 1)
this.$nextTick(() => {
this.selections = this.$refs.table.selection
this.selections = this.$refs.table?.selection || []
})
},
// list
//
handleCurrentPage(page) {
this.page.page = page
this.getListCommon('anjuanData', 'anjuanTableHeight', 1)
},
//
getTableList() {
// this.query.queryType = null
this.query.queryTitle = ''
this.query.archiveNo = ''
this.query.archiveCtgNo = ''
@ -555,6 +580,7 @@ export default {
}
this.getTotalSumAll()
},
//
handleLending() {
const index = this.selections.findIndex((item) => item.is_storage === 0 || item.is_storage === '' || item.is_storage === 1)
@ -572,9 +598,7 @@ export default {
this.$message.error('当前档案已借出,还未归还')
return false
}
const params = this.selections.map(item => {
return item.id
})
const params = this.selections.map(item => item.id)
FetchIsExistBorrow(params).then(data => {
if (data.length === 0) {
this.lengingVisible = true
@ -587,9 +611,7 @@ export default {
},
//
handleLendingConfirm() {
const params = this.selections.map(item => {
return item.id
})
const params = this.selections.map(item => item.id)
FetchAddArchivesWaitRegister(params).then(data => {
if (data.length !== 0) {
this.$message.success('借阅成功')

140
src/views/archivesManage/caseManage/caseList/module/print.vue

@ -39,23 +39,31 @@ export default {
},
Operate: 'print',
//
lsfFilePath: '/home/it0/zmin/新标签01.lsf',
lsfFilePath: '/home/it0/mb/mb01.lsf',
//
labels: []
},
printerstatus: '',
pvimg:
'data:image/png;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCADsAk8DASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//Z',
'data:image/png;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCADsAk8DASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//Z',
numberPrintneed: 1,
numberPrinted: 0
numberPrinted: 0,
//
isPrinting: false,
//
cachedPrintList: [],
//
hasSentPrintCmd: false
}
},
watch: {
printList: {
immediate: true,
handler(newVal) {
if (newVal && newVal.length > 0) {
this.jsonstring.labels = newVal
// printList
if (newVal && newVal.length > 0 && JSON.stringify(newVal) !== JSON.stringify(this.cachedPrintList)) {
this.cachedPrintList = [...newVal]
this.jsonstring.labels = [...newVal]
this.numberPrintneed = newVal.length //
}
}
@ -68,7 +76,9 @@ export default {
this.serverIP = ZMINConfig.ip
this.serverPort = ZMINConfig.port
this.jsonstring.lsfFilePath = ZMINConfig.filePath
this.jsonstring.labels = this.printList
//
this.cachedPrintList = [...this.printList]
this.jsonstring.labels = [...this.printList]
console.log('this.jsonstring.labels', this.jsonstring.labels)
},
methods: {
@ -77,18 +87,6 @@ export default {
// WebSocket
const wsserver = `ws://${this.serverIP}:${this.serverPort}/`
// WebSocket
// if ('WebSocket' in window) {
// // WebSocket
// this.wsocket = new WebSocket(wsserver)
// } else if ('MozWebSocket' in window) {
// // Firefox
// this.wsocket = new MozWebSocket(wsserver)
// } else {
// // WebSocket
// this.$message.error('')
// return
// }
//
if ('WebSocket' in window) {
this.wsocket = new WebSocket(wsserver)
@ -107,12 +105,20 @@ export default {
this.wsocket.onclose = () => {
//
this.printerstatus = '与打印服务断开连接!'
//
this.isPrinting = false
this.hasSentPrintCmd = false
this.numberPrinted = 0
}
// WebSocket
this.wsocket.onerror = () => {
//
this.$message.error('数据传输错误,请检查打印服务是否已经运行!')
//
this.isPrinting = false
this.hasSentPrintCmd = false
this.numberPrinted = 0
}
// WebSocket
@ -142,6 +148,10 @@ export default {
//
this.printerstatus = `打印机状态异常,错误代码:${printerstatus}`
this.$message.error(`打印机状态异常,错误代码:${printerstatus}`)
//
this.isPrinting = false
this.hasSentPrintCmd = false
this.numberPrinted = 0
return
}
@ -149,25 +159,39 @@ export default {
this.printerstatus = `打印机状态异常:${statusmsg}`
//
this.$message.error(`打印机状态异常:${statusmsg}`)
//
this.isPrinting = false
this.hasSentPrintCmd = false
this.numberPrinted = 0
return
} else {
// 0
if (this.numberPrinted < this.numberPrintneed) {
//
if (!this.hasSentPrintCmd) {
// 1
this.printlabel()
this.hasSentPrintCmd = true
} else {
//
this.$message.success(`已打印完 ${this.numberPrinted} 张标签。`)
this.numberPrinted = 0
//
this.printerstatus = '打印机就绪,等待打印完成...'
}
}
} else if (receivecontent.indexOf('打印完成') === 0) {
// ""
// ""
this.numberPrinted++
//
this.printerstatus = `${this.numberPrinted} 张标签打印完成。`
//
if (this.numberPrinted < this.numberPrintneed) { this.wsocket.send('ZM_GetPrinterStatus_USB|500') }
//
if (this.numberPrinted >= this.numberPrintneed) {
this.$message.success(`已打印完 ${this.numberPrintneed} 张标签(忽略后端重复回调)。`)
//
this.isPrinting = false
this.hasSentPrintCmd = false
this.numberPrinted = 0
this.jsonstring.labels = [...this.cachedPrintList]
return //
}
//
} else if (receivecontent.indexOf('ZM_PrintLabel_Preview:') === 0) {
// "ZM_PrintLabel_Preview:"
const imagebase64string = receivecontent.replace(
@ -191,39 +215,91 @@ export default {
this.wsocket.close()
this.wsocket = null
}
//
this.isPrinting = false
this.hasSentPrintCmd = false
this.numberPrinted = 0
this.connection()
setTimeout(() => {
//
this.wsocket.send('ZM_GetPrinterNameAndSN')
//
if (this.wsocket && this.wsocket.readyState === WebSocket.OPEN) {
this.wsocket.send('ZM_GetPrinterNameAndSN')
}
}, 500)
},
//
printstart() {
if (this.wsocket == null) {
this.$message.error('请先连接打印服务')
//
if (this.wsocket == null || this.wsocket.readyState !== WebSocket.OPEN) {
this.$message.error('请先连接打印服务并确保连接正常')
return
}
//
if (this.cachedPrintList.length === 0) {
this.$message.warning('暂无需要打印的标签数据')
return
}
//
if (this.isPrinting) {
this.$message.warning('当前正在打印,请稍后再操作')
return
}
//
this.isPrinting = true
this.hasSentPrintCmd = false
this.numberPrinted = 0
this.jsonstring.labels = [...this.cachedPrintList]
this.numberPrintneed = this.cachedPrintList.length
//
this.wsocket.send('ZM_GetPrinterStatus_USB|500')
},
//
printlabel() {
//
if (!this.isPrinting || this.hasSentPrintCmd) return
this.jsonstring.Operate = 'print'
const newjsonstring = JSON.stringify(this.jsonstring)
console.log('标签打印newjsonstring', newjsonstring)
this.wsocket.send(newjsonstring)
//
if (this.wsocket && this.wsocket.readyState === WebSocket.OPEN) {
this.wsocket.send(newjsonstring)
}
},
//
previewlabel() {
//
if (this.wsocket == null || this.wsocket.readyState !== WebSocket.OPEN) {
this.$message.error('请先连接打印服务并确保连接正常')
return
}
//
if (this.cachedPrintList.length === 0) {
this.$message.warning('暂无需要预览的标签数据')
return
}
this.jsonstring.Operate = 'preview'
//
this.jsonstring.labels = [...this.cachedPrintList]
const newjsonstring = JSON.stringify(this.jsonstring)
console.log('标签预览this.jsonstring', this.jsonstring)
console.log('标签预览newjsonstring', newjsonstring)
this.wsocket.send(newjsonstring)
}
},
// WebSocket
beforeUnmount() {
if (this.wsocket != null) {
this.wsocket.close()
this.wsocket = null
}
this.isPrinting = false
this.hasSentPrintCmd = false
this.numberPrinted = 0
}
}
</script>

10
src/views/components/AccessDoor.vue

@ -24,7 +24,8 @@
</template>
<script>
// import { accessDoor } from '@/api/home/accessDoor/accessDoor'
import { FetchInitHikDoorLog } from '@/api/system/zkt'
// FetchInitHikDoorLog,
import { FetchInitRealTimeHikDoorLog } from '@/api/system/zkt'
import { mapGetters } from 'vuex'
export default {
name: 'AccessDoor',
@ -135,11 +136,12 @@ export default {
}
},
getAccessdoor() {
FetchInitHikDoorLog({ page: 0, size: this.size }).then((data) => {
// page: 0,
FetchInitRealTimeHikDoorLog({ size: this.size }).then((data) => {
this.tableData = []
if (data.content && data.content.length > 0) {
if (data && data.length > 0) {
// this.tableData.splice(0, data.content.length, ...data.content)
this.tableData = data.content
this.tableData = data
} else {
this.tableData = []
}

Loading…
Cancel
Save