if (systemSetService?.get_sys_parameter) { this.initParameter = systemSetService?.get_sys_parameter(this.sys_parameter)?.parameter_value // console.log('默认参数', this.initParameter, this.sys_parameter) } watch( () => { return this.defaultQueryID }, () => { this.currentQueryID = this.defaultQueryID if (this.defaultQueryID === 'none') { this.needLoadData = true } }, {immediate:false, deep:true} ) watch( () => { return this.selDatas }, () => { this.hiddenSelDatas = [] if (this.selDatas?.length > 3 || !!this.isMobilePhone()) { this.selDatas.forEach((item,index) => { if(index > 2 || !!this.isMobilePhone()) { this.hiddenSelDatas.push({ no: item.query_id, label: item.query_name, icon: item.query_id === this.currentQueryID ? 'pi pi-check' : '', command: () => { this.onClickChip(item) } }) } }) } }, {immediate:false, deep:true} )
时间: 2024-02-14 12:36:11 浏览: 139
这段代码是一个 Vue.js 组件中的 JavaScript 代码块,主要用于监听数据变化并进行相应的处理。其中,第一部分代码用于获取系统参数并初始化参数值,通过调用 systemSetService?.get_sys_parameter 方法来获取指定参数的值,并将其保存到 this.initParameter 中。
第二部分代码使用 Vue.js 中的 watch 方法,监听数据的变化,当 this.defaultQueryID 发生变化时执行回调函数。如果 this.defaultQueryID 被设置为 'none',则将 this.needLoadData 设置为 true。
第三部分代码同样使用 watch 方法,监听 this.selDatas 的变化。当 this.selDatas 发生变化时执行回调函数。该回调函数会将 this.hiddenSelDatas 数组清空,并根据 this.selDatas 数组的长度和当前设备类型来决定是否将数据存储到 hiddenSelDatas 数组中。在存储数据时,会将数据转换为指定格式,并添加 command 属性,用于在点击数据时触发相应的回调函数。
需要注意的是,watch 方法中的 immediate 和 deep 参数都被设置为 false,表示不会在监听器初始化时立即执行回调函数,并且不会深度监听对象的变化。
相关问题
/* * SPDX-FileCopyrightText: 2015-2022 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Unlicense OR CC0-1.0 */ #include <string.h> #include "freertos/FreeRTOS.h" #include "freertos/task.h" #include "esp_log.h" #include "esp_check.h" #include "bsp_board.h" #include "nvs_flash.h" #include "nvs.h" #include "settings.h" static const char *TAG = "settings"; #define NAME_SPACE "sys_param" #define KEY "param" static sys_param_t g_sys_param = {0}; static const sys_param_t g_default_sys_param = { .need_hint = 1, .sr_lang = SR_LANG_EN, .volume = 70, // default volume is 70% }; static esp_err_t settings_check(sys_param_t *param) { esp_err_t ret; ESP_GOTO_ON_FALSE(param->sr_lang < SR_LANG_MAX, ESP_ERR_INVALID_ARG, reset, TAG, "language incorrect"); ESP_GOTO_ON_FALSE(param->volume <= 100, ESP_ERR_INVALID_ARG, reset, TAG, "volume incorrect"); return ret; reset: ESP_LOGW(TAG, "Set to default"); memcpy(&g_sys_param, &g_default_sys_param, sizeof(sys_param_t)); return ret; } esp_err_t settings_read_parameter_from_nvs(void) { nvs_handle_t my_handle = 0; esp_err_t ret = nvs_open(NAME_SPACE, NVS_READONLY, &my_handle); if (ESP_ERR_NVS_NOT_FOUND == ret) { ESP_LOGW(TAG, "Not found, Set to default"); memcpy(&g_sys_param, &g_default_sys_param, sizeof(sys_param_t)); settings_write_parameter_to_nvs(); return ESP_OK; } ESP_GOTO_ON_FALSE(ESP_OK == ret, ret, err, TAG, "nvs open failed (0x%x)", ret); size_t len = sizeof(sys_param_t); ret = nvs_get_blob(my_handle, KEY, &g_sys_param, &len); ESP_GOTO_ON_FALSE(ESP_OK == ret, ret, err, TAG, "can't read param"); nvs_close(my_handle); settings_check(&g_sys_param); return ret; err: if (my_handle) { nvs_close(my_handle); } return ret; } esp_err_t settings_write_parameter_to_nvs(void) { ESP_LOGI(TAG, "Saving settings"); settings_check(&g_sys_param); nvs_handle_t my_handle = {0}; esp_err_t err = nvs_open(NAME_SPACE, NVS_READWRITE, &my_handle); if (err != ESP_OK) { ESP_LOGI(TAG, "Error (%s) opening NVS handle!\n", esp_err_to_name(err)); } else { err = nvs_set_blob(my_handle, KEY, &g_sys_param, sizeof(sys_param_t)); err |= nvs_commit(my_handle); nvs_close(my_handle); } return ESP_OK == err ? ESP_OK : ESP_FAIL; } sys_param_t *settings_get_parameter(void) { return &g_sys_param; }
这段代码是一个设置参数的示例代码。它使用 ESP-IDF(Espressif IoT Development Framework)和 NVS(Non-volatile Storage)来读取和保存系统参数。
首先,我们定义了一些常量和变量。其中,TAG 是用于在日志中标识相关的日志消息的字符串。NAME_SPACE 是用于在 NVS 中保存参数的命名空间。KEY 是参数在 NVS 中的键名。
然后,我们定义了一个 sys_param_t 结构体类型的全局变量 g_sys_param,用于存储系统参数。我们还定义了一个 g_default_sys_param 常量,用于存储默认的系统参数。
接下来,我们定义了一个 settings_check 函数,用于检查系统参数的合法性。在函数中,我们检查了语言类型和音量值是否在有效范围内。如果参数不合法,则将系统参数重置为默认值。
然后,我们定义了 settings_read_parameter_from_nvs 函数,用于从 NVS 中读取系统参数。首先,我们打开 NVS,并检查是否找到了保存的参数。如果没有找到,则将系统参数设置为默认值,并调用 settings_write_parameter_to_nvs 函数将默认值保存到 NVS 中。如果找到了保存的参数,则从 NVS 中读取参数,并进行合法性检查。
接下来,我们定义了 settings_write_parameter_to_nvs 函数,用于将系统参数保存到 NVS 中。首先,我们调用 settings_check 函数对系统参数进行合法性检查。然后,我们打开 NVS,并将系统参数写入 NVS 中。
最后,我们定义了 settings_get_parameter 函数,用于获取当前的系统参数。
以上是一个简单的示例代码,用于读取和保存系统参数到 NVS 中。具体的使用方式和调用逻辑可能根据实际需求而有所不同。如果你需要更详细的说明,请告诉我。
这是service: public WmsStoreInterOrder getLatestInterOrder(String phone) { // 根据phone查询对应的SysUser类的id QueryWrapper<SysUser> userQueryWrapper = new QueryWrapper<>(); userQueryWrapper.eq("phone", phone); SysUser user = sysUserService.getOne(userQueryWrapper); Long userId = user.getId(); // 查询roleId等于4的人 QueryWrapper<SysUserRoleRel> relQueryWrapper = new QueryWrapper<>(); relQueryWrapper.eq("roleId", 7105332176376758296L); List<SysUserRoleRel> relList = sysUserRoleRelService.list(relQueryWrapper); // 获取符合条件的userId列表 List<Long> userIdList = new ArrayList<>(); for (SysUserRoleRel rel : relList) { if (rel.getUserId().equals(userId)) { userIdList.add(rel.getUserId()); } } // 查询最新的WmsStoreInterOrder QueryWrapper<WmsStoreInterOrder> orderQueryWrapper = new QueryWrapper<>(); orderQueryWrapper.select("*") .orderByDesc("inter_time") .last("limit 1"); return getOne(orderQueryWrapper); } 这是controller: @PostMapping("/latestInterOrder") @ApiOperation(value = "仓库管理员获取消息通知") public GlobalResponse<WmsStoreInterOrder> getLatestInterOrder(@RequestParam String phone) { WmsStoreInterOrder latestInterOrder = wmsStoreInterOrderService.getLatestInterOrder(phone); return GlobalResponse.success(latestInterOrder); } 我穿了参数,但是报错org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'phone' is not present
根据你提供的代码,看起来你的请求参数是正确的,但是还是出现了缺少参数的异常。你可以检查一下以下几个方面:
1. 确认你发送的请求类型是POST类型,并且请求的URL是正确的;
2. 确认你发送的请求中的参数名是"phone",并且参数值是一个非空字符串;
3. 检查一下你的请求头是否设置了Content-Type为application/json,如果是,那么你需要将请求体中的参数转换成json格式;
4. 如果你使用的是Postman等工具发送请求,可以尝试清空浏览器缓存或者使用其他浏览器再试一下。
希望以上方法能够帮到你解决问题。
阅读全文