From 34b923b542587dfffd79c903920e63fa9eb5d659 Mon Sep 17 00:00:00 2001 From: ky_yusj <2655568377@qq.com> Date: Sun, 20 Jun 2021 21:49:12 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E7=89=87=E5=8C=BA=E7=AE=A1=E7=90=86?= =?UTF-8?q?=20=20=E9=A1=B9=E7=9B=AE=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Api/Ewide.Application/Ewide.Application.xml | 7 + .../HouseSafety/HouseZone/HouseZoneService.cs | 27 ++ Api/Ewide.Core/Service/Org/SysOrgService.cs | 1 + web-react/craco.config.js | 2 +- .../business/houseSafety/houseZone.js | 6 + .../src/pages/business/house/project/form.jsx | 236 +++++++++++++++ .../pages/business/house/project/index.jsx | 281 ++++++++++++++++++ .../src/pages/business/house/zone/form.jsx | 190 ++++++++++++ .../src/pages/business/house/zone/index.jsx | 268 +++++++++++++++++ web-react/src/pages/system/dict/form.jsx | 161 +++++++++- web-react/src/pages/system/dict/index.jsx | 19 +- 11 files changed, 1193 insertions(+), 5 deletions(-) create mode 100644 web-react/src/pages/business/house/project/form.jsx create mode 100644 web-react/src/pages/business/house/project/index.jsx create mode 100644 web-react/src/pages/business/house/zone/form.jsx create mode 100644 web-react/src/pages/business/house/zone/index.jsx diff --git a/Api/Ewide.Application/Ewide.Application.xml b/Api/Ewide.Application/Ewide.Application.xml index 523ac69..8225ae3 100644 --- a/Api/Ewide.Application/Ewide.Application.xml +++ b/Api/Ewide.Application/Ewide.Application.xml @@ -807,6 +807,13 @@ + + + 分页查询片区 + + + + 根据用户Id获取所在片区的Id diff --git a/Api/Ewide.Application/Service/HouseSafety/HouseZone/HouseZoneService.cs b/Api/Ewide.Application/Service/HouseSafety/HouseZone/HouseZoneService.cs index 88a09a5..323136c 100644 --- a/Api/Ewide.Application/Service/HouseSafety/HouseZone/HouseZoneService.cs +++ b/Api/Ewide.Application/Service/HouseSafety/HouseZone/HouseZoneService.cs @@ -1,4 +1,5 @@ using Ewide.Core; +using Ewide.Core.Extension; using Ewide.Core.Service; using Furion.DatabaseAccessor; using Furion.DependencyInjection; @@ -61,6 +62,32 @@ namespace Ewide.Application.Service .ToListAsync(); } + /// + /// 分页查询片区 + /// + /// + /// + [HttpPost("/houseZone/page")] + public async Task QueryZonePageList([FromBody] PageOrgInput input) + { + var dataScopeList = _sysOrgService.GetDataScopeList(await _sysOrgService.GetUserDataScopeIdList()); + + var name = !string.IsNullOrEmpty(input.Name?.Trim()); + var id = !string.IsNullOrEmpty(input.Id?.Trim()); + var pId = !string.IsNullOrEmpty(input.Pid?.Trim()); + var orgs = await _sysOrgRep.DetachedEntities + .Where((name, u => EF.Functions.Like(u.Name, $"%{input.Name.Trim()}%")), // 根据机构名称模糊查询 + (id, u => u.Id == input.Id.Trim()), // 根据机构id查询 + (pId, u => EF.Functions.Like(u.Pids, $"%[{input.Pid.Trim()}]%") + || u.Id == input.Pid.Trim())) // 根据父机构id查询 + .Where(dataScopeList.Count > 0, u => dataScopeList.Contains(u.Id)) // 非管理员范围限制 + .Where(u => u.Status != CommonStatus.DELETED) + .Where(u => u.Type == (int)OrgType.片区) + .OrderBy(u => u.Sort) + .ToPageData(input); + return PageDataResult.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 ( +
+ }> +
+ + this.onHouseTypeChange(e)}> + + 住宅 + + + 非住宅 + + + + + this.onAreaCodeChange(val)} + /> + + + + + + + + + + +
+
+
+ ) + } +} \ 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={ + + + + } + > + + + + + 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 ( +
+ }> +
+ + this.onAreaCodeChange(val)} + /> + + + + + + + + + + +
+
+
+ ) + } +} \ 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={ + + } + /> + + + + 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 -
+
{ + if (changeValues.hasOwnProperty('type')) { + this.setState({ + type: changeValues.type + }) + } + }} + > + }> +
+ {/* 表单控件 */} + + + + + + + 目录 + + + 字典类型 + + + + + + + {this.state.type == 2 && + <> + + + + + } + + + + + + + {/* ... */} +
+
+
) } } 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()} + > + + ) }