avue-crud字段之间的动态交互效果以及接口数据的获取赋值
一、form表单下拉表单类型字段数据获取
1.通过配置系统字典接口获取数据并渲染
{
label: "经纪人",
prop: "broker",
type: "select",
dicUrl: "/blade-system/dict/dictionary?code=broker",
props: {
label: "dictValue",
value: "dictKey",
},
dataType: "number",
},
2.通过后台开发接口获取一级字段数据并赋值
{
label: "经纪人",
prop: "broker",
type: "select",
dicData: [],
props: {
label: "name",
value: "id"
},
},
import {brokerGetlist} from "@/api/property/presalecontracts";
beforeOpen(done, type) {
let current = 1
let size = 10
// '经纪人'下拉表单字段数据
brokerGetlist(current, size,Object.assign({},{})).then(res => {
const column = this.findObject(this.option.column, "broker");
column.dicData = res.data.data.records;
})
},
3.通过后台开发接口获取二级字段数据并赋值
{
label: "复合图层",
prop: "layerResourceRelations",
type: "dynamic",
span: 12,
hide:true,
display:false,
children: {
align: "center",
addBtn:true,
column: [
{
label: "图层",
prop: "compositionRelationLandLayerId",
type: "select",
dicData: [],
props: {
label: "layerName",
value: "id"
},
}
]
}
}
beforeOpen(done, type) {
listByLayer().then(res => {
const column = this.findObject(this.option.column, "layerResourceRelations");
const column1 = this.findObject(column.children.column, "compositionRelationLandLayerId");
column1.dicData = res.data.data;
})
}
二、动态控制字段之间的联动
1.动态赋值
column: [
{
type: "select",
label:"编码",
prop: "Number",
dicData: [
{
label: "出让",
value: 12345645132,
},
{
label: "签约",
value: 19546561231,
}
]
}, {
type: "input",
label: "描述1",
prop: "desc1",
}, {
type: "input",
label: "描述2",
prop: "desc2",
},
] watch: {
// 监听'编码'字段选择之后动态赋值给其他form数据
'form.Number'(){
let id = this.form.Number
//当'编码'选择数据之后开始调接口
pregetDetail(id).then(res => {
this.form = res.data.data;
this.form.desc1 = data.desc1
this.form.desc2 = data.desc2
});
}
},
2.动态显隐
column: [
{
label: "图层类型",
prop: "layerType",
type: "select",
dicData: [
{
label: "出让",
value: 1,
},
{
label: "签约",
value: 2,
}
]
},
{
label: "图层名称",
prop: "layerName",
display:false, //是否显示默认值
},
{
label: "元数据类型",
prop: "metadataCode",
display:false, //是否显示默认值
},
] watch: {
'form.layerType'(val) {
let layerName= this.findObject(this.option.column,'layerName');
let metadataCode = this.findObject(this.option.column,'metadataCode');
if(val == 1){
layerName.display = true; //图层名称
metadataCode.display = true; //元数据类型
}else if(val == 2){
layerName.display = false; //图层名称
metadataCode.display = false; //元数据类型
}
},
},
3.动态禁止
column: [
{
label: "图层类型",
prop: "layerType",
type: "select",
dicData: [
{
label: "出让",
value: 1,
},
{
label: "签约",
value: 2,
}
]
},
{
label: "图层名称",
prop: "layerName",
disabled:false, //是否禁止默认值
},
{
label: "元数据类型",
prop: "metadataCode",
disabled:false, //是否禁止默认值
},
] watch: {
'form.layerType'(val) {
let layerName= this.findObject(this.option.column,'layerName');
let metadataCode = this.findObject(this.option.column,'metadataCode');
if(val == 1){
layerName.disabled = true; //图层名称
metadataCode.disabled = true; //元数据类型
}else if(val == 2){
layerName.disabled = false; //图层名称
metadataCode.disabled = false; //元数据类型
}
},
},
三、监听(区分判断新增或编辑弹窗)字段改变时赋值或者改变其他字段的值
{
label: "图层类型",
prop: "layerType",
type: "select",
dataType: "number",
dicUrl: "/api/blade-system/dict/dictionary?code=layerType",
props: {
label: "dictValue",
value: "dictKey"
},
change:(val) =>{
if(val.column.boxType == 'add'){
//新增弹窗改变下拉表单数值的时候
this.form.switchDataSource = ''
this.form.dataLandLayerId = ''
}else if(val.column.boxType == 'edit'){
//编辑弹窗改变下拉表单数值的时候
this.form.switchDataSource = ''
}
}
},
四、avue-crud限制子表单类型dynamic最多添加几条数据
需求:限制子表单type: "dynamic"最多可添加几条数据,超过限制条数则隐藏添加按钮但能正常删除,删除后还能继续添加
{
label: "复合图层",
prop: "layerResourceAddresses",
type: "dynamic",
span: 12,
hide:true,
children: {
align: "center",
addBtn:true, //添加按钮显示
column: [
{
label: "图层",
prop: "layerResource",
type: "select",
dicData: [],
props: {
label: "name",
value: "id"
},
}]
}
},
//监听子表单总数据
watch: {
'form.layerResourceAddresses'(val) {
let layerResourceAddresses = this.findObject(this.option.column,'layerResourceAddresses'); //绑定子表单属性
if(val.length > 3){
this.$message.warning("最多可添加四条图层!");
layerResourceAddresses.children.addBtn = false //隐藏添加按钮
}else{
layerResourceAddresses.children.addBtn = true //显示添加按钮
}
}
},
avue-crud字段之间的动态交互效果以及接口数据的获取赋值的更多相关文章
- 前端开发---ppt展示页面评论区支持动态交互效果
1. 工程地址:https://github.com/digitalClass/web_page 网站发布地址: http://115.28.30.25:8029/ 2. 用到的技术主要还是jquer ...
- 用wamp实现前端和php的交互效果
我们今天来用php来做一下前台与后台的交互效果,首先我们先打开这个软件. 看一下电脑右下角的小图标 当变成之后鼠标左键 打开这个之后点击第二个之后会打开一个网站 点击右面页面的数据库打开新建数据库,填 ...
- AxureRP7.0各类交互效果汇总帖(转)
了便于大家参考,我把这段时间发布分享的所有关于AxureRP7.0的原型做了整理. 以下资源均有对应的RP源文件可以下载. 当然 ,其中有部分是需要通过完成解密游戏[攻略]才能得到下载地址或者下载密码 ...
- Android中使用开源框架EventBus3.0实现Fragment之间的通信交互
1.概述 在之前的博文中简单介绍过如何实现fragment之间的信息交互:<Android中Fragment与Activity之间的交互(两种实现方式)>,今天继续给大家介绍一种可以实现此 ...
- 微信网页悬浮窗交互效果的web实现
一.微信的悬浮窗交互效果 微信更新后,发现多了个悬浮窗功能.公众号阅读,网页浏览回退后默认会出现.再点击,可以回到刚才阅读的地方.于是,再也不会遇到回复老婆的信息,再切换回来重新找刚才阅读东西的麻烦了 ...
- Axure教程:滑动进度条、圆形进度环的复杂交互效果实现方法
滑动条.进度条.进度环,是产品原型中比较常见的进度展示功能.今天笔者分享的是使用Axure原型工具实现两种进度展示功能中相对复杂的交互效果. 效果一.可拖动.可显示进度值.可计算多个页面均值的滑动进度 ...
- Flutter实战视频-移动电商-32.列表页_小类高亮交互效果制作
32.列表页_小类高亮交互效果制作 点击大类右侧的横向的小类红色显示当前的小类别 解决之前溢出的问题: 先解决一个bug,之前右侧的这里设置的高度是1000,但是有不同的虚拟机和手机设别的问题造成了溢 ...
- 静态网页怎样实现动态交互?-JavaScript
在Html基础上,javascript能够开发交互式web网页.javascript的出现使得网页和用户之间实现了一种实时性的.动态的.交互性的关系,javascript短小精悍,又是在客户机上执行的 ...
- ABAP 动态备份自建表数据到新表(自建表有数据的情况下要改字段长度或者其他)
当abaper开发好一个程序给用户使用一段时间后,发现某个字段的长度需要修改,但数据库表中已经存在很多数据,冒然直接改表字段可能会导致数据丢失,这种问题的后果可能非常严重. 所以我想到先复制出一个新表 ...
- 多功能前台交互效果插件superSlide
平时我们常用的"焦点图/幻灯片""Tab标签切换""图片滚动""无缝滚动"等效果要加载n个插件,又害怕代码冲突又怕不兼容 ...
随机推荐
- Python基础之:Python中的模块
目录 简介 模块基础 执行模块 模块搜索路径 dir 包 包的相对路径 简介 Python的解释环境是很好用,但是如果我们需要编写一个大型的程序的时候,解释环境就完全不够用了.这个时候我们需要将pyt ...
- 开发板如何适配OpenHarmony 3.2
简介 OpenAtom OpenHarmony(以下简称"OpenHarmony") 3.2 Beta5版本在OpenHarmony 3.1 Release版本的基础上,有以下 ...
- OpenHarmony开发之MQTT讲解
相信MQTT这个名称大家都不陌生,物联网的开发必然会遇到MQTT相关知识的应用.那么什么是MQTT?它有什么特点?它能解决什么问题?它是如何工作的?OpenAtom OpenHarmony(以下简 ...
- Demo Day直播 | 成长计划解决方案学生挑战赛一等奖即将揭晓!
OpenAtom OpenHarmony开源开发者成长计划 解决方案学生挑战赛 Demo Day来袭! 每一支队伍 心怀梦想,攻坚克难 迸发出照亮世界的火花 用技术推动世界进步 与你一起,共创未来 ...
- 本周四晚19:00知识赋能第4期直播丨OpenHarmony智能家居项目之设备控制实现
OpenAtom OpenHarmony(以下简称"OpenHarmony")开源开发者成长计划项目自 2021 年 10 月 24 日上线以来,在开发者中引发高度关注. 成长计划 ...
- 深入理解 C# 编程:枚举、文件处理、异常处理和数字相加
C# 枚举 枚举是一个特殊的"类",表示一组常量(不可更改/只读变量). 要创建枚举,请使用 enum 关键字(而不是 class 或 interface),并用逗号分隔枚举项: ...
- Python 简介和用途
什么是Python? Python是一种流行的编程语言,由Guido van Rossum创建,并于1991年发布. 它用于以下领域: 网页开发(服务器端) 软件开发 数学 系统脚本编写 Python ...
- Python 安装与快速入门
Python安装 许多PC和Mac已经预装了Python. 要检查在Windows PC上是否安装了Python,请在开始菜单中搜索Python,或在命令行(cmd.exe)上运行以下命令: C:\U ...
- centos7.2 利用yum安装配置apache2.4多虚拟主机
centos7.2 利用yum安装配置apache2.4多虚拟主机 标签: centosapacheyum 2017-01-10 21:01 3175人阅读 评论(0) 收藏 举报 分类: ...
- Error:A problem occurred configuring project ':app'.
前言 因为部门需要用到另外一个部门的库,而另外一个部门是c++部门,这种声音视频算法java做不了的. 如果是因为有引入c++库产生的这个问题,那么基本上你需要肯定你安装了ndk,如果没有安装那么会报 ...