applyCard.tsx 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import React from 'react';
  2. import { StatusColorEnum } from '@/components/BadgeStatus';
  3. import { Ellipsis, TableCard } from '@/components';
  4. import '@/style/common.less';
  5. import '../index.less';
  6. export interface DeviceCardProps extends ApplyItem {
  7. actions: React.ReactNode[];
  8. detail?: React.ReactNode;
  9. }
  10. const defaultImage = require('/public/images/apply.png');
  11. const providerType = new Map();
  12. providerType.set('internal-standalone', '内部独立应用');
  13. providerType.set('wechat-webapp', '微信网站应用');
  14. providerType.set('internal-integrated', '内部集成应用');
  15. providerType.set('dingtalk-ent-app', '钉钉企业内部应用');
  16. providerType.set('third-party', '第三方应用');
  17. export default (props: DeviceCardProps) => {
  18. return (
  19. <TableCard
  20. // showMask={false}
  21. detail={props.detail}
  22. actions={props.actions}
  23. status={props.state?.value}
  24. statusText={props.state?.value === 'disabled' ? '禁用' : '正常'}
  25. statusNames={{
  26. enabled: StatusColorEnum.success,
  27. disabled: StatusColorEnum.error,
  28. }}
  29. >
  30. <div className={'pro-table-card-item'}>
  31. <div className={'card-item-avatar'}>
  32. <img width={88} height={88} src={defaultImage} alt={''} />
  33. </div>
  34. <div className={'card-item-body'}>
  35. <div className={'card-item-header'}>
  36. <Ellipsis title={props.name} titleClassName={'card-item-header-name'} />
  37. </div>
  38. <div className={'card-item-content'}>
  39. <div>
  40. <label>类型</label>
  41. <Ellipsis title={providerType.get(props.provider)} />
  42. </div>
  43. <div>
  44. <label>说明</label>
  45. <Ellipsis title={props.description} />
  46. </div>
  47. </div>
  48. </div>
  49. </div>
  50. </TableCard>
  51. );
  52. };