标签打印模板相关
@ -47,6 +47,7 @@
|
|||||||
"file-saver": "2.0.5",
|
"file-saver": "2.0.5",
|
||||||
"fuse.js": "6.4.3",
|
"fuse.js": "6.4.3",
|
||||||
"highlight.js": "9.18.5",
|
"highlight.js": "9.18.5",
|
||||||
|
"html2canvas": "^1.4.1",
|
||||||
"js-beautify": "1.13.0",
|
"js-beautify": "1.13.0",
|
||||||
"js-cookie": "3.0.1",
|
"js-cookie": "3.0.1",
|
||||||
"jsencrypt": "3.0.0-rc.1",
|
"jsencrypt": "3.0.0-rc.1",
|
||||||
@ -58,6 +59,7 @@
|
|||||||
"vue-count-to": "1.0.13",
|
"vue-count-to": "1.0.13",
|
||||||
"vue-cropper": "0.5.5",
|
"vue-cropper": "0.5.5",
|
||||||
"vue-meta": "2.4.0",
|
"vue-meta": "2.4.0",
|
||||||
|
"vue-plugin-hiprint": "^0.0.54-fix",
|
||||||
"vue-router": "3.4.9",
|
"vue-router": "3.4.9",
|
||||||
"vuedraggable": "2.24.3",
|
"vuedraggable": "2.24.3",
|
||||||
"vuex": "3.6.0"
|
"vuex": "3.6.0"
|
||||||
@ -73,6 +75,8 @@
|
|||||||
"connect": "3.6.6",
|
"connect": "3.6.6",
|
||||||
"eslint": "7.15.0",
|
"eslint": "7.15.0",
|
||||||
"eslint-plugin-vue": "7.2.0",
|
"eslint-plugin-vue": "7.2.0",
|
||||||
|
"less": "^4.2.0",
|
||||||
|
"less-loader": "^11.1.3",
|
||||||
"lint-staged": "10.5.3",
|
"lint-staged": "10.5.3",
|
||||||
"runjs": "4.4.2",
|
"runjs": "4.4.2",
|
||||||
"sass": "1.32.13",
|
"sass": "1.32.13",
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
<meta name="renderer" content="webkit">
|
<meta name="renderer" content="webkit">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
|
||||||
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
|
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
|
||||||
|
<link rel="stylesheet" type="text/css" media="print" href="<%= BASE_URL %>print-lock.css">
|
||||||
<title><%= webpackConfig.name %></title>
|
<title><%= webpackConfig.name %></title>
|
||||||
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
|
<!--[if lt IE 11]><script>window.location.href='/html/ie.html';</script><![endif]-->
|
||||||
<style>
|
<style>
|
||||||
|
339
public/print-lock.css
Normal file
@ -0,0 +1,339 @@
|
|||||||
|
@media print {
|
||||||
|
body {
|
||||||
|
margin: 0px;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@page {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-printPaper * {
|
||||||
|
box-sizing: border-box;
|
||||||
|
-moz-box-sizing: border-box; /* Firefox */
|
||||||
|
-webkit-box-sizing: border-box; /* Safari */
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-printPaper *:focus {
|
||||||
|
outline: -webkit-focus-ring-color auto 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-printPaper {
|
||||||
|
position: relative;
|
||||||
|
padding: 0 0 0 0;
|
||||||
|
page-break-after: always;
|
||||||
|
-webkit-user-select: none; /* Chrome/Safari/Opera */
|
||||||
|
-moz-user-select: none; /* Firefox */
|
||||||
|
user-select: none;
|
||||||
|
overflow-x: hidden;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-printPaper .hiprint-printPaper-content {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 火狐浏览器打印 第一页过后 重叠问题 */
|
||||||
|
@-moz-document url-prefix() {
|
||||||
|
.hiprint-printPaper .hiprint-printPaper-content {
|
||||||
|
position: relative;
|
||||||
|
margin-top: 20px;
|
||||||
|
top: -20px
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-printPaper.design {
|
||||||
|
overflow: visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.hiprint-printTemplate .hiprint-printPanel {
|
||||||
|
page-break-after: always;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-printPaper, hiprint-printPanel {
|
||||||
|
box-sizing: border-box;
|
||||||
|
border: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-printPanel .hiprint-printPaper:last-child {
|
||||||
|
page-break-after: avoid;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-printTemplate .hiprint-printPanel:last-child {
|
||||||
|
page-break-after: avoid;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-printPaper .hideheaderLinetarget {
|
||||||
|
border-top: 0px dashed rgb(201, 190, 190) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-printPaper .hidefooterLinetarget {
|
||||||
|
border-top: 0px dashed rgb(201, 190, 190) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-printPaper.design {
|
||||||
|
border: 1px dashed rgba(170, 170, 170, 0.7);
|
||||||
|
}
|
||||||
|
|
||||||
|
.design .hiprint-printElement-table-content, .design .hiprint-printElement-longText-content {
|
||||||
|
overflow: hidden;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.design .resize-panel {
|
||||||
|
box-sizing: border-box;
|
||||||
|
border: 1px dotted;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-printElement-text {
|
||||||
|
background-color: transparent;
|
||||||
|
background-repeat: repeat;
|
||||||
|
padding: 0 0 0 0;
|
||||||
|
border: 0.75pt none rgb(0, 0, 0);
|
||||||
|
direction: ltr;
|
||||||
|
font-family: 'SimSun';
|
||||||
|
font-size: 9pt;
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
padding-bottom: 0pt;
|
||||||
|
padding-left: 0pt;
|
||||||
|
padding-right: 0pt;
|
||||||
|
padding-top: 0pt;
|
||||||
|
text-align: left;
|
||||||
|
text-decoration: none;
|
||||||
|
line-height: 9.75pt;
|
||||||
|
box-sizing: border-box;
|
||||||
|
word-wrap: break-word;
|
||||||
|
word-break: break-all;
|
||||||
|
}
|
||||||
|
|
||||||
|
.design .hiprint-printElement-text-content {
|
||||||
|
border: 1px dashed rgb(206, 188, 188);
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-printElement-longText {
|
||||||
|
background-color: transparent;
|
||||||
|
background-repeat: repeat;
|
||||||
|
border: 0.75pt none rgb(0, 0, 0);
|
||||||
|
direction: ltr;
|
||||||
|
font-family: 'SimSun';
|
||||||
|
font-size: 9pt;
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
padding-bottom: 0pt;
|
||||||
|
padding-left: 0pt;
|
||||||
|
padding-right: 0pt;
|
||||||
|
padding-top: 0pt;
|
||||||
|
text-align: left;
|
||||||
|
text-decoration: none;
|
||||||
|
line-height: 9.75pt;
|
||||||
|
box-sizing: border-box;
|
||||||
|
word-wrap: break-word;
|
||||||
|
word-break: break-all;
|
||||||
|
/*white-space: pre-wrap*/
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.hiprint-printElement-table {
|
||||||
|
background-color: transparent;
|
||||||
|
background-repeat: repeat;
|
||||||
|
color: rgb(0, 0, 0);
|
||||||
|
border-color: rgb(0, 0, 0);
|
||||||
|
border-style: none;
|
||||||
|
direction: ltr;
|
||||||
|
font-family: 'SimSun';
|
||||||
|
font-size: 9pt;
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: normal;
|
||||||
|
padding-bottom: 0pt;
|
||||||
|
padding-left: 0pt;
|
||||||
|
padding-right: 0pt;
|
||||||
|
padding-top: 0pt;
|
||||||
|
text-align: left;
|
||||||
|
text-decoration: none;
|
||||||
|
padding: 0 0 0 0;
|
||||||
|
box-sizing: border-box;
|
||||||
|
line-height: 9.75pt;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-printElement-table thead {
|
||||||
|
background: #e8e8e8;
|
||||||
|
font-weight: 700;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-printElement-tableTarget, .hiprint-printElement-tableTarget tr, .hiprint-printElement-tableTarget td {
|
||||||
|
border-color: rgb(0, 0, 0);
|
||||||
|
/*border-style: none;*/
|
||||||
|
/*border: 1px solid rgb(0, 0, 0);*/
|
||||||
|
font-weight: normal;
|
||||||
|
direction: ltr;
|
||||||
|
padding-bottom: 0pt;
|
||||||
|
padding-left: 4pt;
|
||||||
|
padding-right: 4pt;
|
||||||
|
padding-top: 0pt;
|
||||||
|
text-decoration: none;
|
||||||
|
vertical-align: middle;
|
||||||
|
box-sizing: border-box;
|
||||||
|
word-wrap: break-word;
|
||||||
|
word-break: break-all;
|
||||||
|
/*line-height: 9.75pt;
|
||||||
|
font-size: 9pt;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-printElement-tableTarget-border-all {
|
||||||
|
border: 1px solid;
|
||||||
|
}
|
||||||
|
.hiprint-printElement-tableTarget-border-none {
|
||||||
|
border: 0px solid;
|
||||||
|
}
|
||||||
|
.hiprint-printElement-tableTarget-border-lr {
|
||||||
|
border-left: 1px solid;
|
||||||
|
border-right: 1px solid;
|
||||||
|
}
|
||||||
|
.hiprint-printElement-tableTarget-border-left {
|
||||||
|
border-left: 1px solid;
|
||||||
|
}
|
||||||
|
.hiprint-printElement-tableTarget-border-right {
|
||||||
|
border-right: 1px solid;
|
||||||
|
}
|
||||||
|
.hiprint-printElement-tableTarget-border-tb {
|
||||||
|
border-top: 1px solid;
|
||||||
|
border-bottom: 1px solid;
|
||||||
|
}
|
||||||
|
.hiprint-printElement-tableTarget-border-top {
|
||||||
|
border-top: 1px solid;
|
||||||
|
}
|
||||||
|
.hiprint-printElement-tableTarget-border-bottom {
|
||||||
|
border-bottom: 1px solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-printElement-tableTarget-border-td-none td {
|
||||||
|
border: 0px solid;
|
||||||
|
}
|
||||||
|
.hiprint-printElement-tableTarget-border-td-all td:not(:last-child) {
|
||||||
|
border-right: 1px solid;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*.hiprint-printElement-tableTarget tr,*/
|
||||||
|
.hiprint-printElement-tableTarget td {
|
||||||
|
height: 18pt;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-printPaper .hiprint-paperNumber {
|
||||||
|
font-size: 9pt;
|
||||||
|
}
|
||||||
|
|
||||||
|
.design .hiprint-printElement-table-handle {
|
||||||
|
position: absolute;
|
||||||
|
height: 21pt;
|
||||||
|
width: 21pt;
|
||||||
|
background: red;
|
||||||
|
z-index: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-printPaper .hiprint-paperNumber-disabled {
|
||||||
|
float: right !important;
|
||||||
|
right: 0 !important;
|
||||||
|
color: gainsboro !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-printElement-vline, .hiprint-printElement-hline {
|
||||||
|
border: 0px none rgb(0, 0, 0);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-printElement-vline {
|
||||||
|
border-left: 0.75pt solid #000;
|
||||||
|
border-right: 0px none rgb(0, 0, 0) !important;
|
||||||
|
border-bottom: 0px none rgb(0, 0, 0) !important;
|
||||||
|
border-top: 0px none rgb(0, 0, 0) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-printElement-hline {
|
||||||
|
border-top: 0.75pt solid #000;
|
||||||
|
border-right: 0px none rgb(0, 0, 0) !important;
|
||||||
|
border-bottom: 0px none rgb(0, 0, 0) !important;
|
||||||
|
border-left: 0px none rgb(0, 0, 0) !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-printElement-oval, .hiprint-printElement-rect {
|
||||||
|
border: 0.75pt solid #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-text-content-middle {
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-text-content-middle > div {
|
||||||
|
display: grid;
|
||||||
|
align-items: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-text-content-bottom {
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-text-content-bottom > div {
|
||||||
|
display: grid;
|
||||||
|
align-items: flex-end;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-text-content-wrap {
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-text-content-wrap .hiprint-text-content-wrap-nowrap {
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-text-content-wrap .hiprint-text-content-wrap-clip {
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: clip;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-text-content-wrap .hiprint-text-content-wrap-ellipsis {
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*hi-grid-row */
|
||||||
|
.hi-grid-row {
|
||||||
|
position: relative;
|
||||||
|
height: auto;
|
||||||
|
margin-right: 0;
|
||||||
|
margin-left: 0;
|
||||||
|
zoom: 1;
|
||||||
|
display: block;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hi-grid-row::after, .hi-grid-row::before {
|
||||||
|
display: table;
|
||||||
|
content: '';
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hi-grid-col {
|
||||||
|
display: block;
|
||||||
|
box-sizing: border-box;
|
||||||
|
position: relative;
|
||||||
|
float: left;
|
||||||
|
flex: 0 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-grid-row {
|
||||||
|
margin-left: -0pt;
|
||||||
|
margin-right: -0pt;
|
||||||
|
}
|
||||||
|
|
||||||
|
.tableGridColumnsGutterRow {
|
||||||
|
padding-left: 0pt;
|
||||||
|
padding-right: 0pt;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-gridColumnsFooter {
|
||||||
|
text-align: left;
|
||||||
|
clear: both;
|
||||||
|
}
|
@ -42,3 +42,11 @@ export function delStocktaking(takingId) {
|
|||||||
method: 'delete'
|
method: 'delete'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//执行转移
|
||||||
|
export function execute(takingId){
|
||||||
|
return request({
|
||||||
|
url: '/mes/wm/stocktaking/'+takingId,
|
||||||
|
method: 'put'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
44
src/api/print/printerconfig.js
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
// 查询打印机配置列表
|
||||||
|
export function listPrinterconfig(query) {
|
||||||
|
return request({
|
||||||
|
url: '/print/printerconfig/list',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询打印机配置详细
|
||||||
|
export function getPrinterconfig(printerId) {
|
||||||
|
return request({
|
||||||
|
url: '/print/printerconfig/' + printerId,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增打印机配置
|
||||||
|
export function addPrinterconfig(data) {
|
||||||
|
return request({
|
||||||
|
url: '/print/printerconfig',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改打印机配置
|
||||||
|
export function updatePrinterconfig(data) {
|
||||||
|
return request({
|
||||||
|
url: '/print/printerconfig',
|
||||||
|
method: 'put',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除打印机配置
|
||||||
|
export function delPrinterconfig(printerId) {
|
||||||
|
return request({
|
||||||
|
url: '/print/printerconfig/' + printerId,
|
||||||
|
method: 'delete'
|
||||||
|
})
|
||||||
|
}
|
53
src/api/print/template.js
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
// 查询打印模板配置列表
|
||||||
|
export function listTemplate(query) {
|
||||||
|
return request({
|
||||||
|
url: '/print/template/list',
|
||||||
|
method: 'get',
|
||||||
|
params: query
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询打印模板配置详细
|
||||||
|
export function getTemplate(templateId) {
|
||||||
|
return request({
|
||||||
|
url: '/print/template/' + templateId,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增打印模板配置
|
||||||
|
export function addTemplate(data) {
|
||||||
|
return request({
|
||||||
|
url: '/print/template',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 修改打印模板配置
|
||||||
|
export function updateTemplate(data) {
|
||||||
|
return request({
|
||||||
|
url: '/print/template',
|
||||||
|
method: 'put',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// 删除打印模板配置
|
||||||
|
export function delTemplate(templateId) {
|
||||||
|
return request({
|
||||||
|
url: '/print/template/' + templateId,
|
||||||
|
method: 'delete'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//上传缩略图
|
||||||
|
export function uploadShotCut(data){
|
||||||
|
return request({
|
||||||
|
url: '/common/uploadMinio',
|
||||||
|
method: 'post',
|
||||||
|
data: data
|
||||||
|
})
|
||||||
|
}
|
1
src/assets/icons/svg/add.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1716174915588" class="icon" viewBox="0 0 1027 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3518" xmlns:xlink="http://www.w3.org/1999/xlink" width="200.5859375" height="200"><path d="M986.333106 313.424529c-25.777344-60.946434-62.644941-115.5984-109.603669-162.557127S775.018831 66.941165 714.072397 41.163821C651.027808 14.487267 583.98673 0.999122 514.94741 0.999122c-69.039321 0-136.080398 13.488145-199.124988 40.164699-60.946434 25.777344-115.5984 62.644941-162.557128 109.703581s-83.926237 101.610694-109.603668 162.557127C16.985072 376.469119 3.397014 443.510196 3.397014 512.549517c0 69.039321 13.488145 136.080398 40.164699 199.124988 25.777344 60.946434 62.644941 115.5984 109.603669 162.557127 46.958728 46.958728 101.710606 83.826325 162.557128 109.603669 63.04459 26.676554 130.085667 40.164699 199.124987 40.164699 69.039321 0 136.080398-13.488145 199.124988-40.164699 60.946434-25.777344 115.5984-62.644941 162.557128-109.603669 46.958728-46.958728 83.826325-101.710606 109.603668-162.557127 26.676554-63.04459 40.164699-130.085667 40.164699-199.124988 0.199824-69.039321-13.288321-136.080398-39.964874-199.124988zM514.94741 984.135038c-260.071422 0-471.585521-211.514099-471.585521-471.585521s211.514099-471.585521 471.585521-471.585521 471.585521 211.514099 471.58552 471.585521-211.514099 471.585521-471.58552 471.585521z" fill="#727171" p-id="3519"></path><path d="M851.651478 498.561811h-315.722509V182.839301c0-10.990341-8.992097-19.982437-19.982438-19.982437h-1.998243c-10.990341 0-19.982437 8.992097-19.982438 19.982437v315.72251h-315.722509c-10.990341 0-19.982437 8.992097-19.982437 19.982437v1.998244c0 10.990341 8.992097 19.982437 19.982437 19.982437h315.722509v315.72251c0 10.990341 8.992097 19.982437 19.982438 19.982437h1.998243c10.990341 0 19.982437-8.992097 19.982438-19.982437V540.524929h315.722509c10.990341 0 19.982437-8.992097 19.982438-19.982437v-1.998244c0-10.990341-8.992097-19.982437-19.982438-19.982437z" fill="#727171" p-id="3520"></path></svg>
|
After Width: | Height: | Size: 2.1 KiB |
1
src/assets/icons/svg/alignBottom.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1712823957090" class="icon" viewBox="0 0 1170 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7474" xmlns:xlink="http://www.w3.org/1999/xlink" width="228.515625" height="200"><path d="M1170.285714 987.428571a36.571429 36.571429 0 0 0-36.571428-36.571428H36.571429a36.571429 36.571429 0 0 0 0 73.142857h1097.142857a36.571429 36.571429 0 0 0 36.571428-36.571429z m-219.428571-146.285714v-512a36.571429 36.571429 0 0 0-36.571429-36.571428h-219.428571a36.571429 36.571429 0 0 0-36.571429 36.571428v512a36.571429 36.571429 0 0 0 36.571429 36.571429h219.428571a36.571429 36.571429 0 0 0 36.571429-36.571429z m-438.857143 0V36.571429a36.571429 36.571429 0 0 0-36.571429-36.571429h-219.428571a36.571429 36.571429 0 0 0-36.571429 36.571429v804.571428a36.571429 36.571429 0 0 0 36.571429 36.571429h219.428571a36.571429 36.571429 0 0 0 36.571429-36.571429z" fill="#ffffff" p-id="7475"></path></svg>
|
After Width: | Height: | Size: 1.0 KiB |
1
src/assets/icons/svg/alignCenter.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1712823518228" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3134" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M477.312 576V448H266.688a32 32 0 0 1-32-32v-192a32 32 0 0 1 32-32h210.624V34.688a34.688 34.688 0 0 1 69.376 0V192h210.624a32 32 0 0 1 32 32v192a32 32 0 0 1-32 32H546.688v128H896a32 32 0 0 1 32 32v192a32 32 0 0 1-32 32H546.688v157.312a34.688 34.688 0 1 1-69.376 0V832H128a32 32 0 0 1-32-32v-192A32 32 0 0 1 128 576h349.312z" fill="#ffffff" p-id="3135"></path></svg>
|
After Width: | Height: | Size: 697 B |
1
src/assets/icons/svg/alignLeft.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1712823396975" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="1874" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M96 0a32 32 0 0 1 32 32v960a32 32 0 0 1-64 0V32A32 32 0 0 1 96 0z m128 192h448a32 32 0 0 1 32 32v192a32 32 0 0 1-32 32h-448a32 32 0 0 1-32-32v-192a32 32 0 0 1 32-32z m0 384h704a32 32 0 0 1 32 32v192a32 32 0 0 1-32 32h-704a32 32 0 0 1-32-32v-192a32 32 0 0 1 32-32z" fill="#ffffff" p-id="1875"></path></svg>
|
After Width: | Height: | Size: 638 B |
1
src/assets/icons/svg/alignRight.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1712823609545" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4177" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M928 0a32 32 0 0 1 32 32v960a32 32 0 0 1-64 0V32a32 32 0 0 1 32-32z m-576 192h448a32 32 0 0 1 32 32v192a32 32 0 0 1-32 32h-448a32 32 0 0 1-32-32v-192a32 32 0 0 1 32-32z m-256 384h704a32 32 0 0 1 32 32v192a32 32 0 0 1-32 32H96a32 32 0 0 1-32-32v-192A32 32 0 0 1 96 576z" fill="#ffffff" p-id="4178"></path></svg>
|
After Width: | Height: | Size: 643 B |
1
src/assets/icons/svg/alignTop.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1712823667643" class="icon" viewBox="0 0 1170 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5216" xmlns:xlink="http://www.w3.org/1999/xlink" width="228.515625" height="200"><path d="M1170.285714 36.571429a36.571429 36.571429 0 0 1-36.571428 36.571428H36.571429a36.571429 36.571429 0 0 1 0-73.142857h1097.142857a36.571429 36.571429 0 0 1 36.571428 36.571429z m-219.428571 146.285714v512a36.571429 36.571429 0 0 1-36.571429 36.571428h-219.428571a36.571429 36.571429 0 0 1-36.571429-36.571428v-512a36.571429 36.571429 0 0 1 36.571429-36.571429h219.428571a36.571429 36.571429 0 0 1 36.571429 36.571429z m-438.857143 0v804.571428a36.571429 36.571429 0 0 1-36.571429 36.571429h-219.428571a36.571429 36.571429 0 0 1-36.571429-36.571429v-804.571428a36.571429 36.571429 0 0 1 36.571429-36.571429h219.428571a36.571429 36.571429 0 0 1 36.571429 36.571429z" fill="#ffffff" p-id="5217"></path></svg>
|
After Width: | Height: | Size: 1.0 KiB |
1
src/assets/icons/svg/circle.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1712829126138" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="28275" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M512 64c60.5 0 119.2 11.8 174.4 35.2 53.3 22.6 101.3 54.9 142.4 96 41.2 41.2 73.5 89.1 96 142.4C948.2 392.8 960 451.5 960 512s-11.8 119.2-35.2 174.4c-22.6 53.3-54.9 101.3-96 142.4-41.2 41.2-89.1 73.5-142.4 96C631.2 948.2 572.5 960 512 960s-119.2-11.8-174.4-35.2c-53.3-22.6-101.3-54.9-142.4-96-41.2-41.2-73.5-89.1-96-142.4C75.8 631.2 64 572.5 64 512s11.8-119.2 35.2-174.4c22.6-53.3 54.9-101.3 96-142.4s89.1-73.5 142.4-96C392.8 75.8 451.5 64 512 64m0-64C229.2 0 0 229.2 0 512s229.2 512 512 512 512-229.2 512-512S794.8 0 512 0z" p-id="28276"></path></svg>
|
After Width: | Height: | Size: 886 B |
1
src/assets/icons/svg/clientcode.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1713320715248" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="15229" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M490.453333 635.456c-9.386667-7.573333-15.04-17.066667-15.04-30.336 0-20.864 16.896-37.930667 37.546667-37.930667 20.672 0 37.546667 17.066667 37.546667 37.930667 0 13.269333-5.610667 22.762667-14.997334 30.336l50.688 180.16c3.754667 13.269333 0 26.538667-9.386666 36.010667l-50.688 51.2a18.026667 18.026667 0 0 1-26.304 0l-50.688-51.2c-9.386667-9.472-13.141333-22.741333-9.386667-36.010667l50.688-180.16z m-142.634666-161.386667c-60.394667-49.28-100.032-123.242667-100.032-208.597333C247.786667 119.466667 366.677333 0 512 0c145.301333 0 264.213333 119.466667 264.213333 265.472 0 83.456-39.637333 159.296-100.032 208.597333C864.896 529.066667 1002.666667 703.530667 1002.666667 910.229333 1002.666667 972.8 951.701333 1024 889.429333 1024H134.570667C72.277333 1024 21.333333 972.8 21.333333 910.229333c0-206.72 137.770667-381.162667 326.485334-436.16z m165.973333-6.442666a202.666667 202.666667 0 1 0 0-405.333334 202.666667 202.666667 0 0 0 0 405.333334zM899.882667 960c21.333333 0 38.784-18.346667 38.784-40.746667C938.666667 695.296 764.117333 512 550.784 512h-77.568C259.882667 512 85.333333 695.274667 85.333333 919.253333 85.333333 941.653333 102.784 960 124.117333 960h775.765334z" fill="#2c2c2c" p-id="15230"></path></svg>
|
After Width: | Height: | Size: 1.5 KiB |
1
src/assets/icons/svg/clientname.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1713320660764" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="14161" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M264.704 241.152c0 133.12 108.032 241.152 241.152 241.152s241.152-108.032 241.152-241.152S638.976 0 505.856 0C372.224 0 264.704 108.032 264.704 241.152m333.312 256.512l-92.16 92.16-92.16-92.16c-276.48 44.032-371.2 237.568-371.2 526.336h928.256c0-288.768-96.256-482.304-372.736-526.336z m-92.16 489.984l-99.328-99.328 99.328-297.984 99.328 298.496-99.328 98.816z" p-id="14162" fill="#2c2c2c"></path></svg>
|
After Width: | Height: | Size: 738 B |
1
src/assets/icons/svg/hline.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1712828801876" class="icon" viewBox="0 0 17408 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="22557" xmlns:xlink="http://www.w3.org/1999/xlink" width="3400" height="200"><path d="M128 0h17152v1024H128z" fill="#595757" p-id="22558"></path></svg>
|
After Width: | Height: | Size: 401 B |
1
src/assets/icons/svg/horizontal.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1712823830088" class="icon" viewBox="0 0 1102 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6430" xmlns:xlink="http://www.w3.org/1999/xlink" width="215.234375" height="200"><path d="M1102.769231 472.615385h-157.538462V157.538462H630.153846v315.076923H472.615385V0H157.538462v472.615385H0v78.76923h157.538462v472.615385h315.076923V551.384615h157.538461v315.076923h315.076923V551.384615h157.538462z" fill="#ffffff" p-id="6431"></path></svg>
|
After Width: | Height: | Size: 596 B |
1
src/assets/icons/svg/itemcode.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1712829699620" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="37510" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M138.646222 830.642201c-30.123065 0-54.499242-24.197098-54.499242-54.1769V247.50093c0-29.943986 24.376177-54.1769 54.499242-54.1769h749.384525c23.127743 0 41.899272-18.666128 41.899272-41.686424 0-22.984481-18.772552-41.650609-41.899272-41.650609H138.646222C62.411957 109.986997 0.347412 171.659615 0.347412 247.50093v529.033955c0 75.734892 62.029752 137.479141 138.29881 137.479141 23.127743 0 41.900296-18.629289 41.900295-41.613769 0-23.056112-18.772552-41.687448-41.900295-41.687448v-0.070608z m419.964864-287.377127c17.34504 0 31.478945-13.990642 31.478945-31.265074v-91.045599c0-17.238616-14.133905-31.229259-31.478945-31.229259h-122.059964c-17.34504 0-31.44313 13.990642-31.443129 31.229259 0 17.273409 14.097066 31.264051 31.443129 31.264051h90.65265v28.552289h-90.65265c-17.34504 0-31.44313 13.954827-31.443129 31.229259v91.010807c0 17.274432 14.097066 31.265074 31.443129 31.265074h122.059964c17.34504 0 31.478945-13.990642 31.478945-31.265074 0-17.202801-14.133905-31.19242-31.478945-31.19242h-90.616834v-28.552289h90.616834z m165.387771 28.55229c-17.417695 0-31.478945 13.990642-31.478945 31.192419 0 17.274432 14.06125 31.265074 31.478945 31.265075h122.059963c17.274432 0 31.406291-13.990642 31.406291-31.265075V420.954401c0-17.238616-14.132882-31.229259-31.406291-31.229259H723.928249c-17.346063 0-31.407314 13.990642-31.407314 31.229259 0 17.273409 14.06125 31.264051 31.407314 31.264051h90.652649v28.552289H723.928249c-17.346063 0-31.407314 13.954827-31.407314 31.229259s14.06125 31.265074 31.407314 31.265074h90.652649v28.55229h-90.582041z m161.320129-461.794551c-23.127743 0-41.829687 18.630313-41.829688 41.650608s18.701944 41.686425 41.829688 41.686425c30.122041 0 54.534034 24.233937 54.534034 54.142108V776.535909c0 29.910217-24.411993 54.1769-54.534034 54.1769H135.933437c-23.12672 0-41.900296 18.631336-41.900295 41.687448 0 22.984481 18.773576 41.61377 41.900295 41.613769h749.385549c76.233242 0 138.334625-61.672618 138.334625-137.479141V247.50093c-0.001023-75.8055-62.101383-137.478118-138.334625-137.478117z m-625.54094 284.878212c-8.744151-5.78168-19.843954-6.817266-29.551036-2.7486l-64.421218 26.981514c-15.989159 6.709819-23.51967 25.018813-16.774036 40.936341s25.161053 23.376407 41.150213 16.667612l20.806885-8.708336v134.980227c0 17.274432 14.06125 31.265074 31.443129 31.265075 17.34504 0 31.407314-13.990642 31.407314-31.265075V420.954401c0-10.457166-5.282307-20.23588-14.062274-26.01756v-0.035816z m0 0" fill="#2c2c2c" p-id="37511"></path></svg>
|
After Width: | Height: | Size: 2.8 KiB |
1
src/assets/icons/svg/itemname.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1712829802501" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="42204" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M896 128a42.7 42.7 0 0 1 42.7 42.7v682.7a42.7 42.7 0 0 1-42.7 42.7H128a42.7 42.7 0 0 1-42.7-42.7V170.7A42.7 42.7 0 0 1 128 128h768z m-42.7 85.3H170.7v597.3h682.7V213.3zM401 341.3l136.5 341.3h-91.9l-17.1-42.7H288.1L271 682.6h-91.8l136.5-341.3H401z m409.7 0v341.3h-128a128 128 0 0 1 0-256h42.6v-85.3h85.3zM725.4 512h-42.7a42.7 42.7 0 0 0-5 85l5 0.3h42.7V512z m-367-47.6l-36.2 90.3h72.2l-36.1-90.2z" p-id="42205" fill="#2c2c2c"></path></svg>
|
After Width: | Height: | Size: 772 B |
1
src/assets/icons/svg/picture.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1712828545140" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="16706" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M478.1 327.9c-10-9.6-21.8-17.2-35.3-22.9-13.6-5.7-28-8.6-43.2-8.6-15.7 0-30.3 2.8-43.9 8.6-13.6 5.7-25.3 13.3-35.3 22.9-10 9.6-18 20.9-23.9 33.9-6 13-8.9 26.8-8.9 41.4 0 14.6 3 28.4 8.9 41.4 6 13 13.9 24.4 23.9 34.2 10 9.8 21.8 17.6 35.3 23.3 13.6 5.7 28.2 8.6 43.9 8.6 15.2 0 29.6-2.9 43.2-8.6 13.6-5.7 25.3-13.5 35.3-23.3 10-9.8 18-21.2 23.9-34.2 5.9-13 8.9-26.8 8.9-41.4 0-14.6-3-28.4-8.9-41.4-5.9-13.1-13.9-24.4-23.9-33.9z m391.3-203.3H152.5c-48.9 0-88.5 38-88.5 84.9V811c0 46.9 39.6 84.9 88.5 84.9h716.8c48.9 0 88.5-38 88.5-84.9V209.5c0.1-46.9-39.5-84.9-88.4-84.9z m-0.7 570.1c-9.5-21-20.6-42.4-33.2-64.3-12.6-21.9-26.4-41.7-41.4-59.5-15-17.8-31.3-32.3-48.9-43.5-17.6-11.2-35.9-16.8-55-16.8-22.4 0-41.4 4.2-57.1 12.6-15.7 8.5-29.3 19-40.7 31.8-11.4 12.8-21.7 26.5-30.7 41.1-9 14.6-18.1 28.3-27.1 41.1S515.7 660.6 505 669c-10.7 8.4-23.4 12.6-38.2 12.6-14.8 0-27.4-1-37.8-3.1-10.5-2.1-19.9-4.7-28.2-7.9s-16.1-6.7-23.2-10.6c-7.1-3.9-14.9-7.4-23.2-10.6-8.3-3.2-17.8-5.8-28.6-7.9-10.7-2.1-23.4-3.1-38.2-3.1-12.4 0-24.6 3.1-36.8 9.2-12.1 6.2-23.9 14-35.3 23.6-11.4 9.6-22.4 20.3-32.8 32.2-10.5 11.9-20 23.7-28.6 35.6V248c0-21 17.8-38 39.7-38H829c21.9 0 39.7 17 39.7 38v446.7z" fill="#383838" p-id="16707"></path></svg>
|
After Width: | Height: | Size: 1.5 KiB |
1
src/assets/icons/svg/qrcode.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1712829260415" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="30279" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M568.889116 0l0 455.110884 455.108837 0L1023.997953 0 568.889116 0zM967.109349 398.222279l-341.333674 0L625.775674 56.888605l341.333674 0L967.109349 398.222279zM113.778233 341.332651l227.555442 0L341.333674 113.777209 113.778233 113.777209 113.778233 341.332651zM0.001023 1023.998977l455.110884 0L455.111907 568.888093 0.001023 568.888093 0.001023 1023.998977zM56.889628 625.777721l341.333674 0 0 341.333674L56.889628 967.111395 56.889628 625.777721zM910.220744 113.777209 682.665302 113.777209l0 227.555442 227.555442 0L910.220744 113.777209zM0.001023 455.110884l455.110884 0L455.111907 0 0.001023 0 0.001023 455.110884zM56.889628 56.888605l341.333674 0 0 341.333674L56.889628 398.222279 56.889628 56.888605zM910.220744 1023.998977l113.778233 0L1023.998977 796.443535 910.220744 796.443535 910.220744 1023.998977zM910.220744 682.665302l113.778233 0L1023.998977 568.888093 910.220744 568.888093 910.220744 682.665302zM113.778233 910.220744l227.555442 0L341.333674 682.665302 113.778233 682.665302 113.778233 910.220744zM739.553907 568.888093 568.889116 568.888093l0 170.666837 170.664791 0 0 56.888605 113.778233 0L853.332139 682.665302 739.553907 682.665302 739.553907 568.888093zM568.889116 1023.998977 796.442512 1023.998977 796.442512 910.220744 568.889116 910.220744 568.889116 1023.998977z" fill="#2c2c2c" p-id="30280"></path></svg>
|
After Width: | Height: | Size: 1.6 KiB |
1
src/assets/icons/svg/rect.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1712829037234" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="27244" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M854.6176 1024v-114.2272H169.3824V1024H10.3552v-159.0016h114.1504V159.0272H10.3552V0h159.0272v114.688h685.2352V0h159.0272v159.0272H899.1872v705.9712h114.4576V1024zM179.6736 854.5024h664.3456V169.856H182.592z" fill="#333333" p-id="27245"></path></svg>
|
After Width: | Height: | Size: 584 B |
1
src/assets/icons/svg/resizeHorizontal.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1712824088602" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="9985" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M111.105754 0.00448H55.233998A23.231898 23.231898 0 0 0 32.0021 23.236378v977.531724c0 12.927943 10.495954 23.231898 23.231898 23.231898h55.871756a23.231898 23.231898 0 0 0 23.231898-23.231898V23.428378A23.167899 23.167899 0 0 0 111.105754 0.00448z m831.99636 0h-55.871756A23.231898 23.231898 0 0 0 863.99846 23.236378v977.531724c0 12.927943 10.495954 23.231898 23.231898 23.231898h55.871756a23.231898 23.231898 0 0 0 23.231898-23.231898V23.428378A23.167899 23.167899 0 0 0 943.102114 0.00448zM352.0007 106.244015v834.620349c0 12.927943 10.431954 23.295898 23.231898 23.295898h232.638983a23.231898 23.231898 0 0 0 23.295898-23.295898V106.308015a23.231898 23.231898 0 0 0-23.295898-23.295898H375.424598A23.167899 23.167899 0 0 0 352.0007 106.244015z" p-id="9986" fill="#ffffff"></path></svg>
|
After Width: | Height: | Size: 1.1 KiB |
1
src/assets/icons/svg/resizeVertical.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1712824218963" class="icon" viewBox="0 0 1364 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="11073" xmlns:xlink="http://www.w3.org/1999/xlink" width="266.40625" height="200"><path d="M0 868.133711q0-37.745857 37.744857-37.745857h1132.347709q37.744857 0 37.744857 37.745857 0 37.744857-37.744857 37.744857H37.744857Q0 905.878568 0 868.133711zM0 37.744857Q0 0 37.744857 0h1132.347709q37.744857 0 37.744857 37.744857t-37.744857 37.744857H37.744857Q0 75.489714 0 37.744857zM943.623425 641.663569H264.213999q-37.744857 0-37.744857-37.744857v-301.958856q0-37.745857 37.744857-37.745857h679.409426q37.744857 0 37.744857 37.745857v301.958856q0 37.744857-37.744857 37.744857z" p-id="11074" fill="#ffffff"></path></svg>
|
After Width: | Height: | Size: 866 B |
1
src/assets/icons/svg/text.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1712825588496" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="15605" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M692.2597343921661 882.78857421875H331.711297750473v-30.689996480941772a563.3140236139297 563.3140236139297 0 0 1 48.088091611862176-14.83154296875c16.200274229049683-4.278552532196046 33.656305074691765-7.757592201232912 52.39561200141907-10.638445615768433v-630.340576171875h-136.73552870750427l-57.244107127189636 151.53810381889343H211.2339789867401c-2.1675199270248413-14.118209481239319-3.9642512798309326-30.233752727508545-5.419161915779114-48.23148250579833-1.4541864395141602-17.939794063568115-2.6809751987457275-36.30831241607666-3.7933409214019784-55.10410666465761-1.1123657226562498-18.59736442565918-1.9683659076690674-37.078857421875-2.6527315378189087-55.019375681877136C198.6264432668686 171.53063368797297 198.2563788890838 155.35860311985022 198.2563788890838 141.21142578125h627.4886906147003c0 14.147177338600159-0.3997564315795899 30.090361833572388-1.1123657226562498 47.689059376716614-0.7415771484374999 17.655909061431885-1.6547888517379765 35.852792859077454-2.766430377960205 54.56313192844391s-2.139276266098023 37.078857421875-3.251641988754273 55.10410666465761c-1.0841220617294314 17.998453974723816-2.7099430561065674 34.48406159877777-4.9064308404922485 49.28736090660096h-28.408053517341607l-56.75889551639557-151.53810381889343H592.8891206979752V826.6850764751434c18.71033906936645 3.5659432411193848 36.22285723686218 7.07395076751709 52.366644144058235 10.638445615768433 16.229242086410522 3.508731722831726 31.85957372188568 8.415162563323973 47.00469374656678 14.83154296875v30.633509159088135z" p-id="15606"></path></svg>
|
After Width: | Height: | Size: 1.9 KiB |
1
src/assets/icons/svg/vendorcode.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1713320359763" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5863" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M508.104273 203.742311c-123.516128 0-223.99047 100.475366-223.99047 223.99047s100.475366 223.99047 223.99047 223.99047 223.99047-100.475366 223.99047-223.99047S631.619378 203.742311 508.104273 203.742311zM508.104273 630.390387c-111.745037 0-202.658629-90.912569-202.658629-202.658629s90.912569-202.658629 202.658629-202.658629S710.761879 315.986721 710.761879 427.732781 619.84931 630.390387 508.104273 630.390387z" fill="#2c2c2c" p-id="5864"></path><path d="M833.199443 650.993634c43.779086-63.554478 69.554122-140.421146 69.554122-223.261876 0-217.616296-177.034019-394.650315-394.650315-394.650315S113.453958 210.116485 113.453958 427.732781c0 85.386716 27.545356 164.306136 73.814146 228.953506L73.987085 852.501044l106.922195 35.154661c11.249205 3.698229 21.608134 9.6815 30.436196 17.567098l83.908038 75.022671 100.664677-174.336584c35.599799 10.577916 73.197092 16.473183 112.185059 16.473183 41.373293 0 81.246419-6.468318 118.747521-18.332531l101.893668 176.195931 83.908038-75.022671c8.828063-7.885598 19.186991-13.868869 30.436196-17.567098l106.922195-35.154661L833.199443 650.993634zM289.89446 946.862155l-73.434499-65.674769c-5.015224-4.484128-10.903328-7.885598-17.293875-9.984399l-93.577259-30.753421 95.584985-165.181063c45.154409 55.877635 105.281835 98.917894 174.154435 123.640971L289.89446 946.862155zM508.104273 801.050232c-205.845205 0-373.317451-167.472246-373.317451-373.317451S302.259068 54.414307 508.104273 54.414307 881.421724 221.886553 881.421724 427.732781 713.949478 801.050232 508.104273 801.050232zM824.832891 871.204012c-6.390547 2.098801-12.277628 5.500271-17.293875 9.984399l-73.434499 65.674769L647.183865 796.597827c68.49193-25.915229 127.845737-70.194712 172.114986-127.031185l99.110275 170.883949L824.832891 871.204012z" fill="#2c2c2c" p-id="5865"></path></svg>
|
After Width: | Height: | Size: 2.1 KiB |
1
src/assets/icons/svg/vendorname.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1713320412770" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="6122" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M831.014684 653.592832c43.215244-63.048965 68.609611-139.225925 68.609611-221.271546 0-216.407772-176.053692-392.461463-392.461463-392.461463S114.700345 215.913515 114.700345 432.321286c0 85.285408 27.646664 164.069753 74.02904 228.512461L73.597205 856.55436l106.789165 35.110659c11.235902 3.693112 21.581528 9.670244 30.398334 17.544585l83.803661 74.92955 101.248985-175.679162c35.329646 10.481725 72.640414 16.322757 111.324458 16.322757 41.706891 0 81.8471-6.674003 119.584586-18.777669l102.664218 178.134073 83.803661-74.92955c8.816806-7.875365 19.162432-13.851473 30.398334-17.544585l106.789165-35.110659L831.014684 653.592832zM289.23545 950.797791l-73.342402-65.591881c-5.009084-4.479011-10.890025-7.875365-17.272385-9.971096l-93.459578-30.715559 97.373725-165.229159c44.86379 55.230905 104.505146 97.748255 172.73511 122.206296L289.23545 950.797791zM507.161808 686.263929c-140.027174 0-253.945713-113.915469-253.945713-253.942643s113.917516-253.947759 253.945713-253.947759 253.945713 113.920586 253.945713 253.947759S647.190005 686.263929 507.161808 686.263929zM825.378314 875.233791c-6.382361 2.096754-12.263301 5.493108-17.272385 9.971096l-73.342402 65.591881-87.722924-152.235217c67.754127-25.966395 126.412085-70.060659 170.160471-126.508275l101.636818 172.464957L825.378314 875.233791z" fill="#2c2c2c" p-id="6123"></path><path d="M507.161808 210.035644c-122.570593 0-222.285642 99.715049-222.285642 222.285642 0 122.565477 99.715049 222.285642 222.285642 222.285642s222.285642-99.720166 222.285642-222.285642C729.448474 309.750693 629.733425 210.035644 507.161808 210.035644z" fill="#2c2c2c" p-id="6124"></path></svg>
|
After Width: | Height: | Size: 1.9 KiB |
1
src/assets/icons/svg/vline.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1712828951597" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="24862" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M427.16113983-18.24287605h84.83886017v1060.4857521H427.16113983zM512-18.24287605h84.83886017v1060.4857521h-84.83886017z" p-id="24863"></path></svg>
|
After Width: | Height: | Size: 481 B |
1
src/assets/icons/svg/workordercode.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1712830003606" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="46986" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M434.087 765.774c0-178.087 144.696-325.009 322.783-325.009 37.843 0 75.687 6.678 109.078 20.035V48.974C865.948 22.26 848.139 0 825.878 0H42.296C17.809 0 0 22.26 0 48.974v926.052C0 1001.74 17.809 1024 42.296 1024h518.678c-77.913-60.104-126.887-151.374-126.887-258.226zM120.209 144.696c4.452-11.13 13.356-20.035 24.487-20.035h320.556c15.583-2.226 31.165 13.356 31.165 31.165 2.226 20.035-11.13 35.617-26.713 37.844H149.148c-11.13 0-20.035-4.453-26.713-15.583-6.678-8.904-6.678-22.26-2.226-33.391z m0 207.026c4.452-11.13 13.356-17.809 24.487-20.035h320.556c15.583-2.226 28.94 13.356 31.165 31.165s-11.13 35.618-26.713 37.844H149.148c-11.13 0-20.035-4.453-26.713-15.583-6.678-8.904-6.678-22.26-2.226-33.391z m160.278 253.774h-131.34c-15.582 2.226-31.164-13.357-31.164-31.166-2.226-20.034 11.13-35.617 26.713-37.843h131.339c15.582 0 28.939 13.356 31.165 31.165 0 20.035-11.13 35.618-26.713 37.844zM825.878 705.67h51.2V819.2h-51.2z" p-id="46987" fill="#2c2c2c"></path><path d="M946.087 574.33c-51.2-48.973-117.983-75.687-186.991-73.46-142.47 2.226-258.226 120.208-256 264.904 0 142.47 117.982 258.226 262.678 258.226S1024 906.017 1024 761.322c0-69.009-26.713-135.792-77.913-186.992z m-182.54 282.713h-40.069l-73.46-117.982v117.982h-37.844V667.826h37.843l75.687 117.983V665.6h37.844v191.443zM914.923 819.2c0 20.035-17.809 37.843-37.844 37.843h-51.2c-20.035 0-37.843-17.808-37.843-37.843V705.67c0-20.035 17.808-37.844 37.843-37.844h51.2c20.035 0 37.844 17.809 37.844 37.844V819.2z" p-id="46988" fill="#2c2c2c"></path></svg>
|
After Width: | Height: | Size: 1.8 KiB |
1
src/assets/icons/svg/workordername.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1712830110092" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="50774" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M827.860697 91.701493c28.137075 0 50.945274 22.808199 50.945273 50.945273v743.800995c0 28.137075-22.808199 50.945274-50.945273 50.945274H201.233831c-28.137075 0-50.945274-22.808199-50.945274-50.945274V142.646766c0-28.137075 22.808199-50.945274 50.945274-50.945273h626.626866z m-91.044299 591.235184h-422.845771a30.567164 30.567164 0 0 0-30.567164 30.567164v2.430089a30.567164 30.567164 0 0 0 30.567164 30.567165h422.845771a30.567164 30.567164 0 0 0 30.567164-30.567165v-2.430089a30.567164 30.567164 0 0 0-30.567164-30.567164z m-127.363184-199.868498h-295.482587a30.567164 30.567164 0 0 0-30.567164 30.567164v2.43009a30.567164 30.567164 0 0 0 30.567164 30.567164h295.482587a30.567164 30.567164 0 0 0 30.567164-30.567164v-2.43009a30.567164 30.567164 0 0 0-30.567164-30.567164z m-127.363184-199.868497h-168.119403a30.567164 30.567164 0 0 0-30.567164 30.567164v2.430089a30.567164 30.567164 0 0 0 30.567164 30.567165h168.119403a30.567164 30.567164 0 0 0 30.567164-30.567165v-2.430089a30.567164 30.567164 0 0 0-30.567164-30.567164z" fill="#2c2c2c" p-id="50775"></path></svg>
|
After Width: | Height: | Size: 1.4 KiB |
@ -7,6 +7,8 @@ import './assets/styles/element-variables.scss'
|
|||||||
|
|
||||||
import '@/assets/styles/index.scss' // global css
|
import '@/assets/styles/index.scss' // global css
|
||||||
import '@/assets/styles/ruoyi.scss' // ruoyi css
|
import '@/assets/styles/ruoyi.scss' // ruoyi css
|
||||||
|
import '../public/print-lock.css'
|
||||||
|
|
||||||
import App from './App'
|
import App from './App'
|
||||||
import store from './store'
|
import store from './store'
|
||||||
import router from './router'
|
import router from './router'
|
||||||
|
@ -246,6 +246,20 @@ export const dynamicRoutes = [
|
|||||||
meta: {title: '出厂检验', activeMenu: '/mes/qc/pendinginspect/oqc'}
|
meta: {title: '出厂检验', activeMenu: '/mes/qc/pendinginspect/oqc'}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '/print/pt',
|
||||||
|
component: Layout,
|
||||||
|
hidden: true,
|
||||||
|
permissions: ['print:template:edit'],
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: 'edit',
|
||||||
|
component: () => import("@/views/print/printtemplate/index"),
|
||||||
|
name: 'printTemplateEdit',
|
||||||
|
meta: {title: '打印模板编辑',activeMenu: '/print/printtemplate/edit'}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@
|
|||||||
<el-table-column label="单位" align="center" prop="unitOfMeasure" />
|
<el-table-column label="单位" align="center" prop="unitOfMeasure" />
|
||||||
<el-table-column label="生产进度" align="center" width="200px" >
|
<el-table-column label="生产进度" align="center" width="200px" >
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-progress :text-inside="true" :stroke-width="20" :percentage="parseFloat(((scope.row.quantityProduced/scope.row.quantity*100).toFixed(2)))"></el-progress>
|
<el-progress :text-inside="true" :stroke-width="20" :percentage="parseFloat(((scope.row.quantityProduced/scope.row.quantity*100).toFixed(2)))>100?100:parseFloat(((scope.row.quantityProduced/scope.row.quantity*100).toFixed(2)))"></el-progress>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column label="需求日期" align="center" prop="requestDate" width="180">
|
<el-table-column label="需求日期" align="center" prop="requestDate" width="180">
|
||||||
|
7
src/views/mes/md/vendor/index.vue
vendored
@ -120,7 +120,7 @@
|
|||||||
icon="el-icon-upload2"
|
icon="el-icon-upload2"
|
||||||
size="mini"
|
size="mini"
|
||||||
@click="handleImport"
|
@click="handleImport"
|
||||||
v-hasPermi="['system:user:import']"
|
v-hasPermi="['mes:md:vendor:import']"
|
||||||
>导入</el-button>
|
>导入</el-button>
|
||||||
</el-col>
|
</el-col>
|
||||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
@ -605,6 +605,11 @@ export default {
|
|||||||
this.upload.title = "供应商导入";
|
this.upload.title = "供应商导入";
|
||||||
this.upload.open = true;
|
this.upload.open = true;
|
||||||
},
|
},
|
||||||
|
/**下载导入模板 */
|
||||||
|
exportTemplate() {
|
||||||
|
this.download('mes/md/vendor/exportTemplate', {
|
||||||
|
}, `vendor_template_${new Date().getTime()}.xlsx`)
|
||||||
|
},
|
||||||
/** 下载模板操作 */
|
/** 下载模板操作 */
|
||||||
importTemplate() {
|
importTemplate() {
|
||||||
this.download('mes/md/vendor/importTemplate', {
|
this.download('mes/md/vendor/importTemplate', {
|
||||||
|
351
src/views/print/printerconfig/index.vue
Normal file
@ -0,0 +1,351 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
plain
|
||||||
|
icon="el-icon-plus"
|
||||||
|
size="mini"
|
||||||
|
@click="handleAdd"
|
||||||
|
v-hasPermi="['print:printerconfig:add']"
|
||||||
|
>新增</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="success"
|
||||||
|
plain
|
||||||
|
icon="el-icon-edit"
|
||||||
|
size="mini"
|
||||||
|
:disabled="single"
|
||||||
|
@click="handleUpdate"
|
||||||
|
v-hasPermi="['print:printerconfig:edit']"
|
||||||
|
>修改</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="danger"
|
||||||
|
plain
|
||||||
|
icon="el-icon-delete"
|
||||||
|
size="mini"
|
||||||
|
:disabled="multiple"
|
||||||
|
@click="handleDelete"
|
||||||
|
v-hasPermi="['print:printerconfig:remove']"
|
||||||
|
>删除</el-button>
|
||||||
|
</el-col>
|
||||||
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
|
</el-row>
|
||||||
|
<el-table v-loading="loading" :data="printerconfigList" @selection-change="handleSelectionChange">
|
||||||
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
|
<el-table-column label="打印机类型" align="center" prop="printerType">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag :options="dict.type.mes_printer_type" :value="scope.row.printerType"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="打印机名称" align="center" prop="printerName" />
|
||||||
|
<el-table-column label="品牌" align="center" prop="brand" />
|
||||||
|
<el-table-column label="型号" align="center" prop="printerModel" />
|
||||||
|
<el-table-column label="连接类型" align="center" prop="connectionType">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag :options="dict.type.mes_conn_type" :value="scope.row.connectionType"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="打印机IP" align="center" prop="printerIp" />
|
||||||
|
<el-table-column label="打印机端口" align="center" prop="printerPort" />
|
||||||
|
<el-table-column label="客户端SID" align="center" prop="clientSid" />
|
||||||
|
<el-table-column label="客户端IP" align="center" prop="clientIp" />
|
||||||
|
<el-table-column label="客户端端口" align="center" prop="clientPort" />
|
||||||
|
<el-table-column label="启用状态" align="center" prop="enableFlag">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag :options="dict.type.sys_yes_no" :value="scope.row.enableFlag"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="打印机状态" align="center" prop="status">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<dict-tag :options="dict.type.mes_printer_status" :value="scope.row.status"/>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-edit"
|
||||||
|
@click="handleUpdate(scope.row)"
|
||||||
|
v-hasPermi="['print:printerconfig:edit']"
|
||||||
|
>修改</el-button>
|
||||||
|
<el-button
|
||||||
|
size="mini"
|
||||||
|
type="text"
|
||||||
|
icon="el-icon-delete"
|
||||||
|
@click="handleDelete(scope.row)"
|
||||||
|
v-hasPermi="['print:printerconfig:remove']"
|
||||||
|
>删除</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
|
||||||
|
<pagination
|
||||||
|
v-show="total>0"
|
||||||
|
:total="total"
|
||||||
|
:page.sync="queryParams.pageNum"
|
||||||
|
:limit.sync="queryParams.pageSize"
|
||||||
|
@pagination="getList"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<!-- 添加或修改打印机配置对话框 -->
|
||||||
|
<el-dialog :title="title" :visible.sync="open" width="960px" append-to-body>
|
||||||
|
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
|
||||||
|
<el-row>
|
||||||
|
<el-col span="8">
|
||||||
|
<el-form-item label="打印机类型" prop="printerType">
|
||||||
|
<el-select v-model="form.printerType" placeholder="请选择打印机类型">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in dict.type.mes_printer_type"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col span="16">
|
||||||
|
<el-form-item label="打印机名称" prop="printerName">
|
||||||
|
<el-input v-model="form.printerName" placeholder="请输入打印机名称" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col span="8">
|
||||||
|
<el-form-item label="品牌" prop="brand">
|
||||||
|
<el-input v-model="form.brand" placeholder="请输入品牌" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col span="8">
|
||||||
|
<el-form-item label="型号" prop="printerModel">
|
||||||
|
<el-input v-model="form.printerModel" placeholder="请输入型号" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col span="8">
|
||||||
|
<el-form-item label="连接类型">
|
||||||
|
<el-radio-group v-model="form.connectionType">
|
||||||
|
<el-radio
|
||||||
|
v-for="dict in dict.type.mes_conn_type"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.value"
|
||||||
|
>{{dict.label}}</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col span="8">
|
||||||
|
<el-form-item label="打印机IP" prop="printerIp">
|
||||||
|
<el-input v-model="form.printerIp" placeholder="请输入打印机IP" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col span="8">
|
||||||
|
<el-form-item label="打印机端口" prop="printerPort">
|
||||||
|
<el-input v-model="form.printerPort" placeholder="请输入打印机端口" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col span="8">
|
||||||
|
<el-form-item label="启用状态" prop="enableFlag">
|
||||||
|
<el-input v-model="form.enableFlag" placeholder="请输入启用状态" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col span="8">
|
||||||
|
<el-form-item label="客户端SID" prop="clientSid">
|
||||||
|
<el-input v-model="form.clientSid" placeholder="请输入打印客户端SID" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col span="8">
|
||||||
|
<el-form-item label="客户端IP" prop="clientIp">
|
||||||
|
<el-input v-model="form.clientIp" placeholder="请输入打印客户端IP" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col span="8">
|
||||||
|
<el-form-item label="客户端端口" prop="clientPort">
|
||||||
|
<el-input v-model="form.clientPort" placeholder="请输入打印客户端端口" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col span="12">
|
||||||
|
<el-form-item label="图片URL" prop="printerUrl">
|
||||||
|
<el-input v-model="form.printerUrl" placeholder="请输入图片URL" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col span="12">
|
||||||
|
<el-form-item label="打印机状态">
|
||||||
|
<el-radio-group v-model="form.status">
|
||||||
|
<el-radio
|
||||||
|
v-for="dict in dict.type.mes_printer_status"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.value"
|
||||||
|
>{{dict.label}}</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col span="24">
|
||||||
|
<el-form-item label="备注" prop="remark">
|
||||||
|
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||||
|
<el-button @click="cancel">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { listPrinterconfig, getPrinterconfig, delPrinterconfig, addPrinterconfig, updatePrinterconfig } from "@/api/print/printerconfig";
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: "Printerconfig",
|
||||||
|
dicts: ['mes_printer_status', 'mes_printer_type', 'mes_conn_type'],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
// 遮罩层
|
||||||
|
loading: true,
|
||||||
|
// 选中数组
|
||||||
|
ids: [],
|
||||||
|
// 非单个禁用
|
||||||
|
single: true,
|
||||||
|
// 非多个禁用
|
||||||
|
multiple: true,
|
||||||
|
// 显示搜索条件
|
||||||
|
showSearch: true,
|
||||||
|
// 总条数
|
||||||
|
total: 0,
|
||||||
|
// 打印机配置表格数据
|
||||||
|
printerconfigList: [],
|
||||||
|
// 弹出层标题
|
||||||
|
title: "",
|
||||||
|
// 是否显示弹出层
|
||||||
|
open: false,
|
||||||
|
// 查询参数
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
printerType: null, printerName: null, brand: null, printerModel: null, connectionType: null, printerUrl: null, printerIp: null, printerPort: null, clientSid: null, clientIp: null, clientPort: null, enableFlag: null, status: null, },
|
||||||
|
// 表单参数
|
||||||
|
form: {},
|
||||||
|
// 表单校验
|
||||||
|
rules: {
|
||||||
|
printerName: [
|
||||||
|
{ required: true, message: "打印机名称不能为空", trigger: "blur" }
|
||||||
|
], }
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
/** 查询打印机配置列表 */
|
||||||
|
getList() {
|
||||||
|
this.loading = true;
|
||||||
|
listPrinterconfig(this.queryParams).then(response => {
|
||||||
|
this.printerconfigList = response.rows;
|
||||||
|
this.total = response.total;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
// 取消按钮
|
||||||
|
cancel() {
|
||||||
|
this.open = false;
|
||||||
|
this.reset();
|
||||||
|
},
|
||||||
|
// 表单重置
|
||||||
|
reset() {
|
||||||
|
this.form = {
|
||||||
|
printerId: null, printerType: null, printerName: null, brand: null, printerModel: null, connectionType: "0", printerUrl: null, printerIp: null, printerPort: null, clientSid: null, clientIp: null, clientPort: null, enableFlag: null, status: "0", remark: null, attr1: null, attr2: null, attr3: null, attr4: null, createBy: null, createTime: null, updateBy: null, updateTime: null };
|
||||||
|
this.resetForm("form");
|
||||||
|
},
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
handleQuery() {
|
||||||
|
this.queryParams.pageNum = 1;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
resetQuery() {
|
||||||
|
this.resetForm("queryForm");
|
||||||
|
this.handleQuery();
|
||||||
|
},
|
||||||
|
// 多选框选中数据
|
||||||
|
handleSelectionChange(selection) {
|
||||||
|
this.ids = selection.map(item => item.printerId)
|
||||||
|
this.single = selection.length!==1
|
||||||
|
this.multiple = !selection.length
|
||||||
|
},
|
||||||
|
/** 新增按钮操作 */
|
||||||
|
handleAdd() {
|
||||||
|
this.reset();
|
||||||
|
this.open = true;
|
||||||
|
this.title = "添加打印机配置";
|
||||||
|
},
|
||||||
|
/** 修改按钮操作 */
|
||||||
|
handleUpdate(row) {
|
||||||
|
this.reset();
|
||||||
|
const printerId = row.printerId || this.ids
|
||||||
|
getPrinterconfig(printerId).then(response => {
|
||||||
|
this.form = response.data;
|
||||||
|
this.open = true;
|
||||||
|
this.title = "修改打印机配置";
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 提交按钮 */
|
||||||
|
submitForm() {
|
||||||
|
this.$refs["form"].validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
if (this.form.printerId != null) {
|
||||||
|
updatePrinterconfig(this.form).then(response => {
|
||||||
|
this.$modal.msgSuccess("修改成功");
|
||||||
|
this.open = false;
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
addPrinterconfig(this.form).then(response => {
|
||||||
|
this.$modal.msgSuccess("新增成功");
|
||||||
|
this.open = false;
|
||||||
|
this.getList();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
handleDelete(row) {
|
||||||
|
const printerIds = row.printerId || this.ids;
|
||||||
|
this.$modal.confirm('是否确认删除打印机配置编号为"' + printerIds + '"的数据项?').then(function() {
|
||||||
|
return delPrinterconfig(printerIds);
|
||||||
|
}).then(() => {
|
||||||
|
this.getList();
|
||||||
|
this.$modal.msgSuccess("删除成功");
|
||||||
|
}).catch(() => {});
|
||||||
|
},
|
||||||
|
/** 导出按钮操作 */
|
||||||
|
handleExport() {
|
||||||
|
this.download('print/printerconfig/export', {
|
||||||
|
...this.queryParams
|
||||||
|
}, `printerconfig_${new Date().getTime()}.xlsx`)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style lang="scss" scoped>
|
||||||
|
|
||||||
|
.printer-card{
|
||||||
|
width: 300px;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
1
src/views/print/printtemplate/alignBottom.svg
Normal file
@ -0,0 +1 @@
|
|||||||
|
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1712823957090" class="icon" viewBox="0 0 1170 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="7474" xmlns:xlink="http://www.w3.org/1999/xlink" width="228.515625" height="200"><path d="M1170.285714 987.428571a36.571429 36.571429 0 0 0-36.571428-36.571428H36.571429a36.571429 36.571429 0 0 0 0 73.142857h1097.142857a36.571429 36.571429 0 0 0 36.571428-36.571429z m-219.428571-146.285714v-512a36.571429 36.571429 0 0 0-36.571429-36.571428h-219.428571a36.571429 36.571429 0 0 0-36.571429 36.571428v512a36.571429 36.571429 0 0 0 36.571429 36.571429h219.428571a36.571429 36.571429 0 0 0 36.571429-36.571429z m-438.857143 0V36.571429a36.571429 36.571429 0 0 0-36.571429-36.571429h-219.428571a36.571429 36.571429 0 0 0-36.571429 36.571429v804.571428a36.571429 36.571429 0 0 0 36.571429 36.571429h219.428571a36.571429 36.571429 0 0 0 36.571429-36.571429z" fill="#ffffff" p-id="7475"></path></svg>
|
After Width: | Height: | Size: 1.0 KiB |
38
src/views/print/printtemplate/font-size.js
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
export default (function () {
|
||||||
|
function t() {
|
||||||
|
this.name = "fontSize"; // 重写的参数 key
|
||||||
|
}
|
||||||
|
// 涉及修改元素样式, 添加一个 css 方法
|
||||||
|
return t.prototype.css = function (t, e) {
|
||||||
|
if (t && t.length) {
|
||||||
|
if (e) return t.css("font-size", e + "pt"), "font-size:" + e + "pt";
|
||||||
|
t[0].style.fontSize = "";
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
},
|
||||||
|
// 创建 DOM
|
||||||
|
t.prototype.createTarget = function () {
|
||||||
|
let list = [8, 9, 10, 11, 12, 14, 16, 18, 20, 22, 24, 26, 28, 36, 48, 72];
|
||||||
|
let fontSizeList = '\n <option value="" >默认</option>';
|
||||||
|
list.forEach(function (e) {
|
||||||
|
fontSizeList += '\n <option value="' + e + '">' + e + 'pt</option>';
|
||||||
|
})
|
||||||
|
this.target = $(' <div class="hiprint-option-item">\n <div class="hiprint-option-item-label">\n 字体大小\n </div>\n <div class="hiprint-option-item-field">\n <select class="auto-submit"> </select>\n </div>\n </div>');
|
||||||
|
this.target.find(".auto-submit").append($(fontSizeList));
|
||||||
|
return this.target;
|
||||||
|
},
|
||||||
|
// 获取值
|
||||||
|
t.prototype.getValue = function () {
|
||||||
|
var t = this.target.find("select").val();
|
||||||
|
if (t) return parseFloat(t.toString());
|
||||||
|
},
|
||||||
|
// 设置值
|
||||||
|
t.prototype.setValue = function (t) {
|
||||||
|
t && (this.target.find('option[value="' + t + '"]').length || this.target.find("select").prepend('<option value="' + t + '" >' + t + "</option>"));
|
||||||
|
this.target.find("select").val(t);
|
||||||
|
},
|
||||||
|
// 销毁 DOM
|
||||||
|
t.prototype.destroy = function () {
|
||||||
|
this.target.remove();
|
||||||
|
}, t;
|
||||||
|
}())
|
1025
src/views/print/printtemplate/index.vue
Normal file
353
src/views/print/printtemplate/list.vue
Normal file
@ -0,0 +1,353 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
|
||||||
|
<el-form-item label="模板编号" prop="templateCode">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.templateCode"
|
||||||
|
placeholder="请输入模板编号"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="模板名称" prop="templateName">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.templateName"
|
||||||
|
placeholder="请输入模板名称"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="模板类型" prop="templateType">
|
||||||
|
<el-select v-model="queryParams.templateType" placeholder="请选择模板类型" clearable>
|
||||||
|
<el-option label="请选择字典生成" value="" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="启用状态" prop="enableFlag">
|
||||||
|
<el-input
|
||||||
|
v-model="queryParams.enableFlag"
|
||||||
|
placeholder="请输入启用状态"
|
||||||
|
clearable
|
||||||
|
@keyup.enter.native="handleQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item>
|
||||||
|
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
|
||||||
|
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
plain
|
||||||
|
icon="el-icon-plus"
|
||||||
|
size="mini"
|
||||||
|
@click="handleAdd"
|
||||||
|
v-hasPermi="['template:template:add']"
|
||||||
|
>新增</el-button>
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
|
||||||
|
<el-row>
|
||||||
|
<el-col
|
||||||
|
:span="6"
|
||||||
|
style="margin-bottom: 10px"
|
||||||
|
:offset="1"
|
||||||
|
>
|
||||||
|
<el-card class="templateCard" >
|
||||||
|
<div @click="handleAdd()" style="text-align: center; margin-top: 90px;">
|
||||||
|
<svg-icon icon-class="add" style="width: 100px; height: 100px;"></svg-icon>
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
|
</el-col>
|
||||||
|
<el-col
|
||||||
|
v-for="item in templateList"
|
||||||
|
:key="item.templateId"
|
||||||
|
:span="6"
|
||||||
|
style="margin-bottom: 10px"
|
||||||
|
:offset="1"
|
||||||
|
>
|
||||||
|
<el-card class="templateCard">
|
||||||
|
<div slot="header" class="clearfix">
|
||||||
|
<span style="margin-left: 5px">{{
|
||||||
|
item.templateName
|
||||||
|
}}</span>
|
||||||
|
<div
|
||||||
|
style="display: inline-block; float: right; cursor: pointer"
|
||||||
|
@click="handleDelete(item)"
|
||||||
|
>
|
||||||
|
<el-tooltip effect="dark" content="删除模板" placement="top">
|
||||||
|
<i class="el-icon-delete" style="margin-left: 15px" />
|
||||||
|
</el-tooltip>
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
style="display: inline-block; float: right; cursor: pointer"
|
||||||
|
@click="handleEdit(item)"
|
||||||
|
>
|
||||||
|
<el-tooltip effect="dark" content="编辑模板" placement="top">
|
||||||
|
<i class="el-icon-edit-outline" style="margin-left: 15px" />
|
||||||
|
</el-tooltip>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div style="margin-bottom: 10px;">
|
||||||
|
<el-image :src="item.templatePic" fit="fill">
|
||||||
|
</el-image>
|
||||||
|
</div>
|
||||||
|
</el-card>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<!-- 添加或修改打印模板配置对话框 -->
|
||||||
|
<el-dialog :title="title" :visible.sync="open" width="960px" append-to-body>
|
||||||
|
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="模板编号" prop="templateCode">
|
||||||
|
<el-input v-model="form.templateCode" placeholder="请输入模板编号" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="4">
|
||||||
|
<el-form-item label-width="80">
|
||||||
|
<el-switch v-model="autoGenFlag"
|
||||||
|
active-color="#13ce66"
|
||||||
|
active-text="自动生成"
|
||||||
|
@change="handleAutoGenChange(autoGenFlag)" v-if="optType != 'view'">
|
||||||
|
</el-switch>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span=12>
|
||||||
|
<el-form-item label="模板名称" prop="templateName">
|
||||||
|
<el-input v-model="form.templateName" placeholder="请输入模板名称" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="模板类型" prop="templateType">
|
||||||
|
<el-select v-model="form.templateType" placeholder="请选择模板类型">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in dict.type.print_template_type"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="16">
|
||||||
|
<el-form-item label="纸张类型" prop="paperType">
|
||||||
|
<el-select v-model="form.paperType" placeholder="请选择纸张类型">
|
||||||
|
<el-option
|
||||||
|
v-for="dict in dict.type.print_paper_type"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.label"
|
||||||
|
:value="dict.value"
|
||||||
|
></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="是否默认" prop="isDefault">
|
||||||
|
<el-radio-group v-model="form.isDefault">
|
||||||
|
<el-radio
|
||||||
|
v-for="dict in dict.type.sys_yes_no"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.value"
|
||||||
|
>{{dict.label}}</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
<el-form-item label="启用状态" prop="enableFlag">
|
||||||
|
<el-radio-group v-model="form.enableFlag">
|
||||||
|
<el-radio
|
||||||
|
v-for="dict in dict.type.sys_yes_no"
|
||||||
|
:key="dict.value"
|
||||||
|
:label="dict.value"
|
||||||
|
>{{dict.label}}</el-radio>
|
||||||
|
</el-radio-group>
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="8">
|
||||||
|
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="24">
|
||||||
|
<el-form-item label="备注" prop="remark">
|
||||||
|
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
|
||||||
|
</el-form-item>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||||
|
<el-button @click="cancel">取 消</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { listTemplate, getTemplate, delTemplate, addTemplate, updateTemplate } from "@/api/print/template";
|
||||||
|
import {genCode} from "@/api/system/autocode/rule"
|
||||||
|
export default {
|
||||||
|
name: "Template",
|
||||||
|
dicts: ['print_template_type','sys_yes_no','print_paper_type'],
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
//自动生成编码
|
||||||
|
autoGenFlag:false,
|
||||||
|
optType: undefined,
|
||||||
|
// 遮罩层
|
||||||
|
loading: true,
|
||||||
|
// 选中数组
|
||||||
|
ids: [],
|
||||||
|
// 非单个禁用
|
||||||
|
single: true,
|
||||||
|
// 非多个禁用
|
||||||
|
multiple: true,
|
||||||
|
// 显示搜索条件
|
||||||
|
showSearch: true,
|
||||||
|
// 总条数
|
||||||
|
total: 0,
|
||||||
|
// 打印模板配置表格数据
|
||||||
|
templateList: [],
|
||||||
|
// 弹出层标题
|
||||||
|
title: "",
|
||||||
|
// 是否显示弹出层
|
||||||
|
open: false,
|
||||||
|
// 查询参数
|
||||||
|
queryParams: {
|
||||||
|
pageNum: 1,
|
||||||
|
pageSize: 10,
|
||||||
|
templateCode: null, templateName: null, templateType: null, templateJson: null, paperType: null, templateWidth: null, templateHeight: null, isDefault: null, enableFlag: null, templatePic: null },
|
||||||
|
// 表单参数
|
||||||
|
form: {},
|
||||||
|
// 表单校验
|
||||||
|
rules: {
|
||||||
|
templateCode: [
|
||||||
|
{ required: true, message: "模板编号不能为空", trigger: "blur" }
|
||||||
|
],
|
||||||
|
templateName: [
|
||||||
|
{ required: true, message: "模板名称不能为空", trigger: "blur" }
|
||||||
|
], templateType: [
|
||||||
|
{ required: true, message: "模板类型不能为空", trigger: "change" }
|
||||||
|
], paperType: [
|
||||||
|
{ required: true, message: "请选择纸张类型", trigger: "change" }
|
||||||
|
]}
|
||||||
|
};
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
/** 查询打印模板配置列表 */
|
||||||
|
getList() {
|
||||||
|
this.loading = true;
|
||||||
|
listTemplate(this.queryParams).then(response => {
|
||||||
|
debugger;
|
||||||
|
this.templateList = response.rows;
|
||||||
|
this.total = response.total;
|
||||||
|
this.loading = false;
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
// 取消按钮
|
||||||
|
cancel() {
|
||||||
|
this.open = false;
|
||||||
|
this.reset();
|
||||||
|
},
|
||||||
|
// 表单重置
|
||||||
|
reset() {
|
||||||
|
this.form = {
|
||||||
|
templateId: null, templateCode: null, templateName: null, templateType: null, templateJson: null, paperType: null, templatePic: null, templateWidth: 1, templateHeight: 1, isDefault: 'Y', enableFlag: 'Y', remark: null, attr1: null, attr2: null, attr3: null, attr4: null, createBy: null, createTime: null, updateBy: null, updateTime: null, templatePic: null };
|
||||||
|
this.resetForm("form");
|
||||||
|
},
|
||||||
|
/** 搜索按钮操作 */
|
||||||
|
handleQuery() {
|
||||||
|
this.queryParams.pageNum = 1;
|
||||||
|
this.getList();
|
||||||
|
},
|
||||||
|
/** 重置按钮操作 */
|
||||||
|
resetQuery() {
|
||||||
|
this.resetForm("queryForm");
|
||||||
|
this.handleQuery();
|
||||||
|
},
|
||||||
|
|
||||||
|
/** 新增按钮操作 */
|
||||||
|
handleAdd() {
|
||||||
|
this.reset();
|
||||||
|
this.open = true;
|
||||||
|
this.title = "添加打印模板";
|
||||||
|
},
|
||||||
|
handleEdit(item){
|
||||||
|
this.$router.push({name: 'printTemplateEdit', params: item});
|
||||||
|
},
|
||||||
|
/** 删除按钮操作 */
|
||||||
|
handleDelete(item) {
|
||||||
|
const templateIds = item.templateId || this.ids;
|
||||||
|
this.$modal.confirm('是否确认删除打印模板配置编号为"' + templateIds + '"的数据项?').then(function() {
|
||||||
|
return delTemplate(templateIds);
|
||||||
|
}).then(() => {
|
||||||
|
this.getList();
|
||||||
|
this.$modal.msgSuccess("删除成功");
|
||||||
|
}).catch(() => {});
|
||||||
|
},
|
||||||
|
/** 提交按钮 */
|
||||||
|
submitForm() {
|
||||||
|
this.$refs["form"].validate(valid => {
|
||||||
|
if (valid) {
|
||||||
|
addTemplate(this.form).then(response => {
|
||||||
|
debugger;
|
||||||
|
this.$modal.msgSuccess("新增成功");
|
||||||
|
this.open = false;
|
||||||
|
this.form.templateId = response.data.templateId;
|
||||||
|
this.$router.push({name: 'printTemplateEdit', params: this.form});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
//自动生成模板编码
|
||||||
|
handleAutoGenChange(autoGenFlag){
|
||||||
|
debugger;
|
||||||
|
if(autoGenFlag){
|
||||||
|
genCode('PRINT_TEMPLATE_CODE').then(response =>{
|
||||||
|
this.form.templateCode = response;
|
||||||
|
});
|
||||||
|
}else{
|
||||||
|
this.form.templateCode = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
<style>
|
||||||
|
|
||||||
|
.cardGroup {
|
||||||
|
margin-top: 50px;
|
||||||
|
display: flex;
|
||||||
|
height: 400px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.templateCard {
|
||||||
|
border: solid 1px;
|
||||||
|
width: 400px;
|
||||||
|
height: 300px;
|
||||||
|
cursor: pointer;
|
||||||
|
font-size: 12px;
|
||||||
|
position: relative;
|
||||||
|
overflow: hidden;
|
||||||
|
color: #666;
|
||||||
|
background: #fff;
|
||||||
|
box-shadow: 4px 4px 40px rgba(0, 0, 0, .05);
|
||||||
|
border-color: rgba(0, 0, 0, .05);
|
||||||
|
border-radius: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.cardHeader {
|
||||||
|
float: right;
|
||||||
|
padding: 2px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
107
src/views/print/printtemplate/panel.js
Normal file
@ -0,0 +1,107 @@
|
|||||||
|
export default {
|
||||||
|
"panels": [{
|
||||||
|
"index": 0,
|
||||||
|
"height": 297,
|
||||||
|
"width": 210,
|
||||||
|
"paperHeader": 0,
|
||||||
|
"paperFooter": 0,
|
||||||
|
// "watermarkOptions": {
|
||||||
|
// "content": "vue-plugin-hiprint",
|
||||||
|
// "rotate": 25,
|
||||||
|
// "timestamp": true,
|
||||||
|
// "format": "YYYY-MM-DD HH:mm"
|
||||||
|
// },
|
||||||
|
"printElements": [{
|
||||||
|
"options": {
|
||||||
|
"left": 175.5,
|
||||||
|
"top": 10.5,
|
||||||
|
"height": 27,
|
||||||
|
"width": 259,
|
||||||
|
"title": "苦糖果标签打印测试",
|
||||||
|
"fontSize": 19,
|
||||||
|
"fontWeight": "600",
|
||||||
|
"textAlign": "center",
|
||||||
|
"lineHeight": 26,
|
||||||
|
"coordinateSync": true,
|
||||||
|
"widthHeightSync": true,
|
||||||
|
"draggable": true,
|
||||||
|
}, "printElementType": {"title": "自定义文本", "type": "text"}
|
||||||
|
}, {
|
||||||
|
"options": {"left": 25.5, "top": 57, "height": 705, "width": 9, "fixed": true, "borderStyle": "dotted"},
|
||||||
|
"printElementType": {"type": "vline"}
|
||||||
|
}, {
|
||||||
|
"options": {"left": 60, "top": 61.5, "height": 48, "width": 87, "src": "", "fit": "contain"},
|
||||||
|
"printElementType": {"title": "图片", "type": "image"}
|
||||||
|
}, {
|
||||||
|
"options": {
|
||||||
|
"left": 60,
|
||||||
|
"top": 285,
|
||||||
|
"height": 56,
|
||||||
|
"width": 511.5,
|
||||||
|
"field": "table",
|
||||||
|
"tableFooterRepeat": "",
|
||||||
|
"fields": [{"text":'id',"field":'id'},{"text":'姓名',"field":'name'},{"text":'性别',"field":'gender'},{"text":'数量',"field":'count'}],
|
||||||
|
"columns": [[{"width": 85.25, "colspan": 1, "rowspan": 1, "checked": true}, {
|
||||||
|
"title": "性别",
|
||||||
|
"field": "gender",
|
||||||
|
"width": 85.25,
|
||||||
|
"colspan": 1,
|
||||||
|
"rowspan": 1,
|
||||||
|
"checked": false
|
||||||
|
}, {
|
||||||
|
"title": "姓名",
|
||||||
|
"field": "name",
|
||||||
|
"width": 85.25,
|
||||||
|
"align": "center",
|
||||||
|
"colspan": 1,
|
||||||
|
"rowspan": 1,
|
||||||
|
"checked": true,
|
||||||
|
"tableSummary": "count"
|
||||||
|
}, {
|
||||||
|
"title": "数量",
|
||||||
|
"field": "count",
|
||||||
|
"width": 85.25,
|
||||||
|
"align": "center",
|
||||||
|
"colspan": 1,
|
||||||
|
"rowspan": 1,
|
||||||
|
"checked": true,
|
||||||
|
"tableSummary": "sum"
|
||||||
|
}, {
|
||||||
|
"width": 85.25,
|
||||||
|
"colspan": 1,
|
||||||
|
"rowspan": 1,
|
||||||
|
"checked": true
|
||||||
|
}, {"width": 85.25, "colspan": 1, "rowspan": 1, "checked": true}]]
|
||||||
|
}, "printElementType": {
|
||||||
|
"title": "表格", "type": "table",
|
||||||
|
// editable: true,
|
||||||
|
// columnDisplayEditable: true,//列显示是否能编辑
|
||||||
|
// columnDisplayIndexEditable: true,//列顺序显示是否能编辑
|
||||||
|
// columnTitleEditable: true,//列标题是否能编辑
|
||||||
|
// columnResizable: true, //列宽是否能调整
|
||||||
|
// columnAlignEditable: true,//列对齐是否调整
|
||||||
|
// isEnableEditField: true, //编辑字段
|
||||||
|
// isEnableContextMenu: true, //开启右键菜单 默认true
|
||||||
|
// isEnableInsertRow: true, //插入行
|
||||||
|
// isEnableDeleteRow: true, //删除行
|
||||||
|
// isEnableInsertColumn: true, //插入列
|
||||||
|
// isEnableDeleteColumn: true, //删除列
|
||||||
|
// isEnableMergeCell: true, //合并单元格
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
"options": {"left": 475.5, "top": 565.5, "height": 100, "width": 100},
|
||||||
|
"printElementType": {"title": "矩形", "type": "rect"}
|
||||||
|
}, {
|
||||||
|
"options": {"left": 60, "top": 574.5, "height": 100, "width": 10},
|
||||||
|
"printElementType": {"title": "竖线", "type": "vline"}
|
||||||
|
}, {
|
||||||
|
"options": {"left": 130.5, "top": 625.5, "height": 10, "width": 277},
|
||||||
|
"printElementType": {"title": "横线", "type": "hline"}
|
||||||
|
}, {
|
||||||
|
"options": {"left": 12, "top": 786, "height": 49, "width": 49},
|
||||||
|
"printElementType": {"title": "html", "type": "html"}
|
||||||
|
}],
|
||||||
|
//"paperNumberLeft": 565.5,
|
||||||
|
//"paperNumberTop": 819
|
||||||
|
}]
|
||||||
|
}
|
140
src/views/print/printtemplate/preview.vue
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
<template>
|
||||||
|
<el-dialog :visible="visible" v-loading="spinning" :maskClosable="false"
|
||||||
|
@cancel="hideModal" :width="80+'vw'">
|
||||||
|
|
||||||
|
<div v-show="isMultiPanel" id="template-preview-printPagination" style="margin: 14px 0 0 10px;"></div>
|
||||||
|
<el-row>
|
||||||
|
<el-col :span="18">
|
||||||
|
<el-card class="card-design">
|
||||||
|
<div id="template-preview"></div>
|
||||||
|
</el-card>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="6">
|
||||||
|
<el-card>
|
||||||
|
<div id="template-preview-setting"></div>
|
||||||
|
</el-card>
|
||||||
|
</el-col>
|
||||||
|
</el-row>
|
||||||
|
<template slot="title">
|
||||||
|
<div>
|
||||||
|
<div style="margin-right: 20px">模板预览</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
<template slot="footer">
|
||||||
|
<el-button key="close" type="info" @click="hideModal">
|
||||||
|
关闭
|
||||||
|
</el-button>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import {hiprint} from 'vue-plugin-hiprint';
|
||||||
|
|
||||||
|
let hiprintTemplate;
|
||||||
|
export default {
|
||||||
|
name: "templatePreview",
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
visible: false,
|
||||||
|
spinning: true,
|
||||||
|
waitShowPrinter: false,
|
||||||
|
template: null,
|
||||||
|
isMultiPanel: true,
|
||||||
|
// 模板
|
||||||
|
hiprintTemplate: {},
|
||||||
|
// 数据
|
||||||
|
name: '名称',
|
||||||
|
json: {},
|
||||||
|
printData: {},
|
||||||
|
// 扩展 css
|
||||||
|
extendCss: ''
|
||||||
|
}
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
hideModal() {
|
||||||
|
this.visible = false
|
||||||
|
$("link[media=print]").empty();
|
||||||
|
},
|
||||||
|
show(template) {
|
||||||
|
let that = this;
|
||||||
|
this.visible = true
|
||||||
|
this.spinning = true
|
||||||
|
this.template = template
|
||||||
|
debugger;
|
||||||
|
this.name = template.name
|
||||||
|
this.json = template.json
|
||||||
|
this.printData = template.printData
|
||||||
|
this.extendCss = template.extendCss || "";
|
||||||
|
if (this.extendCss.length > 1) {
|
||||||
|
$(this.extendCss).appendTo($("link[media=print]"));
|
||||||
|
}
|
||||||
|
let isMounted = $('#template-preview').length <= 0 || $('#template-preview-setting').length <= 0;
|
||||||
|
do {
|
||||||
|
setTimeout(() => {
|
||||||
|
$('#template-preview').empty()
|
||||||
|
that.hiprintTemplate = hiprintTemplate = new hiprint.PrintTemplate({
|
||||||
|
template: template.json,
|
||||||
|
settingContainer: '#template-preview-setting',
|
||||||
|
paginationContainer: '#template-preview-printPagination'
|
||||||
|
})
|
||||||
|
hiprintTemplate.design($('#template-preview'))
|
||||||
|
that.isMultiPanel = template.lastJson.panels.length > 1
|
||||||
|
console.log('isMultiPanel', that.isMultiPanel)
|
||||||
|
that.spinning = false
|
||||||
|
}, 200)
|
||||||
|
return
|
||||||
|
} while (isMounted)
|
||||||
|
},
|
||||||
|
print() {
|
||||||
|
let that = this;
|
||||||
|
this.waitShowPrinter = true
|
||||||
|
this.hiprintTemplate.print(this.printData, {}, {
|
||||||
|
callback: () => {
|
||||||
|
this.waitShowPrinter = false
|
||||||
|
},
|
||||||
|
styleHandler: () => {
|
||||||
|
return that.extendCss
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
toPdf() {
|
||||||
|
let that = this;
|
||||||
|
this.hiprintTemplate.toPdf(this.printData, this.name, {
|
||||||
|
styleHandler: () => {
|
||||||
|
return that.extendCss
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
print2() {
|
||||||
|
if (hiprint.hiwebSocket.opened) {
|
||||||
|
let that = this;
|
||||||
|
this.hiprintTemplate.print2(this.printData, {
|
||||||
|
printer: '', title: this.name,
|
||||||
|
styleHandler: () => {
|
||||||
|
return that.extendCss
|
||||||
|
}
|
||||||
|
})
|
||||||
|
} else
|
||||||
|
this.$message.error('请先连接直接打印客户端')
|
||||||
|
},
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
</script>
|
||||||
|
<style scoped>
|
||||||
|
.card-design {
|
||||||
|
overflow: hidden;
|
||||||
|
overflow-x: auto;
|
||||||
|
overflow-y: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/deep/ .ant-modal-body {
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/deep/ .ant-modal-content {
|
||||||
|
margin-bottom: 24px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
52
src/views/print/printtemplate/print-data.js
Normal file
52
src/views/print/printtemplate/printData.js
Normal file
31
src/views/print/printtemplate/scale.js
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
export default (function () {
|
||||||
|
function t() {
|
||||||
|
// json模板 options 对应键值 key
|
||||||
|
this.name = "scale";
|
||||||
|
}
|
||||||
|
// 涉及修改元素样式, 添加一个 css 方法
|
||||||
|
// t: 元素对象, e 参数值
|
||||||
|
return t.prototype.css = function (t, e) {
|
||||||
|
if (t && t.length) {
|
||||||
|
if (e) return t.css('transform', 'scale(' + e + ')');
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
},
|
||||||
|
// 创建 DOM
|
||||||
|
t.prototype.createTarget = function (t, i, e) { // t: 元素对象,i: 元素options, e: 元素printElementType
|
||||||
|
return this.target = $('<div class="hiprint-option-item">\n <div class="hiprint-option-item-label">\n 缩放\n </div>\n <div class="hiprint-option-item-field">\n <input type="number" value="1" step="0.1" min="0.1" max="3" class="auto-submit"/>\n </div>\n </div>'), this.target;
|
||||||
|
},
|
||||||
|
// 获取值
|
||||||
|
t.prototype.getValue = function () {
|
||||||
|
var t = this.target.find("input").val();
|
||||||
|
if (t) return parseFloat(t.toString());
|
||||||
|
},
|
||||||
|
// 设置值
|
||||||
|
t.prototype.setValue = function (t) { // t: options 对应键的值
|
||||||
|
this.target.find("input").val(t);
|
||||||
|
},
|
||||||
|
// 销毁 DOM
|
||||||
|
t.prototype.destroy = function () {
|
||||||
|
this.target.remove();
|
||||||
|
}, t;
|
||||||
|
}())
|
227
src/views/print/printtemplate/templateedit.vue
Normal file
@ -0,0 +1,227 @@
|
|||||||
|
<template>
|
||||||
|
<div class="flex-col">
|
||||||
|
<el-row :gutter="10" class="mb8">
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
plain
|
||||||
|
icon="el-icon-plus"
|
||||||
|
size="mini"
|
||||||
|
@click="handleAdd"
|
||||||
|
v-hasPermi="['print:printerconfig:add']"
|
||||||
|
>保存</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="success"
|
||||||
|
plain
|
||||||
|
icon="el-icon-edit"
|
||||||
|
size="mini"
|
||||||
|
:disabled="single"
|
||||||
|
@click="handleUpdate"
|
||||||
|
v-hasPermi="['print:printerconfig:edit']"
|
||||||
|
>打印</el-button>
|
||||||
|
</el-col>
|
||||||
|
<el-col :span="1.5">
|
||||||
|
<el-button
|
||||||
|
type="danger"
|
||||||
|
plain
|
||||||
|
icon="el-icon-delete"
|
||||||
|
size="mini"
|
||||||
|
:disabled="multiple"
|
||||||
|
@click="handleDelete"
|
||||||
|
v-hasPermi="['print:printerconfig:remove']"
|
||||||
|
>取消</el-button>
|
||||||
|
</el-col>
|
||||||
|
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||||
|
</el-row>
|
||||||
|
<el-row>
|
||||||
|
<el-col span="4">
|
||||||
|
<div class="flex-2 left">
|
||||||
|
<div class="flex-row justify-center flex-wrap">
|
||||||
|
<div class="title">基础元素</div>
|
||||||
|
<div class="ep-draggable-item item" tid="defaultModule.text">
|
||||||
|
<i class="iconfont sv-text" />
|
||||||
|
<span>文本</span>
|
||||||
|
</div>
|
||||||
|
<div class="ep-draggable-item item" tid="defaultModule.image">
|
||||||
|
<i class="iconfont sv-image" />
|
||||||
|
<span>图片</span>
|
||||||
|
</div>
|
||||||
|
<div class="ep-draggable-item item" tid="defaultModule.longText">
|
||||||
|
<i class="iconfont sv-longText" />
|
||||||
|
<span>长文</span>
|
||||||
|
</div>
|
||||||
|
<div class="ep-draggable-item item" tid="defaultModule.table">
|
||||||
|
<i class="iconfont sv-table" />
|
||||||
|
<span>表格</span>
|
||||||
|
</div>
|
||||||
|
<div class="ep-draggable-item item" tid="defaultModule.html">
|
||||||
|
<i class="iconfont sv-html" />
|
||||||
|
<span>html</span>
|
||||||
|
</div>
|
||||||
|
<div class="ep-draggable-item item" tid="defaultModule.customText">
|
||||||
|
<i class="iconfont sv-text" />
|
||||||
|
<span>自定义</span>
|
||||||
|
</div>
|
||||||
|
<div class="title">辅助元素</div>
|
||||||
|
<div class="ep-draggable-item item" tid="defaultModule.hline">
|
||||||
|
<i class="iconfont sv-hline" />
|
||||||
|
<span>横线</span>
|
||||||
|
</div>
|
||||||
|
<div class="ep-draggable-item item" tid="defaultModule.vline">
|
||||||
|
<i class="iconfont sv-vline" />
|
||||||
|
<span>竖线</span>
|
||||||
|
</div>
|
||||||
|
<div class="ep-draggable-item item" tid="defaultModule.rect">
|
||||||
|
<i class="iconfont sv-rect" />
|
||||||
|
<span>矩形</span>
|
||||||
|
</div>
|
||||||
|
<div class="ep-draggable-item item" tid="defaultModule.oval">
|
||||||
|
<i class="iconfont sv-oval" />
|
||||||
|
<span>圆形</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</el-col>
|
||||||
|
<el-col span="16">
|
||||||
|
<div id="hiprint-printTemplate"></div>
|
||||||
|
</el-col>
|
||||||
|
<el-row span="4">
|
||||||
|
<!-- 元素参数的 容器 -->
|
||||||
|
<div id="PrintElementOptionSetting"></div>
|
||||||
|
</el-row>
|
||||||
|
</el-row>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import { hiprint, defaultElementTypeProvider } from "vue-plugin-hiprint";
|
||||||
|
export default {
|
||||||
|
name: "start-01",
|
||||||
|
created(){
|
||||||
|
// 初始化 provider
|
||||||
|
hiprint.init({
|
||||||
|
providers: [defaultElementTypeProvider()],
|
||||||
|
});
|
||||||
|
},
|
||||||
|
mounted(){
|
||||||
|
this.buildLeftElement();
|
||||||
|
this.buildDesigner();
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
/**
|
||||||
|
* 构建左侧可拖拽元素
|
||||||
|
* 注意: 可拖拽元素必须在 hiprint.init() 之后调用
|
||||||
|
* 而且 必须包含 class="ep-draggable-item" 否则无法拖拽进设计器
|
||||||
|
*/
|
||||||
|
buildLeftElement(){
|
||||||
|
// eslint-disable-next-line no-undef
|
||||||
|
hiprint.PrintElementTypeManager.buildByHtml($(".ep-draggable-item"));
|
||||||
|
},
|
||||||
|
/**
|
||||||
|
* 构建设计器
|
||||||
|
* 注意: 必须要在 onMounted 中去构建
|
||||||
|
* 因为都是把元素挂载到对应容器中, 必须要先找到该容器
|
||||||
|
*/
|
||||||
|
buildDesigner(){
|
||||||
|
debugger;
|
||||||
|
let hiprintTemplate;
|
||||||
|
// eslint-disable-next-line no-undef
|
||||||
|
$("#hiprint-printTemplate").empty(); // 先清空, 避免重复构建
|
||||||
|
hiprintTemplate = new hiprint.PrintTemplate({
|
||||||
|
settingContainer: "#PrintElementOptionSetting", // 元素参数容器
|
||||||
|
});
|
||||||
|
// 构建 并填充到 容器中
|
||||||
|
// 可以先 console.log($("#hiprint-printTemplate")) 看看是否有该 dom
|
||||||
|
hiprintTemplate.design("#hiprint-printTemplate");
|
||||||
|
},
|
||||||
|
}
|
||||||
|
};
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
/* 重写全局 hiprint 样式 */
|
||||||
|
.hiprint-headerLine,
|
||||||
|
.hiprint-footerLine {
|
||||||
|
border-color: purple !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-headerLine:hover,
|
||||||
|
.hiprint-footerLine:hover {
|
||||||
|
border-top: 3px dashed purple !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-headerLine:hover:before {
|
||||||
|
content: "页眉线";
|
||||||
|
left: calc(50% - 18px);
|
||||||
|
position: relative;
|
||||||
|
background: #ffff;
|
||||||
|
top: -14px;
|
||||||
|
color: purple;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hiprint-footerLine:hover:before {
|
||||||
|
content: "页脚线";
|
||||||
|
left: calc(50% - 18px);
|
||||||
|
position: relative;
|
||||||
|
color: purple;
|
||||||
|
background: #ffff;
|
||||||
|
top: -14px;
|
||||||
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
<style scoped>
|
||||||
|
/* 区域 */
|
||||||
|
.left {
|
||||||
|
background: white;
|
||||||
|
border-radius: 4px;
|
||||||
|
border: 1px solid #d9d9d9;
|
||||||
|
padding: 10px 0;
|
||||||
|
box-shadow: 2px 2px 2px 0px rgb(128 0 128 / 20%);
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
.center {
|
||||||
|
margin: 0 10px;
|
||||||
|
background: white;
|
||||||
|
border-radius: 4px;
|
||||||
|
border: 1px solid #d9d9d9;
|
||||||
|
padding: 20px;
|
||||||
|
box-shadow: 2px 2px 2px 0px rgb(128 0 128 / 20%);
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
.right {
|
||||||
|
background: white;
|
||||||
|
border-radius: 4px;
|
||||||
|
border: 1px solid #d9d9d9;
|
||||||
|
padding: 10px 0;
|
||||||
|
box-shadow: 2px 2px 2px 0px rgb(128 0 128 / 20%);
|
||||||
|
overflow: auto;
|
||||||
|
}
|
||||||
|
/* 左侧拖拽元素样式 */
|
||||||
|
.title {
|
||||||
|
font-size: 16px;
|
||||||
|
font-weight: 500;
|
||||||
|
width: 100%;
|
||||||
|
margin: 10px 0 0 24px;
|
||||||
|
}
|
||||||
|
.item {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
align-items: center;
|
||||||
|
background: white;
|
||||||
|
padding: 4px 10px;
|
||||||
|
margin: 10px 8px 4px 8px;
|
||||||
|
width: 38%;
|
||||||
|
min-height: 60px;
|
||||||
|
border-radius: 4px;
|
||||||
|
box-shadow: 2px 2px 2px 2px rgba(171, 171, 171, 0.2);
|
||||||
|
}
|
||||||
|
.item .iconfont {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
}
|
||||||
|
.item span {
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
</style>
|