Sfoglia il codice sorgente

钉钉1.4期,初

347617796@qq.com 4 anni fa
parent
commit
a30b9ab334

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

@@ -231,6 +231,9 @@ table { border-collapse:collapse; border-spacing:0; }
 .border-right {
 	/* position: relative; */
 }
+.padding-20{
+	padding: 20px;
+}
 .margin-bottom{
 	margin-bottom: 20px;
 }

+ 737 - 0
src/components/examinePopup.vue

@@ -0,0 +1,737 @@
+<template>
+	<div>
+		<el-drawer :title="title" :visible.sync="show" :with-header="false" :size="'600px'" :before-close="closeDetail" direction="rtl">
+			<div class="drawer_title">审批详情</div>
+			<div v-loading="detail_loading">
+				<div class="detail_popup" v-if="detail_info !== null">
+					<el-row :gutter="10" style="padding-bottom:20px;border-bottom:1px #f8f8f8 solid;position: relative;">
+						<el-col :span="24">
+							<template>
+								<userImage :user_name="detail_info.employee_name" :img_url="detail_info.employee_img" class="fl" width="50px" height="50px"></userImage>
+							</template>
+							<template>
+								<span style="line-height:50px; margin-left:10px;margin-right:4px;">{{ detail_info.employee_name }}</span>
+								<span class="color_red point" v-show="detail_info.point >= 0 && detail_info.point">
+									<span v-if="(detail_info.review_point == 0 ? detail_info.point : detail_info.review_point) >= 0">+</span>
+									{{ detail_info.review_point == 0 ? detail_info.point : detail_info.review_point }}
+								</span>
+								<span class="color_green point" v-show="detail_info.point < 0 && detail_info.point">{{ detail_info.point }}</span>
+							</template>
+							<br />
+							<template>
+								<b style="font-size:13px;position: absolute;left:65px;top:45px">
+									<span v-if="detail_info.status == 1" style="color:#67C23A;">审批通过</span>
+									<span v-else-if="detail_info.status == 2" style="color:#F56C6C;">审批驳回</span>
+									<span v-else-if="detail_info.status == 0" style="color:#E6A23C;">待审批</span>
+									<span v-else></span>
+								</b>
+							</template>
+						</el-col>
+					</el-row>
+					<el-row :gutter="10" v-for="(item, index) in detail_info.detail" :key="index">
+						<el-col :span="4">{{ item.key }}</el-col>
+						<el-col :span="20" v-if="item.key == '附件'">
+							<el-image
+								v-for="(items, indexs) in item.value"
+								:key="indexs"
+								style="width: 100px; height: 100px;margin:2px;"
+								:src="items"
+								:preview-src-list="item.value"
+							></el-image>
+						</el-col>
+						<el-col :span="20" v-else-if="item.key == '工作留存'">
+							<el-image
+								v-for="(items, indexs) in item.value"
+								:key="indexs"
+								style="width: 100px; height: 100px;margin:2px;"
+								:src="items"
+								:preview-src-list="item.value"
+							></el-image>
+						</el-col>
+						<el-col :span="20" v-else>{{ item.value }}</el-col>
+					</el-row>
+
+					<el-row :gutter="10" v-if="detail_info.files != null && detail_info.files > 0">
+						<el-col :span="4">图片</el-col>
+						<el-col :span="20"><el-image style="width: 100px; height: 100px" :src="detail_info.files[0]" :preview-src-list="detail_info.files"></el-image></el-col>
+					</el-row>
+
+					<div v-show="detail_info.item_name != ''">
+						<p class="row_title">
+							规则依据 &nbsp;
+							<span class="row_tips" style="font-size:12px;color:#909399">此事件打分参考以下积分规则</span>
+						</p>
+						<el-row>
+							<el-col :span="4">事件分类</el-col>
+							<el-col :span="20">{{ detail_info.rule_name }}</el-col>
+						</el-row>
+						<el-row>
+							<el-col :span="4">积分规则</el-col>
+							<el-col :span="20">{{ detail_info.item_name }}</el-col>
+						</el-row>
+						<el-row>
+							<el-col :span="4">规则积分</el-col>
+							<el-col :span="20">
+								<span v-show="detail_info.point > 0">+</span>
+								{{ detail_info.point }} {{ detail_info.pt_id == 3 ? 'B分' : detail_info.pt_id == 2 ? 'A分' : detail_info.pt_id == 1 ? '绩效分' : '' }}
+							</el-col>
+						</el-row>
+					</div>
+
+					<div v-show="detail_info.process != null && detail_info.process.length > 0">
+						<p class="row_title">
+							审批人 &nbsp;
+							<span class="row_tips" style="font-size:12px;color:#909399">多人审批时,以最后一人为准</span>
+						</p>
+
+						<div class="examine_steps">
+							<el-steps direction="vertical" :space="50">
+								<el-step v-for="(item, index) in detail_info.process" :key="index" style="display:flex;">
+									<template slot="icon">
+										<userImage width="36px" height="36px" :img_url="item.img_url" :user_name="item.name"></userImage>
+									</template>
+									<template slot="title">
+										<div style="color: #303133;font-size:14px;margin-top:-2px;">
+											{{ item.name }} &nbsp;
+											<span v-if="item.remark == '待审核'" style="color:#E6A23C;font-size:13px">待审批</span>
+											<span v-else-if="item.remark == '审核通过'" style="color:#67C23A;font-size:13px">审批通过</span>
+											<span v-else-if="item.remark == '审核驳回'" style="color:#F56C6C;font-size:13px">审批驳回</span>
+											<span v-else>{{ item.remark }}</span>
+											<span style="color: #909399;font-size:12px;float:right">{{ item.time }}</span>
+										</div>
+									</template>
+									<template slot="description">
+										<div style="word-break:break-all;">{{ item.review_remark }}</div>
+									</template>
+								</el-step>
+							</el-steps>
+						</div>
+					</div>
+
+					<el-row style="border-top: 1px #f8f8f8 solid;">
+						<el-col :span="24" style="text-align: right;padding-top:20px" v-if="detail_info.status == 0">
+							<el-button v-if="detail_info.pt_id == 1" @click="closeDetail">取消</el-button>
+							<el-button v-else @click="rejectBtn">驳回</el-button>
+							<el-button type="primary" @click="adoptBtn">通过</el-button>
+						</el-col>
+						<el-col :span="24" style="text-align: right;padding-top:20px" v-else>
+							<span style="color:#909399;font-size:12px;padding-right:20px">撤回后需重新审批</span>
+							<el-button type="primary" @click="revokeApproval">撤回审批</el-button>
+						</el-col>
+					</el-row>
+				</div>
+			</div>
+		</el-drawer>
+
+		<el-dialog title="审批驳回" :visible.sync="rejectShow" :before-close="rejectClose" width="520px">
+			<el-form :model="rejectForm" ref="rejectForm" label-width="80px" v-loading="rejectLoading">
+				<el-form-item
+					label="审批意见"
+					prop="remark"
+					:rules="[
+						{ required: true, message: '请输入审批意见', trigger: 'blur' },
+						{
+							min: 3,
+							max: 50,
+							message: '长度在 3 到 50 个字符',
+							trigger: 'blur'
+						}
+					]"
+				>
+					<el-input type="textarea" :rows="4" v-model="rejectForm.remark" placeholder="请输入审批意见(限50字)"></el-input>
+				</el-form-item>
+				<el-form-item>
+					<el-button type="primary" @click="confirmReject('rejectForm')">确认驳回</el-button>
+					<el-button @click="cancelReject('rejectForm')">取消</el-button>
+				</el-form-item>
+			</el-form>
+		</el-dialog>
+
+		<el-dialog title="审批通过" :visible.sync="adoptShow" width="571px" :before-close="adoptClose">
+			<el-form :model="adoptForm" ref="adoptForm" label-width="80px" v-loading="determinedBy">
+				<el-form-item label="指定规则" v-if="!detail_info.rule_id && !detail_info.item_id && detail_info.source_type != 4">
+					<el-switch v-model="adoptForm.ruleOrItem" active-color="#13ce66"></el-switch>
+				</el-form-item>
+				<el-form-item
+					label="分类"
+					v-if="detail_info.source_type != 4"
+					v-show="(detail_info.rule_id && !detail_info.item_id) || !adoptForm.ruleOrItem"
+					prop="rule_id"
+					:rules="[{ required: true, message: '请选择规则分类', trigger: 'blur' }]"
+				>
+					<el-cascader
+						:disabled="!!detail_info.rule_id || !!detail_info.item_id"
+						class="date-picker-width"
+						v-model="adoptForm.rule_id"
+						:options="ruleTrees"
+						:props="{ value: 'id', label: 'name', children: 'child' }"
+						@change="ruleChange"
+						ref="rule"
+						clearable
+						filterable
+						change-on-select
+						placeholder="请选择规则分类"
+					></el-cascader>
+				</el-form-item>
+				<el-form-item label="规则内容" v-if="(!!detail_info.rule_id && detail_info.item_name) || (!!detail_info.item_id && detail_info.item_name)">
+					<span>{{ detail_info.item_name }}</span>
+				</el-form-item>
+				<el-form-item label="规则" v-if="detail_info.source_type != 4" v-show="(detail_info.rule_id && detail_info.item) || adoptForm.ruleOrItem" prop="item_id" :rules="[{ required: true, message: '请选择规则细则', trigger: 'blur' }]">
+					<el-cascader
+						:disabled="!!detail_info.rule_id || !!detail_info.item_id"
+						class="date-picker-width"
+						:popper-class="'itemClass'"
+						v-model="adoptForm.item_id"
+						:options="item_list"
+						:props="{
+							value: 'id',
+							label: 'name',
+							children: 'child',
+							emitPath: 'false'
+						}"
+						:show-all-levels="false"
+						ref="ruleItem"
+						@change="cascaderItemIdChange"
+						placeholder="请选择规则细则"
+					></el-cascader>
+				</el-form-item>
+				<el-form-item label="规则积分" v-show="detail_info.item_id">
+					{{detail_info.item_range_type == 1? detail_info.item_min_point: detail_info.item_range_type == -1? detail_info.item_min_point: detail_info.item_min_point + '~' + detail_info.item_max_point}}{{ detail_info.pt_id == 3 ? 'B分' : detail_info.pt_id == 2 ? 'A分' : detail_info.pt_id == 1 ? '绩效分' : '' }}
+				</el-form-item>
+
+				<el-form-item label="" v-if="rangeType.rule_rangeType_pt_id == 2 || rangeType.rule_rangeType_pt_id == 3">
+					<div style="line-height: 24px;">{{ rangeType.rule_min_point == rangeType.rule_max_point ? rangeType.rule_min_point : rangeType.rule_min_point + '~' + rangeType.rule_max_point}}<span class="blue" style="margin-left: 5px;">{{ rangeType.rule_rangeType_pt_id == 3 ? 'B分' : 'A分' }}</span></div>
+					<div style="line-height: 24px;">{{ rangeType.rule_rangeType_name }}</div>
+				</el-form-item>
+				<el-form-item label="审批积分">
+					<el-col :span="10">
+						<el-input-number
+							v-if="detail_info.item_range_type == 2"
+							:min="detail_info.item_min_point"
+							:max="detail_info.item_max_point"
+							v-model="adoptForm.point"
+							type="number"
+						></el-input-number>
+						<el-input-number
+							v-else-if="detail_info.item_range_type == 1"
+							:disabled="detail_info.item_range_type == 1"
+							:min="1"
+							v-model="adoptForm.point"
+							placeholder="请输入分值"
+						></el-input-number>
+						<div v-else>
+							<el-input-number
+								v-if="rangeType.rule_range_type == 2"
+								:disabled="forbiddenInputNum"
+								:min="rangeType.rule_min_point"
+								:max="rangeType.rule_max_point"
+								v-model="adoptForm.point"
+								placeholder="请输入分值"
+							></el-input-number>
+							<el-input-number v-else :disabled="forbiddenInputNum" v-model="adoptForm.point" placeholder="请输入分值"></el-input-number>
+						</div>
+					</el-col>
+				</el-form-item>
+				<el-form-item
+					v-if="detail_info.source_type == 4"
+					label="审批意见"
+					prop="remark"
+					:rules="[{ required: true, message: '请输入审批意见', trigger: 'blur' }, { max: 100, message: '长度不能超过 100 个字符', trigger: 'blur' }]"
+				>
+					<el-input :rows="4" type="textarea" v-model="adoptForm.remark" placeholder="说点什么(限100字)"></el-input>
+				</el-form-item>
+				<div style="padding-left: 80px">奖票用于优秀表现和重要事项的表彰</div>
+				<el-form-item label="发放奖票"><el-switch v-model="adoptForm.switch" active-color="#13ce66"></el-switch></el-form-item>
+				<el-form-item label="递交审批">
+					<el-row>
+						<el-col :span="18">
+							<el-input auto-complete="off" v-model="manager" placeholder="请选择上级递交审批"></el-input>
+							<div @click="show_employee_selector = true" style=" position: absolute; top: 0; right: 0; left: 0; bottom: 0; z-index: 9;"></div>
+						</el-col>
+					</el-row>
+					
+					<el-dialog title="选择人员" width="640px" :visible.sync="show_employee_selector" append-to-body :before-close="handleClose">
+						<EmployeeSelector
+							:can_select_employee="true"
+							v-if="show_employee_selector"
+							ref="approval"
+							:multi="false"
+							:employee_list="employee_lists"
+							:user_no_select="false"
+							:can_select_dept="false"
+							:selected="manager_selected"
+							@confirm="employee_confirm"
+						/>
+						<span slot="footer" class="dialog-footer">
+							<el-button @click="show_employee_selector = false">取 消</el-button>
+							<el-button type="primary" @click="submitApproval('approval')">确 定</el-button>
+						</span>
+					</el-dialog>
+				</el-form-item>
+				<el-form-item v-if="detail_info.source_type != 4" label="审批意见" prop="remark" :rules="[{ max: 100, message: '长度不能超过 100 个字符', trigger: 'blur' }]">
+					<el-input :rows="4" type="textarea" v-model="adoptForm.remark" placeholder="说点什么(限100字)"></el-input>
+				</el-form-item>
+
+				<el-form-item>
+					<el-button @click="adoptClose">取 消</el-button>
+					<el-button type="primary" @click="submitAdopt('adoptForm')">确定通过</el-button>
+				</el-form-item>
+			</el-form>
+		</el-dialog>
+	</div>
+</template>
+
+<script>
+import EmployeeSelector from '@/components/EmployeeSelector';
+
+export default {
+	name: 'examinePopup',
+	data() {
+		return {
+			employee_lists: [],
+			itemParticulars: false,
+			rangeType: {
+				rule_range_type: 0,
+				rule_min_point: 0,
+				rule_max_point: 0,
+				rule_rangeType_pt_id: 0,
+				rule_rangeType_name: ''
+			},
+			itemMaxPoint: 1,
+			forbiddenInputNum: false,
+			determinedBy: false, //确定通过loading
+			rejectLoading: false, //驳回loading
+			detail_id: null,
+			detail_loading: false,
+			detailShow: false,
+			detail_info: {
+				rule_id: ''
+			},
+			rejectShow: false,
+			adoptShow: false,
+			rejectForm: {
+				remark: ''
+			},
+			adoptForm: {
+				ruleOrItem: false,
+				rule_id: null,
+				item_id: 0,
+				showPoint: null,
+				point: null,
+				switch: false,
+				remark: ''
+			},
+			// 规则 or 细则
+			ruleTrees: null,
+			item_list: null,
+			// 奖扣积分数组
+			awardPointsArray: [{ name: '奖分', value: 1 }, { name: '扣分', value: 2 }],
+			awardPoints: 1,
+
+			// 下一个审批人
+			manager: '',
+			employee_not_select: [],
+			manager_selected: { dept: [], employee: [] },
+			show_employee_selector: false
+		};
+	},
+	props: {
+		id: {
+			type: Number,
+			default: 0
+		},
+		show: {
+			type: Boolean,
+			default: false
+		},
+		title: {
+			type: String,
+			default: ''
+		}
+	},
+	watch: {
+		id(val) {
+			this.detail_id = val;
+		},
+		show(val) {
+			if (val) {
+				this.getDetail();
+			}
+		},
+		'adoptForm.ruleOrItem'(val) {
+			if (val) {
+				this.adoptForm.rule_id = 0;
+			} else {
+				this.rangeType = {
+					rule_range_type: 0,
+					rule_min_point: 0,
+					rule_max_point: 0,
+					rule_rangeType_pt_id: 0,
+					rule_rangeType_name: ''
+				};
+				this.forbiddenInputNum = false;
+				this.adoptForm.item_id = 0;
+			}
+		}
+	},
+	components: { EmployeeSelector },
+	mounted() {
+		this.getRuleItem();
+		this.getRuleItemTree();
+		this.employee_lists = this.$getUserData().employee_detail.superior_list;
+	},
+	methods: {
+		submitApproval(name) {
+			this.$refs[name].confirm(); //调用组件的confirm();
+		},
+		//关闭
+		handleClose(done) {
+			done();
+		},
+		cascaderItemIdChange(val) {
+			let datas = this.$refs['ruleItem'].getCheckedNodes()[0].data;
+			if (datas.range_type == 1) {
+				this.forbiddenInputNum = true;
+			} else {
+				this.forbiddenInputNum = false;
+			}
+			this.adoptForm.point = datas.min_point;
+			this.rangeType.rule_range_type = datas.range_type;
+			this.rangeType.rule_min_point = datas.min_point;
+			this.rangeType.rule_max_point = datas.max_point;
+			this.rangeType.rule_rangeType_pt_id = datas.pt_id;
+			this.rangeType.rule_rangeType_name = datas.name;
+			this.adoptForm.rule_id = datas.rule_id;
+		},
+		//审批撤销
+		revokeApproval() {
+			this.$confirm('确定要撤回此项吗?', '提示', {
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				type: 'warning'
+			}).then(() => {
+					this.detail_loading = true;
+					this.$axios('post', '/api/integral/review/destroy', { review_id: this.detail_id })
+						.then(res => {
+							if (res.data.code == 1) {
+								this.$message.success(res.data.msg);
+								this.closeDetail(); //关闭抽屉
+								this.$parent.getSpList(); //刷新列表
+							}
+						}).finally(() => {
+							this.detail_loading = false;
+						});
+			});
+		},
+		// 选择规则分类关闭down
+		ruleChange(val) {
+			if (val.length == 0) {
+				this.adoptForm.rule_id = 0;
+			} else {
+				this.adoptForm.rule_id = val[val.length - 1];
+			}
+			this.$nextTick(() => {
+				this.$refs.rule.dropDownVisible = false;
+			});
+		},
+		// 选择规则细则
+		itemChange(val) {
+			if (val.length == 0) {
+				this.adoptForm.item_id = 0;
+			} else {
+				this.adoptForm.item_id = val[val.length - 1];
+			}
+			this.$nextTick(() => {
+				this.$refs.ruleItem.dropDownVisible = false;
+			});
+		},
+		// 获取规则细则树
+		getRuleItemTree() {
+			let self = this;
+			let params = {
+				pt_id: this.detail_info.pt_id,
+				cycle_type: '1'
+			};
+			this.$axios('get', '/api/integral/rule/trees', params, 'v2').then(res => {
+				if (res.data.code == 1) {
+					self.item_list = res.data.data.tree;
+				} else {
+					self.$message.error(res.data.data.msg);
+				}
+			});
+		},
+		// 获取规则分类规则细则信息
+		getRuleItem() {
+			let self = this;
+			let params = {
+				cycle_type: 1
+			};
+			this.$axios('get', '/api/integral/rule/trees', params).then(res => {
+				if (res.data.code == 1) {
+					self.ruleTrees = this.getTreeData(res.data.data.rule_tree);
+				} else {
+					self.$message.error(res.data.data.msg);
+				}
+			});
+		},
+		// 打开详情
+		getDetail() {
+			let self = this;
+			let params = {
+				review_id: self.detail_id
+			};
+			self.detailShow = true;
+			self.detail_loading = true;
+			this.$axios('get', '/api/integral/review', params).then(res => {
+					if (res.data.code == 1) {
+						self.detail_info = res.data.data;
+						self.detail_info.rule_id ? (self.adoptForm.rule_id = self.detail_info.rule_id) : '';
+						if (res.data.data.item_id) {
+							self.adoptForm.item_id = self.detail_info.item_id;
+							self.adoptForm.showPoint = self.detail_info.point;
+							self.detail_info.point > 0 ? (self.awardPoints = 1) : (self.awardPoints = 2);
+							self.adoptForm.point = Math.abs(self.detail_info.point);
+						}
+					}
+				}).finally(e => {
+					self.detail_loading = false;
+				});
+		},
+		// 关闭抽屉
+		closeDetail() {
+			this.$emit('update:show', false);
+		},
+		// 驳回按钮
+		rejectBtn() {
+			this.rejectShow = true;
+		},
+		// 关闭驳回弹窗
+		rejectClose() {
+			this.rejectShow = false;
+			this.$refs['rejectForm'].resetFields();
+		},
+		// 确定驳回
+		confirmReject(formName) {
+			let self = this;
+			self.$refs[formName].validate(valid => {
+				if (valid) {
+					let data = {
+						review_id: self.detail_id,
+						action: 'refuse',
+						ticket_count: '0',
+						remark: self.rejectForm.remark
+					};
+					this.rejectLoading = true;
+					this.$axios('post', '/api/integral/review', data)
+						.then(res => {
+							if (res.data.code == 1) {
+								self.rejectShow = false;
+								self.detail_info.status = 2;
+								self.$message.success(res.data.msg);
+								self.rejectClose(); //关闭驳回弹窗
+								self.closeDetail(); //关闭抽屉
+								self.$parent.getSpList(); //刷新列表
+							}
+						}).finally(e => {
+							setTimeout(() => {
+								//延迟关闭,防止重复点击
+								self.rejectLoading = false;
+							}, 200);
+						});
+				}
+			});
+		},
+		// 取消驳回
+		cancelReject(formName) {
+			this.rejectShow = false;
+			this.$refs[formName].resetFields();
+		},
+		// 通过按钮
+		adoptBtn() {
+			if (this.detail_info.item_range_type == 1) {
+				this.adoptForm.point = Math.abs(this.detail_info.point);
+			} else {
+				this.adoptForm.point = this.detail_info.point;
+			}
+			this.detail_info.point > 0 ? (this.awardPoints = 1) : (this.awardPoints = 2);
+			this.adoptForm.rule_id = this.detail_info.rule_id;
+			this.adoptForm.item_id = this.detail_info.item_id;
+			if (this.detail_info.rule_id == 0 && this.detail_info.item_id == 0 && this.detail_info.pt_id != 1) {
+				//没有  规则分类 与 规则细则 与 不是绩效任务时,才请求规则细则(减少请求)
+				this.getRuleItemTree();
+			}
+			this.adoptShow = true;
+
+			this.rangeType = {
+				rule_range_type: 0,
+				rule_min_point: 0,
+				rule_max_point: 0,
+				rule_rangeType_pt_id: 0,
+				rule_rangeType_name: ''
+			};
+		},
+		// 递归判断列表,把最后的child设为undefined
+		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;
+		},
+		// 下一个审批人
+		employee_confirm(data) {
+			this.manager_selected = { dept: [], employee: [] };
+			this.adoptForm.reviewer_id = '';
+			this.manager = '';
+			if (data.employee !== null && data.employee.length != 0) {
+				this.manager_selected.employee = data.employee;
+				this.adoptForm.reviewer_id = data.employee[0].id;
+				this.manager = data.employee[0].name;
+			}
+			this.show_employee_selector = false
+		},
+		// 关闭通过弹窗
+		adoptClose() {
+			this.adoptForm.rule_id = 0;
+			this.adoptForm.item_id = 0;
+			this.forbiddenInputNum = false;
+			this.adoptShow = false;
+			this.manager = ''; //清空递交审批
+			this.manager_selected = { dept: [], employee: [] }; //清空递交审批
+			this.adoptForm.remark = '';
+			this.adoptForm.switch = false;
+			// this.$refs["adoptForm"].resetFields();
+		},
+		// 确定通过
+		submitAdopt(formName) {
+			let self = this;
+			self.$refs[formName].validate(valid => {
+				if (valid) {
+					let data = {
+						review_id: self.detail_id,
+						action: 'complete',
+						rule_id: self.adoptForm.rule_id,
+						item_id: 0,
+						point: self.adoptForm.point,
+						reviewer_id: '',
+						remark: self.adoptForm.remark,
+						ticket_count: 0
+					};
+					self.adoptForm.item_id ? (data.item_id = self.adoptForm.item_id) : (data.item_id = 0);
+					self.adoptForm.reviewer_id ? (data.reviewer_id = self.adoptForm.reviewer_id) : (data.reviewer_id = 0);
+					self.adoptForm.switch ? (data.ticket_count = 1) : (data.ticket_count = 0);
+					if (this.detail_info.item_range_type == 1) {
+						if (self.awardPoints === 1) {
+							data.point = self.adoptForm.point;
+						} else {
+							data.point = self.adoptForm.point * -1;
+						}
+					}
+					if (data.rule_id == '' || data.rule_id == null) {
+						data.rule_id = 0;
+					}
+					if (this.detail_info.item_range_type == -1) {
+						let itemID = '';
+						for (let i in data.item_id) {
+							itemID = data.item_id[i];
+						}
+						data.item_id = itemID;
+					}
+					if (data.item_id == '' || data.item_id == null) {
+						data.item_id = 0;
+					}
+					if(self.adoptForm.ruleOrItem){
+						if(data.item_id==0){
+							self.$message.error("请选择所属规则");
+							return
+						}
+					}else{
+						if(data.rule_id==0){
+							self.$message.error("请选择所属分类");
+							return
+						}
+					}
+					if (data.point == 0 || !data.point) {
+						self.$message.error("积分不能为0或空")
+						return;
+					}
+					this.determinedBy = true;
+					this.$axios('post', '/api/integral/review', data)
+						.then(res => {
+							if (res.data.code == 1) {
+								self.adoptShow = false;
+								self.detail_info.status = 2;
+								self.$message.success(res.data.msg);
+								self.adoptClose(); //关闭通过弹窗
+								self.closeDetail(); //关闭抽屉
+								self.$parent.getSpList(); //刷新列表
+							}
+						}).finally(e => {
+							setTimeout(() => {
+								//预防重复点击
+								this.determinedBy = false;
+							}, 200);
+						});
+				}
+			});
+		}
+	}
+};
+</script>
+
+<style lang="scss">
+	label {
+	    font-weight: 700;
+	}
+.fl {
+	float: left;
+}
+.itemClass .el-cascader-menu .el-cascader-menu__wrap li.el-cascader-node {
+	height: auto;
+	max-width: 500px;
+	.el-cascader-node__label {
+		white-space: initial;
+		overflow: initial;
+		text-overflow: initial;
+	}
+}
+
+.detail_popup {
+	padding: 20px;
+	overflow-y: auto;
+	overflow-x: hidden !important;
+	height: calc(100vh - 60px);
+	.row_title {
+		position: relative;
+		margin: 0 0 20px 0;
+		padding-top: 12px;
+		font-size: 16px;
+		color: #303133;
+		line-height: 22px;
+	}
+	.row_title:before {
+		position: absolute;
+		top: 0;
+		content: ' ';
+		width: 100%;
+		border-top: 1px #f8f8f8 solid;
+	}
+	.el-row {
+		margin-bottom: 10px;
+		font-size: 14px;
+		.el-col-4 {
+			color: #606266;
+		}
+	}
+}
+.drawer_title {
+	font-size: 18px;
+	padding: 20px;
+	border-bottom: 1px #efefef solid;
+}
+</style>

+ 72 - 123
src/home.vue

@@ -9,7 +9,7 @@
 					<el-col :span="7" class="hlheader-user" v-loading="">
 						<el-row :gutter="40">
 							<el-col :span="24" class="hlheader-user-info">
-								<div class="headimg" style=" margin-right: 0px;cursor:pointer;" @click="">
+								<div class="headimg" style=" margin-right: 0px;cursor:pointer;">
 									<userImage :user_name="user_info.name" :img_url="user_info.img_url" fontSize="1.1" width="60px" height="60px"></userImage>
 								</div>
 								<div class="headtext">
@@ -81,8 +81,6 @@
 									<br />
 									<span style="color:#606266;font-size:14px;padding-top:8px;display: inline-block;">本月A分</span>
 								</p>
-								<!-- <p style="text-align:center;cursor:pointer;margin: 0;" @click="$router.push({ path: '/my_performance' })"><b style="color:#26A2FF;font-size:27px;">{{authorityManagerHeaders.performance?authorityManagerHeaders.performance.review_point:'0'}}</b><br><span style="color:#606266;font-size:14px;padding-top:8px;display: inline-block;">绩效分</span></p> -->
-								<!-- <p style="text-align:center;cursor:pointer;margin: 0;" @click="Administrator"> -->
 								<p style="text-align:center;cursor:pointer;margin: 0;" @click="$router.push({ path: '/my_task' })">
 									<b style="color:#26A2FF;font-size:27px;">
 										{{
@@ -97,27 +95,6 @@
 							</div>
 						</el-col>
 					</el-col>
-					<!-- 7.0原版
-          <div v-else>
-            <el-col :span="8" style="margin-top:34px;padding:0;border-right: 1px #cecccc solid;height:58px;" v-loading="authorityManagerHeaderLoad">
-              <el-col :gutter="50" style="margin:0;padding:0;" class="quick_button_box">
-                <div style="display:flex;justify-content: space-around;">
-                  <p style="text-align:center;cursor:pointer;margin: 0;" @click="$router.push({ path: '/integral_statistics' })"><b style="color:#26A2FF;font-size:27px;">{{authorityManagerHeaders.b?authorityManagerHeaders.b:'0'}}</b><br><span style="color:#606266;font-size:14px;padding-top:8px;display: inline-block;">本月B分</span></p>
-                  <p style="text-align:center;cursor:pointer;margin: 0;" @click="$router.push({ path: '/integral_statistics' })"><b style="color:#26A2FF;font-size:27px;">{{authorityManagerHeaders.a?authorityManagerHeaders.a:'0'}}</b><br><span style="color:#606266;font-size:14px;padding-top:8px;display: inline-block;">本月A分</span></p>
-                </div>
-
-              </el-col>
-            </el-col>
-            <el-col :span="8" style="margin:0;padding:0;">
-              <el-col :gutter="50" style="margin:0;padding:34px 0 0 0;" class="quick_button_box">
-                <div style="display:flex;justify-content: space-around;" v-loading="authorityManagerHeaderLoad">
-                  <p style="text-align:center;cursor:pointer;margin: 0;" @click="$router.push({ path: '/my_performance' })"><b style="color:#26A2FF;font-size:27px;">{{authorityManagerHeaders.performance?authorityManagerHeaders.performance.review_point:'0'}}</b><br><span style="color:#606266;font-size:14px;padding-top:8px;display: inline-block;">绩效分</span></p>
-                  <p style="text-align:center;cursor:pointer;margin: 0;" @click="$router.push({ path: '/my_performance' })"><b style="color:#26A2FF;font-size:27px;">{{authorityManagerHeaders.performance?authorityManagerHeaders.performance.total_count + '/' + authorityManagerHeaders.performance.complete_count : '0/0'}}</b><br><span style="color:#606266;font-size:14px;padding-top:8px;display: inline-block;">任务进度</span></p>
-                </div>
-
-              </el-col>
-            </el-col>
-          </div> -->
 				</el-row>
 
 				<el-row class="left-all-style">
@@ -142,7 +119,6 @@
 								<div class="noimg" style="margin:0;"></div>
 								<span class="title1" style="margin:0;">暂无积分数据</span>
 							</div>
-							<!-- <div  v-else v-for="(item,index) in rankingListDetails" :key="index" style="text-align:center;width:80px;cursor:pointer;margin:0 20px;" @click="$router.push({ path: RankingPush })"> -->
 							<div v-else v-for="(item, index) in rankingListDetails" :key="index" style="text-align:center;width:80px;cursor:pointer;margin:0 20px;">
 								<div class="" style="cursor:pointer;position: relative;height: 60px;">
 									<svg-icon
@@ -160,14 +136,6 @@
 										v-if="item.employee_id == user_info.id && index == 0 && item.rank > 3"
 										style="z-index:1;position: absolute;left: 26px;top: -14px;width:25px;height:25px;border:1px solid #C0C4CC;border-radius:50%;background-color:#fff;font-size:12px;text-align-center;line-height:24px;color:#303133;"
 									>
-										<!-- <div
-                    v-if="
-                      
-                        index == 0 &&
-                        item.rank > 3
-                    "
-                    style="z-index:1;position: absolute;left: 28px;top: -14px;width:24px;height:24px;border:1px solid #C0C4CC;border-radius:50%;background-color:#fff;font-size:12px;text-align-center;line-height:24px;color:#303133;"
-                  > -->
 										<b>{{ item.rank }}</b>
 									</div>
 									<div style="position: absolute;left: 8px;top: -16px;z-index:2;">
@@ -330,6 +298,39 @@
 					</div>
 					</div>
 				</el-row>
+				<el-row>
+					<div class="right-all-style" v-loading="highestPrizeBuckleloading" style="background:#fff;padding: 20px 20px 0;">
+						<span class="title">待我审批({{auditList.length}})</span>
+				
+						<div class="nopoint_box" v-if="auditList.length==0">
+							<div class="noimg"></div>
+							<span class="title1" style="padding-bottom:20px;">还没有待我审批</span>
+						</div>
+				
+						<div v-else style="padding:20px 0 20px 0;" class="flex-box-v">
+							<div v-for="(item,index) in auditList" class="List_border" :key="index" style="cursor:pointer;display:flex;padding-top:10px;"  @click="openDetail(item)">
+								    <userImage
+								      width="45px"
+								      height="45px"
+								      :id="item.employee_id"
+								      :user_name="item.employee_name"
+								      style="margin-right:8px"
+								    ></userImage>
+								    <div class="rightexamineAndApproveList2">
+								      <p style="width:160px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#303133;font-size:16px"><b>{{item.employee_name}}{{item.source_type==1?'的积分任务':item.source_type==2?'的积分申请':item.source_type==3?'的积分录入':item.source_type==4?'的绩效工作':''}}</b></p>
+								      <p style="padding:10px 0;font-size:13px;line-height:20px;color:rgb(48, 49, 51);overflow:hidden; text-overflow:ellipsis;display:-webkit-box; -webkit-box-orient:vertical;-webkit-line-clamp:2; ">{{item.remark.rule || item.remark.customize}}</p>
+								      <div style="display:flex;padding-bottom:10px;justify-content: space-between;">
+								        <span style="color:#909399">{{item.event_time}}</span>
+								        <div>
+								          <span style="color:#26A2FF;cursor:pointer" >去审批</span>
+								        </div>
+								      </div>
+								    </div>
+								</div>
+							<div class="more" v-show="auditList.length >= 3" style="text-align: center;color: rgb(144, 147, 153);font-size: 14px; padding:16px 16px 0 16px; cursor: pointer;"  @click="$router.push({path: '/approval_list'})">查看更多</div>
+						</div>
+					</div>
+				</el-row>
 				<el-row>
 					<div class="right-all-style" v-loading="highestPrizeBuckleloading" style="background:#fff;padding: 20px 20px 0;">
 						<span class="title">本周奖分最高</span>
@@ -410,7 +411,6 @@
 				
 			</el-col>
 		</el-row>
-		<!-- </div> -->
 		<div class="updateNotice">
 			<el-dialog title="系统公告" :visible.sync="updateVisible" width="500px" top="20vh" :before-close="updateClose">
 				<b style="font-size:16px;margin:0 0 10px 0;display: inline-block;">{{announcement.title}}</b>
@@ -420,12 +420,19 @@
   				</span>
 			</el-dialog>
 		</div>
+		<examinePopup
+		  :title="'审核详情'"
+		  :id="detail_id"
+		  :show.sync="detailShow"
+		></examinePopup>
 	</div>
 </template>
 
 <script>
 var bool = true; // 五秒执行一次变量
+import examinePopup from "@/components/examinePopup";
 export default {
+	components:{examinePopup},
 	data() {
 		return {
 			announLoad:false,
@@ -527,6 +534,10 @@ export default {
 				{name:'申请积分',image:require('./assets/image/a_apply.png'),push:'/apply_list'},
 				{name:'领任务',image:require('./assets/image/task_hall.png'),push:'/get_task'},
 			],
+			// 待我审批模块
+			auditList:[],
+			detail_id:0,
+			detailShow:false,
 		};
 	},
 	watch: {
@@ -558,12 +569,34 @@ export default {
 			this.getDepartment(); //获取部门列表
 			this.rankingListname(); //获取自定义排行榜名
 			this.monthlyIntegral(); //本月积分情况
+			this.getSpList();//待我审批列表
 			if(!this.employeeRout){
 				this.ManagerSAward(); //管理者奖扣任务执行情况
 			}
 			this.highestPrizeBuckle(); //奖扣分最高积分事件
 		},
+		//审批
+		openDetail(item) {
+		  this.detail_id = item.id;
+		  this.detailShow = true;
+		},
+		// 待我审批列表
+		getSpList(){
+			let params = {
+				source_type: 0,
+				type: 'waiting',
+				page: 1,
+				pt_id: 0,
+				page_size: '3',
+			}
+			this.$axios('get','/api/integral/review/list',params).then((res)=>{
+				if(res.data.code == 1){
+					this.auditList = res.data.data.list
+				}
+			}).finally(()=>{
 
+			})
+		},
 		noticeList(){//系统公告
 			this.announLoad = true
 			let params = {
@@ -596,22 +629,12 @@ export default {
 			var myChart1 = this.$echarts.init(this.$refs.monthlyIntegralChart);
 			var myChart2 = this.$echarts.init(this.$refs.IntegralFormChart);
 			var myChart3 = this.$echarts.init(this.$refs.ManagerSAwardChart);
-			// myChart.setOption(option);
-			// setTimeout(function (){
-			//     window.onresize = function () {
 			myChart1.resize();
 			myChart2.resize();
 			myChart3.resize();
-			//     }
-			// },20)
 		},
 		openGzd(val) {
 			val ? this.$router.push({ path: val }) : '';
-			// if (val == '/my_issue') {
-			// 	this.popout();
-			// } else {
-			// 	val ? this.$router.push({ path: val }) : '';
-			// }
 		},
 		popout() {
 			if (bool) {
@@ -619,11 +642,6 @@ export default {
 				this.$notify({
 					message: h('b', { style: 'color:rgb(38, 162, 255)' }, '任务功能将在近期开放,敬请期待')
 				});
-
-				// this.$message({
-				//   message: '任务功能将在近期开放,敬请期待',
-				//   type: 'success'
-				// });
 				bool = false;
 				setTimeout(() => {
 					bool = true;
@@ -669,7 +687,6 @@ export default {
 					: date_interval == 3
 					? this.$moment().format('YYYY')
 					: '0';
-			// request.get("/api/integral/statistics/ranking", { params: params })
 			this.$axios('get', '/api/integral/statistics/groups/rank', data)
 				.then(res => {
 					let lists = res.data.data.list;
@@ -823,26 +840,17 @@ export default {
 					let legendData2 = [];
 					let dadalist = [];
 					//分为两列展示
-					// let listLeng = Math.ceil((lists.length)/2)
-
 					for (let i in lists) {
 						if (lists[i].name.length > 15) {
 							lists[i].name = lists[i].name.slice(0, 15) + '...';
 						}
 
 						//分为两列展示
-						// if(i<listLeng){
-						//   legendData1.push(lists[i].name+' '+'奖'+lists[i].reward+' '+'扣'+lists[i].deduction+' '+lists[i].ratio+'%')
-						// }else{
-						//   legendData2.push(lists[i].name+' '+'奖'+lists[i].reward+' '+'扣'+lists[i].deduction+' '+lists[i].ratio+'%')
-						// }
 						if (i < 8) {
 							legendData1.push(lists[i].name + ' ' + '奖' + lists[i].reward + ' ' + '扣' + lists[i].deduction + ' ' + lists[i].ratio + '%');
 						} else {
 							legendData2.push(lists[i].name + ' ' + '奖' + lists[i].reward + ' ' + '扣' + lists[i].deduction + ' ' + lists[i].ratio + '%');
 						}
-						// console.log(lists.length/2)
-
 						let dataListDx = {};
 						if (lists[i].ratio < 0) {
 							dataListDx.value = 0;
@@ -850,11 +858,8 @@ export default {
 							dataListDx.value = lists[i].ratio;
 						}
 						dataListDx.name = lists[i].name + ' ' + '奖' + lists[i].reward + ' ' + '扣' + lists[i].deduction + ' ' + lists[i].ratio + '%';
-						// dataListDx.name = lists[i].name
 						dadalist.push(dataListDx);
 					}
-					//分为两列展示,多传legendData2
-					// this.drawLine(legendData1, legendData2, dadalist); //图表
 					this.drawLine(legendData1, dadalist); //图表
 				})
 				.finally(() => {
@@ -867,39 +872,24 @@ export default {
 				});
 		},
 		//分为两列展示,多传legendDataTwo
-		// drawLine(legendDataOne, legendDataTwo, dadalist) {
 		drawLine(legendDataOne, dadalist) {
 			const chart = this.$refs.IntegralFormChart;
-
 			//此处可给固定颜色,不给就所有颜色随机
 			let colors = ['rgb(38, 162, 255)', '#f36f2a', '#fecb09', '#00b6bd', '#e85d53', '#fecb09', '#725197', '#fcb814', '#41a08d', '#425a95', '#ea8b84', '#9d1d62', '#fcb814'];
-			// let colors = [];
-			// let legendDataLeng = legendDataOne.length + legendDataTwo.length;
 			let legendDataLeng = legendDataOne.length;
 			if (legendDataLeng > colors.length) {
 				//当列表大于固定颜色时,给随机颜色
 				let colorsLeng = colors.length;
 				for (let i = 0; i <= legendDataLeng - colorsLeng; i++) {
-					// colors.push('#' + Math.random().toString(16).substr(2, 6).toUpperCase());//也是随机色
 					colors.push('rgb(' + Math.round(Math.random() * 255) + ',' + Math.round(Math.random() * 255) + ',' + Math.round(Math.random() * 255) + ')');
 				}
 			}
 
 			//只显示 N 条标题,多余隐藏,但是饼图不会隐藏
 			let DataLengths = [];
-			// for (let i in legendDataTwo) {
-			//   if (i < 8) {
-			//     DataLengths.push(legendDataTwo[i]);
-			//   }
-			// }
 			let left1 = '45%';
 			let left2 = '45%';
 			let leftBT = '25%';
-			// if (legendDataTwo.length != 0) {
-			//   left1 = "28%";
-			//   leftBT = "10%";
-			// }
-
 			if (chart) {
 				const myChart = this.$echarts.init(chart);
 				var legendData1 = legendDataOne;
@@ -925,22 +915,6 @@ export default {
 							},
 							data: legendData1
 						}
-						//分为两列展示
-						// {
-						//   type: "scroll",
-						//   orient: "vertical",
-						//   icon: "square",
-						//   left: "62%",
-						//   align: "left",
-						//   top: "23%",
-						//   itemGap: 20,
-						//   // bottom:'50%',
-						//   textStyle: {
-						//     fontSize: 14,
-						//     color: "rgb(48, 49, 51)",
-						//   },
-						//   data: legendData2,
-						// },
 					],
 					color: colors,
 					grid: {
@@ -1020,36 +994,6 @@ export default {
 							show: false
 						}
 					},
-					// dataZoom: [
-					//     {
-					//         type: 'slider',
-					//         fillerColor : 'rgba(255, 255, 255, 0)',
-					//         show: true,
-					//         xAxisIndex: [0],
-					//         start: 0,
-					//         end: 100
-					//     },
-					//     {
-					//         type: 'slider',
-					//         fillerColor : 'rgba(255, 255, 255, 0)',
-					//         show: true,
-					//         yAxisIndex: [0],
-					//         start: 0,
-					//         end: 100
-					//     },
-					//     {
-					//         type: 'slider',
-					//         xAxisIndex: [0],
-					//         start: 1,
-					//         end: 35
-					//     },
-					//     {
-					//         type: 'slider',
-					//         yAxisIndex: [0],
-					//         start: 29,
-					//         end: 36
-					//     }
-					// ],
 					series: [
 						{
 							name: '总积分',
@@ -1572,6 +1516,11 @@ export default {
 	text-align: left;
 	width: 100%;
 	// border-bottom:1px solid #EFEFEF;
+}
+.rightexamineAndApproveList2 {
+	text-align: left;
+	width: 100%;
+	border-bottom:1px solid #EFEFEF;
 }
   .inCommonUseStyle{
     width:95%;

+ 16 - 65
src/index.vue

@@ -88,13 +88,6 @@
 				</div>
 			</div>
 		</el-dialog>
-<!-- 		<el-drawer
-		  title="我是标题"
-		  :visible.sync="isTz"
-		  :direction="direction"
-		  >
-		  <span>我来啦!</span>
-		</el-drawer> -->
 	</el-container>
 </template>
 
@@ -115,13 +108,28 @@ export default {
 			corpMessage:{},//企业套餐信息
 		};
 	},
+	watch:{
+		$route(to,from){
+			var str=to.path;
+			this.routers.map((item,index)=>{
+				if(item.children.length>0){
+					item.children.map((item2,index2)=>{
+						if(item2.path==str){
+							this.defaultActive=index+"-"+index2;
+							localStorage.setItem("path",index+"-"+index2);
+						}
+					})
+				}
+			})
+		}
+	},	
 	created() {
 		this.routers=[
 			{name:'首页',children:this.returnRoutersArr('home'),icon:'icon-xuanzhong_shouye'},
 			{name:'A/B分',children:this.returnRoutersArr('abPoint'),icon:'icon-PC_gongzuotai_ABfen'},
 			{name:'任务',children:this.returnRoutersArr('task'),icon:'icon-PC_gongzuotai_renwu'},
+			{name:'工作台',children:this.returnRoutersArr('workbench'),icon:'icon-PC_gongzuotai_renwu'},
 			{name:'统计',children:this.returnRoutersArr('ranking'),icon:'icon-dingdingPC_tongji'},
-			// {name:'设置',children:this.returnRoutersArr('set'),icon:'icon-dingdingPC_shezhi'},
 			];
 		//this.$authoritys('权限名') 判断权限
 		if(this.$authoritys('creator') || this.$authoritys('admin') || this.$authoritys('point_manager')){
@@ -135,38 +143,6 @@ export default {
 		}
 	},
 	mounted() {
-		const data=[
-			{
-				key:'name',
-				value:'木事'
-			},
-			{
-				key:'age',
-				value:18
-			},
-			{
-				key:'from',
-				value:'土木工程'
-			},
-		]
-		const processFn=()=>{
-				var obj={}
-				for (let {key,value} in data) {
-					obj[key]=value
-				}
-				console.log(obj)
-				return obj
-		}
-		// const processFn=data=>{
-		// 	var obj={}
-		// 	for (let {key,value} of data) {
-		// 		console.log(key,value)
-		// 		obj[key]=item.value
-		// 	}
-		// 	return obj
-		// }
-		console.log(processFn())
-		
 		this.getTypes();
 		this.getInfo();
 		var url = window.location.href;
@@ -187,28 +163,6 @@ export default {
 			}
 		});
 	},
-	watch:{
-		 $route(to,from){
-			//多一层判断,防止误入或乱跳页面,判断对应路由是否有权限
-			// if(to.meta.jurisdiction.indexOf(this.$supremeAuthority())==-1){
-			// 	this.$router.push({ path: '/home' })
-			//  this.defaultActive = '0-0'
-			//  localStorage.setItem("path",'0-0');
-			// }else{
-			// }
-
-			 let routes = this.routers[to.meta.identification].children
-			 let paths = ''
-			 for(let i in routes){
-				 if(routes[i].path == to.path){
-					paths = to.meta.identification+'-'+i
-					// paths = this.returnIndex(to.meta.identification,i)
-				 }
-			 }
-			this.defaultActive = paths
-			localStorage.setItem("path",paths);
-		}
-	},
 	methods: {
 		openHome(){
 			this.$router.push({ path: '/home' })
@@ -244,7 +198,6 @@ export default {
 		},
 		//当刷新页面是控制左边导航栏的选中
 		activeRouter(index,indexPath){
-			// console.log(index,indexPath)
 			localStorage.setItem("path",indexPath[1]?indexPath[1]:indexPath[0]);
 		},
 		routerAstrict(data){//限制路由
@@ -283,8 +236,6 @@ export default {
 			this.wn_show=false;
 			this.isShowWn=false;
 			this.$router.push({path:this.routers_one[e].path})
-			this.defaultActive="2-"+(e).toString();
-			localStorage.setItem("path",this.defaultActive);
 		},
 		showWn(){
 			this.wn_show=true;

+ 3 - 3
src/main.js

@@ -19,9 +19,9 @@ import { getToken, setToken,getUserData,setUserData,getTyps,setTyps,getIsCreator
 import userImage from '@/components/UserImage'
 Vue.component('userImage', userImage)
 Vue.use(ElementUI);
-if (process.env.NODE_ENV === 'development') {
-  new VConsole()
-}
+// if (process.env.NODE_ENV === 'development') {
+//   new VConsole()
+// }
 
 Vue.prototype.$echarts = echarts
 Vue.prototype.$dd=dd;

+ 20 - 25
src/router/index.js

@@ -23,7 +23,6 @@ const routes = [{
 				meta: {
 					icon: 'icon-shezhi_zuzhijiagou',
 					groupCode:'home',
-					identification:0,//大分类 下标 的标识,上边groupCode可以用同一个。
 				}
 			},
 			{
@@ -33,7 +32,6 @@ const routes = [{
 				meta: {
 					icon: 'icon-shezhi_zuzhijiagou',
 					groupCode:'abPoint',
-					identification:1,
 					jurisdiction :['employee']//什么权限隐藏
 				}
 			},
@@ -44,7 +42,6 @@ const routes = [{
 				meta: {
 					icon: 'icon-shezhi_zuzhijiagou',
 					groupCode:'abPoint',
-					identification:1,
 					jurisdiction :['creator']
 				}
 			},
@@ -55,7 +52,6 @@ const routes = [{
 				meta: {
 					icon: 'icon-PC_gongzuotai_renwu',
 					groupCode:'task',
-					identification:2,
 					jurisdiction :['employee']
 				}
 			  },
@@ -66,7 +62,6 @@ const routes = [{
 				meta: {
 					icon: 'icon-PC_gongzuotai_renwu',
 					groupCode:'task',
-					identification:2,
 				}
 			  },
 			  {
@@ -76,7 +71,6 @@ const routes = [{
 				meta: {
 					icon: 'icon-PC_gongzuotai_renwu',
 					groupCode:'task',
-					identification:2,
 					jurisdiction :['creator']
 				}
 			  },
@@ -87,7 +81,6 @@ const routes = [{
 				  meta: {
 					  icon: 'icon-shezhi_zuzhijiagou',
 					  groupCode:'ranking',
-					  identification:3,
 				  }
 			  },
 			  {
@@ -97,7 +90,6 @@ const routes = [{
 				  meta: {
 					  icon: 'icon-shezhi_jiaose',
 					  groupCode:'ranking',
-					  identification:3,
 				  }
 			  },
 			  {
@@ -107,7 +99,6 @@ const routes = [{
 				  meta: {
 					  icon: 'icon-shezhi_jiaose',
 					  groupCode:'ranking',
-					  identification:3,
 				  }
 			  },
 			  {
@@ -117,7 +108,6 @@ const routes = [{
 				  meta: {
 					  icon: 'icon-shezhi_jichushezhi',
 					  groupCode:'ranking',
-					  identification:3,
 				  }
 			  },
 			  {
@@ -127,7 +117,6 @@ const routes = [{
 				  meta: {
 					  icon: 'icon-shezhi_jichushezhi',
 					  groupCode:'ranking',
-					  identification:3,
 					  jurisdiction :['employee']
 				  }
 			  },
@@ -139,7 +128,6 @@ const routes = [{
 					icon: 'icon-shezhi_jifenguize',
 					groupCode:'ranking',
 					groupName:"统计",
-					identification:3,
 				}
 			  },
 			  {
@@ -149,7 +137,6 @@ const routes = [{
 				  meta: {
 					  icon: 'icon-shezhi_jichushezhi',
 					  groupCode:'ranking',
-					  identification:3,
 				  }
 			  },
 			  {
@@ -159,7 +146,6 @@ const routes = [{
 				  meta: {
 					  icon: 'icon-shezhi_jichushezhi',
 					  groupCode:'ranking',
-					  identification:3,
 					  jurisdiction :['employee']
 				  }
 			  },
@@ -170,7 +156,6 @@ const routes = [{
 				meta: {
 					icon: 'icon-shezhi_jichushezhi',
 					groupCode:'ranking',
-					identification:3,
 					jurisdiction :['dept_manager','employee']
 				}
 			  },
@@ -181,7 +166,6 @@ const routes = [{
 				meta: {
 					icon: 'icon-shezhi_zuzhijiagou',
 					groupCode:'set',
-					identification:4,
 					jurisdiction :['dept_manager','employee']
 				}
 			},
@@ -192,7 +176,6 @@ const routes = [{
 				meta: {
 					icon: 'icon-shezhi_jiaose',
 					groupCode:'set',
-					identification:4,
 					jurisdiction :['dept_manager','employee']
 				}
 			},
@@ -204,7 +187,6 @@ const routes = [{
 					icon: 'icon-shezhi_jifenguize',
 					groupCode:'set',
 					groupName:"设置",
-					identification:4,
 					jurisdiction :['dept_manager','employee']
 				}
 			},
@@ -215,7 +197,6 @@ const routes = [{
 				meta: {
 					icon: 'icon-shezhi_jichushezhi',
 					groupCode:'set',
-					identification:4,
 					jurisdiction :['dept_manager','employee']
 				}
 			},
@@ -226,7 +207,6 @@ const routes = [{
 				meta: {
 					icon: 'icon-kaoqin_kaoqinyuebaobiao',
 					groupCode:'set',
-					identification:4,
 					jurisdiction :['dept_manager','employee']
 				}
 			},
@@ -237,7 +217,16 @@ const routes = [{
 				meta: {
 					icon: 'icon-shezhi_zidongjifen',
 					groupCode:'set',
-					identification:4,
+					jurisdiction :['dept_manager','employee']
+				}
+			},
+			{
+				path: '/log',
+				name: '日志设置',
+				component: () => import(/* webpackChunkName: "log" */'@/views/set/log.vue'),
+				meta: {
+					icon: 'icon-shezhi_xitongpeizhi',
+					groupCode:'set',
 					jurisdiction :['dept_manager','employee']
 				}
 			},
@@ -248,20 +237,26 @@ const routes = [{
 				meta: {
 					icon: 'icon-shezhi_xitongpeizhi',
 					groupCode:'set',
-					identification:4,
 					jurisdiction :['dept_manager','employee']
 				}
 			},
-			
 			{
 				path: '/update_notice',
 				name: '公告列表',
-				component: () => import(/* webpackChunkName: "home" */'@/views/subassembly/update_notice.vue'),
+				component: () => import(/* webpackChunkName: "update_notice" */'@/views/subassembly/update_notice.vue'),
 				hidden: true,//侧边栏隐藏
 				meta: {
 					icon: 'icon-shezhi_gongdaolbiao',
 					groupCode:'abPoint',
-					identification:1,
+				}
+			},
+			{
+				path: '/approval_list',
+				name: '审批',
+				component: () => import(/* webpackChunkName: "approval_list" */'@/views/workbench/approval_list.vue'),
+				meta: {
+					icon: 'icon-shezhi_gongdaolbiao',
+					groupCode:'workbench',
 				}
 			},
 		]

+ 31 - 61
src/views/abPoint/apply_list.vue

@@ -1,5 +1,5 @@
 <template>
-	<div class="all" style="padding: 20px;">
+	<div class="all padding-20">
 		<el-tabs v-model="tabs" type="card">
 			<el-tab-pane label="申请通过" name="complete"></el-tab-pane>
 			<el-tab-pane label="待审批" name="waiting"></el-tab-pane>
@@ -51,14 +51,6 @@
 					{{ scope.row.remark.customize || scope.row.remark.rule }}
 				</template>
 			</el-table-column>
-			<!-- <el-table-column label="积分" prop="review_point" width="120">
-				<template slot-scope="scope">
-					<span>
-						<span v-show="scope.row.point > 0">+</span>
-						{{ scope.row.point }} B分
-					</span>
-				</template>
-			</el-table-column> -->
 			<el-table-column label="时间" prop="event_time" width="150"></el-table-column>
 			<template slot="empty">
 				<div class="nopoint_box" v-if="!formData.keyword">
@@ -117,31 +109,9 @@
 					<el-col :span="24" class="flex-box flex-v-ce">
 						<userImage :user_name="detail_info.employee_name" :img_url="detail_info.img_url" width="50px" height="50px" fontSize="1"></userImage>
 						<div class="user_text">
-							<p style="margin-left: 10px;">{{detail_info.employee_name}}</p>
-							<!-- 优化 -->
-							<!-- <div v-for="(item, index) in detail_info.process" :key="index" v-show="item.review_point != 0"> -->
+							<p style="margin-left: 10px;">{{ detail_info.employee_name }}</p>
 							<div v-show="detail_info.review_point != 0">
 								<p v-if="detail_info.status == 1">
-									<!-- <span
-										v-show="
-											(item.point !== 0 && item.review_point >= 0 && detail_info.item_prize_type == 1) ||
-												(item.point !== 0 && item.review_point >= 0 && detail_info.item_prize_type == -1) ||
-												(item.point !== 0 && item.review_point >= 0 && detail_info.item_prize_type == 0)
-										"
-										style="color:#f56c6c;font-size:16px;padding-left:8px"
-									>
-										+{{ item.review_point }}
-									</span>
-									<span
-										v-show="
-											(item.point !== 0 && item.review_point <= 0 && detail_info.item_prize_type == 2) ||
-												(item.point !== 0 && item.review_point <= 0 && detail_info.item_prize_type == -1) ||
-												(item.point !== 0 && item.review_point <= 0 && detail_info.item_prize_type == 0)
-										"
-										style="color:#67C23A;font-size:16px;padding-left:8px"
-									>
-										{{ item.review_point }}
-									</span> -->
 									<span
 										v-show="
 											(detail_info.review_point >= 0 && detail_info.item_prize_type == 1) ||
@@ -162,9 +132,7 @@
 									>
 										{{ detail_info.review_point }}
 									</span>
-									<span>
-										{{ detail_info.pt_id == 1 ? '绩效分' : detail_info.pt_id == 2 ? 'A分' : detail_info.pt_id == 3 ? 'B分' : '' }}
-									</span>
+									<span>{{ detail_info.pt_id == 1 ? '绩效分' : detail_info.pt_id == 2 ? 'A分' : detail_info.pt_id == 3 ? 'B分' : '' }}</span>
 								</p>
 							</div>
 						</div>
@@ -215,8 +183,8 @@
 						</el-steps>
 					</div>
 				</div>
-				<div class="btn_danger flex-box flex-center-center" v-if="detail_info.applyor_id==userId&&detail_info.status==0&&detail_info.source_type==2">
-				  <el-button type="danger" class="danger" @click="revocation" :loading="cx_loading">撤销</el-button>
+				<div class="btn_danger flex-box flex-center-center" v-if="detail_info.applyor_id == userId && detail_info.status == 0 && detail_info.source_type == 2">
+					<el-button type="danger" class="danger" @click="revocation" :loading="cx_loading">撤销</el-button>
 				</div>
 			</div>
 		</el-drawer>
@@ -251,9 +219,9 @@ export default {
 
 			dialogVisible: false,
 			itemIndex: 0,
-			selectId:'',
-			userId:'',
-			cx_loading:false
+			selectId: '',
+			userId: '',
+			cx_loading: false
 		};
 	},
 	components: {
@@ -271,31 +239,33 @@ export default {
 		}
 	},
 	mounted() {
-		this.userId=this.$getUserData().id
+		this.userId = this.$getUserData().id;
 		this.get_list();
 	},
 	methods: {
 		// 撤销奖扣
-		revocation(){
-			var that=this;
+		revocation() {
+			var that = this;
 			this.$confirm('撤销此项数据将不可恢复,是否撤销?', '提示', {
-				  confirmButtonText: '确定',
-				  cancelButtonText: '取消',
-				  type: 'warning'
-				}).then(() => {
-					let data = {review_id: that.selectId};
-					that.cx_loading = true;
-					that.$axios('post', '/api/integral/review/destroy', data).then(res => {
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				type: 'warning'
+			}).then(() => {
+				let data = { review_id: that.selectId };
+				that.cx_loading = true;
+				that.$axios('post', '/api/integral/review/destroy', data)
+					.then(res => {
 						if (res.data.code == 1) {
-							that.get_list()
+							that.get_list();
 						} else {
 							that.$message.error(res.data.data.msg);
 						}
-					}).finally(() => {
+					})
+					.finally(() => {
 						that.cx_loading = false;
 						that.detailShow = false;
 					});
-				})
+			});
 		},
 		handleCurrentChange(val) {
 			this.formData.page = val;
@@ -326,7 +296,7 @@ export default {
 				});
 		},
 		openDetail(item) {
-			this.selectId=item.id
+			this.selectId = item.id;
 			let data = {
 				review_id: item.id
 			};
@@ -349,12 +319,12 @@ export default {
 </script>
 
 <style scoped lang="scss">
-	.btn_danger{
-		 margin-top: 20px;
-	}
-	.btn_danger .danger{
-		width: 120px;
-	}
+.btn_danger {
+	margin-top: 20px;
+}
+.btn_danger .danger {
+	width: 120px;
+}
 .box {
 	background-color: #ffffff;
 	padding: 20px;
@@ -429,7 +399,7 @@ export default {
 }
 .text_ccc {
 	font-size: 16px;
-	color: #26A2FF;
+	color: #26a2ff;
 	margin-left: 10px;
 }
 ::v-deep .el-table tr:hover {

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

@@ -1,5 +1,5 @@
 <template>
-	<div class="all" style="padding: 20px;">
+	<div class="all padding-20">
 		<el-tabs v-model="tabs" type="card">
 			<el-tab-pane label="奖扣成功" name="success"></el-tab-pane>
 			<el-tab-pane label="待审批" name="waiting"></el-tab-pane>

+ 387 - 407
src/views/common/below/rewardTask.vue

@@ -1,66 +1,35 @@
 <template>
-  <div>
-    <!-- 悬赏任务弹窗 -->
-    <el-dialog
-      :title="showTitle"
-      :visible.sync="dialogVisible"
-      :close-on-click-modal="false"
-      :before-close="closeDialog"
-      width="600px">
-      <div v-loading="forTheTaskLoading">
-        <el-form :model="formData" ref="formData" label-width="80px">
-          <el-form-item label="任务内容" prop="task_name" :rules="[{ required: true, message: '请填写任务内容', trigger: 'blur' },{ min: 3, max: 20, message: '长度在 3 到 20 个字符', trigger: 'blur' }]">
-            <el-input type="textarea" rows="2" v-model="formData.task_name" placeholder="请输入任务内容(限20字)" class="reward_textarea" ></el-input>
-          </el-form-item>
+	<div>
+		<!-- 悬赏任务弹窗 -->
+		<el-dialog :title="showTitle" :visible.sync="dialogVisible" :close-on-click-modal="false" :before-close="closeDialog" width="600px">
+			<div v-loading="forTheTaskLoading">
+				<el-form :model="formData" ref="formData" label-width="80px">
+					<el-form-item
+						label="任务内容"
+						prop="task_name"
+						:rules="[{ required: true, message: '请填写任务内容', trigger: 'blur' }, { min: 3, max: 20, message: '长度在 3 到 20 个字符', trigger: 'blur' }]"
+					>
+						<el-input type="textarea" rows="2" v-model="formData.task_name" placeholder="请输入任务内容(限20字)" class="reward_textarea"></el-input>
+					</el-form-item>
 
-          <el-form-item label="任务积分" prop="base_point" :rules="[{ required: true, message: '请填写任务积分', trigger: 'blur' }]">
-            <el-input-number v-model="formData.base_point" :min="1" ></el-input-number>
-          </el-form-item>
-
-          <!-- <el-form-item label="执行人" v-if="formData.task_cycle == 0" prop="targets" :rules="[{ required: true, message: '请选择执行人', trigger: 'change' }]">
-            <el-row>
-              <el-col :span="18">
-                <el-input auto-complete="off" v-model="executorName" placeholder="请选择执行人"></el-input>
-                <div @click="show_approval_selector = true" style=" position: absolute; top: 0; right: 0; left: 0; bottom: 0; z-index: 9;"></div>
-              </el-col>
-            </el-row>
-            <EmployeeSelector
-              :employee_not_select="approval_not_select"
-              :employee_list="employee_list"
-              :isChecKedAll="true"
-              :can_select_employee="true"
-              :can_select_dept="false"
-              :multi="true"
-              :selected="approval_selected"
-              :visible.sync="show_approval_selector"
-              @confirm="approval_confirm"/>
-          </el-form-item> -->
-          <el-form-item label="审批人" prop="reviewer_id" :rules="[{ required: true, message: '请选择审批人', trigger: 'change' }]">
-            <el-row>
-              <el-col :span="18">
-                <el-input auto-complete="off" v-model="reviewerName" placeholder="请选择审批人"></el-input>
-                <div @click="show_reviewer_selector = true" style=" position: absolute; top: 0; right: 0; left: 0; bottom: 0; z-index: 9;"></div>
-              </el-col>
-            </el-row>
-            <!-- <EmployeeSelector
-              :employee_not_select="reviewer_not_select"
-              :employee_list="reviewer_employee_list"
-              :can_select_employee="true"
-              :can_select_dept="false"
-              :multi="false"
-              :selected="reviewer_selected"
-              :visible.sync="show_reviewer_selector"
-              @confirm="reviewer_confirm"/> -->
-
-              
+					<el-form-item label="任务积分" prop="base_point" :rules="[{ required: true, message: '请填写任务积分', trigger: 'blur' }]">
+						<el-input-number v-model="formData.base_point" :min="1"></el-input-number>
+					</el-form-item>
+					<el-form-item label="审批人" prop="reviewer_id" :rules="[{ required: true, message: '请选择审批人', trigger: 'change' }]">
+						<el-row>
+							<el-col :span="18">
+								<el-input auto-complete="off" v-model="reviewerName" placeholder="请选择审批人"></el-input>
+								<div @click="show_reviewer_selector = true" style=" position: absolute; top: 0; right: 0; left: 0; bottom: 0; z-index: 9;"></div>
+							</el-col>
+						</el-row>
 						<el-dialog title="选择审批人" width="640px" :visible.sync="show_reviewer_selector" append-to-body :before-close="handleClose">
 							<EmployeeSelector
 								v-if="show_reviewer_selector"
 								ref="members"
-                :multi="false"
+								:multi="false"
 								:employee_list="reviewer_employee_list"
 								:can_select_dept="false"
-                :use_Administrator_list="true"
+								:use_Administrator_list="true"
 								:selected="reviewer_selected"
 								@confirm="reviewer_confirm"
 							/>
@@ -69,371 +38,382 @@
 								<el-button type="primary" @click="submitMembers('members')">确 定</el-button>
 							</span>
 						</el-dialog>
+					</el-form-item>
 
-          </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="截止日期" prop="expire_time" v-if="formData.task_cycle == 0" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
-            <el-date-picker
-              v-model="formData.expire_time"
-              type="datetime"
-              placeholder="选择日期时间"
-              format="yyyy-MM-dd HH:mm"
-              value-format="yyyy-MM-dd HH:mm"
-              default-time="18:00"
-              >
-            </el-date-picker>
-          </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="截止日期" prop="task_expire_day" v-if="formData.task_cycle == 1" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
-            <el-select v-model="formData.task_expire_day" placeholder="请选择截止日期">
-              <el-option
-                v-for="item in columns1"
-                :key="item.value"
-                :label="item.name"
-                :value="item.value">
-              </el-option>
-            </el-select>
-          </el-form-item>
+					<el-form-item label="截止日期" prop="expire_time" v-if="formData.task_cycle == 0" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
+						<el-date-picker
+							v-model="formData.expire_time"
+							type="datetime"
+							placeholder="选择日期时间"
+							format="yyyy-MM-dd HH:mm"
+							value-format="yyyy-MM-dd HH:mm"
+							default-time="18:00"
+						></el-date-picker>
+					</el-form-item>
 
-          <el-form-item label="截止日期" prop="task_expire_day" v-if="formData.task_cycle == 2" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
-            <el-select v-model="formData.task_expire_day" placeholder="请选择截止日期">
-              <el-option
-                v-for="item in columns2"
-                :key="item.value"
-                :label="item.name"
-                :value="item.value">
-              </el-option>
-            </el-select>
-          </el-form-item>
+					<el-form-item label="截止日期" prop="task_expire_day" v-if="formData.task_cycle == 1" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
+						<el-select v-model="formData.task_expire_day" placeholder="请选择截止日期">
+							<el-option v-for="item in columns1" :key="item.value" :label="item.name" :value="item.value"></el-option>
+						</el-select>
+					</el-form-item>
 
-          <el-form-item label="截止日期" prop="task_expire_day" v-if="formData.task_cycle == 3" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
-            <el-select v-model="formData.task_expire_day" placeholder="请选择截止日期">
-              <el-option
-                v-for="item in columns3"
-                :key="item.value"
-                :label="item.name"
-                :value="item.value">
-              </el-option>
-            </el-select>
-          </el-form-item>
+					<el-form-item label="截止日期" prop="task_expire_day" v-if="formData.task_cycle == 2" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
+						<el-select v-model="formData.task_expire_day" placeholder="请选择截止日期">
+							<el-option v-for="item in columns2" :key="item.value" :label="item.name" :value="item.value"></el-option>
+						</el-select>
+					</el-form-item>
 
-          <el-form-item label="任务备注" prop="task_remark" :rules="[{ max: 100 ,message: '长度不能超过 100 个字', trigger: 'blur' }]">
-            <el-input type="textarea" :rows="5" v-model="formData.task_remark" placeholder="请输入任务内容(限100字)"></el-input>
-          </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>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="谁可以看" prop="dept_ids">
-            <!-- <el-row>
-              <el-col :span="18">
-                <el-input auto-complete="off" v-model="deptVisibleName" placeholder="请选中部门的人可领取"></el-input>
-                <div @click="show_employee_selector = true" style=" position: absolute; top: 0; right: 0; left: 0; bottom: 0; z-index: 9;"></div>
-              </el-col>
-            </el-row> -->
-            <!-- <EmployeeSelector
-              :employee_not_select="dept_not_select"
-              :employee_list="dept_employee_list"
-              :isChecKedAll="false"
-              :can_select_employee="false"
-              :can_select_dept="true"
-              :multi="true"
-              :selected="dept_selected"
-              :visible.sync="show_employee_selector"
-              @confirm="dept_confirm"/> -->
-              
-						<!-- <el-dialog title="选择部门" width="640px" :visible.sync="show_employee_selector" append-to-body :before-close="handleClose">
-							<EmployeeSelector
-								v-if="show_employee_selector"
-								ref="members1"
-								:employee_list="dept_employee_list"
-                :selectDept="true"
-								:selected="dept_selected"
-								@confirm="dept_confirm"
-							/>
-							<span slot="footer" class="dialog-footer">
-								<el-button @click="show_employee_selector = false">取 消</el-button>
-								<el-button type="primary" @click="submitMembers('members1')">确 定</el-button>
-							</span>
-						</el-dialog> -->
+					<el-form-item label="截止日期" prop="task_expire_day" v-if="formData.task_cycle == 3" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
+						<el-select v-model="formData.task_expire_day" placeholder="请选择截止日期">
+							<el-option v-for="item in columns3" :key="item.value" :label="item.name" :value="item.value"></el-option>
+						</el-select>
+					</el-form-item>
 
-            <el-cascader
-              size="medium"
-              class="date-picker-width"
-              v-model="dept_name" 
-              @change="handleChange"
-              :options="dept_tree"
-              collapse-tags
-              :props="{ checkStrictly: true,value:'id',label:'name',multiple: true, children:'_child'}"
-              ref="dept"
-              clearable
-              placeholder="全公司"
-            ></el-cascader><span style="color:#b5b7bb;padding-left:10px;">选中的部门可查看或领取任务</span>
-          </el-form-item>
+					<el-form-item label="任务备注" prop="task_remark" :rules="[{ max: 100, message: '长度不能超过 100 个字', trigger: 'blur' }]">
+						<el-input type="textarea" :rows="5" v-model="formData.task_remark" placeholder="请输入任务内容(限100字)"></el-input>
+					</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>
+						</el-select>
+					</el-form-item>
+					<el-form-item label="谁可以看" prop="dept_ids">
+						<el-cascader
+							size="medium"
+							class="date-picker-width"
+							v-model="dept_name"
+							@change="handleChange"
+							:options="dept_tree"
+							collapse-tags
+							:props="{ checkStrictly: true, value: 'id', label: 'name', multiple: true, children: '_child' }"
+							ref="dept"
+							clearable
+							placeholder="全公司"
+						></el-cascader>
+						<span style="color:#b5b7bb;padding-left:10px;">选中的部门可查看或领取任务</span>
+					</el-form-item>
 
-          <div style="margin-left: 80px; margin-bottom: 8px;">以天为单位,每逾期一天扣分</div>
-          <el-form-item label="逾期扣分" prop="timeout_deduction_point">
-            <el-input v-model="formData.timeout_deduction_point" oninput="value=value.replace(/[^\d]/g,'')" placeholder="请输入数值"></el-input>
-          </el-form-item> 
+					<div style="margin-left: 80px; margin-bottom: 8px;">以天为单位,每逾期一天扣分</div>
+					<el-form-item label="逾期扣分" prop="timeout_deduction_point">
+						<el-input v-model="formData.timeout_deduction_point" oninput="value=value.replace(/[^\d]/g,'')" placeholder="请输入数值"></el-input>
+					</el-form-item>
 
-          <el-form-item>
-            <el-button type="primary" @click="sub('formData')">提交</el-button>
-            <el-button @click="resetForm('formData')">取消</el-button>
-          </el-form-item>
-          
-        </el-form>
-      </div>
-    </el-dialog>
-  </div>
+					<el-form-item>
+						<el-button type="primary" @click="sub('formData')">提交</el-button>
+						<el-button @click="resetForm('formData')">取消</el-button>
+					</el-form-item>
+				</el-form>
+			</div>
+		</el-dialog>
+	</div>
 </template>
 
 <script>
-  import moment from 'moment'
-  import EmployeeSelector from '@/components/EmployeeSelector.vue'
-  export default {
-    name: 'bonusPoints',
-    props:{
-      employee_not_select: {
-        type: Array,
-        default: () => {
-          return []
-        }
-      },
-      dialogVisible: {
-        type: Boolean,
-        default: false
-      },
-      showTitle: {
-        type: String,
-        default: ''
-      }
-    },
-    data() {
-      return {
-        dept_name: [],
-        dept_tree: [],
-        forTheTaskLoading:false,
-        formData: {
-          task_type: '1',
-          pt_id: 2,
-          task_name: '',
-          task_remark: '',
-          base_point: '',
-          expire_time: moment().format('YYYY-MM-DD 18:00'),
-          task_expire_day: '',
-          targets: [],
-          reviewer_id: '',
-          task_cycle: 0,
-          timeout_deduction_point: null,
-          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: [],
-        reviewer_employee_list: [],
-        reviewer_selected: {dept: [],employee:[]},
-        show_reviewer_selector: false,
+import moment from 'moment';
+import EmployeeSelector from '@/components/EmployeeSelector.vue';
+export default {
+	name: 'bonusPoints',
+	props: {
+		employee_not_select: {
+			type: Array,
+			default: () => {
+				return [];
+			}
+		},
+		dialogVisible: {
+			type: Boolean,
+			default: false
+		},
+		showTitle: {
+			type: String,
+			default: ''
+		}
+	},
+	data() {
+		return {
+			dept_name: [],
+			dept_tree: [],
+			forTheTaskLoading: false,
+			formData: {
+				task_type: '1',
+				pt_id: 2,
+				task_name: '',
+				task_remark: '',
+				base_point: '',
+				expire_time: moment().format('YYYY-MM-DD 18:00'),
+				task_expire_day: '',
+				targets: [],
+				reviewer_id: '',
+				task_cycle: 0,
+				timeout_deduction_point: null,
+				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: [],
+			reviewer_employee_list: [],
+			reviewer_selected: { dept: [], employee: [] },
+			show_reviewer_selector: false,
 
-        // 重复周期
-        task_cycle_arr: [
-          {value:  0, name: '不重复'}, 
-          {value:  1, name: '每天重复'}, 
-          {value:  2, name: '每周重复'}, 
-          {value:  3, name: '每月重复'}
-        ],
-        // 周期时间
-        columns1: [{name:'01:00', value: 1}, {name:'02:00', value: 2}, {name:'03:00', value: 3}, {name:'04:00', value: 4}, {name:'05:00', value: 5}, {name:'06:00', value: 6}, {name:'07:00', value: 7}, {name:'08:00', value: 8}, {name:'09:00', value: 9}, {name:'10:00', value: 10}, {name:'11:00', value: 11}, {name:'12:00', value: 12}, {name:'13:00', value: 13}, {name:'14:00', value: 14}, {name:'15:00', value: 15}, {name:'16:00', value: 16}, {name:'17:00', value: 17}, {name:'18:00', value: 18}, {name:'19:00', value: 19}, {name:'20:00', value: 20}, {name:'21:00', value: 21}, {name:'22:00', value: 22}, {name:'23:00', value: 23}, {name:'24:00', value: 24}],
-        columns2: [{name: '周一', value: 1}, {name: '周二', value: 2}, {name: '周三', value: 3}, {name: '周四', value: 4}, {name: '周五', value: 5}, {name: '周六', value: 6}, {name: '周日', value: 7}],
-        columns3: [{name:'1号', value: 1},{name:'2号', value: 2},{name:'3号', value: 3},{name:'4号', value: 4},{name:'5号', value: 5},{name:'6号', value: 6},{name:'7号', value: 7},{name:'8号', value: 8},{name:'9号', value: 9},{name:'10号', value: 10},{name:'11号', value: 11},{name:'12号', value: 12},{name:'13号', value: 13},{name:'14号', value: 14},{name:'15号', value: 15},{name:'16号', value: 16},{name:'17号', value: 17},{name:'18号', value: 18},{name:'19号', value: 19},{name:'20号', value: 20},{name:'21号', value: 21},{name:'22号', value: 22},{name:'23号', value: 23},{name:'24号', value: 24},{name:'25号', value: 25},{name:'26号', value: 26},{name:'27号', value: 27},{name:'28号', value: 28},{name:'29号', value: 29},{name:'30号', value: 30},{name:'31号', value: 31}],
+			// 重复周期
+			task_cycle_arr: [{ value: 0, name: '不重复' }, { value: 1, name: '每天重复' }, { value: 2, name: '每周重复' }, { value: 3, name: '每月重复' }],
+			// 周期时间
+			columns1: [
+				{ name: '01:00', value: 1 },
+				{ name: '02:00', value: 2 },
+				{ name: '03:00', value: 3 },
+				{ name: '04:00', value: 4 },
+				{ name: '05:00', value: 5 },
+				{ name: '06:00', value: 6 },
+				{ name: '07:00', value: 7 },
+				{ name: '08:00', value: 8 },
+				{ name: '09:00', value: 9 },
+				{ name: '10:00', value: 10 },
+				{ name: '11:00', value: 11 },
+				{ name: '12:00', value: 12 },
+				{ name: '13:00', value: 13 },
+				{ name: '14:00', value: 14 },
+				{ name: '15:00', value: 15 },
+				{ name: '16:00', value: 16 },
+				{ name: '17:00', value: 17 },
+				{ name: '18:00', value: 18 },
+				{ name: '19:00', value: 19 },
+				{ name: '20:00', value: 20 },
+				{ name: '21:00', value: 21 },
+				{ name: '22:00', value: 22 },
+				{ name: '23:00', value: 23 },
+				{ name: '24:00', value: 24 }
+			],
+			columns2: [
+				{ name: '周一', value: 1 },
+				{ name: '周二', value: 2 },
+				{ name: '周三', value: 3 },
+				{ name: '周四', value: 4 },
+				{ name: '周五', value: 5 },
+				{ name: '周六', value: 6 },
+				{ name: '周日', value: 7 }
+			],
+			columns3: [
+				{ name: '1号', value: 1 },
+				{ name: '2号', value: 2 },
+				{ name: '3号', value: 3 },
+				{ name: '4号', value: 4 },
+				{ name: '5号', value: 5 },
+				{ name: '6号', value: 6 },
+				{ name: '7号', value: 7 },
+				{ name: '8号', value: 8 },
+				{ name: '9号', value: 9 },
+				{ name: '10号', value: 10 },
+				{ name: '11号', value: 11 },
+				{ name: '12号', value: 12 },
+				{ name: '13号', value: 13 },
+				{ name: '14号', value: 14 },
+				{ name: '15号', value: 15 },
+				{ name: '16号', value: 16 },
+				{ name: '17号', value: 17 },
+				{ name: '18号', value: 18 },
+				{ name: '19号', value: 19 },
+				{ name: '20号', value: 20 },
+				{ name: '21号', value: 21 },
+				{ name: '22号', value: 22 },
+				{ name: '23号', value: 23 },
+				{ name: '24号', value: 24 },
+				{ name: '25号', value: 25 },
+				{ name: '26号', value: 26 },
+				{ name: '27号', value: 27 },
+				{ name: '28号', value: 28 },
+				{ name: '29号', value: 29 },
+				{ name: '30号', value: 30 },
+				{ name: '31号', value: 31 }
+			],
 
-        // 部门可见
-        deptVisibleName: null,
-        dept_not_select: [],
-        dept_employee_list: [],
-        dept_selected: {dept: [],employee:[]},
-        show_employee_selector: false,
-      }
-    },
-    components: {EmployeeSelector},
-    watch:{
-      'formData.task_cycle'(val){
-        if (val) {
-          this.formData.task_expire_day = 1
-        }else{
-          this.formData.expire_time = moment().format('YYYY-MM-DD 18:00')
-        }
-      },
-    },
-    mounted() {
-      this.point_types = JSON.parse(localStorage.getItem('types'))
-		  this.getDepartment();
-    },
-    methods: {
-      handleChange(val){
-        console.log(this.dept_name)
-        let data = []
-        for(let i in val){
-          data.push(val[i][val[i].length -1])
-        }
-        this.formData.dept_ids = data
-      },
-      submitMembers(name) {
-        this.$refs[name].confirm(); //调用组件的confirm();
-      },
-      //关闭
-      handleClose(done) {
-        done();
-      },
-      sub(formName){
-        this.$refs[formName].validate((valid) => {
-          if (valid) {
-            this.saveFun(formName)
-          }
-        });
-      },
-      resetForm(formName){
-        this.$emit('update:dialogVisible', false)
-        this.$refs[formName].resetFields();
-        this.executorName = ''
-        this.reviewerName = ''
-        this.dept_name = []
-        this.reviewer_selected = {dept: [],employee:[]}
-        this.dept_selected = {dept: [],employee:[]}
-      },
-      // 提交
-      saveFun(formName){
-        // 没有选择重复任务的时候
-        // /api/integral/task/publish
-        // 选择重复任务之后
-        // /api/integral/schedule/publish/task
-        this.forTheTaskLoading = true
-        let self = this
-        let data = JSON.parse(JSON.stringify(self.formData))
-        if(data.task_cycle == 0){
-          delete data.task_cycle
-          delete data.task_expire_day
-          delete data.targets
-          data.task_remark?'':delete data.task_remark
-          data.timeout_deduction_point?'':delete data.timeout_deduction_point
-        }else{
-          delete data.expire_time
-          data.task_remark?'':delete data.task_remark
-          data.timeout_deduction_point?'':delete data.timeout_deduction_point
-        }
-        self.$axios('post',self.formData.task_cycle == 0?'/api/integral/task/publish':'/api/integral/schedule/publish/task',data
-        ).then(res => {
-          if(res.data.code == 1){
-            this.$parent.get_list()
-            self.$emit('update:dialogVisible', false)
-            self.$refs[formName].resetFields();
-            self.$message.success(res.data.msg)
-            self.executorName = ''
-            self.reviewerName = ''
-            this.dept_name = []
-            this.reviewer_selected = {dept: [],employee:[]}
-            this.dept_selected = {dept: [],employee:[]}
-            this.deptVisibleName = ''
-          }else{
-            self.$message.error(res.data.msg)
-          }
-        }).finally(()=>{
-          setTimeout(()=>{
-            this.forTheTaskLoading = false
-          },300)
-        })
+			// 部门可见
+			deptVisibleName: null,
+			dept_not_select: [],
+			dept_employee_list: [],
+			dept_selected: { dept: [], employee: [] },
+			show_employee_selector: false
+		};
+	},
+	components: { EmployeeSelector },
+	watch: {
+		'formData.task_cycle'(val) {
+			if (val) {
+				this.formData.task_expire_day = 1;
+			} else {
+				this.formData.expire_time = moment().format('YYYY-MM-DD 18:00');
+			}
+		}
+	},
+	mounted() {
+		this.point_types = JSON.parse(localStorage.getItem('types'));
+		this.getDepartment();
+	},
+	methods: {
+		handleChange(val) {
+			console.log(this.dept_name);
+			let data = [];
+			for (let i in val) {
+				data.push(val[i][val[i].length - 1]);
+			}
+			this.formData.dept_ids = data;
+		},
+		submitMembers(name) {
+			this.$refs[name].confirm(); //调用组件的confirm();
+		},
+		//关闭
+		handleClose(done) {
+			done();
+		},
+		sub(formName) {
+			this.$refs[formName].validate(valid => {
+				if (valid) {
+					this.saveFun(formName);
+				}
+			});
+		},
+		resetForm(formName) {
+			this.$emit('update:dialogVisible', false);
+			this.$refs[formName].resetFields();
+			this.executorName = '';
+			this.reviewerName = '';
+			this.dept_name = [];
+			this.reviewer_selected = { dept: [], employee: [] };
+			this.dept_selected = { dept: [], employee: [] };
+		},
+		// 提交
+		saveFun(formName) {
+			// 没有选择重复任务的时候
+			// /api/integral/task/publish
+			// 选择重复任务之后
+			// /api/integral/schedule/publish/task
+			this.forTheTaskLoading = true;
+			let self = this;
+			let data = JSON.parse(JSON.stringify(self.formData));
+			if (data.task_cycle == 0) {
+				delete data.task_cycle;
+				delete data.task_expire_day;
+				delete data.targets;
+				data.task_remark ? '' : delete data.task_remark;
+				data.timeout_deduction_point ? '' : delete data.timeout_deduction_point;
+			} else {
+				delete data.expire_time;
+				data.task_remark ? '' : delete data.task_remark;
+				data.timeout_deduction_point ? '' : delete data.timeout_deduction_point;
+			}
+			self.$axios('post', self.formData.task_cycle == 0 ? '/api/integral/task/publish' : '/api/integral/schedule/publish/task', data)
+				.then(res => {
+					if (res.data.code == 1) {
+						this.$parent.get_list();
+						self.$emit('update:dialogVisible', false);
+						self.$refs[formName].resetFields();
+						self.$message.success(res.data.msg);
+						self.executorName = '';
+						self.reviewerName = '';
+						this.dept_name = [];
+						this.reviewer_selected = { dept: [], employee: [] };
+						this.dept_selected = { dept: [], employee: [] };
+						this.deptVisibleName = '';
+					} else {
+						self.$message.error(res.data.msg);
+					}
+				})
+				.finally(() => {
+					setTimeout(() => {
+						this.forTheTaskLoading = false;
+					}, 300);
+				});
+		},
+		// // 执行者
+		// approval_confirm(data){
+		//   this.approval_selected = {dept: [],employee:[]}
+		//   this.formData.targets = []
+		//   this.executorName = ''
+		//   if (data.employee !== null && data.employee.length != 0) {
+		//     this.approval_selected = data
+		//     data.employee.forEach(element => {
+		// 			this.formData.targets.push(element.id)
+		// 			this.executorName += (element.name+',')
+		//     });
+		//   }
+		// },
+		// 执行者 end
+		// 审核人
+		reviewer_confirm(data) {
+			this.reviewer_selected = { dept: [], employee: [] };
+			this.formData.reviewer_id = '';
+			this.reviewerName = '';
+			if (data.employee !== null && data.employee.length != 0) {
+				this.reviewer_selected = data;
+				this.formData.reviewer_id = data.employee[0].id;
+				this.reviewerName = data.employee[0].name;
+			}
+			this.show_reviewer_selector = false;
+		},
+		// 审核人 end
+		// 部门可见
+		dept_confirm(data) {
+			this.dept_selected = { dept: [], employee: [] };
+			this.formData.dept_ids = [];
+			this.deptVisibleName = '';
+			if (data.dept !== null && data.dept.length != 0) {
+				this.dept_selected = data;
+				data.dept.forEach(element => {
+					this.formData.dept_ids.push(element.dept_id);
+					this.deptVisibleName += element.dept_name + ',';
+				});
+			}
+			this.show_employee_selector = false;
+		},
+		// 部门可见 end
+		closeDialog() {
+			this.resetForm('formData');
+			// this.$emit('update:dialogVisible', false)
+		},
 
-      },
-      // // 执行者
-      // approval_confirm(data){
-      //   this.approval_selected = {dept: [],employee:[]}
-      //   this.formData.targets = []
-      //   this.executorName = ''
-      //   if (data.employee !== null && data.employee.length != 0) {
-      //     this.approval_selected = data
-      //     data.employee.forEach(element => {
-			// 			this.formData.targets.push(element.id)
-			// 			this.executorName += (element.name+',')
-      //     });
-      //   }
-      // },
-      // 执行者 end
-      // 审核人
-      reviewer_confirm(data){
-        this.reviewer_selected = {dept: [],employee:[]}
-        this.formData.reviewer_id = ''
-        this.reviewerName = ''
-        if (data.employee !== null && data.employee.length != 0) {
-          this.reviewer_selected = data
-          this.formData.reviewer_id = data.employee[0].id
-          this.reviewerName = data.employee[0].name
-        }
-        this.show_reviewer_selector = false
-      },
-      // 审核人 end
-      // 部门可见
-      dept_confirm(data){
-        this.dept_selected = {dept: [],employee:[]}
-        this.formData.dept_ids = []
-        this.deptVisibleName = ''
-        if (data.dept !== null && data.dept.length != 0) {
-          this.dept_selected = data
-          data.dept.forEach(element => {
-						this.formData.dept_ids.push(element.dept_id)
-						this.deptVisibleName += (element.dept_name+',')
-          });
-        }
-        this.show_employee_selector = false
-      },
-      // 部门可见 end
-      closeDialog(){
-        this.resetForm('formData')
-        // this.$emit('update:dialogVisible', false)
-      },
-      
-      //获取部门
-      getDepartment() {
-        this.$axios('get','/api/department/tree').then(res => {
-          this.dept_tree =this.getTreeData(res.data.data.list);
-        });
-      },
-      // 递归判断列表,把最后的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;
-      },
-    }
-  }
+		//获取部门
+		getDepartment() {
+			this.$axios('get', '/api/department/tree').then(res => {
+				this.dept_tree = this.getTreeData(res.data.data.list);
+			});
+		},
+		// 递归判断列表,把最后的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;
+		}
+	}
+};
 </script>
 <style lang="scss">
-  // .el-cascader-menu .el-cascader-menu__wrap .el-scrollbar__view li.el-cascader-node {
-  //   height: auto;
-  //   max-width: 500px;
-  //   .el-cascader-node__label {
-  //     white-space: initial;
-  //     overflow: initial;
-  //     text-overflow: initial;
-  //   }
-  // }
-</style>
+// .el-cascader-menu .el-cascader-menu__wrap .el-scrollbar__view li.el-cascader-node {
+//   height: auto;
+//   max-width: 500px;
+//   .el-cascader-node__label {
+//     white-space: initial;
+//     overflow: initial;
+//     text-overflow: initial;
+//   }
+// }
+</style>

+ 471 - 482
src/views/common/below/rewardTaskAmend.vue

@@ -1,66 +1,35 @@
 <template>
-  <div>
-    <!-- 悬赏任务弹窗 -->
-    <el-dialog
-      :title="showTitle"
-      :visible.sync="dialogVisible"
-      :close-on-click-modal="false"
-      :before-close="closeDialog"
-      width="600px">
-      <div v-loading="forTheTaskLoading">
-        <el-form :model="formData" ref="formData" label-width="80px">
-          <el-form-item label="任务内容" prop="task_name" :rules="[{ required: true, message: '请填写任务内容', trigger: 'blur' },{ min: 3, max: 20, message: '长度在 3 到 20 个字符', trigger: 'blur' }]">
-            <el-input type="textarea" rows="2" v-model="formData.task_name" placeholder="请输入任务内容(限20字)" class="reward_textarea" ></el-input>
-          </el-form-item>
-
-          <el-form-item label="任务积分" prop="base_point" :rules="[{ required: true, message: '请填写任务积分', trigger: 'blur' }]">
-            <el-input-number v-model="formData.base_point" :min="1" ></el-input-number>
-          </el-form-item>
-
-          <!-- <el-form-item label="执行人" v-if="formData.task_cycle == 0" prop="targets" :rules="[{ required: true, message: '请选择执行人', trigger: 'change' }]">
-            <el-row>
-              <el-col :span="18">
-                <el-input auto-complete="off" v-model="executorName" placeholder="请选择执行人"></el-input>
-                <div @click="show_approval_selector = true" style=" position: absolute; top: 0; right: 0; left: 0; bottom: 0; z-index: 9;"></div>
-              </el-col>
-            </el-row>
-            <EmployeeSelector
-              :employee_not_select="approval_not_select"
-              :employee_list="employee_list"
-              :isChecKedAll="true"
-              :can_select_employee="true"
-              :can_select_dept="false"
-              :multi="true"
-              :selected="approval_selected"
-              :visible.sync="show_approval_selector"
-              @confirm="approval_confirm"/>
-          </el-form-item> -->
-          <el-form-item label="审批人" prop="reviewer_id" :rules="[{ required: true, message: '请选择审批人', trigger: 'change' }]">
-            <el-row>
-              <el-col :span="18">
-                <el-input auto-complete="off" v-model="reviewerName" placeholder="请选择审批人"></el-input>
-                <div @click="show_reviewer_selector = true" style=" position: absolute; top: 0; right: 0; left: 0; bottom: 0; z-index: 9;"></div>
-              </el-col>
-            </el-row>
-            <!-- <EmployeeSelector
-              :employee_not_select="reviewer_not_select"
-              :employee_list="reviewer_employee_list"
-              :can_select_employee="true"
-              :can_select_dept="false"
-              :multi="false"
-              :selected="reviewer_selected"
-              :visible.sync="show_reviewer_selector"
-              @confirm="reviewer_confirm"/> -->
-              
+	<div>
+		<!-- 悬赏任务弹窗 -->
+		<el-dialog :title="showTitle" :visible.sync="dialogVisible" :close-on-click-modal="false" :before-close="closeDialog" width="600px">
+			<div v-loading="forTheTaskLoading">
+				<el-form :model="formData" ref="formData" label-width="80px">
+					<el-form-item
+						label="任务内容"
+						prop="task_name"
+						:rules="[{ required: true, message: '请填写任务内容', trigger: 'blur' }, { min: 3, max: 20, message: '长度在 3 到 20 个字符', trigger: 'blur' }]"
+					>
+						<el-input type="textarea" rows="2" v-model="formData.task_name" placeholder="请输入任务内容(限20字)" class="reward_textarea"></el-input>
+					</el-form-item>
+					<el-form-item label="任务积分" prop="base_point" :rules="[{ required: true, message: '请填写任务积分', trigger: 'blur' }]">
+						<el-input-number v-model="formData.base_point" :min="1"></el-input-number>
+					</el-form-item>
+					<el-form-item label="审批人" prop="reviewer_id" :rules="[{ required: true, message: '请选择审批人', trigger: 'change' }]">
+						<el-row>
+							<el-col :span="18">
+								<el-input auto-complete="off" v-model="reviewerName" placeholder="请选择审批人"></el-input>
+								<div @click="show_reviewer_selector = true" style=" position: absolute; top: 0; right: 0; left: 0; bottom: 0; z-index: 9;"></div>
+							</el-col>
+						</el-row>
 						<el-dialog title="选择审批人" width="640px" :visible.sync="show_reviewer_selector" append-to-body :before-close="handleClose">
 							<EmployeeSelector
 								v-if="show_reviewer_selector"
 								ref="members"
-                :multi="false"
+								:multi="false"
 								:isCreatorSelect="false"
 								:employee_list="reviewer_employee_list"
 								:can_select_dept="false"
-                :use_Administrator_list="true"
+								:use_Administrator_list="true"
 								:selected="reviewer_selected"
 								@confirm="reviewer_confirm"
 							/>
@@ -69,453 +38,473 @@
 								<el-button type="primary" @click="submitMembers('members')">确 定</el-button>
 							</span>
 						</el-dialog>
+					</el-form-item>
 
-          </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="积分类型" 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="截止日期" prop="expire_time" v-if="formData.task_cycle == 0" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
-            <el-date-picker
-              v-model="formData.expire_time"
-              type="datetime"
-              placeholder="选择日期时间"
-              format="yyyy-MM-dd HH:mm"
-              value-format="yyyy-MM-dd HH:mm"
-              default-time="18:00"
-              >
-            </el-date-picker>
-          </el-form-item>
+					<el-form-item label="截止日期" prop="expire_time" v-if="formData.task_cycle == 0" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
+						<el-date-picker
+							v-model="formData.expire_time"
+							type="datetime"
+							placeholder="选择日期时间"
+							format="yyyy-MM-dd HH:mm"
+							value-format="yyyy-MM-dd HH:mm"
+							default-time="18:00"
+						></el-date-picker>
+					</el-form-item>
 
-          <el-form-item label="截止日期" prop="task_expire_day" v-if="formData.task_cycle == 1" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
-            <el-select v-model="formData.task_expire_day" placeholder="请选择截止日期">
-              <el-option
-                v-for="item in columns1"
-                :key="item.value"
-                :label="item.name"
-                :value="item.value">
-              </el-option>
-            </el-select>
-          </el-form-item>
+					<el-form-item label="截止日期" prop="task_expire_day" v-if="formData.task_cycle == 1" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
+						<el-select v-model="formData.task_expire_day" placeholder="请选择截止日期">
+							<el-option v-for="item in columns1" :key="item.value" :label="item.name" :value="item.value"></el-option>
+						</el-select>
+					</el-form-item>
 
-          <el-form-item label="截止日期" prop="task_expire_day" v-if="formData.task_cycle == 2" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
-            <el-select v-model="formData.task_expire_day" placeholder="请选择截止日期">
-              <el-option
-                v-for="item in columns2"
-                :key="item.value"
-                :label="item.name"
-                :value="item.value">
-              </el-option>
-            </el-select>
-          </el-form-item>
+					<el-form-item label="截止日期" prop="task_expire_day" v-if="formData.task_cycle == 2" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
+						<el-select v-model="formData.task_expire_day" placeholder="请选择截止日期">
+							<el-option v-for="item in columns2" :key="item.value" :label="item.name" :value="item.value"></el-option>
+						</el-select>
+					</el-form-item>
 
-          <el-form-item label="截止日期" prop="task_expire_day" v-if="formData.task_cycle == 3" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
-            <el-select v-model="formData.task_expire_day" placeholder="请选择截止日期">
-              <el-option
-                v-for="item in columns3"
-                :key="item.value"
-                :label="item.name"
-                :value="item.value">
-              </el-option>
-            </el-select>
-          </el-form-item>
+					<el-form-item label="截止日期" prop="task_expire_day" v-if="formData.task_cycle == 3" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
+						<el-select v-model="formData.task_expire_day" placeholder="请选择截止日期">
+							<el-option v-for="item in columns3" :key="item.value" :label="item.name" :value="item.value"></el-option>
+						</el-select>
+					</el-form-item>
 
-          <el-form-item label="任务描述" prop="task_remark" :rules="[{ max: 100 ,message: '长度不能超过 100 个字', trigger: 'blur' }]">
-            <el-input type="textarea" :rows="5" v-model="formData.task_remark" placeholder="请输入任务内容(限100字)"></el-input>
-          </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>
-            </el-select>
-          </el-form-item> -->
-          <el-form-item label="谁可以看" prop="dept_ids">
-            <!-- <el-row>
-              <el-col :span="18">
-                <el-input auto-complete="off" v-model="deptVisibleName" placeholder="请选中部门的人可领取"></el-input>
-                <div @click="show_employee_selector = true" style=" position: absolute; top: 0; right: 0; left: 0; bottom: 0; z-index: 9;"></div>
-              </el-col>
-            </el-row> -->
-            <!-- <EmployeeSelector
-              :employee_not_select="dept_not_select"
-              :employee_list="dept_employee_list"
-              :isChecKedAll="false"
-              :can_select_employee="false"
-              :can_select_dept="true"
-              :multi="true"
-              :selected="dept_selected"
-              :visible.sync="show_employee_selector"
-              @confirm="dept_confirm"/> -->
-						
-            <el-cascader
-              size="medium"
-              class="date-picker-width"
-              v-model="dept_name" 
-              @change="handleChange"
-              :options="dept_tree"
-              collapse-tags
-              :props="{ checkStrictly: true,value:'id',label:'name',multiple: true, children:'_child'}"
-              ref="depts"
-              clearable
-              placeholder="全公司"
-            ></el-cascader><span style="color:#b5b7bb;padding-left:10px;">选中的部门可查看或领取任务</span>
+					<el-form-item label="任务描述" prop="task_remark" :rules="[{ max: 100, message: '长度不能超过 100 个字', trigger: 'blur' }]">
+						<el-input type="textarea" :rows="5" v-model="formData.task_remark" placeholder="请输入任务内容(限100字)"></el-input>
+					</el-form-item>
+					<el-form-item label="谁可以看" prop="dept_ids">
+						<el-cascader
+							size="medium"
+							class="date-picker-width"
+							v-model="dept_name"
+							@change="handleChange"
+							:options="dept_tree"
+							collapse-tags
+							:props="{ checkStrictly: true, value: 'id', label: 'name', multiple: true, children: '_child' }"
+							ref="depts"
+							clearable
+							placeholder="全公司"
+						></el-cascader>
+						<span style="color:#b5b7bb;padding-left:10px;">选中的部门可查看或领取任务</span>
+					</el-form-item>
 
-          </el-form-item>
+					<div style="margin-left: 80px; margin-bottom: 8px;">以天为单位,每逾期一天扣分</div>
+					<el-form-item label="逾期扣分" prop="timeout_deduction_point">
+						<el-input v-model="formData.timeout_deduction_point" oninput="value=value.replace(/[^\d]/g,'')" placeholder="请输入数值"></el-input>
+					</el-form-item>
 
-          <div style="margin-left: 80px; margin-bottom: 8px;">以天为单位,每逾期一天扣分</div>
-          <el-form-item label="逾期扣分" prop="timeout_deduction_point">
-            <el-input v-model="formData.timeout_deduction_point" oninput="value=value.replace(/[^\d]/g,'')" placeholder="请输入数值"></el-input>
-          </el-form-item> 
-
-          <el-form-item>
-            <el-button type="primary" @click="sub('formData')">确认修改</el-button>
-            <el-button @click="resetForm('formData')">取消</el-button>
-          </el-form-item>
-          
-        </el-form>
-      </div>
-    </el-dialog>
-  </div>
+					<el-form-item>
+						<el-button type="primary" @click="sub('formData')">确认修改</el-button>
+						<el-button @click="resetForm('formData')">取消</el-button>
+					</el-form-item>
+				</el-form>
+			</div>
+		</el-dialog>
+	</div>
 </template>
 
 <script>
-  import moment from 'moment'
-  import EmployeeSelector from '@/components/EmployeeSelector.vue'
-  export default {
-    name: 'bonusPoints',
-    props:{
-      rewardTaskAmendData: {
-        type: Object,
-      },
-      employee_not_select: {
-        type: Array,
-        default: () => {
-          return []
-        }
-      },
-      dialogVisible: {
-        type: Boolean,
-        default: false
-      },
-      showTitle: {
-        type: String,
-        default: ''
-      }
-    },
-    data() {
-      return {
-        dept_name: [],
-        dept_tree: [],
-        forTheTaskLoading:false,
-        formData: {
-          id:0,
-          task_type: '1',
-          pt_id: 2,
-          task_name: '',
-          task_remark: '',
-          base_point: '',
-          expire_time: moment().format('YYYY-MM-DD 18:00'),
-          task_expire_day: '',
-          targets: [],
-          reviewer_id: '',
-          task_cycle: 0,
-          timeout_deduction_point: null,
-          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: [],
-        reviewer_employee_list: [],
-        reviewer_selected: {dept: [],employee:[]},
-        show_reviewer_selector: false,
+import moment from 'moment';
+import EmployeeSelector from '@/components/EmployeeSelector.vue';
+export default {
+	name: 'bonusPoints',
+	props: {
+		rewardTaskAmendData: {
+			type: Object
+		},
+		employee_not_select: {
+			type: Array,
+			default: () => {
+				return [];
+			}
+		},
+		dialogVisible: {
+			type: Boolean,
+			default: false
+		},
+		showTitle: {
+			type: String,
+			default: ''
+		}
+	},
+	data() {
+		return {
+			dept_name: [],
+			dept_tree: [],
+			forTheTaskLoading: false,
+			formData: {
+				id: 0,
+				task_type: '1',
+				pt_id: 2,
+				task_name: '',
+				task_remark: '',
+				base_point: '',
+				expire_time: moment().format('YYYY-MM-DD 18:00'),
+				task_expire_day: '',
+				targets: [],
+				reviewer_id: '',
+				task_cycle: 0,
+				timeout_deduction_point: null,
+				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: [],
+			reviewer_employee_list: [],
+			reviewer_selected: { dept: [], employee: [] },
+			show_reviewer_selector: false,
+
+			// 重复周期
+			task_cycle_arr: [{ value: 0, name: '不重复' }, { value: 1, name: '每天重复' }, { value: 2, name: '每周重复' }, { value: 3, name: '每月重复' }],
+			// 周期时间
+			columns1: [
+				{ name: '01:00', value: 1 },
+				{ name: '02:00', value: 2 },
+				{ name: '03:00', value: 3 },
+				{ name: '04:00', value: 4 },
+				{ name: '05:00', value: 5 },
+				{ name: '06:00', value: 6 },
+				{ name: '07:00', value: 7 },
+				{ name: '08:00', value: 8 },
+				{ name: '09:00', value: 9 },
+				{ name: '10:00', value: 10 },
+				{ name: '11:00', value: 11 },
+				{ name: '12:00', value: 12 },
+				{ name: '13:00', value: 13 },
+				{ name: '14:00', value: 14 },
+				{ name: '15:00', value: 15 },
+				{ name: '16:00', value: 16 },
+				{ name: '17:00', value: 17 },
+				{ name: '18:00', value: 18 },
+				{ name: '19:00', value: 19 },
+				{ name: '20:00', value: 20 },
+				{ name: '21:00', value: 21 },
+				{ name: '22:00', value: 22 },
+				{ name: '23:00', value: 23 },
+				{ name: '24:00', value: 24 }
+			],
+			columns2: [
+				{ name: '周一', value: 1 },
+				{ name: '周二', value: 2 },
+				{ name: '周三', value: 3 },
+				{ name: '周四', value: 4 },
+				{ name: '周五', value: 5 },
+				{ name: '周六', value: 6 },
+				{ name: '周日', value: 7 }
+			],
+			columns3: [
+				{ name: '1号', value: 1 },
+				{ name: '2号', value: 2 },
+				{ name: '3号', value: 3 },
+				{ name: '4号', value: 4 },
+				{ name: '5号', value: 5 },
+				{ name: '6号', value: 6 },
+				{ name: '7号', value: 7 },
+				{ name: '8号', value: 8 },
+				{ name: '9号', value: 9 },
+				{ name: '10号', value: 10 },
+				{ name: '11号', value: 11 },
+				{ name: '12号', value: 12 },
+				{ name: '13号', value: 13 },
+				{ name: '14号', value: 14 },
+				{ name: '15号', value: 15 },
+				{ name: '16号', value: 16 },
+				{ name: '17号', value: 17 },
+				{ name: '18号', value: 18 },
+				{ name: '19号', value: 19 },
+				{ name: '20号', value: 20 },
+				{ name: '21号', value: 21 },
+				{ name: '22号', value: 22 },
+				{ name: '23号', value: 23 },
+				{ name: '24号', value: 24 },
+				{ name: '25号', value: 25 },
+				{ name: '26号', value: 26 },
+				{ name: '27号', value: 27 },
+				{ name: '28号', value: 28 },
+				{ name: '29号', value: 29 },
+				{ name: '30号', value: 30 },
+				{ name: '31号', value: 31 }
+			],
 
-        // 重复周期
-        task_cycle_arr: [
-          {value:  0, name: '不重复'}, 
-          {value:  1, name: '每天重复'}, 
-          {value:  2, name: '每周重复'}, 
-          {value:  3, name: '每月重复'}
-        ],
-        // 周期时间
-        columns1: [{name:'01:00', value: 1}, {name:'02:00', value: 2}, {name:'03:00', value: 3}, {name:'04:00', value: 4}, {name:'05:00', value: 5}, {name:'06:00', value: 6}, {name:'07:00', value: 7}, {name:'08:00', value: 8}, {name:'09:00', value: 9}, {name:'10:00', value: 10}, {name:'11:00', value: 11}, {name:'12:00', value: 12}, {name:'13:00', value: 13}, {name:'14:00', value: 14}, {name:'15:00', value: 15}, {name:'16:00', value: 16}, {name:'17:00', value: 17}, {name:'18:00', value: 18}, {name:'19:00', value: 19}, {name:'20:00', value: 20}, {name:'21:00', value: 21}, {name:'22:00', value: 22}, {name:'23:00', value: 23}, {name:'24:00', value: 24}],
-        columns2: [{name: '周一', value: 1}, {name: '周二', value: 2}, {name: '周三', value: 3}, {name: '周四', value: 4}, {name: '周五', value: 5}, {name: '周六', value: 6}, {name: '周日', value: 7}],
-        columns3: [{name:'1号', value: 1},{name:'2号', value: 2},{name:'3号', value: 3},{name:'4号', value: 4},{name:'5号', value: 5},{name:'6号', value: 6},{name:'7号', value: 7},{name:'8号', value: 8},{name:'9号', value: 9},{name:'10号', value: 10},{name:'11号', value: 11},{name:'12号', value: 12},{name:'13号', value: 13},{name:'14号', value: 14},{name:'15号', value: 15},{name:'16号', value: 16},{name:'17号', value: 17},{name:'18号', value: 18},{name:'19号', value: 19},{name:'20号', value: 20},{name:'21号', value: 21},{name:'22号', value: 22},{name:'23号', value: 23},{name:'24号', value: 24},{name:'25号', value: 25},{name:'26号', value: 26},{name:'27号', value: 27},{name:'28号', value: 28},{name:'29号', value: 29},{name:'30号', value: 30},{name:'31号', value: 31}],
+			// 部门可见
+			deptVisibleName: null,
+			dept_not_select: [],
+			dept_employee_list: [],
+			dept_selected: { dept: [], employee: [] },
+			show_employee_selector: false,
+			chapterArr: [],
 
-        // 部门可见
-        deptVisibleName: null,
-        dept_not_select: [],
-        dept_employee_list: [],
-        dept_selected: {dept: [],employee:[]},
-        show_employee_selector: false,
-        chapterArr:[],
+			oneruleId: [],
+			echoGather: []
+		};
+	},
+	components: { EmployeeSelector },
+	watch: {
+		'formData.task_cycle'(val) {
+			if (val) {
+				this.formData.task_expire_day = 1;
+			} else {
+				this.formData.expire_time = moment().format('YYYY-MM-DD 18:00');
+			}
+		},
+		rewardTaskAmendData() {
+			this.formData.id = this.rewardTaskAmendData.id; //任务id
+			this.formData.pt_id = this.rewardTaskAmendData.pt_id; //积分种类id
+			this.formData.task_name = this.rewardTaskAmendData.task_name; //任务名
+			this.formData.task_remark = this.rewardTaskAmendData.task_remark; //任务详细描述
+			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
 
-        oneruleId:[],
-        echoGather:[],
-      }
-    },
-    components: {EmployeeSelector},
-    watch:{
-      'formData.task_cycle'(val){
-        if (val) {
-          this.formData.task_expire_day = 1
-        }else{
-          this.formData.expire_time = moment().format('YYYY-MM-DD 18:00')
-        }
-      },
-      rewardTaskAmendData(){
-        this.formData.id = this.rewardTaskAmendData.id//任务id
-        this.formData.pt_id = this.rewardTaskAmendData.pt_id//积分种类id
-        this.formData.task_name = this.rewardTaskAmendData.task_name//任务名
-        this.formData.task_remark = this.rewardTaskAmendData.task_remark//任务详细描述
-        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 }
+			];
 
-        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}]
-        
-        if(this.rewardTaskAmendData.point_config.timeout_deduction_point != '0'){//逾期扣分/月
-          this.formData.timeout_deduction_point = this.rewardTaskAmendData.point_config.timeout_deduction_point
-        }else{
-          this.formData.timeout_deduction_point = ''
-        }
-        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){
-          deptIDs.push(this.rewardTaskAmendData.department_info[i].id)
-          let department_infoDept = {}
-          department_infoDept.dept_id = this.rewardTaskAmendData.department_info[i].id
-          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
-        this.formData.dept_ids = deptIDs//可见范围
-        
-        let deptIDdata = deptIDs
-        for(let i in deptIDdata){
-           this.getTreeDatas(this.dept_tree,deptIDdata[i]);
-        }
-        this.dept_name = this.echoGather
-      }
-    },
-    mounted() {
-      this.point_types = JSON.parse(localStorage.getItem('types'))
-		  this.getDepartment();
-    },
-    methods: {
-      handleChange(val){
-        let data = []
-        for(let i in val){
-          data.push(val[i][val[i].length -1])
-        }
-        this.formData.dept_ids = data
-      },
+			if (this.rewardTaskAmendData.point_config.timeout_deduction_point != '0') {
+				//逾期扣分/月
+				this.formData.timeout_deduction_point = this.rewardTaskAmendData.point_config.timeout_deduction_point;
+			} else {
+				this.formData.timeout_deduction_point = '';
+			}
+			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) {
+				deptIDs.push(this.rewardTaskAmendData.department_info[i].id);
+				let department_infoDept = {};
+				department_infoDept.dept_id = this.rewardTaskAmendData.department_info[i].id;
+				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;
+			this.formData.dept_ids = deptIDs; //可见范围
 
-      submitMembers(name) {
-        this.$refs[name].confirm(); //调用组件的confirm();
-      },
-      //关闭
-      handleClose(done) {
-        done();
-      },
-      sub(formName){
-        this.$refs[formName].validate((valid) => {
-          if (valid) {
-            this.saveFun(formName)
-          }
-        });
-      },
-      resetForm(formName){
-        this.echoGather = []
-        this.$emit('update:dialogVisible', false)
-        this.$refs[formName].resetFields();
-        this.executorName = ''
-        this.reviewerName = ''
-        this.dept_name = []
-        this.dept_selected = {dept: [],employee:[]}
-      },
-      // 提交
-      saveFun(formName){
-        // 没有选择重复任务的时候
-        // /api/integral/task/publish
-        // 选择重复任务之后
-        // /api/integral/schedule/publish/task
-        this.forTheTaskLoading = true
-        let self = this
-        let data = JSON.parse(JSON.stringify(self.formData))
-        data.task_remark?'':delete data.task_remark
-        data.timeout_deduction_point?'':delete data.timeout_deduction_point
-        // if(data.timeout_deduction_point == ""){
-        //   data.timeout_deduction_point = null
-        // }
-        // if(data.task_remark == ""){
-        //   data.task_remark = null
-        // }
-        // if(data.task_cycle == 0){
-        //   delete data.task_cycle
-        //   delete data.task_expire_day
-        //   delete data.targets
-        //   data.task_remark?'':delete data.task_remark
-        //   data.timeout_deduction_point?'':delete data.timeout_deduction_point
-        // }else{
-        //   delete data.expire_time
-        //   data.task_remark?'':delete data.task_remark
-        //   data.timeout_deduction_point?'':delete data.timeout_deduction_point
-        // }
-        self.$axios('post','/api/integral/task/update',data
-        ).then(res => {
-          if(res.data.code == 1){
-            this.$parent.get_list()
-            this.dept_selected = {dept: [],employee:[]}
-            self.executorName = ''
-            self.reviewerName = ''
-            this.dept_name = []
-            self.$emit('update:dialogVisible', false)
-            self.$refs[formName].resetFields();
-            self.$message.success(res.data.msg)
-          }else{
-            self.$message.error(res.data.msg)
-          }
-        }).finally(()=>{
-          this.echoGather = []
-          setTimeout(()=>{
-            this.forTheTaskLoading = false
-          },300)
-        })
+			let deptIDdata = deptIDs;
+			for (let i in deptIDdata) {
+				this.getTreeDatas(this.dept_tree, deptIDdata[i]);
+			}
+			this.dept_name = this.echoGather;
+		}
+	},
+	mounted() {
+		this.point_types = JSON.parse(localStorage.getItem('types'));
+		this.getDepartment();
+	},
+	methods: {
+		handleChange(val) {
+			let data = [];
+			for (let i in val) {
+				data.push(val[i][val[i].length - 1]);
+			}
+			this.formData.dept_ids = data;
+		},
 
-      },
-      // // 执行者
-      // approval_confirm(data){
-      //   this.approval_selected = {dept: [],employee:[]}
-      //   this.formData.targets = []
-      //   this.executorName = ''
-      //   if (data.employee !== null && data.employee.length != 0) {
-      //     this.approval_selected = data
-      //     data.employee.forEach(element => {
-			// 			this.formData.targets.push(element.id)
-			// 			this.executorName += (element.name+',')
-      //     });
-      //   }
-      // },
-      // 执行者 end
-      // 审核人
-      reviewer_confirm(data){
-        this.reviewer_selected = {dept: [],employee:[]}
-        this.formData.reviewer_id = ''
-        this.reviewerName = ''
-        if (data.employee !== null && data.employee.length != 0) {
-          this.reviewer_selected = data
-          this.formData.reviewer_id = data.employee[0].id
-          this.reviewerName = data.employee[0].name
-        }
-        this.show_reviewer_selector = false
-      },
-      // 审核人 end
-      // 部门可见
-      dept_confirm(data){
-        this.dept_selected = {dept: [],employee:[]}
-        this.formData.dept_ids = []
-        this.deptVisibleName = ''
-        if (data.dept !== null && data.dept.length != 0) {
-          this.dept_selected = data
-          data.dept.forEach(element => {
-						this.formData.dept_ids.push(element.dept_id)
-						this.deptVisibleName += (element.dept_name+',')
-          });
-        }
-      },
-      // 部门可见 end
-      closeDialog(){
-        this.echoGather = []
-        this.$emit('update:dialogVisible', false)
-      },
+		submitMembers(name) {
+			this.$refs[name].confirm(); //调用组件的confirm();
+		},
+		//关闭
+		handleClose(done) {
+			done();
+		},
+		sub(formName) {
+			this.$refs[formName].validate(valid => {
+				if (valid) {
+					this.saveFun(formName);
+				}
+			});
+		},
+		resetForm(formName) {
+			this.echoGather = [];
+			this.$emit('update:dialogVisible', false);
+			this.$refs[formName].resetFields();
+			this.executorName = '';
+			this.reviewerName = '';
+			this.dept_name = [];
+			this.dept_selected = { dept: [], employee: [] };
+		},
+		// 提交
+		saveFun(formName) {
+			// 没有选择重复任务的时候
+			// /api/integral/task/publish
+			// 选择重复任务之后
+			// /api/integral/schedule/publish/task
+			this.forTheTaskLoading = true;
+			let self = this;
+			let data = JSON.parse(JSON.stringify(self.formData));
+			data.task_remark ? '' : delete data.task_remark;
+			data.timeout_deduction_point ? '' : delete data.timeout_deduction_point;
+			// if(data.timeout_deduction_point == ""){
+			//   data.timeout_deduction_point = null
+			// }
+			// if(data.task_remark == ""){
+			//   data.task_remark = null
+			// }
+			// if(data.task_cycle == 0){
+			//   delete data.task_cycle
+			//   delete data.task_expire_day
+			//   delete data.targets
+			//   data.task_remark?'':delete data.task_remark
+			//   data.timeout_deduction_point?'':delete data.timeout_deduction_point
+			// }else{
+			//   delete data.expire_time
+			//   data.task_remark?'':delete data.task_remark
+			//   data.timeout_deduction_point?'':delete data.timeout_deduction_point
+			// }
+			self.$axios('post', '/api/integral/task/update', data)
+				.then(res => {
+					if (res.data.code == 1) {
+						this.$parent.get_list();
+						this.dept_selected = { dept: [], employee: [] };
+						self.executorName = '';
+						self.reviewerName = '';
+						this.dept_name = [];
+						self.$emit('update:dialogVisible', false);
+						self.$refs[formName].resetFields();
+						self.$message.success(res.data.msg);
+					} else {
+						self.$message.error(res.data.msg);
+					}
+				})
+				.finally(() => {
+					this.echoGather = [];
+					setTimeout(() => {
+						this.forTheTaskLoading = false;
+					}, 300);
+				});
+		},
+		// // 执行者
+		// approval_confirm(data){
+		//   this.approval_selected = {dept: [],employee:[]}
+		//   this.formData.targets = []
+		//   this.executorName = ''
+		//   if (data.employee !== null && data.employee.length != 0) {
+		//     this.approval_selected = data
+		//     data.employee.forEach(element => {
+		// 			this.formData.targets.push(element.id)
+		// 			this.executorName += (element.name+',')
+		//     });
+		//   }
+		// },
+		// 执行者 end
+		// 审核人
+		reviewer_confirm(data) {
+			this.reviewer_selected = { dept: [], employee: [] };
+			this.formData.reviewer_id = '';
+			this.reviewerName = '';
+			if (data.employee !== null && data.employee.length != 0) {
+				this.reviewer_selected = data;
+				this.formData.reviewer_id = data.employee[0].id;
+				this.reviewerName = data.employee[0].name;
+			}
+			this.show_reviewer_selector = false;
+		},
+		// 审核人 end
+		// 部门可见
+		dept_confirm(data) {
+			this.dept_selected = { dept: [], employee: [] };
+			this.formData.dept_ids = [];
+			this.deptVisibleName = '';
+			if (data.dept !== null && data.dept.length != 0) {
+				this.dept_selected = data;
+				data.dept.forEach(element => {
+					this.formData.dept_ids.push(element.dept_id);
+					this.deptVisibleName += element.dept_name + ',';
+				});
+			}
+		},
+		// 部门可见 end
+		closeDialog() {
+			this.echoGather = [];
+			this.$emit('update:dialogVisible', false);
+		},
 
-      
-      //获取部门
-      getDepartment() {
-        this.$axios('get','/api/department/tree').then(res => {
-          this.dept_tree =this.getTreeData(res.data.data.list);
-          console.log(this.dept_tree)
-          // let aaa = [438550526,442486286,432649335,442348685]
-          // for(let i in aaa){
-          //   this.getTreeDatas(this.dept_tree,aaa[i]);
-          // }
-          // console.log(this.$refs.depts.getCheckedKeys().concat(this.$refs.depts.getHalfCheckedKeys()))
-          // console.log(this.$refs['depts'])
+		//获取部门
+		getDepartment() {
+			this.$axios('get', '/api/department/tree').then(res => {
+				this.dept_tree = this.getTreeData(res.data.data.list);
+				console.log(this.dept_tree);
+				// let aaa = [438550526,442486286,432649335,442348685]
+				// for(let i in aaa){
+				//   this.getTreeDatas(this.dept_tree,aaa[i]);
+				// }
+				// console.log(this.$refs.depts.getCheckedKeys().concat(this.$refs.depts.getHalfCheckedKeys()))
+				// console.log(this.$refs['depts'])
 
+				//FF是父级ID,FF为1时表示没有父了
+				// [{id:100,FF:1,child:[
+				//       {id:200,FF:100,child:[
+				//         {id:300,FF:200,child:[
+				//           {id:400,FF:300},//比如我有id  400 ,求[100,200,300,400] 。或者我有300 。[100,200,300]
+				//         ]},
+				//       ]},
+				//       {id:201,FF:100,child:[
+				//         {id:301,FF:201},//比如我有id  301 ,求[100,201,301]
+				//       ]},
+				//     ]
+				//   },
+				//   {id:101,FF:1,child:[{id:201,FF:101}]},
+				//   {id:102,FF:1,child:[{id:202,FF:102}]},
+				//   {id:103,FF:1},//如果我有103,那就得到[103]
+				// ]
+			});
+		},
 
-          //FF是父级ID,FF为1时表示没有父了
-          // [{id:100,FF:1,child:[
-          //       {id:200,FF:100,child:[
-          //         {id:300,FF:200,child:[
-          //           {id:400,FF:300},//比如我有id  400 ,求[100,200,300,400] 。或者我有300 。[100,200,300]
-          //         ]},
-          //       ]},
-          //       {id:201,FF:100,child:[
-          //         {id:301,FF:201},//比如我有id  301 ,求[100,201,301]
-          //       ]},
-          //     ]
-          //   },
-          //   {id:101,FF:1,child:[{id:201,FF:101}]},
-          //   {id:102,FF:1,child:[{id:202,FF:102}]},
-          //   {id:103,FF:1},//如果我有103,那就得到[103]
-          // ]
-        });
-      },
-      
-      getTreeDatas(data,item) {
-        for (let i in data) {
-          if(data[i].id == item){
-            if(data[i].parentid == 1){
-              this.oneruleId.unshift(data[i].id)
-              this.echoGather.push(this.oneruleId)
-              this.oneruleId = []
-              break
-            }else{
-              this.oneruleId.unshift(data[i].id)
-              this.getTreeDatas(this.dept_tree,data[i].parentid)
-            }
-          }else{
-            if(data[i]._child){
-              this.getTreeDatas(data[i]._child,item)
-            }
-          }
-        }
-        return
-      },
+		getTreeDatas(data, item) {
+			for (let i in data) {
+				if (data[i].id == item) {
+					if (data[i].parentid == 1) {
+						this.oneruleId.unshift(data[i].id);
+						this.echoGather.push(this.oneruleId);
+						this.oneruleId = [];
+						break;
+					} else {
+						this.oneruleId.unshift(data[i].id);
+						this.getTreeDatas(this.dept_tree, data[i].parentid);
+					}
+				} else {
+					if (data[i]._child) {
+						this.getTreeDatas(data[i]._child, item);
+					}
+				}
+			}
+			return;
+		},
 
-      // 递归判断列表,把最后的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;
-      },
-    }
-  }
+		// 递归判断列表,把最后的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;
+		}
+	}
+};
 </script>
 
-<style>
-</style>
+<style></style>

+ 0 - 11
src/views/common/below/taskDetailsPopup.vue

@@ -51,7 +51,6 @@
           <div class="d_progress">
             <div class="flex-box">
               <div class="flex-1">工作进度({{workDetailData.progress}}%)</div>
-              <!-- <div class="fontColorF addJf" @click="isSlider=true" v-if="workDetailData.employee_id==userId&& workDetailData.status==1">+更新进度</div> -->
             </div>
             <el-progress :percentage="workDetailData.progress"></el-progress>
           </div>
@@ -60,7 +59,6 @@
               <el-tab-pane label="工作记录" name="work">
                 <div class="flex-box">
                   <div class="flex-1"></div>
-                  <!-- <div class="fontColorF addJf" @click="isOne=true" v-if="workDetailData.employee_id==userId&&workDetailData.status==1">+记一条工作记录</div> -->
                 </div>
                 <div class="work_box" style="padding-top:10px" v-if="workDetailData.process !== null && workDetailData.process.list !== null">
                   <div class="flex-box work_item" v-for="(item,index) in workDetailData.process.list" :key="index" v-show="item.point == 0">
@@ -82,7 +80,6 @@
               <el-tab-pane label="记分记录" name="participation">
                 <div class="flex-box" style="padding-bottom: 10px;border-bottom: 1px solid #f1f1f1;">
                   <div class="flex-1 fontColorF"><span v-if="point_total>0">合计:{{point_total}}</span> </div>
-                  <!-- <div class="fontColorF addJf" @click="isIntegral=true" v-if="workDetailData.reviewer_id==userId&&workDetailData.status==1">+记分</div> -->
                 </div>
                 <div class="work_box" style="padding-top:10px" v-if="workDetailData.process !== null && workDetailData.process.list !== null">
                   <div class="flex-box work_item" v-for="(item,index) in workDetailData.process.list" :key="index" v-show="item.point != 0">
@@ -108,11 +105,6 @@
           </div>
         </div>
       </div>
-      <!-- <el-row>
-        <el-col :span="24">
-          <el-button type="danger" @click="delItem">删除</el-button>
-        </el-col>
-      </el-row> -->
     </el-drawer>
 
   </div>
@@ -202,9 +194,6 @@
         })
       }
     },
-    // activated(){
-    //   this.getData()
-    // }
   }
 </script>
 <style lang="scss" scoped="scoped">

+ 317 - 299
src/views/common/below/temporaryTask.vue

@@ -1,40 +1,29 @@
 <template>
-  <div>
-    <!-- 临时任务弹窗 -->
-    <el-dialog
-      :title="showTitle"
-      :visible.sync="dialogVisible"
-      :close-on-click-modal="false"
-      :before-close="closeDialog"
-      width="600px">
-      <div>
-        <el-form :model="formData" ref="formData" label-width="80px" v-loading="taskload">
-          <el-form-item label="任务内容" prop="task_name" :rules="[{ required: true, message: '请填写任务内容', trigger: 'blur' },{ min: 3, max: 20, message: '长度在 3 到 20 个字符', trigger: 'blur' }]">
-            <el-input type="textarea" rows="2" v-model="formData.task_name" placeholder="请输入任务内容(限20字)"></el-input>
-          </el-form-item>
+	<div>
+		<!-- 临时任务弹窗 -->
+		<el-dialog :title="showTitle" :visible.sync="dialogVisible" :close-on-click-modal="false" :before-close="closeDialog" width="600px">
+			<div>
+				<el-form :model="formData" ref="formData" label-width="80px" v-loading="taskload">
+					<el-form-item
+						label="任务内容"
+						prop="task_name"
+						:rules="[{ required: true, message: '请填写任务内容', trigger: 'blur' }, { min: 3, max: 20, message: '长度在 3 到 20 个字符', trigger: 'blur' }]"
+					>
+						<el-input type="textarea" rows="2" v-model="formData.task_name" placeholder="请输入任务内容(限20字)"></el-input>
+					</el-form-item>
 
-          <el-form-item label="任务积分" prop="base_point" :rules="[{ required: true, message: '请填写任务积分', trigger: 'change' }]">
-            <el-input-number v-model="formData.base_point" :min="1"></el-input-number>
-          </el-form-item>
+					<el-form-item label="任务积分" prop="base_point" :rules="[{ required: true, message: '请填写任务积分', trigger: 'change' }]">
+						<el-input-number v-model="formData.base_point" :min="1"></el-input-number>
+					</el-form-item>
+
+					<el-form-item label="执行人" prop="targets" :rules="[{ required: true, message: '请选择执行人', trigger: 'change' }]">
+						<el-row>
+							<el-col :span="18">
+								<el-input auto-complete="off" v-model="executorName" placeholder="请选择执行人"></el-input>
+								<div @click="show_employee_selector = true" style=" position: absolute; top: 0; right: 0; left: 0; bottom: 0; z-index: 9;"></div>
+							</el-col>
+						</el-row>
 
-          <el-form-item label="执行人" prop="targets" :rules="[{ required: true, message: '请选择执行人', trigger: 'change' }]">
-            <el-row>
-              <el-col :span="18">
-                <el-input auto-complete="off" v-model="executorName" placeholder="请选择执行人"></el-input>
-                <div @click="show_employee_selector = true" style=" position: absolute; top: 0; right: 0; left: 0; bottom: 0; z-index: 9;"></div>
-              </el-col>
-            </el-row>
-            <!-- <EmployeeSelector
-              :employee_not_select="approval_not_select"
-              :employee_list="employee_list"
-              :isChecKedAll="true"
-              :can_select_employee="true"
-              :can_select_dept="false"
-              :multi="true"
-              :selected="approval_selected"
-              :visible.sync="show_employee_selector"
-              @confirm="approval_confirm"/> -->
-              
 						<el-dialog title="选择执行人员" width="640px" :visible.sync="show_employee_selector" append-to-body :before-close="handleClose">
 							<EmployeeSelector
 								v-if="show_employee_selector"
@@ -43,7 +32,7 @@
 								:employee_list="employee_list"
 								:user_no_select="false"
 								:can_select_dept="false"
-                :multi="false"
+								:multi="false"
 								:selected="approval_selected"
 								@confirm="approval_confirm"
 							/>
@@ -52,34 +41,23 @@
 								<el-button type="primary" @click="submitEmployee('members')">确 定</el-button>
 							</span>
 						</el-dialog>
-
-          </el-form-item>
-          <el-form-item label="审批人" prop="reviewer_id" :rules="[{ required: true, message: '请选择审批人', trigger: 'change' }]">
-            <el-row>
-              <el-col :span="18">
-                <el-input auto-complete="off" v-model="reviewerName" placeholder="请选择审批人"></el-input>
-                <div @click="show_reviewer_selector = true" style=" position: absolute; top: 0; right: 0; left: 0; bottom: 0; z-index: 9;"></div>
-              </el-col>
-            </el-row>
-            <!-- <EmployeeSelector
-              :employee_not_select="reviewer_not_select"
-              :employee_list="reviewer_employee_list"
-              :can_select_employee="true"
-              :can_select_dept="false"
-              :multi="false"
-              :use_employee_list="true"
-              :selected="reviewer_selected"
-              :visible.sync="show_reviewer_selector"
-              @confirm="reviewer_confirm"/> -->
+					</el-form-item>
+					<el-form-item label="审批人" prop="reviewer_id" :rules="[{ required: true, message: '请选择审批人', trigger: 'change' }]">
+						<el-row>
+							<el-col :span="18">
+								<el-input auto-complete="off" v-model="reviewerName" placeholder="请选择审批人"></el-input>
+								<div @click="show_reviewer_selector = true" style=" position: absolute; top: 0; right: 0; left: 0; bottom: 0; z-index: 9;"></div>
+							</el-col>
+						</el-row>
 						<el-dialog title="选择审批人员" width="640px" :visible.sync="show_reviewer_selector" append-to-body :before-close="handleClose">
 							<EmployeeSelector
 								v-if="show_reviewer_selector"
 								ref="members1"
-                :isChecKedAll="false"
+								:isChecKedAll="false"
 								:employee_list="reviewer_employee_list"
 								:can_select_dept="false"
-                :use_Administrator_list="true"
-                :multi="false"
+								:use_Administrator_list="true"
+								:multi="false"
 								:selected="reviewer_selected"
 								@confirm="reviewer_confirm"
 							/>
@@ -88,258 +66,298 @@
 								<el-button type="primary" @click="submitEmployee('members1')">确 定</el-button>
 							</span>
 						</el-dialog>
+					</el-form-item>
 
-          </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="截止日期" prop="expire_time" v-if="formData.task_cycle == 0" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
-            <el-date-picker
-              v-model="formData.expire_time"
-              type="datetime"
-              placeholder="选择日期时间"
-              format="yyyy-MM-dd HH:mm"
-              value-format="yyyy-MM-dd HH:mm"
-              default-time="18:00"
-              >
-            </el-date-picker>
-          </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="截止日期" prop="task_expire_day" v-if="formData.task_cycle == 1" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
-            <el-select v-model="formData.task_expire_day" placeholder="请选择截止日期">
-              <el-option
-                v-for="item in columns1"
-                :key="item.value"
-                :label="item.name"
-                :value="item.value">
-              </el-option>
-            </el-select>
-          </el-form-item>
+					<el-form-item label="截止日期" prop="expire_time" v-if="formData.task_cycle == 0" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
+						<el-date-picker
+							v-model="formData.expire_time"
+							type="datetime"
+							placeholder="选择日期时间"
+							format="yyyy-MM-dd HH:mm"
+							value-format="yyyy-MM-dd HH:mm"
+							default-time="18:00"
+						></el-date-picker>
+					</el-form-item>
 
-          <el-form-item label="截止日期" prop="task_expire_day" v-if="formData.task_cycle == 2" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
-            <el-select v-model="formData.task_expire_day" placeholder="请选择截止日期">
-              <el-option
-                v-for="item in columns2"
-                :key="item.value"
-                :label="item.name"
-                :value="item.value">
-              </el-option>
-            </el-select>
-          </el-form-item>
+					<el-form-item label="截止日期" prop="task_expire_day" v-if="formData.task_cycle == 1" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
+						<el-select v-model="formData.task_expire_day" placeholder="请选择截止日期">
+							<el-option v-for="item in columns1" :key="item.value" :label="item.name" :value="item.value"></el-option>
+						</el-select>
+					</el-form-item>
 
-          <el-form-item label="截止日期" prop="task_expire_day" v-if="formData.task_cycle == 3" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
-            <el-select v-model="formData.task_expire_day" placeholder="请选择截止日期">
-              <el-option
-                v-for="item in columns3"
-                :key="item.value"
-                :label="item.name"
-                :value="item.value">
-              </el-option>
-            </el-select>
-          </el-form-item>
+					<el-form-item label="截止日期" prop="task_expire_day" v-if="formData.task_cycle == 2" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
+						<el-select v-model="formData.task_expire_day" placeholder="请选择截止日期">
+							<el-option v-for="item in columns2" :key="item.value" :label="item.name" :value="item.value"></el-option>
+						</el-select>
+					</el-form-item>
 
-          <el-form-item label="任务备注" prop="task_remark" :rules="[{ max: 300 ,message: '长度不能超过 300 个字', trigger: 'blur' }]">
-            <el-input type="textarea" :rows="5" v-model="formData.task_remark" placeholder="请输入任务内容(限300字)"></el-input>
-          </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>
-            </el-select>
-          </el-form-item>
+					<el-form-item label="截止日期" prop="task_expire_day" v-if="formData.task_cycle == 3" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
+						<el-select v-model="formData.task_expire_day" placeholder="请选择截止日期">
+							<el-option v-for="item in columns3" :key="item.value" :label="item.name" :value="item.value"></el-option>
+						</el-select>
+					</el-form-item>
 
-          <div style="margin-left: 80px; margin-bottom: 8px;">以天为单位,每逾期一天扣分</div>
-          <el-form-item label="逾期扣分" prop="timeout_deduction_point">
-            <el-input v-model="formData.timeout_deduction_point" oninput="value=value.replace(/[^\d]/g,'')" placeholder="请输入数值"></el-input>
-          </el-form-item> 
+					<el-form-item label="任务备注" prop="task_remark" :rules="[{ max: 300, message: '长度不能超过 300 个字', trigger: 'blur' }]">
+						<el-input type="textarea" :rows="5" v-model="formData.task_remark" placeholder="请输入任务内容(限300字)"></el-input>
+					</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>
+						</el-select>
+					</el-form-item>
 
-          <el-form-item>
-            <el-button type="primary" @click="sub('formData')">提交</el-button>
-            <el-button @click="resetForm('formData')">取消</el-button>
-          </el-form-item>
-          
+					<div style="margin-left: 80px; margin-bottom: 8px;">以天为单位,每逾期一天扣分</div>
+					<el-form-item label="逾期扣分" prop="timeout_deduction_point">
+						<el-input v-model="formData.timeout_deduction_point" oninput="value=value.replace(/[^\d]/g,'')" placeholder="请输入数值"></el-input>
+					</el-form-item>
 
-        </el-form>
-      </div>
-    </el-dialog>
-  </div>
+					<el-form-item>
+						<el-button type="primary" @click="sub('formData')">提交</el-button>
+						<el-button @click="resetForm('formData')">取消</el-button>
+					</el-form-item>
+				</el-form>
+			</div>
+		</el-dialog>
+	</div>
 </template>
 
 <script>
-  import moment from 'moment'
-  import EmployeeSelector from '@/components/EmployeeSelector.vue'
-  export default {
-    name: 'temporaryTask',
-    props:{
-      employee_not_select: {
-        type: Array,
-        default: () => {
-          return []
-        }
-      },
-      dialogVisible: {
-        type: Boolean,
-        default: false
-      },
-      showTitle: {
-        type: String,
-        default: ''
-      }
-    },
-    data() {
-      return {
-        taskload:false,
-        formData: {
-          task_name: '',
-          base_point: '',
-          task_remark: '',
-          pt_id: 3,
-          task_expire_day: 1,
-          expire_time: moment().format('YYYY-MM-DD 18:00'),
-          weight: 0,
-          package_id: 0,
-          targets: [],
-          reviewer_id: '',
-          task_cycle: 0,
-          timeout_deduction_point: null
-        },
-        point_types: [],
-        // 执行者
-        executorName: null,
-        show_employee_selector: false,
-        approval_selected: {dept: [],employee:[]},
-        approval_not_select: [],
-        employee_list: this.$getUserData().employee_detail.manage_scope,
-        // 审批人
-        reviewerName: null,
-        reviewer_not_select: [],
-        reviewer_employee_list: [],
-        reviewer_selected: {dept: [],employee:[]},
-        show_reviewer_selector: false,
+import moment from 'moment';
+import EmployeeSelector from '@/components/EmployeeSelector.vue';
+export default {
+	name: 'temporaryTask',
+	props: {
+		employee_not_select: {
+			type: Array,
+			default: () => {
+				return [];
+			}
+		},
+		dialogVisible: {
+			type: Boolean,
+			default: false
+		},
+		showTitle: {
+			type: String,
+			default: ''
+		}
+	},
+	data() {
+		return {
+			taskload: false,
+			formData: {
+				task_name: '',
+				base_point: '',
+				task_remark: '',
+				pt_id: 3,
+				task_expire_day: 1,
+				expire_time: moment().format('YYYY-MM-DD 18:00'),
+				weight: 0,
+				package_id: 0,
+				targets: [],
+				reviewer_id: '',
+				task_cycle: 0,
+				timeout_deduction_point: null
+			},
+			point_types: [],
+			// 执行者
+			executorName: null,
+			show_employee_selector: false,
+			approval_selected: { dept: [], employee: [] },
+			approval_not_select: [],
+			employee_list: this.$getUserData().employee_detail.manage_scope,
+			// 审批人
+			reviewerName: null,
+			reviewer_not_select: [],
+			reviewer_employee_list: [],
+			reviewer_selected: { dept: [], employee: [] },
+			show_reviewer_selector: false,
 
-        // 重复周期
-        task_cycle_arr: [
-          {value:  0, name: '不重复'}, 
-          {value:  1, name: '每天重复'}, 
-          {value:  2, name: '每周重复'}, 
-          {value:  3, name: '每月重复'}
-        ],
-        // 周期时间
-        columns1: [{name:'01:00', value: 1}, {name:'02:00', value: 2}, {name:'03:00', value: 3}, {name:'04:00', value: 4}, {name:'05:00', value: 5}, {name:'06:00', value: 6}, {name:'07:00', value: 7}, {name:'08:00', value: 8}, {name:'09:00', value: 9}, {name:'10:00', value: 10}, {name:'11:00', value: 11}, {name:'12:00', value: 12}, {name:'13:00', value: 13}, {name:'14:00', value: 14}, {name:'15:00', value: 15}, {name:'16:00', value: 16}, {name:'17:00', value: 17}, {name:'18:00', value: 18}, {name:'19:00', value: 19}, {name:'20:00', value: 20}, {name:'21:00', value: 21}, {name:'22:00', value: 22}, {name:'23:00', value: 23}, {name:'24:00', value: 24}],
-        columns2: [{name: '周一', value: 1}, {name: '周二', value: 2}, {name: '周三', value: 3}, {name: '周四', value: 4}, {name: '周五', value: 5}, {name: '周六', value: 6}, {name: '周日', value: 7}],
-        columns3: [{name:'1号', value: 1},{name:'2号', value: 2},{name:'3号', value: 3},{name:'4号', value: 4},{name:'5号', value: 5},{name:'6号', value: 6},{name:'7号', value: 7},{name:'8号', value: 8},{name:'9号', value: 9},{name:'10号', value: 10},{name:'11号', value: 11},{name:'12号', value: 12},{name:'13号', value: 13},{name:'14号', value: 14},{name:'15号', value: 15},{name:'16号', value: 16},{name:'17号', value: 17},{name:'18号', value: 18},{name:'19号', value: 19},{name:'20号', value: 20},{name:'21号', value: 21},{name:'22号', value: 22},{name:'23号', value: 23},{name:'24号', value: 24},{name:'25号', value: 25},{name:'26号', value: 26},{name:'27号', value: 27},{name:'28号', value: 28},{name:'29号', value: 29},{name:'30号', value: 30},{name:'31号', value: 31}],
-      }
-    },
-    components: {EmployeeSelector},
-    watch:{
-      'formData.task_cycle'(val){
-        if (val) {
-          this.formData.task_expire_day = 1
-        }else{
-          this.formData.expire_time = moment().format('YYYY-MM-DD 18:00')
-        }
-      }
-    },
-    mounted() {
-      this.point_types = JSON.parse(localStorage.getItem('types'))
-    },
-    methods: {
-      submitEmployee(name) {
-        this.$refs[name].confirm(); //调用组件的confirm();
-      },
-      //关闭
-      handleClose(done) {
-        done();
-      },
-      sub(formName){
-        this.$refs[formName].validate((valid) => {
-          if (valid) {
-            this.saveFun(formName)
-          }
-        });
-      },
-      resetForm(formName){
-        this.$emit('update:dialogVisible', false)
-        this.$refs[formName].resetFields();
-        this.executorName = ''
-        this.reviewerName = ''
-        this.approval_selected = {dept: [],employee:[]}
-        this.reviewer_selected = {dept: [],employee:[]}
-      },
-      // 提交
-      saveFun(formName){
-        this.taskload = true
-        // 没有选择重复任务的时候
-        // /api/integral/work/publish
-        // 选择重复任务之后
-        // /api/integral/schedule/publish/work
-        
-        let self = this
-        let data = JSON.parse(JSON.stringify(self.formData))
-        if(data.task_cycle == 0){
-          delete data.task_cycle
-          delete data.task_expire_day
-          data.task_remark?'':delete data.task_remark
-          data.timeout_deduction_point?'':delete data.timeout_deduction_point
-        }else{
-          delete data.package_id
-          delete data.weight
-          delete data.expire_time
-          data.task_remark?'':delete data.task_remark
-          data.timeout_deduction_point?'':delete data.timeout_deduction_point
-        }
-        self.$axios('post',self.formData.task_cycle == 0?'/api/integral/work/publish':'/api/integral/schedule/publish/work',data).then(res => {
-          if(res.data.code == 1){
-            this.$parent.get_list()
-            self.$emit('update:dialogVisible', false)
-            self.$refs[formName].resetFields();
-            self.executorName = ''
-            self.reviewerName = ''
-            this.approval_selected = {dept: [],employee:[]},
-            this.reviewer_selected = {dept: [],employee:[]},
-            self.$message.success(res.data.msg)
-          }else{
-            self.$message.error(res.data.msg)
-          }
-        }).finally(()=>{
-          this.taskload = false
-        })
+			// 重复周期
+			task_cycle_arr: [{ value: 0, name: '不重复' }, { value: 1, name: '每天重复' }, { value: 2, name: '每周重复' }, { value: 3, name: '每月重复' }],
+			// 周期时间
+			columns1: [
+				{ name: '01:00', value: 1 },
+				{ name: '02:00', value: 2 },
+				{ name: '03:00', value: 3 },
+				{ name: '04:00', value: 4 },
+				{ name: '05:00', value: 5 },
+				{ name: '06:00', value: 6 },
+				{ name: '07:00', value: 7 },
+				{ name: '08:00', value: 8 },
+				{ name: '09:00', value: 9 },
+				{ name: '10:00', value: 10 },
+				{ name: '11:00', value: 11 },
+				{ name: '12:00', value: 12 },
+				{ name: '13:00', value: 13 },
+				{ name: '14:00', value: 14 },
+				{ name: '15:00', value: 15 },
+				{ name: '16:00', value: 16 },
+				{ name: '17:00', value: 17 },
+				{ name: '18:00', value: 18 },
+				{ name: '19:00', value: 19 },
+				{ name: '20:00', value: 20 },
+				{ name: '21:00', value: 21 },
+				{ name: '22:00', value: 22 },
+				{ name: '23:00', value: 23 },
+				{ name: '24:00', value: 24 }
+			],
+			columns2: [
+				{ name: '周一', value: 1 },
+				{ name: '周二', value: 2 },
+				{ name: '周三', value: 3 },
+				{ name: '周四', value: 4 },
+				{ name: '周五', value: 5 },
+				{ name: '周六', value: 6 },
+				{ name: '周日', value: 7 }
+			],
+			columns3: [
+				{ name: '1号', value: 1 },
+				{ name: '2号', value: 2 },
+				{ name: '3号', value: 3 },
+				{ name: '4号', value: 4 },
+				{ name: '5号', value: 5 },
+				{ name: '6号', value: 6 },
+				{ name: '7号', value: 7 },
+				{ name: '8号', value: 8 },
+				{ name: '9号', value: 9 },
+				{ name: '10号', value: 10 },
+				{ name: '11号', value: 11 },
+				{ name: '12号', value: 12 },
+				{ name: '13号', value: 13 },
+				{ name: '14号', value: 14 },
+				{ name: '15号', value: 15 },
+				{ name: '16号', value: 16 },
+				{ name: '17号', value: 17 },
+				{ name: '18号', value: 18 },
+				{ name: '19号', value: 19 },
+				{ name: '20号', value: 20 },
+				{ name: '21号', value: 21 },
+				{ name: '22号', value: 22 },
+				{ name: '23号', value: 23 },
+				{ name: '24号', value: 24 },
+				{ name: '25号', value: 25 },
+				{ name: '26号', value: 26 },
+				{ name: '27号', value: 27 },
+				{ name: '28号', value: 28 },
+				{ name: '29号', value: 29 },
+				{ name: '30号', value: 30 },
+				{ name: '31号', value: 31 }
+			]
+		};
+	},
+	components: { EmployeeSelector },
+	watch: {
+		'formData.task_cycle'(val) {
+			if (val) {
+				this.formData.task_expire_day = 1;
+			} else {
+				this.formData.expire_time = moment().format('YYYY-MM-DD 18:00');
+			}
+		}
+	},
+	mounted() {
+		this.point_types = JSON.parse(localStorage.getItem('types'));
+	},
+	methods: {
+		submitEmployee(name) {
+			this.$refs[name].confirm(); //调用组件的confirm();
+		},
+		//关闭
+		handleClose(done) {
+			done();
+		},
+		sub(formName) {
+			this.$refs[formName].validate(valid => {
+				if (valid) {
+					this.saveFun(formName);
+				}
+			});
+		},
+		resetForm(formName) {
+			this.$emit('update:dialogVisible', false);
+			this.$refs[formName].resetFields();
+			this.executorName = '';
+			this.reviewerName = '';
+			this.approval_selected = { dept: [], employee: [] };
+			this.reviewer_selected = { dept: [], employee: [] };
+		},
+		// 提交
+		saveFun(formName) {
+			this.taskload = true;
+			// 没有选择重复任务的时候
+			// /api/integral/work/publish
+			// 选择重复任务之后
+			// /api/integral/schedule/publish/work
 
-      },
-      // 执行者
-      approval_confirm(data){
-        this.approval_selected = {dept: [],employee:[]}
-        this.formData.targets = []
-        this.executorName = ''
-        if (data.employee !== null && data.employee.length != 0) {
-          this.approval_selected = data
-          data.employee.forEach(element => {
-						this.formData.targets.push(element.id)
-						this.executorName += (element.name+',')
-          });
-        }
-        this.show_employee_selector = false
-      },
-      // 执行者 end
-      // 审核人
-      reviewer_confirm(data){
-        this.reviewer_selected = {dept: [],employee:[]}
-        this.formData.reviewer_id = ''
-        this.reviewerName = ''
-        if (data.employee !== null && data.employee.length != 0) {
-          this.reviewer_selected = data
-          this.formData.reviewer_id = data.employee[0].id
-          this.reviewerName = data.employee[0].name
-        }
-        this.show_reviewer_selector = false
-      },
-      closeDialog(){
-        this.resetForm('formData')
-        // this.$emit('update:dialogVisible', false)
-      }
-    }
-  }
-</script>
+			let self = this;
+			let data = JSON.parse(JSON.stringify(self.formData));
+			if (data.task_cycle == 0) {
+				delete data.task_cycle;
+				delete data.task_expire_day;
+				data.task_remark ? '' : delete data.task_remark;
+				data.timeout_deduction_point ? '' : delete data.timeout_deduction_point;
+			} else {
+				delete data.package_id;
+				delete data.weight;
+				delete data.expire_time;
+				data.task_remark ? '' : delete data.task_remark;
+				data.timeout_deduction_point ? '' : delete data.timeout_deduction_point;
+			}
+			self.$axios('post', self.formData.task_cycle == 0 ? '/api/integral/work/publish' : '/api/integral/schedule/publish/work', data)
+				.then(res => {
+					if (res.data.code == 1) {
+						this.$parent.get_list();
+						self.$emit('update:dialogVisible', false);
+						self.$refs[formName].resetFields();
+						self.executorName = '';
+						self.reviewerName = '';
+						(this.approval_selected = { dept: [], employee: [] }), (this.reviewer_selected = { dept: [], employee: [] }), self.$message.success(res.data.msg);
+					} else {
+						self.$message.error(res.data.msg);
+					}
+				})
+				.finally(() => {
+					this.taskload = false;
+				});
+		},
+		// 执行者
+		approval_confirm(data) {
+			this.approval_selected = { dept: [], employee: [] };
+			this.formData.targets = [];
+			this.executorName = '';
+			if (data.employee !== null && data.employee.length != 0) {
+				this.approval_selected = data;
+				data.employee.forEach(element => {
+					this.formData.targets.push(element.id);
+					this.executorName += element.name + ',';
+				});
+			}
+			this.show_employee_selector = false;
+		},
+		// 执行者 end
+		// 审核人
+		reviewer_confirm(data) {
+			this.reviewer_selected = { dept: [], employee: [] };
+			this.formData.reviewer_id = '';
+			this.reviewerName = '';
+			if (data.employee !== null && data.employee.length != 0) {
+				this.reviewer_selected = data;
+				this.formData.reviewer_id = data.employee[0].id;
+				this.reviewerName = data.employee[0].name;
+			}
+			this.show_reviewer_selector = false;
+		},
+		closeDialog() {
+			this.resetForm('formData');
+			// this.$emit('update:dialogVisible', false)
+		}
+	}
+};
+</script>

+ 330 - 323
src/views/common/below/temporaryTaskAmend.vue

@@ -1,40 +1,29 @@
 <template>
-  <div>
-    <!-- 临时任务弹窗 -->
-    <el-dialog
-      :title="showTitle"
-      :visible.sync="dialogVisible"
-      :close-on-click-modal="false"
-      :before-close="closeDialog"
-      width="600px">
-      <div>
-        <el-form :model="formData" ref="formData" label-width="80px" v-loading="taskload">
-          <el-form-item label="任务内容" prop="task_name" :rules="[{ required: true, message: '请填写任务内容', trigger: 'blur' },{ min: 3, max: 20, message: '长度在 3 到 20 个字符', trigger: 'blur' }]">
-            <el-input type="textarea" rows="2" v-model="formData.task_name" placeholder="请输入任务内容(限20字)"></el-input>
-          </el-form-item>
+	<div>
+		<!-- 临时任务弹窗 -->
+		<el-dialog :title="showTitle" :visible.sync="dialogVisible" :close-on-click-modal="false" :before-close="closeDialog" width="600px">
+			<div>
+				<el-form :model="formData" ref="formData" label-width="80px" v-loading="taskload">
+					<el-form-item
+						label="任务内容"
+						prop="task_name"
+						:rules="[{ required: true, message: '请填写任务内容', trigger: 'blur' }, { min: 3, max: 20, message: '长度在 3 到 20 个字符', trigger: 'blur' }]"
+					>
+						<el-input type="textarea" rows="2" v-model="formData.task_name" placeholder="请输入任务内容(限20字)"></el-input>
+					</el-form-item>
 
-          <el-form-item label="任务积分" prop="base_point" :rules="[{ required: true, message: '请填写任务积分', trigger: 'change' }]">
-            <el-input-number v-model="formData.base_point" :min="1"></el-input-number>
-          </el-form-item>
+					<el-form-item label="任务积分" prop="base_point" :rules="[{ required: true, message: '请填写任务积分', trigger: 'change' }]">
+						<el-input-number v-model="formData.base_point" :min="1"></el-input-number>
+					</el-form-item>
+
+					<el-form-item label="执行人" prop="targets" :rules="[{ required: true, message: '请选择执行人', trigger: 'change' }]">
+						<el-row>
+							<el-col :span="18">
+								<el-input auto-complete="off" v-model="executorName" placeholder="请选择执行人"></el-input>
+								<div @click="show_employee_selector = true" style=" position: absolute; top: 0; right: 0; left: 0; bottom: 0; z-index: 9;"></div>
+							</el-col>
+						</el-row>
 
-          <el-form-item label="执行人" prop="targets" :rules="[{ required: true, message: '请选择执行人', trigger: 'change' }]">
-            <el-row>
-              <el-col :span="18">
-                <el-input auto-complete="off" v-model="executorName" placeholder="请选择执行人"></el-input>
-                <div @click="show_employee_selector = true" style=" position: absolute; top: 0; right: 0; left: 0; bottom: 0; z-index: 9;"></div>
-              </el-col>
-            </el-row>
-            <!-- <EmployeeSelector
-              :employee_not_select="approval_not_select"
-              :employee_list="employee_list"
-              :isChecKedAll="false"
-              :can_select_employee="true"
-              :can_select_dept="false"
-              :multi="false"
-              :selected="approval_selected"
-              :visible.sync="show_employee_selector"
-              @confirm="approval_confirm"/> -->
-              
 						<el-dialog title="选择执行人" width="640px" :visible.sync="show_employee_selector" append-to-body :before-close="handleClose">
 							<EmployeeSelector
 								v-if="show_employee_selector"
@@ -43,7 +32,7 @@
 								:employee_list="employee_list"
 								:user_no_select="false"
 								:can_select_dept="false"
-                :multi="false"
+								:multi="false"
 								:selected="approval_selected"
 								@confirm="approval_confirm"
 							/>
@@ -52,36 +41,25 @@
 								<el-button type="primary" @click="submitEmployee('members')">确 定</el-button>
 							</span>
 						</el-dialog>
-
-          </el-form-item>
-          <el-form-item label="审批人" prop="reviewer_id" :rules="[{ required: true, message: '请选择审批人', trigger: 'blur' }]">
-            <el-row>
-              <el-col :span="18">
-                <el-input auto-complete="off" v-model="reviewerName" placeholder="请选择审批人"></el-input>
-                <div @click="show_reviewer_selector = true" style=" position: absolute; top: 0; right: 0; left: 0; bottom: 0; z-index: 9;"></div>
-              </el-col>
-            </el-row>
-            <!-- <EmployeeSelector
-              :employee_not_select="reviewer_not_select"
-              :employee_list="reviewer_employee_list"
-              :can_select_employee="true"
-              :can_select_dept="false"
-              :multi="false"
-              :use_employee_list="true"
-              :selected="reviewer_selected"
-              :visible.sync="show_reviewer_selector"
-              @confirm="reviewer_confirm"/> -->
+					</el-form-item>
+					<el-form-item label="审批人" prop="reviewer_id" :rules="[{ required: true, message: '请选择审批人', trigger: 'blur' }]">
+						<el-row>
+							<el-col :span="18">
+								<el-input auto-complete="off" v-model="reviewerName" placeholder="请选择审批人"></el-input>
+								<div @click="show_reviewer_selector = true" style=" position: absolute; top: 0; right: 0; left: 0; bottom: 0; z-index: 9;"></div>
+							</el-col>
+						</el-row>
 						<el-dialog title="选择审批人" width="640px" :visible.sync="show_reviewer_selector" append-to-body :before-close="handleClose">
 							<EmployeeSelector
 								v-if="show_reviewer_selector"
 								ref="members1"
-                :isChecKedAll="false"
+								:isChecKedAll="false"
 								:isCreatorSelect="false"
 								:employee_list="reviewer_employee_list"
 								:user_no_select="true"
 								:can_select_dept="false"
-                :multi="false"
-                :use_Administrator_list="true"
+								:multi="false"
+								:use_Administrator_list="true"
 								:selected="reviewer_selected"
 								@confirm="reviewer_confirm"
 							/>
@@ -90,282 +68,311 @@
 								<el-button type="primary" @click="submitEmployee1('members1')">确 定</el-button>
 							</span>
 						</el-dialog>
+					</el-form-item>
+					<el-form-item label="截止日期" prop="expire_time" v-if="formData.task_cycle == 0" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
+						<el-date-picker
+							v-model="formData.expire_time"
+							type="datetime"
+							placeholder="选择日期时间"
+							format="yyyy-MM-dd HH:mm"
+							value-format="yyyy-MM-dd HH:mm"
+							default-time="18:00"
+						></el-date-picker>
+					</el-form-item>
 
-          </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="截止日期" prop="expire_time" v-if="formData.task_cycle == 0" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
-            <el-date-picker
-              v-model="formData.expire_time"
-              type="datetime"
-              placeholder="选择日期时间"
-              format="yyyy-MM-dd HH:mm"
-              value-format="yyyy-MM-dd HH:mm"
-              default-time="18:00"
-              >
-            </el-date-picker>
-          </el-form-item>
-
-          <el-form-item label="截止日期" prop="task_expire_day" v-if="formData.task_cycle == 1" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
-            <el-select v-model="formData.task_expire_day" placeholder="请选择截止日期">
-              <el-option
-                v-for="item in columns1"
-                :key="item.value"
-                :label="item.name"
-                :value="item.value">
-              </el-option>
-            </el-select>
-          </el-form-item>
-
-          <el-form-item label="截止日期" prop="task_expire_day" v-if="formData.task_cycle == 2" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
-            <el-select v-model="formData.task_expire_day" placeholder="请选择截止日期">
-              <el-option
-                v-for="item in columns2"
-                :key="item.value"
-                :label="item.name"
-                :value="item.value">
-              </el-option>
-            </el-select>
-          </el-form-item>
+					<el-form-item label="截止日期" prop="task_expire_day" v-if="formData.task_cycle == 1" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
+						<el-select v-model="formData.task_expire_day" placeholder="请选择截止日期">
+							<el-option v-for="item in columns1" :key="item.value" :label="item.name" :value="item.value"></el-option>
+						</el-select>
+					</el-form-item>
 
-          <el-form-item label="截止日期" prop="task_expire_day" v-if="formData.task_cycle == 3" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
-            <el-select v-model="formData.task_expire_day" placeholder="请选择截止日期">
-              <el-option
-                v-for="item in columns3"
-                :key="item.value"
-                :label="item.name"
-                :value="item.value">
-              </el-option>
-            </el-select>
-          </el-form-item>
+					<el-form-item label="截止日期" prop="task_expire_day" v-if="formData.task_cycle == 2" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
+						<el-select v-model="formData.task_expire_day" placeholder="请选择截止日期">
+							<el-option v-for="item in columns2" :key="item.value" :label="item.name" :value="item.value"></el-option>
+						</el-select>
+					</el-form-item>
 
-          <el-form-item label="任务描述" prop="task_remark" :rules="[{ max: 300 ,message: '长度不能超过 300 个字', trigger: 'blur' }]">
-            <el-input type="textarea" :rows="5" v-model="formData.task_remark" placeholder="请输入任务内容(限300字)"></el-input>
-          </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>
-            </el-select>
-          </el-form-item> -->
+					<el-form-item label="截止日期" prop="task_expire_day" v-if="formData.task_cycle == 3" :rules="[{ required: true, message: '请选择截止日期', trigger: 'blur' }]">
+						<el-select v-model="formData.task_expire_day" placeholder="请选择截止日期">
+							<el-option v-for="item in columns3" :key="item.value" :label="item.name" :value="item.value"></el-option>
+						</el-select>
+					</el-form-item>
 
-          <div style="margin-left: 80px; margin-bottom: 8px;">以天为单位,每逾期一天扣分</div>
-          <el-form-item label="逾期扣分" prop="timeout_deduction_point">
-            <el-input v-model="formData.timeout_deduction_point" oninput="value=value.replace(/[^\d]/g,'')" placeholder="请输入数值"></el-input>
-          </el-form-item> 
+					<el-form-item label="任务描述" prop="task_remark" :rules="[{ max: 300, message: '长度不能超过 300 个字', trigger: 'blur' }]">
+						<el-input type="textarea" :rows="5" v-model="formData.task_remark" placeholder="请输入任务内容(限300字)"></el-input>
+					</el-form-item>
 
-          <el-form-item>
-            <el-button type="primary" @click="sub('formData')">确认修改</el-button>
-            <el-button @click="resetForm('formData')">取消</el-button>
-          </el-form-item>
-          
+					<div style="margin-left: 80px; margin-bottom: 8px;">以天为单位,每逾期一天扣分</div>
+					<el-form-item label="逾期扣分" prop="timeout_deduction_point">
+						<el-input v-model="formData.timeout_deduction_point" oninput="value=value.replace(/[^\d]/g,'')" placeholder="请输入数值"></el-input>
+					</el-form-item>
 
-        </el-form>
-      </div>
-    </el-dialog>
-  </div>
+					<el-form-item>
+						<el-button type="primary" @click="sub('formData')">确认修改</el-button>
+						<el-button @click="resetForm('formData')">取消</el-button>
+					</el-form-item>
+				</el-form>
+			</div>
+		</el-dialog>
+	</div>
 </template>
 
 <script>
-  import moment from 'moment'
-  import EmployeeSelector from '@/components/EmployeeSelector.vue'
-  // import EmployeeSelector from '@/views/common/EmployeeSelectorCopy'
-  export default {
-    name: 'temporaryTask',
-    props:{
-      modifyData: {
-        type: Object,
-      },
-      employee_not_select: {
-        type: Array,
-        default: () => {
-          return []
-        }
-      },
-      dialogVisible: {
-        type: Boolean,
-        default: false
-      },
-      showTitle: {
-        type: String,
-        default: ''
-      }
-    },
-    data() {
-      return {
-        taskload:false,
-        formData: {
-          id:0,
-          task_name: '',
-          base_point: '',
-          task_remark: '',
-          pt_id: 3,
-          task_expire_day: 1,
-          expire_time: moment().format('YYYY-MM-DD 18:00'),
-          weight: 0,
-          package_id: 0,
-          targets: [],
-          reviewer_id: '',
-          task_cycle: 0,
-          timeout_deduction_point: null
-        },
-        point_types: [],
-        // 执行者
-        executorName: null,
-        show_employee_selector: false,
-        approval_selected: {dept: [],employee:[]},
-        approval_not_select: [],
-        employee_list: this.$getUserData().employee_detail.manage_scope,
-        // 审批人
-        reviewerName: null,
-        reviewer_not_select: [],
-        reviewer_employee_list: [],
-        reviewer_selected: {dept: [],employee:[]},
-        show_reviewer_selector: false,
+import moment from 'moment';
+import EmployeeSelector from '@/components/EmployeeSelector.vue';
+export default {
+	name: 'temporaryTask',
+	props: {
+		modifyData: {
+			type: Object
+		},
+		employee_not_select: {
+			type: Array,
+			default: () => {
+				return [];
+			}
+		},
+		dialogVisible: {
+			type: Boolean,
+			default: false
+		},
+		showTitle: {
+			type: String,
+			default: ''
+		}
+	},
+	data() {
+		return {
+			taskload: false,
+			formData: {
+				id: 0,
+				task_name: '',
+				base_point: '',
+				task_remark: '',
+				pt_id: 3,
+				task_expire_day: 1,
+				expire_time: moment().format('YYYY-MM-DD 18:00'),
+				weight: 0,
+				package_id: 0,
+				targets: [],
+				reviewer_id: '',
+				task_cycle: 0,
+				timeout_deduction_point: null
+			},
+			point_types: [],
+			// 执行者
+			executorName: null,
+			show_employee_selector: false,
+			approval_selected: { dept: [], employee: [] },
+			approval_not_select: [],
+			employee_list: this.$getUserData().employee_detail.manage_scope,
+			// 审批人
+			reviewerName: null,
+			reviewer_not_select: [],
+			reviewer_employee_list: [],
+			reviewer_selected: { dept: [], employee: [] },
+			show_reviewer_selector: false,
 
-        // 重复周期
-        task_cycle_arr: [
-          {value:  0, name: '不重复'}, 
-          {value:  1, name: '每天重复'}, 
-          {value:  2, name: '每周重复'}, 
-          {value:  3, name: '每月重复'}
-        ],
-        // 周期时间
-        columns1: [{name:'01:00', value: 1}, {name:'02:00', value: 2}, {name:'03:00', value: 3}, {name:'04:00', value: 4}, {name:'05:00', value: 5}, {name:'06:00', value: 6}, {name:'07:00', value: 7}, {name:'08:00', value: 8}, {name:'09:00', value: 9}, {name:'10:00', value: 10}, {name:'11:00', value: 11}, {name:'12:00', value: 12}, {name:'13:00', value: 13}, {name:'14:00', value: 14}, {name:'15:00', value: 15}, {name:'16:00', value: 16}, {name:'17:00', value: 17}, {name:'18:00', value: 18}, {name:'19:00', value: 19}, {name:'20:00', value: 20}, {name:'21:00', value: 21}, {name:'22:00', value: 22}, {name:'23:00', value: 23}, {name:'24:00', value: 24}],
-        columns2: [{name: '周一', value: 1}, {name: '周二', value: 2}, {name: '周三', value: 3}, {name: '周四', value: 4}, {name: '周五', value: 5}, {name: '周六', value: 6}, {name: '周日', value: 7}],
-        columns3: [{name:'1号', value: 1},{name:'2号', value: 2},{name:'3号', value: 3},{name:'4号', value: 4},{name:'5号', value: 5},{name:'6号', value: 6},{name:'7号', value: 7},{name:'8号', value: 8},{name:'9号', value: 9},{name:'10号', value: 10},{name:'11号', value: 11},{name:'12号', value: 12},{name:'13号', value: 13},{name:'14号', value: 14},{name:'15号', value: 15},{name:'16号', value: 16},{name:'17号', value: 17},{name:'18号', value: 18},{name:'19号', value: 19},{name:'20号', value: 20},{name:'21号', value: 21},{name:'22号', value: 22},{name:'23号', value: 23},{name:'24号', value: 24},{name:'25号', value: 25},{name:'26号', value: 26},{name:'27号', value: 27},{name:'28号', value: 28},{name:'29号', value: 29},{name:'30号', value: 30},{name:'31号', value: 31}],
-      }
-    },
-    components: {EmployeeSelector},
-    watch:{
-      dialogVisible(){
-        if(this.dialogVisible){
-          this.Datas()
-        }
-      },
-      'formData.task_cycle'(val){
-        if (val) {
-          this.formData.task_expire_day = 1
-        }else{
-          this.formData.expire_time = moment().format('YYYY-MM-DD 18:00')
-        }
-      },
-      modifyData(){
-        // this.Datas()
-      }
-    },
-    mounted() {
-      this.point_types = JSON.parse(localStorage.getItem('types'))
-    },
-    methods: {
-      submitEmployee(name) {
-        this.$refs[name].confirm(); //调用组件的confirm();
-      },
-      submitEmployee1(name) {
-        this.$refs[name].confirm(); //调用组件的confirm();
-      },
-      //关闭
-      handleClose(done) {
-        done();
-      },
-      Datas(){
-        this.formData.id = this.modifyData.id
-        this.formData.task_name = this.modifyData.task_name
-        this.formData.base_point = this.modifyData.point_config.base_point
-        this.formData.task_remark = this.modifyData.task_remark
-        this.formData.pt_id = this.modifyData.pt_id
-        this.formData.expire_time = this.modifyData.expire_time
-        this.executorName = this.modifyData.employee_name
-        this.reviewerName = this.modifyData.reviewer_name
+			// 重复周期
+			task_cycle_arr: [{ value: 0, name: '不重复' }, { value: 1, name: '每天重复' }, { value: 2, name: '每周重复' }, { value: 3, name: '每月重复' }],
+			// 周期时间
+			columns1: [
+				{ name: '01:00', value: 1 },
+				{ name: '02:00', value: 2 },
+				{ name: '03:00', value: 3 },
+				{ name: '04:00', value: 4 },
+				{ name: '05:00', value: 5 },
+				{ name: '06:00', value: 6 },
+				{ name: '07:00', value: 7 },
+				{ name: '08:00', value: 8 },
+				{ name: '09:00', value: 9 },
+				{ name: '10:00', value: 10 },
+				{ name: '11:00', value: 11 },
+				{ name: '12:00', value: 12 },
+				{ name: '13:00', value: 13 },
+				{ name: '14:00', value: 14 },
+				{ name: '15:00', value: 15 },
+				{ name: '16:00', value: 16 },
+				{ name: '17:00', value: 17 },
+				{ name: '18:00', value: 18 },
+				{ name: '19:00', value: 19 },
+				{ name: '20:00', value: 20 },
+				{ name: '21:00', value: 21 },
+				{ name: '22:00', value: 22 },
+				{ name: '23:00', value: 23 },
+				{ name: '24:00', value: 24 }
+			],
+			columns2: [
+				{ name: '周一', value: 1 },
+				{ name: '周二', value: 2 },
+				{ name: '周三', value: 3 },
+				{ name: '周四', value: 4 },
+				{ name: '周五', value: 5 },
+				{ name: '周六', value: 6 },
+				{ name: '周日', value: 7 }
+			],
+			columns3: [
+				{ name: '1号', value: 1 },
+				{ name: '2号', value: 2 },
+				{ name: '3号', value: 3 },
+				{ name: '4号', value: 4 },
+				{ name: '5号', value: 5 },
+				{ name: '6号', value: 6 },
+				{ name: '7号', value: 7 },
+				{ name: '8号', value: 8 },
+				{ name: '9号', value: 9 },
+				{ name: '10号', value: 10 },
+				{ name: '11号', value: 11 },
+				{ name: '12号', value: 12 },
+				{ name: '13号', value: 13 },
+				{ name: '14号', value: 14 },
+				{ name: '15号', value: 15 },
+				{ name: '16号', value: 16 },
+				{ name: '17号', value: 17 },
+				{ name: '18号', value: 18 },
+				{ name: '19号', value: 19 },
+				{ name: '20号', value: 20 },
+				{ name: '21号', value: 21 },
+				{ name: '22号', value: 22 },
+				{ name: '23号', value: 23 },
+				{ name: '24号', value: 24 },
+				{ name: '25号', value: 25 },
+				{ name: '26号', value: 26 },
+				{ name: '27号', value: 27 },
+				{ name: '28号', value: 28 },
+				{ name: '29号', value: 29 },
+				{ name: '30号', value: 30 },
+				{ name: '31号', value: 31 }
+			]
+		};
+	},
+	components: { EmployeeSelector },
+	watch: {
+		dialogVisible() {
+			if (this.dialogVisible) {
+				this.Datas();
+			}
+		},
+		'formData.task_cycle'(val) {
+			if (val) {
+				this.formData.task_expire_day = 1;
+			} else {
+				this.formData.expire_time = moment().format('YYYY-MM-DD 18:00');
+			}
+		},
+		modifyData() {
+			// this.Datas()
+		}
+	},
+	mounted() {
+		this.point_types = JSON.parse(localStorage.getItem('types'));
+	},
+	methods: {
+		submitEmployee(name) {
+			this.$refs[name].confirm(); //调用组件的confirm();
+		},
+		submitEmployee1(name) {
+			this.$refs[name].confirm(); //调用组件的confirm();
+		},
+		//关闭
+		handleClose(done) {
+			done();
+		},
+		Datas() {
+			this.formData.id = this.modifyData.id;
+			this.formData.task_name = this.modifyData.task_name;
+			this.formData.base_point = this.modifyData.point_config.base_point;
+			this.formData.task_remark = this.modifyData.task_remark;
+			this.formData.pt_id = this.modifyData.pt_id;
+			this.formData.expire_time = this.modifyData.expire_time;
+			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}]
+			// 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 }];
 
-        this.formData.reviewer_id = this.modifyData.reviewer_id
-        this.reviewer_selected.employee = [{id: this.modifyData.reviewer_id ,img_url:this.modifyData.img_url,name: this.modifyData.reviewer_name}]
-        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 = ''
-        }
-      },
-      sub(formName){
-        this.$refs[formName].validate((valid) => {
-          if (valid) {
-            this.saveFun(formName)
-          }
-        });
-      },
-      resetForm(formName){
-        this.$emit('update:dialogVisible', false)
-        this.$refs[formName].resetFields();
-        this.executorName = ''
-        this.reviewerName = ''
-      },
-      // 提交
-      saveFun(formName){
-        this.taskload = true
-        // 没有选择重复任务的时候
-        // /api/integral/work/publish
-        // 选择重复任务之后
-        // /api/integral/schedule/publish/work
-        
-        let self = this
-        let data = JSON.parse(JSON.stringify(self.formData))
-        if(data.timeout_deduction_point==''){
-          data.timeout_deduction_point = 0
-        }
-        self.$axios('post','/api/integral/work/update',data).then(res => {
-          if(res.data.code == 1){
-            this.$parent.get_list()
-            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)
-          }
-        }).finally(()=>{
-          this.taskload = false
-        })
+			this.formData.reviewer_id = this.modifyData.reviewer_id;
+			this.reviewer_selected.employee = [{ id: this.modifyData.reviewer_id, img_url: this.modifyData.img_url, name: this.modifyData.reviewer_name }];
+			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 = '';
+			}
+		},
+		sub(formName) {
+			this.$refs[formName].validate(valid => {
+				if (valid) {
+					this.saveFun(formName);
+				}
+			});
+		},
+		resetForm(formName) {
+			this.$emit('update:dialogVisible', false);
+			this.$refs[formName].resetFields();
+			this.executorName = '';
+			this.reviewerName = '';
+		},
+		// 提交
+		saveFun(formName) {
+			this.taskload = true;
+			// 没有选择重复任务的时候
+			// /api/integral/work/publish
+			// 选择重复任务之后
+			// /api/integral/schedule/publish/work
 
-      },
-      // 执行者
-      approval_confirm(data){
-        this.approval_selected = {dept: [],employee:[]}
-        this.formData.targets = []
-        this.executorName = ''
-        if (data.employee !== null && data.employee.length != 0) {
-          this.approval_selected = data
-          data.employee.forEach(element => {
-						this.formData.targets.push(element.id)
-						this.executorName += (element.name+',')
-          });
-        }
-        this.show_employee_selector = false
-      },
-      // 执行者 end
-      // 审核人
-      reviewer_confirm(data){
-        this.reviewer_selected = {dept: [],employee:[]}
-        this.formData.reviewer_id = ''
-        this.reviewerName = ''
-        if (data.employee !== null && data.employee.length != 0) {
-          this.reviewer_selected = data
-          this.formData.reviewer_id = data.employee[0].id
-          this.reviewerName = data.employee[0].name
-        }
-        this.show_reviewer_selector = false
-      },
-      closeDialog(){
-        this.$emit('update:dialogVisible', false)
-      }
-    }
-  }
-</script>
+			let self = this;
+			let data = JSON.parse(JSON.stringify(self.formData));
+			if (data.timeout_deduction_point == '') {
+				data.timeout_deduction_point = 0;
+			}
+			self.$axios('post', '/api/integral/work/update', data)
+				.then(res => {
+					if (res.data.code == 1) {
+						this.$parent.get_list();
+						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);
+					}
+				})
+				.finally(() => {
+					this.taskload = false;
+				});
+		},
+		// 执行者
+		approval_confirm(data) {
+			this.approval_selected = { dept: [], employee: [] };
+			this.formData.targets = [];
+			this.executorName = '';
+			if (data.employee !== null && data.employee.length != 0) {
+				this.approval_selected = data;
+				data.employee.forEach(element => {
+					this.formData.targets.push(element.id);
+					this.executorName += element.name + ',';
+				});
+			}
+			this.show_employee_selector = false;
+		},
+		// 执行者 end
+		// 审核人
+		reviewer_confirm(data) {
+			this.reviewer_selected = { dept: [], employee: [] };
+			this.formData.reviewer_id = '';
+			this.reviewerName = '';
+			if (data.employee !== null && data.employee.length != 0) {
+				this.reviewer_selected = data;
+				this.formData.reviewer_id = data.employee[0].id;
+				this.reviewerName = data.employee[0].name;
+			}
+			this.show_reviewer_selector = false;
+		},
+		closeDialog() {
+			this.$emit('update:dialogVisible', false);
+		}
+	}
+};
+</script>

+ 0 - 11
src/views/common/taskDetailsPopup.vue

@@ -51,7 +51,6 @@
           <div class="d_progress">
             <div class="flex-box">
               <div class="flex-1">工作进度({{workDetailData.progress}}%)</div>
-              <!-- <div class="fontColorF addJf" @click="isSlider=true" v-if="workDetailData.employee_id==userId&& workDetailData.status==1">+更新进度</div> -->
             </div>
             <el-progress :percentage="workDetailData.progress"></el-progress>
           </div>
@@ -60,7 +59,6 @@
               <el-tab-pane label="工作记录" name="work">
                 <div class="flex-box">
                   <div class="flex-1"></div>
-                  <!-- <div class="fontColorF addJf" @click="isOne=true" v-if="workDetailData.employee_id==userId&&workDetailData.status==1">+记一条工作记录</div> -->
                 </div>
                 <div class="work_box" style="padding-top:10px" v-if="workDetailData.process !== null && workDetailData.process.list !== null">
                   <div class="flex-box work_item" v-for="(item,index) in workDetailData.process.list" v-show="item.point == 0">
@@ -82,7 +80,6 @@
               <el-tab-pane label="记分记录" name="participation">
                 <div class="flex-box" style="padding-bottom: 10px;border-bottom: 1px solid #f1f1f1;">
                   <div class="flex-1 fontColorF"><span v-if="point_total>0">合计:{{point_total}}</span> </div>
-                  <!-- <div class="fontColorF addJf" @click="isIntegral=true" v-if="workDetailData.reviewer_id==userId&&workDetailData.status==1">+记分</div> -->
                 </div>
                 <div class="work_box" style="padding-top:10px" v-if="workDetailData.process !== null && workDetailData.process.list !== null">
                   <div class="flex-box work_item" v-for="(item,index) in workDetailData.process.list" v-show="item.point != 0">
@@ -108,11 +105,6 @@
           </div>
         </div>
       </div>
-      <!-- <el-row>
-        <el-col :span="24">
-          <el-button type="danger" @click="delItem">删除</el-button>
-        </el-col>
-      </el-row> -->
     </el-drawer>
 
   </div>
@@ -201,9 +193,6 @@
         })
       }
     },
-    // activated(){
-    //   this.getData()
-    // }
   }
 </script>
 <style lang="scss" scoped="scoped">

+ 309 - 452
src/views/ranking/attendance_rating.vue

@@ -1,482 +1,339 @@
 <template>
-  <div>
-    <div class="integral_statistics_box" v-loading="attendload">
-      <el-row :gutter="10" style="margin-right:8px;">
-        <el-form :inline="true">
-          <el-form-item label="考勤组">
-            <el-select
-              v-model="formData.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>
+	<div>
+		<div class="all padding-20" v-loading="attendload">
+			<el-row :gutter="10" style="margin-right:8px;">
+				<el-form :inline="true">
+					<el-form-item label="考勤组">
+						<el-select v-model="formData.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="formData.event_type"
-              @change="selectgroupId"
-              style="width:110px"
-              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-select v-model="formData.event_type" @change="selectgroupId" style="width:110px" 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
-              v-model="Month_range"
-              class="date-picker-width"
-              type="month"
-              :clearable='false'
-              value-format="yyyy-MM"
-              placeholder="选择月份排名"
-              @change="onFilterChanged"
-            ></el-date-picker> -->
+					<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-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-button type="primary" plain @click="exportRanking">导出排名</el-button></el-form-item>
+				</el-form>
+			</el-row>
 
+			<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 class="fl" :id="scope.row.id" :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>
 
-          </el-form-item>
+			<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-form-item>
-            <el-button type="primary" plain @click="exportRanking"
-              >导出排名</el-button
-            >
-          </el-form-item>
-        </el-form>
-      </el-row>
+		<!-- 导出弹窗 -->
+		<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-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
-                class="fl"
-                :id="scope.row.id"
-                :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">
-          <div class="nopoint_box">
-            <div class="noimg noperson"></div>
-            <span class="title">没有对应的数据</span>
-          </div>
-        </template> -->
-        <template slot="empty">
-          <noData :content="checkingInGroup.length==0?'请先开启钉钉考勤':'暂无数据'"></noData>
-        </template>
-      </el-table>
+					<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>
 
-      <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
-              v-model="exportMonth_range"
-              class="date-picker-width"
-              type="month"
-              :clearable='false'
-              value-format="yyyy-MM"
-              placeholder="选择月份排名"
-            ></el-date-picker> -->
-
-            <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>
+					<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 {
-      exportLoad:false,
-      dialogVisible: false,
-      checkingInGroup: [],
-      event_type: [
-        { id: 0, name: "总分" },
-        { id: 1, name: "迟到" },
-        { id: 2, name: "早退" },
-        { id: 6, name: "准时打卡" },
-        { id: 20, name: "上班缺卡" },
-        { id: 21, name: "下班缺卡" },
-        { id: 16, name: "加班 " },
-        { id: 10, name: "缺勤" },
-      ],
-      attendload: false,
-      loading: false,
-      all_integral_list: null,
-      Month_range:this.$moment().format("YYYY-MM"),
-      time_range: [
-        this.$moment()
-          .startOf("month")
-          .format("YYYY-MM-DD"),
-        this.$moment()
-          .endOf("month")
-          .format("YYYY-MM-DD")
-      ],
-      formData: {
-        group_id: "",
-        // date_type: 3,
-        page: 1,
-        page_size: 10,
-        event_type: 0
-      },
-      exportMonth_range:this.$moment().format("YYYY-MM"),
-      exportTime_range: [
-        this.$moment()
-          .startOf("month")
-          .format("YYYY-MM-DD"),
-        this.$moment()
-          .endOf("month")
-          .format("YYYY-MM-DD")
-      ],
-      exportData: {
-        group_id: "",
-        event_type: 0
-      },
-      total: 0,
-      dept_tree: [],
-      dept_name: [],
-      pageLimit1: 10,
-      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]);
-            }
-          }
-        ]
-      }
-    };
-  },
-  components: {noData},
-  watch: {},
-  mounted() {
-    this.checkingIn_group(); //考勤组
-  },
-  methods: {
-    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');
-
-      // this.exportLoad = true
-      // let params = this.exportData;
-
-      // params.date_type = 3,
-      // params.month_date = this.exportMonth_range
-      // params.date_type = 2,
-
-      // params.start_date = this.exportTime_range[0];
-      // params.end_date = this.exportTime_range[1];
-      // params.page = 1,
-      // params.page_size = 2000,
-
-      
-      // this.$axios('get',"/api/ad/groups_ranking/export", params).then((res)=>{
-      //   if(res.data.code == 1){
-      //     window.open('/ad/statistics/group_rank_export?code='+res.data.data.code,'_blank')
-      //     this.dialogVisible = false
-      //   }else{
-      //     this.$message.error(res.data.msg);
-      //   }
-      // }).finally(()=>{
-      //     this.exportLoad = false
-      // })
-    },
-    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();
-    },
-    //请求数据
-    checkingIn_group() {
-      this.attendload = true;
-      let self = this;
-      let params = {
-        page: 1,
-        page_size: 2000
-      };
-      this.$axios('get',"/api/ad/groups",params)
-        .then(res => {
-          if (res.data.code == 1) {
-            let list = res.data.data.list
-            let datas = []
-            for(let key in list){
-              let obj = {}
-              obj.id = key
-              obj.name = list[key]
-              datas.push(obj)
-            }
-            console.log(datas)
-            this.checkingInGroup = datas
-            this.formData.group_id = datas[0].id;
-          }
-        })
-        .finally(() => {
-          this.get_all_integral();
-          this.attendload = false;
-        });
-    },
-    //请求数据
-    get_all_integral() {
-      let self = this;
-      self.loading = true;
-      // let data = self.formData;
-      let data = {
-        group_id:this.formData.group_id,
-        // date_type:this.formData.date_type,
-        page:this.formData.page,
-        page_size:this.formData.page_size,
-        event_type:this.formData.event_type,
-        // month_date:this.Month_range,
-      }
-      // data.month_date = this.Month_range
-      data.start_date = this.time_range[0];
-      data.end_date = this.time_range[1];
-      // data.page = data.page-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;
-        });
-    }
-  }
+	data() {
+		return {
+			exportLoad: false,
+			dialogVisible: false,
+			checkingInGroup: [],
+			event_type: [
+				{ id: 0, name: '总分' },
+				{ id: 1, name: '迟到' },
+				{ id: 2, name: '早退' },
+				{ id: 6, name: '准时打卡' },
+				{ id: 20, name: '上班缺卡' },
+				{ id: 21, name: '下班缺卡' },
+				{ id: 16, name: '加班 ' },
+				{ id: 10, name: '缺勤' }
+			],
+			attendload: false,
+			loading: false,
+			all_integral_list: null,
+			Month_range: this.$moment().format('YYYY-MM'),
+			time_range: [
+				this.$moment()
+					.startOf('month')
+					.format('YYYY-MM-DD'),
+				this.$moment()
+					.endOf('month')
+					.format('YYYY-MM-DD')
+			],
+			formData: {
+				group_id: '',
+				// date_type: 3,
+				page: 1,
+				page_size: 10,
+				event_type: 0
+			},
+			exportMonth_range: this.$moment().format('YYYY-MM'),
+			exportTime_range: [
+				this.$moment()
+					.startOf('month')
+					.format('YYYY-MM-DD'),
+				this.$moment()
+					.endOf('month')
+					.format('YYYY-MM-DD')
+			],
+			exportData: {
+				group_id: '',
+				event_type: 0
+			},
+			total: 0,
+			dept_tree: [],
+			dept_name: [],
+			pageLimit1: 10,
+			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]);
+						}
+					}
+				]
+			}
+		};
+	},
+	components: { noData },
+	watch: {},
+	mounted() {
+		this.checkingIn_group(); //考勤组
+	},
+	methods: {
+		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();
+		},
+		//请求数据
+		checkingIn_group() {
+			this.attendload = true;
+			let self = this;
+			let params = {
+				page: 1,
+				page_size: 2000
+			};
+			this.$axios('get', '/api/ad/groups', params)
+				.then(res => {
+					if (res.data.code == 1) {
+						let list = res.data.data.list;
+						let datas = [];
+						for (let key in list) {
+							let obj = {};
+							obj.id = key;
+							obj.name = list[key];
+							datas.push(obj);
+						}
+						this.checkingInGroup = datas;
+						this.formData.group_id = datas[0].id;
+					}
+				})
+				.finally(() => {
+					this.get_all_integral();
+					this.attendload = false;
+				});
+		},
+		//请求数据
+		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;
+	width: auto;
 }
 .date-picker-width {
-  width: 145px !important;
+	width: 145px !important;
 }
 .search ::v-deep .el-input-group__append:active {
-  background: #26a2ff;
+	background: #26a2ff;
 }
 .search ::v-deep .el-input-group__append:active .el-icon-search {
-  color: #fff;
+	color: #fff;
 }
 </style>
 <style lang="scss" scoped>
-.integral_statistics_box {
-  min-width:780px;
-  background-color: #ffffff;
-  padding: 20px;
-  min-height: calc(100vh - 160px);
-}
-
 ::v-deep .el-dialog__body {
-  padding: 0px 20px 30px;
+	padding: 0px 20px 30px;
 }
 </style>

File diff suppressed because it is too large
+ 398 - 409
src/views/ranking/custom_rank code.vue


+ 1069 - 1106
src/views/ranking/custom_rank.vue

@@ -1,62 +1,56 @@
 <template>
-  <div class="all-box">
-      <div class="all">
-          <div class="flex-box">
-              
-    <!-- <el-row :gutter="0"> -->
-      <!-- <el-col :span="6"> -->
-      <div class="flex-box" v-loading="item_loading">
-        <div class="terr-left">
-            <div style="text-align: center; padding: 10px 0;"><el-button type="primary" @click="addGroup" :disabled="table_loading" v-if="employeeOrdept">新建分组</el-button></div>
-            <el-menu v-if="groups_list.length > 0" default-active="0" class="el-menu-vertical-demo elMenuCustomRule_Z">
-            <el-menu-item v-for="(item, index) in groups_list" :key="index" :index="index.toString()" @click="getGroupsInfo(item)">
-                <i class="el-icon-document-copy"></i>
-                <span slot="title">{{ item.name }}</span>
-            </el-menu-item>
-            </el-menu>
-            <div v-else style="text-align: center;margin-top: 10%;" class="fontColorF">
-                <img src="@/assets/image/nodata.png" style="width: 180px;height: 120px;margin: 30px auto;">
-                <div>还没有自定义分组</div>
-            </div>
-        </div>
-        <!-- <div v-if="groups_list.length == 0">
-          <div class="nopoint_box">
-            <div class="noimg noperson"></div>
-            <span class="title">没有对应的数据</span>
-          </div>
-        </div> -->
-      </div>
-      <!-- </el-col> -->
-      <el-col :span="18" class="listData" v-loading="table_loading">
-        <el-row style="margin-bottom: 10px;" v-if="groups_list.length != 0">
-          <el-col :span="24" class="groups_name">
-              <div class="flex-box flex-v-ce margin-bottom">
-                <div class="groupsName">{{groups_info.name}}<span class="blue" v-if="total>0">({{total}}人)</span></div>
-                <el-button @click="editGroup" v-if="employeeOrdept" size="medium" style="margin-left:15px;">编辑</el-button>
-              </div>
-          </el-col>
-          <!-- <el-col :span="24" style="color: rgb(144, 147, 153)">共{{ total }}人</el-col> -->
-        </el-row>
-        <el-form :model="params" :inline="true" ref="params">
-          <el-form-item label="月份" label-width="40px" v-if="newGroupForm.date_interval == 1">
-            <el-date-picker v-model="time.month" type="month" :clearable="false" placeholder="请选择月份" value-format="yyyy-MM"></el-date-picker>
-          </el-form-item>
+	<div class="all-box">
+		<div class="all">
+			<div class="flex-box">
+				<div class="flex-box" v-loading="item_loading">
+					<div class="terr-left">
+						<div style="text-align: center; padding: 10px 0;">
+							<el-button type="primary" @click="addGroup" :disabled="table_loading" v-if="employeeOrdept">新建分组</el-button>
+						</div>
+						<el-menu v-if="groups_list.length > 0" default-active="0" class="el-menu-vertical-demo elMenuCustomRule_Z">
+							<el-menu-item v-for="(item, index) in groups_list" :key="index" :index="index.toString()" @click="getGroupsInfo(item)">
+								<i class="el-icon-document-copy"></i>
+								<span slot="title">{{ item.name }}</span>
+							</el-menu-item>
+						</el-menu>
+						<div v-else style="text-align: center;margin-top: 10%;" class="fontColorF">
+							<img src="@/assets/image/nodata.png" style="width: 180px;height: 120px;margin: 30px auto;" />
+							<div>还没有自定义分组</div>
+						</div>
+					</div>
+				</div>
+				<el-col :span="18" class="listData" v-loading="table_loading">
+					<el-row style="margin-bottom: 10px;" v-if="groups_list.length != 0">
+						<el-col :span="24" class="groups_name">
+							<div class="flex-box flex-v-ce margin-bottom">
+								<div class="groupsName">
+									{{ groups_info.name }}
+									<span class="blue" v-if="total > 0">({{ total }}人)</span>
+								</div>
+								<el-button @click="editGroup" v-if="employeeOrdept" size="medium" style="margin-left:15px;">编辑</el-button>
+							</div>
+						</el-col>
+					</el-row>
+					<el-form :model="params" :inline="true" ref="params">
+						<el-form-item label="月份" label-width="40px" v-if="newGroupForm.date_interval == 1">
+							<el-date-picker v-model="time.month" type="month" :clearable="false" placeholder="请选择月份" value-format="yyyy-MM"></el-date-picker>
+						</el-form-item>
 
-          <el-form-item label="年份" label-width="40px" v-if="newGroupForm.date_interval == 3">
-            <el-date-picker v-model="time.year" type="year" :clearable="false" placeholder="请选择年份" value-format="yyyy"></el-date-picker>
-          </el-form-item>
-          <el-form-item label="季度" label-width="40px" v-if="newGroupForm.date_interval == 2">
-            <!-- <el-date-picker
+						<el-form-item label="年份" label-width="40px" v-if="newGroupForm.date_interval == 3">
+							<el-date-picker v-model="time.year" type="year" :clearable="false" placeholder="请选择年份" value-format="yyyy"></el-date-picker>
+						</el-form-item>
+						<el-form-item label="季度" label-width="40px" v-if="newGroupForm.date_interval == 2">
+							<!-- <el-date-picker
               v-model="time.quarter"
               type="month"
               placeholder="请选择季度"
               value-format="Q"
             ></el-date-picker> -->
 
-            <Season ref="Seasons" :defaultHint="true" :isActive="true" class="date-picker-width" @confirm="export_quarter_confirm"></Season>
-          </el-form-item>
+							<Season ref="Seasons" :defaultHint="true" :isActive="true" class="date-picker-width" @confirm="export_quarter_confirm"></Season>
+						</el-form-item>
 
-          <!-- <el-form-item label="规则分类" label-width="70px" >
+						<!-- <el-form-item label="规则分类" label-width="70px" >
 						<el-cascader
 							class="date-picker-width"
 							v-model="params.rule"
@@ -70,219 +64,174 @@
 							placeholder="全部规则分类"
 						></el-cascader>
 					</el-form-item> -->
-          <el-form-item><el-checkbox v-model="sort" size="medium" label="由低到高" border></el-checkbox></el-form-item>
-          <el-alert
-            v-if="lastUpdateTime != undefined || lastUpdateTime"
-            :title="
-              '温馨提醒:排名会在积分产生后自动更新,最近更新时间:' +
-                (lastUpdateTime != undefined ? (lastUpdateTime == '' ? '正在更新,请稍候' : lastUpdateTime) : '正在更新,请稍候')
-            "
-            type="success"
-            :closable="false"
-            show-icon
-          ></el-alert>
-        </el-form>
+						<el-form-item><el-checkbox v-model="sort" size="medium" label="由低到高" border></el-checkbox></el-form-item>
+						<el-alert
+							v-if="lastUpdateTime != undefined || lastUpdateTime"
+							:title="
+								'温馨提醒:排名会在积分产生后自动更新,最近更新时间:' +
+									(lastUpdateTime != undefined ? (lastUpdateTime == '' ? '正在更新,请稍候' : lastUpdateTime) : '正在更新,请稍候')
+							"
+							type="success"
+							:closable="false"
+							show-icon
+						></el-alert>
+					</el-form>
 
-        <el-table :data="table_list" style="width: 100%">
-          <el-table-column label="名次" width="80" align="center">
-            <template slot-scope="scope">
-              <!-- <img v-if="scope.row.rank === 1" src="/static/images/statistics_NO1.png" alt="" />
+					<el-table :data="table_list" style="width: 100%">
+						<el-table-column label="名次" width="80" align="center">
+							<template slot-scope="scope">
+								<!-- <img v-if="scope.row.rank === 1" src="/static/images/statistics_NO1.png" alt="" />
               <img v-if="scope.row.rank === 2" src="/static/images/statistics_NO2.png" alt="" />
               <img v-if="scope.row.rank === 3" src="/static/images/statistics_NO3.png" alt="" /> -->
-              <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 class="flex-box">
-                    <userImage class="fl" :id="scope.row.employee_id" :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 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>
+								<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 class="flex-box">
+									<userImage
+										class="fl"
+										:id="scope.row.employee_id"
+										: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 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"
-				    :page-sizes="[10, 20, 50, 100]"
-            layout="total, sizes, prev, pager, next"
-            :page-size="params.page_size"
-            :current-page="params.page"
-            :total="total"
-          ></el-pagination>
-        </center>
-      </el-col>
-    </div>
-    <!-- </el-row> -->
-      </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="params.page_size"
+							:current-page="params.page"
+							:total="total"
+						></el-pagination>
+					</center>
+				</el-col>
+			</div>
+			<!-- </el-row> -->
+		</div>
+		<!-- 新增分组 -->
+		<el-dialog :title="popupType ? '新增分组' : '编辑分组'" width="460px" :visible.sync="groupShow" :close-on-click-modal="false">
+			<el-form ref="newGroupForm" v-loading="loading" :model="newGroupForm" :rules="rules" label-width="85px" @submit.native.prevent>
+				<el-form-item label="分组名称" prop="group_name">
+					<el-input v-model="newGroupForm.group_name" placeholder="请输入分组名称" auto-complete="off"></el-input>
+				</el-form-item>
 
-    <!-- 新增分组 -->
-    <el-dialog :title="popupType ? '新增分组' : '编辑分组'" width="460px" :visible.sync="groupShow" :close-on-click-modal="false">
-      <!-- :close="resetForm('newGroupForm')" -->
-      <el-form ref="newGroupForm" v-loading="loading" :model="newGroupForm" :rules="rules" label-width="85px" @submit.native.prevent>
-        <el-form-item label="分组名称" prop="group_name"><el-input v-model="newGroupForm.group_name" placeholder="请输入分组名称" auto-complete="off"></el-input></el-form-item>
+				<el-form-item label="分组成员" :required="true">
+					<el-input auto-complete="off" v-model="employees" placeholder="请选择分组成员"></el-input>
+					<div @click="isEmployeeShow = true" style=" position: absolute; top: 0; right: 0; left: 0; bottom: 0; z-index: 9;"></div>
+					<el-dialog title="选择人员" width="700px" :visible.sync="isEmployeeShow" append-to-body :before-close="handleClose">
+						<EmployeeSelector
+							v-if="isEmployeeShow"
+							ref="Employee"
+							:user_no_select="false"
+							:can_select_dept="true"
+							:selected="employees_selected"
+							:close_clear_data="true"
+							@confirm="move_employee_confirm"
+						/>
+						<span slot="footer" class="dialog-footer">
+							<el-button @click="isEmployeeShow = false">取 消</el-button>
+							<el-button type="primary" @click="submitEmployee()">确 定</el-button>
+						</span>
+					</el-dialog>
+				</el-form-item>
 
-        <el-form-item label="分组成员" :required="true">
-          <el-input auto-complete="off" v-model="employees" placeholder="请选择分组成员"></el-input>
-          <div @click="isEmployeeShow = true" style=" position: absolute; top: 0; right: 0; left: 0; bottom: 0; z-index: 9;"></div>
-          <!-- <EmployeeSelector
-            :employee_not_select="employee_not_select"
-            :can_select_employee="true"
-            :can_select_dept="false"
-            :selected="employees_selected"
-            :close_clear_data="false"
-            :visible.sync="show_employee_selector"
-            @confirm="move_employee_confirm"
-            :isChecKedAll="true"
-          /> -->
-            <el-dialog title="选择人员" width="700px" :visible.sync="isEmployeeShow"  append-to-body :before-close="handleClose">
-            <EmployeeSelector
-                v-if="isEmployeeShow"
-                ref="Employee"
-                :user_no_select="false"
-                :can_select_dept="true"
-                :selected="employees_selected"
-                :close_clear_data="true"
-                @confirm="move_employee_confirm"/>
-                <span slot="footer" class="dialog-footer">
-                    <el-button @click="isEmployeeShow = false">取 消</el-button>
-                    <el-button type="primary" @click="submitEmployee()">确 定</el-button>
-                </span>
-            </el-dialog>
-        </el-form-item>
-
-        <!-- <el-form-item
-          label="规则分类"
-          label-width="85px"
-          :required="true"
-          :show-message="false"
-        >
-          <el-cascader
-            class="date-picker-width"
-            :popper-class="'itemClass'"
-            :options="rule_trees"
-            :props="props"
-            @change="rule_null"
-            v-model="newGroupFormRules"
-            collapse-tags
-            remove-tag
-            clearable
-            placeholder="全部规则分类"
-          ></el-cascader>
-        </el-form-item> -->
-
-        <el-form-item label="积分规则" :required="true">
-          <el-input auto-complete="off" v-model="newGroupFormRules" placeholder="全部规则分类"></el-input>
-          <div @click="ruleDialogTableVisibles" style="height:36px; position: absolute; top: 0; right: 0; left: 0; bottom: 0; z-index: 9;cursor:pointer"></div>
-          <div style="margin-bottom:12px;">
-            <span style="font-size:13px;color:rgb(138 138 138);position: absolute; top: 30px; left: 0;">{{ruleHint}}</span>
-          </div>
-          <!-- <Selectionrules
-            :visible.sync="ruleDialogTableVisible"
-          ></Selectionrules> -->
-          <el-dialog title="选择规则" width="952px" :visible.sync="ruleDialogTableVisible" @close="closeNone" append-to-body :before-close="handleClose">
-            <div style="display:flex;position: relative;width:100%;height:40px">
-              <span style="position: absolute;line-height:40px;left:20px">已选:{{ valuesOrLength.length }}条</span>
-              <el-input type="text" class="search" style="position: absolute;right:20px;width:20%" placeholder="输入关键字搜索" v-model.trim="keyword" />
-            </div>
-            <el-row class="architecture">
-              <el-col :span="8" class="RuleLeft" style="height:500px">
-                <div ref="ruletree" class="department_box">
-                  <el-tree
-                    ref="menum"
-                    node-key="id"
-                    :accordion="true"
-                    :highlight-current="true"
-                    @node-expand="treeOpen"
-                    :data="treedata"
-                    :default-expand-all="defaultExpand"
-                    :props="defaultProps"
-                    :expand-on-click-node="false"
-                    @node-click="handleNodeClick"
-                    @check="handleCheckChange"
-                  >
-                    <div
-                      content="tree"
-                      v-if="!data.dis"
-                      v-show="treedata.length != 0"
-                      class="custom-tree-node"
-                      slot-scope="{ node, data }"
-                      style="font-size: 14px;color: #606266; width:100%; text-align: left;"
-                    >
-                      <span class="name">{{ data.name }}</span>
-                    </div>
-                  </el-tree>
-                </div>
-              </el-col>
-              <el-col :span="16" class="RuleRight" v-loading="tableLoadingRule" style="height:500px;overflow-y:auto">
-                <el-table
-                  ref="multipleTable"
-                  :data="tableData_rule"
-                  tooltip-effect="dark"
-                  style="width: 100%;cursor:pointer"
-                  @select="onTableSelect"
-                  @select-all="selectAll"
-                  @cell-click="clicktable"
-                  @selection-change="handleSelectionChange"
-                >
-                  <el-table-column type="selection" width="55"></el-table-column>
-                  <el-table-column prop="remark" :label="'全选'" show-overflow-tooltip></el-table-column>
-                </el-table>
-              </el-col>
-            </el-row>
-            <span slot="footer" class="dialog-footer">
-              <el-button @click="ruleDialogTableVisible = false">取 消</el-button>
-              <el-button type="primary" @click="ruleDialogTableVisibleQD">确 定</el-button>
-            </span>
-          </el-dialog>
-        </el-form-item>
-        <el-form-item label="统计周期" label-width="85px" :required="true" :show-message="false">
-          <el-select v-model="options_time_value" placeholder="月度" @change="options_times">
-            <el-option v-for="item in options_time" :key="item.value" :label="item.label" :value="item.value"></el-option>
-          </el-select>
-        </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer flex-v-ce flex-box">
-        <el-button type="danger" v-if="!popupType" :loading="delLoad" @click="delItem">删除</el-button>
-        <div class="flex-1"></div>
-        <el-button @click="resetForm('newGroupForm')">取 消</el-button>
-        <el-button type="primary" :loading="saveLoad" @click="subGroupForm('newGroupForm')">确 定</el-button>
-      </div>
-    </el-dialog>
-
-    <!--
-		<el-form :inline="true">
-			<el-form-item label="部门">
-				<el-cascader
-					class="date-picker-width"
-					v-model="dept_name"
-					:options="dept_tree"
-					ref="dept"
-					clearable
-					filterable
-					change-on-select
-					placeholder="全公司"
-				></el-cascader>
-			</el-form-item>
-			<el-form-item>
-				<el-checkbox v-model="allPass" size="medium" label="排名由低到高" border></el-checkbox>
-			</el-form-item>
-		</el-form>
-		-->
-    </div>
+				<el-form-item label="积分规则" :required="true">
+					<el-input auto-complete="off" v-model="newGroupFormRules" placeholder="全部规则分类"></el-input>
+					<div @click="ruleDialogTableVisibles" style="height:36px; position: absolute; top: 0; right: 0; left: 0; bottom: 0; z-index: 9;cursor:pointer"></div>
+					<div style="margin-bottom:12px;">
+						<span style="font-size:13px;color:rgb(138 138 138);position: absolute; top: 30px; left: 0;">{{ ruleHint }}</span>
+					</div>
+					<el-dialog title="选择规则" width="952px" :visible.sync="ruleDialogTableVisible" @close="closeNone" append-to-body :before-close="handleClose">
+						<div style="display:flex;position: relative;width:100%;height:40px">
+							<span style="position: absolute;line-height:40px;left:20px">已选:{{ valuesOrLength.length }}条</span>
+							<el-input type="text" class="search" style="position: absolute;right:20px;width:20%" placeholder="输入关键字搜索" v-model.trim="keyword" />
+						</div>
+						<el-row class="architecture">
+							<el-col :span="8" class="RuleLeft" style="height:500px">
+								<div ref="ruletree" class="department_box">
+									<el-tree
+										ref="menum"
+										node-key="id"
+										:accordion="true"
+										:highlight-current="true"
+										@node-expand="treeOpen"
+										:data="treedata"
+										:default-expand-all="defaultExpand"
+										:props="defaultProps"
+										:expand-on-click-node="false"
+										@node-click="handleNodeClick"
+										@check="handleCheckChange"
+									>
+										<div
+											content="tree"
+											v-if="!data.dis"
+											v-show="treedata.length != 0"
+											class="custom-tree-node"
+											slot-scope="{ node, data }"
+											style="font-size: 14px;color: #606266; width:100%; text-align: left;"
+										>
+											<span class="name">{{ data.name }}</span>
+										</div>
+									</el-tree>
+								</div>
+							</el-col>
+							<el-col :span="16" class="RuleRight" v-loading="tableLoadingRule" style="height:500px;overflow-y:auto">
+								<el-table
+									ref="multipleTable"
+									:data="tableData_rule"
+									tooltip-effect="dark"
+									style="width: 100%;cursor:pointer"
+									@select="onTableSelect"
+									@select-all="selectAll"
+									@cell-click="clicktable"
+									@selection-change="handleSelectionChange"
+								>
+									<el-table-column type="selection" width="55"></el-table-column>
+									<el-table-column prop="remark" :label="'全选'" show-overflow-tooltip></el-table-column>
+								</el-table>
+							</el-col>
+						</el-row>
+						<span slot="footer" class="dialog-footer">
+							<el-button @click="ruleDialogTableVisible = false">取 消</el-button>
+							<el-button type="primary" @click="ruleDialogTableVisibleQD">确 定</el-button>
+						</span>
+					</el-dialog>
+				</el-form-item>
+				<el-form-item label="统计周期" label-width="85px" :required="true" :show-message="false">
+					<el-select v-model="options_time_value" placeholder="月度" @change="options_times">
+						<el-option v-for="item in options_time" :key="item.value" :label="item.label" :value="item.value"></el-option>
+					</el-select>
+				</el-form-item>
+			</el-form>
+			<div slot="footer" class="dialog-footer flex-v-ce flex-box">
+				<el-button type="danger" v-if="!popupType" :loading="delLoad" @click="delItem">删除</el-button>
+				<div class="flex-1"></div>
+				<el-button @click="resetForm('newGroupForm')">取 消</el-button>
+				<el-button type="primary" :loading="saveLoad" @click="subGroupForm('newGroupForm')">确 定</el-button>
+			</div>
+		</el-dialog>
+	</div>
 </template>
 <script>
 import EmployeeSelector from '@/components/EmployeeSelector.vue';
@@ -294,962 +243,976 @@ var selecteds = [];
 let selectionID = [];
 //节流
 const delay = (function() {
-  let timer = 0;
-  return function(callback, ms) {
-    clearTimeout(timer);
-    timer = setTimeout(callback.ms);
-  };
+	let timer = 0;
+	return function(callback, ms) {
+		clearTimeout(timer);
+		timer = setTimeout(callback.ms);
+	};
 })();
 export default {
-  data() {
-    return {
-	  isEmployeeShow:false,
-      ruleHint:'',
-	  employeeOrdept:!this.$authoritys('employee') && !this.$authoritys('dept_manager'),
-      lastUpdateTime: '',
-      tableLoadingRule: false, //规则细则加载
-      keyword: '',
-      values_no: [],
-      backups: [], //备份
-      valuesLength: [],
-      multipleSelection: [],
-      valuesOrLength: [],
-      itemList: {},
-      ruleTrees: [], //所有规则列表
-      tableData_rule: [],
-      defaultExpand: false,
-      defaultProps: {
-        children: 'child',
-        label: 'name'
-      },
-      treedata: [],
+	data() {
+		return {
+			isEmployeeShow: false,
+			ruleHint: '',
+			employeeOrdept: !this.$authoritys('employee') && !this.$authoritys('dept_manager'),
+			lastUpdateTime: '',
+			tableLoadingRule: false, //规则细则加载
+			keyword: '',
+			values_no: [],
+			backups: [], //备份
+			valuesLength: [],
+			multipleSelection: [],
+			valuesOrLength: [],
+			itemList: {},
+			ruleTrees: [], //所有规则列表
+			tableData_rule: [],
+			defaultExpand: false,
+			defaultProps: {
+				children: 'child',
+				label: 'name'
+			},
+			treedata: [],
 
-      ruleDialogTableVisible: false, //编辑-规则-弹出框
-      loading: false,
-      options_time: [
-        {
-          value: '1',
-          label: '月度'
-        },
-        {
-          value: '2',
-          label: '季度'
-        },
-        {
-          value: '3',
-          label: '年度'
-        }
-      ],
-      options_time_value: '',
+			ruleDialogTableVisible: false, //编辑-规则-弹出框
+			loading: false,
+			options_time: [
+				{
+					value: '1',
+					label: '月度'
+				},
+				{
+					value: '2',
+					label: '季度'
+				},
+				{
+					value: '3',
+					label: '年度'
+				}
+			],
+			options_time_value: '',
 
-      popupType: false,
-      item_loading: false,
-      table_loading: false,
-      groups_info_loading: false,
-      groups_info: {
-        name: '',
-        employees: []
-      },
-      groups_list: [], //左边分组
-      table_list: [],
-      total: null,
-      time: {
-        year: moment().format('YYYY'), //年
-        quarter: moment().format('YYYYQ'), //季度
-        month: moment().format('YYYY-MM') //月
-      },
-      params: {
-        page: 1,
-        page_size: 10,
-        group_id: '',
-        sort: 'asc',
-        rule: '',
-        pt_id: 3
-      },
-      rule_trees: [],
-      clickItem: null,
-      groupShow: false,
-      rules: {
-        group_name: [{ required: true, message: '请输入分组名称', trigger: 'blur' }, { min: 3, max: 10, message: '长度在 3 到 10 个字符', trigger: 'blur' }],
-        // employees:[
-        // 	{ required: true, message: '请选择成员', trigger: 'blur' },
-        // ],
-        // rule_null_trees:[
-        // 	{required: false, message: '请选择规则分类', trigger: 'blur'}
-        // ]
-      },
-      newGroupForm: {
-        group_name: '',
-        employees: [],
-        items: [],
-        date_interval: '1'
-      },
-      newGroupFormRules: '',
-      saveLoad: false,
-      delLoad: false,
-      show_employee_selector: false,
-      employee_not_select: [],
-      employees_selected: { employee: [], dept: [] },
-      employees: '',
-      props: { value: 'id', label: 'name', children: 'child', multiple: true, checkStrictly: true }, //
-      sort: false
-    };
-  },
-  watch: {
-    'time.month'(val, old_val) {
-      this.time.month = val;
-      this.params.page = 1;
-      this.open_right(this.clickItem);
-    },
-    'time.year'(val, old_val) {
-      this.time.year = val;
-      this.params.page = 1;
-      this.open_right(this.clickItem);
-    },
-    // "time.quarter"(val, old_val) {
-    //   this.params.quarter = val
-    //   // this.params.page = 1;
-    //   // this.open_right(this.clickItem);
-    // },
-    sort(val) {
-      this.params.page = 1;
-      val ? (this.params.sort = 'desc') : (this.params.sort = 'asc');
-      this.open_right(this.clickItem);
-    },
-    keyword() {
-      //函数节流
-      if (this.timer) {
-        clearTimeout(this.timer);
-      }
-      //清空 全部
-      if (!this.keyword) {
-        this.tableData_rule = this.tableData_rule2;
-        this.ifPitchOnChild(this.tableData_rule, selecteds);
-        return;
-      }
-      this.timer = setTimeout(() => {
-        const result = [];
-        this.tableData_rule2.forEach(val => {
-          if (val.remark.indexOf(this.keyword) > -1) {
-            result.push(val);
-          }
-        });
-        this.tableData_rule = result;
-        this.ifPitchOnChild(this.tableData_rule, selecteds);
-      }, 100);
-    }
-  },
-  components: { EmployeeSelector, Season },
-  methods: {
-    submitEmployee(){
-        this.$refs.Employee.confirm();//调用组件的confirm();
-    },
-    //点击某行
-    clicktable(row, column, cell, event) {
-      let selectedsif = false;
-      for (let i in selecteds) {
-        if (row.id == selecteds[i]) {
-          selectedsif = true;
-          selecteds.splice(i, 1);
-          this.toggleSelection([row], false);
-        }
-      }
-      if (selectedsif == false) {
-        selecteds.push(row.id);
-        this.ifPitchOnChild(this.tableData_rule, selecteds);
-      }
-    },
-    //全选
-    selectAll(selection) {
-      for (let i in selection) {
-        selectionID.push(selection[i].id);
-      }
-      let tableData_rules = []; //当前分页id
-      for (let i in this.tableData_rule) {
-        tableData_rules.push(this.tableData_rule[i].id);
-      }
-      selectionID = [...new Set(selectionID)];
-      if (selection.length == 0) {
-        //全不选
-        //判断差值
-        var diff = [];
-        var tmp = tableData_rules;
-        selectionID.forEach(function(val1, i) {
-          if (tableData_rules.indexOf(val1) < 0) {
-            diff.push(val1);
-          } else {
-            tmp.splice(tmp.indexOf(val1), 1);
-          }
-        });
-        selectionID = diff.concat(tmp);
-      } else {
-        //全选
-        console.log('true');
-      }
-      selecteds = [...new Set(selectionID)];
-      this.valuesOrLength = selecteds;
-    },
-    // //获取分类规则
-    // get_rule_trees() {
-    //   let self = this;
-    //   let params = {
-    //     pt_id: '3'
-    //   };
-    //   self.$axios('get','/api/integral/rule/trees',params)
-    //     .then(res => {
-    //       if (res.data.code == 1) {
-    //         self.treedata = res.data.data.rule_tree; //分类
-    //         this.itemList = res.data.data.item_list; //规则
-    //       } else {
-    //         self.$message.error(res.data.data.msg);
-    //       }
-    //     })
-    //     .finally(() => {});
-    // },
-    // 递归判断列表,把最后的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;
-    },
-    //获取规则
-    get_rule_trees() {
-        this.$axios('get','/api/integral/rule/trees', {cycle_type: 1}).then(res => {
-            this.treedata = this.getTreeData(res.data.data.rule_tree || []);
-            this.itemList = res.data.data.item_list; //规则
-        })
-    },
-    //点击规则弹出窗口
-    ruleDialogTableVisibles() {
-      this.tableLoadingRule = true;
-      selecteds = this.valuesOrLength;
-      //点击弹出窗口并展示所有数据
-      let tableData_r = [];
-      for (let i in this.itemList) {
-        for (let a in this.itemList[i]) {
-          tableData_r.push(this.itemList[i][a]);
-        }
-      }
-      this.tableData_rule2 = tableData_r; //赋予筛选数据
-      this.tableData_rule = tableData_r;
-      this.ruleDialogTableVisible = true;
-      this.ifPitchOnChild(this.tableData_rule, selecteds);
-    },
-    recursion(data, arr) {
-      for (let i in data.child) {
-        if (data.child.length != 0) {
-          arr.push(data.id);
-        } else {
-          arr.push(data.id);
-        }
-      }
-      return [...new Set(arr)];
-    },
+			popupType: false,
+			item_loading: false,
+			table_loading: false,
+			groups_info_loading: false,
+			groups_info: {
+				name: '',
+				employees: []
+			},
+			groups_list: [], //左边分组
+			table_list: [],
+			total: null,
+			time: {
+				year: moment().format('YYYY'), //年
+				quarter: moment().format('YYYYQ'), //季度
+				month: moment().format('YYYY-MM') //月
+			},
+			params: {
+				page: 1,
+				page_size: 10,
+				group_id: '',
+				sort: 'asc',
+				rule: '',
+				pt_id: 3
+			},
+			rule_trees: [],
+			clickItem: null,
+			groupShow: false,
+			rules: {
+				group_name: [{ required: true, message: '请输入分组名称', trigger: 'blur' }, { min: 3, max: 10, message: '长度在 3 到 10 个字符', trigger: 'blur' }]
+				// employees:[
+				// 	{ required: true, message: '请选择成员', trigger: 'blur' },
+				// ],
+				// rule_null_trees:[
+				// 	{required: false, message: '请选择规则分类', trigger: 'blur'}
+				// ]
+			},
+			newGroupForm: {
+				group_name: '',
+				employees: [],
+				items: [],
+				date_interval: '1'
+			},
+			newGroupFormRules: '',
+			saveLoad: false,
+			delLoad: false,
+			show_employee_selector: false,
+			employee_not_select: [],
+			employees_selected: { employee: [], dept: [] },
+			employees: '',
+			props: { value: 'id', label: 'name', children: 'child', multiple: true, checkStrictly: true }, //
+			sort: false
+		};
+	},
+	watch: {
+		'time.month'(val, old_val) {
+			this.time.month = val;
+			this.params.page = 1;
+			this.open_right(this.clickItem);
+		},
+		'time.year'(val, old_val) {
+			this.time.year = val;
+			this.params.page = 1;
+			this.open_right(this.clickItem);
+		},
+		// "time.quarter"(val, old_val) {
+		//   this.params.quarter = val
+		//   // this.params.page = 1;
+		//   // this.open_right(this.clickItem);
+		// },
+		sort(val) {
+			this.params.page = 1;
+			val ? (this.params.sort = 'desc') : (this.params.sort = 'asc');
+			this.open_right(this.clickItem);
+		},
+		keyword() {
+			//函数节流
+			if (this.timer) {
+				clearTimeout(this.timer);
+			}
+			//清空 全部
+			if (!this.keyword) {
+				this.tableData_rule = this.tableData_rule2;
+				this.ifPitchOnChild(this.tableData_rule, selecteds);
+				return;
+			}
+			this.timer = setTimeout(() => {
+				const result = [];
+				this.tableData_rule2.forEach(val => {
+					if (val.remark.indexOf(this.keyword) > -1) {
+						result.push(val);
+					}
+				});
+				this.tableData_rule = result;
+				this.ifPitchOnChild(this.tableData_rule, selecteds);
+			}, 100);
+		}
+	},
+	components: { EmployeeSelector, Season },
+	methods: {
+		submitEmployee() {
+			this.$refs.Employee.confirm(); //调用组件的confirm();
+		},
+		//点击某行
+		clicktable(row, column, cell, event) {
+			let selectedsif = false;
+			for (let i in selecteds) {
+				if (row.id == selecteds[i]) {
+					selectedsif = true;
+					selecteds.splice(i, 1);
+					this.toggleSelection([row], false);
+				}
+			}
+			if (selectedsif == false) {
+				selecteds.push(row.id);
+				this.ifPitchOnChild(this.tableData_rule, selecteds);
+			}
+		},
+		//全选
+		selectAll(selection) {
+			for (let i in selection) {
+				selectionID.push(selection[i].id);
+			}
+			let tableData_rules = []; //当前分页id
+			for (let i in this.tableData_rule) {
+				tableData_rules.push(this.tableData_rule[i].id);
+			}
+			selectionID = [...new Set(selectionID)];
+			if (selection.length == 0) {
+				//全不选
+				//判断差值
+				var diff = [];
+				var tmp = tableData_rules;
+				selectionID.forEach(function(val1, i) {
+					if (tableData_rules.indexOf(val1) < 0) {
+						diff.push(val1);
+					} else {
+						tmp.splice(tmp.indexOf(val1), 1);
+					}
+				});
+				selectionID = diff.concat(tmp);
+			} else {
+				//全选
+				console.log('true');
+			}
+			selecteds = [...new Set(selectionID)];
+			this.valuesOrLength = selecteds;
+		},
+		// //获取分类规则
+		// get_rule_trees() {
+		//   let self = this;
+		//   let params = {
+		//     pt_id: '3'
+		//   };
+		//   self.$axios('get','/api/integral/rule/trees',params)
+		//     .then(res => {
+		//       if (res.data.code == 1) {
+		//         self.treedata = res.data.data.rule_tree; //分类
+		//         this.itemList = res.data.data.item_list; //规则
+		//       } else {
+		//         self.$message.error(res.data.data.msg);
+		//       }
+		//     })
+		//     .finally(() => {});
+		// },
+		// 递归判断列表,把最后的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;
+		},
+		//获取规则
+		get_rule_trees() {
+			this.$axios('get', '/api/integral/rule/trees', { cycle_type: 1 }).then(res => {
+				this.treedata = this.getTreeData(res.data.data.rule_tree || []);
+				this.itemList = res.data.data.item_list; //规则
+			});
+		},
+		//点击规则弹出窗口
+		ruleDialogTableVisibles() {
+			this.tableLoadingRule = true;
+			selecteds = this.valuesOrLength;
+			//点击弹出窗口并展示所有数据
+			let tableData_r = [];
+			for (let i in this.itemList) {
+				for (let a in this.itemList[i]) {
+					tableData_r.push(this.itemList[i][a]);
+				}
+			}
+			this.tableData_rule2 = tableData_r; //赋予筛选数据
+			this.tableData_rule = tableData_r;
+			this.ruleDialogTableVisible = true;
+			this.ifPitchOnChild(this.tableData_rule, selecteds);
+		},
+		recursion(data, arr) {
+			for (let i in data.child) {
+				if (data.child.length != 0) {
+					arr.push(data.id);
+				} else {
+					arr.push(data.id);
+				}
+			}
+			return [...new Set(arr)];
+		},
 
-    //此方法:拿到当前点击规则分类的所有子节点ID,(为了包含子分类 规则)
-    menuIdInit(menus) {
-      var _this = this;
-      var _menu = menus;
-      var menuId = [];
-      var len = _menu.length;
-      for (var i = 0; i < len; i++) {
-        var item = _menu[i];
-        if (item.child && item.child.length != 0) {
-          var child = item.child;
-          for (var j = 0; j < child.length; j++) {
-            _menu[len + j] = child[j];
-          }
-          len = _menu.length;
-        }
-        menuId.push(item.id);
-      }
-      return menuId;
-    },
-    //点击规则分类
-    handleNodeClick(data) {
-      let dataArr = this.menuIdInit([data]); //调用方法
-      this.tableLoadingRule = true;
-      this.keyword = ''; //切换规则重置搜索框
-      let tableData_r = [];
-      for (let i in this.itemList) {
-        for (let a in this.itemList[i]) {
-          for (let x in dataArr) {
-            if (dataArr[x] == this.itemList[i][a].rule_id) {
-              tableData_r.push(this.itemList[i][a]);
-            }
-          }
-        }
-      }
-      this.tableData_rule2 = tableData_r; //赋予筛选数据
-      this.tableData_rule = tableData_r;
-      this.ifPitchOnChild(this.tableData_rule, selecteds);
-    },
-    ifPitchOnChild(item, indexID) {
-      let pitchOnChild = [];
-      for (let i in item) {
-        for (let a in indexID) {
-          //判断外层的值相不相等
-          if (indexID[a] == item[i].id) {
-            pitchOnChild.push(item[i]);
-          }
-        }
-      }
-      this.toggleSelection(pitchOnChild, true);
-    },
-    //默认选中
-    toggleSelection(rows, selected) {
-      if (rows) {
-        this.$nextTick(() => {
-          rows.forEach(row => {
-            this.$refs.multipleTable.toggleRowSelection(row, selected);
-          });
-        });
-      } else {
-        this.$refs.multipleTable.clearSelection();
-      }
-      setTimeout(() => {
-        //给遮到层,让默认选中的有缓冲时间
-        this.tableLoadingRule = false;
-      }, 300);
-    },
-    onTableSelect(rows, row) {
-      let selected = rows.length && rows.indexOf(row) !== -1;
-      // console.log(selected)  // true就是选中,0或者false是取消选中
-      if (selected) {
-        selecteds.push(row.id);
-      } else {
-        for (let i in selecteds) {
-          if (row.id == selecteds[i]) {
-            selecteds.splice(i, 1);
-          }
-        }
-      }
-      // console.log(selecteds)
-    },
-    //规则弹窗选中时
-    handleSelectionChange(val) {},
-    //关闭回调
-    closeNone() {
-      selecteds = [];
-    },
-    //规则弹窗确定
-    ruleDialogTableVisibleQD() {
-      let valuesLengths = [];
-      for (let i in selecteds) {
-        valuesLengths.push(selecteds[i]);
-      }
-      // valuesLengths = selecteds
-      this.valuesOrLength = valuesLengths;
-      this.newGroupForm.items = this.valuesOrLength;
-      if (this.valuesOrLength.length >= 1) {
-        this.newGroupFormRules = this.valuesOrLength.length + '条规则';
-        this.ruleHint = '统计已选规则的积分(只选分类不指定规则的积分除外)'
-      } else {
-        this.newGroupFormRules = '';
-        this.ruleHint = '统计所有积分(基础分和工龄分除外)'
-      }
-      this.ruleDialogTableVisible = false;
-    },
-    //关闭
-    handleClose(done) {
-      done();
-    },
-    // 选择时间-季度
-    export_quarter_confirm(val) {
-      this.time.quarter = val;
-      this.params.page = 1;
-      this.open_right(this.clickItem);
-    },
-    // 树型菜单点击筛选
-    handleCheckChange(check, param) {
-      // console.log("ddd");
-    },
-    getRuletableData_rule(data) {
-      let tableData_ruleP = [];
-      for (let i in data) {
-      }
-      return data;
-    },
-    getRuleTreeDatas(data) {
-      let dates = [];
-      for (let i in data) {
-        if (data[i].child == undefined) {
-          dates.push(data[i]);
-        } else {
-          this.getRuleTreeData(data[i].child);
-        }
-      }
-      return dates;
-    },
+		//此方法:拿到当前点击规则分类的所有子节点ID,(为了包含子分类 规则)
+		menuIdInit(menus) {
+			var _this = this;
+			var _menu = menus;
+			var menuId = [];
+			var len = _menu.length;
+			for (var i = 0; i < len; i++) {
+				var item = _menu[i];
+				if (item.child && item.child.length != 0) {
+					var child = item.child;
+					for (var j = 0; j < child.length; j++) {
+						_menu[len + j] = child[j];
+					}
+					len = _menu.length;
+				}
+				menuId.push(item.id);
+			}
+			return menuId;
+		},
+		//点击规则分类
+		handleNodeClick(data) {
+			let dataArr = this.menuIdInit([data]); //调用方法
+			this.tableLoadingRule = true;
+			this.keyword = ''; //切换规则重置搜索框
+			let tableData_r = [];
+			for (let i in this.itemList) {
+				for (let a in this.itemList[i]) {
+					for (let x in dataArr) {
+						if (dataArr[x] == this.itemList[i][a].rule_id) {
+							tableData_r.push(this.itemList[i][a]);
+						}
+					}
+				}
+			}
+			this.tableData_rule2 = tableData_r; //赋予筛选数据
+			this.tableData_rule = tableData_r;
+			this.ifPitchOnChild(this.tableData_rule, selecteds);
+		},
+		ifPitchOnChild(item, indexID) {
+			let pitchOnChild = [];
+			for (let i in item) {
+				for (let a in indexID) {
+					//判断外层的值相不相等
+					if (indexID[a] == item[i].id) {
+						pitchOnChild.push(item[i]);
+					}
+				}
+			}
+			this.toggleSelection(pitchOnChild, true);
+		},
+		//默认选中
+		toggleSelection(rows, selected) {
+			if (rows) {
+				this.$nextTick(() => {
+					rows.forEach(row => {
+						this.$refs.multipleTable.toggleRowSelection(row, selected);
+					});
+				});
+			} else {
+				this.$refs.multipleTable.clearSelection();
+			}
+			setTimeout(() => {
+				//给遮到层,让默认选中的有缓冲时间
+				this.tableLoadingRule = false;
+			}, 300);
+		},
+		onTableSelect(rows, row) {
+			let selected = rows.length && rows.indexOf(row) !== -1;
+			// console.log(selected)  // true就是选中,0或者false是取消选中
+			if (selected) {
+				selecteds.push(row.id);
+			} else {
+				for (let i in selecteds) {
+					if (row.id == selecteds[i]) {
+						selecteds.splice(i, 1);
+					}
+				}
+			}
+			// console.log(selecteds)
+		},
+		//规则弹窗选中时
+		handleSelectionChange(val) {},
+		//关闭回调
+		closeNone() {
+			selecteds = [];
+		},
+		//规则弹窗确定
+		ruleDialogTableVisibleQD() {
+			let valuesLengths = [];
+			for (let i in selecteds) {
+				valuesLengths.push(selecteds[i]);
+			}
+			// valuesLengths = selecteds
+			this.valuesOrLength = valuesLengths;
+			this.newGroupForm.items = this.valuesOrLength;
+			if (this.valuesOrLength.length >= 1) {
+				this.newGroupFormRules = this.valuesOrLength.length + '条规则';
+				this.ruleHint = '统计已选规则的积分(只选分类不指定规则的积分除外)';
+			} else {
+				this.newGroupFormRules = '';
+				this.ruleHint = '统计所有积分(基础分和工龄分除外)';
+			}
+			this.ruleDialogTableVisible = false;
+		},
+		//关闭
+		handleClose(done) {
+			done();
+		},
+		// 选择时间-季度
+		export_quarter_confirm(val) {
+			this.time.quarter = val;
+			this.params.page = 1;
+			this.open_right(this.clickItem);
+		},
+		// 树型菜单点击筛选
+		handleCheckChange(check, param) {
+			// console.log("ddd");
+		},
+		getRuletableData_rule(data) {
+			let tableData_ruleP = [];
+			for (let i in data) {
+			}
+			return data;
+		},
+		getRuleTreeDatas(data) {
+			let dates = [];
+			for (let i in data) {
+				if (data[i].child == undefined) {
+					dates.push(data[i]);
+				} else {
+					this.getRuleTreeData(data[i].child);
+				}
+			}
+			return dates;
+		},
 
-    treeOpen() {
-      // let that = this;
-      // setTimeout(function() {
-      //   that.getHeight();
-      // }, 500)
-    },
+		treeOpen() {
+			// let that = this;
+			// setTimeout(function() {
+			//   that.getHeight();
+			// }, 500)
+		},
 
-    //点击编辑
-    editGroup() {
-      this.groupShow = true;
-      this.popupType = false;
-      this.getGroupsInfo(this.clickItem, true);
-    },
-    // 获取分类信息
-    getGroupsInfo(item, ifs) {
-      let self = this;
-      if (!item) {
-        return false;
-      }
-      if (!ifs) {
-        self.table_loading = true;
-        this.params.page = 1;
-      }
-      this.loading = true;
-      self.$axios('get','/api/integral/statistics/groups/info',{ group_id: item.id }).then(res => {
-          if (res.data.code == 1) {
-            // 规则ID
-            let itemsBjRule_ID = [];
-            for (let i in res.data.data.items) {
-              itemsBjRule_ID.push(res.data.data.items[i].id);
-            }
-            this.valuesOrLength = itemsBjRule_ID;
-            if (this.valuesOrLength.length >= 1) {
-              this.newGroupFormRules = this.valuesOrLength.length + '条规则';
-              this.ruleHint = '统计已选规则的积分(只选分类不指定规则的积分除外)'
-            } else {
-              this.newGroupFormRules = '';
-              this.ruleHint = '统计所有积分(基础分和工龄分除外)'
-            }
-            this.newGroupForm.date_interval = res.data.data.date_interval;
-            this.options_time_value = res.data.data.date_interval == 1 ? '月度' : res.data.data.date_interval == 2 ? '季度' : res.data.data.date_interval == 3 ? '年度' : '';
-            self.groups_info = res.data.data;
-            self.newGroupForm.employees = [];
-            self.employees = '';
-            self.employees_selected.employee = res.data.data.employees;
-            res.data.data.employees.forEach(element => {
-              self.newGroupForm.employees.push(element.id);
-              self.employees += element.name + ',';
-            });
-            self.newGroupForm.group_name = res.data.data.name;
-            this.loading = false;
-            if (!ifs) {
-              this.open_right(item,true);
-            }
-          } else {
-            self.$message.error(res.data.data.msg);
-            this.loading = false;
-          }
-        }).catch(()=>{
-          if (!ifs) {
-            self.table_loading = false;
-          }
-        }).finally(()=>{
-          this.loading = false;
-        });
-    },
-    //编辑时间选中
-    options_times(val) {
-      this.newGroupForm.date_interval = val;
-    },
-    // 规则分类改变之后请求数据
-    rule_null(val) {
-      let ruleNullId = [];
-      for (let i in val) {
-        for (let a in val[i]) {
-          ruleNullId.push(val[i][a]);
-        }
-      }
-    },
-    // 选人组件提交
-    move_employee_confirm(data) {
-      this.newGroupForm.employees = [];
-      this.employees = '';
-      this.employees_selected = data;
-      if (data.employee !== null && data.employee.length != 0) {
-        data.employee.forEach(element => {
-          this.newGroupForm.employees.push(element.id);
-          this.employees += element.name + ',';
-        });
-      }
-	  this.isEmployeeShow=false;
-    },
-    // 删除分组
-    delItem() {
-      let self = this;
-      this.$confirm('确定要删除当前分组吗?, 是否继续?', '删除分组', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning'
-      }).then(() => {
-        let data = { group_id: self.clickItem.id };
-        self.delLoad = true;
-        self
-          .$axios('post','/api/integral/statistics/groups/drop',data)
-          .then(res => {
-            if (res.data.code == 1) {
-              self.$message.success(res.data.msg);
-              self.groupShow = false;
-              self.getGroupsList();
-            } else {
-              self.$message.error(res.data.msg);
-            }
-          }).finally(() => {
-            self.delLoad = false;
-          });
-      });
-    },
-    // 提交表单
-    subGroupForm(formName) {
-      this.$refs[formName].validate(valid => {
-        if (valid) {
-          this.saveFun();
-        }
-      });
-    },
-    saveFun() {
-      let self = this;
-      self.saveLoad = true;
-      let data = JSON.parse(JSON.stringify(self.newGroupForm));
-      if (!self.popupType) {
-        data.group_id = self.clickItem.id;
-      }
-      self
-        .$axios('POST',this.popupType? '/api/integral/statistics/groups/create':'/api/integral/statistics/groups',data)
-        .then(res => {
-          if (res.data.code == 1) {
-            if (self.popupType) {
-              self.popupType = false;
-              this.getGroupsList();
-            }else{
-              self.getGroupsList(self.clickItem.id); //传入当前ID.为了修改后页面不切换
-            }
-            self.$message.success(res.data.msg);
-            const resData = res.data.data;
-            self.groups_list.push({
-              id: resData.id,
-              employees: resData.employees,
-              name: name
-            }); //左边分组
-            self.groupShow = false;
-            // if (!self.popupType) {
-            // self.open_right(self.clickItem)
-            // }
-            this.employees = '';
-            this.employee_not_select = [];
-            this.employees_selected = { employee: [], dept: [] };
-          } else {
-            self.$message.error(res.data.msg);
-          }
-        })
-        .finally(() => {
-          setTimeout(() => {
-            self.saveLoad = false;
-          }, 500);
-        });
-    },
-    // 重置表单
-    resetForm(formName) {
-      this.$refs[formName].resetFields();
-      this.newGroupForm.employees = [];
-      this.employees = '';
-      this.employee_not_select = [];
-      this.employees_selected = { employee: [], dept: [] };
-      this.groupShow = false;
-    },
-    // 新增分组
-    addGroup() {
-      //规则
-      (this.newGroupFormRules = ''), (this.valuesOrLength = []), (this.options_time_value = '');
-      this.groupShow = true;
-      this.popupType = true;
-      this.employees = '';
-      this.employee_not_select = [];
-      this.employees_selected = { employee: [], dept: [] };
-      this.newGroupForm = {
-        group_name: '',
-        employees: [],
-        rules: [],
-        items: [],
-        date_interval: '1'
-      };
-      this.ruleHint = '统计所有积分(基础分和工龄分除外)'
-    },
-    // 页码变更
-    handleCurrentChange(val) {
-      this.params.page = val;
-      this.open_right(this.clickItem);
-    },
-    handleSizeChange(val) {
-      this.params.page_size = val;
-      this.open_right(this.clickItem);
-    },
-    open_right(item,tim) {
-      if(tim){
-        // console.log(this.newGroupForm.date_interval)
-        this.time = {
-          year: moment().format('YYYY'), //年
-          quarter: moment().format('YYYYQ'), //季度
-          month: moment().format('YYYY-MM') //月
-        }
-        if(this.$refs.Seasons){
-          if(this.newGroupForm.date_interval == 2){
-            this.$refs.Seasons.choseQuarter = ''
-          }
-        }
-      }
-      this.valuesOrLength = [];
-      let self = this;
-      self.table_loading = true;
-      self.clickItem = item;
-      if (!item) {
-        self.table_loading = false;
-        return false;
-      }
-      let data = JSON.parse(JSON.stringify(self.params));
-      data.rule ? '' : delete data.rule;
-      // data.date ? "" : delete data.month;
-      data.group_id = item.id;
-      let months;
-      if (this.newGroupForm.date_interval == '1') {
-        months = this.time.month.replace('-', '');
-      }
-      data.date =
-      this.newGroupForm.date_interval == '1' ? months : this.newGroupForm.date_interval == '2' ? this.time.quarter : this.newGroupForm.date_interval == '3' ? this.time.year : '';
-      self.$axios('get','/api/integral/statistics/groups/rank',data).then(res => {
-          if (res.data.code == 1) {
-            self.table_list = res.data.data.list;
-            self.total = res.data.data.total;
-            self.lastUpdateTime = res.data.data.update_time;
-          } else {
-            self.$message.error(res.data.data.msg);
-          }
-        }).finally(() => {
-          self.table_loading = false;
-        });
-    },
-    // 获取分类列表
-    getGroupsList(atPresent,isload) {
-      let self = this;
-      self.item_loading = true;
-      self.$axios('get','/api/integral/statistics/groups').then(res => {
-          if (res.data.code == 1) {
-            // self.groups_list = res.data.data.list;//获取所有
-            let lists = res.data.data.list;
-            if(this.$authoritys('employee')){//员工权限只能查看包含自己的
-                let user = this.$getUserData().id
-                let data = []
-                lists.forEach(item=>{
-                    if(item.employees.length == 0){
-                        data.push(item)
-                    }else{
-                        if(item.employees.indexOf(user.toString())!=-1){
-                            data.push(item)
-                        }
-                    }
-                })
-                this.groups_list = data;
-            }else{
-                this.groups_list = lists;
-            }
+		//点击编辑
+		editGroup() {
+			this.groupShow = true;
+			this.popupType = false;
+			this.getGroupsInfo(this.clickItem, true);
+		},
+		// 获取分类信息
+		getGroupsInfo(item, ifs) {
+			let self = this;
+			if (!item) {
+				return false;
+			}
+			if (!ifs) {
+				self.table_loading = true;
+				this.params.page = 1;
+			}
+			this.loading = true;
+			self.$axios('get', '/api/integral/statistics/groups/info', { group_id: item.id })
+				.then(res => {
+					if (res.data.code == 1) {
+						// 规则ID
+						let itemsBjRule_ID = [];
+						for (let i in res.data.data.items) {
+							itemsBjRule_ID.push(res.data.data.items[i].id);
+						}
+						this.valuesOrLength = itemsBjRule_ID;
+						if (this.valuesOrLength.length >= 1) {
+							this.newGroupFormRules = this.valuesOrLength.length + '条规则';
+							this.ruleHint = '统计已选规则的积分(只选分类不指定规则的积分除外)';
+						} else {
+							this.newGroupFormRules = '';
+							this.ruleHint = '统计所有积分(基础分和工龄分除外)';
+						}
+						this.newGroupForm.date_interval = res.data.data.date_interval;
+						this.options_time_value =
+							res.data.data.date_interval == 1 ? '月度' : res.data.data.date_interval == 2 ? '季度' : res.data.data.date_interval == 3 ? '年度' : '';
+						self.groups_info = res.data.data;
+						self.newGroupForm.employees = [];
+						self.employees = '';
+						self.employees_selected.employee = res.data.data.employees;
+						res.data.data.employees.forEach(element => {
+							self.newGroupForm.employees.push(element.id);
+							self.employees += element.name + ',';
+						});
+						self.newGroupForm.group_name = res.data.data.name;
+						this.loading = false;
+						if (!ifs) {
+							this.open_right(item, true);
+						}
+					} else {
+						self.$message.error(res.data.data.msg);
+						this.loading = false;
+					}
+				})
+				.catch(() => {
+					if (!ifs) {
+						self.table_loading = false;
+					}
+				})
+				.finally(() => {
+					this.loading = false;
+				});
+		},
+		//编辑时间选中
+		options_times(val) {
+			this.newGroupForm.date_interval = val;
+		},
+		// 规则分类改变之后请求数据
+		rule_null(val) {
+			let ruleNullId = [];
+			for (let i in val) {
+				for (let a in val[i]) {
+					ruleNullId.push(val[i][a]);
+				}
+			}
+		},
+		// 选人组件提交
+		move_employee_confirm(data) {
+			this.newGroupForm.employees = [];
+			this.employees = '';
+			this.employees_selected = data;
+			if (data.employee !== null && data.employee.length != 0) {
+				data.employee.forEach(element => {
+					this.newGroupForm.employees.push(element.id);
+					this.employees += element.name + ',';
+				});
+			}
+			this.isEmployeeShow = false;
+		},
+		// 删除分组
+		delItem() {
+			let self = this;
+			this.$confirm('确定要删除当前分组吗?, 是否继续?', '删除分组', {
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				type: 'warning'
+			}).then(() => {
+				let data = { group_id: self.clickItem.id };
+				self.delLoad = true;
+				self.$axios('post', '/api/integral/statistics/groups/drop', data)
+					.then(res => {
+						if (res.data.code == 1) {
+							self.$message.success(res.data.msg);
+							self.groupShow = false;
+							self.getGroupsList();
+						} else {
+							self.$message.error(res.data.msg);
+						}
+					})
+					.finally(() => {
+						self.delLoad = false;
+					});
+			});
+		},
+		// 提交表单
+		subGroupForm(formName) {
+			this.$refs[formName].validate(valid => {
+				if (valid) {
+					this.saveFun();
+				}
+			});
+		},
+		saveFun() {
+			let self = this;
+			self.saveLoad = true;
+			let data = JSON.parse(JSON.stringify(self.newGroupForm));
+			if (!self.popupType) {
+				data.group_id = self.clickItem.id;
+			}
+			self.$axios('POST', this.popupType ? '/api/integral/statistics/groups/create' : '/api/integral/statistics/groups', data)
+				.then(res => {
+					if (res.data.code == 1) {
+						if (self.popupType) {
+							self.popupType = false;
+							this.getGroupsList();
+						} else {
+							self.getGroupsList(self.clickItem.id); //传入当前ID.为了修改后页面不切换
+						}
+						self.$message.success(res.data.msg);
+						const resData = res.data.data;
+						self.groups_list.push({
+							id: resData.id,
+							employees: resData.employees,
+							name: name
+						}); //左边分组
+						self.groupShow = false;
+						// if (!self.popupType) {
+						// self.open_right(self.clickItem)
+						// }
+						this.employees = '';
+						this.employee_not_select = [];
+						this.employees_selected = { employee: [], dept: [] };
+					} else {
+						self.$message.error(res.data.msg);
+					}
+				})
+				.finally(() => {
+					setTimeout(() => {
+						self.saveLoad = false;
+					}, 500);
+				});
+		},
+		// 重置表单
+		resetForm(formName) {
+			this.$refs[formName].resetFields();
+			this.newGroupForm.employees = [];
+			this.employees = '';
+			this.employee_not_select = [];
+			this.employees_selected = { employee: [], dept: [] };
+			this.groupShow = false;
+		},
+		// 新增分组
+		addGroup() {
+			//规则
+			(this.newGroupFormRules = ''), (this.valuesOrLength = []), (this.options_time_value = '');
+			this.groupShow = true;
+			this.popupType = true;
+			this.employees = '';
+			this.employee_not_select = [];
+			this.employees_selected = { employee: [], dept: [] };
+			this.newGroupForm = {
+				group_name: '',
+				employees: [],
+				rules: [],
+				items: [],
+				date_interval: '1'
+			};
+			this.ruleHint = '统计所有积分(基础分和工龄分除外)';
+		},
+		// 页码变更
+		handleCurrentChange(val) {
+			this.params.page = val;
+			this.open_right(this.clickItem);
+		},
+		handleSizeChange(val) {
+			this.params.page_size = val;
+			this.open_right(this.clickItem);
+		},
+		open_right(item, tim) {
+			if (tim) {
+				// console.log(this.newGroupForm.date_interval)
+				this.time = {
+					year: moment().format('YYYY'), //年
+					quarter: moment().format('YYYYQ'), //季度
+					month: moment().format('YYYY-MM') //月
+				};
+				if (this.$refs.Seasons) {
+					if (this.newGroupForm.date_interval == 2) {
+						this.$refs.Seasons.choseQuarter = '';
+					}
+				}
+			}
+			this.valuesOrLength = [];
+			let self = this;
+			self.table_loading = true;
+			self.clickItem = item;
+			if (!item) {
+				self.table_loading = false;
+				return false;
+			}
+			let data = JSON.parse(JSON.stringify(self.params));
+			data.rule ? '' : delete data.rule;
+			// data.date ? "" : delete data.month;
+			data.group_id = item.id;
+			let months;
+			if (this.newGroupForm.date_interval == '1') {
+				months = this.time.month.replace('-', '');
+			}
+			data.date =
+				this.newGroupForm.date_interval == '1'
+					? months
+					: this.newGroupForm.date_interval == '2'
+					? this.time.quarter
+					: this.newGroupForm.date_interval == '3'
+					? this.time.year
+					: '';
+			self.$axios('get', '/api/integral/statistics/groups/rank', data)
+				.then(res => {
+					if (res.data.code == 1) {
+						self.table_list = res.data.data.list;
+						self.total = res.data.data.total;
+						self.lastUpdateTime = res.data.data.update_time;
+					} else {
+						self.$message.error(res.data.data.msg);
+					}
+				})
+				.finally(() => {
+					self.table_loading = false;
+				});
+		},
+		// 获取分类列表
+		getGroupsList(atPresent, isload) {
+			let self = this;
+			self.item_loading = true;
+			self.$axios('get', '/api/integral/statistics/groups')
+				.then(res => {
+					if (res.data.code == 1) {
+						// self.groups_list = res.data.data.list;//获取所有
+						let lists = res.data.data.list;
+						if (this.$authoritys('employee')) {
+							//员工权限只能查看包含自己的
+							let user = this.$getUserData().id;
+							let data = [];
+							lists.forEach(item => {
+								if (item.employees.length == 0) {
+									data.push(item);
+								} else {
+									if (item.employees.indexOf(user.toString()) != -1) {
+										data.push(item);
+									}
+								}
+							});
+							this.groups_list = data;
+						} else {
+							this.groups_list = lists;
+						}
 
-            self.$nextTick(() => {
-              if (atPresent) {
-                for (let i in self.groups_list) {
-                  if (atPresent == self.groups_list[i].id) {
-                    // self.open_right(self.groups_list[i]);
-                    self.getGroupsInfo(self.groups_list[i]);
-                  }
-                }
-              } else {
-                if(!isload){
-                  self.open_right(self.groups_list[0]);
-                }
-                self.getGroupsInfo(self.groups_list[0]);
-              }
-            });
-          } else {
-            self.$message.error(res.data.data.msg);
-          }
-        }).finally(() => {
-          self.item_loading = false;
-        });
-    }
-  },
-  mounted() {
-    this.get_rule_trees();
-    this.getGroupsList(false,true); //避免首次进入调用两次open_right()方法,加上true判断
-  }
+						self.$nextTick(() => {
+							if (atPresent) {
+								for (let i in self.groups_list) {
+									if (atPresent == self.groups_list[i].id) {
+										// self.open_right(self.groups_list[i]);
+										self.getGroupsInfo(self.groups_list[i]);
+									}
+								}
+							} else {
+								if (!isload) {
+									self.open_right(self.groups_list[0]);
+								}
+								self.getGroupsInfo(self.groups_list[0]);
+							}
+						});
+					} else {
+						self.$message.error(res.data.data.msg);
+					}
+				})
+				.finally(() => {
+					self.item_loading = false;
+				});
+		}
+	},
+	mounted() {
+		this.get_rule_trees();
+		this.getGroupsList(false, true); //避免首次进入调用两次open_right()方法,加上true判断
+	}
 };
 </script>
 <style scoped lang="scss">
 ::v-deep .itemClass .el-cascader-menu .el-cascader-menu__wrap li.el-cascader-node {
-  height: auto;
-  max-width: 500px;
-  .el-cascader-node__label {
-    white-space: initial;
-    overflow: initial;
-    text-overflow: initial;
-  }
+	height: auto;
+	max-width: 500px;
+	.el-cascader-node__label {
+		white-space: initial;
+		overflow: initial;
+		text-overflow: initial;
+	}
 }
 .listData {
-  position: relative;
-  display: table-cell;
-  margin: 0 !important;
-  padding: 20px;
-  min-height: 600px;
-  &::after {
-    content: ' ';
-    position: absolute;
-    top: 0;
-    left: 0;
-    bottom: 0;
-    width: 1px;
-    background: #ebeef5;
-  }
-  & .groups_name {
-    display: block;
-    font-size: 20px;
-    color: rgb(48, 49, 51);
-    vertical-align: middle;
-  }
+	position: relative;
+	display: table-cell;
+	margin: 0 !important;
+	padding: 20px;
+	min-height: 600px;
+	&::after {
+		content: ' ';
+		position: absolute;
+		top: 0;
+		left: 0;
+		bottom: 0;
+		width: 1px;
+		background: #ebeef5;
+	}
+	& .groups_name {
+		display: block;
+		font-size: 20px;
+		color: rgb(48, 49, 51);
+		vertical-align: middle;
+	}
 }
 ::v-deep .el-menu-item {
-  overflow: hidden;
-  white-space: nowrap;
-  text-overflow: ellipsis;
-  &.is-active {
-    background-color: #ecf5ff;
-  }
+	overflow: hidden;
+	white-space: nowrap;
+	text-overflow: ellipsis;
+	&.is-active {
+		background-color: #ecf5ff;
+	}
 }
 
 .architecture {
-  display: flex;
-  text-align: center;
-  // margin-top:20px;
-  padding-left: 0px;
-  background-color: #fff;
-  width: 100%;
-  overflow: hidden;
-  cursor: default;
-  min-height: calc(60vh - 160px);
+	display: flex;
+	text-align: center;
+	// margin-top:20px;
+	padding-left: 0px;
+	background-color: #fff;
+	width: 100%;
+	overflow: hidden;
+	cursor: default;
+	min-height: calc(60vh - 160px);
 }
 .architecture .RuleLine {
-  display: table-cell;
-  width: 1px;
-  min-height: 600px;
-  background: hsl(0, 2%, 76%);
+	display: table-cell;
+	width: 1px;
+	min-height: 600px;
+	background: hsl(0, 2%, 76%);
 }
 .architecture .RuleLeft {
-  display: block;
-  text-align: center;
-  padding: 20px 10px;
-  border-right: none;
-  overflow-y: auto;
-  overflow-x: none;
+	display: block;
+	text-align: center;
+	padding: 20px 10px;
+	border-right: none;
+	overflow-y: auto;
+	overflow-x: none;
 }
 /*滚动条的宽度*/
 
 .architecture .RuleLeft::-webkit-scrollbar {
-  width: 9px;
-  height: 9px;
+	width: 9px;
+	height: 9px;
 }
 .architecture .RuleRight::-webkit-scrollbar {
-  width: 9px;
-  height: 9px;
+	width: 9px;
+	height: 9px;
 }
 
 /*外层轨道。可以用display:none让其不显示,也可以添加背景图片,颜色改变显示效果*/
 
 .architecture .RuleLeft::-webkit-scrollbar-track {
-  width: 6px;
-  background-color: #fff0;
-  -webkit-border-radius: 2em;
-  -moz-border-radius: 2em;
-  border-radius: 2em;
+	width: 6px;
+	background-color: #fff0;
+	-webkit-border-radius: 2em;
+	-moz-border-radius: 2em;
+	border-radius: 2em;
 }
 .architecture .RuleRight::-webkit-scrollbar-track {
-  width: 6px;
-  background-color: #fff0;
-  -webkit-border-radius: 2em;
-  -moz-border-radius: 2em;
-  border-radius: 2em;
+	width: 6px;
+	background-color: #fff0;
+	-webkit-border-radius: 2em;
+	-moz-border-radius: 2em;
+	border-radius: 2em;
 }
 
 /*滚动条的设置*/
 
 .architecture .RuleLeft::-webkit-scrollbar-thumb {
-  background-color: #fff0;
-  background-clip: padding-box;
-  min-height: 28px;
-  -webkit-border-radius: 2em;
-  -moz-border-radius: 2em;
-  border-radius: 2em;
+	background-color: #fff0;
+	background-clip: padding-box;
+	min-height: 28px;
+	-webkit-border-radius: 2em;
+	-moz-border-radius: 2em;
+	border-radius: 2em;
 }
 .architecture .RuleRight::-webkit-scrollbar-thumb {
-  background-color: #fff0;
-  background-clip: padding-box;
-  min-height: 28px;
-  -webkit-border-radius: 2em;
-  -moz-border-radius: 2em;
-  border-radius: 2em;
+	background-color: #fff0;
+	background-clip: padding-box;
+	min-height: 28px;
+	-webkit-border-radius: 2em;
+	-moz-border-radius: 2em;
+	border-radius: 2em;
 }
 /*滚动条移上去的背景*/
 
 .architecture .RuleLeft:hover::-webkit-scrollbar-thumb {
-  overflow-x: none;
-  background-color: rgba(144, 147, 153, 0.3);
+	overflow-x: none;
+	background-color: rgba(144, 147, 153, 0.3);
 }
 .architecture .RuleRight:hover::-webkit-scrollbar-thumb {
-  background-color: rgba(115, 118, 124, 0.3);
+	background-color: rgba(115, 118, 124, 0.3);
 }
 
 .architecture .RuleLeft .company_name {
-  position: relative;
-  display: block;
-  font-family: 'Microsoft YaHei';
-  text-align: left;
-  padding: 15px 28px 17px;
-  cursor: pointer;
-  overflow: hidden;
-  white-space: nowrap;
-  text-overflow: ellipsis;
-  border-bottom: 1px #f8f8f8 solid;
+	position: relative;
+	display: block;
+	font-family: 'Microsoft YaHei';
+	text-align: left;
+	padding: 15px 28px 17px;
+	cursor: pointer;
+	overflow: hidden;
+	white-space: nowrap;
+	text-overflow: ellipsis;
+	border-bottom: 1px #f8f8f8 solid;
 }
 .architecture .RuleLeft .company_name img {
-  position: relative;
-  display: inline-block;
-  top: 2px;
-  width: 18px;
-  height: 18px;
-  margin-right: 4px;
+	position: relative;
+	display: inline-block;
+	top: 2px;
+	width: 18px;
+	height: 18px;
+	margin-right: 4px;
 }
 .architecture .RuleLeft ::v-deep .el-button {
-  margin-bottom: 16px !important;
+	margin-bottom: 16px !important;
 }
 .architecture .RuleRight {
-  position: relative;
-  display: table-cell;
-  text-align: left;
-  padding: 20px;
+	position: relative;
+	display: table-cell;
+	text-align: left;
+	padding: 20px;
 }
 .architecture .RuleRight .title span .sapn {
-  display: inline-block;
-  vertical-align: middle;
-  max-width: 600px;
-  overflow: hidden;
-  white-space: nowrap;
-  text-overflow: ellipsis;
+	display: inline-block;
+	vertical-align: middle;
+	max-width: 600px;
+	overflow: hidden;
+	white-space: nowrap;
+	text-overflow: ellipsis;
 }
 .architecture .RuleRight:after {
-  content: ' ';
-  position: absolute;
-  top: 0;
-  left: 0;
-  bottom: 0;
-  width: 1px;
-  background: #ebeef5;
+	content: ' ';
+	position: absolute;
+	top: 0;
+	left: 0;
+	bottom: 0;
+	width: 1px;
+	background: #ebeef5;
 }
 .architecture .RuleRight .list_box {
-  width: 100%;
-  background: #fff;
+	width: 100%;
+	background: #fff;
 }
 .architecture .RuleRight .list_box ::v-deep table {
-  font-family: 'Microsoft YaHei';
-  width: 100% !important;
-  /*max-width:1920px; */
+	font-family: 'Microsoft YaHei';
+	width: 100% !important;
+	/*max-width:1920px; */
 }
 .architecture .department_box {
 }
 .architecture .department_box ::v-deep .el-tree-node {
-  display: block;
-  text-align: center;
+	display: block;
+	text-align: center;
 }
 .architecture .department_box ::v-deep .el-tree-node__content {
-  // padding-left:24px !important;
-  height: auto !important;
+	// padding-left:24px !important;
+	height: auto !important;
 }
 
 .architecture .department_box ::v-deep .el-tree-node .el-icon-caret-right {
-  display: inline-block;
-  color: #909399;
-  font-size: 16px;
-  padding: 6px 8px;
+	display: inline-block;
+	color: #909399;
+	font-size: 16px;
+	padding: 6px 8px;
 }
 .architecture .department_box ::v-deep .el-tree-node .el-icon-caret-right.is-leaf {
-  color: transparent;
-  cursor: default;
+	color: transparent;
+	cursor: default;
 }
 .architecture .department_box ::v-deep .el-tree-node .custom-tree-node img {
-  margin-top: 0px;
-  width: 20px;
+	margin-top: 0px;
+	width: 20px;
 }
 .architecture .department_box ::v-deep .el-tree-node .custom-tree-node span {
 }
 .architecture .department_box ::v-deep .el-tree-node__content {
-  padding: 12px 0;
-  border-bottom: 1px #f8f8f8 solid;
+	padding: 12px 0;
+	border-bottom: 1px #f8f8f8 solid;
 }
 .architecture .department_box ::v-deep .el-tree-node__content:hover {
-  background: #ecf5ff;
-  border-radius: 4px;
+	background: #ecf5ff;
+	border-radius: 4px;
 }
 .architecture .department_box ::v-deep .is-focusable .is-current {
-  border-radius: 4px;
+	border-radius: 4px;
 }
 .architecture .department_box ::v-deep .is-focusable .is-current .name {
-  color: #409eff;
-  font-weight: normal;
-  transition: 0.35s ease-in-out;
+	color: #409eff;
+	font-weight: normal;
+	transition: 0.35s ease-in-out;
 }
 
 .elMenuCustomRule_Z {
-  overflow-y: auto;
-  border: none;
-//   height: 980px;
+	overflow-y: auto;
+	border: none;
+	//   height: 980px;
 }
 // 滚动条样式
 .elMenuCustomRule_Z::-webkit-scrollbar {
-  width: 9px;
-  height: 9px;
+	width: 9px;
+	height: 9px;
 }
 .elMenuCustomRule_Z::-webkit-scrollbar-track {
-  width: 6px;
-  background-color: #fff0;
-  -webkit-border-radius: 2em;
-  -moz-border-radius: 2em;
-  border-radius: 2em;
+	width: 6px;
+	background-color: #fff0;
+	-webkit-border-radius: 2em;
+	-moz-border-radius: 2em;
+	border-radius: 2em;
 }
 /*滚动条的设置*/
 .elMenuCustomRule_Z::-webkit-scrollbar-thumb {
-  background-color: #fff0;
-  background-clip: padding-box;
-  min-height: 28px;
-  -webkit-border-radius: 2em;
-  -moz-border-radius: 2em;
-  border-radius: 2em;
+	background-color: #fff0;
+	background-clip: padding-box;
+	min-height: 28px;
+	-webkit-border-radius: 2em;
+	-moz-border-radius: 2em;
+	border-radius: 2em;
 }
 /*滚动条移上去的背景*/
 .elMenuCustomRule_Z:hover::-webkit-scrollbar-thumb {
-  background-color: rgba(144, 147, 153, 0.3);
+	background-color: rgba(144, 147, 153, 0.3);
 }
 
 ::v-deep .el-table .cell {
-  //让规则不隐藏
-  overflow: inherit;
-  white-space: normal;
+	//让规则不隐藏
+	overflow: inherit;
+	white-space: normal;
 }
 
-.terr-left button{
-    margin: 0 auto;
-    display: block;
-    margin-bottom: 20px;
+.terr-left button {
+	margin: 0 auto;
+	display: block;
+	margin-bottom: 20px;
 }
 </style>

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

@@ -3,7 +3,7 @@
 		<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" style="padding: 20px;">
+		<div class="all padding-20">
 			<el-form :inline="true">
 				<el-form-item label="时间">
 					<el-col :span="8">

+ 11 - 7
src/views/ranking/integral_event.vue

@@ -1,6 +1,6 @@
 <template>
 	<div>
-		<div class="all">
+		<div class="all padding-20">
 			<el-form ref="form" :inline="true" label-width="80px">
 			  <el-form-item label="规则分类">
 			    <el-cascader
@@ -17,7 +17,7 @@
 			  </el-form-item>
 			  <el-form-item label="积分分类">
 				  <el-select class="date-picker-width" size="medium" v-model="formData.pt_id" clearable placeholder="请选择积分分类">
-				  	<el-option v-for="item in point_types" :key="item.name" :label="item.name" :value="item.id"></el-option>
+				  	<el-option v-for="item in getTypes()" :key="item.name" :label="item.name" :value="item.id"></el-option>
 				  </el-select>
 			  </el-form-item>
 			  <el-form-item label="部门">
@@ -312,11 +312,13 @@ export default {
 		};
 	},
 	components: { noData },
-	created() {},
+	created() {
+	},
 	mounted() {
 		this.getDepartment();
 		this.get_rule_trees();
 		this.get_integral_list(this.formData);
+		this.point_types=this.getTypes()
 	},
 	watch: {
 		selectionID(){
@@ -359,6 +361,12 @@ export default {
 		}
 	},
 	methods: {
+		getTypes(){
+			var arr=this.$getTyps();
+			return arr.filter(function(item){
+				return item.code!='JX'
+			})
+		},
 		handleRemove(file, fileList) {
 			// if (fileList !== null && fileList.length != 0) {
 			// 	this.import_btn_show = true;
@@ -578,7 +586,6 @@ export default {
 			this.detail_popup = false;
 		},
 		point_name(id) {
-			
 			return this.point_types.find(item => {
 				if (item.id == id) {
 					return item.name;
@@ -615,9 +622,6 @@ export default {
 };
 </script>
 <style scoped lang="scss">
-.all{
-	padding: 20px;
-}	
 header.el-drawer__header {
 	font-size: 18px;
 	font-family: MicrosoftYaHei;

+ 634 - 649
src/views/ranking/manager_statistics.vue

@@ -1,714 +1,699 @@
 <template>
-  <div>
-    <div class="all wlj">
-      <el-tabs v-model="activeName" type="card"><!-- 奖扣完成情况 -->
-        <el-tab-pane label="奖扣完成情况" name="second">
-          <el-form :model="condition" :inline="true" ref="formData">
+	<div>
+		<div class="all padding-20">
+			<el-tabs v-model="activeName" type="card">
+				<!-- 奖扣完成情况 -->
+				<el-tab-pane label="奖扣完成情况" name="second">
+					<el-form :model="condition" :inline="true" ref="formData">
+						<!-- 部门 -->
+						<el-form-item label="部门">
+							<el-cascader
+								size="medium"
+								class="date-picker-width"
+								v-model="dept_name_xq_xq"
+								:options="dept_tree"
+								@change="get_last_dept_null"
+								:props="{ checkStrictly: true, value: 'id', label: 'name', children: '_child' }"
+								ref="dept"
+								clearable
+								filterable
+								change-on-select
+								placeholder="全公司"
+							></el-cascader>
+						</el-form-item>
 
-			    <!-- 部门 -->
-            <el-form-item label="部门">
-				<el-cascader
-				    size="medium"
-					class="date-picker-width"
-					v-model="dept_name_xq_xq"
-					:options="dept_tree"
-					@change="get_last_dept_null"
-					:props="{ checkStrictly: true,value:'id',label:'name',children:'_child'}"
-					ref="dept"
-					clearable
-					filterable
-					change-on-select
-					placeholder="全公司"
-				></el-cascader>
-            </el-form-item>
+						<!-- 时间 -->
+						<el-form-item label="时间">
+							<el-date-picker
+								class="date-picker-width"
+								v-model="condition.month"
+								:clearable="false"
+								size="medium"
+								width="100%"
+								type="month"
+								placeholder="请选择月份"
+								value-format="yyyy-MM"
+							></el-date-picker>
+						</el-form-item>
 
-			    <!-- 时间 -->
-            <el-form-item label="时间">
-              <el-date-picker
-                class="date-picker-width"
-                v-model="condition.month"
-                :clearable="false"
-				        size="medium"
-                width="100%"
-                type="month"
-                placeholder="请选择月份"
-                value-format="yyyy-MM"
-              ></el-date-picker>
-            </el-form-item>
+						<!-- 搜索框 -->
+						<el-form-item style="margin-top: 2px;">
+							<el-input
+								v-model="condition.keyword"
+								placeholder="输入同事姓名"
+								max="200"
+								size="medium"
+								@keyup.enter.native="keyWordSelect"
+								class="persons_name"
+								:clearable="true"
+							>
+								<el-button slot="append" size="medium" icon="el-icon-search" @click="search_box"></el-button>
+							</el-input>
+						</el-form-item>
 
-			    <!-- 搜索框 -->
-            <el-form-item style="margin-top: 2px;">
-              <el-input
-                v-model="condition.keyword"
-                placeholder="输入同事姓名"
-                max="200"
-				size="medium"
-                @keyup.enter.native="keyWordSelect"
-                class="persons_name"
-				:clearable="true"
-              >
-                <el-button slot="append" size="medium" icon="el-icon-search" @click='search_box'></el-button>
-              </el-input>
-            </el-form-item>
+						<!-- 达标选项 -->
+						<br />
+						<el-form-item><el-checkbox v-model="allPass" size="medium" label="只看全部达标的"></el-checkbox></el-form-item>
 
-			    <!-- 达标选项 -->
-            <br>
-            <el-form-item>
-              <el-checkbox v-model="allPass" size="medium" label="只看全部达标的"></el-checkbox>
-            </el-form-item>
+						<!-- 导出报表 -->
+						<el-form-item><el-button type="primary" plain @click="exportExcel" size="medium" style="margin-left:20px">导出报表</el-button></el-form-item>
+					</el-form>
 
-			    <!-- 导出报表 -->
-            <el-form-item>
-              <el-button type="primary" plain @click="exportExcel" size="medium" style="margin-left:20px">导出报表</el-button>
-            </el-form-item>
+					<el-table :data="last" style="width: 100%" v-loading="loading">
+						<el-table-column label="管理者">
+							<template slot-scope="scope">
+								<div class="flex-box flex-v-ce">
+									<userImage class="fl" :user_name="scope.row.name" :img_url="scope.row.img_url" width="50px" height="50px"></userImage>
+									<span style=" margin-left: 10px; line-height: 50px; display: inline-block;">{{ scope.row.name }}</span>
+								</div>
+							</template>
+						</el-table-column>
+						<el-table-column label="奖分" prop="scope_count">
+							<template slot-scope="scope">
+								<b>{{ scope.row.reward.point }}&nbsp;</b>
+								<span :class="scope.row.reward.status == 1 ? 'green' : ''">{{ scope.row.reward.status == 1 ? '达标' : '' }}</span>
+								<br />
+								<span class="span_h">奖分目标 {{ scope.row.reward.target }}</span>
+							</template>
+						</el-table-column>
+						<el-table-column label="扣分" prop="reward_count">
+							<template slot-scope="scope">
+								<b>{{ scope.row.deduction.point }}&nbsp;</b>
+								<span :class="scope.row.deduction.status == 1 ? 'green' : ''">{{ scope.row.deduction.status == 1 ? '达标' : '' }}</span>
+								<br />
+								<span class="span_h">扣分目标 {{ scope.row.deduction.target }}</span>
+							</template>
+						</el-table-column>
+						<el-table-column label="奖扣比例" prop="deduct_count">
+							<template slot-scope="scope">
+								<div v-if="scope.row.ratio.enable == 1">
+									<b>{{ scope.row.ratio.reward_ratio }}&nbsp;:1</b>
+									<span :class="scope.row.ratio.status == 1 ? 'green' : ''">{{ scope.row.ratio.status == 1 ? '达标' : '' }}</span>
+									<br />
+									<span class="span_h">
+										比例目标 小于 {{ scope.row.ratio.target }}
+										<b>:</b>
+										&nbsp;1
+									</span>
+								</div>
+								<div v-else style="padding-left:21px">—</div>
+							</template>
+						</el-table-column>
+						<el-table-column label="人次目标" prop="deduct_count">
+							<template slot-scope="scope">
+								<b>{{ scope.row.exec.count }}&nbsp;</b>
+								<span :class="scope.row.exec.status == 1 ? 'green' : ''">{{ scope.row.exec.status == 1 ? '达标' : '' }}</span>
+								<br />
+								<span class="span_h">人次目标 {{ scope.row.exec.target }}人次</span>
+							</template>
+						</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_xq"
+							@current-change="handleCurrentChange_xq"
+							:current-page="condition.page"
+							:page-sizes="[10, 20, 50, 100]"
+							layout="total, sizes, prev, pager, next"
+							:page-size="condition.page_size"
+							:total="totals"
+						></el-pagination>
+					</center>
+				</el-tab-pane>
+				<el-tab-pane label="奖扣执行对比" name="first">
+					<el-form :model="formData" :inline="true" ref="formData">
+						<el-form-item label="部门">
+							<el-cascader
+								v-model="dept_name_xq"
+								:options="dept_tree"
+								@change="dept_null"
+								:props="{ checkStrictly: true, value: 'id', label: 'name', children: '_child' }"
+								ref="depts"
+								filterable
+								size="medium"
+								change-on-select
+								placeholder="全公司"
+								clearable
+							></el-cascader>
+						</el-form-item>
+						<el-form-item label="时间">
+							<el-date-picker
+								class="date-picker-width"
+								v-model="formData.month"
+								:clearable="false"
+								width="100%"
+								type="month"
+								size="medium"
+								placeholder="请选择月份"
+								value-format="yyyy-MM"
+							></el-date-picker>
+						</el-form-item>
+					</el-form>
 
-          </el-form>
+					<el-table :data="list" style="width: 100%" v-loading="loading" @row-click="open_detail">
+						<el-table-column label="管理者">
+							<template slot-scope="scope">
+								<div class="flex-box flex-v-ce">
+									<userImage class="fl" :user_name="scope.row.name" :img_url="scope.row.img_url" width="50px" height="50px"></userImage>
+									<span style=" margin-left: 10px; line-height: 50px; display: inline-block;">{{ scope.row.name }}</span>
+								</div>
+							</template>
+						</el-table-column>
+						<el-table-column label="管理范围(人)" prop="scope_count"></el-table-column>
+						<el-table-column label="人均奖分(次)" prop="reward_count"></el-table-column>
+						<el-table-column label="人均扣分(次)" prop="deduct_count"></el-table-column>
+						<template slot="empty">
+							<div class="nopoint_box">
+								<div class="noimg noperson"></div>
+								<span class="title">没有对应的数据</span>
+							</div>
+						</template>
+					</el-table>
 
-		    <el-table :data="last" style="width: 100%" v-loading="loading">
-            <el-table-column label="管理者">
-              <template slot-scope="scope">
-				<div class="flex-box flex-v-ce">
-					<userImage class="fl" :user_name="scope.row.name" :img_url="scope.row.img_url" width="50px"  height="50px"></userImage>
-					<span style=" margin-left: 10px; line-height: 50px; display: inline-block;">{{ scope.row.name }}</span>
-				</div>  
-              </template>
-            </el-table-column>
-            <el-table-column label="奖分" prop="scope_count">
-            <template slot-scope="scope">
-              <b>{{scope.row.reward.point}}&nbsp;</b>
-              <span :class="scope.row.reward.status == 1?'color_green':''">{{scope.row.reward.status==1?'达标':''}}</span><br/>
-              <span class="span_h">奖分目标 {{scope.row.reward.target}}</span>
-            </template>
-            </el-table-column>
-                <el-table-column label="扣分" prop="reward_count">
-            <template slot-scope="scope">
-              <b>{{scope.row.deduction.point}}&nbsp;</b>
-              <span :class="scope.row.deduction.status == 1?'color_green':''">{{scope.row.deduction.status==1?'达标':''}}</span><br/>
-              <span class="span_h">扣分目标 {{scope.row.deduction.target}}</span>
-            </template>
-			      </el-table-column>
-              <el-table-column label="奖扣比例" prop="deduct_count">
-				    <template slot-scope="scope">
-              <div v-if="scope.row.ratio.enable == 1">
-                <b>{{scope.row.ratio.reward_ratio}}&nbsp;:1 </b>
-                <span :class="scope.row.ratio.status == 1?'color_green':''">{{scope.row.ratio.status==1?'达标':''}}</span><br/>
-                <span class="span_h">比例目标 小于 {{scope.row.ratio.target}}<b>:</b>&nbsp;1</span>
-              </div>
-              <div v-else style="padding-left:21px"> —</div>
-            </template>
-            </el-table-column>
-            <el-table-column label="人次目标" prop="deduct_count">
-              <template slot-scope="scope">
-                <b>{{scope.row.exec.count}}&nbsp;</b>
-                <span :class="scope.row.exec.status == 1?'color_green':''">{{scope.row.exec.status==1?'达标':''}}</span><br/>
-                <span class="span_h">人次目标 {{scope.row.exec.target}}人次</span>
-              </template>
-			      </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_xq"
-              @current-change="handleCurrentChange_xq"
-              :current-page="condition.page"
-				      :page-sizes="[10, 20, 50, 100]"
-              layout="total, sizes, prev, pager, next"
-              :page-size="condition.page_size"
-              :total="totals"
-            ></el-pagination>
-          </center>
-        </el-tab-pane>
-        <el-tab-pane label="奖扣执行对比" name="first">
-          <el-form :model="formData" :inline="true" ref="formData">
-            <el-form-item label="部门">
-              <el-cascader
-                v-model="dept_name_xq"
-                :options="dept_tree"
-                @change="dept_null"
-				:props="{ checkStrictly: true,value:'id',label:'name',children:'_child'}"
-                ref="depts"
-                filterable
-				size="medium"
-                change-on-select
-                placeholder="全公司"
-                clearable
-              ></el-cascader>
-            </el-form-item>
-            <el-form-item label="时间">
-              <el-date-picker
-                class="date-picker-width"
-                v-model="formData.month"
-                :clearable="false"
-                width="100%"
-                type="month"
-				size="medium"
-                placeholder="请选择月份"
-                value-format="yyyy-MM"
-              ></el-date-picker>
-            </el-form-item>
-          </el-form>
+					<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="formData.page_size"
+							:total="total"
+						></el-pagination>
+					</center>
 
-          <el-table :data="list" style="width: 100%" v-loading="loading" @row-click="open_detail">
-            <el-table-column label="管理者">
-              <template slot-scope="scope">
-				<div class="flex-box flex-v-ce">
-					<userImage class="fl" :user_name="scope.row.name" :img_url="scope.row.img_url" width="50px"  height="50px"></userImage>
-					<span style=" margin-left: 10px; line-height: 50px; display: inline-block;">{{ scope.row.name }}</span>
-				</div>  
-              </template>
-            </el-table-column>
-            <el-table-column label="管理范围(人)" prop="scope_count"></el-table-column>
-            <el-table-column label="人均奖分(次)" prop="reward_count"></el-table-column>
-            <el-table-column label="人均扣分(次)" prop="deduct_count"></el-table-column>
-            <template slot="empty">
-              <div class="nopoint_box">
-                <div class="noimg noperson"></div>
-                <span class="title">没有对应的数据</span>
-              </div>
-            </template>
-          </el-table>
+					<el-drawer size="500px" :visible.sync="detail_show" :with-header="false" direction="rtl">
+						<el-button type="info" style="position: absolute; left: -100px;">test</el-button>
+						<div class="drawer_title">
+							{{ item.name }}的奖扣统计
+							<el-tooltip placement="top">
+								<div slot="content" style="width: 300px">作为管理者,管理执行力是关键,每月按要求完成奖分和扣分任务。</div>
+								<span class="tips">?</span>
+							</el-tooltip>
+						</div>
+						<div class="chart_content">
+							<el-row :gutter="20" v-if="personalData !== null" v-loading="personalData_loading">
+								<el-col :span="4">
+									<div class="dataItem">
+										<p class="point">{{ personalData.task.reward.point }}</p>
+										<p>奖分</p>
+										<p class="target">目标{{ personalData.task.reward.target_point }}</p>
+									</div>
+								</el-col>
+								<el-col :span="4">
+									<div class="dataItem">
+										<p class="point">{{ personalData.task.deduction.point }}</p>
+										<p>扣分</p>
+										<p class="target">目标{{ personalData.task.deduction.target_point }}</p>
+									</div>
+								</el-col>
+								<el-col :span="5">
+									<div class="dataItem">
+										<p class="point">{{ personalData.task.ratio.ratio }}:1</p>
+										<p>奖扣比例</p>
+										<p class="target">目标>{{ personalData.task.ratio.target_ratio }}:1</p>
+									</div>
+								</el-col>
+								<el-col :span="5">
+									<div class="dataItem">
+										<p class="point">{{ personalData.task.exec.count }}</p>
+										<p>奖扣人次</p>
+										<p class="target">目标{{ personalData.task.exec.target_count }}</p>
+									</div>
+								</el-col>
+							</el-row>
 
-          <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="formData.page_size"
-              :total="total"
-            ></el-pagination>
-          </center>
+							<div class="chart-legend__wrap">
+								<span class="fl">月奖扣执行情况</span>
+								<span class="chart-legend__pink">奖分</span>
+								<span class="chart-legend__green">扣分</span>
+							</div>
+							<div id="situationChart" v-loading="echart_loading" style="height: 300px;"></div>
 
-          <el-drawer size="500px" :visible.sync="detail_show" :with-header="false" direction="rtl">
-            <el-button type="info" style="position: absolute; left: -100px;">test</el-button>
-            <div class="drawer_title">
-              {{item.name}}的奖扣统计
-              <el-tooltip placement="top">
-                <div slot="content" style="width: 300px">作为管理者,管理执行力是关键,每月按要求完成奖分和扣分任务。</div>
-                <span class="tips">?</span>
-              </el-tooltip>
-            </div>
-            <div class="chart_content">
-              <el-row :gutter="20" v-if="personalData !== null" v-loading="personalData_loading">
-                <el-col :span="4">
-                  <div class="dataItem">
-                    <p class="point">{{personalData.task.reward.point}}</p>
-                    <p>奖分</p>
-                    <p class="target">目标{{personalData.task.reward.target_point}}</p>
-                  </div>
-                </el-col>
-                <el-col :span="4">
-                  <div class="dataItem">
-                    <p class="point">{{personalData.task.deduction.point}}</p>
-                    <p>扣分</p>
-                    <p class="target">目标{{personalData.task.deduction.target_point}}</p>
-                  </div>
-                </el-col>
-                <el-col :span="5">
-                  <div class="dataItem">
-                    <p class="point">{{personalData.task.ratio.ratio}}:1</p>
-                    <p>奖扣比例</p>
-                    <p class="target">目标>{{personalData.task.ratio.target_ratio}}:1</p>
-                  </div>
-                </el-col>
-                <el-col :span="5">
-                  <div class="dataItem">
-                    <p class="point">{{personalData.task.exec.count}}</p>
-                    <p>奖扣人次</p>
-                    <p class="target">目标{{personalData.task.exec.target_count}}</p>
-                  </div>
-                </el-col>
-              </el-row>
-
-              <div class="chart-legend__wrap">
-                <span class="fl">月奖扣执行情况</span>
-                <span class="chart-legend__pink">奖分</span>
-                <span class="chart-legend__green">扣分</span>
-              </div>
-              <div id="situationChart" v-loading="echart_loading" style="height: 300px;"></div>
-
-              <div class="chart-legend__wrap">
-                <div class="fl">月奖扣人次</div>
-                <span class="chart-legend__pink">奖分人次</span>
-                <span class="chart-legend__green">扣分人次</span>
-              </div>
-              <div id="passengersChart" v-loading="echart_loading" style="height: 300px;"></div>
-            </div>
-          </el-drawer>
-        </el-tab-pane>
-      </el-tabs>
-    </div>
-  </div>
+							<div class="chart-legend__wrap">
+								<div class="fl">月奖扣人次</div>
+								<span class="chart-legend__pink">奖分人次</span>
+								<span class="chart-legend__green">扣分人次</span>
+							</div>
+							<div id="passengersChart" v-loading="echart_loading" style="height: 300px;"></div>
+						</div>
+					</el-drawer>
+				</el-tab-pane>
+			</el-tabs>
+		</div>
+	</div>
 </template>
 <script>
 export default {
-  data() {
-    return {
-      last: [],
-	    //完成情况
-	    condition: {
-        month: this.$moment().format("YYYY-MM"),//时间
-        page: 1,//当前页
-        page_size: 10,//每页数量
-        dept_id: 0,//部门id
-        keyword:'',//关键字
-        complete:'',//是否达标 1是
-      },
-      activeName: "second",
-      totals: null,
-      dept_name_xq_xq: "",
+	data() {
+		return {
+			last: [],
+			//完成情况
+			condition: {
+				month: this.$moment().format('YYYY-MM'), //时间
+				page: 1, //当前页
+				page_size: 10, //每页数量
+				dept_id: 0, //部门id
+				keyword: '', //关键字
+				complete: '' //是否达标 1是
+			},
+			activeName: 'second',
+			totals: null,
+			dept_name_xq_xq: '',
 
-	    //对比
-      loading: false,
-      choose_time: "",
-      input: "",
-      radio: "1",
-      formData: {
-        month: this.$moment().format("YYYY-MM"),
-        page: 1,
-        page_size: 10,
-        dept_id: 0,
-      },
-      total: null,
-      allPass: false,
-      list: [],
-      detail_show: false,
-      echart_loading: false,
-      item: {},
-      dept_name_xq: "",
-      dept_tree: [],
-      personalData_loading: false,
-      personalData: null,
-    };
-  },
-  watch: {
-	//对比
-    "formData.month"(val, old_val) {
-      this.formData.page = 1;
-      this.get_list();
-	},
-	//情况
-    "condition.month"(val, old_val) {
-      this.condition.page = 1;
-      this.get_last();
-	},
-	//查看全部达标
-    'allPass'(val,old_val){
-    	if(val){
-    		this.condition.complete = '1'
-    	}else{
-    		this.condition.complete = '0'
-      }
-      this.condition.page = 1
-    	this.get_last()
-	}
-  },
-  methods: {
-    //情况
-	get_last() {
-      this.loading = true;
-      this.$axios("get","/api/integral/statistics/prize/list",this.condition,'v4').then((res) => {
-          if (res.data.code == 1) {
-            this.last = res.data.data.list;
-            this.totals = res.data.data.total;
-          } else {
-            this.$message.error(res.data.data.msg);
-          }
-        })
-        .finally(() => {
-          this.loading = false;
-        });
-	},
-	//部门
-	get_last_dept_null(val) {
-      if (val.length == 0) {
-        this.condition.dept_id = 0;
-      } else {
-		    this.condition.dept_id = val[0];
-      }
-      this.$nextTick(() => {
-        this.condition.page = 1;
-        this.$refs.dept.dropDownVisible = false; //监听值发生变化就关闭它
-        this.get_last();
-      });
+			//对比
+			loading: false,
+			choose_time: '',
+			input: '',
+			radio: '1',
+			formData: {
+				month: this.$moment().format('YYYY-MM'),
+				page: 1,
+				page_size: 10,
+				dept_id: 0
+			},
+			total: null,
+			allPass: false,
+			list: [],
+			detail_show: false,
+			echart_loading: false,
+			item: {},
+			dept_name_xq: '',
+			dept_tree: [],
+			personalData_loading: false,
+			personalData: null
+		};
 	},
-	//搜索框
-	search_box(){
-		this.get_last();
-  },
-    //导出报表
-    exportExcel() {
-      let data = "";
-      //部门
-        this.condition.dept_id>0?data+="&dept_id="+ this.condition.dept_id:data+="&dept_id=0"
-      //时间
-        data+="&month="+this.condition.month
-      //搜索框
-        this.condition.keyword==''?data+="&keyword=":data+="&keyword="+this.condition.keyword
-      //是否达标
-        this.condition.complete!=0?data+="&complete="+this.condition.complete:data+="&complete=0"
-      //当前页数
-        data+="&page="+this.condition.page
-        console.log(data)
-		window.open(process.env.VUE_APP_BASE_API  + "api/download/prize/list/v4?employee_id="+ this.$getUserData().id +  data, "_blank");
-        this.dialogVisible = false;
-    },
-    //分页选择显示多少条
-    handleCurrentChange_xq(val) {
-      this.condition.page = val;
-      this.get_last();
-    },
-    //分页
-    handleSizeChange_xq(val){
-      this.condition.page_size = val;
-      this.get_last();
-    },
-    handleSizeChange(val) {
-      this.formData.page_size =val;
-      this.get_list();
-    },
-    handleCurrentChange(val) {
-      this.formData.page = val;
-      this.get_list();
-    },
-    get_list() {
-      this.loading = true;
-      this.$axios("get","/api/integral/statistics/prize/list",this.formData,'v3').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;
-        });
-    },
-    search() {
-      this.get_list();
-    },
-    open_detail(row, column, event) {
-      this.detail_show = true;
-      this.item = row;
-      this.$nextTick(() => {
-        this.situationChart =this.$echarts.init( document.getElementById("situationChart"));
-        this.passengersChart = this.$echarts.init( document.getElementById("passengersChart"));
-      });
-      this.getData(() => (this.echart_loading = false));
-      this.getDataV1(() => (this.personalData_loading = false));
-    },
-    getChartOption(xAxisData, rewardData, deductionData) {
-      return {
-        tooltip: {
-          trigger: "axis",
-        },
-        grid: {
-          containLabel: true,
-          top: "4%",
-          right: "4%",
-          bottom: "5%",
-          left: "7%",
-        },
-        xAxis: {
-          type: "category",
-          boundaryGap: false,
-          axisLine: { lineStyle: { color: "#eee" } },
-          axisLabel: { color: "#333" },
-          data: xAxisData,
-        },
-        yAxis: {
-          position: "right",
-          axisLine: { lineStyle: { color: "#eee" } },
-          axisLabel: { color: "#333" },
-          type: "value",
-          splitLine: { lineStyle: { color: "#eee" } },
-        },
-        series: [
-          {
-            name: "奖分",
-            type: "line",
-            data: rewardData,
-            lineStyle: { normal: { color: "#F56C6C" } },
-          },
-          {
-            name: "扣分",
-            type: "line",
-            data: deductionData,
-            lineStyle: { normal: { color: "#53B87F" } },
-          },
-        ],
-      };
-    },
-    // v2
-    getData(callBack) {
-      this.echart_loading = true;
-      const data = {
-        employee_id: this.item.id || 0,
-        month: this.formData.month,
-      };
-      this.$axios('get',"/api/integral/statistics/prize",data).then((res) => {
-         if (res.data.code === 1) {
-            const item = res.data.data;
-            this.employeeName = item.name;
-            const deduct = item.chart.deduct;
-            const situationRewardData = [];
-            const situationDeductionData = [];
-            const passengersRewardData = [];
-            const passengersDeductionData = [];
-            const xAxisData = item.chart.reward.map((o, i) => {
-              // 降分分数
-              situationDeductionData.push(item.chart.reward[i].point);
-              // 扣分分数
-              passengersDeductionData.push(item.chart.deduct[i].point);
-              // 奖分次数
-              situationRewardData.push(item.chart.reward[i].count);
-              // 扣分次数
-              passengersRewardData.push(item.chart.deduct[i].count);
-              return o.date;
-            });
-            this.situationChart.setOption(
-              this.getChartOption(
-                xAxisData,
-                situationDeductionData,
-                passengersDeductionData
-              )
-            ); //奖分数值、扣分数值
-            this.passengersChart.setOption(
-              this.getChartOption(
-                xAxisData,
-                situationRewardData,
-                passengersRewardData
-              )
-            ); //月奖扣人次
-          }
-        }).finally(() => {
-          this.echart_loading = false;
-        });
-    },
-    // v1
-    getDataV1(callBack) {
-      this.personalData_loading = true;
-      const data = {
-        employee_id: this.item.id || 0,
-        month: this.formData.month,
-      };
-      this.$axios("get","/api/integral/statistics",data,).then((res) => {
-          if (res.data.code == 1) {
-            this.personalData = res.data.data;
-          } else {
-            this.$message.error(res.data.data.msg);
-          }
-        }).finally(() => {
-          this.personalData_loading = false;
-        });
-    },
-    dept_null(val) {
-      if (val.length == 0) {
-        this.formData.dept_id = 0;
-      } else {
-        this.formData.dept_id = this.dept_name_xq[this.dept_name_xq.length - 1];
-      }
-      this.$nextTick(() => {
-        this.formData.page = 1;
-        this.$refs.depts.dropDownVisible = false;
-        this.get_list();
-      });
-    },
-	//获取部门
-	getDepartment() {
-		this.$axios('get','/api/department/tree').then(res => {
-			this.dept_tree =this.getTreeData(res.data.data.list);
-		});
+	watch: {
+		//对比
+		'formData.month'(val, old_val) {
+			this.formData.page = 1;
+			this.get_list();
+		},
+		//情况
+		'condition.month'(val, old_val) {
+			this.condition.page = 1;
+			this.get_last();
+		},
+		//查看全部达标
+		allPass(val, old_val) {
+			if (val) {
+				this.condition.complete = '1';
+			} else {
+				this.condition.complete = '0';
+			}
+			this.condition.page = 1;
+			this.get_last();
+		}
 	},
-	// 递归判断列表,把最后的children设为undefined
-	getTreeData(data) {
-		for (var i = 0; i < data.length; i++) {
-			data[i].obj={id:data[i].id,name:data[i].name};
-			if (data[i]._child.length < 1) {
-				// children若为空数组,则将children设为undefined
-				data[i]._child = undefined;
+	methods: {
+		//情况
+		get_last() {
+			this.loading = true;
+			this.$axios('get', '/api/integral/statistics/prize/list', this.condition, 'v4')
+				.then(res => {
+					if (res.data.code == 1) {
+						this.last = res.data.data.list;
+						this.totals = res.data.data.total;
+					} else {
+						this.$message.error(res.data.data.msg);
+					}
+				})
+				.finally(() => {
+					this.loading = false;
+				});
+		},
+		//部门
+		get_last_dept_null(val) {
+			if (val.length == 0) {
+				this.condition.dept_id = 0;
+			} else {
+				this.condition.dept_id = val[0];
+			}
+			this.$nextTick(() => {
+				this.condition.page = 1;
+				this.$refs.dept.dropDownVisible = false; //监听值发生变化就关闭它
+				this.get_last();
+			});
+		},
+		//搜索框
+		search_box() {
+			this.get_last();
+		},
+		//导出报表
+		exportExcel() {
+			let data = '';
+			//部门
+			this.condition.dept_id > 0 ? (data += '&dept_id=' + this.condition.dept_id) : (data += '&dept_id=0');
+			//时间
+			data += '&month=' + this.condition.month;
+			//搜索框
+			this.condition.keyword == '' ? (data += '&keyword=') : (data += '&keyword=' + this.condition.keyword);
+			//是否达标
+			this.condition.complete != 0 ? (data += '&complete=' + this.condition.complete) : (data += '&complete=0');
+			//当前页数
+			data += '&page=' + this.condition.page;
+			window.open(process.env.VUE_APP_BASE_API + 'api/download/prize/list/v4?employee_id=' + this.$getUserData().id + data, '_blank');
+			this.dialogVisible = false;
+		},
+		//分页选择显示多少条
+		handleCurrentChange_xq(val) {
+			this.condition.page = val;
+			this.get_last();
+		},
+		//分页
+		handleSizeChange_xq(val) {
+			this.condition.page_size = val;
+			this.get_last();
+		},
+		handleSizeChange(val) {
+			this.formData.page_size = val;
+			this.get_list();
+		},
+		handleCurrentChange(val) {
+			this.formData.page = val;
+			this.get_list();
+		},
+		get_list() {
+			this.loading = true;
+			this.$axios('get', '/api/integral/statistics/prize/list', this.formData, 'v3')
+				.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;
+				});
+		},
+		search() {
+			this.get_list();
+		},
+		open_detail(row, column, event) {
+			this.detail_show = true;
+			this.item = row;
+			this.$nextTick(() => {
+				this.situationChart = this.$echarts.init(document.getElementById('situationChart'));
+				this.passengersChart = this.$echarts.init(document.getElementById('passengersChart'));
+			});
+			this.getData(() => (this.echart_loading = false));
+			this.getDataV1(() => (this.personalData_loading = false));
+		},
+		getChartOption(xAxisData, rewardData, deductionData) {
+			return {
+				tooltip: {
+					trigger: 'axis'
+				},
+				grid: {
+					containLabel: true,
+					top: '4%',
+					right: '4%',
+					bottom: '5%',
+					left: '7%'
+				},
+				xAxis: {
+					type: 'category',
+					boundaryGap: false,
+					axisLine: { lineStyle: { color: '#eee' } },
+					axisLabel: { color: '#333' },
+					data: xAxisData
+				},
+				yAxis: {
+					position: 'right',
+					axisLine: { lineStyle: { color: '#eee' } },
+					axisLabel: { color: '#333' },
+					type: 'value',
+					splitLine: { lineStyle: { color: '#eee' } }
+				},
+				series: [
+					{
+						name: '奖分',
+						type: 'line',
+						data: rewardData,
+						lineStyle: { normal: { color: '#F56C6C' } }
+					},
+					{
+						name: '扣分',
+						type: 'line',
+						data: deductionData,
+						lineStyle: { normal: { color: '#53B87F' } }
+					}
+				]
+			};
+		},
+		// v2
+		getData(callBack) {
+			this.echart_loading = true;
+			const data = {
+				employee_id: this.item.id || 0,
+				month: this.formData.month
+			};
+			this.$axios('get', '/api/integral/statistics/prize', data)
+				.then(res => {
+					if (res.data.code === 1) {
+						const item = res.data.data;
+						this.employeeName = item.name;
+						const deduct = item.chart.deduct;
+						const situationRewardData = [];
+						const situationDeductionData = [];
+						const passengersRewardData = [];
+						const passengersDeductionData = [];
+						const xAxisData = item.chart.reward.map((o, i) => {
+							// 降分分数
+							situationDeductionData.push(item.chart.reward[i].point);
+							// 扣分分数
+							passengersDeductionData.push(item.chart.deduct[i].point);
+							// 奖分次数
+							situationRewardData.push(item.chart.reward[i].count);
+							// 扣分次数
+							passengersRewardData.push(item.chart.deduct[i].count);
+							return o.date;
+						});
+						this.situationChart.setOption(this.getChartOption(xAxisData, situationDeductionData, passengersDeductionData)); //奖分数值、扣分数值
+						this.passengersChart.setOption(this.getChartOption(xAxisData, situationRewardData, passengersRewardData)); //月奖扣人次
+					}
+				})
+				.finally(() => {
+					this.echart_loading = false;
+				});
+		},
+		// v1
+		getDataV1(callBack) {
+			this.personalData_loading = true;
+			const data = {
+				employee_id: this.item.id || 0,
+				month: this.formData.month
+			};
+			this.$axios('get', '/api/integral/statistics', data)
+				.then(res => {
+					if (res.data.code == 1) {
+						this.personalData = res.data.data;
+					} else {
+						this.$message.error(res.data.data.msg);
+					}
+				})
+				.finally(() => {
+					this.personalData_loading = false;
+				});
+		},
+		dept_null(val) {
+			if (val.length == 0) {
+				this.formData.dept_id = 0;
 			} else {
-				// children若不为空数组,则继续 递归调用 本方法
-				this.getTreeData(data[i]._child);
+				this.formData.dept_id = this.dept_name_xq[this.dept_name_xq.length - 1];
 			}
+			this.$nextTick(() => {
+				this.formData.page = 1;
+				this.$refs.depts.dropDownVisible = false;
+				this.get_list();
+			});
+		},
+		//获取部门
+		getDepartment() {
+			this.$axios('get', '/api/department/tree').then(res => {
+				this.dept_tree = this.getTreeData(res.data.data.list);
+			});
+		},
+		// 递归判断列表,把最后的children设为undefined
+		getTreeData(data) {
+			for (var i = 0; i < data.length; i++) {
+				data[i].obj = { id: data[i].id, name: data[i].name };
+				if (data[i]._child.length < 1) {
+					// children若为空数组,则将children设为undefined
+					data[i]._child = undefined;
+				} else {
+					// children若不为空数组,则继续 递归调用 本方法
+					this.getTreeData(data[i]._child);
+				}
+			}
+			return data;
 		}
-		return data;
+	},
+	mounted() {
+		this.getDepartment();
+		this.get_list();
+		this.get_last();
 	}
-  },
-  mounted() {
-	  this.getDepartment();
-	  this.get_list();
-	  this.get_last();
-  },
 };
 </script>
 <style scoped lang="scss">
 .search_box {
-  ::v-deep button:active {
-    background: #26a2ff;
-  }
- ::v-deep button:active .el-icon-search {
-    color: #fff;
-  }
+	::v-deep button:active {
+		background: #26a2ff;
+	}
+	::v-deep button:active .el-icon-search {
+		color: #fff;
+	}
 }
 .date-picker-width {
-  width: 100% !important;
-}
-.color_green {
-  color: #67c23a;
+	width: 100% !important;
 }
 .nopoint_box {
-  display: inline-block;
-  text-align: center;
-  width: 100%;
-  margin-bottom: 10px;
+	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%;
+	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/nodata_default.png") no-repeat center;
-  background-size: 99%;
+	display: inline-block;
+	width: 110px;
+	height: 110px;
+	line-height: none;
+	margin: 22px auto 16px;
+	background: url('../../assets/image/nodata_default.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;
+	display: block;
+	text-align: center;
+	font-size: 12px !important;
+	line-height: 30px;
+	color: #909399 !important;
+	padding: 0;
 }
 .nopoint_box a {
-  color: #26a2ff;
+	color: #26a2ff;
 }
 .chart_content {
-  height: 90vh;
-  overflow-y: auto;
-  overflow-x: hidden;
-  .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%;
-      }
-    }
+	height: 90vh;
+	overflow-y: auto;
+	overflow-x: hidden;
+	.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%;
-      }
-    }
-  }
+		& .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%;
+			}
+		}
+	}
 }
 
 // 滚动条样式
 .chart_content::-webkit-scrollbar-track {
-  -webkit-box-shadow: inset 0 0 5px rgb(255, 255, 255);
-  border-radius: 5px;
-  background-color: rgb(255, 255, 255);
+	-webkit-box-shadow: inset 0 0 5px rgb(255, 255, 255);
+	border-radius: 5px;
+	background-color: rgb(255, 255, 255);
 }
 .chart_content::-webkit-scrollbar {
-  width: 5px;
-  background-color: rgba(201, 201, 201, 0);
+	width: 5px;
+	background-color: rgba(201, 201, 201, 0);
 }
 .chart_content::-webkit-scrollbar-thumb {
-  border-radius: 5px;
-  -webkit-box-shadow: inset 0 0 5px rgb(153, 145, 145) (160, 154, 154);
-  background-color: rgb(168, 167, 167);
+	border-radius: 5px;
+	-webkit-box-shadow: inset 0 0 5px rgb(153, 145, 145) (160, 154, 154);
+	background-color: rgb(168, 167, 167);
 }
 
 .dataItem {
-  text-align: center;
-  .point {
-    font-size: 22px;
-    color: #26a2ff;
-    margin: 10px 0;
-  }
-  .target {
-    font-size: 12px;
-    color: #909399;
-  }
+	text-align: center;
+	.point {
+		font-size: 22px;
+		color: #26a2ff;
+		margin: 10px 0;
+	}
+	.target {
+		font-size: 12px;
+		color: #909399;
+	}
 }
 .drawer_title {
-  font-size: 18px;
-  padding: 20px;
+	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;
-  }
+	background-color: #ffffff;
+	padding: 20px;
+	min-height: calc(100vh - 160px);
+	::v-deep .el-row .el-checkbox .el-checkbox__label {
+		line-height: 20px;
+	}
 }
 .tips {
-  background: #409eff;
-  border-radius: 50%;
-  width: 14px;
-  height: 14px;
-  color: #fff;
-  display: inline-block;
-  font-size: 12px;
-  line-height: 14px;
-  text-align: center;
+	background: #409eff;
+	border-radius: 50%;
+	width: 14px;
+	height: 14px;
+	color: #fff;
+	display: inline-block;
+	font-size: 12px;
+	line-height: 14px;
+	text-align: center;
 }
 .el-form-item__label {
-  width: 0px !important;
-}
-.wlj{
-	padding: 20px;
-	& .color_green{
-		color: #49d3a7;
-	}
-	& .color_red{
-		color: #f04b56;
-	}
+	width: 0px !important;
 }
-b{
+b {
 	font-size: 14px;
 }
-.span_h{
+.span_h {
 	font-size: 13px;
 	color: #898c94;
 }
-</style>
+</style>

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

@@ -4,7 +4,7 @@
 			<el-alert class="diy-tip" @close="tips_close" type="success" description><p>排名包含初始分和工龄分</p></el-alert>
 		</div>
 
-		<div class="all" style="padding: 20px;">
+		<div class="all padding-20">
 			<el-form :inline="true">
 				<el-form-item label="部门">
 					<el-cascader

+ 170 - 167
src/views/set/framework.vue

@@ -14,15 +14,10 @@
 			<div class="flex-box">
 				<div class="terr-left">
 					<div class="rule_class_box" v-loading="ruleDeprt">
-							<div class="company_name">
-								<img src="@/assets/image/two.png" />
-								<span>组织架构</span>
-								<!-- <span :class="[dept_id==0? 'blue':'']">{{ info.name }}</span> -->
-							</div>
-<!-- 						<div @click="handleNodeClick({ id: 0 })" class="company_name">
-							<img src="../assets/image/two.png" />
-							<span :class="[dept_id==0? 'blue':'']">{{ info.name }}</span>
-						</div> -->
+						<div class="company_name">
+							<img src="@/assets/image/two.png" />
+							<span>组织架构</span>
+						</div>
 						<el-tree
 							:data="bmList"
 							class="cate-tree"
@@ -48,7 +43,7 @@
 				<div class="terr-right border-right flex-1">
 					<div class="margin-bottom">
 						<el-button @click="participation()" :loading="enable_loading" size="medium" type="primary" style="margin-right: 10px;">批量启用积分管理</el-button>
-						<el-input placeholder="输入同事姓名" size="medium" style="width: 230px;"  v-model="keywords" clearable @input="searchUser()">
+						<el-input placeholder="输入同事姓名" size="medium" style="width: 230px;" v-model="keywords" clearable @input="searchUser()">
 							<!-- <el-button slot="append" icon="el-icon-search" @click="getEmployee()"></el-button> -->
 						</el-input>
 					</div>
@@ -72,33 +67,37 @@
 						<el-table-column prop="accedence_time" label="入职时间"></el-table-column>
 						<el-table-column prop="accedence_time" label="是否参与排名" align="center">
 							<template slot-scope="scope">
-								<span class="participateRank" :style="scope.row.is_ranking==1?'color:#409eff':'color:rgb(255 83 70)'" @click="rankingtakePartIn(scope.row.id,scope.row.is_ranking)">{{ scope.row.is_ranking==1?'参与':'不参与' }}</span>
+								<span
+									class="participateRank"
+									:style="scope.row.is_ranking == 1 ? 'color:#409eff' : 'color:rgb(255 83 70)'"
+									@click="rankingtakePartIn(scope.row.id, scope.row.is_ranking)"
+								>
+									{{ scope.row.is_ranking == 1 ? '参与' : '不参与' }}
+								</span>
 								<!-- <span>不参与</span> -->
 							</template>
 						</el-table-column>
 						<el-table-column label="启用积分管理">
 							<template slot="header" slot-scope="scope">
-								  <el-popover
-									placement="top-start"
-									width="300"
-									trigger="manual"
-									v-model="visible">
+								<el-popover placement="top-start" width="300" trigger="manual" v-model="visible">
 									<div class="el-popover2">
-										<div class="title">提示 <i class="el-icon-info" style="margin-left: 5px;"></i></div>
+										<div class="title">
+											提示
+											<i class="el-icon-info" style="margin-left: 5px;"></i>
+										</div>
 										<div style="margin-bottom: 10px;">在这里启用积分管理,即可进入系统</div>
 										<div class="flex-box">
 											<div class="flex-1"></div>
 											<el-button size="small" @click="visible_close()">我知道了</el-button>
 										</div>
 									</div>
-									<div slot="reference" class="popover" @click="visible=!visible">启用积分管理</div>
-								  </el-popover>
+									<div slot="reference" class="popover" @click="visible = !visible">启用积分管理</div>
+								</el-popover>
 							</template>
 							<template slot-scope="scope">
-								<div :class="[scope.row.is_official==1? 'switch-box':'']" @click="changeIs(scope.row.is_official, scope.row.id)">
+								<div :class="[scope.row.is_official == 1 ? 'switch-box' : '']" @click="changeIs(scope.row.is_official, scope.row.id)">
 									<div class="switch"></div>
 								</div>
-								<!-- <el-switch @change="changeIs($event, scope.row.id)" v-model="scope.row.is_official" :active-value="is" :inactive-value="no"></el-switch> -->
 							</template>
 						</el-table-column>
 						<template slot="empty">
@@ -119,22 +118,17 @@
 				</div>
 			</div>
 		</div>
-		<el-dialog
-		title="设置是否参与排名"
-		:visible.sync="dialogVisible"
-		top="30vh"
-		width="520px"
-		:before-close="handleClose">
-		<div style="margin-left:20px;">
-			<el-radio v-for="(item,index) in radioLi" :key="index" v-model="radio" :label="item.id">
-				<span style="font-size:17px;">{{item.name}}</span>
-				<p style="font-size:14px;margin:8px 0 0 24px;">{{item.kam}}</p>
-			</el-radio>
-		</div>
-		<span slot="footer" class="dialog-footer">
-			<el-button @click="dialogVisible = false">取 消</el-button>
-			<el-button type="primary" @click="setRanking" :disabled="rangLoad">确 定</el-button>
-		</span>
+		<el-dialog title="设置是否参与排名" :visible.sync="dialogVisible" top="30vh" width="520px" :before-close="handleClose">
+			<div style="margin-left:20px;">
+				<el-radio v-for="(item, index) in radioLi" :key="index" v-model="radio" :label="item.id">
+					<span style="font-size:17px;">{{ item.name }}</span>
+					<p style="font-size:14px;margin:8px 0 0 24px;">{{ item.kam }}</p>
+				</el-radio>
+			</div>
+			<span slot="footer" class="dialog-footer">
+				<el-button @click="dialogVisible = false">取 消</el-button>
+				<el-button type="primary" @click="setRanking" :disabled="rangLoad">确 定</el-button>
+			</span>
 		</el-dialog>
 	</div>
 </template>
@@ -162,19 +156,16 @@ export default {
 			tableToading: false,
 			tbLoading: false,
 			selectIds: [],
-			enable_loading:false,
-			visible:false,
-			
-			ruleDeprt:false,
-			dialogVisible:false,
-			rankingtakePartInId:'',
+			enable_loading: false,
+			visible: false,
+
+			ruleDeprt: false,
+			dialogVisible: false,
+			rankingtakePartInId: '',
 			radio: '1',
-			
-			rangLoad:false,
-			radioLi:[
-				{id:'1',name:'参与排名',kam:'在排名中展示此人'},
-				{id:'0',name:'不参与排名',kam:'排名不展示此人(自定义排名除外)'},
-			],
+
+			rangLoad: false,
+			radioLi: [{ id: '1', name: '参与排名', kam: '在排名中展示此人' }, { id: '0', name: '不参与排名', kam: '排名不展示此人(自定义排名除外)' }]
 		};
 	},
 	components: {
@@ -187,7 +178,6 @@ export default {
 	},
 	created() {
 		this.getInfo();
-		// this.getDepartment();
 		this.getEmployee();
 	},
 	mounted() {
@@ -200,63 +190,67 @@ export default {
 		});
 	},
 	methods: {
-		setRanking(){
-			this.rangLoad = true
+		setRanking() {
+			this.rangLoad = true;
 			let data = {
-				employee_id:this.rankingtakePartInId,
-				switch:Number(this.radio)
-			}
-			this.$axios('post','/api/employee/ranking_switch',data).then((res)=>{
-				if(res.data.code == 1){
-					this.$message.success({ message: res.data.msg });
-					this.getEmployee()
-				}
-			}).finally(()=>{
-				this.dialogVisible = false
-				setTimeout(()=>{
-					this.rangLoad = false
-				},200)
-			})
+				employee_id: this.rankingtakePartInId,
+				switch: Number(this.radio)
+			};
+			this.$axios('post', '/api/employee/ranking_switch', data)
+				.then(res => {
+					if (res.data.code == 1) {
+						this.$message.success({ message: res.data.msg });
+						this.getEmployee();
+					}
+				})
+				.finally(() => {
+					this.dialogVisible = false;
+					setTimeout(() => {
+						this.rangLoad = false;
+					}, 200);
+				});
 		},
-		rankingtakePartIn(id,is_ranking){
-			this.radio = is_ranking.toString()
-			this.rankingtakePartInId = id
-			this.dialogVisible = true
+		rankingtakePartIn(id, is_ranking) {
+			this.radio = is_ranking.toString();
+			this.rankingtakePartInId = id;
+			this.dialogVisible = true;
 		},
-		handleClose(done){
-			done()
+		handleClose(done) {
+			done();
 		},
 		//同步信息
 		tb() {
 			this.$confirm('下次同步时间需在10分钟之后,是否同步?', '提示', {
-			  confirmButtonText: '确定',
-			  cancelButtonText: '取消',
-			  type: 'warning'
+				confirmButtonText: '确定',
+				cancelButtonText: '取消',
+				type: 'warning'
 			}).then(() => {
 				this.tbLoading = true;
-				this.$axios('post','/api/ding/department_sync').then(res => {
-					this.$message.success({ message: '同步成功' });
-					this.dept_id=0;
-					this.getInfo();
-					this.getEmployee();
-				}).finally(()=>{
-					this.tbLoading = false;
-				});
+				this.$axios('post', '/api/ding/department_sync')
+					.then(res => {
+						this.$message.success({ message: '同步成功' });
+						this.dept_id = 0;
+						this.getInfo();
+						this.getEmployee();
+					})
+					.finally(() => {
+						this.tbLoading = false;
+					});
 			});
 		},
 		//搜索
-		searchUser(){
+		searchUser() {
 			this.page = 1;
 			this.getEmployee();
 		},
 		//是否开通
 		changeIs(e, id) {
 			var url = e == 1 ? '/api/employee/disable' : '/api/employee/enable';
-			this.$axios('post',url, { employee_id: [id] }).then(res => {
+			this.$axios('post', url, { employee_id: [id] }).then(res => {
 				if (res) {
-					if(e==0){
+					if (e == 0) {
 						this.$message.success({ message: '开启成功,可在"角色权限设置对应管理范围"' });
-					}else{
+					} else {
 						this.$message.success({ message: res.data.msg });
 					}
 					this.getEmployee();
@@ -265,26 +259,28 @@ export default {
 		},
 		//批量开通权限
 		participation() {
-			if(this.selectIds.length==0){
+			if (this.selectIds.length == 0) {
 				this.$message.error({ message: '请选择参与的人员!' });
-				return
+				return;
 			}
-			
-			this.enable_loading=true;
-			this.$axios('post','/api/employee/enable', { employee_id: this.selectIds }).then(res => {
-				if (res) {
-					this.$message.success({ message: '开启成功,可在"角色权限设置对应管理范围"' });
-					this.getEmployee();
-				}
-			}).finally(err=>{
-				this.enable_loading=false;
-			});
+
+			this.enable_loading = true;
+			this.$axios('post', '/api/employee/enable', { employee_id: this.selectIds })
+				.then(res => {
+					if (res) {
+						this.$message.success({ message: '开启成功,可在"角色权限设置对应管理范围"' });
+						this.getEmployee();
+					}
+				})
+				.finally(err => {
+					this.enable_loading = false;
+				});
 		},
 		//获取公司信息
 		getInfo(is) {
-			this.ruleDeprt = true
+			this.ruleDeprt = true;
 			// api/test?employee_id=155
-			this.$axios('get','/api/site/info').then(res => {
+			this.$axios('get', '/api/site/info').then(res => {
 				this.info = res.data.data;
 				this.getDepartment(is);
 			});
@@ -304,33 +300,39 @@ export default {
 		},
 		//获取部门
 		getDepartment() {
-			this.ruleDeprt = true
-			this.$axios('get','/api/department/tree').then(res => {
-				var list=[{
-					id:0,
-					name:this.info.name,
-					_child:res.data.data.list
-				}]
-				this.bmList = list;
-			}).finally(()=>{
-				this.ruleDeprt = false
-			});
+			this.ruleDeprt = true;
+			this.$axios('get', '/api/department/tree')
+				.then(res => {
+					var list = [
+						{
+							id: 0,
+							name: this.info.name,
+							_child: res.data.data.list
+						}
+					];
+					this.bmList = list;
+				})
+				.finally(() => {
+					this.ruleDeprt = false;
+				});
 		},
 		//获取员工
 		getEmployee() {
 			this.tableToading = true;
-			this.$axios('get','/api/employee/index', {dept_id: this.dept_id, keywords: this.keywords, page: this.page, page_size: this.perPage }).then(res => {
-				this.total = res.data.data.pageInfo.count;
-				this.userList = res.data.data.list;
-				var visible=localStorage.getItem('visible');
-				if(!visible){
-					this.visible=true;
-				}
-			}).finally(err=>{
-				this.tableToading=false;
-			});
+			this.$axios('get', '/api/employee/index', { dept_id: this.dept_id, keywords: this.keywords, page: this.page, page_size: this.perPage })
+				.then(res => {
+					this.total = res.data.data.pageInfo.count;
+					this.userList = res.data.data.list;
+					var visible = localStorage.getItem('visible');
+					if (!visible) {
+						this.visible = true;
+					}
+				})
+				.finally(err => {
+					this.tableToading = false;
+				});
 		},
-		visible_close(){
+		visible_close() {
 			localStorage.setItem('visible', 'true');
 			this.visible = false;
 		},
@@ -354,55 +356,55 @@ export default {
 </script>
 
 <style lang="scss" scoped="scoped">
- .title{
-	 font-size: 16px;
-	 color: #909399;
-	 margin-bottom: 10px;
- }	
-.popover{
+.title {
+	font-size: 16px;
+	color: #909399;
+	margin-bottom: 10px;
+}
+.popover {
 	border: none;
 	// color: #909399;
 	font-weight: 600;
 	cursor: pointer;
 }
-.popover:hover{
+.popover:hover {
 	background-color: #fff;
 	border-color: #fff;
 }
 
-.switch{
-    margin: 0;
-    display: inline-block;
-    position: relative;
-    width: 40px;
-    height: 20px;
-    border: 1px solid #dcdfe6;
-    outline: none;
-    border-radius: 10px;
-    box-sizing: border-box;
-    background: #dcdfe6;
-    cursor: pointer;
-    transition: border-color .3s,background-color .3s;
-    vertical-align: middle;
+.switch {
+	margin: 0;
+	display: inline-block;
+	position: relative;
+	width: 40px;
+	height: 20px;
+	border: 1px solid #dcdfe6;
+	outline: none;
+	border-radius: 10px;
+	box-sizing: border-box;
+	background: #dcdfe6;
+	cursor: pointer;
+	transition: border-color 0.3s, background-color 0.3s;
+	vertical-align: middle;
 }
 .switch:after {
-    content: "";
-    position: absolute;
-    top: 1px;
-    left: 1px;
-    border-radius: 100%;
-    transition: all .3s;
-    width: 16px;
-    height: 16px;
-    background-color: #fff;
+	content: '';
+	position: absolute;
+	top: 1px;
+	left: 1px;
+	border-radius: 100%;
+	transition: all 0.3s;
+	width: 16px;
+	height: 16px;
+	background-color: #fff;
 }
 .switch-box .switch {
-    border-color: #409eff;
-    background-color: #409eff;
+	border-color: #409eff;
+	background-color: #409eff;
 }
 .switch-box .switch:after {
-    left: 100%;
-    margin-left: -17px;
+	left: 100%;
+	margin-left: -17px;
 }
 .name {
 	overflow: hidden;
@@ -451,10 +453,10 @@ export default {
 	}
 }
 
- .el-popover2{
-		 // background-color: #409eff !important;
-		 color: #409eff;
-	}
+.el-popover2 {
+	// background-color: #409eff !important;
+	color: #409eff;
+}
 .rule_class_box {
 	::v-deep .el-tree-node {
 		border-bottom: 1px #f8f8f8 solid;
@@ -467,10 +469,10 @@ export default {
 		background: #ecf5ff;
 		border-radius: 4px;
 	}
-	::v-deep .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content .name{
-	    color: #409eff !important;
-			font-weight: normal;
-			transition: 0.35s ease-in-out;
+	::v-deep .el-tree--highlight-current .el-tree-node.is-current > .el-tree-node__content .name {
+		color: #409eff !important;
+		font-weight: normal;
+		transition: 0.35s ease-in-out;
 	}
 	// ::v-deep .is-current .el-tree-node__content .el-icon-caret-right {
 	// 	color: #409eff !important;
@@ -490,7 +492,8 @@ export default {
 	// 	transition: 0.35s ease-in-out;
 	// }
 }
-.participateRank{
-	cursor:pointer;
+.participateRank {
+	cursor: pointer;
+	text-decoration: underline;
 }
 </style>

+ 182 - 0
src/views/set/log.vue

@@ -0,0 +1,182 @@
+<template>
+	<div class="all-box">
+		<div class="all" style="padding: 40px;">
+			<div style="margin-bottom: 30px;">
+				<div class="initia_title">工作日志积分</div>
+				<div class="initia_title_1">日志的相关说明</div>
+			</div>
+			<el-table ref="multipleTable" :data="list" tooltip-effect="dark" align="center" v-loading="loading">
+				<el-table-column label="序号" align="left" type="index"></el-table-column>
+				<el-table-column label="日志名称" prop="name"></el-table-column>
+				<el-table-column label="日志积分规则">
+					<template slot-scope="scope">
+						<span>{{ getMoney(scope.row.interval) }}{{ scope.row.config.upper_limit }}汇报,每次奖{{ scope.row.config.point }} B分</span>
+					</template>
+				</el-table-column>
+				<el-table-column label="状态">
+					<template slot-scope="scope">
+						<span v-if="scope.row.enable == 0" class="yellow">已禁用</span>
+						<span v-else class="green">已启用</span>
+					</template>
+				</el-table-column>
+				<el-table-column label="">
+					<template slot-scope="scope">
+						<div @click.stop="openSet(scope.row)"><span class="lookQrcode">设置</span></div>
+					</template>
+				</el-table-column>
+				<template slot="empty">
+					<noData></noData>
+				</template>
+			</el-table>
+		</div>
+		<el-dialog title="设置" :visible.sync="dialogVisible" top="25vh" width="520px">
+			<el-form label-width="110px" :model="selectItem" ref="setForm">
+				<el-form-item label="是否启用"><el-switch v-model="selectItem.enable" active-color="#13ce66" inactive-color="rgb(202 202 202)"></el-switch></el-form-item>
+				<el-form-item label="日志名称" prop="name" :rules="[{ required: true, message: '请输入日志名称'}]">
+					  <el-popover placement="top-start" title="温馨提示" width="200" trigger="hover" content="日志名称必须与钉钉预设模板名称一致,否则可能会无法同步钉钉的日志记录">
+						 <el-input style="width: 200px;" v-model="selectItem.name" slot="reference"></el-input>
+					  </el-popover>
+				</el-form-item>
+				<!-- <div style="margin-left: 110px;" class="yellow">*日志名称必须与钉钉预设模板名称一致</div> -->
+				<div class="title">日志汇报要求</div>
+				<el-form-item label="日志汇报要求" prop="interval" :rules="[{ required: true, message: '请选择汇报要求'}]">
+					  <el-select class="widthInput"  v-model="selectItem.interval" placeholder="请选择">
+					    <el-option v-for="item in options"  :key="item.value" :label="item.label" :value="item.value"></el-option>
+					  </el-select>
+				</el-form-item>
+				<el-form-item label="每次汇报奖" :rules="[{ required: true, message: '请输入分值', trigger: 'change' }]" prop="config.point">
+					<el-input class="widthInput"  oninput="value=value.replace(/[^\d]/g,'')"  v-model.number="selectItem.config.point"></el-input><span style="margin-left: 5px;">B分</span>
+				</el-form-item>
+				<el-form-item label="汇报提交超过" prop="config.upper_limit" :rules="[{ required: true, message: '请输入次数'}]" >
+					<el-input class="widthInput"  oninput="value=value.replace(/[^\d]/g,'')" v-model.number="selectItem.config.upper_limit"></el-input><span style="margin-left: 5px;">次,不再奖励积分</span>
+				</el-form-item>
+				<el-form-item style="text-align: right; margin-bottom: 0">
+					<el-button @click="dialogVisible = false">取消</el-button>
+					<el-button type="primary" :loading="setLoading" :disabled="setLoading" @click="submit('setForm')">确定</el-button>
+				</el-form-item>
+			</el-form>
+		</el-dialog>
+	</div>
+</template>
+
+<script>
+import noData from '@/components/noData';
+export default {
+	components: { noData },
+	data() {
+		return {
+			loading: false,
+			setLoading: false,
+			ding_enable: true,
+			list: [],
+			dialogVisible: false,
+			selectItem:{
+				config: {point: "", upper_limit: ""},
+				enable: '',
+				id: '',
+				interval: '',
+				name: "",
+				site_id: '',
+				type: "",
+			},
+			options: [{
+			  value: 1,
+			  label: '每日'
+			}, {
+			  value: 2,
+			  label: '每周'
+			}, {
+			  value: 3,
+			  label: '每月'
+			}],
+		};
+	},
+	mounted() {
+		this.getList();
+	},
+	methods: {
+		submit(fromName) {
+			this.$refs[fromName].validate(valid => {
+				if (valid) {
+					this.setLoading = true;
+					let jsonItem=JSON.stringify(this.selectItem)
+					let data=JSON.parse(jsonItem);
+					data.enable=data.enable? 1:0;
+					data.point=data.config.point;
+					data.upper_limit=data.config.upper_limit;
+					this.$axios('post', '/api/integral/report/templates', data).then(res => {
+						if (res.data.code == 1) {
+							this.$message.success(res.data.msg);
+							this.getList();
+							this.dialogVisible = false;
+						}
+					}).finally(() => {
+						this.setLoading = false;
+					});
+				}
+			});
+		},
+		openSet(item) {
+			var jsonItem=JSON.stringify(item)
+			this.selectItem=JSON.parse(jsonItem);
+			this.selectItem.enable=this.selectItem.enable==0? false:true
+			this.dialogVisible=true;
+		},
+		getMoney: function(index) {
+			var str; //1-每日 2-每周 3-每月
+			switch (index) {
+				case 1:
+					str = '每日';
+					break;
+				case 2:
+					str = '每周';
+					break;
+				case 3:
+					str = '每月';
+					break;
+			}
+			return str;
+		},
+		getList() {
+			this.loading = true;
+			this.$axios('get', '/api/integral/report/templates/list')
+				.then(res => {
+					this.list = res.data.data.list;
+				})
+				.finally(err => {
+					this.loading = false;
+				});
+		}
+	}
+};
+</script>
+<style scoped lang="scss">
+ .widthInput{
+	 width: 120px;
+ }	
+.title {
+	margin: 10px 0;
+	margin-top: 0;
+	font-size: 16px;
+	font-weight: 700;
+}
+.initia_title {
+	font-size: 20px;
+	color: rgba(48, 49, 51, 1);
+	font-family: PingFangSC-Regular;
+}
+.initia_title_1 {
+	color: #606266;
+	font-size: 14px;
+	margin-top: 10px;
+}
+.lookQrcode {
+	color: #606266;
+	cursor: pointer;
+	transition: all 0.3s;
+	font-weight: 700;
+}
+.lookQrcode:hover {
+	color: #2490fd;
+}
+</style>

+ 0 - 8
src/views/set/rule.vue

@@ -54,14 +54,6 @@
 							</template>
 						</el-table-column>
 						<el-table-column prop="remark" label="操作" align="center">
-							<!-- <template slot-scope="scope">
-								<el-dropdown placement="bottom" :show-timeout="150" :hide-timeout="150" >
-									<span class="el-dropdown-links" @click.stop="">···</span>
-									<el-dropdown-menu  slot="dropdown" >
-										<el-dropdown-item ><el-button type="text" class="color-red" style="font-size:12px;" v-loading.fullscreen.lock="bodyLoad" @click.stop="ruleQRcode(scope.row)">查看二维码</el-button></el-dropdown-item>
-									</el-dropdown-menu>
-								</el-dropdown>
-							</template> -->
 							<template slot-scope="scope">
 								<div @click.stop="ruleQRcode(scope.row)"><span class="lookQrcode">查看二维码</span></div>
 							</template>

+ 196 - 156
src/views/set/systemLayout.vue

@@ -1,172 +1,212 @@
 <template>
-  <div class="all" v-loading="loading">
-    <el-tabs v-model="activeName" @tab-click="handleClick" class="tab-container" style="padding:20px 0 0 30px;">
-        <el-tab-pane label="基本设置" name="first">
-            <div class="integralApproval">
-                <b>积分审批</b>
-                <p>当前系统审批流程<a @click="approvalProcess">查看图例</a></p>
-                <div style="margin-top:10px;"><span>指定规则的审批或奖扣分,均可直接通过</span>
-					<el-tooltip placement="top">
-					  <div class="toolCont" slot="content">开启后,按照系统已有的积分规则制度提交的审批或者奖扣可即使审批人/录分人的权限分不足,也能审批通过</div>
-					  <span class="initia_mark">?</span>
-					</el-tooltip>
-                    <el-switch style="margin-left:30px;" v-model="examine" active-color="#13ce66" inactive-color="rgb(202 202 202)"></el-switch></div>
-            </div>
-            <el-button type="primary" class="save" @click="saveFirst('first')">保存</el-button>
-        </el-tab-pane>
-        <el-tab-pane label="通知设置" name="second">
-            <div class="integralApproval">
-                <div v-for="(item,index) in informText" :key="index" style="margin-top:30px;">
-                    <p><b style="font-size:16px;">{{item.title}}</b>
-                    <el-switch v-if="item.switchs == 0" style="margin:-6px 0 0 30px;" v-model="individualPoints" active-color="#13ce66" inactive-color="rgb(202 202 202)"></el-switch>
-                    <el-switch v-if="item.switchs == 1" style="margin:-6px 0 0 30px;" v-model="pointManagement" active-color="#13ce66" inactive-color="rgb(202 202 202)"></el-switch>
-                    <el-switch v-if="item.switchs == 2" style="margin:-6px 0 0 30px;" v-model="taskToInform" active-color="#13ce66" inactive-color="rgb(202 202 202)"></el-switch>
-                    <el-switch v-if="item.switchs == 3" style="margin:-6px 0 0 30px;" v-model="approvalNotice" active-color="#13ce66" inactive-color="rgb(202 202 202)"></el-switch>
-                    </p>
-                    <p>{{item.ram}}</p>
-                    <p v-if="item.checkboxs && individualPoints"><el-checkbox v-model="checked">{{item.checkboxs}}</el-checkbox></p>
-                </div>
-            </div>
-            <el-button type="primary" class="save" @click="saveFirst('second')">保存</el-button>
-        </el-tab-pane>
-    </el-tabs>
+	<div class="all padding-20" v-loading="loading">
+		<el-tabs v-model="activeName" @tab-click="handleClick" class="tab-container">
+			<el-tab-pane label="基本设置" name="first">
+				<div class="integralApproval">
+					<b>积分审批</b>
+					<p>当前系统审批流程<a @click="approvalProcess">查看图例</a></p>
+					<div style="margin-top:10px;">
+						<span>指定规则的审批或奖扣分,均可直接通过</span>
+						<el-tooltip placement="top">
+							<div class="toolCont" slot="content">开启后,按照系统已有的积分规则制度提交的审批或者奖扣可即使审批人/录分人的权限分不足,也能审批通过</div>
+							<span class="initia_mark">?</span>
+						</el-tooltip>
+						<el-switch style="margin-left:30px;" v-model="examine" active-color="#13ce66" inactive-color="rgb(202 202 202)"></el-switch>
+					</div>
+				</div>
+				<div class="integralApproval">
+					<b>A分转B分 <el-switch style="margin-left:30px;" v-model="isApB" active-color="#13ce66" inactive-color="rgb(202 202 202)"></el-switch></b>
+					<div class="flex-box flex-v-ce" style="margin-top:10px;" v-if="isApB">1A分=<el-input v-model.number="pointNum" autofocus="0" class="pointNum" oninput="value=value.replace(/[^\d]/g,'')"></el-input> B分</div>
+					<div style="margin-top:10px;">
+						<div>开启后,每奖/扣1条A分,额外产生一条分值按比例转换后的B分记录;</div>
+						<div>列如:设置1A分=10B分时,因表现出色奖励10A分的同时,额外奖励100B分。</div>
+					</div>
+				</div>
+				<div class="integralApproval">
+					<b>管理者审批计入奖扣分任务 <el-switch style="margin-left:30px;" v-model="task_review" active-color="#13ce66" inactive-color="rgb(202 202 202)"></el-switch></b>
+					<div style="margin-top:10px;">
+						<div>系统默认的管理者奖扣任务只包含管理者主动给员工奖扣的积分;</div>
+						<div>开启后,审批员工申请的积分和任务也会记入Ta的奖扣分任务内</div>
+					</div>
+				</div>
+				<el-button type="primary" class="save" @click="saveFirst('first')">保存</el-button>
+			</el-tab-pane>
+			<el-tab-pane label="通知设置" name="second">
+				<div class="integralApproval">
+					<div v-for="(item, index) in informText" :key="index" style="margin-top:30px;">
+						<p>
+							<b style="font-size:16px;">{{ item.title }}</b>
+							<el-switch v-if="item.switchs == 0" style="margin:-6px 0 0 30px;" v-model="individualPoints" active-color="#13ce66" inactive-color="rgb(202 202 202)"></el-switch>
+							<el-switch v-if="item.switchs == 1" style="margin:-6px 0 0 30px;" v-model="pointManagement" active-color="#13ce66" inactive-color="rgb(202 202 202)"></el-switch>
+							<el-switch v-if="item.switchs == 2" style="margin:-6px 0 0 30px;" v-model="taskToInform" active-color="#13ce66" inactive-color="rgb(202 202 202)"></el-switch>
+							<el-switch v-if="item.switchs == 3" style="margin:-6px 0 0 30px;" v-model="approvalNotice" active-color="#13ce66" inactive-color="rgb(202 202 202)"></el-switch>
+						</p>
+						<p>{{ item.ram }}</p>
+						<p v-if="item.checkboxs && individualPoints">
+							<el-checkbox v-model="checked">{{ item.checkboxs }}</el-checkbox>
+						</p>
+					</div>
+				</div>
+				<el-button type="primary" class="save" @click="saveFirst('second')">保存</el-button>
+			</el-tab-pane>
+		</el-tabs>
 
-    <el-dialog
-    title="系统审批流程"
-    :visible.sync="dialogVisible"
-    width="770px"
-    top="3vh"
-    :before-close="handleClose">
-    <svg-icon icon-class="approval_process" style="font-size:730px;"/>
-            <!-- <img src="@/assets/image/approval_process.png" alt="" style="width:100%;height:100%;"> -->
-    </el-dialog>
-
-  </div>
+		<el-dialog title="系统审批流程" :visible.sync="dialogVisible" width="770px" top="3vh" :before-close="handleClose">
+			<svg-icon icon-class="approval_process" style="font-size:730px;" />
+		</el-dialog>
+	</div>
 </template>
 <script>
 export default {
-  data() {
-    return {
-        loading: false,
-        activeName: 'first',
-        examine:false,
+	data() {
+		return {
+			loading: false,
+			activeName: 'first',
+			examine: false,
 
-        
-        checked:false,//积分日报展示A分数据
-        individualPoints:false,//个人积分日报
-        pointManagement:false,//积分管理周报
-        taskToInform:false,//任务通知
-        approvalNotice:false,//审批通知
-        informText:[
-            {title:'个人积分通知',switchs:0,ram:'每天推送个人积分的排名和奖扣分情况(不参与积分排名的除外)',checkboxs:'积分日报展示A分数据'},
-            {title:'管理者奖扣分执行情况通知',switchs:1,ram:'每周给管理者推送当月的奖扣分执行情况'},
-            {title:'任务通知',switchs:2,ram:'每天定时推送收到任务的通知'},
-            {title:'审批通知',switchs:3,ram:'每天定时推送收到审批的通知'},
-        ],
-        dialogVisible:false,
-    };
-  },
-  components: {
-      
-  },
-  watch:{
-  },
-  created() {},
-  mounted() {
-      this.cheakAx('first')
-  },
-  methods: {
-    approvalProcess(){
-        this.dialogVisible = true
-    },
-    handleClose(none){
-        none()
-    },
-    handleClick(tab, event) {
-        this.cheakAx(this.activeName)
-    },
-    saveFirst(name){
-        this.loading = true
-        let data = {}
-        if(name == 'first'){
-            data.rule_limit_check = this.examine?0:1
-        }else{
-            console.log(this.individualPoints)
-            console.log(this.pointManagement)
-            console.log(this.taskToInform)
-            console.log(this.approvalNotice)
-            data.report_integral_daily = this.individualPoints?1:0
-            this.individualPoints?data.report_integral_daily_a = this.checked?1:0:''
-            data.report_integral_weekly = this.pointManagement?1:0
-            data.report_work_daily = this.taskToInform?1:0
-            data.report_review_daily = this.approvalNotice?1:0
-        }
-        this.$axios('post',"/api/integral/site/config",data).then((res) => {
-            if(res.data.code == 1){
-                this.$message({
-                    message: res.data.msg,
-                    type: 'success'
-                });
-            }
-        }).finally(()=>{
-            this.loading = false
-        })
-    },
-    cheakAx(name){
-      this.loading = true;
-      this.$axios('get',"/api/integral/site/config").then((res) => {
-        let data = res.data.data
-        if(name == 'first'){
-            this.examine = data.rule_limit_check == 0?true : false
-        }else{
-            this.individualPoints = data.report_integral_daily == 1?true : false
-            this.checked = this.individualPoints?data.report_integral_daily_a == 1? true : false : false
-            this.pointManagement = data.report_integral_weekly == 1?true : false
-            this.taskToInform = data.report_work_daily == 1?true : false
-            this.approvalNotice = data.report_review_daily == 1?true : false
-        }
-      }).finally(err=>{
-        this.loading = false;
-    });
-    }
-  },
+			checked: false, //积分日报展示A分数据
+			individualPoints: false, //个人积分日报
+			pointManagement: false, //积分管理周报
+			taskToInform: false, //任务通知
+			approvalNotice: false, //审批通知
+			informText: [
+				{ title: '个人积分通知', switchs: 0, ram: '每天推送个人积分的排名和奖扣分情况(不参与积分排名的除外)', checkboxs: '积分日报展示A分数据' },
+				{ title: '管理者奖扣分执行情况通知', switchs: 1, ram: '每周给管理者推送当月的奖扣分执行情况' },
+				{ title: '任务通知', switchs: 2, ram: '每天定时推送收到任务的通知' },
+				{ title: '审批通知', switchs: 3, ram: '每天定时推送收到审批的通知' }
+			],
+			dialogVisible: false,
+			//A转B
+			pointNum:0,
+			isApB:false,
+			
+			// 管理者奖扣记入
+			task_review:false,
+		};
+	},
+	components: {},
+	watch: {},
+	created() {},
+	mounted() {
+		this.cheakAx('first');
+	},
+	methods: {
+		approvalProcess() {
+			this.dialogVisible = true;
+		},
+		handleClose(none) {
+			none();
+		},
+		handleClick(tab, event) {
+			this.cheakAx(this.activeName);
+		},
+		saveFirst(name) {
+			let data = {};
+			if (name == 'first') {
+				data.rule_limit_check = this.examine ? 0 : 1;
+				data.task_review=this.task_review ? 1:0;
+				if(this.isApB){
+					if(this.pointNum==0||!this.pointNum){
+						this.$message({
+							message: "A转B分,分值不能空或者零",
+							type: 'error'
+						});
+						return;
+					}
+				}
+				this.isApB ? (data.a2b = this.pointNum):(data.a2b = 0)
+			} else {
+				data.report_integral_daily = this.individualPoints ? 1 : 0;
+				this.individualPoints ? (data.report_integral_daily_a = this.checked ? 1 : 0) : '';
+				data.report_integral_weekly = this.pointManagement ? 1 : 0;
+				data.report_work_daily = this.taskToInform ? 1 : 0;
+				data.report_review_daily = this.approvalNotice ? 1 : 0;
+			}
+			this.loading = true;
+			this.$axios('post', '/api/integral/site/config', data)
+				.then(res => {
+					if (res.data.code == 1) {
+						this.$message({
+							message: res.data.msg,
+							type: 'success'
+						});
+					}
+				})
+				.finally(() => {
+					this.loading = false;
+				});
+		},
+		cheakAx(name) {
+			this.loading = true;
+			this.$axios('get', '/api/integral/site/config')
+				.then(res => {
+					let data = res.data.data;
+					if (name == 'first') {
+						this.examine = data.rule_limit_check == 0 ? true : false;
+						this.isApB=data.a2b== 0 ? false : true;
+						this.task_review=data.task_review==1?true:false
+						this.pointNum=data.a2b
+					} else {
+						this.individualPoints = data.report_integral_daily == 1 ? true : false;
+						this.checked = this.individualPoints ? (data.report_integral_daily_a == 1 ? true : false) : false;
+						this.pointManagement = data.report_integral_weekly == 1 ? true : false;
+						this.taskToInform = data.report_work_daily == 1 ? true : false;
+						this.approvalNotice = data.report_review_daily == 1 ? true : false;
+					}
+				})
+				.finally(err => {
+					this.loading = false;
+				});
+		}
+	}
 };
 </script>
 
-<style  scoped lang="scss">
-.integralApproval{
-    margin-top: 20px;
-
-    b{font-size:16px;}
-    p{margin-top: 10px;
-        a{color:#1795f9;padding-left:15px;cursor:pointer;}}
-    .initia_mark {
-        background: #191919;
-        border-radius: 50%;
-        width: 14px;
-        height: 14px;
-        color: #fff;
-        display: inline-block;
-        font-size: 12px;
-        line-height: 14px;
-        text-align: center;
-        margin-left: 4px;
-        cursor: default;
-    }
+<style scoped lang="scss">
+.integralApproval {
+	margin-top: 20px;
+	.pointNum{
+		width: 100px;
+		margin: 0 10px;
+	}
+	b {
+		font-size: 16px;
+	}
+	p {
+		margin-top: 10px;
+		a {
+			color: #1795f9;
+			padding-left: 15px;
+			cursor: pointer;
+		}
+	}
+	.initia_mark {
+		background: #191919;
+		border-radius: 50%;
+		width: 14px;
+		height: 14px;
+		color: #fff;
+		display: inline-block;
+		font-size: 12px;
+		line-height: 14px;
+		text-align: center;
+		margin-left: 4px;
+		cursor: default;
+	}
 }
-.toolCont{
-    max-width:280px;
+.toolCont {
+	max-width: 280px;
 }
 
-.save{
-    margin-top: 30px;
-    width:100px;
-    font-size:15px;
+.save {
+	margin-top: 30px;
+	width: 100px;
+	font-size: 15px;
 }
-.tab-container ::v-deep .el-tabs__item{
-    font-size: 16px;
+.tab-container ::v-deep .el-tabs__item {
+	font-size: 16px;
 }
 .tab-container ::v-deep .el-tabs__nav-wrap::after {
-    background: #fff
+	background: #fff;
 }
-</style>
+</style>

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

@@ -78,7 +78,7 @@
           <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" @click.stop="">···</span>
+              <span class="el-dropdown-links">···</span>
               <el-dropdown-menu  slot="dropdown" >
                 <!-- <el-dropdown-item :disabled="false" v-if="scope.row.source_type==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" 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>
@@ -141,7 +141,7 @@
           <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" @click.stop="">···</span>
+              <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>
@@ -195,22 +195,15 @@
           <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" @click.stop="">···</span>
+              <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>
-          <!-- 
-          <el-table-column label="操作" prop="task_cycle">
-            <template slot-scope="scope">
-              <el-button type="primary" size="mini" @click.stop="editRepeatTask(scope.row)">修改</el-button>
-            </template>
-          </el-table-column> 
-          -->
           <template slot="empty">
-						<noData></noData>
+				<noData></noData>
           </template>
         </el-table>
       </div>

+ 284 - 0
src/views/workbench/approval_list.vue

@@ -0,0 +1,284 @@
+<template>
+  <div>
+    <div class="all padding-20">
+      <el-tabs v-model="formData.type" 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="50px"
+      >
+        <el-form-item 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>
+
+      <div v-if="formData.type == 'waiting'">
+        <el-table
+          :data="list"
+          style="cursor: pointer;"
+          v-loading="loading"
+          class="listTable"
+          @row-click="openDetail"
+        >
+          <el-table-column label="审批标题" prop="task_name">
+            <template slot-scope="scope">
+			  <div class="flex-box flex-v-ce">
+				  <userImage   class="fl" width="50px" height="50px"  :user_name="scope.row.employee_name"></userImage>
+				  <div style="margin-left: 5px;">
+					  <span class="tableTitle" v-show="scope.row.source_type == 1" >{{ scope.row.employee_name }}的积分任务</span>
+					  <span class="tableTitle" v-show="scope.row.source_type == 2">{{ scope.row.employee_name }}的积分申请</span>
+					  <span class="tableTitle" v-show="scope.row.source_type == 3">{{ scope.row.employee_name }}的积分录入</span>
+					  <span class="tableTitle" v-show="scope.row.source_type == 4">{{ scope.row.employee_name }}的绩效工作</span>
+				  </div>
+			  </div>
+            </template>
+          </el-table-column>
+          <el-table-column label="审批内容" prop="remark.rule">
+            <template slot-scope="scope">
+              <el-popover trigger="hover" placement="top" popper-class="popperSPBOX">
+                <span>{{
+                  scope.row.remark.customize  ||  scope.row.remark.rule
+                }}</span>
+                <div slot="reference" class="name-wrapper"  style="width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;">
+                  <span>{{
+                  scope.row.remark.customize  ||  scope.row.remark.rule
+                  }}</span>
+                </div>
+              </el-popover>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="时间"
+            prop="event_time"
+            width="150"
+          ></el-table-column>
+          <el-table-column label="操作" prop="owner_id" width="80">
+            <template slot-scope="scope">
+              <el-button type="text">审批</el-button>
+            </template>
+          </el-table-column>
+          <template slot="empty">
+            <div class="nopoint_box">
+              <div class="noimg noperson"></div>
+              <span class="title">没有对应的数据</span>
+            </div>
+          </template>
+        </el-table>
+      </div>
+
+      <div v-if="formData.type == 'reviewed'">
+        <el-table
+          :data="list"
+          style="cursor: pointer;"
+          v-loading="loading"
+          class="listTable"
+          @row-click="openDetail"
+        >
+          <el-table-column label="审批标题" prop="task_name">
+            <template slot-scope="scope">
+				<div class="flex-box flex-v-ce">
+				  <userImage  class="fl"  width="50px" height="50px" :user_name="scope.row.employee_name"></userImage>
+				  <div style="margin-left: 5px;">
+					  <span class="tableTitle" v-show="scope.row.source_type == 1" >{{ scope.row.employee_name }}的积分任务</span>
+					  <span class="tableTitle" v-show="scope.row.source_type == 2">{{ scope.row.employee_name }}的积分申请</span>
+					  <span class="tableTitle" v-show="scope.row.source_type == 3">{{ scope.row.employee_name }}的积分录入</span>
+					  <span class="tableTitle" v-show="scope.row.source_type == 4">{{ scope.row.employee_name }}的绩效工作</span>
+				  </div>
+				 </div>
+            </template>
+          </el-table-column>
+          <el-table-column label="审批内容" prop="remark.rule">
+            <template slot-scope="scope">
+              <el-popover trigger="hover" placement="top" popper-class="popperSPBOX">
+                <span>{{
+                scope.row.remark.customize  ||  scope.row.remark.rule
+                }}</span>
+                <div slot="reference" class="name-wrapper"  style="width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;">
+                  <span>{{
+                   scope.row.remark.customize ||  scope.row.remark.rule
+                  }}</span>
+                </div>
+              </el-popover>
+            </template>
+          </el-table-column>
+          <el-table-column
+            label="时间"
+            prop="event_time"
+            width="150"
+          ></el-table-column>
+          <el-table-column label="积分" prop="review_point" width="120">
+            <template slot-scope="scope">
+              <span v-show="scope.row.review_point < 0" class="red">{{
+                scope.row.review_point
+              }}</span>
+              <span v-show="scope.row.review_point >= 0"
+                >+{{ scope.row.review_point }}</span
+              >
+            </template>
+          </el-table-column>
+          <el-table-column label="状态" prop="status" width="80">
+            <template slot-scope="scope">
+              <span v-show="scope.row.status == 1" class="green"
+                >审批通过</span
+              >
+              <span v-show="scope.row.status == 2" class="red"
+                >审批驳回</span
+              >
+            </template>
+          </el-table-column>
+          <template slot="empty">
+            <div class="nopoint_box">
+              <div class="noimg noperson"></div>
+              <span class="title">没有对应的数据</span>
+            </div>
+          </template>
+        </el-table>
+      </div>
+
+      <center style="padding: 20px 0;">
+        <el-pagination
+          background
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="formData.page"
+          :page-sizes="[10, 20, 30, 40, 50, 100]"
+          layout="total, sizes, prev, pager, next"
+          :page-size="formData.page_size"
+          :total="total"
+        >
+        </el-pagination>
+      </center>
+    </div>
+    <examinePopup
+      :title="'审核详情'"
+      :id="detail_id"
+      :show.sync="detailShow"
+    ></examinePopup>
+  </div>
+</template>
+
+<script>
+import examinePopup from "@/components/examinePopup.vue";
+
+export default {
+  data() {
+    return {
+      formData: {
+        type: "waiting",
+        source_type: "0",
+        pt_id: 0,
+        page_size: 10,
+        page: 1
+      },
+      total: null,
+      list: null,
+      loading: false,
+      point_types: null,
+      tabsOption: [
+        { label: "待我审批", name: "waiting" },
+        { label: "我已审批", name: "reviewed" }
+      ],
+      detailShow: false,
+      detail_id: null
+    };
+  },
+  watch: {
+    "formData.type"() {
+      this.formData.page = 1;
+      this.list = [];
+      this.getSpList();
+    },
+    "formData.pt_id"() {
+      this.list = [];
+      this.formData.page = 1
+      this.getSpList();
+    },
+  },
+  components: { examinePopup },
+  mounted() {
+    this.getSpList();
+    this.point_types = this.getPointTypes();
+  },
+  methods: {
+    openDetail(item) {
+      this.detail_id = item.id;
+      this.detailShow = true;
+    },
+	getTypes(){
+		var arr=this.$getTyps();
+		return arr.filter(function(item){
+			return item.code!='JX'
+		})
+	},
+    // 获取积分类型
+    getPointTypes() {
+      let point = this.getTypes();
+      point.unshift({ code: "all", id: 0, name: "全部" });
+      return point;
+    },
+    // 页码变更
+    handleCurrentChange(val) {
+      this.formData.page = val;
+      this.getSpList();
+    },
+    handleSizeChange(val) {
+      this.formData.page_size = val;
+      this.getSpList();
+    },
+    getSpList() {
+      let self = this;
+      self.loading = true;
+      let params = JSON.parse(JSON.stringify(this.formData));
+      self.$axios('get',"/api/integral/review/list",params).then(res => {
+          if (res.data.code == 1) {
+            self.list = res.data.data.list;
+            self.total = res.data.data.total;
+          }
+        }).finally(e => {
+          self.loading = false;
+        });
+    }
+  }
+};
+</script>
+
+<style  lang="scss">
+.box {
+  min-height: calc(100vh - 140px);
+  width: 100%;
+  background-color: #fff;
+  padding: 20px;
+  & .listTable {
+    & .tableTitle {
+      line-height: 50px;
+      padding-left: 10px;
+    }
+  }
+  & .color_red {
+    color: #f56c6c;
+  }
+  & .color_green {
+    color: #67c23a;
+  }
+}
+.popperSPBOX{
+  max-width: calc(100vh - 400px);
+  background-color: rgb(255, 255, 255);
+}
+</style>

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