1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
<template>
<div>
<el-form :model="formData" label-position="right" label-width="80px">
{{- range .Fields}}
<el-form-item label="{{.FieldDesc}}:">
{{ if eq .FieldType "bool" -}}
<el-switch active-color="#13ce66" inactive-color="#ff4949" active-text="是" inactive-text="否" v-model="formData.{{.FieldJson}}" clearable ></el-switch>
{{ end -}}
{{ if eq .FieldType "string" -}}
<el-input v-model="formData.{{.FieldJson}}" clearable placeholder="请输入" />
{{ end -}}
{{ if eq .FieldType "int" -}}
{{ if .DictType -}}
<el-select v-model="formData.{{ .FieldJson }}" placeholder="请选择" clearable>
<el-option v-for="(item,key) in {{ .DictType }}Options" :key="key" :label="item.label" :value="item.value"></el-option>
</el-select>
{{ else -}}
<el-input v-model.number="formData.{{ .FieldJson }}" clearable placeholder="请输入"/>
{{ end -}}
{{ end -}}
{{ if eq .FieldType "time.Time" }}
<el-date-picker type="date" placeholder="选择日期" v-model="formData.{{ .FieldJson }}" clearable></el-date-picker>
{{ end -}}
{{ if eq .FieldType "float64" }}
<el-input-number v-model="formData.{{ .FieldJson }}" :precision="2" clearable></el-input-number>
{{ end -}}
</el-form-item>
{{ end -}}
<el-form-item>
<el-button type="primary" @click="save">保存</el-button>
<el-button type="primary" @click="back">返回</el-button>
</el-form-item>
</el-form>
</div>
</template>
<script>
import {
create{{.StructName}},
update{{.StructName}},
find{{.StructName}}
} from '@/api/{{.PackageName}}' // 此处请自行替换地址
import infoList from '@/mixins/infoList'
export default {
name: '{{.StructName}}',
mixins: [infoList],
data() {
return {
type: '',
{{range .Fields}}
{{- if .DictType }}
{{ .DictType }}Options: [],
{{ end -}}
{{end -}}
formData: {
{{range .Fields}}
{{- if eq .FieldType "bool" -}}
{{.FieldJson}}: false,
{{ end -}}
{{- if eq .FieldType "string" -}}
{{.FieldJson}}: '',
{{ end -}}
{{- if eq .FieldType "int" -}}
{{.FieldJson}}: 0,
{{ end -}}
{{- if eq .FieldType "time.Time" -}}
{{.FieldJson}}: new Date(),
{{ end -}}
{{- if eq .FieldType "float64" -}}
{{.FieldJson}}: 0,
{{ end -}}
{{ end }}
}
}
},
async created() {
// 建议通过url传参获取目标数据ID 调用 find方法进行查询数据操作 从而决定本页面是create还是update 以下为id作为url参数示例
if (this.$route.query.id) {
const res = await find{{.StructName}}({ ID: this.$route.query.id })
if (res.code === 0) {
this.formData = res.data.re{{.Abbreviation}}
this.type = 'update'
}
} else {
this.type = 'create'
}
{{ range .Fields -}}
{{- if .DictType }}
await this.getDict("{{.DictType}}")
{{ end -}}
{{- end }}
},
methods: {
async save() {
let res
switch (this.type) {
case 'create':
res = await create{{.StructName}}(this.formData)
break
case 'update':
res = await update{{.StructName}}(this.formData)
break
default:
res = await create{{.StructName}}(this.formData)
break
}
if (res.code === 0) {
this.$message({
type: 'success',
message: '创建/更改成功'
})
}
},
back() {
this.$router.go(-1)
}
}
}
</script>
<style>
</style>