useControl.ts 6.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292
  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. }
  149. export function usePressControlSP() {
  150. /** 参数与设置、风机风门联动表单数据 */
  151. const formData = ref({
  152. /** 风机风门联动的自动调控 */
  153. isAuto: false,
  154. /** 参数与设置的状态暂存字段 */
  155. temp: false,
  156. });
  157. /** 参数与设置、风机风门联动的数据 */
  158. const avePressSetting = ref<any>({ isAuto: false });
  159. /** 获取 参数与设置、风机风门联动 的数据 */
  160. function getAvePress() {
  161. return Promise.all([
  162. subList2({
  163. strType: 'sp_pressure_to_window',
  164. }),
  165. ]).then(([settingData]) => {
  166. avePressSetting.value = get(settingData, '[0]', {});
  167. });
  168. }
  169. function changePassword({ password, oldpassword, id }) {
  170. return updatePassword({
  171. id,
  172. newPassword: password,
  173. oldPassword: oldpassword,
  174. })
  175. .then(() => {
  176. message.success('操作成功');
  177. })
  178. .catch((e) => {
  179. message.error(e);
  180. })
  181. .finally(() => {
  182. getAvePress();
  183. });
  184. }
  185. function linkageControl({ password, id }, formData) {
  186. return validPassword({
  187. id,
  188. password,
  189. })
  190. .then(() => {
  191. return submitEdit({
  192. id,
  193. ...formData,
  194. })
  195. .then(() => {
  196. message.success('操作成功');
  197. })
  198. .catch(() => {
  199. message.error('操作失败');
  200. });
  201. })
  202. .catch((e) => {
  203. message.error(e);
  204. })
  205. .finally(() => {
  206. getAvePress();
  207. });
  208. }
  209. function settingControl({ password, id }, formData) {
  210. return validPassword({
  211. id,
  212. password,
  213. })
  214. .then(() => {
  215. return submitEdit({
  216. id,
  217. ...formData,
  218. })
  219. .then(() => {
  220. message.success('操作成功');
  221. })
  222. .catch(() => {
  223. message.error('操作失败');
  224. });
  225. })
  226. .catch((e) => {
  227. message.error(e);
  228. })
  229. .finally(() => {
  230. getAvePress();
  231. });
  232. }
  233. function autoControl({ password, id }, { avgPressLogId }) {
  234. return validPassword({
  235. id,
  236. password,
  237. })
  238. .then(() => {
  239. return controlWindow({ avgPressId: avePressSetting.value.id, avgPressLogId })
  240. .then(() => {
  241. message.success('预警已处理');
  242. })
  243. .catch((e) => {
  244. message.error('下发失败');
  245. throw e;
  246. });
  247. })
  248. .catch((e) => {
  249. message.error(e);
  250. throw e;
  251. })
  252. .finally(() => {
  253. getAvePress();
  254. });
  255. }
  256. function cancelControl(___, { avgPressLogId }) {
  257. return cancelcontrolWindow({ avgPressId: avePressSetting.value.id, avgPressLogId })
  258. .then(() => {
  259. message.success('已取消');
  260. })
  261. .catch((e) => {
  262. message.error('下发失败');
  263. throw e;
  264. });
  265. }
  266. return {
  267. settingControl,
  268. linkageControl,
  269. changePassword,
  270. getAvePress,
  271. autoControl,
  272. cancelControl,
  273. avePressSetting,
  274. formData,
  275. };
  276. }