team.html 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. <!-- 部队管理模块 -->
  2. <div class="layui-card">
  3. <div class="layui-card-header">部队管理</div>
  4. <div class="layui-card-body">
  5. <form class="layui-form" id="teamForm">
  6. <div class="layui-form-item">
  7. <!-- 队伍选择下拉框 -->
  8. <label class="layui-form-label">队伍:</label>
  9. <div class="layui-input-inline">
  10. <select id="teamSelect" class="layui-select">
  11. <option value="0">全部队伍</option>
  12. <option value="1">1队</option>
  13. <option value="2">2队</option>
  14. <option value="3">3队</option>
  15. <option value="4">4队</option>
  16. <option value="5">5队</option>
  17. </select>
  18. </div>
  19. <!-- 位置选择下拉框 -->
  20. <label class="layui-form-label">位置:</label>
  21. <div class="layui-input-inline">
  22. <select id="positionSelect" class="layui-select">
  23. <option value="0">全部位置</option>
  24. <option value="1">位置1</option>
  25. <option value="2">位置2</option>
  26. <option value="3">位置3</option>
  27. </select>
  28. </div>
  29. </div>
  30. <!-- 体力 -->
  31. <div class="layui-form-item">
  32. <label class="layui-form-label">体力:</label>
  33. <div class="layui-input-inline">
  34. <input type="number" id="heroStamina" placeholder="体力值" class="layui-input">
  35. </div>
  36. <div class="layui-input-inline">
  37. <button class="layui-btn layui-btn-normal" type="button"
  38. onclick="submitHeroStamina()">设置体力值</button>
  39. </div>
  40. </div>
  41. <!-- 状态 -->
  42. <div class="layui-form-item">
  43. <label class="layui-form-label">状态:</label>
  44. <div class="layui-input-inline">
  45. <select id="heroStatus" class="layui-select" lay-filter="heroStatus">
  46. <option value="injured">重伤</option>
  47. <option value="fatigued">疲劳</option>
  48. </select>
  49. </div>
  50. <!-- 重伤状态的时间(动态显示) -->
  51. <div class="layui-input-inline" id="injuredTimeContainer" style="display: none;">
  52. <input type="number" id="injuredTime" placeholder="重伤时间(秒)" class="layui-input">
  53. </div>
  54. <div class="layui-input-inline double-button">
  55. <button class="layui-btn layui-btn-normal" type="button" onclick="submitHeroStatus()">更新状态</button>
  56. <!-- 新增的重置重伤状态按钮 -->
  57. <button class="layui-btn layui-btn-danger" type="button" onclick="resetHeroStatus()">重置重伤状态</button>
  58. </div>
  59. </div>
  60. </form>
  61. </div>
  62. </div>
  63. <script>
  64. // 使用 Layui 的事件监听机制
  65. layui.use(['form'], function () {
  66. var form = layui.form;
  67. // 初始渲染表单
  68. form.render('select');
  69. // 初始加载时检查一次状态
  70. toggleInjuredTime();
  71. // 监听状态选择框的变化 (Layui 的方式)
  72. form.on('select(heroStatus)', function (data) {
  73. toggleInjuredTime();
  74. });
  75. });
  76. // 动态显示或隐藏重伤时间输入框
  77. function toggleInjuredTime() {
  78. var status = $("#heroStatus").val();
  79. if (status === "injured") {
  80. $("#injuredTimeContainer").show();
  81. } else {
  82. $("#injuredTimeContainer").hide();
  83. }
  84. }
  85. // 提交体力
  86. function submitHeroStamina() {
  87. var teamId = $("#teamSelect").val();
  88. var position = $("#positionSelect").val();
  89. var heroStamina = $("#heroStamina").val();
  90. if (heroStamina < 0) {
  91. layer.msg("体力不能为负值", { icon: 3 });
  92. return
  93. }
  94. var params = [
  95. "energy",
  96. teamId,
  97. position,
  98. heroStamina
  99. ];
  100. toTeamSubmitForm(params); // 调用统一的 submitForm 方法
  101. }
  102. // 提交状态
  103. function submitHeroStatus() {
  104. var teamId = $("#teamSelect").val();
  105. var position = $("#positionSelect").val();
  106. var heroStatus = $("#heroStatus").val();
  107. var params
  108. // 疲劳状态设置体力为0
  109. if (heroStatus == "fatigued") {
  110. params = [
  111. "energy",
  112. teamId,
  113. position,
  114. 0
  115. ];
  116. } else {
  117. var injuredTime = $("#injuredTime").val();
  118. if (!injuredTime || injuredTime < 0) {
  119. layer.msg("重伤时间错误", { icon: 3 })
  120. return
  121. }
  122. params = [
  123. "state",
  124. teamId,
  125. position,
  126. injuredTime
  127. ];
  128. }
  129. toTeamSubmitForm(params); // 调用统一的 submitForm 方法
  130. }
  131. // 新增的重置重伤状态函数
  132. function resetHeroStatus() {
  133. var teamId = $("#teamSelect").val();
  134. var position = $("#positionSelect").val();
  135. var params = [
  136. "state",
  137. teamId,
  138. position,
  139. 0 // 重置为0表示清除重伤状态
  140. ];
  141. toTeamSubmitForm(params);
  142. }
  143. // 提交表单
  144. function toTeamSubmitForm(params) {
  145. var commond = "/gm team " + params.join(" ");
  146. // 提交表单
  147. submitForm(commond); // 调用统一的 submitForm 方法
  148. }
  149. </script>