Kaynağa Gözat

Merge branch 'master' of http://172.16.90.201:3000/veterans/veterans_client_web

yangzj 2 yıl önce
ebeveyn
işleme
8fb0fe8b23

+ 15 - 2
src/api/PersonalCenter/index.js

@@ -3,8 +3,8 @@
  * @Author: 空白格
  * @Date: 2022-08-15 14:26:14
 <<<<<<< HEAD
- * @LastEditors: wangcc
- * @LastEditTime: 2022-08-25 16:00:21
+ * @LastEditors: gcz
+ * @LastEditTime: 2022-08-26 15:49:48
 =======
  * @LastEditors: gcz
  * @LastEditTime: 2022-08-25 11:41:09
@@ -128,3 +128,16 @@ export function myTrainList(params) {
     params,
   });
 }
+
+/**
+ * 修改个人在职状态
+ * @param {*} params
+ * @returns
+ */
+export function updateJobStatus(data) {
+  return request({
+    url: '/app/memberinfo/updateJobStatus',
+    method: "put",
+    data,
+  });
+}

+ 36 - 0
src/api/ProgressiveIntegral/index.js

@@ -0,0 +1,36 @@
+/**
+ * @Description: 
+ * @Author: gcz
+ * @Date: 2022-08-26 10:48:12
+ * @LastEditors: gcz
+ * @LastEditTime: 2022-08-26 10:49:40
+ * @FilePath: \veterans_client_web\src\api\ProgressiveIntegral\index.js
+ * @Copyright: Copyright (c) 2016~2022 by gcz, All Rights Reserved. 
+ */
+import request from '@/utils/request'
+/**
+ * 积分统计
+ * @param {*} params
+ * @returns
+ */
+export function getIntegralCount(params) {
+  return request({
+    url: '/app/integral/count',
+    method: 'get',
+    params
+  })
+}
+/**
+ * 积分列表
+ * @param {*} params
+ * @returns
+ */
+export function getIntegralList(params) {
+  return request({
+    url: '/app/integral/list',
+    method: 'get',
+    params
+  })
+}
+
+

BIN
src/assets/images/progresspoints-bg.png


BIN
src/assets/images/progresspoints-class.png


BIN
src/assets/images/progresspoints-good.png


BIN
src/assets/images/progresspoints-home.png


BIN
src/assets/images/progresspoints-title.png


+ 38 - 3
src/views/PersonalCenter/ProgressPoints/IntegralRule/IntegralRuleIndex.vue

@@ -2,14 +2,26 @@
  * @Description: 进步积分 => 积分规则
  * @Author: 空白格
  * @Date: 2022-08-26 10:55:06
- * @LastEditors: 空白格
- * @LastEditTime: 2022-08-26 11:02:38
+ * @LastEditors: gcz
+ * @LastEditTime: 2022-08-26 14:39:01
  * @FilePath: \veterans_client_web\src\views\PersonalCenter\ProgressPoints\IntegralRule\IntegralRuleIndex.vue
  * @Copyright: Copyright (c) 2016~2022 by 空白格, All Rights Reserved.
 -->
 <template>
   <div>
-    <BannerBreadcrumb title="线下课程" :isRouter="true" />
+    <BannerBreadcrumb title="积分规则" :isRouter="true" />
+    <section class="wrap-r">
+      <div class="rules-title">积分规则</div>
+      <ul class="rules-list">
+        <li>1,完成各段时间采集信息提交  +50</li>
+        <li>2,教师评价大于3星,+50</li>
+        <li>3,完成一项课程(看完一个课程中所有视频),  +5</li>
+        <li>4,完成适应性培训   +100</li>
+        <li>5,上传证书及成绩(每张)    +10</li>
+        <li>6,开展一项技能培训(某技能报名成功并开班)  +20</li>
+        <li>7,通过平台入职   +30</li>
+      </ul>
+    </section>
   </div>
 </template>
 
@@ -22,3 +34,26 @@ export default {
   }
 }
 </script>
+<style lang='scss' scoped>
+.wrap-r{
+  min-height: calc( 100vh - 73px - 104px - 100px - 64px - 23px);
+  box-sizing: border-box;
+  background: #fff;
+  padding: 20px;
+  width:70%;
+  margin: 23px auto 0;
+  .rules-title{
+    text-align: center;
+    font-size: 26px;
+    border-bottom: 1px solid #D5D5D5;
+    padding-bottom: 18px;
+    margin-bottom: 40px;
+  }
+  .rules-list{
+    color: #666;
+    li{
+      margin-bottom: 15px;
+    }
+  }
+}
+</style>

+ 286 - 3
src/views/PersonalCenter/ProgressPoints/ProgressPointsIndex.vue

@@ -2,11 +2,294 @@
  * @Description: 进步积分
  * @Author: 空白格
  * @Date: 2022-08-24 10:06:50
- * @LastEditors: 空白格
- * @LastEditTime: 2022-08-24 10:06:50
+ * @LastEditors: gcz
+ * @LastEditTime: 2022-08-26 14:20:56
  * @FilePath: \veterans_client_web\src\views\PersonalCenter\ProgressPoints\ProgressPointsIndex.vue
  * @Copyright: Copyright (c) 2016~2022 by 空白格, All Rights Reserved.
 -->
 <template>
-  <div>进步积分</div>
+  <div class="">
+    <section class="banner">
+      <div class="total">{{totalCount}}</div>
+      <div class="sub-title">
+        <img src="@/assets/images/progresspoints-title.png" alt="">
+        <span class="text">累计获得积分</span>
+        <img src="@/assets/images/progresspoints-title.png" alt="">
+      </div>
+      <div class="behavior">
+        <span class="item" v-for="(item, index) in behaviorList" :key="index">
+					<b class="num">{{ item.count }}</b>个{{ item.type == 1 ? '加' : '减' }}分行为</span>
+      </div>
+    </section>
+    <section class="wrap">
+      <section class="explain">
+        <div class="top u-flex u-row-between">
+          <div class="title">获得进步积分可以</div>
+          <div class="link" @click="jumpPage('/personalcenter/progresspoints/integralrule')">积分规则 ></div>
+        </div>
+        <div class="explain-list u-flex u-row-between">
+          <div class="list-item u-flex u-row-between">
+            <div class="text">
+              <div class="han">推荐工作</div>
+              <div class="en">Recommended work</div>
+            </div>
+            <img src="@/assets/images/progresspoints-good.png" alt="">
+          </div>
+          <div class="list-item u-flex u-row-between">
+            <div class="text">
+              <div class="han">优先分班</div>
+              <div class="en">priority placement</div>
+            </div>
+            <img src="@/assets/images/progresspoints-class.png" alt="">
+          </div> 
+          <div class="list-item u-flex u-row-between">
+            <div class="text">
+              <div class="han">专家辅导</div>
+              <div class="en">Expert guidance</div>
+            </div>
+            <img src="@/assets/images/progresspoints-home.png" alt="">
+          </div>       
+        </div>
+      </section>
+    </section>
+    <section class="wrap">
+        <div class="integral-list">
+          <div class="integral-list-item u-flex u-row-between" v-for="(item,index) in integralList" :key="index">
+            <div class="left">
+              <div class="name u-line-1">{{ item.remark }}</div>
+              <div class="time">{{ item.createTime }}</div>
+            </div>
+            <div class="right">
+              <div v-if="item.type === 1">+{{ item.integral }}</div>
+							<div v-else class="reduce">-{{ item.integral }}</div>
+            </div>
+          </div>          
+        </div>
+        <div class="pagination" v-if="total">
+          <el-pagination
+            background
+            layout="prev, pager, next"
+            :page-size="queryParams.pageSize"
+            :total="total"
+            @current-change="currentChange"
+          />
+        </div>
+        <el-empty description="列表数据为空" v-else></el-empty>
+    </section>
+    
+  </div>
 </template>
+
+<script>
+import { getIntegralCount, getIntegralList } from "@/api/ProgressiveIntegral";
+export default {
+  name: "",
+  components: {},
+  data() {
+    return {
+      // 积分列表
+      integralList: [],
+      // 积分行为
+      behaviorList: [],
+      // 总分
+      totalCount: 0,
+      total: 0,
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+      },
+    };
+  },
+  created() {
+    this.handleGetIntegralCount();
+    this.handleGetIntegralList();
+  },
+  methods: {
+    handleGetIntegralCount() {
+      getIntegralCount().then((res) => {
+        let list = []
+						res.data.forEach(item => {
+							if (item.type == 0) {
+								const obj = {
+									type: 1, count: 0, total: 0
+								}
+								if (res.data.length == 1) {
+									list.push(obj)
+								}
+							} else  if (item.type == 1) {
+								const obj = {
+									type: 0, count: 0, total: 0
+								}
+								if (res.data.length == 1) {
+									list.push(obj)
+								}
+							}
+						});
+						if (list.length == 1) {
+							list = list.concat(res.data)
+						}
+						this.behaviorList = list
+						// 计算总分
+						let total = 0
+						this.totalCount = res.data.reduce((total, item) => total + item.total, 0)
+      });
+    },
+    handleGetIntegralList() {
+      getIntegralList(this.queryParams).then((res) => {
+        this.integralList = res.rows;
+        this.total = Number(res.total);
+        // console.log("getIntegralCount", res);
+      });
+    },
+    /**
+     * 分页切换触发
+     * @date 2022-08-16
+     * @param {any} page
+     * @returns {any}
+     */
+    currentChange(page) {
+      this.queryParams.pageNum = page;
+      this.handleGetIntegralList();
+    },
+    /**
+     * 跳转到指定页面
+     * @date 2022-08-11
+     * @param {any} path
+     * @returns {any}
+     */
+    jumpPage(path, param) {
+      if (path) {
+        this.$router.push({ path: path, query: param });
+      }
+    },
+  },
+};
+</script>
+
+<style lang='scss' scoped>
+.wrap{
+  width: 1200px;
+  margin: 0 auto;
+}
+.pagination {
+  padding-bottom: 24px;
+  text-align: center;
+  :deep(.el-pager .active) {
+    background-color: #ff3939;
+  }
+  :deep(.el-pagination.is-background .el-pager li:not(.disabled).active) {
+    background-color: #ff3939;
+  }
+}
+.banner {
+  text-align: center;
+  position: relative;
+  height: 350px;
+  background: url(@/assets/images/progresspoints-bg.png) no-repeat;
+  background-position: top center;
+  color: #FFF;
+  .total{
+    font-family: PingFangSC-S0pxibold;
+    padding-top: 100px;
+    font-weight: 600;
+    font-size: 50px;
+    letter-spacing: 3.75px;
+    margin-bottom: 10px;
+  }
+  .sub-title{
+    font-size: 14px;
+    margin-bottom: 24px;
+    .text{
+      margin: 0 5px;
+    }
+    img{
+      vertical-align: middle;
+    }
+  }
+  .behavior{
+    .item{
+      display: inline-block;
+      height: 35px;
+      line-height: 35px;
+      text-align: center;
+      background: rgba(255,255,255,.3);
+      padding: 0 24px;
+      border-radius: 5px;
+      font-size: 14px;
+      & + .item{
+        margin-left: 15px
+      };
+      .num{
+        font-size: 20px;
+        margin-right: 5px;
+        vertical-align: -2px;
+      }
+    }
+  }
+}
+.explain{
+  background: #fff;
+  padding: 20px;
+  margin: 20px auto;
+  .top{
+    margin-bottom: 20px;
+    .title{
+      font-size: 20px;
+      color: #393939;
+    }
+    .link{
+      background: rgba(239, 101, 31, .1);
+      padding: 0 20px;
+      color: rgb(239, 101, 31);
+      height: 26px;
+      line-height: 26px;
+      border-radius: 26px;
+      font-size: 14px;
+      cursor: pointer;
+    }
+  }
+  .explain-list{
+    .list-item{
+      box-sizing: border-box;
+      width: 32%;
+      padding: 10px 20px;
+      background: #FFFFFF;
+      box-shadow: 0 0 8px 0 rgba(0,0,0,0.10);
+      .han{
+        font-size: 20px;
+        color: #666;
+        margin-bottom: 5px;
+      }
+      .en{
+        font-size: 12px;
+        color: #ccc;
+        text-transform: uppercase;
+      }
+    }
+  }
+}
+.integral-list{
+  background: #fff;
+  padding: 20px;
+  margin-bottom: 24px;
+  &-item{
+    padding: 10px 0;
+    border-bottom: 1px solid #DBDBDB;
+    .name{
+      font-size: 20px;
+      margin-bottom: 5px;
+    }
+    .time{
+      font-size: 12px;
+      color: #B2B2B2;
+    }
+    .right{
+      font-size: 30px;
+      color: #709078;
+      .reduce{
+        color: #EF651F;
+      }
+    }
+  }
+}
+</style>

+ 29 - 4
src/views/PersonalCenter/Resume/ResumeEdit.vue

@@ -3,7 +3,7 @@
  * @Author: gcz
  * @Date: 2022-08-25 09:38:41
  * @LastEditors: gcz
- * @LastEditTime: 2022-08-25 11:58:28
+ * @LastEditTime: 2022-08-26 16:08:25
  * @FilePath: \veterans_client_web\src\views\PersonalCenter\Resume\ResumeEdit.vue
  * @Copyright: Copyright (c) 2016~2022 by gcz, All Rights Reserved. 
 -->
@@ -27,11 +27,21 @@
             <div class="name">{{ memberinfo.name }}</div>
             <div class="">
               {{ memberinfo.menSex === 1 ? "女" : "男" }} ·
-              <span class="position" v-if="memberinfo.jobStatus !== 0">
+              <!-- <span class="position" v-if="memberinfo.jobStatus !== 0">
                 · <span class="c-yellow">入职中</span>
                 <span>({{memberinfo.company}})</span>
               </span>
-              <span class="c-yellow" v-else>未入职</span>
+              <span class="c-yellow" v-else>未入职</span> -->
+              <el-switch
+                @change="updateJobStatus"
+                v-model="jobStatus"
+                active-text="已入职"
+                active-color="#709078"
+                :active-value="1"
+                :inactive-value="0"
+                inactive-text="未入职">
+              </el-switch>
+              <span v-if="jobStatus==1&&memberinfo.company" style="margin-left:10px">({{memberinfo.company}})</span>
             </div>
           </el-col>
           <el-col :span="8">
@@ -167,7 +177,7 @@
 
 <script>
 import BannerBreadcrumb from "@/components/BannerBreadcrumb";
-import { getPersonInfoData ,saveJobIntention,saveSelfAssessment} from "@/api/PersonalCenter";
+import { getPersonInfoData ,saveJobIntention,saveSelfAssessment ,updateJobStatus} from "@/api/PersonalCenter";
 import { regionDataPlus,regionData, CodeToText,TextToCode  } from "element-china-area-data";
 export default {
   name: "Resume",
@@ -178,6 +188,7 @@ export default {
     return {
       addressOptions: regionDataPlus,
       memberinfo: {},
+      jobStatus:null,
       form: {
         intentionArea:[],
         expectedPost:'',
@@ -217,6 +228,9 @@ export default {
           this.form.intentionArea.push(res?.data?.cityId.toString())
           this.form.intentionArea.push(res?.data?.areaId.toString())
 
+          this.jobStatus = res?.data?.jobStatus;
+          console.log('this.jobStatus',this.jobStatus);
+
           this.selfAssessment = res?.data?.selfAssessment||'';
           console.log("this.form", this.form);
         }
@@ -253,6 +267,12 @@ export default {
         this.$message.success(res.msg)
       })
     },
+    updateJobStatus(){
+      console.log('updateJobStatusupdateJobStatus');
+      updateJobStatus({jobStatus:this.jobStatus}).then(res=>{
+        this.$message.success(res.msg)
+      })
+    }
   },
 };
 </script>
@@ -371,4 +391,9 @@ export default {
     margin-bottom: 24px;
   }
 }
+:deep(.el-switch){
+  .el-switch__label.is-active{
+    color: #ff6901;
+  }
+}
 </style>

+ 2 - 1
src/views/PersonalCenter/SkillTraining/SkillsTrainingDetails.vue

@@ -3,7 +3,7 @@
  * @Author: gcz
  * @Date: 2022-08-25 15:01:55
  * @LastEditors: gcz
- * @LastEditTime: 2022-08-25 17:48:55
+ * @LastEditTime: 2022-08-26 14:46:10
  * @FilePath: \veterans_client_web\src\views\PersonalCenter\SkillTraining\SkillsTrainingDetails.vue
  * @Copyright: Copyright (c) 2016~2022 by gcz, All Rights Reserved. 
 -->
@@ -203,6 +203,7 @@ export default {
         margin-bottom: 25px;
       }
       .progress {
+        width: 25vw;
         margin-top: 20px;
       }
     }