Summer vor 4 Jahren
Ursprung
Commit
5c9fc1a43d
3 geänderte Dateien mit 112 neuen und 25 gelöschten Zeilen
  1. 63 10
      src/components/publics/workpoints.vue
  2. 19 10
      src/views/check.vue
  3. 30 5
      src/views/initialPoint.vue

+ 63 - 10
src/components/publics/workpoints.vue

@@ -5,14 +5,24 @@
       <div class="initia_title_1">{{initia_head.initial_suertext}}</div>
       <div class="nitia_list" v-for="(v,i) in initia_arr" :key="i">
         <span>{{v.initialName}}</span>
-        <!-- <el-tooltip placement="top">
-          <div slot="content" class="initia_mark?">多行信息<br/>第二行信息</div>
-          <el-button class="initia_el_button"></el-button>
-        </el-tooltip>-->
         <p class="initia_mark" v-show="v.initia_mark">?</p>
-        <el-input v-model="v.initia_input" placeholder="请输入分值"></el-input>
+        <div class="initia_mark_none">
+          <div class="initia_mark_none_text">
+            <p v-html="v.initial_text"></p>
+          </div>
+          <div class="initia_mark_none_jt"></div>
+        </div>
+        <el-input
+          v-model="v.initia_input"
+          placeholder="请输入分值"
+          oninput="if(this.value=='0'){this.value='';}else{this.value=this.value.replace(/[^0-9]/g,'')}"
+        ></el-input>
       </div>
-      <button class="initia_button" @click="save()">保存</button>
+      <button
+        class="initia_button"
+        @click="save()"
+        :style="'margin: 20px 0 0 '+initia_head.initial_left"
+      >保存</button>
     </div>
   </div>
 </template>
@@ -36,10 +46,20 @@ export default {
           arr.push({
             sj: this.initia_arr[i].initia_input,
           });
-          this.initia_arr[i].initia_input = "";
+          if (arr.length == this.initia_arr.length) {
+            this.$emit("initia", arr);
+            for (let a = 0; a < this.initia_arr.length; a++) {
+              this.initia_arr[a].initia_input = "";
+            }
+          }
+        }else{
+          this.$message({
+            message: '请输入内容',
+            type: 'warning'
+          });
+            return
         }
       }
-      this.$emit("initia", arr);
     },
   },
 };
@@ -77,6 +97,7 @@ export default {
   margin-top: 20px;
   display: flex;
   align-items: center;
+  position: relative;
 }
 .nitia_list span {
   color: #606266;
@@ -92,7 +113,6 @@ export default {
   border: 1px solid rgba(220, 223, 230, 1);
   margin-left: 11px;
 }
-
 .initia_button {
   border-radius: 4px;
   background-color: rgba(38, 162, 255, 1);
@@ -102,11 +122,44 @@ export default {
   color: #ffffff;
   text-align: center;
   line-height: 40px;
-  margin: 20px 0 0 72px;
   outline: none;
 }
 .initia_el_button {
   width: 13px;
   border-radius: 50%;
 }
+.initia_mark_none_jt {
+  float: left;
+  width: 0;
+  height: 0;
+  border-width: 6px;
+  border-style: solid;
+  border-color: rgba(0, 0, 0, 1) transparent transparent transparent;
+  margin-left: 56px;
+  opacity: 0.8;
+}
+.initia_mark_none_text {
+  background-color: rgba(0, 0, 0, 1);
+  border-radius: 3px;
+  opacity: 0.9;
+}
+.initia_mark_none_text p {
+  padding: 7px 15px 15px 7px;
+  color: #ffffff;
+  font-size: 12px;
+}
+.initia_mark_none {
+  position: absolute;
+  left: -10px;
+  bottom: 32px;
+  transition: 0.4s;
+  opacity: 0;
+  visibility: hidden;
+  z-index: 0;
+}
+.initia_mark:hover + .initia_mark_none {
+  opacity: 1;
+  visibility: visible;
+  z-index: 10;
+}
 </style>

+ 19 - 10
src/views/check.vue

@@ -12,6 +12,7 @@ export default {
       initia_head: {
         initial_suername: "考勤积分",
         initial_suertext: "以下考勤奖扣分,均为B分",
+        initial_left: "125px",
       },
       initia_arr: [
         {
@@ -75,19 +76,27 @@ export default {
   mounted() {},
   methods: {
     initia(ok) {
-      // 待优化:
       let objs = this.obj;
-      objs.month_full_ad = ok[0].sj;
-      objs.normal = ok[1].sj;
-      objs.no_sign = ok[2].sj;
-      objs.absent = ok[5].sj;
-      objs.on_duty_late = ok[3].sj;
-      objs.off_duty_early = ok[4].sj;
-      objs.ot_per_hour = ok[6].sj;
-      objs.leave_per_hour = ok[7].sj;
-
+      objs.month_full_ad = +ok[0].sj;//>=0
+      objs.normal = +ok[1].sj;//>=0
+      objs.no_sign = -ok[2].sj;//<=0
+      objs.absent = -ok[5].sj;//<=0
+      objs.on_duty_late = -ok[3].sj;//<=0
+      objs.off_duty_early = -ok[4].sj;//<=0
+      objs.ot_per_hour = +ok[6].sj;//>=0
+      objs.leave_per_hour = -ok[7].sj;//<=0
       this.$axios.post("api/ad/update", this.obj).then((res) => {
         console.log(res);
+        if(res.data.code==1){
+          this.$message({
+            message: '保存成功',
+            type: 'success'
+          });
+        }else{
+          this.$message.error('保存失败');
+        }
+      }).catch((err)=>{
+        console.log(err);
       });
     },
   },

+ 30 - 5
src/views/initialPoint.vue

@@ -12,10 +12,23 @@ export default {
       initia_head: {
         initial_suername: "初始分",
         initial_suertext: "基础分和工龄分均为B分",
+        initial_left: "72px",
       },
       initia_arr: [
-        { initialName: "基础分", initia_mark: true, initia_input: "" },
-        { initialName: "工龄分", initia_mark: true, initia_input: "" },
+        {
+          initialName: "基础分",
+          initia_mark: true,
+          initia_input: "",
+          initial_text:
+            "基础分是为了让积分保持正激励的作用,减少出现0分<br/>以下的情况,更好地激励员工挣分;<br/>设置分值后,系统将为全部员工自动加上此项基础分;<br/>此项基础分仅加一次,计入每个员工的累积总分",
+        },
+        {
+          initialName: "工龄分",
+          initia_mark: true,
+          initia_input: "",
+          initial_text:
+            "工龄分是为了更好的认可老员工;<br/>首次加分=员工已在职的月份*工龄分,未满一个月的不<br/>加分;后续加分按设置的工龄分值每月自动累加",
+        },
       ],
     };
   },
@@ -25,9 +38,21 @@ export default {
   created() {},
   mounted() {},
   methods: {
-	  initia(ok){
-		  console.log(ok)
-	  }
+    initia(ok) {
+      this.$axios.post("api/integral/site/config").then((res) => {
+        console.log(res);
+        if(res.data.code==1){
+          this.$message({
+            message: '保存成功',
+            type: 'success'
+          });
+        }else{
+          this.$message.error('保存失败');
+        }
+      }).catch((err)=>{
+        console.log(err);
+      });
+    },
   },
 };
 </script>