|
|
|
@ -133,6 +133,7 @@ |
|
|
|
:visible="dataSourceVisible" |
|
|
|
:data-keys="dataKeys" |
|
|
|
:current-text="currentElementText" |
|
|
|
:source-type="sourceType" |
|
|
|
@update:visible="dataSourceVisible = $event" |
|
|
|
@confirm="handleDataSourceConfirm" |
|
|
|
/> |
|
|
|
@ -172,6 +173,7 @@ export default { |
|
|
|
}, |
|
|
|
data() { |
|
|
|
return { |
|
|
|
sourceType: 'text', // 数据源类型,默认为文本 |
|
|
|
labelNo: '', |
|
|
|
showGrid: true, |
|
|
|
snapToGrid: true, |
|
|
|
@ -440,6 +442,8 @@ export default { |
|
|
|
}, |
|
|
|
|
|
|
|
handleDrop(dropData) { |
|
|
|
console.log('主设计器接收到拖拽数据:', dropData) // 调试信息 |
|
|
|
|
|
|
|
if (!this.labelNo) { |
|
|
|
this.$alert('标签编号不可为空!', '错误', { |
|
|
|
confirmButtonText: '确定' |
|
|
|
@ -448,10 +452,17 @@ export default { |
|
|
|
} |
|
|
|
|
|
|
|
const newElement = this.createNewElement(dropData) |
|
|
|
console.log('创建的新元素:', newElement) // 调试信息 |
|
|
|
|
|
|
|
this.elements.push(newElement) |
|
|
|
|
|
|
|
// 自动选中新添加的元素 |
|
|
|
this.selectedIndex = this.elements.length - 1 |
|
|
|
}, |
|
|
|
|
|
|
|
createNewElement({ type, x, y }) { |
|
|
|
console.log('创建新元素:', { type, x, y }) // 调试信息 |
|
|
|
|
|
|
|
const baseElement = { |
|
|
|
type, |
|
|
|
x, |
|
|
|
@ -461,24 +472,65 @@ export default { |
|
|
|
bold: false, |
|
|
|
newline: false, |
|
|
|
lineRows: 2, |
|
|
|
lineWidth: 200 |
|
|
|
lineWidth: 200, |
|
|
|
digits: 6, |
|
|
|
step: 1, |
|
|
|
} |
|
|
|
|
|
|
|
// 根据类型设置默认尺寸 |
|
|
|
// 根据类型设置默认尺寸和特殊属性 |
|
|
|
const sizeConfig = { |
|
|
|
text: { width: 100, height: 30 }, |
|
|
|
barcode: { width: 3, height: 50 }, |
|
|
|
onecode: { width: 3, height: 50 }, |
|
|
|
qrcode: { width: 10, height: 10 }, |
|
|
|
pic: { width: 100, height: 100 }, |
|
|
|
hLine: { width: 400, height: 3 }, |
|
|
|
vLine: { width: 3, height: 400 } |
|
|
|
text: { |
|
|
|
width: 100, |
|
|
|
height: 30, |
|
|
|
data: '文本元素' |
|
|
|
}, |
|
|
|
barcode: { |
|
|
|
width: 3, |
|
|
|
height: 50, |
|
|
|
data: '123456789' |
|
|
|
}, |
|
|
|
onecode: { |
|
|
|
width: 3, |
|
|
|
height: 50, |
|
|
|
data: '123456789' |
|
|
|
}, |
|
|
|
qrcode: { |
|
|
|
width: 10, |
|
|
|
height: 10, |
|
|
|
data: 'QR Code' |
|
|
|
}, |
|
|
|
pic: { |
|
|
|
width: 100, |
|
|
|
height: 100 |
|
|
|
}, |
|
|
|
hLine: { |
|
|
|
width: 400, |
|
|
|
height: 3 |
|
|
|
}, |
|
|
|
vLine: { |
|
|
|
width: 3, |
|
|
|
height: 400 |
|
|
|
}, |
|
|
|
serialNumber: { |
|
|
|
width: 120, |
|
|
|
height: 30, |
|
|
|
digits: 6, |
|
|
|
step: 1, |
|
|
|
data: '流水号', // 默认显示值 |
|
|
|
fontSize: 30 |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
return { |
|
|
|
const config = sizeConfig[type] || { width: 100, height: 30 } |
|
|
|
|
|
|
|
const newElement = { |
|
|
|
...baseElement, |
|
|
|
...sizeConfig[type] |
|
|
|
...config |
|
|
|
} |
|
|
|
|
|
|
|
console.log('新元素配置:', newElement) // 调试信息 |
|
|
|
|
|
|
|
return newElement |
|
|
|
}, |
|
|
|
|
|
|
|
handleElementSelect(index) { |
|
|
|
@ -639,7 +691,7 @@ export default { |
|
|
|
// 预览逻辑由PropertyPanel处理 |
|
|
|
}, |
|
|
|
|
|
|
|
async handleDataSource(currentText) { |
|
|
|
async handleDataSource(inData) { |
|
|
|
const response = await getViewFieldsByLabelType({ |
|
|
|
labelType: this.labelSettings.labelType, |
|
|
|
site: this.$store.state.user.site |
|
|
|
@ -650,42 +702,18 @@ export default { |
|
|
|
...field, |
|
|
|
fieldDescription: field.fieldDescription || '' |
|
|
|
})); |
|
|
|
this.currentElementText = currentText || '' |
|
|
|
this.currentElementText = inData.data || '' |
|
|
|
this.sourceType = inData.type || 'text' |
|
|
|
this.dataSourceVisible = true |
|
|
|
} else { |
|
|
|
this.$message.error(response.data.msg || '获取字段信息失败'); |
|
|
|
} |
|
|
|
|
|
|
|
/* if (this.elements.length > 0) { |
|
|
|
this.dataKeys = Object.keys(this.elements[0]) |
|
|
|
this.currentElementText = currentText || '' |
|
|
|
this.dataSourceVisible = true |
|
|
|
}*/ |
|
|
|
}, |
|
|
|
|
|
|
|
async loadViewFields() { |
|
|
|
try { |
|
|
|
const response = await getViewFieldsByLabelType({ |
|
|
|
labelType: this.labelSettings.labelType, |
|
|
|
site: this.$store.state.user.site |
|
|
|
}); |
|
|
|
|
|
|
|
if (response.data && response.data.code === 200) { |
|
|
|
this.viewFields = response.data.data.map(field => ({ |
|
|
|
...field, |
|
|
|
fieldDescription: field.fieldDescription || '' |
|
|
|
})); |
|
|
|
} else { |
|
|
|
this.$message.error(response.data.msg || '获取字段信息失败'); |
|
|
|
} |
|
|
|
} catch (error) { |
|
|
|
console.error('获取字段信息失败:', error); |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
handleDataSourceConfirm(selectedKeys) { |
|
|
|
handleDataSourceConfirm(selectedKeys, sourceType) { |
|
|
|
if (this.selectedElement) { |
|
|
|
this.selectedElement.data = selectedKeys.map(key => `#{${key}}`).join('') |
|
|
|
this.selectedElement.data = sourceType==='serialNumber'?selectedKeys.map(key => `${key}`).join('+'): |
|
|
|
selectedKeys.map(key => `#{${key}}`).join('') |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
|