提交 b4aa054c 编写于 作者: aaronchen2k2k's avatar aaronchen2k2k

task #8353

上级 78a4bb33
......@@ -83,8 +83,8 @@ func (s *ConfigService) Remove(id int) (err error) {
if err == gorm.ErrRecordNotFound {
return
}
fileUtils.RemoveExist(old.Path)
fileUtils.RemoveExist(old.Path)
err = s.configRepo.Remove(uint(id))
return
......
......@@ -29,9 +29,11 @@ func (s *DefService) List() (list []*model.ZdDef) {
return
}
func (s *DefService) Get(id int) (def model.ZdDef, err error) {
func (s *DefService) Get(id int) (def model.ZdDef, dirTree model.Dir) {
def, _ = s.defRepo.Get(uint(id))
def.Folder = serverUtils.GetRelativePath(def.Path)
dirTree = model.Dir{Name: fileUtils.AddSepIfNeeded(constant.ResDirUsers)}
serverUtils.GetDirTree(&dirTree)
return
}
......@@ -90,7 +92,7 @@ func (s *DefService) Remove(id int) (err error) {
func (s *DefService) UpdateYaml(defId uint) (err error) {
var def model.ZdDef
def, err = s.Get(int(defId))
def, _ = s.defRepo.Get(defId)
s.dataToYaml(&def)
err = s.defRepo.UpdateYaml(def)
......@@ -136,6 +138,7 @@ func (s *DefService) saveDataToDB(defs []model.ResFile, list []*model.ZdDef) (er
defPo.Type = def.ResType
defPo.Desc = def.Desc
defPo.Path = def.Path
defPo.Folder = serverUtils.GetRelativePath(defPo.Path)
defPo.Yaml = string(content)
s.defRepo.Create(&defPo)
......
......@@ -27,9 +27,12 @@ func (s *ExcelService) List() (list []*model.ZdExcel) {
return
}
func (s *ExcelService) Get(id int) (excel model.ZdExcel) {
func (s *ExcelService) Get(id int) (excel model.ZdExcel, dirTree model.Dir) {
excel, _ = s.excelRepo.Get(uint(id))
dirTree = model.Dir{Name: fileUtils.AddSepIfNeeded(constant.ResDirData)}
serverUtils.GetDirTree(&dirTree)
return
}
......@@ -67,8 +70,8 @@ func (s *ExcelService) Remove(id int) (err error) {
if err == gorm.ErrRecordNotFound {
return
}
fileUtils.RemoveExist(old.Path)
fileUtils.RemoveExist(old.Path)
err = s.excelRepo.Remove(uint(id))
return
}
......
......@@ -30,9 +30,12 @@ func (s *InstancesService) List() (list []*model.ZdInstances) {
return
}
func (s *InstancesService) Get(id int) (instances model.ZdInstances) {
func (s *InstancesService) Get(id int) (instances model.ZdInstances, dirTree model.Dir) {
instances, _ = s.instancesRepo.Get(uint(id))
dirTree = model.Dir{Name: fileUtils.AddSepIfNeeded(constant.ResDirYaml)}
serverUtils.GetDirTree(&dirTree)
return
}
......@@ -77,40 +80,12 @@ func (s *InstancesService) Remove(id int) (err error) {
if err == gorm.ErrRecordNotFound {
return
}
fileUtils.RemoveExist(old.Path)
fileUtils.RemoveExist(old.Path)
err = s.instancesRepo.Remove(uint(id))
return
}
func (s *InstancesService) GetItemTree(instancesId int) (root model.ZdInstancesItem) {
root = s.instancesRepo.GetItemTree(instancesId)
return
}
func (s *InstancesService) GetItem(id int) (item model.ZdInstancesItem) {
item, _ = s.instancesRepo.GetItem(uint(id))
return
}
func (s *InstancesService) CreateItem(domainId, targetId int, mode string) (item *model.ZdInstancesItem, err error) {
item = &model.ZdInstancesItem{Field: "instances_", Note: "", InstancesID: uint(domainId)}
item.Ord = s.instancesRepo.GetMaxOrder(domainId)
err = s.instancesRepo.SaveItem(item)
s.referRepo.CreateDefault(item.ID, constant.ResTypeInstances)
return
}
func (s *InstancesService) SaveItem(item *model.ZdInstancesItem) (err error) {
err = s.instancesRepo.SaveItem(item)
return
}
func (s *InstancesService) RemoveItem(id int) (err error) {
err = s.instancesRepo.RemoveItem(uint(id))
return
}
func (s *InstancesService) dataToYaml(inst *model.ZdInstances) (str string) {
return
......
package serverService
import (
"github.com/easysoft/zendata/src/model"
constant "github.com/easysoft/zendata/src/utils/const"
)
func (s *InstancesService) GetItemTree(instancesId int) (root model.ZdInstancesItem) {
root = s.instancesRepo.GetItemTree(instancesId)
return
}
func (s *InstancesService) GetItem(id int) (item model.ZdInstancesItem) {
item, _ = s.instancesRepo.GetItem(uint(id))
return
}
func (s *InstancesService) CreateItem(domainId, targetId int, mode string) (item *model.ZdInstancesItem, err error) {
item = &model.ZdInstancesItem{Field: "instances_", Note: "", InstancesID: uint(domainId)}
item.Ord = s.instancesRepo.GetMaxOrder(domainId)
err = s.instancesRepo.SaveItem(item)
s.referRepo.CreateDefault(item.ID, constant.ResTypeInstances)
return
}
func (s *InstancesService) SaveItem(item *model.ZdInstancesItem) (err error) {
err = s.instancesRepo.SaveItem(item)
return
}
func (s *InstancesService) RemoveItem(id int) (err error) {
err = s.instancesRepo.RemoveItem(uint(id))
return
}
......@@ -29,9 +29,12 @@ func (s *RangesService) List() (list []*model.ZdRanges) {
return
}
func (s *RangesService) Get(id int) (ranges model.ZdRanges) {
func (s *RangesService) Get(id int) (ranges model.ZdRanges, dirTree model.Dir) {
ranges, _ = s.rangesRepo.Get(uint(id))
dirTree = model.Dir{Name: fileUtils.AddSepIfNeeded(constant.ResDirYaml)}
serverUtils.GetDirTree(&dirTree)
return
}
......@@ -76,47 +79,12 @@ func (s *RangesService) Remove(id int) (err error) {
if err == gorm.ErrRecordNotFound {
return
}
fileUtils.RemoveExist(old.Path)
fileUtils.RemoveExist(old.Path)
err = s.rangesRepo.Remove(uint(id))
return
}
func (s *RangesService) GetItemTree(rangesId int) (root model.ZdRangesItem) {
items, _ := s.rangesRepo.GetItems(rangesId)
root.ID = 0
root.Name = "序列"
for _, item := range items {
item.ParentID = root.ID
root.Children = append(root.Children, item)
}
return
}
func (s *RangesService) GetItem(id int) (item model.ZdRangesItem) {
item, _ = s.rangesRepo.GetItem(uint(id))
return
}
func (s *RangesService) CreateItem(domainId, targetId int, mode string) (item *model.ZdRangesItem, err error) {
item = &model.ZdRangesItem{Name: "ranges_", RangesID: uint(domainId)}
item.Ord = s.rangesRepo.GetMaxOrder(domainId)
err = s.rangesRepo.SaveItem(item)
return
}
func (s *RangesService) SaveItem(item *model.ZdRangesItem) (err error) {
err = s.rangesRepo.SaveItem(item)
return
}
func (s *RangesService) RemoveItem(id int) (err error) {
err = s.rangesRepo.RemoveItem(uint(id))
return
}
func (s *RangesService) dataToYaml(ranges *model.ZdRanges) (str string) {
return
......
package serverService
import (
"github.com/easysoft/zendata/src/model"
)
func (s *RangesService) GetItemTree(rangesId int) (root model.ZdRangesItem) {
items, _ := s.rangesRepo.GetItems(rangesId)
root.ID = 0
root.Name = "序列"
for _, item := range items {
item.ParentID = root.ID
root.Children = append(root.Children, item)
}
return
}
func (s *RangesService) GetItem(id int) (item model.ZdRangesItem) {
item, _ = s.rangesRepo.GetItem(uint(id))
return
}
func (s *RangesService) CreateItem(domainId, targetId int, mode string) (item *model.ZdRangesItem, err error) {
item = &model.ZdRangesItem{Name: "ranges_", RangesID: uint(domainId)}
item.Ord = s.rangesRepo.GetMaxOrder(domainId)
err = s.rangesRepo.SaveItem(item)
return
}
func (s *RangesService) SaveItem(item *model.ZdRangesItem) (err error) {
err = s.rangesRepo.SaveItem(item)
return
}
func (s *RangesService) RemoveItem(id int) (err error) {
err = s.rangesRepo.RemoveItem(uint(id))
return
}
......@@ -27,9 +27,12 @@ func (s *TextService) List() (list []*model.ZdText) {
return
}
func (s *TextService) Get(id int) (text model.ZdText) {
func (s *TextService) Get(id int) (text model.ZdText, dirTree model.Dir) {
text, _ = s.textRepo.Get(uint(id))
dirTree = model.Dir{Name: fileUtils.AddSepIfNeeded(constant.ResDirYaml)}
serverUtils.GetDirTree(&dirTree)
return
}
......@@ -72,8 +75,8 @@ func (s *TextService) Remove(id int) (err error) {
if err == gorm.ErrRecordNotFound {
return
}
fileUtils.RemoveExist(old.Path)
fileUtils.RemoveExist(old.Path)
err = s.textRepo.Remove(uint(id))
return
......
......@@ -362,7 +362,7 @@ func (s *Server) admin(writer http.ResponseWriter, req *http.Request) {
ret.Data = s.defService.List()
case "getDef":
var def model.ZdDef
def, err = s.defService.Get(reqData.Id)
def, ret.Res = s.defService.Get(reqData.Id)
ret.Data = def
case "saveDef":
......@@ -433,7 +433,7 @@ func (s *Server) admin(writer http.ResponseWriter, req *http.Request) {
case "listRanges":
ret.Data = s.rangesService.List()
case "getRanges":
ret.Data = s.rangesService.Get(reqData.Id)
ret.Data, ret.Res = s.rangesService.Get(reqData.Id)
case "saveRanges":
ranges := serverUtils.ConvertRanges(reqData.Data)
ret.Data = s.rangesService.Save(&ranges)
......@@ -461,7 +461,7 @@ func (s *Server) admin(writer http.ResponseWriter, req *http.Request) {
case "listInstances":
ret.Data = s.instancesService.List()
case "getInstances":
ret.Data = s.instancesService.Get(reqData.Id)
ret.Data, ret.Res = s.instancesService.Get(reqData.Id)
case "saveInstances":
ranges := serverUtils.ConvertInstances(reqData.Data)
ret.Data = s.instancesService.Save(&ranges)
......@@ -488,7 +488,7 @@ func (s *Server) admin(writer http.ResponseWriter, req *http.Request) {
case "listExcel":
ret.Data = s.excelService.List()
case "getExcel":
ret.Data = s.excelService.Get(reqData.Id)
ret.Data, ret.Res = s.excelService.Get(reqData.Id)
case "saveExcel":
ranges := serverUtils.ConvertExcel(reqData.Data)
ret.Data = s.excelService.Save(&ranges)
......@@ -498,7 +498,7 @@ func (s *Server) admin(writer http.ResponseWriter, req *http.Request) {
case "listText":
ret.Data = s.textService.List()
case "getText":
ret.Data = s.textService.Get(reqData.Id)
ret.Data, ret.Res = s.textService.Get(reqData.Id)
case "saveText":
ranges := serverUtils.ConvertText(reqData.Data)
ret.Data = s.textService.Save(&ranges)
......
无法预览此类型文件
......@@ -76,13 +76,14 @@
<a-form-model-item label="格式" prop="format" :labelCol="labelColHalf" :wrapperCol="wrapperColHalf">
<div class="inline">
<a-input v-model="model.format">
<a-select slot="addonAfter" default-value="" style="width: 80px">
<a-select v-model="model.format" slot="addonAfter" default-value="" style="width: 100px">
<a-select-option value="">
函数
</a-select-option>
<a-select-option value=".jp">
md5
选择函数
</a-select-option>
<a-select-option value="md5">md5</a-select-option>
<a-select-option value="sha1">sha1</a-select-option>
<a-select-option value="base64">base64</a-select-option>
<a-select-option value="urlencode">urlencode</a-select-option>
</a-select>
</a-input>
</div>
......
const labelCol = { lg: { span: 6 }, sm: { span: 6 } }
const wrapperCol = { lg: { span: 10 }, sm: { span: 10 } }
export { labelCol as labelCol, wrapperCol as wrapperCol }
const labelColLarge = { lg: { span: 6 }, sm: { span: 6 } }
const wrapperColLarge = { lg: { span: 14 }, sm: { span: 14 } }
export { labelCol, wrapperCol, labelColLarge, wrapperColLarge }
......@@ -23,7 +23,19 @@
</a-row>
<a-row :gutter="colsFull">
<a-form-model-item label="目录" prop="folder" :labelCol="labelColFull" :wrapperCol="wrapperColFull">
<a-input v-model="model.folder" />
<a-input v-model="model.folder">
<a-tree-select
slot="addonAfter"
v-model="model.folder"
style="width: 400px"
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
:tree-data="dirTreeData"
placeholder="请选择"
tree-default-expand-all
:replaceFields="dirFieldMap"
>
</a-tree-select>
</a-input>
</a-form-model-item>
</a-row>
......@@ -64,6 +76,8 @@ export default {
id: 0,
model: { folder: 'data/'},
dirTreeData: [],
dirFieldMap: {children:'children', title:'name', key:'name', value: 'name' }
};
},
......@@ -81,9 +95,10 @@ export default {
loadData () {
if (!this.id) return
getExcel(this.id).then(res => {
console.log('getText', res)
this.model = res.data
getExcel(this.id).then(json => {
console.log('getText', json)
this.model = json.data
this.dirTreeData = [json.res]
})
},
save() {
......
......@@ -23,7 +23,19 @@
</a-row>
<a-row :gutter="colsFull">
<a-form-model-item label="目录" prop="folder" :labelCol="labelColFull" :wrapperCol="wrapperColFull">
<a-input v-model="model.folder" />
<a-input v-model="model.folder">
<a-tree-select
slot="addonAfter"
v-model="model.folder"
style="width: 400px"
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
:tree-data="dirTreeData"
placeholder="请选择"
tree-default-expand-all
:replaceFields="dirFieldMap"
>
</a-tree-select>
</a-input>
</a-form-model-item>
</a-row>
......@@ -103,6 +115,8 @@ export default {
id: 0,
model: {folder: 'yaml/'},
dirTreeData: [],
dirFieldMap: {children:'children', title:'name', key:'name', value: 'name' }
};
},
......@@ -120,9 +134,10 @@ export default {
loadData () {
if (!this.id) return
getInstances(this.id).then(res => {
console.log('getInstances', res)
this.model = res.data
getInstances(this.id).then(json => {
console.log('getInstances', json)
this.model = json.data
this.dirTreeData = [json.res]
})
},
save() {
......
......@@ -23,7 +23,19 @@
</a-row>
<a-row :gutter="colsFull">
<a-form-model-item label="目录" prop="folder" :labelCol="labelColFull" :wrapperCol="wrapperColFull">
<a-input v-model="model.folder" />
<a-input v-model="model.folder">
<a-tree-select
slot="addonAfter"
v-model="model.folder"
style="width: 400px"
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
:tree-data="dirTreeData"
placeholder="请选择"
tree-default-expand-all
:replaceFields="dirFieldMap"
>
</a-tree-select>
</a-input>
</a-form-model-item>
</a-row>
......@@ -103,6 +115,8 @@ export default {
id: 0,
model: {folder: 'yaml/'},
dirTreeData: [],
dirFieldMap: {children:'children', title:'name', key:'name', value: 'name' }
};
},
......@@ -120,9 +134,10 @@ export default {
loadData () {
if (!this.id) return
getRanges(this.id).then(res => {
console.log('getRanges', res)
this.model = res.data
getRanges(this.id).then(json => {
console.log('getRanges', json)
this.model = json.data
this.dirTreeData = [json.res]
})
},
save() {
......
......@@ -23,7 +23,19 @@
</a-row>
<a-row :gutter="colsFull">
<a-form-model-item label="目录" prop="folder" :labelCol="labelColFull" :wrapperCol="wrapperColFull">
<a-input v-model="model.folder" />
<a-input v-model="model.folder">
<a-tree-select
slot="addonAfter"
v-model="model.folder"
style="width: 400px"
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
:tree-data="dirTreeData"
placeholder="请选择"
tree-default-expand-all
:replaceFields="dirFieldMap"
>
</a-tree-select>
</a-input>
</a-form-model-item>
</a-row>
......@@ -70,6 +82,8 @@ export default {
id: 0,
model: {folder: 'yaml/'},
dirTreeData: [],
dirFieldMap: {children:'children', title:'name', key:'name', value: 'name' }
};
},
......@@ -87,9 +101,10 @@ export default {
loadData () {
if (!this.id) return
getText(this.id).then(res => {
console.log('getText', res)
this.model = res.data
getText(this.id).then(json => {
console.log('getText', json)
this.model = json.data
this.dirTreeData = [json.res]
})
},
save() {
......
......@@ -15,8 +15,21 @@
<a-input v-model="model.title" />
</a-form-model-item>
<a-form-model-item label="目录" prop="folder">
<a-input v-model="model.folder" />
<a-input v-model="model.folder">
<a-tree-select
slot="addonAfter"
v-model="model.folder"
style="width: 400px"
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
:tree-data="dirTreeData"
placeholder="请选择"
tree-default-expand-all
:replaceFields="dirFieldMap"
>
</a-tree-select>
</a-input>
</a-form-model-item>
<a-form-model-item label="类型">
<a-select v-model="model.type">
<a-select-option value="text">字符串</a-select-option>
......@@ -42,15 +55,15 @@
<script>
import { getDef, saveDef } from "../../../api/manage";
import { labelCol, wrapperCol } from "../../../utils/const";
import { labelColLarge, wrapperColLarge } from "../../../utils/const";
import {checkDirIsUsers} from "../../../api/utils";
export default {
name: 'Mine',
data() {
return {
labelCol: labelCol,
wrapperCol: wrapperCol,
labelCol: labelColLarge,
wrapperCol: wrapperColLarge,
rules: {
title: [
{ required: true, message: '名称不能为空', trigger: 'change' },
......@@ -60,7 +73,9 @@ export default {
],
},
id: 0,
model: { folder: 'users/', type: 'text' }
model: { folder: 'users/', type: 'text' },
dirTreeData: [],
dirFieldMap: {children:'children', title:'name', key:'name', value: 'name' }
};
},
computed: {
......@@ -74,6 +89,7 @@ export default {
getDef(this.id).then(json => {
console.log('getDef', json)
this.model = json.data
this.dirTreeData = [json.res]
})
},
mounted () {
......
title: 数据测试
desc:
author: zentao
version: 1.0
fields:
- field: field_with_children # 字段多层嵌套
fields:
- field: child1
range: a-z
prefix: part1_
postfix: '|'
- field: child2
range: A-Z
prefix: part2_
postfix: '|'
- field: child_with_child
prefix: part3_
postfix:
fields:
- field: field_grandson
prefix: int_
range: 10-20
postfix:
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册