YANG QIA
33779d3da2
fix: fix T-2749 ( #3194 )
2023-12-15 11:33:08 +08:00
chenos
a702762cca
chore(versions): 😊 publish v0.17.0-alpha.6
2023-12-13 16:36:59 +08:00
xilesun
35301358de
chore(versions): 😊 publish v0.17.0-alpha.5
2023-12-12 23:07:55 +08:00
chenos
cf9ccfe4f9
chore(versions): 😊 publish v0.17.0-alpha.4
2023-12-12 14:10:36 +08:00
YANG QIA
4665095372
fix(bi): import bug ( #3165 )
2023-12-08 16:56:05 +08:00
YANG QIA
8708765f43
fix(bi): localization ( #3159 )
...
* fix(bi): localization
* fix: bug
* fix(map): localization
* fix: antd config provider
2023-12-07 21:15:40 +08:00
chenos
eef101c177
chore(versions): 😊 publish v0.17.0-alpha.3
2023-12-06 17:19:35 +08:00
YANG QIA
269467ebb0
fix(lm): wrong version of migration ( #3148 )
...
* fix(lm): wrong version of migration
* fix: typo
2023-12-06 15:07:23 +08:00
YANG QIA
ff097936dd
fix(lm): reserve i18n namespaces for plugins to avoid conflicts ( #3121 )
...
* fix: fix T-2063
* fix: fix T-2589
* chore: remove translation of page header
* chore: add version check for migration
* chore: switch locale files to JSON format
* fix: bug
* fix(auth): fix translation
* fix: add App provider
---------
Co-authored-by: chenos <chenlinxh@gmail.com>
2023-12-06 14:30:17 +08:00
chenos
36fd4881b2
chore(versions): 😊 publish v0.17.0-alpha.2
2023-12-06 13:20:48 +08:00
YANG QIA
16ad19b18d
feat(bi): filter block for charts ( #2851 )
...
* refactor: SchemaInitializer
* feat: render
* feat: finish BlockInitializers
* feat: finish TableActionInitializers
* refactor: new SchemaInitializerV2
* feat: support useChildren
* feat: finish TableColumnInitializers
* refactor: tableActionColumnInitializers
* fix: bug
* refactor: xx
* docs: schemaInitializer demo1
* docs: schema-initializer demo2
* feat: demo3
* docs: schema-initializer
* fix: form
* feat(bi): filter block for charts
* refactor: schema-initializer
* fix: bug
* feat: add filter block in chart block
* refactor: schema initializer
* refactor: rename
* fix: delete SchemaInitializerProvider
* refactor: props `insert` to hooks `useSchemaInitializerV2`
* fix: bug
* refactor: improve code & style
* feat: add expand/collapse button
* fix: filter & reset bug
* fix: configure data conflict
* refactor: delete `SchemaInitializer.Button`
* refactor: delete old SchemaInitializer
* feat: support for adding custom filter field
* fix: bug
* fix: workflow
* fix: docs
* feat: support for editing operator of collection field
* fix: bug
* fix: bug
* feat: support for editing options of custom fields
* feat: style
* fix: remove v2
* feat: init chart with filter
* fix: visible
* fix: bug
* fix: item hook
* feat: support for setting default value
* feat: item hook
* feat: support for filtering by associate fields
* fix: bug of associate field
* fix: get field bug
* fix: bug of adding filter block
* fix: bug of empty filter
* fix: filter parse issues
* fix: add search DataBlockInitializer
* fix: build bug
* fix: fix bug and improve
* fix: bug
* fix: variable
* fix: hook dependencies
* fix: style bug
* fix: style bug
* fix: test bug
* fix: test bug
* fix: rerender bug
* fix: remove menu select
* fix: bug
* chore: add aria-label for SchemaInitializerButton
* refactor: rename name to camel case
* fix: menu height bug
* fix: build errors
* fix: build errors
* fix: bug
* fix: bug
* fix: performance
* fix: fix T-2388, T-2384
* test: add test for header
* fix: sidebar is not refresh (T-2422)
* feat(e2e): support to add group page and link page
* chore: make sure the page is configurable when using page.goto
* test: add tests for menu initializer
* fix: imporve code
* fix: fix T-2383
* fix: variables
* fix: variables
* fix: fix T-2441
* chore: fix build error
* chore: optimize locator of menu item
* refactor: rename testid for select
* feat: select source field for custom field, fix T-2416
* fix: bug
* test: make tests passing
* fix: make tests passing
* chore: upgrade vitest to v0.34.6
* chore: increase timeout of e2e
* feat: core
* fix: revert schema initializer demos
* test: menu, page tabs, page grid, table column
* fix: schema button interface
* fix: fix T-2386
* feat: refactor: page tab settings
* feat: page settings
* fix: dumirc
* fix: export CSSVariableProvider
* feat: lazy render
* fix: fix T-2473, T-2474
* fix: fix T-2476
* fix: fix T-2472
* fix: form-item
* fix: general schema desinger
* feat: filter form item settings
* fix: fix T-2484, T-2482
* refactor: form-v2 schema settings
* refactor: form-v1 schema settings
* refactor: action schema settings
* fix: dependency
* fix: action bug
* fix: form-item bug
* fix: types error
* docs: schema settings doc
* docs: schema settings
* feat: schema setting item add name
* fix: visible lazy render bug
* fix: revert form item filter
* fix: test bug
* fix: test JSON.parse bug
* fix: test bug
* fix: improve styling
* fix: styling
* fix: cleanup
* fix: token.borderRadiusSM
* fix: bug
* test: add tests
* fix: style bug
* fix: add chart performance
* feat: add SchemaDesignerContext
* fix: bug
* fix: test bug
* style: create record action style improve
* fix: make test passing
* chore: mack tests passing
* chore: make tests passing
* test: fix tests
* style: style revert
* fix: bug
* fix: data selector
* fix: fix tests
* fix: fix tests
* fix: delete PluginManagerContext
* refactor: improve router and add SchemaComponentProvider & CSSVariableProvider to MainComponent
* fix: add dn and field builtin to SchemaSettingWrapper
* feat: update docs
* refactor: application providers
* fix: test bug
* fix: fix tests
* chore: make test passing
* feat: update docs
* chore: rename collection name
* feat: update docs
* chore: skip weird test
* fix: blockInitializers media to otherBlocks
* fix: cancel to skip test
* fix: bug
* test: add test
* refactor: migrate to small files
* test: add tests for form block settings
* chore: format
* fix: add chart scroll bug
* refactor: action designer improve
* refactor: formitem designer schemaSetting
* feat: schemaSettingsManager and schemaInitializerManager addItem and removeItem
* test: add tests for color field in creating block
* test: add tests for email field in creating block
* test: make tests passing
* perf: reduce fields number
* fix: sub menu bug
* chore: update filter hook
* chore: fix association fields
* fix: build
* chore: use `default` instead of `componentProps.defaultValue`
* chore: remove chinaRegion in custom field components
* fix: menu height
* fix: duplicate keys warning
* fix: variable issues
* fix: filter bug
* fix: operator bug
---------
Co-authored-by: Your Name <1098626505@qq.com>
Co-authored-by: Rain <958414905@qq.com>
Co-authored-by: chenos <chenlinxh@gmail.com>
Co-authored-by: katherinehhh <katherine_15995@163.com>
2023-12-05 20:45:18 +08:00
chenos
1757a96b51
chore(versions): 😊 publish v0.17.0-alpha.1
2023-12-04 14:58:09 +08:00
jack zhang
bf1a19426a
refactor: new schema initializer and schema settings ( #2802 )
...
* fix: form
* refactor: schema-initializer
* fix: bug
* refactor: schema initializer
* refactor: rename
* fix: delete SchemaInitializerProvider
* refactor: props `insert` to hooks `useSchemaInitializerV2`
* fix: bug
* refactor: delete `SchemaInitializer.Button`
* refactor: delete old SchemaInitializer
* fix: bug
* fix: workflow
* fix: docs
* fix: bug
* fix: bug
* feat: style
* fix: remove v2
* fix: visible
* fix: bug
* fix: item hook
* feat: item hook
* fix: add search DataBlockInitializer
* fix: build bug
* fix: style bug
* fix: style bug
* fix: test bug
* fix: test bug
* fix: rerender bug
* fix: remove menu select
* fix: bug
* chore: add aria-label for SchemaInitializerButton
* refactor: rename name to camel case
* fix: menu height bug
* fix: build errors
* fix: build errors
* fix: bug
* fix: bug
* fix: performance
* test: add test for header
* fix: sidebar is not refresh (T-2422)
* feat(e2e): support to add group page and link page
* chore: make sure the page is configurable when using page.goto
* test: add tests for menu initializer
* fix: imporve code
* chore: fix build error
* chore: optimize locator of menu item
* refactor: rename testid for select
* test: make tests passing
* fix: make tests passing
* chore: upgrade vitest to v0.34.6
* chore: increase timeout of e2e
* feat: core
* fix: revert schema initializer demos
* test: menu, page tabs, page grid, table column
* fix: schema button interface
* feat: refactor: page tab settings
* feat: page settings
* fix: dumirc
* fix: export CSSVariableProvider
* feat: lazy render
* fix: form-item
* fix: general schema desinger
* feat: filter form item settings
* refactor: form-v2 schema settings
* refactor: form-v1 schema settings
* refactor: action schema settings
* fix: action bug
* fix: form-item bug
* fix: types error
* docs: schema settings doc
* docs: schema settings
* feat: schema setting item add name
* fix: visible lazy render bug
* fix: revert form item filter
* fix: test bug
* fix: test JSON.parse bug
* fix: test bug
* fix: improve styling
* fix: styling
* fix: cleanup
* fix: token.borderRadiusSM
* fix: bug
* test: add tests
* fix: style bug
* fix: add chart performance
* feat: add SchemaDesignerContext
* fix: bug
* fix: test bug
* style: create record action style improve
* fix: make test passing
* chore: mack tests passing
* chore: make tests passing
* test: fix tests
* style: style revert
* fix: bug
* fix: data selector
* fix: fix tests
* fix: fix tests
* fix: delete PluginManagerContext
* refactor: improve router and add SchemaComponentProvider & CSSVariableProvider to MainComponent
* fix: add dn and field builtin to SchemaSettingWrapper
* feat: update docs
* refactor: application providers
* fix: test bug
* fix: fix tests
* chore: make test passing
* feat: update docs
* chore: rename collection name
* feat: update docs
* chore: skip weird test
* fix: blockInitializers media to otherBlocks
* fix: cancel to skip test
* fix: bug
* test: add test
* refactor: migrate to small files
* test: add tests for form block settings
* chore: format
* fix: add chart scroll bug
* refactor: action designer improve
* refactor: formitem designer schemaSetting
* feat: schemaSettingsManager and schemaInitializerManager addItem and removeItem
* test: add tests for color field in creating block
* test: add tests for email field in creating block
* test: make tests passing
* perf: reduce fields number
* fix: sub menu bug
* test: add tests basic in editing form
* test: add tests basic in details form
* fix: improve code
* test: make tests passing
* test(plugin-mock-collections): add color for enum options
* refactor: improve code
* fix: bug
* fix: bug
* refactor: convert parameters to destructured object
* test: add tests choices
* test: add tests media
* test: add tests for datetime in creating form
* feat(plugin-mock-collection): generate faker time
* test: add tests for datetime in editing form
* test: add tests for datetime in details form
* fix: bug
* feat: improve code
* test: add tests for relation fields
* fix: rename SchemaSettings
* fix: type bug
* refactor: useDesinger()
* fix: bug
* fix: bug
* fix: build tip
* fix: designableState
* fix: bug
* fix: designable
* fix: designable
* test: add tests for relation fields
* test: add tests for relation fields
* test: add tests for relation fields
* feat: client api doc
* test: add tests for relation fields
* test: avoid errors
* test: make tests passing
* fix: bug
* test: make tests passing
* test: add tests for advanced fields
* test: increase e2e timeout-minutes to 60
* fix: bug
* fix: improve code
* feat: add schema initailizer component demos
* test: make tests passing
* fix: schema settings demos
* feat: shallowMerge & deepMerge
* test: reduce number of tests
* test: make tests passing
* feat: updates
* fix: add Initializer Internal
* demos: useSchemaSettingsRender
* test: make tests passing
* test: make tests passing
* fix: improve docs
* fix: bug
* chore: upgrade dumi theme
* test: make tests passing
* test: add tests for linkage rules
* test: add test for form data templates
* test: add tests for default value
* test: reduce number of tests
* fix: dn.deepMerge
* fix: bug
* fix: bug
* fix: toolbar
* fix: docs ssr
* test: add tests for system fields
* test: add tests for actions
* fix: bug
* test: add tests for lazy loading of variables
* test: make testing more stable
* fix: update docs
* fix: bug
---------
Co-authored-by: Rain <958414905@qq.com>
Co-authored-by: chenos <chenlinxh@gmail.com>
Co-authored-by: katherinehhh <katherine_15995@163.com>
2023-12-04 14:56:46 +08:00
xilesun
9d644304c1
chore(versions): 😊 publish v0.16.0-alpha.6
2023-12-04 11:01:24 +08:00
chenos
8977420eec
chore(versions): 😊 publish v0.16.0-alpha.5
2023-11-30 12:41:50 +08:00
YANG QIA
6819366049
fix(bi): fix T-2643 ( #3101 )
2023-11-27 16:24:47 +08:00
chenos
ffb300d357
chore(versions): 😊 publish v0.16.0-alpha.4
2023-11-24 23:15:10 +08:00
chenos
cba967933e
chore(versions): 😊 publish v0.16.0-alpha.3
2023-11-20 19:36:12 +08:00
chenos
dfb940e091
feat: node >= 18 ( #3066 )
...
* feat: node >= 18
* fix: release version
* chore(versions): test publish packages xxx
* fix: gitignore
2023-11-20 19:35:30 +08:00
chenos
91053b31ef
chore(versions): 😊 publish v0.16.0-alpha.1
2023-11-20 17:19:09 +08:00
YANG QIA
daac2ae0db
refactor(cache): improve cache ( #3004 )
...
* feat: improve cache
* fix: bug
* fix: test
* fix: test
* fix: test
* chore: add cache test
* feat: add wrapWithCondition
* fix: test
* refactor: improve api
* fix: test
* fix: test
* fix: test
* fix: improve code
* fix: test
* feat: register redis store
* fix: tst
* fix: test
* fix: bug
* chore: update
* fix: ttl unit
* chore: cachemanager constructor
* chore: remove code
* feat: support close connection
* chore: add close options for redis store
2023-11-20 17:14:20 +08:00
ChengLei Shao
d7d2eb634e
feat: mariadb support ( #3052 )
...
* feat: mariadb support
* feat: mariadb test
* chore: mariadb test
* chore: test
* fix: sort field test
* fix: sort field test
* fix: test
* fix: test
* fix(bi): chart query support mariadb
* chore: test timeout
* chore: test
---------
Co-authored-by: xilesun <2013xile@gmail.com>
2023-11-20 08:54:40 +08:00
chenos
ef1b9db2a9
chore(versions): 😊 publish v0.15.0-alpha.4
2023-11-18 21:22:03 +08:00
chenos
60112aae62
chore(versions): 😊 publish v0.15.0-alpha.3
2023-11-16 15:03:40 +08:00
chenos
b597aec1dc
chore(versions): 😊 publish v0.15.0-alpha.2
2023-11-13 18:28:48 +08:00
chenos
29457cb2bc
chore(versions): 😊 publish v0.15.0-alpha.1
2023-11-13 11:02:35 +08:00
chenos
2bb0f7c51c
chore(versions): 😊 publish v0.14.0-alpha.8
2023-11-01 09:52:49 +08:00
被雨水过滤的空气-Rain
29bf187fbf
chore: optimize locators ( #2833 )
...
* test(e2e): better locators for designer buttons
* fix: make test passing
* refactor: remove DesignerControl
* chore: better locators
* fix: should not disable add-menu-item
* chore: better test id for block
* chore: optimize Action
* chore: remove role in BlockItem
* feat: improve locators
* chore: menu & add block
* chore: initializer
* chore: testid -> aria label
* chore: tabs
* chore: designers
* refactor: optimize schemaInitializer
* refactor: rename
* chore: add collectionName
* chore: block item
* chore: action
* fix: avoid crashting
* chore(e2e): add __E2E__
* chore: all dialog
* chore: add aria-label for block menu
* Revert "chore: add aria-label for block menu"
This reverts commit 6a840ef816
.
* chore: optimize aria-label of Action
* chore: schema-initializer
* chore(e2e): increase timeout
* chore: schema settings
* chore: optimize table
* chore: workflow
* chore: plugin manager
* chore: collection manager and workflow
* chore: details of workflow
* chore: remove testid of Select
* test: fix unit-tests
* test: fix unit-tests
* test(e2e): passing tests
* test: fix unit test
* chore: should use hover
* test: passing tests
* chore: passing tests
* chore: fix CI
* chore: fix CI
* chore: increase timeout in CI
---------
Co-authored-by: chenos <chenlinxh@gmail.com>
2023-10-27 15:32:17 +08:00
ChengLei Shao
02559b61ba
feat(ci): run backend tests concurrently ( #2815 )
...
* chore: run backend tests concurrently
* fix: mock app server create database
* chore: using @swc/jest instead of ts-jest
* chore: create test database
* chore: database distributor
* fix: test collection manager
* fix: test
* chore: to use Jest.mock, change the formatter to the commonjs module
* chore: db acquire
* chore: github action
* fix: pg test action
* chore: formatter
* chore: jest workaround
* fix: mysql test
* chore: mysql github action
* chore: clean storage
* chore: gitignore
* chore: max workers
2023-10-17 22:22:45 +08:00
YANG QIA
c33b69a737
fix(bi): query with limit
( #2803 )
2023-10-11 06:59:22 -05:00
YANG QIA
8bd6ef897c
chore(bi): complete chart api ( #2771 )
...
* chore(bi): complete chart api
* feat(bi): sample plugin for adding custom charts
* chore: improve
* chore: remove console.log
2023-10-11 04:24:50 -05:00
Rain
384cc1c56c
chore(versions): 😊 publish v0.14.0-alpha.7
2023-10-07 15:53:49 +08:00
YANG QIA
ae988d00b0
refactor(bi): improve chart frontend api ( #2721 )
...
* refactor: improve chart frontend api
* chore: remove redundant import
* fix: rename chartType
* chore: add migration check
* fix: add migration
* fix: change version
* chore: update
2023-09-27 15:50:04 +08:00
被雨水过滤的空气-Rain
ff16f59908
perf: improve the UX of SchemaInitializer ( #2666 )
...
* perf: improve the UX of SchemaInitializer
* fix: fix error of Charts block
* fix: fix fields
* fix: fix search
* chore: avoid crash
* chore: fix build
* chore: avoid crash
* refactor: rename SelectCollection to SearchCollections
* refactor: increased code versatility for improved reusability
* fix: fix Add chart
* perf: workflow
* refactor: remove useless code
* fix: fix block template
* fix: should clean search value when creating a block
2023-09-26 13:47:20 +08:00
YANG QIA
89635982b4
feat(db): add sql collection ( #2419 )
...
* feat(db): add sql collection
* feat: frontend
* perf: issue of select
* fix: sql model
* fix: sql collection schema
* fix: implement sql collection
* fix: dependency
* fix: remove type declaration in actions
* fix: backend test
* chore: remove some ops of block using sql collection
* chore: remove sql collections from Form and Kanban
* feat: add execute button to sql input
* feat(backend): support infer fields by parsing sql
* feat(frontend): support infer interface by parsing sql
* fix: fix update issues and improve
* fix: update issue
* chore: update yarn.lock
* fix: fix T-1548
* fix: fix T-1544
* fix: fix T-1545
* fix: fix T-1549
* fix: test
* fix: fix T-1556
* fix: remove map action diviver
* chore: debug
* chore: remove schema of sql collection
* fix: sql collection schema
* chore: remove debug log & fix T-1555
* fix: fix T-1679
* fix: sql update issue
* fix: sql attribute issue
* fix: bug of star attribute
* fix: test
* fix: test
* fix: reset fields when updating sql collection
* fix(collection-manager): redundant fields after set collection fields
* fix: test
* fix: destory with individuals hook
* chore: save
* chore: test
* fix: fields sync issue
* fix: remove underscored option of sql collection
* chore: mutex in fields.afterDestroy
* fix: test
* chore: yarn.lock
* chore: update collections.setFields
* feat: improve sql input
* fix: fix T-1742 & improve
* chore: fix conflicts
* fix: workspace
* fix: build
* fix: test
* chore: add translations
* fix: reviewed issues
* chore: update yarn.lock
---------
Co-authored-by: ChengLei Shao <chareice@live.com>
2023-09-25 15:03:23 +08:00
mytharcher
8eb634459d
chore(versions): 😊 publish v0.14.0-alpha.6
2023-09-22 15:49:50 +08:00
mytharcher
bffa53a04e
chore(versions): 😊 publish v0.14.0-alpha.5
2023-09-22 15:47:28 +08:00
mytharcher
d20398f73f
chore(versions): 😊 publish v0.14.0-alpha.4
2023-09-21 23:25:31 +08:00
chenos
6058850db1
chore(versions): 😊 publish v0.14.0-alpha.3
2023-09-13 18:29:38 +08:00
chenos
3670d670ac
chore(versions): 😊 publish v0.14.0-alpha.2
2023-09-13 03:57:15 +08:00
chenos
117d4b8186
chore(versions): 😊 publish v0.14.0-alpha.1
2023-09-12 22:42:43 +08:00
jack zhang
705b7449f0
feat: new plugin manager, supports adding plugins through UI ( #2430 )
...
* refactor: plugin manager page
* fix: bug
* feat: addByNpm api
* fix: improve the addByNpm
* feat: improve applicationPlugins:list api
* fix: re-download npm package when restart app
* fix: plugin delete api
* feat: plugin detail api
* feat: zipUrl add api
* fix: upload api bug
* fix: plugin detail info
* feat: upgrade api
* fix: upload api
* feat: handle plugin load error
* feat: support authToken
* feat: muti lang
* fix: build error
* fix: self review
* Update plugin-manager.ts
* fix: bug
* fix: bug
* fix: bug
* fix: bug
* fix: bug
* fix: bugs
* fix: detail click and remove isOfficial
* fix: upgrade no refresh
* fix: file size and type check
* fix: bug
* fix: upgrade error
* fix: bug
* fix: bug
* fix: plugin card layout
* fix: handling exceptional cases
* fix: tgz file support
* fix: macos compress file
* fix: bug
* fix: bug
* fix: bug
* fix: bug
* fix: add upgrade npm type
* fix: bugs
* fix: bug
* fix: change plugins static expose url
* fix: api prefix
* fix: bug
* fix: add nginx `/static/plugin/` path
* fix: bugs and pr docker build no dts
* fix: bug
* fix: build tools bug
* fix: improve code
* fix: build bug
* feat: improve plugin info
* fix: ui bug
* fix: plugin document bug
* feat: improve code
* feat: improve code
* feat: process dev deps check
* feat: improve code
* feat: process.env.IS_DEV_CMD
* fix: do not delete the plugin package
* feat: plugin symlink
* fix: tsx watch --ignore=./storage/plugins/**
* fix: test error
* fix: improve code
* fix: improve code
* fix: emitStartedEvent
* fix: improve code
* fix: type error
* fix: test error
* test: console.log
* fix: createStoragePluginSymLink
* fix: clientStaticMiddleware rename to clientStaticUtils
* feat: build tools support plugins folder
* fix: 350px
* fix: error
* feat: client dev support plugin folder
* fix: clear cli options
* fix: typeError: Converting circular structure to JSON
* fix: plugin name
* chore: restart application after command
* feat: upgrade error & docs
* Update v14-changelog.md
* Update v14-changelog.md
* Update v14-changelog.md
* fix: gateway test
* refactor(plugin-workflow): add ready state for gracefully tearing down
* Revert "chore: restart application after command"
This reverts commit 5015274f8e
.
* chore: stop application whe restart
* T 1218 change plugin folder (#2629 )
* feat: change folder name
* feat: change `pm create` command
* feat: revert plugin name change
* fix: delete samples
* feat: change plugins folder
* fix: pm create
* feat: update docs
* fix: link package error
* fix: docs
* fix: create command
* fix: pm add error
* fix: create add build
* fix: pm creatre + add
* feat: add tar command
* fix: docs
* fix: bug
* fix: docs
---------
Co-authored-by: chenos <chenlinxh@gmail.com>
* feat: docs
* Update your-fisrt-plugin.md
* Update your-fisrt-plugin.md
* chore: application reload
* chore: test
* fix: pm add error
* chore: preset install skip exists plugin
* fix: createIfNotExists
---------
Co-authored-by: chenos <chenlinxh@gmail.com>
Co-authored-by: chareice <chareice@live.com>
Co-authored-by: Zhou <zhou.working@gmail.com>
Co-authored-by: mytharcher <mytharcher@gmail.com>
2023-09-12 22:39:23 +08:00