Browse Source

fix():修改系统管理bug

tags/PMS_Frontend_v1.0.6-develop
guoxin 1 year ago
parent
commit
da0264d264
  1. 7
      src/assets/css/base.scss
  2. 4
      src/components/layout/Header/index.jsx
  3. 1
      src/pages/SystemMgm/AdminMgm/index.scss
  4. 123
      src/pages/SystemMgm/AdminMgm/loadable.jsx
  5. 9
      src/pages/SystemMgm/AreaManage/ModalAreaAdd/index.jsx
  6. 48
      src/pages/SystemMgm/AreaManage/loadable.jsx
  7. 63
      src/pages/SystemMgm/BusinessConfig/BusinessConf/loadable.jsx
  8. 59
      src/pages/SystemMgm/RoleMgm/loadable.jsx
  9. 2
      src/services/system.js

7
src/assets/css/base.scss

@ -26,7 +26,10 @@ body {
& { overflow: -moz-scrollbars-none; }
}
.redLogo{
color: red;
margin-right: 10px;
}
.full-loading {
height: 100%;
width: 100%;
@ -54,7 +57,7 @@ a {
background-color: #3e4557 !important;
}
.ant-table.ant-table-bordered > .ant-table-container > .ant-table-content {
max-height: 715px;
max-height: 680px;
overflow: auto;
}
.ant-table-content::-webkit-scrollbar {

4
src/components/layout/Header/index.jsx

@ -237,9 +237,9 @@ export default function Header(props) {
<Icon type="sanjibumen" />
</li>
</Popover>
<li title="换肤" className="skin-icon icon-color" onClick={changeSkin}>
{/* <li title="" className="skin-icon icon-color" onClick={changeSkin}>
<Icon type="pifu" />
</li>
</li> */}
{/* <li title="" className="shouye">
<UserInfo />
</li> */}

1
src/pages/SystemMgm/AdminMgm/index.scss

@ -26,6 +26,7 @@ $color-primary: var(--color-primary);
display: flex;
label {
line-height: 31px;
}
}
.yisa-time {

123
src/pages/SystemMgm/AdminMgm/loadable.jsx

@ -99,6 +99,19 @@ function AdminMgm(props) {
const handleDeptName = (v) => {
setAddManage({ ...addManage, deptName: v })
};
//
const handleRole = (v) => {
setAddManage({ ...addManage, role: v })
};
//
const handleGovernmentType = (v) => {
setGetGovernment(v)
setAddManage({ ...addManage, government_style: v })
}
//
const handleArea = (v) => {
setAddManage({ ...addManage, government_area: v })
}
//
const onChangeCarType = (e) => {
setAddManage({ ...addManage, car_type: e.target.value })
@ -131,7 +144,7 @@ function AdminMgm(props) {
};
//
const handleMoveArea = (e) => {
setAddManage({ ...addManage, moveArea:e })
setAddManage({ ...addManage, moveArea: e })
};
//
const onChangeTime = (date, dateString) => {
@ -143,23 +156,32 @@ function AdminMgm(props) {
let data = {
...addManage
}
ajax.addAdminDate(data).then(res => {
if (res.status === 20000) {
setImgVisible(false)
setAddManage({
mobile: '',
userName: '',
account: '',
email: '',
deptName: '',
sex: 1,
car_type: 1,
messageRole: 0,
failure_time: ''
})
getData(formData)
}
})
if (addManage.account == '') {
message.error('请输入登录名')
} else if (addManage.userName == '') {
message.error('请输入姓名')
} else if (addManage.deptName == '') {
message.error('请输入所属部门')
} else {
ajax.addAdminDate(data).then(res => {
if (res.status === 20000) {
setImgVisible(false)
setAddManage({
mobile: '',
userName: '',
account: '',
email: '',
deptName: '',
sex: 1,
car_type: 1,
messageRole: 0,
failure_time: ''
})
getData(formData)
}
})
}
}
//
const handleColumns = (tab) => {
@ -220,7 +242,7 @@ function AdminMgm(props) {
title: '状态',
render: (text, record) => {
return <>
{record.workState === 1 ? '离职' : '在职'}
{record.workState === 1 ? '在职' : '离职'}
</>
}
},
@ -231,7 +253,7 @@ function AdminMgm(props) {
<Popover content={
<div className="SpecialRecordBtnAdmin">
<div onClick={() => { CheckApplyBtn(record) }}>编辑</div>
<div onClick={() => { deleteApplyBtn(record) }}>{record.workState === 1 ? '在职' : '离职'}</div>
<div onClick={() => { deleteApplyBtn(record) }}>{record.workState === 1 ? '离职' : '在职'}</div>
<div onClick={() => { applyBtn(record) }}>重置密码</div>
</div>}>
<button className="SpecialAdmin">操作</button>
@ -277,9 +299,9 @@ function AdminMgm(props) {
messageRole: record.messageRole,
failure_time: record.failure_time,
role: record.role,
government_style:record.government_style,
government_area:record.government_area,
moveArea:record.moveArea
government_style: record.government_style,
government_area: record.government_area,
moveArea: record.moveArea
}))
}
//
@ -584,7 +606,7 @@ function AdminMgm(props) {
>
<div className="addAdmin">
<div className="yisa-search">
<label>手机号</label>
<label style={{ marginLeft: 15 }}>手机号</label>
<Input
placeholder="请输入手机号"
value={addManage.mobile}
@ -594,6 +616,7 @@ function AdminMgm(props) {
/>
</div>
<div className="yisa-search">
<div className="redLogo">*</div>
<label>登录名</label>
<Input
placeholder="请输入用户名"
@ -603,11 +626,12 @@ function AdminMgm(props) {
/>
</div>
<div className="yisa-search">
<label>姓名</label>
<div className="redLogo">*</div>
<label style={{ marginLeft: 15 }}>姓名</label>
<Input
placeholder="请输入姓名"
value={addManage.userName}
style={{ width: 260, marginLeft: 42 }}
style={{ width: 260, marginLeft: 26 }}
onChange={handleAddUserName}
/>
</div>
@ -619,7 +643,7 @@ function AdminMgm(props) {
</Radio.Group>
</div>
<div className="yisa-search">
<label>邮箱</label>
<label style={{ marginLeft: 15 }}>邮箱</label>
<Input
placeholder="请输入邮箱"
value={addManage.email}
@ -628,6 +652,7 @@ function AdminMgm(props) {
/>
</div>
<div className="yisa-search">
<div className="redLogo">*</div>
<label>所属部门</label>
<Cascader
style={{ width: 260, marginLeft: 14 }}
@ -644,6 +669,50 @@ function AdminMgm(props) {
/>
</div>
<div className="yisa-search">
<label>角色</label>
<Select
style={{ width: 260, marginLeft: 42 }}
placeholder="请选择"
value={addManage.role}
options={getRoleData}
onChange={handleRole}
/>
</div>
<div className="yisa-search">
<label>管辖方式</label>
<Select
style={{ width: 260, marginLeft: 14 }}
placeholder="请选择"
value={addManage.government_style}
options={[{
value: 2,
label: '按街管理'
},
{
value: 3,
label: '按区管理'
},]}
onChange={handleGovernmentType}
/>
</div>
<div className="yisa-search">
<label>管辖区域</label>
<Tree
checkable
style={{ width: 260, marginLeft: 14 }}
onCheck={handleArea}
checkedKeys={addManage.government_area}
// onSelect={onSelect}
treeData={getGovernmentArea}
fieldNames={{
title: 'name',
key: 'id',
children: 'children'
}}
/>
</div>
<div className="yisa-search">
<label>管辖车场接入方式</label>
<Radio.Group onChange={onChangeCarType} value={addManage.car_type}>
<Radio value={1}>全部</Radio>

9
src/pages/SystemMgm/AreaManage/ModalAreaAdd/index.jsx

@ -16,7 +16,7 @@ function ModalAreaAdd (props) {
level,
onCancel
} = props
console.log(pid);
const [form] = Form.useForm()
const [areaType, setAreaType] = useState("1")
@ -100,16 +100,11 @@ function ModalAreaAdd (props) {
</Form.Item>
) : null
}
<Form.Item label="中心点坐标" rules={[{required: true}]}>
<Form.Item label="中心点坐标" >
<Row gutter={8}>
<Col span={18}>
<Form.Item
name="latlng"
rules={[
{
required: true,
},
]}
>
<Input />
</Form.Item>

48
src/pages/SystemMgm/AreaManage/loadable.jsx

@ -1,5 +1,5 @@
import React, { useState, useRef, useEffect } from "react";
import { message, Pagination, Table, Input, Modal, Tree, Button } from "antd";
import { message, Pagination, Table, Input, Modal, Tree, Button } from "antd";
import { DeleteOutlined, EditOutlined, PlusCircleOutlined } from '@ant-design/icons';
import ajax from "@/services"
import { BaseMap } from "@/components"
@ -73,30 +73,31 @@ function AreaManage() {
}
})
}
const handleAreaAdd = ({level, pid, isCity}) => {
const handleAreaAdd = ({ level, id, isCity }) => {
let pid =id
setIsCity(isCity)
setPid(pid)
setLevel(Number(level)+1)
setLevel(Number(level) + 1)
setEditStatus(false)
setModalAreaVisible(true)
}
const handleAreaEdit = ({name, id, virtually_code, code, lng_lat}) => {
setEditForm({name, id, virtually_code, code, lng_lat})
const handleAreaEdit = ({ name, id, virtually_code, code, lng_lat }) => {
setEditForm({ name, id, virtually_code, code, lng_lat })
setEditStatus(true)
setModalAreaVisible(true)
}
//
const handleAreaDel = ({name, id}) => {
const handleAreaDel = ({ name, id }) => {
Modal.confirm({
title: '确认删除?',
content: `是否确认删除区域: ${name}`,
icon: <DeleteOutlined style={{color: '#f40'}}/>,
icon: <DeleteOutlined style={{ color: '#f40' }} />,
okText: '删除',
cancelText: '取消',
onOk: () => {
ajaxAreaDel({name, id}).then((msg) => {
ajaxAreaDel({ name, id }).then((msg) => {
message.success(msg)
getAreaTree()
}).catch((err) => {
@ -112,12 +113,12 @@ function AreaManage() {
setModalAreaVisible(false)
setModalMapVisible(true)
}
const handleMapClick = ({lat, lng}) => {
const handleMapClick = ({ lat, lng }) => {
setLatlng([lat.toFixed(4), lng.toFixed(4)])
}
//
const handleAreaConfirm = ({formData, editStatus}) => {
const handleAreaConfirm = ({ formData, editStatus }) => {
if (editStatus) { //
ajaxAreaEdit(formData).then((msg) => {
message.success(msg)
@ -146,19 +147,26 @@ function AreaManage() {
setModalAreaVisible(true)
}
}
const treeTitleRender = ({name, children, level, pid, id, virtually_code, lng_lat, code}) => {
const treeTitleRender = ({ name, children, level, pid, id, virtually_code, lng_lat, code }) => {
return <>
<span className='label-text'>{name}</span>
{
children ? (
<PlusCircleOutlined className='label-icon' onClick={() => handleAreaAdd({level, pid, isCity: true})} />
level === 1 ? (
<PlusCircleOutlined className='label-icon' onClick={() => handleAreaAdd({ level, id, isCity: true })} />
) : null
}
{
level === 2 ? <>
<PlusCircleOutlined className='label-icon' onClick={() => handleAreaAdd({ level, id, isCity: false })} />
<DeleteOutlined className="label-icon" onClick={() => handleAreaDel({ name, id })} />
<EditOutlined className="label-icon" onClick={() => handleAreaEdit({ name, id, virtually_code, code, lng_lat })} />
</> : null
}
{
level > 2 ? <>
<PlusCircleOutlined className='label-icon' onClick={() => handleAreaAdd({level, pid, isCity: false})} />
<DeleteOutlined className="label-icon" onClick={() => handleAreaDel({name, id})} />
<EditOutlined className="label-icon" onClick={() => handleAreaEdit({name, id, virtually_code, code, lng_lat})}/>
{/* <PlusCircleOutlined className='label-icon' onClick={() => handleAreaAdd({level, pid, isCity: false})} /> */}
<DeleteOutlined className="label-icon" onClick={() => handleAreaDel({ name, id })} />
<EditOutlined className="label-icon" onClick={() => handleAreaEdit({ name, id, virtually_code, code, lng_lat })} />
</> : null
}
</>
@ -189,7 +197,7 @@ function AreaManage() {
editForm={editForm}
visible={modalAreaVisible}
onMapSelect={modalMapSelct}
onOk={(formData, editStatus) => handleAreaConfirm({formData, editStatus})}
onOk={(formData, editStatus) => handleAreaConfirm({ formData, editStatus })}
latlng={latlng}
onCancel={() => handleModalClose()}
/>
@ -202,12 +210,12 @@ function AreaManage() {
<div className="modal-map-content">
<BaseMap
id="map-select-container"
onClick={({latlng}) => handleMapClick(latlng)}
onClick={({ latlng }) => handleMapClick(latlng)}
/>
</div>
<div className="modal-map-info">
<Input value={latlng}></Input>
<Button type="primary" onClick={() => handleLatLngConfirm()}>确定</Button>
<Input value={latlng}></Input>
<Button type="primary" onClick={() => handleLatLngConfirm()}>确定</Button>
</div>
</Modal>
</>

63
src/pages/SystemMgm/BusinessConfig/BusinessConf/loadable.jsx

@ -45,7 +45,7 @@ function BusinessConf(props) {
//
const [addManage, setAddManage] = useState({
area_name: 0,
operator_name: 0,
operator_name: "0",
item_name: ''
})
const addAdmin = () => {
@ -66,8 +66,11 @@ function BusinessConf(props) {
const handleConfiguration = (v, option) => {
setGetMessage(option);
setGetConfiguration(v)
setAddManage({ ...addManage, item_name: v })
setAddManage({
...addManage, item_name: v ,
area_name: 0,
operator_name: "0",
})
}
//
const onChangeAdd = (e) => {
@ -113,20 +116,32 @@ function BusinessConf(props) {
}
//
const placeSaveBtn = () => {
console.log(addManage.parameter);
let data = {
...addManage
}
ajax.addBusiness(data).then(res => {
if (res.status === 20000) {
setImgVisible(false)
setAddManage({
area_name: 0,
operator_name: 0,
item_name: ''
})
getData(formData)
}
})
if (addManage.area_name === '') {
message.error('请选择城市')
} else if (addManage.operator_name === '') {
message.error('请选择商户名称')
} else if (addManage.item_name === '') {
message.error('请选择配置项')
} else if (addManage.parameter === undefined && addManage.parameterValue === undefined) {
message.error('请选择参数项')
} else {
ajax.addBusiness(data).then(res => {
if (res.status === 20000) {
setImgVisible(false)
setAddManage({
area_name: 0,
operator_name: "0",
item_name: ''
})
getData(formData)
setGetConfiguration(0)
}
})
}
}
//
const handleColumns = (tab) => {
@ -171,11 +186,11 @@ function BusinessConf(props) {
title: '参数描述',
dataIndex: 'parameter_dsc',
key: 'parameter_dsc',
render:(text,record)=>{
return<>
render: (text, record) => {
return <>
<div dangerouslySetInnerHTML={{ __html: record.parameter_dsc }}>
{/* {getMessage.message} */}
</div>
{/* {getMessage.message} */}
</div>
</>
}
},
@ -219,9 +234,10 @@ function BusinessConf(props) {
setImgVisible(false)
setAddManage({
area_name: 0,
operator_name: 0,
operator_name: '0',
item_name: ''
})
setGetConfiguration(0)
setGetMessage({})
}
//
@ -274,7 +290,7 @@ function BusinessConf(props) {
setImgVisible(false)
setAddManage({
area_name: 0,
operator_name: 0,
operator_name: '0',
item_name: ''
})
setGetMessage({})
@ -346,6 +362,7 @@ function BusinessConf(props) {
if (res.status === 20000) {
setEditVisible(false)
getData(formData)
setGetConfiguration(0)
}
})
}
@ -448,6 +465,7 @@ function BusinessConf(props) {
>
<div className="addAdmin">
<div className="yisa-search">
<div className="redLogo">*</div>
<label>城市</label>
<Select
style={{ width: 260, marginLeft: 50 }}
@ -459,6 +477,7 @@ function BusinessConf(props) {
/>
</div>
<div className="yisa-search">
<div className="redLogo">*</div>
<label>商户名称</label>
<Select
style={{ width: 260, marginLeft: 22 }}
@ -470,6 +489,7 @@ function BusinessConf(props) {
/>
</div>
<div className="yisa-search">
<div className="redLogo">*</div>
<label>配置项</label>
<Select
style={{ width: 260, marginLeft: 35 }}
@ -490,6 +510,7 @@ function BusinessConf(props) {
?
<>
<div className="yisa-search">
<div className="redLogo">*</div>
<label>参数</label>
<Input
placeholder="请输入"
@ -871,7 +892,7 @@ function BusinessConf(props) {
Object.assign({}, geteditData, { parameterValue: v.target.value })
);
}}
value={geteditData.parameterValue}>
value={geteditData.parameterValue}>
<Radio value={1}></Radio>
<Radio value={2}></Radio>
</Radio.Group>

59
src/pages/SystemMgm/RoleMgm/loadable.jsx

@ -134,21 +134,31 @@ function RoleMgm(props) {
let data = {
...addManage
}
console.log(data);
ajax.addAdmin(data).then(res => {
if (res.status === 20000) {
setImgVisible(false)
setAddManage({
remark: '',
name: '',
depart_id: '',
auth: ''
})
getData(formData)
}else{
message.error(res.message)
}
})
if(addManage.name===''){
message.error('请输入角色名称')
}else if(addManage.depart_id===''){
message.error('请选择所属部门')
}else if (addManage.auth === '') {
message.error('必须选择权限')
} else {
ajax.addAdmin(data).then(res => {
if (res.status === 20000) {
setImgVisible(false)
setAddManage({
remark: '',
name: '',
depart_id: '',
auth: ''
})
getData(formData)
setGetGovernment(0)
} else {
message.error(res.message)
setGetGovernment(0)
}
})
}
}
//
const handleColumns = (tab) => {
@ -281,13 +291,15 @@ function RoleMgm(props) {
setAddManage({
remark: '',
name: '',
depart_id: [],
depart_id: null,
})
setCheckedKeys([])
setGetGovernment(0)
}
const delcancelImg = () => {
setEditVisible(false)
setCheckedKeys([])
setGetGovernment(0)
}
//
const getData = (data = formData) => {
@ -366,14 +378,17 @@ function RoleMgm(props) {
})
}
useEffect(() => {
console.log(getGovernment);
if (getGovernment != 0) {
let data = {
id: getGovernment
}
ajax.getDepartId(data).then(res => {
if (res.status === 20000) {
setGetGovernmentArea(res.data)
if(res.status === 20000){
if (res.status == []) {
message.error('部门没有配置对应菜单权限')
}else{
setGetGovernmentArea(res.data)
}
}
})
}
@ -450,6 +465,7 @@ function RoleMgm(props) {
>
<div className="addAdmin">
<div className="yisa-search">
<div className="redLogo">*</div>
<label>角色名称</label>
<Input
placeholder="请输入"
@ -459,7 +475,7 @@ function RoleMgm(props) {
/>
</div>
<div className="yisa-search">
<label>备注</label>
<label style={{marginLeft:15}}>备注</label>
<Input
placeholder="请输入用户名"
value={addManage.remark}
@ -468,11 +484,12 @@ function RoleMgm(props) {
/>
</div>
<div className="yisa-search">
<div className="redLogo">*</div>
<label>所属部门</label>
<Cascader
style={{ width: 260, marginLeft: 50 }}
placeholder="请选择"
value={addManage.depart_id}
// value={addManage.depart_id}
options={getPlateColor}
changeOnSelect
onChange={handleDeptName}

2
src/services/system.js

@ -276,7 +276,7 @@ const orgDetailEdit = (params) => {
const getOrgTree = (params) => {
return ajax({
url: '/api/manage/com/depart_tree',
type: 'post',
type: 'get',
data: params
})
}

Loading…
Cancel
Save