vue 弹出框 引入另一个vue页面

这篇具有很好参考价值的文章主要介绍了vue 弹出框 引入另一个vue页面。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

为什么要这么做,适用于在一个页面逻辑比较多的时候,可以搞多个页面,防止出错

vue 弹出框 引入另一个vue页面,浅谈前端,vue.js,前端,javascript
index页面点击解约按钮,弹出框 进入jieyue.vue

核心代码
vue 弹出框 引入另一个vue页面,浅谈前端,vue.js,前端,javascript

 <el-button
            size="mini"
            type="text"
            icon="el-icon-edit"
            v-if="scope.row.delFlag == 0"
            @click="jieyue(scope.row)"
            v-hasPermi="['sep:channel:edit']"
          >解约</el-button>

    <testDialog title="测试窗口"  v-if="openDialog"  ref="testDialog"/>
  </div>
</template>

<script>
// 引用组件
import testDialog from "./jieyue.vue";

export default {
  // 注册组件
  components: {testDialog},
  name: "Channel",
  data() {
    return {
      openDialog: false,


    // 按钮方法
    jieyue() {
      this.openDialog = true;
      this.$nextTick(() => {
        this.$refs.testDialog.init(2);
      });
    },


代码截图
vue 弹出框 引入另一个vue页面,浅谈前端,vue.js,前端,javascript
jieyue.vue就是常规代码了

<template>
  <!-- 添加或修改个体户渠道信息对话框 -->
  <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body :close-on-click-modal="false" :close-on-press-escape="false">
    <el-form ref="form" :model="form" :rules="rules" label-width="180px">
      <!--        <el-form-item label="渠道编号" prop="channelNo">
                <el-input v-model="form.channelNo" placeholder="请输入渠道编号" />
              </el-form-item>-->
      <el-form-item label="渠道商名称" prop="channelName">
        <el-input v-model="form.channelName" placeholder="请输入渠道商名称" />
      </el-form-item>
      <!-- 做成一个下拉框选择 -->
      <el-form-item label="上级渠道" prop="parentId">
        <!-- <el-input v-model="form.parentId" placeholder="请输入个体户父渠道ID" /> -->
        <el-select v-model="form.parentId" clearable placeholder="请选择上级渠道(无则不选)" >
          <el-option v-for="item in channelOption"
                     :key="item.id"
                     :label="item.channelName"
                     :value="item.id">
          </el-option>
        </el-select>
      </el-form-item>
      <el-form-item label="返佣收款公司名称" prop="channelRebateName" >
        <el-input v-model="form.channelRebateName" placeholder="请输入渠道返佣收款公司名称" />
      </el-form-item>
      <el-form-item label="返佣收款公司联系人" prop="channelLinkname">
        <el-input v-model="form.channelLinkname" placeholder="请输入渠道返佣收款公司联系人" />
      </el-form-item>
      <el-form-item label="返佣收款公司联系电话" prop="channelLinkphone" >
        <el-input v-model="form.channelLinkphone" placeholder="请输入渠道返佣收款公司联系电话" />
      </el-form-item>
      <el-form-item label="返佣收款公司联系邮箱" prop="channelLinkmail" >
        <el-input v-model="form.channelLinkmail" placeholder="请输入渠道返佣收款公司联系邮箱" />
      </el-form-item>
      <el-form-item label="返佣收款公司收款账户" prop="channelAccount" >
        <el-input v-model="form.channelAccount" placeholder="请输入渠道返佣收款公司收款账户" />
      </el-form-item>
      <el-form-item label="返佣收款公司开户银行" prop="channelBank" >
        <el-input v-model="form.channelBank" placeholder="请输入渠道返佣收款公司开户银行" />
      </el-form-item>

      <el-form-item label="返佣打款服务商名称"  prop="serviceId">
        <el-select v-model="form.serviceId" placeholder="请选择返佣打款服务商名称" @change="chooseService($event)">
          <el-option
            v-for="item in servicesOptions"
            :key="item.id"
            :label="item.serviceName"
            :value="item.id"
          ></el-option>
        </el-select>
      </el-form-item>

      <el-form-item label="客户经理"  prop="salesManagerId">
        <el-select v-model="form.salesManagerId" placeholder="请选择客户经理" @change="chooseManager($event)">
          <el-option
            v-for="item in managerOptions"
            :key="item.id"
            :label="item.name"
            :value="item.id"
          ></el-option>
        </el-select>
      </el-form-item>
    </el-form>
    <div slot="footer" class="dialog-footer">
      <el-button type="primary" @click="submitForm">确 定</el-button>
      <el-button @click="cancel">取 消</el-button>
    </div>
  </el-dialog>

</template>

<script>

import {
  listChannel, getChannel, delChannel, addChannel, updateChannel,
  deactivateAccount,
  resetPassword,
  getChannelSelection,
  updateChannelBatch, addChannelUser, listChannelData
} from '@/api/sep/channel'
import { getSepEnterprise, updateSepEnterpriseData } from '@/api/sep/SepEnterprise'
import { listUser,changeUserStatus } from '@/api/system/user'

export default {
  name: "testDialog",
  data() {
    return {
      form: {},
      //服务商list
      servicesOptions:[],
      //客户经理list
      managerOptions:[],
      channelOption:[],
      // 表单校验
      rules: {
        salesManagerId:[{ required: true, message: '客户经理不能为空', trigger: 'change' }],
        serviceId:[{ required: true, message: '返佣打款服务商名称不能为空', trigger: 'change' }],
        channelBank:[{ required: true, message: '返佣收款公司开户银行不能为空', trigger: 'blur' }],
        channelName:[{ required: true, message: '渠道商名称不能为空', trigger: 'blur' }],
        channelRebateName:[{ required: true, message: '返佣收款公司名称不能为空', trigger: 'blur' }],
        channelLinkname:[{ required: true, message: '联系人不能为空', trigger: 'blur' }],
        channelLinkmail:[{ required: true, message: '联系邮箱不能为空', trigger: 'blur' }],
        channelLinkphone: [
          // 添加正则表达式 pattern: /^1[3|5|7|8|9]\d{9}$/,验证手机号是否正确
          { required: true, message: '请输入手机号', trigger: 'blur' },
          // { pattern: /^1[3|5|7|8|9]\d{9}$/, message: '请输入正确的号码格式', trigger: 'change' }
        ],
        channelAccount: [
          { required: true, message: '请输入银行卡号', trigger: 'blur' },
          // {pattern: /^([1-9])(\d{17})(\d|X)$/,message: "请输入正确的银行卡号",trigger: "change"}
        ],
      },
      // 弹出层标题
      title: "",
      // 是否显示弹出层
      open: false,
      // 表单参数
      bizform: {}
    };
  },
  methods: {
    // 窗口初始化方法,nextTick方法可以添加逻辑,如打开窗口时查询数据填充
    init(bizId) {
      console.log("123")
      this.open = true;
      // this.$nextTick(() => {
      //   getById(bizId).then(response => {
      //     this.bizform = response.data;
      //     this.open = true;
      //     this.title = "修改业务";
      //   });
      // });
    },
    // 取消按钮
    cancel() {
      this.open = false;
      this.reset();
    },

    submitForm: function () {
      this.$refs["bizform"].validate(valid => {
        if (valid) {
          if (this.bizform.id != undefined) {
            updateBizDefine(this.bizform).then(response => {
              if (response.data) {
                this.msgSuccess("修改成功");
                this.open = false;
                // 调用主页面的getList方法刷新主页面
                this.$parent.getList();
              } else {
                this.msgError(response.resultMsg);
              }
            });
          } else {
            addBizDefine(this.bizform).then(response => {
              if (response.data) {
                this.msgSuccess("新增成功");
                this.open = false;
                // 调用主页面的getList方法刷新主页面
                this.$parent.getList();
              } else {
                this.msgError(response.resultMsg);
              }
            });
          }
        }
      });
    }
  }
};
</script>

参考博客文章来源地址https://www.toymoban.com/news/detail-663618.html

到了这里,关于vue 弹出框 引入另一个vue页面的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【bug】vuxUI组件popup弹出框在IOS中遮罩层会遮住页面

    可以增加自定义方法v-transfer-dom transfer-dom’.js // Thanks to: https://github.com/calebroseland/vue-dom-portal

    2024年04月28日
    浏览(73)
  • 前端echarts地图3D效果+点击地域出现弹出框可以有确定取消操作

    效果图如下:    代码如下: 运行3D项目要安装一下echarts-gl依赖: 引入的jiangsu文件要单独下载json文件,附上两个网址: DataV.GeoAtlas地理小工具系列 POI数据|高德POI|高德兴趣点|高德POI数据|高德POI下载|高德POI数据库|高德POI分类|高德北京市POI|高德上海市POI|高德广州市POI|高德

    2024年02月11日
    浏览(37)
  • VUE实现弹出框 点击空白页弹框消失

    可以在Vue中实现弹出框然后通过点击空白页面来让弹窗隐藏。具体实现如下: 创建弹出框组件 在Vue中创建一个弹出框组件,用来呈现弹出框的内容和样式。该组件应该接受两个 props,一个是 show,表示弹出框是否显示,另一个是 onClose,表示弹出框的关闭函数。 创建父组件

    2024年02月15日
    浏览(39)
  • Vue3 + Element UI 实现文件上传弹出框

    Vue3 + Element UI 实现文件上传 实现如下: 1.首页添加按钮点击弹出文件框 给dialog设置传参 展示对话框,设置 页面部分代码如下: 语法部分代码如下: 2.弹出框 页面部分代码如下: 语法部分代码如下 上述实现弹出框上传文件事件,当文件上传后需要更新文件管理展示页面,

    2024年02月11日
    浏览(56)
  • Web前端篇——el-date-picker日期弹出框大小的修改

    通常情况下el-date-picker日期弹出框的大小我们很少去改到它,但是如果某些特定情况下需要我们改动它的话,可以按以下步骤实现: 1.第一步,定义一个style样式 2.第二步, 设置popper-class样式和事件监听 在el-date-picker给popper-class使用该样式,并添加一个弹出框的显示与隐藏监

    2024年01月25日
    浏览(31)
  • 基于vue+Element Table Popover 弹出框内置表格的封装

    在选择数据的时候需要在已选择的数据中对比选择,具体就是点击一个按钮,弹出一个小的弹出框,但不像对话框那样还需要增加一个遮罩层,更加的轻量化,但是需要查看的数据很多需要一个列表来展示,列表的话还需要一个筛选功能。 我的思路是增加复选框列,将选择的

    2024年02月07日
    浏览(35)
  • 前端项目部署自动检测更新后通知用户刷新页面(前端实现,技术框架vue、js、webpack)——方案一:编译项目时动态生成一个记录版本号的文件

    当我们重新部署前端项目的时候,如果用户一直停留在页面上并未刷新使用,会存在功能使用差异性的问题,因此,当前端部署项目后,需要提醒用户有去重新加载页面。 vue、js、webpack 编译项目时动态生成一个记录版本号的文件 轮询(20s、自己设定时间)这个文件,判断版

    2024年02月02日
    浏览(57)
  • 清除引入js缓存,vue切换页面重新加载

    require引入的js require.cache删除js缓存

    2024年02月16日
    浏览(45)
  • 【前端】在Vue页面中引入其它vue页面 数据传输 相互调用方法等

    1.this.$emit ,子传父 2.this.$children属性 this.$children返回的是数组 例子: 3.通过this.$refs获取组件 4.this.$parent获取父组件数据 this.$parent返回的是对象,this.$children返回的数组 例子: 需求         在 home.vue 中引用 headView.Vue 方案: home.vue 代码: 只需要在home.vue 想要的地方添加 

    2024年02月07日
    浏览(33)
  • Selenium4+Python3 - Iframe、Select控件、交互式弹出框、执行JS、Cookie操作

    iframe识别: 语法: driver.switch_to.frame(‘方式’) 1、常见处理方法三种 index:下标 name:id或name属性的值 webelement:元素 2、通过下标进入 进入第一个iframe: 3、通过id或name属性的值进入 通过id或name属性的值进入指定的iframe: 4、通过iframe元素进入iframe 通过iframe元素进入指定i

    2024年02月04日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包