guo00guo 5 роки тому
батько
коміт
0cd884a2ae

+ 1 - 1
src/components/commons/Header2.0.vue

@@ -65,7 +65,7 @@
             </li>
             &nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;
             <li v-if="!isLogin">
-              <a :href="loginUrl">免费注册</a>
+              <a :href="registerUrl">免费注册</a>
             </li>
               <span v-if="!isLogin">&nbsp;&nbsp;&nbsp;|&nbsp;&nbsp;&nbsp;</span>
             <li v-if="isLogin">

+ 1 - 1
src/pages/Homepage/Homepage.vue

@@ -44,7 +44,7 @@
           <TestCard :applicationTypeList="homeData.applicationTypeList"></TestCard>
         </el-col>
         <el-col :span="5"  class="homepage-right-modules">
-          <LoginCard/>
+          <LoginCard v-if="!this.isLogin"/>
           <HotCrowd :applicationTypeRank="homeDataNoCache.applicationTypeRank"/>
           <HotAgency :agencyRank="homeDataNoCache.agencyRank"/>
           <HotUser :userRank="homeDataNoCache.userRank"/>

+ 10 - 2
src/pages/Homepage/LoginCard.vue

@@ -11,7 +11,7 @@
         </div>
       </div>
       <div class="welcome-btn">
-        <el-button type="primary" size="mini" class="pull-left login-btn">登录</el-button>
+        <a :href="loginUrl"><el-button type="primary" size="mini" class="pull-left login-btn" >登录</el-button></a>
         <el-button type="danger" size="mini" class="pull-right cancel-btn">取消</el-button>
       </div>
     </div>
@@ -19,8 +19,16 @@
 </template>
 
 <script>
+  import Http from '@/js/http.js'
+  import Apis from '@/js/api.js'
   export default {
-    name: "LoginCard"
+    name: "LoginCard",
+    data(){
+        return {
+            user: {},
+            loginUrl: process.env.LOGIN_URL,
+        }
+    },
   }
 </script>
 

+ 7 - 3
src/pages/UserCenter/BankCard.vue

@@ -5,7 +5,7 @@
         <div class="bank-card">
           <div class="bank-card-title" style="padding: 10px;height:43px">
             <img :src="item.logoUrl" class="bank-card-logo">
-            <span class="" style="font-size: 16px;font-weight: bold;line-height: 43px">{{item.name}}</span>
+            <span class="" style="font-size: 16px;font-weight: bold;line-height: 43px;">{{item.name}}</span>
             <el-button type="primary" plain class="pull-right" size="mini" @click="requestUntieBankCard(item)">解绑
             </el-button>
           </div>
@@ -23,7 +23,7 @@
       :visible.sync="untieBankCard"
       width="30%"
     >
-      <span>确定解绑{{nowCard.name}},卡号为:{{nowCard.number}}的银行卡吗?</span>
+      <span>确定解绑 <span style="font-weight: bold; font-size: 18px;">{{nowCard.name}}</span>,卡号为:<span style="font-weight: bold; font-size: 18px;">{{nowCard.number}}</span> 的银行卡吗?</span>
       <span slot="footer" class="dialog-footer">
     <el-button @click="untieBankCard = false">取 消</el-button>
     <el-button type="primary" @click="handleUntieBankCard">确 定</el-button>
@@ -38,6 +38,7 @@
   import {storageGet} from '@/js/index'
   import Http from '@/js/http.js'
   import BankCard from './BankCard'
+  import {notify} from '@/constants/index'
 
   export default {
     name: "BankCard",
@@ -46,7 +47,7 @@
       return {
         untieBankCard: false,
         nowCard: {},
-        user: {}
+        user: {},
       }
     },
     methods: {
@@ -62,6 +63,9 @@
           //调用父组件的loadData方法
           this.$emit('loadData');
           this.untieBankCard = false
+            notify('success', "解绑成功")
+        }).catch(error => {
+            notify('error', error.data)
         })
       },
     },

+ 43 - 15
src/pages/UserCenter/ModifyPsw.vue

@@ -8,14 +8,14 @@
         <i class="el-icon-warning" style="color: rgba(0, 117, 203, 1);font-size: 18px"></i>
         <span style="font-size: 16px">安全提醒:请妥善保管密码,众测服务平台人员不会以任何理由向您索取密码。</span>
       </div>
-      <el-form ref="modifyForm" :model="modifyForm" label-width="80px" style="margin-top: 20px">
-        <el-form-item label="当前密码">
+      <el-form ref="modifyForm" :rules="rules" :model="modifyForm" label-width="80px" style="margin-top: 20px; width: 40%;">
+        <el-form-item label="当前密码" prop="oldPassword">
           <el-input v-model="modifyForm.oldPassword" type="password"></el-input>
         </el-form-item>
-        <el-form-item label="新密码">
+        <el-form-item label="新密码" prop="password">
           <el-input v-model="modifyForm.password" type="password"></el-input>
         </el-form-item>
-        <el-form-item label="确认密码">
+        <el-form-item label="确认密码" prop="password2">
           <el-input v-model="modifyForm.password2" type="password"></el-input>
         </el-form-item>
         <el-form-item>
@@ -28,7 +28,7 @@
 
 <script>
   import Http from '@/js/http.js'
-  import {storageGet} from '@/js/index'
+  import {storageGet,logout} from '@/js/index'
   import {notify} from '@/constants/index'
   export default {
     name: "ModifyPsw",
@@ -40,6 +40,20 @@
           password:'',
           password2:'',
         },
+        rules: {
+            oldPassword: [
+                {required: true, message: '当前密码不可为空', trigger: 'blur'},
+                {min: 6, max: 16, message: '密码长度在 6 到 16 个字符', trigger: 'blur'}
+            ],
+            password: [
+                {required: true, message: '新密码不可为空', trigger: 'blur'},
+                {min: 6, max: 16, message: '密码长度在 6 到 16 个字符', trigger: 'blur'}
+            ],
+            password2: [
+                {required: true, message: '确认密码不可为空', trigger: 'blur'},
+                {min: 6, max: 16, message: '密码长度在 6 到 16 个字符', trigger: 'blur'}
+            ]
+        }
       }
     },
     methods:{
@@ -47,16 +61,30 @@
         this.user = storageGet('user') && storageGet('user').userVO;
       },
       ModifyPassword(){
-        let params = {
-          id:this.user.id.toString(),
-          ...this.modifyForm
-        }
-        Http.put(`/api/password/reset`,params).then(res=>{
-          window.alert('修改密码成功,跳转至登录页重新登录');
-          window.location.href = process.env.LOGIN_URL;
-        }).catch(err=>{
-          notify('error', '修改密码失败:' + err.data)
-        })
+          this.$refs['modifyForm'].validate(valid => {
+              if (valid) {
+                  let params = {
+                      id:this.user.id.toString(),
+                      ...this.modifyForm
+                  }
+                  if(this.modifyForm.password != this.modifyForm.password2){
+                      notify('error', '两次密码不一致,请重新输入!')
+                      return ;
+                  }
+
+                  Http.put(`/api/password/reset`,params).then(res=>{
+                      // notify('success', '密码修改成功,请重新登录!')
+                      window.alert('密码修改成功,请重新登录');
+                      logout().then((res) => {
+                          window.location.href = process.env.LOGIN_URL;
+                          // this.$router.push('/home')
+                      })
+
+                  }).catch(err=>{
+                      notify('error', '修改密码失败:' + err.data)
+                  })
+              }
+          })
       }
     },
     mounted() {

+ 36 - 11
src/pages/UserCenter/MyBankCard.vue

@@ -14,15 +14,15 @@
       :visible.sync="addBankCard"
       width="30%"
     >
-      <el-form ref="bankCardForm" :model="bankCardForm" label-width="80px">
-        <el-form-item label="持卡人">
+      <el-form ref="bankCardForm" :rules="rules" :model="bankCardForm" label-width="80px">
+        <el-form-item label="持卡人" prop="user">
           <el-input v-model="bankCardForm.user"></el-input>
         </el-form-item>
-        <el-form-item label="卡号">
+        <el-form-item label="卡号" prop="number">
           <el-input v-model="bankCardForm.number"></el-input>
         </el-form-item>
-        <el-form-item label="银行类型">
-          <el-select v-model="bankCardForm.name" placeholder="请选择银行卡种类">
+        <el-form-item label="银行类型" prop="name">
+          <el-select  v-model="bankCardForm.name" placeholder="请选择银行卡种类"  style="width: 100%">
             <el-option
               v-for="item in bankCardType"
               :key="item.id"
@@ -52,6 +52,7 @@
   import {storageGet} from '@/js/index'
   import Http from '@/js/http.js'
   import BankCard from './BankCard'
+  import {notify} from '@/constants/index'
   export default {
     name: "MyBankCard",
     components:{
@@ -75,7 +76,18 @@
         },
         user:{},
         bankCardVOList:[],
-        bankCardType:[]
+        bankCardType:[],
+        rules: {
+            user: [
+                {required: true, message: '持卡人不可为空', trigger: 'blur'},
+            ],
+            number: [
+                {required: true, message: '卡号不可为空', trigger: 'blur'},
+            ],
+            name: [
+                {required: true, message: '银行类型不可为空', trigger: 'blur'}
+            ]
+        }
       }
     },
     methods:{
@@ -88,11 +100,24 @@
         this.user = storageGet('user') && storageGet('user').userVO;
       },
       handleAddBankCard(){
-        Http.post(`/api/personal/addbankcard/${this.user.id}`,this.bankCardForm).then(res=>{
-          console.log(res);
-        })
-        this.addBankCard = false
-        this.loadData();
+          this.$refs['bankCardForm'].validate(valid => {
+              if (valid) {
+                  Http.post(`/api/personal/addbankcard/${this.user.id}`,this.bankCardForm).then(res=>{
+                      // console.log(res);
+                      notify('success', "添加成功")
+                      this.addBankCard = false
+
+                      this.bankCardForm.user = '',
+                      this.bankCardForm.number = '',
+                      this.bankCardForm.name = ''
+                      this.loadData();
+
+                  }).catch(error => {
+                      notify('error', error.data)
+                  })
+              }
+          })
+
       },
       getBankType(){
         Http.get('/api/personal/banktype').then(res=>{

+ 102 - 30
src/pages/UserCenter/MyQualification.vue

@@ -15,20 +15,32 @@
       :visible.sync="addQualification"
       width="30%"
     >
-      <el-form ref="form" :model="form" label-width="80px">
-        <el-form-item label="证书名称">
+      <el-form ref="form" :rules="rules" :model="form" label-width="80px">
+        <el-form-item label="证书名称" prop="name">
           <el-input v-model="form.name"></el-input>
         </el-form-item>
-        <el-form-item label="证书编号">
+        <el-form-item label="证书编号" prop="number">
           <el-input v-model="form.number"></el-input>
         </el-form-item>
-        <el-form-item label="发证机构">
+        <el-form-item label="发证机构" prop="licensingAuthority">
           <el-input v-model="form.licensingAuthority"></el-input>
         </el-form-item>
-        <el-form-item label="发证时间">
-          <el-input v-model="form.time"></el-input>
+        <el-form-item label="发证时间" prop="time">
+<!--          <el-input v-model="form.time"></el-input>-->
+          <div class="block">
+<!--            <span class="demonstration">带快捷选项</span>-->
+            <el-date-picker
+              v-model="form.time"
+              style="width: 100%"
+              align="right"
+              type="date"
+              placeholder="选择日期"
+              :picker-options="pickerOptions">
+            </el-date-picker>
+          </div>
+
         </el-form-item>
-        <el-form-item label="是否公开">
+        <el-form-item label="是否公开" prop="isPublic">
           <el-radio-group v-model="form.isPublic">
             <el-radio :label="1">公开</el-radio>
             <el-radio :label="0">不公开</el-radio>
@@ -36,8 +48,8 @@
         </el-form-item>
       </el-form>
       <span slot="footer" class="dialog-footer">
-        <el-button type="danger" @click="requireDeleteQualification">删 除</el-button>
     <el-button @click="addQualification = false">取 消</el-button>
+    <el-button type="danger" @click="requireDeleteQualification" v-if="this.form.id">删 除</el-button>
     <el-button type="primary" @click="handleAddQualification">确 定</el-button>
   </span>
     </el-dialog>
@@ -47,7 +59,7 @@
       :visible.sync="deleteQualification"
       width="30%"
     >
-      <span>确定删除资质“{{form.name}}”吗?</span>
+      <span>确定删除资质 <span style="font-weight: bold; font-size: 18px;">{{form.name}}</span> 吗?</span>
       <span slot="footer" class="dialog-footer">
     <el-button @click="deleteQualification = false">取 消</el-button>
     <el-button type="primary" @click="handleDeleteQualification">确 定</el-button>
@@ -61,6 +73,7 @@
   import QualificationCard from './QualificationCard'
   import {storageGet} from '@/js/index'
   import Http from '@/js/http.js'
+  import {notify} from '@/constants/index'
 
   export default {
     name: "MyQualification",
@@ -81,7 +94,51 @@
         user: {},
         qualificationVOList: [],
         // qualificationVO: {},
-        modalTitle: '新增资质'
+        modalTitle: '新增资质',
+        pickerOptions: {
+            disabledDate(time) {
+                return time.getTime() > Date.now();
+            },
+            shortcuts: [{
+                text: '今天',
+                onClick(picker) {
+                    picker.$emit('pick', new Date());
+                }
+            }, {
+                text: '昨天',
+                onClick(picker) {
+                    const date = new Date();
+                    date.setTime(date.getTime() - 3600 * 1000 * 24);
+                    picker.$emit('pick', date);
+                }
+            }, {
+                text: '一周前',
+                onClick(picker) {
+                    const date = new Date();
+                    date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
+                    picker.$emit('pick', date);
+                }
+            }]
+        },
+        value2: '',
+        rules: {
+            name: [
+                {required: true, message: '证书名称不可为空', trigger: 'blur'},
+                {min: 2, max: 50, message: '报告名称长度在 2 到 50 个字符', trigger: 'blur'}
+            ],
+            number: [
+                {required: true, message: '证书编号不可为空', trigger: 'blur'},
+            ],
+            licensingAuthority: [
+                {required: true, message: '发证机构不可为空', trigger: 'blur'}
+            ],
+            time: [
+                {required: true, message: '发证时间不可为空', trigger: 'blur'}
+            ],
+            isPublic: [
+                {required: true, message: '公开类型不可为空', trigger: 'blur'}
+            ]
+        }
       }
     },
     methods: {
@@ -94,27 +151,39 @@
         this.user = storageGet('user') && storageGet('user').userVO;
       },
       handleAddQualification() {
-        if (!this.form.id) {
-          //新增
-          Http.post(`/api/personal/addqualification/${this.user.id}`, this.form).then(res => {
-            this.addQualification = false;
-            this.loadData();
-          })
-        } else {
-          //编辑
-          let newForm = {
-            name: this.form.name,
-            number: this.form.number,
-            licensingAuthority: this.form.licensingAuthority,
-            time: this.form.time,
-            isPublic: this.form.isPublic
-          };
-          Http.put(`/api/personal/updatequalification/${this.form.id}/${this.user.id}`,newForm).then(res=>{
-            this.form = newForm;
-            this.addQualification = false;
-            this.loadData();
+          this.$refs['form'].validate(valid => {
+            if (valid) {
+                if (!this.form.id) {
+                    //新增
+                    Http.post(`/api/personal/addqualification/${this.user.id}`, this.form).then(res => {
+                        this.addQualification = false;
+                        notify('success', "添加成功")
+                        this.loadData();
+                    }).catch(error => {
+                        notify('error', error.data)
+                    })
+                } else {
+                    //编辑
+                    let newForm = {
+                        name: this.form.name,
+                        number: this.form.number,
+                        licensingAuthority: this.form.licensingAuthority,
+                        time: this.form.time,
+                        isPublic: this.form.isPublic
+                    };
+                    Http.put(`/api/personal/updatequalification/${this.form.id}/${this.user.id}`, newForm).then(res => {
+                        this.form = newForm;
+                        this.addQualification = false;
+                        notify('success', "修改成功")
+                        this.loadData();
+                    }).catch(error => {
+                        notify('error', error.data)
+                    })
+                }
+
+            }
           })
-        }
+
       },
       requireDeleteQualification(item){
         this.deleteQualification = true;
@@ -124,7 +193,10 @@
         Http.delete(`/api/personal/deletequalification/${this.form.id}/${this.user.id}`,{}).then((res) => {
           this.deleteQualification = false;
           this.addQualification = false;
+          notify('success', "删除成功")
           this.loadData();
+        }).catch(error => {
+            notify('error', error.data)
         })
       },
       handleEditQualification(item) {

+ 4 - 4
src/pages/UserCenter/QualificationCard.vue

@@ -3,16 +3,16 @@
     <el-row :gutter="15">
       <el-col :span="8" v-for="item in qualificationVOList" :key="item.id">
         <div class="qualification-card" @click="showQualificationDetail(item)">
-          <div class="qualification-card-title" style="padding: 10px;height:28px">
-            <span class="pull-left" style="font-size: 16px;font-weight: bold;line-height: 28px">{{item.name}}</span>
+          <div class="qualification-card-title" style="padding: 10px;height:24px;  overflow: hidden">
+            <span class="pull-left" style="font-size: 16px;font-weight: bold;line-height: 28px; width: 80%;">{{item.name}}</span>
             <el-button type="primary" plain class="pull-right" size="mini">编辑</el-button>
           </div>
           <div class="qualification-card-detail-wrapper">
-            <div class="qualification-card-detail">
+            <div class="qualification-card-detail" style="height:24px;  overflow: hidden">
               <div class="qualification-card-detail-title">证书编号:</div>
               <div class="qualification-card-detail-info">{{item.number}}</div>
             </div>
-            <div class="qualification-card-detail">
+            <div class="qualification-card-detail" style="height:24px;  overflow: hidden">
               <div class="qualification-card-detail-title">发证机关:</div>
               <div class="qualification-card-detail-info">{{item.licensingAuthority}}</div>
             </div>

+ 1 - 1
src/pages/UserCenter/UserCenter.vue

@@ -15,7 +15,7 @@
             <div class="menu-block-title">
               <img src="../../assets/img/count-security.png">账号安全
             </div>
-            <div class="menu-item"><router-link to="/personal/modifyPsw">修改登密码</router-link></div>
+            <div class="menu-item"><router-link to="/personal/modifyPsw">修改登密码</router-link></div>
             <div class="menu-item"><router-link to="/personal/phoneBinding">手机绑定</router-link></div>
             <div class="menu-item"><router-link to="/personal/mailBinding">邮箱绑定</router-link></div>
             <div class="menu-item"><router-link to="/personal/authentication">身份认证</router-link></div>