useControl.ts 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. import { message } from 'ant-design-vue';
  2. import { get } from 'lodash-es';
  3. import { ref } from 'vue';
  4. import { submitEdit, updatePassword, validPassword, subList2, controlWindow, cancelcontrolWindow } from '../balancePress.api';
  5. export function usePressControl() {
  6. /** 参数与设置、风机风门联动表单数据 */
  7. const formData = ref({
  8. /** 风机风门联动的自动调控 */
  9. isAuto: false,
  10. /** 参数与设置的状态暂存字段 */
  11. temp: false,
  12. });
  13. /** 参数与设置、风机风门联动的数据 */
  14. const avePressLinkage = ref<any>({ isAuto: false });
  15. const avePressSetting = ref<any>({ isAuto: false });
  16. /** 风门与风门联动控制 */
  17. const gateLinkage = ref<any>({ isAuto: false });
  18. /** 获取 参数与设置、风机风门联动 的数据 */
  19. function getAvePress() {
  20. return Promise.all([
  21. subList2({
  22. strType: 'sdg_fan_sys_gate',
  23. }),
  24. subList2({
  25. strType: 'sdg_gate_to_gate',
  26. }),
  27. // subList({
  28. // strType: 'sdg_gas_monitor',
  29. // }),
  30. subList2({
  31. strType: 'sdg_pressure_to_window',
  32. }),
  33. ]).then(([linkageData, gateData, settingData]) => {
  34. avePressLinkage.value = get(linkageData, '[0]', {});
  35. gateLinkage.value = get(gateData, '[0]', {});
  36. avePressSetting.value = get(settingData, '[0]', {});
  37. });
  38. }
  39. function changePassword({ password, oldpassword, id }) {
  40. return updatePassword({
  41. id,
  42. newPassword: password,
  43. oldPassword: oldpassword,
  44. })
  45. .then(() => {
  46. message.success('操作成功');
  47. })
  48. .catch((e) => {
  49. message.error(e);
  50. })
  51. .finally(() => {
  52. getAvePress();
  53. });
  54. }
  55. function linkageControl({ password, id }, formData) {
  56. return validPassword({
  57. id,
  58. password,
  59. })
  60. .then(() => {
  61. return submitEdit({
  62. id,
  63. ...formData,
  64. })
  65. .then(() => {
  66. message.success('操作成功');
  67. })
  68. .catch(() => {
  69. message.error('操作失败');
  70. });
  71. })
  72. .catch((e) => {
  73. message.error(e);
  74. })
  75. .finally(() => {
  76. getAvePress();
  77. });
  78. }
  79. function settingControl({ password, id }, formData) {
  80. return validPassword({
  81. id,
  82. password,
  83. })
  84. .then(() => {
  85. return submitEdit({
  86. id,
  87. ...formData,
  88. })
  89. .then(() => {
  90. message.success('操作成功');
  91. })
  92. .catch(() => {
  93. message.error('操作失败');
  94. });
  95. })
  96. .catch((e) => {
  97. message.error(e);
  98. })
  99. .finally(() => {
  100. getAvePress();
  101. });
  102. }
  103. function autoControl({ password, id }, { avgPressLogId }) {
  104. return validPassword({
  105. id,
  106. password,
  107. })
  108. .then(() => {
  109. return controlWindow({ avgPressId: avePressSetting.value.id, avgPressLogId })
  110. .then(() => {
  111. message.success('预警已处理');
  112. })
  113. .catch((e) => {
  114. message.error('下发失败');
  115. throw e;
  116. });
  117. })
  118. .catch((e) => {
  119. message.error(e);
  120. throw e;
  121. })
  122. .finally(() => {
  123. getAvePress();
  124. });
  125. }
  126. function cancelControl(___, { avgPressLogId }) {
  127. return cancelcontrolWindow({ avgPressId: avePressSetting.value.id, avgPressLogId })
  128. .then(() => {
  129. message.success('已取消');
  130. })
  131. .catch((e) => {
  132. message.error('下发失败');
  133. throw e;
  134. });
  135. }
  136. return {
  137. settingControl,
  138. linkageControl,
  139. changePassword,
  140. getAvePress,
  141. autoControl,
  142. cancelControl,
  143. avePressLinkage,
  144. avePressSetting,
  145. gateLinkage,
  146. formData,
  147. };
  148. }