@@ -241,6 +241,27 @@ export default [ | |||||
], | ], | ||||
}, | }, | ||||
{ | |||||
name: '授权管理', | |||||
icon: 'BankFilled', | |||||
path: '/authorization', | |||||
routes: [ | |||||
{ | |||||
name: '平台授权', | |||||
icon: 'smile', | |||||
path: '/authorization/platformAuthorization', | |||||
component: './authorization/platformAuthorization', | |||||
access: 'k12', | |||||
}, | |||||
{ | |||||
name: '店铺授权', | |||||
icon: 'smile', | |||||
path: '/authorization/storeAuthorization', | |||||
component: './authorization/storeAuthorization', | |||||
access: 'k12', | |||||
} | |||||
], | |||||
}, | |||||
{ | { | ||||
path: '/', | path: '/', | ||||
redirect: '/welcome', | redirect: '/welcome', | ||||
@@ -0,0 +1,114 @@ | |||||
import React, { useState, useRef } from 'react'; | |||||
import { Modal, Button, message, Popconfirm, Typography } from 'antd'; | |||||
import { PageContainer, FooterToolbar } from '@ant-design/pro-layout'; | |||||
import { PlusOutlined } from '@ant-design/icons'; | |||||
import ProTable from '@ant-design/pro-table'; | |||||
const { Paragraph, Text } = Typography; | |||||
import { PageAuthorization, AddAuthorization, UpdateAuthorization } from "./services" | |||||
const App = () => { | |||||
const actionRef = useRef(); | |||||
const [ModalVisible, handleModalVisible] = useState(false); | |||||
const [currentRow, setCurrentRow] = useState(); | |||||
const columns = [ | |||||
{ | |||||
title: '主键', | |||||
dataIndex: 'id', | |||||
hideInSearch: true, | |||||
hideInTable: true, | |||||
tip: '规则名称是唯一的 key' | |||||
}, | |||||
{ | |||||
title: 'TenantId', | |||||
dataIndex: 'groupId', | |||||
valueType: 'textarea', | |||||
search: false, | |||||
render: (text) => <Paragraph style={{ display: 'inline' }} copyable>{text}</Paragraph>, | |||||
}, | |||||
{ | |||||
title: '授权码', | |||||
dataIndex: 'key', | |||||
valueType: 'textarea', | |||||
search: false, | |||||
render: (text) => <Paragraph style={{ display: 'inline' }} copyable>{text}</Paragraph>, | |||||
}, | |||||
{ | |||||
title: '操作', | |||||
dataIndex: 'option', | |||||
valueType: 'option', | |||||
fixed: 'right', | |||||
width: 450, | |||||
render: (_, record) => [ | |||||
<Popconfirm | |||||
type="primary" | |||||
key="primary" | |||||
title="确认更新吗?" | |||||
okText="是" | |||||
cancelText="否" | |||||
onConfirm={() => { | |||||
UpdateAuthorization(record.id).then((r) => { | |||||
if (r.statusCode == 200 && r.data) { | |||||
actionRef.current.reload(); | |||||
message.success("修改成功"); | |||||
} else { | |||||
message.error(r.errors || "修改失败"); | |||||
} | |||||
}); | |||||
}} | |||||
onCancel={() => { }} | |||||
> | |||||
<a href="#">更新</a> | |||||
</Popconfirm>, | |||||
], | |||||
}, | |||||
]; | |||||
return ( | |||||
<PageContainer host header={{ title: '', breadcrumb: {}, }}> | |||||
<ProTable | |||||
actionRef={actionRef} | |||||
rowKey="id" | |||||
pagination={{ defaultPageSize: 10 }} | |||||
search={{ | |||||
labelWidth: 120, | |||||
}} | |||||
toolBarRender={() => [ | |||||
<Button | |||||
type="primary" | |||||
key="primary" | |||||
onClick={() => { | |||||
AddAuthorization().then((r) => { | |||||
if (r.statusCode == 200 && r.data) { | |||||
message.success("添加成功"); | |||||
actionRef.current.reload(); | |||||
} else { | |||||
message.error(r.errors || "添加失败"); | |||||
} | |||||
}); | |||||
}} > | |||||
<PlusOutlined /> 添加授权码 | |||||
</Button>, | |||||
]} | |||||
request={async (params) => { | |||||
var data = []; | |||||
var total = 0; | |||||
await PageAuthorization(params).then((r) => { | |||||
total = r.data.total; | |||||
data = r.data.data; | |||||
}); | |||||
return { | |||||
data: data, | |||||
success: true, | |||||
total: total, | |||||
}; | |||||
}} | |||||
columns={columns} | |||||
/> | |||||
</PageContainer> | |||||
); | |||||
}; | |||||
export default App; |
@@ -0,0 +1,30 @@ | |||||
import { request } from 'umi'; | |||||
import { getDataBaseUrl,GetkitchbaseUrl } from '@/global_data'; | |||||
/** 获取平台授权码 */ | |||||
export async function PageAuthorization(data) { | |||||
return request(getDataBaseUrl()+`/api/authorization/pageauthorization`, { | |||||
method: 'POST', | |||||
data: data, | |||||
}); | |||||
} | |||||
/** 添加平台授权码 */ | |||||
export async function AddAuthorization(data) { | |||||
return request(getDataBaseUrl()+`/api/authorization/addauthorization`, { | |||||
method: 'POST', | |||||
data: data, | |||||
}); | |||||
} | |||||
/** 修改平台授权码 */ | |||||
export async function UpdateAuthorization(data) { | |||||
return request(getDataBaseUrl()+`/api/authorization/updateauthorization?id=`+data, { | |||||
method: 'POST', | |||||
data: data, | |||||
}); | |||||
} | |||||
@@ -0,0 +1,160 @@ | |||||
import React, { useState, useRef, useEffect } from 'react'; | |||||
import { Modal, Button, message, Popconfirm, Typography, Select } from 'antd'; | |||||
import { PageContainer, FooterToolbar } from '@ant-design/pro-layout'; | |||||
import { PlusOutlined } from '@ant-design/icons'; | |||||
import ProTable from '@ant-design/pro-table'; | |||||
import { QuestionCircleOutlined } from '@ant-design/icons'; | |||||
const { Paragraph, Text } = Typography; | |||||
import { PageStoreAuthorization, AddStoreAuthorization, UpdateStoreAuthorization, GetStoreList } from "./services" | |||||
const App = () => { | |||||
const actionRef = useRef(); | |||||
const [ModalVisible, handleModalVisible] = useState(false); | |||||
const [currentRow, setCurrentRow] = useState(); | |||||
const [storeList, setStoreList] = useState([]); | |||||
//初始化数据 | |||||
useEffect(() => { | |||||
function initData() { | |||||
GetStoreList({ "current": 1, "pageSize": 9999 }).then((r) => { | |||||
let data = []; | |||||
if (r.statusCode == 200) { | |||||
r.data.data.forEach((item) => { | |||||
data.push({ | |||||
id: item.id, | |||||
label: item.name, | |||||
value: item.id, | |||||
}); | |||||
}); | |||||
setStoreList(data); | |||||
} | |||||
}); | |||||
} | |||||
initData(); | |||||
}, []); | |||||
const columns = [ | |||||
{ | |||||
title: '主键', | |||||
dataIndex: 'id', | |||||
hideInSearch: true, | |||||
hideInTable: true, | |||||
tip: '规则名称是唯一的 key' | |||||
}, | |||||
{ | |||||
title: '授权码', | |||||
dataIndex: 'key', | |||||
valueType: 'textarea', | |||||
search: false, | |||||
render: (text) => <Paragraph style={{ display: 'inline' }} copyable>{text}</Paragraph>, | |||||
}, | |||||
{ | |||||
title: '店铺', | |||||
dataIndex: 'storeName', | |||||
valueType: 'textarea', | |||||
search: false, | |||||
}, | |||||
{ | |||||
title: '操作', | |||||
dataIndex: 'option', | |||||
valueType: 'option', | |||||
fixed: 'right', | |||||
width: 450, | |||||
render: (_, record) => [ | |||||
<Popconfirm | |||||
type="primary" | |||||
key="primary" | |||||
title="确认更新吗?" | |||||
okText="是" | |||||
cancelText="否" | |||||
onConfirm={async () => { | |||||
await UpdateStoreAuthorization(record.id).then((r) => { | |||||
if (r.statusCode == 200 && r.data) { | |||||
message.success("修改成功"); | |||||
actionRef.current.reload(); | |||||
} else { | |||||
message.error(r.errors || "修改失败"); | |||||
} | |||||
}); | |||||
}} | |||||
onCancel={() => { }} | |||||
> | |||||
<a href="#">更新</a> | |||||
</Popconfirm>, | |||||
], | |||||
}, | |||||
]; | |||||
return ( | |||||
<PageContainer host header={{ title: '', breadcrumb: {}, }}> | |||||
<ProTable | |||||
actionRef={actionRef} | |||||
rowKey="id" | |||||
pagination={{ defaultPageSize: 10 }} | |||||
search={{ | |||||
labelWidth: 120, | |||||
}} | |||||
toolBarRender={() => [ | |||||
<Button type="primary" key="primary" onClick={() => { | |||||
handleModalVisible(true); | |||||
}} > | |||||
添加授权码 | |||||
</Button> | |||||
]} | |||||
request={async (params) => { | |||||
var data = []; | |||||
var total = 0; | |||||
await PageStoreAuthorization(params).then((r) => { | |||||
total = r.data.total; | |||||
data = r.data.data; | |||||
}); | |||||
return { | |||||
data: data, | |||||
success: true, | |||||
total: total, | |||||
}; | |||||
}} | |||||
columns={columns} | |||||
/> | |||||
<Modal title="添加授权" open={ModalVisible} | |||||
onOk={() => { | |||||
if (!currentRow) { | |||||
message.error("请选择店铺"); | |||||
return; | |||||
} | |||||
AddStoreAuthorization(currentRow).then((r) => { | |||||
if (r.statusCode == 200 && r.data) { | |||||
message.success("添加成功"); | |||||
actionRef.current.reload(); | |||||
handleModalVisible(false); | |||||
} else { | |||||
message.error(r.errors || "添加失败"); | |||||
} | |||||
}); | |||||
}} | |||||
onCancel={() => { | |||||
handleModalVisible(false); | |||||
}}> | |||||
<Select | |||||
style={{ | |||||
width: 470, | |||||
}} | |||||
onChange={(value) => { | |||||
setCurrentRow(value); | |||||
}} | |||||
options={storeList} | |||||
/> | |||||
</Modal> | |||||
</PageContainer> | |||||
); | |||||
}; | |||||
export default App; |
@@ -0,0 +1,36 @@ | |||||
import { request } from 'umi'; | |||||
import { getDataBaseUrl,GetkitchbaseUrl } from '@/global_data'; | |||||
/** 获取平台授权码 */ | |||||
export async function PageStoreAuthorization(data) { | |||||
return request(GetkitchbaseUrl()+`/api/authorization/pagestoreauthorization`, { | |||||
method: 'POST', | |||||
data: data, | |||||
}); | |||||
} | |||||
/** 添加平台授权码 */ | |||||
export async function AddStoreAuthorization(data) { | |||||
return request(GetkitchbaseUrl()+`/api/authorization/addstoreauthorization?storeId=`+data, { | |||||
method: 'POST', | |||||
data: data, | |||||
}); | |||||
} | |||||
/** 修改平台授权码 */ | |||||
export async function UpdateStoreAuthorization(data) { | |||||
return request(GetkitchbaseUrl()+`/api/authorization/updatestoreauthorization?id=`+data, { | |||||
method: 'POST', | |||||
data: data, | |||||
}); | |||||
} | |||||
/** 获取店铺列表 */ | |||||
export async function GetStoreList(data) { | |||||
return request(GetkitchbaseUrl()+`/api/store/page`, { | |||||
method: 'POST', | |||||
data: data, | |||||
}); | |||||
} |