From dc52fbbb42c062709d530074c8fcd42a5f402e35 Mon Sep 17 00:00:00 2001 From: kun <1422840143@qq.com> Date: Fri, 11 Aug 2023 16:32:07 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=BF=E5=8A=A1=E7=AB=AF=E5=8A=B3?= =?UTF-8?q?=E5=8A=A1=E5=AE=9E=E5=90=8D=E5=88=B6=E5=8A=9F=E8=83=BD=E6=96=B0?= =?UTF-8?q?=E5=A2=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/modules/goverment.ts | 24 ++ .../images/govermentImg/defaultAvatar.png | Bin 0 -> 4672 bytes src/assets/images/govermentImg/female.png | Bin 0 -> 667 bytes src/assets/images/govermentImg/male.png | Bin 0 -> 669 bytes .../memberManage/components/addMemberForm.vue | 2 - .../memberSelect/components/memberDetails.vue | 161 +++++++----- .../laborRealName/memberSelect/index.vue | 100 ++++++-- .../components/projectDetails.vue | 235 +++++++++++++++--- .../laborRealName/projectSelect/index.vue | 33 ++- .../memberManage/components/addMemberForm.vue | 2 - 10 files changed, 426 insertions(+), 131 deletions(-) create mode 100644 src/assets/images/govermentImg/defaultAvatar.png create mode 100644 src/assets/images/govermentImg/female.png create mode 100644 src/assets/images/govermentImg/male.png diff --git a/src/api/modules/goverment.ts b/src/api/modules/goverment.ts index c3ab6f3..bcfdb0e 100644 --- a/src/api/modules/goverment.ts +++ b/src/api/modules/goverment.ts @@ -377,6 +377,30 @@ export const workProjectList = (params: any) => { export const unitPageList = (params: any) => { return http.post(BASEURL + `/gov/company/page`, params); }; +// 参建班组分页数据 +export const classGroupList = (params: any) => { + return http.post(BASEURL + `/gov/teamInfo/page`, params); +}; +// 人员信息统计数据 +export const memberCountData = (params: any) => { + return http.post(BASEURL + `/gov/workerInfo/getByType`, params); +}; +// 人员信息分页数据 +export const memberPageList = (params: any) => { + return http.post(BASEURL + `/gov/workerInfo/page`, params); +}; +// 出勤列表分页数据 +export const attendancePageList = (params: any) => { + return http.post(BASEURL + `/gov/workerInfo/attendStat`, params); +}; +// 在册人员分页数据 +export const registerdMemberList = (params: any) => { + return http.post(BASEURL + `/gov/workerStat/workerPage?current=${params.current}&size=${params.size}`, params); +}; +// 在册人员详情数据 +export const registerdMemberDetails = (params: any) => { + return http.post(BASEURL + `/gov/workerStat/queryDetailBySn`, params); +}; // 列表查询视频管理表信息 // export const getVideo = (params: { projectSn?: string; engineeringSn?: string }) => { // return http.post>(BASEURL + `/gov/projectMonitor/engineeringTree`, params); diff --git a/src/assets/images/govermentImg/defaultAvatar.png b/src/assets/images/govermentImg/defaultAvatar.png new file mode 100644 index 0000000000000000000000000000000000000000..0e81178d9d4253b9d2253d8528d2a5ab73e2941f GIT binary patch literal 4672 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 BC5Qk3 literal 0 HcmV?d00001 diff --git a/src/assets/images/govermentImg/male.png b/src/assets/images/govermentImg/male.png new file mode 100644 index 0000000000000000000000000000000000000000..4d9296d46a02cdb6691fc153c94736d98ade174e GIT binary patch literal 669 zcmV;O0%HA%P);Nio?SOaATW60$4g{Tl4@~?M z;;FlPUuJh_{=pzr9aqB#F5qwugCqG_lfPQ|B#3d3mazzs0V@wO#U&zK6%gxWk)eeH zj94%ZsN?ELF_fpea)w3Q9D-293>KI>0tWfmN7o?6lR%I&!zz>WMMw|y;HZU5sxgE0 zK!#g5RC*wX3I0HOp#40@@G{&yJy6T|2=P(c8IaFGVWMuP9w?O(fuMukWCs7^LmdSJ zQSgR*SM!1pW;~NBp}2VS6?jkTX4&pG#*Hw z=z=Z*50ol_GGc2>;w`M#lj}-ey4?7GC(t*XQ=E&BkoQFnCqIrcxl1DIt?@c7 zZcv7?L^!m6YYIy}stDsFI{tc&f<4n*4L&ih%9U!Hqy5r1RR`KHUGvc1t)%KesU*a? zW*OO{g0>MMyYzb|SGa;=pu)cU)@Zd(%?>vIwN0T { width: stretch; } .overview { - // background-color: #fff; - flex: 1; .form { background-color: #fff; .form-title { diff --git a/src/views/goverment/laborRealName/memberSelect/components/memberDetails.vue b/src/views/goverment/laborRealName/memberSelect/components/memberDetails.vue index 0f9d3df..f964475 100644 --- a/src/views/goverment/laborRealName/memberSelect/components/memberDetails.vue +++ b/src/views/goverment/laborRealName/memberSelect/components/memberDetails.vue @@ -8,54 +8,56 @@
基本信息
- + - - + +
- - + + - - + +
- - + + - - + +
- - + + - - + +
- - + + - - + +
- - + + + + + + +
+
+ +
@@ -63,20 +65,32 @@
- +
- - - - + + + + + + + + +
@@ -97,9 +111,10 @@ diff --git a/src/views/goverment/laborRealName/projectSelect/components/projectDetails.vue b/src/views/goverment/laborRealName/projectSelect/components/projectDetails.vue index e5a4344..b60256a 100644 --- a/src/views/goverment/laborRealName/projectSelect/components/projectDetails.vue +++ b/src/views/goverment/laborRealName/projectSelect/components/projectDetails.vue @@ -80,77 +80,117 @@ + +
- - - - + + + + + + +
- 在册人员:1475 - 在册管理人员:42 - 在册建筑工人:1443 - 在职人员:438 - 在职管理人员:23 - 在职建筑工人:415 + 在册人员:{{ memberCountInfo.person }} + 在册管理人员:{{ memberCountInfo.manager }} + 在册建筑工人:{{ memberCountInfo.worker }} + 在职人员:{{ memberCountInfo.inPerson }} + 在职管理人员:{{ memberCountInfo.inManager }} + 在职建筑工人:{{ memberCountInfo.inWorker }}
企业名称 - + + + + 姓名 - + 人员类型 - - 查询 + + + + 查询
人员列表
-
-
+
+
- +
- 名字 + {{ item.personName }}
- 420581195606192999 + {{ item.idCard }}
-
建筑工人
-
公司: 中交隧道工程有限公司
-
班组: 主线
-
工种: 其他
-
电话: 13338237531
+
{{ item.personType == 1 ? "管理" : "工人" }}
+
公司: {{ item.companyName }}
+
班组: {{ item.teamName }}
+
工种: {{ item.workerTypeName }}
+
电话: {{ item.phone }}
+
+ notData +
暂无数据
+
- 角色类型 - + 人员类型 + + + 月份 - - 查询 + + + 查询
正常出勤 @@ -160,14 +200,14 @@
- + @@ -177,6 +217,15 @@ + +
@@ -200,7 +249,20 @@ import { onMounted, ref, watch, reactive, onBeforeMount } from "vue"; import Pagination from "@/components/ProTable/components/Pagination.vue"; import type { FormInstance } from "element-plus"; -import { unitPageList } from "@/api/modules/goverment"; +import { unitPageList, classGroupList, memberCountData, memberPageList, attendancePageList } from "@/api/modules/goverment"; +const typeOptions = ref([ + { label: "管理", value: 1 }, + { label: "工人", value: 2 } +]); +const memberSearch = ref({ + companySn: "", + personName: "", + personType: null +}); +const attendaceSearch = ref({ + personType: null, + month: "" +}); const props = defineProps({ detailsDialog: Boolean, title: String, @@ -217,11 +279,81 @@ const searchForm = ref({ type: "" }); const unitData = ref([]); +const classGroupData = ref([]); +const memberCountInfo = ref({}); +const memberListData = ref([]); +const attendanceListData = ref([]); const monthColumns: any = []; const visible1 = ref(false); const emits = defineEmits(["update:detailsDialog", "confirm"]); const ruleFormRef = ref(); const form = ref({}); +// 获取人员出勤列表数据 +const getAttendanceCountList = async () => { + console.log(form.value); + let requestData = { + current: pageable.value.pageNo, + size: pageable.value.pageSize, + engineeringSn: form.value.engineeringSn, + ...attendaceSearch.value + }; + console.log(666); + const { result } = await attendancePageList(requestData); + if (result && result.records) { + attendanceListData.value = result.records; + pageable.value.total = +result.total; + } + console.log(result); +}; +// 获取人员信息列表数据 +const getMemberCountList = async () => { + console.log(form.value); + let requestData = { + current: pageable.value.pageNo, + size: pageable.value.pageSize, + engineeringSn: form.value.engineeringSn, + ...memberSearch.value + }; + console.log(666); + const { result } = await memberPageList(requestData); + if (result && result.records) { + memberListData.value = result.records; + pageable.value.total = +result.total; + } + console.log(result); +}; +// 获取人员信息统计数据 +const getMemberCountData = async () => { + console.log(form.value); + let requestData = { + companySn: "", + personType: "", + engineeringSn: form.value.engineeringSn + }; + console.log(666); + const { result } = await memberCountData(requestData); + if (result) { + memberCountInfo.value = result; + } + console.log(result); +}; +// 获取参建班组数据 +const getClassGroupData = async () => { + console.log(form.value); + let requestData = { + current: pageable.value.pageNo, + size: pageable.value.pageSize, + engineeringSn: form.value.engineeringSn + }; + console.log(666); + const { result } = await classGroupList(requestData); + if (result && result.records) { + classGroupData.value = result.records; + pageable.value.total = +result.total; + } + console.log(result); +}; +// 获取参建单位数据 const getUnitData = async () => { console.log(form.value); let requestData = { @@ -239,13 +371,28 @@ const getUnitData = async () => { console.log(result); }; const handleClick = (tab: any, event: any) => { - console.log(tab, event); + console.log(tab.props.name); + pageable.value.pageNo = 1; + pageable.value.pageSize = 10; + let val = tab.props.name; + if (val == "first") { + getUnitData(); + } else if (val == "second") { + getClassGroupData(); + } else if (val == "third") { + getMemberCountData(); + getMemberCountList(); + } else if (val == "fourth") { + getAttendanceCountList(); + } }; const handleSizeChange = size => { console.log(size); + pageable.value.pageSize = size; }; const handleCurrentChange = currentPage => { console.log(currentPage); + pageable.value.pageNo = currentPage; }; // 重置表单 const resetForm = (formEl: FormInstance | undefined) => { @@ -418,6 +565,8 @@ onMounted(() => {}); } } .table { + height: 300px; + min-height: 300px; margin-top: 20px; .successCircle { @include successCircle(); @@ -435,12 +584,15 @@ onMounted(() => {}); } .member-list { display: flex; + flex-wrap: wrap; margin-top: 24px; .list-item { width: 352px; min-width: 352px; height: 201px; background: #f8f8f8; + margin-right: 13px; + margin-bottom: 20px; .avater-item { display: flex; margin-top: 12px; @@ -483,8 +635,19 @@ onMounted(() => {}); } } } + .table-empty { + display: flex; + justify-content: center; + align-items: center; + height: 100%; + flex-direction: column; + color: #999; + } } } + .statistics-page { + margin-top: 10px; + } .row { display: flex; justify-content: space-between; diff --git a/src/views/goverment/laborRealName/projectSelect/index.vue b/src/views/goverment/laborRealName/projectSelect/index.vue index c6dbd8e..44c3270 100644 --- a/src/views/goverment/laborRealName/projectSelect/index.vue +++ b/src/views/goverment/laborRealName/projectSelect/index.vue @@ -9,7 +9,7 @@
-
+
{{ item.engineeringName }} @@ -52,6 +52,10 @@
+
+ notData +
暂无数据
+
{ } .statistics-list { margin-top: 20px; - height: 892px; - overflow-y: scroll; + height: calc(100% - 92px); + .bottomCard { + height: 100%; + } + :deep() { + .el-card__body { + height: 100%; + } + } .statistics-item { display: flex; flex-wrap: wrap; + align-content: flex-start; justify-content: space-between; + height: calc(100% - 72px); + overflow-y: scroll; .item-child { width: 794px; min-width: 794px; @@ -146,7 +160,7 @@ onMounted(() => { background: #ffffff; opacity: 1; border: 1px solid #d9d9d9; - margin-bottom: 15px; + margin-bottom: 20px; .top-title { height: 56px; background: #f5f7f9; @@ -199,6 +213,17 @@ onMounted(() => { } } } + .table-empty { + display: flex; + justify-content: center; + align-items: center; + height: calc(100% - 72px); + flex-direction: column; + color: #999; + } + .statistics-page { + margin-top: 10px; + } } } diff --git a/src/views/project/laborRealName/memberManage/components/addMemberForm.vue b/src/views/project/laborRealName/memberManage/components/addMemberForm.vue index 26d6636..913a63e 100644 --- a/src/views/project/laborRealName/memberManage/components/addMemberForm.vue +++ b/src/views/project/laborRealName/memberManage/components/addMemberForm.vue @@ -650,8 +650,6 @@ onMounted(() => { width: stretch; } .overview { - // background-color: #fff; - flex: 1; .form { background-color: #fff; .form-title {