UNPKG

enoad-component-web

Version:

针对web端的控件

176 lines 9.82 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var react_1 = (0, tslib_1.__importStar)(require("react")); var styled_1 = require("./styled"); var antd_1 = require("antd"); var zh_CN_1 = (0, tslib_1.__importDefault)(require("antd/lib/locale/zh_CN")); var icons_1 = require("@ant-design/icons"); var action_1 = require("./action"); var moment_1 = (0, tslib_1.__importDefault)(require("moment")); var util_1 = require("../../../core/util"); var components_1 = require("../../../components"); //搜索功能,包含文字搜索和筛选。 var SearchView = function (props) { var handleSearch = props.handleSearch; var _a = (0, react_1.useState)(""), searchKey = _a[0], setSearchKey = _a[1]; //输入的搜索名称。 var _b = (0, react_1.useState)([]), entitys = _b[0], setEntitys = _b[1]; //筛选对象,单选状态。 var _c = (0, react_1.useState)("all"), entity = _c[0], setEntity = _c[1]; //选中哪个对象。 (0, react_1.useEffect)(function () { fetchConfig(); }, []); var fetchConfig = function () { (0, action_1.fetchEntityConfig)() .then(function (res) { if (res) { setEntitys(res); //拿到属性后,优先获取所有实体信息。 var params = { entity: entity, searchKey: searchKey, }; handleSearch(params); } }) .catch(function (e) { console.log("[getAllCount]", e); }); }; var handleSearchValue = function (e) { var value = e.target.value; setSearchKey(value); var params = { entity: entity, searchKey: value, }; handleSearch(params); }; var handleChange = function (e) { var value = e.target.value; setEntity(value); var params = { entity: value, searchKey: searchKey, }; handleSearch(params); }; return (react_1.default.createElement(styled_1.SearchContainer, null, react_1.default.createElement(styled_1.SearchStyled, null, react_1.default.createElement(antd_1.Input, { placeholder: "\u641C\u7D22\u5B9E\u4F53", suffix: react_1.default.createElement(icons_1.SearchOutlined, { onClick: handleSearchValue, style: { color: "#3c72ff" } }), allowClear: true, onPressEnter: handleSearchValue, onChange: handleSearchValue })), react_1.default.createElement(styled_1.SearchLabel, null, react_1.default.createElement("label", null, "\u5B9E\u4F53\u540D\u79F0:"), react_1.default.createElement(antd_1.Radio.Group, { options: entitys, value: entity, onChange: handleChange, optionType: "button", size: "small" })))); }; //卡片展示样式及功能 var ItemCard = function (props) { var item = props.item, checkList = props.checkList, openBoard = props.openBoard, onPreView = props.onPreView; var id = item.id, icon = item.icon, label = item.label, name = item.name, createTime = item.createTime, tag = item.tag, declare = item.declare; //标签和描述任意存在则上移15px。都存在上移30px。都不存在,不用上移。 var top = tag ? (declare ? "-8px" : "-4px") : declare ? "-4px" : "0px"; var _a = (0, react_1.useState)({ id: null }), current = _a[0], setCurrent = _a[1]; //鼠标是否移动到卡片上 return (react_1.default.createElement(styled_1.CardContainer, null, react_1.default.createElement(styled_1.CardDiv, { onMouseOver: function () { setCurrent(item); }, onMouseOut: function () { setCurrent({ id: null }); } }, react_1.default.createElement(styled_1.EnableStatusUn, null, "\u672A\u542F\u7528"), react_1.default.createElement(styled_1.CardImg, null, react_1.default.createElement("img", { style: { width: "100%", height: "100%" }, src: icon }), react_1.default.createElement(styled_1.Mask, { style: { display: current && current["id"] === id ? "flex" : "none" } }, react_1.default.createElement(styled_1.Masker, { onClick: function () { openBoard && openBoard(item); } }, "\u6570\u636E"), react_1.default.createElement(styled_1.Masker, { onClick: function () { onPreView && onPreView(item); } }, "\u9884\u89C8")), react_1.default.createElement(styled_1.MaskCheck, { style: { display: current["id"] === id || checkList.length > 0 ? "flex" : "none", } }, react_1.default.createElement(antd_1.Checkbox, { value: id, key: id }))), react_1.default.createElement(styled_1.CardInfo, null, react_1.default.createElement(styled_1.Info, null, react_1.default.createElement(antd_1.Tag, { color: "#FFADD2" }, label), react_1.default.createElement(styled_1.Title, { title: name }, name)), react_1.default.createElement(styled_1.Info, { style: { display: "flex", justifyContent: "space-between" } }, react_1.default.createElement(styled_1.Time, null, (0, moment_1.default)(createTime).format("YYYY-MM-DD")))), react_1.default.createElement(styled_1.CardWrap, { style: { display: current["id"] === id ? "flex" : "none" } }, react_1.default.createElement(styled_1.LabelItem, null, tag)), react_1.default.createElement(styled_1.MaterialDesc, { style: { display: current["id"] === id ? "flex" : "none" } }, react_1.default.createElement(styled_1.LabelItem, null, declare))))); }; // 所有操作都在这个界面中进行处理,可以分模块,然后刷state时进行数据获取。使用一个回调方法即可。 var View = function (props) { var openBoard = props.openBoard; var _a = (0, react_1.useState)({}), pagination = _a[0], setPagination = _a[1]; //分页信息 var _b = (0, react_1.useState)([]), dataSource = _b[0], setDataSource = _b[1]; //查找回来的数据 var _c = (0, react_1.useState)([]), checkList = _c[0], setCheckList = _c[1]; //选中的列表 var _d = (0, react_1.useState)({ page: 1, pageSize: 20, }), currentPageInfo = _d[0], setCurrentPageInfo = _d[1]; // 展示的数量和页码 var _e = (0, react_1.useState)({ entity: "all", searchKey: "", }), currentPageSelect = _e[0], setCurrentPageSelect = _e[1]; // 展示的数量和页码 var _f = (0, react_1.useState)(false), preView = _f[0], setPreView = _f[1]; //选中的列表 var _g = (0, react_1.useState)({}), preViewItem = _g[0], setPreViewItem = _g[1]; //选中的列表 //通过设置的state各个属性,作为参数,获取当前数据信息。 var fetchAllData = function (info) { var params = (0, tslib_1.__assign)({}, info); (0, action_1.fetchMainCardsData)(params) .then(function (res) { if (res.status == 200) { if (res.data.code == 200 && res.data.data) { var data = res.data.data; setPagination((0, util_1.createPagination)(data, null)); setDataSource(data.list); } } }) .catch(function (e) { console.log("[getAllCount]", e); }); }; var handleCheckChange = function (list) { setCheckList(list); }; var handlePageChange = function (param) { setCheckList([]); var pageInfo = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, currentPageSelect), param); setCurrentPageInfo(pageInfo); //开始获取最新筛选的数据信息。 fetchAllData(pageInfo); }; var handleSearch = function (params) { params.page = currentPageInfo.page; params.pageSize = currentPageInfo.pageSize; setCurrentPageSelect(params); fetchAllData(params); }; var onPreView = function (item) { setPreViewItem(item); setPreView(true); //打开预览 }; //渲染每个item var renderCardList = function () { return dataSource.map(function (i, k) { return (react_1.default.createElement(ItemCard, { key: k, item: i, openBoard: openBoard, onPreView: onPreView, checkList: checkList })); }); }; var onSelect = function (selectedKeys, info) { console.log("[selectedKeys]", selectedKeys); console.log("[info]", info); }; return (react_1.default.createElement(styled_1.Container, null, react_1.default.createElement(SearchView, { handleSearch: handleSearch }), dataSource.length === 0 ? (react_1.default.createElement(antd_1.Empty, { image: antd_1.Empty.PRESENTED_IMAGE_SIMPLE })) : (react_1.default.createElement(antd_1.Checkbox.Group, { value: checkList, onChange: handleCheckChange, style: { width: "100%", display: "flex", flexWrap: "wrap" } }, renderCardList())), react_1.default.createElement("div", { style: { padding: "30px", textAlign: "right" } }, react_1.default.createElement(antd_1.ConfigProvider, { locale: zh_CN_1.default }, react_1.default.createElement(antd_1.Pagination, (0, tslib_1.__assign)({ onChange: function (page, pageSize) { handlePageChange({ page: page, pageSize: pageSize }); } }, pagination)))), preView && (react_1.default.createElement(components_1.EnoadPreView, { item: preViewItem, preView: preView, setPreView: setPreView })))); }; exports.default = View; //# sourceMappingURL=view.js.map