@cgboiler/biz-mobile 1.17.16 → 1.17.17

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.
@@ -21,8 +21,13 @@ var __async = (__this, __arguments, generator) => {
21
21
  import { createVNode as _createVNode, Fragment as _Fragment, createTextVNode as _createTextVNode } from "vue";
22
22
  import "./_atomic.css";
23
23
  import { ref, computed, watch, watchEffect, nextTick } from "vue";
24
- import { Empty, List, Image } from "vant";
25
- function useSearch(props, api) {
24
+ import { Empty, Image } from "vant";
25
+ const isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
26
+ function useSearch({
27
+ props,
28
+ api,
29
+ isSearchFocus
30
+ }) {
26
31
  const {
27
32
  orgSearchList,
28
33
  getOrgList,
@@ -92,11 +97,11 @@ function useSearch(props, api) {
92
97
  handleSelect
93
98
  }) => {
94
99
  return _createVNode("div", {
95
- "class": "absolute top-0 left-0 right-0 bottom-0 bg-[#fff] z-1"
100
+ "class": "absolute top-0 left-0 right-0 bottom-0 bg-[#fff] z-1 overflow-auto"
96
101
  }, [filterRecentSelectedHistory.value.length ? _createVNode(_Fragment, null, [_createVNode("p", {
97
102
  "class": "text-[14px] text-[#333] font-bold px-[16px] py-[12px] border-b border-[#eee]"
98
103
  }, [_createTextVNode("\u6700\u8FD1\u9009\u62E9")]), _createVNode("div", {
99
- "class": "recent-list-wrap flex-1 overflow-auto py-[8px]"
104
+ "class": "recent-list-wrap flex-1 py-[8px]"
100
105
  }, [filterRecentSelectedHistory.value.map((historyItem) => _createVNode("div", {
101
106
  "key": historyItem.id,
102
107
  "onClick": () => handleHistorySelect(historyItem),
@@ -104,22 +109,22 @@ function useSearch(props, api) {
104
109
  }, [_createVNode("span", null, [historyItem.selectedUsers.map((user) => highlightText(getUserInfoById(user.id), keyword.value)).reduce((prev, curr) => [prev, "\uFF0C", curr])])]))])]) : "", filteredOrgList.value.length ? _createVNode(_Fragment, null, [" ", _createVNode("p", {
105
110
  "class": "text-[14px] text-[#333] font-bold px-[16px] py-[12px] border-b border-[#eee]"
106
111
  }, [_createTextVNode("\u901A\u8BAF\u5F55")]), _createVNode("div", {
107
- "class": "feed-list-wrap"
112
+ "class": "px-16px"
108
113
  }, [filteredOrgList.value.length === 0 ? _createVNode(Empty, {
109
114
  "description": "\u672A\u627E\u5230\u76F8\u5173\u4EBA\u5458"
110
- }, null) : _createVNode(List, null, {
111
- default: () => [filteredOrgList.value.map((item) => _createVNode("div", {
112
- "class": ["org-item", isSelected(item) ? "selected" : ""],
113
- "onClick": () => handleSelect(item)
114
- }, [_createVNode(Image, {
115
- "class": "org-avatar",
116
- "src": item.avatar
117
- }, null), _createVNode("div", {
118
- "class": "org-name"
119
- }, [item.name, _createVNode("span", {
120
- "class": "org-item-select-icon"
121
- }, [_createTextVNode("\u2713")])])]))]
122
- })])]) : ""]);
115
+ }, null) : _createVNode(_Fragment, null, [filteredOrgList.value.map((item) => _createVNode("div", {
116
+ "class": ["org-item", isSelected(item) ? "selected" : ""],
117
+ "onClick": () => handleSelect(item)
118
+ }, [_createVNode(Image, {
119
+ "class": "org-avatar",
120
+ "src": item.avatar
121
+ }, null), _createVNode("div", {
122
+ "class": "org-name"
123
+ }, [item.name, _createVNode("span", {
124
+ "class": "org-item-select-icon"
125
+ }, [_createTextVNode("\u2713")])])]))])])]) : "", isSearchFocus.value && isMobile ? _createVNode("div", {
126
+ "class": "h-[300px]"
127
+ }, null) : ""]);
123
128
  };
124
129
  return {
125
130
  keyword,
@@ -1,45 +1,45 @@
1
- :root:root {
2
- --van-action-sheet-max-height: 100%;
3
- }
4
- .project-list {
5
- height: 85vh;
6
- display: flex;
7
- flex-direction: column;
8
-
9
- .search-bar {
10
- position: sticky;
11
- top: 0;
12
- z-index: 1;
13
- }
14
-
15
- .van-list {
16
- flex: 1;
17
- overflow-y: auto;
18
- padding: 0 16px;
19
- }
20
-
21
- .project-item {
22
- padding: 12px 0;
23
- border-bottom: 1px solid #eee;
24
- cursor: pointer;
25
-
26
- &.selected {
27
- color: var(--van-primary-color);
28
- }
29
-
30
- .project-name {
31
- font-size: 14px;
32
-
33
- .highlight {
34
- color: var(--van-primary-color);
35
- font-weight: bold;
36
- padding: 0 2px;
37
- border-radius: 2px;
38
- }
39
- }
40
-
41
- &:last-child {
42
- border-bottom: none;
43
- }
44
- }
45
- }
1
+ :root:root {
2
+ --van-action-sheet-max-height: 100%;
3
+ }
4
+ .project-list {
5
+ height: 85vh;
6
+ display: flex;
7
+ flex-direction: column;
8
+
9
+ .search-bar {
10
+ position: sticky;
11
+ top: 0;
12
+ z-index: 1;
13
+ }
14
+
15
+ .van-list {
16
+ flex: 1;
17
+ overflow-y: auto;
18
+ padding: 0 16px;
19
+ }
20
+
21
+ .project-item {
22
+ padding: 12px 0;
23
+ border-bottom: 1px solid #eee;
24
+ cursor: pointer;
25
+
26
+ &.selected {
27
+ color: var(--van-primary-color);
28
+ }
29
+
30
+ .project-name {
31
+ font-size: 14px;
32
+
33
+ .highlight {
34
+ color: var(--van-primary-color);
35
+ font-weight: bold;
36
+ padding: 0 2px;
37
+ border-radius: 2px;
38
+ }
39
+ }
40
+
41
+ &:last-child {
42
+ border-bottom: none;
43
+ }
44
+ }
45
+ }
@@ -1,12 +1,9 @@
1
1
  import { createVNode as _createVNode } from "vue";
2
2
  import "./_atomic.css";
3
- import { defineComponent, onMounted, onBeforeUnmount, ref, watch } from "vue";
4
- import StarterKit from "@tiptap/starter-kit";
5
- import { Editor, EditorContent } from "@tiptap/vue-3";
6
- import { TableKit } from "@tiptap/extension-table";
7
- import { Placeholder } from "@tiptap/extensions";
3
+ import { defineComponent } from "vue";
8
4
  import { richTextEditorProps } from "./types";
9
5
  import "./index.css";
6
+ import { RichTextEditor } from "@cgboiler/biz-basic";
10
7
  var stdin_default = defineComponent({
11
8
  name: "RichTextEditor",
12
9
  props: richTextEditorProps,
@@ -14,62 +11,10 @@ var stdin_default = defineComponent({
14
11
  setup(props, {
15
12
  emit
16
13
  }) {
17
- const editor = ref();
18
- const addTableRow = () => {
19
- var _a;
20
- (_a = editor.value) == null ? void 0 : _a.chain().focus().addRowAfter().run();
21
- };
22
- const deleteTableRow = () => {
23
- var _a;
24
- (_a = editor.value) == null ? void 0 : _a.chain().focus().deleteRow().run();
25
- };
26
- const setTextFormat = (level) => {
27
- var _a, _b;
28
- if (level === 0) {
29
- (_a = editor.value) == null ? void 0 : _a.chain().focus().setParagraph().run();
30
- } else {
31
- (_b = editor.value) == null ? void 0 : _b.chain().focus().toggleHeading({
32
- level
33
- }).run();
34
- }
35
- };
36
- const showTableButtons = ref(false);
37
- onMounted(() => {
38
- editor.value = new Editor({
39
- extensions: [StarterKit, TableKit.configure({
40
- table: {
41
- resizable: true
42
- }
43
- }), Placeholder.configure({
44
- placeholder: props.placeholder
45
- })],
46
- content: props.modelValue,
47
- onUpdate: ({
48
- editor: editor2
49
- }) => {
50
- const html = editor2.getHTML();
51
- emit("update:modelValue", html);
52
- },
53
- onSelectionUpdate: ({
54
- editor: editor2
55
- }) => {
56
- showTableButtons.value = editor2.isActive("table");
57
- }
58
- });
59
- });
60
- watch(() => props.modelValue, (newValue) => {
61
- var _a, _b;
62
- if (((_a = editor.value) == null ? void 0 : _a.getHTML()) !== newValue) {
63
- (_b = editor.value) == null ? void 0 : _b.commands.setContent(newValue || "");
64
- }
65
- });
66
- onBeforeUnmount(() => {
67
- var _a;
68
- (_a = editor.value) == null ? void 0 : _a.destroy();
69
- });
70
- return () => _createVNode(EditorContent, {
71
- "class": "ProseMirror",
72
- "editor": editor.value
14
+ return () => _createVNode(RichTextEditor, {
15
+ "modelValue": props.modelValue,
16
+ "onUpdate:modelValue": (val) => emit("update:modelValue", val),
17
+ "placeholder": props.placeholder
73
18
  }, null);
74
19
  }
75
20
  });
@@ -30,5 +30,3 @@
30
30
  flex-wrap: wrap;
31
31
  }
32
32
 
33
- /* layer: default */
34
- .cgx-atm .table{display:table;}
@@ -1,191 +1,191 @@
1
- .ProseMirror {
2
- flex: 1;
3
- overflow: auto;
4
- outline: none;
5
-
6
- line-height: 1.6;
7
- font-size: var(--font-base);
8
- --white: #fff;
9
- --black: #2e2b29;
10
- --black-contrast: #110f0e;
11
- --gray-1: rgba(61, 37, 20, 0.05);
12
- --gray-2: rgba(61, 37, 20, 0.08);
13
- --gray-3: rgba(61, 37, 20, 0.12);
14
- --gray-4: rgba(53, 38, 28, 0.3);
15
- --gray-5: rgba(28, 25, 23, 0.6);
16
- --green: #22c55e;
17
- --purple: #6a00f5;
18
- --purple-contrast: #5800cc;
19
- --purple-light: rgba(88, 5, 255, 0.05);
20
- --yellow-contrast: #facc15;
21
- --yellow: rgba(250, 204, 21, 0.4);
22
- --yellow-light: #fffae5;
23
- --red: #ff5c33;
24
- --red-light: #ffebe5;
25
- --shadow: 0px 12px 33px 0px rgba(0, 0, 0, 0.06), 0px 3.618px 9.949px 0px rgba(0, 0, 0, 0.04);
26
- :first-child {
27
- margin-top: 0;
28
- }
29
-
30
- /* List styles */
31
- ul,
32
- ol {
33
- padding: 0 1rem;
34
- margin: 1.25rem 1rem 1.25rem 0.4rem;
35
-
36
- li p {
37
- margin-top: 0.25em;
38
- margin-bottom: 0.25em;
39
- }
40
- }
41
-
42
- /* Heading styles */
43
- h1,
44
- h2,
45
- h3,
46
- h4,
47
- h5,
48
- h6 {
49
- line-height: 1.1;
50
- margin-top: 2.5rem;
51
- text-wrap: pretty;
52
- }
53
-
54
- h1,
55
- h2 {
56
- margin-top: 3.5rem;
57
- margin-bottom: 1.5rem;
58
- }
59
-
60
- h1 {
61
- font-size: 1.4rem;
62
- }
63
-
64
- h2 {
65
- font-size: 1.2rem;
66
- }
67
-
68
- h3 {
69
- font-size: 1.1rem;
70
- }
71
-
72
- h4,
73
- h5,
74
- h6 {
75
- font-size: 1rem;
76
- }
77
-
78
- /* Code and preformatted text styles */
79
- code {
80
- background-color: var(--purple-light);
81
- border-radius: 0.4rem;
82
- color: var(--black);
83
- font-size: 0.85rem;
84
- padding: 0.25em 0.3em;
85
- }
86
-
87
- pre {
88
- background: var(--black);
89
- border-radius: 0.5rem;
90
- color: var(--white);
91
- font-family: 'JetBrainsMono', monospace;
92
- margin: 1.5rem 0;
93
- padding: 0.75rem 1rem;
94
-
95
- code {
96
- background: none;
97
- color: inherit;
98
- font-size: 0.8rem;
99
- padding: 0;
100
- }
101
- }
102
-
103
- blockquote {
104
- border-left: 3px solid var(--gray-3);
105
- margin: 1.5rem 0;
106
- padding-left: 1rem;
107
- }
108
-
109
- hr {
110
- border: none;
111
- border-top: 1px solid var(--gray-2);
112
- margin: 2rem 0;
113
- }
114
-
115
- /* Placeholder (at the top) */
116
- p.is-editor-empty:first-child::before {
117
- color: var(--gray-4);
118
- content: attr(data-placeholder);
119
- float: left;
120
- height: 0;
121
- pointer-events: none;
122
- }
123
-
124
- .is-empty::before {
125
- color: var(--gray-4);
126
- content: attr(data-placeholder);
127
- float: left;
128
- height: 0;
129
- pointer-events: none;
130
- }
131
- /* Table-specific styling */
132
- table {
133
- border-collapse: collapse;
134
- margin: 0;
135
- overflow: hidden;
136
- table-layout: fixed;
137
- width: 100%;
138
-
139
- td,
140
- th {
141
- border: 1px solid var(--gray-3);
142
- box-sizing: border-box;
143
- min-width: 1em;
144
- padding: 6px 8px;
145
- position: relative;
146
- vertical-align: top;
147
-
148
- > * {
149
- margin-bottom: 0;
150
- }
151
- }
152
-
153
- th {
154
- background-color: var(--gray-1);
155
- font-weight: bold;
156
- text-align: left;
157
- }
158
-
159
- .selectedCell:after {
160
- background: var(--gray-2);
161
- content: '';
162
- left: 0;
163
- right: 0;
164
- top: 0;
165
- bottom: 0;
166
- pointer-events: none;
167
- position: absolute;
168
- z-index: 2;
169
- }
170
-
171
- .column-resize-handle {
172
- background-color: var(--purple);
173
- bottom: -2px;
174
- pointer-events: none;
175
- position: absolute;
176
- right: -2px;
177
- top: 0;
178
- width: 4px;
179
- }
180
- }
181
-
182
- .tableWrapper {
183
- margin: 1.5rem 0;
184
- overflow-x: auto;
185
- }
186
-
187
- &.resize-cursor {
188
- cursor: ew-resize;
189
- cursor: col-resize;
190
- }
191
- }
1
+ .ProseMirror {
2
+ flex: 1;
3
+ overflow: auto;
4
+ outline: none;
5
+
6
+ line-height: 1.6;
7
+ font-size: var(--font-base);
8
+ --white: #fff;
9
+ --black: #2e2b29;
10
+ --black-contrast: #110f0e;
11
+ --gray-1: rgba(61, 37, 20, 0.05);
12
+ --gray-2: rgba(61, 37, 20, 0.08);
13
+ --gray-3: rgba(61, 37, 20, 0.12);
14
+ --gray-4: rgba(53, 38, 28, 0.3);
15
+ --gray-5: rgba(28, 25, 23, 0.6);
16
+ --green: #22c55e;
17
+ --purple: #6a00f5;
18
+ --purple-contrast: #5800cc;
19
+ --purple-light: rgba(88, 5, 255, 0.05);
20
+ --yellow-contrast: #facc15;
21
+ --yellow: rgba(250, 204, 21, 0.4);
22
+ --yellow-light: #fffae5;
23
+ --red: #ff5c33;
24
+ --red-light: #ffebe5;
25
+ --shadow: 0px 12px 33px 0px rgba(0, 0, 0, 0.06), 0px 3.618px 9.949px 0px rgba(0, 0, 0, 0.04);
26
+ :first-child {
27
+ margin-top: 0;
28
+ }
29
+
30
+ /* List styles */
31
+ ul,
32
+ ol {
33
+ padding: 0 1rem;
34
+ margin: 1.25rem 1rem 1.25rem 0.4rem;
35
+
36
+ li p {
37
+ margin-top: 0.25em;
38
+ margin-bottom: 0.25em;
39
+ }
40
+ }
41
+
42
+ /* Heading styles */
43
+ h1,
44
+ h2,
45
+ h3,
46
+ h4,
47
+ h5,
48
+ h6 {
49
+ line-height: 1.1;
50
+ margin-top: 2.5rem;
51
+ text-wrap: pretty;
52
+ }
53
+
54
+ h1,
55
+ h2 {
56
+ margin-top: 3.5rem;
57
+ margin-bottom: 1.5rem;
58
+ }
59
+
60
+ h1 {
61
+ font-size: 1.4rem;
62
+ }
63
+
64
+ h2 {
65
+ font-size: 1.2rem;
66
+ }
67
+
68
+ h3 {
69
+ font-size: 1.1rem;
70
+ }
71
+
72
+ h4,
73
+ h5,
74
+ h6 {
75
+ font-size: 1rem;
76
+ }
77
+
78
+ /* Code and preformatted text styles */
79
+ code {
80
+ background-color: var(--purple-light);
81
+ border-radius: 0.4rem;
82
+ color: var(--black);
83
+ font-size: 0.85rem;
84
+ padding: 0.25em 0.3em;
85
+ }
86
+
87
+ pre {
88
+ background: var(--black);
89
+ border-radius: 0.5rem;
90
+ color: var(--white);
91
+ font-family: 'JetBrainsMono', monospace;
92
+ margin: 1.5rem 0;
93
+ padding: 0.75rem 1rem;
94
+
95
+ code {
96
+ background: none;
97
+ color: inherit;
98
+ font-size: 0.8rem;
99
+ padding: 0;
100
+ }
101
+ }
102
+
103
+ blockquote {
104
+ border-left: 3px solid var(--gray-3);
105
+ margin: 1.5rem 0;
106
+ padding-left: 1rem;
107
+ }
108
+
109
+ hr {
110
+ border: none;
111
+ border-top: 1px solid var(--gray-2);
112
+ margin: 2rem 0;
113
+ }
114
+
115
+ /* Placeholder (at the top) */
116
+ p.is-editor-empty:first-child::before {
117
+ color: var(--gray-4);
118
+ content: attr(data-placeholder);
119
+ float: left;
120
+ height: 0;
121
+ pointer-events: none;
122
+ }
123
+
124
+ .is-empty::before {
125
+ color: var(--gray-4);
126
+ content: attr(data-placeholder);
127
+ float: left;
128
+ height: 0;
129
+ pointer-events: none;
130
+ }
131
+ /* Table-specific styling */
132
+ table {
133
+ border-collapse: collapse;
134
+ margin: 0;
135
+ overflow: hidden;
136
+ table-layout: fixed;
137
+ width: 100%;
138
+
139
+ td,
140
+ th {
141
+ border: 1px solid var(--gray-3);
142
+ box-sizing: border-box;
143
+ min-width: 1em;
144
+ padding: 6px 8px;
145
+ position: relative;
146
+ vertical-align: top;
147
+
148
+ > * {
149
+ margin-bottom: 0;
150
+ }
151
+ }
152
+
153
+ th {
154
+ background-color: var(--gray-1);
155
+ font-weight: bold;
156
+ text-align: left;
157
+ }
158
+
159
+ .selectedCell:after {
160
+ background: var(--gray-2);
161
+ content: '';
162
+ left: 0;
163
+ right: 0;
164
+ top: 0;
165
+ bottom: 0;
166
+ pointer-events: none;
167
+ position: absolute;
168
+ z-index: 2;
169
+ }
170
+
171
+ .column-resize-handle {
172
+ background-color: var(--purple);
173
+ bottom: -2px;
174
+ pointer-events: none;
175
+ position: absolute;
176
+ right: -2px;
177
+ top: 0;
178
+ width: 4px;
179
+ }
180
+ }
181
+
182
+ .tableWrapper {
183
+ margin: 1.5rem 0;
184
+ overflow-x: auto;
185
+ }
186
+
187
+ &.resize-cursor {
188
+ cursor: ew-resize;
189
+ cursor: col-resize;
190
+ }
191
+ }
@@ -1,9 +1,9 @@
1
- declare module '*.vue' {
2
- // eslint-disable-next-line
3
- import { DefineComponent } from 'vue'
4
- const Component: DefineComponent
5
- export default Component
6
- }
7
- declare module "marked";
8
- declare module "katex";
1
+ declare module '*.vue' {
2
+ // eslint-disable-next-line
3
+ import { DefineComponent } from 'vue'
4
+ const Component: DefineComponent
5
+ export default Component
6
+ }
7
+ declare module "marked";
8
+ declare module "katex";
9
9
  declare module "diff-match-patch";