index.blade.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. @extends('layouts.app')
  2. @section('title','系统配置')
  3. @section('content')
  4. <nav id="nav2">
  5. @component('maintenance.menu')@endcomponent
  6. </nav>
  7. <div class="container-fluid d-none" id="configuration">
  8. <div class="card">
  9. @can('系统配置-编辑')
  10. @include('maintenance.configuration._create')
  11. @include('maintenance.configuration._edit')
  12. @endcan
  13. <div class="card-body">
  14. <div class="row pull-left m-1">
  15. @can('系统配置-编辑')
  16. <button class="btn btn-outline-info mb-1 mr-3" @click="store"><span class="fa fa-plus"></span>&nbsp;新&nbsp;&nbsp;增</button>
  17. @endcan
  18. </div>
  19. @include('maintenance.configuration._table')
  20. </div>
  21. </div>
  22. </div>
  23. @endsection
  24. @section('lastScript')
  25. <script>
  26. let vue = new Vue({
  27. el:"#configuration",
  28. data:{
  29. configurations:{!! $configurations->toJson() !!}['data'],
  30. addConfiguration:{},
  31. editConfiguration:{},
  32. index:'',
  33. selectTr:'',
  34. configurationErrors:{},
  35. },
  36. mounted(){
  37. $('#configuration').removeClass('d-none');
  38. },
  39. methods:{
  40. destroy(id,index){
  41. if (!confirm('是否删除当前项目耗材')) return;
  42. axios.delete('{{url('apiLocal/configuration')}}/'+id).then(res=>{
  43. if(res.data.success){
  44. tempTip.setIndex(100);
  45. tempTip.setDuration(3000);
  46. tempTip.showSuccess('删除成功');
  47. this.$delete(this.configurations,index);
  48. return ;
  49. }
  50. tempTip.setDuration(3000);
  51. tempTip.show(res.data.message);
  52. }).catch(err=>{
  53. tempTip.setDuration(3000);
  54. tempTip.show('删除当前项目耗材失败:'+err);
  55. });
  56. },
  57. edit(configuration,i){
  58. this.editConfiguration = JSON.parse(JSON.stringify(configuration));
  59. this.index = i;
  60. this.configurationErrors ={};
  61. $('#edit-configuration').modal('show');
  62. },
  63. update(){
  64. let url = '{{url('apiLocal/configuration/update')}}';
  65. let params = this.editConfiguration;
  66. if(!this.validateConfiguration(params))return;
  67. window.axios.post(url,params).then(res=>{
  68. if(res.data.success){
  69. this.$set(this.configurations,this.index,res.data.data);
  70. this.index = null;
  71. this.editConfiguration = {};
  72. $("#edit-configuration").modal('hide');
  73. window.tempTip.showSuccess('修改成功');
  74. return ;
  75. }
  76. if(res.data.errors){
  77. this.configurationErrors = res.data.errors;
  78. return;
  79. }
  80. window.tempTip.show(res.data.message ?? '修改失败');
  81. }).catch(err=>{
  82. window.tempTip.show('修改失败'+err);
  83. });
  84. },
  85. store(){
  86. this.addConfiguration = {};
  87. this.configurationErrors ={};
  88. $('#add-configuration').modal('show');
  89. },
  90. create(params){
  91. let url = '{{url('apiLocal/configuration/store')}}';
  92. if(!this.validateConfiguration(params))return;
  93. window.tempTip.setIndex(1099);
  94. window.tempTip.setDuration(3000);
  95. window.axios.post(url,params).then(res=>{
  96. if(res.data.success){
  97. this.configurations.unshift(res.data.data);
  98. this.$forceUpdate();
  99. $("#add-configuration").modal('hide');
  100. window.tempTip.showSuccess('添加成功');
  101. return ;
  102. }
  103. if(res.data.errors){
  104. this.configurationErrors = res.data.errors;
  105. return ;
  106. }
  107. window.tempTip.show(res.data.message ?? '修改失败');
  108. }).catch(err=>{
  109. window.tempTip.show('修改失败'+err);
  110. });
  111. },
  112. validateConfiguration(configuration){
  113. let bool = true;
  114. if(!configuration.hasOwnProperty('name') || configuration.name.trim() === ''){
  115. this.$set(this.configurationErrors,'name',['名称为必填项'])
  116. bool = false;
  117. }
  118. if(!configuration.hasOwnProperty('value') || configuration.value.trim() === ''){
  119. this.$set(this.configurationErrors,'value',['值为必填项'])
  120. bool = false;
  121. }
  122. if(!configuration.hasOwnProperty('description') || configuration.description.trim() === ''){
  123. this.$set(this.configurationErrors,'description',['描述为必填项'])
  124. bool = false;
  125. }
  126. if(!bool)this.$forceUpdate();
  127. return bool;
  128. }
  129. }
  130. });
  131. </script>
  132. @endsection