paramsSetInfo.vue 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. <template>
  2. <!-- 设备参数调整 -->
  3. <div class="paramsSetPage flex-col">
  4. <s-header :name="paramsTitle" :noback="false"></s-header>
  5. <div class="paramsSetBox mod1 flex-col">
  6. <div class="wrap2 flex-col van-hairline--bottom">
  7. <div class="outer1 flex-row justify-between">
  8. <div class="block1 flex-col"></div>
  9. <span class="txt2">{{ $t('device.equipmentName') }}:{{ deviceDetal ? deviceDetal.name : "" }}</span>
  10. </div>
  11. </div>
  12. <!-- <van-divider :style="{ margin: '5px 16px' }" /> -->
  13. <div class="" v-if="type == '3'">
  14. <van-field :label="$t('device.numberOneTm')" :model-value="(deviceDetal.numberOne == null ? $t('device.noData') : deviceDetal.numberOne + $t('device.degree'))" readonly />
  15. <van-field :label="$t('device.furnaceHeadTemperature')" :model-value="(deviceDetal.furnaceTm == null ? $t('device.noData') : deviceDetal.furnaceTm + $t('device.degree'))" readonly />
  16. <van-field :label="$t('device.candyGeneratorTm')" :model-value="(deviceDetal.candyGeneratorTm == null ? $t('device.noData') : deviceDetal.candyGeneratorTm + $t('device.degree'))" readonly />
  17. <van-field :label="$t('device.temperatureInCabinet')" :model-value="(deviceDetal.cabinetTm == null ? $t('device.noData') : deviceDetal.cabinetTm + $t('device.degree'))" readonly />
  18. <van-field :label="$t('device.humidityInCabinet')" :model-value="(deviceDetal.cabinetHd == null? $t('device.noData') : deviceDetal.cabinetHd + $t('device.humidity'))" readonly />
  19. <van-field :label="$t('device.outsideTm')" :model-value="(deviceDetal.outsideTm == null ? $t('device.noData') : deviceDetal.outsideTm + $t('device.degree'))" readonly />
  20. <van-field :label="$t('device.outsidehd')" :model-value="(deviceDetal.outsideHd == null? $t('device.noData') : deviceDetal.outsideHd + $t('device.humidity'))" readonly />
  21. </div>
  22. <div class="paramsList" v-for="(item, key) in paramsList" :key="key">
  23. <van-field :model-value="item.val" @update:model-value="onUpdateParameters(item, key, $event)" v-if="item.name != 'M502' && item.name != 'M506'" name="phone" type="tel"
  24. :label="paramName[key]">
  25. <template #button>
  26. <van-button size="small" type="primary" class="updataButton" @click="updateParams(item, key)">{{
  27. $t('device.submitUpdates') }}</van-button>
  28. </template>
  29. </van-field>
  30. <div class="flex-row" v-else>
  31. <span class="txt3 o-pl-15 o-mtb-18" v-if="item.name != 'M502'">{{ paramName[key] }}
  32. </span>
  33. <van-switch v-if="item.name != 'M502'" class="o-mt-8" :model-value="checked[key]" @update:model-value="onUpdateValue(item, key)">
  34. </van-switch>
  35. </div>
  36. </div>
  37. </div>
  38. </div>
  39. </template>
  40. <script>
  41. import { onMounted, ref } from "vue";
  42. import sHeader from "@/components/SimpleHeader";
  43. import { useRoute } from "vue-router";
  44. import { getDeviceDetal, getParameters, updateParameters } from "@/service/device";
  45. import { showFailToast, showSuccessToast, showConfirmDialog, showToast } from "vant";
  46. import { useI18n } from 'vue-i18n';
  47. import { styleUrl } from "../../../common/js/utils";
  48. export default {
  49. components: { sHeader },
  50. setup() {
  51. const { t } = useI18n();
  52. const route = useRoute();
  53. const deviceId = route.query.deviceId;
  54. const deviceDetal = ref([]);
  55. const paramsTitle = ref("");
  56. const paramsList = ref([]);
  57. const comParams = ref([]);
  58. const paramName = ref([]);
  59. const checked = ref([]);
  60. const type = ref("");
  61. const isChange = ref(false);
  62. const howLong = ref([]);
  63. // 初始化页面获取列表
  64. onMounted(async () => {
  65. // 加载样式
  66. styleUrl('paramsSet');
  67. type.value = route.query.type;
  68. if (route.query.type === "0") {
  69. paramsTitle.value = t('device.generalParameterConfiguration');
  70. }
  71. if (route.query.type === "1") {
  72. paramsTitle.value = t('device.advancedParameterConfiguration');
  73. }
  74. if (route.query.type === "2") {
  75. paramsTitle.value = t('device.debuggingParameterConfiguration');
  76. }
  77. if (route.query.type === "3") {
  78. paramsTitle.value = t('device.humidityParameterConfiguration');
  79. }
  80. getDeviceDetalFun();
  81. });
  82. // 获取设备列表数据
  83. const getDeviceDetalFun = async () => {
  84. const { data } = await getDeviceDetal({ id: deviceId });
  85. if (data.code === "00000") {
  86. deviceDetal.value = data.data;
  87. getParametersFun();
  88. } else {
  89. showFailToast(data.message);
  90. }
  91. };
  92. // 获取参数列表
  93. const getParametersFun = async () => {
  94. paramsList.value = [];
  95. const params = {
  96. id: deviceId,
  97. status: route.query.type,
  98. clientId: deviceDetal.value.clientId,
  99. };
  100. const { data } = await getParameters(params);
  101. if (data.code) {
  102. paramsList.value = data.data;
  103. paramsList.value.forEach((paramItem) => {
  104. comParams.value.push(paramItem.name);
  105. paramName.value.push(t("paramNames." + paramItem.name));
  106. if (paramItem.val === '1') {
  107. checked.value.push(true);
  108. } else {
  109. checked.value.push(false);
  110. }
  111. howLong.value.push(paramItem.val != null ? paramItem.val.length : 0);
  112. })
  113. // console.log("longs", howLong.value)
  114. } else {
  115. showToast(t('device.noParameterData'));
  116. }
  117. };
  118. const onUpdateParameters = (item, key, e) => {
  119. // console.log(e);
  120. // console.log(howLong.value[key]);
  121. if (howLong.value[key] != e.length) {
  122. isChange.value = true;
  123. } else {
  124. isChange.value = false;
  125. }
  126. item.val = e;
  127. }
  128. // 更新参数值
  129. const updateParams = async (item, key) => {
  130. const params = {
  131. id: deviceId,
  132. name: item.name,
  133. val: item.val,
  134. };
  135. showConfirmDialog({
  136. title: t('device.tips'),
  137. message: t('device.isUpdate') + paramName.value[key] + t('device.to') + item.val + '?'+ (isChange.value ? t('device.attention') : ''),
  138. }).then(async() => {
  139. const { data } = await updateParameters(params);
  140. if (data.code) {
  141. showSuccessToast(t('device.modificationSucceeded'));
  142. } else {
  143. showFailToast(data.message);
  144. }
  145. }).catch(() => {
  146. })
  147. }
  148. const onUpdateValue = (item, key) => {
  149. console.log(item);
  150. const params = {
  151. id: deviceId,
  152. name: item.name,
  153. val: item.val == '0' ? '1' : '0',
  154. };
  155. showConfirmDialog({
  156. title: t('device.tips'),
  157. message: t('device.content'),
  158. }).then(async () => {
  159. const { data } = await updateParameters(params);
  160. if (data.code) {
  161. checked.value[key] = !checked.value[key];
  162. showSuccessToast(t('device.modificationSucceeded'));
  163. } else {
  164. showFailToast(data.message);
  165. }
  166. }).catch(() => {
  167. // on cancel
  168. });
  169. };
  170. return {
  171. deviceDetal,
  172. paramsTitle,
  173. paramsList,
  174. // getParamName,
  175. updateParams,
  176. paramName,
  177. checked,
  178. onUpdateValue,
  179. type,
  180. onUpdateParameters,
  181. };
  182. },
  183. };
  184. </script>
  185. <style lang="less" scoped>
  186. @import "../../../common/style/common";
  187. .paramsValue {
  188. margin: 0 40px;
  189. }
  190. </style>