diff --git a/demo/default.yaml b/demo/default.yaml index 2ed6064b8d1e2b39e7fceaf12dc77c23f1fcd94a..cde48b7b914f67267bc9c1900e0e9ab8a8236615 100644 --- a/demo/default.yaml +++ b/demo/default.yaml @@ -95,7 +95,7 @@ fields: - field: field_length # 指定宽度。 range: 1-99 # 01\t,02\t,03\t..., 99\t - length: 3 # 不包含前后缀的宽度。 + length: 3 # 包含前后缀的宽度。 leftpad: 0 # 宽度不够时,补充的字符。 postfix: "\t" diff --git a/src/server/service/common.go b/src/server/service/common.go index e684c8ebea72783e60dce0411875b65074889379..7d1b57184930c63c45e5d98bbcb94f53ec04e3b3 100644 --- a/src/server/service/common.go +++ b/src/server/service/common.go @@ -45,18 +45,27 @@ func genFieldFromZdField(treeNode model.ZdField, refer model.ZdRefer, field *mod // deal with refer if refer.Type != "" { logUtils.PrintTo(refer.Type) + if refer.Type == "excel" { field.From = refer.File field.Select = refer.ColName field.Where = refer.Condition } else if refer.Type == constant.ResTypeRanges || refer.Type == constant.ResTypeInstances { // medium{2} - field.From = refer.File - field.Use = refer.ColName - if refer.Count > 0 { - field.Use = fmt.Sprintf("%s{%d}", refer.ColName, refer.Count) + arr := strings.Split(refer.ColName, ",") + arrNew := make([]string, 0) + + for _, item := range arr { + if refer.Count > 0 { + item = fmt.Sprintf("%s{%d}", item, refer.Count) + } + + arrNew = append(arrNew, item) } + field.From = refer.File + field.Use = strings.Join(arrNew, ",") + } else if refer.Type == constant.ResTypeYaml { // dir/content.yaml{3} arr := strings.Split(refer.File, ",") arrNew := make([]string, 0) diff --git a/src/server/service/def.go b/src/server/service/def.go index cfd3ea85333da56b5f8a1dfebef359f94003aff5..e075617625477cf145d93ae55f4091ca5119c451 100644 --- a/src/server/service/def.go +++ b/src/server/service/def.go @@ -290,7 +290,6 @@ func (s *DefService) saveFieldToDB(field *model.ZdField, def model.ZdDef, currPa } } else if field.Range != "" { - rangeSections := gen.ParseRangeProperty(field.Range) if len(rangeSections) > 0 { rangeSection := rangeSections[0] // deal with yaml and text refer using range prop diff --git a/tmp/cache/.data.db b/tmp/cache/.data.db index 1140ffd7945588e14c1b0b60d5d01485c521495c..2df5547b9fe5d9abef276feac983cb0d5eb9eb5b 100644 Binary files a/tmp/cache/.data.db and b/tmp/cache/.data.db differ diff --git a/ui/src/components/FieldRefer.vue b/ui/src/components/FieldRefer.vue index ce88424c5c26a3a8b76382fca3947724be85537a..bb25066977745a4ba9827c3176ab56df137158b4 100644 --- a/ui/src/components/FieldRefer.vue +++ b/ui/src/components/FieldRefer.vue @@ -39,8 +39,7 @@ - - {{$t('tips.pls.select')}} + {{ f.name }} @@ -116,6 +115,7 @@ export default { refer: {}, referFiles: [], // for range's multi values + referColNames: [], // for ranges and instances refer to multi values rules: { }, @@ -159,6 +159,13 @@ export default { } else { return '' } + }, + fieldMultiple() { + if (this.refer.type === 'ranges' || this.refer.type === 'instances') { + return 'multiple' + } else { + return '' + } } }, created () { @@ -180,8 +187,11 @@ export default { getRefer(this.model.id, this.type).then(json => { console.log('getRefer', json) this.refer = json.data - this.referFiles = this.refer.file.split(',').map((fi) => { - return fi.split(':')[0] + this.referFiles = this.refer.file.split(',').map((file) => { + return file.split(':')[0] + }) + this.referColNames = this.refer.colName.split(',').map((col) => { + return col.split(':')[0] }) this.removeSheet() @@ -223,18 +233,16 @@ export default { } if (this.refer.type == 'text' || this.refer.type == 'yaml') { - // const temp = this.referFiles.map((fi) => { - // if (this.refer.rand) { - // fi += ':R' - // } else if (this.refer.step > 1) { - // fi += ':' + this.refer.step - // } - // return fi - // }) this.refer.file = this.referFiles.join(',') + this.refer.colName = this.referColNames console.log(this.refer.file) + } else if (this.refer.type == 'ranges' || this.refer.type == 'instances') { + this.refer.colName = this.referColNames.join(',') + this.refer.file = this.referFiles + console.log(this.refer.colName) } else { this.refer.file = this.referFiles + this.refer.colName = this.referColNames } let data = JSON.parse(JSON.stringify(this.refer)) @@ -273,6 +281,7 @@ export default { } } else { this.referFiles = [] + this.referColNames = [] this.refer.file = '' this.refer.sheet = '' this.refer.colName = ''