|
|
@@ -216,7 +216,7 @@
|
|
|
</template>
|
|
|
</ibps-crud>
|
|
|
|
|
|
- <!-- 编辑上下班时间的弹窗(排班类型改为下拉选择) -->
|
|
|
+ <!-- 编辑上下班时间的弹窗(排班类型下拉选择) -->
|
|
|
<el-dialog
|
|
|
title="修改上下班时间"
|
|
|
:visible.sync="editDialogVisible"
|
|
|
@@ -224,6 +224,26 @@
|
|
|
@close="closeEditDialog"
|
|
|
>
|
|
|
<el-form ref="editFormRef" :rules="editFormRules" :model="editForm" label-width="120px" size="small">
|
|
|
+ <el-form-item label="排班类型" prop="banCiMing">
|
|
|
+ <el-select
|
|
|
+ v-model="editForm.banCiMing"
|
|
|
+ placeholder="请选择排班类型"
|
|
|
+ clearable
|
|
|
+ filterable
|
|
|
+ style="width: 90%"
|
|
|
+ :loading="banCiOptionsLoading"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in banCiOptions"
|
|
|
+ :key="item.value"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="配置名称">
|
|
|
+ <el-input v-model="editConfigName" disabled style="width: 90%" />
|
|
|
+ </el-form-item>
|
|
|
<el-form-item label="上班打卡时间">
|
|
|
<el-date-picker
|
|
|
v-model="editForm.daKaShiJian1"
|
|
|
@@ -242,27 +262,8 @@
|
|
|
style="width: 90%"
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
- <!-- 排班类型下拉(编辑弹窗使用,全局加载) -->
|
|
|
- <el-form-item label="排班类型" prop="banCiMing">
|
|
|
- <el-select
|
|
|
- v-model="editForm.banCiMing"
|
|
|
- placeholder="请选择排班类型"
|
|
|
- clearable
|
|
|
- filterable
|
|
|
- style="width: 90%"
|
|
|
- :loading="banCiOptionsLoading"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in banCiOptions"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- />
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
- <!-- 考勤状态(只读,固定为正常) -->
|
|
|
<el-form-item label="考勤状态">
|
|
|
- <span style="line-height: 32px; ">正常</span>
|
|
|
+ <span style="line-height: 32px;">正常</span>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="备注" prop="beiZhu">
|
|
|
<el-input
|
|
|
@@ -317,7 +318,6 @@
|
|
|
/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <!-- 配置名称下拉(根据部门过滤) -->
|
|
|
<el-form-item label="配置名称" prop="paiBanMingChen">
|
|
|
<el-select
|
|
|
v-model="addForm.paiBanMingChen"
|
|
|
@@ -336,7 +336,6 @@
|
|
|
/>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
- <!-- 排班类型下拉(根据部门过滤) -->
|
|
|
<el-form-item label="排班类型" prop="banCiMing">
|
|
|
<el-select
|
|
|
v-model="addForm.banCiMing"
|
|
|
@@ -536,6 +535,9 @@ export default {
|
|
|
saveLoading: false,
|
|
|
banCiOptions: [],
|
|
|
banCiOptionsLoading: false,
|
|
|
+ // 编辑弹窗新增:配置名称(只读)及配置列表
|
|
|
+ editConfigList: [],
|
|
|
+ editConfigName: '',
|
|
|
// 新增弹窗相关
|
|
|
addDialogVisible: false,
|
|
|
addLoading: false,
|
|
|
@@ -616,6 +618,12 @@ export default {
|
|
|
return toolbars
|
|
|
}
|
|
|
},
|
|
|
+ watch: {
|
|
|
+ // 监听编辑弹窗中排班类型变化,自动更新配置名称
|
|
|
+ 'editForm.banCiMing'(newVal) {
|
|
|
+ this.updateEditConfigName(newVal)
|
|
|
+ }
|
|
|
+ },
|
|
|
created() {
|
|
|
this.loadData()
|
|
|
},
|
|
|
@@ -797,6 +805,48 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
|
|
|
+ // ========= 编辑弹窗:根据部门加载配置列表 =========
|
|
|
+ async loadEditConfigs(deptId) {
|
|
|
+ if (!deptId) {
|
|
|
+ this.editConfigList = []
|
|
|
+ this.editConfigName = ''
|
|
|
+ return
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ const res = await queryScheduleConfigItem({
|
|
|
+ pageNo: 1,
|
|
|
+ limit: 999,
|
|
|
+ param: {
|
|
|
+ bianZhiBuMeng: deptId,
|
|
|
+ shengXiaoBiaoZhi: 'Y'
|
|
|
+ }
|
|
|
+ })
|
|
|
+ this.editConfigList = res.data.dataResult || []
|
|
|
+ // 初始化配置名称为当前行的配置名称
|
|
|
+ if (this.currentEditRow) {
|
|
|
+ this.editConfigName = this.currentEditRow.paiBanMingChen || ''
|
|
|
+ }
|
|
|
+ // 如果当前排班类型有值,尝试匹配更新配置名称(保证显示一致)
|
|
|
+ if (this.editForm.banCiMing) {
|
|
|
+ this.updateEditConfigName(this.editForm.banCiMing)
|
|
|
+ }
|
|
|
+ } catch (error) {
|
|
|
+ console.error('加载编辑配置列表失败', error)
|
|
|
+ this.editConfigList = []
|
|
|
+ this.editConfigName = ''
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ // ========= 编辑弹窗:根据排班类型更新配置名称 =========
|
|
|
+ updateEditConfigName(banCiType) {
|
|
|
+ if (!banCiType) {
|
|
|
+ this.editConfigName = ''
|
|
|
+ return
|
|
|
+ }
|
|
|
+ const found = this.editConfigList.find(item => item.paiBanLeiXing === banCiType)
|
|
|
+ this.editConfigName = found ? found.peiZhiMingChen : ''
|
|
|
+ },
|
|
|
+
|
|
|
// ========= 新增:根据部门加载配置列表(按编制部门过滤) =========
|
|
|
async loadConfigsByDept(deptId) {
|
|
|
if (!deptId) {
|
|
|
@@ -812,7 +862,7 @@ export default {
|
|
|
pageNo: 1,
|
|
|
limit: 999,
|
|
|
param: {
|
|
|
- bianZhiBuMeng: deptId, // 使用编制部门字段过滤
|
|
|
+ bianZhiBuMeng: deptId,
|
|
|
shengXiaoBiaoZhi: 'Y'
|
|
|
}
|
|
|
})
|
|
|
@@ -835,7 +885,6 @@ export default {
|
|
|
value: type
|
|
|
}))
|
|
|
|
|
|
- // 如果当前已有选中配置且编制部门匹配,则保留;否则清空
|
|
|
if (this.selectedConfig && this.selectedConfig.bianZhiBuMen === deptId) {
|
|
|
// 保持选中
|
|
|
} else {
|
|
|
@@ -855,7 +904,7 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
|
|
|
- // ========= 部门变更处理 =========
|
|
|
+ // ========= 部门变更处理(新增) =========
|
|
|
handleDeptChange(deptId) {
|
|
|
this.addForm.paiBanMingChen = ''
|
|
|
this.addForm.banCiMing = ''
|
|
|
@@ -865,7 +914,7 @@ export default {
|
|
|
this.loadConfigsByDept(deptId)
|
|
|
},
|
|
|
|
|
|
- // ========= 配置名称变更处理 =========
|
|
|
+ // ========= 配置名称变更处理(新增) =========
|
|
|
handleConfigChange(configId) {
|
|
|
if (!configId) {
|
|
|
this.selectedConfig = null
|
|
|
@@ -892,7 +941,7 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
|
|
|
- // ========= 日期变更处理 =========
|
|
|
+ // ========= 日期变更处理(新增) =========
|
|
|
handleDateChange(date) {
|
|
|
if (date && this.selectedConfig) {
|
|
|
this.fillClockTime()
|
|
|
@@ -902,7 +951,7 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
|
|
|
- // ========= 根据日期和配置自动填充上下班打卡时间 =========
|
|
|
+ // ========= 根据日期和配置自动填充上下班打卡时间(新增) =========
|
|
|
fillClockTime() {
|
|
|
if (!this.selectedConfig || !this.addForm.riQi) {
|
|
|
return
|
|
|
@@ -939,6 +988,8 @@ export default {
|
|
|
beiZhu: row.beiZhu || '',
|
|
|
banCiMing: row.banCiMing || ''
|
|
|
}
|
|
|
+ this.editConfigName = row.paiBanMingChen || ''
|
|
|
+ await this.loadEditConfigs(row.buMen)
|
|
|
this.editDialogVisible = true
|
|
|
this.$nextTick(() => {
|
|
|
if (this.$refs.editFormRef) {
|
|
|
@@ -950,6 +1001,8 @@ export default {
|
|
|
this.editDialogVisible = false
|
|
|
this.currentEditRow = null
|
|
|
this.editForm = { id: '', daKaShiJian1: '', daKaShiJian2: '', beiZhu: '', banCiMing: '' }
|
|
|
+ this.editConfigList = []
|
|
|
+ this.editConfigName = ''
|
|
|
},
|
|
|
saveEditTime() {
|
|
|
this.$refs.editFormRef.validate((valid) => {
|
|
|
@@ -962,6 +1015,7 @@ export default {
|
|
|
daKaShiJian2: this.editForm.daKaShiJian2,
|
|
|
beiZhu: this.editForm.beiZhu,
|
|
|
banCiMing: this.editForm.banCiMing,
|
|
|
+ paiBanMingChen: this.editConfigName, // 上传配置名称
|
|
|
kaoQinZhuangTa: '正常'
|
|
|
}
|
|
|
gdUpdateAttendce(postData)
|