最近学习若依框架过程中想要实现点击按钮显示弹窗,在弹窗选择信息后回读到父组件中显示,初步测试符合要求,在这里记录一下
实现效果
点击图2【科室名称】的放大镜,弹出图1选择框,单击确定或者双击选择后回写到图2中,也可以回写多个选项,例如备注回写的科室领导
弹窗页面借助若依代码生成功能,将生成的科室管理页面进行修改,作为独立页面放在ruoyi-ui/src/components
下(components应该是公共组件页面,为保证页面整洁,在components下新建test
文件夹,将selectDept.vue
放入其中)
页面调整内容
直接复制科室管理页面,清理不需要的增删改查按钮及【修改科室管理对话框】
使用el-dialog
将整个页面以弹窗的形式展示
代码...
/** import引入内容(script中) */
import { listDept } from "@/api/test/dept";/** data中新增回传数据数组及选择序号(script中) */
data(){代码...selectDeptId: undefined,selectedRows: [],
}/** methods中新增选择、单击、双击、确定选中4个方法(script中) */handleCurrent(row){if(row){this.selectedRows = row;}},// 单选选中数据handleRowChange(row) {if(row){this.selectedRows = row;}},//双击选中handleRowDbClick(row){if(row){this.selectedRows = row;this.$emit('onSelected',this.selectedRows);this.showFlag = false;}},//确定选中confirmSelect(){if(this.selectDeptId == null || this.selectDeptId == 0){this.$notify({title:'提示',type:'warning',message: '请至少选择一条数据!'});return;}this.$emit('onSelected',this.selectedRows);this.showFlag = false;}/** el-table模块调用对应方法(template中) */{{""}} 0":total="total":page.sync="queryParams.pageNum":limit.sync="queryParams.pageSize"@pagination="getList"/>确 定 取 消
selectDept.vue
页面// script中
import deptSelect from "@/components/Test/selectDept"export default {代码...components: { deptSelect },
}
//点击弹窗方法(script中)handleDeptSelect(){this.$refs.woSelect.showFlag = true;},//选择信息后操作onDeptSelected(row){if (row != undefined && row != null){this.form.deptName = row.deptsName;this.form.remark = row.deptsLeader;}}
//template中