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
123
124
125
126
127
128
129
130
131
132
<template>
<div class="app-content" style="height:380px;overflow:auto">
<a-spin :spinning="loading" style="width: 100%;height: 100%;">
<a-form-model ref="form" :model="formData" :rules="rules">
<a-form-model-item label="名称" prop="name">
<a-input v-model="formData.name" placeholder="名称" style="width:240px;" />
</a-form-model-item>
<a-form-model-item label="字典类型" prop="typeId">
<parameter-type-select v-model="formData.typeId" :width="240" :isAll="true" />
</a-form-model-item>
<a-form-model-item label="父类型" prop="parentId">
<parent-select v-model="formData.parentId" :width="240" :isAll="true" />
</a-form-model-item>
<a-form-model-item label="树编码" prop="treeCode">
<a-input v-model="formData.treeCode" placeholder="树编码" style="width:240px;" />
</a-form-model-item>
<a-form-model-item label="标准编码" prop="gbCode">
<a-input v-model="formData.gbCode" placeholder="标准编码" style="width:240px;" />
</a-form-model-item>
<a-form-model-item label="系统编码" prop="systemCode">
<a-input v-model="formData.systemCode" placeholder="系统编码" style="width:240px;" />
</a-form-model-item>
<a-form-model-item label="是否为必填项" prop="isRequired">
<a-radio-group v-model="formData.isRequired">
<a-radio :value="true">是</a-radio>
<a-radio :value="false">否</a-radio>
</a-radio-group>
</a-form-model-item>
<a-form-model-item label="排序" prop="displayOrder">
<a-input-number v-model="formData.displayOrder" :min="0" :step="1" style="width:240px;" />
</a-form-model-item>
<a-row>
<a-col :span="24" style="text-align: center">
<a-button type="primary" @click="submit">提交</a-button>
</a-col>
</a-row>
</a-form-model>
</a-spin>
</div>
</template>
<script>
import { isEmptyParams } from "@/views/utils/common"
import parameterTypeSelect from '@/views/system/parameterType/components/parameterTypeSelect.vue'
import parentSelect from '@/views/system/parameter/components/parentSelect.vue'
export default {
components: { parameterTypeSelect, parentSelect },
name: 'parameterManager',
data () {
return {
formData: { id: null, typeId: null, parentId: null, name: null, gbCode: null, treeCode: null, displayOrder: null, noteState: null, systemCode: null },
rules: {
typeId: { required: true, message: '请选择字典类型', trigger: 'change' },
parentId: { required: false, message: '请选择父类型', trigger: 'change' },
name: { required: true, message: '请输入字典名称', trigger: 'blur' },
gbCode: { required: false, message: '请输入标准编码', trigger: 'blur' },
treeCode: { required: false, message: '请输入树编码', trigger: 'blur' },
displayOrder: { required: true, message: '请输入排序', trigger: 'blur' },
systemCode: { required: false, message: '请输入系统编码', trigger: 'blur' },
isRequired: { required: false, message: '请选择是否必填', trigger: 'blur' }
},
loading: false,
}
},
props: {
value: {
type: String,
default: () => {
return null
}
},
},
created () {
if (!!this.value) {
this.getParameterById()
}
},
methods: {
getParameterById () {//提交字典信息
this.loading = true
this.$api.parameter.getParameterById({ id: this.value }).then(({ data = {} }) => {
if (data) {
data.typeId = data.typeId ? data.typeId + '' : ''
data.parentId = data.parentId ? data.parentId + '' : ''
this.formData = data
} this.loading = false
}).catch(() => { this.loading = false })
},
submit () {//提交字典信息
this.$refs.form.validate(valid => {
if (valid) {
this.loading = true
let pars = isEmptyParams(this.formData)
let par = { ...pars }
this.$api.parameter.updateSystemParameter(par).then(({ data = {} }) => {
if (data) {
this.$message.success('成功!')
this.$emit('close', 'edit')
}
this.loading = false
}).catch(() => { this.loading = false })
}
else { }
})
},
}
}
</script>
<style scoped lang="less">
.app-content {
.ant-form-item {
margin-bottom: 6px;
}
::v-deep .ant-row {
.ant-col {
display: inline-block;
}
.ant-form-item-label {
width: 110px;
}
.ant-form-item-control-wrapper {
width: calc(100% - 110px);
}
.ant-form-explain {
margin-left: 5px;
display: inline-block;
}
}
}
</style>