.PageResult(orgs);
+ }
+
///
/// 根据用户Id获取所在片区的Id
///
diff --git a/Api/Ewide.Core/Service/Org/SysOrgService.cs b/Api/Ewide.Core/Service/Org/SysOrgService.cs
index 6b3b8d8..9f8e3ec 100644
--- a/Api/Ewide.Core/Service/Org/SysOrgService.cs
+++ b/Api/Ewide.Core/Service/Org/SysOrgService.cs
@@ -300,6 +300,7 @@ namespace Ewide.Core.Service
}
var orgs = await _sysOrgRep.DetachedEntities.Where(dataScopeList.Count > 0, u => dataScopeList.Contains(u.Id))
.Where(u => u.Status == (int)CommonStatus.ENABLE).OrderBy(u => u.Sort)
+ .Where(input.Type != 0 , u=>u.Type < input.Type)
.Select(u => new OrgTreeNode
{
Id = u.Id,
diff --git a/web-react/craco.config.js b/web-react/craco.config.js
index 59d3aa2..a83f185 100644
--- a/web-react/craco.config.js
+++ b/web-react/craco.config.js
@@ -28,7 +28,7 @@ module.exports = {
],
webpack: {
plugins: [
- new MonacoWebpackPlugin()
+ // new MonacoWebpackPlugin()
]
}
}
\ No newline at end of file
diff --git a/web-react/src/common/api/requests/business/houseSafety/houseZone.js b/web-react/src/common/api/requests/business/houseSafety/houseZone.js
index 429da49..0aa569f 100644
--- a/web-react/src/common/api/requests/business/houseSafety/houseZone.js
+++ b/web-react/src/common/api/requests/business/houseSafety/houseZone.js
@@ -1,4 +1,10 @@
const urls = {
+ /**
+ * 获取机构列表
+ *
+ */
+ houseZonePage: ['/houseZone/page', 'post'],
+
houseZoneList: '/houseZone/list',
houseZoneAutoIncrement: '/houseZone/autoIncrement',
houseZoneAdd: ['/houseZone/add', 'post']
diff --git a/web-react/src/pages/business/house/project/form.jsx b/web-react/src/pages/business/house/project/form.jsx
new file mode 100644
index 0000000..25446df
--- /dev/null
+++ b/web-react/src/pages/business/house/project/form.jsx
@@ -0,0 +1,236 @@
+import React, { Component } from 'react'
+import { Cascader, Form, Input, InputNumber, Radio, Spin, TreeSelect } from 'antd'
+import { AntIcon } from 'components'
+import { cloneDeep } from 'lodash'
+import { api } from 'common/api'
+import { numberToChinese } from 'util/format';
+
+const initialValues = {
+ sort: 100,
+ type: 1
+}
+export default class form extends Component {
+ state = {
+ // 加载状态
+ loading: true,
+ exist: false,
+
+ options: {
+ areaData: []
+ }
+ }
+ areaCode = ''
+ houseType = 1
+ // 表单实例
+ form = React.createRef()
+
+ // 初始化数据
+ record = {}
+ initRecord = {}
+ /**
+ * mount后回调
+ */
+ componentDidMount() {
+ this.props.created && this.props.created(this)
+ }
+
+ /**
+ * 填充数据
+ * 可以在设置this.record之后对其作出数据结构调整
+ * [异步,必要]
+ * @param {*} params
+ */
+ async fillData(params) {
+ const areaCodeDefault = params.record ? params.record.areaCode : params.pid ? params.pid : '';
+ this.houseType = params.record ? params.record.type : 1;
+ this.record = cloneDeep(params.record)
+ this.initRecord = cloneDeep(params.record)
+ //#region 从后端转换成前段所需格式
+ const areaData = await this.loadAreaData()
+
+ this.setState({
+ exist: !!params.record,
+ options: { areaData }
+ })
+
+ const areaCode = [];
+ const findCode = (data, level) => {
+ level = level || 0;
+ for (let i = 0; i < data.length; i++) {
+ const item = data[i];
+ areaCode[level] = item.code;
+
+ if (item.code === areaCodeDefault) {
+ areaCode.length = level + 1;
+ return true;
+ }
+
+ if (item.children && item.children.length) {
+ const found = findCode(item.children, level + 1);
+ if (found) {
+ return true;
+ }
+ }
+ }
+ };
+
+ if (areaCodeDefault) {
+ findCode(areaData);
+ this.areaCode = areaCodeDefault
+ this.nextSort(this.areaCode, this.houseType);
+ }
+
+ this.record = {
+ pid: params.pid,
+ ...this.record,
+ areaCode: areaCode.length == 4 ? areaCode : []
+ }
+ //#endregion
+
+ this.form.current.setFieldsValue(this.record)
+
+ this.setState({
+ loading: false
+ })
+ }
+ /**
+ * 获取数据
+ * 可以对postData进行数据结构调整
+ * [异步,必要]
+ * @returns
+ */
+ async getData() {
+ const form = this.form.current
+
+ const valid = await form.validateFields()
+ if (valid) {
+ const postData = form.getFieldsValue()
+ if (this.record) {
+ postData.id = this.record.id
+ }
+ //#region 从前段转换后端所需格式
+ postData.areaCode = postData.areaCode[postData.areaCode.length - 1]
+ //#endregion
+ return postData
+ }
+ }
+
+ async loadAreaData() {
+ const { data } = await api.getAreaTree()
+ const clearChiildren = (data) => {
+ data.forEach((item) => {
+ if (item.children && item.children.length) {
+ clearChiildren(item.children);
+ } else {
+ delete item.children;
+ }
+ });
+ };
+ clearChiildren(data);
+ return data
+ }
+
+ async nextSort(areaCode, houseType) {
+ this.loading = true;
+ if (!!this.initRecord && this.initRecord.areaCode == areaCode && this.initRecord.type == houseType) {
+ this.form.current.setFieldsValue({
+ name: this.initRecord.name,
+ sort: this.initRecord.sort
+ })
+ } else if (areaCode.length < 12) {
+ this.form.current.setFieldsValue({
+ name: '',
+ sort: 0,
+ areaCode: []
+ })
+ } else {
+ await api.houseProjectNextSort({ areaCode, type: houseType })
+ .then(({ data }) => {
+ this.form.current.setFieldsValue({
+ name: `项目${numberToChinese(data)}`,
+ sort: data
+ })
+ })
+ .catch(() => {
+ this.form.current.setFieldsValue({
+ name: '',
+ sort: 0,
+ areaCode: []
+ })
+ })
+ .finally(() => {
+ this.loading = false;
+ });
+ }
+ }
+
+ onHouseTypeChange(e) {
+ this.houseType = e.target.value;
+ if (this.areaCode != '') {
+ this.nextSort(this.areaCode, this.houseType);
+ }
+ }
+
+ onAreaCodeChange(value) {
+ this.areaCode = value[value.length - 1]
+ if (this.houseType > 0) {
+ this.nextSort(this.areaCode, this.houseType);
+ }
+ }
+
+ render() {
+ return (
+
+ )
+ }
+}
\ No newline at end of file
diff --git a/web-react/src/pages/business/house/project/index.jsx b/web-react/src/pages/business/house/project/index.jsx
new file mode 100644
index 0000000..3a56823
--- /dev/null
+++ b/web-react/src/pages/business/house/project/index.jsx
@@ -0,0 +1,281 @@
+import React, { Component } from 'react'
+import { Button, Card, Form, Input, message as Message, Popconfirm } from 'antd'
+import { AntIcon, Auth, Container, ModalForm, QueryTable, QueryTableActions, QueryTreeLayout } from 'components'
+import { api } from 'common/api'
+import auth from 'components/authorized/handler'
+import { toCamelCase } from 'util/format'
+import { isEqual } from 'lodash'
+import getDictData from 'util/dic'
+import FormBody from './form'
+
+const apiAction = {
+ tree: api.getAreaTree,
+ page: api.getHouseProjectPage,
+ add: api.houseProejctAdd,
+ edit: api.houseProejctEdit,
+ delete: api.houseProejctDelete
+}
+
+const name = '项目'
+
+export default class index extends Component {
+
+ state = {
+ codes: {
+ dicHouseType: []
+ }
+ }
+
+ // 表格实例
+ table = React.createRef()
+
+ // 新增窗口实例
+ addForm = React.createRef()
+ // 编辑窗口实例
+ editForm = React.createRef()
+
+ // 树选中节点
+ selectCode = undefined
+ columns = [
+
+ {
+ title: '项目名称',
+ dataIndex: 'name',
+ sorter: true,
+ },
+ {
+ title: '社区',
+ dataIndex: 'areaName',
+ sorter: true,
+ },
+ {
+ title: '备注',
+ dataIndex: 'note',
+ sorter: true,
+ },
+ {
+ title: '类型',
+ dataIndex: 'type',
+ sorter: true,
+ render: text => (<>{this.bindCodeValue(text, 'dic_house_type')}>)
+ }
+ ]
+ /**
+ * 构造函数,在渲染前动态添加操作字段等
+ * @param {*} props
+ */
+ constructor(props) {
+ super(props)
+
+ const flag = auth({ sysArea: [['edit'], ['delete']] })
+
+ if (flag) {
+ this.columns.push({
+ title: '操作',
+ width: 150,
+ dataIndex: 'actions',
+ render: (text, record) => (
+
+ this.onOpen(this.editForm, record)}>编辑
+
+
+ this.onDelete(record)}
+ >
+ 删除
+
+
+ )
+ })
+ }
+ }
+ /**
+ * 阻止外部组件引发的渲染,提升性能
+ * 可自行添加渲染条件
+ * [必要]
+ * @param {*} props
+ * @param {*} state
+ * @returns
+ */
+ shouldComponentUpdate(props, state) {
+ return !isEqual(this.state, state)
+ }
+
+ /**
+ * 加载字典数据,之后开始加载表格数据
+ * 如果必须要加载字典数据,可直接对表格设置autoLoad=true
+ */
+ componentDidMount() {
+ this.table.current.onLoading()
+ getDictData('dic_house_type').then(res => {
+ this.setState({
+ codes: res
+ }, () => {
+ this.table.current.onLoadData()
+ })
+ })
+ }
+ /**
+ * 调用加载数据接口,可在调用前对query进行处理
+ * [异步,必要]
+ * @param {*} params
+ * @param {*} query
+ * @returns
+ */
+ loadData = async (params, query) => {
+
+ query = {
+ ...query,
+ pid: this.selectCode
+ }
+ //首次加载根据code列升序排序
+ // if (!params.sortField) {
+ // params.sortField = 'code';
+ // params.sortOrder = 'ascend';
+ // }
+ const { data } = await apiAction.page({
+ ...params,
+ ...query,
+ })
+ return data
+ }
+
+ /**
+ * 调用树结构数据接口
+ * [异步,必要]
+ * @returns
+ */
+ loadTreeData = async () => {
+ const { data } = await apiAction.tree()
+ return data
+ }
+
+ /**
+ * 树节点选中事件
+ * [必要]
+ * @param {*} id
+ */
+ onSelectTree(code) {
+ this.selectCode = code
+ this.table.current.onReloadData()
+ }
+
+ /**
+ * 绑定字典数据
+ * @param {*} code
+ * @param {*} name
+ * @returns
+ */
+ bindCodeValue(code, name) {
+ name = toCamelCase(name)
+ const codes = this.state.codes[name]
+ if (codes) {
+ const c = codes.find((p) => +p.code === code)
+ if (c) {
+ return c.value
+ }
+ }
+ return null
+ }
+
+ /**
+ * 打开新增/编辑弹窗
+ * @param {*} modal
+ * @param {*} record
+ */
+ onOpen(modal, record) {
+ modal.current.open({
+ pid: this.selectCode,
+ record
+ })
+ }
+
+ /**
+ * 对表格上的操作进行统一处理
+ * [异步]
+ * @param {*} action
+ * @param {*} successMessage
+ */
+ async onAction(action, successMessage) {
+ this.table.current.onLoading()
+ try {
+ await action
+ Message.success(successMessage)
+ this.table.current.onReloadData()
+ } catch {
+ this.table.current.onLoaded()
+ }
+ }
+
+ /**
+ * 删除
+ * @param {*} record
+ */
+ onDelete(record) {
+ this.onAction(
+ apiAction.delete(record),
+ '删除成功'
+ )
+ }
+
+ render() {
+ return (
+ this.onSelectTree(key)}
+ replaceFields={{ value: 'code', title: 'name', children: 'children' }}
+ >
+
+
+
+
+
+
+
+
+
+
+ }
+ operator={
+
+ }
+ onClick={() => this.onOpen(this.addForm)}
+ >新增{name}
+
+ }
+ >
+
+
+
+
+ this.table.current.onReloadData()}
+ >
+
+
+
+ this.table.current.onReloadData()}
+ >
+
+
+
+ )
+ }
+}
\ No newline at end of file
diff --git a/web-react/src/pages/business/house/zone/form.jsx b/web-react/src/pages/business/house/zone/form.jsx
new file mode 100644
index 0000000..bb68a43
--- /dev/null
+++ b/web-react/src/pages/business/house/zone/form.jsx
@@ -0,0 +1,190 @@
+import React, { Component } from 'react'
+import { Cascader, Form, Input, InputNumber, Select, Spin, TreeSelect } from 'antd'
+import { AntIcon } from 'components'
+import { cloneDeep } from 'lodash'
+import getDictData from 'util/dic'
+import { api } from 'common/api'
+import { numberToChinese } from 'util/format';
+
+const initialValues = {
+ sort: 100
+}
+export default class form extends Component {
+ state = {
+ // 加载状态
+ loading: true,
+
+ options: {
+ areaData: []
+ }
+ }
+
+ // 表单实例
+ form = React.createRef()
+
+ // 初始化数据
+ record = {}
+
+ /**
+ * mount后回调
+ */
+ componentDidMount() {
+ this.props.created && this.props.created(this)
+ }
+
+ /**
+ * 填充数据
+ * 可以在设置this.record之后对其作出数据结构调整
+ * [异步,必要]
+ * @param {*} params
+ */
+ async fillData(params) {
+
+ this.record = cloneDeep(params.record)
+ //#region 从后端转换成前段所需格式
+ const areaData = await this.loadAreaData()
+
+ this.setState({
+ options: { areaData }
+ })
+
+ const areaCode = [];
+ const findCode = (data, level) => {
+ level = level || 0;
+ for (let i = 0; i < data.length; i++) {
+ const item = data[i];
+ areaCode[level] = item.code;
+
+ if (item.code === params.record.areaCode) {
+ areaCode.length = level + 1;
+ return true;
+ }
+
+ if (item.children && item.children.length) {
+ const found = findCode(item.children, level + 1);
+ if (found) {
+ return true;
+ }
+ }
+ }
+ };
+
+ if (params.record && params.record.areaCode) {
+ findCode(areaData);
+ }
+
+ this.record = {
+ pid: params.orgId,
+ ...this.record,
+ areaCode
+ }
+ this.record.areaCode = areaCode
+ //#endregion
+
+ this.form.current.setFieldsValue(this.record)
+
+ this.setState({
+ loading: false
+ })
+ }
+ /**
+ * 获取数据
+ * 可以对postData进行数据结构调整
+ * [异步,必要]
+ * @returns
+ */
+ async getData() {
+ const form = this.form.current
+
+ const valid = await form.validateFields()
+ if (valid) {
+ const postData = form.getFieldsValue()
+ if (this.record) {
+ postData.id = this.record.id
+ }
+ //#region 从前段转换后端所需格式
+ postData.areaCode = postData.areaCode[postData.areaCode.length - 1]
+ //#endregion
+ return postData
+ }
+ }
+
+ async loadAreaData() {
+ const { data } = await api.getAreaTree({ level: 3 })
+ const clearChiildren = (data) => {
+ data.forEach((item) => {
+ if (item.children && item.children.length) {
+ clearChiildren(item.children);
+ } else {
+ delete item.children;
+ }
+ });
+ };
+ clearChiildren(data);
+ return data
+ }
+
+ onAreaCodeChange(value) {
+ this.loading = true;
+ // const { data } = api.houseZoneAutoIncrement({ code: selectedOptions[selectedOptions.length - 1] });
+
+ api.houseZoneAutoIncrement({ code: value[value.length - 1] })
+ .then(({ data }) => {
+ this.form.current.setFieldsValue({
+ name: `片区${numberToChinese(data)}`
+ })
+ })
+ .catch(() => {
+ this.form.current.setFieldsValue({
+ name: '',
+ areaCode: []
+ })
+ })
+ .finally(() => {
+ this.loading = false;
+ });
+ }
+
+ render() {
+ return (
+
+ )
+ }
+}
\ No newline at end of file
diff --git a/web-react/src/pages/business/house/zone/index.jsx b/web-react/src/pages/business/house/zone/index.jsx
new file mode 100644
index 0000000..74dcbc8
--- /dev/null
+++ b/web-react/src/pages/business/house/zone/index.jsx
@@ -0,0 +1,268 @@
+import React, { Component } from 'react'
+import { Button, Card, Form, Input, message as Message, Popconfirm } from 'antd'
+import { AntIcon, Auth, Container, ModalForm, QueryTable, QueryTableActions, QueryTreeLayout } from 'components'
+import { api } from 'common/api'
+import auth from 'components/authorized/handler'
+import { toCamelCase } from 'util/format'
+import { isEqual } from 'lodash'
+import getDictData from 'util/dic'
+import FormBody from './form'
+
+const apiAction = {
+ tree: api.getOrgTree,
+ page: api.houseZonePage,
+ add: api.houseZoneAdd,
+ edit: api.sysOrgEdit,
+ delete: api.sysOrgDelete
+}
+
+const name = '片区'
+
+export default class index extends Component {
+
+ // 树框架实例
+ treeLayout = React.createRef()
+
+ // 表格实例
+ table = React.createRef()
+
+ // 新增窗口实例
+ addForm = React.createRef()
+ // 编辑窗口实例
+ editForm = React.createRef()
+
+ // 树选中节点
+ selectId = undefined
+
+ // 表格字段
+ columns = [
+ {
+ title: '片区名称',
+ width: '400px',
+ dataIndex: 'name',
+ sorter: true,
+ },
+ {
+ title: '排序',
+ width: '80px',
+ dataIndex: 'sort',
+ sorter: true,
+ },
+ {
+ title: '备注',
+ width: '80px',
+ dataIndex: 'remark',
+ sorter: true,
+ },
+ ]
+
+ /**
+ * 构造函数,在渲染前动态添加操作字段等
+ * @param {*} props
+ */
+ constructor(props) {
+ super(props)
+
+ const flag = auth({ sysOrg: [['edit'], ['delete']] })
+
+ if (flag) {
+ this.columns.push({
+ title: '操作',
+ width: 150,
+ dataIndex: 'actions',
+ render: (text, record) => (
+
+ this.onOpen(this.editForm, record)}>编辑
+
+
+ this.onDelete(record)}
+ >
+ 删除
+
+
+ )
+ })
+ }
+ }
+
+ /**
+ * 阻止外部组件引发的渲染,提升性能
+ * 可自行添加渲染条件
+ * [必要]
+ * @param {*} props
+ * @param {*} state
+ * @returns
+ */
+ shouldComponentUpdate(props, state) {
+ return !isEqual(this.state, state)
+ }
+
+ /**
+ * 加载字典数据,之后开始加载表格数据
+ * 如果必须要加载字典数据,可直接对表格设置autoLoad=true
+ */
+ componentDidMount() {
+ this.table.current.onLoading()
+ }
+
+ /**
+ * 调用加载数据接口,可在调用前对query进行处理
+ * [异步,必要]
+ * @param {*} params
+ * @param {*} query
+ * @returns
+ */
+ loadData = async (params, query) => {
+ query = {
+ ...query,
+ pid: this.selectId
+ }
+
+ const { data } = await apiAction.page({
+ ...params,
+ ...query,
+ })
+ return data
+ }
+
+ /**
+ * 调用树结构数据接口
+ * [异步,必要]
+ * @returns
+ */
+ loadTreeData = async () => {
+ const { data } = await apiAction.tree({ type: 4 })
+ return data
+ }
+
+ /**
+ * 树节点选中事件
+ * [必要]
+ * @param {*} id
+ */
+ onSelectTree(id) {
+ this.selectId = id
+ this.table.current.onReloadData()
+ }
+
+ /**
+ * 绑定字典数据
+ * @param {*} code
+ * @param {*} name
+ * @returns
+ */
+ bindCodeValue(code, name) {
+ name = toCamelCase(name)
+ const codes = this.state.codes[name]
+ if (codes) {
+ const c = codes.find((p) => p.code === code)
+ if (c) {
+ return c.value
+ }
+ }
+ return null
+ }
+
+ /**
+ * 打开新增/编辑弹窗
+ * @param {*} modal
+ * @param {*} record
+ */
+ onOpen(modal, record) {
+ modal.current.open({
+ orgId: this.selectId,
+ record
+ })
+ }
+
+ /**
+ * 对表格上的操作进行统一处理
+ * [异步]
+ * @param {*} action
+ * @param {*} successMessage
+ */
+ async onAction(action, successMessage) {
+ this.table.current.onLoading()
+ try {
+ if (action) {
+ await action
+ }
+ if (successMessage) {
+ Message.success(successMessage)
+ }
+ this.treeLayout.current.onReloadData()
+ this.table.current.onReloadData()
+ } catch {
+ this.table.current.onLoaded()
+ }
+ }
+
+ /**
+ * 删除
+ * @param {*} record
+ */
+ onDelete(record) {
+ this.onAction(
+ apiAction.delete(record),
+ '删除成功'
+ )
+ }
+
+ //#region 自定义方法
+ //#endregion
+
+ render() {
+ return (
+ this.onSelectTree(key)}
+ >
+
+
+
+
+
+
+
+ }
+ operator={
+ }
+ onClick={() => this.onOpen(this.addForm)}
+ >新增{name}
+ }
+ />
+
+
+
+ this.onAction()}
+ >
+
+
+
+ this.onAction()}
+ >
+
+
+
+ )
+ }
+}
diff --git a/web-react/src/pages/system/dict/form.jsx b/web-react/src/pages/system/dict/form.jsx
index 821abd0..e80f2ec 100644
--- a/web-react/src/pages/system/dict/form.jsx
+++ b/web-react/src/pages/system/dict/form.jsx
@@ -1,11 +1,166 @@
import React, { Component } from 'react'
+import { Form, Input, Radio, InputNumber, TreeSelect, Spin } from 'antd'
+import { AntIcon } from 'components'
+import { cloneDeep } from 'lodash'
+import getDictData from 'util/dic'
+import { EMPTY_ID } from 'util/global'
+import { api } from 'common/api'
+const initialValues = {
+ type: 1,
+ sort: 100
+}
export default class form extends Component {
+
+ state = {
+ // 加载状态
+ loading: true,
+ options: {
+ dicTreeData: []
+ }
+ }
+
+ // 表单实例
+ form = React.createRef()
+
+ // 初始化数据
+ record = {}
+
+ /**
+ * mount后回调
+ */
+ componentDidMount() {
+ this.props.created && this.props.created(this)
+ }
+
+ /**
+ * 填充数据
+ * 可以在设置this.record之后对其作出数据结构调整
+ * [异步,必要]
+ * @param {*} params
+ */
+ async fillData(params) {
+ this.record = cloneDeep(params.record)
+ const treeData = await this.loadDicTreeData()
+ this.setState({
+ options: {
+ dicTreeData: treeData
+ }
+ })
+
+ this.record = {
+ pid: params.pid,
+ ...this.record
+ }
+
+ if (this.record.code) {
+ this.record.type = 2;
+ this.setState({
+ type: 2
+ })
+ }
+
+ this.form.current.setFieldsValue(this.record)
+
+ this.setState({
+ loading: false
+ })
+ }
+
+ /**
+ * 获取数据
+ * 可以对postData进行数据结构调整
+ * [异步,必要]
+ * @returns
+ */
+ async getData() {
+ const form = this.form.current
+
+ const valid = await form.validateFields()
+ if (valid) {
+ const postData = form.getFieldsValue()
+ if (this.record) {
+ postData.id = this.record.id
+ }
+ //#region 从前段转换后端所需格式
+ //#endregion
+ return postData
+ }
+ }
+ //#region 自定义方法
+ async loadDicTreeData() {
+ const { data } = await api.sysDictTypeTree()
+ return [{
+ id: EMPTY_ID,
+ parentId: undefined,
+ title: '顶级',
+ value: EMPTY_ID,
+ pid: undefined,
+ children: data,
+ }]
+ }
+
+ //#endregion
+
render() {
return (
-
- 123
-
+
)
}
}
diff --git a/web-react/src/pages/system/dict/index.jsx b/web-react/src/pages/system/dict/index.jsx
index 0653de9..7d6053a 100644
--- a/web-react/src/pages/system/dict/index.jsx
+++ b/web-react/src/pages/system/dict/index.jsx
@@ -201,7 +201,7 @@ export default class index extends Component {
*/
onOpen(modal, record) {
modal.current.open({
- orgId: this.selectId,
+ pid: this.selectId,
record
})
}
@@ -285,6 +285,23 @@ export default class index extends Component {
/>
+ this.table.current.onReloadData()}
+ >
+
+
+
+ this.table.current.onReloadData()}
+ >
+
+
)
}