From e74c7f21a3a9a64d2a4a311bd42d38db4daa7244 Mon Sep 17 00:00:00 2001
From: 小小儁爺 <1694218219@qq.com>
Date: 星期四, 05 九月 2024 10:50:10 +0800
Subject: [PATCH] 1.考勤打卡页面递交
---
src/views/attendanceModule/attendanceSettings.vue | 360 +++++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 285 insertions(+), 75 deletions(-)
diff --git a/src/views/attendanceModule/attendanceSettings.vue b/src/views/attendanceModule/attendanceSettings.vue
index 8c27fe2..4d34b75 100644
--- a/src/views/attendanceModule/attendanceSettings.vue
+++ b/src/views/attendanceModule/attendanceSettings.vue
@@ -22,20 +22,52 @@
>
<div class="elForm">
<el-form-item label="杞﹂棿鍚嶇О" style=" display: flex;">
- <el-input v-model="form.postcode" placeholder="璇疯緭鍏�" style="width: 200px" />
+ <el-select
+ v-model="form.wkshop_code"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in wkshopArr"
+ :key="item.torg_code"
+ :label="item.torg_name"
+ :value="item.torg_code"
+ />
+ </el-select>
</el-form-item>
- <el-form-item label="鍙傚姞浜哄憳" style=" display: flex;">
- <el-input v-model="form.postname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ <el-form-item label="鍒涘缓浜哄憳" style=" display: flex;">
+ <el-select
+ v-model="form.creatuser"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in creatuserArr"
+ :key="item.usercode"
+ :label="item.username"
+ :value="item.usercode"
+ />
+ </el-select>
</el-form-item>
<el-form-item label="鍒涘缓鏃堕棿" style=" display: flex;">
- <el-input v-model="form.postname" placeholder="璇疯緭鍏�" style="width: 200px" />
+ <el-date-picker
+ v-model="form.creatdate"
+ type="daterange"
+ range-separator="~"
+ class="timeMini"
+ size="mini"
+ style="width: 200px;display: flex;line-height: 34px;height: 34px;"
+ :clearable="false"
+ start-placeholder="寮�濮嬫棩鏈�"
+ end-placeholder="缁撴潫鏃ユ湡"
+ />
</el-form-item>
</div>
<div
class="bodySearchReset"
:style="{marginLeft:$store.state.app.sidebar.opened? $store.state.settings.menuIsHorizontal?'15%':'3%':'10%'}"
>
- <el-button v-waves type="primary" icon="el-icon-search" @click="getPostData">鏌ヨ</el-button>
+ <el-button v-waves type="primary" icon="el-icon-search" @click="getAttendanceSettSearch">鏌ヨ</el-button>
<el-button v-waves type="info" icon="el-icon-refresh" @click="reset">閲嶇疆</el-button>
</div>
</el-form>
@@ -80,38 +112,48 @@
label="搴忓彿"
/>
<el-table-column
- prop="postcode"
- label="宀椾綅缂栫爜"
+ prop="wkshop_name"
+ label="鎵�灞炶溅闂�"
+ width="110"
sortable="custom"
/>
<el-table-column
- prop="postname"
- label="宀椾綅鍚嶇О"
+ prop="workhouse"
+ label="涓婄彮鏃堕棿"
+ width="110"
sortable="custom"
/>
<el-table-column
- prop="status"
- label="鐘舵��"
+ prop="uphouse"
+ label="涓婄彮鎵撳崱鍚庣疆鏃堕棿(鍒嗛挓)"
sortable="custom"
- >
- <template slot-scope="{row}">
- <el-tag v-if="row.status==='Y'" size="small" type="success">姝e父</el-tag>
- <el-tag v-if="row.status==='N'" size="small" type="danger">鍋滅敤</el-tag>
- </template>
- </el-table-column>
+ />
<el-table-column
- prop="description"
- label="鎻忚堪"
+ prop="closehouse"
+ label="涓嬬彮鏃堕棿"
+ width="110"
sortable="custom"
- >
- <template slot-scope="{row}">
- {{ row.description ? row.description : '/' }}
- </template>
- </el-table-column>
+ />
+ <el-table-column
+ prop="downhouse"
+ label="涓嬬彮鎵撳崱鍓嶇疆鏃堕棿(鍒嗛挓)"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="workprice"
+ label="涓婄彮宸ヤ环/灏忔椂"
+ sortable="custom"
+ />
+ <el-table-column
+ prop="overprice"
+ label="鍔犵彮宸ヤ环/灏忔椂"
+ sortable="custom"
+ />
<el-table-column
prop="username"
label="鍒涘缓浜哄憳"
sortable="custom"
+ width="110"
/>
<el-table-column
prop="lm_date"
@@ -155,7 +197,7 @@
align="right"
layout="total,prev, pager, next,sizes,jumper"
popper-class="select_bottom"
- @pagination="getPostData"
+ @pagination="getAttendanceSettSearch"
/>
</div>
@@ -163,32 +205,103 @@
v-el-drag-dialog
:title="operation==='add'?'鏂板':'缂栬緫'"
:visible.sync="dialogVisible"
- width="800px"
+ width="900px"
:close-on-click-modal="false"
top="15vh"
@closed="handleClose"
@close="handleClose"
>
- <el-form ref="dialogForm" inline :rules="dialogFormRules" :model="dialogForm" label-width="80px">
- <el-form-item label="宀椾綅缂栫爜" prop="postcode">
- <el-input v-model="dialogForm.postcode" :disabled="operation!=='add'" style="width: 200px" />
+ <el-form
+ ref="dialogForm"
+ inline
+ :rules="dialogFormRules"
+ :model="dialogForm"
+ label-width="140px"
+ >
+ <el-form-item label="杞﹂棿鍚嶇О" prop="wkshop_code">
+ <el-select
+ v-model="dialogForm.wkshop_code"
+ style="width: 200px"
+ placeholder="璇烽�夋嫨"
+ >
+ <el-option
+ v-for="item in wkshopArr"
+ :key="item.torg_code"
+ :label="item.torg_name"
+ :value="item.torg_code"
+ />
+ </el-select>
</el-form-item>
- <el-form-item label="宀椾綅鍚嶇О" prop="postname">
- <el-input v-model="dialogForm.postname" style="width: 200px" />
+ <el-form-item label="杞﹂棿鍚嶇О" style="opacity: 0">
+ <!-- <el-select-->
+ <!-- v-model="dialogForm.wkshop_code"-->
+ <!-- style="width: 200px"-->
+ <!-- placeholder="璇烽�夋嫨"-->
+ <!-- >-->
+ <!-- <el-option-->
+ <!-- v-for="item in wkshopArr"-->
+ <!-- :key="item.torg_code"-->
+ <!-- :label="item.torg_name"-->
+ <!-- :value="item.torg_code"-->
+ <!-- />-->
+ <!-- </el-select>-->
</el-form-item>
- <el-form-item label="鎻忚堪">
+ <el-form-item label="涓婄彮鏃堕棿" prop="workhouse">
+ <el-time-select
+ v-model="dialogForm.workhouse"
+ placeholder="涓婄彮鏃堕棿"
+ style="width: 200px"
+ :picker-options="{
+ start: '06:30',
+ step: '00:15',
+ end: '18:30'
+ }"
+ />
+ </el-form-item>
+
+ <el-form-item label="涓嬬彮鏃堕棿" prop="closehouse">
+ <el-time-select
+ v-model="dialogForm.closehouse"
+ placeholder="涓嬬彮鏃堕棿"
+ style="width: 200px"
+ :picker-options="{
+ start: '06:30',
+ step: '00:15',
+ end: '18:30',
+ minTime: dialogForm.workhouse
+ }"
+ />
+ </el-form-item>
+ <el-form-item label="涓婄彮鍚庣疆(鍒嗛挓)" prop="uphouse">
<el-input
- v-model="dialogForm.description"
- type="textarea"
+ v-model="dialogForm.uphouse"
+ oninput="value=value.replace(/[^0-9.]/g,'')"
style="width: 200px"
/>
</el-form-item>
- <el-form-item required label="宀椾綅鐘舵��">
- <el-radio-group v-model="dialogForm.status">
- <el-radio label="Y">姝e父</el-radio>
- <el-radio label="N">鍋滅敤</el-radio>
- </el-radio-group>
+ <el-form-item label="涓嬬彮鍓嶇疆(鍒嗛挓)" prop="downhouse">
+ <el-input
+ v-model="dialogForm.downhouse"
+ oninput="value=value.replace(/[^0-9.]/g,'')"
+ style="width: 200px"
+ />
</el-form-item>
+
+ <el-form-item label="涓婄彮宸ヤ环(鍏�/灏忔椂)" prop="workprice">
+ <el-input
+ v-model="dialogForm.workprice"
+ oninput="value=value.replace(/[^0-9.]/g,'')"
+ style="width: 200px"
+ />
+ </el-form-item>
+ <el-form-item label="鍔犵彮宸ヤ环(鍏�/灏忔椂)" prop="overprice">
+ <el-input
+ v-model="dialogForm.overprice"
+ oninput="value=value.replace(/[^0-9.]/g,'')"
+ style="width: 200px"
+ />
+ </el-form-item>
+
</el-form>
<span slot="footer" class="dialog-footer">
<div class="footerButton">
@@ -209,10 +322,11 @@
<script>
import Pagination from '@/components/Pagination'
-import { AddUpdatePost, DeletePost, PostData } from '@/api/basicSettings'
-import { validateCode } from '@/utils/global'
+import { handleDatetime } from '@/utils/global'
import elDragDialog from '@/directive/el-drag-dialog'
import waves from '@/directive/waves'
+import { PersonPermissions, PrentOrganizationNoCompany } from '@/api/GeneralBasicData'
+import { AttendanceSettAddUpdate, AttendanceSettDelete, AttendanceSettSearch } from '@/api/attendanceModule'
export default {
name: 'AttendanceSettings',
@@ -225,8 +339,9 @@
mainHeight: 0,
tableHeight: 0,
form: {
- postcode: '', // 缁勭粐鏋舵瀯缂栫爜
- postname: '', // 缁勭粐鏋舵瀯鍚嶇О
+ wkshop_code: '',
+ creatuser: '',
+ creatdate: '',
prop: 'lm_date', // 鎺掑簭瀛楁
order: 'desc', // 鎺掑簭瀛楁
page: 1, // 绗嚑椤�
@@ -234,36 +349,81 @@
},
total: 10,
tableData: [],
+
+ wkshopArr: [],
+ creatuserArr: [],
+
dialogVisible: false,
dialogForm: {
- postcode: '', // 缁勭粐缂栫爜
- postname: '', // 缁勭粐鍚嶇О
- description: '', // 鎻忚堪
- status: 'Y'// 鐘舵��
+ 'wkshop_code': '',
+ 'workhouse': '',
+ 'closehouse': '',
+ 'workprice': '',
+ 'overprice': '',
+ 'uphouse': '',
+ 'downhouse': ''
},
operation: '',
dialogFormRules: {
- postcode: [
- { required: true, validator: validateCode, trigger: ['blur', 'change'] }
+ wkshop_code: [
+ { required: true, message: '璇烽�夋嫨鎵�灞炶溅闂�', trigger: ['blur', 'change'] }
],
- postname: [
- { required: true, message: '璇疯緭鍏ュ矖浣嶅悕绉�', trigger: ['blur', 'change'] }
+ workhouse: [
+ { required: true, message: '璇烽�夋嫨涓婄彮鏃堕棿', trigger: ['blur', 'change'] }
+ ],
+ closehouse: [
+ { required: true, message: '璇烽�夋嫨涓嬬彮鏃堕棿', trigger: ['blur', 'change'] }
+ ],
+ uphouse: [
+ { required: true, message: '璇疯緭鍏ヤ笂鐝悗缃�', trigger: ['blur', 'change'] }
+ ],
+ downhouse: [
+ { required: true, message: '璇疯緭鍏ヤ笅鐝悗缃�', trigger: ['blur', 'change'] }
+ ],
+ workprice: [
+ { required: true, message: '璇疯緭鍏ヤ笂鐝伐浠�', trigger: ['blur', 'change'] }
+ ],
+ overprice: [
+ { required: true, message: '璇疯緭鍏ュ姞鐝伐浠�', trigger: ['blur', 'change'] }
]
}
}
},
created() {
- this.getPostData()
+ this.getAttendanceSettSearch()
},
- mounted() {
+ async mounted() {
window.addEventListener('resize', this.getHeight)
this.getHeight()
+ await this.getPrentOrganizationNoCompany()
+ await this.getPersonPermissions()
},
methods: {
- // 缁勭粐鏋舵瀯澶у垪琛ㄦ煡璇�
- async getPostData() {
- const res = await PostData(this.form)
+ async getPrentOrganizationNoCompany() {
+ const { data: res } = await PrentOrganizationNoCompany()
+ this.wkshopArr = res
+ },
+ async getPersonPermissions() {
+ const { data: res } = await PersonPermissions()
+ this.creatuserArr = res
+ },
+
+ async getAttendanceSettSearch() {
+ let tempDate = this.form.creatdate
+ if (tempDate.length > 0) {
+ tempDate = handleDatetime(tempDate[0]) + '~' + handleDatetime(tempDate[1])
+ }
+ const data = {
+ wkshop_code: this.form.wkshop_code,
+ creatuser: this.form.creatuser,
+ creatdate: tempDate,
+ prop: this.form.prop,
+ order: this.form.order,
+ page: this.form.page,
+ rows: this.form.rows
+ }
+ const res = await AttendanceSettSearch(data)
this.tableData = res.data
this.total = res.count
},
@@ -279,31 +439,32 @@
}
this.form.order = order
this.form.prop = prop
- this.getPostData()
+ this.getAttendanceSettSearch()
},
// 閲嶇疆
reset() {
- this.form.postcode = ''
- this.form.postname = ''
- this.getPostData()
+ this.form.wkshop_code = ''
+ this.form.creatuser = ''
+ this.form.creatdate = ''
+ this.getAttendanceSettSearch()
},
// 鏂板鎸夐挳
add(operation) {
this.operation = operation
this.dialogVisible = true
- this.dialogForm.OperType = 'Add'
},
// 淇敼鎸夐挳
async edit(operation, row) {
this.operation = operation
this.dialogVisible = true
- this.dialogForm.OperType = 'Update'
-
this.$nextTick(() => {
- this.dialogForm.postcode = row.postcode
- this.dialogForm.postname = row.postname
- this.dialogForm.description = row.description
- this.dialogForm.status = row.status
+ this.dialogForm.wkshop_code = row.wkshop_code
+ this.dialogForm.workhouse = row.workhouse
+ this.dialogForm.closehouse = row.closehouse
+ this.dialogForm.workprice = row.workprice
+ this.dialogForm.overprice = row.overprice
+ this.dialogForm.uphouse = row.uphouse
+ this.dialogForm.downhouse = row.downhouse
})
},
// 鍒犻櫎鎸夐挳
@@ -313,13 +474,22 @@
cancelButtonText: '鍙栨秷',
type: 'warning'
}).then(() => {
- DeletePost({ postcode: row.postcode }).then(res => {
+ const data = {
+ 'wkshop_code': row.wkshop_code,
+ 'workhouse': row.workhouse,
+ 'closehouse': row.closehouse,
+ 'workprice': row.workprice,
+ 'overprice': row.overprice,
+ 'uphouse': row.uphouse,
+ 'downhouse': row.downhouse
+ }
+ AttendanceSettDelete(data).then(res => {
if (res.code === '200') {
this.$notify.success('鍒犻櫎鎴愬姛!')
if (this.form.page > 1 && this.tableData.length === 1) {
this.form.page--
}
- this.getPostData()
+ this.getAttendanceSettSearch()
}
})
}).catch(() => {
@@ -328,10 +498,13 @@
},
// 瀵硅瘽妗嗗叧闂簨浠�
handleClose() {
- this.dialogForm.postcode = ''
- this.dialogForm.postname = ''
- this.dialogForm.status = 'Y'
- this.dialogForm.description = ''
+ this.dialogForm.wkshop_code = ''
+ this.dialogForm.workhouse = ''
+ this.dialogForm.closehouse = ''
+ this.dialogForm.workprice = ''
+ this.dialogForm.overprice = ''
+ this.dialogForm.uphouse = ''
+ this.dialogForm.downhouse = ''
this.$refs.dialogForm.clearValidate()
},
// 瀵硅瘽妗嗗彇娑�
@@ -343,12 +516,12 @@
this.$refs.dialogForm.validate(valid => {
if (valid) {
this.$store.state.app.buttonIsDisabled = true
- AddUpdatePost(this.dialogForm).then(res => {
+ AttendanceSettAddUpdate(this.dialogForm, this.operation === 'add' ? 'Add' : 'Update').then(res => {
if (res.code === '200') {
this.$notify.success(this.operation === 'add' ? '娣诲姞鎴愬姛锛�' : '淇敼鎴愬姛锛�')
this.dialogVisible = false
this.$store.state.app.buttonIsDisabled = false
- this.getPostData()
+ this.getAttendanceSettSearch()
} else {
this.$store.state.app.buttonIsDisabled = false
this.$notify.error(this.operation === 'add' ? '娣诲姞澶辫触锛�' : '淇敼澶辫触锛�')
@@ -368,3 +541,40 @@
}
}
</script>
+<style scoped lang="scss">
+::v-deep .el-select__caret {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+::v-deep .el-range__icon {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-separator {
+ line-height: 28px !important;
+}
+
+::v-deep .el-range-input {
+ font-size: 14px;
+}
+
+::v-deep .el-range-separator {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+::v-deep .el-progress-bar__innerText {
+ display: none !important;
+}
+
+//.custom-table-class {
+// ::v-deep .el-table__row {
+// height: 80px;
+// line-height:80px;
+// }
+//}
+
+</style>
--
Gitblit v1.9.3