Bladeren bron

增加代码

humingbo 1 jaar geleden
bovenliggende
commit
7d584696b3
2 gewijzigde bestanden met toevoegingen van 155 en 8 verwijderingen
  1. 25 0
      src/api/performance/performance.js
  2. 130 8
      src/views/statistics/performance.vue

+ 25 - 0
src/api/performance/performance.js

@@ -23,5 +23,30 @@ export function getDateDataList(){
   })
 }
 
+/**
+ * 添加评分设置
+ * @param data
+ * @returns {*}
+ */
+export function addPerformanceScoreSet(data){
+  return request({
+    url: "/performanceScoreSet/addPerformanceScoreSet",
+    method: "POST",
+    data: data
+  })
+}
+
+/**
+ * 编辑绩效评分
+ * @param data
+ * @returns {*}
+ */
+export function editPerformanceScore(data){
+  return request({
+    url: "/performanceScore/editPerformanceScore",
+    method: "POST",
+    data: data
+  })
+}
 
 

+ 130 - 8
src/views/statistics/performance.vue

@@ -1,6 +1,6 @@
 <template>
   <div class="app-container">
-    <el-row :gutter="24">
+    <el-row :gutter="24" >
       <el-col :span="6">
         <div class="block">
           <el-date-picker
@@ -17,7 +17,8 @@
 
       </el-col>
       <el-col :span="18">
-
+        <el-header style="background-color: green">111</el-header>
+        <el-main style="background-color: darkslategray;height: auto">eeee</el-main>
       </el-col>
     </el-row>
 
@@ -32,10 +33,12 @@
           <el-radio v-model="editForm.scoreType" label="1">月度评分</el-radio>
         </el-form-item>
         <el-form-item label="被评分人:">
-          <el-input size="mini" v-model="editForm.scoreUsers" style="width: 250px"></el-input>
+          <el-input  type="textarea" autosize size="mini" v-model="editForm.scoreUsers" :readonly="true" style="width: 250px">
+          </el-input>
+          <el-button @click="openUsers1()" style="margin-left: 5px;" icon="el-icon-search" type="primary"></el-button>
         </el-form-item>
         <el-form-item label="评分年月:">
-          <el-select size="mini" clearable filterable v-model="editForm.dateId" placeholder="请选择评分年月">
+          <el-select style="width: 250px" size="mini" clearable filterable v-model="editForm.dateId" placeholder="请选择评分年月">
             <el-option v-for="(item,index) in dateDatas" :key="index" :label="item.year+'年'+item.month+'月'" :value="item.id"></el-option>
           </el-select>
         </el-form-item>
@@ -56,14 +59,38 @@
       </div>
     </el-dialog>
 
+    <el-dialog title="选择人员" :visible.sync="users1Visble" width="30%" @click="closeUser1Dialog"
+               :close-on-click-modal="false">
+      <el-input placeholder="输入关键字进行过滤" v-model="filterText">
+      </el-input>
+      <el-tree
+        ref="dept1"
+        :data="userList"
+        node-key="id"
+        :props="{label:'name'}"
+        :default-expand-all="false"
+        show-checkbox
+        :filter-node-method="filterNode">
+      </el-tree>
+      <div slot="footer" class="dialog-footer">
+        <el-button size="mini" @click="closeUser1Dialog">取消</el-button>
+        <el-button size="mini" type="primary" class="title" @click="submitUser1Form('editForm')">确定</el-button>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
 <script>
-import { getDateDataList } from '@/api/performance/performance'
+import { addPerformanceScoreSet, getDateDataList } from '@/api/performance/performance'
+import { getDeptUserTree } from '@/api/system/user'
 
 export default {
   name: 'performance',
+  watch: {
+    filterText(val) {
+      this.$refs.dept1.filter(val);
+    },
+  },
   data() {
     return {
       yearValue:'2024',
@@ -73,10 +100,16 @@ export default {
         name:'',
         scoreType:'0',
         scoreUsers:null,
+        scoreUserss:null,
         beginDate:null,
         endDate:null,
-        dateId:null
+        dateId:null,
+        year:null,
+        month:null
       },
+      users1Visble:false,
+      filterText: '',
+      userList:[],
       dateDatas:[],
       monthDatas:[],
       data: [{
@@ -106,9 +139,14 @@ export default {
     };
   },
   mounted() {
-
+    this.getUsers()
   },
   methods: {
+    getUsers(){
+      getDeptUserTree('1').then(res => {
+        this.userList = res.data
+      });
+    },
     handleNodeClick(data) {
       console.log(data);
     },
@@ -117,6 +155,8 @@ export default {
     },
     addScoreWin(){
       this.getDateDataLists();
+      this.editForm.scoreUsers = null
+      this.editForm.scoreUserss = null
       this.editFormVisible=true;
     },
     closeDialog(){
@@ -133,12 +173,94 @@ export default {
           let d=data[i]
           if(d.year===currentYear && d.month===currentMonth){
             this.editForm.dateId=d.id;
+            this.editForm.year=d.year
+            this.editForm.month=d.month
           }
         }
       });
     },
+    openUsers1() {
+      this.users1Visble = true
+    },
+    closeUser1Dialog(){
+      this.users1Visble = false
+    },
+    submitUser1Form() {
+      //获取选中的节点
+      let node = this.$refs.dept1.getCheckedNodes();
+      if (node == undefined || node == null || node.length === 0) {
+        this.$message({
+          message: '请选择人员数据!',
+          type: 'warning'
+        });
+        return;
+      }
+      let userList = []
+      let userName = ''
+      let saveUsers = []
+      node.forEach(item => {
+        if (item.type === 'u') {
+          userList.push(item);
+          userName += item.name + '、';
+          saveUsers.push({
+            id: item.id,
+            name: item.name
+          })
+        }
+      })
+      userName = userName.substring(0, userName.length - 1);
+      if (userList.length === 0) {
+        this.$message({
+          message: '请选择人员!',
+          type: 'warning'
+        });
+        return;
+      }
+      this.editForm.scoreUsers = userName
+      this.editForm.scoreUserss = saveUsers
+      this.closeUser1Dialog();
+    },
     submitForm(){
-      alert('提交')
+      let editForm = this.editForm
+      let name=editForm.name
+      if(name===null || name===''){
+        this.$message.warning("请输入评分名称!")
+        return
+      }
+      let scoreUsers=editForm.scoreUsers
+      if(scoreUsers===null || scoreUsers===''){
+        this.$message.warning("请选择被评分人员!")
+        return
+      }
+      let dateId=editForm.dateId
+      if(dateId===null){
+        this.$message.warning("请选择评分年月!")
+        return
+      }
+      let beginDate=editForm.beginDate
+      if(beginDate===null || beginDate===''){
+        this.$message.warning("请选择评分开始日期!")
+        return
+      }
+      let endDate=editForm.endDate
+      if(endDate===null || endDate===''){
+        this.$message.warning("请选择评分结束日期!")
+        return
+      }
+      //提交表单
+      addPerformanceScoreSet(editForm).then(res=>{
+        this.$message.success("操作成功!")
+        this.editFormVisible=false;
+        this.getDateDataLists();
+      });
+
+    },
+    filterNode(value, data) {
+      if (!value) {
+        return true
+      }
+      ;
+      return data.name.indexOf(value) !== -1;
     }
   }
 }