diff --git a/dist-electron/main.js b/dist-electron/main.js index 6a09f94..e02558a 100644 --- a/dist-electron/main.js +++ b/dist-electron/main.js @@ -122,6 +122,49 @@ electron.app.whenReady().then(() => { } }); }); + const tagPrintWin = new electron.BrowserWindow({ + show: true, + width: 320, + height: 240, + webPreferences: { + nodeIntegration: true, + contextIsolation: false + } + }); + if (process.env.VITE_DEV_SERVER_URL) { + tagPrintWin.loadFile(path.join(__dirname, "../public/tag_print.html")); + } else { + tagPrintWin.loadFile(path.resolve(__dirname, "../dist/tag_print.html")); + } + electron.ipcMain.on("printerTagSync", (event, arg) => { + tagPrintWin.webContents.send("getParams", arg); + }); + electron.ipcMain.on("printTagStart", (event, arg) => { + console.log(arg); + const _parmas = JSON.parse(arg); + let name = _parmas.deviceName; + tagPrintWin.webContents.print({ + silent: true, + deviceName: name, + pageSize: { + width: 4e4, + height: 3e4 + }, + scaleFactor: 80, + landscape: false, + margins: { + marginType: "none", + top: 0, + bottom: 0, + left: 0, + right: 0 + }, + dpi: { + horizontal: 203, + vertical: 203 + } + }); + }); }); electron.app.on("window-all-closed", () => { if (process.platform !== "darwin") diff --git a/electron/main.js b/electron/main.js index 0682313..a843400 100644 --- a/electron/main.js +++ b/electron/main.js @@ -1,11 +1,6 @@ import path from "path"; import { app, BrowserWindow, ipcMain } from "electron"; -// import SerialPort from "serialport"; - -// SerialPort.list().then( -// (ports) => ports.forEach(console.log), -// (err) => console.error(err) -// ); +// const SerialPort = require("serialport"); let win; app.whenReady().then(() => { @@ -52,6 +47,16 @@ app.whenReady().then(() => { }); }); + // ipcMain.on("getSerialPort", () => { + // SerialPort.SerialPort.list().then( + // (ports) => { + // console.log(ports); + // win.webContents.send("seriaportList", ports); + // }, + // (err) => console.error(err) + // ); + // }); + // 创建打印小票子窗口 const printWin = new BrowserWindow({ show: false, @@ -156,6 +161,58 @@ app.whenReady().then(() => { }, }); }); + + // 标签小票的窗口 + const tagPrintWin = new BrowserWindow({ + show: true, + width: 320, + height: 240, + webPreferences: { + nodeIntegration: true, + contextIsolation: false, + }, + }); + + if (process.env.VITE_DEV_SERVER_URL) { + // 加载打印的html文件 + tagPrintWin.loadFile(path.join(__dirname, "../public/tag_print.html")); + } else { + tagPrintWin.loadFile(path.resolve(__dirname, "../dist/tag_print.html")); // 打包后使用文件路径访问应用 + } + + // 接收渲染进程发送的数据 + ipcMain.on("printerTagSync", (event, arg) => { + tagPrintWin.webContents.send("getParams", arg); + }); + + // 执行标签小票的打印操作 + ipcMain.on("printTagStart", (event, arg) => { + console.log(arg); + const _parmas = JSON.parse(arg); + // console.log(_parmas) + let name = _parmas.deviceName; + tagPrintWin.webContents.print({ + silent: true, + deviceName: name, + pageSize: { + width: 40000, + height: 30000, + }, + scaleFactor: 80, + landscape: false, + margins: { + marginType: "none", + top: 0, + bottom: 0, + left: 0, + right: 0, + }, + dpi: { + horizontal: 203, + vertical: 203, + }, + }); + }); }); app.on("window-all-closed", () => { diff --git a/package.json b/package.json index 9c0b110..c19be2d 100644 --- a/package.json +++ b/package.json @@ -1,73 +1,73 @@ { - "name": "vite-electron", - "private": true, - "version": "1.2.16", - "main": "dist-electron/main.js", - "scripts": { - "dev": "chcp 65001 && vite", - "build": "node ./addVersion.js && vite build && electron-builder", - "preview": "vite preview", - "build:win": "node ./addVersion.js && vite build && electron-builder --w" - }, - "dependencies": { - "@element-plus/icons-vue": "^2.3.1", - "axios": "^1.6.2", - "dayjs": "^1.11.10", - "electron-pos-printer": "^1.3.6", - "electron-pos-printer-vue": "^1.0.9", - "element-plus": "^2.4.3", - "lodash": "^4.17.21", - "pinia": "^2.1.7", - "serialport": "^12.0.0", - "swiper": "^11.1.1", - "vue": "^3.3.8", - "vue-router": "^4.2.5" - }, - "devDependencies": { - "@vitejs/plugin-vue": "^4.5.0", - "electron": "^28.2.3", - "electron-builder": "^24.13.3", - "electron-rebuild": "^3.2.9", - "path": "^0.12.7", - "sass": "^1.69.5", - "sass-loader": "^13.3.2", - "tree-kill": "^1.2.2", - "vite": "^5.0.0", - "vite-plugin-electron": "^0.15.4", - "vite-plugin-electron-renderer": "^0.14.5" - }, - "build": { - "appId": "com.cashierdesktop.app", - "productName": "银收客", - "asar": true, - "files": [ - "./dist/**/*", - "./dist-electron/**/*" - ], - "directories": { - "buildResources": "build", - "output": "release" - }, - "win": { - "icon": "./public/logo.ico", - "target": [ - { - "target": "nsis", - "arch": [ - "ia32" - ] - } - ] - }, - "nsis": { - "oneClick": false, - "allowElevation": true, - "allowToChangeInstallationDirectory": true, - "installerIcon": "./public/logo.ico", - "uninstallerIcon": "./public/logo.ico", - "installerHeaderIcon": "./public/logo.ico", - "createDesktopShortcut": true, - "createStartMenuShortcut": true - } - } -} + "name": "vite-electron", + "private": true, + "version": "1.2.21", + "main": "dist-electron/main.js", + "scripts": { + "dev": "chcp 65001 && vite", + "build": "node ./addVersion.js && vite build && electron-builder", + "preview": "vite preview", + "build:win": "node ./addVersion.js && vite build && electron-builder --w" + }, + "dependencies": { + "@element-plus/icons-vue": "^2.3.1", + "axios": "^1.6.2", + "dayjs": "^1.11.10", + "electron-pos-printer": "^1.3.6", + "electron-pos-printer-vue": "^1.0.9", + "element-plus": "^2.4.3", + "lodash": "^4.17.21", + "pinia": "^2.1.7", + "serialport": "^12.0.0", + "swiper": "^11.1.1", + "vue": "^3.3.8", + "vue-router": "^4.2.5" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^4.5.0", + "electron": "^28.2.3", + "electron-builder": "^24.13.3", + "electron-rebuild": "^3.2.9", + "path": "^0.12.7", + "sass": "^1.69.5", + "sass-loader": "^13.3.2", + "tree-kill": "^1.2.2", + "vite": "^5.0.0", + "vite-plugin-electron": "^0.15.4", + "vite-plugin-electron-renderer": "^0.14.5" + }, + "build": { + "appId": "com.cashierdesktop.app", + "productName": "银收客", + "asar": true, + "files": [ + "./dist/**/*", + "./dist-electron/**/*" + ], + "directories": { + "buildResources": "build", + "output": "release" + }, + "win": { + "icon": "./public/logo.ico", + "target": [ + { + "target": "nsis", + "arch": [ + "ia32" + ] + } + ] + }, + "nsis": { + "oneClick": false, + "allowElevation": true, + "allowToChangeInstallationDirectory": true, + "installerIcon": "./public/logo.ico", + "uninstallerIcon": "./public/logo.ico", + "installerHeaderIcon": "./public/logo.ico", + "createDesktopShortcut": true, + "createStartMenuShortcut": true + } + } +} \ No newline at end of file diff --git a/public/logo.png b/public/logo.png new file mode 100644 index 0000000..198f1f2 Binary files /dev/null and b/public/logo.png differ diff --git a/public/tag_print.css b/public/tag_print.css new file mode 100644 index 0000000..b169bf6 --- /dev/null +++ b/public/tag_print.css @@ -0,0 +1,57 @@ +* { + padding: 0; + margin: 0; + -webkit-box-sizing: border-box; + box-sizing: border-box; + font-size: 12px; + color: #000; +} + +body { + padding: 2mm; +} + +.print_view { + position: relative; +} +.print_view .ewm { + width: 50px; + height: 50px; + position: absolute; + top: 0; + right: 0; + z-index: 99; +} +.print_view .header { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: center; + -ms-flex-align: center; + align-items: center; +} +.print_view .header .logo { + width: 90px; +} +.print_view .header .title { + margin-left: 6px; +} +.print_view .number_wrap { + display: -webkit-box; + display: -ms-flexbox; + display: flex; + -webkit-box-align: end; + -ms-flex-align: end; + align-items: flex-end; +} +.print_view .number_wrap .num { + font-size: 18px; + font-weight: bold; +} +.print_view .number_wrap .info { + margin-left: 12px; + padding-bottom: 4px; +} +.print_view .time { + font-weight: bold; +} \ No newline at end of file diff --git a/public/tag_print.html b/public/tag_print.html new file mode 100644 index 0000000..266be6b --- /dev/null +++ b/public/tag_print.html @@ -0,0 +1,69 @@ + + + + + + Print preview + + + + +
+ +
+ + + diff --git a/public/tag_print.scss b/public/tag_print.scss new file mode 100644 index 0000000..17c8ce2 --- /dev/null +++ b/public/tag_print.scss @@ -0,0 +1,48 @@ +* { + padding: 0; + margin: 0; + box-sizing: border-box; + font-size: 12px; + color: #000; +} +body { + padding: 2mm; +} +.print_view { + position: relative; + .ewm { + $size: 50px; + width: $size; + height: $size; + position: absolute; + top: 0; + right: 0; + z-index: 99; + } + .header { + display: flex; + align-items: center; + .logo { + $size: 90px; + width: $size; + } + .title { + margin-left: 6px; + } + } + .number_wrap { + display: flex; + align-items: flex-end; + .num { + font-size: 18px; + font-weight: bold; + } + .info { + margin-left: 12px; + padding-bottom: 4px; + } + } + .time { + font-weight: bold; + } +} diff --git a/src/api/order/index.js b/src/api/order/index.js index e2dbfa4..9f74bed 100644 --- a/src/api/order/index.js +++ b/src/api/order/index.js @@ -75,3 +75,29 @@ export function sendMessage(params) { params, }); } + +/** + * 扫码叫号 + * @param {*} params + * @returns + */ +export function scanSendMessage(params) { + return request({ + method: "get", + url: "/order/scanSendMessage", + params, + }); +} + +/** + * 获取叫号记录 + * @param {*} params + * @returns + */ +export function getsendMessage(params) { + return request({ + method: "get", + url: "/order/getsendMessage", + params, + }); +} diff --git a/src/components/callNumber.vue b/src/components/callNumber.vue new file mode 100644 index 0000000..f88d8e3 --- /dev/null +++ b/src/components/callNumber.vue @@ -0,0 +1,245 @@ + + + + + + \ No newline at end of file diff --git a/src/components/leftMenu.vue b/src/components/leftMenu.vue index f588c94..c5451e1 100644 --- a/src/components/leftMenu.vue +++ b/src/components/leftMenu.vue @@ -21,16 +21,20 @@ - + + +