# 表单设计器高级操作 ## 全局JS增强 可以在**表单属性**里最下方找到**JS增强**的输入框,在这里可以写js代码,在预览的时候会自动执行你写的JS代码。 ![](https://img.kancloud.cn/29/19/291907b32e070f111df568f581c70389_319x703.png) ## 全局JS增强 API > 在JS增强输入框里除了可以用挂载到window中的全局变量之外,还可以用我们给你封装好的几个变量以及方法,他们分别如下 - `vm` Vue实例,可以调用Vue的一系列的方法,例如 vm.$nextTick(); - `event` Event对象,可以调用 event.type 来判断当前是什么增强类型(全局还是按钮) - `moment` moment 对象 - `api` 封装了一下api,具体如下 - `getFormData(key)` 获取form表单的值,如果 key 为空,则返回所有的Data - `setFormData(key, value)` 设置form表单的值 - `setFormOptions(key, optionsKey, optionsValue)` 设置一个或多个组件的options - 示例: ``` let opts = [{label: '男',value: '1'} ,{label: '女',value: '2'}] api.setFormOptions(key, 'options', options) ``` - 注意:如果要设置组件的下拉选项(options),则只能当组件是静态数据时才能设置,如果是字典或远程数据,那就会不生效。 - `show(key)` 显示一个或多个组件 - `hide(key)` 隐藏一个或多个组件 - `watch(watchItems)` 设置监听 models 值的变化 - 示例: ```js // 与vue的watch用法相同,可参考vue的官方文档 api.watch({ name(val, oldVal){ // name 发生了变化 }, info(val, oldVal){ // info 发生了变化 } }); ``` - `get(url, parameter)` 发送Get请求 - `post(url, parameter)` 发送Post请求 - `put(url, parameter)` 发送Put请求 - `request(url, parameter, method)` 发送请求 - `executeAllFillRule()` 重新执行所有的填值规则