devServiceProvideView.vue
3.78 KB
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
<template>
<el-row>
<el-col :span="24">
<el-card>
<div slot="header">
<span>{{ $t('devServiceProvideView.title') }}</span>
</div>
<el-form label-width="120px">
<el-form-item :label="$t('devServiceProvideView.implMethod')" required>
<el-select
v-model="form.queryModel"
style="width: 100%"
@change="saveInfo">
<el-option
:label="$t('devServiceProvideView.required') + $t('devServiceProvideView.implMethod')"
value=""
disabled />
<el-option label="sql方式" value="1" />
<el-option label="java方式" value="3" />
<el-option :label="$t('devServiceProvideView.proc')" value="2" />
</el-select>
</el-form-item>
<el-form-item :label="$t('devServiceProvideView.params')" required>
<el-input
v-model="form.params"
:placeholder="$t('devServiceProvideView.required') + $t('devServiceProvideView.params')"
@input="saveInfo" />
</el-form-item>
<el-form-item v-if="form.queryModel === '1'" label="sql">
<el-input
v-model="form.sql"
type="textarea"
:rows="15"
:placeholder="$t('devServiceProvideView.optional') + $t('devServiceProvideView.sql')"
@input="saveInfo" />
</el-form-item>
<el-form-item v-if="form.queryModel === '1'" :label="$t('devServiceProvideView.template')">
<el-input
v-model="form.template"
type="textarea"
:rows="5"
:placeholder="$t('devServiceProvideView.optional') + $t('devServiceProvideView.template')"
@input="saveInfo" />
</el-form-item>
<el-form-item v-if="form.queryModel === '2'" :label="$t('devServiceProvideView.proc')">
<el-input
v-model="form.proc"
type="textarea"
:rows="5"
:placeholder="$t('devServiceProvideView.optional') + $t('devServiceProvideView.proc')"
@input="saveInfo" />
</el-form-item>
<el-form-item v-if="form.queryModel === '3'" label="java">
<el-input
v-model="form.javaScript"
type="textarea"
:rows="20"
:placeholder="$t('devServiceProvideView.optional') + $t('devServiceProvideView.javaScript')"
@input="saveInfo" />
</el-form-item>
</el-form>
</el-card>
</el-col>
</el-row>
</template>
<script>
export default {
name: 'DevServiceProvideView',
props: {
callBackListener: {
type: String,
default: ''
},
callBackFunction: {
type: String,
default: ''
},
index: {
type: Number,
default: 0
}
},
data() {
return {
form: {
queryModel: '',
params: '',
sql: '',
template: '',
proc: '',
javaScript: ''
}
}
},
watch: {
form: {
deep: true,
handler() {
this.saveInfo()
}
}
},
created() {
this.$on('onIndex', this.onIndex)
},
methods: {
saveInfo() {
if (this.validate()) {
this.$emit(this.callBackFunction, this.form)
}
},
validate() {
if (!this.form.queryModel) {
this.$message.error(this.$t('devServiceProvideView.implMethod') + this.$t('devServiceProvideView.required'))
return false
}
if (!this.form.params) {
this.$message.error(this.$t('devServiceProvideView.params') + this.$t('devServiceProvideView.required'))
return false
}
return true
},
onIndex(index) {
this.index = index
}
}
}
</script>