af-mobile-client-vue3 1.2.10 → 1.2.12

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.
package/index.html CHANGED
@@ -9,7 +9,7 @@
9
9
  <script>
10
10
  ;(function () {
11
11
  const prefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches
12
- const setting = localStorage.getItem('vueuse-color-scheme') || 'auto'
12
+ const setting = localStorage.getItem('vueuse-color-scheme') || 'light'
13
13
  if (setting === 'dark' || (prefersDark && setting !== 'light'))
14
14
  document.documentElement.classList.toggle('dark', true)
15
15
  })()
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "af-mobile-client-vue3",
3
3
  "type": "module",
4
- "version": "1.2.10",
4
+ "version": "1.2.12",
5
5
  "packageManager": "pnpm@10.12.3",
6
6
  "description": "Vue + Vite component lib",
7
7
  "engines": {
@@ -1,8 +1,8 @@
1
1
  <script setup lang="ts">
2
2
  import type { FormInstance } from 'vant'
3
3
  import XFormItem from '@af-mobile-client-vue3/components/data/XFormItem/index.vue'
4
- import { addOrModifyEntity } from '@af-mobile-client-vue3/services/api/common'
5
4
  import XOlMap from '@af-mobile-client-vue3/components/data/XOlMap/index.vue'
5
+ import { addOrModifyEntity } from '@af-mobile-client-vue3/services/api/common'
6
6
  import { post } from '@af-mobile-client-vue3/services/restTools'
7
7
  import {
8
8
  showFailToast,
@@ -297,6 +297,7 @@ defineExpose({ init, form, formGroupName, validate })
297
297
  :get-data-params="myGetDataParams"
298
298
  @set-form="setForm"
299
299
  />
300
+ <slot name="extraFormItem" />
300
301
  </VanCellGroup>
301
302
  <!-- 地图预览,统一放在表单项下方,只在有经纬度时显示 -->
302
303
  <div v-if="previewMapPoint" style="height: 200px; margin-top: 12px; position: relative;">
@@ -314,6 +315,7 @@ defineExpose({ init, form, formGroupName, validate })
314
315
  </VanButton>
315
316
  <slot />
316
317
  </div>
318
+ <slot name="extraActionSpace" />
317
319
  </VanForm>
318
320
  </template>
319
321
 
@@ -1,33 +1,33 @@
1
- <script setup lang="ts">
2
- import { onMounted, ref } from 'vue'
3
- import XReport from './XReport.vue'
4
-
5
- const mainRef = ref()
6
-
7
- onMounted(() => {
8
- // 初始化逻辑
9
- })
10
- </script>
11
-
12
- <template>
13
- <div id="test">
14
- <van-card :bordered="false">
15
- <XReport
16
- ref="mainRef"
17
- :use-oss-for-img="false"
18
- config-name="nurseWorkstationCover"
19
- server-name="af-his"
20
- :show-img-in-cell="true"
21
- :display-only="true"
22
- :edit-mode="false"
23
- :show-save-button="false"
24
- :no-padding="true"
25
- :dont-format="true"
26
- />
27
- </van-card>
28
- </div>
29
- </template>
30
-
31
- <style scoped>
32
-
33
- </style>
1
+ <script setup lang="ts">
2
+ import { onMounted, ref } from 'vue'
3
+ import XReport from './XReport.vue'
4
+
5
+ const mainRef = ref()
6
+
7
+ onMounted(() => {
8
+ // 初始化逻辑
9
+ })
10
+ </script>
11
+
12
+ <template>
13
+ <div id="test">
14
+ <van-card :bordered="false">
15
+ <XReport
16
+ ref="mainRef"
17
+ :use-oss-for-img="false"
18
+ config-name="nurseWorkstationCover"
19
+ server-name="af-his"
20
+ :show-img-in-cell="true"
21
+ :display-only="true"
22
+ :edit-mode="false"
23
+ :show-save-button="false"
24
+ :no-padding="true"
25
+ :dont-format="true"
26
+ />
27
+ </van-card>
28
+ </div>
29
+ </template>
30
+
31
+ <style scoped>
32
+
33
+ </style>
@@ -1,184 +1,184 @@
1
- // print.js
2
-
3
- export function printElement(elementToPrint) {
4
- // 创建一个新的浏览器窗口
5
- const printWindow = window.open('', '_blank', 'height=1024,width=768')
6
- // 设置新窗口的文档内容
7
- printWindow.document.write(`
8
- <html>
9
- <head>
10
- <title>Print</title>
11
- <style>
12
- @page {
13
- size: auto;
14
- margin: 0mm;
15
- }
16
- html, body {
17
- margin: 0;
18
- padding: 0;
19
- width: 100%;
20
- height: 100%;
21
- }
22
- #print-container {
23
- display: none
24
- }
25
- .img{
26
- width: 95%;
27
- height: 180px;
28
- object-fit: cover;
29
- }
30
- .reportMain {
31
- text-align: center;
32
- margin: 0 auto;
33
- font-size: 16px;
34
- color: #000;
35
- background-color: #fff;
36
- border-radius: 8px;
37
-
38
- .reportTitle {
39
- font-weight: bold;
40
- }
41
-
42
- .subTitle {
43
- display: flex;
44
- justify-content: space-between;
45
- margin-bottom: 1%;
46
-
47
- .subTitleItems {
48
- max-width: 30%;
49
- }
50
- }
51
-
52
- .inputsDiv {
53
- display: flex;
54
- justify-content: space-between;
55
- .inputsDivItem {
56
- display: flex;
57
- align-items: center;
58
- padding: 0 4px;
59
- white-space: nowrap;
60
- .inputsDivItemLabel {
61
- padding: 0 4px;
62
- }
63
- }
64
- }
65
-
66
- .reportTable {
67
- width: 100%;
68
- border-collapse: collapse;
69
- table-layout:fixed;
70
- word-break:break-all;
71
- text-align: center;
72
- }
73
- }
74
- .reportMainForDisplay {
75
- text-align: center;
76
- margin: 10% auto;
77
- font-size: 16px;
78
- color: #000;
79
- background-color: #fff;
80
- border-radius: 8px;
81
-
82
- .reportTitle {
83
- font-weight: bold;
84
- }
85
-
86
- .subTitle {
87
- display: flex;
88
- justify-content: space-between;
89
-
90
- .subTitleItems {
91
- max-width: 30%;
92
- }
93
- }
94
-
95
- .inputsDiv {
96
- display: flex;
97
- justify-content: space-around;
98
- .inputsDivItem {
99
- display: flex;
100
- align-items: center;
101
- padding: 0 4px;
102
- white-space: nowrap;
103
- .inputsDivItemLabel {
104
- padding: 0 4px;
105
- }
106
- }
107
- }
108
-
109
- .reportTable {
110
- width: 100%;
111
- border-collapse: collapse;
112
- table-layout:fixed;
113
- word-break:break-all;
114
- }
115
- }
116
- .reportMainNoPadding {
117
- text-align: center;
118
- margin: 0 auto;
119
- font-size: 16px;
120
- color: #000;
121
- background-color: #fff;
122
- border-radius: 8px;
123
-
124
- .reportTitle {
125
- font-weight: bold;
126
- }
127
-
128
- .subTitle {
129
- display: flex;
130
- justify-content: space-between;
131
-
132
- .subTitleItems {
133
- max-width: 30%;
134
- }
135
- }
136
-
137
- .inputsDiv {
138
- display: flex;
139
- justify-content: space-between;
140
- .inputsDivItem {
141
- display: flex;
142
- align-items: center;
143
- padding: 0 4px;
144
- white-space: nowrap;
145
- .inputsDivItemLabel {
146
- padding: 0 4px;
147
- }
148
- }
149
- }
150
-
151
- .reportTable {
152
- width: 100%;
153
- border-collapse: collapse;
154
- table-layout:fixed;
155
- word-break:break-all;
156
- }
157
- }
158
- .tools{
159
- position: fixed;
160
- right: 2%;
161
- text-align: right;
162
- width: 60%;
163
- cursor: pointer;
164
- .toolsItem{
165
- width: 15%;
166
- margin-right: 3%;
167
- display: inline-block;
168
- }
169
- }
170
- </style>
171
- </head>
172
- <body>
173
- <!-- 将需要打印的元素内容复制到新窗口中 -->
174
- ${elementToPrint.innerHTML}
175
- </body>
176
- </html>
177
- `)
178
- // 延迟执行打印,以确保新窗口的内容已加载完成
179
- printWindow.document.close() // 关闭文档流,确保内容完全加载
180
- setTimeout(() => {
181
- printWindow.print() // 调用打印方法
182
- printWindow.close()
183
- }, 500) // 延迟500毫秒后执行打印
184
- }
1
+ // print.js
2
+
3
+ export function printElement(elementToPrint) {
4
+ // 创建一个新的浏览器窗口
5
+ const printWindow = window.open('', '_blank', 'height=1024,width=768')
6
+ // 设置新窗口的文档内容
7
+ printWindow.document.write(`
8
+ <html>
9
+ <head>
10
+ <title>Print</title>
11
+ <style>
12
+ @page {
13
+ size: auto;
14
+ margin: 0mm;
15
+ }
16
+ html, body {
17
+ margin: 0;
18
+ padding: 0;
19
+ width: 100%;
20
+ height: 100%;
21
+ }
22
+ #print-container {
23
+ display: none
24
+ }
25
+ .img{
26
+ width: 95%;
27
+ height: 180px;
28
+ object-fit: cover;
29
+ }
30
+ .reportMain {
31
+ text-align: center;
32
+ margin: 0 auto;
33
+ font-size: 16px;
34
+ color: #000;
35
+ background-color: #fff;
36
+ border-radius: 8px;
37
+
38
+ .reportTitle {
39
+ font-weight: bold;
40
+ }
41
+
42
+ .subTitle {
43
+ display: flex;
44
+ justify-content: space-between;
45
+ margin-bottom: 1%;
46
+
47
+ .subTitleItems {
48
+ max-width: 30%;
49
+ }
50
+ }
51
+
52
+ .inputsDiv {
53
+ display: flex;
54
+ justify-content: space-between;
55
+ .inputsDivItem {
56
+ display: flex;
57
+ align-items: center;
58
+ padding: 0 4px;
59
+ white-space: nowrap;
60
+ .inputsDivItemLabel {
61
+ padding: 0 4px;
62
+ }
63
+ }
64
+ }
65
+
66
+ .reportTable {
67
+ width: 100%;
68
+ border-collapse: collapse;
69
+ table-layout:fixed;
70
+ word-break:break-all;
71
+ text-align: center;
72
+ }
73
+ }
74
+ .reportMainForDisplay {
75
+ text-align: center;
76
+ margin: 10% auto;
77
+ font-size: 16px;
78
+ color: #000;
79
+ background-color: #fff;
80
+ border-radius: 8px;
81
+
82
+ .reportTitle {
83
+ font-weight: bold;
84
+ }
85
+
86
+ .subTitle {
87
+ display: flex;
88
+ justify-content: space-between;
89
+
90
+ .subTitleItems {
91
+ max-width: 30%;
92
+ }
93
+ }
94
+
95
+ .inputsDiv {
96
+ display: flex;
97
+ justify-content: space-around;
98
+ .inputsDivItem {
99
+ display: flex;
100
+ align-items: center;
101
+ padding: 0 4px;
102
+ white-space: nowrap;
103
+ .inputsDivItemLabel {
104
+ padding: 0 4px;
105
+ }
106
+ }
107
+ }
108
+
109
+ .reportTable {
110
+ width: 100%;
111
+ border-collapse: collapse;
112
+ table-layout:fixed;
113
+ word-break:break-all;
114
+ }
115
+ }
116
+ .reportMainNoPadding {
117
+ text-align: center;
118
+ margin: 0 auto;
119
+ font-size: 16px;
120
+ color: #000;
121
+ background-color: #fff;
122
+ border-radius: 8px;
123
+
124
+ .reportTitle {
125
+ font-weight: bold;
126
+ }
127
+
128
+ .subTitle {
129
+ display: flex;
130
+ justify-content: space-between;
131
+
132
+ .subTitleItems {
133
+ max-width: 30%;
134
+ }
135
+ }
136
+
137
+ .inputsDiv {
138
+ display: flex;
139
+ justify-content: space-between;
140
+ .inputsDivItem {
141
+ display: flex;
142
+ align-items: center;
143
+ padding: 0 4px;
144
+ white-space: nowrap;
145
+ .inputsDivItemLabel {
146
+ padding: 0 4px;
147
+ }
148
+ }
149
+ }
150
+
151
+ .reportTable {
152
+ width: 100%;
153
+ border-collapse: collapse;
154
+ table-layout:fixed;
155
+ word-break:break-all;
156
+ }
157
+ }
158
+ .tools{
159
+ position: fixed;
160
+ right: 2%;
161
+ text-align: right;
162
+ width: 60%;
163
+ cursor: pointer;
164
+ .toolsItem{
165
+ width: 15%;
166
+ margin-right: 3%;
167
+ display: inline-block;
168
+ }
169
+ }
170
+ </style>
171
+ </head>
172
+ <body>
173
+ <!-- 将需要打印的元素内容复制到新窗口中 -->
174
+ ${elementToPrint.innerHTML}
175
+ </body>
176
+ </html>
177
+ `)
178
+ // 延迟执行打印,以确保新窗口的内容已加载完成
179
+ printWindow.document.close() // 关闭文档流,确保内容完全加载
180
+ setTimeout(() => {
181
+ printWindow.print() // 调用打印方法
182
+ printWindow.close()
183
+ }, 500) // 延迟500毫秒后执行打印
184
+ }
@@ -1,11 +1,6 @@
1
1
  <script setup lang="ts">
2
2
  import XCellList from '@af-mobile-client-vue3/components/data/XCellList/index.vue'
3
3
  import NormalDataLayout from '@af-mobile-client-vue3/components/layout/NormalDataLayout/index.vue'
4
- import {
5
- Col as VanCol,
6
- Icon as VanIcon,
7
- Row as VanRow,
8
- } from 'vant'
9
4
  import { defineEmits, ref } from 'vue'
10
5
  import { useRouter } from 'vue-router'
11
6
 
@@ -17,8 +12,8 @@ const router = useRouter()
17
12
  const idKey = ref('o_id')
18
13
 
19
14
  // 简易crud表单测试
20
- const configName = ref('ApplyMobileSuperviseCRUD')
21
- const serviceName = ref('af-apply')
15
+ const configName = ref('lngChargeAuditMobileCRUD')
16
+ const serviceName = ref('af-gaslink')
22
17
 
23
18
  // 资源权限测试
24
19
  // const configName = ref('crud_sources_test')
@@ -87,10 +82,7 @@ function toDetail(item) {
87
82
  // },
88
83
  // })
89
84
  // }
90
- // 删除功能
91
- function phone(result) {
92
- console.log('phone==', result)
93
- }
85
+
94
86
  // 删除功能
95
87
  function deleteRow(result) {
96
88
  emit('deleteRow', result.o_id)
@@ -103,166 +95,14 @@ function deleteRow(result) {
103
95
  <XCellList
104
96
  :config-name="configName"
105
97
  :service-name="serviceName"
98
+ :fix-query-form="{ o_f_oper_name: 'edu_test' }"
106
99
  :id-key="idKey"
107
100
  @to-detail="toDetail"
108
101
  @delete-row="deleteRow"
109
- @phone="phone"
110
- >
111
- <template #search-after>
112
- <div class="cell-search-after">
113
- <VanRow style="padding: 0 8px;">
114
- <VanCol span="8">
115
- <span style="font-weight: bolder">流程汇总</span>
116
- </VanCol>
117
- <VanCol span="16" class="stat-date-range">
118
- <VanIcon name="clock-o" />
119
- <span>2025-07-08 ~ 2025-07-14</span>
120
- </VanCol>
121
- </VanRow>
122
- <VanRow gutter="12">
123
- <VanCol span="8">
124
- <div class="stat-card stat-total">
125
- <div class="stat-num">
126
- 3
127
- </div>
128
- <div class="stat-label">
129
- 总流程数
130
- </div>
131
- <VanIcon name="notes-o" class="stat-icon" />
132
- </div>
133
- </VanCol>
134
- <VanCol span="8">
135
- <div class="stat-card stat-done">
136
- <div class="stat-num">
137
- 2
138
- </div>
139
- <div class="stat-label">
140
- 已完成
141
- </div>
142
- <VanIcon name="passed" class="stat-icon" />
143
- </div>
144
- </VanCol>
145
- <VanCol span="8">
146
- <div class="stat-card stat-processing">
147
- <div class="stat-num">
148
- 1
149
- </div>
150
- <div class="stat-label">
151
- 处理中
152
- </div>
153
- <VanIcon name="todo-list-o" class="stat-icon" />
154
- </div>
155
- </VanCol>
156
- </VanRow>
157
- </div>
158
- </template>
159
- </XCellList>
102
+ />
160
103
  </template>
161
104
  </NormalDataLayout>
162
105
  </template>
163
106
 
164
107
  <style scoped lang="less">
165
- .cell-search-after {
166
- padding: 8px 12px;
167
- background-color: #fff;
168
- .van-row:first-child {
169
- align-items: center;
170
- margin-bottom: 8px;
171
- padding: 0 2px;
172
- h4 {
173
- font-size: 1.08rem;
174
- font-weight: 600;
175
- margin: 0;
176
- color: #222;
177
- letter-spacing: 1px;
178
- }
179
- .stat-date-range {
180
- display: flex;
181
- align-items: center;
182
- justify-content: flex-end;
183
- font-size: 0.92rem;
184
- color: #b0b3b8;
185
- font-weight: 400;
186
- span {
187
- margin-left: 4px;
188
- font-size: 0.92rem;
189
- color: #b0b3b8;
190
- }
191
- .van-icon {
192
- font-size: 1rem;
193
- color: #b0b3b8;
194
- margin-right: 2px;
195
- }
196
- }
197
- }
198
- .van-row:nth-child(2) {
199
- margin-top: 8px;
200
- // 统计卡片间距由gutter控制
201
- .van-col {
202
- // 让卡片宽度自适应
203
- .stat-card {
204
- width: 100%;
205
- }
206
- }
207
- }
208
- .stat-card {
209
- display: flex;
210
- flex-direction: column;
211
- align-items: center;
212
- justify-content: center;
213
- border-radius: 12px;
214
- padding: 12px 0 8px 0;
215
- min-height: 64px;
216
- position: relative;
217
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
218
- background: #f7f8fa;
219
- .stat-num {
220
- font-size: 1.5rem;
221
- font-weight: 600;
222
- margin-bottom: 2px;
223
- }
224
- .stat-label {
225
- font-size: 0.95rem;
226
- color: #888;
227
- margin-bottom: 2px;
228
- }
229
- .stat-icon {
230
- position: absolute;
231
- top: 8px;
232
- right: 10px;
233
- font-size: 1.1rem;
234
- opacity: 0.4;
235
- }
236
- }
237
- .stat-total {
238
- background: #f0f5ff;
239
- color: #2f54eb;
240
- .stat-num {
241
- color: #2f54eb;
242
- }
243
- .stat-icon {
244
- color: #2f54eb;
245
- }
246
- }
247
- .stat-done {
248
- background: #e6fffb;
249
- color: #13c2c2;
250
- .stat-num {
251
- color: #13c2c2;
252
- }
253
- .stat-icon {
254
- color: #13c2c2;
255
- }
256
- }
257
- .stat-processing {
258
- background: #f9f0ff;
259
- color: #b37feb;
260
- .stat-num {
261
- color: #b37feb;
262
- }
263
- .stat-icon {
264
- color: #b37feb;
265
- }
266
- }
267
- }
268
108
  </style>
package/vite.config.ts CHANGED
@@ -11,8 +11,8 @@ export default ({ mode }: ConfigEnv): UserConfig => {
11
11
 
12
12
  const appProxys = {}
13
13
 
14
- const v4Server = 'http://192.168.50.67:31577'
15
- const v3Server = 'https://wkf.qhgas.com'
14
+ const v4Server = 'http://aote-office.8866.org:31567'
15
+ const v3Server = 'http://aote-office.8866.org:31567'
16
16
  const OSSServerDev = 'http://192.168.50.67:30351'
17
17
  const geoserver = 'http://39.104.49.8:30372'
18
18
  // const OSSServerProd = 'http://192.168.50.67:31351'