From 0cc01c2e0ca79fe901151b83d14eae32463d8f0a Mon Sep 17 00:00:00 2001
From: 15179599649 <zhangyiyao89@qq.com>
Date: Thu, 04 Jan 2024 17:30:19 +0800
Subject: [PATCH] '完善考核模块'
---
src/api/hfiveget/index.js | 22
src/router/page/index.js | 26 +
src/views/toAppraising/index.vue | 136 +++-----
src/views/examine/index.vue | 57 +--
vue.config.js | 5
src/store/index.js | 4
src/views/Appraising/index.vue | 92 +++-
src/views/login/index.vue | 6
public/images/jqqd.png | 0
src/views/message/index.vue | 28 +
src/views/Checkandassess/index.vue | 22
src/views/toAppraising/toAppraisingfirst.vue | 241 +++++++++++++++
src/views/toAppraising/toAppraisingtwo.vue | 202 ++++++++++++
src/views/layout/index.vue | 5
src/views/toexamine/index.vue | 45 +-
src/App.vue | 1
src/views/discrimination/index.vue | 17
17 files changed, 694 insertions(+), 215 deletions(-)
diff --git a/public/images/jqqd.png b/public/images/jqqd.png
new file mode 100644
index 0000000..8be1217
--- /dev/null
+++ b/public/images/jqqd.png
Binary files differ
diff --git a/src/App.vue b/src/App.vue
index 5f0b08a..e253ca3 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -45,4 +45,5 @@
color: #a8a8a8;
}
}
+
</style>
diff --git a/src/api/hfiveget/index.js b/src/api/hfiveget/index.js
index 9562d04..d03a253 100644
--- a/src/api/hfiveget/index.js
+++ b/src/api/hfiveget/index.js
@@ -25,8 +25,8 @@
//登录
export const Loginto = (params) => {
return request({
- url: "/api/blade-auth/oauth/token",
- // url: '/api/blade-auth/oauth/token?tenantId=000000&username=' + params + '&password=21232f297a57a5a743894a0e4a801fc3&grant_type=password&scope=all&type=account',
+ // url: "/api/blade-auth/oauth/token",
+ url: '/api/blade-auth/oauth/token?tenantId=000000&username=' + params + '&password=94e8cde4612b3fd390677d42e7b22002&grant_type=password&scope=all&type=account',
method: "post",
apiKey: true,
params: {
@@ -38,7 +38,8 @@
// 考核任务列表
export const assessmentTask = (params) => {
return request({
- url: "/api/assessment/assessmentTask/list",
+ // url: "/api/assessment/assessmentTask/list",
+ url: '/api/assessment/assessmentSetAssessor/listByAssessor',
method: "get",
apiKey: true,
params: {
@@ -82,24 +83,23 @@
};
-//进行评分提交
-export const assessmentScore = (params) => {
+//考核进行评分提交
+export const assessmentScore = (data) => {
return request({
url: "/api/assessment/assessmentScore/submit",
method: "post",
apiKey: true,
- data: {
- ...params,
- },
+ data
});
};
// 评优任务列表
export const evaluateTask = (params) => {
return request({
- url: "/api/evaluate/evaluateTask/taskList/" + params.dept_id + "/" + params.user_id,
+ // url: "/api/evaluate/evaluateTask/taskList/" + params.dept_id + "/" + params.user_id,
+ url: "/api/evaluate/evaluateCandidateAssessor/listByAssessor",
method: "get",
apiKey: true,
- data: {
+ params: {
...params,
},
});
@@ -120,7 +120,7 @@
// 提交评优结果
export const evaluateResult = (params) => {
return request({
- url: "/api/evaluate/evaluateResult/submit ",
+ url: "/api/evaluate/evaluateResult/submit",
method: "post",
apiKey: true,
data: {
diff --git a/src/router/page/index.js b/src/router/page/index.js
index 7d0db20..1f9852a 100644
--- a/src/router/page/index.js
+++ b/src/router/page/index.js
@@ -27,22 +27,46 @@
path: "/login",
component: () => import("../../views/login/index.vue"),
},
-
+ //留言
+ {
+ path: "/message",
+ component: () => import("../../views/message/index.vue"),
+ },
//添加留言
{
path: "/Addmessage",
component: () => import("../../views/Addmessage/index.vue"),
+ },
+ //评分
+ {
+ path: "/examine",
+ component: () => import("../../views/examine/index.vue"),
},
//去评分
{
path: "/toexamine",
component: () => import("../../views/toexamine/index.vue"),
},
+ // 评优页面
+ {
+ path: "/Appraising",
+ component: () => import("../../views/Appraising/index.vue"),
+ },
// 去评优
{
path: "/toAppraising",
component: () => import("../../views/toAppraising/index.vue"),
},
+ //员工评优
+ {
+ path: '/toAppraisingfirst',
+ component: () => import("../../views/toAppraising/toAppraisingfirst.vue"),
+ },
+ //部门评优
+ {
+ path: '/toAppraisingtwo',
+ component: () => import("../../views/toAppraising/toAppraisingtwo.vue"),
+ }
];
const router = new VueRouter({
diff --git a/src/store/index.js b/src/store/index.js
index 12e64bb..b0a5461 100644
--- a/src/store/index.js
+++ b/src/store/index.js
@@ -13,6 +13,7 @@
},
state: {
overlayshow: false,
+ logintopath: '',
infoone: { index: 0, num: 0 },
},
mutations: {
@@ -22,6 +23,9 @@
reoverlayshow(state) {
state.overlayshow = false
},
+ updatelogintopath(state, router) {
+ state.logintopath = router
+ }
},
getters
})
diff --git a/src/views/Appraising/index.vue b/src/views/Appraising/index.vue
index d9a7b44..0c8251d 100644
--- a/src/views/Appraising/index.vue
+++ b/src/views/Appraising/index.vue
@@ -9,16 +9,8 @@
>{{item.isEvaluateOk==false?'待完成 ':'已完成'}}</span>
</p>
<p class="Tasktime">
- <span>评优对象:</span>
- <span>{{item.type == 0 ? "个人" :item.type == 1 ? "部门" :item.type == 2 ? "个人" : ""}}</span>
- </p>
- <p class="Tasktime">
<span>评优级别:</span>
<span>{{item.type == 0 ? "部门级评优" :item.type == 1 ? "部门评优" :item.type == 2 ? "公司评优" : ""}}</span>
- </p>
- <p class="Tasktime">
- <span>评优类别:</span>
- <span>{{item.taskType}}</span>
</p>
<p class="Tasktime">
<span>截止日期:</span>
@@ -31,11 +23,13 @@
<img src="images/notdata.png" />
<p>暂无数据</p>
</div>
+ <img src="images/outlogin.png" class="Addmessage" @click="OutLogin()" />
</div>
</template>
<script>
import { evaluateTask, evaluateTasktop } from "@/api/hfiveget/index.js";
+import store from "../../store/index";
export default {
data() {
return {
@@ -45,6 +39,10 @@
computed: {},
created() {
+ if (localStorage.getItem("tokensave") == null) {
+ this.$router.push("/discrimination");
+ }
+ store.commit("updatelogintopath", "/Appraising");
if (localStorage.getItem("tokensave") != "111") {
this.evaluateTaskData();
}
@@ -54,42 +52,74 @@
// 评优任务列表
evaluateTaskData() {
let data = {
- user_id: localStorage.getItem("tokensave"),
- dept_id: localStorage.getItem("dept_id")
+ userId: localStorage.getItem("tokensave")
+ // dept_id: localStorage.getItem("dept_id")
};
- evaluateTask(data).then(res => {
- this.ViewData = res.data.data.records;
- evaluateTasktop(data).then(res_new => {
- res_new.data.data.records.forEach(item => {
- item.type = 2;
- this.ViewData.push(item);
- });
- this.ViewData.sort((a, b) => {
- if (a.isEvaluateOk && !b.isEvaluateOk) {
- return 1; // a排在b之前
- } else if (!a.isEvaluateOk && b.isEvaluateOk) {
- return -1; // b排在a之前
- } else {
- return 0; // 顺序不变
+ if (
+ localStorage.getItem("tokensave") != null &&
+ localStorage.getItem("tokensave") != "111"
+ ) {
+ evaluateTask(data).then(res => {
+ console.log(res.data.data.records);
+ this.ViewData = res.data.data.records;
+ this.ViewData = [
+ {
+ dept_name: "技术部",
+ taskName: "2024年元旦评优",
+ type: 0,
+ candidateCutoffTime: "2024-01-09",
+ isEvaluateOk: false,
+ RecommendData: []
+ },
+ {
+ dept_name: "技术部",
+ taskName: "2024年元旦评优",
+ type: 1,
+ evaluateCutoffTime: "2024-01-09",
+ isEvaluateOk: false,
+ RecommendData: []
}
- });
+ ];
});
- });
+ }
+ },
+ OutLogin() {
+ localStorage.clear();
+ setTimeout(() => {
+ this.$router.push({
+ path: "/discrimination"
+ });
+ }, 1000);
+ this.$toast.success("请重新登录");
},
toAppraising(item) {
- this.$router.push({
- path: "/toAppraising",
- query: { info: JSON.stringify(item) }
- });
+ if (item.type == 1) {
+ this.$router.push({
+ path: "/toAppraisingtwo",
+ query: { info: JSON.stringify(item) }
+ });
+ } else {
+ this.$router.push({
+ path: "/toAppraisingfirst",
+ query: { info: JSON.stringify(item) }
+ });
+ }
}
}
};
</script>
<style scoped lang="scss">
+.Addmessage {
+ position: absolute;
+ right: 10px;
+ bottom: 110px;
+ width: 70px;
+ height: 70px;
+}
.Appraising {
padding: 20px;
- height: 100%;
+ height: 100vh;
overflow: auto;
background: #f5f5f5;
.view {
diff --git a/src/views/Checkandassess/index.vue b/src/views/Checkandassess/index.vue
index 038c9e5..24fb1be 100644
--- a/src/views/Checkandassess/index.vue
+++ b/src/views/Checkandassess/index.vue
@@ -1,25 +1,25 @@
<!--查考核-->
<template>
<div class="Checkandassess">
- <div class="view" v-for="(item,index) in ViewData" :key="index">
+ <div class="view" v-for="(item, index) in ViewData" :key="index">
<p class="TaskNumber">
- <span>考核任务编号:{{item.assessmentTaskVO.assessmentNo}}</span>
+ <span>考核任务编号:{{ item.assessmentTaskVO.assessmentNo }}</span>
<span
- :class="item.isAssessmentOk==true?'number':'evaluation'"
- >{{item.isAssessmentOk==true?item.scoreVal:'评估中'}}</span>
+ :class="item.scoreVal !=0 ? 'number' : 'evaluation'"
+ >{{ item.scoreVal!=0 ? item.scoreVal : "评估中" }}</span>
</p>
<p class="Tasktime">
<span>发起日期:</span>
- <span>{{item.assessmentTaskVO.createTime}}</span>
+ <span>{{ item.assessmentTaskVO.createTime }}</span>
</p>
</div>
- <div class="not" v-show="ViewData.length==0">
+ <div class="not" v-show="ViewData.length == 0">
<img src="images/notdata.png" />
<p>暂无数据</p>
</div>
</div>
</template>
-
+
<script>
import { listGroupByTask } from "@/api/hfiveget/index.js";
export default {
@@ -35,7 +35,10 @@
},
methods: {
getTaskData() {
- if (localStorage.getItem("tokensave") != "111") {
+ if (
+ localStorage.getItem("tokensave") != null &&
+ localStorage.getItem("tokensave") != "111"
+ ) {
let toUserId = localStorage.getItem("tokensave");
listGroupByTask(toUserId).then(res => {
this.ViewData = res.data.data;
@@ -45,7 +48,7 @@
}
};
</script>
-
+
<style scoped lang="scss">
.Checkandassess {
padding: 20px;
@@ -101,4 +104,3 @@
}
}
</style>
-
\ No newline at end of file
diff --git a/src/views/discrimination/index.vue b/src/views/discrimination/index.vue
index a0e9757..3a96407 100644
--- a/src/views/discrimination/index.vue
+++ b/src/views/discrimination/index.vue
@@ -23,19 +23,24 @@
</template>
<script>
+import store from "../../store/index";
export default {
data() {
return {
- checkinis: true
+ checkinis: true,
+ topath: ""
};
},
computed: {},
- created() {
- if (localStorage.getItem("tokensave") != null) {
- this.$router.push("/");
- }
- },
+ // created() {
+ // if (localStorage.getItem("tokensave") != null) {
+ // this.$router.push("/");
+ // }
+ // },
+ // beforeRouteEnter(to, from, next) {
+ // // store.commit("updatelogintopath", from.path);
+ // },
methods: {
// 身份切换选择
checkin(key) {
diff --git a/src/views/examine/index.vue b/src/views/examine/index.vue
index d79075a..d03fe7a 100644
--- a/src/views/examine/index.vue
+++ b/src/views/examine/index.vue
@@ -17,8 +17,8 @@
<p class="TaskNumber">
<span>考核任务编号:{{item.assessmentTaskVO.assessmentNo}}</span>
<span
- :class="item.assessmentScoreVO==null?'evaluation':'evaluationget'"
- >{{item.assessmentScoreVO==null?'待完成':'已完成'}}</span>
+ :class="item.isAssessmentOk==false?'evaluation':'evaluationget'"
+ >{{item.isAssessmentOk==false?'待完成':'已完成'}}</span>
</p>
<p class="Tasktime">
<span>考核种类:</span>
@@ -26,7 +26,7 @@
</p>
<p class="Tasktime">
<span>考核对象:</span>
- <span>{{item.userId!=undefined?"个人":"部门"}}</span>
+ <span>{{item.assessmentTaskVO.type==0?"个人":"部门"}}</span>
</p>
<p class="Tasktime">
<span>截止日期:</span>
@@ -34,10 +34,10 @@
</p>
<p class="Tasktime">
<span>考核任务:</span>
- <span>对({{item.assessmentTaskVO.type==0?item.userName:item.deptName}})进行评分</span>
+ <span>对({{item.assessmentTaskVO.type==0?item.assessmentSetVO.deptName+':'+item.assessmentSetVO.userName+'':item.assessmentSetVO.deptName}})进行评分</span>
</p>
- <van-button @click="toexamine(item)" v-show="item.assessmentScoreVO==null">去评分</van-button>
- <p class="read" v-show="item.assessmentScoreVO!=null" @click="toexamine(item)">查看详情</p>
+ <van-button @click="toexamine(item)" v-show="item.isAssessmentOk==false">去评分</van-button>
+ <p class="read" v-show="item.isAssessmentOk==true" @click="toexamine(item)">查看详情</p>
</div>
</div>
<div v-show="tabbarindex==1">
@@ -60,6 +60,7 @@
assessmentSetDept
} from "@/api/hfiveget/index.js";
import Checkandassess from "../Checkandassess/index.vue";
+import store from "../../store/index";
export default {
components: {
Checkandassess
@@ -73,6 +74,10 @@
mounted() {},
computed: {},
created() {
+ store.commit("updatelogintopath", "/examine");
+ if (localStorage.getItem("tokensave") == null) {
+ this.$router.push("/discrimination");
+ }
this.assessmentTaskData();
},
methods: {
@@ -90,36 +95,16 @@
},
// 考核任务列表
assessmentTaskData() {
- if (localStorage.getItem("tokensave") != "111") {
+ if (
+ localStorage.getItem("tokensave") != null &&
+ localStorage.getItem("tokensave") != "111"
+ ) {
let toUserId = localStorage.getItem("tokensave");
- assessmentSet({ toUserId: toUserId }).then(res_peo => {
- if (res_peo.data.data.records != undefined) {
- res_peo.data.data.records.forEach(items => {
- if (items.assessmentTaskVO !== null) {
- this.ViewData.push(items);
- }
- if (items.assessmentScoreVO !== null) {
- items.condition = 1;
- } else {
- items.condition = 0;
- }
- });
- }
- assessmentSetDept({ toUserId: toUserId }).then(res_dept => {
- if (res_dept.data.data.records != undefined) {
- res_dept.data.data.records.forEach(items_dept => {
- if (items_dept.assessmentTaskVO !== null) {
- this.ViewData.push(items_dept);
- }
- if (items_dept.assessmentScoreVO !== null) {
- items_dept.condition = 1;
- } else {
- items_dept.condition = 0;
- }
- });
- }
- this.ViewData.sort((a, b) => a.condition - b.condition);
- });
+ assessmentTask({ userId: toUserId }).then(res => {
+ this.ViewData = res.data.data.records||[];
+ this.ViewData = this.ViewData.sort(
+ (a, b) => a.isAssessmentOk - b.isAssessmentOk
+ );
});
}
},
@@ -172,7 +157,7 @@
.Checkandassess {
overflow: auto;
box-sizing: border-box;
- height: calc(100% - 60px);
+ height: calc(100vh - 60px);
background: #f5f5f5;
.view {
width: 90%;
diff --git a/src/views/layout/index.vue b/src/views/layout/index.vue
index 72ebf07..c54ce8c 100644
--- a/src/views/layout/index.vue
+++ b/src/views/layout/index.vue
@@ -129,7 +129,10 @@
if (localStorage.getItem("Appraising") != null) {
this.comName = localStorage.getItem("Appraising");
}
- if (localStorage.getItem("tokensave") != "111") {
+ if (
+ localStorage.getItem("tokensave") != null &&
+ localStorage.getItem("tokensave") != "111"
+ ) {
let toUserId = localStorage.getItem("tokensave");
assessmentSet({ toUserId: toUserId }).then(res_peo => {
if (res_peo.data.data.records != undefined) {
diff --git a/src/views/login/index.vue b/src/views/login/index.vue
index 0392353..59f54b2 100644
--- a/src/views/login/index.vue
+++ b/src/views/login/index.vue
@@ -53,7 +53,7 @@
const usernameyeno = /^1[3-9]\d{9}$/.test(key);
if (usernameyeno == false) {
this.$toast.fail("用户名错误");
- return false;
+ return true;
} else {
return true;
}
@@ -98,14 +98,14 @@
phone: this.username,
code: this.Code
};
- Loginto(Data).then(res => {
+ Loginto(Data.phone).then(res => {
if (res.data.code == 400) {
this.$toast.fail(res.data.msg);
} else if (res.data.code == 500) {
this.$toast.fail("登录失败");
} else {
setTimeout(() => {
- this.$router.push("/");
+ this.$router.push(this.$store.state.logintopath);
}, 1000);
localStorage.setItem("Appraising", "examine");
localStorage.setItem("tokensave", res.data.user_id); //用户id
diff --git a/src/views/message/index.vue b/src/views/message/index.vue
index 3065062..1d3e505 100644
--- a/src/views/message/index.vue
+++ b/src/views/message/index.vue
@@ -66,14 +66,18 @@
<img src="images/notdata.png" />
<p>暂无数据</p>
</div>
- <img src="images/outlogin.png" class="Addmessage_out" @click="OutLogin()" v-show="!isshownotnm" />
+ <img src="images/outlogin.png" class="Addmessage_out" @click="OutLogin()" />
<img src="images/Addmessage.png" class="Addmessage" @click="Addmessage()" />
+ <div class="Stay">
+ <img src="images/jqqd.png" v-show="messageData.length!=0" />
+ </div>
</div>
</template>
<script>
import { endpoint, leaveWordslist, leaveWords } from "@/api/hfiveget/index.js";
import { ImagePreview } from "vant";
+import store from "../../store/index";
export default {
data() {
return {
@@ -85,9 +89,15 @@
computed: {},
created() {
+ if (localStorage.getItem("tokensave") == null) {
+ this.$router.push("/discrimination");
+ }
+ store.commit("updatelogintopath", "/message");
this.isshownotnm =
localStorage.getItem("tokensave") == "111" ? false : true;
- this.getmessagelist();
+ if (localStorage.getItem("tokensave") != null) {
+ this.getmessagelist();
+ }
},
mounted() {},
methods: {
@@ -96,14 +106,17 @@
event.target.scrollHeight -
event.target.scrollTop -
event.target.clientHeight;
- if (scrollBottom < 1) {
+ if (scrollBottom < 200) {
this.pageswitch.size += 10;
+ this.current.current += 1;
+ this.getmessagelist(this.pageswitch);
}
},
// 获取数据
getmessagelist() {
leaveWordslist(this.pageswitch).then(res => {
- this.messageData = res.data.data.records;
+ const mergedArray = this.messageData.concat(res.data.data.records);
+ this.messageData = mergedArray;
this.messageData.forEach((item, indexto) => {
if (item.imageUrls != "") {
item.imageUrls = item.imageUrls.split(",");
@@ -215,7 +228,12 @@
.boxliuyan {
height: 100%;
overflow: auto;
- padding-bottom: 200px;
+ .Stay {
+ width: 100%;
+ img {
+ width: 100%;
+ }
+ }
}
.Addmessage {
position: absolute;
diff --git a/src/views/toAppraising/index.vue b/src/views/toAppraising/index.vue
index 1ef3b1a..885fcc2 100644
--- a/src/views/toAppraising/index.vue
+++ b/src/views/toAppraising/index.vue
@@ -2,26 +2,34 @@
<template>
<div class="toAppraising">
<div class="Beingevaluated">
- <p class="title">{{this.poepleinfo.taskName}}</p>
+ <p class="title">{{ this.poepleinfo.taskName }}</p>
<p class="info">
<span>所在部门:</span>
- <span>{{ this.poepleinfo.dept_name}}</span>
- </p>
- <p class="info">
- <span>评优类别:</span>
- <span>{{this.poepleinfo.taskType}}</span>
+ <span>{{ this.poepleinfo.dept_name }}</span>
</p>
<p class="info">
<span>评优级别:</span>
- <span>{{this.poepleinfo.type == 0 ? "部门级评优" :this.poepleinfo.type == 1 ? "部门评优" :this.poepleinfo.type == 2 ? "公司评优" : ""}}</span>
- </p>
- <p class="info">
- <span>评优标准:</span>
- <span>{{this.poepleinfo.remark}}</span>
+ <span>
+ {{
+ this.poepleinfo.type == 0
+ ? "部门级评优"
+ : this.poepleinfo.type == 1
+ ? "部门评优"
+ : this.poepleinfo.type == 2
+ ? "公司评优"
+ : ""
+ }}
+ </span>
</p>
<p class="info">
<span>截止日期:</span>
- <span>{{this.poepleinfo.type==0?this.poepleinfo.candidateCutoffTime:this.poepleinfo.evaluateCutoffTime}}</span>
+ <span>
+ {{
+ this.poepleinfo.type == 0
+ ? this.poepleinfo.candidateCutoffTime
+ : this.poepleinfo.evaluateCutoffTime
+ }}
+ </span>
</p>
<div v-if="poepleinfo.isEvaluateOk == false">
<div class="toin">
@@ -29,7 +37,7 @@
v-model="currentValue"
is-link
readonly
- :label="this.poepleinfo.type==1?'推荐部门':'推荐人员'"
+ :label="this.poepleinfo.type == 1 ? '推荐部门' : '推荐人员'"
placeholder="请选择"
@click="showPicker = true"
class="van-hairline"
@@ -37,22 +45,26 @@
<p class="Reasons">推荐理由:</p>
<van-field
class="van-borderline"
- v-model="toData.remark"
+ v-model="remark"
rows="5"
type="textarea"
placeholder="请输入推荐理由..."
/>
</div>
- <van-button type="primary" block @click="SubmitTo()" :disabled="disabledsubmit">提交</van-button>
+ <van-button type="primary" block @click="SubmitTo()" :disabled="disabledsubmit">确定</van-button>
</div>
<div class="showdetails" v-else>
<p>
- <span class="title">评选{{this.poepleinfo.type==1?"部门":"人"}}:</span>
- <span class="fraction">{{toshow.name}}</span>
+ <span class="title">评选{{ this.poepleinfo.type == 1 ? "部门" : "人" }}:</span>
+ <span class="fraction">{{ toshow.name }}</span>
</p>
<p>
<span class="title">评选说明:</span>
- <span class="instruct">{{toshow.remark==''?'无':toshow.remark}}</span>
+ <span class="instruct">
+ {{
+ toshow.remark == "" ? "无" : toshow.remark
+ }}
+ </span>
</p>
</div>
</div>
@@ -68,7 +80,7 @@
</van-popup>
</div>
</template>
-
+
<script>
import { Picker } from "vant";
import { deptlistAll, evaluateResult } from "@/api/hfiveget/index.js";
@@ -79,8 +91,9 @@
showPicker: false,
pickerkey: "",
currentValue: "", // 用于绑定选择结果的变量
- columns: [], // 选择器的选项列表
- poepleinfo: { type: -1 },
+ remark: "", //推荐理由
+ columns: ["张三", "李四", "王五"], // 选择器的选项列表
+ poepleinfo: {},
toData: {},
toshow: {},
disabledsubmit: false
@@ -92,84 +105,46 @@
},
created() {
this.poepleinfo = JSON.parse(this.$route.query.info);
- this.toData.scoreUserId = localStorage.getItem("tokensave");
- this.toData.evaluateTaskId = this.poepleinfo.id; //任务id
- this.toData.type = this.poepleinfo.type;
- this.poepleinfo.dept_name = localStorage.getItem("dept_name");
- // 部门候选人评定进行选择
- if (this.poepleinfo.type == 0 || this.poepleinfo.type == 2) {
- if (this.poepleinfo.type == 0) {
- let index = this.poepleinfo.selfCandidate.findIndex(
- item => item.id === localStorage.getItem("tokensave")
- );
- if (index !== -1) {
- this.poepleinfo.selfCandidate.splice(index, 1);
- }
- }
- this.pickerkey = "name";
- this.columns = this.poepleinfo.selfCandidate;
- if (this.poepleinfo.isEvaluateOk == true) {
- this.columns.forEach(item => {
- if (item.id == this.poepleinfo.evaluateResultVO.beId) {
- this.toshow = {
- name: item.name,
- remark: this.poepleinfo.evaluateResultVO.remark
- };
- }
- });
- }
- }
- //对部门进行选择评优
- else if (this.poepleinfo.type == 1) {
- deptlistAll().then(res => {
- this.pickerkey = "deptName";
- this.columns = res.data.data;
- if (this.poepleinfo.isEvaluateOk == true) {
- this.columns.forEach(item => {
- if (item.id == this.poepleinfo.evaluateResultVO.beId) {
- this.toshow = {
- name: item.deptName,
- remark: this.poepleinfo.evaluateResultVO.remark
- };
- }
- });
- }
- });
- }
+ console.log(this.poepleinfo);
},
methods: {
onConfirm(select) {
- // 选择评选人或评选部门
- if (this.pickerkey == "deptName") {
- this.currentValue = select.deptName;
- } else if (this.pickerkey == "name") {
- this.currentValue = select.name;
- }
- this.toData.beId = select.id;
+ this.currentValue = select;
this.showPicker = false;
+ this.poepleinfo.RecommendData.forEach(element => {
+ if (element.efereename == select) {
+ this.$toast.fail("该人员已推荐");
+ this.currentValue = "";
+ }
+ });
},
//提交
SubmitTo() {
- if (this.toData.beId == undefined) {
+ if (this.currentValue == "") {
this.$toast.fail(
this.poepleinfo.type == 1 ? "请选择推荐部门" : "请选择推荐人员"
);
- } else if (this.toData.remark == undefined || this.toData.remark == "") {
+ } else if (this.remark == "") {
this.$toast.fail("请输入推荐理由");
} else {
this.disabledsubmit = true;
- evaluateResult(this.toData).then(res => {
- setTimeout(() => {
- this.$router.push("/");
- }, 1000);
- this.$toast.success("评选完成");
+ this.poepleinfo.RecommendData.push({
+ remark: this.remark,
+ efereename: this.currentValue
});
+ setTimeout(() => {
+ this.$router.push({
+ path: "/toAppraisingfirst",
+ query: { info: JSON.stringify(this.poepleinfo) }
+ });
+ }, 1000);
+ this.$toast.success("推荐成功");
}
}
}
};
</script>
-
+
<style scoped lang="scss">
.toAppraising {
padding: 20px;
@@ -254,4 +229,3 @@
}
}
</style>
-
\ No newline at end of file
diff --git a/src/views/toAppraising/toAppraisingfirst.vue b/src/views/toAppraising/toAppraisingfirst.vue
new file mode 100644
index 0000000..af122d0
--- /dev/null
+++ b/src/views/toAppraising/toAppraisingfirst.vue
@@ -0,0 +1,241 @@
+<!--去评优-->
+<template>
+ <div class="toAppraising">
+ <div class="Beingevaluated">
+ <p class="title">{{this.poepleinfo.taskName}}</p>
+ <p class="info">
+ <span>所在部门:</span>
+ <span>{{ this.poepleinfo.dept_name}}</span>
+ </p>
+ <p class="info">
+ <span>评优级别:</span>
+ <span>{{this.poepleinfo.type == 0 ? "部门级评优" :this.poepleinfo.type == 1 ? "部门评优" :this.poepleinfo.type == 2 ? "公司评优" : ""}}</span>
+ </p>
+ <p class="info">
+ <span>截止日期:</span>
+ <span>{{this.poepleinfo.type==0?this.poepleinfo.candidateCutoffTime:this.poepleinfo.evaluateCutoffTime}}</span>
+ </p>
+ <p class="info">
+ <span>说明:</span>
+ <table border="1" align="center" bordercolor="gray">
+ <thead>
+ <tr>
+ <th>类别</th>
+ <th>认定标准</th>
+ <th>名额</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>优秀先锋</td>
+ <td>优秀技术人员</td>
+ <td>2</td>
+ </tr>
+ <tr>
+ <td>优秀经理</td>
+ <td>优秀部门领导</td>
+ <td>1</td>
+ </tr>
+ </tbody>
+ </table>
+ </p>
+ <p class="info">
+ <span class="tuijian">推荐人员:<van-button type="primary" block @click="Gotovote()" >添加推荐人员</van-button></span>
+ <table border="1" align="center" bordercolor="gray" class="tuijiaantable">
+ <thead>
+ <tr>
+ <th>姓名</th>
+ <th>评选理由</th>
+ <th>操作</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr v-for="(item,index) of this.poepleinfo.RecommendData" :key="index">
+ <td>{{item.efereename}}</td>
+ <td>{{item.remark}}</td>
+ <td><van-button type="danger" size="mini" @click="deleteRecommend(index)">删除</van-button></td>
+ </tr>
+ <tr v-show="this.poepleinfo.RecommendData.length==0">
+ <td colspan="3">暂无数据</td>
+ </tr>
+ </tbody>
+ </table>
+ </p>
+ <div>
+ <van-button type="primary" block @click="SubmitTo()">提交</van-button>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+import { Picker } from "vant";
+import { deptlistAll, evaluateResult } from "@/api/hfiveget/index.js";
+import store from "../../store/index";
+export default {
+ data() {
+ return {
+ infoData:JSON.parse(this.$route.query.info)
+ };
+ },
+ computed:{
+ poepleinfo(){
+ return this.infoData
+ }
+ },
+ mounted() {
+ localStorage.setItem("Appraising", "Appraising");
+ },
+ created() {
+ },
+ methods: {
+ //添加推荐人员
+ Gotovote() {
+ this.$router.push({
+ path: "/toAppraising",
+ query: { info: JSON.stringify(this.poepleinfo) }
+ });
+ },
+ //删除推荐人员
+ deleteRecommend(index){
+ this.infoData.RecommendData.splice(index,1)
+ },
+ //提交
+ SubmitTo(){
+ console.log(this.infoData)
+ this.$router.push({
+ path: "/Appraising",
+ });
+ }
+ }
+};
+</script>
+
+<style scoped lang="scss">
+.toAppraising {
+ padding: 20px;
+ height: 100vh;
+ overflow: auto;
+ background: #f5f5f5;
+ .Beingevaluated {
+ background: white;
+ padding: 20px;
+ height: 100%;
+ .title {
+ font-size: 18px;
+ font-weight: bold;
+ line-height: 35px;
+ }
+ .info {
+ font-size: 16px;
+ line-height: 30px;
+ span:nth-child(1) {
+ color: #8894a8;
+ }
+ span:nth-child(2) {
+ color: #313d51;
+ }
+ table{
+ width: 100%;
+ margin: 3px 0px 20px;
+ font-weight: none;
+ font-size: 16px;
+ color: #313d51;
+ border-collapse: collapse;
+ text-align: center;
+ tr{
+ height: 50px;
+ }
+ }
+ .tuijiaantable{
+ margin: 10px 0px 20px;
+ .van-button{
+ background: red;
+ height: 30px;
+ margin:0px;
+ width: 50px;
+ .van-button__text{
+ color: white;
+ font-size: 14px;
+ }
+
+ }
+ }
+ .tuijian{
+ display: flex;
+ align-items: center;
+ .van-button{
+ display: inline;
+ margin: 0;
+ padding: 0;
+ width: 110px;
+ background: green;
+ height: 32px;
+ font-size: 14px;
+ .van-button__text{
+ color: white;
+ }
+ }
+
+ }
+
+ }
+ .toin {
+ margin-top: 20px;
+ [class*="van-hairline"]::after {
+ border: none;
+ }
+ .van-field {
+ font-size: 16px;
+ font-weight: bold;
+ padding: 10px 0px;
+ }
+ .Reasons {
+ font-size: 16px;
+ font-weight: bold;
+ color: #646566;
+ margin-bottom: 10px;
+ }
+ .van-borderline {
+ border: 1px solid #dee1e7;
+ font-weight: 100;
+ border-radius: 8px;
+ padding: 5px;
+ }
+ }
+ .van-button {
+ margin: 30px 0px 0px auto;
+ width: 120px;
+ color: white;
+ font-size: 20px;
+ align-items: center;
+ text-align: center;
+ justify-content: center;
+ background: linear-gradient(163deg, #01bdfc 0%, #017bfc 100%);
+ border-radius: 8px;
+ }
+ .showdetails {
+ margin-top: 20px;
+ p {
+ display: flex;
+ align-items: center;
+ }
+ .title {
+ font-size: 16px;
+ color: #8894a8;
+ }
+ .fraction {
+ font-size: 18px;
+ text-align: center;
+ line-height: 30px;
+ }
+ .instruct {
+ font-size: 18px;
+ text-align: center;
+ line-height: 30px;
+ }
+ }
+ }
+}
+</style>
+
\ No newline at end of file
diff --git a/src/views/toAppraising/toAppraisingtwo.vue b/src/views/toAppraising/toAppraisingtwo.vue
new file mode 100644
index 0000000..8cfeaf8
--- /dev/null
+++ b/src/views/toAppraising/toAppraisingtwo.vue
@@ -0,0 +1,202 @@
+<!--去评优-->
+<template>
+ <div class="toAppraising">
+ <div class="Beingevaluated">
+ <p class="title">{{this.poepleinfo.taskName}}</p>
+ <p class="info">
+ <span>所在部门:</span>
+ <span>{{ this.poepleinfo.dept_name}}</span>
+ </p>
+ <p class="info">
+ <span>评优级别:</span>
+ <span>{{this.poepleinfo.type == 0 ? "部门级评优" :this.poepleinfo.type == 1 ? "部门评优" :this.poepleinfo.type == 2 ? "公司评优" : ""}}</span>
+ </p>
+ <p class="info">
+ <span>截止日期:</span>
+ <span>{{this.poepleinfo.type==0?this.poepleinfo.candidateCutoffTime:this.poepleinfo.evaluateCutoffTime}}</span>
+ </p>
+ <p class="info">
+ <span>推荐部门:</span>
+ <span>
+ <van-checkbox-group v-model="checked" shape="square" direction="horizontal">
+ <van-checkbox :name="item" v-for="item in deptData" :key="item" class="vantitle">
+ <span>{{item}}</span>
+ </van-checkbox>
+ </van-checkbox-group>
+ </span>
+ </p>
+ <div>
+ <van-button type="primary" block @click="SubmitTo()">提交</van-button>
+ </div>
+ </div>
+ </div>
+</template>
+
+<script>
+import { Picker } from "vant";
+import { deptlistAll, evaluateResult } from "@/api/hfiveget/index.js";
+import store from "../../store/index";
+export default {
+ data() {
+ return {
+ checked: [],
+ deptData: ["技术部", "人事部", "财务部", "总经办"],
+ infoData: JSON.parse(this.$route.query.info)
+ };
+ },
+ computed: {
+ poepleinfo() {
+ return this.infoData;
+ }
+ },
+ mounted() {
+ localStorage.setItem("Appraising", "Appraising");
+ },
+ created() {},
+ methods: {
+ //提交
+ SubmitTo() {
+ this.$router.push({
+ path: "/Appraising"
+ });
+ }
+ }
+};
+</script>
+
+<style scoped lang="scss">
+.toAppraising {
+ padding: 20px;
+ height: 100vh;
+ overflow: auto;
+ background: #f5f5f5;
+ .Beingevaluated {
+ background: white;
+ padding: 20px;
+ height: 100%;
+ .title {
+ font-size: 18px;
+ font-weight: bold;
+ line-height: 35px;
+ }
+ .info {
+ font-size: 16px;
+ line-height: 30px;
+ span:nth-child(1) {
+ color: #8894a8;
+ }
+ span:nth-child(2) {
+ color: #313d51;
+ }
+ .van-checkbox-group {
+ .van-checkbox {
+ margin: 4px 10px 4px 0px;
+ span {
+ margin-left: -4px;
+ }
+ }
+ }
+ .van-checkbox__label {
+ margin-left: 0px;
+ }
+ table {
+ width: 100%;
+ margin: 3px 0px 20px;
+ font-weight: none;
+ font-size: 16px;
+ color: #313d51;
+ border-collapse: collapse;
+ text-align: center;
+ tr {
+ height: 50px;
+ }
+ }
+ .tuijiaantable {
+ margin: 10px 0px 20px;
+ .van-button {
+ background: red;
+ height: 30px;
+ margin: 0px;
+ width: 50px;
+ .van-button__text {
+ color: white;
+ font-size: 14px;
+ }
+ }
+ }
+ .tuijian {
+ display: flex;
+ align-items: center;
+ .van-button {
+ display: inline;
+ margin: 0;
+ padding: 0;
+ width: 110px;
+ background: green;
+ height: 32px;
+ font-size: 14px;
+ .van-button__text {
+ color: white;
+ }
+ }
+ }
+ }
+ .toin {
+ margin-top: 20px;
+ [class*="van-hairline"]::after {
+ border: none;
+ }
+ .van-field {
+ font-size: 16px;
+ font-weight: bold;
+ padding: 10px 0px;
+ }
+ .Reasons {
+ font-size: 16px;
+ font-weight: bold;
+ color: #646566;
+ margin-bottom: 10px;
+ }
+ .van-borderline {
+ border: 1px solid #dee1e7;
+ font-weight: 100;
+ border-radius: 8px;
+ padding: 5px;
+ }
+ }
+ .van-button {
+ margin: 30px 0px 0px auto;
+ width: 120px;
+ color: white;
+ font-size: 20px;
+ align-items: center;
+ text-align: center;
+ justify-content: center;
+ background: linear-gradient(163deg, #01bdfc 0%, #017bfc 100%);
+ border-radius: 8px;
+ }
+ .showdetails {
+ margin-top: 20px;
+ p {
+ display: flex;
+ align-items: center;
+ }
+ .title {
+ font-size: 16px;
+ color: #8894a8;
+ }
+ .fraction {
+ font-size: 18px;
+ text-align: center;
+ line-height: 30px;
+ }
+ .instruct {
+ font-size: 18px;
+ text-align: center;
+ line-height: 30px;
+ }
+ }
+ }
+}
+</style>
+
\ No newline at end of file
diff --git a/src/views/toexamine/index.vue b/src/views/toexamine/index.vue
index ade2bc6..d80969e 100644
--- a/src/views/toexamine/index.vue
+++ b/src/views/toexamine/index.vue
@@ -7,33 +7,25 @@
/>
</div>
<div class="Info">
- <p v-show="this.poepleinfo.userId!=undefined">
+ <p v-show="this.poepleinfo.assessmentTaskVO.type==0">
<span>被考核人:</span>
- <span>{{this.poepleinfo.userName}}</span>
+ <span>{{this.poepleinfo.assessmentSetVO.userName}}</span>
</p>
- <p v-show="this.poepleinfo.userId==undefined">
+ <p v-show="this.poepleinfo.assessmentTaskVO.type==1">
<span>被考核部门:</span>
- <span>{{this.poepleinfo.deptName}}</span>
+ <span>{{this.poepleinfo.assessmentSetVO.deptName}}</span>
</p>
- <p v-show="this.poepleinfo.userId!=undefined">
+ <p v-show="this.poepleinfo.assessmentTaskVO.type==0">
<span>所在部门:</span>
- <span>{{this.poepleinfo.deptName}}</span>
+ <span>{{this.poepleinfo.assessmentSetVO.deptName}}</span>
</p>
- <p v-show="this.poepleinfo.userId!=undefined">
+ <p v-show="this.poepleinfo.assessmentTaskVO.type==0">
<span>职务:</span>
- <span>{{this.poepleinfo.postName}}</span>
+ <span>{{this.poepleinfo.assessmentSetVO.postName}}</span>
</p>
- <!-- <p v-show="this.poepleinfo.userId!=undefined">
- <span>人员类型:</span>
- <span>经营</span>
- </p>
- <p v-show="this.poepleinfo.userId!=undefined">
- <span>合伙人级别:</span>
- <span>重要合伙人</span>
- </p>-->
</div>
- <p class="illustrate">说明:对当前评分,权重占{{this.poepleinfo.weight}}%,评分范围(100分制)±50</p>
- <div v-if="this.poepleinfo.assessmentScoreVO==null" class="todetails">
+ <p class="illustrate">说明:对当前评分,权重占{{this.poepleinfo.weight}}%,评分范围(100分制)±50</p>
+ <div v-if="this.poepleinfo.isAssessmentOk==false" class="todetails">
<p class="title">评分</p>
<van-field
v-model="score"
@@ -47,7 +39,7 @@
<van-field v-model="instructions" rows="3" type="textarea" placeholder="请描述" />
<van-button type="primary" block @click="submit()" :disabled="disabledsubmit">提交</van-button>
</div>
- <div v-if="this.poepleinfo.assessmentScoreVO!=null" class="showdetails">
+ <div v-if="this.poepleinfo.isAssessmentOk==true" class="showdetails">
<p>
<span class="title">评分值:</span>
<span class="fraction">{{this.poepleinfo.assessmentScoreVO.scoreVal}}</span>
@@ -68,9 +60,7 @@
export default {
data() {
return {
- poepleinfo: {
- name: this.$route.query.name
- },
+ poepleinfo: {},
score: null,
show: false,
instructions: "",
@@ -92,10 +82,10 @@
} else if (parseFloat(this.score) < 50) {
this.$toast.fail("低于评分范围");
} else {
- if (this.poepleinfo.userId != undefined) {
- beId = this.poepleinfo.userId;
+ if (this.poepleinfo.assessmentTaskVO.type == 0) {
+ beId = this.poepleinfo.assessmentSetVO.userId;
} else {
- beId = this.poepleinfo.deptId;
+ beId = this.poepleinfo.assessmentSetVO.deptId;
}
let Data = {
scoreUserId: localStorage.getItem("tokensave"),
@@ -104,8 +94,7 @@
type: this.poepleinfo.assessmentTaskVO.type,
assessmentTaskId: this.poepleinfo.assessmentTaskVO.id,
beId: beId,
- weight: this.poepleinfo.weight,
- rangeVal: this.poepleinfo.rangeVal
+ weight: this.poepleinfo.weight
};
if (Data.scoreVal == "") {
this.$toast.fail("请输入评分");
@@ -115,7 +104,7 @@
this.disabledsubmit = true;
assessmentScore(Data).then(res => {
setTimeout(() => {
- this.$router.push("/");
+ this.$router.push("/examine");
}, 1000);
this.$toast.success("评分成功");
});
diff --git a/vue.config.js b/vue.config.js
index 5bc916c..cfff906 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -127,9 +127,10 @@
proxy: {
"/api": {
// target用于配置你允许访问数据的计算机名称,即是你的api接口的服务器地址
- // target: "http://127.0.0.1",
+ target: "http://127.0.0.1:8111",
// target: "https://132v69t077.yicp.fun",
- target: "http://139.196.94.172:8111",
+ // target: "http://139.196.94.172:8111",
+ // target: 'http://192.168.1.83:2888',
changeOrigin: true,
pathRewrite: {
"^/api": "/"
--
Gitblit v1.9.3