347617796@qq.com 3 gadi atpakaļ
vecāks
revīzija
1b4c70d8cd
57 mainītis faili ar 1697 papildinājumiem un 1543 dzēšanām
  1. 1 0
      .env.development
  2. 4 3
      .env.production
  3. 26 12
      src/api/auth.js
  4. 1 0
      src/api/axios.js
  5. 1 0
      src/assets/css/reset.css
  6. BIN
      src/assets/image/APP2.png
  7. BIN
      src/assets/image/app.png
  8. BIN
      src/assets/image/logo.png
  9. BIN
      src/assets/image/nav_jx_1.jpg
  10. BIN
      src/assets/image/nav_jx_2.jpg
  11. BIN
      src/assets/image/nav_jx_3.jpg
  12. BIN
      src/assets/image/nav_jx_4.jpg
  13. 8 8
      src/components/evaluate/Flow - 副本.vue
  14. 8 8
      src/components/evaluate/Flow.vue
  15. 6 6
      src/components/evaluate/Template.vue
  16. 7 7
      src/components/flow/Affirm - 副本.vue
  17. 7 7
      src/components/flow/Affirm.vue
  18. 7 7
      src/components/flow/Examine - 副本.vue
  19. 7 7
      src/components/flow/Examine.vue
  20. 7 7
      src/components/flow/SuperiorFlow - 副本.vue
  21. 8 8
      src/components/flow/SuperiorFlow.vue
  22. 12 11
      src/components/public/ActionPlan.vue
  23. 6 9
      src/components/public/TrackManagement.vue
  24. 1 1
      src/components/set/EvaluateSet.vue
  25. 6 5
      src/components/set/IndexSet.vue
  26. 9 7
      src/components/set/JurisdictionSet.vue
  27. 8 8
      src/index.vue
  28. 5 3
      src/main.js
  29. 1 1
      src/noAccess.vue
  30. 4 4
      src/router/index.js
  31. 30 17
      src/views/CNC/CNC_center.vue
  32. 1 1
      src/views/assessManagement/addPersonnel.vue
  33. 35 11
      src/views/assessManagement/assessDetails.vue
  34. 1 1
      src/views/assessManagement/assessManagement.vue
  35. 1 1
      src/views/assessManagement/careOf.vue
  36. 3 2
      src/views/assessManagement/participation.vue
  37. 8 12
      src/views/assessManagement/sponsor/sponsorAssess.vue
  38. 12 6
      src/views/assessManagement/staffAssDet.vue
  39. 472 444
      src/views/assessManagement/updateTarget.vue
  40. 878 839
      src/views/evaluate/evaluate.vue
  41. 6 7
      src/views/job/home.vue
  42. 2 2
      src/views/job/management.vue
  43. 2 2
      src/views/job/score.vue
  44. 2 2
      src/views/myPerformance/adjustment.vue
  45. 3 3
      src/views/myPerformance/adjustment2.vue
  46. 2 2
      src/views/myPerformance/backlog.vue
  47. 8 8
      src/views/myPerformance/formulate.vue
  48. 20 19
      src/views/myPerformance/myPerformance.vue
  49. 1 1
      src/views/myPerformance/resultSet.vue
  50. 2 2
      src/views/myPerformance/unread.vue
  51. 5 3
      src/views/preview/preview.vue
  52. 4 1
      src/views/preview/previewTow.vue
  53. 1 1
      src/views/set/addIndexSet.vue
  54. 1 1
      src/views/set/set.vue
  55. 29 11
      src/views/statement/analyse.vue
  56. 2 2
      src/views/statement/statistics.vue
  57. 16 13
      src/views/userSet/framework.vue

+ 1 - 0
.env.development

@@ -1,4 +1,5 @@
 NODE_ENV="development"
 VUE_APP_BASE_API="https://dp-test.g107.com"
+
 VUE_APP_APPID="107002"
 VUE_APP_WEBSCOKET="dp-test.g107.com"

+ 4 - 3
.env.production

@@ -1,6 +1,7 @@
 NODE_ENV="production"
-VUE_APP_BASE_API="https://app107002.eapps.dingtalkcloud.com/"
-VUE_APP_APPID="55493"
-VUE_APP_WEBSCOKET="app107002.eapps.dingtalkcloud.com"
+VUE_APP_APPID="109758"
+
+VUE_APP_BASE_API="https://app109758.eapps.dingtalkcloud.com"
+VUE_APP_WEBSCOKET="app109758.eapps.dingtalkcloud.com"
 
 

+ 26 - 12
src/api/auth.js

@@ -10,9 +10,8 @@ import Vue from 'vue'
 子管理员 childAdministrator
 部门管理员 deptManager
 员工 employee
-*/
-// 权限
-/*
+
+权限
 1   绩效考核
 2   OKR
 3   管理范围 全公司
@@ -29,6 +28,8 @@ import Vue from 'vue'
 14  全部考核表管理
 15  基础设置
 16  绩效报表
+17  批量转交
+18  批量修改目标
 */
 
 // 获取当前登录者在绩效系统中的身份
@@ -203,16 +204,29 @@ export function getClass(o) {
 	return Object.prototype.toString.call(o).slice(8, -1);
 }
 //深度拷贝对象
-export function deepCopy(obj) {
-	var result, oClass = getClass(obj);
-	if (oClass == "Object") result = {}; //判断传入的如果是对象,继续遍历
-	else if (oClass == "Array") result = []; //判断传入的如果是数组,继续遍历
-	else return obj; //如果是基本数据类型就直接返回
-	for (var i in obj) {
-		var copy = obj[i];
-		if (getClass(copy) == "Object" || getClass(copy) == "Array") result[i] = deepCopy(copy); //递归方法 ,如果对象继续变量obj[i],下一级还是对象,就obj[i][i]
-		else result[i] = copy; //基本数据类型则赋值给属性
+export function deepCopy(obj = {}, map = new Map()) {
+	if (typeof obj !== "object") {
+		return obj;
+	}
+	if (map.get(obj)) {
+		return map.get(obj);
+	}
+	let result = {};
+	// 初始化返回结果
+	// 加 || 的原因是为了防止 Array 的 prototype 被重写,Array.isArray 也是如此
+	if (obj instanceof Array ||Object.prototype.toString(obj) === "[object Array]") {
+		result = [];
+	}
+	// 防止循环引用
+	map.set(obj, result);
+	for (const key in obj) {
+		// 保证 key 不是原型属性
+		if (obj.hasOwnProperty(key)) {
+			// 递归调用
+			result[key] = deepClone(obj[key], map);
+		}
 	}
+	// 返回结果
 	return result;
 }
 

+ 1 - 0
src/api/axios.js

@@ -8,6 +8,7 @@ const service = axios.create({
 	timeout: 20000,
 	headers: {
 		'Content-Type': 'application/x-www-form-urlencoded',
+		// 'Referer':'app109758.eapps.dingtalkcloud.com'
 	},
 	transformRequest: [function(data) {
 		return qs.stringify(data)

+ 1 - 0
src/assets/css/reset.css

@@ -28,6 +28,7 @@ table { border-collapse:collapse; border-spacing:0; }
 }
 .boxMinHeight{
   min-height: calc(100vh - 160px);
+  min-width: 1100px !important;
 }
 
 .el-form-item__content{

BIN
src/assets/image/APP2.png


BIN
src/assets/image/app.png


BIN
src/assets/image/logo.png


BIN
src/assets/image/nav_jx_1.jpg


BIN
src/assets/image/nav_jx_2.jpg


BIN
src/assets/image/nav_jx_3.jpg


BIN
src/assets/image/nav_jx_4.jpg


+ 8 - 8
src/components/evaluate/Flow - 副本.vue

@@ -29,7 +29,7 @@
 									<el-radio :label="4">管理员(指定一级)</el-radio>
 								</el-radio-group>
 								<div class="flex-box-ce" style="margin-top: 10px;" v-show="target.type == 4">
-									<span>被考人的</span>
+									<span>被考人的</span>
 									<el-select v-model="target.manager_level" placeholder="请选择级别" style="margin: 0 10px;">
 										<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
 									</el-select>
@@ -104,7 +104,7 @@
 									<el-radio :label="2">指定成员</el-radio>
 								</el-radio-group>
 								<div class="flex-box-ce" style="margin-top: 10px;" v-show="cc.type == 1">
-									<span>被考人的</span>
+									<span>被考人的</span>
 									<el-select v-model="cc.manager_level" placeholder="请选择级别" style="margin: 0 10px;">
 										<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
 									</el-select>
@@ -448,27 +448,27 @@ export default {
 			options: [
 				{
 					value: 1,
-					label: '直接管理员'
+					label: '一级部门主管'
 				},
 				{
 					value: 2,
-					label: '二级管理员'
+					label: '二级部门主管'
 				},
 				{
 					value: 3,
-					label: '三级管理员'
+					label: '三级部门主管'
 				},
 				{
 					value: 4,
-					label: '四级管理员'
+					label: '四级部门主管'
 				},
 				{
 					value: 5,
-					label: '五级管理员'
+					label: '五级部门主管'
 				},
 				{
 					value: 6,
-					label: '六级管理员'
+					label: '六级部门主管'
 				}
 			]
 		};

+ 8 - 8
src/components/evaluate/Flow.vue

@@ -33,7 +33,7 @@
 									<el-radio :label="4">管理员(指定一级)</el-radio>
 								</el-radio-group>
 								<div class="flex-box-ce" style="margin-top: 10px;" v-show="target.type == 4">
-									<span>被考人的</span>
+									<span>被考人的</span>
 									<el-select v-model="target.manager_level" placeholder="请选择级别" style="margin: 0 10px;">
 										<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
 									</el-select>
@@ -110,7 +110,7 @@
 									<el-radio :label="2">指定成员</el-radio>
 								</el-radio-group>
 								<div class="flex-box-ce" style="margin-top: 10px;" v-show="cc.type == 1">
-									<span>被考人的</span>
+									<span>被考人的</span>
 									<el-select v-model="cc.manager_level" placeholder="请选择级别" style="margin: 0 10px;">
 										<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
 									</el-select>
@@ -455,27 +455,27 @@ export default {
 			options: [
 				{
 					value: 1,
-					label: '直接管理员'
+					label: '一级部门主管'
 				},
 				{
 					value: 2,
-					label: '二级管理员'
+					label: '二级部门主管'
 				},
 				{
 					value: 3,
-					label: '三级管理员'
+					label: '三级部门主管'
 				},
 				{
 					value: 4,
-					label: '四级管理员'
+					label: '四级部门主管'
 				},
 				{
 					value: 5,
-					label: '五级管理员'
+					label: '五级部门主管'
 				},
 				{
 					value: 6,
-					label: '六级管理员'
+					label: '六级部门主管'
 				}
 			]
 		};

+ 6 - 6
src/components/evaluate/Template.vue

@@ -133,7 +133,7 @@
 						<span v-if="scope.row.result_type == 'none'">不开启</span>
 						<span v-if="scope.row.result_type == 'self'">被考核人</span>
 						<span v-if="scope.row.result_type == 'special'">指定员工 ({{ scope.row.result_employee_name }})</span>
-						<span v-if="scope.row.result_type == 'supervisor'">直接管理员</span>
+						<span v-if="scope.row.result_type == 'supervisor'">一级部门主管</span>
 					</template>
 				</el-table-column>
 				<el-table-column prop="reviewer_name" label="指定评分人"></el-table-column>
@@ -205,7 +205,7 @@
 						<el-input v-model="addIndexForm.name" placeholder="请输入指标名称" maxlength="30" show-word-limit></el-input>
 					</el-form-item>
 					<el-form-item :label="fromName" prop="per_remark">
-						<el-input type="textarea" placeholder="请输入" v-model="addIndexForm.per_remark" autosize clearable show-word-limit maxlength="500"></el-input>
+						<el-input type="textarea" placeholder="请输入" v-model="addIndexForm.per_remark"  autosize  show-word-limit maxlength="500"></el-input>
 					</el-form-item>
 					<el-form-item label="加分上限" prop="point_limit" v-if="addIndexForm.type == 3">
 						<el-input placeholder="请输入加分上限" v-model="addIndexForm.point_limit" id="input3" @input="checkCountry2('input3')"></el-input>
@@ -214,7 +214,7 @@
 						<el-input placeholder="请输入扣分上限" v-model="addIndexForm.point_limit" id="input4" @input="checkCountry2('input4')"></el-input>
 					</el-form-item>
 					<el-form-item label="备注:" prop="remark">
-						<el-input type="textarea" placeholder="请输入" v-model="addIndexForm.remark" :rows="4" show-word-limit maxlength="500"></el-input>
+						<el-input type="textarea" placeholder="请输入" v-model="addIndexForm.remark" autosize show-word-limit maxlength="500"></el-input>
 					</el-form-item>
 					<el-form-item label="目标值:" prop="target" v-if="addIndexForm.type == 1">
 						<el-input v-model="addIndexForm.target" placeholder="请输入目标值"></el-input>
@@ -236,7 +236,7 @@
 							<el-option label="不开启" value="none"></el-option>
 							<el-option label="被考核人" value="self"></el-option>
 							<el-option label="指定员工" value="special"></el-option>
-							<el-option label="直接管理员" value="supervisor"></el-option>
+							<el-option label="一级部门主管" value="supervisor"></el-option>
 						</el-select>
 						<div style="position: relative;margin-top: 10px;" v-if="addIndexForm.result_type == 'special'" class="width-250">
 							<el-input v-model="assignUser.name" placeholder="请选择指定员工"></el-input>
@@ -1103,7 +1103,7 @@ export default {
 }
 .pop-up {
 	position: sticky;
-	top: 0px;
+	top: -10px;
 	z-index: 999;
 	background-color: #fff;
 	padding: 10px 0;
@@ -1126,7 +1126,7 @@ export default {
 }
 ::v-deep .el-dialog__body {
 	padding: 20px;
-	padding-top: 0px;
+	/* padding-top: 0px; */
 }
 .all {
 	font-size: 14px;

+ 7 - 7
src/components/flow/Affirm - 副本.vue

@@ -34,7 +34,7 @@
                 <el-radio :label="3">被考核人</el-radio>
               </el-radio-group>
               <div class="flex-box-ce" style="margin-top: 10px;" v-show="item.type == 1">
-                <span>被考人的</span>
+                <span>被考人的</span>
                 <el-select v-model="item.manager_level" placeholder="请选择级别"  style="margin: 0 10px;">
                   <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
                 </el-select>
@@ -121,27 +121,27 @@ export default {
       options: [
         {
           value: 1,
-          label: '直接管理员'
+          label: '一级部门主管'
         },
         {
           value: 2,
-          label: '二级管理员'
+          label: '二级部门主管'
         },
         {
           value: 3,
-          label: '三级管理员'
+          label: '三级部门主管'
         },
         {
           value: 4,
-          label: '四级管理员'
+          label: '四级部门主管'
         },
         {
           value: 5,
-          label: '五级管理员'
+          label: '五级部门主管'
         },
         {
           value: 6,
-          label: '六级管理员'
+          label: '六级部门主管'
         }
       ]
     };

+ 7 - 7
src/components/flow/Affirm.vue

@@ -36,7 +36,7 @@
                 <el-radio :label="3">被考核人</el-radio>
               </el-radio-group>
               <div class="flex-box-ce" style="margin-top: 10px;" v-show="item.type == 1">
-                <span>被考人的</span>
+                <span>被考人的</span>
                 <el-select v-model="item.manager_level" placeholder="请选择级别"  style="margin: 0 10px;">
                   <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
                 </el-select>
@@ -125,27 +125,27 @@ export default {
       options: [
         {
           value: 1,
-          label: '直接管理员'
+          label: '一级部门主管'
         },
         {
           value: 2,
-          label: '二级管理员'
+          label: '二级部门主管'
         },
         {
           value: 3,
-          label: '三级管理员'
+          label: '三级部门主管'
         },
         {
           value: 4,
-          label: '四级管理员'
+          label: '四级部门主管'
         },
         {
           value: 5,
-          label: '五级管理员'
+          label: '五级部门主管'
         },
         {
           value: 6,
-          label: '六级管理员'
+          label: '六级部门主管'
         }
       ]
     };

+ 7 - 7
src/components/flow/Examine - 副本.vue

@@ -33,7 +33,7 @@
                 <el-radio :label="3">被考核人</el-radio>
               </el-radio-group>
               <div class="flex-box-ce" style="margin-top: 10px;" v-show="item.type == 1">
-                <span>被考人的</span>
+                <span>被考人的</span>
                 <el-select v-model="item.manager_level" placeholder="请选择级别"  style="margin: 0 10px;">
                   <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
                 </el-select>
@@ -116,27 +116,27 @@ export default {
       options: [
         {
           value: 1,
-          label: '直接管理员'
+          label: '一级部门主管'
         },
         {
           value: 2,
-          label: '二级管理员'
+          label: '二级部门主管'
         },
         {
           value: 3,
-          label: '三级管理员'
+          label: '三级部门主管'
         },
         {
           value: 4,
-          label: '四级管理员'
+          label: '四级部门主管'
         },
         {
           value: 5,
-          label: '五级管理员'
+          label: '五级部门主管'
         },
         {
           value: 6,
-          label: '六级管理员'
+          label: '六级部门主管'
         }
       ]
     };

+ 7 - 7
src/components/flow/Examine.vue

@@ -34,7 +34,7 @@
                 <el-radio :label="3">被考核人</el-radio>
               </el-radio-group>
               <div class="flex-box-ce" style="margin-top: 10px;" v-show="item.type == 1">
-                <span>被考人的</span>
+                <span>被考人的</span>
                 <el-select v-model="item.manager_level" placeholder="请选择级别"  style="margin: 0 10px;">
                   <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
                 </el-select>
@@ -119,27 +119,27 @@ export default {
       options: [
         {
           value: 1,
-          label: '直接管理员'
+          label: '一级部门主管'
         },
         {
           value: 2,
-          label: '二级管理员'
+          label: '二级部门主管'
         },
         {
           value: 3,
-          label: '三级管理员'
+          label: '三级部门主管'
         },
         {
           value: 4,
-          label: '四级管理员'
+          label: '四级部门主管'
         },
         {
           value: 5,
-          label: '五级管理员'
+          label: '五级部门主管'
         },
         {
           value: 6,
-          label: '六级管理员'
+          label: '六级部门主管'
         }
       ]
     };

+ 7 - 7
src/components/flow/SuperiorFlow - 副本.vue

@@ -32,7 +32,7 @@
                 <el-radio :label="2">指定成员</el-radio>
               </el-radio-group>
               <div class="flex-box-ce" style="margin-top: 10px;" v-show="item.type == 1">
-                <span>被考人的</span>
+                <span>被考人的</span>
                 <el-select v-model="item.manager_level" placeholder="请选择级别"  style="margin: 0 10px;">
                   <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
                 </el-select>
@@ -142,27 +142,27 @@ export default {
       options: [
         {
           value: 1,
-          label: '直接管理员'
+          label: '一级部门主管'
         },
         {
           value: 2,
-          label: '二级管理员'
+          label: '二级部门主管'
         },
         {
           value: 3,
-          label: '三级管理员'
+          label: '三级部门主管'
         },
         {
           value: 4,
-          label: '四级管理员'
+          label: '四级部门主管'
         },
         {
           value: 5,
-          label: '五级管理员'
+          label: '五级部门主管'
         },
         {
           value: 6,
-          label: '六级管理员'
+          label: '六级部门主管'
         }
       ]
     };

+ 8 - 8
src/components/flow/SuperiorFlow.vue

@@ -43,7 +43,7 @@
 								<el-radio :label="2">指定成员</el-radio>
 							</el-radio-group>
 							<div class="flex-box-ce" style="margin-top: 10px;" v-show="item.type == 1">
-								<span>被考人的</span>
+								<span>被考人的</span>
 								<el-select v-model="item.manager_level" placeholder="请选择级别" style="margin: 0 10px;">
 									<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option>
 								</el-select>
@@ -78,7 +78,7 @@
 							</el-input>
 							<el-popover placement="bottom" width="450" trigger="hover">
 								<div style="padding: 10px;width: 100%;" class="flex-box"><img src="@/assets/image/ts.png" style="width: 100%; height: auto;" /></div>
-								<span slot="reference"><i class="fontColorF el-icon-warning"></i></span>
+								<span slot="reference"><i class="fontColorF el-icon-warning" style="padding-left: 5px;"></i></span>
 							</el-popover>
 						</el-form-item>
 						<el-form-item>
@@ -166,27 +166,27 @@ export default {
 			options: [
 				{
 					value: 1,
-					label: '直接管理员'
+					label: '一级部门主管'
 				},
 				{
 					value: 2,
-					label: '二级管理员'
+					label: '二级部门主管'
 				},
 				{
 					value: 3,
-					label: '三级管理员'
+					label: '三级部门主管'
 				},
 				{
 					value: 4,
-					label: '四级管理员'
+					label: '四级部门主管'
 				},
 				{
 					value: 5,
-					label: '五级管理员'
+					label: '五级部门主管'
 				},
 				{
 					value: 6,
-					label: '六级管理员'
+					label: '六级部门主管'
 				}
 			]
 		};

+ 12 - 11
src/components/public/ActionPlan.vue

@@ -39,10 +39,10 @@
                 :key="index"
               >
                 <div class="plan-title flex-1">{{ item.title }}</div>
-                <template v-if="item.images">
-                   <i v-if="item.images.length > 0" class="el-icon-picture fontColorB" style="font-size: 18px;padding-right: 10px;"></i>
-                </template>
-                <i v-if="item.append" class="el-icon-paperclip fontColorB" style="font-size: 18px;padding-right: 10px;"></i>
+<!--                <template v-if="item.append">
+                   <i v-if="item.append.length > 0" class="el-icon-picture fontColorB" style="font-size: 18px;padding-right: 10px;"></i>
+                </template> -->
+                <i v-if="item.append.length > 0" class="el-icon-paperclip fontColorB" style="font-size: 18px;padding-right: 10px;"></i>
                 <div style="position: relative;top: 3px;">{{ item.date }}</div>
               </div>
             </div>
@@ -82,14 +82,15 @@
               ></el-input>
 			  <div style="margin-bottom: 20px;" class="flex-box-ce fontColorF">
 			  	<el-button class="primaryBtn" icon="el-icon-paperclip" plain size="small" @click="uploadOss">附件</el-button>
-			  	<div style="padding-left:10px">附件存放在企业钉盘,请确保钉盘有足够空间</div>
-			  </div>
-			  <div class="">
-			  	<div v-for="(item, index) in planData.append" style="cursor: pointer;" :key="index" class="blue">
-			  		<span @click="openImg(item)">{{ item.fileName }}</span>
-			  		<span class="red" style="padding-left:10px" @click="deleteFile(index)">删除</span>
-			  	</div>
+			  	<div style="padding-left:10px;font-size: 12px;">附件存放在企业钉盘,请确保钉盘有足够空间</div>
 			  </div>
+			<div class="">
+				<div v-for="(item, index) in planData.append" style="cursor: pointer;margin-bottom: 5px;" :key="index" class="blue flex-box-ce">
+					<i  class="el-icon-paperclip fontColorB" style="font-size: 18px;padding-right: 10px;"></i>
+					<div style="width: 400px;" class="font-flex-word" @click="openImg(item)">{{ item.fileName }}</div>
+					<i class="el-icon-close fontColorB" @click="deleteFile(index)" style="font-size: 18px;padding-left: 10px;"></i>
+				</div>
+			</div>
 			  
 			  
 <!--              <div class="flex-box">

+ 6 - 9
src/components/public/TrackManagement.vue

@@ -40,11 +40,7 @@
 							>
 								<div class="flex-box-ce">
 									<div class="plan-right-name flex-1" v-if="item.employee_id">记录人:{{ $getEmployeeList()[item.employee_id].name }}</div>
-									<template v-if="item.images">
-										<i v-if="item.images.length > 0" class="el-icon-picture fontColorB" style="font-size: 18px;padding-right: 10px;"></i>
-									</template>
-									<!-- <i v-if="item.images.length > 0" class="el-icon-picture fontColorB" style="font-size: 18px;padding-right: 10px;"></i> -->
-									<i v-if="item.append" class="el-icon-paperclip fontColorB" style="font-size: 18px;padding-right: 10px;"></i>
+									<i v-if="item.append.length > 0" class="el-icon-paperclip fontColorB" style="font-size: 18px;padding-right: 10px;"></i>
 									<div class="fontColorB">{{ item.date }}</div>
 								</div>
 								<div class="plan-title">{{ item.title }}</div>
@@ -86,12 +82,13 @@
 							></el-input>
 							<div style="margin-bottom: 20px;" class="flex-box-ce fontColorF">
 								<el-button class="primaryBtn" icon="el-icon-paperclip" plain size="small" @click="uploadOss">附件</el-button>
-								<div style="padding-left:10px">附件存放在企业钉盘,请确保钉盘有足够空间</div>
+								<div style="padding-left:10px;font-size: 12px;">附件存放在企业钉盘,请确保钉盘有足够空间</div>
 							</div>
 							<div class="">
-								<div v-for="(item, index) in planData.append" style="cursor: pointer;" :key="index" class="blue">
-									<span @click="openImg(item)">{{ item.fileName }}</span>
-									<span class="red" style="padding-left:10px" @click="deleteFile(index)">删除</span>
+								<div v-for="(item, index) in planData.append" style="cursor: pointer;margin-bottom: 5px;" :key="index" class="blue flex-box-ce">
+									<i class="el-icon-paperclip fontColorB" style="font-size: 18px;padding-right: 10px;"></i>
+									<div style="width: 400px;" class="font-flex-word" @click="openImg(item)">{{ item.fileName }}</div>
+									<i class="el-icon-close red" @click="deleteFile(index)" style="font-size: 18px;padding-left: 10px;"></i>
 								</div>
 							</div>
 							<!-- 							<div style="margin-bottom: 20px;">

+ 1 - 1
src/components/set/EvaluateSet.vue

@@ -12,7 +12,7 @@
       <div style="margin-top: 20px;">
         <div class="yellow">相同岗位且考核流程一致时,可建立同一个考核表;考核流程不同时,请分开多个考核表进行考核</div>
         <el-table stripe :data="tableData" class="table-box scroll-bar" style="width: 100%;" v-loading="loading">
-          <el-table-column prop="name" sortable label="名称">
+          <el-table-column prop="name" width="600px" sortable label="名称">
             <template slot-scope="scope">
               <PreBox :value="scope.row.name"></PreBox>
             </template>

+ 6 - 5
src/components/set/IndexSet.vue

@@ -77,13 +77,13 @@
                 </el-tooltip>
               </template>
             </el-table-column>
-            <el-table-column prop="name" sortable label="名称">
+            <el-table-column prop="name"  label="名称">
               <template slot-scope="scope">
                 <PreBox :value="scope.row.name"></PreBox>
               </template>
             </el-table-column>
             <el-table-column prop="cate_name"  label="指标分类"></el-table-column>
-            <el-table-column prop="type" sortable label="指标类型">
+            <el-table-column prop="type"  label="指标类型">
               <template slot-scope="scope">
                 <span v-if="scope.row.type == 1">量化指标</span>
                 <span v-if="scope.row.type == 2">非量化指标</span>
@@ -155,7 +155,7 @@
     <!-- 移动 -->
     <BrawerBox drawerTitle="移动到" :showDrawer.sync="showMove">
       <template slot="main">
-        <el-input placeholder="选择分类" v-model="cateVal" clearable></el-input>
+        <el-input placeholder="请输入分类名称搜索" v-model="cateVal" clearable></el-input>
         <ul style="margin-top: 20px;">
           <li v-for="(item, index) in indexTypeList" :key="index" class="flex-box-ce li" v-if="item.id != 0 && item.name.indexOf(cateVal) >= 0">
             <el-radio v-model="selectCateId" :label="item.id" class="flex-box-ce flex-1" style="padding: 15px 0;">
@@ -527,7 +527,6 @@ export default {
     handleSuccess(res) {
 	console.log(res)
       if (res.code == 1) {
-        // this.file = response.data;
 		this.import_rules_show = false;
 		this.$message.success({ message: res.msg });
 		if (res.data.error.length != 0) {
@@ -536,7 +535,9 @@ export default {
 		} else {
 		  this.getIndexList();
 		}
-      }
+      }else{
+		  this.$message.error({ message: res.msg });
+	  }
     },
     // 删除文件的回调
     handleRemove(file, fileList) {

+ 9 - 7
src/components/set/JurisdictionSet.vue

@@ -59,8 +59,8 @@
     <div>
       <!-- <div class="title-f fontColorB">其他角色权限说明</div> -->
       <div class="title-f">
-        <div class="title">部门管理员</div>
-        <div class="text fontColorB">部门管理员在【组织架构】设置,可以对管理范围下的员工进行沟通反馈,评分,查看考核结果</div>
+        <div class="title">部门管</div>
+        <div class="text fontColorB">部门主管在【钉钉的组织架构】中设置,可对部门及子部门员工进行绩效指导、过程监督、评分以及查看结果</div>
       </div>
       <div class="title-f">
         <div class="title">普通员工</div>
@@ -111,7 +111,7 @@
           </el-form-item>
           <el-form-item label="特定考核表:" v-show="isReviewShow2 && isReviewShow">
             <el-button @click="openKp()" plain class="primaryBtn" >请选择</el-button>
-            <div v-for="(item, index) in selectGroup">
+            <div v-for="(item, index) in selectGroup" :key="index">
               <el-tag type="success">{{ item.name }}</el-tag>
             </div>
           </el-form-item>
@@ -189,14 +189,16 @@ export default {
             { label: '发起考核', id: '7', check: true },
             { label: '开始评分', id: '8', check: true },
             { label: '调整结果', id: '9', check: true },
-            { label: '调整等级', id: '10', check: true },
-            { label: '导出报表', id: '11', check: true }
+            // { label: '调整等级', id: '10', check: true },
+            { label: '导出报表', id: '11', check: true },
+			{ label: '批量转交', id: '17', check: true },
+			{ label: '批量修改目标值', id: '18', check: true },
           ]
         },
         { label: '指标库', id: '12', check: true },
         { label: '基础设置', id: '15', check: true },
         { label: '绩效报表', id: '16', check: true },
-        { label: '考核设置', id: 'kp', check: true }
+        { label: '考核设置', id: 'kp', check: true }
       ],
       selected: { employee: [], dept: [] },
       // 考核表
@@ -549,7 +551,7 @@ export default {
       }
 	 let data={
 		 id_code:this.$returnCode(e.employee[0].id),
-		 permission:'1,2,3,6,7,8,9,10,11,14,15,16',
+		 permission:'1,2,3,6,7,8,9,10,11,14,15,16,17,18',
 		 main:1
 	 }
       this.$axios('post', '/api/per/user/add_sub_manager', data).then(res => {

+ 8 - 8
src/index.vue

@@ -2,11 +2,11 @@
 	<el-container class="container-all">
 		<el-header class="el-header flex-box-ce">
 			<div class="logo-box flex-box flex-center-center" @click="openHome()">
-				<!-- <img src="@/assets/image/logo.png" class="logo" /> -->
-				<div>功道云</div>
+				<img src="@/assets/image/logo.png" class="logo" />
+				<div>功道云绩效</div>
 			</div>
 			<div class="flex-1 flex-box-ce" style="padding: 0 20px;">
-				<div class="flex-1">绩效系统</div>
+				<div class="flex-1">{{userInfo.site.name}}</div>
 				<div class="flex-box flex-center-center PCtutorials" v-if="getRole" @click="strategys">
 					<svg-icon icon-class="PCtutorial" style="margin-right: 10px;position: relative;top: 0px;font-size: 18px;" />
 					<span>新手引导</span>
@@ -62,10 +62,10 @@ export default {
 			usingTheStrategy: false,
 			tutorialsvisible: false,
 			navList: [
-				{ name: '去"新建考核表"', image: require('@/assets/image/nav_jx_1.png'), paths: 'evaluate' },
-				{ name: '去"发起考核"', image: require('@/assets/image/nav_jx_2.png'), paths: 'sponsorAssess' },
-				{ name: '看"考核管理"', image: require('@/assets/image/nav_jx_3.png'), paths: 'assessManagement' },
-				{ name: '看"绩效报表"', image: require('@/assets/image/nav_jx_4.png'), paths: 'statement' }
+				{ name: '去"新建考核表"', image: require('@/assets/image/nav_jx_1.jpg'), paths: 'evaluate' },
+				{ name: '去"发起考核"', image: require('@/assets/image/nav_jx_2.jpg'), paths: 'sponsorAssess' },
+				{ name: '看"考核管理"', image: require('@/assets/image/nav_jx_3.jpg'), paths: 'assessManagement' },
+				{ name: '看"绩效报表"', image: require('@/assets/image/nav_jx_4.jpg'), paths: 'statement' }
 			],
 			navNew: 0,
 
@@ -364,7 +364,7 @@ export default {
 	height: calc(100vh - 60px);
 	overflow-y: scroll;
 	padding: 10px;
-	min-width: 1100px;
+	min-width: 900px;
 }
 .logo-box {
 	max-width: 400px;

+ 5 - 3
src/main.js

@@ -69,9 +69,9 @@ Vue.component('NoData', NoData)
 Vue.component('BrawerBox', BrawerBox)
 Vue.use(ElementUI);
 
-if (process.env.NODE_ENV === 'development') {
-  // new VConsole()
-}
+// if (process.env.NODE_ENV === 'development') {
+  new VConsole()
+// }
 
 Vue.prototype.$moment = moment
 Vue.prototype.$echarts = echarts
@@ -96,6 +96,8 @@ Vue.prototype.$13 = 13
 Vue.prototype.$14 = 14
 Vue.prototype.$15 = 15
 Vue.prototype.$16 = 16
+Vue.prototype.$17 = 17
+Vue.prototype.$18 = 18
 
 Vue.prototype.$http = service;
 var CancelToken = axios.CancelToken;

+ 1 - 1
src/noAccess.vue

@@ -1,6 +1,6 @@
 <template>
 	<div class="NoData flex-box flex-center-center">
-		<img  src="@/assets/image/APP2.png" class="appImg"/>
+		<img  src="@/assets/image/app.png" class="appImg"/>
 		<div>
 			<div>当前用户未授权进入系统,请联系管理员为您【启用绩效管理】,<br/>如需咨询客服,请到您企业专属的功道云服务群咨询</div>
 		</div>

+ 4 - 4
src/router/index.js

@@ -21,7 +21,7 @@ const routes = [{
 				component: () => import('@/views/job/home'),
 				meta: {
 					role: ['creator', 'masterAdministrator', 'childAdministrator', 'deptManager', 'employee'],
-					jurisdiction: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
+					jurisdiction: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,17,18]
 				},
 				label: '工作台'
 			},
@@ -32,7 +32,7 @@ const routes = [{
 				component: () => import('@/views/assessManagement/assessManagement'),
 				meta: {
 					role: ['masterAdministrator', 'childAdministrator', 'deptManager'],
-					jurisdiction: [7, 8, 9, 10, 11]
+					jurisdiction: [7, 8, 9, 10, 11,,17,18]
 				},
 				label: '考核管理'
 			},
@@ -43,7 +43,7 @@ const routes = [{
 				component: () => import('@/views/myPerformance/myPerformance'),
 				meta: {
 					role: ['creator', 'masterAdministrator', 'childAdministrator', 'deptManager', 'employee'],
-					jurisdiction: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
+					jurisdiction: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,17,18]
 				},
 				label: '我的绩效'
 			},
@@ -87,7 +87,7 @@ const routes = [{
 				component: () => import( /* webpackChunkName: "CNC_center" */ '@/views/CNC/CNC_center'),
 				meta: {
 					role: ['creator', 'masterAdministrator', 'childAdministrator', 'deptManager', 'employee'],
-					jurisdiction: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]
+					jurisdiction: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,17,18]
 				},
 				label: '数据中台'
 			},

+ 30 - 17
src/views/CNC/CNC_center.vue

@@ -77,7 +77,7 @@
             ></el-date-picker>
 
             <div class="flex-1"></div>
-            <el-button type="primary" v-if="$supremeAuthority() != 'employee'" @click="excelImportShow = true">导入数据</el-button>
+            <el-button type="primary" v-if="getRole" @click="excelImportShow = true">导入数据</el-button>
           </div>
           <div class="right-box-Chart"><div ref="rightBoxEChart" :style="{ width: '100%', height: '550px' }"></div></div>
         </div>
@@ -151,7 +151,7 @@
       </div>
 
       <!-- 静态数据界面 -->
-      <div class="right-box flex-1" style="padding: 0 20px" v-else>
+      <div class="right-box flex-1" v-else>
         <div>
           <div class="right-title">
             <h2>
@@ -374,9 +374,9 @@
     <el-dialog title="导入统计项" width="600px" :visible.sync="excelImportShow" :close-on-click-modal="false" :before-close="close_import">
       <div style="padding:0 50px;">
         <div class="align-center" style="margin-bottom:20px;">
-          <p>
+          <p style="margin-bottom: 10px;">
             1、下载统计项模版,批量录入统计项
-            <el-button type="primary" @click="downloadTemplate" plain>下载模板</el-button>
+            <el-button type="primary" @click="downloadTemplate" plain size="mini">下载模板</el-button>
           </p>
           <el-upload
             :limit="1"
@@ -389,7 +389,7 @@
           >
             <p>
               2、上传统计项数据Excel表
-              <el-button type="primary" plain>上传文件</el-button>
+              <el-button type="primary" plain size="mini">上传文件</el-button>
             </p>
           </el-upload>
           <!-- <p>3、选择文件后点击下方【上传】按钮</p> -->
@@ -678,19 +678,20 @@ export default {
       }
     },
     handlePictureCardPreview(res) {
-		if (res.data.validation.length > 0) {
-		    this.$message({ type: 'error', message: '导入错误' });
-		    this.error_list = res.data.validation;
-		    this.importErrorInfoShow = true;
-		}else if(res.data.exception){
-		    this.$message({ type: 'error', message: res.data.exception });
+		if(res.code==1){
+			if (res.data.validation.length > 0) {
+			    this.$message({ type: 'error', message: '导入错误' });
+			    this.error_list = res.data.validation;
+			    this.importErrorInfoShow = true;
+			}else if(res.data.exception){
+			    this.$message({ type: 'error', message: res.data.exception });
+			}else{
+			    this.$message({ type: 'success', message: '导入成功' });
+			    this.excelImportShow = false;
+			}
 		}else{
-		    this.$message({ type: 'success', message: '导入成功' });
-		    this.excelImportShow = false;
+			  this.$message.error({ message: res.msg });
 		}
-      // if (response.code == 1) {
-      //   this.file = response.data;
-      // }
     },
     downloadTemplate() {
       window.open(this.$serverdomain + '/api/download/ds/template?cate_name=' + encodeURI(this.statisticsData.name));
@@ -1319,6 +1320,7 @@ export default {
         });
     },
     rightBoxchartData(list, monList, dataUnit) {
+		console.log(list, monList, dataUnit)
       let unit = dataUnit.unit;
       let titunit = '';
       if (unit && unit != '') {
@@ -1591,7 +1593,9 @@ export default {
     fike_eChartsData() {
       let years = this.fike_List.fike_from.year;
       let Time;
-      if (years == '2020' || years == '2021') {
+	  var date = new Date();
+	  let nian=date.getFullYear(); //获取当前完整的年份(4位)
+      if (years == nian-1 || years == nian) {
         Time = this.fike_List.fike_now_Data.data;
       } else {
         Time = fike_static(-1)[0];
@@ -1647,6 +1651,10 @@ export default {
 };
 </script>
 <style lang="scss" scoped>
+ h2{
+	 font-weight: 700;
+	 font-size: 20px;
+ }
 .all {
   padding: 0 20px 20px;
   background: #fff;
@@ -1815,6 +1823,11 @@ export default {
     text-align: center;
   }
 }
+.box-sizing-w {
+    width: 250px;
+    -webkit-box-sizing: border-box;
+    box-sizing: border-box;
+}
 .settingFalse {
   ::v-deep .el-table {
     .el-table__header {

+ 1 - 1
src/views/assessManagement/addPersonnel.vue

@@ -3,7 +3,7 @@
     <PageHead phName="添加人员"></PageHead>
     <div class="main">
         <el-form :model="personForm" ref="configuration" label-width="140px">
-          <el-form-item label="考人员:">
+          <el-form-item label="考人员:">
             <div class="border flex-box-ce">
               <div class="flex-1" v-if="users.length == 0">请选择参与人员</div>
               <div v-else style="width: 180px;" class="font-flex-word">

+ 35 - 11
src/views/assessManagement/assessDetails.vue

@@ -281,15 +281,19 @@
 						<span>{{ theResultsList.final_point }}</span>
 					</div>
 					<br />
-					<div class="flex-box">
-						<span style="line-height:36px;">新考核结果:</span>
+					<div class="flex-box" style="margin-bottom: 10px;">
+						<span style="line-height:36px;width: 90px;">新考核结果:</span>
 						<el-input
 							v-model="theResultInp"
 							@input="theResultInp = theResultInp.match(/\d+(\.\d{0,2})?/) ? theResultInp.match(/\d+(\.\d{0,2})?/)[0] : ''"
-							style="width:250px;"
+							style="width:350px;"
 							placeholder="请输入新考核结果"
 						></el-input>
 					</div>
+					<div class="flex-box">
+						<span style="line-height:36px; width: 90px;">调整原因:</span>
+						 <el-input type="textarea" v-model="comment" style="width:350px;"  rows="4" placeholder="请输入调整原因" clearable maxlength="200" show-word-limit></el-input>
+					</div>
 				</div>
 				<div v-else>
 					<div>
@@ -416,8 +420,8 @@ export default {
 				{ key: 'b', name: '结果公布', isShow: true },
 				{ key: 'c', name: '导出明细', bordok: true, isShow: this.$isAuthoritys(this.$11) },
 				{ key: 'd', name: '导出结果', isShow: this.$isAuthoritys(this.$11) },
-				{ key: 'y', name: '批量修改目标值', isShow: true },
-				{ key: 'j', name: '批量转交', isShow: true },
+				{ key: 'j', name: '批量转交', isShow: this.$isAuthoritys(this.$17) },
+				{ key: 'y', name: '批量修改目标值', isShow: this.$isAuthoritys(this.$18) },
 				// { key: 'e', name: '自定义导出' },
 				// { key: 'f', name: '批量操作', bordok: true },
 				{ key: 'h', name: '归档&统计', bordok: true, isShow: false },
@@ -461,6 +465,8 @@ export default {
 
 			isDerive: false ,//导出执行人员
 			pending:false,
+			
+			comment:'',//
 		};
 	},
 	components: { PageHead, JxSearch, EmployeeSelector, BrawerBox },
@@ -689,11 +695,20 @@ export default {
 				.catch(() => {});
 		},
 		savecomtheResults(dataId, db) {
+			if(!this.theResultInp){
+				this.$message.warning('请输入新的考核结果');
+				return;
+			}
+			if(!this.comment){
+				this.$message.warning('请输入调整原因');
+				return;
+			}
 			this.theResultsButid = true;
 			let data = {
 				id: dataId,
 				change_type: db,
-				point: this.theResultInp
+				point: this.theResultInp,
+				comment:this.comment,
 			};
 			this.$axios('post', '/api/per/package/adjustment', data)
 				.then(res => {
@@ -704,6 +719,7 @@ export default {
 				})
 				.finally(() => {
 					setTimeout(() => {
+						this.comment='';
 						this.theResultsButid = false;
 					}, 300);
 				});
@@ -729,8 +745,10 @@ export default {
 			});
 		},
 		// 更多-选择人员
-		returnText(str) {
+		returnText() {
 			let text = `【${this.packageName}】准备中,请及时完成目标制定`;
+			let str=this.navcli
+			console.log(str)
 			switch (str) {
 				case 1:
 					text = `【${this.packageName}】准备中,请及时完成目标制定`;
@@ -868,13 +886,19 @@ export default {
 				.then(res => {
 					let groups = res.data.data.groups;
 					this.all_finish = res.data.data.all_finish;
-					this.all_process_done = res.data.data.all_process_done;
+					this.all_process_done = res.data.data.all_process_done;employees
+					let employees = res.data.data.employees;
 					this.dropdownMenu.forEach((item, index) => {
 						if (item.key == 'h' && !this.all_finish && this.all_process_done) {
 							if (this.all_finish) {
 								this.$set(this.dropdownMenu[index], 'isShow', false);
 							} else {
-								this.$set(this.dropdownMenu[index], 'isShow', true);
+								var isTrue = employees.every((x)=>{
+									return x.publicity == 1;
+								});
+								if(this.$isAuthoritys(this.$3)&&isTrue){
+									this.$set(this.dropdownMenu[index], 'isShow', true);
+								}
 							}
 						}
 					});
@@ -888,7 +912,7 @@ export default {
 					this.scoreGroup = groups; //评分考核表
 					this.GroupList = groups; //考核表搜索
 					// 公式结果数据
-					let employees = res.data.data.employees;
+					// let employees = res.data.data.employees;
 					let employee_list = [];
 					let employee = [];
 					employees.forEach(item => {
@@ -1132,7 +1156,7 @@ header {
 			border: 1px solid #e0e0e0;
 			border-radius: 3px;
 			line-height: 40px;
-			font-size: 12px;
+			font-size: 14px;
 			padding: 0 10px;
 			overflow: hidden;
 			white-space: nowrap;

+ 1 - 1
src/views/assessManagement/assessManagement.vue

@@ -22,7 +22,7 @@
             <div style="width:55px;text-align:center;">{{ scope.row.employee_num_all }}</div>
           </template>
         </el-table-column>
-		<el-table-column prop="date" label="我管理的(人)">
+		<el-table-column prop="date" label="我的团队(人)">
 			<template slot-scope="scope">
 			  <div style="width:55px;text-align:center;">{{ scope.row.employee_num }}</div>
 			</template>

+ 1 - 1
src/views/assessManagement/careOf.vue

@@ -39,7 +39,7 @@
       </div> -->
 		</div>
 		<div class="footer" style="padding-left: 70px;margin-top: 40px;"><el-button type="primary" @click="submitForm()" round style="width: 150px;">批量转交</el-button></div>
-		<el-dialog title="转交结果" :visible.sync="isResult" width="800" :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
+		<el-dialog title="转交结果" :visible.sync="isResult" width="800" :close-on-click-modal="false" :close-on-press-escape="false" :show-close="results.length == submitList.length || isError">
 			<div>
 				<div style="margin-top: 20px;border: 1px solid #f1f1f1;max-height: 500px;overflow-y: auto;" class="scroll-bar">
 					<div class="flex-box-ce results" style="font-weight: 600;">

+ 3 - 2
src/views/assessManagement/participation.vue

@@ -161,7 +161,7 @@ export default {
 			let employee_ids = val.map(item => {
 				return item.id;
 			});
-			this.classFrom.employee_ids = JSON.stringify(employee_ids);
+			this.classFrom.employee_ids = employee_ids;
 		},
 		group_ids() {
 			this.getList();
@@ -221,7 +221,7 @@ export default {
 			}
 			this.$axios('post', '/api/per/package/add_package_level_employees', data).then(res => {
 				if (!res.data.data.result) {
-					this.$confirm(res.data.data.msg + ',是否改为到此考评组中进行考核', '提示', {
+					this.$confirm(res.data.data.msg + ',是否改为到此考核表中进行考核', '提示', {
 						confirmButtonText: '确定',
 						cancelButtonText: '取消',
 						type: 'warning'
@@ -297,6 +297,7 @@ export default {
 							distribution_type: 1
 						}
 					};
+					console.log(classFrom.employee_ids)
 					let data = {
 						package_id: this.packageId,
 						name: classFrom.name,

+ 8 - 12
src/views/assessManagement/sponsor/sponsorAssess.vue

@@ -7,7 +7,7 @@
         <el-form :model="spassessdata" ref="spassdata" label-width="120px" class="spassform">
           <el-form-item label="参与考核表" :required="true">
             <div class="border flex-box-ce">
-              <div class="fontColorF flex-1" v-if="selectedAG.length == 0">请选择考核表</div>
+              <div class="fontColorT flex-1" v-if="selectedAG.length == 0">请选择考核表</div>
               <div v-else class="flex-box">
                 <div style="width: 220px;margin-right: 10px;" class="font-flex-word">
                   <span v-for="(item, index) in selectedAG" :key="index">
@@ -73,11 +73,7 @@
             </el-form-item>
             <el-form-item label="评分分数">
               <el-switch v-model="dswScore_details1"></el-switch>
-              <span>
-                对被考核人
-                <span v-if="!dswScore_details1">不</span>
-                可见
-              </span>
+              <span>对被考核人<span v-if="!dswScore_details1">不</span>可见</span>
               <span class="advancedConfig" @click="advancedConfig1 = !advancedConfig1">
                 高级配置
                 <svg-icon slot="reference" icon-class="downArrow" :class="advancedConfig1 ? 'advancedConfig_i' : ''" style="" />
@@ -102,11 +98,7 @@
             </el-form-item>
             <el-form-item label="评分说明">
               <el-switch v-model="dswScore_opinion1"></el-switch>
-              <span>
-                对被考核人
-                <span v-if="!dswScore_opinion1">不</span>
-                可见
-              </span>
+              <span>对被考核人<span v-if="!dswScore_opinion1">不</span>可见</span>
               <span class="advancedConfig" @click="advancedConfig2 = !advancedConfig2">
                 高级配置
                 <svg-icon slot="reference" icon-class="downArrow" :class="advancedConfig2 ? 'advancedConfig_i' : ''" style="" />
@@ -329,7 +321,6 @@ export default {
             data.num = this.num;
 			data.type='package_add'
 			this.$socketApi.sendData(data,this.onmessageWS)
-			
 			return false;
             this.$axios('post', '/api/per/package/add', data).then(res => {
               if (res.data.code == 1) {
@@ -408,6 +399,11 @@ export default {
 
     //侧边栏保存
     modConDraSave(fun) {
+		// 没有基础配置权限时不动全局配置
+		if(!this.$isAuthoritys(this.$15)){
+			fun()
+			return false;
+		}
       // this.$alert('后续发起的考核也将默认使用当前配置', '提示', {
       //   confirmButtonText: '确定',
       //   callback: action => {

+ 12 - 6
src/views/assessManagement/staffAssDet.vue

@@ -40,7 +40,7 @@
 						<!-- 目标确认 -->
 						<template v-if="isShowConfirmBtn">
 							<el-button type="primary" @click="gradeOk">同意</el-button>
-							<el-button class="red" type="danger" plain @click="gradeTurn" style="margin-left: -2px;background-color: #fff;">驳回</el-button>
+							<el-button class="red" type="danger" plain @click="gradeTurn" style="background-color: #fff;">驳回</el-button>
 							<el-button v-if="isUpdateIndex" @click="openFormulate()">修改目标</el-button>
 						</template>
 
@@ -49,7 +49,7 @@
 						<!-- 审批 -->
 						<template v-if="examineButShow">
 							<el-button type="primary" @click="gradeOk">同意</el-button>
-							<el-button class="red" type="danger" plain v-if="isAction" @click="gradeTurn" style="margin-left: -2px;background-color: #fff;">驳回</el-button>
+							<el-button class="red" type="danger" plain v-if="isAction" @click="gradeTurn" style="background-color: #fff;">驳回</el-button>
 						</template>
 						<!-- 评分 -->
 						<el-button v-if="gradeButShow" type="primary" @click="gradeClick">评分</el-button>
@@ -150,7 +150,7 @@
 						</template>
 					</el-table-column>
 					<template v-if="isShowOneselfScore">
-						<el-table-column prop="type" label="指标类型">
+						<el-table-column prop="type" width="100" label="指标类型">
 							<template slot-scope="scope">
 								<span v-if="scope.row.type == 1">量化指标</span>
 								<span v-if="scope.row.type == 2">非量化指标</span>
@@ -176,7 +176,11 @@
 					</el-table-column>
 
 					<template v-if="isShowOneselfScore">
-						<el-table-column prop="point_limit" label="加扣分上限" align="center" width="100" v-if="getTableItem('point_limit')"></el-table-column>
+						<el-table-column prop="point_limit" label="加扣分上限" align="center" width="100" v-if="getTableItem('point_limit')">
+							<template slot-scope="scope">
+								<span>{{scope.row.point_limit}}</span>
+							</template>
+						</el-table-column>
 					</template>
 
 					<el-table-column prop="per_remark" label="考核标准" min-width="200" v-if="getTableItem('per_remark')">
@@ -1183,6 +1187,7 @@ export default {
 				data.total_score_comment = sumData.total_score_comment;
 			}
 			data.point_info = JSON.stringify(point_info); // 评分信息 --  填所有评分时必须的字段(传入某指标的分数、说明、维度索引、制表索引、指标ID)
+			data.num=num;//判断是暂存还是提交
 			let pointList = JSON.parse(JSON.stringify(point_info));
 			pointList.push({
 				name: '总分',
@@ -1191,7 +1196,7 @@ export default {
 			});
 			this.pointList = pointList;
 			this.pointData = data;
-			if (this.ruleScore == 1) {
+			if (this.ruleScore == 1&&num) {
 				//只评总分不需要弹窗
 				this.isPoint = true;
 			} else {
@@ -1200,7 +1205,7 @@ export default {
 		},
 		score() {
 			this.$axios('post', '/api/per/package/submit_score', this.pointData).then(res => {
-				this.$message.success('评分成功');
+				this.$message.success(this.pointData.num==0? '暂存成功':'评分成功');
 				this.gradeBegin = false;
 				this.isPoint = false;
 				this.employeeDet();
@@ -1838,6 +1843,7 @@ export default {
 		},
 		//流程点击
 		processDet(data) {
+			console.log(JSON.stringify(data))
 			this.processDel = data;
 			this.isChecks = true;
 			if (data.target.length == 0) {

+ 472 - 444
src/views/assessManagement/updateTarget.vue

@@ -1,158 +1,172 @@
 <template>
-  <div class="box boxMinHeight">
-    <PageHead :phName="packageName + (index=='1'? '——批量转交':'——批量修改目标值')"></PageHead>
-    <el-tabs v-model="index">
-      <el-tab-pane label="批量转交" name="1">
-          <careOf :packageId="params.package_id"></careOf>
-      </el-tab-pane>
-      <el-tab-pane label="批量修改目标值" name="2">
-        <div class="main">
-          <div class="flex-box">
-            <el-popover popper-class="popover" placement="bottom" width="250" trigger="manual" content="请先输入搜索条件" v-model="visible">
-              <div slot="reference" class="flex-box">
-                <el-input prefix-icon="el-icon-search" placeholder="指标名称搜索"  v-model="params.search_str" style="width: 250px;" clearable></el-input>
-              </div>
-            </el-popover>
-            <el-select style="width: 300px;margin: 0 10px;" v-model="params.group_ids" :disabled="params.search_str ? false : true" multiple filterable clearable placeholder="选择考核表">
-              <el-option v-for="item in groupOptions" :key="item.id" :label="item.name" :value="item.id"></el-option>
-            </el-select>
-            <el-select style="width: 300px;" v-model="params.employee_ids" :disabled="params.search_str ? false : true" multiple filterable clearable placeholder="姓名搜索">
-              <el-option v-for="item in employees" :key="item.id" :label="item.name" :value="item.id"></el-option>
-            </el-select>
-            <el-button type="primary" style="margin-left: 10px;" @click="searchBtn">搜索</el-button>
-          </div>
-          <el-button type="primary" style="margin: 20px 0;" @click="activeMb">批量修改目标值</el-button>
-          <div class="table-box">
-            <el-table stripe :data="tableData" v-loading="loading" :header-cell-style="{ background: '#ECF5FF' }" @selection-change="handleSelectionChange">
-              <el-table-column type="selection"></el-table-column>
-              <el-table-column prop="employee_name" label="被考核人">
-                <template slot-scope="scope">
-                  <div class="flex-box-ce">
-                    <userImage :id="scope.row.employee_id" :user_name="scope.row.userName" width="35px" height="35px" fontSize="12px"></userImage>
-                    <span style="margin-left: 10px; line-height: 50px;">{{ scope.row.userName }}</span>
-                  </div>
-                </template>
-              </el-table-column>
-              <el-table-column prop="dept_list" label="部门">
-                <template slot-scope="scope">
-                  <div v-if="scope.row.dept_list.length > 0" class="flex-box-ce">
-                    <span v-for="(item, index) in scope.row.dept_list" :key="index">
-                      {{ item.name }}
-                      <span v-if="scope.row.dept_list.length != index + 1">,</span>
-                    </span>
-                  </div>
-                  <span v-else>-</span>
-                </template>
-              </el-table-column>
-              <el-table-column prop="index_name" label="指标名称" min-width="200"></el-table-column>
-              <el-table-column prop="target" label="目标值"></el-table-column>
-              <el-table-column prop="unit" label="单位"></el-table-column>
-              <template slot="empty">
-                <NoData></NoData>
-              </template>
-            </el-table>
-            <Pagination :page="page" :page_size="page_size"  :total="total" @handleSizeChange="handleSizeChange" @handleCurrentChange="handleCurrentChange"></Pagination>
-          </div>
-        </div>
-      </el-tab-pane>
-    </el-tabs>
+	<div class="box boxMinHeight">
+		<PageHead :phName="packageName + (index == '1' ? '——批量转交' : '——批量修改目标值')"></PageHead>
+		<el-tabs v-model="index">
+			<el-tab-pane label="批量转交" name="1" v-if="this.$isAuthoritys(this.$17)"><careOf :packageId="params.package_id"></careOf></el-tab-pane>
+			<el-tab-pane label="批量修改目标值" name="2" v-if="this.$isAuthoritys(this.$18)">
+				<div class="main">
+					<div class="flex-box">
+						<el-popover popper-class="popover" placement="bottom" width="250" trigger="manual" content="请先输入搜索条件" v-model="visible">
+							<div slot="reference" class="flex-box">
+								<el-input prefix-icon="el-icon-search" placeholder="指标名称搜索" v-model="params.search_str" style="width: 250px;" clearable></el-input>
+							</div>
+						</el-popover>
+						<el-select
+							style="width: 300px;margin: 0 10px;"
+							v-model="params.group_ids"
+							:disabled="params.search_str ? false : true"
+							multiple
+							filterable
+							clearable
+							placeholder="选择考核表"
+						>
+							<el-option v-for="item in groupOptions" :key="item.id" :label="item.name" :value="item.id"></el-option>
+						</el-select>
+						<el-select
+							style="width: 300px;"
+							v-model="params.employee_ids"
+							:disabled="params.search_str ? false : true"
+							multiple
+							filterable
+							clearable
+							placeholder="姓名搜索"
+						>
+							<el-option v-for="item in employees" :key="item.id" :label="item.name" :value="item.id"></el-option>
+						</el-select>
+						<el-button type="primary" style="margin-left: 10px;" @click="searchBtn">搜索</el-button>
+					</div>
+					<el-button type="primary" style="margin: 20px 0;" @click="activeMb">批量修改目标值</el-button>
+					<div class="table-box">
+						<el-table stripe :data="tableData" v-loading="loading" :header-cell-style="{ background: '#ECF5FF' }" @selection-change="handleSelectionChange">
+							<el-table-column type="selection"></el-table-column>
+							<el-table-column prop="employee_name" label="被考核人">
+								<template slot-scope="scope">
+									<div class="flex-box-ce">
+										<userImage :id="scope.row.employee_id" :user_name="scope.row.userName" width="35px" height="35px" fontSize="12px"></userImage>
+										<span style="margin-left: 10px; line-height: 50px;">{{ scope.row.userName }}</span>
+									</div>
+								</template>
+							</el-table-column>
+							<el-table-column prop="dept_list" label="部门">
+								<template slot-scope="scope">
+									<div v-if="scope.row.dept_list.length > 0" class="flex-box-ce">
+										<span v-for="(item, index) in scope.row.dept_list" :key="index">
+											{{ item.name }}
+											<span v-if="scope.row.dept_list.length != index + 1">,</span>
+										</span>
+									</div>
+									<span v-else>-</span>
+								</template>
+							</el-table-column>
+							<el-table-column prop="index_name" label="指标名称" min-width="200"></el-table-column>
+							<el-table-column prop="target" label="目标值"></el-table-column>
+							<el-table-column prop="unit" label="单位"></el-table-column>
+							<template slot="empty">
+								<NoData></NoData>
+							</template>
+						</el-table>
+						<Pagination :page="page" :page_size="page_size" :total="total" @handleSizeChange="handleSizeChange" @handleCurrentChange="handleCurrentChange"></Pagination>
+					</div>
+				</div>
+			</el-tab-pane>
+		</el-tabs>
 
-    <EmployeeSelector
-      :title="'选择部门'"
-      :isChecKedAll="false"
-      :can_select_employee="false"
-      :can_select_dept="true"
-      :dept_children="false"
-      :selected="dept_selected"
-      :visible.sync="show_dept_selector"
-      @confirm="dept_confirm"
-    />
+		<EmployeeSelector
+			:title="'选择部门'"
+			:isChecKedAll="false"
+			:can_select_employee="false"
+			:can_select_dept="true"
+			:dept_children="false"
+			:selected="dept_selected"
+			:visible.sync="show_dept_selector"
+			@confirm="dept_confirm"
+		/>
 
-    <el-dialog title="填写备注" :visible.sync="isShowRemark" width="450px" :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
-      <div style="margin: 0 auto;">
-        <el-input
-          type="textarea"
-          v-model="remark"
-          placeholder="请输入备注"
-          :autosize="{ minRows: 3, maxRows: 6 }"
-          show-word-limit
-          maxlength="200"
-        ></el-input>
-		<div style="height: 20px;"></div>
-		<el-checkbox v-model="ding_msg" :true-label="1" :false-label="0">发送钉钉通知</el-checkbox>
-        <div class="yellow" style="margin-top: 10px;">该备注将适用于修改的所有指标</div>
-      </div>
-      <span slot="footer">
-        <div class="flex-box-end" style="margin-top: 20px;">
-          <el-button @click="isShowRemark = false">取 消</el-button>
-          <el-button type="primary" @click="opneWebSocket()">提 交</el-button>
-        </div>
-      </span>
-    </el-dialog>
+		<el-dialog title="填写备注" :visible.sync="isShowRemark" width="450px" :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
+			<div style="margin: 0 auto;">
+				<el-input type="textarea" v-model="remark" placeholder="请输入备注" :autosize="{ minRows: 3, maxRows: 6 }" show-word-limit maxlength="200"></el-input>
+				<div style="height: 20px;"></div>
+				<el-checkbox v-model="ding_msg" :true-label="1" :false-label="0">发送钉钉通知</el-checkbox>
+				<div class="yellow" style="margin-top: 10px;">该备注将适用于修改的所有指标</div>
+			</div>
+			<span slot="footer">
+				<div class="flex-box-end" style="margin-top: 20px;">
+					<el-button @click="isShowRemark = false">取 消</el-button>
+					<el-button type="primary" @click="opneWebSocket()">提 交</el-button>
+				</div>
+			</span>
+		</el-dialog>
 
-    <!-- 批量修改目标值 -->
-    <el-dialog title="批量修改目标值" :visible.sync="isShowBreak" width="800" :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
-      <div>
-        <el-table :data="selectList" stripe v-loading="loading" :header-cell-style="{ background: '#ECF5FF' }" max-height="600">
-          <el-table-column prop="employee_name" label="被考核人">
-            <template slot-scope="scope">
-              <div class="flex-box-ce">
-                <!-- <userImage :id="scope.row.employee_id" :user_name="scope.row.userName" width="35px" height="35px" fontSize="12px"></userImage> -->
-                <span>{{ scope.row.userName }}</span>
-              </div>
-            </template>
-          </el-table-column>
-          <el-table-column prop="index_name" label="指标名称" min-width="150"></el-table-column>
-          <el-table-column prop="group_name" label="目标值">
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.target" style="width: 100px;" @input="[(scope.row.target = scope.row.target.replace(/[^\d]/g, ''))]" />
-            </template>
-          </el-table-column>
-          <el-table-column prop="unit" label="单位">
-            <template slot-scope="scope">
-              <el-input v-model="scope.row.unit" style="width: 100px;" />
-            </template>
-          </el-table-column>
-          <template slot="empty">
-            <NoData></NoData>
-          </template>
-        </el-table>
-        <span slot="footer">
-          <div class="flex-box-end" style="margin-top: 20px;">
-            <el-button @click="isShowBreak = false">取 消</el-button>
-            <el-button type="primary" @click="submitBreak()">确认修改</el-button>
-          </div>
-        </span>
-      </div>
-    </el-dialog>
+		<!-- 批量修改目标值 -->
+		<el-dialog title="批量修改目标值" :visible.sync="isShowBreak" width="800" :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
+			<div>
+				<el-table :data="selectList" stripe v-loading="loading" :header-cell-style="{ background: '#ECF5FF' }" max-height="600">
+					<el-table-column prop="employee_name" label="被考核人">
+						<template slot-scope="scope">
+							<div class="flex-box-ce">
+								<!-- <userImage :id="scope.row.employee_id" :user_name="scope.row.userName" width="35px" height="35px" fontSize="12px"></userImage> -->
+								<span>{{ scope.row.userName }}</span>
+							</div>
+						</template>
+					</el-table-column>
+					<el-table-column prop="index_name" label="指标名称" min-width="150"></el-table-column>
+					<el-table-column prop="group_name" label="目标值">
+						<template slot-scope="scope">
+							<el-input v-model="scope.row.target" style="width: 100px;" @input="[(scope.row.target = scope.row.target.replace(/[^\d]/g, ''))]" />
+						</template>
+					</el-table-column>
+					<el-table-column prop="unit" label="单位">
+						<template slot-scope="scope">
+							<el-input v-model="scope.row.unit" style="width: 100px;" />
+						</template>
+					</el-table-column>
+					<template slot="empty">
+						<NoData></NoData>
+					</template>
+				</el-table>
+				<span slot="footer">
+					<div class="flex-box-end" style="margin-top: 20px;">
+						<el-button @click="isShowBreak = false">取 消</el-button>
+						<el-button type="primary" @click="submitBreak()">确认修改</el-button>
+					</div>
+				</span>
+			</div>
+		</el-dialog>
 
-    <el-dialog title="提交结果" :visible.sync="isResult"  width="800" :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false">
-        <div>
-    		<div style="margin-top: 20px;border: 1px solid #f1f1f1;max-height: 500px;overflow-y: auto;" class="scroll-bar">
-    			<div class="flex-box-ce results" style="font-weight: 600;">
-    				<div style="border-right: 1px solid #f1f1f1;width: 50px;">序号</div>
-    				<div class="flex-1" style="border-right: 1px solid #f1f1f1;">对象</div>
-    				<div class="flex-1" style="border-right: 1px solid #f1f1f1;">指标名称</div>
-    				<div class="flex-2" >提交结果</div>
-    			</div>
-    			<div class="flex-box-ce results" v-for="(item, index) in results" :key="index">
-    				<div style="border-right: 1px solid #f1f1f1;width: 50px;">{{results.length-index}}</div>
-    				<div class="flex-1" style="border-right: 1px solid #f1f1f1;">{{item.userName}}</div>
-    				<div class="flex-1" style="border-right: 1px solid #f1f1f1;">{{item.index_name }}</div>
-    				<div class="flex-2" style="border-right: 1px solid #f1f1f1;">
-    				  <span v-if="item.status" class="green">{{item.msg}}</span>
-    				  <span v-else class="red">{{item.msg}}</span>
-    				</div>
-    			</div>
-    		</div>
-    		<span slot="footer">
-    			<div class="flex-box-end" style="margin-top: 20px;" v-if="results.length==selectList.length||isError">
-            <el-button type="primary" @click="isResult = false" size="small">关 闭</el-button>
-          </div>
-    		</span>
-    	</div>
-    </el-dialog>
-  </div>
+		<el-dialog
+			title="提交结果"
+			:visible.sync="isResult"
+			width="800"
+			:close-on-click-modal="false"
+			:close-on-press-escape="false"
+			:show-close="results.length == selectList.length || isError"
+		>
+			<div>
+				<div style="margin-top: 20px;border: 1px solid #f1f1f1;max-height: 500px;overflow-y: auto;" class="scroll-bar">
+					<div class="flex-box-ce results" style="font-weight: 600;">
+						<div style="border-right: 1px solid #f1f1f1;width: 50px;">序号</div>
+						<div class="flex-1" style="border-right: 1px solid #f1f1f1;">对象</div>
+						<div class="flex-1" style="border-right: 1px solid #f1f1f1;">指标名称</div>
+						<div class="flex-2">提交结果</div>
+					</div>
+					<div class="flex-box-ce results" v-for="(item, index) in results" :key="index">
+						<div style="border-right: 1px solid #f1f1f1;width: 50px;">{{ results.length - index }}</div>
+						<div class="flex-1" style="border-right: 1px solid #f1f1f1;">{{ item.userName }}</div>
+						<div class="flex-1" style="border-right: 1px solid #f1f1f1;">{{ item.index_name }}</div>
+						<div class="flex-2" style="border-right: 1px solid #f1f1f1;">
+							<span v-if="item.status" class="green">{{ item.msg }}</span>
+							<span v-else class="red">{{ item.msg }}</span>
+						</div>
+					</div>
+				</div>
+				<span slot="footer">
+					<div class="flex-box-end" style="margin-top: 20px;" v-if="results.length == selectList.length || isError">
+						<el-button type="primary" @click="isResult = false" size="small">关 闭</el-button>
+					</div>
+				</span>
+			</div>
+		</el-dialog>
+	</div>
 </template>
 
 <script>
@@ -160,335 +174,349 @@ import EmployeeSelector from '@/components/public/EmployeeSelector';
 import PageHead from '@/components/public/PageHead';
 import careOf from '@/views/assessManagement/careOf';
 export default {
-  name: 'updateTarget',
-  components: { EmployeeSelector, PageHead,careOf },
-  data() {
-    return {
-      loading: false,
-      tableData: [],
-      total: 0,
-      page: 1,
-      page_size: 10,
+	name: 'updateTarget',
+	components: { EmployeeSelector, PageHead, careOf },
+	data() {
+		return {
+			loading: false,
+			tableData: [],
+			total: 0,
+			page: 1,
+			page_size: 10,
 
-      deptVisibleName: '',
-      dept_selected: { dept: [], employee: [] },
-      show_dept_selector: false,
-      groupOptions: [], //选择考核表数据
-      employees: [], //被考核人员列表
-      packageName: '',
-      params: {
-        package_id: 0, //考核包id
-        dept_ids: [], //部门id
-        group_ids: [], //考核表ID
-        employee_ids: [], //搜索人员ID
-        search_str: ''
-      },
-      visible: false,
-      multipleSelection: [],
-      isShowBreak: false,
-      selectList:[],
-      results:[],
-      resultIndex:0,
-      remark:'',
-      isShowRemark:false,
-      isResult:false,
-      isError:false,
+			deptVisibleName: '',
+			dept_selected: { dept: [], employee: [] },
+			show_dept_selector: false,
+			groupOptions: [], //选择考核表数据
+			employees: [], //被考核人员列表
+			packageName: '',
+			params: {
+				package_id: 0, //考核包id
+				dept_ids: [], //部门id
+				group_ids: [], //考核表ID
+				employee_ids: [], //搜索人员ID
+				search_str: ''
+			},
+			visible: false,
+			multipleSelection: [],
+			isShowBreak: false,
+			selectList: [],
+			results: [],
+			resultIndex: 0,
+			remark: '',
+			isShowRemark: false,
+			isResult: false,
+			isError: false,
 
-      index:"1",
-	  ding_msg:0,
-    };
-  },
-  watch: {
-    isResult(val) {
-      if(!val){
-        this.getList();
-      }
-    }
-  },
-  created() {
-    if (this.$route.query.packageId) {
-      this.params.package_id = this.$route.query.packageId;
-      this.packageName = this.$route.query.packageName;
-      this.getInitData();
-    }
-    if (this.$route.query.index) {
-      this.index=this.$route.query.index
-    }
-  },
-  mounted() {
-    if(this.$route.query.index&&this.$route.query.index=='2'){
-      this.$nextTick(() => {
-        this.visible = true;
-        setTimeout(() => {
-          this.visible = false;
-        }, 3000);
-      });
-    }
-  },
-  methods: {
-    submitBreak() {
-      let isError = false;
-      this.selectList.some(item => {
-        if (!item.unit || !item.target) {
-          isError = true;
-          return true;
-        }
-      });
-      if (isError) {
-        this.$message.error('目标值或者单位不能为空');
-        return;
-      }
-      this.results=[];
-      this.resultIndex=0;
-      this.remark='';
-      this.isShowBreak=false;
-      this.isError=false;
-	  this.ding_msg=0;
-      this.isShowRemark=true;
-    },
-    opneWebSocket() {
-      this.isShowRemark=false;
-      this.isResult=true;
-    	let wsData=this.selectList;
-    	if(wsData[this.resultIndex]){
-        let data=wsData[this.resultIndex];
-        data.remark=this.remark;
-        data.id=data.pe_id;
-		data.ding_msg=this.ding_msg;
-    		this.submit(data)
-    	}
-    },
-    submit(data){
-      this.$axios('post', '/api/per/package/index_target',data).then(res => {
-         data.msg=res.data.msg;
-         data.status=1;
-         this.results.unshift(data);
-      }).catch((err)=>{
-         data.msg=err.data.msg;
-         data.status=0;
-         this.results.unshift(data);
-      }).finally(()=>{
-         this.resultIndex++;
-         this.opneWebSocket();
-      });
-    },
-    activeMb() {
-      if (this.multipleSelection.length == 0) {
-        this.$message.error('请选择指标');
-        return;
-      }
-      this.selectList = JSON.parse(JSON.stringify(this.multipleSelection));
-      this.isShowBreak = true;
-    },
-    searchBtn() {
-      if (!this.params.search_str) {
-        this.$message.error('请输入搜索条件');
-        return;
-      }
-      this.page = 1;
-      this.tableData = [];
-      this.getList();
-    },
-    getInitData(id) {
-      this.$axios('get', '/api/per/package/info_v3_aid', { package_id: this.params.package_id }).then(res => {
-        this.groupOptions = res.data.data.groups; //考核表下拉
-        this.employees = res.data.data.employees;
-      });
-    },
-    getList() {
-      let data = {
-        search_str: this.params.search_str,
-        package_id: this.params.package_id,
-        page: this.page,
-        page_size: this.page_size
-      };
-      if (this.params.employee_ids.length > 0) {
-        data.employee_ids_code = this.$returnCode(this.params.employee_ids);
-      }
-      if (this.params.group_ids.length > 0) {
-        data.group_ids = JSON.stringify(this.params.group_ids);
-      }
-      this.loading = true;
-      this.$axios('get', 'api/per/package/search_index', data)
-        .then(res => {
-          let list = res.data.data.list;
-          list.forEach(item => {
-            if (this.$getEmployeeList()[item.employee_id]) {
-              let obj = this.$getEmployeeList()[item.employee_id];
-              item.userName = obj.name;
-              item.dept_list = obj.dept_list;
-            }
-          });
-          this.tableData = list;
-          this.total = res.data.data.total;
-        })
-        .finally(() => {
-          this.loading = false;
-        });
-    },
-    //部门选择
-    dept_confirm(data) {
-      this.dept_selected = { dept: [], employee: [] };
-      let deptIds = [];
-      this.deptVisibleName = '';
-      if (data.dept !== null && data.dept.length != 0) {
-        this.dept_selected = data;
-        data.dept.forEach((element, index) => {
-          deptIds.push(element.dept_id);
-          this.deptVisibleName += element.dept_name;
-          if (data.dept.length - index > 1) {
-            this.deptVisibleName += ',';
-          }
-        });
-      }
-      this.page = 1;
-      this.params.dept_ids = JSON.stringify(deptIds);
-      // this.getList();
-    },
-    handleSelectionChange(val) {
-      this.multipleSelection =val;
-    },
-    // 页面变更
-    handleCurrentChange(val) {
-      this.page = val;
-      this.getList();
-    },
-    // 页面跳转
-    handleSizeChange(val) {
-      this.page_size = val;
-      this.getList();
-    }
-  }
+			index: '1',
+			ding_msg: 0,
+			name:'updateTarget',
+		};
+	},
+	watch: {
+		isResult(val) {
+			if (!val) {
+				this.getList();
+			}
+		}
+	},
+	created() {
+		this.keyupEnter();
+		if (this.$route.query.packageId) {
+			this.params.package_id = this.$route.query.packageId;
+			this.packageName = this.$route.query.packageName;
+			this.getInitData();
+		}
+		if (this.$route.query.index) {
+			this.index = this.$route.query.index;
+		}
+	},
+	mounted() {
+		if (this.$route.query.index && this.$route.query.index == '2') {
+			this.$nextTick(() => {
+				this.visible = true;
+				setTimeout(() => {
+					this.visible = false;
+				}, 3000);
+			});
+		}
+	},
+	methods: {
+		keyupEnter() {
+			let that=this;
+			document.onkeydown = e => {
+				let body = document.getElementsByTagName('body')[0];
+				if (e.keyCode === 13 && that.name=='updateTarget'&& e.target === body) {
+					that.searchBtn(); //调用查询方法
+				}
+			};
+		},
+		submitBreak() {
+			let isError = false;
+			this.selectList.some(item => {
+				if (!item.unit || !item.target) {
+					isError = true;
+					return true;
+				}
+			});
+			if (isError) {
+				this.$message.error('目标值或者单位不能为空');
+				return;
+			}
+			this.results = [];
+			this.resultIndex = 0;
+			this.remark = '';
+			this.isShowBreak = false;
+			this.isError = false;
+			this.ding_msg = 0;
+			this.isShowRemark = true;
+		},
+		opneWebSocket() {
+			this.isShowRemark = false;
+			this.isResult = true;
+			let wsData = this.selectList;
+			if (wsData[this.resultIndex]) {
+				let data = wsData[this.resultIndex];
+				data.remark = this.remark;
+				data.id = data.pe_id;
+				data.ding_msg = this.ding_msg;
+				this.submit(data);
+			}
+		},
+		submit(data) {
+			this.$axios('post', '/api/per/package/index_target', data)
+				.then(res => {
+					data.msg = res.data.msg;
+					data.status = 1;
+					this.results.unshift(data);
+				})
+				.catch(err => {
+					data.msg = err.data.msg;
+					data.status = 0;
+					this.results.unshift(data);
+				})
+				.finally(() => {
+					this.resultIndex++;
+					this.opneWebSocket();
+				});
+		},
+		activeMb() {
+			if (this.multipleSelection.length == 0) {
+				this.$message.error('请选择指标');
+				return;
+			}
+			this.selectList = JSON.parse(JSON.stringify(this.multipleSelection));
+			this.isShowBreak = true;
+		},
+		searchBtn() {
+			if (!this.params.search_str) {
+				this.$message.error('请输入搜索条件');
+				return;
+			}
+			this.page = 1;
+			this.tableData = [];
+			this.getList();
+		},
+		getInitData(id) {
+			this.$axios('get', '/api/per/package/info_v3_aid', { package_id: this.params.package_id }).then(res => {
+				this.groupOptions = res.data.data.groups; //考核表下拉
+				this.employees = res.data.data.employees;
+			});
+		},
+		getList() {
+			let data = {
+				search_str: this.params.search_str,
+				package_id: this.params.package_id,
+				page: this.page,
+				page_size: this.page_size
+			};
+			if (this.params.employee_ids.length > 0) {
+				data.employee_ids_code = this.$returnCode(this.params.employee_ids);
+			}
+			if (this.params.group_ids.length > 0) {
+				data.group_ids = JSON.stringify(this.params.group_ids);
+			}
+			this.loading = true;
+			this.$axios('get', 'api/per/package/search_index', data)
+				.then(res => {
+					let list = res.data.data.list;
+					list.forEach(item => {
+						if (this.$getEmployeeList()[item.employee_id]) {
+							let obj = this.$getEmployeeList()[item.employee_id];
+							item.userName = obj.name;
+							item.dept_list = obj.dept_list;
+						}
+					});
+					this.tableData = list;
+					this.total = res.data.data.total;
+				})
+				.finally(() => {
+					this.loading = false;
+				});
+		},
+		//部门选择
+		dept_confirm(data) {
+			this.dept_selected = { dept: [], employee: [] };
+			let deptIds = [];
+			this.deptVisibleName = '';
+			if (data.dept !== null && data.dept.length != 0) {
+				this.dept_selected = data;
+				data.dept.forEach((element, index) => {
+					deptIds.push(element.dept_id);
+					this.deptVisibleName += element.dept_name;
+					if (data.dept.length - index > 1) {
+						this.deptVisibleName += ',';
+					}
+				});
+			}
+			this.page = 1;
+			this.params.dept_ids = JSON.stringify(deptIds);
+			// this.getList();
+		},
+		handleSelectionChange(val) {
+			this.multipleSelection = val;
+		},
+		// 页面变更
+		handleCurrentChange(val) {
+			this.page = val;
+			this.getList();
+		},
+		// 页面跳转
+		handleSizeChange(val) {
+			this.page_size = val;
+			this.getList();
+		}
+	}
 };
 </script>
 <style scoped="scoped" lang="scss">
- ::v-deep .el-select__tags-text{
-	  max-width: 240px;
-	  overflow: hidden;
-	  text-overflow: ellipsis;
-	  white-space: nowrap;
-	  // display: inline-block;
-  }	
-  .results {
-  	border-bottom: 1px solid #f1f1f1;
-  	text-align: center;
-  }
-  .results div {
-  	padding: 10px;
-  }
+::v-deep .el-select__tags-text {
+	max-width: 240px;
+	overflow: hidden;
+	text-overflow: ellipsis;
+	white-space: nowrap;
+	// display: inline-block;
+}
+.results {
+	border-bottom: 1px solid #f1f1f1;
+	text-align: center;
+}
+.results div {
+	padding: 10px;
+}
 .box {
-  position: relative;
-  background-color: #fff;
-  padding: 20px;
+	position: relative;
+	background-color: #fff;
+	padding: 20px;
 }
 .main {
-  margin-top: 20px;
+	margin-top: 20px;
 }
 .box::-webkit-scrollbar {
-  width: 3px;
-  height: 10px;
-  background-color: #fff;
+	width: 3px;
+	height: 10px;
+	background-color: #fff;
 }
 .box::-webkit-scrollbar-thumb {
-  background-color: #d9d9d9;
+	background-color: #d9d9d9;
 }
 .step-item {
-  width: 140px;
-  color: #777777;
-  text-align: center;
-  height: 60px;
-  cursor: pointer;
+	width: 140px;
+	color: #777777;
+	text-align: center;
+	height: 60px;
+	cursor: pointer;
 }
 .step-item span {
-  width: 24px;
-  height: 24px;
-  border-radius: 50%;
-  text-align: center;
-  line-height: 24px;
-  border: 1px solid #ebebeb;
-  margin-right: 10px;
+	width: 24px;
+	height: 24px;
+	border-radius: 50%;
+	text-align: center;
+	line-height: 24px;
+	border: 1px solid #ebebeb;
+	margin-right: 10px;
 }
 .active-step {
-  background-color: #1583f2;
-  color: #fff;
+	background-color: #1583f2;
+	color: #fff;
 }
 .active-step span {
-  border: 1px solid #1583f2;
-  background-color: #fff;
-  color: #1583f2;
+	border: 1px solid #1583f2;
+	background-color: #fff;
+	color: #1583f2;
 }
 .primaryBtn {
-  color: #409eff;
-  border: 1px solid #409eff;
-  background-color: #fff;
+	color: #409eff;
+	border: 1px solid #409eff;
+	background-color: #fff;
 }
 .primaryBtn:hover {
-  background-color: #ecf5ff !important;
+	background-color: #ecf5ff !important;
 }
 .border {
-  -webkit-appearance: none;
-  background-color: #fff;
-  background-image: none;
-  border-radius: 4px;
-  border: 1px solid #dcdfe6;
-  -webkit-box-sizing: border-box;
-  box-sizing: border-box;
-  color: #c0c4cf;
-  font-size: inherit;
-  height: auto;
-  outline: 0;
-  padding: 0 15px;
-  width: 250px;
-  position: relative;
-  cursor: pointer;
+	-webkit-appearance: none;
+	background-color: #fff;
+	background-image: none;
+	border-radius: 4px;
+	border: 1px solid #dcdfe6;
+	-webkit-box-sizing: border-box;
+	box-sizing: border-box;
+	color: #c0c4cf;
+	font-size: inherit;
+	height: auto;
+	outline: 0;
+	padding: 0 15px;
+	width: 250px;
+	position: relative;
+	cursor: pointer;
 }
 .border .font-flex-word {
-  color: #606266;
+	color: #606266;
 }
 .inputDc {
-  position: absolute;
-  top: 0;
-  right: 0;
-  left: 0;
-  bottom: 0;
-  z-index: 9;
-  cursor: pointer;
+	position: absolute;
+	top: 0;
+	right: 0;
+	left: 0;
+	bottom: 0;
+	z-index: 9;
+	cursor: pointer;
 }
 .li {
-  border-bottom: 1px solid #f1f1f1;
+	border-bottom: 1px solid #f1f1f1;
 }
 .li:hover {
-  background-color: #f5f7fa;
+	background-color: #f5f7fa;
 }
 .dept_wdiv {
-  width: 200px;
-  position: relative;
-  .dept_inp {
-    position: absolute;
-    top: 0;
-    right: 0;
-    left: 0;
-    bottom: 0;
-    z-index: 9;
-    border: 1px solid #e0e0e0;
-    border-radius: 3px;
-    line-height: 32px;
-    font-size: 14px;
-    padding: 0 10px;
-    overflow: hidden;
-    white-space: nowrap;
-    text-overflow: ellipsis;
-    cursor: pointer;
-    color: #606266;
-  }
-  svg {
-    position: absolute;
-    top: 0;
-    right: 0;
-    top: 10px;
-    right: 10px;
-    font-size: 14px;
-    color: #b5b5b5;
-  }
+	width: 200px;
+	position: relative;
+	.dept_inp {
+		position: absolute;
+		top: 0;
+		right: 0;
+		left: 0;
+		bottom: 0;
+		z-index: 9;
+		border: 1px solid #e0e0e0;
+		border-radius: 3px;
+		line-height: 32px;
+		font-size: 14px;
+		padding: 0 10px;
+		overflow: hidden;
+		white-space: nowrap;
+		text-overflow: ellipsis;
+		cursor: pointer;
+		color: #606266;
+	}
+	svg {
+		position: absolute;
+		top: 0;
+		right: 0;
+		top: 10px;
+		right: 10px;
+		font-size: 14px;
+		color: #b5b5b5;
+	}
 }
 </style>

+ 878 - 839
src/views/evaluate/evaluate.vue

@@ -1,71 +1,72 @@
 <template>
-  <div class="box boxMinHeight" style="min-height: 1000px;">
-    <header class="header">
-      <div class="header-content flex-box-ce">
-        <div class="flex-box-ce header-left" @click="$router.go(-1)">
-          <i class="el-icon-arrow-left fontColorF"></i>
-          <el-tooltip class="item" effect="dark" :content="title" placement="bottom">
-            <div class="text fontColorB font-flex-word">{{ title }}</div>
-          </el-tooltip>
-        </div>
-        <div class="flex-1 flex-box-ce flex-center-center">
-          <div :class="[activeIndex == 1 ? 'active-step2' : '']" class="flex-box-ce flex-center-center step-item2 barder-a" @click="activeStep(1)">
-            <span>1</span>
-            <div>分组信息</div><strong></strong>
-          </div>
-          <el-popover popper-class="popover" placement="bottom" width="250" trigger="manual" content="可通过点击对应数字来切换节点" v-model="visible">
-            <div slot="reference" :class="[activeIndex == 2 ? 'active-step2' : '']" class="flex-box flex-center-center step-item2 barder-a" @click="activeStep(2)">
-                <span>2</span>
-                <div>考核模板</div>
-            </div>
-          </el-popover>
-          <div :class="[activeIndex == 3 ? 'active-step2' : '']" class="flex-box flex-center-center step-item2" @click="activeStep(3)">
-            <span>3</span>
-            <div>具体流程</div>
-          </div>
-        </div>
-        <div class="flex-box-end header-right">
-          <template v-if="isShowBtn">
-			<el-button style="margin-right: 10px;" @click="activeIndexA(false)" v-if="activeIndex!=1">上一步</el-button>
-            <el-button style="margin-right: 10px;" @click="activeIndexA(true)" v-if="activeIndex!=3">下一步</el-button>
-			<el-button style="margin-right: 10px;" @click="preview()" v-if="activeIndex==3">预览</el-button>
-            <el-button type="primary" @click="save()">保存</el-button>
-          </template>
-        </div>
-      </div>
-    </header>
-    <div style="height: 1px; background-color: #DCDFE6;margin-top: 5px;"></div>
-    <div class="main">
-      <!-- 基本信息 -->
-      <BasicMessage v-show="activeIndex == 1" ref="BasicMessage" :isShowBtn.sync="isShowBtn" :data="basicMessage"></BasicMessage>
-      <!-- 模板设计 -->
-      <Template v-show="activeIndex == 2" ref="Template" :data="template"></Template>
-      <!-- 流程设计 -->
-      <Flow v-show="activeIndex == 3" ref="Flow" :isShowScore="isShowScore" :data="flow"></Flow>
-    </div>
-    <!-- 选择被考核人员 -->
-    <EmployeeSelector
-      :isRequired="true"
-      title="选择预览人员"
-      :isChecKedAll="false"
-      :employee_list="employee_list"
-      :visible.sync="setAdministrator"
-      :multi="false"
-      :is_employee_list="true"
-      :is_filtration_creator="false"
-      @confirm="confirmAdministrator"
-    />
-    <!-- 预览 -->
-    <el-drawer title="预览" :visible.sync="showDrawerTow" direction="btt" class="all-derawer">
-      <Preview
-        v-if="showDrawerTow"
-        :parameter="previewData.parameter"
-        :groupId="previewData.group_id"
-        :employeeId="previewData.employee_id"
-        :employeeList="previewData.employee_list"
-      ></Preview>
-    </el-drawer>
-  </div>
+	<div class="box boxMinHeight" style="min-height: 1000px;">
+		<header class="header">
+			<div class="header-content flex-box-ce">
+				<div class="flex-box-ce header-left" @click="$router.go(-1)">
+					<i class="el-icon-arrow-left fontColorF"></i>
+					<el-tooltip class="item" effect="dark" :content="title" placement="bottom">
+						<div class="text fontColorB font-flex-word">{{ title }}</div>
+					</el-tooltip>
+				</div>
+				<div class="flex-1 flex-box-ce flex-center-center">
+					<div :class="[activeIndex == 1 ? 'active-step2' : '']" class="flex-box-ce flex-center-center step-item2 barder-a" @click="activeStep(1)">
+						<span>1</span>
+						<div>分组信息</div>
+						<strong></strong>
+					</div>
+					<el-popover popper-class="popover" placement="bottom" width="250" trigger="manual" content="可通过点击对应数字来切换节点" v-model="visible">
+						<div slot="reference" :class="[activeIndex == 2 ? 'active-step2' : '']" class="flex-box flex-center-center step-item2 barder-a" @click="activeStep(2)">
+							<span>2</span>
+							<div>考核模板</div>
+						</div>
+					</el-popover>
+					<div :class="[activeIndex == 3 ? 'active-step2' : '']" class="flex-box flex-center-center step-item2" @click="activeStep(3)">
+						<span>3</span>
+						<div>具体流程</div>
+					</div>
+				</div>
+				<div class="flex-box-end header-right">
+					<template v-if="isShowBtn">
+						<el-button style="margin-right: 10px;" @click="activeIndexA(false)" v-if="activeIndex != 1">上一步</el-button>
+						<el-button style="margin-right: 10px;" @click="activeIndexA(true)" v-if="activeIndex != 3">下一步</el-button>
+						<el-button style="margin-right: 10px;" @click="preview()" v-if="activeIndex == 3">预览</el-button>
+						<el-button type="primary" @click="save()">保存</el-button>
+					</template>
+				</div>
+			</div>
+		</header>
+		<div style="height: 1px; background-color: #DCDFE6;margin-top: 5px;"></div>
+		<div class="main">
+			<!-- 基本信息 -->
+			<BasicMessage v-show="activeIndex == 1" ref="BasicMessage" :isShowBtn.sync="isShowBtn" :data="basicMessage"></BasicMessage>
+			<!-- 模板设计 -->
+			<Template v-show="activeIndex == 2" ref="Template" :data="template"></Template>
+			<!-- 流程设计 -->
+			<Flow v-show="activeIndex == 3" ref="Flow" :isShowScore="isShowScore" :data="flow"></Flow>
+		</div>
+		<!-- 选择被考核人员 -->
+		<EmployeeSelector
+			:isRequired="true"
+			title="选择预览人员"
+			:isChecKedAll="false"
+			:employee_list="employee_list"
+			:visible.sync="setAdministrator"
+			:multi="false"
+			:is_employee_list="true"
+			:is_filtration_creator="false"
+			@confirm="confirmAdministrator"
+		/>
+		<!-- 预览 -->
+		<el-drawer title="预览" :visible.sync="showDrawerTow" direction="btt" class="all-derawer">
+			<Preview
+				v-if="showDrawerTow"
+				:parameter="previewData.parameter"
+				:groupId="previewData.group_id"
+				:employeeId="previewData.employee_id"
+				:employeeList="previewData.employee_list"
+			></Preview>
+		</el-drawer>
+	</div>
 </template>
 
 <script>
@@ -75,866 +76,904 @@ import Template from '@/components/evaluate/Template';
 import Flow from '@/components/evaluate/Flow';
 import Preview from '@/components/public/Preview';
 export default {
-  components: { BasicMessage, Template, Flow, EmployeeSelector, Preview },
-  data() {
-    return {
-      title: '新建考核表',
-      activeIndex: '1',
-      dialogVisible: false,
-      isShowScore: false, //是否在流程里显示指定评分人模块
-      basicMessage: { mannager_ids: [] }, //基础信息(编辑)
-      template: {}, //模板设计(编辑)
-      flow: {}, //流程设计(编辑)
-      id: '', //考核表ID(编辑)
-      setAdministrator: false,
-      parameter: {},
-      employee_list: [],
-      isPreview: false, //是否预览离开页面
-      // 预览
-      showDrawerTow: false,
-      previewData: {
-        parameter: {},
-        group_id: '',
-        employee_id: [],
-        employee_list: {}
-      },
-      visible:false,
-      isTs:false,//离开是否要提示
-      isShowBtn:false,//控制提交按钮是否显示
-    };
-  },
-  watch: {
-    activeIndex(val) {
-      if (val != '1') {
-        this.isTs = true;
-      }
-      if(val==3){
-        this.getIsShowScore();
-      }
-    }
-  },
-  created() {
-    this.isPreview = false;
-  },
-  mounted() {
-    if (this.$route.query.data) {
-      this.recoverData();
-    };
-    this.$nextTick(()=>{
-      this.visible = true;
-      setTimeout(()=>{
-        this.visible = false;
-      },3000)
-    })
-  },
-  methods: {
-	activeIndexA(is){
-		this.activeIndex=is? this.activeIndex+1:this.activeIndex-1;
-		if (this.activeIndex != '1') {
-		  this.isTs = true;
+	components: { BasicMessage, Template, Flow, EmployeeSelector, Preview },
+	data() {
+		return {
+			title: '新建考核表',
+			activeIndex: '1',
+			dialogVisible: false,
+			isShowScore: false, //是否在流程里显示指定评分人模块
+			basicMessage: { mannager_ids: [] }, //基础信息(编辑)
+			template: {}, //模板设计(编辑)
+			flow: {}, //流程设计(编辑)
+			id: '', //考核表ID(编辑)
+			setAdministrator: false,
+			parameter: {},
+			employee_list: [],
+			isPreview: false, //是否预览离开页面
+			// 预览
+			showDrawerTow: false,
+			previewData: {
+				parameter: {},
+				group_id: '',
+				employee_id: [],
+				employee_list: {}
+			},
+			visible: false,
+			isTs: false, //离开是否要提示
+			isShowBtn: false //控制提交按钮是否显示
+		};
+	},
+	watch: {
+		activeIndex(val) {
+			if (val != '1') {
+				this.isTs = true;
+			}
+			if (val == 3) {
+				this.getIsShowScore();
+			}
 		}
-		if(this.activeIndex==3){
-		  this.getIsShowScore();
+	},
+	created() {
+		this.isPreview = false;
+	},
+	mounted() {
+		if (this.$route.query.data) {
+			this.recoverData();
 		}
-	},  
-    confirmAdministrator(val) {
-      this.isPreview = true;
-      if (val.employee.length == 0) {
-        this.showMessage('请选择被考核人员');
-      } else {
-        this.previewData = {
-          parameter: this.parameter,
-          group_id: this.id,
-          employee_id: val.employee,
-          employee_list: this.employee_list
-        };
-        this.showDrawerTow = true;
-      }
-    },
-    //预览
-    preview() {
-      // 判断三大模块填写是否符合规则
-      var basicMessage, template, flow;
-      basicMessage = this.getIsBasicMessage();
-      if (basicMessage) {
-        template = this.getIsTemplate();
-      }
-      if (template) {
-        flow = this.getIsFlow();
-      }
-      if (!basicMessage || !template || !flow) {
-        this.setActiveIndex(basicMessage, template, flow);
-        return false;
-      }
-      this.parameter = {
-        name: basicMessage.name, //考核表名称
-        cycle_type: basicMessage.cycle_type, //周期类型 1-天 2-月度 3-季度 4-半年度 5-年度 6-自定义
-        mannager_ids: basicMessage.mannager_ids, //管理员工ID 多个使用’,’隔开(默认为管理全部考核表用户的人员)(可传入特定考核表管理权限人员的ID)
-        employee_ids: basicMessage.employee_ids, //被考核员工ID 多个使用’,’隔开
+		this.$nextTick(() => {
+			this.visible = true;
+			setTimeout(() => {
+				this.visible = false;
+			}, 3000);
+		});
+	},
+	methods: {
+		activeIndexA(is) {
+			this.activeIndex = is ? Number(this.activeIndex) + 1 : this.activeIndex - 1;
+			if (this.activeIndex != '1') {
+				this.isTs = true;
+			}
+			if (this.activeIndex == 3) {
+				this.getIsShowScore();
+			}
+		},
+		confirmAdministrator(val) {
+			this.isPreview = true;
+			if (val.employee.length == 0) {
+				this.showMessage('请选择被考核人员');
+			} else {
+				this.previewData = {
+					parameter: this.parameter,
+					group_id: this.id,
+					employee_id: val.employee,
+					employee_list: this.employee_list
+				};
+				this.showDrawerTow = true;
+			}
+		},
+		//预览
+		preview() {
+			// 判断三大模块填写是否符合规则
+			var basicMessage, template, flow;
+			basicMessage = this.getIsBasicMessage();
+			if (basicMessage) {
+				template = this.getIsTemplate();
+			}
+			if (template) {
+				flow = this.getIsFlow();
+			}
+			if (!basicMessage || !template || !flow) {
+				this.setActiveIndex(basicMessage, template, flow);
+				return false;
+			}
+			this.parameter = {
+				name: basicMessage.name, //考核表名称
+				cycle_type: basicMessage.cycle_type, //周期类型 1-天 2-月度 3-季度 4-半年度 5-年度 6-自定义
+				mannager_ids: basicMessage.mannager_ids, //管理员工ID 多个使用’,’隔开(默认为管理全部考核表用户的人员)(可传入特定考核表管理权限人员的ID)
+				employee_ids: basicMessage.employee_ids, //被考核员工ID 多个使用’,’隔开
 
-        calc_type: template.ruleForm.calc_type, //指标评分计算方式 1-加和计算 2-加权计算
-        calc_dimension: template.ruleForm.calc_dimension, //是否维度权重参与计算 1-是 0-否
-        dimension: JSON.stringify(template.dimensionalityList), //维度配置数组列表
+				calc_type: template.ruleForm.calc_type, //指标评分计算方式 1-加和计算 2-加权计算
+				calc_dimension: template.ruleForm.calc_dimension, //是否维度权重参与计算 1-是 0-否
+				dimension: JSON.stringify(template.dimensionalityList), //维度配置数组列表
 
-        process: JSON.stringify(flow), //流程数组列表
-        config: JSON.stringify({ index_score: { action: [] } }), //考核表配置
-        auto_move: 0 //是否自动移除同类型其他考核表重复被考核人员 0 否 1 是
-      };
-      this.setAdministrator = true;
-    },
-    // 编辑时复原整个流程数据
-    recoverData() {
-      let data = JSON.parse(this.$route.query.data);
-      this.title = data.name;
-      this.id = data.id;
-      // 基础信息
-      this.basicMessage = {
-        id: data.id,
-        name: data.name, //考核表名称
-        cycle_type: data.cycle_type, //周期类型 1-天 2-月度 3-季度 4-半年度 5-年度 6-自定义
-        mannager_ids: data.mannager_ids, //管理员工ID 多个使用’,’隔开(默认为管理全部考核表用户的人员)(可传入特定考核表管理权限人员的ID)
-        employee_ids: data.employee_ids, //被考核员工ID 多个使用’,’隔开
-        employees: data.employees
-      };
-      // 模板设计
-      this.template = {
-        calc_type: data.calc_type, //指标评分计算方式 1-加和计算 2-加权计算
-        calc_dimension: data.calc_dimension, //是否维度权重参与计算 1-是 0-否
-        dimension: data.dimension //维度配置数组列表
-      };
-      // 模板设计
-      this.flow = {
-        process: data.process //维度配置数组列表
-      };
-      if(this.$route.query.index){
-         this.$nextTick(()=>{
-            this.activeIndex=this.$route.query.index;
-         })
-      }
-    },
+				process: JSON.stringify(flow), //流程数组列表
+				config: JSON.stringify({ index_score: { action: [] } }), //考核表配置
+				auto_move: 0 //是否自动移除同类型其他考核表重复被考核人员 0 否 1 是
+			};
+			this.setAdministrator = true;
+		},
+		// 编辑时复原整个流程数据
+		recoverData() {
+			let data = JSON.parse(this.$route.query.data);
+			this.title = data.name;
+			this.id = data.id;
+			// 基础信息
+			this.basicMessage = {
+				id: data.id,
+				name: data.name, //考核表名称
+				cycle_type: data.cycle_type, //周期类型 1-天 2-月度 3-季度 4-半年度 5-年度 6-自定义
+				mannager_ids: data.mannager_ids, //管理员工ID 多个使用’,’隔开(默认为管理全部考核表用户的人员)(可传入特定考核表管理权限人员的ID)
+				employee_ids: data.employee_ids, //被考核员工ID 多个使用’,’隔开
+				employees: data.employees
+			};
+			// 模板设计
+			this.template = {
+				calc_type: data.calc_type, //指标评分计算方式 1-加和计算 2-加权计算
+				calc_dimension: data.calc_dimension, //是否维度权重参与计算 1-是 0-否
+				dimension: data.dimension //维度配置数组列表
+			};
+			// 模板设计
+			this.flow = {
+				process: data.process //维度配置数组列表
+			};
+			if (this.$route.query.index) {
+				this.$nextTick(() => {
+					this.activeIndex = this.$route.query.index;
+				});
+			}
+		},
 
-    save(auto_move) {
-      // 判断三大模块填写是否符合规则
-      var basicMessage, template, flow;
-      basicMessage = this.getIsBasicMessage();
-      if (basicMessage) {
-        template = this.getIsTemplate();
-      }
-      if (template) {
-        flow = this.getIsFlow();
-      }
-      if (!basicMessage || !template || !flow) {
-        this.setActiveIndex(basicMessage, template, flow);
-        return false;
-      }
-      if (flow.score_supervisor.enable == 0&&this.isTs) {
-        this.$confirm('未设置上级评分节点,建议完善考核流程,前往设置?', '提示', {
-          confirmButtonText: '确定',
-          cancelButtonText: '取消',
-          type: 'warning'
-        }).then(() => {
-            this.setActiveIndex(true, true, false);
-            this.isTs=false;
-        }).catch(() => {
-            let parameter = {
-              name: basicMessage.name, //考核表名称
-              cycle_type: basicMessage.cycle_type, //周期类型 1-天 2-月度 3-季度 4-半年度 5-年度 6-自定义
-              manager_ids_code: this.$returnCode(basicMessage.mannager_ids), //管理员工ID 多个使用’,’隔开(默认为管理全部考核表用户的人员)(可传入特定考核表管理权限人员的ID)
-              employee_ids_code: this.$returnCode(basicMessage.employee_ids), //被考核员工ID 多个使用’,’隔开
+		save(auto_move) {
+			// 判断三大模块填写是否符合规则
+			var basicMessage, template, flow;
+			basicMessage = this.getIsBasicMessage();
+			if (basicMessage) {
+				template = this.getIsTemplate();
+			}
+			if (template) {
+				flow = this.getIsFlow();
+			}
+			if (!basicMessage || !template || !flow) {
+				this.setActiveIndex(basicMessage, template, flow);
+				return false;
+			}
+			if (flow.score_supervisor.enable == 0 && this.isTs) {
+				this.$confirm('未设置上级评分节点,建议完善考核流程', '提示', {
+					confirmButtonText: '仍要保存',
+					cancelButtonText: '前往设置',
+					type: 'warning'
+				})
+					.then(() => {
+						let parameter = {
+							name: basicMessage.name, //考核表名称
+							cycle_type: basicMessage.cycle_type, //周期类型 1-天 2-月度 3-季度 4-半年度 5-年度 6-自定义
+							manager_ids_code: this.$returnCode(basicMessage.mannager_ids), //管理员工ID 多个使用’,’隔开(默认为管理全部考核表用户的人员)(可传入特定考核表管理权限人员的ID)
+							employee_ids_code: this.$returnCode(basicMessage.employee_ids), //被考核员工ID 多个使用’,’隔开
+							calc_type: template.ruleForm.calc_type, //指标评分计算方式 1-加和计算 2-加权计算
+							calc_dimension: template.ruleForm.calc_dimension, //是否维度权重参与计算 1-是 0-否
+							dimension: JSON.stringify(template.dimensionalityList), //维度配置数组列表
+							process: JSON.stringify(flow), //流程数组列表
+							config: JSON.stringify({ index_score: { action: [] } }), //考核表配置
+							auto_move: auto_move ? auto_move : 0 //是否自动移除同类型其他考核表重复被考核人员 0 否 1 是
+						};
+						if (this.id) {
+							parameter.id = this.id;
+						}
+						this.$axios('post', '/api/per/evaluation/edit_group', parameter).then(res => {
+							if (res.data.code == 1) {
+								if (!res.data.data.result) {
+									this.activeIndex = '1';
+									let str=this.returnStr(basicMessage.cycle_type)
+									let html = `<div>
+												<h5>当前考核表周期为 “ ${str} ” </h5>
+													<div>${res.data.data.msg}是否改为到此考核表中进行考核</div>
+												</div>`;
+									this.$confirm(html, '提示', {
+										confirmButtonText: '确定',
+										cancelButtonText: '取消',
+										dangerouslyUseHTMLString: true,
+										type: 'warning'
+									}).then(() => {
+										this.save(1);
+									});
+								} else {
+									this.isTs = false;
+									if (this.id) {
+										this.$message.success('保存成功');
+									} else {
+										this.$message.success('创建成功');
+									}
+									this.$router.go(-1);
+								}
+							}
+						});
+					})
+					.catch(() => {
+						this.setActiveIndex(true, true, false);
+						this.isTs = false;
+					});
+			} else {
+				let parameter = {
+					name: basicMessage.name, //考核表名称
+					cycle_type: basicMessage.cycle_type, //周期类型 1-天 2-月度 3-季度 4-半年度 5-年度 6-自定义
+					manager_ids_code: this.$returnCode(basicMessage.mannager_ids), //管理员工ID 多个使用’,’隔开(默认为管理全部考核表用户的人员)(可传入特定考核表管理权限人员的ID)
+					employee_ids_code: this.$returnCode(basicMessage.employee_ids), //被考核员工ID 多个使用’,’隔开
 
-              calc_type: template.ruleForm.calc_type, //指标评分计算方式 1-加和计算 2-加权计算
-              calc_dimension: template.ruleForm.calc_dimension, //是否维度权重参与计算 1-是 0-否
-              dimension: JSON.stringify(template.dimensionalityList), //维度配置数组列表
+					calc_type: template.ruleForm.calc_type, //指标评分计算方式 1-加和计算 2-加权计算
+					calc_dimension: template.ruleForm.calc_dimension, //是否维度权重参与计算 1-是 0-否
+					dimension: JSON.stringify(template.dimensionalityList), //维度配置数组列表
 
-              process: JSON.stringify(flow), //流程数组列表
-              config: JSON.stringify({ index_score: { action: [] } }), //考核表配置
-              auto_move: auto_move ? auto_move : 0 //是否自动移除同类型其他考核表重复被考核人员 0 否 1 是
-            };
-            if (this.id) {
-              parameter.id = this.id;
-            }
-            this.$axios('post', '/api/per/evaluation/edit_group', parameter).then(res => {
-              if (res.data.code == 1) {
-                if (!res.data.data.result) {
-                  this.activeIndex = '1';
-                  this.$confirm(res.data.data.msg + ',是否改为到此考核表中进行考核', '提示', {
-                    confirmButtonText: '确定',
-                    cancelButtonText: '取消',
-                    type: 'warning'
-                  })
-                    .then(() => {
-                      this.save(1);
-                    })
-                    .catch(() => {});
-                } else {
-                  this.isTs = false;
-                  if (this.id) {
-                    this.$message.success('保存成功');
-                  } else {
-                    this.$message.success('创建成功');
-                  }
-                  this.$router.go(-1);
-                }
-              }
-            });
-        });
-      } else {
-        let parameter = {
-          name: basicMessage.name, //考核表名称
-          cycle_type: basicMessage.cycle_type, //周期类型 1-天 2-月度 3-季度 4-半年度 5-年度 6-自定义
-          manager_ids_code: this.$returnCode(basicMessage.mannager_ids), //管理员工ID 多个使用’,’隔开(默认为管理全部考核表用户的人员)(可传入特定考核表管理权限人员的ID)
-          employee_ids_code: this.$returnCode(basicMessage.employee_ids), //被考核员工ID 多个使用’,’隔开
+					process: JSON.stringify(flow), //流程数组列表
+					config: JSON.stringify({ index_score: { action: [] } }), //考核表配置
+					auto_move: auto_move ? auto_move : 0 //是否自动移除同类型其他考核表重复被考核人员 0 否 1 是
+				};
+				if (this.id) {
+					parameter.id = this.id;
+				}
+				this.$axios('post', '/api/per/evaluation/edit_group', parameter).then(res => {
+					if (res.data.code == 1) {
+						if (!res.data.data.result) {
+							this.activeIndex = '1';
+							let str=this.returnStr(basicMessage.cycle_type)
+							let html = `<div>
+							<h5>当前考核表周期为 “ ${str} ” </h5>
+								<div>${res.data.data.msg}是否改为到此考核表中进行考核</div>
+							</div>`;
+							this.$confirm(html, '提示', {
+								confirmButtonText: '确定',
+								cancelButtonText: '取消',
+								dangerouslyUseHTMLString: true,
+								type: 'warning'
+							})
+								.then(() => {
+									this.save(1);
+								})
+								.catch(() => {});
+						} else {
+							this.isTs = false;
+							if (this.id) {
+								this.$message.success('保存成功');
+							} else {
+								this.$message.success('创建成功');
+							}
+							this.$router.go(-1);
+						}
+					}
+				});
+			}
+		},
+		returnStr(num) {
+			let str = '';
+			switch (num) {
+				case 1:
+					str = '天';
+					break;
+				case 2:
+					str = '月度';
+					break;
+				case 3:
+					str = '季度';
+					break;
+				case 4:
+					str = '半年季';
+					break;
+				case 5:
+					str = '年度';
+					break;
+				case 6:
+					str = '自定义';
+					break;
+			}
+			return str;
+		},
+		// 流程设计获取与判断
+		getIsFlow() {
+			this.getIsShowScore();
+			let target = this.$refs['Flow'].target; // 目标制定
+			let confirmor = this.$refs['Flow'].$refs['Affirm'].confirmor; //目标确认
+			let supervisor = this.$refs['Flow'].$refs['SuperiorFlow'].score_supervisor; //上级评分数据
+			let special_scorer = this.$refs['Flow'].special_scorer; // 指定评分人
+			let reviewer = this.$refs['Flow'].$refs['Examine'].review; // 审批节点
+			let cc = this.$refs['Flow'].cc; // 抄送
 
-          calc_type: template.ruleForm.calc_type, //指标评分计算方式 1-加和计算 2-加权计算
-          calc_dimension: template.ruleForm.calc_dimension, //是否维度权重参与计算 1-是 0-否
-          dimension: JSON.stringify(template.dimensionalityList), //维度配置数组列表
+			// 目标制定
+			if (target.type == 3) {
+				if (target.employeeList.length == 0) {
+					this.showMessage('目标制定请选择指定成员');
+					return false;
+				}
+			} else {
+				target.employeeList = [];
+			}
+			// 目标确认
+			let isCfMployee = true; //判断目标确认人员是否有选择
+			confirmor.forEach(item => {
+				item.employee_ids = this.filtrationArr(item.employeeList);
+				item.action = this.isCx([{ index: item.index }, { transfer: item.transfer }]);
+				if (item.type == 2 && item.employeeList.length == 0) {
+					isCfMployee = false;
+				}
+			});
 
-          process: JSON.stringify(flow), //流程数组列表
-          config: JSON.stringify({ index_score: { action: [] } }), //考核表配置
-          auto_move: auto_move ? auto_move : 0 //是否自动移除同类型其他考核表重复被考核人员 0 否 1 是
-        };
-        if (this.id) {
-          parameter.id = this.id;
-        }
-        this.$axios('post', '/api/per/evaluation/edit_group', parameter).then(res => {
-          if (res.data.code == 1) {
-            if (!res.data.data.result) {
-              this.activeIndex = '1';
-              this.$confirm(res.data.data.msg + ',是否改为到此考核表中进行考核', '提示', {
-                confirmButtonText: '确定',
-                cancelButtonText: '取消',
-                type: 'warning'
-              })
-                .then(() => {
-                  this.save(1);
-                })
-                .catch(() => {});
-            } else {
-              this.isTs = false;
-              if (this.id) {
-                this.$message.success('保存成功');
-              } else {
-                this.$message.success('创建成功');
-              }
-              this.$router.go(-1);
-            }
-          }
-        });
-      }
-    },
-   
-	// 流程设计获取与判断
-    getIsFlow() {
-      this.getIsShowScore();
-      let target = this.$refs['Flow'].target; // 目标制定
-      let confirmor = this.$refs['Flow'].$refs['Affirm'].confirmor; //目标确认
-      let supervisor = this.$refs['Flow'].$refs['SuperiorFlow'].score_supervisor; //上级评分数据
-      let special_scorer = this.$refs['Flow'].special_scorer; // 指定评分人
-      let reviewer = this.$refs['Flow'].$refs['Examine'].review; // 审批节点
-      let cc = this.$refs['Flow'].cc; // 抄送
-	  
-      // 目标制定
-      if(target.type==3){
-        if(target.employeeList.length==0){
-          this.showMessage('目标制定请选择指定成员');
-          return false;
-        }
-      }else{
-		  target.employeeList=[]
-	  }
-      // 目标确认
-      let isCfMployee=true;//判断目标确认人员是否有选择
-      confirmor.forEach(item => {
-        item.employee_ids = this.filtrationArr(item.employeeList);
-        item.action = this.isCx([{ index: item.index }, { transfer: item.transfer }]);
-        if (item.type == 2 && item.employeeList.length == 0) {
-          isCfMployee = false;
-        }
-      });
+			if (this.$refs['Flow'].$refs['Affirm'].enable) {
+				if (!isCfMployee) {
+					this.showMessage('目标确认请选择指定成员');
+					return false;
+				}
+			}
+			//上级评分
+			let indexSum = 0;
+			let isLing = true;
+			let isEmployee = true; //判断上级评分人员是否有选择
+			supervisor.forEach(item => {
+				item.supervisor_confirm = item.is_supervisor_confirm ? 1 : 0;
+				item.role_name = 'creator';
+				item.employee_ids = this.filtrationArr(item.employeeList);
+				item.action = this.isCx([{ comment: item.comment }, { summary: item.summary }]);
+				item.transfer = item.isTransfer ? 1 : 0;
+				if (item.weight == 0) {
+					isLing = false;
+				}
+				indexSum += Number(item.weight);
+				if (item.type == 2 && item.employeeList.length == 0) {
+					isEmployee = false;
+				}
+			});
+			if (this.$refs['Flow'].$refs['SuperiorFlow'].enable) {
+				if (!isEmployee) {
+					this.showMessage('上级评分请选择指定成员');
+					return false;
+				}
+			}
+			if (!isLing) {
+				this.showMessage('上级评分节点的权重不能为0%');
+				return false;
+			}
+			if (indexSum != 100) {
+				this.showMessage('所有评分节点的权重总和必须等于100%');
+				return false;
+			}
+			// 指定评分人
+			special_scorer = {
+				enable: this.isShowScore ? 1 : 0,
+				action: this.isCx([{ comment: special_scorer.comment }, { summar: special_scorer.summar }])
+			};
+			let isEmployee2 = true; //判断审批节点指定成员是否有选择
+			//审批节点
+			reviewer.forEach(item => {
+				item.supervisor_confirm = item.is_supervisor_confirm ? 1 : 0;
+				item.action = this.isCx([{ transfer: item.transfer }, { refuse: item.refuse }]);
+				item.employee_ids = this.filtrationArr(item.employeeList);
+				if (item.type == 2 && item.employeeList.length == 0) {
+					isEmployee2 = false;
+				}
+			});
+			if (this.$refs['Flow'].$refs['Examine'].enable) {
+				if (!isEmployee2) {
+					this.showMessage('审批节点请选择指定成员');
+					return false;
+				}
+			}
+			if (cc.enable) {
+				if (cc.type == 2 && cc.employeeList.length == 0) {
+					this.showMessage('抄送请选择指定成员');
+					return false;
+				}
+				if (cc.type == 1) {
+					cc.employeeList = [];
+				}
+			}
 
-      if(this.$refs['Flow'].$refs['Affirm'].enable){
-        if (!isCfMployee) {
-          this.showMessage('目标确认请选择指定成员');
-          return false;
-        }
-      }
-      //上级评分
-      let indexSum = 0;
-      let isLing = true;
-      let isEmployee = true; //判断上级评分人员是否有选择
-      supervisor.forEach(item => {
-        item.supervisor_confirm = item.is_supervisor_confirm ? 1 : 0;
-        item.role_name = 'creator';
-        item.employee_ids = this.filtrationArr(item.employeeList);
-        item.action = this.isCx([{ comment: item.comment }, { summary: item.summary }]);
-        item.transfer = item.isTransfer ? 1 : 0;
-        if (item.weight == 0) {
-          isLing = false;
-        }
-        indexSum += Number(item.weight);
-        if (item.type == 2 && item.employeeList.length == 0) {
-          isEmployee = false;
-        }
-      });
-      if(this.$refs['Flow'].$refs['SuperiorFlow'].enable){
-        if (!isEmployee) {
-          this.showMessage('上级评分请选择指定成员');
-          return false;
-        }
-      }
-      if (!isLing) {
-        this.showMessage('上级评分节点的权重不能为0%');
-        return false;
-      }
-      if (indexSum != 100) {
-        this.showMessage('所有评分节点的权重总和必须等于100%');
-        return false;
-      }
-      // 指定评分人
-      special_scorer = {
-        enable: this.isShowScore ? 1 : 0,
-        action: this.isCx([{ comment: special_scorer.comment }, { summar: special_scorer.summar }])
-      };
-      let isEmployee2 = true; //判断审批节点指定成员是否有选择
-      //审批节点
-      reviewer.forEach(item => {
-        item.supervisor_confirm = item.is_supervisor_confirm ? 1 : 0;
-        item.action = this.isCx([{ transfer: item.transfer }, { refuse: item.refuse }]);
-        item.employee_ids = this.filtrationArr(item.employeeList);
-        if (item.type == 2 && item.employeeList.length == 0) {
-          isEmployee2 = false;
-        }
-      });
-      if(this.$refs['Flow'].$refs['Examine'].enable){
-        if (!isEmployee2) {
-          this.showMessage('审批节点请选择指定成员');
-          return false;
-        }
-      }
-      if(cc.enable){
-        if (cc.type == 2 && cc.employeeList.length == 0) {
-          this.showMessage('抄送请选择指定成员');
-          return false;
-        }
-		if(cc.type == 1){
-			cc.employeeList=[];
-		}
-      }
-	  
-      let process = {
-        type: this.$refs['Flow'].type, //流程方式 1-按评分人设置流程(默认) 2-按指标设置流程
-        target: {
-          //目标制定配置结果
-          enable: 1, //是否启用 1-启用 0-禁用
-          type: target.type, //制定者类型 1-系统(默认模板,不可制定目标直接进入下一步) 2-被考核人 3-指定成员 4-主管
-          action: {
-            //可执行动作(允许编辑内容)
-            score_type: 1, //评分方式是否可编辑 1-可以 0-不可以
-            result_source: 1, //结果值数据来源 1-可以 0-不可以
-            reviewer: 1 //制定评分人 1-可以 0-不可以
-          },
-          multi_executor: target.multi_executor, //执行人多人时处理方式 1-依次制定 2-任一人制定即可
-          manager_level: target.manager_level, //上级等级
-          supervisor_confirm: 1, //是否有上级主管代替 1-是 0-否
-          employee_ids: this.filtrationArr(target.employeeList) //制定成员id列表
-        },
-        confirm: {
-          //目标确认配置结果
-          enable: this.$refs['Flow'].$refs['Affirm'].enable, //是否启用 1-启用 0-禁用
-          unique: 1, //重复去重
-          confirmor:confirmor
-          // confirmor: [
-          //   //确认人员列表
-          //   {
-          //     type: 1, //确认人类型 1-主管 2-指定成员 3-被考核人 4-角色
-          //     manager_level: 1, //主管级别
-          //     supervisor_confirm: 1, //找不到确认人,有上级主管代替 1-是 0-否
-          //     multi_executor: 1, //确认人多人时处理方式 1-依次确认 2-任一人确认 3-均需确认
-          //     action: [
-          //       //允许确认人动作
-          //       'index', //修改指标
-          //       'transfer' //转交
-          //     ],
-          //     employee_ids: [], //指定成员用户id列表(类型为指定成员时)
-          //     role_name: 'creator' //角色名称(类型为指定角色时)
-          //   }
-          // ],
-        },
-        execution: {
-          //执行中制定配置结果
-          enable: 1 //是否启用 1-启用 0-禁用
-        },
-        score_self: {
-          //自评指定配置结果
-          enable: 0, //是否启用 1-启用 0-禁用
-          weight: 0, //权重
-          action: [
-            //必填项动作
-            'comment', //指标评分说明
-            'summary' //评分总结
-          ],
-          rating: 0, //是否手动评级
-          unique: 1 //评分人去重
-        },
-        score_mutual: {
-          //互评配置结果
-          enable: 0 //是否启用 1-启用 0-禁用
-        },
-        score_supervisor: {
-          //上级评分
-          enable: this.$refs['Flow'].$refs['SuperiorFlow'].enable, //是否启用 1-启用 0-禁用
-          unique: this.$refs['Flow'].$refs['SuperiorFlow'].unique, //评分人去重 1-是 0-否
-          supervisor: supervisor
-          // supervisor: [                    //上级配置列表
-          //     {
-          //         type: 1,                //评分人类型 1-主管 2-指定成员 3-角色
-          //         manager_level: 1,            //主管等级(只有评分人类型为主管时有效)
-          //         supervisor_confirm: 1,        //找不到确认人时是否由上级主管代替(只有评分人类型为主管时有效) 1-是 0-否
-          //         role_name: "creator",            //角色名(只有评分人类型为角色时有效)
-          //         employee_ids:[],                //用户id列表(只有评分人类型为指定人员时有效)
-          //         weight: 10,                    //权重
-          //         multi_executor: 1,            //评分人多人时 1-各自评分 2-任一人评分
-          //         rule: 1,                    //评分规则 1-指标均要评分 2-评分总结
-          //         action: [                    //必填项
-          //             "comment",                //指标评分说明
-          //             "summary"                //评分总结
-          //         ],
-          //         rating: 0,                //是否手动评分 1-是 0-否
-          //         transfer: 1                //是否允许转交 1-是 0-否
-          //     }
-          // ]
-        },
-        special_scorer: special_scorer,
-        // special_scorer: {                //指定评分人(只有维度数据中有指定评分人的指标才会有)
-        //     enable:1,                    //是否启用 1-启用 0-禁用
-        //     action: ['comment','summar']                    //必填项 'comment', //指标评分说明'summar ' //评分总
-        // },
-        review: {
-          //审批节点
-          enable: this.$refs['Flow'].$refs['Examine'].enable, //是否启用 1-启用 0-禁用
-          unique: this.$refs['Flow'].$refs['Examine'].unique, //评分人去重 1-是 0-否
-          reviewer: reviewer
-          // reviewer: [                        //审批人配置列表
-          //     {
-          //         type: 1,                    //用户种类 1-主管 2-指定成员 3-被考核人 4-角色
-          //         action: ['transfer','refuse'],  //转交//驳回                  //允许审批人动作
-          //         manager_level: 1,            //主管级别(只有用户种类为主管有效)
-          //         supervisor_confirm: 1,    //找不到审批人时,是否由上级主管代替(只有用户种类为主管有效)
-          //         multi_executor: 1,            //审批人多人时选项 1-依次确认 2-任一人审批 3-均需审批(只有用户种类为主管、指定成员、角色时有效)
-          //         employee_ids:[],                //用户id列表(只有用户种类为指定成员时有效)
-          //         role_name:"creator"            //角色名(只有用户种类为角色时有效)
-          //     }
-          // ]
-        },
-        cc: {
-          //抄送配置
-          enable: cc.enable, //是否启用 1-启用 0-禁用
-          employee: {
-            //抄送人员配置
-            type: cc.type, //抄送人类型 1-主管 2-指定成员 3-角色
-            manager_level: cc.manager_level, //主管等级(只有抄送人类型为主管时有效)
-            employee_ids: this.filtrationArr(cc.employeeList), //指定成员id列表(只有抄送人类型为指定成员时有效)
-            role_name: 'creator', //角色名称(只有抄送人类型为角色时有效)
-            condition: cc.condition //抄送结果 1-得出总分 2-公示结果
-          }
-        }
-      };
-      return process;
-    },
-    // 模板设计获取与判断
-    getIsTemplate() {
-      let ruleForm = this.$refs['Template'].ruleForm;
-      let dimensionalityList = this.$refs['Template'].dimensionalityList;
-      let dimensionalityIndex = false; //判断维度是否有指标
-      if (dimensionalityList.length == 0) {
-        this.showMessage('维度不能为空');
-        return false;
-      }
-      dimensionalityList.some(item => {
-        if (item.index.length != 0) {
-          dimensionalityIndex = true;
-          return true;
-        }
-      });
+			let process = {
+				type: this.$refs['Flow'].type, //流程方式 1-按评分人设置流程(默认) 2-按指标设置流程
+				target: {
+					//目标制定配置结果
+					enable: 1, //是否启用 1-启用 0-禁用
+					type: target.type, //制定者类型 1-系统(默认模板,不可制定目标直接进入下一步) 2-被考核人 3-指定成员 4-主管
+					action: {
+						//可执行动作(允许编辑内容)
+						score_type: 1, //评分方式是否可编辑 1-可以 0-不可以
+						result_source: 1, //结果值数据来源 1-可以 0-不可以
+						reviewer: 1 //制定评分人 1-可以 0-不可以
+					},
+					multi_executor: target.multi_executor, //执行人多人时处理方式 1-依次制定 2-任一人制定即可
+					manager_level: target.manager_level, //上级等级
+					supervisor_confirm: 1, //是否有上级主管代替 1-是 0-否
+					employee_ids: this.filtrationArr(target.employeeList) //制定成员id列表
+				},
+				confirm: {
+					//目标确认配置结果
+					enable: this.$refs['Flow'].$refs['Affirm'].enable, //是否启用 1-启用 0-禁用
+					unique: 1, //重复去重
+					confirmor: confirmor
+					// confirmor: [
+					//   //确认人员列表
+					//   {
+					//     type: 1, //确认人类型 1-主管 2-指定成员 3-被考核人 4-角色
+					//     manager_level: 1, //主管级别
+					//     supervisor_confirm: 1, //找不到确认人,有上级主管代替 1-是 0-否
+					//     multi_executor: 1, //确认人多人时处理方式 1-依次确认 2-任一人确认 3-均需确认
+					//     action: [
+					//       //允许确认人动作
+					//       'index', //修改指标
+					//       'transfer' //转交
+					//     ],
+					//     employee_ids: [], //指定成员用户id列表(类型为指定成员时)
+					//     role_name: 'creator' //角色名称(类型为指定角色时)
+					//   }
+					// ],
+				},
+				execution: {
+					//执行中制定配置结果
+					enable: 1 //是否启用 1-启用 0-禁用
+				},
+				score_self: {
+					//自评指定配置结果
+					enable: 0, //是否启用 1-启用 0-禁用
+					weight: 0, //权重
+					action: [
+						//必填项动作
+						'comment', //指标评分说明
+						'summary' //评分总结
+					],
+					rating: 0, //是否手动评级
+					unique: 1 //评分人去重
+				},
+				score_mutual: {
+					//互评配置结果
+					enable: 0 //是否启用 1-启用 0-禁用
+				},
+				score_supervisor: {
+					//上级评分
+					enable: this.$refs['Flow'].$refs['SuperiorFlow'].enable, //是否启用 1-启用 0-禁用
+					unique: this.$refs['Flow'].$refs['SuperiorFlow'].unique, //评分人去重 1-是 0-否
+					supervisor: supervisor
+					// supervisor: [                    //上级配置列表
+					//     {
+					//         type: 1,                //评分人类型 1-主管 2-指定成员 3-角色
+					//         manager_level: 1,            //主管等级(只有评分人类型为主管时有效)
+					//         supervisor_confirm: 1,        //找不到确认人时是否由上级主管代替(只有评分人类型为主管时有效) 1-是 0-否
+					//         role_name: "creator",            //角色名(只有评分人类型为角色时有效)
+					//         employee_ids:[],                //用户id列表(只有评分人类型为指定人员时有效)
+					//         weight: 10,                    //权重
+					//         multi_executor: 1,            //评分人多人时 1-各自评分 2-任一人评分
+					//         rule: 1,                    //评分规则 1-指标均要评分 2-评分总结
+					//         action: [                    //必填项
+					//             "comment",                //指标评分说明
+					//             "summary"                //评分总结
+					//         ],
+					//         rating: 0,                //是否手动评分 1-是 0-否
+					//         transfer: 1                //是否允许转交 1-是 0-否
+					//     }
+					// ]
+				},
+				special_scorer: special_scorer,
+				// special_scorer: {                //指定评分人(只有维度数据中有指定评分人的指标才会有)
+				//     enable:1,                    //是否启用 1-启用 0-禁用
+				//     action: ['comment','summar']                    //必填项 'comment', //指标评分说明'summar ' //评分总
+				// },
+				review: {
+					//审批节点
+					enable: this.$refs['Flow'].$refs['Examine'].enable, //是否启用 1-启用 0-禁用
+					unique: this.$refs['Flow'].$refs['Examine'].unique, //评分人去重 1-是 0-否
+					reviewer: reviewer
+					// reviewer: [                        //审批人配置列表
+					//     {
+					//         type: 1,                    //用户种类 1-主管 2-指定成员 3-被考核人 4-角色
+					//         action: ['transfer','refuse'],  //转交//驳回                  //允许审批人动作
+					//         manager_level: 1,            //主管级别(只有用户种类为主管有效)
+					//         supervisor_confirm: 1,    //找不到审批人时,是否由上级主管代替(只有用户种类为主管有效)
+					//         multi_executor: 1,            //审批人多人时选项 1-依次确认 2-任一人审批 3-均需审批(只有用户种类为主管、指定成员、角色时有效)
+					//         employee_ids:[],                //用户id列表(只有用户种类为指定成员时有效)
+					//         role_name:"creator"            //角色名(只有用户种类为角色时有效)
+					//     }
+					// ]
+				},
+				cc: {
+					//抄送配置
+					enable: cc.enable, //是否启用 1-启用 0-禁用
+					employee: {
+						//抄送人员配置
+						type: cc.type, //抄送人类型 1-主管 2-指定成员 3-角色
+						manager_level: cc.manager_level, //主管等级(只有抄送人类型为主管时有效)
+						employee_ids: this.filtrationArr(cc.employeeList), //指定成员id列表(只有抄送人类型为指定成员时有效)
+						role_name: 'creator', //角色名称(只有抄送人类型为角色时有效)
+						condition: cc.condition //抄送结果 1-得出总分 2-公示结果
+					}
+				}
+			};
+			return process;
+		},
+		// 模板设计获取与判断
+		getIsTemplate() {
+			let ruleForm = this.$refs['Template'].ruleForm;
+			let dimensionalityList = this.$refs['Template'].dimensionalityList;
+			let dimensionalityIndex = false; //判断维度是否有指标
+			if (dimensionalityList.length == 0) {
+				this.showMessage('维度不能为空');
+				return false;
+			}
+			dimensionalityList.some(item => {
+				if (item.index.length != 0) {
+					dimensionalityIndex = true;
+					return true;
+				}
+			});
 
-      if (!dimensionalityIndex) {
-        this.showMessage('维度中指标至少有一条');
-        return false;
-      }
+			if (!dimensionalityIndex) {
+				this.showMessage('维度中指标至少有一条');
+				return false;
+			}
 
-      if (ruleForm.calc_dimension == 1) {
-        //当维度参与时
-        let indexSum = 0;
-        let is = false; //是否有量化跟非量化
-        dimensionalityList.forEach(item => {
-          if (item.index_type == 1 || item.index_type == 2) {
-            is = true;
-            indexSum += Number(item.dimension_weight);
-          }
-        });
-        if (indexSum != 100 && is) {
-          this.showMessage('所有维度的权重相加要等于100%');
-          return false;
-        }
-      }
-      if (ruleForm.calc_type == 2 && ruleForm.calc_dimension == 0) {
-        //当为加权计算,维度权重不参与时
-        let indexSum = 0;
-        let is = false; //是否有量化跟非量化
-        dimensionalityList.forEach(item => {
-          if (item.index.length > 0) {
-            item.index.forEach(item2 => {
-              if (item.index_type == 1 || item.index_type == 2) {
-                is = true;
-                indexSum += Number(item2.weight);
-              }
-            });
-          }
-        });
-        if (indexSum != 100 && is) {
-          this.showMessage('各维度中的所有指标权重相加要等于100%');
-          return false;
-        }
-      }
-      if (ruleForm.calc_type == 2 && ruleForm.calc_dimension == 1) {
-        //当为加权计算,维度权重参与时
-        let isSum = true;
-        let str = '';
-        dimensionalityList.forEach(item => {
-          if (item.index_type == 1 || item.index_type == 2) {
-            let indexSum = 0;
-            if (item.index.length > 0) {
-              item.index.forEach(item2 => {
-                indexSum += Number(item2.weight);
-              });
-            }
-            if (indexSum != 100) {
-              str = item.name;
-              isSum = false;
-            }
-          }
-        });
-        if (!isSum) {
-          this.showMessage('“' + str + '” 的指标权重相加要等于100%');
-          return false;
-        }
-      }
+			if (ruleForm.calc_dimension == 1) {
+				//当维度参与时
+				let indexSum = 0;
+				let is = false; //是否有量化跟非量化
+				dimensionalityList.forEach(item => {
+					if (item.index_type == 1 || item.index_type == 2) {
+						is = true;
+						indexSum += Number(item.dimension_weight);
+					}
+				});
+				if (indexSum != 100 && is) {
+					this.showMessage('所有维度的权重相加要等于100%');
+					return false;
+				}
+			}
+			if (ruleForm.calc_type == 2 && ruleForm.calc_dimension == 0) {
+				//当为加权计算,维度权重不参与时
+				let indexSum = 0;
+				let is = false; //是否有量化跟非量化
+				dimensionalityList.forEach(item => {
+					if (item.index.length > 0) {
+						item.index.forEach(item2 => {
+							if (item.index_type == 1 || item.index_type == 2) {
+								is = true;
+								indexSum += Number(item2.weight);
+							}
+						});
+					}
+				});
+				if (indexSum != 100 && is) {
+					this.showMessage('各维度中的所有指标权重相加要等于100%');
+					return false;
+				}
+			}
+			if (ruleForm.calc_type == 2 && ruleForm.calc_dimension == 1) {
+				//当为加权计算,维度权重参与时
+				let isSum = true;
+				let str = '';
+				dimensionalityList.forEach(item => {
+					if (item.index_type == 1 || item.index_type == 2) {
+						let indexSum = 0;
+						if (item.index.length > 0) {
+							item.index.forEach(item2 => {
+								indexSum += Number(item2.weight);
+							});
+						}
+						if (indexSum != 100) {
+							str = item.name;
+							isSum = false;
+						}
+					}
+				});
+				if (!isSum) {
+					this.showMessage('“' + str + '” 的指标权重相加要等于100%');
+					return false;
+				}
+			}
 
-      dimensionalityList.forEach(item => {
-        //重置数据
-        item.target_index = item.target_index ? 1 : 0;
-        if (item.index.length > 0) {
-          item.index.forEach(item2 => {
-            item2.type = item2.type;
-            item2.per_remark = item2.per_remark;
-            item2.remark = item2.remark;
-            item2.target = item2.target;
-            item2.result_type = item2.result_type;
-            item2.result_employee_id = item2.result_employee_id;
-            item2.unit = item2.unit;
-            item2.weight = item2.weight;
-            item2.reviewer_id = item2.reviewer_id; //指标的指定评分人id
-            item2.need = 0;
-          });
-        }
-      });
-      return { ruleForm, dimensionalityList };
-    },
-    // 基础信息获取与判断
-    getIsBasicMessage() {
-      let ruleForm = this.$refs['BasicMessage'].ruleForm;
-      if (!ruleForm.name) {
-        this.showMessage('考核表名称不能为空');
-        return false;
-      }
-	  if (ruleForm.name.length<2) {
-	    this.showMessage('考核表名称不能小于两位');
-	    return false;
-	  }
-      if (!ruleForm.employee_ids) {
-        this.showMessage('被考核人员不能为空');
-        return false;
-      }
-      let selected = this.$refs['BasicMessage'].selected;
-      this.employee_list = selected.employee;
-      return ruleForm;
-    },
+			dimensionalityList.forEach(item => {
+				//重置数据
+				item.target_index = item.target_index ? 1 : 0;
+				if (item.index.length > 0) {
+					item.index.forEach(item2 => {
+						item2.type = item2.type;
+						item2.per_remark = item2.per_remark;
+						item2.remark = item2.remark;
+						item2.target = item2.target;
+						item2.result_type = item2.result_type;
+						item2.result_employee_id = item2.result_employee_id;
+						item2.unit = item2.unit;
+						item2.weight = item2.weight;
+						item2.reviewer_id = item2.reviewer_id; //指标的指定评分人id
+						item2.need = 0;
+					});
+				}
+			});
+			return { ruleForm, dimensionalityList };
+		},
+		// 基础信息获取与判断
+		getIsBasicMessage() {
+			let ruleForm = this.$refs['BasicMessage'].ruleForm;
+			if (!ruleForm.name) {
+				this.showMessage('考核表名称不能为空');
+				return false;
+			}
+			if (ruleForm.name.length < 2) {
+				this.showMessage('考核表名称不能小于两位');
+				return false;
+			}
+			if (!ruleForm.employee_ids) {
+				this.showMessage('被考核人员不能为空');
+				return false;
+			}
+			let selected = this.$refs['BasicMessage'].selected;
+			this.employee_list = selected.employee;
+			return ruleForm;
+		},
 
-    setActiveIndex(str, str2, str3) {
-      if (!str) {
-        this.activeIndex = 1;
-        return false;
-      }
-      if (!str2) {
-        this.activeIndex = 2;
-        return false;
-      }
-      if (!str3) {
-        this.activeIndex = 3;
-        return false;
-      }
-    },
+		setActiveIndex(str, str2, str3) {
+			if (!str) {
+				this.activeIndex = 1;
+				return false;
+			}
+			if (!str2) {
+				this.activeIndex = 2;
+				return false;
+			}
+			if (!str3) {
+				this.activeIndex = 3;
+				return false;
+			}
+		},
 
-    //处理权限,如果参数是真就加入数组返回
-    isCx(arr) {
-      let action = [];
-      if (arr.length == 0) {
-        return [];
-      }
-      arr.forEach(item => {
-        for (let key in item) {
-          if (item[key]) {
-            action.push(key);
-          }
-        }
-      });
-      return action;
-    },
-    //过滤数组,返回数据中的ID
-    filtrationArr(arr) {
-      if (!arr) {
-        return false;
-      }
-      if (arr.length == 0) {
-        return [];
-      }
-      return arr.map(item => {
-        return item.id;
-      });
-    },
-    showMessage(str) {
-      this.$message.error(str);
-    },
-    //判断模板设计维度里是否有指定评分人,有就再流程设置里,显示’指定评分人‘
-    getIsShowScore() {
-      this.isShowScore = false;
-      var dimensionalityList = this.$refs['Template'].dimensionalityList;
-      dimensionalityList.some(item => {
-        if (item.index.length > 0) {
-          item.index.some(item2 => {
-            if (item2.reviewer_id != 0) {
-              this.isShowScore = true;
-              return true;
-            }
-          });
-        }
-      });
-    },
-    activeStep(index) {
-      //判断模板设计维度里是否有指定评分人,有就再流程设置里,显示’指定评分人‘
-      if (index == 3) {
-        this.isShowScore = false;
-        var dimensionalityList = this.$refs['Template'].dimensionalityList;
-        dimensionalityList.some(item => {
-          if (item.index.length > 0) {
-            item.index.some(item2 => {
-              if (item2.reviewer_id != 0) {
-                this.isShowScore = true;
-                return true;
-              }
-            });
-          }
-        });
-        this.activeIndex = index;
-      } else {
-        this.activeIndex = index;
-      }
-    }
-  },
-  beforeRouteLeave(to, from, next) {
-    if (this.isTs && !this.isPreview) {
-      setTimeout(() => {
-        // hash模式下,此处必须要加延迟执行,主要解决浏览器前进后退带来的闪现
-        this.$confirm('系统可能不会保存您做的更改。', '有修改的内容未保存,确认离开吗?', {
-          confirmButtonText: '确定',
-          cancelButtonText: '取消',
-          type: 'warning'
-        }).then(() => { next(); })
-        .catch(() => {next(false);});
-      }, 200);
-    } else {
-      next();
-    }
-  }
+		//处理权限,如果参数是真就加入数组返回
+		isCx(arr) {
+			let action = [];
+			if (arr.length == 0) {
+				return [];
+			}
+			arr.forEach(item => {
+				for (let key in item) {
+					if (item[key]) {
+						action.push(key);
+					}
+				}
+			});
+			return action;
+		},
+		//过滤数组,返回数据中的ID
+		filtrationArr(arr) {
+			if (!arr) {
+				return false;
+			}
+			if (arr.length == 0) {
+				return [];
+			}
+			return arr.map(item => {
+				return item.id;
+			});
+		},
+		showMessage(str) {
+			this.$message.error(str);
+		},
+		//判断模板设计维度里是否有指定评分人,有就再流程设置里,显示’指定评分人‘
+		getIsShowScore() {
+			this.isShowScore = false;
+			var dimensionalityList = this.$refs['Template'].dimensionalityList;
+			dimensionalityList.some(item => {
+				if (item.index.length > 0) {
+					item.index.some(item2 => {
+						if (item2.reviewer_id != 0) {
+							this.isShowScore = true;
+							return true;
+						}
+					});
+				}
+			});
+		},
+		activeStep(index) {
+			//判断模板设计维度里是否有指定评分人,有就再流程设置里,显示’指定评分人‘
+			if (index == 3) {
+				this.isShowScore = false;
+				var dimensionalityList = this.$refs['Template'].dimensionalityList;
+				dimensionalityList.some(item => {
+					if (item.index.length > 0) {
+						item.index.some(item2 => {
+							if (item2.reviewer_id != 0) {
+								this.isShowScore = true;
+								return true;
+							}
+						});
+					}
+				});
+				this.activeIndex = index;
+			} else {
+				this.activeIndex = index;
+			}
+		}
+	},
+	beforeRouteLeave(to, from, next) {
+		if (this.isTs && !this.isPreview) {
+			setTimeout(() => {
+				// hash模式下,此处必须要加延迟执行,主要解决浏览器前进后退带来的闪现
+				this.$confirm('系统可能不会保存您做的更改。', '有修改的内容未保存,确认离开吗?', {
+					confirmButtonText: '确定',
+					cancelButtonText: '取消',
+					type: 'warning'
+				})
+					.then(() => {
+						next();
+					})
+					.catch(() => {
+						next(false);
+					});
+			}, 200);
+		} else {
+			next();
+		}
+	}
 };
 </script>
 <style scoped="scoped" lang="scss">
 .box {
-  padding: 20px;
-  font-size: 14px;
-  background-color: #fff;
-  padding-top: 5px;
-  min-width: 1200px;
+	padding: 20px;
+	font-size: 14px;
+	background-color: #fff;
+	padding-top: 5px;
+	min-width: 1200px;
 }
 .main {
-  background-color: #fff;
+	background-color: #fff;
 }
 .box::-webkit-scrollbar {
-  width: 3px;
-  height: 10px;
-  background-color: #fff;
+	width: 3px;
+	height: 10px;
+	background-color: #fff;
 }
 .box::-webkit-scrollbar-thumb {
-  background-color: #d9d9d9;
+	background-color: #d9d9d9;
 }
 .el-header {
-  background-color: #fff;
-  padding: 0 !important;
-  height: 60px;
+	background-color: #fff;
+	padding: 0 !important;
+	height: 60px;
 }
 .header-content {
-  position: relative;
-  box-sizing: border-box;
-  height: 60px;
+	position: relative;
+	box-sizing: border-box;
+	height: 60px;
 }
 .header-right {
-  width: 230px;
-  text-align: right;
+	width: 230px;
+	text-align: right;
 }
 .header-left {
-  width: 230px;
-  box-sizing: border-box;
-  height: 60px;
+	width: 230px;
+	box-sizing: border-box;
+	height: 60px;
 }
 .header-left {
-  cursor: pointer;
-  height: 60px;
+	cursor: pointer;
+	height: 60px;
 }
 .header-left:hover .el-icon-arrow-left {
-  background-color: #f5f7fa;
-  color: #222;
+	background-color: #f5f7fa;
+	color: #222;
 }
 .el-icon-arrow-left {
-  font-size: 22px;
+	font-size: 22px;
 }
 .text {
-  font-size: 18px;
-  padding-left: 30px;
+	font-size: 18px;
+	padding-left: 30px;
 }
 .text::before {
-  position: absolute;
-  content: '';
-  width: 1px;
-  height: 36px;
-  background-color: #ebebeb;
-  left: 44px;
-  top: 50%;
-  margin-top: -18px;
+	position: absolute;
+	content: '';
+	width: 1px;
+	height: 36px;
+	background-color: #ebebeb;
+	left: 44px;
+	top: 50%;
+	margin-top: -18px;
 }
 
 .step-item2 {
-  width: 200px;
-  color: #d6d6d6;
-  text-align: center;
-  height: 60px;
-  cursor: pointer;
-  position: relative;
+	width: 200px;
+	color: #d6d6d6;
+	text-align: center;
+	height: 60px;
+	cursor: pointer;
+	position: relative;
 }
 .step-item2 span {
-  width: 36px;
-  height: 36px;
-  border-radius: 50%;
-  text-align: center;
-  line-height: 36px;
-  font-size: 20px;
-  border: 4px solid #d6d6d6;
+	width: 36px;
+	height: 36px;
+	border-radius: 50%;
+	text-align: center;
+	line-height: 36px;
+	font-size: 20px;
+	border: 4px solid #d6d6d6;
 }
 .step-item2 div {
-  font-size: 14px;
-  margin-left: 5px;
+	font-size: 14px;
+	margin-left: 5px;
 }
 .active-step2 span {
-  border: 4px solid #409eff;
-  color: #fff;
-  background-color: #409eff;
+	border: 4px solid #409eff;
+	color: #fff;
+	background-color: #409eff;
 }
 .active-step2 div {
-  color: #409eff;
+	color: #409eff;
 }
 .barder-a::before {
-  position: absolute;
-  content: ' ';
-  height: 4px;
-  width: 90px;
-  top: 28px;
-  background-color: #d6d6d6;
-  border-radius: 3px;
-  right: -45px;
+	position: absolute;
+	content: ' ';
+	height: 4px;
+	width: 90px;
+	top: 28px;
+	background-color: #d6d6d6;
+	border-radius: 3px;
+	right: -45px;
 }
 
 .step-item {
-  width: 140px;
-  color: #777777;
-  text-align: center;
-  height: 60px;
-  cursor: pointer;
+	width: 140px;
+	color: #777777;
+	text-align: center;
+	height: 60px;
+	cursor: pointer;
 }
 .step-item span {
-  width: 24px;
-  height: 24px;
-  border-radius: 50%;
-  text-align: center;
-  line-height: 24px;
-  border: 1px solid #ebebeb;
-  margin-right: 10px;
+	width: 24px;
+	height: 24px;
+	border-radius: 50%;
+	text-align: center;
+	line-height: 24px;
+	border: 1px solid #ebebeb;
+	margin-right: 10px;
 }
 .active-step {
-  background-color: #1583f2;
-  color: #fff;
+	background-color: #1583f2;
+	color: #fff;
 }
 .active-step span {
-  border: 1px solid #1583f2;
-  background-color: #fff;
-  color: #1583f2;
+	border: 1px solid #1583f2;
+	background-color: #fff;
+	color: #1583f2;
 }
 
 // 预览
 .all-derawer ::v-deep.el-drawer {
-  height: 90% !important;
-  border-radius: 10px 10px 0 0;
-  background-color: #f5f7fa;
-  min-width: 1100px !important;
+	height: 90% !important;
+	border-radius: 10px 10px 0 0;
+	background-color: #f5f7fa;
+	min-width: 1100px !important;
 }
 .all-derawer ::v-deep.el-drawer__header {
-  background-color: #f5f7fa;
-  padding: 12px 20px;
-  margin-bottom: 0px;
-  font-size: 16px;
+	background-color: #f5f7fa;
+	padding: 12px 20px;
+	margin-bottom: 0px;
+	font-size: 16px;
 }
 .all-derawer ::v-deep.el-drawer__body {
-  height: calc(100vh - 500px);
-  background-color: #fff;
-  overflow: auto;
+	height: calc(100vh - 500px);
+	background-color: #fff;
+	overflow: auto;
 }
 // 滚动条样式
 .all-derawer ::v-deep.el-drawer__body::-webkit-scrollbar {
-  width: 4px;
-  height: 4px;
+	width: 4px;
+	height: 4px;
 }
 
 /*外层轨道。可以用display:none让其不显示,也可以添加背景图片,颜色改变显示效果*/
 .all-derawer ::v-deep.el-drawer__body::-webkit-scrollbar-track {
-  width: 6px;
-  background-color: #fff0;
-  -webkit-border-radius: 2em;
-  -moz-border-radius: 2em;
-  border-radius: 2em;
+	width: 6px;
+	background-color: #fff0;
+	-webkit-border-radius: 2em;
+	-moz-border-radius: 2em;
+	border-radius: 2em;
 }
 
 /*滚动条的设置*/
 .all-derawer ::v-deep.el-drawer__body::-webkit-scrollbar-thumb {
-  background-color: #fff0;
-  background-clip: padding-box;
-  -webkit-border-radius: 2em;
-  -moz-border-radius: 2em;
-  border-radius: 2em;
+	background-color: #fff0;
+	background-clip: padding-box;
+	-webkit-border-radius: 2em;
+	-moz-border-radius: 2em;
+	border-radius: 2em;
 }
 /*滚动条移上去的背景*/
 .all-derawer ::v-deep.el-drawer__body:hover::-webkit-scrollbar-thumb {
-  background-color: rgba(144, 147, 153, 0.3);
-  height: 20px;
+	background-color: rgba(144, 147, 153, 0.3);
+	height: 20px;
 }
 ::v-deep :focus {
-  outline: 0;
+	outline: 0;
 }
 </style>

+ 6 - 7
src/views/job/home.vue

@@ -99,7 +99,7 @@
 						:show-all-levels="false"
 						:props="{ expandTrigger: 'hover', label: 'name', value: 'id', children: 'list' }"
 					></el-cascader>
-					<div style="margin-left:10px;width:200px;"><JxSearch :screen="2" title="请输入名搜索" @confirm="searchList"></JxSearch></div>
+					<div style="margin-left:10px;width:200px;"><JxSearch :screen="2" title="请输入名搜索" @confirm="searchList"></JxSearch></div>
 				</div>
 				<el-tabs v-model="glIndex">
 					<el-tab-pane :label="item.title" :name="item.name" v-for="(item, index) in glIist" :key="index">
@@ -225,7 +225,6 @@
 
 <script>
 import ECharts from 'echarts';
-import moment from 'moment';
 import TrackManagement from '@/components/public/TrackManagement';
 import JxSearch from '@/components/public/JxSearch';
 export default {
@@ -233,7 +232,7 @@ export default {
 	components: { JxSearch, TrackManagement },
 	data() {
 		return {
-			day: moment().format('YYYY-MM-DD'),
+			day: this.$moment().format('YYYY-MM-DD'),
 			editableTabs: [
 				{ title: '全部待办', name: '0', num: 0 },
 				{ title: '目标制定', name: '1', num: 0 },
@@ -255,7 +254,7 @@ export default {
 			options: [], //
 			headValue: [],
 			glIndex: '1',
-			glIist: [{ name: '1', title: '我管理' }, { name: '2', title: '我评分' }],
+			glIist: [{ name: '1', title: '我参与管理' }, { name: '2', title: '我参与评分' }],
 			glLoading: false,
 			glDataList: [],
 			package_id: '', //考核包ID
@@ -356,7 +355,7 @@ export default {
 		},
 		returnStr(time) {
 			let date = `${time}000`;
-			let res = moment(Number(date)).format('YYYY-MM-DD HH:mm');
+			let res = this.$moment(Number(date)).format('YYYY-MM-DD HH:mm');
 			return this.fnTime(res);
 		},
 		fnTime(time) {
@@ -661,7 +660,7 @@ export default {
 		},
 		setMenu() {
 			let entranceList = [];
-			if (this.$isAuthoritys([this.$7, this.$8, this.$9, this.$10, this.$11])) {
+			if (this.$isAuthoritys([this.$7, this.$8, this.$9, this.$10, this.$11,this.$17,this.$18])) {
 				entranceList.push({ name: '考核管理', image: require('@/assets/image/1.png'), url: '/assessManagement' });
 			}
 			if (this.$isAuthoritys([this.$13, this.$14])) {
@@ -713,7 +712,7 @@ export default {
 	position: absolute;
 	top: 14px;
 	right: 20px;
-	z-index: 9999;
+	z-index: 999;
 }
 .more2 span {
 	cursor: pointer;

+ 2 - 2
src/views/job/management.vue

@@ -145,7 +145,7 @@ export default {
 
       name: '', //搜索名称
       glIndex: '0',
-      glIist: [{ name: '0', title: '全部' }, { name: '1', title: '我的下级' }, { name: '2', title: '我协助管理的' }],
+      glIist: [{ name: '0', title: '全部' }, { name: '1', title: '我的团队' }, { name: '2', title: '我协助管理的' }],
       glLoading: false,
       glDataList: [],
 
@@ -396,7 +396,7 @@ header {
       border: 1px solid #e0e0e0;
       border-radius: 3px;
       line-height: 40px;
-      font-size: 12px;
+      font-size: 14px;
       padding: 0 10px;
       overflow: hidden;
       white-space: nowrap;

+ 2 - 2
src/views/job/score.vue

@@ -143,7 +143,7 @@ export default {
 
       name: '', //搜索名称
       glIndex: '0',
-      glIist: [{ name: '0', title: '全部',text:'' }, { name: '1', title: '我的下级',text:'' }, { name: '2', title: '我协助评分的',text:'' }],
+      glIist: [{ name: '0', title: '全部',text:'' }, { name: '1', title: '我的团队',text:'' }, { name: '2', title: '我协助评分的',text:'' }],
       glLoading: false,
       glDataList: []
     };
@@ -357,7 +357,7 @@ header {
       border: 1px solid #e0e0e0;
       border-radius: 3px;
       line-height: 40px;
-      font-size: 12px;
+      font-size: 14px;
       padding: 0 10px;
       overflow: hidden;
       white-space: nowrap;

+ 2 - 2
src/views/myPerformance/adjustment.vue

@@ -148,7 +148,7 @@
 						<el-input placeholder="请输入扣分上限" v-model="addIndexForm.point_limit" clearable oninput="value=value.replace(/[^\d]/g,'')"></el-input>
 					</el-form-item>
 					<el-form-item label="备注" prop="remark">
-						<el-input placeholder="请输入" type="textarea" v-model="addIndexForm.remark" clearable :rows="4" show-word-limit maxlength="500"></el-input>
+						<el-input placeholder="请输入" type="textarea" v-model="addIndexForm.remark" autosize  show-word-limit maxlength="500"></el-input>
 					</el-form-item>
 					<el-form-item label="目标值" prop="target" v-if="addIndexForm.type == 1">
 						<el-input placeholder="请输入目标值" v-model="addIndexForm.target" clearable></el-input>
@@ -170,7 +170,7 @@
 							<el-option label="不开启" value="none"></el-option>
 							<el-option label="被考核人" value="self"></el-option>
 							<el-option label="指定员工" value="special"></el-option>
-							<el-option label="直接管理员" value="supervisor"></el-option>
+							<el-option label="一级部门主管" value="supervisor"></el-option>
 						</el-select>
 						<div style="position: relative;margin-top: 10px;" v-if="addIndexForm.result_type == 'special'" class="width-250">
 							<el-input v-model="assignUser.name" placeholder="请选择指定员工"></el-input>

+ 3 - 3
src/views/myPerformance/adjustment2.vue

@@ -163,14 +163,14 @@
               <el-option label="不开启" value="none"></el-option>
               <el-option label="被考核人" value="self"></el-option>
               <el-option label="指定员工" value="special"></el-option>
-              <el-option label="直接管理员" value="supervisor"></el-option>
+              <el-option label="一级部门主管" value="supervisor"></el-option>
             </el-select>
             <div style="position: relative;margin-top: 10px;" v-if="addIndexForm.result_type == 'special'" class="width-250">
               <el-input v-model="assignUser.name" placeholder="请选择指定员工"></el-input>
               <div @click="addUser(1)" class="inputDc"></div>
             </div>
           </el-form-item>
-          <el-form-item label="权重:" prop="weight" v-if="addIndexForm.type == 2 || addIndexForm.type == 1">
+          <el-form-item label="权重" prop="weight" v-if="addIndexForm.type == 2 || addIndexForm.type == 1">
             <el-input disabled placeholder="请输入权重(1~100)" id="input2" @input="checkCountry('input2')" v-model.number="addIndexForm.weight">
               <template slot="append">
                 %
@@ -178,7 +178,7 @@
             </el-input>
           </el-form-item>
           <el-form-item label="备注" prop="remark">
-            <el-input placeholder="请输入" type="textarea" v-model="addIndexForm.remark" clearable :rows="4" show-word-limit maxlength="500"></el-input>
+            <el-input placeholder="请输入" type="textarea" v-model="addIndexForm.remark" autosize  show-word-limit maxlength="500"></el-input>
           </el-form-item>
           <el-form-item label="评分方式" v-if="addIndexForm.type == 1"><el-input placeholder="手动输入评分" disabled></el-input></el-form-item>
           <el-form-item label="指定评分人" prop="isReviewer" v-if="special_scorer">

+ 2 - 2
src/views/myPerformance/backlog.vue

@@ -30,7 +30,7 @@
                 </template>
                 <div class="flex-1 font-flex-word content">{{ item.content }}</div>
                 <div class="fontColorB">
-                  {{ item.update_time }}
+                  {{ $moment(item.update_time).format('YYYY-MM-DD HH:mm') }}
                   <i class="el-icon-arrow-right"></i>
                 </div>
               </div>
@@ -47,7 +47,7 @@
               </template>
               <div class="flex-1 font-flex-word content">{{ item.content }}</div>
               <div class="fontColorB">
-                {{ item.update_time }}
+                {{ $moment(item.update_time).format('YYYY-MM-DD HH:mm') }}
                 <i class="el-icon-arrow-right"></i>
               </div>
             </div>

+ 8 - 8
src/views/myPerformance/formulate.vue

@@ -47,7 +47,7 @@
               <span v-if="scope.row.result_type == 'none'">不开启</span>
               <span v-if="scope.row.result_type == 'self'">被考核人</span>
               <span v-if="scope.row.result_type == 'special'">指定员工</span>
-              <span v-if="scope.row.result_type == 'supervisor'">直接管理员</span>
+              <span v-if="scope.row.result_type == 'supervisor'">一级部门主管</span>
             </template>
           </el-table-column>
           <el-table-column prop="reviewer_name" label="指定评分人"></el-table-column>
@@ -139,7 +139,7 @@
               <el-option label="不开启" value="none"></el-option>
               <el-option label="被考核人" value="self"></el-option>
               <el-option label="指定员工" value="special"></el-option>
-              <el-option label="直接管理员" value="supervisor"></el-option>
+              <el-option label="一级部门主管" value="supervisor"></el-option>
             </el-select>
             <div style="position: relative;margin-top: 10px;" v-if="addIndexForm.result_type == 'special'" class="width-250">
               <el-input v-model="assignUser.name" placeholder="请选择指定员工"></el-input>
@@ -154,7 +154,7 @@
             </el-input>
           </el-form-item>
           <el-form-item label="备注:" prop="remark">
-            <el-input type="textarea" placeholder="请输入" v-model="addIndexForm.remark" :rows="4" show-word-limit maxlength="500"></el-input>
+            <el-input type="textarea" placeholder="请输入" v-model="addIndexForm.remark" autosize show-word-limit maxlength="500"></el-input>
           </el-form-item>
           <el-form-item label="评分方式:" v-if="addIndexForm.type == 1"><el-input placeholder="直接输入分数" disabled></el-input></el-form-item>
           <el-form-item label="开启指定评分人:" prop="isReviewer">
@@ -308,9 +308,9 @@ export default {
       isAfterLoading:false,//是否加载完
 
       // 添加指标
-	        selected2:{ employee: [], dept: [] },//已经选择人员
-			record_ids:[],
-			isShowRecord:false,
+	selected2:{ employee: [], dept: [] },//已经选择人员
+	record_ids:[],
+	isShowRecord:false,
       isAddIndex: false,
       addIndexForm: {
         // cate_id: '', //指标分类id
@@ -540,7 +540,7 @@ export default {
       this.indexLoading = true;
       let data={
         cycle_type:this.cycle_type,
-        employee_id:this.userId,
+        employee_id_code:this.$returnCode(this.userId),
         page: 0
       }
       this.$axios('get', 'api/per/package/list', data).then(res => {
@@ -559,7 +559,7 @@ export default {
        this.wdList=[];
        this.wdIndex='';
        this.fzIndexList=[];
-       this.$axios('get', '/api/per/package/employee/info', {package_id:this.khId,employee_id:this.userId}).then(res => {
+       this.$axios('get', '/api/per/package/employee/info', {package_id:this.khId,employee_id_code:this.$returnCode(this.userId)}).then(res => {
             let data = res.data.data;
             let indexs=[];
             let wdList=[];

+ 20 - 19
src/views/myPerformance/myPerformance.vue

@@ -6,7 +6,7 @@
           <el-select v-model="headvalue" style="width: 250px;" placeholder="请选择">
             <el-option v-for="item in headoptions" :key="item.id" :label="item.name" :value="item.id"></el-option>
           </el-select>
-          <img v-if="has_finish" src="static/images/guidang.png" class="guidang">
+          <img v-if="has_finish" src="@/assets/image/guidang.png" class="guidang">
           <!-- <div class="flex-1" style="padding-left: 20px;"><el-checkbox v-model="isShowOneselfScore">只看自己评分内容</el-checkbox></div> -->
           <div class="button-width" v-if="!has_finish">
             <!-- 撤销上一次操作 -->
@@ -21,7 +21,7 @@
             <!-- 目标确认 -->
             <template v-if="isShowConfirmBtn">
               <el-button  type="primary" @click="gradeOk">同意</el-button>
-              <el-button class="red" type="danger" plain  @click="gradeTurn" style="margin-left: -2px;background-color: #fff;">驳回</el-button>
+              <el-button class="red" type="danger" plain  @click="gradeTurn" style="background-color: #fff;">驳回</el-button>
               <el-button v-if="isUpdateIndex" @click="openFormulate()" >修改目标</el-button>
             </template>
             <!-- 录入结果值 -->
@@ -29,7 +29,7 @@
             <!-- 审批 -->
             <template v-if="examineButShow">
               <el-button  type="primary" @click="gradeOk">同意</el-button>
-              <el-button class="red"  type="danger" plain v-if="isAction" @click="gradeTurn" style="margin-left: -2px;background-color: #fff;">驳回</el-button>
+              <el-button class="red"  type="danger" plain v-if="isAction" @click="gradeTurn" style="background-color: #fff;">驳回</el-button>
             </template>
             <!-- 评分 -->
             <el-button v-if="gradeButShow"  type="primary" @click="gradeClick">评分</el-button>
@@ -54,9 +54,9 @@
           <userImage class="fl" :id="remployee.id" :user_name="remployee.name" :img_url="remployee.img_url" width="50px" height="50px"></userImage>
           <div class="headTname">
             <div style="">{{ remployee.name }}</div>
-            <span v-for="(item, index) in remployee.deptList" :key="index" v-if="remployee.deptList.length>0">
-              <span>{{ item.dept_name }}</span>
-              <span v-if="remployee.deptList.length - index > 1">,</span>
+            <span v-for="(item, index) in remployee.dept_list" :key="index" v-if="remployee.dept_list.length>0">
+              <span>{{ item.name }}</span>
+              <span v-if="remployee.dept_list.length - index > 1">,</span>
             </span>
           </div>
         </div>
@@ -136,7 +136,7 @@
                </template>
             </el-table-column>
             <template v-if="isShowOneselfScore">
-              <el-table-column prop="type" label="指标类型">
+              <el-table-column prop="type" width="100" label="指标类型">
                 <template slot-scope="scope">
                   <span v-if="scope.row.type == 1">量化指标</span>
                   <span v-if="scope.row.type == 2">非量化指标</span>
@@ -159,11 +159,13 @@
               <span v-else>-</span>
             </template>
           </el-table-column>
-
-            <template v-if="isShowOneselfScore">
-              <el-table-column prop="point_limit" label="加扣分上限" align="center" width="100" v-if="getTableItem('point_limit')"></el-table-column>
-            </template>
-
+			<template v-if="isShowOneselfScore">
+				<el-table-column prop="point_limit" label="加扣分上限" align="center" width="100" v-if="getTableItem('point_limit')">
+					<template slot-scope="scope">
+						<span>{{scope.row.point_limit}}</span>
+					</template>
+				</el-table-column>
+			</template>
             <el-table-column prop="per_remark" label="考核标准" min-width="200" v-if="getTableItem('per_remark')">
               <template slot-scope="scope">
                 <PreBox :value="scope.row.per_remark"></PreBox>
@@ -323,7 +325,7 @@
         <Record :record="record"></Record>
       </template>
       <div class="flex-box-v flex-center-center" v-else style="padding: 26px 35px;background-color: #fff;border: 1px solid #e8e8e8;border-radius: 4px;height: 400px;">
-        <img src="static/images/invite_new_company.png" style="width: 200px;height: 200px;margin-bottom: 10px;" />
+        <img src="@/assets/image/invite_new_company.png" style="width: 200px;height: 200px;margin-bottom: 10px;" />
         <div class="fontColorB">您没有参与任何考核</div>
       </div>
     </header>
@@ -460,7 +462,7 @@
     <!-- 沟通反馈 -->
     <BrawerBox drawerTitle="沟通反馈" :showDrawer.sync="communication">
       <template slot="main">
-        <el-input type="textarea" v-model="communicationVal" rows="10" placeholder="请输入反馈内容(必填)" maxlength="300" show-word-limit></el-input>
+        <el-input type="textarea" v-model="communicationVal" rows="10" placeholder="请输入反馈内容(必填)" maxlength="200" show-word-limit></el-input>
 		<div style="height: 20px;"></div>
 		<el-checkbox v-model="ding_msg" :true-label="1" :false-label="0">发送钉钉通知</el-checkbox>
         <div class="aite" @click="selectUser = true">@</div>
@@ -917,8 +919,8 @@ export default {
       let data = {
         id: this.employeeID, //个人考核记录ID
         node_id: this.processDel.id, //节点ID
-        to_employee_id: list.employee[0].id, //接收用户ID
-        from_employee_id: this.careOfPeopleId //转出用户ID
+        to_employee_id_code:  this.$returnCode(list.employee[0].id), //接收用户ID
+        from_employee_id_code:  this.$returnCode(this.careOfPeopleId) //转出用户ID
       };
       this.$axios('post', '/api/per/package/transfer', data).then(res => {
         if (res.data.code == 1) {
@@ -1059,7 +1061,7 @@ export default {
       })
       this.pointList=pointList;
       this.pointData=data;
-      if(this.ruleScore==1){//只评总分不需要弹窗
+      if(this.ruleScore==1&&num){//只评总分不需要弹窗
         this.isPoint=true;
       }else{
         this.score()
@@ -1191,7 +1193,6 @@ export default {
             this.empDetList = data;
             this.employeeID = data.id; //考核记录id
             this.remployee = data.relevance_employee; //被考核人员信息
-            this.remployee.deptList = data.relevance_employee.dept_list; //部门
             this.flow = data.flow; //流程
             this.config = data.config;
             this.publicity=data.publicity;
@@ -2027,7 +2028,7 @@ export default {
         //导出
         window.open(this.$serverdomain + item.remark.file_path);
       }
-      this.$axios('post', '/api/per/package/msg/cc', { id: item.id, type: item.type, employee_id: item.employee_id }).then(res => {});
+      this.$axios('post', '/api/per/package/msg/cc', { id: item.id, type: item.type, employee_id_code: this.$returnCode(item.employee_id) }).then(res => {});
     },
     //待办数量
     getAgencyNum() {

+ 1 - 1
src/views/myPerformance/resultSet.vue

@@ -121,7 +121,7 @@ export default {
       }
       data.result_info=JSON.stringify(result_info);
       this.$axios('post', '/api/per/package/record_result',data).then(res => {
-           this.$message.success("设置成功")
+           this.$message.success(num==1? '暂存成功':'提交成功');
            this.getPackageDtail();
       })
     },

+ 2 - 2
src/views/myPerformance/unread.vue

@@ -26,7 +26,7 @@
                  </template>
               </template>
               <div class="flex-1 font-flex-word content">{{ item.content }}</div>
-              <div class="fontColorB">{{ item.update_time }} <i class="el-icon-arrow-right"></i></div>
+              <div class="fontColorB">{{ $moment(item.update_time).format('YYYY-MM-DD HH:mm') }} <i class="el-icon-arrow-right"></i></div>
             </div>
             <Pagination :page_size="page_size" :page="page" :total="total" @handleSizeChange="handleSizeChange" @handleCurrentChange="handleCurrentChange"></Pagination>
           </div>
@@ -79,7 +79,7 @@ export default {
          window.open(this.$serverdomain + item.remark.file_path);
       }
       if(this.selectIndex==0){
-          this.$axios('post', '/api/per/package/msg/cc', { id: item.id, type: item.type, employee_id: item.employee_id }).then(res => {
+          this.$axios('post', '/api/per/package/msg/cc', { id: item.id, type: item.type, employee_id_code: this.$returnCode(item.employee_id) }).then(res => {
             this.getMessage();
           })
       }

+ 5 - 3
src/views/preview/preview.vue

@@ -7,7 +7,9 @@
           <userImage :user_name="userData.name" :img_url="userData.img_url" fontSize="14" width="50px" height="50px"></userImage>
           <div>
             <div class="name" style="margin: 0 10px;margin-bottom: 5px;">{{ userData.name }}</div>
-            <div class="name fontColorF" style="margin: 0 10px;" v-if="dept_list.name">{{dept_list.name}}</div>
+			<div class="name fontColorF" style="margin: 0 10px;" v-if="dept_list.length > 0">
+				<span v-for="(dept,index2) in dept_list">{{dept.name}}<span v-if="dept_list.length - index2 > 1">,</span></span>
+			</div>
           </div>
           <el-button class="primaryBtn"  @click="addUser()">更换</el-button>
         </div>
@@ -193,8 +195,8 @@ export default {
     getDeptLlist(){
       this.$nextTick(()=>{
         if(this.$getEmployeeList()[this.userData.id]){
-          let dept_list=this.$getEmployeeList()[this.userData.id].dept_list[0]
-          this.dept_list=dept_list? dept_list:{}
+          let dept_list=this.$getEmployeeList()[this.userData.id].dept_list
+          this.dept_list=dept_list? dept_list:[]
         }
       })
     }

+ 4 - 1
src/views/preview/previewTow.vue

@@ -13,7 +13,9 @@
             <userImage :user_name="item.employee.name" :img_url="item.employee.img_url" fontSize="14" width="50px" height="50px"></userImage>
             <div>
               <div class="name" style="margin: 0 10px;margin-bottom: 5px;">{{ item.employee.name }}</div>
-              <div class="name fontColorF" style="margin: 0 10px;" v-if="getDeptLlist(item.employee.id).length > 0">{{ getDeptLlist(item.employee.id)[0].name }}</div>
+              <div class="name fontColorF" style="margin: 0 10px;" v-if="getDeptLlist(item.employee.id).length > 0">
+				<span v-for="(dept,index2) in getDeptLlist(item.employee.id)">{{dept.name}}<span v-if="getDeptLlist(item.employee.id).length - index2 > 1">,</span></span>
+			  </div>
             </div>
           </div>
           <div class="flex-box-ce flex-d-wrap">
@@ -149,6 +151,7 @@ export default {
     getDeptLlist(id) {
       if (this.$getEmployeeList()[id]) {
         let dept_list = this.$getEmployeeList()[id].dept_list;
+		console.log(dept_list)
         return dept_list.length > 0 ? dept_list : [];
       }
     },

+ 1 - 1
src/views/set/addIndexSet.vue

@@ -53,7 +53,7 @@
             <el-option label="不开启" value="none"></el-option>
             <el-option label="被考核人" value="self"></el-option>
             <el-option label="指定员工" value="special"></el-option>
-            <el-option label="直接管理员" value="supervisor"></el-option>
+            <el-option label="一级部门主管" value="supervisor"></el-option>
           </el-select>
           <div style="position: relative;margin-top: 10px;" v-if="ruleForm.result_type == 'special'" class="width-250">
             <el-input v-model="assignUser.name" placeholder="请选择指定员工"></el-input>

+ 1 - 1
src/views/set/set.vue

@@ -52,7 +52,7 @@ export default {
 		setMenu() {
 			let tabs = [];
 			if (this.$isAuthoritys([this.$13, this.$14])) {
-				tabs.push({ label: '考核设置', name: 'evaluateSet' });
+				tabs.push({ label: '考核设置', name: 'evaluateSet' });
 			}
 			if (this.$isAuthoritys(this.$12)) {
 				tabs.push({ label: '指标库', name: 'indexSet' });

+ 29 - 11
src/views/statement/analyse.vue

@@ -16,7 +16,7 @@
           ></el-cascader>
         </div>
         <div>
-          <el-dropdown @command="handleCommand">
+          <el-dropdown @command="handleCommand" v-if="this.$isAuthoritys(this.$11)">
             <el-button type="primary">
               导出报表
               <i class="el-icon-arrow-down el-icon--right"></i>
@@ -120,7 +120,7 @@
           <div class="flex-box-ce search">
             <div class="flex-box-ce">
               <div class="label">部门</div>
-              <el-select v-model="deptName" clearable multiple placeholder="请选择部门" style="width: 300px;">
+              <el-select v-model="deptName" clearable  placeholder="请选择部门" style="width: 300px;">
                 <el-option v-for="(item, index) in deptList" :key="index" :label="item.label" :value="item.value"></el-option>
               </el-select>
             </div>
@@ -135,7 +135,17 @@
             <el-table :data="getEmployees()" :header-cell-style="{ background: '#ECF5FF' }">
               <el-table-column type="index"></el-table-column>
               <el-table-column prop="name" label="姓名"></el-table-column>
-              <el-table-column prop="dept_name" label="部门"></el-table-column>
+              <el-table-column prop="dept_name" label="部门">
+				  <template slot-scope="scope">
+					<div v-if="scope.row.dept.length > 0">
+						<span v-for="(item, index) in scope.row.dept" :key="index">
+							{{ item.name }}
+							<span v-if="scope.row.dept.length - index > 1">,</span>
+						</span>
+					</div>
+					<span v-else>--</span>
+				  </template>
+			  </el-table-column>
               <el-table-column prop="final_point" label="考核结果"></el-table-column>
               <el-table-column prop="final_level" label="绩效等级">
                 <template slot="header" slot-scope="scope">
@@ -195,7 +205,7 @@ export default {
       package_id: '',
       employees: [],
       deptList: [],
-      deptName: [], //部门名称
+      deptName: '', //部门名称
       rank: '' ,//级别
       cycle_type:0,
     };
@@ -231,10 +241,11 @@ export default {
     },
     getEmployees() {
       var employees = this.employees;
+	  // console.log(employees,this.deptName)
       var arr = [];
-      if (this.deptName.length > 0) {
+      if (this.deptName) {
         arr = employees.filter(item => {
-          return this.deptName.indexOf(item.dept_name) >= 0;
+          return item.dept.some(x=>x.dept_id==this.deptName)
         });
       } else {
         arr = employees;
@@ -268,11 +279,11 @@ export default {
     },
     setTableData(employees) {
       var obj = {};
-      let deptList = {}; //部门列表
+      let deptList = []; //部门列表
       this.deptList = [];
       employees.forEach(item => {
         var count = 0;
-        deptList[item.dept_name] = item.dept_name;
+        deptList.push(...item.dept)
         employees.forEach(item2 => {
           if (item.final_level == item2.final_level) {
             count++;
@@ -285,9 +296,16 @@ export default {
       for (let key in obj) {
         tableData.push({ name: key, value: obj[key] });
       }
-      for (let key in deptList) {
-        this.deptList.push({ label: key, value: deptList[key] });
-      }
+	  var result = [];
+	  var obj = {};
+	  for(var i =0; i<deptList.length; i++){
+		 let item=deptList[i];
+		 if(!obj[item.dept_id]){
+		   result.push({label:item.name,value:item.dept_id});
+			obj[item.dept_id] = true;
+		}
+	  }
+	  this.deptList=result;
       this.tableData = tableData;
     },
 

+ 2 - 2
src/views/statement/statistics.vue

@@ -28,7 +28,7 @@
 					<el-option v-for="item in employees" :key="item.id" :label="item.name" :value="item.id"></el-option>
 				</el-select>
 			</div>
-			<el-button icon="el-icon-s-promotion" type="primary" @click="downloadTemplate">导出报表</el-button>
+			<el-button icon="el-icon-s-promotion" type="primary" @click="downloadTemplate" v-if="this.$isAuthoritys(this.$11)">导出报表</el-button>
 		</header>
 		<div class="yellow">仅支持月度考核的对比</div>
 		<aside v-loading="tableDataLoad">
@@ -267,7 +267,7 @@ header {
 		line-height: 40px;
 		border: 1px solid #e0e0e0;
 		border-radius: 3px;
-		font-size: 12px;
+		font-size: 14px;
 		padding: 0 10px;
 		overflow: hidden;
 		white-space: nowrap;

+ 16 - 13
src/views/userSet/framework.vue

@@ -58,19 +58,18 @@
 								<div class="flex-box flex-v-ce">
 									<userImage :user_name="scope.row.name" :img_url="scope.row.img_url" width="44px" height="44px"></userImage>
 									<div style="margin-left: 10px;">{{ scope.row.name }}</div>
-									<div style="margin-left: 10px;" v-if="scope.row.is_creator" class="green">(创始人)</div>
 									<div style="margin-left: 10px;" v-if="scope.row.id == userInfo.id" class="green">(我)</div>
 								</div>
 							</template>
 						</el-table-column>
-						<el-table-column label="部门">
+						<el-table-column label="部门" min-width="150px">
 							<template slot-scope="scope">
 								<div class="flex-box flex-v-ce bms">
 									<div v-for="(item, index) in scope.row.dept_list" :key="index">{{ item.name }}</div>
 								</div>
 							</template>
 						</el-table-column>
-						<el-table-column label="员工标识">
+						<el-table-column label="员工标识" min-width="150px">
 							<template slot-scope="scope">
 								<div class="flex-box flex-v-ce">
 									<el-input v-model="scope.row.code" disabled auto-complete="off" style="width: 200px;"></el-input>
@@ -99,7 +98,7 @@
 								</el-popover>
 							</template>
 							<template slot-scope="scope">
-								<div :class="[scope.row.is_official == 1 ? 'switch-box' : '']" @click="changeIs(scope.row.is_official, scope.row.id)">
+								<div :class="[scope.row.is_official == 1 ? 'switch-box' : '']" @click="changeIs(scope.row.is_official, scope.row)">
 									<div class="switch"></div>
 								</div>
 							</template>
@@ -254,9 +253,10 @@ export default {
 		  }); 
 		},
 		selectable(row) {
-			if (row.is_creator) {
-				return false;
-			} else if (this.userInfo.id == row.id) {
+			// if (row.is_creator) {
+			// 	return false;
+			// } else 
+			if (this.userInfo.id == row.id) {
 				return false;
 			} else {
 				return true;
@@ -285,8 +285,12 @@ export default {
 			});
 		},
 		//是否开通
-		changeIs(e, id) {
-			this.$axios('post', 'api/per/user/change_status', { ids_code: this.$returnCode([id]),status:e==0? 1:0 }).then(res => {
+		changeIs(e,item) {
+			if(item.id==this.$getUserData().id){
+				this.$message.error({ message: '不能禁用自己!' });
+				return;
+			}
+			this.$axios('post', 'api/per/user/change_status', { ids_code: JSON.stringify([item.code]),status:e==0? 1:0 }).then(res => {
 				if (res) {
 					if (e == 0) {
 						this.$message.success({ message: '开启成功' });
@@ -309,7 +313,7 @@ export default {
 				type: 'warning'
 			}).then(() => {
 				this.enable_loading = true;
-				this.$axios('post', '/api/per/user/change_status', { ids_code: this.$returnCode(this.selectIds),status:0 })
+				this.$axios('post', '/api/per/user/change_status', { ids_code:JSON.stringify(this.selectIds),status:0 })
 					.then(res => {
 						if (res) {
 							this.$message.success('已禁用');
@@ -329,7 +333,7 @@ export default {
 				return;
 			}
 			this.enable_loading = true;
-			this.$axios('post', '/api/per/user/change_status', { ids_code: this.$returnCode(this.selectIds),status:1 })
+			this.$axios('post', '/api/per/user/change_status', { ids_code:JSON.stringify(this.selectIds),status:1 })
 				.then(res => {
 					if (res) {
 						this.$message.success({ message: '开启成功' });
@@ -350,13 +354,12 @@ export default {
 		handleSelectionChange(e) {
 			var arr = [];
 			for (var item in e) {
-				arr.push(e[item].id);
+				arr.push(e[item].code);
 			}
 			this.selectIds = arr;
 		},
 		//点击部门
 		handleNodeClick(e) {
-			console.log(e)
 			this.deptName=e.name;
 			this.dept_id = e.dept_id;
 		},