UNPKG

@choerodon/master

Version:
176 lines (161 loc) 5.5 kB
import "choerodon-ui/lib/avatar/style"; import _Avatar from "choerodon-ui/lib/avatar"; import "choerodon-ui/pro/lib/table/style"; import _Table from "@hzero-front-ui/c7n-ui/lib/TablePro"; import React, { useContext, useEffect } from 'react'; import { observer } from 'mobx-react-lite'; import queryString from 'query-string'; import Store from "../../stores"; import { Action } from "../../../../../../../index"; import EmptyProject from "../../components/Empty"; import { HAS_AGILE_PRO } from "../../constant"; var Column = _Table.Column; var actionStyle = { marginRight: 10 }; var ListView = observer(function (_ref) { var handleClickProject = _ref.handleClickProject, handleEditProject = _ref.handleEditProject, handleEnabledProject = _ref.handleEnabledProject; var _useContext = useContext(Store), dataSet = _useContext.dataSet, isNotRecent = _useContext.isNotRecent, HeaderStore = _useContext.HeaderStore, AppState = _useContext.AppState, history = _useContext.history; function filterRecent(record) { if (isNotRecent === 'all') { return true; } else if (isNotRecent === 'recent') { var recents = HeaderStore.getRecentItem; return !!recents.find(function (v) { return v.id === record.get('id'); }); } else { return record.get('createdBy') === AppState.getUserId; } } function renderName(_ref2) { var record = _ref2.record; var _record$toData = record.toData(), imageUrl = _record$toData.imageUrl, name = _record$toData.name, enabled = _record$toData.enabled, into = _record$toData.into; if (!into || !enabled) { return /*#__PURE__*/React.createElement("span", null, /*#__PURE__*/React.createElement(_Avatar, { src: imageUrl, size: 18, style: { marginRight: 8, fontSize: '12px', verticalAlign: 'top', marginTop: 6, background: 'rgba(104, 135, 232, 0.2)', border: '1px solid #6887E8', color: '#6887E8' } }, name && name.charAt(0)), name); } return /*#__PURE__*/React.createElement("span", { role: "none", onClick: function onClick() { return handleClickProject(record); }, className: "link" }, /*#__PURE__*/React.createElement(_Avatar, { src: imageUrl, size: 18, style: { marginRight: 8, fontSize: '12px', verticalAlign: 'top', marginTop: 6, background: 'rgba(104, 135, 232, 0.2)', border: '1px solid #6887E8', color: '#6887E8' } }, name && name.charAt(0)), name); } function renderAction(_ref3) { var record = _ref3.record; var _queryString$parse = queryString.parse(history.location.search), organizationId = _queryString$parse.organizationId; var actionDatas = [{ service: ['choerodon.code.organization.project.ps.edit'], icon: '', text: '编辑', action: handleEditProject }, { service: ['choerodon.code.organization.project.ps.edit'], icon: '', text: record.get('enabled') ? '停用' : '启用', action: handleEnabledProject }]; return record.get('editFlag') && /*#__PURE__*/React.createElement(Action, { organizationId: organizationId, type: "organization", data: actionDatas, style: actionStyle }); } function renderEnabled(_ref4) { var record = _ref4.record; if (record.status === 'add') return ''; var enabled = record.get('enabled'); return /*#__PURE__*/React.createElement("div", { className: "project-status-wrap", style: { background: enabled ? '#00bfa5' : '#d3d3d3' } }, /*#__PURE__*/React.createElement("div", { className: "word" }, enabled ? '启用' : '停用')); } var realData = dataSet.originalData.filter(function (r) { return filterRecent(r); }); if (realData.length === 0 && dataSet.status === 'ready' && dataSet.queryDataSet.current && Object.keys(dataSet.queryDataSet.current.toData()).filter(function (item) { return item !== '__dirty'; }).length === 0) { var description = ''; if (isNotRecent === 'all') { description = '暂无可操作的项目'; } else if (isNotRecent === 'recent') { description = '暂无“最近使用”项目'; } else if (isNotRecent === 'mine') { description = '暂无“我创建的” 项目'; } return /*#__PURE__*/React.createElement(EmptyProject, { title: "\u6682\u65E0\u9879\u76EE", description: description }); } return /*#__PURE__*/React.createElement(_Table, { pristine: true, dataSet: dataSet, filter: filterRecent, className: "c7n-projects-table" }, /*#__PURE__*/React.createElement(Column, { name: "name", renderer: renderName }), /*#__PURE__*/React.createElement(Column, { renderer: renderAction, width: 100 }), /*#__PURE__*/React.createElement(Column, { name: "code" }), /*#__PURE__*/React.createElement(Column, { name: "category" }), /*#__PURE__*/React.createElement(Column, { name: "enabled", renderer: renderEnabled, align: "left" }), HAS_AGILE_PRO && /*#__PURE__*/React.createElement(Column, { name: "programName" }), /*#__PURE__*/React.createElement(Column, { name: "createUserName" }), /*#__PURE__*/React.createElement(Column, { name: "creationDate" })); }); export default ListView;