Преглед на файлове

Merge branch 'dev' of http://git.pro.g107.net/guojy/dd_pc into dev

347617796@qq.com преди 3 години
родител
ревизия
3a42c622ac

+ 1 - 1
src/views/common/rewardTask.vue

@@ -236,7 +236,7 @@ export default {
 			forTheTaskLoading: false,
 			formData: {
 				task_type: '1',
-				pt_id: 2,
+				pt_id: 3,
 				task_name: '',
 				task_remark: '',
 				base_point: '0',

+ 51 - 19
src/views/common/rewardTaskAmend.vue

@@ -12,7 +12,7 @@
 						<el-input type="textarea" rows="3" maxlength="20" show-word-limit v-model="formData.task_name" placeholder="请输入任务内容(限20字)" class="reward_textarea"></el-input>
 					</el-form-item>
 					<el-form-item label="积分类型" prop="pt_id" :rules="[{ required: true, message: '请选择积分类型', trigger: 'blur' }]">
-						<el-radio-group v-model="formData.pt_id">
+						<el-radio-group v-model="formData.pt_id" @change="from_ptId">
 							<el-radio v-for="(item, index) in point_types" :key="index" v-show="item.code !== 'JX'" :label="item.id">{{ item.name }}</el-radio>
 						</el-radio-group>
 					</el-form-item>
@@ -339,19 +339,20 @@ export default {
 				this.formData.expire_time = moment().format('YYYY-MM-DD 18:00');
 			}
 		},
-		'formData.pt_id'(val) {
-			console.log(val)
-			let item = this.formData
-			item.tree_echo = []
-			this.max = 0;
-			this.min = 0;
-			this.treeName = ''
-			item.task_remark = '';
-			item.base_point = '0';
-			item.range_type = 0;
-		},
+		// 'formData.pt_id'(val) {
+		// 	console.log(val)
+		// 	let item = this.formData
+		// 	item.tree_echo = []
+		// 	this.max = 0;
+		// 	this.min = 0;
+		// 	this.treeName = ''
+		// 	item.task_remark = '';
+		// 	item.base_point = '0';
+		// 	item.range_type = 0;
+		// },
 		rewardTaskAmendData() {
 			this.formData.id = this.rewardTaskAmendData.id; //任务id
+			this.formData.range_type = 0;
 			this.formData.pt_id = this.rewardTaskAmendData.pt_id; //积分种类id
 			this.formData.task_name = this.rewardTaskAmendData.task_name; //任务名
 			this.formData.task_remark = this.rewardTaskAmendData.task_remark; //任务详细描述
@@ -401,14 +402,25 @@ export default {
 				filtList.push({name: item ,url:item, response: { url:item }})
 			})
 			this.fileList = filtList
-			if(this.rewardTaskAmendData.point_config.tree_echo){
-				this.formData.tree_echo = this.rewardTaskAmendData.point_config.tree_echo.map(Number);
-			}
-			this.$nextTick(_=>{
-				if(this.formData.tree_echo){
+
+			// if(this.rewardTaskAmendData.point_config.tree_echo.length > 0){
+			// 	if(this.rewardTaskAmendData.point_config.tree_echo){
+			// 		this.formData.tree_echo = this.rewardTaskAmendData.point_config.tree_echo.map(Number);
+			// 	}
+			// 	this.$nextTick(_=>{
+			// 		if(this.formData.tree_echo){
+			// 			this.ruleItemChange(this.formData.tree_echo)
+			// 		}
+			// 	})
+			// }
+			
+			if(this.rewardTaskAmendData.point_config.item_info){
+				let itemInfo = this.rewardTaskAmendData.point_config.item_info
+				this.formData.tree_echo = this.ruleChange(itemInfo.rule_id,[itemInfo.id])
+				this.$nextTick(_=>{
 					this.ruleItemChange(this.formData.tree_echo)
-				}
-			})
+				})
+			}
 		}
 	},
 	mounted() {
@@ -416,6 +428,26 @@ export default {
 		this.getDepartment();
 	},
 	methods: {
+		ruleChange(aid,att){
+			att.unshift(aid)
+			let list = this.trees_ab.rule_tree.filter(x => x.id == aid)
+			if(list[0].pid == 0){
+				return att
+			}else{
+				this.ruleChange(list[0].pid)
+			}
+		},
+		from_ptId(val){
+			console.log(val)
+			let item = this.formData
+			item.tree_echo = []
+			this.max = 0;
+			this.min = 0;
+			this.treeName = ''
+			item.task_remark = '';
+			item.base_point = '0';
+			item.range_type = 0;
+		},
 		handleFilesSuccess(response, file, fileList) {
 			this.fileFun(file, fileList)
 		},

+ 10 - 7
src/views/common/rewardTaskDetailsPopup.vue

@@ -90,13 +90,16 @@
 						<div class="label">提前奖分</div>
 						<div class="content_text">{{ workDetailData.point_config.ahead_award_point }}/天</div>
 					</li>
-          <li class="flex-box" v-if="workDetailData.department_info">
-            <div class="label">可见范围</div>
-            <div class="content_text" v-if="workDetailData.department_info.length>0">
-              <span v-for="(item,index) in workDetailData.department_info" :key="index">{{item.name}},</span>
-            </div>
-			      <div class="content_text" v-else>全公司</div>
-          </li>
+					<li class="flex-box" v-if="workDetailData.department_info">
+						<div class="label">可见范围</div>
+						<div class="content_text" v-if="workDetailData.department_info.length>0">
+						<span v-for="(item,index) in workDetailData.department_info" :key="index">
+							{{item.name}}
+							<span v-if="(workDetailData.department_info.length - 1) > index"> ,</span>
+						</span>
+						</div>
+							<div class="content_text" v-else>全公司</div>
+					</li>
 					<li class="flex-box" v-if="workDetailData.complete_task && workDetailData.complete_task.remark">
 						<div class="label">完成备注</div>
 						<div class="content_text">{{ workDetailData.complete_task.remark }}</div>

+ 21 - 19
src/views/common/taskDetailsPopup.vue

@@ -138,7 +138,7 @@
 														<span v-if="item.point * 1 > 0">+{{ item.point }}</span>
 														<span v-if="item.point * 1 < 0">{{ item.point }}</span>
 													</div>
-													<div class="d_date fontColorF">{{ item.time }} <span class="delete_jfjl" v-if="workDetailData.employee_id == userId && workDetailData.status < 3 " @click="deletejf_cli(index,0)"><i class="el-icon-delete"></i></span> </div>
+													<div class="d_date fontColorF">{{ item.time }} <span class="delete_jfjl" v-if="item.recorder_id == userId && workDetailData.status < 3 " @click="deletejf_cli(index,0)"><i class="el-icon-delete"></i></span> </div>
 												</div>
 												<div class="fontColorB" style="margin-top: 5px;">{{ item.remark }}</div>
 											</div>
@@ -165,7 +165,7 @@
 														<span class="red" v-if="item.point * 1 > 0">+{{ item.point }}</span>
 														<span class="green" v-if="item.point * 1 < 0">{{ item.point }}</span>
 													</div>
-													<div class="d_date fontColorF">{{ item.time }} <span class="delete_jfjl" v-if="keepTheScore" @click="deletejf_cli(index,1)"><i class="el-icon-delete"></i></span> </div>
+													<div class="d_date fontColorF">{{ item.time }} <span class="delete_jfjl" v-if="userId == item.recorder_id && workDetailData.status < 3" @click="deletejf_cli(index,1)"><i class="el-icon-delete"></i></span> </div>
 												</div>
 												<div class="fontColorB" style="margin-top: 5px;">{{ item.remark }}</div>
 											</div>
@@ -212,7 +212,7 @@
 				<el-form-item label="记分"  prop="num" >
 				<!-- <el-form-item label="记分"  prop="num" :rules="[{ required: false, message: '记分不能为空'},{ type: 'number', message: '积分必须为数字值'}]"> -->
 					<div class="num" :class="[integral.type=='1'?'add':'jian']"></div>
-					<el-input placeholder="请输入内容" v-model.number="integral.num">
+					<el-input placeholder="请输入内容" type="Number" v-model.number="integral.num" @input="(val)=>{integral.num = val.replace(/[^\d]/g, '')}" >
 						<el-select v-model="integral.type" slot="prepend" placeholder="请选择" style="width: 80px;">
 							<el-option label="奖分" value="1"></el-option>
 							<el-option label="扣分" value="2"></el-option>
@@ -371,23 +371,23 @@ export default {
 		},
 		//记分记录
 		integralSend(formName){
-			var items = this.workDetailData.process.list || [];
-			var process = {
-					img_url: this.$getUserData().img_url,
-					point: this.integral.type == "1" ? this.integral.num : '-' + this.integral.num,
-					recorder_id: this.$getUserData().id,
-					recorder: this.$getUserData().name,
-					remark: this.integral.text,
-					time: this.$moment().format('YYYY-MM-DD HH:mm')
-			}
-			var data = {
-				work_id: this.workDetailData.id,
-				process: [],
-			}
-			items.unshift(process);
-			data.process = JSON.stringify(items);
 			this.$refs[formName].validate((valid) => {
 				if (valid) {
+					var items = this.workDetailData.process.list || [];
+					var process = {
+							img_url: this.$getUserData().img_url,
+							point: this.integral.type == "1" ? this.integral.num : '-' + this.integral.num,
+							recorder_id: this.$getUserData().id,
+							recorder: this.$getUserData().name,
+							remark: this.integral.text,
+							time: this.$moment().format('YYYY-MM-DD HH:mm')
+					}
+					var data = {
+						work_id: this.workDetailData.id,
+						process: [],
+					}
+					items.unshift(process);
+					data.process = JSON.stringify(items);
 					this.$axios('post','/api/integral/work',data).then(res => {
 						if (res.data.code == 1) {
 							this.publicClose();
@@ -479,7 +479,9 @@ export default {
 					    if (this.workDetailData.process.list[i].point != 0) {
 					      this.point_list.push(this.workDetailData.process.list[i])
 					    } else {
-					      this.text_list.push(this.workDetailData.process.list[i])
+							if(this.workDetailData.process.list[i].recorder_id == this.workDetailData.employee_id) {
+					      		this.text_list.push(this.workDetailData.process.list[i])
+							}
 					    }
 					  }
 					}

+ 1 - 0
src/views/common/temporaryTask.vue

@@ -414,6 +414,7 @@ export default {
 			let item = this.formData
 			if(val.length>0){
 				let data = this.$refs.ruleItem.getCheckedNodes()[0].data;//当前选中的节点数据
+				console.log(data)
 				console.log(this.$refs.ruleItem.getCheckedNodes()[0].data)
 				item.task_remark = data.name;
 				this.treeName = data.name;

+ 39 - 7
src/views/common/temporaryTaskAmend.vue

@@ -421,8 +421,11 @@ export default {
 			done();
 		},
 		Datas() {
+			console.log(this.trees_ab)
+			console.log(this.modifyData)
 			this.formData.id = this.modifyData.id;
 			this.formData.task_name = this.modifyData.task_name;
+			this.formData.range_type = 0;
 			this.formData.base_point = this.modifyData.point_config.base_point;
 			this.formData.task_remark = this.modifyData.task_remark;
 			this.formData.pt_id = this.modifyData.pt_id;
@@ -442,14 +445,26 @@ export default {
 				filtList.push({name: item ,url:item, response: { url:item }})
 			})
 			this.fileList = filtList
-			if(this.modifyData.point_config.tree_echo){
-				this.formData.tree_echo = this.modifyData.point_config.tree_echo.map(Number);
-			}
-			this.$nextTick(_=>{
-				if(this.formData.tree_echo){
+
+
+			// if(this.modifyData.point_config.tree_echo.length != 0){
+			// 	if(this.modifyData.point_config.tree_echo){
+			// 		this.formData.tree_echo = this.modifyData.point_config.tree_echo.map(Number);
+			// 	}
+			// 	this.$nextTick(_=>{
+			// 		if(this.formData.tree_echo){
+			// 			this.ruleItemChange(this.formData.tree_echo)
+			// 		}
+			// 	})
+			// }
+			if(this.modifyData.point_config.item_info){
+				let itemInfo = this.modifyData.point_config.item_info
+				this.formData.tree_echo = this.ruleChange(itemInfo.rule_id,[itemInfo.id])
+				this.$nextTick(_=>{
 					this.ruleItemChange(this.formData.tree_echo)
-				}
-			})
+				})
+			}
+
 			// if (this.modifyData.point_config.timeout_deduction_point != '0') {
 			// 	this.formData.timeout_deduction_point = this.modifyData.point_config.timeout_deduction_point;
 			// } else {
@@ -462,6 +477,23 @@ export default {
 			})
 
 		},
+		ruleChange(aid,att){
+			att.unshift(aid)
+			let list = this.trees_ab.rule_tree.filter(x => x.id == aid)
+			if(list[0].pid == 0){
+				return att
+			}else{
+				this.ruleChange(list[0].pid)
+			}
+			// return this.trees_ab.rule_tree.reduce((x,y) =>{
+				// if(att.pid != 0){
+				// 	this.ruleChange(att.pid)
+				// }else{
+				// 	return x
+				// }
+				// return y.pid != 0 ? x.push(arr)
+			// },[])
+		},
 		deductionPoint(item){
 			if (this.modifyData.point_config[item] != '0') {
 				this.formData[item] = this.modifyData.point_config[item];

+ 9 - 7
src/views/set/framework.vue

@@ -323,7 +323,7 @@ export default {
 			this.$refs.Employee2.confirm();
 		},
 		setSuperior(row){
-
+			console.log(row)
 			if(this.clickone){
 				return false
 			}
@@ -337,12 +337,14 @@ export default {
 			.then(res => {
 				if (res.data.code == 1) {
 					let supList = res.data.data.employee_detail.superior_list
-					supList.some(item =>{
-						if(item.id == createData[0].id){
-							item.is_creator = true
-							return true
-						}
-					})
+					if(createData[0]){
+						supList.some(item =>{
+							if(item.id == createData[0].id){
+								item.is_creator = true
+								return true
+							}
+						})
+					}
 					this.selected_manage.employee = supList
 					this.manageScope_show = true
 				}

+ 18 - 4
src/views/task/my_issue.vue

@@ -78,8 +78,10 @@
             <template slot-scope="scope">
               <span v-if="scope.row.point_config && scope.row.point_config.review_point>0" class="red">+{{scope.row.point_config.review_point}} {{scope.row.pt_name}}</span>
               <span v-else>
-                <span class="red" v-if="scope.row.point_config && scope.row.point_config.base_point > 0"> +{{scope.row.point_config.base_point}} {{scope.row.pt_name}}</span>
-                <span class="color_green" v-else>{{scope.row.point_config.base_point}} {{scope.row.pt_name}}</span>
+                <span v-if="scope.row.point_config && scope.row.point_config.base_point">
+                  <span class="red" v-if="scope.row.point_config.base_point > 0"> +{{scope.row.point_config.base_point}} {{scope.row.pt_name}}</span>
+                  <span class="color_green" v-else>{{scope.row.point_config.base_point}} {{scope.row.pt_name}}</span>
+                </span>
               </span>
             </template>
           </el-table-column>
@@ -145,7 +147,7 @@
           </el-table-column>
 					<el-table-column label="审批人" width="100px" prop="reviewer_name">
             <template slot-scope="scope">
-              <span v-if="scope.row.reviewer_id" >{{employee_map.filter(x => x.id == scope.row.reviewer_id)[0].name}}</span>
+              <span v-if="scope.row.reviewer_id" >{{list_approver(scope.row.reviewer_id)}}</span>
             </template>
           </el-table-column>
           <el-table-column label="状态" prop="owner_id" width="100px">
@@ -330,6 +332,7 @@
         trees_v2_ab_module: {
           A: [],
           B: [],
+          rule_tree: [],
         },
         employee_map: [],//人员列表
       }
@@ -395,6 +398,10 @@
 		  this.getEmployee();//员工列表
     },
     methods: {
+      list_approver(id){
+        let arr = this.employee_map.filter(x => x.id == id)
+        return arr[0] ? arr[0].name : ''
+      },
       dayTime(item){
         return item > 9 ? item + ': 00' : '0' + item + ': 00'
       },
@@ -542,11 +549,18 @@
       getRuleItemData() {
         let a = this.$axios('get', '/api/integral/rule/trees', { cycle_type: '1', pt_id: '2'}, 'v2');
         let b = this.$axios('get', '/api/integral/rule/trees', { cycle_type: '1', pt_id: '3'}, 'v2');
-        Promise.all([a, b]).then(res =>{
+        let c = this.$axios('get', '/api/integral/rule/trees', { cycle_type: '1'});
+        Promise.all([a, b, c]).then(res =>{
           this.trees_v2_ab_module.A = res[0].data.data.tree
           this.trees_v2_ab_module.B = res[1].data.data.tree
+          this.trees_v2_ab_module.rule_tree = this.flatten(res[2].data.data.rule_tree)
         })
       },
+      flatten (arr){
+        return arr.reduce((result, item)=> {
+            return result.concat(item,(Array.isArray(item.child) ? this.flatten(item.child) : []));
+        }, []);
+      },
     }
   }
 </script>