347617796@qq.com 3 年之前
父節點
當前提交
4b5ac86222

File diff suppressed because it is too large
+ 0 - 0
src/assets/css/iconfont.js


+ 58 - 0
src/assets/css/iconfont.json

@@ -0,0 +1,58 @@
+{
+  "id": "2916418",
+  "name": "钉钉PC",
+  "font_family": "iconfont",
+  "css_prefix_text": "icon-",
+  "description": "",
+  "glyphs": [
+    {
+      "icon_id": "12097436",
+      "name": "福利中心",
+      "font_class": "fulizhongxin",
+      "unicode": "e652",
+      "unicode_decimal": 58962
+    },
+    {
+      "icon_id": "15023948",
+      "name": "考勤_考勤月报表",
+      "font_class": "kaoqin_kaoqinyuebaobiao",
+      "unicode": "e708",
+      "unicode_decimal": 59144
+    },
+    {
+      "icon_id": "15023956",
+      "name": "设置_积分规则",
+      "font_class": "shezhi_jifenguize",
+      "unicode": "e70d",
+      "unicode_decimal": 59149
+    },
+    {
+      "icon_id": "16909825",
+      "name": "PC_工作台_AB分",
+      "font_class": "PC_gongzuotai_ABfen",
+      "unicode": "e71d",
+      "unicode_decimal": 59165
+    },
+    {
+      "icon_id": "17517997",
+      "name": "钉钉PC_设置",
+      "font_class": "dingdingPC_shezhi1",
+      "unicode": "e725",
+      "unicode_decimal": 59173
+    },
+    {
+      "icon_id": "17517998",
+      "name": "钉钉PC_统计",
+      "font_class": "dingdingPC_tongji1",
+      "unicode": "e726",
+      "unicode_decimal": 59174
+    },
+    {
+      "icon_id": "739117",
+      "name": "首页",
+      "font_class": "shouye",
+      "unicode": "e639",
+      "unicode_decimal": 58937
+    }
+  ]
+}

二進制
src/assets/css/iconfont.woff2


+ 51 - 37
src/components/bonusPointsPopup.vue

@@ -19,7 +19,7 @@
 							<el-button type="text" class="fr" v-show="index > 0 || dialogData.items.length > 1" @click="delItem(index)">删除</el-button>
 						</div>
 						<el-form-item label="指定规则">
-							<el-switch :disabled="ruleOnoff"  @change="switchChange(index, item.rule_switch)" v-model="item.rule_switch"></el-switch>
+							<el-switch :disabled="ruleOnoff" @change="switchChange(index, item.rule_switch)" v-model="item.rule_switch"></el-switch>
 						</el-form-item>
 						<el-form-item
 							class="test_cascader_id"
@@ -72,13 +72,19 @@
 						</el-form-item>
 						<el-form-item label="积分" :prop="'items.' + index + '.point'" :rules="[{ required: true, message: '请输入分值', trigger: 'blur' }]">
 							<el-input-number v-if="item.rule_item_details.range_type == 2" :min="item.min" :max="item.max" v-model.number="item.point"></el-input-number>
-							<el-input-number v-else :disabled="item.rule_item_details.range_type == 1" v-model.number="item.point" ></el-input-number>
+							<el-input-number v-else :disabled="item.rule_item_details.range_type == 1" v-model.number="item.point"></el-input-number>
 						</el-form-item>
 
 						<el-form-item label="发生时间" :prop="'items.' + index + '.event_time'" :rules="[{ required: true, message: '请选择时间', trigger: 'blur' }]">
 							<el-row>
 								<el-col :span="18">
-									<el-date-picker v-model="item.event_time" :picker-options="pickerBeginDateBefore" type="date" placeholder="请选择时间" value-format="yyyy-MM-dd"></el-date-picker>
+									<el-date-picker
+										v-model="item.event_time"
+										:picker-options="pickerBeginDateBefore"
+										type="date"
+										placeholder="请选择时间"
+										value-format="yyyy-MM-dd"
+									></el-date-picker>
 								</el-col>
 							</el-row>
 						</el-form-item>
@@ -112,7 +118,7 @@
 								(最多选择3张)
 							</upload>
 						</el-form-item>
-						<el-form-item label="递交审批" v-if="$getUserData().is_creator==0">
+						<el-form-item label="递交审批" v-if="$getUserData().is_creator == 0">
 							<el-row>
 								<el-col :span="18">
 									<el-input auto-complete="off" v-model="item.approvalName" placeholder="请选择审批人"></el-input>
@@ -163,22 +169,25 @@
 				</span>
 			</el-dialog>
 		</el-dialog>
-		
-		<el-dialog :title="'提交结果'" :visible.sync="error_list_show" :append-to-body="true"  width="700px">
-		  <el-table :data="error_list">
-		    <el-table-column prop="target" label="员工"></el-table-column>
-		    <el-table-column prop="point" label="积分">
-		      <template slot-scope="scope">
-		        <span>{{ scope.row.point}} <span>{{integralType==2? 'A分':'B分'}}</span></span>
-		      </template>
-		    </el-table-column>
-		    <el-table-column prop="status" label="处理状态">
-		      <template slot-scope="scope">
-		        <span :style="'color:' + (scope.row.status == 0 ? '#f70000' : '#47bf47')">{{ scope.row.msg}}</span>
-		      </template>
-		    </el-table-column>
-		    <el-table-column prop="remark" label="备注信息"></el-table-column>
-		  </el-table>
+
+		<el-dialog :title="'提交结果'" :visible.sync="error_list_show" :append-to-body="true" width="700px">
+			<el-table :data="error_list">
+				<el-table-column prop="target" label="员工"></el-table-column>
+				<el-table-column prop="point" label="积分">
+					<template slot-scope="scope">
+						<span>
+							{{ scope.row.point }}
+							<span>{{ integralType == 2 ? 'A分' : 'B分' }}</span>
+						</span>
+					</template>
+				</el-table-column>
+				<el-table-column prop="status" label="处理状态">
+					<template slot-scope="scope">
+						<span :style="'color:' + (scope.row.status == 0 ? '#f70000' : '#47bf47')">{{ scope.row.msg }}</span>
+					</template>
+				</el-table-column>
+				<el-table-column prop="remark" label="备注信息"></el-table-column>
+			</el-table>
 		</el-dialog>
 	</div>
 </template>
@@ -279,10 +288,10 @@ export default {
 			flatteningIntegralRules: null,
 			ptid: 0,
 			itemIndex: 0,
-			
+
 			// 错误提示
 			error_list: [], //错误信息数组
-			error_list_show: false, //错误信息弹窗
+			error_list_show: false //错误信息弹窗
 		};
 	},
 	components: { EmployeeSelector, upload },
@@ -301,17 +310,17 @@ export default {
 		}
 	},
 	mounted() {
-		var that=this;
-		this.getUserDetail(function(data){
+		var that = this;
+		this.getUserDetail(function(data) {
 			that.manage_scope = data.manage_scope;
 			that.superior_list = data.superior_list;
 		});
 	},
 	methods: {
-		getUserDetail(func){
+		getUserDetail(func) {
 			this.$axios('get', '/api/employee/detail').then(res => {
 				this.$setUserData(res.data.data.user);
-				func(res.data.data.user.employee_detail)
+				func(res.data.data.user.employee_detail);
 			});
 		},
 		submitEmployee(name) {
@@ -374,7 +383,7 @@ export default {
 				item.item_id = '';
 				item.rule_item_list_value = '';
 				item.rule_item_details = { range_type: '' };
-				item.max =0;
+				item.max = 0;
 				item.min = 0;
 				item.point = '0';
 			} else {
@@ -423,7 +432,7 @@ export default {
 		// 规则细则变化关闭down
 		ruleItemChange(value) {
 			const item = this.dialogData.items[this.itemIndex];
-			if(value.length>0){
+			if (value.length > 0) {
 				let ruleItemDetails = null;
 				this.flatteningIntegralRules.forEach(element => {
 					if (element.id == value[value.length - 1]) {
@@ -437,13 +446,13 @@ export default {
 				item.max = ruleItemDetails.max_point * 1;
 				item.min = ruleItemDetails.min_point * 1;
 				item.point = ruleItemDetails.min_point;
-			}else{
+			} else {
 				item.remark = '';
 				item.rule_id = '';
 				item.item_id = '';
 				item.rule_item_list_value = '';
 				item.rule_item_details = { range_type: '' };
-				item.max =0;
+				item.max = 0;
 				item.min = 0;
 				item.point = '0';
 			}
@@ -451,7 +460,7 @@ export default {
 		// 规则分类变化关闭dewn
 		ruleChange(value) {
 			const item = this.dialogData.items[this.itemIndex];
-			if(value.length>0){
+			if (value.length > 0) {
 				const user_info = this.$getUserData();
 				user_info.point_config.point_limit.forEach(element => {
 					if (this.ptid == this.integralType) {
@@ -463,7 +472,7 @@ export default {
 					element.dropDownVisible = false;
 				});
 				item.rule_id = value[value.length - 1];
-			}else{
+			} else {
 				item.rule_id = '';
 				item.rule_list_value = '';
 			}
@@ -497,14 +506,14 @@ export default {
 		},
 		// 加一条
 		addItem() {
-			if(this.dialogData.items.length==10){
+			if (this.dialogData.items.length == 10) {
 				this.$message({
-					type:"warning",
+					type: 'warning',
 					message: '一次只能添加10条奖扣'
 				});
-				return false
+				return false;
 			}
-			
+
 			this.dialogData.items.push({
 				rule_switch: true,
 				rule_id: '',
@@ -674,7 +683,12 @@ export default {
 							});
 							this.$refs['dialogData'].resetFields();
 							this.$emit('update:visible', false);
-							this.$emit('update:refresh',this.$moment().format().valueOf());
+							this.$emit(
+								'update:refresh',
+								this.$moment()
+									.format()
+									.valueOf()
+							);
 							// this.$message.success(res.data.msg);
 							this.closePopup();
 							this.error_list = res.data.data.list;

+ 1 - 1
src/main.js

@@ -21,7 +21,7 @@ import userImage from '@/components/UserImage'
 Vue.component('userImage', userImage)
 Vue.use(ElementUI);
 if (process.env.NODE_ENV === 'development') {
-  new VConsole()
+  // new VConsole()
 }
 
 Vue.prototype.$echarts = echarts

+ 10 - 10
src/router/index.js

@@ -112,16 +112,6 @@ const routes = [{
 					groupCode: 'ranking',
 				}
 			},
-			{
-				path: '/attendance_rating',
-				name: '考勤分排名',
-				component: () => import( /* webpackChunkName: "attendance_rating" */
-					'@/views/ranking/attendance_rating.vue'),
-				meta: {
-					icon: 'icon-shezhi_jiaose',
-					groupCode: 'ranking',
-				}
-			},
 			{
 				path: '/custom_rank',
 				name: '自定义分组B分排名',
@@ -132,6 +122,16 @@ const routes = [{
 					groupCode: 'ranking',
 				}
 			},
+			{
+				path: '/each_rank',
+				name: '各项B分统计',
+				component: () => import( /* webpackChunkName: "each_rank" */
+					'@/views/ranking/each_rank.vue'),
+				meta: {
+					icon: 'icon-shezhi_jiaose',
+					groupCode: 'ranking',
+				}
+			},
 			{
 				path: '/manager_statistics',
 				name: '管理者奖扣',

+ 1 - 1
src/views/abPoint/apply_list.vue

@@ -1,6 +1,6 @@
 <template>
 	<div class="all padding-20">
-		<el-tabs v-model="tabs" type="card">
+		<el-tabs v-model="tabs">
 			<el-tab-pane label="申请通过" name="complete"></el-tab-pane>
 			<el-tab-pane label="待审批" name="waiting"></el-tab-pane>
 			<el-tab-pane label="被驳回" name="refuse"></el-tab-pane>

+ 1 - 1
src/views/abPoint/award_punish.vue

@@ -1,6 +1,6 @@
 <template>
 	<div class="all padding-20">
-		<el-tabs v-model="tabs" type="card">
+		<el-tabs v-model="tabs">
 			<el-tab-pane label="奖扣成功" name="success"></el-tab-pane>
 			<el-tab-pane label="待审批" name="waiting"></el-tab-pane>
 			<el-tab-pane label="被驳回" name="refuse"></el-tab-pane>

+ 18 - 13
src/views/common/repeatTaskDetailsPopup.vue

@@ -73,15 +73,15 @@
 						<div class="content_text">{{ workDetailData.point_config.ahead_award_point_limit }}</div>
 					</li>
 
-          <li class="flex-box" v-if="workDetailData.point_config && workDetailData.point_config.timeout_deduction_point">
-            <div class="label">逾期扣分</div>
-            <div class="content_text">{{workDetailData.point_config.timeout_deduction_point}}/天</div>
-          </li>
-          <li class="flex-box" v-if="workDetailData.point_config && workDetailData.point_config.timeout_deduction_point_limit">
-            <div class="label">扣分上限</div>
-            <div class="content_text">{{workDetailData.point_config.timeout_deduction_point_limit}}</div>
-          </li>
-        </ul>
+					<li class="flex-box" v-if="workDetailData.point_config && workDetailData.point_config.timeout_deduction_point">
+						<div class="label">逾期扣分</div>
+						<div class="content_text">{{ workDetailData.point_config.timeout_deduction_point }}/天</div>
+					</li>
+					<li class="flex-box" v-if="workDetailData.point_config && workDetailData.point_config.timeout_deduction_point_limit">
+						<div class="label">扣分上限</div>
+						<div class="content_text">{{ workDetailData.point_config.timeout_deduction_point_limit }}</div>
+					</li>
+				</ul>
 				<div v-show="workDetailData.point_config && workDetailData.point_config.item_info">
 					<p class="row_title">规则依据</p>
 					<el-row :gutter="10" v-if="workDetailData.point_config.rule_info">
@@ -94,10 +94,11 @@
 					</el-row>
 					<el-row v-if="workDetailData.point_config.item_info">
 						<el-col :span="4">积分</el-col>
-						<el-col :span="19" v-show="workDetailData.point_config.item_info.min_point == workDetailData.point_config.item_info.max_point">{{ workDetailData.point_config.item_info.min_point }} {{$getTypsName(workDetailData.pt_id)}}</el-col>
+						<el-col :span="19" v-show="workDetailData.point_config.item_info.min_point == workDetailData.point_config.item_info.max_point">
+							{{ workDetailData.point_config.item_info.min_point }} {{ $getTypsName(workDetailData.pt_id) }}
+						</el-col>
 						<el-col :span="19" v-show="workDetailData.point_config.item_info.min_point != workDetailData.point_config.item_info.max_point">
-							{{ workDetailData.point_config.item_info.min_point }} ~ {{ workDetailData.point_config.item_info.max_point }}
-              {{$getTypsName(workDetailData.pt_id)}}
+							{{ workDetailData.point_config.item_info.min_point }} ~ {{ workDetailData.point_config.item_info.max_point }} {{ $getTypsName(workDetailData.pt_id) }}
 						</el-col>
 					</el-row>
 				</div>
@@ -146,7 +147,11 @@ export default {
 			Delay_to_open: false, //打开抽屉
 
 			loading: false,
-			workDetailData: {},
+			workDetailData: {
+				point_config:{
+					rule_info:''
+				}
+			},
 			weekList: ['一', '二', '三', '四', '五', '六', '日']
 		};
 	},

+ 111 - 44
src/views/common/rewardTask.vue

@@ -25,7 +25,48 @@
 						</el-radio-group>
 					</el-form-item>
 					
-					<el-form-item
+					
+					
+					<el-form-item label="指定规则">
+						  <el-radio-group v-model="isSelectType">
+						    <el-radio :label="true">分类</el-radio>
+						    <el-radio :label="false">规则</el-radio>
+						  </el-radio-group>
+					</el-form-item>
+					<!-- 选择分类 -->
+					<el-form-item class="test_cascader_id" label="选择分类"	v-if="isSelectType"
+						prop="rule_value"
+						:rules="[{ required: true, message: '请选择规则分类', trigger: 'blur' }]"
+					>
+						<el-cascader
+							v-model="formData.rule_value"
+							ref="ruleCascader"
+							:popper-class="'ruleClass'"
+							filterable
+							clearable
+							:options="trees_ab.rule_tree_all"
+							@change="ruleChange"
+							:props="{ children: 'child', label: 'name', value: 'id', checkStrictly: true }"
+						></el-cascader>
+					</el-form-item>
+					<!-- 选择规则 -->
+					<el-form-item :label="trees_PtId(formData.pt_id) +'规则'" v-else prop="tree_echo" :rules="[{ required: true, message: '请选择规则', trigger: 'blur' }]"
+					>
+						<el-cascader
+							v-model="formData.tree_echo"
+							ref="ruleItem"
+							:popper-class="'itemClass'"
+							filterable
+							clearable
+							:options="formData.pt_id == 2 ? trees_ab.A : trees_ab.B"
+							@change="ruleItemChange"
+							:show-all-levels="false"
+							:props="{ children: 'child', label: 'name', value: 'id' }"
+						></el-cascader>
+					</el-form-item>
+					
+					
+<!-- 					<el-form-item
 						:label="trees_PtId(formData.pt_id) +'规则'"
 						prop="tree_echo"
 					>
@@ -40,7 +81,11 @@
 							:show-all-levels="false"
 							:props="{ children: 'child', label: 'name', value: 'id' }"
 						></el-cascader>
-					</el-form-item>
+					</el-form-item> -->
+					
+					
+					
+					
 					<el-form-item prop="range_type" v-if="formData.range_type != 0">
 						<div style="line-height: 24px;" v-show="formData.range_type == 1">
 							{{ min }}
@@ -218,15 +263,17 @@ export default {
 		},
 		trees_ab: {
 			type: Object,
-			default: {}
+			default: ()=>{
+				return {};
+			}
 		},
 	},
 	data() {
 		return {
+			isSelectType:true,//是否选择分类
 			//图片附件
 			Xtoken: { 'X-Token': this.$getToken() },
 			fileList: [],
-			// treesAb: [],
 			max: 0,
 			min: 0,
 			treeName: '',
@@ -242,6 +289,7 @@ export default {
 				base_point: '0',
 				range_type: 0,
 				rule_id: 0,
+				rule_value:[],
 				file_list: [],
 				tree_echo: [],//用于编辑任务时的规则回显
 				expire_time: moment().format('YYYY-MM-DD 18:00'),
@@ -256,12 +304,6 @@ export default {
 				dept_ids: []
 			},
 			point_types: [],
-			// 执行者
-			// executorName: null,
-			// show_approval_selector: false,
-			// approval_selected: {dept: [],employee:[]},
-			// approval_not_select: [],
-			// employee_list: this.$store.getters.user_info.employee_detail.manage_scope,
 			// 审批人
 			reviewerName: null,
 			reviewer_not_select: [],
@@ -350,6 +392,19 @@ export default {
 	},
 	components: { EmployeeSelector, upload },
 	watch: {
+		isSelectType(val) {
+			let item = this.formData;
+			this.max = 0;
+			this.min = 0;
+			this.treeName = '';
+			item.tree_echo = [];
+			item.task_remark = '';
+			item.base_point = '0';
+			item.range_type = 0;
+			item.rule_id='';
+			item.item_id = 0;
+			item.rule_value=[];
+		},
 		'formData.task_cycle'(val) {
 			if (val) {
 				this.formData.task_expire_day = 1;
@@ -358,7 +413,6 @@ export default {
 			}
 		},
 		'formData.pt_id'(val) {
-			console.log(val)
 			let item = this.formData
 			item.tree_echo = []
 			this.max = 0;
@@ -367,6 +421,9 @@ export default {
 			item.task_remark = '';
 			item.base_point = '0';
 			item.range_type = 0;
+			item.item_id = 0;
+			item.rule_id='';
+			item.rule_value=[];
 		}
 	},
 	mounted() {
@@ -374,36 +431,19 @@ export default {
 		this.getDepartment();
 	},
 	methods: {
-		handleFilesSuccess(response, file, fileList) {
-			this.fileFun(file, fileList)
-		},
-		onFilePreView(file) {
-			if (file.response) {
-				window.open(file.response.url, '_blank');
-			}
-		},
-		onFileRemove(file, fileList) {
-			this.fileFun(file, fileList)
-		},
-		fileFun(file, fileList){
-			this.fileList = fileList;
-			this.formData.file_list = []
-			fileList.forEach((item, index) => {
-				this.formData.file_list.push(item.url);
-			});
-		},
-		// 附件上传
-		beforeUpload(file) {
-			const isJPG = /^image\/(jpeg|png|jpg)$/.test(file.type);
-			const isLt2M = file.size / 1024 / 1024 < 1;
-			if (!isJPG) {
-				this.$message.error('上传头像图片只能是 JPG 格式!');
-			}
-			if (!isLt2M) {
-				this.$message.error('上传头像图片大小不能超过 2MB!');
+		// 规则分类变化关闭dewn
+		ruleChange(value) {
+			console.log(value)
+			const item = this.formData;
+			if (value.length > 0) {
+				item.rule_id = value[value.length - 1];
+			} else {
+				item.rule_id = '';
+				item.rule_value = '';
 			}
-			return isJPG && isLt2M;
+			this.$refs.ruleCascader.dropDownVisible=false;
 		},
+		
 		trees_PtId(id) {
 			return id == 2 ? 'A分' : 'B分'
 		},
@@ -411,7 +451,6 @@ export default {
 			let item = this.formData
 			if(val.length>0){
 				let data = this.$refs.ruleItem.getCheckedNodes()[0].data;//当前选中的节点数据
-				console.log(this.$refs.ruleItem.getCheckedNodes()[0].data)
 				item.task_remark = data.name;
 				this.max = data.max_point * 1;
 				this.min = data.min_point * 1;
@@ -429,13 +468,10 @@ export default {
 				item.range_type = 0;
 				item.rule_id = 0;
 				item.item_id = 0;
-				
 			}
 		},
 
-
 		handleChange(val) {
-			console.log(this.dept_name);
 			let data = [];
 			for (let i in val) {
 				data.push(val[i][val[i].length - 1]);
@@ -608,7 +644,38 @@ export default {
 				}
 			}
 			return data;
-		}
+		},
+		handleFilesSuccess(response, file, fileList) {
+			this.fileFun(file, fileList)
+		},
+		onFilePreView(file) {
+			if (file.response) {
+				window.open(file.response.url, '_blank');
+			}
+		},
+		onFileRemove(file, fileList) {
+			this.fileFun(file, fileList)
+		},
+		fileFun(file, fileList){
+			this.fileList = fileList;
+			this.formData.file_list = []
+			fileList.forEach((item, index) => {
+				this.formData.file_list.push(item.url);
+			});
+		},
+		// 附件上传
+		beforeUpload(file) {
+			const isJPG = /^image\/(jpeg|png|jpg)$/.test(file.type);
+			const isLt2M = file.size / 1024 / 1024 < 1;
+			if (!isJPG) {
+				this.$message.error('上传头像图片只能是 JPG 格式!');
+			}
+			if (!isLt2M) {
+				this.$message.error('上传头像图片大小不能超过 2MB!');
+			}
+			return isJPG && isLt2M;
+		},
+		
 	}
 };
 </script>

+ 71 - 46
src/views/common/rewardTaskAmend.vue

@@ -17,9 +17,30 @@
 						</el-radio-group>
 					</el-form-item>
 					
-					<el-form-item
-						:label="trees_PtId(formData.pt_id) +'规则'"
-						prop="tree_echo"
+					<el-form-item label="指定规则">
+						  <el-radio-group v-model="isSelectType" @change="isSelectTypeC">
+						    <el-radio :label="true">分类</el-radio>
+						    <el-radio :label="false">规则</el-radio>
+						  </el-radio-group>
+					</el-form-item>
+					<!-- 选择分类 -->
+					<el-form-item class="test_cascader_id" label="选择分类"	v-if="isSelectType"
+						prop="rule_value"
+						:rules="[{ required: true, message: '请选择规则分类', trigger: 'blur' }]"
+					>
+						<el-cascader
+							v-model="formData.rule_value"
+							ref="ruleCascader"
+							:popper-class="'ruleClass'"
+							filterable
+							clearable
+							:options="trees_ab.rule_tree_all"
+							@change="ruleChange2"
+							:props="{ children: 'child', label: 'name', value: 'id', checkStrictly: true }"
+						></el-cascader>
+					</el-form-item>
+					<!-- 选择规则 -->
+					<el-form-item :label="trees_PtId(formData.pt_id) +'规则'" v-else	prop="tree_echo" :rules="[{ required: true, message: '请选择规则', trigger: 'blur' }]"
 					>
 						<el-cascader
 							v-model="formData.tree_echo"
@@ -33,7 +54,7 @@
 							:props="{ children: 'child', label: 'name', value: 'id' }"
 						></el-cascader>
 					</el-form-item>
-
+					
 					<el-form-item prop="range_type" v-if="formData.range_type != 0">
 						<div style="line-height: 24px;" v-show="formData.range_type == 1">
 							{{ min }}
@@ -194,11 +215,14 @@ export default {
 		},
 		trees_ab: {
 			type: Object,
-			default: {}
-		},
+			default: ()=>{
+				return {};
+			}
+		}
 	},
 	data() {
 		return {
+			isSelectType:true,//是否选择分类
 			//图片附件
 			Xtoken: { 'X-Token': this.$getToken() },
 			fileList: [],
@@ -214,7 +238,7 @@ export default {
 				file_list: [],
 				range_type: 0,
 				rule_id: 0,
-
+				rule_value:[],
 				id: 0,
 				task_type: '1',
 				pt_id: 2,
@@ -233,12 +257,6 @@ export default {
 				dept_ids: null
 			},
 			point_types: [],
-			// 执行者
-			// executorName: null,
-			// show_approval_selector: false,
-			// approval_selected: {dept: [],employee:[]},
-			// approval_not_select: [],
-			// employee_list: this.$store.getters.user_info.employee_detail.manage_scope,
 			// 审批人
 			reviewerName: null,
 			reviewer_not_select: [],
@@ -339,18 +357,7 @@ 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;
-		// },
-		rewardTaskAmendData() {
+		rewardTaskAmendData(val) {
 			this.formData.id = this.rewardTaskAmendData.id; //任务id
 			this.formData.range_type = 0;
 			this.formData.pt_id = this.rewardTaskAmendData.pt_id; //积分种类id
@@ -359,22 +366,15 @@ export default {
 			this.formData.base_point = this.rewardTaskAmendData.point_config.base_point; //任务参考积分
 			this.formData.expire_time = this.rewardTaskAmendData.expire_time; //截至时间
 			this.reviewerName = this.rewardTaskAmendData.reviewer_name; //审批者id
-
 			this.formData.reviewer_id = this.rewardTaskAmendData.reviewer_id;
 			this.reviewer_selected.employee = [
 				{ id: this.rewardTaskAmendData.reviewer_id, img_url: this.rewardTaskAmendData.img_url, name: this.rewardTaskAmendData.reviewer_name }
 			];
-
-
 			let add = ['ahead_award_point', 'ahead_award_point_limit', 'timeout_deduction_point', 'timeout_deduction_point_limit']
 			add.forEach(item =>{
 				this.deductionPoint(item)
 			})
-
 			let department_infoName = '';
-			// avatar: "static/images/e66f.jpg"
-			// dept_id: 462
-			// dept_name: "技术部"
 			let deptIDs = [];
 			this.dept_selected = { dept: [], employee: [] };
 			for (let i in this.rewardTaskAmendData.department_info) {
@@ -384,7 +384,6 @@ export default {
 				department_infoDept.dept_name = this.rewardTaskAmendData.department_info[i].name;
 				department_infoDept.avatar = 'static/images/e66f.jpg';
 				this.dept_selected.dept.push(department_infoDept);
-				// department_infoName.push(this.rewardTaskAmendData.department_info[i].name)
 				department_infoName += this.rewardTaskAmendData.department_info[i].name + ',';
 			}
 			this.deptVisibleName = department_infoName;
@@ -396,31 +395,24 @@ export default {
 			}
 			this.dept_name = this.echoGather;
 
-			
 			let filtList = []
 			this.rewardTaskAmendData.task_file_list.forEach((item, index) =>{
 				filtList.push({name: item ,url:item, response: { url:item }})
 			})
 			this.fileList = filtList
 			this.fileFun('', filtList)
-
-			// 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.isSelectType=false;
 				this.$nextTick(_=>{
 					this.ruleItemChange(this.formData.tree_echo)
 				})
+			}else if(this.rewardTaskAmendData.rule_id){//指定了分类
+				this.isSelectType=true;
+				this.formData.rule_id = this.rewardTaskAmendData.rule_id;
+				this.formData.rule_value = this.returnRuleVal(this.rewardTaskAmendData.rule_id,[]);
 			}
 		}
 	},
@@ -429,6 +421,38 @@ export default {
 		this.getDepartment();
 	},
 	methods: {
+		// 规则分类变化关闭dewn
+		ruleChange2(value) {
+			const item = this.formData;
+			if (value.length > 0) {
+				item.rule_id = value[value.length - 1];
+			} else {
+				item.rule_id = '';
+				item.rule_value = '';
+			}
+			this.$refs.ruleCascader.dropDownVisible=false;
+		},
+		isSelectTypeC(){
+			let item = this.formData;
+			this.max = 0;
+			this.min = 0;
+			this.treeName = '';
+			item.tree_echo = [];
+			item.task_remark = '';
+			item.base_point = '0';
+			item.range_type = 0;
+			item.item_id = 0;
+			item.rule_id=0;
+			item.rule_value=[];
+		},
+		returnRuleVal(rule_id,arr){
+			arr.unshift(rule_id)
+			let list = this.trees_ab.rule_tree.filter(x => x.id == rule_id)
+			if(list[0].pid != 0){
+				this.returnRuleVal(list[0].pid,arr)
+			}
+			return arr;
+		},
 		ruleChange(aid,att){
 			att.unshift(aid)
 			let list = this.trees_ab.rule_tree.filter(x => x.id == aid)
@@ -439,7 +463,6 @@ export default {
 			}
 		},
 		from_ptId(val){
-			console.log(val)
 			let item = this.formData
 			item.tree_echo = []
 			this.max = 0;
@@ -448,6 +471,8 @@ export default {
 			item.task_remark = '';
 			item.base_point = '0';
 			item.range_type = 0;
+			item.rule_id=0;
+			item.rule_value=[];
 		},
 		handleFilesSuccess(response, file, fileList) {
 			this.fileFun(file, fileList)

+ 110 - 83
src/views/common/temporaryTask.vue

@@ -11,16 +11,37 @@
 					>
 						<el-input type="textarea" rows="3" maxlength="20" show-word-limit v-model="formData.task_name" placeholder="请输入任务内容(限20字)"></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 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>
-
-					<el-form-item
-						:label="trees_PtId(formData.pt_id) +'规则'"
-						prop="tree_echo"
+					
+					<el-form-item label="指定规则">
+						  <el-radio-group v-model="isSelectType">
+						    <el-radio :label="true">分类</el-radio>
+						    <el-radio :label="false">规则</el-radio>
+						  </el-radio-group>
+					</el-form-item>
+					<!-- 选择分类 -->
+					<el-form-item class="test_cascader_id" label="选择分类"	v-if="isSelectType"
+						prop="rule_value"
+						:rules="[{ required: true, message: '请选择规则分类', trigger: 'blur' }]"
+					>
+						<el-cascader
+							v-model="formData.rule_value"
+							ref="ruleCascader"
+							:popper-class="'ruleClass'"
+							filterable
+							clearable
+							:options="trees_ab.rule_tree_all"
+							@change="ruleChange"
+							:props="{ children: 'child', label: 'name', value: 'id', checkStrictly: true }"
+						></el-cascader>
+					</el-form-item>
+					<!-- 选择规则 -->
+					<el-form-item :label="trees_PtId(formData.pt_id) +'规则'" v-else	prop="tree_echo" :rules="[{ required: true, message: '请选择规则', trigger: 'blur' }]"
 					>
 						<el-cascader
 							v-model="formData.tree_echo"
@@ -35,6 +56,8 @@
 						></el-cascader>
 					</el-form-item>
 					
+					
+					
 					<el-form-item prop="range_type" v-if="formData.range_type != 0">
 						<div style="line-height: 24px;" v-show="formData.range_type == 1">
 							{{ min }}
@@ -132,7 +155,7 @@
 					<el-form-item label="任务备注" prop="task_remark" :rules="[{ max: 300, message: '长度不能超过 300 个字', trigger: 'blur' }]">
 						<el-input type="textarea" :rows="5" maxlength="300" show-word-limit v-model="formData.task_remark" placeholder="请输入任务内容(限300字)"></el-input>
 					</el-form-item>
-					
+
 					<el-form-item label="图片">
 						<upload
 							:headers="Xtoken"
@@ -153,7 +176,6 @@
 						</upload>
 					</el-form-item>
 
-
 					<el-form-item label="重复周期" prop="task_cycle">
 						<el-select v-model="formData.task_cycle" placeholder="请选择重复周期">
 							<el-option v-for="(item, index) in task_cycle_arr" :key="index" :label="item.name" :value="item.value"></el-option>
@@ -188,8 +210,6 @@
 						></el-input>
 						B分
 					</el-form-item>
-					<el-form-item v-show="false" prop="ahead_award_point_limit"></el-form-item>
-					<el-form-item v-show="false" prop="timeout_deduction_point_limit"></el-form-item>
 
 					<el-form-item>
 						<div class="flex-box-end">
@@ -226,11 +246,14 @@ export default {
 		},
 		trees_ab: {
 			type: Object,
-			default: {}
-		},
+			default: ()=>{
+				return {};
+			}
+		}
 	},
 	data() {
 		return {
+			isSelectType:true,//是否选择分类
 			//图片附件
 			Xtoken: { 'X-Token': this.$getToken() },
 			fileList: [],
@@ -242,16 +265,17 @@ export default {
 			taskload: false,
 			formData: {
 				task_name: '',
-				
+
 				base_point: '0',
 				task_remark: '',
 				pt_id: 3,
 
-				tree_echo: [],//用于编辑任务时的规则回显
+				tree_echo: [], //用于编辑任务时的规则回显
 				range_type: 0,
-				rule_id: 0,
+				rule_id: '',
+				rule_value:[],
 				file_list: [],
-
+				
 				task_expire_day: 1,
 				expire_time: moment().format('YYYY-MM-DD 18:00'),
 				weight: 0,
@@ -359,24 +383,77 @@ export default {
 				this.formData.expire_time = moment().format('YYYY-MM-DD 18:00');
 			}
 		},
+		isSelectType(val) {
+			let item = this.formData;
+			this.max = 0;
+			this.min = 0;
+			this.treeName = '';
+			item.tree_echo = [];
+			item.task_remark = '';
+			item.base_point = '0';
+			item.range_type = 0;
+			item.rule_id='';
+			item.item_id = 0;
+			item.rule_value=[];
+		},
 		'formData.pt_id'(val) {
-			console.log(val)
-			let item = this.formData
+			let item = this.formData;
 			this.max = 0;
 			this.min = 0;
-			this.treeName = ''
-			item.tree_echo = []
+			this.treeName = '';
+			item.tree_echo = [];
 			item.task_remark = '';
 			item.base_point = '0';
 			item.range_type = 0;
+			item.rule_id='';
+			item.rule_value=[];
 		}
 	},
 	mounted() {
 		this.point_types = JSON.parse(localStorage.getItem('types'));
 	},
 	methods: {
+		trees_PtId(id) {
+			return id == 2 ? 'A分' : 'B分';
+		},
+		ruleItemChange(val) {
+			let item = this.formData;
+			if (val.length > 0) {
+				let data = this.$refs.ruleItem.getCheckedNodes()[0].data; //当前选中的节点数据
+				item.task_remark = data.name;
+				this.treeName = data.name;
+				this.max = data.max_point * 1;
+				this.min = data.min_point * 1;
+				item.base_point = data.min_point;
+				item.range_type = data.range_type;
+				item.rule_id = data.pid;
+				item.item_id = data.id;
+			} else {
+				item.task_remark = '';
+				this.treeName = '';
+				this.max = 0;
+				this.min = 0;
+				item.base_point = '0';
+				item.range_type = 0;
+				item.rule_id = 0;
+				item.item_id = 0;
+			}
+		},
+		// 规则分类变化关闭dewn
+		ruleChange(value) {
+			console.log(value)
+			const item = this.formData;
+			if (value.length > 0) {
+				item.rule_id = value[value.length - 1];
+			} else {
+				item.rule_id = '';
+				item.rule_value = '';
+			}
+			this.$refs.ruleCascader.dropDownVisible=false;
+		},
+		
 		handleFilesSuccess(response, file, fileList) {
-			this.fileFun(file, fileList)
+			this.fileFun(file, fileList);
 		},
 		onFilePreView(file) {
 			if (file.response) {
@@ -384,11 +461,11 @@ export default {
 			}
 		},
 		onFileRemove(file, fileList) {
-			this.fileFun(file, fileList)
+			this.fileFun(file, fileList);
 		},
-		fileFun(file, fileList){
+		fileFun(file, fileList) {
 			this.fileList = fileList;
-			this.formData.file_list = []
+			this.formData.file_list = [];
 			fileList.forEach((item, index) => {
 				this.formData.file_list.push(item.url);
 			});
@@ -405,50 +482,6 @@ export default {
 			}
 			return isJPG && isLt2M;
 		},
-
-
-		trees_PtId(id) {
-			return id == 2 ? 'A分' : 'B分'
-		},
-		ruleItemChange(val){
-			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;
-				this.max = data.max_point * 1;
-				this.min = data.min_point * 1;
-				item.base_point = data.min_point;
-				item.range_type = data.range_type;
-				item.rule_id = data.pid;
-				item.item_id = data.id;
-			}else{
-				item.task_remark = '';
-				this.treeName = '';
-				this.max = 0;
-				this.min = 0;
-				item.base_point = '0';
-				item.range_type = 0;
-				item.rule_id = 0;
-				item.item_id = 0;
-				
-			}
-		},
-		// 获取规则细则
-		getRuleItemData() {
-			let data = { cycle_type: '1', pt_id: this.integralType };
-			this.$axios('get', '/api/integral/rule/trees', data, 'v2').then(res => {
-				if (res.data.code == 1) {
-					const resultData = res.data.data;
-					this.rule_item_list = resultData.tree;
-					this.flatteningIntegralRules = this.getItemDetail(this.rule_item_list);
-					console.log(this.flatteningIntegralRules)
-					this.loading = false;
-				}
-			});
-		},
 		submitEmployee(name) {
 			this.$refs[name].confirm(); //调用组件的confirm();
 		},
@@ -466,16 +499,13 @@ export default {
 		resetForm(formName) {
 			this.$emit('update:dialogVisible', false);
 			this.$refs[formName].resetFields();
-			this.formData.file_list = []
-			this.formData.range_type=0;
-			this.formData.rule_id=0;
-			this.formData.item_id=0;
+			this.formData.file_list = [];
+			this.formData.range_type = 0;
+			this.formData.rule_id = 0;
+			this.formData.item_id = 0;
 
-			this.fileList = []
-			this.formData.tree_echo = [],
-			this.max = 0,
-			this.min = 0,
-			this.treeName = '';
+			this.fileList = [];
+			(this.formData.tree_echo = []), (this.max = 0), (this.min = 0), (this.treeName = '');
 			this.executorName = '';
 			this.reviewerName = '';
 			this.approval_selected = { dept: [], employee: [] };
@@ -515,7 +545,6 @@ export default {
 				delete data.expire_time;
 				data.task_remark ? '' : delete data.task_remark;
 			}
-			
 
 			if (!data.ahead_award_point && data.ahead_award_point_limit) {
 				this.$message.warning('奖分上限不为0时每日奖分不能为空');
@@ -546,10 +575,10 @@ export default {
 					}
 				}
 			}
-			let add = ['ahead_award_point', 'ahead_award_point_limit', 'timeout_deduction_point', 'timeout_deduction_point_limit']
-			add.forEach(item =>{
-				this.deletedata(data,item)
-			})
+			let add = ['ahead_award_point', 'ahead_award_point_limit', 'timeout_deduction_point', 'timeout_deduction_point_limit'];
+			add.forEach(item => {
+				this.deletedata(data, item);
+			});
 			this.taskload = true;
 			self.$axios('post', self.formData.task_cycle == 0 ? '/api/integral/work/publish' : '/api/integral/schedule/publish/work', data)
 				.then(res => {
@@ -579,7 +608,6 @@ export default {
 			}
 			this.show_employee_selector = false;
 		},
-		// 执行者 end
 		// 审核人
 		reviewer_confirm(data) {
 			this.reviewer_selected = { dept: [], employee: [] };
@@ -594,7 +622,6 @@ export default {
 		},
 		closeDialog() {
 			this.resetForm('formData');
-			// this.$emit('update:dialogVisible', false)
 		}
 	}
 };

+ 109 - 94
src/views/common/temporaryTaskAmend.vue

@@ -11,11 +11,30 @@
 					>
 						<el-input type="textarea" rows="3" maxlength="20" show-word-limit v-model="formData.task_name" placeholder="请输入任务内容(限20字)"></el-input>
 					</el-form-item>
-
-					
-					<el-form-item
-						:label="trees_PtId(formData.pt_id) +'规则'"
-						prop="tree_echo"
+					<el-form-item label="指定规则">
+						  <el-radio-group v-model="isSelectType" @change="isSelectTypeC">
+						    <el-radio :label="true">分类</el-radio>
+						    <el-radio :label="false">规则</el-radio>
+						  </el-radio-group>
+					</el-form-item>
+					<!-- 选择分类 -->
+					<el-form-item class="test_cascader_id" label="选择分类"	v-if="isSelectType"
+						prop="rule_value"
+						:rules="[{ required: true, message: '请选择规则分类', trigger: 'blur' }]"
+					>
+						<el-cascader
+							v-model="formData.rule_value"
+							ref="ruleCascader"
+							:popper-class="'ruleClass'"
+							filterable
+							clearable
+							:options="trees_ab.rule_tree_all"
+							@change="ruleChange2"
+							:props="{ children: 'child', label: 'name', value: 'id', checkStrictly: true }"
+						></el-cascader>
+					</el-form-item>
+					<!-- 选择规则 -->
+					<el-form-item :label="trees_PtId(formData.pt_id) +'规则'" v-else	prop="tree_echo" :rules="[{ required: true, message: '请选择规则', trigger: 'blur' }]"
 					>
 						<el-cascader
 							v-model="formData.tree_echo"
@@ -30,6 +49,7 @@
 						></el-cascader>
 					</el-form-item>
 
+
 					<el-form-item prop="range_type" v-if="formData.range_type != 0">
 						<div style="line-height: 24px;" v-show="formData.range_type == 1">
 							{{ min }}
@@ -201,27 +221,28 @@ export default {
 		},
 		trees_ab: {
 			type: Object,
-			default: {}
-		},
+			default: ()=>{
+				return {};
+			}
+		}
 	},
 	data() {
 		return {
 			//图片附件
+			isSelectType:true,//是否选择分类
+			
 			Xtoken: { 'X-Token': this.$getToken() },
 			fileList: [],
-
-			// treesAb: [],
 			max: 0,
 			min: 0,
 			treeName: '',
-
 			taskload: false,
 			formData: {
 				tree_echo: [],//用于编辑任务时的规则回显
 				file_list: [],
 				range_type: 0,
 				rule_id: 0,
-
+				rule_value:[],
 				id: 0,
 				task_name: '',
 				base_point: '0',
@@ -340,48 +361,35 @@ export default {
 				this.formData.expire_time = moment().format('YYYY-MM-DD 18:00');
 			}
 		},
-		modifyData() {
-			// this.Datas()
-		}
-	},
-	created() {
-
 	},
 	mounted() {
 		this.point_types = JSON.parse(localStorage.getItem('types'));
 	},
 	methods: {
-		handleFilesSuccess(response, file, fileList) {
-			this.fileFun(file, fileList)
-		},
-		onFilePreView(file) {
-			if (file.response) {
-				window.open(file.response.url, '_blank');
-			}
-		},
-		onFileRemove(file, fileList) {
-			this.fileFun(file, fileList)
-		},
-		fileFun(file, fileList){
-			this.fileList = fileList;
-			this.formData.file_list = []
-			fileList.forEach((item, index) => {
-				this.formData.file_list.push(item.url);
-			});
+		isSelectTypeC(){
+			let item = this.formData;
+			this.max = 0;
+			this.min = 0;
+			this.treeName = '';
+			item.tree_echo = [];
+			item.task_remark = '';
+			item.base_point = '0';
+			item.range_type = 0;
+			item.item_id = 0;
+			item.rule_id=0;
+			item.rule_value=[];
 		},
-		// 附件上传
-		beforeUpload(file) {
-			const isJPG = /^image\/(jpeg|png|jpg)$/.test(file.type);
-			const isLt2M = file.size / 1024 / 1024 < 1;
-			if (!isJPG) {
-				this.$message.error('上传头像图片只能是 JPG 格式!');
-			}
-			if (!isLt2M) {
-				this.$message.error('上传头像图片大小不能超过 2MB!');
+		// 规则分类变化关闭dewn
+		ruleChange2(value) {
+			const item = this.formData;
+			if (value.length > 0) {
+				item.rule_id = value[value.length - 1];
+			} else {
+				item.rule_id = '';
+				item.rule_value = '';
 			}
-			return isJPG && isLt2M;
+			this.$refs.ruleCascader.dropDownVisible=false;
 		},
-		
 		trees_PtId(id) {
 			return id == 2 ? 'A分' : 'B分'
 		},
@@ -406,23 +414,9 @@ export default {
 				item.range_type = 0;
 				item.rule_id = 0;
 				item.item_id = 0;
-				
 			}
 		},
-
-		submitEmployee(name) {
-			this.$refs[name].confirm(); //调用组件的confirm();
-		},
-		submitEmployee1(name) {
-			this.$refs[name].confirm(); //调用组件的confirm();
-		},
-		//关闭
-		handleClose(done) {
-			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;
@@ -433,7 +427,6 @@ export default {
 			this.executorName = this.modifyData.employee_name;
 			this.reviewerName = this.modifyData.reviewer_name;
 
-			// this.formData.targets.push(this.modifyData.employee_id)//执行者
 			this.formData.targets.push(this.modifyData.employee_id); //执行者
 			this.approval_selected.employee = [{ id: this.modifyData.employee_id, img_url: this.modifyData.img_url, name: this.modifyData.employee_name }];
 
@@ -446,31 +439,19 @@ export default {
 			})
 			this.fileList = filtList
 			this.fileFun('', filtList)
-
-
-			// 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.isSelectType=false;
 				this.$nextTick(_=>{
-					this.ruleItemChange(this.formData.tree_echo)
+					this.ruleItemChange(this.formData.tree_echo);
 				})
+			}else if(this.modifyData.rule_id){//指定了分类
+				this.isSelectType=true;
+				this.formData.rule_id = this.modifyData.rule_id;
+				this.formData.rule_value = this.returnRuleVal(this.modifyData.rule_id,[]);
 			}
-
-			// if (this.modifyData.point_config.timeout_deduction_point != '0') {
-			// 	this.formData.timeout_deduction_point = this.modifyData.point_config.timeout_deduction_point;
-			// } else {
-			// 	this.formData.timeout_deduction_point = '';
-			// }
 			
 			let add = ['ahead_award_point', 'ahead_award_point_limit', 'timeout_deduction_point', 'timeout_deduction_point_limit']
 			add.forEach(item =>{
@@ -478,6 +459,24 @@ export default {
 			})
 
 		},
+		returnRuleVal(rule_id,arr){
+			arr.unshift(rule_id)
+			let list = this.trees_ab.rule_tree.filter(x => x.id == rule_id)
+			if(list[0].pid != 0){
+				this.returnRuleVal(list[0].pid,arr)
+			}
+			return arr;
+		},
+		submitEmployee(name) {
+			this.$refs[name].confirm(); //调用组件的confirm();
+		},
+		submitEmployee1(name) {
+			this.$refs[name].confirm(); //调用组件的confirm();
+		},
+		//关闭
+		handleClose(done) {
+			done();
+		},
 		ruleChange(aid,att){
 			att.unshift(aid)
 			let list = this.trees_ab.rule_tree.filter(x => x.id == aid)
@@ -486,14 +485,6 @@ export default {
 			}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') {
@@ -583,10 +574,6 @@ export default {
 					if (res.data.code == 1) {
 						this.$parent.get_list();
 						this.resetForm('formData')
-						// self.$emit('update:dialogVisible', false);
-						// self.$refs[formName].resetFields();
-						// self.executorName = '';
-						// self.reviewerName = '';
 						self.$message.success(res.data.msg);
 					} else {
 						self.$message.error(res.data.msg);
@@ -610,7 +597,6 @@ export default {
 			}
 			this.show_employee_selector = false;
 		},
-		// 执行者 end
 		// 审核人
 		reviewer_confirm(data) {
 			this.reviewer_selected = { dept: [], employee: [] };
@@ -625,8 +611,37 @@ export default {
 		},
 		closeDialog() {
 			this.resetForm('formData')
-			// this.$emit('update:dialogVisible', false);
-		}
+		},
+		handleFilesSuccess(response, file, fileList) {
+			this.fileFun(file, fileList)
+		},
+		onFilePreView(file) {
+			if (file.response) {
+				window.open(file.response.url, '_blank');
+			}
+		},
+		onFileRemove(file, fileList) {
+			this.fileFun(file, fileList)
+		},
+		fileFun(file, fileList){
+			this.fileList = fileList;
+			this.formData.file_list = []
+			fileList.forEach((item, index) => {
+				this.formData.file_list.push(item.url);
+			});
+		},
+		// 附件上传
+		beforeUpload(file) {
+			const isJPG = /^image\/(jpeg|png|jpg)$/.test(file.type);
+			const isLt2M = file.size / 1024 / 1024 < 1;
+			if (!isJPG) {
+				this.$message.error('上传头像图片只能是 JPG 格式!');
+			}
+			if (!isLt2M) {
+				this.$message.error('上传头像图片大小不能超过 2MB!');
+			}
+			return isJPG && isLt2M;
+		},
 	}
 };
 </script>

+ 3 - 5
src/views/ranking/attendance_rating.vue

@@ -1,7 +1,7 @@
 <template>
 	<div>
-		<div class="all padding-20" v-loading="attendload">
-			<el-row :gutter="10" style="margin-right:8px;">
+		<div class="all" v-loading="attendload">
+			<div>
 				<el-form :inline="true">
 					<el-form-item label="考勤组">
 						<el-select v-model="formData.group_id" @change="selectgroupId" filterable :clearable="false" placeholder="请选择考勤组">
@@ -35,8 +35,7 @@
 						<el-button type="primary" plain @click="isUpdate=true">更新考勤数据</el-button>
 					</el-form-item>
 				</el-form>
-			</el-row>
-
+			</div>
 			<el-table :data="all_integral_list" style="width: 100%" v-loading="loading">
 				<el-table-column label="名次" width="100" align="center">
 					<template slot-scope="scope">
@@ -63,7 +62,6 @@
 					<noData :content="checkingInGroup.length == 0 ? '请先开启钉钉考勤' : '暂无数据'"></noData>
 				</template>
 			</el-table>
-
 			<center style="padding: 20px 0;">
 				<el-pagination
 					background

+ 46 - 0
src/views/ranking/each_rank.vue

@@ -0,0 +1,46 @@
+<template>
+  <div style="background-color: #fff;padding: 20px;" class="boxMinHeight">
+    <el-tabs v-model="activeName" @tab-click="handleClick">
+      <el-tab-pane label="考勤分" name="1">
+        <attendance_rating></attendance_rating>
+      </el-tab-pane>
+      <el-tab-pane label="日志分" name="2">
+        <log_rank :isEntrance="true"></log_rank>
+      </el-tab-pane>
+      <el-tab-pane label="任务分" name="3">
+        <task_rank></task_rank>
+      </el-tab-pane>
+    </el-tabs>
+  </div>
+</template>
+
+<script>
+import attendance_rating from '@/views/ranking/attendance_rating';
+import log_rank from '@/views/ranking/log_rank';
+import task_rank from '@/views/ranking/task_rank';
+export default {
+  name: 'each_rank',
+  components: {
+    attendance_rating,log_rank,task_rank
+  },
+  data() {
+    return {
+      activeName:'1'
+    };
+  },
+  methods:{
+    handleClick(){
+
+    }
+  },
+  created() {
+    if(this.$route.query.index){
+      this.activeName=this.$route.query.index
+    }
+  }
+};
+</script>
+
+<style>
+
+</style>

+ 286 - 0
src/views/ranking/log_rank.vue

@@ -0,0 +1,286 @@
+<template>
+	<div>
+		<div class="all" v-loading="attendload">
+			<div>
+				<el-form :inline="true">
+					<el-form-item label="人员">
+						<el-select v-model="formData.employeeID" size="medium" multiple filterable collapse-tags placeholder="请选择员工">
+							<el-option v-for="item in employee_map" :key="item.id" :label="item.name" :value="item.id"></el-option>
+						</el-select>
+					</el-form-item>
+
+					<el-form-item label="时间">
+						<el-date-picker
+							style="width:290px"
+							class="first-element-btn"
+							:clearable="false"
+							v-model="time_range"
+							type="daterange"
+							value-format="yyyy-MM-dd"
+							range-separator="至"
+							start-placeholder="开始日期"
+							end-placeholder="结束日期"
+							:picker-options="instantPickerOptions"
+							@change="onFilterChanged"
+						></el-date-picker>
+					</el-form-item>
+					<el-form-item>
+						<el-button type="primary" plain @click="exportRanking">导出排名</el-button>
+					</el-form-item>
+				</el-form>
+			</div>
+			<el-table :data="all_integral_list" style="width: 100%" v-loading="loading">
+				<el-table-column label="名次" width="100" align="center">
+					<template slot-scope="scope">
+						<img v-if="scope.row.rank === 1" src="@/assets/image/statistics_NO1.png" alt />
+						<img v-if="scope.row.rank === 2" src="@/assets/image/statistics_NO2.png" alt />
+						<img v-if="scope.row.rank === 3" src="@/assets/image/statistics_NO3.png" alt />
+						<span v-if="scope.row.rank > 3">{{ scope.row.rank }}</span>
+					</template>
+				</el-table-column>
+				<el-table-column label="姓名" align="left">
+					<template slot-scope="scope">
+						<div style="display:flex;">
+							<userImage :user_name="scope.row.name" :img_url="scope.row.img_url" width="50px" height="50px"></userImage>
+							<span style="line-height: 50px; padding-left: 10px;">{{ scope.row.name }}</span>
+						</div>
+					</template>
+				</el-table-column>
+				<el-table-column prop="point" label="B分" align="left">
+					<template slot-scope="scope">
+						<b style="font-size:15px;color:#909399">{{ scope.row.point }}</b>
+					</template>
+				</el-table-column>
+				<template slot="empty">
+					<noData :content="checkingInGroup.length == 0 ? '请先开启钉钉考勤' : '暂无数据'"></noData>
+				</template>
+			</el-table>
+			<center style="padding: 20px 0;">
+				<el-pagination
+					background
+					@size-change="handleSizeChange1"
+					@current-change="handleCurrentChange"
+					:current-page="formData.page"
+					:page-sizes="[10, 20, 50, 100]"
+					layout="total, sizes, prev, pager, next"
+					:page-size="pageLimit1"
+					:total="total"
+				></el-pagination>
+			</center>
+		</div>
+		<!-- 导出弹窗 -->
+		<el-dialog title="导出排名" :visible.sync="dialogVisible" width="730px">
+			<div style="font-size:15px;margin:20px 0 20px 0;">系统将按以下已选条件导出对应的排名报表</div>
+			<div v-loading="exportLoad">
+				<el-form :inline="true">
+					<el-form-item label="考勤组">
+						<el-select v-model="exportData.group_id" @change="selectgroupId" filterable :clearable="false" placeholder="请选择考勤组">
+							<el-option v-for="item in checkingInGroup" :key="item.id" :label="item.name" :value="item.id"></el-option>
+						</el-select>
+					</el-form-item>
+
+					<el-form-item label="排名类型">
+						<el-select v-model="exportData.event_type" style="width:150px" placeholder="请选择">
+							<el-option v-for="(item, index) in event_type" :key="index" :label="item.name" :value="item.id"></el-option>
+						</el-select>
+					</el-form-item>
+
+					<el-form-item label="时间">
+						<el-date-picker
+							class="first-element-btn"
+							:clearable="false"
+							v-model="exportTime_range"
+							type="daterange"
+							value-format="yyyy-MM-dd"
+							range-separator="至"
+							start-placeholder="开始日期"
+							end-placeholder="结束日期"
+							:picker-options="instantPickerOptions"
+						></el-date-picker>
+					</el-form-item>
+				</el-form>
+				<span class="dialog-footer" style="display:flex;justify-content: flex-end;">
+					<el-button @click="dialogVisible = false">取 消</el-button>
+					<el-button type="primary" @click="exportExcel">导 出</el-button>
+				</span>
+			</div>
+		</el-dialog>
+	</div>
+</template>
+<script>
+import noData from '@/components/noData';
+export default {
+	data() {
+		return {
+			employee_map: JSON.parse(localStorage.getItem('SET_EMPLOYEE_MAP')),
+			exportLoad: false,
+			dialogVisible: false,
+			checkingInGroup: [],
+			time_range:[],
+			total: 0,
+			dept_tree: [],
+			dept_name: [],
+			pageLimit1: 10,
+			formData: {
+				employeeID:'',
+				group_id: '',
+				page: 1,
+				page_size: 10,
+				event_type: 0
+			},
+			attendload: false,
+			loading: false,
+			all_integral_list: [],
+			instantPickerOptions: {
+				shortcuts: [
+					{
+						text: '本周',
+						onClick(picker) {
+							const now = new Date();
+							const start = new Date();
+							start.setTime(now.getTime() - (now.getDay() - 1) * 24 * 60 * 60 * 1000);
+							now.setTime(start.getTime() + 6 * 24 * 60 * 60 * 1000 - 1000);
+							picker.$emit('pick', [start, now]);
+						}
+					},
+					{
+						text: '上周',
+						onClick(picker) {
+							const end = new Date();
+							const start = new Date();
+							start.setTime(start.getTime() - (start.getDay() + 6) * 3600 * 1000 * 24);
+							end.setTime(start.getTime() + 6 * 24 * 60 * 60 * 1000 - 1000);
+							picker.$emit('pick', [start, end]);
+						}
+					},
+					{
+						text: '本月',
+						onClick(picker) {
+							const now = new Date();
+							const startDate = new Date(now.getFullYear(), now.getMonth(), 1);
+							const endDate = new Date(now.getFullYear(), now.getMonth() + 1, 0);
+							picker.$emit('pick', [startDate, endDate]);
+						}
+					},
+					{
+						text: '上月',
+						onClick(picker) {
+							const now = new Date();
+							const startDate = new Date(now.getFullYear() - (now.getMonth() > 0 ? 0 : 1), (now.getMonth() + 11) % 12, 1);
+							const endDate = new Date(now.getFullYear(), now.getMonth(), 0);
+							picker.$emit('pick', [startDate, endDate]);
+						}
+					}
+				]
+			},
+			exportData: {
+				group_id: '',
+				event_type: 0
+			},
+		};
+	},
+	components: { noData },
+	watch: {
+
+	},
+	mounted() {
+		this.getEmployeeList()
+	},
+	methods: {
+		getEmployeeList() {
+			this.$axios('get', '/api/employee/list', {}).then(res => {
+				if (res.data.code == 1) {
+					this.employee_map = res.data.data.list;
+				}
+			});
+		},
+		exportRanking() {
+			if (this.checkingInGroup.length > 0) {
+				this.exportData.group_id = this.checkingInGroup[0].id;
+			}
+			this.dialogVisible = true;
+		},
+		exportExcel() {
+			window.open(
+				process.env.VUE_APP_BASE_API +
+					'api/download/groups_ranking/export?start_date=' +
+					this.exportTime_range[0] +
+					'&end_date=' +
+					this.exportTime_range[1] +
+					'&page=' +
+					1 +
+					'&page_size=' +
+					2000 +
+					'&group_id=' +
+					this.exportData.group_id +
+					'&event_type=' +
+					this.exportData.event_type +
+					'&employee_id=' +
+					this.$getUserData().id,
+				'_blank'
+			);
+		},
+		selectgroupId() {
+			this.get_all_integral();
+		},
+		onFilterChanged() {
+			this.get_all_integral();
+		},
+		//分页
+		handleSizeChange1(val) {
+			this.pageLimit1 = val;
+			this.formData.page_size = this.pageLimit1;
+			this.get_all_integral();
+		},
+		handleCurrentChange(val) {
+			this.formData.page = val;
+			this.get_all_integral();
+		},
+		//请求数据
+		get_all_integral() {
+			let self = this;
+			self.loading = true;
+			let data = {
+				group_id: this.formData.group_id,
+				page: this.formData.page,
+				page_size: this.formData.page_size,
+				event_type: this.formData.event_type
+			};
+			data.start_date = this.time_range[0];
+			data.end_date = this.time_range[1];
+			this.$axios('post', '/api/ad/rank', data)
+				.then(res => {
+					if (res.data.code == 1) {
+						self.all_integral_list = res.data.data.list;
+						this.total = res.data.data.total;
+					} else {
+						self.$message.error(res.data.data.msg);
+					}
+				})
+				.finally(() => {
+					self.loading = false;
+				});
+		}
+	}
+};
+</script>
+
+<style scoped>
+.el-date-editor.el-input {
+	width: auto;
+}
+.date-picker-width {
+	width: 145px !important;
+}
+.search ::v-deep .el-input-group__append:active {
+	background: #26a2ff;
+}
+.search ::v-deep .el-input-group__append:active .el-icon-search {
+	color: #fff;
+}
+</style>
+<style lang="scss" scoped>
+::v-deep .el-dialog__body {
+	padding: 0px 20px 30px;
+}
+</style>

+ 1 - 1
src/views/ranking/manager_statistics.vue

@@ -1,7 +1,7 @@
 <template>
 	<div>
 		<div class="all padding-20">
-			<el-tabs v-model="activeName" type="card">
+			<el-tabs v-model="activeName">
 				<!-- 奖扣完成情况 -->
 				<el-tab-pane label="奖扣完成情况" name="second">
 					<el-form :model="condition" :inline="true" ref="formData">

+ 8 - 0
src/views/ranking/task_rank.vue

@@ -0,0 +1,8 @@
+<template>
+</template>
+
+<script>
+</script>
+
+<style>
+</style>

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

@@ -215,7 +215,7 @@ export default {
 					}
 					let data = {
 						type: type,
-						employee_id: this.$getUserData().id,
+						// employee_id: this.$getUserData().id,
 						target_date: this.logData.target_date
 					};
 					this.$axios('post', '/api/ding/report_sync', data)

+ 1 - 1
src/views/task/allTask.vue

@@ -1,7 +1,7 @@
 <template>
 	<div>
 		<div class="box">
-			<el-tabs v-model="formData.status" type="card">
+			<el-tabs v-model="formData.status">
 				<el-tab-pane v-for="(item, index) in tabsOption" :key="index" :label="item.label" :name="item.name"></el-tab-pane>
 			</el-tabs>
 

+ 1 - 1
src/views/task/get_task.vue

@@ -1,7 +1,7 @@
 <template>
 	<div>
 		<div class="box">
-			<el-tabs v-model="active" type="card">
+			<el-tabs v-model="active">
 				<el-tab-pane label="待领取" name="unclaimed"></el-tab-pane>
 				<el-tab-pane label="已领取" name="received"></el-tab-pane>
 			</el-tabs>

+ 1 - 1
src/views/task/myExamine.vue

@@ -1,7 +1,7 @@
 <template>
 	<div>
 		<div class="box">
-			<el-tabs v-model="formData.status" type="card">
+			<el-tabs v-model="formData.status">
 				<el-tab-pane v-for="(item, index) in tabsOption" :key="index" :label="item.label" :name="item.name"></el-tab-pane>
 			</el-tabs>
 

+ 632 - 590
src/views/task/my_issue.vue

@@ -1,616 +1,658 @@
 <template>
-  <div>
-    <div class="box">
-      <el-tabs v-model="status" type="card">
-        <el-tab-pane v-for="(item,index) in tabsOption" :key="index" :label="item.label" :name="item.name"></el-tab-pane>
-      </el-tabs>
-      <el-form ref="formData" :inline="true" :model="formData" label-width="70px">
-        <el-form-item>
-          <el-dropdown @command="downClick">
-            <el-button type="primary">
-              发布任务<i class="el-icon-arrow-down el-icon--right"></i>
-            </el-button>
-            <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item command="1">+ 临时任务</el-dropdown-item>
-              <el-dropdown-item command="2">+ 悬赏任务</el-dropdown-item>
-            </el-dropdown-menu>
-          </el-dropdown>          
-        </el-form-item>
-        <el-form-item v-if="status == 'assign' || status == 'reward'" label="积分类型">
-          <el-select v-model="formData.pt_id" placeholder="请选择">
-            <el-option v-for="item in point_types" :key="item.id" :label="item.name" :value="item.id"></el-option>
-          </el-select>
-        </el-form-item>
-        <el-form-item v-if="status == 'assign'" label="任务状态">
-          <el-select v-model="formData.status" placeholder="请选择">
-            <el-option v-for="item in task_status" :key="item.id" :label="item.name" :value="item.code"></el-option>
-          </el-select>
-        </el-form-item>
-
-        <el-form-item v-if="status == 'assign'" label="排序" label-width="50px">
-          <el-select v-model="formData.sort" placeholder="请选择排序">
-            <el-option v-for="item in sort" :key="item.id" :label="item.name" :value="item.code"></el-option>
-          </el-select>
-        </el-form-item>
-
-        <el-form-item v-if="status == 'reward'" label="排序" label-width="50px">
-          <el-select v-model="formData.order_by" placeholder="请选择排序">
-            <el-option v-for="item in order_by" :key="item.id" :label="item.name" :value="item.code"></el-option>
-          </el-select>
-        </el-form-item>
-
-        <el-form-item label-width="60px">
-						<el-input v-model="formData.content" placeholder="请输入任务内容" max="200" @keyup.enter.native="getContent()" class="persons_name">
-							<el-button slot="append" icon="el-icon-search" @click="getContent()"></el-button>
-						</el-input>
-        </el-form-item>
-
-        <el-form-item v-if="status == 'assign' || status == 'repetitive'" label="执行人" label-width="60px">
+	<div>
+		<div class="box">
+			<el-tabs v-model="status"><el-tab-pane v-for="(item, index) in tabsOption" :key="index" :label="item.label" :name="item.name"></el-tab-pane></el-tabs>
+			<el-form ref="formData" :inline="true" :model="formData" label-width="70px">
+				<el-form-item>
+					<el-dropdown @command="downClick">
+						<el-button type="primary">
+							发布任务
+							<i class="el-icon-arrow-down el-icon--right"></i>
+						</el-button>
+						<el-dropdown-menu slot="dropdown">
+							<el-dropdown-item command="1">+ 临时任务</el-dropdown-item>
+							<el-dropdown-item command="2">+ 悬赏任务</el-dropdown-item>
+						</el-dropdown-menu>
+					</el-dropdown>
+				</el-form-item>
+				<el-form-item v-if="status == 'assign' || status == 'reward'" label="积分类型">
+					<el-select v-model="formData.pt_id" placeholder="请选择">
+						<el-option v-for="item in point_types" :key="item.id" :label="item.name" :value="item.id"></el-option>
+					</el-select>
+				</el-form-item>
+				<el-form-item v-if="status == 'assign'" label="任务状态">
+					<el-select v-model="formData.status" placeholder="请选择">
+						<el-option v-for="item in task_status" :key="item.id" :label="item.name" :value="item.code"></el-option>
+					</el-select>
+				</el-form-item>
+
+				<el-form-item v-if="status == 'assign'" label="排序" label-width="50px">
+					<el-select v-model="formData.sort" placeholder="请选择排序">
+						<el-option v-for="item in sort" :key="item.id" :label="item.name" :value="item.code"></el-option>
+					</el-select>
+				</el-form-item>
+
+				<el-form-item v-if="status == 'reward'" label="排序" label-width="50px">
+					<el-select v-model="formData.order_by" placeholder="请选择排序">
+						<el-option v-for="item in order_by" :key="item.id" :label="item.name" :value="item.code"></el-option>
+					</el-select>
+				</el-form-item>
+
+				<el-form-item label-width="60px">
+					<el-input v-model="formData.content" placeholder="请输入任务内容" max="200" @keyup.enter.native="getContent()" class="persons_name">
+						<el-button slot="append" icon="el-icon-search" @click="getContent()"></el-button>
+					</el-input>
+				</el-form-item>
+
+				<el-form-item v-if="status == 'assign' || status == 'repetitive'" label="执行人" label-width="60px">
 					<el-select v-model="formData.executor_id" clearable filterable placeholder="请输入或选择执行人">
 						<el-option v-for="item in employee_map" :key="item.id" :label="item.name" :value="item.id"></el-option>
 					</el-select>
-        </el-form-item>
+				</el-form-item>
 
-        <el-form-item label="审批人" label-width="60px">
+				<el-form-item label="审批人" label-width="60px">
 					<el-select v-model="formData.reviewer_id" clearable filterable placeholder="请输入或选择审批人">
 						<el-option v-for="item in employee_map" :key="item.id" :label="item.name" :value="item.id"></el-option>
 					</el-select>
-        </el-form-item>
-
-      </el-form>
-
-      <div v-show="status == 'assign'">
-        <el-table :data="list" style="width: 100%" v-loading="loading" @row-click="rowClick">
-          <el-table-column label="执行人" prop="task_name" width='250px'>
-            <template slot-scope="scope">
-              <div style="display:flex">
-                <userImage :img_url="scope.row.employee_img_url" :id="scope.row.employee_id" :user_name="scope.row.employee_name" width="50px" height="50px"></userImage>
-                <span style="line-height: 50px; padding-left: 10px;">{{scope.row.employee_name}}的{{scope.row.pt_name}}任务</span>
-              </div>
-            </template>
-          </el-table-column>
-          <el-table-column label="任务内容" prop="task_name">
-            <template slot-scope="scope">
-				<span class="font-flex-word" style="max-width: 200px;">{{scope.row.task_name}}</span>
-            </template>
-          </el-table-column>
-          <el-table-column label="积分" prop="base_point" width="100px">
-            <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 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>
-          <el-table-column label="截止时间" prop="expire_time">
-            <template slot-scope="scope">
-              <span>{{scope.row.expire_time}}</span>
-            </template>
-          </el-table-column>
+				</el-form-item>
+			</el-form>
+
+			<div v-show="status == 'assign'">
+				<el-table :data="list" style="width: 100%" v-loading="loading" @row-click="rowClick">
+					<el-table-column label="执行人" prop="task_name" width="250px">
+						<template slot-scope="scope">
+							<div style="display:flex">
+								<userImage
+									:img_url="scope.row.employee_img_url"
+									:id="scope.row.employee_id"
+									:user_name="scope.row.employee_name"
+									width="50px"
+									height="50px"
+								></userImage>
+								<span style="line-height: 50px; padding-left: 10px;">{{ scope.row.employee_name }}的{{ scope.row.pt_name }}任务</span>
+							</div>
+						</template>
+					</el-table-column>
+					<el-table-column label="任务内容" prop="task_name">
+						<template slot-scope="scope">		
+					<span class="font-flex-word" style="max-width: 200px;">{{ scope.row.task_name }}</span>
+						</template>
+					</el-table-column>
+					<el-table-column label="积分" prop="base_point" width="100px">
+						<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 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>
+					<el-table-column label="截止时间" prop="expire_time">
+						<template slot-scope="scope">
+							<span>{{ scope.row.expire_time }}</span>
+						</template>
+					</el-table-column>
 					<el-table-column label="审批人" width="100px" prop="reviewer_name"></el-table-column>
-          <el-table-column label="状态" prop="owner_id" width="100px">
-            <template slot-scope="scope">
-              <span class="yellow" v-if="scope.row.status==1">进行中</span>
-              <span class="green" v-else-if="scope.row.status==2">已完成</span>
-              <span class="red" v-else-if="scope.row.status==3">退回</span>
-              <span class="green" v-else-if="scope.row.status==4">已审批</span>
-              <span class="textBox" v-else>已撤回</span>
-            </template>
-          </el-table-column>
-
-          <el-table-column prop="base_point" label="操作" align="center" width='80px'>
-            <template slot-scope="scope">
-              <el-dropdown placement="bottom" :show-timeout="150" :hide-timeout="150" >
-              <span class="el-dropdown-links">···</span>
-              <el-dropdown-menu  slot="dropdown" >
-                <el-dropdown-item :disabled="false" v-if="scope.row.status==1"><el-button type="text" class="color-red" v-loading.fullscreen.lock="bodyLoad" @click.stop="issueAmend1(scope.row)">修改</el-button></el-dropdown-item>
-                <el-dropdown-item :disabled="false"><el-button type="text" class="color-red" v-loading.fullscreen.lock="bodyLoad" @click.stop="deletes(scope.row,0)">删除</el-button></el-dropdown-item>
-              </el-dropdown-menu>
-            </el-dropdown>
-            </template>
-          </el-table-column>
-
-          <template slot="empty">
+					<el-table-column label="状态" prop="owner_id" width="100px">
+						<template slot-scope="scope">
+							<span class="yellow" v-if="scope.row.status == 1">进行中</span>
+							<span class="green" v-else-if="scope.row.status == 2">已完成</span>
+							<span class="red" v-else-if="scope.row.status == 3">退回</span>
+							<span class="green" v-else-if="scope.row.status == 4">已审批</span>
+							<span class="textBox" v-else>已撤回</span>
+						</template>
+					</el-table-column>
+
+					<el-table-column  label="操作" align="center" width="80px">
+						<template slot-scope="scope">
+							<el-dropdown placement="bottom" :show-timeout="150" :hide-timeout="150">
+								<span class="el-dropdown-links">···</span>
+								<el-dropdown-menu slot="dropdown">
+									<el-dropdown-item :disabled="false" v-if="scope.row.status == 1">
+										<el-button type="text" class="color-red" v-loading.fullscreen.lock="bodyLoad" @click.stop="issueAmend1(scope.row)">修改</el-button>
+									</el-dropdown-item>
+									<el-dropdown-item :disabled="false">
+										<el-button type="text" class="color-red" v-loading.fullscreen.lock="bodyLoad" @click.stop="deletes(scope.row, 0)">删除</el-button>
+									</el-dropdown-item>
+								</el-dropdown-menu>
+							</el-dropdown>
+						</template>
+					</el-table-column>
+
+					<template slot="empty">
 						<noData></noData>
-          </template>
-        </el-table>
-      </div>
-
-      <div v-show="status == 'reward'">
-        <el-table :data="list" style="width: 100%" v-loading="loading" @row-click="rewardTasksClick">
-          <el-table-column label="发布人" prop="employee_id">
-            <template slot-scope="scope">
-              <div style="display:flex">
-                <userImage  width="50px" height="50px" :img_url="scope.row.owner_img_url" :user_name="scope.row.owner_name" ></userImage>
-                <span style="line-height: 50px; padding-left: 10px;">我发布的{{scope.row.pt_name}}任务</span>
-              </div>
-            </template>
-          </el-table-column>
-          <el-table-column label="任务内容" prop="task_name">
-            <template slot-scope="scope">
-			  <span class="font-flex-word" style="max-width: 200px;">{{scope.row.task_name}}</span>
-            </template>
-          </el-table-column>
-          <el-table-column label="积分" prop="base_point" width="100px">
-            <template slot-scope="scope">
-		          <span v-if="scope.row.base_point>0" class="red">+{{scope.row.base_point}} {{scope.row.pt_name}}</span>
-		          <span v-else class="color_green">{{scope.row.base_point}} {{scope.row.pt_name}}</span>
-            </template>
-          </el-table-column>
-          <el-table-column label="截止时间" prop="expire_time">
-            <template slot-scope="scope">
-              <span>{{scope.row.expire_time}}</span>
-            </template>
-          </el-table-column>
+					</template>
+				</el-table>
+			</div>
+
+			<div v-show="status == 'reward'">
+				<el-table :data="list" style="width: 100%" v-loading="loading" @row-click="rewardTasksClick">
+					<el-table-column label="发布人" prop="employee_id">
+						<template slot-scope="scope">
+							<div style="display:flex">
+								<userImage width="50px" height="50px" :img_url="scope.row.owner_img_url" :user_name="scope.row.owner_name"></userImage>
+								<span style="line-height: 50px; padding-left: 10px;">我发布的{{ scope.row.pt_name }}任务</span>
+							</div>
+						</template>
+					</el-table-column>
+					<el-table-column label="任务内容" prop="task_name">
+						<template slot-scope="scope">	
+					 <span class="font-flex-word" style="max-width: 200px;">{{ scope.row.task_name }}</span>
+						</template>
+					</el-table-column>
+					<el-table-column label="积分" prop="base_point" width="100px">
+						<template slot-scope="scope">
+							<span v-if="scope.row.base_point > 0" class="red">+{{ scope.row.base_point }} {{ scope.row.pt_name }}</span>
+							<span v-else class="color_green">{{ scope.row.base_point }} {{ scope.row.pt_name }}</span>
+						</template>
+					</el-table-column>
+					<el-table-column label="截止时间" prop="expire_time">
+						<template slot-scope="scope">
+							<span>{{ scope.row.expire_time }}</span>
+						</template>
+					</el-table-column>
 					<el-table-column label="审批人" width="100px" prop="reviewer_name">
-            <template slot-scope="scope">
-              <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">
-            <template slot-scope="scope">
-				<span class="yellow" v-if="scope.row.status==1">待领取</span>
-				<span class="yellow" v-else-if="scope.row.status==2">进行中</span>
-				<span class="green" v-else-if="scope.row.status==3">已完成</span>
-				<span class="fontColorZ" v-else-if="scope.row.status==4">已撤回</span>
-				<span class="red" v-else>已过期</span>
-            </template>
-          </el-table-column>
-
-          <el-table-column prop="base_point" label="操作" align="center" width='80px'>
-            <template slot-scope="scope">
-              <el-dropdown placement="bottom" :show-timeout="150" :hide-timeout="150" >
-              <span class="el-dropdown-links">···</span>
-              <el-dropdown-menu  slot="dropdown" >
-                <el-dropdown-item :disabled="false" v-if="scope.row.status==1"><el-button type="text" class="color-red" v-loading.fullscreen.lock="bodyLoad" @click.stop="offerARewardAmend2(scope.row)">修改</el-button></el-dropdown-item>
-                <el-dropdown-item :disabled="false"><el-button type="text" class="color-red" v-loading.fullscreen.lock="bodyLoad" @click.stop="deletes(scope.row,1)">删除</el-button></el-dropdown-item>
-              </el-dropdown-menu>
-            </el-dropdown>
-            </template>
-          </el-table-column>
-
-          <template slot="empty">
+						<template slot-scope="scope">
+							<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">
+						<template slot-scope="scope">	
+						<span class="yellow" v-if="scope.row.status == 1">待领取</span>			
+				<span class="yellow" v-else-if="scope.row.status == 2">进行中</span>			
+				<span class="green" v-else-if="scope.row.status == 3">已完成</span>			
+				<span class="fontColorZ" v-else-if="scope.row.status == 4">已撤回</span>	
+						<span class="red" v-else>已过期</span>
+						</template>
+					</el-table-column>
+
+					<el-table-column prop="base_point" label="操作" align="center" width="80px">
+						<template slot-scope="scope">
+							<el-dropdown placement="bottom" :show-timeout="150" :hide-timeout="150">
+								<span class="el-dropdown-links">···</span>
+								<el-dropdown-menu slot="dropdown">
+									<el-dropdown-item :disabled="false" v-if="scope.row.status == 1">
+										<el-button type="text" class="color-red" v-loading.fullscreen.lock="bodyLoad" @click.stop="offerARewardAmend2(scope.row)">修改</el-button>
+									</el-dropdown-item>
+									<el-dropdown-item :disabled="false">
+										<el-button type="text" class="color-red" v-loading.fullscreen.lock="bodyLoad" @click.stop="deletes(scope.row, 1)">删除</el-button>
+									</el-dropdown-item>
+								</el-dropdown-menu>
+							</el-dropdown>
+						</template>
+					</el-table-column>
+
+					<template slot="empty">		
 				<noData></noData>
-          </template>
-        </el-table>
-      </div>
-
-      <div v-if="status == 'repetitive'">
-        <el-table :data="list" style="width: 100%" v-loading="loading" @row-click="repetitiveTasksClick">
-          <el-table-column label="执行人" prop="target_info" width="120px">
-            <template slot-scope="scope">
-              <span v-for="(item,index) in scope.row.target_info" :key="index">
-                <span v-if="scope.row.target_info.length == 1 && index == 0">{{item.name}}</span>
-                <span v-if="scope.row.target_info.length > 1 && index == 0">{{item.name}}等{{scope.row.target_info.length}}人</span>
-              </span>
-            </template>
-          </el-table-column>
-          <el-table-column label="任务内容" prop="remark">
-            <template slot-scope="scope">
-				<span class="font-flex-word" style="max-width: 200px;">{{scope.row.name || scope.row.remark}}</span>
-            </template>
-          </el-table-column>
-          <el-table-column label="任务积分" prop="point_config.base_point" width="130px">
-            <template slot-scope="scope">
-				      <span v-if="scope.row.point_config.base_point > 0" class="red">+{{scope.row.point_config.base_point}} {{$getTypsName(scope.row.pt_id)}}</span>
-				      <span v-else class="color_green">{{scope.row.point_config.base_point}} {{$getTypsName(scope.row.pt_id)}}</span>
-            </template>
-          </el-table-column>
-          <el-table-column label="重复周期" prop="task_cycle" width="220px">
-            <template slot-scope="scope">
-              <span v-if="scope.row.task_cycle == '1'">每天0点自动发布,{{dayTime(scope.row.task_cycle_value)}}截止</span>
-              <span v-if="scope.row.task_cycle == '2'">
-                <span>每周一自动发布,周{{weekList[scope.row.task_cycle_value - 1]}}截止</span>
-              </span>
-              <span v-if="scope.row.task_cycle == '3'">每月1号自动发布,{{scope.row.task_cycle_value}}号截止</span>
-            </template>
-          </el-table-column>
-
-          <el-table-column label="可见范围" prop="department_info">
-            <template slot-scope="scope">
-              <span v-for="(item,index) in scope.row.department_info" :key="index">{{item.name}}<span v-if="(scope.row.department_info.length - 1) > index">,</span></span>
-            </template>
-          </el-table-column>
-          <el-table-column label="创建时间" prop="create_time" width="140px"></el-table-column>
-
-          <el-table-column prop="base_point" label="操作" align="center" width='80px'>
-            <template slot-scope="scope">
-              <el-dropdown placement="bottom" :show-timeout="150" :hide-timeout="150" >
-              <span class="el-dropdown-links">···</span>
-              <el-dropdown-menu  slot="dropdown" >
-                <el-dropdown-item :disabled="false"><el-button type="text" class="color-red" v-loading.fullscreen.lock="bodyLoad" @click.stop="deletes(scope.row,2)">删除</el-button></el-dropdown-item>
-              </el-dropdown-menu>
-            </el-dropdown>
-            </template>
-          </el-table-column>
-          <template slot="empty">
+					</template>
+				</el-table>
+			</div>
+
+			<div v-if="status == 'repetitive'">
+				<el-table :data="list" style="width: 100%" v-loading="loading" @row-click="repetitiveTasksClick">
+					<el-table-column label="执行人" prop="target_info" width="120px">
+						<template slot-scope="scope">
+							<span v-for="(item, index) in scope.row.target_info" :key="index">
+								<span v-if="scope.row.target_info.length == 1 && index == 0">{{ item.name }}</span>
+								<span v-if="scope.row.target_info.length > 1 && index == 0">{{ item.name }}等{{ scope.row.target_info.length }}人</span>
+							</span>
+						</template>
+					</el-table-column>
+					<el-table-column label="任务内容" prop="remark">
+						<template slot-scope="scope">		
+					<span class="font-flex-word" style="max-width: 200px;">{{ scope.row.name || scope.row.remark }}</span>
+						</template>
+					</el-table-column>
+					<el-table-column label="任务积分" prop="point_config.base_point" width="130px">
+						<template slot-scope="scope">
+							<span v-if="scope.row.point_config.base_point > 0" class="red">+{{ scope.row.point_config.base_point }} {{ $getTypsName(scope.row.pt_id) }}</span>
+							<span v-else class="color_green">{{ scope.row.point_config.base_point }} {{ $getTypsName(scope.row.pt_id) }}</span>
+						</template>
+					</el-table-column>
+					<el-table-column label="重复周期" prop="task_cycle" width="220px">
+						<template slot-scope="scope">
+							<span v-if="scope.row.task_cycle == '1'">每天0点自动发布,{{ dayTime(scope.row.task_cycle_value) }}截止</span>
+							<span v-if="scope.row.task_cycle == '2'">
+								<span>每周一自动发布,周{{ weekList[scope.row.task_cycle_value - 1] }}截止</span>
+							</span>
+							<span v-if="scope.row.task_cycle == '3'">每月1号自动发布,{{ scope.row.task_cycle_value }}号截止</span>
+						</template>
+					</el-table-column>
+
+					<el-table-column label="可见范围" prop="department_info">
+						<template slot-scope="scope">
+							<span v-for="(item, index) in scope.row.department_info" :key="index">
+								{{ item.name }}
+								<span v-if="scope.row.department_info.length - 1 > index">,</span>
+							</span>
+						</template>
+					</el-table-column>
+					<el-table-column label="创建时间" prop="create_time" width="140px"></el-table-column>
+
+					<el-table-column prop="base_point" label="操作" align="center" width="80px">
+						<template slot-scope="scope">
+							<el-dropdown placement="bottom" :show-timeout="150" :hide-timeout="150">
+								<span class="el-dropdown-links">···</span>
+								<el-dropdown-menu slot="dropdown">
+									<el-dropdown-item :disabled="false">
+										<el-button type="text" class="color-red" v-loading.fullscreen.lock="bodyLoad" @click.stop="deletes(scope.row, 2)">删除</el-button>
+									</el-dropdown-item>
+								</el-dropdown-menu>
+							</el-dropdown>
+						</template>
+					</el-table-column>
+					<template slot="empty">		
 				<noData></noData>
-          </template>
-        </el-table>
-      </div>
-      
-      <center style="padding: 20px 0;">
-        <el-pagination
-          background
-          @size-change="handleSizeChange"
-          @current-change="handleCurrentChange"
-		  :page-sizes="[10, 20, 50, 100]"
-          layout="total, sizes, prev, pager, next"
-          :page-size="formData.page_size"
-          :current-page="formData.page"
-          :total="total">
-        </el-pagination>
-      </center>
-
-    </div>
-    <!-- 临时任务 -->
-    <temporaryTask :dialogVisible.sync="dialogVisible" :trees_ab="trees_v2_ab_module" :showTitle="'临时任务'"></temporaryTask>
-    <!-- 临时任务-修改 -->
-    <temporaryTaskAmend :dialogVisible.sync="dialogVisibleAmend" :trees_ab="trees_v2_ab_module" :showTitle="'任务编辑'" :modifyData="modifyData"></temporaryTaskAmend>
-    <!-- 悬赏任务 -->
-    <rewardTask :dialogVisible.sync="rewardTaskShow" :trees_ab="trees_v2_ab_module" :showTitle="'悬赏任务'"></rewardTask>
-    <!-- 悬赏任务-修改 -->
-    <rewardTaskAmend :dialogVisible.sync="rewardTaskAmendShow" :trees_ab="trees_v2_ab_module" ref="rewardTasks" :showTitle="'任务编辑'" :rewardTaskAmendData="rewardTaskAmendData"></rewardTaskAmend>
-
-    <!-- 详情弹窗 -->
-    <taskDetailsPopup :visible.sync="showDetailPopup"  v-if="showDetailPopup" :id="detailId" :title="'任务详情'"></taskDetailsPopup>
-
-    <!-- 重复任务详情弹窗 -->
-    <repeatTaskDetailsPopup :visible.sync="showRepetitiveTasksPopup" v-if="showRepetitiveTasksPopup" :id="detailId" :title="'重复任务详情'"></repeatTaskDetailsPopup>
-    
-    <!-- 悬赏任务详情弹窗 -->
-    <rewardTaskDetailsPopup :visible.sync="showRewardTaskDetailsPopup" v-if="showRewardTaskDetailsPopup" :id="detailId" :title="'工作详情'"></rewardTaskDetailsPopup>
-  </div>
+					</template>
+				</el-table>
+			</div>
+
+			<center style="padding: 20px 0;">
+				<el-pagination
+					background
+					@size-change="handleSizeChange"
+					@current-change="handleCurrentChange"
+					:page-sizes="[10, 20, 50, 100]"
+					layout="total, sizes, prev, pager, next"
+					:page-size="formData.page_size"
+					:current-page="formData.page"
+					:total="total"
+				></el-pagination>
+			</center>
+		</div>
+		<!-- 临时任务 -->
+		<temporaryTask :dialogVisible.sync="dialogVisible" :trees_ab="trees_v2_ab_module" :showTitle="'临时任务'"></temporaryTask>
+		<!-- 临时任务-修改 -->
+		<temporaryTaskAmend :dialogVisible.sync="dialogVisibleAmend" :trees_ab="trees_v2_ab_module" :showTitle="'任务编辑'" :modifyData="modifyData"></temporaryTaskAmend>
+		<!-- 悬赏任务 -->
+		<rewardTask :dialogVisible.sync="rewardTaskShow" :trees_ab="trees_v2_ab_module" :showTitle="'悬赏任务'"></rewardTask>
+		<!-- 悬赏任务-修改 -->
+		<rewardTaskAmend
+			:dialogVisible.sync="rewardTaskAmendShow"
+			:trees_ab="trees_v2_ab_module"
+			ref="rewardTasks"
+			:showTitle="'任务编辑'"
+			:rewardTaskAmendData="rewardTaskAmendData"
+		></rewardTaskAmend>
+
+		<!-- 详情弹窗 -->
+		<taskDetailsPopup :visible.sync="showDetailPopup" v-if="showDetailPopup" :id="detailId" :title="'任务详情'"></taskDetailsPopup>
+
+		<!-- 重复任务详情弹窗 -->
+		<repeatTaskDetailsPopup :visible.sync="showRepetitiveTasksPopup" v-if="showRepetitiveTasksPopup" :id="detailId" :title="'重复任务详情'"></repeatTaskDetailsPopup>
+
+		<!-- 悬赏任务详情弹窗 -->
+		<rewardTaskDetailsPopup :visible.sync="showRewardTaskDetailsPopup" v-if="showRewardTaskDetailsPopup" :id="detailId" :title="'工作详情'"></rewardTaskDetailsPopup>
+	</div>
 </template>
 
 <script>
-  import noData from '@/components/noData';
-  import temporaryTask from '@/views/common/temporaryTask'
-  import temporaryTaskAmend from '@/views/common/temporaryTaskAmend'
-  import rewardTask from '@/views/common/rewardTask'
-  import rewardTaskAmend from '@/views/common/rewardTaskAmend'
-  import taskDetailsPopup from '@/views/common/taskDetailsPopup'
-  import repeatTaskDetailsPopup from '@/views/common/repeatTaskDetailsPopup'
-  import rewardTaskDetailsPopup from '@/views/common/rewardTaskDetailsPopup'
-  
-  export default {
-    name: 'my_issue',
-    data() {
-      return {
-        weekList: ['一', '二', '三', '四', '五', '六', '日'],
-        rewardTaskAmendData:{},//悬赏修改
-        modifyData:{},//任务修改
-
-        operation_if:false,//操作列显示隐藏
-        bodyLoad: false,
-
-        status:'assign',
-        formData:{
-          status: "all",
-          sort: "publish",
-          order_by: "create_time",
-          pt_id: 0,
-          page_size: 10,
-          page: 1,
-          source_type: '1',
-
-          executor_id: '',//执行人
-          reviewer_id: '',//审批人
-          content: '',//内容
-        },
-        total: null,
-        list: [],
-        loading: false,
-        point_types: null,
-        task_status: [
-          {id: 1, name: '全部', code: 'all'},
-          {id: 2, name: '进行中', code: 'running'},
-          {id: 3, name: '已完成', code: 'complete'},
-          {id: 4, name: '已审批', code: 'reviewed'},
-          // {id: 5, name: '已撤销', code: 'revocation'},
-          {id: 6, name: '已退回', code: 'refuse'},
-        ],
-        sort: [{id:2,name:'按发布时间',code:'publish'},{id:1,name:'按截止时间',code:'expire'}],
-        order_by: [{id:2,name:'按发布时间',code:'create_time'},{id:1,name:'按截止时间',code:'expire_time'}],
-        tabsOption: [
-          { label: '我指派的', name: 'assign' },
-          { label: '我悬赏的', name: 'reward' },
-          { label: '重复任务', name: 'repetitive' },
-        ],
-        
-        dialogVisible: false,
-        dialogVisibleAmend: false,
-        rewardTaskShow: false,
-        rewardTaskAmendShow: false,
-        showDetailPopup: false,
-        showRepetitiveTasksPopup: false,
-        showRewardTaskDetailsPopup: false,
-        detailId: 0,
-        trees_v2_ab_module: {
-          A: [],
-          B: [],
-          rule_tree: [],
-        },
-        employee_map: [],//人员列表
-      }
-    },
-    components: {noData,temporaryTask,rewardTask,rewardTaskAmend ,temporaryTaskAmend,taskDetailsPopup,repeatTaskDetailsPopup, rewardTaskDetailsPopup},
-    watch:{
-      status(val){
-        this.formData.executor_id = ''
-        this.formData.reviewer_id = ''
-        this.formData.content = ''
-        this.formData.page = 1
-        this.formData.status = "all"
-        this.formData.sort = "publish"
-        this.formData.order_by = "create_time"
-        this.formData.pt_id = 0
-        this.list = []
-        this.get_list()
-      },
-      'formData.status'(){
-        // debugger
-        this.formData.page = 1
-        this.list = []
-        this.get_list()
-      },
-      'formData.sort'(){
-        this.formData.page = 1
-        this.list = []
-        this.get_list()
-      },
-      'formData.order_by'(){
-        this.formData.page = 1
-        this.list = []
-        this.get_list()
-      },
-      'formData.pt_id'(){
-        this.formData.page = 1
-        this.list = []
-        this.get_list()
-      },
-      'formData.executor_id' (){
-        this.formData.page = 1
-        this.list = []
-        this.get_list()
-      },
-      'formData.reviewer_id' (){
-        this.formData.page = 1
-        this.list = []
-        this.get_list()
-      },
-    },
-    created() {
-      this.getRuleItemData()//获取AB分细则
-    },
-    mounted() {
-      this.getUserDetail()
-      if(this.$route.query.type == 1){
-        this.dialogVisible = true
-      }else if(this.$route.query.type == 2){
-        this.rewardTaskShow = true
-      }
-      this.get_list()
-      this.point_types = this.getPointTypes()
-		  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'
-      },
-      getContent(){
-        this.formData.page = 1
-        this.list = []
-        this.get_list()
-      },
-
-      //获取员工列表
-      getEmployee() {
-        this.$axios('get', '/api/employee/index', { dept_id: 0, keywords: '', page: 1, page_size: 3000,is_official:1 })
-          .then(res => {
-            let list = res.data.data.list;
-            this.employee_map = list;
-          })
-      },
-
-      getUserDetail(){
-        this.$axios('get', '/api/employee/detail').then(res => {
-          this.$setUserData(res.data.data.user);
-        });
-      },
-      //悬赏修改
-      offerARewardAmend2(item){
-        this.rewardTaskAmendShow = true
-        this.$refs.rewardTasks.forTheTaskLoading = true
-        let params = {
-          task_id:item.id
-        }
-        this.$axios('get','/api/integral/task',params).then(res => {
-            if (res.data.code == 1) {
-              this.rewardTaskAmendData = res.data.data
-            } else {
-              self.$message.error(res.data.msg);
-            }
-          }).finally(() => {
-            this.$refs.rewardTasks.forTheTaskLoading = false
-          })
-      },
-      //任务修改
-      issueAmend1(item){
-        this.modifyData = item
-        this.dialogVisibleAmend = true
-      },
-       //删除---我指派的、我悬赏的、重复任务    (重复任务需等后端接口)
-      deletes(item,s){
-        let self = this
-        this.$message.closeAll()
-        self.$confirm('删除此任务将会删除其相关记录和积分数据,确认删除吗?', '删除任务', {
-          confirmButtonText: '确定',
-          cancelButtonText: '取消',
-          type: 'warning'
-        }).then(() => {
-          self.$axios(s==0?'get':s==1?'get':'get',s==0?'/api/integral/work/delete':s==1?'/api/integral/task/delete':'/api/integral/schedule/delete',s==0?{work_id: item.id}:s==1?{task_id: item.id}:{schedule_id: item.id}
-            ).then(res => {
-            if (res.data.code == 1) {
-              if(this.formData.page>1){
-                if(self.list.length == 1){
-                  this.formData.page = this.formData.page -1
-                }
-              }
-              this.get_list()
-              self.$message.success(res.data.msg);
-            } else {
-              self.$message.error(res.data.msg);
-            }
-          })
-        })
-      },
-
-      // 点击详情
-      rowClick(row) {
-        this.showDetailPopup = true
-        this.detailId = parseInt(row.id)
-      },
-      // 重复任务详情
-      repetitiveTasksClick(row) {
-        this.showRepetitiveTasksPopup = true
-        this.detailId = parseInt(row.id)
-      },
-      // 悬赏任务详情
-      rewardTasksClick(row){
-        this.showRewardTaskDetailsPopup = true
-        this.detailId = parseInt(row.id)
-      },
-      // 发布临时任务 和 悬赏任务
-      downClick(val){
-        if(val == 1){
-          this.dialogVisible = true
-        }else{
-          this.rewardTaskShow = true
-        }
-      },
-      // 获取积分类型
-      getPointTypes(){
-        let point = window.plus?JSON.parse(plus.storage('types')):JSON.parse(localStorage.getItem('types'))
-        point.unshift({code: "all",id: 0,name: "全部"})
-        return point
-      },
-	 // 页码变更
-      handleCurrentChange(val) {
-		this.formData.page = val
-		this.get_list()
-	  },
-      handleSizeChange(val){
-        this.formData.page_size = val
-        this.get_list()
-      },
-      get_list(){
-        let self = this
-        self.loading = true
-        let params = JSON.parse(JSON.stringify(this.formData))
-        params.pt_id == 0?delete params.pt_id:'';
-        params.executor_id == ''?delete params.executor_id:'';
-        params.reviewer_id == ''?delete params.reviewer_id:'';
-        if(self.status == 'assign'){
-          delete params.order_by
-        }else if(self.status == 'reward'){
-          delete params.executor_id
-          delete params.status
-          delete params.sort
-        }else{
-          delete params.status
-          delete params.sort
-          delete params.order_by
-          delete params.pt_id
-        }
-        self.$axios('get',self.status=='assign'?'/api/integral/work/list/publisher':self.status=='reward'?'/api/integral/task/publish/list':'/api/integral/schedule/list',params).then((res) => {
-           //数据过多的情况延迟较大
-          if (res.data.code == 1) {
-            //传入发布者ID进行判断
-			self.list = res.data.data.list
-            self.total = res.data.data.total
-          }else{
-            self.$message.error(res.data.data.msg)
-            this.get_list()
-          }
-        }).finally(()=>{
-          self.loading = false
-        })
-      },
-      
-      // 获取ab规则细则
-      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');
-        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) : []));
-        }, []);
-      },
-    }
-  }
+import noData from '@/components/noData';
+import temporaryTask from '@/views/common/temporaryTask';
+import temporaryTaskAmend from '@/views/common/temporaryTaskAmend';
+import rewardTask from '@/views/common/rewardTask';
+import rewardTaskAmend from '@/views/common/rewardTaskAmend';
+import taskDetailsPopup from '@/views/common/taskDetailsPopup';
+import repeatTaskDetailsPopup from '@/views/common/repeatTaskDetailsPopup';
+import rewardTaskDetailsPopup from '@/views/common/rewardTaskDetailsPopup';
+
+export default {
+	name: 'my_issue',
+	data() {
+		return {
+			weekList: ['一', '二', '三', '四', '五', '六', '日'],
+			rewardTaskAmendData: {}, //悬赏修改
+			modifyData: {}, //任务修改
+
+			operation_if: false, //操作列显示隐藏
+			bodyLoad: false,
+
+			status: 'assign',
+			formData: {
+				status: 'all',
+				sort: 'publish',
+				order_by: 'create_time',
+				pt_id: 0,
+				page_size: 10,
+				page: 1,
+				source_type: '1',
+
+				executor_id: '', //执行人
+				reviewer_id: '', //审批人
+				content: '' //内容
+			},
+			total: null,
+			list: [],
+			loading: false,
+			point_types: null,
+			task_status: [
+				{ id: 1, name: '全部', code: 'all' },
+				{ id: 2, name: '进行中', code: 'running' },
+				{ id: 3, name: '已完成', code: 'complete' },
+				{ id: 4, name: '已审批', code: 'reviewed' },
+				// {id: 5, name: '已撤销', code: 'revocation'},
+				{ id: 6, name: '已退回', code: 'refuse' }
+			],
+			sort: [{ id: 2, name: '按发布时间', code: 'publish' }, { id: 1, name: '按截止时间', code: 'expire' }],
+			order_by: [{ id: 2, name: '按发布时间', code: 'create_time' }, { id: 1, name: '按截止时间', code: 'expire_time' }],
+			tabsOption: [{ label: '我指派的', name: 'assign' }, { label: '我悬赏的', name: 'reward' }, { label: '重复任务', name: 'repetitive' }],
+
+			dialogVisible: false,
+			dialogVisibleAmend: false,
+			rewardTaskShow: false,
+			rewardTaskAmendShow: false,
+			showDetailPopup: false,
+			showRepetitiveTasksPopup: false,
+			showRewardTaskDetailsPopup: false,
+			detailId: 0,
+			trees_v2_ab_module: {
+				A: [],
+				B: [],
+				rule_tree: []
+			},
+			employee_map: [] //人员列表
+		};
+	},
+	components: { noData, temporaryTask, rewardTask, rewardTaskAmend, temporaryTaskAmend, taskDetailsPopup, repeatTaskDetailsPopup, rewardTaskDetailsPopup },
+	watch: {
+		status(val) {
+			this.formData.executor_id = '';
+			this.formData.reviewer_id = '';
+			this.formData.content = '';
+			this.formData.page = 1;
+			this.formData.status = 'all';
+			this.formData.sort = 'publish';
+			this.formData.order_by = 'create_time';
+			this.formData.pt_id = 0;
+			this.list = [];
+			this.get_list();
+		},
+		'formData.status'() {
+			// debugger
+			this.formData.page = 1;
+			this.list = [];
+			this.get_list();
+		},
+		'formData.sort'() {
+			this.formData.page = 1;
+			this.list = [];
+			this.get_list();
+		},
+		'formData.order_by'() {
+			this.formData.page = 1;
+			this.list = [];
+			this.get_list();
+		},
+		'formData.pt_id'() {
+			this.formData.page = 1;
+			this.list = [];
+			this.get_list();
+		},
+		'formData.executor_id'() {
+			this.formData.page = 1;
+			this.list = [];
+			this.get_list();
+		},
+		'formData.reviewer_id'() {
+			this.formData.page = 1;
+			this.list = [];
+			this.get_list();
+		}
+	},
+	created() {
+		this.getRuleItemData(); //获取AB分细则
+	},
+	mounted() {
+		this.getUserDetail();
+		if (this.$route.query.type == 1) {
+			this.dialogVisible = true;
+		} else if (this.$route.query.type == 2) {
+			this.rewardTaskShow = true;
+		}
+		this.get_list();
+		this.point_types = this.getPointTypes();
+		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';
+		},
+		getContent() {
+			this.formData.page = 1;
+			this.list = [];
+			this.get_list();
+		},
+
+		//获取员工列表
+		getEmployee() {
+			this.$axios('get', '/api/employee/index', { dept_id: 0, keywords: '', page: 1, page_size: 3000, is_official: 1 }).then(res => {
+				let list = res.data.data.list;
+				this.employee_map = list;
+			});
+		},
+
+		getUserDetail() {
+			this.$axios('get', '/api/employee/detail').then(res => {
+				this.$setUserData(res.data.data.user);
+			});
+		},
+		//悬赏修改
+		offerARewardAmend2(item) {
+			this.rewardTaskAmendShow = true;
+			this.$refs.rewardTasks.forTheTaskLoading = true;
+			let params = {
+				task_id: item.id
+			};
+			this.$axios('get', '/api/integral/task', params)
+				.then(res => {
+					if (res.data.code == 1) {
+						this.rewardTaskAmendData = res.data.data;
+					} else {
+						self.$message.error(res.data.msg);
+					}
+				})
+				.finally(() => {
+					this.$refs.rewardTasks.forTheTaskLoading = false;
+				});
+		},
+		//任务修改
+		issueAmend1(item) {
+			this.modifyData = item;
+			this.dialogVisibleAmend = true;
+		},
+		//删除---我指派的、我悬赏的、重复任务    (重复任务需等后端接口)
+		deletes(item, s) {
+			let self = this;
+			this.$message.closeAll();
+			self.$confirm('删除此任务将会删除其相关记录和积分数据,确认删除吗?', '删除任务', {
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				type: 'warning'
+			}).then(() => {
+				self.$axios(
+					s == 0 ? 'get' : s == 1 ? 'get' : 'get',
+					s == 0 ? '/api/integral/work/delete' : s == 1 ? '/api/integral/task/delete' : '/api/integral/schedule/delete',
+					s == 0 ? { work_id: item.id } : s == 1 ? { task_id: item.id } : { schedule_id: item.id }
+				).then(res => {
+					if (res.data.code == 1) {
+						if (this.formData.page > 1) {
+							if (self.list.length == 1) {
+								this.formData.page = this.formData.page - 1;
+							}
+						}
+						this.get_list();
+						self.$message.success(res.data.msg);
+					} else {
+						self.$message.error(res.data.msg);
+					}
+				});
+			});
+		},
+
+		// 点击详情
+		rowClick(row) {
+			this.showDetailPopup = true;
+			this.detailId = parseInt(row.id);
+		},
+		// 重复任务详情
+		repetitiveTasksClick(row) {
+			this.showRepetitiveTasksPopup = true;
+			this.detailId = parseInt(row.id);
+		},
+		// 悬赏任务详情
+		rewardTasksClick(row) {
+			this.showRewardTaskDetailsPopup = true;
+			this.detailId = parseInt(row.id);
+		},
+		// 发布临时任务 和 悬赏任务
+		downClick(val) {
+			if (val == 1) {
+				this.dialogVisible = true;
+			} else {
+				this.rewardTaskShow = true;
+			}
+		},
+		// 获取积分类型
+		getPointTypes() {
+			let point = window.plus ? JSON.parse(plus.storage('types')) : JSON.parse(localStorage.getItem('types'));
+			point.unshift({ code: 'all', id: 0, name: '全部' });
+			return point;
+		},
+		// 页码变更
+		handleCurrentChange(val) {
+			this.formData.page = val;
+			this.get_list();
+		},
+		handleSizeChange(val) {
+			this.formData.page_size = val;
+			this.get_list();
+		},
+		get_list() {
+			let self = this;
+			self.loading = true;
+			let params = JSON.parse(JSON.stringify(this.formData));
+			params.pt_id == 0 ? delete params.pt_id : '';
+			params.executor_id == '' ? delete params.executor_id : '';
+			params.reviewer_id == '' ? delete params.reviewer_id : '';
+			if (self.status == 'assign') {
+				delete params.order_by;
+			} else if (self.status == 'reward') {
+				delete params.executor_id;
+				delete params.status;
+				delete params.sort;
+			} else {
+				delete params.status;
+				delete params.sort;
+				delete params.order_by;
+				delete params.pt_id;
+			}
+			self.$axios(
+				'get',
+				self.status == 'assign' ? '/api/integral/work/list/publisher' : self.status == 'reward' ? '/api/integral/task/publish/list' : '/api/integral/schedule/list',
+				params
+			)
+				.then(res => {
+					//数据过多的情况延迟较大
+					if (res.data.code == 1) {
+						//传入发布者ID进行判断			
+			self.list = res.data.data.list;
+						self.total = res.data.data.total;
+					} else {
+						self.$message.error(res.data.data.msg);
+						this.get_list();
+					}
+				})
+				.finally(() => {
+					self.loading = false;
+				});
+		},
+
+		// 获取ab规则细则
+		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');
+			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);
+				this.trees_v2_ab_module.rule_tree_all = this.getTreeData(res[2].data.data.rule_tree);
+			});
+		},
+		getTreeData(data) {
+			for (var i = 0; i < data.length; i++) {
+				if (data[i].child.length < 1) {
+					// child若为空数组,则将child设为undefined
+					data[i].child = undefined;
+				} else {
+					// child若不为空数组,则继续 递归调用 本方法
+					this.getTreeData(data[i].child);
+				}
+			}
+			return data;
+		},
+		flatten(arr) {
+			return arr.reduce((result, item) => {
+				return result.concat(item, Array.isArray(item.child) ? this.flatten(item.child) : []);
+			}, []);
+		}
+	}
+};
 </script>
 
 <style scoped lang="scss">
-  .box{
-    min-height: calc(100vh - 184px);
-    min-width: 800px;
-    background-color: #fff;
-    padding: 20px;
-    & .color_yelllo{
-      color: #E6A23C;
-    }
-    & .color_green{
-      color: #67C23A;
-    }
-    & .color_3{
-      color: #F56C6C;
-    }
-    & .color_4{
-      color: #67C23A;
-    }
-    & .color_5{
-      color: #F56C6C;
-    }
-    & .color_yelllo2{
-      color: #ffa939;
-    }
-  }
-
-
-$red: #F56C6C;
-.color-red{
-  color: $red;
-  &:hover{
-    color: #f14141;
-  }
+.box {
+	min-height: calc(100vh - 184px);
+	min-width: 800px;
+	background-color: #fff;
+	padding: 20px;
+	& .color_yelllo {
+		color: #e6a23c;
+	}
+	& .color_green {
+		color: #67c23a;
+	}
+	& .color_3 {
+		color: #f56c6c;
+	}
+	& .color_4 {
+		color: #67c23a;
+	}
+	& .color_5 {
+		color: #f56c6c;
+	}
+	& .color_yelllo2 {
+		color: #ffa939;
+	}
+}
+
+$red: #f56c6c;
+.color-red {
+	color: $red;
+	&:hover {
+		color: #f14141;
+	}
 }
-  .delicon{
-  font-size: 20px;
-  float: right;
+.delicon {
+	font-size: 20px;
+	float: right;
 }
 
 .el-dropdown-links {
-    font-size: 20px;
-    cursor: pointer;
-    color: #606266;
-  }
+	font-size: 20px;
+	cursor: pointer;
+	color: #606266;
+}
 
- ::v-deep .el-table tr:hover{
-  cursor:pointer
+::v-deep .el-table tr:hover {
+	cursor: pointer;
 }
 </style>

+ 1 - 1
src/views/task/my_task.vue

@@ -1,7 +1,7 @@
 <template>
 	<div>
 		<div class="box">
-			<el-tabs v-model="formData.status" type="card">
+			<el-tabs v-model="formData.status">
 				<el-tab-pane v-for="(item, index) in tabsOption" :key="index" :label="item.label" :name="item.name"></el-tab-pane>
 			</el-tabs>
 

+ 8 - 0
src/views/welfare/conversion.vue

@@ -0,0 +1,8 @@
+<template>
+</template>
+
+<script>
+</script>
+
+<style>
+</style>

+ 8 - 0
src/views/welfare/flManagement.vue

@@ -0,0 +1,8 @@
+<template>
+</template>
+
+<script>
+</script>
+
+<style>
+</style>

+ 367 - 0
src/views/welfare/flStatistics.vue

@@ -0,0 +1,367 @@
+<template>
+	<div>
+		<div class="diy_tip_bg" v-show="tips_show">
+			<el-alert class="diy-tip" @close="tips_close" type="success" description><p>排名包含初始分和工龄分</p></el-alert>
+		</div>
+		<div class="all padding-20">
+			<el-form :inline="true">
+				<el-form-item label="部门">
+					<el-cascader
+						size="medium"
+						class="date-picker-width"
+						v-model="dept_name"
+						:options="dept_tree"
+						:props="{ checkStrictly: true, value: 'id', label: 'name', children: '_child' }"
+						ref="dept"
+						clearable
+						filterable
+						placeholder="全公司"
+					></el-cascader>
+				</el-form-item>
+				<el-form-item label="人员">
+					<el-select v-model="select_employee_id" filterable placeholder="请输入或选择人员" clearable>
+						<el-option v-for="item in employee_map" :key="item.id" :label="item.name" :value="item.id"></el-option>
+					</el-select>
+				</el-form-item>
+				<el-form-item>
+					<el-button type="primary" size="medium" @click="dialogVisible = true" style="margin-left: 10px;" plain>导出排名</el-button>
+				</el-form-item>
+			</el-form>
+
+			<el-table :data="list" style="width: 100%" v-loading="loading" @selection-change="deleteEvents">
+				<el-table-column type="selection" width="55"></el-table-column>
+				<el-table-column label="姓名" align="left">
+					<template slot-scope="scope">
+						<div class="flex-box">
+							<userImage :user_name="scope.row.employee_name" :img_url="scope.row.employee_img_url" width="50px" height="50px"></userImage>
+							<span style="line-height: 50px; padding-left: 10px;">{{ scope.row.employee_name }}</span>
+						</div>
+					</template>
+				</el-table-column>
+				<el-table-column label="部门" width="80" align="center"></el-table-column>
+				<el-table-column label="累计B分" align="left" prop="point"></el-table-column>
+				<template slot="empty">
+					<div class="nopoint_box">
+						<div class="noimg noperson"></div>
+						<span class="title">没有对应的数据</span>
+					</div>
+				</template>
+			</el-table>
+
+			<center style="padding: 20px 0;">
+				<el-pagination
+					background
+					@size-change="handleSizeChange"
+					@current-change="handleCurrentChange"
+					:current-page="formData.page"
+					:page-sizes="[10, 20, 50, 100]"
+					layout="total, sizes, prev, pager, next"
+					:page-size="pageLimit"
+					:total="total"
+				></el-pagination>
+			</center>
+		</div>
+
+		<!-- 导出弹窗 -->
+		<el-dialog title="导出排名" :visible.sync="dialogVisible" width="730px" top="10%">
+			<span style="font-size:15px">系统将按以下已选条件导出对应的排名报表</span>
+			<el-form :inline="true">
+				<div class="picker_er">
+					<el-form-item label="时间">
+						<el-date-picker
+							v-model="Dc_Data.value1"
+							type="daterange"
+							size="medium"
+							value-format="yyyy-MM-dd"
+							format="yyyy-MM-dd"
+							range-separator="至"
+							start-placeholder="开始日期"
+							end-placeholder="结束日期"
+						></el-date-picker>
+					</el-form-item>
+
+					<el-form-item label="人员" style="margin-left:30px">
+						<el-select size="medium" v-model="Dc_Data.DC_position" style="width:150px" placeholder="请选择">
+							<el-option v-for="item in positions" :key="item.id" :label="item.name" :value="item.age"></el-option>
+						</el-select>
+					</el-form-item>
+				</div>
+				<el-form-item label="部门">
+					<el-cascader
+						class="date-picker-width cascader_bm"
+						v-model="Dc_Data.dept_name"
+						:options="dept_tree"
+						:props="{ checkStrictly: true, value: 'id', label: 'name', children: '_child' }"
+						ref="dept2"
+						size="medium"
+						clearable
+						filterable
+						placeholder="全公司"
+					></el-cascader>
+				</el-form-item>
+			</el-form>
+			<span slot="footer" class="dialog-footer">
+				<el-button @click="dialogVisible = false" size="medium">取 消</el-button>
+				<el-button type="primary" @click="exportExcel" size="medium">导 出</el-button>
+			</span>
+		</el-dialog>
+	</div>
+</template>
+<script>
+export default {
+	name:'flStatistics',
+	data() {
+		return {
+			select_employee_id:'',
+			employee_map:[],
+			dept_name: [],
+			dept_tree: [],
+			loading: false,
+			formData: {
+				dept_id: '0',
+				sort: 'DESC',
+				page: 1,
+				page_size: 10,
+				pt_id: 3,
+				type: 'all'
+			},
+			list: null,
+			pageLimit: 10,
+			total: null,
+			tips_show: false,
+			dialogVisible: false,
+			positions: [{ id: 0, age: 'all', name: '全部' }, { id: 1, age: 'manager', name: '管理者' }, { id: 2, age: 'employee', name: '员工' }],
+			Dc_Data: {
+				//导出数据
+				value1: '', //时间
+				DC_position: '全部', //人员
+				dept_name: [] //部门
+			}
+		};
+	},
+	watch: {
+		dept_name(val) {
+			if (val.length !== 0) {
+				this.formData.dept_id = val[val.length - 1];
+			} else {
+				this.formData.dept_id = '0';
+			}
+			this.formData.page = 1;
+			this.$nextTick(() => {
+				this.$refs.dept.dropDownVisible = false;
+				this.get_list();
+			});
+		}
+	},
+	methods: {
+		deleteEvents(selection) {
+			let listId = [];
+			selection.forEach(item => {
+				listId.push(item.id);
+			});
+			this.selectionID = listId;
+		},
+		exportExcel() {
+			//人员
+			this.Dc_Data.DC_position =
+				this.Dc_Data.DC_position == 'manager' ? 'manager' : this.Dc_Data.DC_position == 'employee' ? 'employee' : this.Dc_Data.DC_position == '全部' ? 'all' : 'all';
+			//部门
+			let dept_name;
+			for (let i in this.Dc_Data.dept_name) {
+				dept_name = this.Dc_Data.dept_name[i];
+			}
+			this.Dc_Data.dept_name = dept_name;
+			//规则
+			let rule_id = [];
+			for (let i in this.Dc_Data.rule_id) {
+				for (let a in this.Dc_Data.rule_id[i]) {
+					rule_id.push(this.Dc_Data.rule_id[i][a]);
+				}
+			}
+			this.Dc_Data.rule_id = rule_id;
+			let data = '';
+			if (this.Dc_Data.value1) {
+				data += '&start_date=' + this.Dc_Data.value1[0];
+				data += '&end_date=' + this.Dc_Data.value1[1];
+			}
+			data += '&position=' + this.Dc_Data.DC_position;
+			this.Dc_Data.dept_name > 0 ? (data += '&dept_id=' + this.Dc_Data.dept_name) : (data += '&dept_id=0');
+			if (this.Dc_Data.rule_id.length > 0) {
+				data += '&rule_id=' + this.Dc_Data.rule_id;
+			}
+
+			window.open(process.env.VUE_APP_BASE_API + 'api/download/ranking/v2?pt_id=3&type=all&employee_id=' + this.$getUserData().id + data, '_blank');
+			this.dialogVisible = false;
+		},
+		// 提示信息
+		tips_close() {
+			localStorage.setItem('total_rank_tips', 'true');
+			this.tips_show = false;
+		},
+		// 页面变更
+		handleCurrentChange(val) {
+			this.formData.page = val;
+			this.get_list();
+		},
+		handleSizeChange(val) {
+			this.pageLimit = val;
+			this.formData.page_size = this.pageLimit;
+			this.get_list();
+		},
+		//获取部门
+		getDepartment() {
+			this.$axios('get', '/api/department/tree').then(res => {
+				this.dept_tree = this.getTreeData(res.data.data.list);
+			});
+		},
+		get_list() {
+			this.loading = true;
+			this.$axios('get', '/api/integral/statistics/ranking', this.formData, 'v2')
+				.then(res => {
+					if (res.data.code == 1) {
+						this.list = res.data.data.list;
+						this.total = res.data.data.total;
+					} else {
+						this.$message.error(res.data.data.msg);
+					}
+				})
+				.finally(() => {
+					this.loading = false;
+				});
+		},
+		// 递归判断列表,把最后的children设为undefined
+		getTreeData(data) {
+			for (var i = 0; i < data.length; i++) {
+				if (data[i]._child.length < 1) {
+					// children若为空数组,则将children设为undefined
+					data[i]._child = undefined;
+				} else {
+					// children若不为空数组,则继续 递归调用 本方法
+					this.getTreeData(data[i]._child);
+				}
+			}
+			return data;
+		}
+	},
+	created() {
+		this.getDepartment();
+		this.employee_map=JSON.parse(localStorage.getItem('userList'))
+	},
+	mounted() {
+		this.tips_show = JSON.parse(localStorage.getItem('total_rank_tips')) ? false : true;
+		this.get_list();
+	}
+};
+</script>
+<style scoped lang="scss">
+.search_box {
+	::v-deep button:active {
+		background: #26a2ff;
+	}
+	::v-deep button:active .el-icon-search {
+		color: #fff;
+	}
+}
+.date-picker-width {
+	width: 100% !important;
+}
+.nopoint_box {
+	display: inline-block;
+	text-align: center;
+	width: 100%;
+	margin-bottom: 10px;
+}
+.noimg {
+	display: inline-block;
+	width: 110px;
+	height: 110px;
+	margin: 22px auto 16px;
+	background-size: 99%;
+}
+.noperson {
+	display: inline-block;
+	width: 110px;
+	height: 110px;
+	line-height: none;
+	margin: 22px auto 16px;
+	// background: url("@/assets/image/rules_mould.png") no-repeat center;
+	background-size: 99%;
+}
+.title {
+	display: block;
+	text-align: center;
+	font-size: 12px !important;
+	line-height: 30px;
+	color: #909399 !important;
+	padding: 0;
+}
+.nopoint_box a {
+	color: #26a2ff;
+}
+.chart_content {
+	.chart-legend__wrap {
+		text-align: right;
+		padding: 20px;
+		padding-right: 50px;
+		& .chart-legend__pink {
+			position: relative;
+			padding-left: 12px;
+			padding-right: 5px;
+			&:after {
+				content: '';
+				position: absolute;
+				margin-top: -2px;
+				top: 35%;
+				left: 0;
+				width: 8px;
+				height: 8px;
+				background: #f56c6c;
+				border-radius: 100%;
+			}
+		}
+
+		& .chart-legend__green {
+			position: relative;
+			padding-left: 12px;
+			&:after {
+				content: '';
+				position: absolute;
+				margin-top: -2px;
+				top: 35%;
+				left: 0;
+				width: 8px;
+				height: 8px;
+				background: #53b87f;
+				border-radius: 100%;
+			}
+		}
+	}
+}
+.drawer_title {
+	font-size: 18px;
+	padding: 20px;
+}
+.manager_statistics_box {
+	background-color: #ffffff;
+	padding: 20px;
+	min-height: calc(100vh - 160px);
+	::v-deep .el-row .el-checkbox .el-checkbox__label {
+		line-height: 20px;
+	}
+}
+.diy_tip_bg {
+	background: #f5f6f9;
+	overflow: hidden;
+	.diy-tip {
+		margin-bottom: 15px;
+		border: 1px solid #67c23a;
+		padding: 20px 16px;
+		p {
+			color: #67c23a !important;
+			font-size: 14px;
+			margin: 0 !important;
+			padding: 4px 0;
+		}
+	}
+}
+</style>

+ 8 - 0
src/views/welfare/prize.vue

@@ -0,0 +1,8 @@
+<template>
+</template>
+
+<script>
+</script>
+
+<style>
+</style>

+ 1 - 1
src/views/workbench/approval_list.vue

@@ -1,7 +1,7 @@
 <template>
 	<div>
 		<div class="all padding-20">
-			<el-tabs v-model="formData.type" type="card">
+			<el-tabs v-model="formData.type">
 				<el-tab-pane v-for="(item, index) in tabsOption" :key="index" :label="item.label" :name="item.name"></el-tab-pane>
 			</el-tabs>
 

Some files were not shown because too many files changed in this diff