h_jtsd 2024-03-28 23:00 采纳率: 25%
浏览 3
已结题

spring后端vue前端

后端已成功连接数据库,运行时控制台可以显示:Started SqwzpsdbsApplication in 1.188 seconds (JVM running for 1.778)
前端登录界面可以成功显示,但是点击登录后前端页面没有反应,以下是登录界面的的VScode代码


<template>
    <div class="login-wrap">
      <div class="ms-title"><p>药品进销存系统登录</p></div>
      <div  class="ms-login">
        <el-tabs type="border-card">
          <el-tab-pane label="密码登录">
            <el-form :model="ruleForm" :rules="rules" ref="ruleForm">
              <el-form-item prop="username">
                <el-input v-model="ruleForm.username" placeholder="用户名"></el-input>
              </el-form-item>
              <el-form-item prop="password">
                <el-input type="password" v-model="ruleForm.password" placeholder="密码" @keyup.enter.native="submitForm"></el-input>
              </el-form-item>
              <el-form-item prop="usertype">
                <el-select v-model="ruleForm.usertype" placeholder="用户类别">
                    <el-option label="社区干部" value="1"></el-option>
                    <el-option label="社区居民" value="0"></el-option>                        
                </el-select>
              </el-form-item>
              <div class="tag_left">
                <el-tag type="error" effect="light" @click.native="connectMe()">&nbsp;&nbsp;忘记密码&nbsp;&nbsp;</el-tag>
                <el-tag type="primary" @click.native=" centerDialogVisible=true">注册新账户</el-tag>
              </div>

              <div class="login-btn">
                <el-button type="primary" @click="submitForm">登录</el-button>
              </div>
            </el-form>
          </el-tab-pane>
          <el-tab-pane label="扫码登录">扫码登录</el-tab-pane>

        </el-tabs>
        <el-dialog title="添加新用户" :visible.sync="centerDialogVisible" width="600px" center>
              <el-form :model="registerForm" ref="registerForm" label-width="100px" :rules="rules">
                  <el-form-item prop="userName" label="用户名" size="mini">
                      <el-input v-model="registerForm.userName" placeholder="用户名"></el-input>
                  </el-form-item>
                  <el-form-item prop="passWord" label="密码" size="mini">
                      <el-input type="password" v-model="registerForm.passWord" placeholder="密码"></el-input>
                  </el-form-item>
                  <el-form-item prop="jmsfz" label="居民身份证" size="mini">
                      <el-input v-model="registerForm.jmsfz" placeholder="居民身份证"></el-input>
                  </el-form-item>
                  <el-form-item prop="xm" label="真实姓名" size="mini">
                      <el-input v-model="registerForm.xm" placeholder="真实姓名"></el-input>
                  </el-form-item>
                  <el-form-item prop="nickName" label="昵称" size="mini">
                      <el-input v-model="registerForm.nickName" placeholder="用户昵称"></el-input>
                  </el-form-item>
                  <el-form-item label="性别" size="mini">
                    <el-radio-group v-model="ssex">
                      <el-radio :label="0"></el-radio>
                      <el-radio :label="1"></el-radio>
                    </el-radio-group>
                  </el-form-item>
                  <el-form-item  prop="mz" label="民族" size="mini">
                    <el-select v-model="registerForm.mz" placeholder="民族">
                      <el-option v-for="(item,index) in mzOptions"
                        :key="index" :label="item" :value="item">
                      </el-option>
                    </el-select>
                  </el-form-item>
                  <el-form-item prop="birth" label="出生日期" size="mini">
                      <el-date-picker type="date" placeholder="选择日期" 
                      v-model="registerForm.birth" value-format="yyyy-MM-dd"  
                      size="small" style="width: 100%;" ></el-date-picker>
                  </el-form-item>
                  <el-form-item prop="jzdzldh" label="楼栋号" size="mini">
                      <el-input v-model="registerForm.jzdzldh" placeholder="楼栋号"></el-input>
                  </el-form-item>
                  <el-form-item prop="jzdzlcs" label="楼层号" size="mini">
                      <el-input v-model="registerForm.jzdzlcs" placeholder="楼层号"></el-input>
                  </el-form-item>
                  <el-form-item prop="jzdzfh" label="房号" size="mini">
                      <el-input v-model="registerForm.jzdzfh" placeholder="房号"></el-input>
                  </el-form-item>
                  <el-form-item prop="phoneNum" label="联系电话" size="mini">
                      <el-input v-model="registerForm.phoneNum" placeholder="联系电话"></el-input>
                  </el-form-item>                
                  <el-form-item prop="jkqk" label="健康情况">
                      <el-select v-model="registerForm.jkqk" placeholder="健康情况">
                        <el-option label="正常" value="正常"></el-option>
                        <el-option label="感染" value="感染"></el-option>
                        <el-option label="冠心病" value="冠心病"></el-option>
                        <el-option label="脑卒中" value="脑卒中"></el-option>
                        <el-option label="高血压" value="高血压"></el-option>
                        <el-option label="慢阻肺" value="慢阻肺"></el-option>
                        <el-option label="糖尿病" value="糖尿病"></el-option>
                        <el-option label="慢性肾病" value="慢性肾病"></el-option>                      
                        <el-option label="肿瘤" value="肿瘤"></el-option>
                        <el-option label="免疫功能缺陷" value="免疫功能缺陷"></el-option>

                      </el-select>
                  </el-form-item>
                  <el-form-item prop="cxzt" label="出行状态">
                      <el-select v-model="registerForm.cxzt" placeholder="出行状态">
                        <el-option label="自由出行" value="自由出行"></el-option>
                        <el-option label="密接隔离" value="密接隔离"></el-option>
                        <el-option label="感染隔离" value="感染隔离"></el-option>
                        <el-option label="出行不便" value="出行不便"></el-option>
                        <el-option label="瘫痪" value="瘫痪"></el-option>
                        <el-option label="高龄" value="高龄"></el-option>
                        
                      </el-select>
                  </el-form-item>
                  
                  <el-form-item prop="bhgbid"  label="包户干部ID">
                      <el-select v-model="registerForm.bhgbid" placeholder="包户干部ID" >
                          <el-option
                              v-for="(item) in pIdSqgbNameOptions"
                              :key="item.sqgbId"
                              :label="item.sqgbName"
                              :value="item.sqgbId"
                          ></el-option>
                      </el-select>
                  </el-form-item>

                  <el-form-item prop="ssxq" label="所属小区" size="mini">
                      <el-input v-model="registerForm.ssxq" placeholder="所属小区"></el-input>
                  </el-form-item>
                  <el-form-item prop="sssq" label="所属社区" size="mini">
                      <el-input v-model="registerForm.sssq" placeholder="所属社区"></el-input>
                  </el-form-item>
                  <el-form-item prop="ssdzs" label="所属地州市" size="mini">
                      <el-input v-model="registerForm.ssdzs" placeholder="所属地州市"></el-input>
                  </el-form-item>
              </el-form>
              <span slot="footer">
                  <el-button size="mini" @click="addSqjm">确定</el-button>
                  <el-button size="mini" @click="centerDialogVisible=false">取消</el-button>

              </span>
          </el-dialog>
      </div>
    </div>
</template>

<script>

import {mixin} from "../mixins/index";
import {getSqgb,getSqgbLoginStatus,getSqjmLoginStatus,setSqjm} from "../api/index";
export default {
  mixins:[mixin],
  data: function(){
    return {
      pIdSqgbNameOptions:[],
      pIdSqgbName:{},
      mzOptions:['汉族','维吾尔族','回族','蒙古族','哈萨克族','塔塔尔族','锡伯族','柯尔克孜族','俄罗斯族',],
      ssex:0,
      centerDialogVisible:false,//添加弹窗是否显示
      registerForm:{//添加框
          jmsfz:'',
          userName:'',
          passWord:'',
          nickName:'',
          xm:'',
          sex:0,
          mz:'汉族',
          birth:'2000-01-01',         
          jzdzldh:'',
          jzdzlcs:'',
          jzdzfh:'', 
          phoneNum:'', 
          jkqk:'正常', 
          cxzt:'自由出行',
          bhgbid:'',
          bhgbxm:'',          
          ssxq:'', 
          sssq:'', 
          ssdzs:'乌鲁木齐市',
          avator:''

      },
      ruleForm:{
        username: "abc",
        password: "1#3@",
        usertype: "1",
      },
      rules:{
        username:[
          {required:true,message:"请输入用户名",trigger:"blur"}//blur失去焦点触发
        ],
        password:[
          {required:true,message:"请输入密码",trigger:"blur"},
          {min:3,message:"密码最小长度3个字符",trigger:"blur"},
        ],
        usertype:[
        {required:true,message:"请输入用户类别",trigger:"blur"}//blur失去焦点触发
        ]
      }
    };
  },
  created(){

        this.pIdSqgbNameOptions=[];
        getSqgb().then(res=>{

            if(res.length>0){
                res.forEach((item) => {
                    let temp={};
                    temp["sqgbId"]=item.sqgbId;
                    temp["sqgbName"]=item.sqgbName;
                    this.pIdSqgbNameOptions.push(temp);
                    this.pIdSqgbName[item.sqgbId]=item.sqgbName;

                });
            }
        });

    },
  methods:{
    submitForm(){
      // alert("提交")
      let params = new URLSearchParams();
      params.append("aname",this.ruleForm.username);
      params.append("password",this.ruleForm.password);
      params.append("usertype",this.ruleForm.usertype);
      //后台用requestBody参数调用
      if(this.ruleForm.usertype=="1"){   //1 社区干部登录  0 社区居民登录
        getSqgbLoginStatus(params)
        .then((res) =>{
          if(res.code == 1){
            this.$store.commit("SET_USERINFO",res.data.user);
            this.$router.push("/Info");
            this.notify("登录成功","success");
          }else{
            //console.log(res);
            this.notify("用户名或密码有误,登录失败","error");
          }
        });
      }else{
        getSqjmLoginStatus(params)
        .then((res) =>{
          if(res.code == 1){
            this.$store.commit("SET_USERINFO",res.data.user);
            this.$router.push("/Info");
            this.notify("登录成功","success");
          }else{
            //console.log(res);
            this.notify("用户名或密码有误,登录失败","error");
          }
        });
      }
      
    },
    //添加用户
    addSqjm(){
        
        (this.$refs['registerForm'] ).validate(valid=>{
            if(valid){
                // let d = this.registerForm.birth;
                // let datetime = d.getFullYear()+'-'+(d.getMonth()+1)+'-'+d.getDate();
                let params = new URLSearchParams();
                params.append('jmsfz',this.registerForm.jmsfz);
                params.append('userName',this.registerForm.userName);
                params.append('passWord',this.registerForm.passWord);
                params.append('nickName',this.registerForm.nickName);
                params.append('xm',this.registerForm.xm);                
                params.append('xb',this.ssex);
                params.append('mz',this.registerForm.mz);
                params.append('birth',this.registerForm.birth);
                params.append('jzdzldh',this.registerForm.jzdzldh);
                params.append('jzdzlcs',this.registerForm.jzdzlcs);
                params.append('jzdzfh',this.registerForm.jzdzfh);
                params.append('phoneNum',this.registerForm.phoneNum);
                params.append('jkqk',this.registerForm.jkqk);                
                params.append('cxzt',this.registerForm.cxzt);
                params.append('bhgbid',this.registerForm.bhgbid);
                params.append('bhgbxm',this.pIdSqgbName[this.registerForm.bhgbid]);
                params.append('ssxq',this.registerForm.ssxq);
                params.append('sssq',this.registerForm.sssq);
                params.append('ssdzs',this.registerForm.ssdzs);
                params.append('avator','/avatorImages/user.jpg');

                setSqjm(params)
                .then(res=>{
                    if(res.code == 1){
                        //this.getData();
                        //console.log(res.msg);
                        this.notify(res.msg,"success");
                    }else{
                        this.notify(res.msg,"error");
                    }
                })
                .catch(err =>{
                    console.log(err);
                });
                this.centerDialogVisible=false;
            }
        })

    },
    connectMe(){
         this.$alert('<b>电话:</b>13292139696<br/><br/><b>QQ:</b>928960882<br/><br/><b>上课地点:</b>新疆医科大学雪莲山校区教学楼C309<br/>', '丢失密码请联系我', {
          confirmButtonText: '确定',
          dangerouslyUseHTMLString: true
        });
    },
  }
}
</script>

<style scoped>
.login-wrap {
  position: relative;
  background: url("../assets/img/zj.jpg");
  background-attachment: fixed;
  background-position: center;
  background-size: cover;
  width: 100%;
  height: 100%;
}
.ms-title {
  position: absolute;
  top: 50%;
  width: 100%;
  margin-top: -230px;
  text-align: center;
  font-size: 30px;
  font-weight: 600;
  color: #fff;
}
.ms-login {
  position: absolute;
  left: 50%;
  top: 50%;
  width: 500px;
  height: 300px;
  margin-left: -280px;
  margin-top: -150px;  /*  margin-top: -150px;  */
  padding: 40px;
  border-radius: 5px;
  background: #fff;
}
.login-btn {
  text-align: right;

}
.login-btn button {
  width: 30%;
  height: 36px;

}
.tag_left{
  text-align: left;
}
</style>


请问各位知道问题这种怎么解决吗

  • 写回答

8条回答 默认 最新

  • 阿里嘎多学长 2024-03-28 23:09
    关注

    以下内容由CHATGPT及阿里嘎多学长共同生成、有用望采纳:


    根据提供的代码,这是一个Vue.js组件,用于显示一个登录页面。从代码来看,前端登录逻辑是在submitForm方法中执行的,它使用了getSqgbLoginStatusgetSqjmLoginStatus两个API方法,具体取决于用户类型(社区干部或社区居民)。

    问题在于前端页面点击登录后没有反应,这可能是由于以下几个原因:

    1. API调用错误

      • 检查getSqgbLoginStatusgetSqjmLoginStatus这两个API的URL是否正确,确保它们指向Spring Boot后端的正确登录处理路径。
      • 确保后端服务正在运行,并且在登录请求到达时能够返回正确的响应。
    2. 状态码检查

      • 在你的代码中,你似乎只检查了res.code == 1来判断登录是否成功。请确认后端返回的code字段是否代表成功状态,并且是否在其他情况下返回不同的值。如果后端使用HTTP状态码,你应该直接检查res.status而不是自定义的code字段。
    3. 数据绑定问题

      • 确保ruleForm中的usernamepasswordusertype字段在用户输入时被正确更新。你可以尝试在控制台中打印这些值,看看在点击登录按钮时是否与预期相符。
    4. 错误处理

      • 如果API调用失败,你的代码中没有明显的错误处理逻辑。添加一些错误处理代码,比如在每个.then()后面加上.catch(),以便在请求失败时捕获并打印错误信息。
    5. Vuex状态管理

      • this.$store.commit("SET_USERINFO", res.data.user);这一行假设你的应用使用了Vuex,并且SET_USERINFO是一个存在的mutation。请确保Vuex store设置正确,并且mutation能够正确设置用户信息。
    6. 路由跳转

      • this.$router.push("/Info");尝试跳转到/Info页面。确保你的Vue Router配置中有一个对应于/Info的路由,并且登录成功后,该路由应该是可访问的。

    为了进一步调试,你可以:

    • 添加日志或使用浏览器的开发者工具网络面板查看发送的请求和收到的响应。
    • 在API调用前后打印一些调试信息,以确定代码执行到了哪一步。
    • 检查浏览器的控制台是否有任何错误信息。

    如果以上步骤都确认无误,但问题仍然存在,可能需要更详细的错误信息或者对后端代码的审查来找出问题所在。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(7条)

报告相同问题?

问题事件

  • 系统已结题 4月5日
  • 已采纳回答 3月28日
  • 创建了问题 3月28日

悬赏问题

  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?
  • ¥20 docker里部署springboot项目,访问不到扬声器
  • ¥15 netty整合springboot之后自动重连失效
  • ¥15 悬赏!微信开发者工具报错,求帮改