Browse Source

子标签可以直接使用父标签流水号

master
han\hanst 6 months ago
parent
commit
313f6a2fc1
  1. 6
      src/api/labelSetting/label_setting.js
  2. 6
      src/views/modules/labelSetting/LabelDesigner.vue
  3. 4
      src/views/modules/labelSetting/com_add_update_default_label.vue
  4. 65
      src/views/modules/labelSetting/components/PropertyForm.vue
  5. 14
      src/views/modules/labelSetting/components/ZPLPreview.vue

6
src/api/labelSetting/label_setting.js

@ -32,3 +32,9 @@ export const exportRealDataPreviewToPdf = (data) => {
}
export const availableFont = data => createAPI('/font/available','post',data)
// 获取父标签信息
export const getParentLabelInfo = data => createAPI('/label/setting/getParentLabelInfo','get',data)
// 获取父标签流水号元素
export const getParentSerialElements = data => createAPI('/label/setting/getParentSerialElements','get',data)

6
src/views/modules/labelSetting/LabelDesigner.vue

@ -447,10 +447,10 @@ export default {
const { data } = await getZplElements({ reportId: this.labelNo })
if (data.code === 200) {
//
const defaultElement = {
const defaultElement = {reportId: '',
type: '', x: 0, y: 0, data: '', fontSize: 30, bold: false, newline: false, lineRows: 2,
lineWidth: 200, digits: 6, step: 1, width: 100, height: 30, previewUrl: '', barcodeType: '', showContent: true, showElement: true,
showMainSeq: false, seqName: '', isChecked: false, decimalPlaces: '', showDecimalPlaces: false, thousandsSeparator: false,
showMainSeq: false,parentSerialLabelNo:'', seqName: '', isChecked: false, decimalPlaces: '', showDecimalPlaces: false, thousandsSeparator: false,
//
fontFamily: 'default', textAlign: 'left', letterSpacing: 0, fontItalic: false, fontUnderline: false
};
@ -555,6 +555,8 @@ export default {
data: '流水号', //
fontSize: 30,
showMainSeq: false,
parentSerialLabelNo:'',
reportId: this.labelNo
}
}

4
src/views/modules/labelSetting/com_add_update_default_label.vue

@ -205,10 +205,6 @@ export default {
this.$message.success(this.labels.labelTypeCantBeNull);
return false;
}
if(labelName == null || labelName === ''){
this.$message.success(this.labels.labelNameCantBeNull);
return false;
}
//
if(this.pageData.addFlag === 'Y'){
this.insertLabelSettingData();

65
src/views/modules/labelSetting/components/PropertyForm.vue

@ -481,18 +481,18 @@
<!-- 流水号属性 -->
<div v-else-if="element.type === 'serialNumber'" class="form-section">
<el-form label-position="top" size="small">
<!-- <div class="form-row">
<div class="form-row">
<el-form-item label="名称" class="form-item-half">
<el-input v-model="element.seqName" controls-position="right" size="mini"/>
</el-form-item>
<el-form-item label="主标签流水码" class="form-item-half">
<el-radio-group v-model="element.showMainSeq" size="mini">
<el-radio :label="true"></el-radio>
<el-radio :label="false"></el-radio>
</el-radio-group>
<el-form-item v-if="parentSerialElements.length>0" label="父标签流水号" class="form-item-half">
<el-select clearable v-model="element.parentSerialLabelNo" size="mini" style="width: 100%;" filterable >
<el-option v-for="item in parentSerialElements" :key="item.label_no" :label="(item.seq_name?item.seq_name:'')+'('+item.data+')'"
:value="item.label_no"></el-option>
</el-select>
</el-form-item>
</div>-->
<div class="form-row" v-if="!element.showMainSeq">
</div>
<div class="form-row" v-if="!element.parentSerialLabelNo">
<el-form-item label="位数" class="form-item-half">
<el-input
v-model="element.digits"
@ -515,7 +515,7 @@
</el-form-item>
</div>
<div class="form-row" v-if="!element.showMainSeq">
<div class="form-row" v-if="!element.parentSerialLabelNo">
<el-form-item label="字体大小" class="form-item-half">
<el-input
v-model="element.fontSize"
@ -530,7 +530,7 @@
<el-checkbox v-model="element.bold" size="middle"></el-checkbox>
</el-form-item>
</div>
<div class="form-row" v-if="!element.showMainSeq">
<div class="form-row" v-if="!element.parentSerialLabelNo">
<el-form-item label="流水号规则" class="form-item-half">
<el-input v-model="element.data" placeholder="请输入流水号规则" @focus="$emit('data-source', element)"/>
</el-form-item>
@ -550,7 +550,7 @@
<script>
import comShowLabelSerialInfo from "../com_show_label_serial_info";
import { availableFont } from '@/api/labelSetting/label_setting.js'
import { availableFont,getParentLabelInfo ,getParentSerialElements} from '@/api/labelSetting/label_setting.js'
export default {
name: 'PropertyForm',
@ -565,7 +565,8 @@ export default {
return {
availableFonts: [],
fontLoading: false,
fontsLoaded: false
fontsLoaded: false,
parentSerialElements: [] //
}
},
computed: {
@ -573,9 +574,7 @@ export default {
if (!this.availableFonts.length) {
return []
}
const groups = {}
this.availableFonts.forEach(font => {
const category = font.category || 'other'
if (!groups[category]) {
@ -609,6 +608,9 @@ export default {
//
this.initializeFontSettings()
if (this.element.type === 'serialNumber') {
this.getParentLabelInfo()
}
},
watch: {
//
@ -619,9 +621,44 @@ export default {
this.$refs.fileInput.value = ''
}
})
},
'element'() {
//
this.$nextTick(() => {
if (this.element.type === 'serialNumber') {
this.getParentLabelInfo()
}
})
}
},
methods: {
//
async getParentLabelInfo() {
if (!this.element.reportId) return null
try {
// 使API
const response = await getParentLabelInfo({ labelNo: this.element.reportId })
if (response && response.data.code === 200) {
const parentInfo = response.data.data
if (parentInfo && parentInfo.parentLabelNo) {
const response2 = await getParentSerialElements({ labelNo: parentInfo.parentLabelNo })
if (response2.data && response2.data.code === 200) {
this.parentSerialElements = response2.data.data || []
} else {
// API使
this.parentSerialElements = []
}
}
} else {
// API使
this.parentSerialElements = []
}
} catch (error) {
console.error('获取父标签信息失败:', error)
this.parentSerialElements = []
}
},
onDataTypeChange(newType) {
//
if (newType === 'date') {

14
src/views/modules/labelSetting/components/ZPLPreview.vue

@ -354,10 +354,10 @@ export default {
try {
// 1.
await this.autoSave()
/* await this.autoSave()
// 2.
await new Promise(resolve => setTimeout(resolve, 500))
await new Promise(resolve => setTimeout(resolve, 500))*/
// 3. API
const response = await previewLabelWithRealData({
@ -372,11 +372,17 @@ export default {
this.$message.success('真实数据预览生成成功')
} else {
this.$message.error((response.data && response.data.msg) || '真实数据预览失败')
this.$alert((response.data && response.data.msg), '错误', {
confirmButtonText: '确定'
})
//this.$message.error((response.data && response.data.msg) || '')
}
} catch (error) {
console.error('真实数据预览失败:', error)
this.$message.error('真实数据预览失败: ' + (error.message || '网络错误'))
this.$alert(error.message, '错误', {
confirmButtonText: '确定'
})
//this.$message.error(': ' + (error.message || ''))
} finally {
this.realDataPreviewLoading = false
}

Loading…
Cancel
Save