Merge remote-tracking branch 'origin/main'
This commit is contained in:
@@ -51,13 +51,15 @@
|
|||||||
<sql id="selectVo">
|
<sql id="selectVo">
|
||||||
SELECT
|
SELECT
|
||||||
e.emp_id, e.user_id, e.emp_no, e.emp_name, e.gender, e.mobile, e.email, e.id_no,
|
e.emp_id, e.user_id, e.emp_no, e.emp_name, e.gender, e.mobile, e.email, e.id_no,
|
||||||
e.hire_date, e.employment_type, e.status, su.dept_id, e.post_id, e.remark,
|
e.hire_date, e.employment_type, e.status,
|
||||||
|
COALESCE(e.dept_id, su.dept_id) AS dept_id,
|
||||||
|
e.post_id, e.remark,
|
||||||
e.create_by, e.create_time, e.update_by, e.update_time,
|
e.create_by, e.create_time, e.update_by, e.update_time,
|
||||||
d.dept_name,
|
d.dept_name,
|
||||||
p.post_name
|
p.post_name
|
||||||
FROM hrm_employee e
|
FROM hrm_employee e
|
||||||
left join sys_user su on su.user_id = e.user_id
|
LEFT JOIN sys_user su ON su.user_id = e.user_id
|
||||||
LEFT JOIN sys_dept d ON su.dept_id = d.dept_id AND d.del_flag = 0
|
LEFT JOIN sys_dept d ON d.dept_id = COALESCE(e.dept_id, su.dept_id) AND d.del_flag = 0
|
||||||
LEFT JOIN sys_post p ON e.post_id = p.post_id
|
LEFT JOIN sys_post p ON e.post_id = p.post_id
|
||||||
WHERE e.del_flag = 0
|
WHERE e.del_flag = 0
|
||||||
</sql>
|
</sql>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
<span v-if="node.data.leader" class="leader-tag">
|
<span v-if="node.data.leader" class="leader-tag">
|
||||||
({{ node.data.leader }})
|
({{ node.data.leader }})
|
||||||
</span>
|
</span>
|
||||||
<span v-else class="leader-tag" style="color: red;" @click="goDept">
|
<span v-else class="leader-tag" style="color: red; cursor: pointer;" @click.stop="handleConfigLeader(node.data)">
|
||||||
请配置负责人
|
请配置负责人
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
@@ -75,6 +75,29 @@
|
|||||||
</el-card>
|
</el-card>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- 配置部门负责人弹窗 -->
|
||||||
|
<el-dialog :title="'配置部门负责人 - ' + deptForm.deptName" :visible.sync="deptDialogVisible" width="450px"
|
||||||
|
append-to-body>
|
||||||
|
<el-form ref="deptFormRef" :model="deptForm" :rules="deptRules" label-width="100px" size="small">
|
||||||
|
<el-form-item label="部门名称">
|
||||||
|
<el-input :value="deptForm.deptName" disabled />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="负责人" prop="leader">
|
||||||
|
<el-input v-model="deptForm.leader" placeholder="请输入负责人姓名" clearable />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="联系电话">
|
||||||
|
<el-input v-model="deptForm.phone" placeholder="请输入联系电话" clearable maxlength="11" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="邮箱">
|
||||||
|
<el-input v-model="deptForm.email" placeholder="请输入邮箱地址" clearable />
|
||||||
|
</el-form-item>
|
||||||
|
</el-form>
|
||||||
|
<div slot="footer" class="dialog-footer">
|
||||||
|
<el-button @click="deptDialogVisible = false">取消</el-button>
|
||||||
|
<el-button type="primary" :loading="deptSubmitting" @click="handleDeptSubmit">确定</el-button>
|
||||||
|
</div>
|
||||||
|
</el-dialog>
|
||||||
|
|
||||||
<!-- Add/Edit Dialog -->
|
<!-- Add/Edit Dialog -->
|
||||||
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="700px" append-to-body>
|
<el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="700px" append-to-body>
|
||||||
<el-form ref="empFormRef" :model="empForm" :rules="empRules" label-width="100px" size="small">
|
<el-form ref="empFormRef" :model="empForm" :rules="empRules" label-width="100px" size="small">
|
||||||
@@ -165,7 +188,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { listDept } from '@/api/system/dept'
|
import { listDept, updateDept } from '@/api/system/dept'
|
||||||
import { listPost } from '@/api/system/post'
|
import { listPost } from '@/api/system/post'
|
||||||
import { selectUser } from '@/api/system/user'
|
import { selectUser } from '@/api/system/user'
|
||||||
import { listEmployee, addEmployee, updateEmployee, delEmployee } from '@/api/hrm/employee'
|
import { listEmployee, addEmployee, updateEmployee, delEmployee } from '@/api/hrm/employee'
|
||||||
@@ -201,6 +224,22 @@ export default {
|
|||||||
deptId: [{ required: true, message: '请选择主部门', trigger: 'change' }],
|
deptId: [{ required: true, message: '请选择主部门', trigger: 'change' }],
|
||||||
postId: [{ required: true, message: '请选择主岗位', trigger: 'change' }],
|
postId: [{ required: true, message: '请选择主岗位', trigger: 'change' }],
|
||||||
status: [{ required: true, message: '请选择状态', trigger: 'change' }]
|
status: [{ required: true, message: '请选择状态', trigger: 'change' }]
|
||||||
|
},
|
||||||
|
// 部门负责人配置
|
||||||
|
deptDialogVisible: false,
|
||||||
|
deptSubmitting: false,
|
||||||
|
deptForm: {
|
||||||
|
deptId: undefined,
|
||||||
|
deptName: '',
|
||||||
|
leader: '',
|
||||||
|
phone: '',
|
||||||
|
email: '',
|
||||||
|
parentId: undefined,
|
||||||
|
orderNum: 0,
|
||||||
|
status: '0'
|
||||||
|
},
|
||||||
|
deptRules: {
|
||||||
|
leader: [{ required: true, message: '请输入负责人姓名', trigger: 'blur' }]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -218,8 +257,38 @@ export default {
|
|||||||
this.deptLoading = false
|
this.deptLoading = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
goDept() {
|
// 点击"请配置负责人",弹出对话框直接编辑部门负责人
|
||||||
this.$router.push('/renshi/dept')
|
handleConfigLeader(data) {
|
||||||
|
this.deptForm = {
|
||||||
|
deptId: data.deptId,
|
||||||
|
deptName: data.deptName,
|
||||||
|
leader: data.leader || '',
|
||||||
|
phone: data.phone || '',
|
||||||
|
email: data.email || '',
|
||||||
|
parentId: data.parentId,
|
||||||
|
orderNum: data.orderNum || 0,
|
||||||
|
status: data.status || '0'
|
||||||
|
}
|
||||||
|
this.deptDialogVisible = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
if (this.$refs.deptFormRef) {
|
||||||
|
this.$refs.deptFormRef.clearValidate()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
// 提交部门负责人配置
|
||||||
|
handleDeptSubmit() {
|
||||||
|
this.$refs.deptFormRef.validate(valid => {
|
||||||
|
if (!valid) return
|
||||||
|
this.deptSubmitting = true
|
||||||
|
updateDept(this.deptForm).then(() => {
|
||||||
|
this.$message.success('部门负责人配置成功')
|
||||||
|
this.deptDialogVisible = false
|
||||||
|
this.loadDeptTree()
|
||||||
|
}).finally(() => {
|
||||||
|
this.deptSubmitting = false
|
||||||
|
})
|
||||||
|
})
|
||||||
},
|
},
|
||||||
buildTree(list) {
|
buildTree(list) {
|
||||||
const map = {}
|
const map = {}
|
||||||
|
|||||||
@@ -292,6 +292,7 @@
|
|||||||
import {
|
import {
|
||||||
addProjectReport,
|
addProjectReport,
|
||||||
delProjectReport,
|
delProjectReport,
|
||||||
|
getLastReport,
|
||||||
getProjectReport,
|
getProjectReport,
|
||||||
getTodayProjectReport,
|
getTodayProjectReport,
|
||||||
listProjectReport,
|
listProjectReport,
|
||||||
@@ -557,6 +558,10 @@ export default {
|
|||||||
this.suppVisible = false;
|
this.suppVisible = false;
|
||||||
this.title = "添加项目报工";
|
this.title = "添加项目报工";
|
||||||
this.checkTodayReport().finally(() => {
|
this.checkTodayReport().finally(() => {
|
||||||
|
// 如果今天还没报过工,尝试加载上次报工记录回填
|
||||||
|
if (!this.hasTodayReport) {
|
||||||
|
this.loadLastReport();
|
||||||
|
}
|
||||||
this.open = true;
|
this.open = true;
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
if (!this.form.reportId) {
|
if (!this.form.reportId) {
|
||||||
@@ -565,6 +570,16 @@ export default {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
/** 加载上次报工记录,回填项目选择(记忆功能) */
|
||||||
|
loadLastReport() {
|
||||||
|
getLastReport().then(response => {
|
||||||
|
if (response.data && response.data.projectId) {
|
||||||
|
this.form.projectId = response.data.projectId;
|
||||||
|
}
|
||||||
|
}).catch(() => {
|
||||||
|
// 加载失败不影响正常使用
|
||||||
|
});
|
||||||
|
},
|
||||||
/** 修改按钮操作 */
|
/** 修改按钮操作 */
|
||||||
handleUpdate(row) {
|
handleUpdate(row) {
|
||||||
this.suppVisible = false;
|
this.suppVisible = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user