From e20162f7ae414a5679a98de4546b63e7ff6926c5 Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期二, 23 四月 2024 17:38:25 +0800
Subject: [PATCH] 考勤管理 前端页面开发+列表的接口联调,字段调试+删除的接口联调+规则设置获取接口联调+保存接口联调

---
 src/views/employeeSalary/attendanceManage/components/RuleSettingDialog.vue               |  177 +++++++++++++++++++++++++
 src/components/makepager/TableCommonView.vue                                             |   14 +
 /dev/null                                                                                |  177 -------------------------
 src/views/employeeSalary/attendanceStatistics/components/AttendanceStatisticsDetails.vue |    4 
 4 files changed, 192 insertions(+), 180 deletions(-)

diff --git a/src/components/makepager/TableCommonView.vue b/src/components/makepager/TableCommonView.vue
index 350d107..bc0f088 100644
--- a/src/components/makepager/TableCommonView.vue
+++ b/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 {
diff --git a/src/views/employeeSalary/attendanceManage/components/RuleSettingDialog.vue b/src/views/employeeSalary/attendanceManage/components/RuleSettingDialog.vue
new file mode 100644
index 0000000..4d2fee4
--- /dev/null
+++ b/src/views/employeeSalary/attendanceManage/components/RuleSettingDialog.vue
@@ -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>
diff --git a/src/views/employeeSalary/attendanceStatistics/components/AttendanceStatisticsDetails.vue b/src/views/employeeSalary/attendanceStatistics/components/AttendanceStatisticsDetails.vue
index a080151..306b58a 100644
--- a/src/views/employeeSalary/attendanceStatistics/components/AttendanceStatisticsDetails.vue
+++ b/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: '',
diff --git a/src/views/employeeSalary/attendanceStatistics/components/RuleSettingDialog.vue b/src/views/employeeSalary/attendanceStatistics/components/RuleSettingDialog.vue
deleted file mode 100644
index 30d6a40..0000000
--- a/src/views/employeeSalary/attendanceStatistics/components/RuleSettingDialog.vue
+++ /dev/null
@@ -1,177 +0,0 @@
-<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" :inline="true" label-width="150px"
-        label-position="right">
-        <el-form-item label="宸ヤ綔鏃ュ姞鐝鍒�:" prop="materialMatch">
-          <el-radio-group v-model="form.materialMatch">
-            <el-radio label="1">
-              涓嶅惎鐢ㄥ伐浣滄棩鍔犵彮
-            </el-radio>
-            <el-radio label="2">
-              瓒呰繃
-              <el-input class="margin_left_10px margin_right_10px" style="width:120px" v-model.number="form.cycle"
-                placeholder="璇疯緭鍏�"></el-input>
-              灏忔椂绠楀姞鐝�
-            </el-radio>
-          </el-radio-group>
-        </el-form-item>
-        <el-form-item label="浼戞伅鏃ュ姞鐝鍒�:" prop="materialMatch">
-          <el-radio-group v-model="form.materialMatch">
-            <el-radio label="1">
-              涓嶅惎鐢ㄤ紤鎭棩鍔犵彮
-            </el-radio>
-            <el-radio label="2">
-              瓒呰繃
-              <el-input class="margin_left_10px margin_right_10px" style="width:120px" v-model.number="form.cycle"
-                placeholder="璇疯緭鍏�"></el-input>
-              灏忔椂绠楀姞鐝�
-            </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 { getMiniDictList, saveMiniDict } from "@/api/employeeSalary/attendanceStatistics.js" // 鐗堟湰绫诲瀷
-export default {
-  props: {},
-  data() {
-    return {
-      islook: false,
-      form: {
-        warningDays: 3,
-        materialMatch: '1',
-      },
-      rules: {
-        cycle: [
-          {
-            required: true,
-            message: "璇疯緭鍏�",
-            trigger: "blur",
-          },
-          {
-            validator: this.validatorNum,
-            trigger: "blur",
-          },
-        ],
-      },
-      procedureIdsList: [],
-    };
-  },
-  mounted() {
-    // this.getMiniDictList();
-  },
-  watch: {
-    islook(newVal) {
-      if (newVal) {
-        this.getMiniDictList();
-        this.$nextTick(() => {
-          this.$refs["form"].resetFields();
-        });
-      }
-    },
-  },
-  methods: {
-    validatorNum(rule, value, callback) {
-      if (value) {
-        if (value == undefined || value == null) {
-          callback(new Error("璇疯緭鍏ユ湁鏁堟暟瀛�"));
-        } else {
-          var reg = /^\+?[0-9]\d*$/;
-          if (!reg.test(value)) {
-            callback(new Error("璇峰~鍐欎笉灏忎簬0鐨勬暟瀛�"));
-          } else {
-            callback();
-          }
-        }
-      } else {
-        callback();
-      }
-    },
-    async getMiniDictList() {
-      await getMiniDictList({ type: 3 }).then((res) => {
-        if (res.code == 200) {
-          if (res.data) {
-            for (let i in res.data) {
-              if (res.data[i].value == '棰勮澶╂暟') {
-                this.form.warningDays = parseInt(res.data[i].name);
-              } else if (res.data[i].value == '鐗╂枡鍖归厤鏉′欢') {
-                this.form.materialMatch = res.data[i].name ? res.data[i].name : '1';
-              }
-            }
-          }
-        }
-      });
-    },
-    onSubmit() {
-      this.$refs.form.validate((valid) => {
-        if (valid) {
-          console.log(this.form);
-          let params = {
-            list: [
-              {
-                name: "" + this.form.warningDays,
-                value: "棰勮澶╂暟"
-              },
-              {
-                name: "" + this.form.materialMatch,
-                value: "鐗╂枡鍖归厤鏉′欢"
-              },
-            ],
-            type: 3,
-          };
-
-          saveMiniDict(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 {
-    ::v-deep .el-form-item__content {
-      width: calc(100% - 150px);
-    }
-
-    .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>

--
Gitblit v1.8.0