| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843 | 
							- <template>
 
-   <div>
 
-     <!--规则提示-->
 
-     <div class="diy_tip_bg" >
 
-       <el-alert class="diy-tip" type="success" :closable="false">
 
-         <p><b>团队PK通过自定义档案配置、团队参与人员等。在相同积分规则内对团队进行积分对比</b></p>
 
-         <p><b>PK配置流程</b></p>
 
-         <li class="headLi">指定档案在哪些积分规则分类或者积分规则内有效</li>
 
-         <li class="headLi">创建团队,指定参与者</li>
 
-         <p><b>团队积分构成</b></p>
 
-         <li class="headLi">团队参与者在档案配置中积分规则内的积分总和</li>
 
-         <li class="headLi">单独向团队录入的积分</li>
 
-       </el-alert>
 
-     </div>
 
-     <div style="background-color: #fff;padding: 20px;position: relative;" class="flex-box boxMinHeight">
 
-       <div class="left box-sizing-w scroll-bar" v-loading="menuLoading">
 
-         <div style="text-align: center; padding: 10px 0;">
 
-           <el-button type="primary" @click="addDoc" v-if="!manageAble">创建档案</el-button>
 
-         </div>
 
-         <el-menu v-if="docList.length > 0" :default-active="menuActive"  @select="activeRouter" class="el-menu-vertical-demo" >
 
-           <el-menu-item v-for="(item, index) in docList" :key="index" :index="index.toString()" @click="refreshContent(item)">
 
-             <span slot="title">{{item.name}}</span>
 
-           </el-menu-item>
 
-         </el-menu>
 
-         <div v-if="docList.length == 0"><NoData></NoData></div>
 
-       </div>
 
-       <div style="overflow-x: auto" class="flex-1 scroll-bar">
 
-         <div style="margin-bottom: 20px" >
 
-           <el-button v-if="currentDoc" type="primary" size="small" @click="editDoc">档案配置</el-button>
 
-           <el-button v-if="currentDoc" type="primary" size="small" @click="addTeam">添加团队</el-button>
 
-         </div>
 
-         <el-tabs v-if=" currentDoc && currentDoc.teams.length > 0 " v-model="activeTeam"  type="border-card" closable @tab-remove="removeTeam" v-loading="contentLoading">
 
-           <el-tab-pane v-for="(team,index) in currentDoc.teams" :key="index" :name="index.toString()" :label="team.name" >
 
-             <el-table :data="team.employees" v-if="activeTeam == index.toString()"> <!--v-if="activeTeam == index.toString()"防止标签切换抖动-->
 
-               <el-table-column label="员工" align="left" width="200">
 
-                 <template slot-scope="scope">
 
-                   <userImage class="fl" :id="scope.row.id" :user_name="scope.row.name" :img_url="scope.row.img_url" width="50px" height="50px"></userImage>
 
-                   <span style="line-height: 50px; padding-left: 10px;">{{ scope.row.name }}</span>
 
-                 </template>
 
-               </el-table-column>
 
-               <el-table-column label="部门" prop="dept_list" align="center"></el-table-column>
 
-               <el-table-column label="操作" align="center">
 
-                 <template slot="header" slot-scope="scope" >
 
-                   <el-tooltip effect="light" placement="top" content="团队配置">
 
-                     <el-button type="primary" size="mini" circle icon="el-icon-setting" @click="editTeam"></el-button>
 
-                   </el-tooltip>
 
-                   <el-tooltip effect="light" placement="top" content="添加团队积分">
 
-                     <el-button type="success" size="mini" circle icon="el-icon-folder-add" @click="addTeamPoint"></el-button>
 
-                   </el-tooltip>
 
-                   <el-tooltip effect="light" placement="top" content="团队积分列表">
 
-                     <el-button type="info" size="mini" circle icon="el-icon-document" @click="clickShowPoint" ></el-button>
 
-                   </el-tooltip>
 
- <!--                  <el-button type="primary" size="mini" round @click="editTeam">团队配置</el-button>-->
 
- <!--                  <el-button type="primary" size="mini" round>添加积分</el-button>-->
 
- <!--                  <el-button type="primary" size="mini" round>团队积分</el-button>-->
 
-                 </template>
 
-                 <template slot-scope="scope">
 
-                   <el-button @click="dropEmployee(team.id,scope.row.id,scope.row.name)" size="medium" type="danger" >移除出团队</el-button>
 
-                 </template>
 
-               </el-table-column>
 
-             </el-table>
 
-           </el-tab-pane>
 
-         </el-tabs>
 
-         <div v-if="!currentDoc || currentDoc.teams.length === 0"><NoData></NoData></div>
 
-       </div>
 
-     </div>
 
- <!--  创建/编辑档案  -->
 
-     <el-dialog :title="isUpdateDoc ? '编辑档案': '创建档案' " width="700px" top="10vh" :visible.sync="showDoc" :close-on-click-modal="false" >
 
-       <el-form ref="docForm" :model="docForm" :rules="docFormValidateRules" label-width="100px" @submit.native.prevent style="margin: 0 auto;">
 
-         <el-form-item label="档案名" prop="name" :required="true">
 
-           <el-input v-model="docForm.name" maxlength="10" auto-complete="off" show-word-limit placeholder="请输入档案名" ></el-input>
 
-         </el-form-item>
 
-         <el-form-item label="积分规则" :required="true" >
 
-           <el-select v-model="docForm.ruleType" style="margin-bottom: 6px;width: 400px;" >
 
-             <el-option label="全部" :value="1"></el-option>
 
-             <el-option label="指定规则分类" :value="2"></el-option>
 
-             <el-option label="指定规则" :value="3"></el-option>
 
-           </el-select>
 
-           <el-cascader
 
-             style="width: 400px;"
 
-             v-if="docForm.ruleType == 2"
 
-             v-model="rule_list_value"
 
-             ref="ruleCascader"
 
-             :show-all-levels="false"
 
-             filterable
 
-             :options="rule_list"
 
-             :props="{children:'child',label: 'name',value: 'id', checkStrictly: true,multiple: true}"
 
-           ></el-cascader>
 
-           <div v-if="docForm.ruleType == 3" style="position: relative;"  >
 
-             <div class="inputBox" @click="showItem = true">
 
-               <span v-if="selectItem.length > 0">已选择了{{selectItem.length}}条</span>
 
-               <span v-else style="color: #909399;">请选择</span>
 
-             </div>
 
-           </div>
 
-           <div>
 
-             <span v-if="docForm.ruleType==1">统计全部积分事件,不包含基础分和工龄分</span>
 
-             <span v-if="docForm.ruleType==2">包含指定规则分类的积分,不包含基础分和工龄分</span>
 
-             <span v-if="docForm.ruleType==3">按已指定的积分规则进行积分统计并排名,不包含基础分和工龄分</span>
 
-           </div>
 
-         </el-form-item>
 
-       </el-form>
 
-       <div class="flex-box-ce">
 
-         <el-button type="danger" v-if="isUpdateDoc" :loading="commitLoading" @click="deleteDoc">删 除</el-button>
 
-         <div class="flex-1"></div>
 
-         <el-button type="primary"  :loading="commitLoading" @click="commitDocForm('docForm')" >提 交</el-button>
 
-       </div>
 
-     </el-dialog>
 
- <!--  创建编辑团队  -->
 
-     <el-dialog :title="isUpdateTeam ? '编辑团队' : '创建团队'" width="700px" top="10vh" :visible.sync="showTeam" :close-on-click-modal="false" >
 
-       <el-form ref="teamForm" :model="teamForm" :rules="teamFormValidateRules" label-width="100px" @submit.native.prevent style="margin: 0 auto;" >
 
-         <el-form-item label="团队名" prop="name" :required="true">
 
-           <el-input v-model="teamForm.name" maxlength="10" auto-complete="off" show-word-limit placeholder="请输入团队名" ></el-input>
 
-         </el-form-item>
 
-         <el-form-item label="参与人员" :required="true">
 
-           <div class="cursor" style="border-radius: 4px;border: 1px solid #dcdfe6;line-height: 34px;width: 400px;padding: 0 15px;" @click="showEmployeeSelect">
 
-             <div class="flex-box-ce fontColorB font-flex-word" v-if="employees_selected.employee.length>0">
 
-               <span v-for="item in employees_selected.employee" :key="item.id"> {{item.name}},</span>
 
-             </div>
 
-             <div v-else style="color: #C0C4CF;">请选择参与人员</div>
 
-           </div>
 
-         </el-form-item>
 
-       </el-form>
 
-       <div class="flex-box-ce">
 
-         <el-button type="danger" v-if="isUpdateTeam" :loading="commitLoading" @click="deleteTeam">删 除</el-button>
 
-         <div class="flex-1"></div>
 
-         <el-button type="primary"  :loading="commitLoading" @click="commitTeamForm('teamForm')" >提 交</el-button>
 
-       </div>
 
-     </el-dialog>
 
- <!--  添加团队积分  -->
 
-     <el-dialog title="添加团队积分" width="700px" top="10vh" :visible.sync="showAddPoint" :close-on-click-modal="false" >
 
-       <el-form ref="pointForm" :model="pointForm" :rules="pointFormValidateRules" label-width="100px" @submit.native.prevent style="margin: 0 auto;">
 
-         <el-form-item label="积分" prop="point" :required="true">
 
-           <el-input-number v-model="pointForm.point" :min="-999999" :max="999999" ></el-input-number>
 
-         </el-form-item>
 
-         <el-form-item label="日期" prop="date" :required="true">
 
-           <el-date-picker
 
-             v-model="pointForm.date"
 
-             type="date"
 
-             value-format="yyyy-MM-dd"
 
-           ></el-date-picker>
 
-         </el-form-item>
 
-         <el-form-item label="说明" prop="remark" >
 
-           <el-input
 
-             placeholder="积分说明"
 
-             type="textarea"
 
-             v-model="pointForm.remark"
 
-             maxlength="100"
 
-             rows="4"
 
-             show-word-limit
 
-             clearable></el-input>
 
-         </el-form-item>
 
-         <div class="flex-box-ce">
 
-           <div class="flex-1"></div>
 
-           <el-button type="primary"  :loading="commitLoading" @click="commitPointForm('pointForm')" >提 交</el-button>
 
-         </div>
 
-       </el-form>
 
-     </el-dialog>
 
-     <el-dialog title="团队积分事件" width="700px" top="10vh" :visible.sync="showPoint" :close-on-click-modal="false" >
 
-       <el-form :inline="true" @submit.native.prevent >
 
-         <el-date-picker
 
-           v-model="pointSearchDateScope"
 
-           type="daterange"
 
-           align="right"
 
-           unlink-panels
 
-           range-separator="至"
 
-           start-placeholder="开始日期"
 
-           end-placeholder="结束日期"
 
-           value-format="yyyy-MM-dd"
 
-           editable
 
-         ></el-date-picker>
 
-       </el-form>
 
-       <el-table :data="pointListData.list" style="width: 100%" v-loading="pointListLoading" >
 
-         <el-table-column label="积分" align="center" prop="point"></el-table-column>
 
-         <el-table-column label="日期" align="center" prop="date"></el-table-column>
 
-         <el-table-column label="说明" align="center" prop="remark"></el-table-column>
 
-         <template slot="empty">
 
-           <NoData></NoData>
 
-         </template>
 
-       </el-table>
 
-       <el-pagination
 
-         @current-change="handlePointPageChange"
 
-         :current-page="pointSearchForm.page"
 
-         :page-size="pointSearchForm.pageSize"
 
-         :total="pointListData.total"
 
-       ></el-pagination>
 
-     </el-dialog>
 
-     <EmployeeSelector
 
-       title="选择成员"
 
-       :selected="employees_selected"
 
-       :close_clear_data="false"
 
-       :visible.sync="showEmployeeSelector"
 
-       @confirm="move_employee_confirm"
 
-       :isChecKedAll="true"
 
-       :max="0"
 
-     />
 
-     <SelectRule :isAll="true" :visible.sync="showItem" @confirm="ruleConfirm" :ptId="docForm.ptId" :selectItems="selectItem"></SelectRule>
 
-   </div>
 
- </template>
 
- <script>
 
- import SelectRule from "@/components/SelectRule.vue";
 
- import EmployeeSelector from "@/components/EmployeeSelector.vue";
 
- import Template from "../../../examine/components/Template.vue";
 
- export default {
 
-   components: {Template, SelectRule,EmployeeSelector},
 
-   data(){
 
-     return {
 
-       manageAble: this.$supremeAuthority('dept_manager') || this.$supremeAuthority('employee'),
 
-       menuActive: '0',
 
-       menuLoading: false,
 
-       contentLoading: false,
 
-       currentDoc: null,
 
-       currentTeam: null,
 
-       activeTeam: 0,
 
-       docList: [],
 
-       isUpdateDoc: false,
 
-       isUpdateTeam: false,
 
-       showDoc: false,
 
-       showTeam: false,
 
-       showEmployeeSelector: false,
 
-       docForm:{
 
-         docId:0,
 
-         name:'',
 
-         ptId:3,
 
-         ruleType:1,
 
-         rules:[],
 
-         items:[],
 
-       },
 
-       docFormValidateRules:{
 
-         name: [
 
-           {required: true,message:'请输入档案名称'},
 
-           { min: 3, max: 10, message: '长度在 3 到 10 个字符'}
 
-         ]
 
-       },
 
-       teamFormValidateRules:{
 
-         name: [
 
-           {required: true,message:'请输入档案名称'},
 
-           { min: 3, max: 10, message: '长度在 3 到 10 个字符'}
 
-         ]
 
-       },
 
-       // 规则分类
 
-       rule_list: [],
 
-       rule_tree:[],
 
-       rule_list_value:[],
 
-       showItem:false,
 
-       selectItem:[],
 
-       commitLoading:false,
 
-       teamForm:{
 
-         docId:0,
 
-         teamId:0,
 
-         name:"",
 
-         employees:[]
 
-       },
 
-       employees_selected: { employee: [], dept: [] },
 
-       showAddPoint:false,
 
-       showPoint:false,
 
-       pointForm:{
 
-         teamId:0,
 
-         teamName:'',
 
-         point:0,
 
-         date:"",
 
-         remark:""
 
-       },
 
-       pointFormValidateRules:{
 
-         point:[
 
-           {type:'integer'},
 
-           {required:true,message:"必须填写积分"},
 
-         ],
 
-         remark:[
 
-           {type:'string'},
 
-           {min:0,max:100,message:"最多100个字符"}
 
-         ],
 
-         date:[
 
-           {type:'string'},
 
-           {required:true,message:'积分日期必须填写'}
 
-         ]
 
-       },
 
-       pointSearchDateScope:[],
 
-       pointSearchForm:{
 
-         timeScope:[],
 
-         teamId:0,
 
-         docId:0,
 
-         page:1,
 
-         pageSize:10
 
-       },
 
-       pointListLoading:false,
 
-       pointListData:{
 
-         list:[],
 
-         total:0
 
-       }
 
-     }
 
-   },
 
-   methods: {
 
-     initDocForm(){
 
-       this.docForm.docId = 0;
 
-       this.docForm.name = '';
 
-       this.docForm.ruletype = 1;
 
-       this.docForm.rules = [];
 
-       this.docForm.items = [];
 
-       this.selectItem = [];
 
-       this.rule_list_value = [];
 
-     },
 
-     initTeamForm(){
 
-       this.teamForm.docId = this.currentDoc.id;
 
-       this.teamForm.teamId = 0;
 
-       this.teamForm.name = '';
 
-       this.teamForm.employees = [];
 
-       this.employees_selected = { employee: [], dept: [] };
 
-     },
 
-     initPointForm(){
 
-       this.pointForm.teamName = '';
 
-       this.pointForm.point = 0;
 
-       this.pointForm.teamId = 0;
 
-       this.pointForm.remark = '';
 
-       this.pointForm.date = '';
 
-     },
 
-     initPointListData(){
 
-       this.pointListData = {
 
-         list:[],
 
-         total:0
 
-       }
 
-     },
 
-     addDoc(){
 
-       //封装表单数据
 
-       this.initDocForm()
 
-       //打开表单弹窗
 
-       this.isUpdateDoc = false;
 
-       this.showDoc = true;
 
-     },
 
-     editDoc(){
 
-       //封装表单数据
 
-       this.docForm.docId = this.currentDoc.id;
 
-       this.docForm.name = this.currentDoc.name;
 
-       if (this.currentDoc.items.length > 0){
 
-         this.docForm.ruleType = 3;
 
-         this.docForm.rules = [];
 
-         this.docForm.items = this.currentDoc.items.map(e => e.id)
 
-         this.selectItem = this.currentDoc.items.map(e => {
 
-           return {
 
-             id:e.id,
 
-             remark:e.name
 
-           }
 
-         })
 
-       }else if (this.currentDoc.rules.length > 0){
 
-         this.docForm.ruleType = 2;
 
-         this.docForm.items = [];
 
-         this.docForm.rules = this.currentDoc.rules.map(e => e.id)
 
-         let rule_list_value = [];
 
-         if(this.currentDoc.rules.length > 0){
 
-           this.docForm.rules.forEach(id => {
 
-             let arr = [];
 
-             this.returnRuleVal(id,arr);
 
-             rule_list_value.push(arr);
 
-             this.rule_list_value = rule_list_value;
 
-           })
 
-         }
 
-       }else {
 
-         this.docForm.ruleType = 1;
 
-         this.docForm.rules = [];
 
-         this.docForm.rules = [];
 
-         this.selectItem = [];
 
-         this.rule_list_value = [];
 
-       }
 
-       //打开表单弹窗
 
-       this.isUpdateDoc = true;
 
-       this.showDoc = true;
 
-     },
 
-     deleteDoc(){
 
-       this.$confirm('确认删除当前档案吗?','删除档案',{confirmButtonText:'确定',cancelButtonText:'取消',type:"warning"}).then(() => {
 
-           this.commitDeleteDoc();
 
-       })
 
-     },
 
-     getDocList(){
 
-       this.menuLoading = true;
 
-       this.$axiosUser('get','/api/pro/pk/doc/list').then(res => {
 
-          this.docList = res.data.data.list;
 
-          if(this.docList.length > 0 && !this.currentDoc){
 
-            this.refreshContent(this.docList[this.menuActive]);
 
-          }
 
-       }).finally(()=>{
 
-         this.menuLoading = false;
 
-       })
 
-     },
 
-     //获取分类规则
 
-     get_rule_trees() {
 
-       let params = {pt_id:3,cycle_type:1};
 
-       this.$axiosUser('get', '/api/pro/integral/rule/trees', params).then(res => {
 
-         this.rule_list = this.getTreeData(res.data.data.rule_tree);
 
-         this.rule_tree = this.flatten(res.data.data.rule_tree);
 
-       })
 
-     },
 
-     // 递归判断列表,把最后的child设为undefined
 
-     getTreeData(data) {
 
-       for (var i = 0; i < data.length; i++) {
 
-         if (data[i].child.length < 1) {
 
-           // child若为空数组,则将child设为undefined
 
-           data[i].child = undefined;
 
-         } else {
 
-           // child若不为空数组,则继续 递归调用 本方法
 
-           this.getTreeData(data[i].child);
 
-         }
 
-       }
 
-       return data;
 
-     },
 
-     flatten(arr) {
 
-       return arr.reduce((result, item) => {
 
-         return result.concat(item, Array.isArray(item.child) ? this.flatten(item.child) : []);
 
-       }, []);
 
-     },
 
-     returnRuleVal(rule_id,arr){
 
-       arr.unshift(rule_id)
 
-       let list = this.rule_tree.filter(x => x.id == rule_id)
 
-       if(list[0]&&list[0].pid != 0){
 
-         this.returnRuleVal(list[0].pid,arr)
 
-       }
 
-       return arr;
 
-     },
 
-     activeRouter(index, indexPath){
 
-       this.menuActive = index.toString();
 
-     },
 
-     //加载右边内容页
 
-     refreshContent(doc){
 
-       if (!doc || !doc.id) return;
 
-       this.currentTeam = null;
 
-       this.currentDoc = null;
 
-       this.contentLoading = true;
 
-       this.$axiosUser('get','/api/pro/pk/doc/info',{doc_id:doc.id})
 
-         .then(res => {
 
-           this.currentDoc = res.data.data;
 
-           this.activeTeam = 0;    //只能在这里设置不能在开头初始化
 
-           if (this.currentDoc.teams.length > 0) this.currentTeam = this.currentDoc.teams[0];
 
-         })
 
-         .finally(() => {
 
-           this.contentLoading = false;
 
-         })
 
-     },
 
-     addTeam(){
 
-       //封装表单数据
 
-       this.initTeamForm();
 
-       //打开表单弹窗
 
-       this.isUpdateTeam = false;
 
-       this.showTeam = true;
 
-     },
 
-     editTeam(){
 
-       //封装表单数据
 
-       this.teamForm.docId = this.currentDoc.id;
 
-       this.teamForm.teamId = this.currentTeam.id;
 
-       this.teamForm.name = this.currentTeam.name;
 
-       this.teamForm.employees = this.currentTeam.employees.map(e => e.id);
 
-       this.employees_selected.employee = this.currentTeam.employees;
 
-       //打开表单弹窗
 
-       this.isUpdateTeam = true;
 
-       this.showTeam = true;
 
-     },
 
-     deleteTeam(){
 
-       this.$confirm('确认删除当前团队吗?','删除团队',{
 
-         confirmButtonText: '确定',
 
-         cancelButtonText: '取消',
 
-         type: 'warning'
 
-       }).then(() => {
 
-         this.commitDeleteTeam(this.teamForm.teamId);
 
-       })
 
-     },
 
-     removeTeam(i){
 
-       if (this.currentDoc.teams.length < i) return;
 
-       let team = this.currentDoc.teams[i];
 
-       let message = '确认删除团队<<' + team.name + '>>吗?';
 
-       this.$confirm(message,'删除团队',{
 
-         confirmButtonText: '确定',
 
-         cancelButtonText: '取消',
 
-         type: 'warning'
 
-       }).then(() => {
 
-         this.commitDeleteTeam(team.id)
 
-       })
 
-     },
 
-     commitDeleteTeam(teamId){
 
-       this.commitLoading = true;
 
-       this.$axiosUser('POST','/api/pro/pk/team/d',{team_id:teamId})
 
-         .then(res => {
 
-           this.$message.success(res.data.msg);
 
-           this.isUpdateTeam = false;
 
-           this.showTeam = false;
 
-           this.initTeamForm();
 
-           this.refreshContent(this.currentDoc);
 
-         })
 
-         .finally(() => {
 
-           this.commitLoading = false;
 
-         })
 
-     },
 
-     dropEmployee(teamId,employeeId,employeeName){
 
-       let message = "确认将<<" + employeeName + ">>移出团队吗?"
 
-       this.$confirm(message,"移出团队",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"})
 
-         .then(() => {
 
-           this.commitDeleteEmployee(teamId,employeeId);
 
-         })
 
-     },
 
-     //选择规则
 
-     ruleConfirm(rules) {
 
-       if (rules.length > 0) {
 
-         this.docForm.items = rules.map(e=> e.id);
 
-       } else {
 
-         this.docForm.items = [];
 
-       }
 
-       this.selectItem = rules;
 
-     },
 
-     commitDocForm(formName) {
 
-       this.$refs[formName].validate(valid => {
 
-         if (!valid) return;
 
-         if (this.isUpdateDoc){
 
-           this.commitUpdateDoc();
 
-         }else{
 
-           this.commitCreateDoc();
 
-         }
 
-       })
 
-     },
 
-     commitCreateDoc(){
 
-       let params = {
 
-         name:this.docForm.name,
 
-         rules:[],
 
-         items:[]
 
-       };
 
-       if (this.docForm.docId > 0){
 
-         this.$message.error("表单状态异常");
 
-         return;
 
-       }
 
-       if(this.docForm.ruleType === 2) {
 
-         if (this.docForm.rules.length === 0){
 
-           this.$message.error("选择规则分类");
 
-           return;
 
-         }
 
-         params.rules = this.docForm.rules;
 
-       }else if(this.docForm.ruleType === 3){
 
-         if (this.docForm.items.length === 0){
 
-           this.$message.error("请选择规则");
 
-           return;
 
-         }
 
-         params.items = this.docForm.items;
 
-       }
 
-       this.commitLoading = true
 
-       this.$axiosUser('POST','/api/pro/pk/doc/c',params).then(res => {
 
-           this.$message.success(res.data.msg);
 
-           this.showDoc = false;
 
-           this.initDocForm();
 
-           this.getDocList();
 
-       })
 
-         .finally(() => {
 
-           this.commitLoading = false
 
-         });
 
-     },
 
-     commitUpdateDoc(){
 
-       let params = {
 
-         doc_id:this.docForm.docId,
 
-         name:this.docForm.name,
 
-         rules:[],
 
-         items:[]
 
-       }
 
-       if (this.docForm.docId <= 0){
 
-         this.$message.error("表单状态异常");
 
-         return;
 
-       }
 
-       if(this.docForm.ruleType === 2) {
 
-         if (this.docForm.rules.length === 0){
 
-           this.$message.error("选择规则分类");
 
-           return;
 
-         }
 
-         params.rules = this.docForm.rules;
 
-       }else if(this.docForm.ruleType === 3){
 
-         if (this.docForm.items.length === 0){
 
-           this.$message.error("请选择规则");
 
-           return;
 
-         }
 
-         params.items = this.docForm.items;
 
-       }
 
-       this.commitLoading = true
 
-       this.$axiosUser('POST','/api/pro/pk/doc/e',params).then(res => {
 
-         this.$message.success(res.data.msg);
 
-         this.showDoc = false;
 
-         this.initDocForm();
 
-         this.getDocList();
 
-       })
 
-         .finally(() => {
 
-           this.commitLoading = false
 
-         });
 
-     },
 
-     // 选人组件提交
 
-     move_employee_confirm(data) {
 
-       this.teamForm.employees = data.employee.map(element => {
 
-         return element.id
 
-       });
 
-       this.employees_selected.employee = data.employee;
 
-     },
 
-     showEmployeeSelect(){
 
-       this.showEmployeeSelector = true;
 
-     },
 
-     commitTeamForm(formName){
 
-       this.$refs[formName].validate(valid => {
 
-         if (!valid) return;
 
-         if (this.isUpdateTeam){
 
-           this.commitUpdateTeam();
 
-         }else {
 
-           this.commitCreateTeam();
 
-         }
 
-       })
 
-     },
 
-     commitUpdateTeam(){
 
-       let params = {
 
-         team_id:this.teamForm.teamId,
 
-         name:this.teamForm.name,
 
-         employees:this.teamForm.employees
 
-       }
 
-       this.commitLoading = true;
 
-       this.$axiosUser('POST','/api/pro/pk/team/e',params).then(res => {
 
-         this.$message.success(res.data.msg);
 
-         this.showTeam = false;
 
-         this.initTeamForm();
 
-         this.refreshContent(this.currentDoc)
 
-       })
 
-         .finally(() => {
 
-           this.commitLoading = false
 
-         });
 
-     },
 
-     commitCreateTeam(){
 
-       let params = {
 
-         doc_id: this.teamForm.docId,
 
-         name: this.teamForm.name,
 
-         employees:this.teamForm.employees
 
-       }
 
-       this.$axiosUser('POST','/api/pro/pk/team/c',params).then(res => {
 
-         this.$message.success(res.data.msg);
 
-         this.showTeam = false;
 
-         this.initTeamForm();
 
-         this.refreshContent(this.currentDoc)
 
-       })
 
-         .finally(() =>{
 
-           this.commitLoading = false
 
-         });
 
-     },
 
-     commitDeleteEmployee(teamId,employeeId){
 
-       this.commitLoading = true;
 
-       this.$axiosUser('POST','/api/pro/pk/team/employee/d',{team_id:teamId,employee_id:employeeId})
 
-         .then(res => {
 
-           this.$message.success(res.data.msg);
 
-           this.refreshContent(this.currentDoc);
 
-         })
 
-         .finally(()=>{
 
-           this.commitLoading = false
 
-         })
 
-     },
 
-     commitDeleteDoc(){
 
-       this.commitLoading = true;
 
-       this.$axiosUser('POST','/api/pro/pk/doc/d',{doc_id:this.currentDoc.id})
 
-         .then(res => {
 
-           this.$message.success(res.data.msg);
 
-           this.showDoc = false;
 
-           this.currentDoc = null;
 
-           this.currentTeam = null;
 
-           this.initDocForm();
 
-           this.getDocList();
 
-         })
 
-         .finally(() => {
 
-           this.commitLoading = false;
 
-         })
 
-     },
 
-     addTeamPoint(){
 
-       this.pointForm.teamId = this.currentTeam.id;
 
-       this.pointForm.teamName = this.currentTeam.name;
 
-       this.showAddPoint = true;
 
-       this.pointForm.date = this.$moment(new Date()).format('YYYY-MM-DD');
 
-     },
 
-     commitPointForm(formName){
 
-       this.$refs[formName].validate(valid => {
 
-         if (!valid) return;
 
-         this.commitLoading = true;
 
-         let params = {
 
-           team_id: this.pointForm.teamId,
 
-           point: this.pointForm.point,
 
-           date: this.pointForm.date,
 
-           remark: this.pointForm.remark
 
-         }
 
-         this.$axiosUser('POST','/api/pro/pk/team/point',params)
 
-           .then(res => {
 
-             this.$message.success(res.data.msg);
 
-             this.showAddPoint = false;
 
-             this.initPointForm();
 
-           })
 
-           .finally(()=>{
 
-             this.commitLoading = false;
 
-           })
 
-       })
 
-     },
 
-     initPointSearchDateRange(){
 
-       //初始化积分列表时间区间
 
-       const pkStartData = new Date();
 
-       const pkEndData = new Date();
 
-       pkStartData.setTime(pkStartData.getTime() - 3600 * 1000 * 24 * 30);
 
-       this.pointSearchDateScope[0] = this.$moment(pkStartData).format('YYYY-MM-DD');
 
-       this.pointSearchDateScope[1] = this.$moment(pkEndData).format('YYYY-MM-DD');
 
-       this.pointSearchForm.timeScope = this.pointSearchDateScope;
 
-     },
 
-     initPointSearchForm(){
 
-       this.initPointSearchDateRange();
 
-       this.pointSearchForm.teamId = this.currentTeam.id;
 
-       this.pointSearchForm.docId = this.currentDoc.id;
 
-       this.pointSearchForm.page = 1;
 
-       this.pointSearchForm.pageSize = 10;
 
-     },
 
-     handlePointPageChange(page){
 
-       this.pointSearchForm.page = page;
 
-       this.getPointList();
 
-     },
 
-     getPointList(){
 
-       if (this.pointSearchForm.teamId === 0 || this.pointSearchForm.docId === 0 || !this.pointSearchForm.timeScope || this.pointSearchForm.timeScope.length !== 2) {
 
-         this.initPointListData();
 
-         return;
 
-       }
 
-       this.pointListLoading = true;
 
-       let params = {
 
-         doc_id: this.pointSearchForm.docId,
 
-         team_id: this.pointSearchForm.teamId,
 
-         page: this.pointSearchForm.page,
 
-         page_size: this.pointSearchForm.pageSize,
 
-         start_date: this.pointSearchForm.timeScope[0],
 
-         end_date: this.pointSearchForm.timeScope[1]
 
-       }
 
-       this.$axiosUser('get','/api/pro/pk/team/point/list',params)
 
-         .then(res => {
 
-           this.pointListData = res.data.data;
 
-         })
 
-         .finally(()=>{
 
-           this.pointListLoading = false;
 
-         })
 
-     },
 
-     clickShowPoint(){
 
-       //初始化积分搜索数据
 
-       this.initPointSearchForm();
 
-       this.getPointList();
 
-       this.showPoint = true;
 
-     }
 
-   },
 
-   created() {
 
-     this.get_rule_trees();
 
-   },
 
-   watch:{
 
-     activeTeam(value){
 
-       this.currentTeam = this.currentDoc.teams.length > value ? this.currentDoc.teams[value] : null;
 
-     },
 
-     rule_list_value(val){
 
-       if(val.length > 0){
 
-         this.docForm.rules = val.map(e => e[e.length - 1]);
 
-       }else {
 
-         this.docForm.rules = [];
 
-       }
 
-     },
 
-     pointSearchDateScope(val){
 
-       this.pointSearchForm.timeScope = val ? val : [];
 
-       this.getPointList();
 
-     }
 
-   },
 
-   mounted() {
 
-     this.getDocList();
 
-   }
 
- }
 
- </script>
 
- <style scoped lang="scss">
 
- .diy_tip_bg {
 
-   background: #f5f6f9;
 
-   overflow: hidden;
 
-   .diy-tip {
 
-     margin-bottom: 10px;
 
-     border: 1px solid #67c23a;
 
-     padding: 20px 16px;
 
-     p {
 
-       color: #67c23a !important;
 
-       font-size: 15px;
 
-       margin: 0 !important;
 
-       padding-bottom: 4px;
 
-     }
 
-   }
 
- }
 
- .headLi {
 
-   padding: 4px;
 
-   list-style: disc;
 
-   font-size: 14px;
 
- }
 
- .left{
 
-   padding:10px;
 
-   overflow: auto;
 
-   max-height: 800px;
 
- }
 
- .boxMinHeight{
 
-   background-color: #fff;
 
- }
 
- .inputBox {
 
-   height: 36px;
 
-   line-height: 36px;
 
-   padding-right: 30px;
 
-   -webkit-appearance: none;
 
-   background-color: #fff;
 
-   background-image: none;
 
-   border-radius: 4px;
 
-   border: 1px solid #dcdfe6;
 
-   -webkit-box-sizing: border-box;
 
-   box-sizing: border-box;
 
-   color: #606266;
 
-   display: inline-block;
 
-   font-size: inherit;
 
-   width: 400px;
 
-   outline: 0;
 
-   padding: 0 15px;
 
-   cursor: pointer;
 
-   -webkit-transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
 
-   transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
 
- }
 
- </style>
 
 
  |