Browse Source

个人中心信息

dev
超级管理员 3 years ago
parent
commit
042f17cf49
  1. 23
      README.md
  2. 2
      package.json
  3. 414
      src/api/people/peopledata.js
  4. 57
      src/api/personnel/post.js
  5. 9
      src/api/systemaccredit/systemapi.js
  6. 51
      src/api/systemaccredit/systemhrapi.js
  7. 75
      src/api/time/dateval.js
  8. 2
      src/main.js
  9. 12
      src/router/index.js
  10. 4
      src/views/assessmentProgram/gwQualitativeIndicators.vue
  11. 2
      src/views/assessmentProgram/rules.vue
  12. 2
      src/views/basicCont/departTarget.vue
  13. 2
      src/views/echarts/total.vue
  14. 1080
      src/views/hr/newhr/addpeople.vue
  15. 92
      src/views/hr/newhr/appraisalrecords.vue
  16. 91
      src/views/hr/newhr/competence.vue
  17. 44
      src/views/hr/newhr/content/info.vue
  18. 154
      src/views/hr/newhr/doubleemployees.vue
  19. 151
      src/views/hr/newhr/emergencycontact.vue
  20. 91
      src/views/hr/newhr/employmentrelationship.vue
  21. 164
      src/views/hr/newhr/familymembers.vue
  22. 11
      src/views/hr/newhr/introducevue.js
  23. 1138
      src/views/hr/newhr/people.vue
  24. 258
      src/views/hr/newhr/peoplecont.vue
  25. 288
      src/views/hr/newhr/peopleinfor.vue
  26. 157
      src/views/hr/newhr/personneleducation.vue
  27. 91
      src/views/hr/newhr/rewpunireco.vue
  28. 91
      src/views/hr/newhr/talentreview.vue
  29. 109
      src/views/hr/newhr/workhistory.vue
  30. 17
      src/views/hr/organization.vue
  31. 17
      src/views/hr/position.vue
  32. 11
      src/views/hr/team.vue
  33. 18
      src/views/personnel/post/index.vue
  34. 594
      src/views/personnel/post/position.vue
  35. 34
      src/views/purview/manage.vue
  36. 10
      src/views/purview/rolepower.vue

23
README.md

@ -1,3 +1,26 @@
# kpi_vue_pc
绩效考核PC端
### 金蝶图片处理方法
1、原始值
```
/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a\r\nHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy\r\nMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAB4AGQDASIA\r\nAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA\r\nAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3\r\nODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm\r\np6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA\r\nAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx\r\nBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK\r\nU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3\r\nuLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iii\r\ngAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiuK8afE3RfBhEM+65vCM+RERkfU9q8s\r\n1L9ojUpfMXTtLtoBkbTIS5Az+A9aAPoiivnSy/aJ1aIQrdaTbTgMfMcMVZhnjHYHHtXVJ+0LoTzq\r\ng0m9CFsFyy8DjnH50WA9horN0fX9L161W50y9huI2GfkbkfUda0qACiiigAooooAKKKKACvNfi94\r\n/n8IaRFaad5f268DDeSCYk6E4znPPB6cGvSq+N/G+pX3iXxxfzzyO7GYxxgrjYgOFAHYYoA5ue5u\r\ntQuGklkeWRjyTyTWtp/g/Vb6MSCHYh6F+K6/QfDUNqql0DMeQxFd9Y28SxqCOg5riqYuztE76eDu\r\nryPJofhvrMr4xGBjPLVU1TwPrWmAu1uZYx1aPkV77FEkZGBjj0qd7VHjJOMnsalYqZTwsD578KeI\r\n77wrrkN/b8SRHlWHUHqK+uPDmvWviXQ7bVLQ/u5l5U9VYdRXhPj7wnFc6c19bRKlzB8x2jG9e4rq\r\n/gLqvm6Pf6UyyboHEoJOVw3B7cHj1NddKqqkbo46tJ03Y9gooorQyCiiigAooooARlDKVPQjBr5B\r\nuNOksfGd/ZlQGguJFYAYxhiK+v68I+IPh5NJ+Icmp7D9m1FFkzjgOMhh/I/jUVHaLNKSvNGfbXq+\r\nXFFDH5jg9DwK37N7yKbzJ7B44iP9YrBl/H0rmpNAu7jUVnspmjhOPuqCf1rq9Pt7rT7SQ3OpTz5J\r\n2q4TGMcDgfrXm8sbHqXka0d1HcQwsqEDndx6VKNQjuUEcNtI7DrjA/nVbQZPO0l4jgsSV3d6zIdH\r\n1a01PdFqckaDO5PKVt47cnkU4aikjWmiS8tpYnjIyCCrDmsr4K2Mtvq2vuMeRGwh6dWDHv8AQH8x\r\nW7bi5SLF08byAfeRSufwya3PAelHTdHupGUA3d5LOP8AdLYH6DP4104bRuxyYnZHU0UUV1nGFFFF\r\nABRRRQAV598WkB0GxkI+7dYz6ZU/4V6DXMfEGxS+8FagGdEaBPPRnIABXnGT6jI/Gk1dFRdpJnEa\r\nA6yW6bSOnftTPFp+xadCsQIeeUIZOy9//rfjWJ4Xvz5WD9a19V1xY0XzxhG+VQR1NeW0k7WPYTbs\r\nyx4VvbRdHbdMdyNhmxkA5xW+syysY5gN6n5Hx1FYGj6qsdoqi2mWIdcQnn3rZe7tryJfKcM6Y5HU\r\nZ7GrtbUmSd9S7MuWVVHLcV2kUawxJGgAVQAAK47SUa51GBOysGb8Oa7SurD7NnDinqkFFFFdByhR\r\nRRQAUVxHi74oaL4R1A6fNFcXV4FDPHCBhM9AxJ6kc8Zrz7Xvj1fywGLRNKjtXPWa4fzCPouAPzzV\r\nKDZLkke8V4n8cPHWmS6B/wAI3pt3Hc3M8qtcmF9yxopyFJHGS2OO2Oe1eXan4/8AFWs20i3mt3jR\r\nygrJGj7EI9Nq4GKwYrYSISRnNWqbuS6iOl8IeINsqRTPyDg5r0GWKDV5FBfKg5BU9DXjCWksM6yw\r\nN8wPavR/D8d9NBHcRo+GGC0RHOPVT3+lcOJw7i+Y9DC4hSXKeiafZFAsf2mQADocY/lU17tgdW+U\r\nMBjPqKyrCK8chSbgkdyuKzfG2pLpFglmj7tRvPlUA58tP4nJ+nT3rmUJTaijpnVUU5M1tE+Iul6V\r\nrFzFeRSNBsCrPGN2GzyMenTn2rvtK8a+HNaYJZavbNIeBE7bHJ/3WwT+FfNKjaKy5gY7n5eAen+F\r\ne59VjCKSPB+tSnNtn2RRXyhpfi7X9ElX7Fql1HH2TeWX8VPBr0XQvjVdwsket2aXEXea3G1x7leh\r\n/Ss5UJLY0VaL3PaqKxdN8W6Dq1kl3a6pbeW3aSQIwPoQcGisrM05kfIs11dX80l1dzyTzync8srF\r\nmY+5PJpChwM0sC/IvsKsrGGBY/QV2qOhyOWpmonzTJjjINX7H/j3Q+oNQop+1Sj2FSQsLe2w5IKg\r\nnCjtmiKswbuiyAI8kDJNbHh3xNd6BeCSIGWFiBNAeVcf0Poa57z2kl8qNQMrnc57UtqUcEku/ue/\r\n07CiVpaCjeOqPoOPxT4e/sX+1fNxEB8y7TuVv7pA715JretSa7qz6i/yRE7YkIxtXt9TVDw/fxWu\r\npRSXFrHcWzHDQOThsMP16DPoTTL+2A1GZmVkyxGw9vQYrKlRUamhtWrOULMeD19KozkNNjsT+VKA\r\nUkZQxA9M8Uq88jrnqa7HqcaViAf6xoz+GakUlVKn8aimB87d6c1YADrkelSkU2S29w8MWwdM0VGv\r\nA60VauiXYu+FfD48QySILkQBV4YrnJOT0z6A1rzeCryGKIrPAyyIXG7K44Bx068iiivmcXmFejiX\r\nCL006eR6EKMJRuzOTwlfC5EjtAEc7PkYsQOTnp/+skVe1HwlCunyPDLIJo0LfvMFXwCSOBx90469\r\nKKKKWPrVEm2enh8DRlRnOS1V/wAFc4ooyQq+MvCSpHqP/wBVWUdTHmMDDDOR3oor30eEy1p8e61R\r\nyM7ZSD9Dx/hXUeIbXTLdNPFnNI92Yc3iuDhX9uOnX8AKKKqK99GcpPlaOXClpnPvToxgj0JxRRWx\r\nDGSICTz14ptucqVxlh70UVL3GtibyyaKKKsm5//Z
```
2、去除 \r\n 字符
3、添加base64头
```
data:image/jpeg;base64,
```
4、处理后的效果
```
data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCAB4AGQDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiuK8afE3RfBhEM+65vCM+RERkfU9q8s1L9ojUpfMXTtLtoBkbTIS5Az+A9aAPoiivnSy/aJ1aIQrdaTbTgMfMcMVZhnjHYHHtXVJ+0LoTzqg0m9CFsFyy8DjnH50WA9horN0fX9L161W50y9huI2GfkbkfUda0qACiiigAooooAKKKKACvNfi94/n8IaRFaad5f268DDeSCYk6E4znPPB6cGvSq+N/G+pX3iXxxfzzyO7GYxxgrjYgOFAHYYoA5ue5utQuGklkeWRjyTyTWtp/g/Vb6MSCHYh6F+K6/QfDUNqql0DMeQxFd9Y28SxqCOg5riqYuztE76eDuryPJofhvrMr4xGBjPLVU1TwPrWmAu1uZYx1aPkV77FEkZGBjj0qd7VHjJOMnsalYqZTwsD578KeI77wrrkN/b8SRHlWHUHqK+uPDmvWviXQ7bVLQ/u5l5U9VYdRXhPj7wnFc6c19bRKlzB8x2jG9e4rq/gLqvm6Pf6UyyboHEoJOVw3B7cHj1NddKqqkbo46tJ03Y9gooorQyCiiigAooooARlDKVPQjBr5BuNOksfGd/ZlQGguJFYAYxhiK+v68I+IPh5NJ+Icmp7D9m1FFkzjgOMhh/I/jUVHaLNKSvNGfbXq+XFFDH5jg9DwK37N7yKbzJ7B44iP9YrBl/H0rmpNAu7jUVnspmjhOPuqCf1rq9Pt7rT7SQ3OpTz5J2q4TGMcDgfrXm8sbHqXka0d1HcQwsqEDndx6VKNQjuUEcNtI7DrjA/nVbQZPO0l4jgsSV3d6zIdH1a01PdFqckaDO5PKVt47cnkU4aikjWmiS8tpYnjIyCCrDmsr4K2Mtvq2vuMeRGwh6dWDHv8AQH8xW7bi5SLF08byAfeRSufwya3PAelHTdHupGUA3d5LOP8AdLYH6DP4104bRuxyYnZHU0UUV1nGFFFFABRRRQAV598WkB0GxkI+7dYz6ZU/4V6DXMfEGxS+8FagGdEaBPPRnIABXnGT6jI/Gk1dFRdpJnEaA6yW6bSOnftTPFp+xadCsQIeeUIZOy9//rfjWJ4Xvz5WD9a19V1xY0XzxhG+VQR1NeW0k7WPYTbsyx4VvbRdHbdMdyNhmxkA5xW+syysY5gN6n5Hx1FYGj6qsdoqi2mWIdcQnn3rZe7tryJfKcM6Y5HUZ7GrtbUmSd9S7MuWVVHLcV2kUawxJGgAVQAAK47SUa51GBOysGb8Oa7SurD7NnDinqkFFFFdByhRRRQAUVxHi74oaL4R1A6fNFcXV4FDPHCBhM9AxJ6kc8Zrz7Xvj1fywGLRNKjtXPWa4fzCPouAPzzVKDZLkke8V4n8cPHWmS6B/wAI3pt3Hc3M8qtcmF9yxopyFJHGS2OO2Oe1eXan4/8AFWs20i3mt3jRygrJGj7EI9Nq4GKwYrYSISRnNWqbuS6iOl8IeINsqRTPyDg5r0GWKDV5FBfKg5BU9DXjCWksM6ywN8wPavR/D8d9NBHcRo+GGC0RHOPVT3+lcOJw7i+Y9DC4hSXKeiafZFAsf2mQADocY/lU17tgdW+UMBjPqKyrCK8chSbgkdyuKzfG2pLpFglmj7tRvPlUA58tP4nJ+nT3rmUJTaijpnVUU5M1tE+Iul6VrFzFeRSNBsCrPGN2GzyMenTn2rvtK8a+HNaYJZavbNIeBE7bHJ/3WwT+FfNKjaKy5gY7n5eAen+Fe59VjCKSPB+tSnNtn2RRXyhpfi7X9ElX7Fql1HH2TeWX8VPBr0XQvjVdwsket2aXEXea3G1x7leh/Ss5UJLY0VaL3PaqKxdN8W6Dq1kl3a6pbeW3aSQIwPoQcGisrM05kfIs11dX80l1dzyTzync8srFmY+5PJpChwM0sC/IvsKsrGGBY/QV2qOhyOWpmonzTJjjINX7H/j3Q+oNQop+1Sj2FSQsLe2w5IKgnCjtmiKswbuiyAI8kDJNbHh3xNd6BeCSIGWFiBNAeVcf0Poa57z2kl8qNQMrnc57UtqUcEku/ue/07CiVpaCjeOqPoOPxT4e/sX+1fNxEB8y7TuVv7pA715JretSa7qz6i/yRE7YkIxtXt9TVDw/fxWupRSXFrHcWzHDQOThsMP16DPoTTL+2A1GZmVkyxGw9vQYrKlRUamhtWrOULMeD19KozkNNjsT+VKAUkZQxA9M8Uq88jrnqa7HqcaViAf6xoz+GakUlVKn8aimB87d6c1YADrkelSkU2S29w8MWwdM0VGvA60VauiXYu+FfD48QySILkQBV4YrnJOT0z6A1rzeCryGKIrPAyyIXG7K44Bx068iiivmcXmFejiXCL006eR6EKMJRuzOTwlfC5EjtAEc7PkYsQOTnp/+skVe1HwlCunyPDLIJo0LfvMFXwCSOBx90469KKKKWPrVEm2enh8DRlRnOS1V/wAFc4ooyQq+MvCSpHqP/wBVWUdTHmMDDDOR3oor30eEy1p8e61RyM7ZSD9Dx/hXUeIbXTLdNPFnNI92Yc3iuDhX9uOnX8AKKKqK99GcpPlaOXClpnPvToxgj0JxRRWxDGSICTz14ptucqVxlh70UVL3GtibyyaKKKsm5//Z
```

2
package.json

@ -18,6 +18,7 @@
"core-js": "^3.20.2",
"echarts": "^5.3.2",
"element-ui": "2.15.6",
"font-awesome": "^4.7.0",
"js-cookie": "2.2.0",
"normalize.css": "7.0.0",
"nprogress": "0.2.0",
@ -27,6 +28,7 @@
"vuex": "3.1.0"
},
"devDependencies": {
"@fortawesome/fontawesome-free": "^6.2.1",
"@vue/cli-plugin-babel": "4.4.4",
"@vue/cli-plugin-eslint": "4.4.4",
"@vue/cli-plugin-unit-jest": "4.4.4",

414
src/api/people/peopledata.js

@ -0,0 +1,414 @@
//性别
const sexData=[
{
id:1,
tittle:'男'
},
{
id:2,
tittle:'女'
},
];
// 用工关系选择列表
const emptypeList=[
{
id:1,
tittle:'临时工'
},
{
id:2,
tittle:'编外人员'
},
{
id:3,
tittle:'实习&实习生'
},
{
id:4,
tittle:'试用员工'
},
{
id:5,
tittle:'待分配'
},
{
id:6,
tittle:'待岗'
},
{
id:7,
tittle:'临时调入'
},
{
id:8,
tittle:'正式员工'
},
{
id:9,
tittle:'长期病假'
},
{
id:10,
tittle:'停薪留职'
},
{
id:11,
tittle:'退休'
},
{
id:12,
tittle:'辞职'
},
{
id:13,
tittle:'辞退'
},
{
id:14,
tittle:'离职'
},
];
// 星座列表
const constellationList = [
{
id:1,
tittle:'白羊座'
},
{
id:2,
tittle:'金牛座'
},
{
id:3,
tittle:'双子座'
},
{
id:4,
tittle:'巨蟹座'
},
{
id:5,
tittle:'狮子座'
},
{
id:6,
tittle:'处女座'
},
{
id:7,
tittle:'天枰座'
},
{
id:8,
tittle:'天蝎座'
},
{
id:9,
tittle:'射手座'
},
{
id:10,
tittle:'摩羯座'
},
{
id:11,
tittle:'水瓶座'
},
{
id:12,
tittle:'双鱼座'
},
];
// 婚姻状态列表
const marriageList=[
{
id:1,
tittle:'未婚'
},
{
id:2,
tittle:'已婚'
},
{
id:3,
tittle:'丧偶'
},
{
id:4,
tittle:'离异'
},
];
// 健康状况列表
const healthList=[
{
id:1,
tittle:'良好'
},
{
id:2,
tittle:'一般'
},
{
id:3,
tittle:'较弱'
},
{
id:4,
tittle:'有生理缺陷'
},
{
id:5,
tittle:'残废'
},
];
// 政治面貌列表
const politicsList=[
{
id:1,
tittle:'群众'
},
{
id:2,
tittle:'无党派'
},
{
id:3,
tittle:'台盟会员'
},
{
id:4,
tittle:'九三社员'
},
{
id:5,
tittle:'致公党员'
},
{
id:6,
tittle:'农工党员'
},
{
id:7,
tittle:'民进会员'
},
{
id:8,
tittle:'民建会员'
},
{
id:9,
tittle:'民盟盟员'
},
{
id:10,
tittle:'民革会员'
},
{
id:11,
tittle:'共青团员'
},
{
id:12,
tittle:'预备党员'
},
{
id:13,
tittle:'中共党员'
},
];
// 教育经历列表
const educationList=[
{
id:1,
tittle:'初中及以下'
},
{
id:2,
tittle:'中专'
},
{
id:3,
tittle:'高中'
},
{
id:4,
tittle:'中技'
},
{
id:5,
tittle:'高技'
},
{
id:6,
tittle:'函数专科'
},
{
id:7,
tittle:'大学专科'
},
{
id:8,
tittle:'函数本科'
},
{
id:9,
tittle:'大学本科'
},
{
id:10,
tittle:'硕士研究生'
},
{
id:11,
tittle:'博士研究生'
},
{
id:12,
tittle:'专家、教授'
},
];
//雇佣类型
const employmentType = [
{
id:1,
tittle:'雇佣入职'
},
{
id:2,
tittle:'再入职'
}
];
//入职等级
const positiongrade = [
{
id:1,
tittle:'一级'
},
{
id:2,
tittle:'二级'
},
{
id:3,
tittle:'三级'
}
];
//注册定义的方法
export const peopleMethod= {
sexData,
emptypeList,
constellationList,
marriageList,
healthList,
politicsList,
educationList,
employmentType,
positiongrade
};
//date 当前日期,num 几个月
export function getNtoMonth(date, num) {
if (!date || !num) return;
var num1 = parseInt(num);
var d = new Date(date);
var thisMonth = d.getMonth() + 1;
var thisYear = d.getFullYear();
var thisDay = d.getDate();
var dateStr = "";
var addCount = thisMonth + num1;
var diffMonthCount = parseInt(addCount / 12); //取整
if ((thisMonth + num1) === 12 * diffMonthCount) { //如果是本年
if ((thisMonth + num1) === 12) {
diffMonthCount = 0;
} else {
diffMonthCount = diffMonthCount - 1;
}
}
if (thisMonth + num1 > 12) { //如果是大于一年
thisYear += diffMonthCount;
}
thisMonth = (addCount) - 12 * diffMonthCount;
if (thisMonth < 10) {
thisMonth = "0" + thisMonth;
}
var thatDate = new Date(thisYear, thisMonth, 0); //当天数为0 js自动处理为上一月的最后一天
var thatDay = thatDate.getDate();//指定年月的当月最大天数
let m1 = date.substring(5, 7);
if (thisDay === 30 || thisDay === 31 || (m1 === "02" && thisDay >= 28)) {
thisDay = thatDay;
console.log("thisYear------------->",thisYear,thisDay,date)
if (date) {
let m2 = date.substring(5, 10);
// 成立日为2月份,且期限为整年的判断闰年
if (m2 === "02-28" && num % 12 === 0) {
if (!(thisYear % (thisYear % 100 ? 4 : 400))) {
thisDay = "29";
}
}
console.log("thisYear-------1------>",thisYear,thisMonth,thisDay,date,m2,num)
}
dateStr = thisYear + "-" + thisMonth + "-" + thisDay;
} else {
console.log("thisYear-------2------>",thisYear,thisDay,date,m1)
dateStr = addMonth2(date, num);
}
return dateStr;
}
function addMonth2(date, num) {
var monthnum = 0;
if (typeof (num) === "string") { monthnum = parseInt(num); } else { monthnum = num; }
if (typeof (date) === "string") { date = new Date(date); }
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
var sumMonths = month + monthnum;
var newyear = year + parseInt(sumMonths / 12);
var newmonth = sumMonths % 12;
var newday = day;
if (newmonth < 1) {
if (newmonth === 0) newyear--;
newmonth = 0 - (sumMonths - 1) % 12;
}
var da = new Date(newyear, newmonth, 0);
var newDayMax = da.getDate()
// if()
// console.log("thisYear-------4---1--->",newyear)
// console.log("thisYear-------4---2--->",newmonth)
// console.log("thisYear-------4---3--->",newday)
// console.log("thisYear-------4---4--->",date)
// console.log("thisYear-------4---5--->",da)
// console.log("thisYear-------4---6--->",year)
// console.log("thisYear-------4---7--->",month)
// console.log("thisYear-------4---8--->",day)
// console.log("thisYear-------4---9--->",newDayMax)
return newyear + "-" + newmonth + "-" + (da.getDate() < newday ? da.getDate() : newday);
};
//判断是不是数组
export function judgeArray(ary){
if(ary.isArray){
return true;
}else{
if (Object.prototype.toString.call(ary) === '[object Array]') {
return true;
}
}
return false;
};

57
src/api/personnel/post.js

@ -31,6 +31,14 @@ export const positionlist = (data) => {
data: data
})
}
//职位(岗位)列表本岗位
export const positionlistIsMe = (data) => {
return request({
url: '/org/get_my_posit_list',
method: 'post',
data: data
})
}
//编辑职位(岗位)
export const eitepositioncont = (data) => {
return request({
@ -64,14 +72,14 @@ export const govthree = (data) => {
if(data){
// let dataJsonKeys=Object.keys(dataJson);
let keys=Object.keys(data);
console.log('-------------------->key:',data,'value:',keys);
// console.log('-------------------->key:',data,'value:',keys);
keys.forEach((items) => {
console.log('------------12-------->key:',items,'value:',data[items]);
// console.log('------------12-------->key:',items,'value:',data[items]);
dataJson[items] = data[items]
})
}
console.log('------------END-------->key:',dataJson,'value:',dataJson);
// console.log('------------END-------->key:',dataJson,'value:',dataJson);
return request({
url: '/org/govthree',
method: 'post',
@ -305,3 +313,46 @@ export const eiteteamcont = (data) => {
}
//行政组织树编辑用
export const orgThreeList = (data) => {
return request({
url: '/org/govthreeing',
method: 'post',
data: data
})
}
//根据行政组织获取岗位
export const getOrgPostList = (data) => {
return request({
url: '/org/basis_org_postList',
method: 'post',
data: data
})
}
//添加职位(岗位)新版
export const addpositioncontnew = (data) => {
return request({
url: '/org/addpositioncontnew',
method: 'post',
data: data
})
}
//添加职位(岗位)新版
export const editpositioncontnew = (data) => {
return request({
url: '/org/eitepositioncontnew',
method: 'post',
data: data
})
}
//添加人员信息(新版)
export const newAddPeopleCont = (data) => {
return request({
url: '/staff/add_people_cont',
method: 'post',
data: data
})
}

9
src/api/systemaccredit/systemapi.js

@ -91,3 +91,12 @@ export const delAboutPeople = (data) => {
data: data
})
}
//添加角色相关人员
export const addAboutPeople = (data) => {
return request({
url: '/powerpc/add_role_user',
method: 'post',
data: data
})
}

51
src/api/systemaccredit/systemhrapi.js

@ -18,3 +18,54 @@ export const getOrgAndManSearchlist = (data) => {
data: data
})
}
//获取人员基本信息
export const getOnlyOnePeopleCont = (data) => {
return request({
url: '/staff/get_archives_cont',
method: 'post',
data: data
})
}
//获取人员主信息
export const getOnlyOnePeopleMainCont = (data) => {
return request({
url: '/staff/get_people_main_cont',
method: 'post',
data: data
})
}
//获取紧急联系人列表
export const getEmergencyContactList = (data) => {
return request({
url: '/staff/emergencycontactlist',
method: 'post',
data: data
})
}
//获取双职工列表
export const getDoubleWorkerList = (data) => {
return request({
url: '/staff/doubleworkerlist',
method: 'post',
data: data
})
}
//获取家庭成员列表
export const getFamilyList = (data) => {
return request({
url: '/staff/familymemberslist',
method: 'post',
data: data
})
}
//获取教育经历列表
export const getPersonneleDucationlist = (data) => {
return request({
url: '/staff/personneleducationlist',
method: 'post',
data: data
})
}

75
src/api/time/dateval.js

@ -0,0 +1,75 @@
/**
@ 作者: 秦东
@ 时间: 2022-11-25 11:10:03
@ 功能: 计算N个月后的时间
@ 参数
#date 当前时间 格式2022-11-25
#num 几个月
@ 返回值
#计算后的时间
@ 方法原型
#function calculationDate(date,num)
*/
export function calculationDate(date,num){
console.log("date------123------>",date)
if (!date || !num) return;
if(date == "" || date == null) return;
var numInt = parseInt(num);
var oldDate = new Date(date);
//计算年月日
var oldYear = oldDate.getFullYear();
var oldMonth = oldDate.getMonth() + 1;
var oldDay = oldDate.getDate();
var guDuMonth = oldMonth + numInt;
var diffMonthCount = parseInt(guDuMonth / 12); //取整
//修正差异月数值
if(guDuMonth === 12 * diffMonthCount){ //如果是当前年
if (guDuMonth === 12){
diffMonthCount = 0
}else{
diffMonthCount = diffMonthCount - 1;
}
}
var newYear = oldYear
if(guDuMonth > 12){ //判断计算后的月份是否超过12月
newYear = oldYear + diffMonthCount;
}
var newMonth = guDuMonth - 12 * diffMonthCount
var thatDate = new Date(newYear, newMonth, 0); //当天数为0 js自动处理为上一月的最后一天
var thatDay = thatDate.getDate();//指定年月的当月最大天数
let newDay = thatDay;
let originalDate = date.substring(5, 7);
let dateStr = newYear + "-" + newMonth + "-" + oldDay;
// console.log("时间-----》",oldDay,thatDay)
if(oldDay > thatDay){ //判断源日期天是否大于目标日期天
let differenceDay = oldDay - thatDay;
if(differenceDay > 0){
newMonth++;
newDay = differenceDay
}else if(differenceDay < 0){
newMonth--;
var lastMonthDate = new Date(newYear, newMonth, 0);
newDay = lastMonthDate + differenceDay
}else{
newMonth--;
newDay = new Date(newYear, newMonth, 0);
}
dateStr = newYear + "-" + newMonth + "-" + newDay;
}else{
newDay = oldDay
}
if(newMonth < 10){
newMonth = "0" + newMonth;
}
if(newDay < 10){
newDay = "0" + newDay;
}
return {
newYear:newYear,
newMonth:newMonth,
newDay:newDay
};
}

2
src/main.js

@ -13,6 +13,8 @@ import App from './App'
import store from './store'
import router from './router'
import 'font-awesome/css/font-awesome.min.css'
// import 'handsontable/dist/handsontable.full.css';
import '@/icons' // icon
// import '@/permission' // permission control

12
src/router/index.js

@ -136,7 +136,8 @@ export const constantRoutes = [
// UserHome 将被渲染到 User 的 <router-view> 内部
{
path: 'post',
component: () => import('@/views/personnel/post/index'),
// component: () => import('@/views/personnel/post/index'),
component: () => import('@/views/personnel/post/position'),
meta: { title: '岗位管理'}
},
@ -151,7 +152,8 @@ export const constantRoutes = [
// UserHome 将被渲染到 User 的 <router-view> 内部
{
path: 'personnel',
component: () => import('@/views/hr/personnel.vue'),
// component: () => import('@/views/hr/personnel.vue'),
component: () => import('@/views/hr/newhr/people.vue'),
meta: { title: '人员管理'}
},
{
@ -176,6 +178,12 @@ export const constantRoutes = [
component: () => import('@/views/hr/team.vue'),
meta: { title: '班组管理'}
},
{
path: 'employeeinformation',
component: () => import('@/views/hr/newhr/peoplecont.vue'),
meta: { title: '人员详情'}
},
],
},
// 数据提报

4
src/views/assessmentProgram/gwQualitativeIndicators.vue

@ -605,9 +605,9 @@
</div>
</template>
</el-table-column> -->
<el-table-column prop="SonTargetTitle" label="考核项目" width="80">
<el-table-column prop="sontargettitle" label="考核项目" width="80">
<template #default="scope">
{{scope.row.SonTargetTitle}}
{{scope.row.sontargettitle}}
</template>
</el-table-column>
<!-- <el-table-column prop="targetsunname" label="权重"></el-table-column> -->

2
src/views/assessmentProgram/rules.vue

@ -101,7 +101,7 @@
:value="item">
</el-option>
</el-select>
</el-form-item>
</el-form-item>
</el-form>
<template #footer>

2
src/views/basicCont/departTarget.vue

@ -369,7 +369,7 @@
</el-dialog>
</div>
</template>
acceptdepartmentid
<script>
import { positionlist } from "@/api/personnel/post"; //
import { dutyclasslist } from '@/api/duty/dimension' //api

2
src/views/echarts/total.vue

@ -93,7 +93,7 @@
<template #default="scope">
<el-collapse>
<el-collapse-item title="详情">
<div v-for="(iteam,index) in scope.row.executivedepartment">
<div v-for="(iteam,index) in scope.row.executivedepartment" :key="index">
{{iteam}}
</div>
</el-collapse-item>

1080
src/views/hr/newhr/addpeople.vue

File diff suppressed because it is too large

92
src/views/hr/newhr/appraisalrecords.vue

@ -0,0 +1,92 @@
<template>
<el-scrollbar >
<el-row class="title_body">
<el-col :span="20">
<span class="cont_header_title"><i class="el-icon-s-order"></i>考评记录</span>
</el-col>
<el-col :span="4" class="edit_buttion">
<el-button
icon="el-icon-plus"
size="small"
type="text"
@click="showAddBase(userKey)"
>新增</el-button>
</el-col>
</el-row>
<el-divider style="margin:0"></el-divider>
<el-row>
<el-col :span="24" class="cont_body">
<div class="fa fa-automobile">123243</div>
</el-col>
</el-row>
</el-scrollbar>
</template>
<script>
export default {
name:"familymembers",
props:['userKey'],
data() {
return {}
},
created(){
console.log("userKey---------->",this.userKey)
},
methods:{
//
showAddBase(val){
console.log("新增信息--------->",val)
},
}
}
</script>
<style>
.el-scrollbar {
height: 100%;
width: 100%;
}
.el-scrollbar__wrap {
overflow: auto;
overflow: scroll;
overflow-x: hidden;
}
.el-tree-node.is-current>.el-tree-node__content {
color:#2E89DE!important
}
.el-tree-node_black {
background-color:red !important;
color:#2E89DE!important
}
div::-webkit-scrollbar {
width: 5px;
height: 5px;
}
div::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
opacity: 0.2;
}
div::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
border-radius: 0;
}
.title_body{
padding: 10px 0;
}
.cont_header_title{
font-size: 20px;
font-weight: bold;
color: #388CFF;
}
.cont_header_title i{
margin-right: 10px;
}
.edit_buttion{
text-align: right;
padding-right: 5px;
}
.cont_body{
margin-top: 20px;
}
</style>

91
src/views/hr/newhr/competence.vue

@ -0,0 +1,91 @@
<template>
<el-scrollbar >
<el-row class="title_body">
<el-col :span="20">
<span class="cont_header_title"><i class="el-icon-s-order"></i>能力素质</span>
</el-col>
<el-col :span="4" class="edit_buttion">
<el-button
icon="el-icon-plus"
size="small"
type="text"
@click="showAddBase(userKey)"
>新增</el-button>
</el-col>
</el-row>
<el-divider style="margin:0"></el-divider>
<el-row>
<el-col :span="24" class="cont_body">
</el-col>
</el-row>
</el-scrollbar>
</template>
<script>
export default {
name:"familymembers",
props:['userKey'],
data() {
return {}
},
created(){
console.log("userKey---------->",this.userKey)
},
methods:{
//
showAddBase(val){
console.log("新增信息--------->",val)
},
}
}
</script>
<style>
.el-scrollbar {
height: 100%;
width: 100%;
}
.el-scrollbar__wrap {
overflow: auto;
overflow: scroll;
overflow-x: hidden;
}
.el-tree-node.is-current>.el-tree-node__content {
color:#2E89DE!important
}
.el-tree-node_black {
background-color:red !important;
color:#2E89DE!important
}
div::-webkit-scrollbar {
width: 5px;
height: 5px;
}
div::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
opacity: 0.2;
}
div::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
border-radius: 0;
}
.title_body{
padding: 10px 0;
}
.cont_header_title{
font-size: 20px;
font-weight: bold;
color: #388CFF;
}
.cont_header_title i{
margin-right: 10px;
}
.edit_buttion{
text-align: right;
padding-right: 5px;
}
.cont_body{
margin-top: 20px;
}
</style>

44
src/views/hr/newhr/content/info.vue

@ -0,0 +1,44 @@
<template>
<el-descriptions class="margin-top" :column="6" direction="vertical">
<el-descriptions-item label="用户名">kooriookami</el-descriptions-item>
<el-descriptions-item label="手机号">18100000000</el-descriptions-item>
<el-descriptions-item label="居住地">苏州市</el-descriptions-item>
<el-descriptions-item label="备注">
<el-tag size="small">学校</el-tag>
</el-descriptions-item>
<el-descriptions-item label="联系地址">江苏省苏州市吴中区吴中大道 1188 </el-descriptions-item>
</el-descriptions>
</template>
<script>
export default {
name:"info",
props:['usercontsss'],
data() {
return {
mycont:{}
}
},
watch:{
// usercont:{
// handler(newVal){
// console.log("newVal");
// console.log(newVal);
// // const list = []
// // list.push(this.gwFromList.gwId.toString())
// this.mycont=this.usercontsss
// },
// deep: true
// },
},
created(){
console.log("usercont-----123332----->",this.usercontsss)
},
methods:{
}
}
</script>
<style>
</style>

154
src/views/hr/newhr/doubleemployees.vue

@ -0,0 +1,154 @@
<template>
<el-scrollbar >
<el-row class="title_body">
<el-col :span="20">
<span class="cont_header_title"><i class="el-icon-s-order"></i>双职工</span>
</el-col>
<el-col :span="4" class="edit_buttion">
<el-button
icon="el-icon-plus"
size="small"
type="text"
@click="showAddBase(userKey)"
>新增</el-button>
</el-col>
</el-row>
<el-divider style="margin:0"></el-divider>
<el-row>
<el-col :span="24" class="cont_body">
<template>
<el-table
:data="emergencyContactList"
border
style="width: 100%">
<el-table-column
prop="name"
label="姓名"
width="180">
</el-table-column>
<el-table-column
prop="tel"
label="联系电话"
width="180">
</el-table-column>
<el-table-column
label="部门">
<template #default="scope">
{{ scope.row.company }}<i v-if="scope.row.department"> / </i>{{ scope.row.department }}<i v-if="scope.row.position"> / </i>{{ scope.row.position }}
</template>
</el-table-column>
<el-table-column
width="130"
label="操作">
<template #default="scope">
<el-button
icon="el-icon-edit"
size="small"
type="text"
@click="showEditBase(scope.row)"
>编辑</el-button>
<el-button
icon="el-icon-delete"
size="small"
type="text"
@click="showDelBase(scope.row)"
>删除</el-button>
</template>
</el-table-column>
</el-table>
</template>
</el-col>
</el-row>
</el-scrollbar>
</template>
<script>
import { getDoubleWorkerList } from "@/api/systemaccredit/systemhrapi"
export default {
name:"emergencycontact",
props:['userKey'],
data() {
return {
emergencyContactList:[], //
}
},
created(){
console.log("userKey---------->",this.userKey)
this.getEmergencyContact()
},
methods:{
//
showAddBase(val){
console.log("编辑基本信息--------->",val)
},
//
async getEmergencyContact(){
let sendData = {
id:this.userKey
}
let res = await getDoubleWorkerList(sendData)
this.emergencyContactList = res.data
console.log("获取双职工信息--------->",res)
},
//
async showEditBase(val){
console.log("编辑--------->",val)
},
//
async showDelBase(val){
console.log("删除--------->",val)
},
}
}
</script>
<style>
.el-scrollbar {
height: 100%;
width: 100%;
}
.el-scrollbar__wrap {
overflow: auto;
overflow: scroll;
overflow-x: hidden;
}
.el-tree-node.is-current>.el-tree-node__content {
color:#2E89DE!important
}
.el-tree-node_black {
background-color:red !important;
color:#2E89DE!important
}
div::-webkit-scrollbar {
width: 5px;
height: 5px;
}
div::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
opacity: 0.2;
}
div::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
border-radius: 0;
}
.title_body{
padding: 10px 0;
}
.cont_header_title{
font-size: 20px;
font-weight: bold;
color: #388CFF;
}
.cont_header_title i{
margin-right: 10px;
}
.edit_buttion{
text-align: right;
padding-right: 5px;
}
.cont_body{
margin-top: 20px;
}
</style>

151
src/views/hr/newhr/emergencycontact.vue

@ -0,0 +1,151 @@
<template>
<el-scrollbar >
<el-row class="title_body">
<el-col :span="20">
<span class="cont_header_title"><i class="el-icon-s-order"></i>紧急联系人</span>
</el-col>
<el-col :span="4" class="edit_buttion">
<el-button
icon="el-icon-plus"
size="small"
type="text"
@click="showAddBase(userKey)"
>新增</el-button>
</el-col>
</el-row>
<el-divider style="margin:0"></el-divider>
<el-row>
<el-col :span="24" class="cont_body">
<template>
<el-table
:data="emergencyContactList"
border
style="width: 100%">
<el-table-column
prop="name"
label="姓名"
width="180">
</el-table-column>
<el-table-column
prop="tel"
label="联系电话"
width="180">
</el-table-column>
<el-table-column
prop="relationship"
label="与本人关系">
</el-table-column>
<el-table-column
width="130"
label="操作">
<template #default="scope">
<el-button
icon="el-icon-edit"
size="small"
type="text"
@click="showEditBase(scope.row)"
>编辑</el-button>
<el-button
icon="el-icon-delete"
size="small"
type="text"
@click="showDelBase(scope.row)"
>删除</el-button>
</template>
</el-table-column>
</el-table>
</template>
</el-col>
</el-row>
</el-scrollbar>
</template>
<script>
import { getEmergencyContactList } from "@/api/systemaccredit/systemhrapi"
export default {
name:"emergencycontact",
props:['userKey'],
data() {
return {
emergencyContactList:[], //
}
},
created(){
console.log("userKey---------->",this.userKey)
this.getEmergencyContact()
},
methods:{
//
showAddBase(val){
console.log("编辑基本信息--------->",val)
},
//
async getEmergencyContact(){
let sendData = {
id:this.userKey
}
let res = await getEmergencyContactList(sendData)
this.emergencyContactList = res.data
console.log("获取紧急联系人信息--------->",res)
},
//
async showEditBase(val){
console.log("编辑--------->",val)
},
//
async showDelBase(val){
console.log("删除--------->",val)
},
}
}
</script>
<style>
.el-scrollbar {
height: 100%;
width: 100%;
}
.el-scrollbar__wrap {
overflow: auto;
overflow: scroll;
overflow-x: hidden;
}
.el-tree-node.is-current>.el-tree-node__content {
color:#2E89DE!important
}
.el-tree-node_black {
background-color:red !important;
color:#2E89DE!important
}
div::-webkit-scrollbar {
width: 5px;
height: 5px;
}
div::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
opacity: 0.2;
}
div::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
border-radius: 0;
}
.title_body{
padding: 10px 0;
}
.cont_header_title{
font-size: 20px;
font-weight: bold;
color: #388CFF;
}
.cont_header_title i{
margin-right: 10px;
}
.edit_buttion{
text-align: right;
padding-right: 5px;
}
.cont_body{
margin-top: 20px;
}
</style>

91
src/views/hr/newhr/employmentrelationship.vue

@ -0,0 +1,91 @@
<template>
<el-scrollbar >
<el-row class="title_body">
<el-col :span="20">
<span class="cont_header_title"><i class="el-icon-s-order"></i>员工用工关系</span>
</el-col>
<el-col :span="4" class="edit_buttion">
<el-button
icon="el-icon-plus"
size="small"
type="text"
@click="showAddBase(userKey)"
>新增</el-button>
</el-col>
</el-row>
<el-divider style="margin:0"></el-divider>
<el-row>
<el-col :span="24" class="cont_body">
</el-col>
</el-row>
</el-scrollbar>
</template>
<script>
export default {
name:"familymembers",
props:['userKey'],
data() {
return {}
},
created(){
console.log("userKey---------->",this.userKey)
},
methods:{
//
showAddBase(val){
console.log("新增信息--------->",val)
},
}
}
</script>
<style>
.el-scrollbar {
height: 100%;
width: 100%;
}
.el-scrollbar__wrap {
overflow: auto;
overflow: scroll;
overflow-x: hidden;
}
.el-tree-node.is-current>.el-tree-node__content {
color:#2E89DE!important
}
.el-tree-node_black {
background-color:red !important;
color:#2E89DE!important
}
div::-webkit-scrollbar {
width: 5px;
height: 5px;
}
div::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
opacity: 0.2;
}
div::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
border-radius: 0;
}
.title_body{
padding: 10px 0;
}
.cont_header_title{
font-size: 20px;
font-weight: bold;
color: #388CFF;
}
.cont_header_title i{
margin-right: 10px;
}
.edit_buttion{
text-align: right;
padding-right: 5px;
}
.cont_body{
margin-top: 20px;
}
</style>

164
src/views/hr/newhr/familymembers.vue

@ -0,0 +1,164 @@
<template>
<el-scrollbar >
<el-row class="title_body">
<el-col :span="20">
<span class="cont_header_title"><i class="el-icon-s-order"></i>家庭成员</span>
</el-col>
<el-col :span="4" class="edit_buttion">
<el-button
icon="el-icon-plus"
size="small"
type="text"
@click="showAddBase(userKey)"
>新增</el-button>
</el-col>
</el-row>
<el-divider style="margin:0"></el-divider>
<el-row>
<el-col :span="24" class="cont_body">
<template>
<el-table
:data="contList"
border
style="width: 100%">
<el-table-column
prop="relationship"
label="亲属关系"
width="180">
</el-table-column>
<el-table-column
prop="name"
label="姓名"
width="180">
</el-table-column>
<el-table-column
prop="tel"
label="联系电话"
width="180">
</el-table-column>
<el-table-column
label="部门">
<template #default="scope">
{{ scope.row.company }}<i v-if="scope.row.deparment"> / </i>{{ scope.row.deparment }}<i v-if="scope.row.postnme"> / </i>{{ scope.row.postnme }}
</template>
</el-table-column>
<el-table-column
prop="politicaloutlookcn"
label="政治面貌"
width="180">
</el-table-column>
<el-table-column
width="130"
label="操作">
<template #default="scope">
<el-button
icon="el-icon-edit"
size="small"
type="text"
@click="showEditBase(scope.row)"
>编辑</el-button>
<el-button
icon="el-icon-delete"
size="small"
type="text"
@click="showDelBase(scope.row)"
>删除</el-button>
</template>
</el-table-column>
</el-table>
</template>
</el-col>
</el-row>
</el-scrollbar>
</template>
<script>
import { getFamilyList } from "@/api/systemaccredit/systemhrapi"
export default {
name:"familymembers",
props:['userKey'],
data() {
return {
contList:[], //
}
},
created(){
console.log("userKey---------->",this.userKey)
this.getEmergencyContact()
},
methods:{
//
showAddBase(val){
console.log("新增信息--------->",val)
},
//
async getEmergencyContact(){
let sendData = {
id:this.userKey
}
let res = await getFamilyList(sendData)
this.contList = res.data
console.log("获取列表信息--------->",res)
},
//
async showEditBase(val){
console.log("编辑--------->",val)
},
//
async showDelBase(val){
console.log("删除--------->",val)
},
}
}
</script>
<style>
.el-scrollbar {
height: 100%;
width: 100%;
}
.el-scrollbar__wrap {
overflow: auto;
overflow: scroll;
overflow-x: hidden;
}
.el-tree-node.is-current>.el-tree-node__content {
color:#2E89DE!important
}
.el-tree-node_black {
background-color:red !important;
color:#2E89DE!important
}
div::-webkit-scrollbar {
width: 5px;
height: 5px;
}
div::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
opacity: 0.2;
}
div::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
border-radius: 0;
}
.title_body{
padding: 10px 0;
}
.cont_header_title{
font-size: 20px;
font-weight: bold;
color: #388CFF;
}
.cont_header_title i{
margin-right: 10px;
}
.edit_buttion{
text-align: right;
padding-right: 5px;
}
.cont_body{
margin-top: 20px;
}
</style>

11
src/views/hr/newhr/introducevue.js

@ -0,0 +1,11 @@
export { default as peopleinfor } from "./peopleinfor.vue" //基本信息
export { default as emergencycontact } from "./emergencycontact.vue" //紧急联系人
export { default as doubleemployees } from "./doubleemployees.vue" //双职工
export { default as familymembers } from "./familymembers.vue" //家庭成员
export { default as personneleducation } from "./personneleducation.vue" //教育经历
export { default as workhistory } from "./workhistory.vue" //工作履历
export { default as employmentrelationship } from "./employmentrelationship.vue" //用工关系
export { default as rewpunireco } from "./rewpunireco.vue" //奖惩记录
export { default as competence } from "./competence.vue" //能力素质
export { default as talentreview } from "./talentreview.vue" //人才盘点
export { default as appraisalrecords } from "./appraisalrecords.vue" //考评记录

1138
src/views/hr/newhr/people.vue

File diff suppressed because it is too large

258
src/views/hr/newhr/peoplecont.vue

@ -0,0 +1,258 @@
<template>
<el-container>
<el-header style="height:120px;padding: 10px 0 0 10px;">
<el-row>
<el-col :span="2" style="text-align: right; padding-right:10px">
<el-avatar shape="square" fit="cover" :size="90" :src="peopleCont.icon" >
<i class="el-icon-s-custom icon_size"></i>
</el-avatar>
</el-col>
<el-col :span="14">
<el-row>
<el-col :span="24" class="mycont_one">
<span>{{ peopleCont.name }}</span> <a>工号{{ peopleCont.number }}</a>{{ peopleCont.positionname }}
</el-col>
</el-row>
<el-row>
<el-col class="col_text" :span="24">
{{ peopleCont.companyname }} <i v-if="peopleCont.maindeparmentname"> / </i>{{ peopleCont.maindeparmentname }} <i v-if="peopleCont.sunmaindeparmentname"> / </i>{{ peopleCont.sunmaindeparmentname }} <i v-if="peopleCont.workpostname"> / </i>{{ peopleCont.workpostname }}
</el-col>
</el-row>
<el-row>
<el-col class="col_text" :span="24">{{ peopleCont.joblevename }}{{ peopleCont.jobname }} {{ peopleCont.jobclassname }} <span>{{ peopleCont.teamname }}</span><span>TEL:{{ peopleCont.tel }}</span></el-col>
</el-row>
</el-col>
</el-row>
</el-header>
<el-container>
<el-aside width="140px">
<!--菜单-->
<el-menu
style="text-align:left"
default-active="1"
class="el-menu-vertical-demo">
<el-menu-item index="1" @click="clickMenu(1)">
<i class="font_icon fa fa-fw fa-address-card-o"></i>
<span slot="title">基本信息</span>
</el-menu-item>
<el-menu-item index="2" @click="clickMenu(2)">
<!-- <i class="font_icon fa fa-fw fa-address-book-o"></i> -->
<i class="font_icon fa fa-fw fa-volume-control-phone " ></i>
<span slot="title">紧急联系人</span>
</el-menu-item>
<el-menu-item index="3" @click="clickMenu(3)">
<i class="font_icon fa fa-fw fa-venus-mars"></i>
<span slot="title">双职工</span>
</el-menu-item>
<el-menu-item index="4" @click="clickMenu(4)">
<i class="font_icon fa fa-fw fa-home "></i>
<span slot="title">家庭成员</span>
</el-menu-item>
<el-menu-item index="5" @click="clickMenu(5)">
<i class="el-icon-collection"></i>
<span slot="title">教育经历</span>
</el-menu-item>
<el-menu-item index="6" @click="clickMenu(6)">
<i class="font_icon fa fa-fw fa-briefcase"></i>
<span slot="title">工作履历</span>
</el-menu-item>
<el-menu-item index="7" @click="clickMenu(7)">
<i class="font_icon fa fa-fw fa-users"></i>
<span slot="title">用工关系</span>
</el-menu-item>
<el-menu-item index="8" @click="clickMenu(8)">
<i class="font_icon fa fa-fw fa-trophy"></i>
<span slot="title">奖惩记录</span>
</el-menu-item>
<el-menu-item index="9" @click="clickMenu(9)">
<i class="font_icon fa fa-fw fa-pie-chart"></i>
<span slot="title">能力素质</span>
</el-menu-item>
<el-menu-item index="10" @click="clickMenu(10)">
<i class="font_icon fa fa-fw fa-mortar-board"></i>
<span slot="title">人才盘点</span>
</el-menu-item>
<el-menu-item index="11" @click="clickMenu(11)">
<i class="font_icon fa fa-fw fa-clock-o"></i>
<span slot="title">考评记录</span>
</el-menu-item>
</el-menu>
</el-aside>
<el-main>
<template v-if="pageSetUp==1">
<peopleinfor :userid="userid"></peopleinfor>
</template>
<template v-if="pageSetUp==2">
<emergencycontact :userKey="userKey"></emergencycontact>
</template>
<template v-if="pageSetUp==3">
<doubleemployees :userKey="userKey"></doubleemployees>
</template>
<template v-if="pageSetUp==4">
<familymembers :userKey="userKey"></familymembers>
</template>
<template v-if="pageSetUp==5">
<personneleducation :userKey="userKey"></personneleducation>
</template>
<template v-if="pageSetUp==6">
<workhistory :userKey="userKey"></workhistory>
</template>
<template v-if="pageSetUp==7">
<employmentrelationship :userKey="userKey"></employmentrelationship>
</template>
<template v-if="pageSetUp==8">
<rewpunireco :userKey="userKey"></rewpunireco>
</template>
<template v-if="pageSetUp==9">
<competence :userKey="userKey"></competence>
</template>
<template v-if="pageSetUp==10">
<talentreview :userKey="userKey"></talentreview>
</template>
<template v-if="pageSetUp==11">
<appraisalrecords :userKey="userKey"></appraisalrecords>
</template>
</el-main>
</el-container>
</el-container>
</template>
<script>
import { getOnlyOnePeopleCont,getOnlyOnePeopleMainCont } from "@/api/systemaccredit/systemhrapi"
import {
peopleinfor,
emergencycontact,
doubleemployees,
familymembers,
personneleducation,
workhistory,
employmentrelationship,
rewpunireco,
competence,
talentreview,
appraisalrecords
} from "@/views/hr/newhr/introducevue"
export default {
components:{
peopleinfor,
emergencycontact,
doubleemployees,
familymembers,
personneleducation,
workhistory,
employmentrelationship,
rewpunireco,
competence,
talentreview,
appraisalrecords
},
data() {
return {
userid:"", //ID
userKey: "", //Key
peopleCont:{}, //
pageSetUp:1, //
}
},
created(){
let id = this.$route.query.id
console.log("接收值id----------》",id)
this.userid = id
this.getPeopleCont(id)
},
methods:{
//
async getPeopleCont(id){
let sendData = {
idstr:id.toString()
}
let res = await getOnlyOnePeopleMainCont(sendData);
console.log("获取员工基本信息----------》",res)
this.peopleCont = res.data
this.userKey = res.data.key.toString()
},
//
clickMenu(id){
console.log("单击菜单操作----------》",id)
this.pageSetUp = id
},
}
}
</script>
<style>
.el-container {
height:calc(100% - 50px);
overflow: hidden;
}
.el-header, .el-footer {
border-bottom: 1px solid rgb(220, 223, 230);
text-align: left;
/*line-height: 100px;*/
}
.el-aside {
/* background-color: #D3DCE6;*/
text-align: center;
height: calc(100% - 2px);
overflow: hidden;
border-right: 1px solid rgb(220, 223, 230);
margin: 0px 0 0 0;
padding-right: 0px;
}
.el-main {
/*background-color: #E9EEF3;*/
/*text-align: center;*/
height: 100%;
overflow: hidden;
padding: 10px 10px 10px 10px;
}
.icon_size{
font-size: 40px;
margin: 15px auto 0 auto;
}
.el-avatar>img{
width: 100%;
}
.mycont_one{
display:table-cell;
vertical-align:bottom;
line-height: 30px;
}
.mycont_one span{
font-size: 24px;
margin-right: 15px;
}
.mycont_one a{
margin-right: 15px;
}
.col_text{
line-height: 30px;
}
.col_text span{
margin-left: 25px;
}
.font_icon{
margin-right: 5px;
width: 24px;
text-align: center;
font-size: 18px;
vertical-align: middle;
color: #909399;
}
.tel_font{
/*font-size: 18px;*/
margin-left: 15px;
}
</style>

288
src/views/hr/newhr/peopleinfor.vue

@ -0,0 +1,288 @@
<template>
<el-scrollbar >
<el-row class="title_body">
<el-col :span="20">
<span class="cont_header_title"><i class="el-icon-s-order"></i>基本信息</span>
</el-col>
<el-col :span="4" class="edit_buttion">
<el-button
icon="el-icon-edit"
size="small"
type="text"
@click="showEditBase(scope.row)"
>编辑</el-button>
</el-col>
</el-row>
<el-divider style="margin:0"></el-divider>
<el-row>
<el-col :span="24" class="cont_body">
<template>
<el-descriptions class="margin-top" :column="6" direction="vertical">
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="曾用名"><div class="bottment_line">{{ myCont.nameusedbefore }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="性别"><div class="bottment_line">{{ replace.gender }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="民族"><div class="bottment_line">{{ myCont.myfolk }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="健康状况"><div class="bottment_line">{{ replace.health }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="婚姻状况"><div class="bottment_line">{{ replace.maritalstatus }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="政治面貌"><div class="bottment_line">{{ replace.politicaloutlook }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="出生日期"><div class="bottment_line">{{ myCont.birthday }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="身份证号"><div class="bottment_line">{{ myCont.idcardno }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="身份证有效期开始"><div class="bottment_line">{{ myCont.idcardstartdate }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="身份证有效期结束"><div class="bottment_line">{{ myCont.idcardenddate }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="身份证地址"><div class="bottment_line">{{ myCont.idcardaddress }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="身份证签发机关"><div class="bottment_line">{{ myCont.idcardIssued }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="手机号码"><div class="bottment_line">{{ myCont.mobilephone }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="现居住地址"><div class="bottment_line">{{ myCont.currentresidence }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="籍贯"><div class="bottment_line">{{ myCont.nativeplace }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="电子邮件"><div class="bottment_line">{{ myCont.email }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="内线电话"><div class="bottment_line">{{ myCont.internaltelephone }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="星座"><div class="bottment_line">{{ replace.constellationing }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="雇佣类型"><div class="bottment_line">{{ replace.hireclass }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="用工关系"><div class="bottment_line">{{ replace.emptype }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="入职日期"><div class="bottment_line">{{ myCont.entrydate }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="试用期"><div class="bottment_line">{{ myCont.probationperiod }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="预计转正日期"><div class="bottment_line">{{ myCont.planformaldate }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="参加工作日期"><div class="bottment_line">{{ myCont.jobstartdate }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="是否为退役军人"><div class="bottment_line">{{ replace.isveterans }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="退役证编号"><div class="bottment_line">{{ myCont.veteransnumber }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="护照号码"><div class="bottment_line">{{ myCont.passportno }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="国际区号" ><div class="bottment_line">{{ myCont.globalroaming }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="绑定微信" ><div class="bottment_line">{{ myCont.wechat }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="绑定企业微信"><div class="bottment_line">{{ myCont.workwechat }}</div></el-descriptions-item>
</el-descriptions>
</template>
</el-col>
</el-row>
<el-row class="title_body">
<el-col :span="20">
<span class="cont_header_title"><i class="el-icon-s-order"></i>行政组织关系</span>
</el-col>
<el-col :span="4" class="edit_buttion">
<el-button
icon="el-icon-edit"
size="small"
type="text"
@click="showEditBaseOrg(scope.row)"
>编辑</el-button>
</el-col>
</el-row>
<el-divider style="margin:0"></el-divider>
<el-row>
<el-col :span="24" class="cont_body">
<template>
<el-descriptions class="margin-top" :column="5" direction="vertical">
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="公司"><div class="bottment_line">{{ myCont.companyname }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="部门"><div class="bottment_line">{{ myCont.maindeparmentname }} <i v-if="myCont.sunmaindeparmentname"> / </i>{{ myCont.sunmaindeparmentname }} <i v-if="myCont.workpostname"> / </i>{{ myCont.workpostname }} </div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="班组"><div class="bottment_line">{{ myCont.teamname }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="岗位"><div class="bottment_line">{{ myCont.positionname }}</div></el-descriptions-item>
<el-descriptions-item label-class-name="my_label_c" content-class-name="bottment_cont" label="职务"><div class="bottment_line">{{ replace.jobleve }}{{ myCont.jobidname }} <span v-if="myCont.jobclassname"> {{ myCont.jobclassname }} </span> </div></el-descriptions-item>
</el-descriptions>
</template>
</el-col>
</el-row>
</el-scrollbar>
</template>
<script>
import { getOnlyOnePeopleCont } from "@/api/systemaccredit/systemhrapi"
import { peopleMethod } from "@/api/people/peopledata"
export default {
name:"peopleinfor",
props:['userid'],
data() {
return {
myCont:{}, //
replace:{
probationperiod: 0,
isveterans: "否",
number: "300450",
name: "秦东",
gender: "男",
adminorg: 0,
position: 0,
team: 0,
jobid: 0,
positiongrade: 0,
emptype: 0,
hiretype: 0,
maritalstatus: 0,
nation: "",
mobilephone: "",
health: 0,
workingdate: "",
icon: "",
confirmationdate: "",
entrydate: "",
birthday: "",
idcardno: "",
idcardstartdate: "",
idcardenddate: "",
politicaloutlook: 0,
weorwechat: "",
constellation: 7,
veteransnumber: "",
globalroaming: "",
passportno: "",
nativeplace: "",
currentresidence: ""
}
}
},
created(){
console.log("userId---------->",this.userid)
this.getMyCont(this.userid)
},
methods:{
//
async getMyCont(id){
let sendData = {
id:id,
idstr: id.toString(),
}
let res = await getOnlyOnePeopleCont(sendData);
this.myCont = res.data
//
peopleMethod.sexData.forEach(item=>{
if(item.id == this.myCont.gender){
this.replace.gender = item.tittle
}
})
//
peopleMethod.employmentType.forEach(item=>{
console.log("雇佣类型--------->",item,this.myCont.hireclass)
if(item.id == this.myCont.hireclass){
this.replace.hireclass = item.tittle
}
})
//
peopleMethod.emptypeList.forEach(item=>{
if(item.id == this.myCont.emptype){
this.replace.emptype = item.tittle
}
})
//
peopleMethod.healthList.forEach(item=>{
if(item.id == this.myCont.health){
this.replace.health = item.tittle
}
})
//
peopleMethod.marriageList.forEach(item=>{
if(item.id == this.myCont.maritalstatus){
this.replace.maritalstatus = item.tittle
}
})
//
peopleMethod.constellationList.forEach(item=>{
if(item.id == this.myCont.constellationing){
this.replace.constellationing = item.tittle
}
})
//
peopleMethod.politicsList.forEach(item=>{
if(item.id == this.myCont.politicaloutlook){
this.replace.politicaloutlook = item.tittle
}
})
//退
if(this.myCont.isveterans == 1){
this.replace.isveterans = "是"
}else{
this.replace.isveterans = "否"
}
//
peopleMethod.positiongrade.forEach(item=>{
if(item.id == this.myCont.jobleve){
this.replace.jobleve = item.tittle
}
})
console.log("获取人员基本信息--------->",this.myCont.isveterans)
},
//
showEditBase(val){
console.log("编辑基本信息--------->",val)
},
//
showEditBaseOrg(val){
console.log("编辑行政组织--------->",val)
},
}
}
</script>
<style>
.el-scrollbar {
height: 100%;
width: 100%;
}
.el-scrollbar__wrap {
overflow: auto;
overflow: scroll;
overflow-x: hidden;
}
.el-tree-node.is-current>.el-tree-node__content {
color:#2E89DE!important
}
.el-tree-node_black {
background-color:red !important;
color:#2E89DE!important
}
div::-webkit-scrollbar {
width: 5px;
height: 5px;
}
div::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
opacity: 0.2;
}
div::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
border-radius: 0;
}
.title_body{
padding: 10px 0;
}
.cont_header_title{
font-size: 20px;
font-weight: bold;
color: #388CFF;
}
.cont_header_title i{
margin-right: 10px;
}
.edit_buttion{
text-align: right;
padding-right: 5px;
}
.el-divider--horizontal{
margin: 0;
}
.cont_body{
margin-top: 20px;
}
.my_label_c{
padding-top: 10px;
}
.bottment_cont{
padding-right: 15px;
color: #000000;
display:table-cell;
vertical-align:bottom;
}
.bottment_line{
width: 100%;
border-bottom: 1px solid #EEEEEE;
padding: 5px 0;
}
</style>

157
src/views/hr/newhr/personneleducation.vue

@ -0,0 +1,157 @@
<template>
<el-scrollbar >
<el-row class="title_body">
<el-col :span="20">
<span class="cont_header_title"><i class="el-icon-s-order"></i>教育经历</span>
</el-col>
<el-col :span="4" class="edit_buttion">
<el-button
icon="el-icon-plus"
size="small"
type="text"
@click="showAddBase(userKey)"
>新增</el-button>
</el-col>
</el-row>
<el-divider style="margin:0"></el-divider>
<el-row>
<el-col :span="24" class="cont_body">
<el-descriptions v-for="item in contList" class="margin-top" :title="item.levelname" :column="3" :size="size" border :key="item.id">
<template slot="extra">
<el-button
icon="el-icon-edit"
size="small"
type="text"
@click="showEditBase(scope.row)"
>编辑</el-button>
<el-button
icon="el-icon-delete"
size="small"
type="text"
@click="showDelBase(scope.row)"
>删除</el-button>
</template>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-user"></i>
毕业院校
</template>
{{ item.graduationschool }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
<i class="el-icon-user"></i>
专业
</template>
{{ item.subject }}
</el-descriptions-item>
</el-descriptions>
</el-col>
</el-row>
</el-scrollbar>
</template>
<script>
import { getPersonneleDucationlist } from "@/api/systemaccredit/systemhrapi"
export default {
name:"familymembers",
props:['userKey'],
data() {
return {
contList:[], //
}
},
created(){
console.log("userKey---------->",this.userKey)
this.getListCont()
},
methods:{
//
showAddBase(val){
console.log("新增信息--------->",val)
},
//
async getListCont(){
let sendData = {
id:this.userKey
}
let res = await getPersonneleDucationlist(sendData)
this.contList = res.data
this.contList.forEach(item =>{
switch (item.level){
case 2:
item.levelname = "第一学历";
break;
case 3:
item.levelname = "最高学历";
break;
default:
item.levelname = "普通学历"
}
})
console.log("获取列表信息--------->",res)
},
//
async showEditBase(val){
console.log("编辑--------->",val)
},
//
async showDelBase(val){
console.log("删除--------->",val)
},
}
}
</script>
<style>
.el-scrollbar {
height: 100%;
width: 100%;
}
.el-scrollbar__wrap {
overflow: auto;
overflow: scroll;
overflow-x: hidden;
}
.el-tree-node.is-current>.el-tree-node__content {
color:#2E89DE!important
}
.el-tree-node_black {
background-color:red !important;
color:#2E89DE!important
}
div::-webkit-scrollbar {
width: 5px;
height: 5px;
}
div::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
opacity: 0.2;
}
div::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
border-radius: 0;
}
.title_body{
padding: 10px 0;
}
.cont_header_title{
font-size: 20px;
font-weight: bold;
color: #388CFF;
}
.cont_header_title i{
margin-right: 10px;
}
.edit_buttion{
text-align: right;
padding-right: 5px;
}
.cont_body{
margin-top: 20px;
}
</style>

91
src/views/hr/newhr/rewpunireco.vue

@ -0,0 +1,91 @@
<template>
<el-scrollbar >
<el-row class="title_body">
<el-col :span="20">
<span class="cont_header_title"><i class="el-icon-s-order"></i>奖惩记录</span>
</el-col>
<el-col :span="4" class="edit_buttion">
<el-button
icon="el-icon-plus"
size="small"
type="text"
@click="showAddBase(userKey)"
>新增</el-button>
</el-col>
</el-row>
<el-divider style="margin:0"></el-divider>
<el-row>
<el-col :span="24" class="cont_body">
</el-col>
</el-row>
</el-scrollbar>
</template>
<script>
export default {
name:"familymembers",
props:['userKey'],
data() {
return {}
},
created(){
console.log("userKey---------->",this.userKey)
},
methods:{
//
showAddBase(val){
console.log("新增信息--------->",val)
},
}
}
</script>
<style>
.el-scrollbar {
height: 100%;
width: 100%;
}
.el-scrollbar__wrap {
overflow: auto;
overflow: scroll;
overflow-x: hidden;
}
.el-tree-node.is-current>.el-tree-node__content {
color:#2E89DE!important
}
.el-tree-node_black {
background-color:red !important;
color:#2E89DE!important
}
div::-webkit-scrollbar {
width: 5px;
height: 5px;
}
div::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
opacity: 0.2;
}
div::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
border-radius: 0;
}
.title_body{
padding: 10px 0;
}
.cont_header_title{
font-size: 20px;
font-weight: bold;
color: #388CFF;
}
.cont_header_title i{
margin-right: 10px;
}
.edit_buttion{
text-align: right;
padding-right: 5px;
}
.cont_body{
margin-top: 20px;
}
</style>

91
src/views/hr/newhr/talentreview.vue

@ -0,0 +1,91 @@
<template>
<el-scrollbar >
<el-row class="title_body">
<el-col :span="20">
<span class="cont_header_title"><i class="el-icon-s-order"></i>人才盘点</span>
</el-col>
<el-col :span="4" class="edit_buttion">
<el-button
icon="el-icon-plus"
size="small"
type="text"
@click="showAddBase(userKey)"
>新增</el-button>
</el-col>
</el-row>
<el-divider style="margin:0"></el-divider>
<el-row>
<el-col :span="24" class="cont_body">
</el-col>
</el-row>
</el-scrollbar>
</template>
<script>
export default {
name:"familymembers",
props:['userKey'],
data() {
return {}
},
created(){
console.log("userKey---------->",this.userKey)
},
methods:{
//
showAddBase(val){
console.log("新增信息--------->",val)
},
}
}
</script>
<style>
.el-scrollbar {
height: 100%;
width: 100%;
}
.el-scrollbar__wrap {
overflow: auto;
overflow: scroll;
overflow-x: hidden;
}
.el-tree-node.is-current>.el-tree-node__content {
color:#2E89DE!important
}
.el-tree-node_black {
background-color:red !important;
color:#2E89DE!important
}
div::-webkit-scrollbar {
width: 5px;
height: 5px;
}
div::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
opacity: 0.2;
}
div::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
border-radius: 0;
}
.title_body{
padding: 10px 0;
}
.cont_header_title{
font-size: 20px;
font-weight: bold;
color: #388CFF;
}
.cont_header_title i{
margin-right: 10px;
}
.edit_buttion{
text-align: right;
padding-right: 5px;
}
.cont_body{
margin-top: 20px;
}
</style>

109
src/views/hr/newhr/workhistory.vue

@ -0,0 +1,109 @@
<template>
<el-scrollbar >
<el-row class="title_body">
<el-col :span="20">
<span class="cont_header_title"><i class="el-icon-s-order"></i>集团内部工作履历</span>
</el-col>
<el-col :span="4" class="edit_buttion">
<el-button
icon="el-icon-plus"
size="small"
type="text"
@click="showAddBase(userKey)"
>新增</el-button>
</el-col>
</el-row>
<el-divider style="margin:0"></el-divider>
<el-row>
<el-col :span="24" class="cont_body">
</el-col>
</el-row>
<el-row class="title_body">
<el-col :span="20">
<span class="cont_header_title"><i class="el-icon-s-order"></i>集团外部工作履历</span>
</el-col>
<el-col :span="4" class="edit_buttion">
<el-button
icon="el-icon-plus"
size="small"
type="text"
@click="showAddBase(userKey)"
>新增</el-button>
</el-col>
</el-row>
<el-divider style="margin:0"></el-divider>
<el-row>
<el-col :span="24" class="cont_body">
</el-col>
</el-row>
</el-scrollbar>
</template>
<script>
export default {
name:"familymembers",
props:['userKey'],
data() {
return {}
},
created(){
console.log("userKey---------->",this.userKey)
},
methods:{
//
showAddBase(val){
console.log("新增信息--------->",val)
},
}
}
</script>
<style>
.el-scrollbar {
height: 100%;
width: 100%;
}
.el-scrollbar__wrap {
overflow: auto;
overflow: scroll;
overflow-x: hidden;
}
.el-tree-node.is-current>.el-tree-node__content {
color:#2E89DE!important
}
.el-tree-node_black {
background-color:red !important;
color:#2E89DE!important
}
div::-webkit-scrollbar {
width: 5px;
height: 5px;
}
div::-webkit-scrollbar-thumb {
border-radius: 10px;
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
opacity: 0.2;
}
div::-webkit-scrollbar-track {
-webkit-box-shadow: inset 0 0 5px rgba(0, 0, 0, 0.2);
border-radius: 0;
}
.title_body{
padding: 10px 0;
}
.cont_header_title{
font-size: 20px;
font-weight: bold;
color: #388CFF;
}
.cont_header_title i{
margin-right: 10px;
}
.edit_buttion{
text-align: right;
padding-right: 5px;
}
.cont_body{
margin-top: 20px;
}
</style>

17
src/views/hr/organization.vue

@ -211,7 +211,7 @@
<script>
import { dutyclasslist,statedutyclass,eitedutyclassinfo,getdutyclassinfo,adddutyclass } from '@/api/duty/dimension'
import { systemmenulist,addmenu,eitemenu,delmenu,addmenuoperation,delmenuperation } from '@/api/user'
import { govthree,govclasslist,addgovcont,eitegovcont,getgovcont,govlist,eitegovstateordel } from '@/api/personnel/post'
import { orgThreeList,govclasslist,addgovcont,eitegovcont,getgovcont,govlist,eitegovstateordel } from '@/api/personnel/post'
export default {
name: 'Dashboard',
data() {
@ -339,7 +339,7 @@ export default {
message: '修改状态成功',
showClose: true
})
this.getDataList()
// this.getDataList()
}
} else {
this.switchFrom.state=2;
@ -350,7 +350,7 @@ export default {
message: '修改状态成功',
showClose: true
})
this.getDataList()
// this.getDataList()
}
}
},
@ -373,7 +373,10 @@ export default {
async enterDialog(){
this.form.superior=this.baseId.toString()
this.form.govclass=this.form.govclass.toString()
this.form.govclass=this.form.organizationtype.toString()
console.log("this.baseId---------------->",this.form)
const res = await addgovcont(this.form)
if (res.code === 0) {
this.$message({
@ -458,7 +461,11 @@ export default {
},
//
async getDataList() {
const res = await govthree(this.searchInfo)
this.searchInfo = {
id:0,
all:1
}
const res = await orgThreeList(this.searchInfo)
this.tableData = res.data[0].child
this.baseId = res.data[0].id
console.log('this.baseId'+this.baseId)

17
src/views/hr/position.vue

@ -40,7 +40,7 @@
inactive-color="#ff4949"
:active-value=1
:inactive-value=2
@change="changeVal($event,scope.row.id)"
@change="changeVal(scope.row)"
/>
</template>
</el-table-column>
@ -168,7 +168,9 @@ export default {
})
.then(async() => {
this.deleFrom.state=3;
this.deleFrom.id=row.id;
this.deleFrom.id=parseInt(row.id);
this.deleFrom.idstr=row.id;
this.deleFrom.istrue=2;
const res = await delutiesclassinfo(this.deleFrom)
if (res.code === 0) {
this.$message({
@ -187,17 +189,20 @@ export default {
},
//
async showEdit(row){
this.editFrom.id=row.id
this.editFrom.id=parseInt(row.id)
this.editFrom.idstr = row.id
const res = await getutiesclassinfo(this.editFrom)
this.editAdd = res.data
this.editDialogFormVisible=true;
},
//
async changeVal(val,id){
async changeVal(val){
console.log(val)
this.switchFrom.id=id
if (val==1) {
this.switchFrom.id=parseInt(val.id)
this.switchFrom.idstr = val.id
this.switchFrom.name = val.name
if (val.state==1) {
this.switchFrom.state=1;
const res = await eiteutiesclassinfo(this.switchFrom)
if (res.code === 0) {

11
src/views/hr/team.vue

@ -84,10 +84,7 @@
<el-dialog :visible.sync="editDialogFormVisible" :before-close="editCloseDialog" title="修改" width="20%">
<el-form ref="editForm" :model="editAdd" :rules="editRules" label-width="150px">
<el-form-item label="考核维度名称" prop="title">
<el-input v-model="editAdd.title" autocomplete="off" />
</el-form-item>
<el-form-item label="排序" prop="sort">
<el-input v-model.number="editAdd.sort" autocomplete="off" />
<el-input v-model="editAdd.name" autocomplete="off" />
</el-form-item>
</el-form>
<template #footer>
@ -181,8 +178,9 @@ export default {
//
async showEdit(row){
this.editFrom.idstr=row.id.toString()
const res = await eiteteamcont(this.editFrom)
const res = await getteamcont(this.editFrom)
this.editAdd = res.data
console.log("编辑按钮----------->",res.data)
this.editDialogFormVisible=true;
},
@ -252,7 +250,8 @@ export default {
async editEnterDialog(){
this.$refs.editForm.validate(async valid => {
if (valid) {
const res = await eitedutyclassinfo(this.editAdd)
this.editAdd.id = this.editAdd.id.toString();
const res = await eiteteamcont(this.editAdd)
if (res.code === 0) {
this.$message({
type: 'success',

18
src/views/personnel/post/index.vue

@ -355,7 +355,7 @@ export default {
this.getPostList()
this.getDataList()
this.getJobTitleList()
this.getGovthree()
// this.getGovthree()
this.getGovthree2()
this.getBuMenthree()
},
@ -443,14 +443,19 @@ export default {
//
async getGovthree(){
const searchData = {
id:312,
all:1
}
const res = await govthree()
const res = await govthree(searchData)
this.GovthreeList = res.data
},
//
async getGovthree2(){
const res = await govthree()
let sendData = {
id:0,
all:1
}
const res = await govthree(sendData)
this.GovthreeList2 = res.data[0].child
console.log("this.GovthreeList2")
console.log(res.data[0].child)
@ -458,7 +463,9 @@ export default {
//
async getBuMenthree(){
const searchData = {
level:4
id:312,
level:4,
all:1
}
const res = await govthree(searchData)
this.BuMenthreeList = res.data
@ -500,6 +507,7 @@ export default {
},
//
showAdd(){
this.getGovthree()
this.dialogFormVisible=true;
console.log(this.dialogFormVisible)
},

594
src/views/personnel/post/position.vue

@ -0,0 +1,594 @@
<template>
<el-container>
<!--左侧-->
<el-aside width="300px">
<el-scrollbar >
<el-tree
:expand-on-click-node="false"
:data="GovthreeList2"
:props="defaultProps1"
@node-click="handleNodeClick"
></el-tree>
</el-scrollbar>
</el-aside>
<el-main>
<el-scrollbar >
<el-row>
<el-col :span="24">
<el-form ref="searchForm" :inline="true" :model="searchInfo" class="demo-form-inline">
<el-form-item label="岗位名称">
<el-input v-model="searchInfo.name" size="mini" placeholder="请输入岗位名称"></el-input>
</el-form-item>
<el-form-item label="岗位编号">
<el-input v-model="searchInfo.number" size="mini" placeholder="请输入岗位编号"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" size="mini" icon="el-icon-search" @click="onSubmit">查询</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary" size="mini" icon="el-icon-plus" @click="showAdd">新增</el-button>
</el-form-item>
</el-form>
<template>
<el-table
:data="tableData"
style="width: 100%"
max-height="100%">
<el-table-column
fixed
prop="name"
label="职位名称"
width="150">
</el-table-column>
<el-table-column
prop="number"
label="职位编号"
>
</el-table-column>
<el-table-column
label="归属行政组织"
>
<template #default="{ row }">
{{ row.departmentname }} / {{ row.aoname }}
</template>
</el-table-column>
<el-table-column
prop="jobname"
label="归属职务"
width="120">
</el-table-column>
<el-table-column
label="状态"
width="150">
<template #default="scope">
<el-switch
inline-prompt
v-model="scope.row.state"
active-color="#13ce66"
inactive-color="#ff4949"
active-text="正常"
inactive-text="禁用"
:active-value=1
:inactive-value=2
@change="changeVal(scope.row)"
/>
</template>
</el-table-column>
<el-table-column
fixed="right"
label="操作"
width="120">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="editPostCont(scope.row)"
>编辑</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="deleteMenu(scope.row)"
>删除</el-button>
</template>
</el-table-column>
</el-table>
</template>
</el-col>
<el-col :span="24">
<el-pagination class="page_body"
background
@current-change="handleCurrentChange"
layout="prev, pager, next"
:total="total"
:page-size = "searchInfo.pagesize"
>
</el-pagination>
</el-col>
</el-row>
<!-- 新增弹框 -->
<el-dialog :visible.sync="dialogFormVisible" :before-close="closeDialog" title="新增岗位" width="50%">
<el-form ref="addForm" :model="addPostForm" :rules="rules" label-width="150px">
<el-form-item label="岗位名称" prop="name">
<el-input v-model="addPostForm.name" autocomplete="off" placeholder="请输入岗位名称" />
</el-form-item>
<el-form-item label="岗位编号" prop="number">
<el-input v-model="addPostForm.number" autocomplete="off" placeholder="请输入岗位编号" />
</el-form-item>
<el-form-item label="责任岗">
<el-switch
inline-prompt
v-model="addPostForm.incharge"
active-color="#13ce66"
inactive-color="#ff4949"
active-text="是"
inactive-text="否"
:active-value=1
:inactive-value=2
/>
</el-form-item>
<el-form-item label="岗位职务" prop="duties">
<el-select v-model="addPostForm.duties" filterable clearable placeholder="请选择职务" style="width:100%">
<el-option
v-for="item in JobTitleList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="归属行政组织" prop="organization">
<el-cascader style="width:100%"
:show-all-levels="true"
v-model="addPostForm.organization"
:options="GovthreeList2"
:props="propsdepart"
@change="queryPosition"
>
</el-cascader>
</el-form-item>
<el-form-item label="上级岗位" >
<el-select v-model="addPostForm.superior" clearable placeholder="请选择" style="width:100%">
<el-option
v-for="item in superiorPosition"
:key="item.id"
:label="item.name + ' ('+item.number+')'"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button size="small" @click="closeDialog"> </el-button>
<el-button size="small" type="primary" @click="addPostSave"> </el-button>
</div>
</template>
</el-dialog>
<!-- 编辑弹框 -->
<el-dialog :visible.sync="editDialogFormVisible" :before-close="closeEditDialog" title="编辑岗位" width="50%">
<el-form ref="editForm" :model="editPostForm" :rules="editRules" label-width="150px">
<el-form-item label="岗位名称" prop="name">
<el-input v-model="editPostForm.name" autocomplete="off" placeholder="请输入岗位名称" />
</el-form-item>
<el-form-item label="岗位编号" prop="number">
<el-input v-model="editPostForm.number" autocomplete="off" placeholder="请输入岗位编号" />
</el-form-item>
<el-form-item label="责任岗">
<el-switch
inline-prompt
v-model="editPostForm.incharge"
active-color="#13ce66"
inactive-color="#ff4949"
active-text="是"
inactive-text="否"
:active-value=1
:inactive-value=2
/>
</el-form-item>
<el-form-item label="岗位职务" prop="duties">
<el-select v-model="editPostForm.duties" filterable clearable placeholder="请选择职务" style="width:100%">
<el-option
v-for="item in JobTitleList"
:key="item.id"
:label="item.name"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="归属行政组织" prop="organization">
<el-cascader style="width:100%"
:show-all-levels="true"
v-model="editPostForm.organization"
:options="GovthreeList2"
:props="propsdepart"
@change="queryPosition"
>
</el-cascader>
</el-form-item>
<el-form-item label="上级岗位" >
<el-select v-model="editPostForm.superior" clearable placeholder="请选择" style="width:100%">
<el-option
v-for="item in superiorPosition"
:key="item.id"
:label="item.name + ' ('+item.number+')'"
:value="item.id">
</el-option>
</el-select>
</el-form-item>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button size="small" @click="closeEditDialog"> </el-button>
<el-button size="small" type="primary" @click="editPostSave"> </el-button>
</div>
</template>
</el-dialog>
</el-scrollbar>
</el-main>
</el-container>
</template>
<script>
import { dutyclasslist } from "@/api/duty/dimension";
import { getpositionrole,positionlist,addpositioncont,getpositioncont,eitepositionstateordel,eitepositioncont,dutieslist,govthree,positionallotment,getOrgPostList,addpositioncontnew,editpositioncontnew } from '@/api/personnel/post'
export default {
data() {
return {
//
defaultProps1: {
children: 'child',
label: 'name'
},
GovthreeList2:[],
//
JobTitleList:[],
searchInfo:{
page:1,
pagesize:15
}, //
tableData:[], //
total:0, //
//
switchFrom:{},
//
deleFrom:{},
dialogFormVisible:false, //
addPostForm:{
name:"",
number:"",
incharge:2,
duties:"",
organization:"",
superior:"",
}, //
editDialogFormVisible:false, //
editPostForm:{
id:0,
name:"",
number:"",
incharge:2,
duties:"",
organization:"",
superior:"",
},//
//
rules: {
name: [{ required: true, message: '请输入岗位名称', trigger: 'blur' }],
number: [{ required: true, message: '请输入岗位编号', trigger: 'blur' }],
duties: [{ required: true, message: '请选择该岗位对应的职务', trigger: 'blur' }],
organization: [{ required: true, message: '请选择归属行政组织', trigger: 'blur' }],
// superior: [{ required: true, message: '', trigger: 'blur' }],
},
//
editRules:{
name: [{ required: true, message: '请输入岗位名称', trigger: 'blur' }],
number: [{ required: true, message: '请输入岗位编号', trigger: 'blur' }],
duties: [{ required: true, message: '请选择该岗位对应的职务', trigger: 'blur' }],
organization: [{ required: true, message: '请选择归属行政组织', trigger: 'blur' }],
},
propsdepart: {
value: "id",
label: "name",
children: "child",
// expandTrigger:"hover"
}, //
superiorPosition:[], //
}
},
created() {
this.getGovthree2();
this.getDataList();
},
methods: {
//
initAddData(){
this.addPostForm ={
name:"",
number:"",
incharge:2,
duties:"",
organization:"",
superior:"",
}
},
//
async getGovthree2(){
let sendData = {
id:313,
all:1
}
const res = await govthree(sendData)
this.GovthreeList2 = res.data
// console.log("this.GovthreeList2------------->",res.data)
// console.log(res.data[0].child)
},
//
async handleNodeClick(row){
this.searchInfo.organization=row.id.toString()
// console.log("------------->",row)
this.getDataList(this.searchInfo)
},
//
async onSubmit(){
this.getDataList()
},
//
async getDataList() {
const res = await positionlist(this.searchInfo)
this.tableData = res.data.list
this.total = res.data.total
this.searchInfo.page = res.data.page
this.searchInfo.pagesize = res.data.pageSize
},
// page
handleCurrentChange(val) {
this.searchInfo.page=val
this.getDataList(this.searchInfo)
},
//
async changeVal(val){
console.log(val)
this.switchFrom.id=val.id
this.switchFrom.idstr=val.idstr
if (val.state==1) {
this.switchFrom.state=1;
const res = await eitepositionstateordel(this.switchFrom)
if (res.code === 0) {
this.$message({
type: 'success',
message: '修改状态成功',
showClose: true
})
this.getDataList()
}
} else {
this.switchFrom.state=2;
const res = await eitepositionstateordel(this.switchFrom)
if (res.code === 0) {
this.$message({
type: 'success',
message: '修改状态成功',
showClose: true
})
this.getDataList()
}
}
console.log( this.switchFrom)
},
//
async deleteMenu(row) {
this.$confirm('此操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
})
.then(async() => {
this.deleFrom.state=3;
this.deleFrom.id=row.id;
const res = await eitepositionstateordel(this.deleFrom)
if (res.code === 0) {
this.$message({
type: 'success',
message: '删除成功!'
})
this.getDataList()
}
})
},
//
async getJobTitleList(){
const searchData = {
page: 1, //
pagesize: 10000, //
}
const res = await dutieslist(searchData)
this.JobTitleList = res.data.list
},
//
async queryPosition(val){
console.log("获取岗位",val,this.addPostForm.organization)
let sendData = {
id: val
}
const res = await getOrgPostList(sendData)
this.superiorPosition = res.data
},
//
showAdd(){
this.getJobTitleList()
this.dialogFormVisible=true;
},
//
closeDialog() {
// console.log("closeDialog")
this.dialogFormVisible = false
this.initAddData()
},
//
async addPostSave(){
this.$refs.addForm.validate(async valid => {
if (valid) {
console.log("提交表单----->",this.addPostForm)
const res = await addpositioncontnew(this.addPostForm)
if (res.code === 0) {
this.$message({
type: 'success',
message: '添加成功',
showClose: true
})
}
this.getDataList();
this.closeDialog();
}
});
},
//
async editPostCont(val){
console.log("修改岗位数据弹窗",val)
const searchData = {
id: val.id,
idstr:val.idstr
}
const res = await getpositioncont(searchData)
if (res.code === 0) {
this.getJobTitleList()
this.queryPosition(res.data.orglistary)
this.editDialogFormVisible = true
this.editPostForm = {
id:res.data.id,
idstr:res.data.idstr,
name:res.data.name,
number:res.data.number,
incharge:res.data.personincharge,
duties:res.data.duties,
organization:res.data.administrativeorganization,
superior:res.data.superior,
}
}
},
//
closeEditDialog(){
this.editDialogFormVisible = false
this.initEditForm()
},
//
initEditForm(){
this.editPostForm = {
id:0,
name:"",
number:"",
incharge:2,
duties:"",
organization:"",
superior:"",
}
},
//
async editPostSave(){
console.log("编辑岗位数据提交",this.editPostForm)
this.$refs.editForm.validate(async valid => {
if (valid) {
if(!this.judgeArray(this.editPostForm.organization)){
let orgAry = new Array
orgAry.push(this.editPostForm.organization)
this.editPostForm.organization = orgAry
}
console.log("编辑岗位数据提交---1->",this.editPostForm)
// console.log("----->",this.addPostForm)
const res = await editpositioncontnew(this.editPostForm)
if (res.code === 0) {
this.$message({
type: 'success',
message: '编辑成功',
showClose: true
})
}
this.getDataList();
this.closeEditDialog();
}
});
},
//
judgeArray(ary){
if(ary.isArray){
return true;
}else{
if (Object.prototype.toString.call(ary) === '[object Array]') {
return true;
}
}
return false;
},
},
}
</script>
<style>
.el-aside {
text-align: center;
height: calc(103% - 2px);
overflow: hidden;
overflow-y: auto;
overflow-x: hidden;
border-right: 1px solid rgb(220, 223, 230);
margin: 2px 0 0 0;
padding-bottom: 10px;
}
.el-main{
height: 105%;
}
.el-container {
height:calc(100% - 50px);
overflow: hidden;
}
.el-scrollbar {
height: 100%;
}
.el-scrollbar__wrap {
overflow: auto;
overflow: scroll;
}
.page_body{
margin: 15px 0 25px 0px;
}
</style>

34
src/views/purview/manage.vue

@ -47,7 +47,7 @@
{{tableName}}{{total}}
</el-col>
<el-col :span="6" class="role_title_right">
<span>角色详情</span>
<!-- <span>角色详情</span> -->
</el-col>
</el-row>
@ -189,7 +189,9 @@
<!-- <el-col :span="1" class="biankuang"></el-col>
<el-col :span="1" class="biankuang left_line"></el-col> -->
<el-col class="biankuang yZhou left_line" :span="12">
<el-row>
<el-col :span="24">已选择的部门或成员</el-col>
</el-row>
<el-row v-for="(item,index) in checkCont" type="flex" justify="space-between" :key="index" class="orgManListcss">
<el-col :span="3">
@ -227,7 +229,7 @@
</template>
<script>
import { getRoleList,editRoleCont,addRoleCont,editRoleInfo,roleAboutPeople,delAboutPeople } from "@/api/systemaccredit/systemapi"; //
import { getRoleList,editRoleCont,addRoleCont,editRoleInfo,roleAboutPeople,delAboutPeople,addAboutPeople } from "@/api/systemaccredit/systemapi"; //
import { MessageBox, Message } from 'element-ui'
//
@ -549,7 +551,31 @@ export default {
this.addRolePeople = true;
},
//
async addOrgManData(){},
async addOrgManData(){
if(this.checkCont.length < 1){
this.$message({
type: 'warning',
message: "您没有选择部门或成员!",
showClose: true
})
}else{
let sendData = {
roleid:this.searchFormData.id,
peoplelist:this.checkCont
}
const res = await addAboutPeople(sendData);
if (res.code === 0) {
this.$message({
type: 'success',
message: res.msg,
showClose: true
})
this.getRolePeopelList()
this.closeAddRolePeople()
}
}
console.log("转中的值-------1------>",this.checkCont,this.searchFormData.id)
},
//
sunThreeSend(contList,idList){

10
src/views/purview/rolepower.vue

@ -24,7 +24,7 @@
<div class="roleTitle " @click="setupEmpower(row)">{{row.name}}</div>
</template>
</el-table-column>
<el-table-column prop="state" label="状态" align="center">
<!-- <el-table-column prop="state" label="状态" align="center">
<template slot-scope="{ row }">
<el-switch
@change="systemRoleState(row)"
@ -34,16 +34,16 @@
</el-switch>
</template>
</el-table-column>
<el-table-column fixed="right" prop="name" label="操作" width="100" align="center">
</el-table-column> -->
<!-- <el-table-column fixed="right" prop="name" label="操作" width="100" align="center">
<template slot-scope="scope">
<el-button type="text" @click="editcont(scope.row)" size="small">编辑</el-button>
<el-button type="text" @click="delcont(scope.row)" size="small">删除</el-button>
</template>
</el-table-column>
</el-table-column> -->
</el-table>
<el-button type="primary" @click="addSystemRole" icon="el-icon-plus" style="width:94%; margin: 15px 0 15px 0;">添加角色</el-button>
<!-- <el-button type="primary" @click="addSystemRole" icon="el-icon-plus" style="width:94%; margin: 15px 0 15px 0;">添加角色</el-button> -->
</el-scrollbar>
</el-aside>

Loading…
Cancel
Save