|  | @@ -1,213 +1,892 @@
 | 
											
												
													
														|  |  <template>
 |  |  <template>
 | 
											
												
													
														|  | -	<div>
 |  | 
 | 
											
												
													
														|  | -        <el-alert class="diy-tip" title="什么是固定积分?" @close="tips_close" v-if="tips_show" type="success" description show-icon>
 |  | 
 | 
											
												
													
														|  | -          <p>系统按照设定的时间(每月/每周/每日) 自动给员工添加的积分,比如某员工有一个工程师证,得到公司的认可,公司就会每月给他加分</p>
 |  | 
 | 
											
												
													
														|  | -        </el-alert>
 |  | 
 | 
											
												
													
														|  | -		<div class="all">
 |  | 
 | 
											
												
													
														|  | -			<div class="flex-box">
 |  | 
 | 
											
												
													
														|  | -				<div class="terr-left">
 |  | 
 | 
											
												
													
														|  | -					<div><el-button size="medium" @click="add_class" type="primary">+ 添加规则分类</el-button></div>
 |  | 
 | 
											
												
													
														|  | -					<div><el-button size="medium" @click="add_class" type="primary">+ 添加规则分类</el-button></div>
 |  | 
 | 
											
												
													
														|  | -					<el-menu class="rule_name" :unique-opened="true">
 |  | 
 | 
											
												
													
														|  | -					  <el-submenu  :index="index.toString()" v-for="(item,index) in rule_list" :key="index">
 |  | 
 | 
											
												
													
														|  | -						<template slot="title">
 |  | 
 | 
											
												
													
														|  | -						  <i class="el-icon-edit-outline" @click.stop="edit_grouping(item)"></i>
 |  | 
 | 
											
												
													
														|  | -						  <span class="title_top">{{item.name}}</span>
 |  | 
 | 
											
												
													
														|  | -						</template>
 |  | 
 | 
											
												
													
														|  | -						<span :index="i.toString()" v-for="(d,i) in item_list" :key="i" v-show="d[0].rule_id == item.id">
 |  | 
 | 
											
												
													
														|  | -						  <el-menu-item :index="i1.toString()" v-for="(data,i1) in d" :key="i1" @click="open_right(data)">
 |  | 
 | 
											
												
													
														|  | -							<span slot="title">{{data.remark}}</span>
 |  | 
 | 
											
												
													
														|  | -						  </el-menu-item>
 |  | 
 | 
											
												
													
														|  | -						</span>
 |  | 
 | 
											
												
													
														|  | -					  </el-submenu>
 |  | 
 | 
											
												
													
														|  | -					</el-menu>  
 |  | 
 | 
											
												
													
														|  | -				</div>
 |  | 
 | 
											
												
													
														|  | -				<div class="terr-right border-right flex-1">
 |  | 
 | 
											
												
													
														|  | -					<div class="flex-box flex-v-ce">
 |  | 
 | 
											
												
													
														|  | -						<div class="name">你好啊</div>
 |  | 
 | 
											
												
													
														|  | -						<el-button size="small" plain>编辑</el-button>
 |  | 
 | 
											
												
													
														|  | -					</div>
 |  | 
 | 
											
												
													
														|  | -					<div class="flex-box btns flex-v-ce">
 |  | 
 | 
											
												
													
														|  | -						<el-button size="medium"  @click="del_item" type="danger" plain>批量删除</el-button>
 |  | 
 | 
											
												
													
														|  | -						<el-button size="medium" @click="add_rule" type="primary">添加规则</el-button>
 |  | 
 | 
											
												
													
														|  | -						<el-button size="medium"  @click="import_rules_show = true" plain>导入规则</el-button>
 |  | 
 | 
											
												
													
														|  | -					</div>
 |  | 
 | 
											
												
													
														|  | -					<el-table stripe ref="multipleTable" :data="list" tooltip-effect="dark" 
 |  | 
 | 
											
												
													
														|  | -					  @selection-change="handleSelectionChange" @row-click="editDetails">
 |  | 
 | 
											
												
													
														|  | -					  <el-table-column type="selection" width="55">
 |  | 
 | 
											
												
													
														|  | -					  </el-table-column>
 |  | 
 | 
											
												
													
														|  | -					  <el-table-column prop="remark" label="内容" width="500" style="padding-right:30px;"></el-table-column>
 |  | 
 | 
											
												
													
														|  | -					  <el-table-column label="分值">
 |  | 
 | 
											
												
													
														|  | -					    <template slot-scope="scope">
 |  | 
 | 
											
												
													
														|  | -					      <div v-if="scope.row.range_type == 1"><span :class="scope.row.min_point > 0?'color_red':'color_green'"> {{scope.row.min_point}} </span> {{types_list[scope.row.pt_id]}} </div>
 |  | 
 | 
											
												
													
														|  | -					      <div v-if="scope.row.range_type == 2"><span :class="scope.row.min_point > 0?'color_red':'color_green'"> {{scope.row.min_point}} </span> 至 <span :class="scope.row.max_point > 0?'color_red':'color_green'"> {{scope.row.max_point}} </span> {{types_list[scope.row.pt_id]}} </div>
 |  | 
 | 
											
												
													
														|  | -					    </template>
 |  | 
 | 
											
												
													
														|  | -					  </el-table-column>
 |  | 
 | 
											
												
													
														|  | -					</el-table>
 |  | 
 | 
											
												
													
														|  | -				</div>
 |  | 
 | 
											
												
													
														|  | -			</div>
 |  | 
 | 
											
												
													
														|  | -		</div>
 |  | 
 | 
											
												
													
														|  | -	</div>
 |  | 
 | 
											
												
													
														|  | 
 |  | +  <div>
 | 
											
												
													
														|  | 
 |  | +    <el-alert
 | 
											
												
													
														|  | 
 |  | +      class="diy-tip"
 | 
											
												
													
														|  | 
 |  | +      title="什么是固定积分?"
 | 
											
												
													
														|  | 
 |  | +      @close="tips_close"
 | 
											
												
													
														|  | 
 |  | +      v-if="tips_show"
 | 
											
												
													
														|  | 
 |  | +      type="success"
 | 
											
												
													
														|  | 
 |  | +      description
 | 
											
												
													
														|  | 
 |  | +      show-icon
 | 
											
												
													
														|  | 
 |  | +    >
 | 
											
												
													
														|  | 
 |  | +      <p>系统按照设定的时间(每月/每周/每日) 自动给员工添加的积分,比如某员工有一个工程师证,得到公司的认可,公司就会每月给他加分</p>
 | 
											
												
													
														|  | 
 |  | +    </el-alert>
 | 
											
												
													
														|  | 
 |  | +    <div class="all">
 | 
											
												
													
														|  | 
 |  | +      <div class="flex-box">
 | 
											
												
													
														|  | 
 |  | +        <div class="terr-left">
 | 
											
												
													
														|  | 
 |  | +          <div>
 | 
											
												
													
														|  | 
 |  | +            <el-button size="medium" @click="add_grouping()" plain>新增加分组</el-button>
 | 
											
												
													
														|  | 
 |  | +          </div>
 | 
											
												
													
														|  | 
 |  | +          <div>
 | 
											
												
													
														|  | 
 |  | +            <el-button size="medium" @click="add_rules_detail" plain>新增加分项</el-button>
 | 
											
												
													
														|  | 
 |  | +          </div>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +          <!-- 循环分组 -->
 | 
											
												
													
														|  | 
 |  | +          <el-col :span="24" style="padding-right: 0;" v-loading="rule_trees_load">
 | 
											
												
													
														|  | 
 |  | +            <el-menu class="rule_name" :unique-opened="true">
 | 
											
												
													
														|  | 
 |  | +              <el-submenu :index="index.toString()" v-for="(item,index) in rule_list" :key="index">
 | 
											
												
													
														|  | 
 |  | +                <template slot="title">
 | 
											
												
													
														|  | 
 |  | +                  <i class="el-icon-edit-outline title_top" @click.stop="edit_grouping(item)"></i>
 | 
											
												
													
														|  | 
 |  | +                  <span class="title_top">{{item.name}}</span>
 | 
											
												
													
														|  | 
 |  | +                </template>
 | 
											
												
													
														|  | 
 |  | +                <span
 | 
											
												
													
														|  | 
 |  | +                  :index="i.toString()"
 | 
											
												
													
														|  | 
 |  | +                  v-for="(d,i) in item_list"
 | 
											
												
													
														|  | 
 |  | +                  :key="i"
 | 
											
												
													
														|  | 
 |  | +                  v-show="d[0].rule_id == item.id"
 | 
											
												
													
														|  | 
 |  | +                >
 | 
											
												
													
														|  | 
 |  | +                  <el-menu-item
 | 
											
												
													
														|  | 
 |  | +                    :index="i1.toString()"
 | 
											
												
													
														|  | 
 |  | +                    v-for="(data,i1) in d"
 | 
											
												
													
														|  | 
 |  | +                    :key="i1"
 | 
											
												
													
														|  | 
 |  | +                    @click="open_right(data)"
 | 
											
												
													
														|  | 
 |  | +                  >
 | 
											
												
													
														|  | 
 |  | +                    <span slot="title">{{data.remark}}</span>
 | 
											
												
													
														|  | 
 |  | +                  </el-menu-item>
 | 
											
												
													
														|  | 
 |  | +                </span>
 | 
											
												
													
														|  | 
 |  | +                <!-- <el-menu-item :index="i.toString()" v-for="(data,i) in item.data" :key="i" @click="open_right(data)" >{{data.name}}</el-menu-item> -->
 | 
											
												
													
														|  | 
 |  | +              </el-submenu>
 | 
											
												
													
														|  | 
 |  | +            </el-menu>
 | 
											
												
													
														|  | 
 |  | +          </el-col>
 | 
											
												
													
														|  | 
 |  | +        </div>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +        <div class="terr-right border-right flex-1" v-loading="table_loading">
 | 
											
												
													
														|  | 
 |  | +          <!-- <div class="flex-box flex-v-ce">
 | 
											
												
													
														|  | 
 |  | +            <div class="name">{{item_info.remark}}</div>
 | 
											
												
													
														|  | 
 |  | +            <el-button size="small" plain  @click="edit_rules()">编辑</el-button>
 | 
											
												
													
														|  | 
 |  | +          </div> -->
 | 
											
												
													
														|  | 
 |  | +		  	<el-row> 
 | 
											
												
													
														|  | 
 |  | +              <el-col :span="24" style="font-size:20px;color:#303133;line-height:36px;">
 | 
											
												
													
														|  | 
 |  | +               {{right_rules_detail.remark}} <span style="padding-left: 10px;">{{right_rules_detail.min_point}}B分</span>
 | 
											
												
													
														|  | 
 |  | +                <el-button plain style="padding:10px 12px; margin-left: 10px;" @click="edit_rules(item_info)">编辑</el-button>
 | 
											
												
													
														|  | 
 |  | +              </el-col>
 | 
											
												
													
														|  | 
 |  | +            </el-row>
 | 
											
												
													
														|  | 
 |  | +          <div class="flex-box btns flex-v-ce">
 | 
											
												
													
														|  | 
 |  | +            <el-button size="medium" @click="del_item" type="danger" plain>批量移除</el-button>
 | 
											
												
													
														|  | 
 |  | +            <el-button type="primary" @click="add_employee_show= true">添加人员</el-button>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +            <!-- <el-select v-model="select_employee_id" clearable placeholder="请选择人员">
 | 
											
												
													
														|  | 
 |  | +              <el-option v-for="item in employee_map" :key="item.id" :label="item.name" :value="item.id"></el-option>
 | 
											
												
													
														|  | 
 |  | +            </el-select> -->
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +          </div>
 | 
											
												
													
														|  | 
 |  | +          <!-- <el-table
 | 
											
												
													
														|  | 
 |  | +            stripe
 | 
											
												
													
														|  | 
 |  | +            ref="multipleTable"
 | 
											
												
													
														|  | 
 |  | +            :data="table_list"
 | 
											
												
													
														|  | 
 |  | +            tooltip-effect="dark"
 | 
											
												
													
														|  | 
 |  | +            @selection-change="handleSelectionChange"
 | 
											
												
													
														|  | 
 |  | +            @row-click="editDetails"
 | 
											
												
													
														|  | 
 |  | +          >
 | 
											
												
													
														|  | 
 |  | +            <el-table-column type="selection" width="55"></el-table-column>
 | 
											
												
													
														|  | 
 |  | +            <el-table-column prop="remark" label="姓名" width="500" style="padding-right:30px;"></el-table-column>
 | 
											
												
													
														|  | 
 |  | +            <el-table-column label="加分周期">
 | 
											
												
													
														|  | 
 |  | +              <template slot-scope="scope">
 | 
											
												
													
														|  | 
 |  | +                <div v-if="scope.row.range_type == 1">
 | 
											
												
													
														|  | 
 |  | +                  <span
 | 
											
												
													
														|  | 
 |  | +                    :class="scope.row.min_point > 0?'color_red':'color_green'"
 | 
											
												
													
														|  | 
 |  | +                  >{{scope.row.min_point}}</span>
 | 
											
												
													
														|  | 
 |  | +                  {{types_list[scope.row.pt_id]}}
 | 
											
												
													
														|  | 
 |  | +                </div>
 | 
											
												
													
														|  | 
 |  | +                <div v-if="scope.row.range_type == 2">
 | 
											
												
													
														|  | 
 |  | +                  <span
 | 
											
												
													
														|  | 
 |  | +                    :class="scope.row.min_point > 0?'color_red':'color_green'"
 | 
											
												
													
														|  | 
 |  | +                  >{{scope.row.min_point}}</span> 至
 | 
											
												
													
														|  | 
 |  | +                  <span
 | 
											
												
													
														|  | 
 |  | +                    :class="scope.row.max_point > 0?'color_red':'color_green'"
 | 
											
												
													
														|  | 
 |  | +                  >{{scope.row.max_point}}</span>
 | 
											
												
													
														|  | 
 |  | +                  {{types_list[scope.row.pt_id]}}
 | 
											
												
													
														|  | 
 |  | +                </div>
 | 
											
												
													
														|  | 
 |  | +              </template>
 | 
											
												
													
														|  | 
 |  | +            </el-table-column>
 | 
											
												
													
														|  | 
 |  | +          </el-table> -->
 | 
											
												
													
														|  | 
 |  | +          <el-table ref="multipleTable" :data="table_list" v-loading="table_loading" tooltip-effect="dark" style="width: 100%;margin-top:20px;"
 | 
											
												
													
														|  | 
 |  | +              @selection-change="handleSelectionChange" >
 | 
											
												
													
														|  | 
 |  | +              <el-table-column type="selection" width="45"></el-table-column>
 | 
											
												
													
														|  | 
 |  | +              <el-table-column label="姓名">
 | 
											
												
													
														|  | 
 |  | +                <template slot-scope="scope">
 | 
											
												
													
														|  | 
 |  | +                  <div  style="display:flex">
 | 
											
												
													
														|  | 
 |  | +                  <span class="fl">
 | 
											
												
													
														|  | 
 |  | +                    <userImage :id="scope.row.employee_id" width="50px" height="50px" :user_name="scope.row.employee.name" :img_url="scope.row.employee.img_url" v-if="scope.row.employee"></userImage>
 | 
											
												
													
														|  | 
 |  | +                  </span>
 | 
											
												
													
														|  | 
 |  | +                  <span style="margin-left: 10px; line-height: 50px; display: inline-block" v-if="scope.row.employee">{{scope.row.employee.name}}</span>
 | 
											
												
													
														|  | 
 |  | +                </div></template>
 | 
											
												
													
														|  | 
 |  | +              </el-table-column>
 | 
											
												
													
														|  | 
 |  | +              <el-table-column prop="cycle_remark" label="加分周期"></el-table-column>
 | 
											
												
													
														|  | 
 |  | +            </el-table>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +          <!-- 分页 -->
 | 
											
												
													
														|  | 
 |  | +            <div style=" text-align: center; padding: 20px;">
 | 
											
												
													
														|  | 
 |  | +              <el-pagination background layout="total, prev, pager, next" :current-page="page+1" @current-change="handleCurrentChange"
 | 
											
												
													
														|  | 
 |  | +                :total="total">
 | 
											
												
													
														|  | 
 |  | +              </el-pagination>
 | 
											
												
													
														|  | 
 |  | +            </div>
 | 
											
												
													
														|  | 
 |  | +        </div>
 | 
											
												
													
														|  | 
 |  | +      </div>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +      <!-- 可写公共组建: -->
 | 
											
												
													
														|  | 
 |  | +      <!-- 新增加分组弹出框 -->
 | 
											
												
													
														|  | 
 |  | +      <el-dialog
 | 
											
												
													
														|  | 
 |  | +        :close-on-click-modal="false"
 | 
											
												
													
														|  | 
 |  | +        :title="grouping_type?'编辑分类':'新增分类'"
 | 
											
												
													
														|  | 
 |  | +        :visible.sync="dialogVisible"
 | 
											
												
													
														|  | 
 |  | +        width="40%"
 | 
											
												
													
														|  | 
 |  | +      >
 | 
											
												
													
														|  | 
 |  | +        <el-form
 | 
											
												
													
														|  | 
 |  | +          :model="numberValidateForm"
 | 
											
												
													
														|  | 
 |  | +          ref="numberValidateForm"
 | 
											
												
													
														|  | 
 |  | +          label-width="100px"
 | 
											
												
													
														|  | 
 |  | +          class="demo-ruleForm"
 | 
											
												
													
														|  | 
 |  | +        >
 | 
											
												
													
														|  | 
 |  | +          <el-form-item
 | 
											
												
													
														|  | 
 |  | +            label="分组名称"
 | 
											
												
													
														|  | 
 |  | +            prop="name"
 | 
											
												
													
														|  | 
 |  | +            :rules="[
 | 
											
												
													
														|  | 
 |  | +						{ required: true, message: '请输入分组名称'},
 | 
											
												
													
														|  | 
 |  | +						]"
 | 
											
												
													
														|  | 
 |  | +          >
 | 
											
												
													
														|  | 
 |  | +            <el-input
 | 
											
												
													
														|  | 
 |  | +              type="age"
 | 
											
												
													
														|  | 
 |  | +              v-model="numberValidateForm.name"
 | 
											
												
													
														|  | 
 |  | +              autocomplete="off"
 | 
											
												
													
														|  | 
 |  | +              placeholder="请输入分组名称"
 | 
											
												
													
														|  | 
 |  | +            ></el-input>
 | 
											
												
													
														|  | 
 |  | +          </el-form-item>
 | 
											
												
													
														|  | 
 |  | +        </el-form>
 | 
											
												
													
														|  | 
 |  | +        <span slot="footer" class="dialog-footer" style=" overflow: hidden;">
 | 
											
												
													
														|  | 
 |  | +          <el-button
 | 
											
												
													
														|  | 
 |  | +            class="fl"
 | 
											
												
													
														|  | 
 |  | +            type="danger"
 | 
											
												
													
														|  | 
 |  | +            v-show="grouping_type"
 | 
											
												
													
														|  | 
 |  | +            @click="del_grouping(numberValidateForm)"
 | 
											
												
													
														|  | 
 |  | +            style="float:left"
 | 
											
												
													
														|  | 
 |  | +            :disabled="disabled"
 | 
											
												
													
														|  | 
 |  | +          >删除</el-button>
 | 
											
												
													
														|  | 
 |  | +          <el-button
 | 
											
												
													
														|  | 
 |  | +            type="primary"
 | 
											
												
													
														|  | 
 |  | +            @click="submitForm('numberValidateForm')"
 | 
											
												
													
														|  | 
 |  | +            :disabled="disabled"
 | 
											
												
													
														|  | 
 |  | +          >确 定</el-button>
 | 
											
												
													
														|  | 
 |  | +          <el-button @click="dialogVisible = false">取 消</el-button>
 | 
											
												
													
														|  | 
 |  | +        </span>
 | 
											
												
													
														|  | 
 |  | +      </el-dialog>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +      <!-- 新增加分项 -->
 | 
											
												
													
														|  | 
 |  | +      <el-dialog :title="rules_detail_title?'编辑规则':'新增规则'" :visible.sync="dialogFormVisible" width="500px">
 | 
											
												
													
														|  | 
 |  | +        <el-form :model="rules_detail_form" ref="rules_detail_form" :rules="rules_rules" label-width="120px">
 | 
											
												
													
														|  | 
 |  | +          <el-form-item label="规则名称" :label-width="formLabelWidth" prop="remark" :rules="[{ required: true, message: '请输入规则名称'},]">
 | 
											
												
													
														|  | 
 |  | +            <el-input v-model="rules_detail_form.remark" placeholder="请输入规则名称" autocomplete="off"></el-input>
 | 
											
												
													
														|  | 
 |  | +          </el-form-item>
 | 
											
												
													
														|  | 
 |  | +          <el-form-item label="分类" :label-width="formLabelWidth" prop="rule_id" :rules="[{ required: true, message: '请选择分类'},]">
 | 
											
												
													
														|  | 
 |  | +            <el-select v-model="rules_detail_form.rule_id" style="width: 100%;" placeholder="请选择分类">
 | 
											
												
													
														|  | 
 |  | +            	<el-option v-for="item in rule_list" :key="item.value" :label="item.name" :value="item.id">
 | 
											
												
													
														|  | 
 |  | +            	</el-option>
 | 
											
												
													
														|  | 
 |  | +            </el-select>
 | 
											
												
													
														|  | 
 |  | +          </el-form-item>
 | 
											
												
													
														|  | 
 |  | +          <el-form-item label="积分" prop="min_point" :rules="[{ required: true, message: '请输入积分'},]">
 | 
											
												
													
														|  | 
 |  | +            <el-input v-model="rules_detail_form.min_point" placeholder="请输入积分" oninput="if(this.value=='0'){this.value='';}else{this.value=this.value.replace(/[^0-9]/g,'')}"></el-input>
 | 
											
												
													
														|  | 
 |  | +            <span
 | 
											
												
													
														|  | 
 |  | +              data-v-a17f1960=""
 | 
											
												
													
														|  | 
 |  | +              style="display: block; font-size: 12px; color: rgb(96, 98, 102);text-align: left;"
 | 
											
												
													
														|  | 
 |  | +            >固定加分加B分</span>
 | 
											
												
													
														|  | 
 |  | +          </el-form-item>
 | 
											
												
													
														|  | 
 |  | +          <el-form-item label="是否与考勤挂钩" prop="is_attendance">
 | 
											
												
													
														|  | 
 |  | +            <el-switch v-model="is_attendance"></el-switch>
 | 
											
												
													
														|  | 
 |  | +          </el-form-item>
 | 
											
												
													
														|  | 
 |  | +          <div style="overflow: hidden;">
 | 
											
												
													
														|  | 
 |  | +            <el-button
 | 
											
												
													
														|  | 
 |  | +              type="danger"
 | 
											
												
													
														|  | 
 |  | +              v-show="rules_detail_title"
 | 
											
												
													
														|  | 
 |  | +              class="fl"
 | 
											
												
													
														|  | 
 |  | +              @click="del_rules_detail(rules_detail_form)"
 | 
											
												
													
														|  | 
 |  | +			   style="float:left"
 | 
											
												
													
														|  | 
 |  | +			   :disabled="disabled"
 | 
											
												
													
														|  | 
 |  | +            >删除</el-button>
 | 
											
												
													
														|  | 
 |  | +            <el-button class="fr" type="primary" @click="next('rules_detail_form') " style="float:right" :disabled="disabled">确 定</el-button>
 | 
											
												
													
														|  | 
 |  | +            <el-button class="fr" @click="rules_detail_close('rules_detail_form')" style="float:right">取 消</el-button>
 | 
											
												
													
														|  | 
 |  | +          </div>
 | 
											
												
													
														|  | 
 |  | +        </el-form>
 | 
											
												
													
														|  | 
 |  | +      </el-dialog>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +      <el-dialog title="添加人员" :visible.sync="add_employee_show"  :before-close="add_employee_close"
 | 
											
												
													
														|  | 
 |  | +      width="700px">
 | 
											
												
													
														|  | 
 |  | +        <el-form :model="add_employee_form" ref="add_employee_form" label-width="80px">
 | 
											
												
													
														|  | 
 |  | +          <el-form-item label="加分周期" :rules="[{ required: true, message: '请选择加分周期', trigger: 'change' }]">
 | 
											
												
													
														|  | 
 |  | +            <el-select v-model="task_cycle_name" placeholder="请选择加分周期">
 | 
											
												
													
														|  | 
 |  | +              <el-option v-for="item in task_cycle" :key="item.value" :label="item.name" :value="item.value">
 | 
											
												
													
														|  | 
 |  | +              </el-option>
 | 
											
												
													
														|  | 
 |  | +            </el-select>
 | 
											
												
													
														|  | 
 |  | +          </el-form-item>
 | 
											
												
													
														|  | 
 |  | +          <div>
 | 
											
												
													
														|  | 
 |  | +            <EmployeeSelector1 :max='add_employee_max' :can_select_dept="false" :visible.sync="add_employee_visible" @confirm="add_employee_confirm" ref="Employee"></EmployeeSelector1>
 | 
											
												
													
														|  | 
 |  | +          </div>
 | 
											
												
													
														|  | 
 |  | +          <el-form-item style="text-align: right; margin-bottom: 0;margin-top: 20px;">
 | 
											
												
													
														|  | 
 |  | +            <el-button @click="add_employee_close()">取消</el-button>
 | 
											
												
													
														|  | 
 |  | +            <el-button type="primary" @click="sub_add_employee('add_employee_form')" 
 | 
											
												
													
														|  | 
 |  | +            :disabled="disabled">完成</el-button>
 | 
											
												
													
														|  | 
 |  | +          </el-form-item>
 | 
											
												
													
														|  | 
 |  | +        </el-form>
 | 
											
												
													
														|  | 
 |  | +      </el-dialog>
 | 
											
												
													
														|  | 
 |  | +    </div>
 | 
											
												
													
														|  | 
 |  | +  </div>
 | 
											
												
													
														|  |  </template>
 |  |  </template>
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |  <script>
 |  |  <script>
 | 
											
												
													
														|  | 
 |  | +import EmployeeSelector1 from "@/components/EmployeeSelector"
 | 
											
												
													
														|  |  export default {
 |  |  export default {
 | 
											
												
													
														|  | -	data() {
 |  | 
 | 
											
												
													
														|  | -		return {
 |  | 
 | 
											
												
													
														|  | -			rule_list: [{ name: '阿萨德' }, { name: '阿萨德' }, { name: '阿萨德' }, { name: '阿萨德' }],
 |  | 
 | 
											
												
													
														|  | -			table_list: [],
 |  | 
 | 
											
												
													
														|  | -			tips_show: false,
 |  | 
 | 
											
												
													
														|  | -			role_loading: false,
 |  | 
 | 
											
												
													
														|  | -			item_info: {}
 |  | 
 | 
											
												
													
														|  | -		};
 |  | 
 | 
											
												
													
														|  | -	},
 |  | 
 | 
											
												
													
														|  | -	created() {},
 |  | 
 | 
											
												
													
														|  | -	mounted() {
 |  | 
 | 
											
												
													
														|  | -		if (localStorage.getItem('framework')) {
 |  | 
 | 
											
												
													
														|  | -			this.tips_show = false;
 |  | 
 | 
											
												
													
														|  | -		} else {
 |  | 
 | 
											
												
													
														|  | -			this.tips_show = true;
 |  | 
 | 
											
												
													
														|  | -		}
 |  | 
 | 
											
												
													
														|  | -	},
 |  | 
 | 
											
												
													
														|  | -	methods: {
 |  | 
 | 
											
												
													
														|  | -		del_item() {},
 |  | 
 | 
											
												
													
														|  | -		add_item() {},
 |  | 
 | 
											
												
													
														|  | -		// 关闭提示语
 |  | 
 | 
											
												
													
														|  | -		tips_close() {
 |  | 
 | 
											
												
													
														|  | -			localStorage.setItem('framework', 'true');
 |  | 
 | 
											
												
													
														|  | -			this.tips_show = false;
 |  | 
 | 
											
												
													
														|  | -		},
 |  | 
 | 
											
												
													
														|  | -		get_role_list() {
 |  | 
 | 
											
												
													
														|  | -			let self = this;
 |  | 
 | 
											
												
													
														|  | -			self.role_loading = true;
 |  | 
 | 
											
												
													
														|  | -			self.$axios
 |  | 
 | 
											
												
													
														|  | -				.get('/api/role/list')
 |  | 
 | 
											
												
													
														|  | -				.then(res => {
 |  | 
 | 
											
												
													
														|  | -					if (res.data.code == 1) {
 |  | 
 | 
											
												
													
														|  | -						this.role_list = res.data.data.list;
 |  | 
 | 
											
												
													
														|  | -						this.open_right(this.role_list[0]);
 |  | 
 | 
											
												
													
														|  | -					} else {
 |  | 
 | 
											
												
													
														|  | -						self.$message.error(res.data.msg);
 |  | 
 | 
											
												
													
														|  | -					}
 |  | 
 | 
											
												
													
														|  | -				})
 |  | 
 | 
											
												
													
														|  | -				.finally(() => {
 |  | 
 | 
											
												
													
														|  | -					self.role_loading = false;
 |  | 
 | 
											
												
													
														|  | -				});
 |  | 
 | 
											
												
													
														|  | -		},
 |  | 
 | 
											
												
													
														|  | -		open_right(data) {
 |  | 
 | 
											
												
													
														|  | -			this.item_info = data;
 |  | 
 | 
											
												
													
														|  | -			this.get_table_list();
 |  | 
 | 
											
												
													
														|  | -		},
 |  | 
 | 
											
												
													
														|  | -		get_table_list() {
 |  | 
 | 
											
												
													
														|  | -			let self = this;
 |  | 
 | 
											
												
													
														|  | -			self.table_loading = true;
 |  | 
 | 
											
												
													
														|  | -			self.$http
 |  | 
 | 
											
												
													
														|  | -				.get('/api/role/user', { params: { role_id: self.item_info.id } })
 |  | 
 | 
											
												
													
														|  | -				.then(res => {
 |  | 
 | 
											
												
													
														|  | -					if (res.data.code == 1) {
 |  | 
 | 
											
												
													
														|  | -						let point_types = self.$store.getters.point_types;
 |  | 
 | 
											
												
													
														|  | -						let point_type_map = {};
 |  | 
 | 
											
												
													
														|  | -						for (let i in point_types) {
 |  | 
 | 
											
												
													
														|  | -							point_type_map[point_types[i].id] = point_types[i];
 |  | 
 | 
											
												
													
														|  | -						}
 |  | 
 | 
											
												
													
														|  | -						let data = res.data.data.list;
 |  | 
 | 
											
												
													
														|  | -						// 处理添加人员的组件选中问题
 |  | 
 | 
											
												
													
														|  | -						this.rules_employee_arr.employee = [];
 |  | 
 | 
											
												
													
														|  | -						for (let i in data) {
 |  | 
 | 
											
												
													
														|  | -							this.rules_employee_arr.employee.push({ id: data[i].id, img_url: data[i].img_url, name: data[i].name });
 |  | 
 | 
											
												
													
														|  | -							if (data[i].point_limit !== null && data[i].point_limit.length == 0) {
 |  | 
 | 
											
												
													
														|  | -								data[i].point_limit = [{ name: 'A分', point: 0, pt_id: 2 }, { name: 'B分', point: 0, pt_id: 3 }];
 |  | 
 | 
											
												
													
														|  | -							}
 |  | 
 | 
											
												
													
														|  | -							if (data[i].deduct_task_monthly !== null && data[i].deduct_task_monthly.length == 0) {
 |  | 
 | 
											
												
													
														|  | -								data[i].deduct_task_monthly = [{ name: 'A分', point: 0, pt_id: 2 }, { name: 'B分', point: 0, pt_id: 3 }];
 |  | 
 | 
											
												
													
														|  | -							}
 |  | 
 | 
											
												
													
														|  | -							if (data[i].reward_task_monthly !== null && data[i].reward_task_monthly.length == 0) {
 |  | 
 | 
											
												
													
														|  | -								data[i].reward_task_monthly = [{ name: 'A分', point: 0, pt_id: 2 }, { name: 'B分', point: 0, pt_id: 3 }];
 |  | 
 | 
											
												
													
														|  | -							}
 |  | 
 | 
											
												
													
														|  | -							if (!data[i]['point_limit_obj']) {
 |  | 
 | 
											
												
													
														|  | -								data[i]['point_limit_obj'] = {};
 |  | 
 | 
											
												
													
														|  | -							}
 |  | 
 | 
											
												
													
														|  | -							for (let k in data[i].point_limit) {
 |  | 
 | 
											
												
													
														|  | -								data[i]['point_limit_obj'][point_type_map[data[i].point_limit[k].pt_id].code] = data[i].point_limit[k].point;
 |  | 
 | 
											
												
													
														|  | -							}
 |  | 
 | 
											
												
													
														|  | -						}
 |  | 
 | 
											
												
													
														|  | -						this.table_list = data;
 |  | 
 | 
											
												
													
														|  | -					} else {
 |  | 
 | 
											
												
													
														|  | -						self.$message.error(res.data.msg);
 |  | 
 | 
											
												
													
														|  | -					}
 |  | 
 | 
											
												
													
														|  | -				})
 |  | 
 | 
											
												
													
														|  | -				.finally(() => {
 |  | 
 | 
											
												
													
														|  | -					self.table_loading = false;
 |  | 
 | 
											
												
													
														|  | -				});
 |  | 
 | 
											
												
													
														|  | -		}
 |  | 
 | 
											
												
													
														|  | -	}
 |  | 
 | 
											
												
													
														|  | -};
 |  | 
 | 
											
												
													
														|  | -</script>
 |  | 
 | 
											
												
													
														|  | 
 |  | +  data() {
 | 
											
												
													
														|  | 
 |  | +    return {
 | 
											
												
													
														|  | 
 |  | +      table_list: [],
 | 
											
												
													
														|  | 
 |  | +      tips_show: false,
 | 
											
												
													
														|  | 
 |  | +      item_info: {},
 | 
											
												
													
														|  | 
 |  | +      rule_trees_load: false,
 | 
											
												
													
														|  | 
 |  | +      dialogVisible: false,
 | 
											
												
													
														|  | 
 |  | +      
 | 
											
												
													
														|  | 
 |  | +      rules_detail_show: false,//是否弹出添加人员弹窗
 | 
											
												
													
														|  | 
 |  | +      add_employee_visible: false,
 | 
											
												
													
														|  | 
 |  | +        add_employee_max: 0,
 | 
											
												
													
														|  | 
 |  | +        add_employee_show: false,
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -<style scoped="scoped" lang="scss">
 |  | 
 | 
											
												
													
														|  | -      .rule_name {
 |  | 
 | 
											
												
													
														|  | -        border-right: 0;
 |  | 
 | 
											
												
													
														|  | -        margin-top:16px;
 |  | 
 | 
											
												
													
														|  | -        li {
 |  | 
 | 
											
												
													
														|  | -          // margin-right:20px !important;
 |  | 
 | 
											
												
													
														|  | -          border-bottom:1px #f8f8f8 solid;
 |  | 
 | 
											
												
													
														|  | -          overflow: hidden;
 |  | 
 | 
											
												
													
														|  | -          white-space: nowrap;
 |  | 
 | 
											
												
													
														|  | -          text-overflow: ellipsis;
 |  | 
 | 
											
												
													
														|  | -          ::v-deep .el-submenu__title {
 |  | 
 | 
											
												
													
														|  | -            padding:0 10px !important;
 |  | 
 | 
											
												
													
														|  | -            i.el-submenu__icon-arrow.el-icon-arrow-down{
 |  | 
 | 
											
												
													
														|  | -              color: #909399 !important;
 |  | 
 | 
											
												
													
														|  | 
 |  | +        
 | 
											
												
													
														|  | 
 |  | +        task_cycle_name: 1,
 | 
											
												
													
														|  | 
 |  | +        add_employee_form: {
 | 
											
												
													
														|  | 
 |  | +          employee_ids: []
 | 
											
												
													
														|  | 
 |  | +        },
 | 
											
												
													
														|  | 
 |  | +        
 | 
											
												
													
														|  | 
 |  | +        del_arr: {
 | 
											
												
													
														|  | 
 |  | +          ids: []
 | 
											
												
													
														|  | 
 |  | +        },
 | 
											
												
													
														|  | 
 |  | +        page: 0,
 | 
											
												
													
														|  | 
 |  | +        total: 0,
 | 
											
												
													
														|  | 
 |  | +        table_loading: false,
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +      dialogFormVisible: false,
 | 
											
												
													
														|  | 
 |  | +      form: {
 | 
											
												
													
														|  | 
 |  | +        name: "",
 | 
											
												
													
														|  | 
 |  | +        region: "",
 | 
											
												
													
														|  | 
 |  | +        date1: "",
 | 
											
												
													
														|  | 
 |  | +        date2: "",
 | 
											
												
													
														|  | 
 |  | +        delivery: false,
 | 
											
												
													
														|  | 
 |  | +        type: [],
 | 
											
												
													
														|  | 
 |  | +        resource: "",
 | 
											
												
													
														|  | 
 |  | +        desc: "",
 | 
											
												
													
														|  | 
 |  | +      },
 | 
											
												
													
														|  | 
 |  | +      formLabelWidth: "120px",
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +      numberValidateForm: {
 | 
											
												
													
														|  | 
 |  | +        name: "",
 | 
											
												
													
														|  | 
 |  | +      },
 | 
											
												
													
														|  | 
 |  | +      disabled: false, //按钮不能被多次点击
 | 
											
												
													
														|  | 
 |  | +      grouping_type: "",
 | 
											
												
													
														|  | 
 |  | +      rules_detail_title: "",
 | 
											
												
													
														|  | 
 |  | +      rule_list: [], //分类集合
 | 
											
												
													
														|  | 
 |  | +	    item_list: [], //规则集合
 | 
											
												
													
														|  | 
 |  | +	  
 | 
											
												
													
														|  | 
 |  | +		  right_rules_detail: {},
 | 
											
												
													
														|  | 
 |  | +		
 | 
											
												
													
														|  | 
 |  | +      add_employee_id: '',
 | 
											
												
													
														|  | 
 |  | +      add_employee_id: '',
 | 
											
												
													
														|  | 
 |  | +      rules_detail_form: {
 | 
											
												
													
														|  | 
 |  | +        rule_id: "",
 | 
											
												
													
														|  | 
 |  | +        range_type: "1",
 | 
											
												
													
														|  | 
 |  | +        prize_type: "0",
 | 
											
												
													
														|  | 
 |  | +        min_point: "",
 | 
											
												
													
														|  | 
 |  | +        remark: "",
 | 
											
												
													
														|  | 
 |  | +        is_attendance: "0",
 | 
											
												
													
														|  | 
 |  | +        cycle_type: "2",
 | 
											
												
													
														|  | 
 |  | +        pt_id: "3",
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +    is_attendance:false,
 | 
											
												
													
														|  | 
 |  | +	  rules_rules: {
 | 
											
												
													
														|  | 
 |  | +          remark: [{
 | 
											
												
													
														|  | 
 |  | +              required: true,
 | 
											
												
													
														|  | 
 |  | +              message: '请输入规则名称',
 | 
											
												
													
														|  | 
 |  | +              trigger: 'blur'
 | 
											
												
													
														|  | 
 |  | +            },
 | 
											
												
													
														|  | 
 |  | +            {
 | 
											
												
													
														|  | 
 |  | +              max: 100,
 | 
											
												
													
														|  | 
 |  | +              message: '分类名称不能大于100个字符',
 | 
											
												
													
														|  | 
 |  | +              trigger: 'blur'
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +          ],
 | 
											
												
													
														|  | 
 |  | +          min_point: [{
 | 
											
												
													
														|  | 
 |  | +              required: true,
 | 
											
												
													
														|  | 
 |  | +              message: '请输入积分',
 | 
											
												
													
														|  | 
 |  | +              trigger: 'blur'
 | 
											
												
													
														|  | 
 |  | +            },
 | 
											
												
													
														|  | 
 |  | +          ],
 | 
											
												
													
														|  | 
 |  | +          rule_id: [{
 | 
											
												
													
														|  | 
 |  | +            required: true,
 | 
											
												
													
														|  | 
 |  | +            message: '请选择分类',
 | 
											
												
													
														|  | 
 |  | +            trigger: 'blur'
 | 
											
												
													
														|  | 
 |  | +          }],
 | 
											
												
													
														|  | 
 |  | +        },
 | 
											
												
													
														|  | 
 |  | +        task_cycle: [{
 | 
											
												
													
														|  | 
 |  | +            name: '每天自动加分',
 | 
											
												
													
														|  | 
 |  | +            value: 1
 | 
											
												
													
														|  | 
 |  | +          },
 | 
											
												
													
														|  | 
 |  | +          {
 | 
											
												
													
														|  | 
 |  | +            name: '每周自动加分',
 | 
											
												
													
														|  | 
 |  | +            value: 2
 | 
											
												
													
														|  | 
 |  | +          },
 | 
											
												
													
														|  | 
 |  | +          {
 | 
											
												
													
														|  | 
 |  | +            name: '每月自动加分',
 | 
											
												
													
														|  | 
 |  | +            value: 3
 | 
											
												
													
														|  | 
 |  | +          },
 | 
											
												
													
														|  | 
 |  | +        ],
 | 
											
												
													
														|  | 
 |  | +    };
 | 
											
												
													
														|  | 
 |  | +  },
 | 
											
												
													
														|  | 
 |  | +  components: {
 | 
											
												
													
														|  | 
 |  | +    EmployeeSelector1
 | 
											
												
													
														|  | 
 |  | +  },
 | 
											
												
													
														|  | 
 |  | +  created() {},
 | 
											
												
													
														|  | 
 |  | +  mounted() {
 | 
											
												
													
														|  | 
 |  | +    if (localStorage.getItem("framework")) {
 | 
											
												
													
														|  | 
 |  | +      this.tips_show = false;
 | 
											
												
													
														|  | 
 |  | +    } else {
 | 
											
												
													
														|  | 
 |  | +      this.tips_show = true;
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +    this.get_role_lists();
 | 
											
												
													
														|  | 
 |  | +  },
 | 
											
												
													
														|  | 
 |  | +  methods: {
 | 
											
												
													
														|  | 
 |  | +    
 | 
											
												
													
														|  | 
 |  | +      handleCurrentChange(val) {
 | 
											
												
													
														|  | 
 |  | +        this.page = val-1
 | 
											
												
													
														|  | 
 |  | +        this.open_right();
 | 
											
												
													
														|  | 
 |  | +			},
 | 
											
												
													
														|  | 
 |  | +    // 组建
 | 
											
												
													
														|  | 
 |  | +      add_employee_confirm(val) {
 | 
											
												
													
														|  | 
 |  | +        this.add_employee_form.employee_ids = []
 | 
											
												
													
														|  | 
 |  | +        if (val.employee.length !== 0) {
 | 
											
												
													
														|  | 
 |  | +          val.employee.forEach(element => {
 | 
											
												
													
														|  | 
 |  | +            this.add_employee_form.employee_ids.push(element.id)
 | 
											
												
													
														|  | 
 |  | +          });
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +      },
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +      // 添加成员点击取消
 | 
											
												
													
														|  | 
 |  | +      add_employee_close() {
 | 
											
												
													
														|  | 
 |  | +         this.task_cycle_name='';
 | 
											
												
													
														|  | 
 |  | +         this.add_employee_show = false
 | 
											
												
													
														|  | 
 |  | +      },
 | 
											
												
													
														|  | 
 |  | +      // 添加成员点击完成
 | 
											
												
													
														|  | 
 |  | +      sub_add_employee(form) {
 | 
											
												
													
														|  | 
 |  | +        let self = this;
 | 
											
												
													
														|  | 
 |  | +        if(!self.task_cycle_name){
 | 
											
												
													
														|  | 
 |  | +           self.$message.error('请选择加分周期');
 | 
											
												
													
														|  | 
 |  | +           return false;
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        this.$refs.Employee.confirm();//调用组件的confirm();
 | 
											
												
													
														|  | 
 |  | +        if(this.add_employee_form.employee_ids.length<=0){
 | 
											
												
													
														|  | 
 |  | +          this.$message.error("请选择员工")
 | 
											
												
													
														|  | 
 |  | +          return false;
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        let data = {
 | 
											
												
													
														|  | 
 |  | +          employee_ids: this.add_employee_form.employee_ids,
 | 
											
												
													
														|  | 
 |  | +          task_cycle: self.task_cycle_name,
 | 
											
												
													
														|  | 
 |  | +          item_id: self.add_employee_id,
 | 
											
												
													
														|  | 
 |  | +          rule_id: self.add_rulse_id
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +        self.$refs[form].validate((valid) => {
 | 
											
												
													
														|  | 
 |  | +          if (valid) {
 | 
											
												
													
														|  | 
 |  | +            if (data.rule_id == '' || data.item_id == '') {
 | 
											
												
													
														|  | 
 |  | +              self.$message.error('请先选择细则')
 | 
											
												
													
														|  | 
 |  | +            } else {
 | 
											
												
													
														|  | 
 |  | +              this.disabled = true;
 | 
											
												
													
														|  | 
 |  | +              self.$axios({
 | 
											
												
													
														|  | 
 |  | +                url: '/api/integral/auto/add',
 | 
											
												
													
														|  | 
 |  | +                method: 'post',
 | 
											
												
													
														|  | 
 |  | +                data: data,
 | 
											
												
													
														|  | 
 |  | +              }).then((res) => {
 | 
											
												
													
														|  | 
 |  | +                this.disabled = false;
 | 
											
												
													
														|  | 
 |  | +                if (res.data.code == 1) {
 | 
											
												
													
														|  | 
 |  | +                  self.add_employee_show = false
 | 
											
												
													
														|  | 
 |  | +                  self.$message.success('此次操作成功' + res.data.data.success + '条,失败' + res.data.data.error +
 | 
											
												
													
														|  | 
 |  | +                    '条,已经存在的' + res.data.data.exist + '条')
 | 
											
												
													
														|  | 
 |  | +                     self.open_right();
 | 
											
												
													
														|  | 
 |  | +                } else {
 | 
											
												
													
														|  | 
 |  | +                  self.$message.error(res.data.msg)
 | 
											
												
													
														|  | 
 |  | +                }
 | 
											
												
													
														|  | 
 |  | +              }).catch((e) => {
 | 
											
												
													
														|  | 
 |  | +                self.$message.error(e.data.msg)
 | 
											
												
													
														|  | 
 |  | +              }).finally(() => {
 | 
											
												
													
														|  | 
 |  | +                self.loading = false
 | 
											
												
													
														|  | 
 |  | +              })
 | 
											
												
													
														|  |              }
 |  |              }
 | 
											
												
													
														|  | 
 |  | +          } else {
 | 
											
												
													
														|  | 
 |  | +            return false;
 | 
											
												
													
														|  |            }
 |  |            }
 | 
											
												
													
														|  | -          li:hover .el-submenu__title{
 |  | 
 | 
											
												
													
														|  | -          background:#e7f6ff;
 |  | 
 | 
											
												
													
														|  | 
 |  | +        });
 | 
											
												
													
														|  | 
 |  | +      },
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    editDetails() {},
 | 
											
												
													
														|  | 
 |  | +      handleSelectionChange(val) {
 | 
											
												
													
														|  | 
 |  | +        this.del_arr.ids = []
 | 
											
												
													
														|  | 
 |  | +        val.forEach(element => {
 | 
											
												
													
														|  | 
 |  | +          this.del_arr.ids.push(element.id)
 | 
											
												
													
														|  | 
 |  | +        });
 | 
											
												
													
														|  | 
 |  | +      },
 | 
											
												
													
														|  | 
 |  | +    add_item() {},
 | 
											
												
													
														|  | 
 |  | +    // 批量删除
 | 
											
												
													
														|  | 
 |  | +    del_item() {
 | 
											
												
													
														|  | 
 |  | +        let self = this
 | 
											
												
													
														|  | 
 |  | +        if (self.del_arr.ids.length !== 0) {
 | 
											
												
													
														|  | 
 |  | +          self.$confirm('此操作将永久删除该人员的自动加分, 是否继续?', '提示', {
 | 
											
												
													
														|  | 
 |  | +            confirmButtonText: '确定',
 | 
											
												
													
														|  | 
 |  | +            cancelButtonText: '取消',
 | 
											
												
													
														|  | 
 |  | +            type: 'warning'
 | 
											
												
													
														|  | 
 |  | +          }).then(() => {
 | 
											
												
													
														|  | 
 |  | +            self.$axios({
 | 
											
												
													
														|  | 
 |  | +              url: '/api/integral/auto/delete/many',
 | 
											
												
													
														|  | 
 |  | +              method: 'post',
 | 
											
												
													
														|  | 
 |  | +              data: self.del_arr,
 | 
											
												
													
														|  | 
 |  | +            }).then((res) => {
 | 
											
												
													
														|  | 
 |  | +              if (res.data.code == 1) {
 | 
											
												
													
														|  | 
 |  | +                self.$message.success(res.data.msg)
 | 
											
												
													
														|  | 
 |  | +                self.open_right();
 | 
											
												
													
														|  | 
 |  | +              } else {
 | 
											
												
													
														|  | 
 |  | +                self.$message.error(res.data.msg)
 | 
											
												
													
														|  | 
 |  | +              }
 | 
											
												
													
														|  | 
 |  | +            }).catch((e) => {
 | 
											
												
													
														|  | 
 |  | +              self.$message.error(e.data.msg)
 | 
											
												
													
														|  | 
 |  | +            }).finally(() => {
 | 
											
												
													
														|  | 
 |  | +              self.loading = false
 | 
											
												
													
														|  | 
 |  | +            })
 | 
											
												
													
														|  | 
 |  | +          }).catch(() => {});
 | 
											
												
													
														|  | 
 |  | +        } else {
 | 
											
												
													
														|  | 
 |  | +          self.$message.error('请选择要移除的人员')
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  | 
 |  | +      },
 | 
											
												
													
														|  | 
 |  | +    //导入规则
 | 
											
												
													
														|  | 
 |  | +    import_rules_show() {},
 | 
											
												
													
														|  | 
 |  | +    // 关闭提示语
 | 
											
												
													
														|  | 
 |  | +    tips_close() {
 | 
											
												
													
														|  | 
 |  | +      localStorage.setItem("framework", "true");
 | 
											
												
													
														|  | 
 |  | +      this.tips_show = false;
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +    get_role_list() {
 | 
											
												
													
														|  | 
 |  | +      let self = this;
 | 
											
												
													
														|  | 
 |  | +      self.rule_trees_load = true;
 | 
											
												
													
														|  | 
 |  | +      self.$axios
 | 
											
												
													
														|  | 
 |  | +        .get("/api/role/list")
 | 
											
												
													
														|  | 
 |  | +        .then((res) => {
 | 
											
												
													
														|  | 
 |  | +          if (res.data.code == 1) {
 | 
											
												
													
														|  | 
 |  | +            this.role_list = res.data.data.list;
 | 
											
												
													
														|  | 
 |  | +            this.open_right(this.role_list[0]);
 | 
											
												
													
														|  | 
 |  | +          } else {
 | 
											
												
													
														|  | 
 |  | +            self.$message.error(res.data.msg);
 | 
											
												
													
														|  |            }
 |  |            }
 | 
											
												
													
														|  | -          ul{
 |  | 
 | 
											
												
													
														|  | -            li.is-active{
 |  | 
 | 
											
												
													
														|  | -              background-color:#e7f6ff !important;
 |  | 
 | 
											
												
													
														|  | -            }
 |  | 
 | 
											
												
													
														|  | 
 |  | +        })
 | 
											
												
													
														|  | 
 |  | +        .finally(() => {
 | 
											
												
													
														|  | 
 |  | +          self.rule_trees_load = false;
 | 
											
												
													
														|  | 
 |  | +        });
 | 
											
												
													
														|  | 
 |  | +  },
 | 
											
												
													
														|  | 
 |  | +  
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +  //   get_table_list() {
 | 
											
												
													
														|  | 
 |  | +  //     let self = this;
 | 
											
												
													
														|  | 
 |  | +  //     self.table_loading = true;
 | 
											
												
													
														|  | 
 |  | +  //     self.$axios
 | 
											
												
													
														|  | 
 |  | +  //       .get("/api/role/user", { params: { role_id: self.item_info.id } })
 | 
											
												
													
														|  | 
 |  | +  //       .then((res) => {
 | 
											
												
													
														|  | 
 |  | +  //         if (res.data.code == 1) {
 | 
											
												
													
														|  | 
 |  | +  //           let point_types = self.$store.getters.point_types;
 | 
											
												
													
														|  | 
 |  | +  //           let point_type_map = {};
 | 
											
												
													
														|  | 
 |  | +  //           for (let i in point_types) {
 | 
											
												
													
														|  | 
 |  | +  //             point_type_map[point_types[i].id] = point_types[i];
 | 
											
												
													
														|  | 
 |  | +  //           }
 | 
											
												
													
														|  | 
 |  | +  //           let data = res.data.data.list;
 | 
											
												
													
														|  | 
 |  | +  //           // 处理添加人员的组件选中问题
 | 
											
												
													
														|  | 
 |  | +	// 		      this.rules_employee_arr.employee = [];
 | 
											
												
													
														|  | 
 |  | +  //           for (let i in data) {
 | 
											
												
													
														|  | 
 |  | +  //             this.rules_employee_arr.employee.push({
 | 
											
												
													
														|  | 
 |  | +  //               id: data[i].id,
 | 
											
												
													
														|  | 
 |  | +  //               img_url: data[i].img_url,
 | 
											
												
													
														|  | 
 |  | +  //               name: data[i].name,
 | 
											
												
													
														|  | 
 |  | +  //             });
 | 
											
												
													
														|  | 
 |  | +  //             if (
 | 
											
												
													
														|  | 
 |  | +  //               data[i].point_limit !== null &&
 | 
											
												
													
														|  | 
 |  | +  //               data[i].point_limit.length == 0
 | 
											
												
													
														|  | 
 |  | +  //             ) {
 | 
											
												
													
														|  | 
 |  | +  //               data[i].point_limit = [
 | 
											
												
													
														|  | 
 |  | +  //                 { name: "A分", point: 0, pt_id: 2 },
 | 
											
												
													
														|  | 
 |  | +  //                 { name: "B分", point: 0, pt_id: 3 },
 | 
											
												
													
														|  | 
 |  | +  //               ];
 | 
											
												
													
														|  | 
 |  | +  //             }
 | 
											
												
													
														|  | 
 |  | +  //             if (
 | 
											
												
													
														|  | 
 |  | +  //               data[i].deduct_task_monthly !== null &&
 | 
											
												
													
														|  | 
 |  | +  //               data[i].deduct_task_monthly.length == 0
 | 
											
												
													
														|  | 
 |  | +  //             ) {
 | 
											
												
													
														|  | 
 |  | +  //               data[i].deduct_task_monthly = [
 | 
											
												
													
														|  | 
 |  | +  //                 { name: "A分", point: 0, pt_id: 2 },
 | 
											
												
													
														|  | 
 |  | +  //                 { name: "B分", point: 0, pt_id: 3 },
 | 
											
												
													
														|  | 
 |  | +  //               ];
 | 
											
												
													
														|  | 
 |  | +  //             }
 | 
											
												
													
														|  | 
 |  | +  //             if (
 | 
											
												
													
														|  | 
 |  | +  //               data[i].reward_task_monthly !== null &&
 | 
											
												
													
														|  | 
 |  | +  //               data[i].reward_task_monthly.length == 0
 | 
											
												
													
														|  | 
 |  | +  //             ) {
 | 
											
												
													
														|  | 
 |  | +  //               data[i].reward_task_monthly = [
 | 
											
												
													
														|  | 
 |  | +  //                 { name: "A分", point: 0, pt_id: 2 },
 | 
											
												
													
														|  | 
 |  | +  //                 { name: "B分", point: 0, pt_id: 3 },
 | 
											
												
													
														|  | 
 |  | +  //               ];
 | 
											
												
													
														|  | 
 |  | +  //             }
 | 
											
												
													
														|  | 
 |  | +  //             if (!data[i]["point_limit_obj"]) {
 | 
											
												
													
														|  | 
 |  | +  //               data[i]["point_limit_obj"] = {};
 | 
											
												
													
														|  | 
 |  | +  //             }
 | 
											
												
													
														|  | 
 |  | +  //             for (let k in data[i].point_limit) {
 | 
											
												
													
														|  | 
 |  | +  //               data[i]["point_limit_obj"][
 | 
											
												
													
														|  | 
 |  | +  //                 point_type_map[data[i].point_limit[k].pt_id].code
 | 
											
												
													
														|  | 
 |  | +  //               ] = data[i].point_limit[k].point;
 | 
											
												
													
														|  | 
 |  | +  //             }
 | 
											
												
													
														|  | 
 |  | +  //           }
 | 
											
												
													
														|  | 
 |  | +  //           this.table_list = data;
 | 
											
												
													
														|  | 
 |  | +  //         } else {
 | 
											
												
													
														|  | 
 |  | +  //           self.$message.error(res.data.msg);
 | 
											
												
													
														|  | 
 |  | +  //         }
 | 
											
												
													
														|  | 
 |  | +  //       })
 | 
											
												
													
														|  | 
 |  | +  //       .finally(() => {
 | 
											
												
													
														|  | 
 |  | +  //         self.table_loading = false;
 | 
											
												
													
														|  | 
 |  | +  //       });
 | 
											
												
													
														|  | 
 |  | +	// },
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +//新增规则
 | 
											
												
													
														|  | 
 |  | +	add_rules_detail(){
 | 
											
												
													
														|  | 
 |  | +		 this.dialogFormVisible = true;
 | 
											
												
													
														|  | 
 |  | +		this.rules_detail_title = false;
 | 
											
												
													
														|  | 
 |  | +  },
 | 
											
												
													
														|  | 
 |  | +  
 | 
											
												
													
														|  | 
 |  | +	// 点击确定提交积分规则
 | 
											
												
													
														|  | 
 |  | +	next(form) {
 | 
											
												
													
														|  | 
 |  | +        let self = this
 | 
											
												
													
														|  | 
 |  | +        let data = null
 | 
											
												
													
														|  | 
 |  | +        self.rules_detail_form.max_point = self.rules_detail_form.min_point
 | 
											
												
													
														|  | 
 |  | +        //更改位置,可以发送请求时再传入
 | 
											
												
													
														|  | 
 |  | +        // if (self.rules_detail_form.is_attendance) {
 | 
											
												
													
														|  | 
 |  | +        //   self.rules_detail_form.is_attendance = 1
 | 
											
												
													
														|  | 
 |  | +        // } else {
 | 
											
												
													
														|  | 
 |  | +        //   self.rules_detail_form.is_attendance = 0
 | 
											
												
													
														|  | 
 |  | +        // }
 | 
											
												
													
														|  | 
 |  | +        if (this.rules_detail_title == false) {
 | 
											
												
													
														|  | 
 |  | +          data = {
 | 
											
												
													
														|  | 
 |  | +            items: [self.rules_detail_form]
 | 
											
												
													
														|  |            }
 |  |            }
 | 
											
												
													
														|  | 
 |  | +        } else {
 | 
											
												
													
														|  | 
 |  | +          self.rules_detail_form.item_id = self.rules_detail_form.id
 | 
											
												
													
														|  | 
 |  | +          data = self.rules_detail_form
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  | -       ::v-deep .is-opened .el-submenu__title .title_top{
 |  | 
 | 
											
												
													
														|  | -            color:#409eff !important;
 |  | 
 | 
											
												
													
														|  | 
 |  | +        self.$refs[form].validate((valid) => {
 | 
											
												
													
														|  | 
 |  | +          if (valid) {
 | 
											
												
													
														|  | 
 |  | +            this.disabled = true;
 | 
											
												
													
														|  | 
 |  | +            console.log(this.is_attendance)
 | 
											
												
													
														|  | 
 |  | +            if (this.is_attendance) {
 | 
											
												
													
														|  | 
 |  | +              self.rules_detail_form.is_attendance = 1
 | 
											
												
													
														|  | 
 |  | +            } else {
 | 
											
												
													
														|  | 
 |  | +              self.rules_detail_form.is_attendance = 0
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +            self.$axios({
 | 
											
												
													
														|  | 
 |  | +              url: this.rules_detail_title?'api/integral/rule/items/edit':'/api/integral/rule/items',
 | 
											
												
													
														|  | 
 |  | +              method: 'post' ,
 | 
											
												
													
														|  | 
 |  | +              data: data,
 | 
											
												
													
														|  | 
 |  | +            }).then((res) => {
 | 
											
												
													
														|  | 
 |  | +              console.log(res)
 | 
											
												
													
														|  | 
 |  | +      	      this.disabled = false;
 | 
											
												
													
														|  | 
 |  | +              this.dialogFormVisible = false;
 | 
											
												
													
														|  | 
 |  | +              setTimeout(() => {
 | 
											
												
													
														|  | 
 |  | +                this.is_attendance = false;
 | 
											
												
													
														|  | 
 |  | +              }, 300);
 | 
											
												
													
														|  | 
 |  | +              if (res.data.code == 1) {
 | 
											
												
													
														|  | 
 |  | +                self.$message.success(res.data.msg)
 | 
											
												
													
														|  | 
 |  | +                self.rules_detail_show = false
 | 
											
												
													
														|  | 
 |  | +                self.add_employee_id = res.data.data.item_id
 | 
											
												
													
														|  | 
 |  | +				        self.add_rulse_id = self.rules_detail_form.rule_id
 | 
											
												
													
														|  | 
 |  | +                self.get_role_lists()
 | 
											
												
													
														|  | 
 |  | +                if (this.rules_detail_title == false) {
 | 
											
												
													
														|  | 
 |  | +                  setTimeout(() => {
 | 
											
												
													
														|  | 
 |  | +                    self.add_employee_show = true
 | 
											
												
													
														|  | 
 |  | +                  }, 600);
 | 
											
												
													
														|  | 
 |  | +                }
 | 
											
												
													
														|  | 
 |  | +              } else {
 | 
											
												
													
														|  | 
 |  | +                self.$message.error(res.data.msg)
 | 
											
												
													
														|  | 
 |  | +              }
 | 
											
												
													
														|  | 
 |  | +            }).catch((e) => {
 | 
											
												
													
														|  | 
 |  | +              self.$message.error(e.data.msg)
 | 
											
												
													
														|  | 
 |  | +            }).finally(() => {
 | 
											
												
													
														|  | 
 |  | +              self.loading = false
 | 
											
												
													
														|  | 
 |  | +            })
 | 
											
												
													
														|  | 
 |  | +          } else {
 | 
											
												
													
														|  | 
 |  | +            return false;
 | 
											
												
													
														|  | 
 |  | +          }
 | 
											
												
													
														|  | 
 |  | +        });
 | 
											
												
													
														|  | 
 |  | +      },
 | 
											
												
													
														|  | 
 |  | +	//点击取消
 | 
											
												
													
														|  | 
 |  | +      rules_detail_close(form) {
 | 
											
												
													
														|  | 
 |  | +		    this.dialogFormVisible = false;
 | 
											
												
													
														|  | 
 |  | +        this.rules_detail_show = false;
 | 
											
												
													
														|  | 
 |  | +        this.$refs[form].resetFields();
 | 
											
												
													
														|  | 
 |  | +	  },
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	open_right(data) {
 | 
											
												
													
														|  | 
 |  | +		let self = this
 | 
											
												
													
														|  | 
 |  | +        if (data) {
 | 
											
												
													
														|  | 
 |  | +          self.add_employee_id = data.id
 | 
											
												
													
														|  | 
 |  | +          self.add_rulse_id = data.rule_id
 | 
											
												
													
														|  | 
 |  | +          self.right_rules_detail = data
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  | -       ::v-deep .is-opened .el-menu .el-menu-item span{
 |  | 
 | 
											
												
													
														|  | -            color:#333;
 |  | 
 | 
											
												
													
														|  | 
 |  | +        self.rule_list_load = true
 | 
											
												
													
														|  | 
 |  | +        self.table_loading = true
 | 
											
												
													
														|  | 
 |  | +        var params = {
 | 
											
												
													
														|  | 
 |  | +          params: {
 | 
											
												
													
														|  | 
 |  | +            item_id: self.add_employee_id || '',
 | 
											
												
													
														|  | 
 |  | +            employee_id: self.employee_id || '',
 | 
											
												
													
														|  | 
 |  | +            page: self.page,
 | 
											
												
													
														|  | 
 |  | +          },
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  | -       ::v-deep .is-opened .el-menu .is-active span{
 |  | 
 | 
											
												
													
														|  | -            color:#409eff;
 |  | 
 | 
											
												
													
														|  | 
 |  | +        self.$axios.get('/api/integral/auto/list', params).then((res) => {
 | 
											
												
													
														|  | 
 |  | +          console.log(res)
 | 
											
												
													
														|  | 
 |  | +          if (res.data.code == 1) {
 | 
											
												
													
														|  | 
 |  | +            self.table_list = res.data.data.list||[]
 | 
											
												
													
														|  | 
 |  | +            self.total = res.data.data.total
 | 
											
												
													
														|  | 
 |  | +          } else {
 | 
											
												
													
														|  | 
 |  | +            self.$message.error(res.data.msg)
 | 
											
												
													
														|  | 
 |  | +          }
 | 
											
												
													
														|  | 
 |  | +        }).finally(() => {
 | 
											
												
													
														|  | 
 |  | +          self.table_loading = false
 | 
											
												
													
														|  | 
 |  | +        })
 | 
											
												
													
														|  | 
 |  | +      },
 | 
											
												
													
														|  | 
 |  | +	
 | 
											
												
													
														|  | 
 |  | +	//   编辑规则
 | 
											
												
													
														|  | 
 |  | +	edit_rules(data){
 | 
											
												
													
														|  | 
 |  | +		this.rules_detail_title = true;
 | 
											
												
													
														|  | 
 |  | +		this.dialogFormVisible = true;
 | 
											
												
													
														|  | 
 |  | +		this.rules_detail_title = true;
 | 
											
												
													
														|  | 
 |  | +    this.rules_detail_form = JSON.parse(JSON.stringify(this.right_rules_detail))
 | 
											
												
													
														|  | 
 |  | +    this.is_attendance=this.rules_detail_form.is_attendance == '0'?false:true
 | 
											
												
													
														|  | 
 |  | +	},
 | 
											
												
													
														|  | 
 |  | +	// 删除规则
 | 
											
												
													
														|  | 
 |  | +	del_rules_detail(item) {
 | 
											
												
													
														|  | 
 |  | +        this.$confirm('此操作将永久删除该规则, 是否继续?', '提示', {
 | 
											
												
													
														|  | 
 |  | +          confirmButtonText: '确定',
 | 
											
												
													
														|  | 
 |  | +          cancelButtonText: '取消',
 | 
											
												
													
														|  | 
 |  | +          type: 'warning'
 | 
											
												
													
														|  | 
 |  | +        }).then(() => {
 | 
											
												
													
														|  | 
 |  | +			
 | 
											
												
													
														|  | 
 |  | +      		this.disabled = true;
 | 
											
												
													
														|  | 
 |  | +          this.$axios({
 | 
											
												
													
														|  | 
 |  | +            url: '/api/integral/rule/items/destroy',
 | 
											
												
													
														|  | 
 |  | +            method: 'post',
 | 
											
												
													
														|  | 
 |  | +            data: {
 | 
											
												
													
														|  | 
 |  | +              item_id: item.id
 | 
											
												
													
														|  | 
 |  | +            },
 | 
											
												
													
														|  | 
 |  | +          }).then((res) => {
 | 
											
												
													
														|  | 
 |  | +			  
 | 
											
												
													
														|  | 
 |  | +		      this.dialogFormVisible = false;
 | 
											
												
													
														|  | 
 |  | +      		this.disabled = false;
 | 
											
												
													
														|  | 
 |  | +            if (res.data.code == 1) {
 | 
											
												
													
														|  | 
 |  | +				
 | 
											
												
													
														|  | 
 |  | +         	this.get_role_lists();
 | 
											
												
													
														|  | 
 |  | +              this.$message.success(res.data.msg)
 | 
											
												
													
														|  | 
 |  | +              this.rules_detail_show = false
 | 
											
												
													
														|  | 
 |  | +              this.get_rule_trees()
 | 
											
												
													
														|  | 
 |  | +            } else {
 | 
											
												
													
														|  | 
 |  | +              this.$message.error(res.data.msg)
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +          }).catch((err) => {
 | 
											
												
													
														|  | 
 |  | +          }).finally(() => {
 | 
											
												
													
														|  | 
 |  | +            this.loading = false
 | 
											
												
													
														|  | 
 |  | +          })
 | 
											
												
													
														|  | 
 |  | +        })
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	  },
 | 
											
												
													
														|  | 
 |  | +	  
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +    //新增加分组展示不同渲染
 | 
											
												
													
														|  | 
 |  | +    add_grouping() {
 | 
											
												
													
														|  | 
 |  | +      this.dialogVisible = true;
 | 
											
												
													
														|  | 
 |  | +      this.grouping_type = false;
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +    // 新增加分组
 | 
											
												
													
														|  | 
 |  | +    submitForm(formName) {
 | 
											
												
													
														|  | 
 |  | +      this.$refs[formName].validate((valid) => {
 | 
											
												
													
														|  | 
 |  | +        if (valid) {
 | 
											
												
													
														|  | 
 |  | +          let data = this.grouping_type
 | 
											
												
													
														|  | 
 |  | +            ? {
 | 
											
												
													
														|  | 
 |  | +                rule_id: this.numberValidateForm.id,
 | 
											
												
													
														|  | 
 |  | +                pid: "0",
 | 
											
												
													
														|  | 
 |  | +                name: this.numberValidateForm.name,
 | 
											
												
													
														|  | 
 |  | +              }
 | 
											
												
													
														|  | 
 |  | +            : {
 | 
											
												
													
														|  | 
 |  | +                cycle_type: "2",
 | 
											
												
													
														|  | 
 |  | +                pid: "0",
 | 
											
												
													
														|  | 
 |  | +                name: this.numberValidateForm.name,
 | 
											
												
													
														|  | 
 |  | +              };
 | 
											
												
													
														|  | 
 |  | +          this.disabled = true;
 | 
											
												
													
														|  | 
 |  | +          this.$axios({
 | 
											
												
													
														|  | 
 |  | +            url: this.grouping_type
 | 
											
												
													
														|  | 
 |  | +              ? "api/integral/rule/edit"
 | 
											
												
													
														|  | 
 |  | +              : "/api/integral/rule",
 | 
											
												
													
														|  | 
 |  | +            method: "post",
 | 
											
												
													
														|  | 
 |  | +            data: data,
 | 
											
												
													
														|  | 
 |  | +          }).then((res) => {
 | 
											
												
													
														|  | 
 |  | +            this.dialogVisible = false;
 | 
											
												
													
														|  | 
 |  | +            this.disabled = false;
 | 
											
												
													
														|  | 
 |  | +            if (res.data.code == "1") {
 | 
											
												
													
														|  | 
 |  | +              this.get_role_lists();
 | 
											
												
													
														|  | 
 |  | +              this.$message.success(
 | 
											
												
													
														|  | 
 |  | +                this.grouping_type ? "修改积分规则" : res.data.msg
 | 
											
												
													
														|  | 
 |  | +              );
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +          }).catch(err => {
 | 
											
												
													
														|  | 
 |  | +			  
 | 
											
												
													
														|  | 
 |  | +		  });
 | 
											
												
													
														|  | 
 |  | +        } else {
 | 
											
												
													
														|  | 
 |  | +          console.log("error submit!!");
 | 
											
												
													
														|  | 
 |  | +          return false;
 | 
											
												
													
														|  |          }
 |  |          }
 | 
											
												
													
														|  | -	}
 |  | 
 | 
											
												
													
														|  | 
 |  | +      });
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +    //修改分组
 | 
											
												
													
														|  | 
 |  | +    edit_grouping(item) {
 | 
											
												
													
														|  | 
 |  | +      this.dialogVisible = true;
 | 
											
												
													
														|  | 
 |  | +      this.numberValidateForm = JSON.parse(JSON.stringify(item));
 | 
											
												
													
														|  | 
 |  | +      this.grouping_type = true;
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +    //删除分组
 | 
											
												
													
														|  | 
 |  | +    del_grouping(item) {
 | 
											
												
													
														|  | 
 |  | +      this.$confirm("此操作将永久删除该分类, 是否继续?", "提示", {
 | 
											
												
													
														|  | 
 |  | +        confirmButtonText: "确定",
 | 
											
												
													
														|  | 
 |  | +        cancelButtonText: "取消",
 | 
											
												
													
														|  | 
 |  | +        type: "warning",
 | 
											
												
													
														|  | 
 |  | +      })
 | 
											
												
													
														|  | 
 |  | +        .then(() => {
 | 
											
												
													
														|  | 
 |  | +          this.disabled = true;
 | 
											
												
													
														|  | 
 |  | +          this.$axios({
 | 
											
												
													
														|  | 
 |  | +            url: "api/integral/rule/destroy",
 | 
											
												
													
														|  | 
 |  | +            method: "post",
 | 
											
												
													
														|  | 
 |  | +            data: {
 | 
											
												
													
														|  | 
 |  | +              rule_id: item.id,
 | 
											
												
													
														|  | 
 |  | +            },
 | 
											
												
													
														|  | 
 |  | +          }).then((res) => {
 | 
											
												
													
														|  | 
 |  | +            this.dialogVisible = false;
 | 
											
												
													
														|  | 
 |  | +            this.disabled = false;
 | 
											
												
													
														|  | 
 |  | +            if (res.data.code == 1) {
 | 
											
												
													
														|  | 
 |  | +              this.get_role_lists();
 | 
											
												
													
														|  | 
 |  | +              this.$message.success("删除成功");
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +          }).catch(err => {});
 | 
											
												
													
														|  | 
 |  | +        })
 | 
											
												
													
														|  | 
 |  | +        .catch(() => {
 | 
											
												
													
														|  | 
 |  | +			setTimeout(() => {
 | 
											
												
													
														|  | 
 |  | +            	this.dialogVisible = false;
 | 
											
												
													
														|  | 
 |  | +            }, 300);
 | 
											
												
													
														|  | 
 |  | +		});
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +    // 获取分组
 | 
											
												
													
														|  | 
 |  | +    get_role_lists() {
 | 
											
												
													
														|  | 
 |  | +      this.rule_trees_load = true;
 | 
											
												
													
														|  | 
 |  | +      this.$axios
 | 
											
												
													
														|  | 
 |  | +        .get("/api/integral/rule/trees", {
 | 
											
												
													
														|  | 
 |  | +          params: {
 | 
											
												
													
														|  | 
 |  | +            cycle_type: "2",
 | 
											
												
													
														|  | 
 |  | +          },
 | 
											
												
													
														|  | 
 |  | +        })
 | 
											
												
													
														|  | 
 |  | +        .then((res) => {
 | 
											
												
													
														|  | 
 |  | +          console.log(res)
 | 
											
												
													
														|  | 
 |  | +          
 | 
											
												
													
														|  | 
 |  | +          this.is_attendance=this.rules_detail_form.is_attendance == '0'?false:true
 | 
											
												
													
														|  | 
 |  | +          this.rule_list = res.data.data.rule_tree;
 | 
											
												
													
														|  | 
 |  | +          this.item_list = res.data.data.item_list;
 | 
											
												
													
														|  | 
 |  | +		      this.rule_trees_load = false;
 | 
											
												
													
														|  | 
 |  | +		      if (this.item_list !== null) {
 | 
											
												
													
														|  | 
 |  | +              for (const key in this.item_list) {
 | 
											
												
													
														|  | 
 |  | +                for (let i = 0; i < this.item_list[key].length; i++) {
 | 
											
												
													
														|  | 
 |  | +                  if (i == 0) {
 | 
											
												
													
														|  | 
 |  | +                    this.open_right(this.item_list[key][i])
 | 
											
												
													
														|  | 
 |  | +                    return false
 | 
											
												
													
														|  | 
 |  | +                  }
 | 
											
												
													
														|  | 
 |  | +                }
 | 
											
												
													
														|  | 
 |  | +              }
 | 
											
												
													
														|  | 
 |  | +            }
 | 
											
												
													
														|  | 
 |  | +        });
 | 
											
												
													
														|  | 
 |  | +    },
 | 
											
												
													
														|  | 
 |  | +  },
 | 
											
												
													
														|  | 
 |  | +};
 | 
											
												
													
														|  | 
 |  | +</script>
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -    .rule_list {
 |  | 
 | 
											
												
													
														|  | -      position: relative;
 |  | 
 | 
											
												
													
														|  | -      display: table-cell;
 |  | 
 | 
											
												
													
														|  | 
 |  | +<style scoped="scoped" lang="scss">
 | 
											
												
													
														|  | 
 |  | +.rule_name {
 | 
											
												
													
														|  | 
 |  | +  border-right: 0;
 | 
											
												
													
														|  | 
 |  | +  margin-top: 16px;
 | 
											
												
													
														|  | 
 |  | +  li {
 | 
											
												
													
														|  | 
 |  | +    // margin-right:20px !important;
 | 
											
												
													
														|  | 
 |  | +    border-bottom: 1px #f8f8f8 solid;
 | 
											
												
													
														|  | 
 |  | +    overflow: hidden;
 | 
											
												
													
														|  | 
 |  | +    white-space: nowrap;
 | 
											
												
													
														|  | 
 |  | +    text-overflow: ellipsis;
 | 
											
												
													
														|  | 
 |  | +    ::v-deep .el-submenu__title {
 | 
											
												
													
														|  | 
 |  | +      padding: 0 10px !important;
 | 
											
												
													
														|  | 
 |  | +      i.el-submenu__icon-arrow.el-icon-arrow-down {
 | 
											
												
													
														|  | 
 |  | +        color: #909399 !important;
 | 
											
												
													
														|  | 
 |  | +      }
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +    li:hover .el-submenu__title {
 | 
											
												
													
														|  | 
 |  | +      background: #e7f6ff;
 | 
											
												
													
														|  |      }
 |  |      }
 | 
											
												
													
														|  | 
 |  | +    ul {
 | 
											
												
													
														|  | 
 |  | +      li.is-active {
 | 
											
												
													
														|  | 
 |  | +        background-color: #e7f6ff !important;
 | 
											
												
													
														|  | 
 |  | +      }
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  | 
 |  | +  }
 | 
											
												
													
														|  | 
 |  | +  ::v-deep .is-opened .el-submenu__title .title_top {
 | 
											
												
													
														|  | 
 |  | +    color: #409eff !important;
 | 
											
												
													
														|  | 
 |  | +  }
 | 
											
												
													
														|  | 
 |  | +  ::v-deep .is-opened .el-menu .el-menu-item span {
 | 
											
												
													
														|  | 
 |  | +    color: #333;
 | 
											
												
													
														|  | 
 |  | +  }
 | 
											
												
													
														|  | 
 |  | +  ::v-deep .is-opened .el-menu .is-active span {
 | 
											
												
													
														|  | 
 |  | +    color: #409eff;
 | 
											
												
													
														|  | 
 |  | +  }
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -    .rule_list:after {
 |  | 
 | 
											
												
													
														|  | -      content: " ";
 |  | 
 | 
											
												
													
														|  | -      position: absolute;
 |  | 
 | 
											
												
													
														|  | -      top: 0;
 |  | 
 | 
											
												
													
														|  | -      left: 0;
 |  | 
 | 
											
												
													
														|  | -      bottom: 0;
 |  | 
 | 
											
												
													
														|  | -      width: 1px;
 |  | 
 | 
											
												
													
														|  | -      background: #EBEEF5;
 |  | 
 | 
											
												
													
														|  | -    }	
 |  | 
 | 
											
												
													
														|  | -.terr-right{
 |  | 
 | 
											
												
													
														|  | -	.name{
 |  | 
 | 
											
												
													
														|  | -		font-size: 18px;
 |  | 
 | 
											
												
													
														|  | -		margin-right: 20px;
 |  | 
 | 
											
												
													
														|  | -	}
 |  | 
 | 
											
												
													
														|  | -	.btns button{
 |  | 
 | 
											
												
													
														|  | -		margin-top: 20px;
 |  | 
 | 
											
												
													
														|  | -		margin-right: 5px;
 |  | 
 | 
											
												
													
														|  | -	}
 |  | 
 | 
											
												
													
														|  | -}	
 |  | 
 | 
											
												
													
														|  | -.terr-left button {
 |  | 
 | 
											
												
													
														|  | -	margin: 0 auto;
 |  | 
 | 
											
												
													
														|  | -	display: block;
 |  | 
 | 
											
												
													
														|  | -	margin-bottom: 10px;
 |  | 
 | 
											
												
													
														|  | 
 |  | +.rule_list {
 | 
											
												
													
														|  | 
 |  | +  position: relative;
 | 
											
												
													
														|  | 
 |  | +  display: table-cell;
 | 
											
												
													
														|  |  }
 |  |  }
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | 
 |  | +.rule_list:after {
 | 
											
												
													
														|  | 
 |  | +  content: " ";
 | 
											
												
													
														|  | 
 |  | +  position: absolute;
 | 
											
												
													
														|  | 
 |  | +  top: 0;
 | 
											
												
													
														|  | 
 |  | +  left: 0;
 | 
											
												
													
														|  | 
 |  | +  bottom: 0;
 | 
											
												
													
														|  | 
 |  | +  width: 1px;
 | 
											
												
													
														|  | 
 |  | +  background: #ebeef5;
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +.terr-right {
 | 
											
												
													
														|  | 
 |  | +    min-height: calc(100vh - 224px);
 | 
											
												
													
														|  | 
 |  | +  .name {
 | 
											
												
													
														|  | 
 |  | +    height: 100%;
 | 
											
												
													
														|  | 
 |  | +    font-size: 18px;
 | 
											
												
													
														|  | 
 |  | +    margin-right: 20px;
 | 
											
												
													
														|  | 
 |  | +  }
 | 
											
												
													
														|  | 
 |  | +  .btns button {
 | 
											
												
													
														|  | 
 |  | +    margin-top: 20px;
 | 
											
												
													
														|  | 
 |  | +    margin-right: 5px;
 | 
											
												
													
														|  | 
 |  | +  }
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  | 
 |  | +.terr-left button {
 | 
											
												
													
														|  | 
 |  | +  margin: 0 auto;
 | 
											
												
													
														|  | 
 |  | +  display: block;
 | 
											
												
													
														|  | 
 |  | +  margin-bottom: 10px;
 | 
											
												
													
														|  | 
 |  | +}
 | 
											
												
													
														|  |  </style>
 |  |  </style>
 |