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