wuqun 2 years ago
parent
commit
0317bc1af5
  1. 4
      api/app/lib/controllers/member/index.js
  2. 12
      api/app/lib/utils/member.js
  3. 27
      web/client/src/sections/humanAffairs/components/personnelModal.jsx
  4. 2
      web/client/src/sections/humanAffairs/containers/employeeInformation.jsx
  5. 27
      web/client/src/sections/humanAffairs/containers/personnelFiles.jsx

4
api/app/lib/controllers/member/index.js

@ -104,6 +104,7 @@ async function searchPepMember (ctx) {
SELECT SELECT
user.id AS pepUserId, user.id AS pepUserId,
user.people_code AS userCode, user.people_code AS userCode,
basicdata_post.name AS userPost,
user.name AS userName, user.name AS userName,
role.name AS roleName, role.name AS roleName,
role.id AS roleId, role.id AS roleId,
@ -122,6 +123,8 @@ async function searchPepMember (ctx) {
ON department_user.user = user.id ON department_user.user = user.id
LEFT JOIN department LEFT JOIN department
ON department.id = department_user.department ON department.id = department_user.department
LEFT JOIN basicdata_post
ON basicdata_post.id = user.post
WHERE WHERE
user.delete = '0' user.delete = '0'
${whereOption.length ? `AND ${whereOption.join(' OR ')}` : ''} ${whereOption.length ? `AND ${whereOption.join(' OR ')}` : ''}
@ -158,6 +161,7 @@ async function searchPepMember (ctx) {
id: u.roleId, id: u.roleId,
name: u.roleName name: u.roleName
}] : [], }] : [],
userPost:u.userPost
}) })
} }
}) })

12
api/app/lib/utils/member.js

@ -200,13 +200,11 @@ module.exports = function (app, opts) {
`: ''} `: ''}
WHERE WHERE
member.del = '0' member.del = '0'
${keywordTarget == 'role' && keyword ? ` ${keywordTarget == 'post' && keyword ? `
AND user.id IN ( AND user.post IN (
SELECT user_role.user SELECT basicDataPost.id
FROM ${pepEmis}.user_role AS user_role FROM ${pepEmis}.basicdata_post AS basicDataPost
INNER JOIN ${pepEmis}.role AS role where basicDataPost.name LIKE '%${keyword}%'
ON role.id = user_role.role
AND role.name LIKE '%${keyword}%'
) )
` : ''} ` : ''}
${keywordTarget == 'dep' && keyword ? ` ${keywordTarget == 'dep' && keyword ? `

27
web/client/src/sections/humanAffairs/components/personnelModal.jsx

@ -240,33 +240,10 @@ function pushModal (props) {
<img src="/assets/images/hrImg/position.png" alt="" style={{ width: '100%', height: '100%' }} /> <img src="/assets/images/hrImg/position.png" alt="" style={{ width: '100%', height: '100%' }} />
</div> </div>
<div style={{ color: 'rgba(0,0,0,0.6)', fontSize: 12 }}> <div style={{ color: 'rgba(0,0,0,0.6)', fontSize: 12 }}>
</div> </div>
<div style={{ color: '#4A4A4A', fontSize: 12, display: 'flex', alignItems: 'center' }}> <div style={{ color: '#4A4A4A', fontSize: 12, display: 'flex', alignItems: 'center' }}>
{ {peoplePro.userPost || ''}
peoplePro.role.map((ite, idx) => {
let roleArr = []
for (let i = 0; i < peoplePro.role.length; i++) {
roleArr.push(peoplePro.role[i].name)
}
return (
<div key={idx} style={{ display: 'flex', alignItems: 'center' }}>
{idx == 0 ?
(ite.name) : ('')
}
{
peoplePro.role.length > 1 && idx == 1 ? (
<Tooltip content={roleArr.join(',')} trigger="click" style={{ lineHeight: 2 }}>
<div style={{ color: 'rgba(0,90,189,0.8)', fontSize: 12, marginRight: 4, cursor: "pointer", }}>
+{peoplePro.role.length - 1}
</div>
</Tooltip>
) : ('')
}
</div>
)
})
}
</div> </div>
</div> </div>
</div> </div>

2
web/client/src/sections/humanAffairs/containers/employeeInformation.jsx

@ -492,7 +492,7 @@ const employeeInformation = (props) => {
style={{ width: 200 }} style={{ width: 200 }}
initValue={"name"} initValue={"name"}
> >
<Form.Select.Option value='role'></Form.Select.Option> <Form.Select.Option value='post'></Form.Select.Option>
<Form.Select.Option value='dep'>部门</Form.Select.Option> <Form.Select.Option value='dep'>部门</Form.Select.Option>
<Form.Select.Option value='number'>编号</Form.Select.Option> <Form.Select.Option value='number'>编号</Form.Select.Option>
<Form.Select.Option value='name'>姓名</Form.Select.Option> <Form.Select.Option value='name'>姓名</Form.Select.Option>

27
web/client/src/sections/humanAffairs/containers/personnelFiles.jsx

@ -87,7 +87,7 @@ const Rest = (props) => {
<div style={{ display: 'flex', marginTop: 16, marginBottom: 17 }}> <div style={{ display: 'flex', marginTop: 16, marginBottom: 17 }}>
<div> <div>
<Select value={keywordTarget} onChange={setKeywordTarget} placeholder='请选择搜索类型' style={{ width: 200 }} > <Select value={keywordTarget} onChange={setKeywordTarget} placeholder='请选择搜索类型' style={{ width: 200 }} >
<Select.Option value='role'></Select.Option> <Select.Option value='post'></Select.Option>
<Select.Option value='dep'>部门</Select.Option> <Select.Option value='dep'>部门</Select.Option>
<Select.Option value='number'>编号</Select.Option> <Select.Option value='number'>编号</Select.Option>
<Select.Option value='name'>姓名</Select.Option> <Select.Option value='name'>姓名</Select.Option>
@ -232,30 +232,7 @@ const Rest = (props) => {
<img src="/assets/images/hrImg/post.png" alt="" style={{ width: '100%', height: '100%' }} /> <img src="/assets/images/hrImg/post.png" alt="" style={{ width: '100%', height: '100%' }} />
</div> </div>
<div style={{ fontSize: 14, color: '#282828', marginLeft: 12, marginRight: 9, display: 'flex', }}> <div style={{ fontSize: 14, color: '#282828', marginLeft: 12, marginRight: 9, display: 'flex', }}>
{ {item.userPost || '暂无'}
item.role.map((ite, idx) => {
let roleArr = []
for (let i = 0; i < item.role.length; i++) {
roleArr.push(item.role[i].name)
}
return (
<div key={idx} style={{ display: 'flex', alignItems: 'center' }}>
{idx == 0 ?
(ite.name.substring(0, 6)) : ('')
}
{
item.role.length > 1 && idx == 1 ? (
<Tooltip content={roleArr.join(',')} trigger="click" style={{ lineHeight: 2 }}>
<div style={{ color: 'rgba(0,90,189,0.8)', fontSize: 12, marginRight: 4, cursor: "pointer", }}>
+{item.role.length - 1}
</div>
</Tooltip>
) : ('')
}
</div>
)
})
}
</div> </div>
</div> </div>
<div style={{ color: 'rgba(0,0,0,0.65)', fontSize: 12 }}> <div style={{ color: 'rgba(0,0,0,0.65)', fontSize: 12 }}>

Loading…
Cancel
Save