agilebuilder-ui 1.1.13-tmp2 → 1.1.13-tmp4

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.
@@ -0,0 +1,12 @@
1
+ import { openBlock as r, createElementBlock as t, createCommentVNode as o } from "vue";
2
+ import { _ as s } from "./index-1a87600f.js";
3
+ const u = ["src"], f = s({ data: () => ({ src: null }), watch: { $route(n, c) {
4
+ this.src = this.$route.query.src;
5
+ } }, mounted() {
6
+ this.src = this.$route.query.src;
7
+ } }, [["render", function(n, c, a, l, e, m) {
8
+ return r(), t("div", null, [e.src && e.src !== null ? (r(), t("iframe", { key: 0, ref: "menuContent", src: e.src, name: "menu-content", title: "Main content", frameborder: "0" }, null, 8, u)) : o("", !0)]);
9
+ }], ["__scopeId", "data-v-20dccb82"]]);
10
+ export {
11
+ f as default
12
+ };
@@ -0,0 +1,115 @@
1
+ import { _ as v, c as $, g as x, b as P, s as h, m as M, M as O, i as I } from "./index-1a87600f.js";
2
+ import { resolveComponent as m, openBlock as l, createBlock as b, withCtx as g, createVNode as w, TransitionGroup as L, createElementBlock as p, Fragment as T, renderList as C, createElementVNode as u, toDisplayString as y, createCommentVNode as f, normalizeClass as S } from "vue";
3
+ const A = { class: "no-redirect" }, k = v({ name: "Breadcrumb", data: () => ({ levelList: null }), computed: { levelListWithTitle() {
4
+ return this.levelList.filter((e) => e.meta.title !== void 0 && e.meta.title !== null);
5
+ } }, watch: { $route() {
6
+ this.getBreadcrumb();
7
+ } }, created() {
8
+ this.getBreadcrumb();
9
+ }, methods: { getBreadcrumb() {
10
+ const { params: e } = this.$route;
11
+ let t = this.$route.matched.filter((a) => {
12
+ if (a.name) {
13
+ var r = $(a.path);
14
+ return a.path = r(e), !0;
15
+ }
16
+ });
17
+ if (t) {
18
+ let a;
19
+ const r = x(), o = window.$vueApp.config.globalProperties.systemNameObj;
20
+ o && (a = o[r]), t = [{ path: "/", redirect: "noredirect", meta: { title: a } }].concat(t);
21
+ const s = P.get("selectMenu"), d = window.$vueApp.config.globalProperties._selectMenu;
22
+ let n;
23
+ if (d ? n = d : s && (n = s), n) {
24
+ const i = n.substring(0, n.indexOf("~~")), c = n.substring(n.indexOf("~~") + 2);
25
+ if (t && t.length > 0) {
26
+ const _ = t[t.length - 1];
27
+ this.isShouldConcatLastMenu(c, i, _) && t.push({ path: i, meta: { title: c } });
28
+ } else
29
+ t.push({ path: i, meta: { title: c } });
30
+ }
31
+ }
32
+ this.levelList = t;
33
+ }, isShouldConcatLastMenu(e, t, a) {
34
+ return !(!this.isTitleNotEqual(e, a) || !this.isPathNotEqual(t, a));
35
+ }, isTitleNotEqual(e, t) {
36
+ return !(!e || !t.meta || e === t.meta.title || e === this.$t(t.meta.title));
37
+ }, isPathNotEqual: (e, t) => !(!e || !t.path || e === t.path) } }, [["render", function(e, t, a, r, o, s) {
38
+ const d = m("el-breadcrumb-item"), n = m("el-breadcrumb");
39
+ return l(), b(n, { class: "app-breadcrumb", separator: ">" }, { default: g(() => [w(L, { name: "breadcrumb", tag: "span" }, { default: g(() => [(l(!0), p(T, null, C(s.levelListWithTitle, (i, c) => (l(), b(d, { key: i.path + "-" + c }, { default: g(() => [u("span", A, y(e.$t(i.meta.title)), 1)]), _: 2 }, 1024))), 128))]), _: 1 })]), _: 1 });
40
+ }], ["__scopeId", "data-v-768a430c"]]), { body: B } = document, E = { watch: { $route(e) {
41
+ this.device === "mobile" && this.sidebar.opened && h.dispatch("closeSidebar", { withoutAnimation: !1 });
42
+ } }, beforeMount() {
43
+ window.addEventListener("resize", this.resizeHandler);
44
+ }, mounted() {
45
+ this.isMobile() && (h.dispatch("toggelDevice", "mobile"), h.dispatch("closeSidebar", { withoutAnimation: !0 }));
46
+ }, methods: { isMobile: () => B.getBoundingClientRect().width - 3 < 1024, resizeHandler() {
47
+ if (!document.hidden) {
48
+ const e = this.isMobile();
49
+ h.dispatch("toggelDevice", e ? "mobile" : "desktop"), e && h.dispatch("closeSidebar", { withoutAnimation: !0 });
50
+ }
51
+ } } }, N = { name: "TabContent", data() {
52
+ let e = window.$vueApp.config.globalProperties.defaultPageTip;
53
+ e || (e = "欢迎访问Agile Builder/Welcome to Agile Builder");
54
+ let t, a = e;
55
+ return e && e.indexOf("/") > 0 && (a = e.substring(0, e.lastIndexOf("/")), t = e.substring(e.lastIndexOf("/") + 1)), { defaultPageTipCn: a, defaultPageTipEn: t };
56
+ }, computed: { ...M(["openTab"]), activeIndex: { get() {
57
+ return this.$store.state.tabContent.activeIndex;
58
+ }, set(e) {
59
+ this.$store.commit("set_active_index", e);
60
+ } } }, created() {
61
+ window.addEventListener("message", this.recieveMessage);
62
+ }, mounted() {
63
+ }, unmounted() {
64
+ window.removeEventListener("message", this.recieveMessage);
65
+ }, methods: { closeSelectedTag(e) {
66
+ const t = this.$store.state.tabContent.openTab.findIndex((r) => r.code === e), a = this.$store.state.tabContent.openTab[t];
67
+ this.$store.commit("delete_tabs", a), e === this.activeIndex && this.toLastView(this.$store.state.tabContent.openTab, t > 0 ? t - 1 : 0);
68
+ }, toLastView(e, t) {
69
+ if (e && e.length > 0 && e.length > t) {
70
+ const a = e[t];
71
+ a && this.$store.commit("set_active_index", a.code);
72
+ }
73
+ }, getFullPath(e) {
74
+ let t = "";
75
+ if (e.routePath === "/iframe-page/page") {
76
+ let a, r = "";
77
+ if (e.routeQuery)
78
+ for (const o in e.routeQuery)
79
+ o === "src" ? a = e.routeQuery[o] : r += o + "=" + e.routeQuery[o] + "&";
80
+ a && (t = a), r && (t += "?" + r);
81
+ } else if (e.routePath.indexOf("http:") < 0 && e.routePath.indexOf("https:") < 0 && (t = "#"), t = e.routePath.indexOf("?") >= 0 ? t + e.routePath + "&" : t + e.routePath + "?", e.routeQuery)
82
+ for (const a in e.routeQuery)
83
+ t += a + "=" + e.routeQuery[a] + "&";
84
+ return t && t.length > 0 && t.lastIndexOf("&") === t.length - 1 && (t = t.substring(0, t.lastIndexOf("&"))), t;
85
+ }, recieveMessage(e) {
86
+ if (e && typeof e.data == "string" && e.data === "refreshTabContent")
87
+ window.location.reload();
88
+ else if (e && typeof e.data == "string" && e.data.indexOf("loginTimeout") >= 0)
89
+ window.parent.postMessage(e.data, "*");
90
+ else if (e && typeof e.data == "string" && e.data === "return-to-system-list") {
91
+ this.$store.commit("clear_tabs");
92
+ let t = "_IS_APP_LIST";
93
+ const a = window.sessionStorage.getItem(t);
94
+ a !== void 0 && a === "true" ? this.$router.push({ path: "/mms/apps/list" }) : this.$router.push({ path: "/mms/systems/list" });
95
+ }
96
+ } } }, V = ["src"], Q = { class: "default-page-tip" }, R = { class: "default-page-tip-msg" }, q = { class: "default-page-tip-item" }, z = { class: "default-page-tip-item" }, j = { class: "main-container" }, W = v({ name: "Layout", components: { Menubar: O, Breadcrumb: k, TabContent: v(N, [["render", function(e, t, a, r, o, s) {
97
+ const d = m("el-tab-pane"), n = m("el-tabs");
98
+ return l(), p("div", null, [e.openTab && e.openTab.length > 0 ? (l(), b(n, { key: 0, modelValue: s.activeIndex, "onUpdate:modelValue": t[0] || (t[0] = (i) => s.activeIndex = i), class: "nav-tab menu-tab-container", closable: "", onTabRemove: s.closeSelectedTag }, { default: g(() => [(l(!0), p(T, null, C(e.openTab, (i) => (l(), b(d, { key: i.code, label: i.name, name: i.code }, { default: g(() => [u("iframe", { ref_for: !0, ref: "tabMainContent", src: s.getFullPath(i), class: "tab-main-content", name: "tab-main-content", frameborder: "0" }, null, 8, V)]), _: 2 }, 1032, ["label", "name"]))), 128))]), _: 1 }, 8, ["modelValue", "onTabRemove"])) : f("", !0), u("div", Q, [u("div", R, [u("div", q, y(o.defaultPageTipCn), 1), u("div", z, y(o.defaultPageTipEn), 1)])])]);
99
+ }], ["__scopeId", "data-v-acb71e42"]]) }, mixins: [E], data: () => ({ showMenuRoute: I(), systemCode: null }), computed: { sidebar() {
100
+ return this.$store.state.app.sidebar;
101
+ }, device() {
102
+ return this.$store.state.app.device;
103
+ }, classObj() {
104
+ return { hideSidebar: !this.sidebar.opened, openSidebar: this.sidebar.opened, withoutAnimation: this.sidebar.withoutAnimation, mobile: this.device === "mobile" };
105
+ } }, created() {
106
+ this.systemCode = window.$vueApp.config.globalProperties.customSystem;
107
+ }, methods: { handleClickOutside() {
108
+ this.$store.dispatch("closeSidebar", { withoutAnimation: !1 });
109
+ } } }, [["render", function(e, t, a, r, o, s) {
110
+ const d = m("menubar"), n = m("breadcrumb"), i = m("tab-content");
111
+ return l(), p("div", { class: S([s.classObj, "app-wrapper"]) }, [s.device === "mobile" && s.sidebar.opened ? (l(), p("div", { key: 0, class: "drawer-bg", onClick: t[0] || (t[0] = (...c) => s.handleClickOutside && s.handleClickOutside(...c)) })) : f("", !0), w(d, { "system-code": o.systemCode, collapse: !0, class: "sidebar-container" }, null, 8, ["system-code"]), u("div", j, [o.showMenuRoute ? (l(), b(n, { key: 0 })) : f("", !0), w(i)])], 2);
112
+ }], ["__scopeId", "data-v-5c0a6bf6"]]);
113
+ export {
114
+ W as default
115
+ };
@@ -0,0 +1,12 @@
1
+ import { resolveComponent as t, openBlock as a, createElementBlock as s, createElementVNode as y, createVNode as l, withCtx as r, createTextVNode as n, toDisplayString as p, createCommentVNode as c, createBlock as h } from "vue";
2
+ import { _ as I } from "./index-1a87600f.js";
3
+ const g = { style: { "padding-bottom": "10px" } }, k = { key: 0, class: "graphDiv" }, N = I({ name: "TacheSubprocessHistory", data: () => ({ type: "graph", workflowId: null }), created() {
4
+ const o = this.$route.query.workflowId;
5
+ o && (this.workflowId = parseInt(o));
6
+ } }, [["render", function(o, d, V, b, e, v) {
7
+ const i = t("el-radio-button"), w = t("el-radio-group"), u = t("workflow-history"), m = t("workflow-history-list");
8
+ return a(), s("div", null, [y("div", g, [l(w, { modelValue: e.type, "onUpdate:modelValue": d[0] || (d[0] = (f) => e.type = f) }, { default: r(() => [l(i, { label: "graph" }, { default: r(() => [n(p(o.$t("imatrixUIPublicModel.graphView")), 1)]), _: 1 }), l(i, { label: "list" }, { default: r(() => [n(p(o.$t("imatrixUIPublicModel.listView")), 1)]), _: 1 })]), _: 1 }, 8, ["modelValue"])]), e.type === "graph" ? (a(), s("div", k, [l(u, { id: e.workflowId }, null, 8, ["id"])])) : c("", !0), e.type === "list" ? (a(), h(m, { key: 1, "workflow-id": e.workflowId }, null, 8, ["workflow-id"])) : c("", !0)]);
9
+ }], ["__scopeId", "data-v-a936569d"]]);
10
+ export {
11
+ N as default
12
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agilebuilder-ui",
3
- "version": "1.1.13-tmp2",
3
+ "version": "1.1.13-tmp4",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "main": "./lib/super-ui.js",
@@ -2,7 +2,8 @@
2
2
  import { defineComponent, ref, computed, watch, defineEmits } from 'vue';
3
3
  import { ElCard, ElDrawer, ElTag,ElDescriptions, ElDescriptionsItem, ElButton, ElIcon, ElCheckbox, ElCheckboxGroup, ElBreadcrumb, ElLink, ElEmpty, ElDivider } from 'element-plus';
4
4
  import NormalColumnContent from '../normal-column-content.vue';
5
- import CardView from './card-view.jsx';
5
+ import CardView from '../../../../src/components/Card';
6
+ import Scrollbar from '../../../../src/components/Scrollbar';
6
7
  import store from '../store';
7
8
 
8
9
  import { ArrowLeft, Bottom, Loading, Tickets } from '@element-plus/icons-vue';
@@ -12,7 +13,8 @@ export default defineComponent({
12
13
  name: 'MobileTableCard',
13
14
  components: {
14
15
  NormalColumnContent,
15
- CardView
16
+ CardView,
17
+ Scrollbar
16
18
  },
17
19
  props: {
18
20
  // 展示字段限制
@@ -68,10 +70,10 @@ export default defineComponent({
68
70
  const paginationList = ref([])
69
71
  // 选中数据
70
72
  const checkedList = ref([]);
73
+ // 当前勾选ID
74
+ const checkedClickId = ref(undefined);
71
75
  // 当前选中数据
72
76
  const isCheckedIndex = ref(undefined);
73
- // 展开更多字段
74
- const isColumnExpandMore = ref(undefined);
75
77
 
76
78
  // 是否打开子表弹窗
77
79
  const isChildrenDrawer = ref(false);
@@ -99,6 +101,14 @@ export default defineComponent({
99
101
  }
100
102
  });
101
103
 
104
+ const isLoadPaginationData = computed(() => {
105
+ if (props.isStackingPaginatedData) {
106
+ return (paginationList.value[props.currentPage - 1]?.length ?? 0) > 0
107
+ } else {
108
+ return dataList.value.length < props.pageSize * props.currentPage && pagesNumber.value >= props.currentPage
109
+ }
110
+ })
111
+
102
112
  // 面包屑数据
103
113
  const childrenList = computed(() => {
104
114
  return childrenBreadcrumbData.value[childrenBreadcrumbData.value.length - 1]?.children ?? []
@@ -179,6 +189,7 @@ export default defineComponent({
179
189
  } else {
180
190
  checkedList.value = [...new Set([...checkedList.value, value])]
181
191
  }
192
+ checkedClickId.value = value
182
193
  }
183
194
 
184
195
  /**
@@ -205,9 +216,8 @@ export default defineComponent({
205
216
  const onAttrs = {
206
217
  ...Object.fromEntries(Object.keys($on).map(key => [`on${key.charAt(0).toUpperCase()}${key.slice(1).replace(/-([a-z])/g, (match, letter) => letter.toUpperCase())}`, $on[key]]))
207
218
  }
208
- return <div overflow-wrap>
209
- <NormalColumnContent isContentViewText={isViewText} {...attrs} {...onAttrs} />
210
- </div>
219
+
220
+ return <NormalColumnContent isContentViewText={isViewText} {...attrs} {...onAttrs} />
211
221
  }
212
222
 
213
223
  /**
@@ -219,6 +229,7 @@ export default defineComponent({
219
229
  * @returns .filter((_, index) => !props.showFieldCount || props.showFieldCount > index + 1)
220
230
  */
221
231
  const getElDescriptions = (layoutDatas, columnFormData = detailsFormData.value, columnIndex = isCheckedIndex.value, showFieldCount = undefined) => {
232
+ // const propertyData = columnData?.find(({ property }) => property)
222
233
  return <ElDescriptions column={1} label-width={maxLabelWidth.value} align="right" direction="horizontal" layout='form'>
223
234
  {(showFieldCount ? layoutDatas?.slice?.(0, showFieldCount) : layoutDatas)?.map((columnCol, index) => (
224
235
  <ElDescriptionsItem
@@ -228,6 +239,12 @@ export default defineComponent({
228
239
  label: () => <div v-html={columnCol.label ? `${columnCol.label}:` : ''} />
229
240
  }
230
241
  }
242
+ // onRowDblclick={(event) => {
243
+ // console.log('我双击了', columnCol?.property )
244
+ // // if (isViewText) return
245
+ // event.stopPropagation()
246
+ // // emit('rowDblclick', columnFormData, columnData, event)
247
+ // }}
231
248
  >
232
249
  {columnViewDom(columnCol, columnFormData, columnIndex) || '-'}
233
250
  </ElDescriptionsItem>
@@ -241,13 +258,23 @@ export default defineComponent({
241
258
  }, { deep: true });
242
259
 
243
260
  // 勾选监听
244
- watch(checkedList, (newValue) => {
261
+ watch(checkedList, (newValue , oldValue) => {
262
+ console.log(newValue , oldValue)
245
263
  if (attrs.selection.length === newValue.length) {
246
264
  if (attrs.selection.every(({ $rowDataGuId }) => newValue.includes($rowDataGuId ) )) return
247
265
  }
248
266
  const selectData = dataList.value.filter(({ $rowDataGuId }) => newValue?.includes($rowDataGuId))
249
- console.log('选中数据+++mobile-table-card+++++++++++++++++++++++++++++>', newValue, selectData)
267
+ const findData = checkedClickId.value ? dataList.value.find(({ $rowDataGuId }) => checkedClickId.value === $rowDataGuId) : undefined
268
+ // 新增选中
269
+ if (newValue.length > oldValue?.length && findData) {
270
+ emit('select', selectData, findData)
271
+ }
272
+ // 移除选中
273
+ if (newValue.length < oldValue?.length && findData) {
274
+ emit('select', selectData, findData)
275
+ }
250
276
  emit('selectionChange', selectData)
277
+ checkedClickId.value = undefined
251
278
  }, { deep: true });
252
279
 
253
280
  // 滚动数据加载监听
@@ -276,35 +303,35 @@ export default defineComponent({
276
303
  }
277
304
  }
278
305
 
279
- const load = () => {
280
- // 这里可以实现加载更多的逻辑
281
- };
282
-
283
306
  return () => (
284
- <div v-infinite-scroll={scrollLoad} style={{ overflow: 'auto', maxHeight: 'calc(100vh - 132px)', marginBottom: '15px' }}>
285
- {(<ElDrawer v-model={isChildrenDrawer.value} with-header={true} direction="btt" append-to-body size='90vh' v-slots={{
286
- header: () => (<div class="yx-flex-wrap" style={{gap: '10px'}}>
287
- {layoutData.value.header[0] && `${layoutData.value.header[0].label}: `}
288
- <ElBreadcrumb separator-icon={<ArrowRight></ArrowRight>}>
289
- {childrenBreadcrumbData.value.map((columnFormData, i) => {
290
- const label = columnViewDom(layoutData.value.header[0], columnFormData, undefined, true)
291
- return (
292
- <ElBreadcrumbItem>
293
- {
294
- childrenBreadcrumbData.value.length - 1 === i ? label : <ElLink onClick={() => childrenBreadcrumbData.value = childrenBreadcrumbData.value.slice(0, i + 1)}>{ label }</ElLink>
295
- }
296
- </ElBreadcrumbItem>
297
- )
298
-
299
- })}
300
- </ElBreadcrumb>
301
- </div>)
302
- }}
303
- onClosed={() => childrenBreadcrumbData.value = []}
307
+ <Scrollbar onScrollToBottom={scrollLoad} set-max-height={data => {
308
+ if (data?.windowHeight) {
309
+ const height = data?.windowHeight - 160
310
+ return height > 400 ? height : 400
311
+ }
312
+ }}>
313
+ {(<ElDrawer v-model={isChildrenDrawer.value} modal-class='yx-drawer yx-scrollbar-body' with-header={true} direction="btt" append-to-body size='90vh' v-slots={{
314
+ header: () => (<div class="yx-flex-wrap" style={{gap: '10px'}}>
315
+ {layoutData.value.header[0] && `${layoutData.value.header[0].label}: `}
316
+ <ElBreadcrumb separator-icon={<ArrowRight></ArrowRight>}>
317
+ {childrenBreadcrumbData.value.map((columnFormData, i) => {
318
+ const label = columnViewDom(layoutData.value.header[0], columnFormData, undefined, true)
319
+ return (
320
+ <ElBreadcrumbItem>
321
+ {
322
+ childrenBreadcrumbData.value.length - 1 === i ? label : <ElLink onClick={() => childrenBreadcrumbData.value = childrenBreadcrumbData.value.slice(0, i + 1)}>{ label }</ElLink>
323
+ }
324
+ </ElBreadcrumbItem>
325
+ )
326
+
327
+ })}
328
+ </ElBreadcrumb>
329
+ </div>)
330
+ }}
331
+ onClosed={() => childrenBreadcrumbData.value = []}
304
332
  >
305
333
 
306
- <div class="yx-flex-wrap" vertical style={{ 'height': '100%', gap: '10px'}}>
307
- <ElScrollbar scrollable-main max-height='100%' style={{ 'flex': '1 1 auto'}}>
334
+ <Scrollbar scrollable-main max-height='100%' style={{ 'flex': '1 1 auto'}}>
308
335
  <div class="yx-flex-wrap" vertical style={{ gap: '15px'}}>
309
336
  { childrenList.value.map((columnFormData, columnIndex) => {
310
337
  // 开启编辑后禁止选中
@@ -316,6 +343,8 @@ export default defineComponent({
316
343
  // 是否有子表
317
344
  const isSubTable = !!((columnFormData?.children?.length ?? 0) > 0)
318
345
 
346
+ const clickPropertyData = layoutData.value.content?.find(({ property }) => property) ?? layoutData.value.content[0]
347
+
319
348
  return (<CardView
320
349
  form={columnFormData}
321
350
  no={ isIndex ? columnIndex + 1 : undefined}
@@ -327,6 +356,8 @@ export default defineComponent({
327
356
  onShowSubTable={() => {
328
357
  childrenBreadcrumbData.value =[...childrenBreadcrumbData.value, columnFormData];
329
358
  }}
359
+ onRowClick={(event) => emit('rowClick', columnFormData, clickPropertyData, event)}
360
+ onRowDblclick={(event) => emit('rowDblclick', columnFormData, clickPropertyData, event)}
330
361
  v-slots={{
331
362
  titleSlot: layoutData.value.header && layoutData.value.header?.map((columnCol) => columnViewDom(columnCol, columnFormData, columnIndex, true)),
332
363
  children: ({ isMore }) => getElDescriptions(layoutData.value.content, columnFormData, columnIndex, !isMore ? undefined : props.showFieldCount),
@@ -337,19 +368,16 @@ export default defineComponent({
337
368
  />)
338
369
  }) }
339
370
  </div>
340
- </ElScrollbar>
341
- </div>
342
- </ElDrawer>)}
371
+ </Scrollbar>
372
+ </ElDrawer>)}
343
373
  <div
344
374
  class="yx-flex-wrap"
345
375
  vertical
346
376
  style="overflow: auto; gap: 15px;"
347
- onInfiniteScroll={load}
348
377
  >
349
378
  {dataList.value.length === 0 && <ElEmpty />}
350
379
 
351
380
  {dataList.value.map((columnFormData, columnIndex) => {
352
- const isColumnExpand = columnIndex === isColumnExpandMore.value
353
381
 
354
382
  // 开启编辑后禁止选中
355
383
  const onChecked = () => !columnFormData.$editing && setCheckedList(columnFormData.$rowDataGuId)
@@ -359,6 +387,9 @@ export default defineComponent({
359
387
 
360
388
  // 是否有子表
361
389
  const isSubTable = !!(columnFormData?.children?.length ?? false)
390
+
391
+ const clickPropertyData = layoutData.value.content?.find(({ property }) => property) ?? layoutData.value.content[0]
392
+
362
393
  return (<CardView
363
394
  form={columnFormData}
364
395
  no={ isIndex ? columnIndex + 1 : undefined}
@@ -371,6 +402,8 @@ export default defineComponent({
371
402
  childrenBreadcrumbData.value =[columnFormData];
372
403
  isChildrenDrawer.value = true
373
404
  }}
405
+ onRowClick={(event) => emit('rowClick', columnFormData, clickPropertyData, event)}
406
+ onRowDblclick={(event) => emit('rowDblclick', columnFormData, clickPropertyData, event)}
374
407
  v-slots={{
375
408
  titleSlot: layoutData.value.header && layoutData.value.header?.map((columnCol) => columnViewDom(columnCol, columnFormData, columnIndex, true)),
376
409
  children: ({ isMore }) => getElDescriptions(layoutData.value.content, columnFormData, columnIndex, !isMore ? undefined : props.showFieldCount),
@@ -383,12 +416,11 @@ export default defineComponent({
383
416
 
384
417
  {
385
418
  dataList.value.length > 0 && pagesNumber.value > 1 && (<ElDivider>
386
- { (pagesNumber.value > props.currentPage || isPaginationLoading.value) && (<ElIcon loading-rotate size={25} color="#409eff" style={{ margin: '15px auto' }}><Loading></Loading></ElIcon>) }
387
- { (pagesNumber.value <= props.currentPage) && 'END' }
419
+ { (pagesNumber.value > props.currentPage || isPaginationLoading.value) ? (<ElIcon loading-rotate size={25} color="#409eff" style={{ margin: '15px auto' }}><Loading></Loading></ElIcon>) : (pagesNumber.value <= props.currentPage && isLoadPaginationData.value) && 'END' }
388
420
  </ElDivider>)
389
421
  }
390
422
  </div>
391
- </div>
423
+ </Scrollbar>
392
424
  );
393
425
  }
394
426
  });
@@ -648,8 +648,8 @@ export default {
648
648
  userAgent = 'browser'
649
649
  }
650
650
  console.log('superGrid----window.location.protocol---', window.location.protocol)
651
- const isShowScanIcon = isMobile && window.location.protocol === 'https:' ? true : false
652
651
  const isApk = isMobile && userAgent && userAgent === 'app' ? true : false
652
+ const isShowScanIcon = isApk || (isMobile && scanEnable && window.location.protocol === 'https:' ? true : false)
653
653
 
654
654
  let baseURL = gridParams.options.backendUrl
655
655
  if (!baseURL) {