表单数据提交到后台

  1. export const page_add = paramas => {
  2. return http.requestPost(apiUrl+'/cms/page/add',paramas)
  3. }

page_add.vue的提交按钮的事件

要解析的结果json

使用message提示信息

简写的方式

  1. addSubmit(){
  2. this.$refs['pageForm'].validate((valid)=>{
  3. if(valid){
  4. cmsApi.page_add(this.pageForm).then(res=>{
  5. //解析服务端响应内容
  6. if(res.success){
  7. // this.$message({
  8. // message:'提交成功!',
  9. // type:'success'
  10. // })
  11. this.$message.success("提交成功")
  12. }
  13. });
  14. }else{
  15. //console.log('error submit!!')
  16. this.$message.error("提交失败")
  17. return false
  18. }
  19. })
  20. }

纠正page_add.vue ,最上面是两个下拉选择select

controller里面加个断点

数据库内有数据

重复提交就会失败

增加一个是否确认提交

找到确认的弹窗的代码

  1. <template>
  2. <el-button type="text" @click="open">点击打开 Message Box</el-button>
  3. </template>
  4.  
  5. <script>
  6. export default {
  7. methods: {
  8. open() {
  9. this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
  10. confirmButtonText: '确定',
  11. cancelButtonText: '取消',
  12. type: 'warning'
  13. }).then(() => {
  14. this.$message({
  15. type: 'success',
  16. message: '删除成功!'
  17. });
  18. }).catch(() => {
  19. this.$message({
  20. type: 'info',
  21. message: '已取消删除'
  22. });
  23. });
  24. }
  25. }
  26. }
  27. </script>

  1. addSubmit(){
  2. this.$refs.pageForm.validate((valid)=>{
  3. console.log('表单的状态')
  4. if(valid){
  5. this.$confirm('您确定提交数据吗', '提示', {}).then(() => {
  6. //alert(JSON.stringify(this.pageForm))
  7. cmsApi.page_add(this.pageForm).then(res=>{
  8. //解析服务端响应内容
  9. if(res.success){
  10. // this.$message({
  11. // message:'提交成功!',
  12. // type:'success'
  13. // })
  14. this.$message.success("提交成功")
  15. }
  16. });
  17. });
  18.  
  19. }else{
  20. //console.log('error submit!!')
  21. this.$message.error("提交失败")
  22. return false
  23. }
  24. })
  25. }


确认就会提交成功

清空表单

resetFields和clearValidate区别

https://www.jianshu.com/p/b18c1ea2bf8f

成功后表单数据清空

最终代码

  1. <template>
  2. <div>
  3. <el-form :model="pageForm" label-width="80px" :rules="pageFormRules" ref="pageForm">
  4. <el-form-item label="所属站点" prop="siteId">
  5. <el-select v-model="pageForm.siteId" placeholder="请选择站点">
  6. <el-option
  7. v-for="item in siteList"
  8. :key="item.siteId"
  9. :label="item.siteName"
  10. :value="item.siteId">
  11. </el-option>
  12. </el-select>
  13. </el-form-item>
  14. <el-form-item label="选择模板" prop="templateId">
  15. <el-select v-model="pageForm.templateId" placeholder="选择模板">
  16. <el-option
  17. v-for="item in templateList"
  18. :key="item.templateId"
  19. :label="item.templateName"
  20. :value="item.templateId">
  21. </el-option>
  22. </el-select>
  23. </el-form-item>
  24. <el-form-item label="页面名称" prop="pageName">
  25. <el-input v-model="pageForm.pageName" auto-complete="off" ></el-input>
  26. </el-form-item>
  27. <el-form-item label="别名" prop="pageAliase">
  28. <el-input v-model="pageForm.pageAliase" auto-complete="off" ></el-input>
  29. </el-form-item>
  30. <el-form-item label="访问路径" prop="pageWebPath">
  31. <el-input v-model="pageForm.pageWebPath" auto-complete="off" ></el-input>
  32. </el-form-item>
  33. <el-form-item label="物理路径" prop="pagePhysicalPath">
  34. <el-input v-model="pageForm.pagePhysicalPath" auto-complete="off" ></el-input>
  35. </el-form-item>
  36. <el-form-item label="类型">
  37. <el-radio-group v-model="pageForm.pageType">
  38. <el-radio class="radio" label="">静态</el-radio>
  39. <el-radio class="radio" label="">动态</el-radio>
  40. </el-radio-group>
  41. </el-form-item>
  42. <el-form-item label="创建时间">
  43. <el-date-picker type="datetime" placeholder="创建时间" v-model="pageForm.pageCreateTime">
  44. </el-date-picker>
  45. </el-form-item>
  46. </el-form>
  47. <div slot="footer" class="dialog-footer">
  48. <el-button type="primary" @click="addSubmit" >提交</el-button>
  49. <el-button type="primary" @click="go_back" >返回</el-button>
  50. </div>
  51. </div>
  52. </template>
  53.  
  54. <script>
  55. import * as cmsApi from '../api/cms'
  56. export default {
  57. data() {
  58. return {
  59. //站点列表
  60. siteList: [],
  61. //模版列表
  62. templateList: [],
  63. //新增界面数据
  64. pageForm: {
  65. siteId: '',
  66. templateId: '',
  67. pageName: '',
  68. pageAliase: '',
  69. pageWebPath: '',
  70. pageParameter: '',
  71. pagePhysicalPath: '',
  72. pageType: '',
  73. pageCreateTime: new Date()
  74. },
  75. pageFormRules: {
  76. siteId:[
  77. {required: true, message: '请选择站点', trigger: 'blur'}
  78. ],
  79. templateId:[
  80. {required: true, message: '请选择模版', trigger: 'blur'}
  81. ],
  82. pageName: [
  83. {required: true, message: '请输入页面名称', trigger: 'blur'}
  84. ],
  85. pageWebPath: [
  86. {required: true, message: '请输入访问路径', trigger: 'blur'}
  87. ],
  88. pagePhysicalPath: [
  89. {required: true, message: '请输入物理路径', trigger: 'blur'}
  90. ]
  91. }
  92. }
  93. },
  94. methods:{
  95. addSubmit(){
  96. this.$refs.pageForm.validate((valid)=>{
  97. console.log('表单的状态')
  98. if(valid){
  99. this.$confirm('您确定提交数据吗', '提示', {}).then(() => {
  100. //alert(JSON.stringify(this.pageForm))
  101. cmsApi.page_add(this.pageForm).then(res=>{
  102. //解析服务端响应内容
  103. if(res.success){
  104. // this.$message({
  105. // message:'提交成功!',
  106. // type:'success'
  107. // })
  108. this.$message.success("提交成功")
  109. this.$refs['pageForm'].resetFields()
  110. }
  111. });
  112. });
  113.  
  114. }else{
  115. //console.log('error submit!!')
  116. this.$message.error("提交失败")
  117. return false
  118. }
  119. })
  120. },
  121. go_back() {
  122. this.$router.push({
  123. path:'/cms/page/list',
  124. query:{
  125. page: this.$route.query.page,
  126. siteId: this.$route.query.siteId
  127. }
  128. })
  129. }
  130. },
  131. created:function(){
  132. //初始化站点列表
  133. this.siteList = [
  134. {
  135. siteId:'5a751fab6abb5044e0d19ea1',
  136. siteName:'门户主站'
  137. },
  138. {
  139. siteId:'',
  140. siteName:'测试站'
  141. }
  142. ]
  143. //模板列表
  144. this.templateList = [
  145. {
  146. templateId:'5a962b52b00ffc514038faf7',
  147. templateName:'首页'
  148. },
  149. {
  150. templateId:'5a962bf8b00ffc514038fafa',
  151. templateName:'轮播图'
  152. }
  153. ]
  154. }
  155. }
  156. </script>

page_add.vue

阶段5 3.微服务项目【学成在线】_day03 CMS页面管理开发_08-新增页面-前端-Api调用的更多相关文章

  1. 微服务项目开发学成在线_day03 CMS页面管理开发

    springboot引入mangodb依赖坐标:在spring-boot集成条件下,使用mongodb的DAO层开发. swagger查看接口文档,请求地址:http://localhost:3100 ...

  2. 阶段5 3.微服务项目【学成在线】_day04 页面静态化_16-页面静态化-模板管理-模板制作

    这是轮播图的原始文件 运行门户需要把 nginx启动起来 单独运行轮播图.把里面的css的引用都加上网址的url 这就是单独访问到的轮播图的效果 轮播图模板的地址: 阶段5 3.微服务项目[学成在线] ...

  3. 阶段5 3.微服务项目【学成在线】_day02 CMS前端开发_16-CMS前端工程创建-导入系统管理前端工程

    提供了基于脚手架封装好的前端工程 H:\BaiDu\黑马传智JavaEE57期 2019最新基础+就业+在职加薪\阶段5 3.微服务项目[学成在线]·\day02 CMS前端开发\资料\xc-ui-p ...

  4. 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_03-用户认证技术方案-Oauth2协议

    2.2 Oauth2认证 2.2.1 Oauth2认证流程 第三方认证技术方案最主要是解决认证协议的通用标准 问题,因为要实现 跨系统认证,各系统之间要遵循一定的 接口协议. OAUTH协议为用户资源 ...

  5. 阶段5 3.微服务项目【学成在线】_day16 Spring Security Oauth2_01-用户认证需求分析

    1.1 用户认证与授权 截至目前,项目已经完成了在线学习功能,用户通过在线学习页面点播视频进行学习.如何去记录学生的学习过程 呢?要想掌握学生的学习情况就需要知道用户的身份信息,记录哪个用户在什么时间 ...

  6. 微服务项目开发学成在线_day02 CMS前端开发

    1 Vue.js与Webpack研究 开发版的浏览器:https://www.google.cn/intl/zh-CN/chrome/dev/ 前端的开发框架:微服务项目开发学成在线_Vue.js与W ...

  7. 阶段5 3.微服务项目【学成在线】_day09 课程预览 Eureka Feign_05-Feign远程调用-客户端负载均衡介绍

    2 Feign远程调用 在前后端分离架构中,服务层被拆分成了很多的微服务,服务与服务之间难免发生交互,比如:课程发布需要调用 CMS服务生成课程静态化页面,本节研究微服务远程调用所使用的技术. 下图是 ...

  8. 阶段5 3.微服务项目【学成在线】_day09 课程预览 Eureka Feign_02-Eureka注册中心-搭建Eureka单机环境

    我们先搭建单机环境 govern是治理的意思, 这样就把工程创建好了 创建包 创建SpringBoot的启动类. 在父工程里面已经确定了Spring Cloud的版本了.相当于锁定了版本 接下里只需要 ...

  9. 阶段5 3.微服务项目【学成在线】_day09 课程预览 Eureka Feign_04-Eureka注册中心-将服务注册到Eureka Server

    cms相当于客户端 配置客户端的信息 后面加逗号分隔开 50102表示向两台eureka服务上报服务,如果有一台死掉了 那么还可以上另外的一台去注册服务 直接把ip注册到eureka 启动类加注解 重 ...

  10. 阶段5 3.微服务项目【学成在线】_day09 课程预览 Eureka Feign_01-Eureka注册中心-Eureka介绍

    1 Eureka注册中心 1.1 需求分析 在前后端分离架构中,服务层被拆分成了很多的微服务,微服务的信息如何管理?Spring Cloud中提供服务注册中 心来管理微服务信息. 为什么 要用注册中心 ...

随机推荐

  1. 【HICP Gauss】数据库 数据库管理(存储过程 函数 对象 近义词 触发器 事务类型)-9

    存储过程存储过程在大新数据库系统中,一组为了完成特定功能的SQL语句集 存储在SQL数据库中 优势: SQL进行封装 调用方便             存储过程会进行编译 提升用户执行SQL语句集的速 ...

  2. 【python】发送邮件,含附件

    def send_mail(_user,_pwd,_to): # f = open(file_new,'rb') # mail_body = f.read() # f.close() # 读取最新测试 ...

  3. nuxt入门

    之前一直都是做vue-spa单页面,不利于SEO.而便于SEO的SSR(服务器端渲染)多页应用,可以使用nuxt.js这个框架来实现 (0)nuxt安装 npx create-nuxt-app < ...

  4. pipenv安装报错ReadTimeoutError

    原因:pip下载源默认设置为国外 解决:将pip下载源切换为国内地址 操作: 在C:\Users\Administrator\下新建pip文件夹,在创建pip.ini文件,拷贝下面代码进去,保存 切换 ...

  5. 1121 Django基本

    目录 Django前戏 一.课程导读 1.web应用 2.c/s b/s 架构 3.Python Web框架 二.原生socket服务 三.http协议 什么是http协议 四大特性 http工作原理 ...

  6. JS中constructor,prototype

    First: this this定义: this就是函数赖以执行的对象. 分析这句话: 1. this是对象. 2. this依赖函数执行的上下文环境. 3. this存在函数中. 直接看例子: al ...

  7. 3.使用webpack配置文件webpack.confg.js配置打包文件的入口和出口

    在项目根目录下新建webpack.config.js文件 webpack.config.js文件配置如下: // Node的路径操作使用的是path模块 const path=require('pat ...

  8. Django ManyToManyField.through_fields 和

    示例: from django.db import models class Person(models.Model): name = models.CharField(max_length=50) ...

  9. C#百度api 根据经纬度获取地址

    public string GetAddress(string lat, string lng) { try { string res = ""; string url = @&q ...

  10. Educational Codeforces Round 39 (Rated for Div. 2) 946E E. Largest Beautiful Number

    题: OvO http://codeforces.com/contest/946/problem/E CF 946E 解: 记读入串为 s ,答案串为 ans,记读入串长度为 len,下标从 1 开始 ...