考勤管理 前端页面开发+列表的接口联调,字段调试+删除的接口联调+规则设置获取接口联调+保存接口联调
1个文件已删除
1个文件已添加
2个文件已修改
372 ■■■■ 已修改文件
src/components/makepager/TableCommonView.vue 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/employeeSalary/attendanceManage/components/RuleSettingDialog.vue 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/employeeSalary/attendanceStatistics/components/AttendanceStatisticsDetails.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/employeeSalary/attendanceStatistics/components/RuleSettingDialog.vue 177 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/makepager/TableCommonView.vue
@@ -96,7 +96,16 @@
            v-else-if="item.isCommonClick && scope.row[item.prop]"
            class="sel-name"
            @click="selCommonClick(scope.row)"
            >{{ scope.row[item.prop] }}</span
            >
            <div v-if="item.isCallMethod">
              <span :class="item.isClass ? item.getClassName(scope.row[item.prop], scope.row) : ''">
              <span v-if="item.isIcon" v-html="item.getCallMethod(scope.row[item.prop], scope.row)"></span>
              <span v-else>{{ item.getCallMethod(scope.row[item.prop], scope.row) }}</span>
              </span>
            </div>
            <span v-else>{{ scope.row[item.prop] }}</span>
            </span
          >
          <div v-else-if="item.isProductName" class="product-view">
            <ul v-if="scope.row.products && scope.row.products.length > 0">
@@ -479,6 +488,9 @@
      font-weight: bold;
    }
  }
  .el-table__fixed-body-wrapper{
    top:37px!important;
  }
}
::v-deep .el-table .cell {
src/views/employeeSalary/attendanceManage/components/RuleSettingDialog.vue
New file
@@ -0,0 +1,177 @@
<template>
  <el-dialog :close-on-click-modal="false" :visible.sync="islook" width="35rem" class="add-rule-set-dialog"
    @close="shutdown">
    <div slot="title" class="tac drawerHeader">规则设置</div>
    <div class="dialog-content-box">
      <el-form ref="form" class="form-box" :rules="rules" :model="form"
       label-width="150px"
        label-position="right">
        <el-form-item label="工作日加班规则:" prop="weekdayRule">
          <el-radio-group v-model="form.weekdayRule">
            <el-radio :label="1" style="width:100%">
              不启用工作日加班
            </el-radio>
            <el-radio :label="2" style="width:100%">
              超过
              <el-form-item label="" label-width="0"
              class="margin_left_10px margin_right_10px"
              style="width:120px;display:inline-block"
               prop="overTimeStart"
              :rules="[{ required: form.weekdayRule==2? true : false, message: '请输入' },{
            validator: this.validatorNum,
            trigger: 'blur',
          }]">
                <el-input  v-model.number="form.overTimeStart"
                  placeholder="请输入"></el-input>
              </el-form-item>
              小时算加班
            </el-radio>
          </el-radio-group>
        </el-form-item>
        <el-form-item label="休息日加班规则:" prop="restDayRule">
          <el-radio-group v-model="form.restDayRule">
            <el-radio :label="1" style="width:100%">
              不启用休息日加班
            </el-radio>
            <el-radio :label="2" style="width:100%">
              超过
              <el-form-item label="" label-width="0" prop="restDayStart"
              class="margin_left_10px margin_right_10px"
              style="width:120px;display:inline-block"
              :rules="[{ required: form.restDayRule==2? true : false, message: '请输入' },{
            validator: this.validatorNum,
            trigger: 'blur',
          }]">
                <el-input  v-model.number="form.restDayStart"
                  placeholder="请输入"></el-input>
              </el-form-item>
              小时算加班
            </el-radio>
          </el-radio-group>
        </el-form-item>
      </el-form>
    </div>
    <div slot="footer" class="dialog-footer tac">
      <el-button @click="shutdown">取消</el-button>
      <el-button type="primary" @click="onSubmit(form)">确定</el-button>
    </div>
  </el-dialog>
</template>
<script>
import { getAttendanceRule,saveAttendanceRule } from "@/api/employeeSalary/attendanceManage.js"
export default {
  props: {},
  data() {
    return {
      islook: false,
      form: {
        weekdayRule: 1,
        overTimeStart: null,
        restDayRule:1,
        restDayStart:null,
      },
      rules: {
        cycle: [
          {
            required: true,
            message: "请输入",
            trigger: "blur",
          },
          {
            validator: this.validatorNum,
            trigger: "blur",
          },
        ],
      },
      procedureIdsList: [],
    };
  },
  mounted() {
  },
  watch: {
    islook(newVal) {
      if (newVal) {
        this.getAttendanceRule();
        this.$nextTick(() => {
          this.$refs["form"].resetFields();
        });
      }
    },
  },
  methods: {
    validatorNum(rule, value, callback) {
      if (value) {
        if (value == undefined || value == null) {
          callback(new Error("请输入有效数字"));
        } else {
          var reg = /^\+?[1-9]\d*$/;
          if (!reg.test(value)) {
            callback(new Error("请填写不小于0的数字"));
          } else {
            callback();
          }
        }
      } else {
        callback();
      }
    },
    async getAttendanceRule() {
      await getAttendanceRule().then((res) => {
        if (res.code == 200) {
          if (res.data) {
            this.form=JSON.parse(JSON.stringify(res.data));
            this.form.overTimeStart=this.form.overTimeStart==0?null:this.form.overTimeStart
            this.form.restDayStart=this.form.restDayStart==0?null:this.form.restDayStart
          }
        }
      });
    },
    onSubmit() {
      this.$refs.form.validate((valid) => {
        if (valid) {
          console.log(this.form);
          let params =JSON.parse(JSON.stringify(this.form));
          params.overTimeStart=Number(params.overTimeStart)
          params.restDayStart=Number(params.restDayStart)
          saveAttendanceRule(params).then((res) => {
            if (res.code == 200) {
              this.$message({
                message: "保存成功!",
                type: "success",
              });
              // 保存
              this.shutdown("save");
            }
          });
        }
      });
    },
    shutdown(val) {
      this.islook = false;
      this.$emit("closeClick", val);
    },
  },
};
</script>
<style lang="scss" scoped>
.add-rule-set-dialog {
  .form-box {
    .el-form-item {
      width: 100%;
      .el-radio{
        height:40px;
        line-height:40px;
      }
    }
  }
}
::v-deep .el-input__inner {
  font-size: 13px !important;
  color: rgba(0, 0, 0, 0.9);
  text-align: left;
}
</style>
src/views/employeeSalary/attendanceStatistics/components/AttendanceStatisticsDetails.vue
@@ -1,7 +1,7 @@
<template>
  <el-dialog :close-on-click-modal="false" :visible.sync="islook" width="40rem" class="add-event-dialog"
    @close="cancelMethod">
    <div slot="title" class="tac drawerHeader">{{ editRow.title }}</div>
    <div slot="title" class="tac drawerHeader">详情</div>
    <div class="dialog-content-box">
      <el-form class="form-box" ref="form" :rules="rules" :model="form" label-width="140px" label-position="right">
        <el-form-item label="员工姓名:" prop="id">
@@ -81,7 +81,7 @@
  },
  data() {
    return {
      islook: true,
      islook: false,
      form: {
        id: '',
        isCore: '',
src/views/employeeSalary/attendanceStatistics/components/RuleSettingDialog.vue
File was deleted