222 lines
7.4 KiB
JavaScript
222 lines
7.4 KiB
JavaScript
|
|
var App = Vue.createApp({
|
|
data() {
|
|
return {
|
|
// LabelEditor: {
|
|
// ...LabelData
|
|
// },
|
|
template,
|
|
variableIndex: null,
|
|
elementIndex: null
|
|
}
|
|
},
|
|
methods: {
|
|
async SaveTemplate() {
|
|
await LabelApi.PUT('template', {
|
|
templateId: this.template.id,
|
|
name: this.template.name,
|
|
width: this.template.width,
|
|
height: this.template.height
|
|
});
|
|
|
|
let toast = bootstrap.Toast.getOrCreateInstance(toastTemplateSaved)
|
|
toast.show()
|
|
|
|
await GetLabelData();
|
|
},
|
|
async AddVariable() {
|
|
this.template.variables.push({
|
|
id: null,
|
|
name: 'new variable',
|
|
label: 'unknown variable',
|
|
regex: '^.*$',
|
|
example: '',
|
|
default: ''
|
|
});
|
|
|
|
this.variableIndex = this.template.variables.length - 1;
|
|
|
|
$('#VariableSettingsModal').modal('show');
|
|
},
|
|
async EditVariable(Index) {
|
|
this.variableIndex = Index;
|
|
$('#VariableSettingsModal').modal('show');
|
|
},
|
|
async SaveVariable(Index) {
|
|
if (this.template.variables[Index].id == null) {
|
|
await LabelApi.POST('variable', {
|
|
templateId: this.template.id,
|
|
name: this.template.variables[Index].name,
|
|
label: this.template.variables[Index].label,
|
|
regex: this.template.variables[Index].regex,
|
|
example: this.template.variables[Index].example,
|
|
default: this.template.variables[Index].default
|
|
});
|
|
} else {
|
|
await LabelApi.PUT('variable', {
|
|
variableId: this.template.variables[Index].id,
|
|
name: this.template.variables[Index].name,
|
|
label: this.template.variables[Index].label,
|
|
regex: this.template.variables[Index].regex,
|
|
example: this.template.variables[Index].example,
|
|
default: this.template.variables[Index].default
|
|
});
|
|
}
|
|
$('#VariableSettingsModal').modal('hide');
|
|
await GetLabelData();
|
|
},
|
|
async DeleteVariable(Index, finaly = false) {
|
|
if (finaly) {
|
|
$('#DeleteVariableModal').modal('hide');
|
|
await LabelApi.DELETE('variable', {
|
|
variableId: this.template.variables[Index].id
|
|
});
|
|
this.variableIndex = null;
|
|
await GetLabelData();
|
|
} else {
|
|
this.variableIndex = Index;
|
|
$('#DeleteVariableModal').modal('show');
|
|
}
|
|
},
|
|
async AddElement(ElementType) {
|
|
let elementConfig = {};
|
|
|
|
if (ElementType == 'text') {
|
|
elementConfig = {
|
|
...elementConfig,
|
|
fontType: '0',
|
|
fontHeight: 10,
|
|
content: '<%- VarName %> or Plain Text'
|
|
}
|
|
}
|
|
|
|
if (ElementType == 'box') {
|
|
elementConfig = {
|
|
...elementConfig,
|
|
width: 20,
|
|
height: 10,
|
|
borderWidth: 1,
|
|
borderColor: 'B',
|
|
borderRadius: 0
|
|
}
|
|
}
|
|
|
|
if (ElementType == 'ellipse') {
|
|
elementConfig = {
|
|
...elementConfig,
|
|
width: 20,
|
|
height: 10,
|
|
borderWidth: 1,
|
|
borderColor: 'B'
|
|
}
|
|
}
|
|
|
|
if (ElementType == 'code39') {
|
|
elementConfig = {
|
|
...elementConfig,
|
|
codeHeight: 30,
|
|
codeWidth: 2,
|
|
widthRatio: 3.0,
|
|
content: '<%- VarName %> or Plain Text'
|
|
}
|
|
}
|
|
|
|
if (ElementType == 'code128') {
|
|
elementConfig = {
|
|
...elementConfig,
|
|
codeHeight: 30,
|
|
codeWidth: 2,
|
|
widthRatio: 3.0,
|
|
content: '<%- VarName %> or Plain Text'
|
|
}
|
|
}
|
|
|
|
this.template.elements.push({
|
|
name: 'new ' + ElementType,
|
|
type: ElementType,
|
|
config: {
|
|
originX: 0,
|
|
originY: 0,
|
|
originAlign: 0,
|
|
...elementConfig
|
|
}
|
|
});
|
|
|
|
this.elementIndex = this.template.elements.length - 1;
|
|
|
|
$('#ElementSettingsModal').modal('show');
|
|
},
|
|
async EditElement(Index) {
|
|
this.elementIndex = Index;
|
|
$('#ElementSettingsModal').modal('show');
|
|
},
|
|
async SaveElement(Index) {
|
|
if (this.template.elements[Index].id == null) {
|
|
await LabelApi.POST('element', {
|
|
templateId: this.template.id,
|
|
name: this.template.elements[Index].name,
|
|
type: this.template.elements[Index].type,
|
|
config: this.template.elements[Index].config,
|
|
comment: this.template.elements[Index].comment
|
|
});
|
|
} else {
|
|
await LabelApi.PUT('element', {
|
|
elementId: this.template.elements[Index].id,
|
|
name: this.template.elements[Index].name,
|
|
type: this.template.elements[Index].type,
|
|
config: this.template.elements[Index].config,
|
|
comment: this.template.elements[Index].comment
|
|
});
|
|
}
|
|
$('#ElementSettingsModal').modal('hide');
|
|
await GetLabelData();
|
|
},
|
|
async DeleteElement(Index, finaly = false) {
|
|
if (finaly) {
|
|
$('#DeleteElementModal').modal('hide');
|
|
await LabelApi.DELETE('element', {
|
|
elementId: this.template.elements[Index].id
|
|
});
|
|
this.elementIndex = null;
|
|
await GetLabelData();
|
|
} else {
|
|
this.elementIndex = Index;
|
|
$('#DeleteElementModal').modal('show');
|
|
}
|
|
},
|
|
GetElementTypeName(ElementType) {
|
|
switch (ElementType) {
|
|
case 'text':
|
|
return 'Text';
|
|
break;
|
|
case 'box':
|
|
return 'Graphical Box';
|
|
break;
|
|
case 'ellipse':
|
|
return 'Graphical Ellipse';
|
|
break;
|
|
case 'code39':
|
|
return 'Code 39';
|
|
break;
|
|
case 'code128':
|
|
return 'Code 128';
|
|
break;
|
|
default:
|
|
return 'Unknown';
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}).mount('main');
|
|
|
|
|
|
async function GetLabelData() {
|
|
App.variableIndex = null;
|
|
App.elementIndex = null;
|
|
|
|
let template = await LabelApi.GET(`template/${App.template.id}`);
|
|
App.template = template;
|
|
}
|
|
|
|
|
|
const toastTemplateSaved = document.getElementById('toast-template-saved')
|