Browse Source

feat: 引入dayjs替换moment

lanjianrong 4 years ago
parent
commit
263395ebbc

+ 1 - 0
package.json

@@ -179,6 +179,7 @@
     "@grapecity/spread-sheets-react": "^14.0.0",
     "antd": "^4.6.4",
     "axios": "^0.20.0",
+    "dayjs": "^1.9.5",
     "mobx": "^6.0.1",
     "mobx-react": "^7.0.0",
     "moment": "^2.29.1",

+ 9 - 0
src/components/DatePicker.tsx

@@ -0,0 +1,9 @@
+import generatePicker from 'antd/es/date-picker/generatePicker'
+import 'antd/es/date-picker/style/index'
+import { Dayjs } from 'dayjs'
+import 'dayjs/locale/zh-cn'
+import dayjsGenerateConfig from 'rc-picker/lib/generate/dayjs'
+
+const DatePicker = generatePicker<Dayjs>(dayjsGenerateConfig)
+
+export default DatePicker

+ 14 - 0
src/components/TimePicker.tsx

@@ -0,0 +1,14 @@
+import { PickerTimeProps } from 'antd/es/date-picker/generatePicker'
+import { Omit } from 'antd/es/_util/type'
+import { Dayjs } from 'dayjs'
+import * as React from 'react'
+import DatePicker from './DatePicker'
+export interface TimePickerProps extends Omit<PickerTimeProps<Dayjs>, 'picker'> {}
+
+const TimePicker = React.forwardRef<any, TimePickerProps>((props, ref) => {
+  return <DatePicker {...props} picker="time" mode={undefined} ref={ref} />
+})
+
+TimePicker.displayName = 'TimePicker'
+
+export default TimePicker

+ 1 - 2
src/pages/Contract/Content/Income/GCsheet.tsx

@@ -1,6 +1,5 @@
 import { tenderState } from '@/store/mobx'
 import consts from '@/utils/consts'
-import secret from '@/utils/sheets'
 import GC from '@grapecity/spread-sheets'
 import { SpreadSheets, Worksheet } from '@grapecity/spread-sheets-react'
 import { Button, message, Radio, Table, Tabs } from 'antd'
@@ -14,7 +13,7 @@ import File from './components/Tabs/File'
 import Receivable from './components/Tabs/Receivable'
 import styles from './index.module.scss'
 GC.Spread.Common.CultureManager.culture("zh-cn")
-GC.Spread.Sheets.LicenseKey = secret
+// GC.Spread.Sheets.LicenseKey = secret
 interface iGCsheetPorps {
   modalHandler: (type: string) => void
 }

+ 2 - 2
src/pages/Contract/Content/Income/components/Modal/index.tsx

@@ -1,7 +1,7 @@
+import DatePicker from '@/components/DatePicker'
 import { iModalCommonProps } from '@/types/contract'
-import { Button, DatePicker, Form, Input, InputNumber, message, Modal, Select, Tabs, TreeSelect } from 'antd'
+import { Button, Form, Input, InputNumber, message, Modal, Select, Tabs, TreeSelect } from 'antd'
 import locale from 'antd/es/date-picker/locale/zh_CN'
-import 'moment/locale/zh-cn'
 import React from 'react'
 const ContractModal: React.FC<iModalCommonProps> = ({ modalObj: { type, visible, confirmLoading }, onConfirm, onCancel }) => {
   const { Option } = Select

+ 9 - 2
src/utils/util.ts

@@ -1,3 +1,5 @@
+import dayjs from "dayjs"
+
 function getCookie(name: string) {
   const prefix = name + "="
   const start = document.cookie.indexOf(prefix)
@@ -79,13 +81,18 @@ const combinationPath = (parentPath: string|undefined, pathOfTargetConfig: strin
 
 /**
  * 日期格式化
- * @param
+ * @param {String} format - 格式
  */
+const dayjsFomrat = (date: dayjs.ConfigType, format: string = 'YYYY-MM-DD HH:mm:ss') => {
+  return dayjs(date).format(format)
+}
+
 export {
   getCookie,
   storage,
   throttle,
   debounce,
-  combinationPath
+  combinationPath,
+  dayjsFomrat
 }