From 38dc20cde3971c7e91a2cd8d6bda0037f04cfaa4 Mon Sep 17 00:00:00 2001
From: wangyunfei <1224056307@qq,com>
Date: Tue, 23 Sep 2025 11:32:19 +0800
Subject: [PATCH 1/5] =?UTF-8?q?=E9=87=8D=E5=A4=A7=E5=8D=B1=E9=99=A9?=
=?UTF-8?q?=E6=BA=90=E7=AE=A1=E7=90=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/pages/nav_system_content/SystemContentList.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/pages/nav_system_content/SystemContentList.js b/src/pages/nav_system_content/SystemContentList.js
index 6a6e162..4c7d0dc 100644
--- a/src/pages/nav_system_content/SystemContentList.js
+++ b/src/pages/nav_system_content/SystemContentList.js
@@ -95,7 +95,7 @@ const SystemContentList = (props) => {
"path": "/topnavbar00/hrefficiency/staffsheet",
icon:
,
"key": "/topnavbar00/hrefficiency/staffsheet",
- "label": "员工仪表盘"
+ "label": "重大 "
},
{
"path": "/topnavbar00/hrefficiency/staffuph",
From 381092b39bae74f7e3c711fb4373fb96c6046eda Mon Sep 17 00:00:00 2001
From: wangyunfei <1224056307@qq,com>
Date: Tue, 23 Sep 2025 11:57:04 +0800
Subject: [PATCH 2/5] =?UTF-8?q?=E9=87=8D=E5=A4=A7=E5=8D=B1=E9=99=A9?=
=?UTF-8?q?=E6=BA=90=E6=96=87=E4=BB=B6=E5=88=9B=E5=BB=BA?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
config/routes.js | 2 +-
.../nav_system_content/SystemContentList.js | 2 +-
.../safe_majorHazard/SafeMajorHazardList.js | 860 ++++++++++++++++++
.../safe_majorHazard/StaffSheetList.less | 128 +++
.../form/StaffSheetCreateForm.js | 271 ++++++
.../form/StaffSheetRenderAdvancedForm.js | 113 +++
.../form/StaffSheetRenderSimpleForm.js | 81 ++
.../form/StaffSheetUpdateForm.js | 362 ++++++++
.../form/StaffSheetViewForm.js | 299 ++++++
.../safe_majorHazard/models/StaffSheet.js | 319 +++++++
10 files changed, 2435 insertions(+), 2 deletions(-)
create mode 100644 src/pages/safe_majorHazard/SafeMajorHazardList.js
create mode 100644 src/pages/safe_majorHazard/StaffSheetList.less
create mode 100644 src/pages/safe_majorHazard/form/StaffSheetCreateForm.js
create mode 100644 src/pages/safe_majorHazard/form/StaffSheetRenderAdvancedForm.js
create mode 100644 src/pages/safe_majorHazard/form/StaffSheetRenderSimpleForm.js
create mode 100644 src/pages/safe_majorHazard/form/StaffSheetUpdateForm.js
create mode 100644 src/pages/safe_majorHazard/form/StaffSheetViewForm.js
create mode 100644 src/pages/safe_majorHazard/models/StaffSheet.js
diff --git a/config/routes.js b/config/routes.js
index 00d0f07..98340aa 100644
--- a/config/routes.js
+++ b/config/routes.js
@@ -35,7 +35,7 @@ export default [
path: '/topnavbar00/hrefficiency/staffsheet',
// icon: 'bank',
name: 'staffsheet',
- component: './hrefficiency_staffsheet/StaffSheetList',
+ component: './safe_majorHazard/SafeMajorHazardList',
},
{
path: '/topnavbar00/hrefficiency/staffuph',
diff --git a/src/pages/nav_system_content/SystemContentList.js b/src/pages/nav_system_content/SystemContentList.js
index 4c7d0dc..2b86618 100644
--- a/src/pages/nav_system_content/SystemContentList.js
+++ b/src/pages/nav_system_content/SystemContentList.js
@@ -95,7 +95,7 @@ const SystemContentList = (props) => {
"path": "/topnavbar00/hrefficiency/staffsheet",
icon:
,
"key": "/topnavbar00/hrefficiency/staffsheet",
- "label": "重大 "
+ "label": "重大危险源管理"
},
{
"path": "/topnavbar00/hrefficiency/staffuph",
diff --git a/src/pages/safe_majorHazard/SafeMajorHazardList.js b/src/pages/safe_majorHazard/SafeMajorHazardList.js
new file mode 100644
index 0000000..149e30c
--- /dev/null
+++ b/src/pages/safe_majorHazard/SafeMajorHazardList.js
@@ -0,0 +1,860 @@
+import React, {Fragment, PureComponent} from 'react';
+import {
+ DeleteOutlined,
+ EditOutlined,
+ PlusOutlined,
+ SearchOutlined,
+ RedoOutlined,
+ DownOutlined,
+ ExclamationCircleFilled,
+ UpOutlined,
+} from '@ant-design/icons';
+import {connect, history} from '@umijs/max';
+import {Button, Card, Divider, Dropdown, message, Modal, Popconfirm, Space, Switch, Tag,Row,Col} from 'antd';
+import StandardTable from '@/components/StandardTable';
+
+import { MyIcon } from "@/components/Icon"
+import style from "@/global.less";
+import StaffSheetCreateForm from './form/StaffSheetCreateForm'; //新增表单
+import StaffSheetUpdateForm from './form/StaffSheetUpdateForm'; //修改表单
+import StaffSheetViewForm from './form/StaffSheetViewForm'; //查看表单
+import StaffSheetRenderSimpleForm from './form/StaffSheetRenderSimpleForm'; //简单查询表单
+import StaffSheetRenderAdvancedForm from './form/StaffSheetRenderAdvancedForm'; //高级查询表单
+import styles from './StaffSheetList.less';
+import datadictionary from "@/utils/dataDictionary";
+import {formatDate} from "@/utils/formatUtils";
+import { formatDictText, checkButtonAuthority } from "@/utils/globalCommon";
+
+const { confirm } = Modal;
+
+//预约类型
+const sex_type = datadictionary.sex
+const user_status = datadictionary.user_status
+const sys_user_post = datadictionary.sys_user_post
+
+const mockData = {
+ list: [
+ {
+ gx: "--",
+ gslx: "排班",
+ ks: "中医科",
+ lc: "11",
+ kssj: "08:00",
+ jssj: "18:00",
+ cxsc: "8",
+ sjly: ""
+ },
+ {
+ gx: "--",
+ gslx: "考勤",
+ ks: "中医科",
+ lc: "11",
+ kssj: "07:00",
+ jssj: "20:00",
+ cxsc: "11",
+ sjly: ""
+ },
+ {
+ gx: "照顾A",
+ gslx: "照顾",
+ ks: "中医科",
+ lc: "11",
+ kssj: "09:00",
+ jssj: "10:00",
+ cxsc: "1",
+ sjly: "人工上传"
+ },
+ {
+ gx: "照顾B",
+ gslx: "照顾",
+ ks: "中医科",
+ lc: "11",
+ kssj: "10:00",
+ jssj: "11:00",
+ cxsc: "1",
+ sjly: "人工上传"
+ },
+ {
+ gx: "照顾C",
+ gslx: "照顾",
+ ks: "中医科",
+ lc: "11",
+ kssj: "11:00",
+ jssj: "13:00",
+ cxsc: "2",
+ sjly: "人工上传"
+ },
+ {
+ gx: "接病人D",
+ gslx: "接送",
+ ks: "急诊",
+ lc: "1",
+ kssj: "14:00",
+ jssj: "16:00",
+ cxsc: "2",
+ sjly: "his"
+ },
+ {
+ gx: "照顾A",
+ gslx: "照顾",
+ ks: "心脏内科",
+ lc: "9",
+ kssj: "16:00",
+ jssj: "18:00",
+ cxsc: "2",
+ sjly: "his"
+ },
+ {
+ gx: "送病人B",
+ gslx: "接送",
+ ks: "急诊",
+ lc: "1",
+ kssj: "18:00",
+ jssj: "20:00",
+ cxsc: "2",
+ sjly: "his"
+ },
+ {
+ gx: "照顾C",
+ gslx: "照顾",
+ ks: "中医科",
+ lc: "11",
+ kssj: "20:00",
+ jssj: "21:00",
+ cxsc: "1",
+ sjly: "系统采集"
+ },
+ ],
+ pagination: {},
+}
+@connect(({ staffsheet, loading }) => ({
+ staffsheet,
+ loading: loading.models.staffsheet,
+}))
+
+class StaffSheetList extends PureComponent {
+ state = {
+ modalVisible: false,
+ updateModalVisible: false,
+ viewModalVisible: false,
+ expandForm: false,
+ selectedRows: [],
+ formValues: {},
+ updateFormValues: {},
+ viewFormValues: {},
+ toggleExpand: false,
+ }
+
+ columns = [
+ {
+ title: '工序',
+ dataIndex: 'gx',
+ key: 'gx',
+ width: 80,
+ fixed: 'left',
+ }, {
+ title: '工时类型',
+ dataIndex: 'gslx',
+ key: 'gslx',
+ width: 100,
+ fixed: 'left',
+ },{
+ title: '科室',
+ dataIndex: 'ks',
+ key: 'ks',
+ width: 80,
+ }, {
+ title: '楼层',
+ dataIndex: 'lc',
+ key: 'lc',
+ width: 80,
+ },{
+ title: '开始时间',
+ dataIndex: 'kssj',
+ key: 'kssj',
+ width: 100,
+ }, {
+ title: '结束时间',
+ dataIndex: 'jssj',
+ key: 'jssj',
+ width: 100,
+ }, {
+ title: '持续时长(小时)',
+ dataIndex: 'cxsc',
+ key: 'cxsc',
+ width: 100,
+ },
+ {
+ title:
+ 6
+ 7
+ 8
+ 9
+ 10
+ 11
+ 12
+ 13
+ 14
+ 15
+ 16
+ 17
+ 18
+ 19
+ 20
+ 21
+ 22
+ 23
+ 0
+ 1
+ 2
+ 3
+ 4
+ 5
+
,
+ dataIndex: 'tj',
+ key: 'tj',
+ width: 750,
+ render: (text, record,index) => {
+ console.log(record,77777)
+ if(index == 0) {
+ return (
+
+
+
+
+ )
+ } else if(index == 1) {
+ return (
+
+
+
+
+ )
+ } else if(index == 2) {
+ return (
+
+
+
+
+ )
+ } else if(index == 3) {
+ return (
+
+
+
+ )
+ } else if(index == 4) {
+ return (
+
+
+
+ )
+ } else if(index == 5) {
+ return (
+
+
+
+ )
+ } else if(index == 6) {
+ return (
+
+
+
+ )
+ } else if(index == 7) {
+ return (
+
+
+
+ )
+ } else if(index == 8) {
+ return (
+
+
+
+ )
+ }
+ }
+ },
+ {
+ title: '数据来源',
+ dataIndex: 'sjly',
+ key: 'sjly',
+ width: 100,
+ },
+ {
+ title: '操作',
+ fixed: 'right',
+ width: 100,
+ render: (text, record) => {
+ return (
+
+ 修改
+
+ )
+ }
+ },
+ ]
+
+ componentDidMount() {
+ // const { dispatch, staffsheet: { params } } = this.props
+
+ // dispatch({
+ // type: 'timesheet/query_page_for_prouser',
+ // })
+
+ // this.setState({
+ // expandForm: params?.expandForm || false,
+ // })
+ }
+
+ handleStandardTableChange = (pagination, sorter) => {
+ const { dispatch } = this.props
+ const { formValues } = this.state
+
+ const params = {
+ currentPage: pagination.current,
+ pageSize: pagination.pageSize,
+ ...formValues
+ }
+
+ sorter.field && (params.sorter = `${sorter.field}_${sorter.order}`)
+
+ // dispatch({
+ // type: 'prouser/query_page_for_prouser',
+ // payload: params
+ // })
+ }
+
+ handleFormReset = () => {
+ const { dispatch } = this.props
+ this.setState({
+ formValues: {}
+ })
+
+ // dispatch({
+ // type: 'prouser/query_page_for_prouser',
+ // payload: {
+ // resetFlag: true
+ // }
+ // })
+ }
+
+ toggleForm = () => {
+ const { expandForm } = this.state
+ this.setState({
+ expandForm: !expandForm
+ })
+ }
+
+ handleSelectRows = rows => {
+ this.setState({
+ selectedRows: rows
+ })
+ }
+
+ handleSearch = values => {
+ const { dispatch } = this.props
+ const { expandForm } = this.state
+
+ this.setState({
+ formValues: values
+ })
+
+ // dispatch({
+ // type: 'prouser/query_page_for_prouser',
+ // payload: {
+ // ...values,
+ // resetFlag: true,
+ // expandForm
+ // }
+ // })
+ }
+
+ handleModalVisible = flag => {
+ this.setState({
+ modalVisible: !!flag
+ })
+ }
+
+ handleUpdateModalVisible = (flag, record) => {
+ this.setState({
+ updateModalVisible: !!flag,
+ updateFormValues: record || {}
+ })
+ }
+
+ handleViewModalVisible = (flag, record) => {
+ this.setState({
+ viewModalVisible: !!flag,
+ viewFormValues: record || {}
+ })
+ }
+
+ handleAdd = fields => {
+ const { dispatch } = this.props
+
+ dispatch({
+ type: 'prouser/insert_for_prouser',
+ payload: {
+ user_id: fields.user_id,
+ user_name: fields.user_name,
+ user_name_cn: fields.user_name_cn,
+ user_name_en: fields.user_name_en,
+ password: fields.password,
+ email: fields.email,
+ phone: fields.phone,
+ landline: fields.landline,
+ sex: fields.sex,
+ avatar: fields.avatar,
+ sign: fields.sign,
+ tags: fields.tags,
+ id_card: fields.id_card,
+ birthday: fields.birthday,
+ job_status: fields.job_status,
+ hiredate: fields.hiredate,
+ departure_time: fields.departure_time,
+ user_type: fields.user_type,
+ emp_no: fields.emp_no,
+ access_card_no: fields.access_card_no,
+ country: fields.country,
+ province: fields.province,
+ city: fields.city,
+ address: fields.address,
+ work_addr: fields.work_addr,
+ floor: fields.floor,
+ inprovince: fields.inprovince,
+ // dept_code: fields.dept_code,
+ // dept_name: fields.dept_name,
+ inner_dept_code: fields.inner_dept_code,
+ org_code: fields.org_code,
+ org_name: fields.org_name,
+ inner_org_code: fields.inner_org_code,
+ posts: fields.posts,
+ wx_openid: fields.wx_openid,
+ wx_mpopenid: fields.wx_mpopenid,
+ wx_miniopenid: fields.wx_miniopenid,
+ wx_unionid: fields.wx_unionid,
+ mobile_imei: fields.mobile_imei,
+ device_num: fields.device_num,
+ al_taobao: fields.al_taobao,
+ al_alipay: fields.al_alipay,
+ al_dingding: fields.al_dingding,
+ is_system_user: fields.is_system_user,
+ mgr_type: fields.mgr_type,
+ pwd_security_level: fields.pwd_security_level,
+ pwd_update_date: fields.pwd_update_date,
+ last_login_ip: fields.last_login_ip,
+ last_login_date: fields.last_login_date,
+ freeze_date: fields.freeze_date,
+ freeze_cause: fields.freeze_cause,
+ zindex: fields.zindex,
+ wx_msg: fields.wx_msg,
+ email_msg: fields.email_msg,
+ system_msg: fields.system_msg,
+ remarks: fields.remarks,
+ status: fields.status,
+ creator: fields.creator,
+ create_date: fields.create_date,
+ updater: fields.updater,
+ update_date: fields.update_date
+ },
+ callback: (res) => {
+ if(res.success == true) {
+ message.success('添加成功')
+ this.handleModalVisible()
+ }
+ }
+ })
+ }
+
+ handleDeleteRecord = record => {
+ const { dispatch } = this.props
+
+ dispatch({
+ type: 'prouser/delete_by_primarykey_for_prouser',
+ payload: {
+ recordid: record.user_id
+ },
+ callback: res => {
+ if (res.success) {
+ message.success('删除成功')
+
+ this.setState({
+ selectedRows: []
+ })
+ }
+ }
+ })
+ }
+
+ handleUpdate = fields => {
+ const { dispatch } = this.props
+
+ dispatch({
+ type: 'prouser/update_for_prouser',
+ payload: {
+ user_id: fields.user_id,
+ user_name: fields.user_name,
+ user_name_cn: fields.user_name_cn,
+ user_name_en: fields.user_name_en,
+ password: fields.password,
+ email: fields.email,
+ phone: fields.phone,
+ landline: fields.landline,
+ sex: fields.sex,
+ avatar: fields.avatar,
+ sign: fields.sign,
+ tags: fields.tags,
+ id_card: fields.id_card,
+ birthday: fields.birthday,
+ job_status: fields.job_status,
+ hiredate: fields.hiredate,
+ departure_time: fields.departure_time,
+ user_type: fields.user_type,
+ emp_no: fields.emp_no,
+ access_card_no: fields.access_card_no,
+ country: fields.country,
+ province: fields.province,
+ city: fields.city,
+ address: fields.address,
+ work_addr: fields.work_addr,
+ floor: fields.floor,
+ inprovince: fields.inprovince,
+ // dept_code: fields.dept_code,
+ // dept_name: fields.dept_name,
+ inner_dept_code: fields.inner_dept_code,
+ org_code: fields.org_code,
+ org_name: fields.org_name,
+ inner_org_code: fields.inner_org_code,
+ posts: fields.posts,
+ wx_openid: fields.wx_openid,
+ wx_mpopenid: fields.wx_mpopenid,
+ wx_miniopenid: fields.wx_miniopenid,
+ wx_unionid: fields.wx_unionid,
+ mobile_imei: fields.mobile_imei,
+ device_num: fields.device_num,
+ al_taobao: fields.al_taobao,
+ al_alipay: fields.al_alipay,
+ al_dingding: fields.al_dingding,
+ is_system_user: fields.is_system_user,
+ mgr_type: fields.mgr_type,
+ pwd_security_level: fields.pwd_security_level,
+ pwd_update_date: fields.pwd_update_date,
+ last_login_ip: fields.last_login_ip,
+ last_login_date: fields.last_login_date,
+ freeze_date: fields.freeze_date,
+ freeze_cause: fields.freeze_cause,
+ zindex: fields.zindex,
+ wx_msg: fields.wx_msg,
+ email_msg: fields.email_msg,
+ system_msg: fields.system_msg,
+ remarks: fields.remarks,
+ status: fields.status,
+ creator: fields.creator,
+ create_date: fields.create_date,
+ updater: fields.updater,
+ update_date: fields.update_date
+ },
+ callback: (res) => {
+ if(res.success === true) {
+ message.success('修改成功')
+ this.handleUpdateModalVisible()
+ }
+ }
+ })
+ }
+
+ // 修改用户状态
+ handleUpdateUserStatus = (fields, status, msg) => {
+ const { dispatch } = this.props
+
+ confirm({
+ title: `确定要 ${ msg } 当前用户的吗?`,
+ icon: ,
+ onOk() {
+ dispatch({
+ type: 'prouser/update_for_prouser',
+ payload: {
+ user_id: fields.user_id,
+ status: status,
+ },
+ callback: (res) => {
+ if(res.success === true) {
+ message.success('修改成功')
+ }
+ }
+ })
+ }
+ })
+ }
+
+ // 修改用户密码
+ handleUpdateUserPassword = fields => {
+ const { dispatch } = this.props
+ confirm({
+ title: '确定要重置当前用户的密码吗?',
+ icon: ,
+ onOk() {
+ dispatch({
+ type: 'prouser/resetpwd_for_prouser',
+ payload: {
+ user_id: fields.user_id
+ },
+ callback: (res) => {
+ if(res.success === true) {
+ message.success('重置成功')
+ }
+ }
+ })
+ }
+ })
+ }
+
+ renderSimpleForm() {
+ const { staffsheet: { params } } = this.props
+ const parentMethods = {
+ handleSearch: this.handleSearch,
+ handleFormReset: this.handleFormReset,
+ toggleForm: this.toggleForm,
+ params
+ }
+
+ return
+ }
+
+ renderAdvancedForm() {
+ const { dispatch, prouser: { selectDeptTree, selectOrganTree, params } } = this.props
+ const parentMethods = {
+ handleSearch: this.handleSearch,
+ handleFormReset: this.handleFormReset,
+ toggleForm: this.toggleForm,
+ dispatch: dispatch,
+ selectDeptTree: selectDeptTree,
+ selectOrganTree: selectOrganTree,
+ params
+ }
+
+ return
+ }
+
+ renderForm() {
+ const { expandForm } = this.state
+ return expandForm ? this.renderAdvancedForm() : this.renderSimpleForm()
+ }
+
+ handleCollapse = () => {
+ const { toggleExpand } = this.state
+ this.setState({
+ toggleExpand: !toggleExpand
+ })
+ }
+
+ render() {
+ const {
+ staffsheet: {
+ data,
+ selectDeptTree,
+ selectOrganTree
+ },
+ loading,
+ dispatch
+ } = this.props
+ const {
+ selectedRows,
+ modalVisible,
+ updateModalVisible,
+ viewModalVisible,
+ updateFormValues,
+ viewFormValues,
+ toggleExpand
+ } = this.state
+
+ const parentMethods = {
+ handleAdd: this.handleAdd,
+ handleModalVisible: this.handleModalVisible,
+ dispatch: dispatch,
+ loading,
+ selectDeptTree: selectDeptTree,
+ selectOrganTree: selectOrganTree
+ }
+
+ const updateMethods = {
+ handleUpdateModalVisible: this.handleUpdateModalVisible,
+ handleUpdate: this.handleUpdate,
+ dispatch: dispatch,
+ loading,
+ selectDeptTree: selectDeptTree,
+ selectOrganTree: selectOrganTree
+ }
+
+ const viewMethods = {
+ handleViewModalVisible: this.handleViewModalVisible
+ }
+
+ return (
+ <>
+
+
+
{this.renderForm()}
+
+ this.handleCollapse()}>
+ {toggleExpand ? <> 收起> : <> 展开>}
+
+
+
+
+
+
+
+
+
+
+
+
total}
+ />
+
+
+
+ {modalVisible && }
+
+ {updateFormValues && Object.keys(updateFormValues).length ? (
+
+ ) : null}
+
+ {viewFormValues && Object.keys(viewFormValues).length ? (
+
+ ) : null}
+ >
+ )
+ }
+}
+
+export default StaffSheetList
diff --git a/src/pages/safe_majorHazard/StaffSheetList.less b/src/pages/safe_majorHazard/StaffSheetList.less
new file mode 100644
index 0000000..c786cb9
--- /dev/null
+++ b/src/pages/safe_majorHazard/StaffSheetList.less
@@ -0,0 +1,128 @@
+@import '~@/utils/utils.less';
+
+.proUsertableList {
+ .proUsertableListOperator {
+ margin-bottom: 16px;
+ button {
+ margin-right: 8px;
+ }
+ }
+
+ .editColumn {
+ > div:last-child {
+ display: none;
+ }
+ }
+}
+
+.proUsertableListForm {
+ height: 45px;
+ :global {
+ .ant-form-item {
+ display: flex;
+ margin-right: 0;
+ margin-bottom: 24px;
+
+ .ant-form-item-label {
+ // width: 80px;
+ // padding-right: 8px;
+ line-height: 32px;
+ text-align: left;
+ }
+
+ .ant-form-item-control {
+ line-height: 32px;
+ width: calc(100% - 80px);
+
+ .ant-form-item-control-input-content {
+ height: 32px;
+ }
+ }
+
+ > .ant-row {
+ flex-wrap: nowrap;
+ }
+ }
+
+ .ant-form-item-control-wrapper {
+ flex: 1;
+ }
+ }
+}
+
+.summaryButton {
+ width: 80px;
+ height: 30px;
+ line-height: 30px;
+ font-size: 12px;
+ background-color: #eff1f3;
+ border-radius: 20px;
+ cursor: pointer;
+}
+
+.summaryContent {
+ display: flex;
+ margin-top: 10px;
+ > div {
+ flex: 2;
+ height: 60px;
+ border-right: 2px solid #eeeeee;
+ padding-left: 10px;
+ // background-color: #1890FF
+ }
+ .titleLabel {
+ color: #b2b2b2;
+ font-weight: 500;
+ margin-bottom: 10px;
+ }
+ .titleVal {
+ font-weight: 500;
+ }
+}
+
+.operateContent {
+ display: flex;
+ margin: 20px 0;
+ justify-content: space-between;
+ .workClass {
+ display: inline-block;
+ width: 10px;
+ height: 10px;
+ margin-left: 10px;
+ }
+}
+
+.pbsjStyle {
+ display: inline-block;
+ width: 120px;
+ height: 40px;
+ margin-left: 56px;
+ background-color: #faf07a;
+}
+.kqsjStyle {
+ display: inline-block;
+ width: 180px;
+ height: 40px;
+ margin-left: 29px;
+ background-color: #9cc5fc;
+}
+.xzStyle {
+ display: inline-block;
+ width: 60px;
+ height: 40px;
+ margin-left: 29px;
+ background-color: #454545;
+}
+
+.zjgsStyle {
+ display: inline-block;
+ width: 30px;
+ height: 40px;
+ background-color: #8ddd15;
+}
+
+.timeGraphic {
+ span {
+ padding: 0 10px;
+ }
+}
diff --git a/src/pages/safe_majorHazard/form/StaffSheetCreateForm.js b/src/pages/safe_majorHazard/form/StaffSheetCreateForm.js
new file mode 100644
index 0000000..6bdce8d
--- /dev/null
+++ b/src/pages/safe_majorHazard/form/StaffSheetCreateForm.js
@@ -0,0 +1,271 @@
+import { useState, useEffect } from 'react'
+import { Col, DatePicker, Form, Input, Modal, Row, Select } from 'antd'
+import SelectDeptTree from '@/components/SelectDeptTree'
+import SelectOrganTree from '@/components/SelectOrganTree'
+import datadictionary from '@/utils/dataDictionary'
+import { formatDictOptions, verifyPhone } from '@/utils/globalCommon'
+import { NumberInput } from '@/components/NumberInput'
+import styles from '../StaffSheetList.less'
+import style from '@/global.less'
+import dayjs from 'dayjs'
+import { formatDate } from '@/utils/formatUtils'
+
+const { Item: FormItem } = Form
+const { TextArea } = Input
+const dictData = datadictionary
+
+//新增表单
+let getDeptTreeBySelectTree
+let getOrganTreeBySelectTree
+
+const StaffSheetCreateForm = (props => {
+ const [form] = Form.useForm()
+ const [jobStatus, setJobStatus] = useState('1')
+
+ const {
+ modalVisible,
+ handleAdd,
+ handleModalVisible,
+ loading,
+ dispatch,
+ selectDeptTree,
+ selectOrganTree
+ } = props
+
+ useEffect(() => {
+ form.setFieldsValue({
+ user_type: 'employee',
+ job_status: '1',
+ mgr_type: '0'
+ })
+ }, [])
+
+ const selectedDeptTreeValue = (deptRecord) => {
+ getDeptTreeBySelectTree = deptRecord
+ }
+
+ const selectedOrganTreeValue = (orgRecord) => {
+ getOrganTreeBySelectTree = orgRecord
+ }
+
+ const parentDeptTreeMethod = {
+ dispatch: dispatch,
+ selectDeptTree: selectDeptTree,
+ selectedDeptTreeValue: selectedDeptTreeValue,
+ }
+
+ const parentOrganTreeMethod = {
+ dispatch: dispatch,
+ selectOrganTree: selectOrganTree,
+ selectedOrganTreeValue: selectedOrganTreeValue
+ }
+
+ const okHandle = () => {
+ form.validateFields()
+ .then(fieldsValue => {
+ form.resetFields()
+ fieldsValue.birthday = formatDate(fieldsValue.birthday, 'YYYY-MM-DD')
+ fieldsValue.hiredate = formatDate(fieldsValue.hiredate, 'YYYY-MM-DD')
+ fieldsValue.departure_time = formatDate(fieldsValue.departure_time, 'YYYY-MM-DD')
+ fieldsValue.posts = fieldsValue.posts ? JSON.stringify(fieldsValue.posts) : null
+
+ // if (getDeptTreeBySelectTree) {
+ // fieldsValue.dept_code = getDeptTreeBySelectTree.dept_code
+ // fieldsValue.dept_name = getDeptTreeBySelectTree.title
+ // }
+
+ if (getOrganTreeBySelectTree) {
+ fieldsValue.org_code = getOrganTreeBySelectTree.org_code
+ fieldsValue.org_name = getOrganTreeBySelectTree.title
+ }
+
+ handleAdd(fieldsValue)
+ })
+ .catch(errInfo => {})
+ }
+
+ const afterClose = () =>{
+ form.resetFields();
+ }
+
+ const handleJobStatusChange = (value) => {
+ setJobStatus(value)
+ }
+
+ return (
+ handleModalVisible()}
+ afterClose={() => afterClose()}
+ confirmLoading={loading}
+ >
+
+
+ )
+})
+
+export default StaffSheetCreateForm
diff --git a/src/pages/safe_majorHazard/form/StaffSheetRenderAdvancedForm.js b/src/pages/safe_majorHazard/form/StaffSheetRenderAdvancedForm.js
new file mode 100644
index 0000000..2625938
--- /dev/null
+++ b/src/pages/safe_majorHazard/form/StaffSheetRenderAdvancedForm.js
@@ -0,0 +1,113 @@
+import { useEffect } from 'react'
+import { Button, Col, Form, Input, Row } from 'antd'
+import { UpOutlined, SearchOutlined, RedoOutlined } from '@ant-design/icons'
+import SelectDeptTree from '@/components/SelectDeptTree'
+import SelectOrganTree from '@/components/SelectOrganTree'
+import style from '@/global.less'
+
+const { Item: FormItem } = Form
+let getDeptTreeBySelectTree
+let getOrganTreeBySelectTree
+
+const StaffSheetRenderAdvancedForm = (props) => {
+ const [form] = Form.useForm()
+ const { dispatch, handleSearch, handleFormReset, toggleForm, selectDeptTree, selectOrganTree, params } = props
+
+ useEffect(() => {
+ form.setFieldsValue({
+ user_name: params?.user_name,
+ user_name_cn: params?.user_name_cn,
+ deptname: params?.deptname,
+ orgname: params?.orgname,
+ })
+ }, [params])
+
+ const onFinish = values => {
+ // if (getDeptTreeBySelectTree) {
+ // values.dept_code = getDeptTreeBySelectTree.dept_code
+ // values.deptname = getDeptTreeBySelectTree.title
+ // }
+
+ if (getOrganTreeBySelectTree) {
+ values.org_code = getOrganTreeBySelectTree.org_code
+ values.orgname = getOrganTreeBySelectTree.title
+ }
+
+ handleSearch(values)
+ }
+
+ const myHandleFormReset = () => {
+ form.resetFields()
+ handleFormReset()
+ }
+
+ const selectedDeptTreeValue = (deptRecord) => {
+ getDeptTreeBySelectTree = deptRecord
+ }
+
+ const selectedOrganTreeValue = (orgRecord) => {
+ getOrganTreeBySelectTree = orgRecord
+ }
+
+ const parentDeptTreeMethod = {
+ dispatch: dispatch,
+ selectDeptTree: selectDeptTree,
+ selectedDeptTreeValue: selectedDeptTreeValue
+ }
+
+ const parentOrganTreeMethod = {
+ dispatch: dispatch,
+ selectOrganTree: selectOrganTree,
+ selectedOrganTreeValue: selectedOrganTreeValue
+ }
+
+ return (
+
+ )
+}
+
+export default StaffSheetRenderAdvancedForm
diff --git a/src/pages/safe_majorHazard/form/StaffSheetRenderSimpleForm.js b/src/pages/safe_majorHazard/form/StaffSheetRenderSimpleForm.js
new file mode 100644
index 0000000..0468e76
--- /dev/null
+++ b/src/pages/safe_majorHazard/form/StaffSheetRenderSimpleForm.js
@@ -0,0 +1,81 @@
+import { useEffect } from 'react'
+import {Button, Col, Form, Input, Row, DatePicker, Select} from 'antd'
+import {DownOutlined, RedoOutlined, SearchOutlined} from '@ant-design/icons'
+import style from '@/global.less'
+import dayjs from 'dayjs'
+const { Item: FormItem } = Form
+
+const StaffSheetRenderSimpleForm = (props) => {
+ const [form] = Form.useForm()
+ const { handleSearch, handleFormReset, toggleForm, params } = props
+
+ useEffect(() => {
+ form.setFieldsValue({
+ user_name: params?.user_name,
+ user_name_cn: params?.user_name_cn,
+ })
+ }, [params])
+
+ const onFinish = values => {
+ handleSearch(values)
+ }
+
+ const myHandleFormReset = () => {
+ form.resetFields()
+ handleFormReset()
+ }
+
+ return (
+
+ )
+}
+
+export default StaffSheetRenderSimpleForm
diff --git a/src/pages/safe_majorHazard/form/StaffSheetUpdateForm.js b/src/pages/safe_majorHazard/form/StaffSheetUpdateForm.js
new file mode 100644
index 0000000..f33d64b
--- /dev/null
+++ b/src/pages/safe_majorHazard/form/StaffSheetUpdateForm.js
@@ -0,0 +1,362 @@
+import { useState, useEffect } from 'react'
+import { Col, DatePicker, Form, Input, Modal, Row, Select } from 'antd'
+import SelectOrganTree from '@/components/SelectOrganTree'
+import datadictionary from '@/utils/dataDictionary'
+import { formatDictOptions, verifyPhone } from '@/utils/globalCommon'
+import { NumberInput } from '@/components/NumberInput'
+import styles from '../StaffSheetList.less'
+import style from '@/global.less'
+import dayjs from 'dayjs'
+import { formatDate, formatDateObject } from '@/utils/formatUtils'
+
+const { Item: FormItem } = Form
+const { TextArea } = Input
+const dictData = datadictionary
+
+//新增表单
+let getDeptTreeBySelectTree
+let getOrganTreeBySelectTree
+
+const StaffSheetUpdateForm = (props) => {
+ const [form] = Form.useForm()
+ const [jobStatus, setJobStatus] = useState('1')
+ const [userStatus, setUserStatus] = useState('0')
+
+ const {
+ handleUpdate,
+ updateModalVisible,
+ handleUpdateModalVisible,
+ values,
+ loading,
+ dispatch,
+ selectDeptTree,
+ selectOrganTree
+ } = props
+
+ const selectedDeptTreeValue = (deptRecord) => {
+ getDeptTreeBySelectTree = deptRecord
+ }
+
+ const selectedOrganTreeValue = (orgRecord) => {
+ getOrganTreeBySelectTree = orgRecord
+ }
+
+ const parentDeptTreeMethod = {
+ dispatch: dispatch,
+ selectDeptTree: selectDeptTree,
+ selectedDeptTreeValue: selectedDeptTreeValue,
+ }
+
+ const parentOrganTreeMethod = {
+ dispatch: dispatch,
+ selectOrganTree: selectOrganTree,
+ selectedOrganTreeValue: selectedOrganTreeValue
+ }
+
+ useEffect(() => {
+ setJobStatus(values.job_status)
+ setUserStatus(values.status)
+
+ form.setFieldsValue({
+ user_id: values.user_id,
+ user_name: values.user_name,
+ user_name_cn: values.user_name_cn,
+ user_name_en: values.user_name_en,
+ password: values.password,
+ email: values.email,
+ phone: values.phone,
+ landline: values.landline,
+ sex: values.sex,
+ avatar: values.avatar,
+ sign: values.sign,
+ tags: values.tags,
+ id_card: values.id_card,
+ birthday: formatDateObject(values.birthday, 'YYYY-MM-DD'),
+ job_status: values.job_status,
+ hiredate: formatDateObject(values.hiredate, 'YYYY-MM-DD'),
+ departure_time: formatDateObject(values.departure_time, 'YYYY-MM-DD'),
+ user_type: values.user_type,
+ emp_no: values.emp_no,
+ access_card_no: values.access_card_no,
+ country: values.country,
+ province: values.province,
+ city: values.city,
+ address: values.address,
+ work_addr: values.work_addr,
+ floor: values.floor,
+ inprovince: values.inprovince,
+ // dept_code: values.dept_code,
+ // dept_name: values.dept_name,
+ inner_dept_code: values.inner_dept_code,
+ org_code: values.org_code,
+ org_name: values.org_name,
+ inner_org_code: values.inner_org_code,
+ posts: values.posts ? JSON.parse(values.posts) : [],
+ wx_openid: values.wx_openid,
+ wx_mpopenid: values.wx_mpopenid,
+ wx_miniopenid: values.wx_miniopenid,
+ wx_unionid: values.wx_unionid,
+ mobile_imei: values.mobile_imei,
+ device_num: values.device_num,
+ al_taobao: values.al_taobao,
+ al_alipay: values.al_alipay,
+ al_dingding: values.al_dingding,
+ is_system_user: values.is_system_user,
+ mgr_type: values.mgr_type,
+ pwd_security_level: values.pwd_security_level,
+ pwd_update_date: values.pwd_update_date,
+ last_login_ip: values.last_login_ip,
+ last_login_date: values.last_login_date,
+ freeze_date: values.freeze_date,
+ freeze_cause: values.freeze_cause,
+ zindex: values.zindex,
+ wx_msg: values.wx_msg,
+ email_msg: values.email_msg,
+ system_msg: values.system_msg,
+ remarks: values.remarks,
+ status: values.status,
+ creator: values.creator,
+ create_date: values.create_date,
+ updater: values.updater,
+ update_date: values.update_date
+ })
+ }, [])
+
+ const handleLocalUpdate = () => {
+ form
+ .validateFields()
+ .then(fieldsValue => {
+ const formVals = {...values, ...fieldsValue}
+ formVals.birthday = formatDate(formVals.birthday, 'YYYY-MM-DD')
+ formVals.hiredate = formatDate(formVals.hiredate, 'YYYY-MM-DD')
+ formVals.departure_time = formatDate(formVals.departure_time, 'YYYY-MM-DD')
+ formVals.posts = formVals.posts ? JSON.stringify(formVals.posts) : null
+ formVals.freeze_date = '3' === formVals.status ? formatDate(dayjs().endOf('day'), 'YYYY-MM-DD') : null
+ formVals.freeze_cause = '3' === formVals.status ? formVals.freeze_cause : null
+
+ // if (getDeptTreeBySelectTree) {
+ // formVals.dept_code = getDeptTreeBySelectTree.dept_code
+ // formVals.dept_name = getDeptTreeBySelectTree.title
+ // }
+
+ if (getOrganTreeBySelectTree) {
+ formVals.org_code = getOrganTreeBySelectTree.org_code
+ formVals.org_name = getOrganTreeBySelectTree.title
+ }
+
+ handleUpdate(formVals)
+
+ })
+ .catch(errInfo => {})
+ }
+
+ const afterClose = () =>{
+ form.resetFields();
+ }
+
+ const handleJobStatusChange = (value) => {
+ setJobStatus(value)
+ }
+
+ const handleUserStatusChange = (value) => {
+ setUserStatus(value)
+ }
+
+ return (
+ handleLocalUpdate()}
+ onCancel={() => handleUpdateModalVisible()}
+ afterClose={() => afterClose()}
+ confirmLoading={loading}
+ >
+
+
+ )
+}
+
+export default StaffSheetUpdateForm
diff --git a/src/pages/safe_majorHazard/form/StaffSheetViewForm.js b/src/pages/safe_majorHazard/form/StaffSheetViewForm.js
new file mode 100644
index 0000000..9acb9c4
--- /dev/null
+++ b/src/pages/safe_majorHazard/form/StaffSheetViewForm.js
@@ -0,0 +1,299 @@
+import { useState, useEffect } from 'react'
+import {Col, DatePicker, Form, Input, Modal, Row, Select} from 'antd'
+import datadictionary from '@/utils/dataDictionary'
+import style from "@/global.less";
+import {formatDictOptions, verifyPhone} from "@/utils/globalCommon";
+import {NumberInput} from "@/components/NumberInput";
+import dayjs from "dayjs";
+import SelectOrganTree from "@/components/SelectOrganTree";
+import {formatDateObject} from "@/utils/formatUtils";
+
+const { Item: FormItem } = Form
+const { TextArea } = Input
+const dictData = datadictionary
+
+const StaffSheetViewForm = (props) => {
+ const [form] = Form.useForm()
+ const [jobStatus, setJobStatus] = useState('1')
+ const [userStatus, setUserStatus] = useState('0')
+
+ const { viewModalVisible, handleViewModalVisible, values } = props
+
+ useEffect(() => {
+ setJobStatus(values.job_status)
+ setUserStatus(values.status)
+
+ form.setFieldsValue({
+ user_id: values.user_id,
+ user_name: values.user_name,
+ user_name_cn: values.user_name_cn,
+ user_name_en: values.user_name_en,
+ password: values.password,
+ email: values.email,
+ phone: values.phone,
+ landline: values.landline,
+ sex: values.sex,
+ avatar: values.avatar,
+ sign: values.sign,
+ tags: values.tags,
+ id_card: values.id_card,
+ birthday: formatDateObject(values.birthday, 'YYYY-MM-DD'),
+ job_status: values.job_status,
+ hiredate: formatDateObject(values.hiredate, 'YYYY-MM-DD'),
+ departure_time: formatDateObject(values.departure_time, 'YYYY-MM-DD'),
+ user_type: values.user_type,
+ emp_no: values.emp_no,
+ access_card_no: values.access_card_no,
+ country: values.country,
+ province: values.province,
+ city: values.city,
+ address: values.address,
+ work_addr: values.work_addr,
+ floor: values.floor,
+ inprovince: values.inprovince,
+ // dept_code: values.dept_code,
+ // dept_name: values.dept_name,
+ inner_dept_code: values.inner_dept_code,
+ org_code: values.org_code,
+ org_name: values.org_name,
+ inner_org_code: values.inner_org_code,
+ posts: values.posts ? JSON.parse(values.posts) : [],
+ wx_openid: values.wx_openid,
+ wx_mpopenid: values.wx_mpopenid,
+ wx_miniopenid: values.wx_miniopenid,
+ wx_unionid: values.wx_unionid,
+ mobile_imei: values.mobile_imei,
+ device_num: values.device_num,
+ al_taobao: values.al_taobao,
+ al_alipay: values.al_alipay,
+ al_dingding: values.al_dingding,
+ is_system_user: values.is_system_user,
+ mgr_type: values.mgr_type,
+ pwd_security_level: values.pwd_security_level,
+ pwd_update_date: values.pwd_update_date,
+ last_login_ip: values.last_login_ip,
+ last_login_date: values.last_login_date,
+ freeze_date: values.freeze_date,
+ freeze_cause: values.freeze_cause,
+ zindex: values.zindex,
+ wx_msg: values.wx_msg,
+ email_msg: values.email_msg,
+ system_msg: values.system_msg,
+ remarks: values.remarks,
+ status: values.status,
+ creator: values.creator,
+ create_date: values.create_date,
+ updater: values.updater,
+ update_date: values.update_date
+ })
+ }, [])
+
+ const afterClose = () =>{
+ form.resetFields();
+ }
+
+ const handleJobStatusChange = (value) => {
+ setJobStatus(value)
+ }
+
+ const handleUserStatusChange = (value) => {
+ setUserStatus(value)
+ }
+
+ return (
+ handleViewModalVisible()}
+ onCancel={() => handleViewModalVisible()}
+ afterClose={() => afterClose()}
+ >
+
+
+ )
+}
+
+export default StaffSheetViewForm
diff --git a/src/pages/safe_majorHazard/models/StaffSheet.js b/src/pages/safe_majorHazard/models/StaffSheet.js
new file mode 100644
index 0000000..79b74c9
--- /dev/null
+++ b/src/pages/safe_majorHazard/models/StaffSheet.js
@@ -0,0 +1,319 @@
+import { deleteByPrimaryKeyForProUser, selectByPrimaryKeyForProUser, insertForProUser, updateForProUser, deleteByMapForProUser,updateByMapForProUser, getOneForProUser,getAllForProUser,queryPageForProUser, countForProUser, insertBatchForProUser, deleteBatchForProUser,updateBatchForProUser, resetPwdForProUser } from '@/services/system/api_prouser';
+
+export default {
+ namespace: 'safemajorhazard',
+
+ state: {
+ params: {},
+ data: {
+ list: [],
+ pagination: {},
+ },
+ },
+
+ effects: {
+ *delete_by_primarykey_for_prouser({ payload, callback }, { select, call, put }) {
+ const response = yield call(deleteByPrimaryKeyForProUser, payload)
+ yield put({
+ type: 'deleteByPrimaryKeyForProUser',
+ payload: response
+ })
+
+ if (!response.success) {
+ callback && callback(response)
+ return
+ }
+
+ const params = yield select(state => state.prouser.params)
+ const responseData = yield call(queryPageForProUser, params)
+ yield put({
+ type: 'queryPageForProUser',
+ payload: responseData
+ })
+
+ if (callback) callback(response)
+ },
+ *select_by_primarykey_for_prouser({ payload, callback }, { call, put }) {
+ const response = yield call(selectByPrimaryKeyForProUser, payload)
+ yield put({
+ type: 'selectByPrimaryKeyForProUser',
+ payload: response
+ })
+
+ if (callback) callback(response)
+ },
+ *insert_for_prouser({ payload, callback }, { select, call, put }) {
+ const response = yield call(insertForProUser, payload)
+ yield put({
+ type: 'insertForProUser',
+ payload: response
+ })
+
+ if (!response.success) {
+ callback && callback(response)
+ return
+ }
+
+ const params = yield select(state => state.prouser.params)
+ const responseData = yield call(queryPageForProUser, params)
+ yield put({
+ type: 'queryPageForProUser',
+ payload: responseData
+ })
+
+ if (callback) callback(response)
+ },
+ *update_for_prouser({ payload, callback }, { select, call, put }) {
+ const response = yield call(updateForProUser, payload)
+ yield put({
+ type: 'updateForProUser',
+ payload: response
+ })
+
+ if (!response.success) {
+ callback && callback(response)
+ return
+ }
+
+ const params = yield select(state => state.prouser.params)
+ const responseData = yield call(queryPageForProUser, params)
+ yield put({
+ type: 'queryPageForProUser',
+ payload: responseData
+ })
+
+ if (callback) callback(response)
+ },
+ *delete_by_map_for_prouser({ payload, callback }, { select, call, put }) {
+ const response = yield call(deleteByMapForProUser, payload);
+ yield put({
+ type: 'deleteByMapForProUser',
+ payload: response,
+ });
+
+ const params = yield select(state => state.prouser.params);
+ const responsedata = yield call(queryPageForProUser, params);
+ yield put({
+ type: 'queryPageForProUser',
+ payload: responsedata,
+ });
+
+ if (callback) callback(response);
+ },
+ *update_by_map_for_prouser({ payload, callback }, { select, call, put }) {
+ const response = yield call(updateByMapForProUser, payload);
+ yield put({
+ type: 'updateByMapForProUser',
+ payload: response,
+ });
+
+ const params = yield select(state => state.prouser.params);
+ const responsedata = yield call(queryPageForProUser, params);
+ yield put({
+ type: 'queryPageForProUser',
+ payload: responsedata,
+ });
+
+ if (callback) callback(response);
+ },
+ *get_one_for_prouser({ payload, callback }, { call, put }) {
+ const response = yield call(getOneForProUser, payload);
+ yield put({
+ type: 'getOneForProUser',
+ payload: response,
+ });
+
+ if (callback) callback(response);
+ },
+ *get_all_for_prouser({ payload, callback }, { call, put }) {
+ const response = yield call(getAllForProUser, payload);
+ yield put({
+ type: 'getAllForProUser',
+ payload: response,
+ });
+
+ if (callback) callback(response);
+ },
+ *query_page_for_prouser({ payload, callback }, { select, call, put }) {
+ const params = yield select(state => state.prouser.params);
+ const newParams = payload?.resetFlag ? payload : {...params, ...payload};
+ yield put({
+ type: 'setQueryPageByParams',
+ payload: newParams,
+ });
+ const response = yield call(queryPageForProUser, newParams);
+ yield put({
+ type: 'queryPageForProUser',
+ payload: response,
+ });
+
+ if (callback) callback(response);
+ },
+ *count_for_prouser({ payload, callback }, { call, put }) {
+ const response = yield call(countForProUser, payload);
+ yield put({
+ type: 'countForProUser',
+ payload: response,
+ });
+
+ if (callback) callback(response);
+ },
+ *insert_batch_for_prouser({ payload, callback }, { select, call, put }) {
+ const response = yield call(insertBatchForProUser, payload);
+ yield put({
+ type: 'insertBatchForProUser',
+ payload: response,
+ });
+
+ const params = yield select(state => state.prouser.params);
+ const responsedata = yield call(queryPageForProUser, params);
+ yield put({
+ type: 'queryPageForProUser',
+ payload: responsedata,
+ });
+
+ if (callback) callback(response);
+ },
+ *delete_batch_for_prouser({ payload, callback }, { select, call, put }) {
+ const response = yield call(deleteBatchForProUser, payload);
+ yield put({
+ type: 'deleteBatchForProUser',
+ payload: response,
+ });
+
+ const params = yield select(state => state.prouser.params);
+ const responsedata = yield call(queryPageForProUser, params);
+ yield put({
+ type: 'queryPageForProUser',
+ payload: responsedata,
+ });
+
+ if (callback) callback(response);
+ },
+ *update_batch_for_prouser({ payload, callback }, { select, call, put }) {
+ const response = yield call(updateBatchForProUser, payload);
+ yield put({
+ type: 'updateBatchForProUser',
+ payload: response,
+ });
+
+ const params = yield select(state => state.prouser.params);
+ const responsedata = yield call(queryPageForProUser, params);
+ yield put({
+ type: 'queryPageForProUser',
+ payload: responsedata,
+ });
+
+ if (callback) callback(response);
+ },
+ *resetpwd_for_prouser({ payload, callback }, { select, call, put }) {
+ const response = yield call(resetPwdForProUser, payload);
+ yield put({
+ type: 'resetPwdForProUser',
+ payload: response,
+ });
+
+ const params = yield select(state => state.prouser.params);
+ const responsedata = yield call(queryPageForProUser, params);
+ yield put({
+ type: 'queryPageForProUser',
+ payload: responsedata,
+ });
+
+ if (callback) callback(response);
+ },
+ },
+
+ reducers: {
+ setQueryPageByParams(state, { payload }) {
+ return {
+ ...state,
+ params: {...payload},
+ };
+ },
+ deleteByPrimaryKeyForProUser(state, action) {
+ return {
+ ...state,
+ data: action.payload,
+ };
+ },
+ selectByPrimaryKeyForProUser(state, action) {
+ return {
+ ...state,
+ data: action.payload,
+ };
+ },
+ insertForProUser(state, action) {
+ return {
+ ...state,
+ data: action.payload,
+ };
+ },
+ updateForProUser(state, action) {
+ return {
+ ...state,
+ data: action.payload,
+ };
+ },
+ deleteByMapForProUser(state, action) {
+ return {
+ ...state,
+ data: action.payload,
+ };
+ },
+ updateByMapForProUser(state, action) {
+ return {
+ ...state,
+ data: action.payload,
+ };
+ },
+ getOneForProUser(state, action) {
+ return {
+ ...state,
+ data: action.payload,
+ };
+ },
+ getAllForProUser(state, action) {
+ return {
+ ...state,
+ data: action.payload,
+ };
+ },
+ queryPageForProUser(state, action) {
+ return {
+ ...state,
+ data: action.payload,
+ };
+ },
+ countForProUser(state, action) {
+ return {
+ ...state,
+ data: action.payload,
+ };
+ },
+ insertBatchForProUser(state, action) {
+ return {
+ ...state,
+ data: action.payload,
+ };
+ },
+ deleteBatchForProUser(state, action) {
+ return {
+ ...state,
+ data: action.payload,
+ };
+ },
+ updateBatchForProUser(state, action) {
+ return {
+ ...state,
+ data: action.payload,
+ };
+ },
+ resetPwdForProUser(state, action) {
+ return {
+ ...state,
+ data: action.payload,
+ };
+ },
+ },
+};
From 20974a19bde076192a45adb81f5f38d2230ccf3d Mon Sep 17 00:00:00 2001
From: yupeng
Date: Tue, 23 Sep 2025 14:02:56 +0800
Subject: [PATCH 3/5] =?UTF-8?q?menu=E6=A0=B7=E5=BC=8F=E5=AE=8C=E5=96=84?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/assets/img/下拉箭头.svg | 3 +++
src/components/GlobalComponent/breadcrumb.less | 3 ++-
src/pages/nav_system_content/SystemContentList.js | 6 +++++-
3 files changed, 10 insertions(+), 2 deletions(-)
create mode 100644 src/assets/img/下拉箭头.svg
diff --git a/src/assets/img/下拉箭头.svg b/src/assets/img/下拉箭头.svg
new file mode 100644
index 0000000..85c6468
--- /dev/null
+++ b/src/assets/img/下拉箭头.svg
@@ -0,0 +1,3 @@
+
diff --git a/src/components/GlobalComponent/breadcrumb.less b/src/components/GlobalComponent/breadcrumb.less
index 8efef5b..5695a96 100644
--- a/src/components/GlobalComponent/breadcrumb.less
+++ b/src/components/GlobalComponent/breadcrumb.less
@@ -115,6 +115,7 @@
overflow: hidden;
text-overflow: ellipsis;
width: 100%;
+ gap: 20px;
}
// 面包屑项文本样式
@@ -135,7 +136,7 @@
.breadcrumb-close-icon {
font-size: 14px;
// color: #7D9CD8;
- margin-left: 8px;
+ // margin-left: 8px;
display: flex;
align-items: center;
justify-content: center;
diff --git a/src/pages/nav_system_content/SystemContentList.js b/src/pages/nav_system_content/SystemContentList.js
index 80ae4f6..9fcbb5f 100644
--- a/src/pages/nav_system_content/SystemContentList.js
+++ b/src/pages/nav_system_content/SystemContentList.js
@@ -6,7 +6,7 @@ import { formatRoute, getDefaultRoute } from '@/utils/routeUtils'
import styles from './TopNavBar.less'
import { Row, Col, Avatar, Dropdown, Button } from 'antd'
import { userInfo } from '@/utils/globalCommon'
-import { HomeOutlined, LogoutOutlined, AppstoreOutlined, UserOutlined, SettingOutlined, DatabaseOutlined, FileTextOutlined, LockOutlined, AreaChartOutlined } from '@ant-design/icons'
+import { HomeOutlined, LogoutOutlined, AppstoreOutlined, UserOutlined, SettingOutlined, DatabaseOutlined, FileTextOutlined, LockOutlined, AreaChartOutlined, CaretDownOutlined } from '@ant-design/icons'
import { getPageQuery } from '@/utils/utils'
import menuTitle from '@/assets/img/智能管控平台.svg'
import menuTitle1 from '@/assets/img/智能管控平台-1.svg'
@@ -21,6 +21,7 @@ import people from '@/assets/img/people.svg'
import risk from '@/assets/img/risk.svg'
import { CustomBreadcrumb } from '@/components/GlobalComponent'
+
// 自定义菜单项渲染组件,支持根据激活状态显示不同图片
const CustomMenuItem = ({ item, selectedKeys }) => {
const isActive = selectedKeys.includes(item.key);
@@ -241,6 +242,7 @@ const SystemContentList = (props) => {
}}
popupClassName="custom-select-dropdown"
className="custom-select"
+ suffixIcon={}
/>
+ {/* 菜单收缩按钮 */}
+
+