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


    表单数据提交到后台

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


    page_add.vue的提交按钮的事件


    要解析的结果json

    使用message提示信息

    简写的方式

     addSubmit(){
            this.$refs['pageForm'].validate((valid)=>{
              if(valid){
                cmsApi.page_add(this.pageForm).then(res=>{
                  //解析服务端响应内容
                  if(res.success){
    //                this.$message({
    //                  message:'提交成功!',
    //                  type:'success'
    //                })
                    this.$message.success("提交成功")
                  }
                });
              }else{
                //console.log('error submit!!')
                this.$message.error("提交失败")
                return false
              }
            })
          }

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



    controller里面加个断点

    数据库内有数据




    重复提交就会失败

    增加一个是否确认提交

    找到确认的弹窗的代码

    <template>
      <el-button type="text" @click="open">点击打开 Message Box</el-button>
    </template>
    
    <script>
      export default {
        methods: {
          open() {
            this.$confirm('此操作将永久删除该文件, 是否继续?', '提示', {
              confirmButtonText: '确定',
              cancelButtonText: '取消',
              type: 'warning'
            }).then(() => {
              this.$message({
                type: 'success',
                message: '删除成功!'
              });
            }).catch(() => {
              this.$message({
                type: 'info',
                message: '已取消删除'
              });          
            });
          }
        }
      }
    </script>




    addSubmit(){
            this.$refs.pageForm.validate((valid)=>{
              console.log('表单的状态')
              if(valid){
                this.$confirm('您确定提交数据吗', '提示', {}).then(() => {
                  //alert(JSON.stringify(this.pageForm))
                  cmsApi.page_add(this.pageForm).then(res=>{
                    //解析服务端响应内容
                    if(res.success){
    //                this.$message({
    //                  message:'提交成功!',
    //                  type:'success'
    //                })
                      this.$message.success("提交成功")
                    }
                  });
                });
    
              }else{
                //console.log('error submit!!')
                this.$message.error("提交失败")
                return false
              }
            })
          }




    确认就会提交成功

    清空表单

    resetFields和clearValidate区别

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



    成功后表单数据清空

    最终代码

    <template>
      <div>
        <el-form :model="pageForm" label-width="80px"  :rules="pageFormRules" ref="pageForm">
          <el-form-item label="所属站点" prop="siteId">
            <el-select v-model="pageForm.siteId" placeholder="请选择站点">
              <el-option
                v-for="item in siteList"
                :key="item.siteId"
                :label="item.siteName"
                :value="item.siteId">
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="选择模板" prop="templateId">
            <el-select v-model="pageForm.templateId" placeholder="选择模板">
              <el-option
                v-for="item in templateList"
              :key="item.templateId"
              :label="item.templateName"
              :value="item.templateId">
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="页面名称" prop="pageName">
            <el-input v-model="pageForm.pageName" auto-complete="off" ></el-input>
          </el-form-item>
          <el-form-item label="别名" prop="pageAliase">
            <el-input v-model="pageForm.pageAliase" auto-complete="off" ></el-input>
          </el-form-item>
          <el-form-item label="访问路径" prop="pageWebPath">
            <el-input v-model="pageForm.pageWebPath" auto-complete="off" ></el-input>
          </el-form-item>
          <el-form-item label="物理路径" prop="pagePhysicalPath">
            <el-input v-model="pageForm.pagePhysicalPath" auto-complete="off" ></el-input>
          </el-form-item>
          <el-form-item label="类型">
            <el-radio-group v-model="pageForm.pageType">
              <el-radio class="radio" label="0">静态</el-radio>
              <el-radio class="radio" label="1">动态</el-radio>
            </el-radio-group>
          </el-form-item>
          <el-form-item label="创建时间">
            <el-date-picker type="datetime" placeholder="创建时间" v-model="pageForm.pageCreateTime">
            </el-date-picker>
          </el-form-item>
        </el-form>
        <div slot="footer" class="dialog-footer">
          <el-button type="primary" @click="addSubmit" >提交</el-button>
          <el-button type="primary" @click="go_back" >返回</el-button>
        </div>
      </div>
    </template>
    
    <script>
      import * as cmsApi from '../api/cms'
      export default {
        data() {
          return {
            //站点列表
            siteList: [],
            //模版列表
            templateList: [],
            //新增界面数据
            pageForm: {
              siteId: '',
              templateId: '',
              pageName: '',
              pageAliase: '',
              pageWebPath: '',
              pageParameter: '',
              pagePhysicalPath: '',
              pageType: '',
              pageCreateTime: new Date()
            },
            pageFormRules: {
              siteId:[
                {required: true, message: '请选择站点', trigger: 'blur'}
              ],
              templateId:[
                {required: true, message: '请选择模版', trigger: 'blur'}
              ],
              pageName: [
                {required: true, message: '请输入页面名称', trigger: 'blur'}
              ],
              pageWebPath: [
                {required: true, message: '请输入访问路径', trigger: 'blur'}
              ],
              pagePhysicalPath: [
                {required: true, message: '请输入物理路径', trigger: 'blur'}
              ]
            }
          }
        },
        methods:{
          addSubmit(){
            this.$refs.pageForm.validate((valid)=>{
              console.log('表单的状态')
              if(valid){
                this.$confirm('您确定提交数据吗', '提示', {}).then(() => {
                  //alert(JSON.stringify(this.pageForm))
                  cmsApi.page_add(this.pageForm).then(res=>{
                    //解析服务端响应内容
                    if(res.success){
    //                this.$message({
    //                  message:'提交成功!',
    //                  type:'success'
    //                })
                      this.$message.success("提交成功")
                      this.$refs['pageForm'].resetFields()
                    }
                  });
                });
    
              }else{
                //console.log('error submit!!')
                this.$message.error("提交失败")
                return false
              }
            })
          },
          go_back() {
            this.$router.push({
              path:'/cms/page/list',
              query:{
                page: this.$route.query.page,
                siteId: this.$route.query.siteId
              }
            })
          }
        },
        created:function(){
          //初始化站点列表
          this.siteList = [
            {
              siteId:'5a751fab6abb5044e0d19ea1',
              siteName:'门户主站'
            },
            {
              siteId:'102',
              siteName:'测试站'
            }
          ]
          //模板列表
          this.templateList = [
            {
              templateId:'5a962b52b00ffc514038faf7',
              templateName:'首页'
            },
            {
              templateId:'5a962bf8b00ffc514038fafa',
              templateName:'轮播图'
            }
          ]
        }
      }
    </script>
    page_add.vue






     

  • 相关阅读:
    mark
    ON DUPLICATE KEY UPDATE重复插入时更新
    lnmp上传文件
    websoket
    Nginx 和 Php 优化
    Nginx常见问题
    Keepalived 高可用
    https ; 及https证书
    Nginx动静分离;资源分离;rewrite重写、跳转、伪静态、规则、日志
    nginx负载均衡会话保持;四层负载均衡;端口转发
  • 原文地址:https://www.cnblogs.com/wangjunwei/p/11569852.html
Copyright © 2020-2023  润新知