store.blade.php 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191
  1. @extends('layouts.base')
  2. @section('title', '服务器设置')
  3. @section('content')
  4. <style>
  5. .panel{
  6. margin-bottom:10px!important;
  7. padding-left: 20px;
  8. border-radius: 10px;
  9. }
  10. .panel .active a {
  11. background-color: #29ba9c!important;
  12. border-radius: 18px!important;
  13. color:#fff;
  14. }
  15. .panel a{
  16. border:none!important;
  17. background-color:#fff!important;
  18. }
  19. .content{
  20. background: #eff3f6;
  21. padding: 10px!important;
  22. }
  23. .con{
  24. padding-bottom:20px;
  25. position:relative;
  26. min-height:100vh;
  27. background-color:#fff;
  28. border-radius: 8px;
  29. }
  30. .con .setting .block{
  31. padding:10px;
  32. background-color:#fff;
  33. border-radius: 8px;
  34. }
  35. .con .setting .block .title{
  36. display:flex;
  37. align-items:center;
  38. margin-bottom:15px;
  39. }
  40. .confirm-btn{
  41. width: calc(100% - 266px);
  42. position:fixed;
  43. bottom:0;
  44. right:0;
  45. margin-right:10px;
  46. line-height:63px;
  47. background-color: #ffffff;
  48. box-shadow: 0px 8px 23px 1px
  49. rgba(51, 51, 51, 0.3);
  50. background-color:#fff;
  51. text-align:center;
  52. }
  53. b{
  54. font-size:14px;
  55. }
  56. </style>
  57. <div id="re_content">
  58. @include('layouts.newTabs')
  59. <div class="con">
  60. <div class="setting">
  61. <div class="block">
  62. <div class="title"><span style="width: 4px;height: 18px;background-color: #29ba9c;margin-right:15px;display:inline-block;"></span><b>IP设置</b></div>
  63. <el-form ref="form" :rules="rules" :model="form" label-width="15%">
  64. <el-form-item label="服务器类型" prop="service_type">
  65. <el-radio v-model="form.service_type" :label="0">单服</el-radio>
  66. <el-radio v-model="form.service_type" :label="1">集群</el-radio>
  67. <el-radio v-model="form.service_type" :label="2">kubernetes</el-radio>
  68. </el-form-item>
  69. <el-form-item v-if="!form.service_type" label="ip 地址">
  70. <el-form-item prop="address.ip">
  71. <el-input :placeholder="form.address.ip" v-model.String="form.address.ip" style="width: 27%">
  72. </el-input>
  73. <p class="help-block">为空默认:http://127.0.0.1</p>
  74. </el-form-item>
  75. </el-form-item>
  76. <div v-else>
  77. <div v-for="(item,index) in form.service" >
  78. <el-form-item :label="`服务器${index+1}:ip地址`" prop="address.ip">
  79. <el-input :placeholder="form.address.ip" v-model ="form.service[index]" style="width: 27%">
  80. </el-input>
  81. <el-button v-if="index" size="small" @click="delService(index)" type="primary">删除</el-button>
  82. </el-form-item>
  83. </div>
  84. <el-form-item label="" prop="name">
  85. <el-button @click="addService" type="primary">添加服务器</el-button>
  86. </el-form-item>
  87. </div>
  88. </el-form>
  89. </div>
  90. </div>
  91. <div class="confirm-btn">
  92. <el-button type="primary" @click.native.prevent="onSubmit" v-loading="formLoading">提交</el-button>
  93. </div>
  94. </div>
  95. </div>
  96. <script>
  97. var app = new Vue({
  98. el: '#re_content',
  99. delimiters: ['[[', ']]'],
  100. data() {
  101. // 默认数据
  102. let temp = JSON.parse('{!! $setting?:'{}' !!}');
  103. console.log(temp);
  104. let temp1 = {
  105. address: {
  106. 'ip': 'http://127.0.0.1',
  107. },
  108. service_type:0,
  109. service:[
  110. 'http://127.0.0.1',
  111. ],
  112. ...temp,
  113. }
  114. let rules = {
  115. // 'service.name': [],
  116. };
  117. return {
  118. form: temp1,
  119. props: {
  120. label: 'areaname',
  121. children: 'children',
  122. isLeaf: 'isLeaf'
  123. },
  124. name:'11111',
  125. loading: false,
  126. formLoading: false,
  127. centerDialogVisible: false,
  128. treeData: [],
  129. rules: rules
  130. }
  131. },
  132. mounted: function () {
  133. console.log(this.form.address.ip,'2222')
  134. },
  135. methods: {
  136. onSubmit() {
  137. if (this.formLoading) {
  138. return;
  139. }
  140. this.formLoading = true;
  141. this.$refs.form.validate((valid) => {
  142. console.log(valid)
  143. });
  144. this.$http.post("{!! yzWebUrl('supervisord.supervisord.store') !!}", {'setting': this.form}).then(response => {
  145. if (response.data.result) {
  146. this.$message({
  147. message: response.data.msg,
  148. type: 'success'
  149. });
  150. } else {
  151. this.$message({
  152. message: response.data.msg,
  153. type: 'error'
  154. });
  155. }
  156. this.formLoading = false;
  157. }, response => {
  158. console.log(response);
  159. });
  160. },
  161. goBack() {
  162. window.history.back();
  163. },
  164. checkAreas(node,checked,children) {
  165. if(node.isLeaf){
  166. return;
  167. }
  168. if(checked){
  169. }
  170. },
  171. addService() {
  172. this.form.service.push('');
  173. },
  174. delService(index) {
  175. this.form.service.splice(index,1)
  176. },
  177. }
  178. });
  179. </script>
  180. @endsection