web-core-tcm 0.0.24 → 0.0.25

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/.editorconfig +7 -0
  2. package/.github/workflows/test.yml +29 -0
  3. package/.prettierrc.json +5 -0
  4. package/.vscode/extensions.json +15 -0
  5. package/.vscode/settings.json +9 -0
  6. package/eslint.config.js +83 -0
  7. package/index.html +24 -0
  8. package/package.json +1 -4
  9. package/postcss.config.js +29 -0
  10. package/public/favicon.ico +0 -0
  11. package/public/icons/favicon-128x128.png +0 -0
  12. package/public/icons/favicon-16x16.png +0 -0
  13. package/public/icons/favicon-32x32.png +0 -0
  14. package/public/icons/favicon-96x96.png +0 -0
  15. package/quasar.config.ts +233 -0
  16. package/src/App.vue +7 -0
  17. package/src/api/algorithm/comprehensiveAlgorithm.ts +20 -0
  18. package/src/api/algorithm/index.ts +50 -0
  19. package/src/api/algorithm/inquiriesAlgorithm.ts +16 -0
  20. package/src/api/algorithm/inspectionsAlgorithm.ts +11 -0
  21. package/src/api/algorithm/lisemsAlgorithm.ts +16 -0
  22. package/src/api/algorithm/pulsationsAlgorithm.ts +8 -0
  23. package/src/api/authorization/alova/apiDefinitions.ts +23 -0
  24. package/src/api/authorization/alova/createApis.ts +114 -0
  25. package/src/api/authorization/alova/globals.d.ts +394 -0
  26. package/src/api/authorization/alova/implement/authorization.ts +14 -0
  27. package/src/api/authorization/alova/implement/index.ts +1 -0
  28. package/src/api/authorization/alova/index.ts +22 -0
  29. package/src/api/authorization/authorization.ts +16 -0
  30. package/src/api/authorization/index.ts +2 -0
  31. package/src/api/check/alova/apiDefinitions.ts +30 -0
  32. package/src/api/check/alova/createApis.ts +114 -0
  33. package/src/api/check/alova/globals.d.ts +1257 -0
  34. package/src/api/check/alova/implement/check.ts +165 -0
  35. package/src/api/check/alova/implement/index.ts +1 -0
  36. package/src/api/check/alova/index.ts +22 -0
  37. package/src/api/check/check.ts +217 -0
  38. package/src/api/check/index.ts +2 -0
  39. package/src/api/config/alova/index.ts +71 -0
  40. package/src/api/config/index.ts +132 -0
  41. package/src/api/device/device.js +58 -0
  42. package/src/api/doctor/alova/apiDefinitions.ts +28 -0
  43. package/src/api/doctor/alova/createApis.ts +114 -0
  44. package/src/api/doctor/alova/globals.d.ts +559 -0
  45. package/src/api/doctor/alova/implement/doctor.ts +51 -0
  46. package/src/api/doctor/alova/implement/index.ts +1 -0
  47. package/src/api/doctor/alova/index.ts +23 -0
  48. package/src/api/doctor/doctor.ts +53 -0
  49. package/src/api/doctor/index.ts +2 -0
  50. package/src/api/index.ts +12 -0
  51. package/src/api/metric/implement/index.ts +1 -0
  52. package/src/api/metric/implement/metric.ts +108 -0
  53. package/src/api/metric/index.ts +2 -0
  54. package/src/api/metric/metric.ts +114 -0
  55. package/src/api/oauth/alova/apiDefinitions.ts +26 -0
  56. package/src/api/oauth/alova/createApis.ts +114 -0
  57. package/src/api/oauth/alova/globals.d.ts +460 -0
  58. package/src/api/oauth/alova/implement/index.ts +1 -0
  59. package/src/api/oauth/alova/implement/oauth.ts +24 -0
  60. package/src/api/oauth/alova/index.ts +21 -0
  61. package/src/api/oauth/index.ts +2 -0
  62. package/src/api/oauth/oauth.ts +19 -0
  63. package/src/api/outpatient/alova/apiDefinitions.ts +27 -0
  64. package/src/api/outpatient/alova/createApis.ts +114 -0
  65. package/src/api/outpatient/alova/globals.d.ts +685 -0
  66. package/src/api/outpatient/alova/implement/index.ts +1 -0
  67. package/src/api/outpatient/alova/implement/outpatient.ts +91 -0
  68. package/src/api/outpatient/alova/index.ts +22 -0
  69. package/src/api/outpatient/index.ts +2 -0
  70. package/src/api/outpatient/outpatient.ts +67 -0
  71. package/src/api/patient/alova/apiDefinitions.ts +41 -0
  72. package/src/api/patient/alova/createApis.ts +114 -0
  73. package/src/api/patient/alova/globals.d.ts +1690 -0
  74. package/src/api/patient/alova/implement/index.ts +2 -0
  75. package/src/api/patient/alova/implement/meta.ts +517 -0
  76. package/src/api/patient/alova/implement/patient.ts +99 -0
  77. package/src/api/patient/alova/index.ts +22 -0
  78. package/src/api/patient/core.ts +133 -0
  79. package/src/api/patient/index.ts +4 -0
  80. package/src/api/patient/meta.ts +570 -0
  81. package/src/api/patient/patient.ts +98 -0
  82. package/src/api/prescription/alova/apiDefinitions.ts +29 -0
  83. package/src/api/prescription/alova/createApis.ts +114 -0
  84. package/src/api/prescription/alova/globals.d.ts +968 -0
  85. package/src/api/prescription/alova/implement/herbal.ts +68 -0
  86. package/src/api/prescription/alova/implement/index.ts +2 -0
  87. package/src/api/prescription/alova/implement/prescription.ts +62 -0
  88. package/src/api/prescription/alova/index.ts +22 -0
  89. package/src/api/prescription/herbal.ts +51 -0
  90. package/src/api/prescription/index.ts +3 -0
  91. package/src/api/prescription/prescription.ts +76 -0
  92. package/src/api/scientist/alova/apiDefinitions.ts +27 -0
  93. package/src/api/scientist/alova/createApis.ts +114 -0
  94. package/src/api/scientist/alova/globals.d.ts +447 -0
  95. package/src/api/scientist/alova/implement/index.ts +1 -0
  96. package/src/api/scientist/alova/implement/scientist.ts +40 -0
  97. package/src/api/scientist/alova/index.ts +24 -0
  98. package/src/api/scientist/index.ts +2 -0
  99. package/src/api/scientist/scientist.ts +49 -0
  100. package/src/assets/quasar-logo-vertical.svg +15 -0
  101. package/src/boot/.gitkeep +0 -0
  102. package/src/components/ExampleComponent.vue +37 -0
  103. package/src/components/models.ts +8 -0
  104. package/src/css/app.scss +1 -0
  105. package/src/css/quasar.variables.scss +25 -0
  106. package/src/env.d.ts +7 -0
  107. package/src/index.ts +3 -0
  108. package/src/layouts/UserLayout.vue +108 -0
  109. package/src/pages/LoginPage.vue +29 -0
  110. package/src/proto/Images.proto +7 -0
  111. package/src/proto/WaveMap.proto +10 -0
  112. package/src/proto/index.ts +2 -0
  113. package/src/proto/types/Images_pb.ts +48 -0
  114. package/src/proto/types/WaveMap_pb.ts +59 -0
  115. package/src/router/index.ts +37 -0
  116. package/src/router/routes.ts +14 -0
  117. package/src/util/RichTextUtil.ts +5 -0
  118. package/src/util/datetime.ts +43 -0
  119. package/src/util/export.ts +46 -0
  120. package/src/util/helper.ts +159 -0
  121. package/src/util/image.ts +28 -0
  122. package/src/util/number.ts +146 -0
  123. package/src/util/s256.js +27 -0
  124. package/src/util/secret.ts +60 -0
  125. package/src/util/string.ts +121 -0
  126. package/tsconfig.json +7 -0
@@ -0,0 +1,68 @@
1
+ import { Herbal } from 'src/api/prescription/herbal';
2
+ import type { Doctor } from 'src/api/doctor/doctor';
3
+
4
+ export class AlovaHerbal extends Herbal {
5
+ static override query(
6
+ page: number = 0,
7
+ pageSize: number = 9999999,
8
+ owner?: Doctor,
9
+ name?: string,
10
+ price?: number,
11
+ ) {
12
+ const ownerState = owner?.state();
13
+ return prescriptionApi.herbalRestful
14
+ .queryHerbalState({
15
+ data: {
16
+ ...(ownerState && { ownerState }),
17
+ ...(name && { name }),
18
+ ...(price !== undefined && { price }),
19
+ page: page,
20
+ pageSize,
21
+ },
22
+ async transform(res) {
23
+ return {
24
+ data: (await Promise.all(
25
+ res.content.map((item) => new AlovaHerbal().of(item)),
26
+ )) as Herbal[],
27
+ total: res.totalElements,
28
+ page: res.number,
29
+ pageSize: res.size,
30
+ pageCount: res.totalPages,
31
+ isLastPage: res.last,
32
+ };
33
+ },
34
+ })
35
+ .send();
36
+ }
37
+ async put() {
38
+ return this.of(
39
+ await prescriptionApi.herbalRestful
40
+ .putHerbalState({
41
+ pathParams: {
42
+ id: this.id,
43
+ },
44
+ data: this.state(),
45
+ })
46
+ .send(true),
47
+ );
48
+ }
49
+ async post() {
50
+ return this.of(
51
+ await prescriptionApi.herbalRestful
52
+ .postHerbalState({
53
+ data: this.state(),
54
+ })
55
+ .send(true),
56
+ );
57
+ }
58
+ async delete() {
59
+ void prescriptionApi.herbalRestful
60
+ .deleteHerbalState({
61
+ pathParams: {
62
+ id: this.id,
63
+ },
64
+ })
65
+ .send();
66
+ return Promise.resolve();
67
+ }
68
+ }
@@ -0,0 +1,2 @@
1
+ export * from './herbal';
2
+ export * from './prescription';
@@ -0,0 +1,62 @@
1
+ import { Prescription } from 'src/api/prescription/prescription';
2
+ import type { Doctor } from 'src/api/doctor/doctor';
3
+
4
+ export class AlovaPrescription extends Prescription {
5
+ static override query(
6
+ page: number = 0,
7
+ pageSize: number = 9999999,
8
+ owner?: Doctor,
9
+ name?: string,
10
+ ) {
11
+ const ownerState = owner?.state();
12
+ return prescriptionApi.prescriptionRestful
13
+ .queryPrescriptionState({
14
+ data: {
15
+ ...(ownerState && { ownerState }),
16
+ ...(name && { name }),
17
+ page: page,
18
+ pageSize,
19
+ },
20
+ async transform(res) {
21
+ return {
22
+ data: await Promise.all(res.content.map((item) => new AlovaPrescription().of(item))),
23
+ total: res.totalElements,
24
+ page: res.number,
25
+ pageSize: res.size,
26
+ pageCount: res.totalPages,
27
+ isLastPage: res.last,
28
+ };
29
+ },
30
+ })
31
+ .send();
32
+ }
33
+ //put
34
+ override async put() {
35
+ return this.of(
36
+ await prescriptionApi.prescriptionRestful
37
+ .putPrescriptionState({ pathParams: { id: this.id }, data: this.state() })
38
+ .send(),
39
+ );
40
+ }
41
+ //post
42
+ override async post() {
43
+ return this.of(
44
+ await prescriptionApi.prescriptionRestful
45
+ .postPrescriptionState({
46
+ data: this.state(),
47
+ })
48
+ .send(),
49
+ );
50
+ }
51
+ //delete
52
+ override async delete() {
53
+ await prescriptionApi.prescriptionRestful
54
+ .deletePrescriptionState({
55
+ pathParams: {
56
+ id: this.id,
57
+ },
58
+ })
59
+ .send();
60
+ return this;
61
+ }
62
+ }
@@ -0,0 +1,22 @@
1
+ import { createAlova } from 'alova';
2
+ import fetchAdapter from 'alova/fetch';
3
+ import { createApis, withConfigType, mountApis } from './createApis';
4
+ import { onAuthRequired, responded } from 'src/api/config/alova';
5
+ import { getServiceEndpoint, ServiceType } from 'src/api/config';
6
+
7
+ export const alovaInstance = createAlova({
8
+ baseURL: getServiceEndpoint(ServiceType.Prescription),
9
+ requestAdapter: fetchAdapter(),
10
+ beforeRequest: onAuthRequired(() => {}),
11
+ cacheFor: null,
12
+ responded: responded,
13
+ });
14
+
15
+ export const $$userConfigMap = withConfigType({});
16
+
17
+ const Apis = createApis(alovaInstance, $$userConfigMap);
18
+
19
+ mountApis(Apis);
20
+
21
+ export default Apis;
22
+ export * from './implement';
@@ -0,0 +1,51 @@
1
+ import type { Page } from 'src/api/patient/core';
2
+ import { NetworkObject } from 'src/api/patient/core';
3
+ import type { HerbalState } from 'src/api/prescription/alova/globals';
4
+ import type { IBuilder } from 'builder-pattern';
5
+ import { Builder } from 'builder-pattern';
6
+ import { Doctor } from 'src/api/doctor/doctor';
7
+
8
+ export abstract class Herbal extends NetworkObject {
9
+ static override builder(): IBuilder<Herbal> {
10
+ return Builder(this._default) as unknown as IBuilder<Herbal>;
11
+ }
12
+ static override default(): typeof Herbal {
13
+ return this._default as unknown as typeof Herbal;
14
+ }
15
+ id: string = '';
16
+ name: string = '';
17
+ price: number = 0;
18
+ weight: number = 0;
19
+ owner: Doctor = Doctor.builder().build();
20
+
21
+ override async of(json: HerbalState) {
22
+ if (json.id != undefined) this.id = json.id;
23
+ if (json.name != undefined) this.name = json.name;
24
+ if (json.price != undefined) this.price = json.price;
25
+ if (json.weight != undefined) this.weight = json.weight;
26
+ if (json.ownerState != undefined)
27
+ this.owner = await Doctor.builder().build().of(json.ownerState);
28
+ return this;
29
+ }
30
+ override state() {
31
+ return {
32
+ id: this.id,
33
+ name: this.name,
34
+ price: this.price,
35
+ weight: this.weight,
36
+ ownerState: this.owner.state(),
37
+ } as HerbalState;
38
+ }
39
+ static query(
40
+ page: number = 0,
41
+ pageSize: number = 9999999,
42
+ owner?: Doctor,
43
+ name?: string,
44
+ price?: number,
45
+ ): Promise<Page<Herbal>> {
46
+ return Herbal.default().query(page, pageSize, owner, name, price);
47
+ }
48
+ abstract put(): Promise<this>;
49
+ abstract post(): Promise<this>;
50
+ abstract delete(): Promise<void>;
51
+ }
@@ -0,0 +1,3 @@
1
+ export * from './herbal';
2
+ export * from './prescription';
3
+ export * from './alova';
@@ -0,0 +1,76 @@
1
+ import { Herbal } from 'src/api/prescription/herbal';
2
+ import type { PrescriptionState } from 'src/api/prescription/alova/globals';
3
+ import type { Page } from 'src/api/patient/core';
4
+ import { NetworkObject } from 'src/api/patient/core';
5
+ import type { IBuilder } from 'builder-pattern';
6
+ import { Builder } from 'builder-pattern';
7
+ import { Doctor } from 'src/api/doctor/doctor';
8
+
9
+ export abstract class Prescription extends NetworkObject {
10
+ static override builder(): IBuilder<Prescription> {
11
+ return Builder(this._default) as unknown as IBuilder<Prescription>;
12
+ }
13
+ static override default(): typeof Prescription {
14
+ return this._default as unknown as typeof Prescription;
15
+ }
16
+ id: string = '';
17
+ createdTimestamp: string = '';
18
+ updatedTimestamp: string = '';
19
+ name: string = '匿名药方';
20
+ owner: Doctor = Doctor.builder().build();
21
+ totalAmount: number = 0;
22
+ useAmount: number = 0;
23
+ craftType: string = '自煎';
24
+ useWay: string[] = ['煎服'];
25
+ useTime: string[] = ['早上', '晚上'];
26
+ herbals: Herbal[] = [];
27
+ override async of(json: PrescriptionState) {
28
+ if (json.id != undefined) this.id = json.id;
29
+ if (json.createdTimestamp != undefined) this.createdTimestamp = json.createdTimestamp;
30
+ if (json.updatedTimestamp != undefined) this.updatedTimestamp = json.updatedTimestamp;
31
+ if (json.name != undefined) this.name = json.name;
32
+ if (json.ownerState != undefined)
33
+ this.owner = await Doctor.builder().build().of(json.ownerState);
34
+ if (json.totalAmount != undefined) this.totalAmount = json.totalAmount;
35
+ if (json.useAmount != undefined) this.useAmount = json.useAmount;
36
+ if (json.craftType != undefined) this.craftType = json.craftType;
37
+ if (json.useWay != undefined) this.useWay = json.useWay;
38
+ if (json.useTime != undefined) this.useTime = json.useTime;
39
+ if (json.herbalsState != undefined) {
40
+ this.herbals = await Promise.all(
41
+ json.herbalsState.map((item) => Herbal.builder().build().of(item)),
42
+ );
43
+ }
44
+ return Promise.resolve(this);
45
+ }
46
+ override state(): PrescriptionState {
47
+ return {
48
+ id: this.id,
49
+ createdTimestamp: this.createdTimestamp,
50
+ updatedTimestamp: this.updatedTimestamp,
51
+ name: this.name,
52
+ ownerState: this.owner.state(),
53
+ totalAmount: this.totalAmount,
54
+ useAmount: this.useAmount,
55
+ craftType: this.craftType,
56
+ useWay: this.useWay,
57
+ useTime: this.useTime,
58
+ herbalsState: this.herbals.map((herbal) => herbal.state()),
59
+ } as PrescriptionState;
60
+ }
61
+ static query(
62
+ page: number = 0,
63
+ pageSize: number = 9999999,
64
+ owner?: Doctor,
65
+ name?: string,
66
+ ): Promise<Page<Prescription>> {
67
+ return Prescription.default().query(page, pageSize, owner, name);
68
+ }
69
+
70
+ //put
71
+ abstract put(): Promise<this>;
72
+ //post
73
+ abstract post(): Promise<this>;
74
+ //delete
75
+ abstract delete(): Promise<this>;
76
+ }
@@ -0,0 +1,27 @@
1
+ /// <reference types='./globals.d.ts' />
2
+ /* tslint:disable */
3
+
4
+ /**
5
+ * OpenAPI definition - version v0
6
+ *
7
+ *
8
+ *
9
+ * OpenAPI version: 3.1.0
10
+ *
11
+ *
12
+ * NOTE: This file is auto generated by the alova's vscode plugin.
13
+ *
14
+ * https://alova.js.org/devtools/vscode
15
+ *
16
+ * **Do not edit the file manually.**
17
+ */
18
+ export default {
19
+ 'scientistStateRestful.getScientistState': ['GET', '/科研/服务/{id}'],
20
+ 'scientistStateRestful.putScientistState': ['PUT', '/科研/服务/{id}'],
21
+ 'scientistStateRestful.deleteScientistState': ['DELETE', '/科研/服务/{id}'],
22
+ 'scientistStateRestful.queryScientistState': ['GET', '/科研/服务'],
23
+ 'scientistStateRestful.postScientistState': ['POST', '/科研/服务'],
24
+ 'scientistStateRestful.datesOfScientist': ['GET', '/科研/服务/统计/科研/日期'],
25
+ 'scientistStateRestful.totalOfScientist': ['GET', '/科研/服务/统计/科研/总数'],
26
+ 'scientistStateRestful.todayOfScientistByToday': ['GET', '/科研/服务/统计/科研/今日'],
27
+ };
@@ -0,0 +1,114 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ /**
4
+ * OpenAPI definition - version v0
5
+ *
6
+ *
7
+ *
8
+ * OpenAPI version: 3.1.0
9
+ *
10
+ *
11
+ * NOTE: This file is auto generated by the alova's vscode plugin.
12
+ *
13
+ * https://alova.js.org/devtools/vscode
14
+ *
15
+ * **Do not edit the file manually.**
16
+ */
17
+ import type { Alova, MethodType, AlovaGenerics, AlovaMethodCreateConfig } from 'alova';
18
+ import { Method } from 'alova';
19
+ import apiDefinitions from './apiDefinitions';
20
+
21
+ const cache = Object.create(null);
22
+ const createFunctionalProxy = (
23
+ array: (string | symbol)[],
24
+ alovaInstance: Alova<AlovaGenerics>,
25
+ configMap: any,
26
+ ) => {
27
+ const apiPathKey = array.join('.') as keyof typeof apiDefinitions;
28
+ if (cache[apiPathKey]) {
29
+ return cache[apiPathKey];
30
+ }
31
+ // create a new proxy instance
32
+ const proxy = new Proxy(function () {}, {
33
+ get(_, property) {
34
+ // record the target property, so that it can get the completed accessing paths
35
+ const newArray = [...array, property];
36
+ // always return a new proxy to continue recording accessing paths.
37
+ return createFunctionalProxy(newArray, alovaInstance, configMap);
38
+ },
39
+ apply(_, __, [config]) {
40
+ const apiItem = apiDefinitions[apiPathKey];
41
+ if (!apiItem) {
42
+ throw new Error(`the api path of \`${apiPathKey}\` is not found`);
43
+ }
44
+ const mergedConfig = {
45
+ ...configMap[apiPathKey],
46
+ ...config,
47
+ };
48
+ const [method, url] = apiItem;
49
+ const pathParams = mergedConfig.pathParams;
50
+ const urlReplaced = url!.replace(/\{([^}]+)\}/g, (_, key) => {
51
+ const pathParam = pathParams[key];
52
+ return pathParam;
53
+ });
54
+ delete mergedConfig.pathParams;
55
+ let data = mergedConfig.data;
56
+ if (
57
+ Object.prototype.toString.call(data) === '[object Object]' &&
58
+ typeof FormData !== 'undefined'
59
+ ) {
60
+ let hasBlobData = false;
61
+ const formData = new FormData();
62
+ for (const key in data) {
63
+ formData.append(key, data[key]);
64
+ if (data[key] instanceof Blob) {
65
+ hasBlobData = true;
66
+ }
67
+ }
68
+ data = hasBlobData ? formData : data;
69
+ }
70
+ return new Method(
71
+ method!.toUpperCase() as MethodType,
72
+ alovaInstance,
73
+ urlReplaced,
74
+ mergedConfig,
75
+ data,
76
+ );
77
+ },
78
+ });
79
+ cache[apiPathKey] = proxy;
80
+ return proxy;
81
+ };
82
+
83
+ export const createApis = (alovaInstance: Alova<AlovaGenerics>, configMap: any) => {
84
+ const Apis = new Proxy({} as scientistApi, {
85
+ get(_, property) {
86
+ return createFunctionalProxy([property], alovaInstance, configMap);
87
+ },
88
+ });
89
+ return Apis;
90
+ };
91
+ export const mountApis = (Apis: scientistApi) => {
92
+ // define global variable `Apis`
93
+ (globalThis as any).scientistApi = Apis;
94
+ };
95
+ type MethodConfig<T> = AlovaMethodCreateConfig<
96
+ (typeof import('./index'))['alovaInstance'] extends Alova<infer AG> ? AG : any,
97
+ any,
98
+ T
99
+ >;
100
+ type APISofParameters<Tag extends string, Url extends string> = Tag extends keyof scientistApi
101
+ ? Url extends keyof scientistApi[Tag]
102
+ ? scientistApi[Tag][Url] extends (...args: any) => any
103
+ ? Parameters<scientistApi[Tag][Url]>
104
+ : any
105
+ : any
106
+ : any;
107
+ type MethodsConfigMap = {
108
+ [P in keyof typeof import('./apiDefinitions').default]?: MethodConfig<
109
+ P extends `${infer Tag}.${infer Url}`
110
+ ? Parameters<NonNullable<APISofParameters<Tag, Url>[0]>['transform']>[0]
111
+ : any
112
+ >;
113
+ };
114
+ export const withConfigType = <Config extends MethodsConfigMap>(config: Config) => config;