File tree Expand file tree Collapse file tree 4 files changed +91
-3
lines changed Expand file tree Collapse file tree 4 files changed +91
-3
lines changed Original file line number Diff line number Diff line change @@ -75,5 +75,13 @@ export default {
7575 inputMultipleValues : 'Input value then press return button' ,
7676 propertyHostsTip : 'Any values are supported'
7777 }
78+ } ,
79+ upstream : {
80+ websocket : {
81+ EnabledTip : 'WebSocket enabled' ,
82+ DisabledTip : 'WebSocket disabled'
83+ } ,
84+ keyTip : 'You can edit and input any value here,and press Enter to confirm.' ,
85+ hashOnTip : 'Select a hash on.'
7886 }
7987}
Original file line number Diff line number Diff line change @@ -83,5 +83,13 @@ export default {
8383 inputMultipleValues : '输入值后并回车' ,
8484 propertyHostsTip : '任何值均可'
8585 }
86+ } ,
87+ upstream : {
88+ websocket : {
89+ EnabledTip : 'WebSocket 打开' ,
90+ DisabledTip : 'WebSocket 关闭'
91+ } ,
92+ keyTip : '你可以编辑并输入任何值,输入值后回车确认。' ,
93+ hashOnTip : '选择 chash 参数来源。'
8694 }
8795}
Original file line number Diff line number Diff line change @@ -383,6 +383,7 @@ export default class extends Vue {
383383 }
384384 })
385385
386+ delete data [' tempPlugin' ]
386387 if (this .isEditMode ) {
387388 await updateRouter (this .$route .params .id , data )
388389 } else {
Original file line number Diff line number Diff line change 5353 </el-select >
5454 </el-form-item >
5555
56+ <el-form-item
57+ label =" Hash On"
58+ >
59+ <el-select
60+ v-model =" form.hash_on"
61+ filterable
62+ default-first-option
63+ value-key =" form.hash_on"
64+ :disabled =" form.type !== 'chash'"
65+ >
66+ <el-option
67+ v-for =" item in defaultHashOnKeys"
68+ :key =" item.value"
69+ :label =" item.label"
70+ :value =" item.value"
71+ />
72+ </el-select >
73+ <p class =" tip" >
74+ {{ $t('upstream.hashOnTip') }}
75+ </p >
76+ </el-form-item >
77+
5678 <el-form-item
5779 label =" Key"
5880 >
7395 :value =" item.value"
7496 />
7597 </el-select >
98+ <p class =" tip" >
99+ {{ $t('upstream.keyTip') }}
100+ </p >
101+ </el-form-item >
102+
103+ <el-form-item
104+ label =" WebSocket"
105+ >
106+ <el-switch
107+ v-model =" form.enable_websocket"
108+
109+ active-color =" #13ce66"
110+ inactive-color =" #ff4949"
111+ />
112+ <p class =" tip" >
113+ {{ form.enable_websocket ? $t('upstream.websocket.EnabledTip') : $t('upstream.websocket.DisabledTip') }}
114+ </p >
76115 </el-form-item >
77116
78117 <el-form-item
@@ -159,7 +198,9 @@ export default class extends Vue {
159198 type: null ,
160199 key: null ,
161200 nodes: [],
162- desc: ' '
201+ desc: ' ' ,
202+ enable_websocket: null ,
203+ hash_on: null
163204 }
164205
165206 private rules = {
@@ -171,6 +212,25 @@ export default class extends Vue {
171212
172213 private types = [' roundrobin' , ' chash' ]
173214
215+ private defaultHashOnKeys = [
216+ {
217+ value: ' vars' ,
218+ label: ' vars'
219+ },
220+ {
221+ value: ' header' ,
222+ label: ' header'
223+ },
224+ {
225+ value: ' cookie' ,
226+ label: ' cookie'
227+ },
228+ {
229+ value: ' consumer' ,
230+ label: ' consumer'
231+ }
232+ ]
233+
174234 private defaultHashKeys = [
175235 {
176236 value: ' remote_addr' ,
@@ -230,7 +290,9 @@ export default class extends Vue {
230290 type = null ,
231291 nodes = [],
232292 key = null ,
233- desc = ' '
293+ desc = ' ' ,
294+ enable_websocket = false ,
295+ hash_on = null
234296 }
235297 }
236298 } = (await getUpstream (id )) as any
@@ -248,7 +310,9 @@ export default class extends Vue {
248310 type ,
249311 key ,
250312 nodes ,
251- desc
313+ desc ,
314+ enable_websocket ,
315+ hash_on
252316 }
253317 }
254318
@@ -348,6 +412,13 @@ export default class extends Vue {
348412 .el-input {
349413 width : 193px ;
350414 }
415+ .tip {
416+ line-height : 24px ;
417+ font-size : 12px ;
418+ margin : 0 ;
419+ color : #8e8c8c ;
420+ display : inline ;
421+ }
351422 }
352423 }
353424 .node-item {
You can’t perform that action at this time.
0 commit comments