br-dionysus 1.17.6 → 1.18.0

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 (95) hide show
  1. package/README.md +73 -24
  2. package/attributes.json +1 -1
  3. package/cypress/component/MSelect.cy.ts +0 -1
  4. package/cypress/component/MSelectTable.cy.ts +538 -0
  5. package/cypress/component/MSelectV2.cy.ts +0 -1
  6. package/cypress/component/MTable.cy.ts +123 -0
  7. package/cypress/e2e/1-getting-started/todo.cy.js +143 -0
  8. package/cypress/e2e/2-advanced-examples/actions.cy.js +321 -0
  9. package/cypress/e2e/2-advanced-examples/aliasing.cy.js +39 -0
  10. package/cypress/e2e/2-advanced-examples/assertions.cy.js +176 -0
  11. package/cypress/e2e/2-advanced-examples/connectors.cy.js +98 -0
  12. package/cypress/e2e/2-advanced-examples/cookies.cy.js +118 -0
  13. package/cypress/e2e/2-advanced-examples/cypress_api.cy.js +184 -0
  14. package/cypress/e2e/2-advanced-examples/files.cy.js +85 -0
  15. package/cypress/e2e/2-advanced-examples/location.cy.js +32 -0
  16. package/cypress/e2e/2-advanced-examples/misc.cy.js +98 -0
  17. package/cypress/e2e/2-advanced-examples/navigation.cy.js +55 -0
  18. package/cypress/e2e/2-advanced-examples/network_requests.cy.js +163 -0
  19. package/cypress/e2e/2-advanced-examples/querying.cy.js +114 -0
  20. package/cypress/e2e/2-advanced-examples/spies_stubs_clocks.cy.js +204 -0
  21. package/cypress/e2e/2-advanced-examples/storage.cy.js +117 -0
  22. package/cypress/e2e/2-advanced-examples/traversal.cy.js +121 -0
  23. package/cypress/e2e/2-advanced-examples/utilities.cy.js +107 -0
  24. package/cypress/e2e/2-advanced-examples/viewport.cy.js +58 -0
  25. package/cypress/e2e/2-advanced-examples/waiting.cy.js +30 -0
  26. package/cypress/e2e/2-advanced-examples/window.cy.js +22 -0
  27. package/cypress/e2e/toolSlotsToData.cy.ts +127 -0
  28. package/cypress/e2e/toolUniqueByKey.cy.ts +79 -0
  29. package/cypress/support/component.ts +20 -1
  30. package/cypress.config.ts +1 -0
  31. package/dist/br-dionysus.es.js +5872 -5695
  32. package/dist/br-dionysus.umd.js +6 -5
  33. package/dist/cypress/component/MInputNumber.cy.d.ts +0 -0
  34. package/dist/cypress/component/MSelect.cy.d.ts +1 -0
  35. package/dist/cypress/component/MSelectTable.cy.d.ts +1 -0
  36. package/dist/cypress/component/MSelectV2.cy.d.ts +1 -0
  37. package/dist/cypress/component/MTable.cy.d.ts +1 -0
  38. package/dist/cypress/e2e/spec.cy.d.ts +0 -0
  39. package/dist/cypress/e2e/toolCheckType.cy.d.ts +1 -0
  40. package/dist/cypress/e2e/toolCompareStructures.cy.d.ts +1 -0
  41. package/dist/cypress/e2e/toolCreateHash.cy.d.ts +1 -0
  42. package/dist/cypress/e2e/toolMoneyFormat.cy.d.ts +1 -0
  43. package/dist/cypress/e2e/toolSlotsToData.cy.d.ts +1 -0
  44. package/dist/cypress/e2e/toolUniqueByKey.cy.d.ts +1 -0
  45. package/dist/cypress/support/commands.d.ts +0 -0
  46. package/dist/cypress/support/component.d.ts +9 -0
  47. package/dist/cypress/support/e2e.d.ts +0 -0
  48. package/dist/index.css +1 -1
  49. package/dist/packages/Hook/usePackageConfig/usePackageConfig.d.ts +2 -0
  50. package/dist/packages/MTable/src/MTable.vue.d.ts +49 -15
  51. package/dist/packages/MTable/src/token.d.ts +13 -0
  52. package/dist/packages/MTableColumn/src/MTableColumn.vue.d.ts +9 -14
  53. package/dist/packages/Tool/globalEvents/globalEvents.d.ts +26 -0
  54. package/dist/packages/index.d.ts +2 -0
  55. package/mock/ajax/index.ts +48 -0
  56. package/mock/index.ts +51 -0
  57. package/mock/interface/enum.ts +4 -0
  58. package/mock/interface/type.ts +32 -0
  59. package/mock/mockData/book.ts +48 -0
  60. package/package.json +4 -2
  61. package/packages/Hook/usePackageConfig/usePackageConfig.ts +6 -4
  62. package/packages/Hook/useZIndex/useGlobalZIndex.ts +1 -1
  63. package/packages/MDialog/src/MDialog.vue +8 -8
  64. package/packages/MSelectTable/docs/DemoTest1.vue +25 -43
  65. package/packages/MSelectTable/docs/DemoTest2.vue +25 -43
  66. package/packages/MSelectTable/docs/DemoTest3.vue +29 -45
  67. package/packages/MSelectTable/docs/DemoTest4.vue +32 -39
  68. package/packages/MSelectTable/docs/DemoTest5.vue +37 -50
  69. package/packages/MSelectTable/docs/DemoTest6.vue +29 -44
  70. package/packages/MSelectTable/docs/README.md +1 -0
  71. package/packages/MSelectTable/src/MSelectTable.vue +9 -6
  72. package/packages/MTable/docs/DemoTest4.vue +0 -1
  73. package/packages/MTable/docs/DemoTest6.vue +122 -0
  74. package/packages/MTable/docs/DemoTest7.vue +138 -0
  75. package/packages/MTable/docs/README.md +10 -10
  76. package/packages/MTable/docs/demo.vue +10 -2
  77. package/packages/MTable/src/MBatchEdit.vue +1 -0
  78. package/packages/MTable/src/MTable.vue +254 -38
  79. package/packages/MTable/src/token.ts +14 -1
  80. package/packages/MTableColumn/docs/README.md +1 -0
  81. package/packages/MTableColumn/src/MTableColumn.vue +98 -24
  82. package/packages/Tool/globalEvents/README.md +23 -0
  83. package/packages/Tool/globalEvents/globalEvents.ts +79 -0
  84. package/packages/Tool/moneyFormat/moneyFormat.ts +2 -1
  85. package/packages/index.ts +2 -0
  86. package/packages/typings/global.d.ts +6 -2
  87. package/tags.json +1 -1
  88. package/tsconfig.json +3 -1
  89. package/vite.config.ts +1 -1
  90. package/web-types.json +1 -1
  91. package/cypress/screenshots/MSelectTable.cy.ts//344/270/213/346/213/211/350/241/250/346/240/274/351/200/211/346/213/251/345/231/250/347/273/204/344/273/266MSelectTable -- /346/265/213/350/257/225/345/215/225/351/200/211/345/212/237/350/203/275 (failed).png +0 -0
  92. package/cypress/screenshots/MSelectTable.cy.ts//344/270/213/346/213/211/350/241/250/346/240/274/351/200/211/346/213/251/345/231/250/347/273/204/344/273/266MSelectTable -- /346/265/213/350/257/225/345/237/272/347/241/200/345/212/237/350/203/275 (failed).png +0 -0
  93. package/cypress/screenshots/MSelectTable.cy.ts//344/270/213/346/213/211/350/241/250/346/240/274/351/200/211/346/213/251/345/231/250/347/273/204/344/273/266MSelectTable -- /346/265/213/350/257/225/345/244/232/351/200/211/345/212/237/350/203/275 (failed).png +0 -0
  94. package/cypress/screenshots/MSelectTable.cy.ts//344/270/213/346/213/211/350/241/250/346/240/274/351/200/211/346/213/251/345/231/250/347/273/204/344/273/266MSelectTable -- /346/265/213/350/257/225/350/277/234/347/250/213/346/220/234/347/264/242/345/212/237/350/203/275 (failed).png +0 -0
  95. package/src/global.d.ts +0 -7
@@ -38,7 +38,7 @@
38
38
 
39
39
  <script setup lang="ts">
40
40
  import { ref, useSlots, watch, computed } from 'vue'
41
- import { ElDialog } from 'element-plus'
41
+ // import { ElDialog } from 'element-plus'
42
42
  import createHash from '../../Tool/createHash/createHash'
43
43
 
44
44
  const slots = useSlots()
@@ -213,15 +213,15 @@ watch(
213
213
  }
214
214
  )
215
215
 
216
- const dialogRef = ref<InstanceType<typeof ElDialog> | null>(null)
216
+ const dialogRef = ref<any | null>(null)
217
217
 
218
218
  defineExpose({
219
- open: () => dialogRef?.value.open,
220
- opened: () => dialogRef?.value.opened,
221
- close: () => dialogRef?.value.close,
222
- closed: () => dialogRef?.value.closed,
223
- openAutoFocus: () => dialogRef?.value.openAutoFocus,
224
- closeAutoFocus: () => dialogRef?.value.closeAutoFocus
219
+ open: () => dialogRef?.value?.open,
220
+ opened: () => dialogRef?.value?.opened,
221
+ close: () => dialogRef?.value?.close,
222
+ closed: () => dialogRef?.value?.closed,
223
+ openAutoFocus: () => dialogRef?.value?.openAutoFocus,
224
+ closeAutoFocus: () => dialogRef?.value?.closeAutoFocus
225
225
  })
226
226
  </script>
227
227
 
@@ -7,7 +7,7 @@
7
7
  v-model="code"
8
8
  :tableTitle="commodityOptionsTitle"
9
9
  :options="options"
10
- :keywords="{ label: 'ApprovedQtyPU', value: 'DocNo' }"
10
+ :keywords="{ label: 'name', value: 'sn' }"
11
11
  :total="total"
12
12
  scrollbarAlwaysOn
13
13
  filterable
@@ -23,65 +23,47 @@
23
23
  <script setup lang="ts">
24
24
  import { ref } from 'vue'
25
25
  import { Page } from './../../typings/class'
26
+ import { getBookList } from '../../../mock'
27
+ import { Book, BookList } from '../../../mock/mockData/book'
26
28
 
27
- const commodityOptionsTitle: TableTitle[] = [{
28
- prop: 'PRDocType',
29
- label: '单据类型'
29
+ const commodityOptionsTitle: TableTitle<Book>[] = [{
30
+ prop: 'sn',
31
+ label: '编码'
30
32
  }, {
31
- prop: 'DocNo',
32
- label: '请购单号'
33
+ prop: 'name',
34
+ label: '书名'
33
35
  }, {
34
- prop: 'ApprovedQtyPU',
35
- label: '名称'
36
+ prop: 'author',
37
+ label: '作者'
36
38
  }, {
37
- prop: 'ACCode',
38
- label: '货币'
39
+ // prop: 'address',
40
+ // label: '发行地'
41
+ // }, {
42
+ prop: 'date',
43
+ label: '入库时间'
39
44
  }]
40
45
 
41
46
  const code = ref<string>('')
42
47
 
43
- const total = ref(0)
44
- const options = ref<RowDataType[]>([])
45
- interface RowDataType {
46
- /** 单据类型 */
47
- PRDocType: string;
48
- /** 请购单号 */
49
- DocNo: number;
50
- /** 名称 */
51
- ApprovedQtyPU: string;
52
- /** 货币 */
53
- ACCode: string;
54
- }
55
- const mockData: RowDataType[] = []
56
- for (let i = 0; i < 1000; i++) {
57
- mockData.push({
58
- PRDocType: '测试数据' + (i + 1),
59
- DocNo: i + 1,
60
- ApprovedQtyPU: 'ApprovedQtyPU' + (i + 1),
61
- ACCode: 'ACCode'
62
- })
63
- }
64
- const getData = async (query: string, page: Page) => {
65
- return new Promise<void>((resolve) => {
66
- setTimeout(() => {
67
- const start = (page.currentPage - 1) * page.pageSize
68
- options.value = mockData.filter(item => item.ApprovedQtyPU.includes(query) || item.PRDocType.includes(query)).slice(start, start + page.pageSize)
69
- total.value = mockData.length
70
- resolve()
71
- }, 500)
72
- })
73
- }
48
+ const total = ref<number>(0)
49
+ const options = ref<BookList>([])
74
50
 
75
51
  const selected = (value: string) => {
76
52
  console.log(value)
77
53
  }
78
54
 
79
55
  const toPage = (page: Page, str: any) => {
80
- getData(str, page)
56
+ remoteMethod(str, page)
81
57
  }
82
58
 
83
59
  const remoteMethod = async (query: string, page: Page = new Page()) => {
84
- await getData(query, page)
60
+ const res = await getBookList({
61
+ keyword: query,
62
+ page: page.currentPage,
63
+ pageSize: page.pageSize
64
+ })
65
+ options.value = res.data?.rows ?? []
66
+ total.value = res.data?.total ?? 0
85
67
  }
86
68
  </script>
87
69
 
@@ -9,7 +9,7 @@
9
9
  :name="name"
10
10
  :tableTitle="commodityOptionsTitle"
11
11
  :options="options"
12
- :keywords="{ label: 'ApprovedQtyPU', value: 'DocNo' }"
12
+ :keywords="{ label: 'name', value: 'sn' }"
13
13
  :total="total"
14
14
  scrollbarAlwaysOn
15
15
  filterable
@@ -25,66 +25,48 @@
25
25
  <script setup lang="ts">
26
26
  import { ref } from 'vue'
27
27
  import { Page } from './../../typings/class'
28
+ import { getBookList } from '../../../mock'
29
+ import { Book, BookList } from '../../../mock/mockData/book'
28
30
 
29
- const commodityOptionsTitle: TableTitle[] = [{
30
- prop: 'PRDocType',
31
- label: '单据类型'
31
+ const commodityOptionsTitle: TableTitle<Book>[] = [{
32
+ prop: 'sn',
33
+ label: '编码'
32
34
  }, {
33
- prop: 'DocNo',
34
- label: '请购单号'
35
+ prop: 'name',
36
+ label: '书名'
35
37
  }, {
36
- prop: 'ApprovedQtyPU',
37
- label: '名称'
38
+ prop: 'author',
39
+ label: '作者'
38
40
  }, {
39
- prop: 'ACCode',
40
- label: '货币'
41
+ // prop: 'address',
42
+ // label: '发行地'
43
+ // }, {
44
+ prop: 'date',
45
+ label: '入库时间'
41
46
  }]
42
47
 
43
48
  const code = ref<string>('')
44
49
  const name = ref<string>('这是name')
45
50
 
46
- const total = ref(0)
47
- const options = ref<RowDataType[]>([])
48
- interface RowDataType {
49
- /** 单据类型 */
50
- PRDocType: string;
51
- /** 请购单号 */
52
- DocNo: number;
53
- /** 名称 */
54
- ApprovedQtyPU: string;
55
- /** 货币 */
56
- ACCode: string;
57
- }
58
- const mockData: RowDataType[] = []
59
- for (let i = 0; i < 1000; i++) {
60
- mockData.push({
61
- PRDocType: '测试数据' + (i + 1),
62
- DocNo: i + 1,
63
- ApprovedQtyPU: 'ApprovedQtyPU' + (i + 1),
64
- ACCode: 'ACCode'
65
- })
66
- }
67
- const getData = async (query: string, page: any) => {
68
- return new Promise<void>((resolve) => {
69
- setTimeout(() => {
70
- const start = (page.currentPage - 1) * page.pageSize
71
- options.value = mockData.filter(item => item.ApprovedQtyPU.includes(query) || item.PRDocType.includes(query)).slice(start, start + page.pageSize)
72
- total.value = mockData.length
73
- resolve()
74
- }, 500)
75
- })
76
- }
51
+ const total = ref<number>(0)
52
+ const options = ref<BookList>([])
77
53
 
78
54
  const selected = (value: string) => {
79
55
  console.log(value)
80
56
  }
81
57
 
82
58
  const toPage = (page: Page, str: any) => {
83
- getData(str, page)
59
+ remoteMethod(str, page)
84
60
  }
85
61
 
86
62
  const remoteMethod = async (query: string, page: Page = new Page()) => {
87
- await getData(query, page)
63
+ const res = await getBookList({
64
+ keyword: query,
65
+ page: page.currentPage,
66
+ pageSize: page.pageSize
67
+ })
68
+ options.value = res.data?.rows ?? []
69
+ total.value = res.data?.total ?? 0
88
70
  }
89
71
  </script>
90
72
 
@@ -7,7 +7,7 @@
7
7
  v-model="code"
8
8
  :tableTitle="commodityOptionsTitle"
9
9
  :options="options"
10
- :keywords="{ label: 'ApprovedQtyPU', value: 'DocNo' }"
10
+ :keywords="{ label: 'name', value: 'sn' }"
11
11
  :total="total"
12
12
  scrollbarAlwaysOn
13
13
  filterable
@@ -30,47 +30,36 @@
30
30
  <script setup lang="ts">
31
31
  import { ref } from 'vue'
32
32
  import { Page } from './../../typings/class'
33
+ import { Book, BookList } from '../../../mock/mockData/book'
34
+ import { getBookList } from '../../../mock'
33
35
 
34
- const commodityOptionsTitle: TableTitle[] = [{
35
- prop: 'PRDocType',
36
- label: '单据类型'
36
+ const commodityOptionsTitle: TableTitle<Book>[] = [{
37
+ prop: 'sn',
38
+ label: '编码'
37
39
  }, {
38
- prop: 'DocNo',
39
- label: '请购单号'
40
+ prop: 'name',
41
+ label: '书名'
40
42
  }, {
41
- prop: 'ApprovedQtyPU',
42
- label: '名称'
43
+ prop: 'author',
44
+ label: '作者'
43
45
  }, {
44
- prop: 'ACCode',
45
- label: '货币'
46
+ // prop: 'address',
47
+ // label: '发行地'
48
+ // }, {
49
+ prop: 'date',
50
+ label: '入库时间'
46
51
  }]
47
52
 
48
53
  const code = ref<string | number | Array<string | number>>([])
49
54
 
50
- const total = ref(0)
51
- const options = ref<any[]>([])
52
- const mockData: any[] = []
53
- for (let i = 0; i < 1000; i++) {
54
- mockData.push({
55
- PRDocType: '测试数据' + (i + 1),
56
- DocNo: i + 1,
57
- ApprovedQtyPU: 'ApprovedQtyPU' + (i + 1),
58
- ACCode: 'ACCode'
59
- })
60
- }
55
+ const total = ref<number>(0)
56
+ const options = ref<BookList>([])
61
57
 
62
58
  setTimeout(() => {
63
- options.value = [{
64
- PRDocType: 'xxxPRDocType1',
65
- DocNo: 1,
66
- ApprovedQtyPU: 'xxxApprovedQtyPU1',
67
- ACCode: 'xxxACCode1'
68
- }, {
69
- PRDocType: 'xxxPRDocType2',
70
- DocNo: 2,
71
- ApprovedQtyPU: 'xxxApprovedQtyPU2',
72
- ACCode: 'xxxACCode2'
73
- }]
59
+ options.value = [
60
+ { id: 4, name: '西游记', date: '2023-10-27 14:22:45', author: '吴承恩', address: '中国 江苏', sn: 'sn2310270004' },
61
+ { id: 5, name: '水浒传', date: '2023-10-28 18:33:02', author: '施耐庵', address: '中国 山东', sn: 'sn2310280005' }
62
+ ]
74
63
  }, 100)
75
64
 
76
65
  const selected = (value: string | number | Array<number | string>) => {
@@ -78,30 +67,25 @@ const selected = (value: string | number | Array<number | string>) => {
78
67
  }
79
68
 
80
69
  const toPage = (page: Page, str: any) => {
81
- console.log('str', str)
82
- getData(str, page)
70
+ remoteMethod(str, page)
83
71
  }
84
72
  const selectMultiple = (value: string | number | Array<number | string>) => {
85
73
  code.value = value
86
74
  }
87
75
 
88
76
  const remoteMethod = async (query: string, page: Page = new Page()) => {
89
- await getData(query, page)
77
+ const res = await getBookList({
78
+ keyword: query,
79
+ page: page.currentPage,
80
+ pageSize: page.pageSize
81
+ })
82
+ options.value = res.data?.rows ?? []
83
+ total.value = res.data?.total ?? 0
90
84
  }
91
85
 
92
86
  const selectChange = (value: string | number | Array<number | string>) => {
93
87
  console.log('选择变化事件触发,注意,绑定值没有发生变化', value)
94
88
  }
95
- const getData = async (query: string, page: any) => {
96
- return new Promise<void>((resolve) => {
97
- setTimeout(() => {
98
- const start = (page.currentPage - 1) * page.pageSize
99
- options.value = mockData.filter(item => item.PRDocType.includes(query)).slice(start, start + page.pageSize)
100
- total.value = mockData.length
101
- resolve()
102
- }, 500)
103
- })
104
- }
105
89
  </script>
106
90
 
107
91
  <style>
@@ -7,7 +7,7 @@
7
7
  v-model="code"
8
8
  :tableTitle="commodityOptionsTitle"
9
9
  :options="options"
10
- :keywords="{ label: 'ApprovedQtyPU', value: 'DocNo' }"
10
+ :keywords="{ label: 'name', value: 'sn' }"
11
11
  :total="total"
12
12
  scrollbarAlwaysOn
13
13
  filterable
@@ -25,44 +25,42 @@
25
25
  <script setup lang="ts">
26
26
  import { ref, onMounted } from 'vue'
27
27
  import { Page } from './../../typings/class'
28
+ import { Book, BookList } from '../../../mock/mockData/book'
29
+ import { getBookList } from '../../../mock'
28
30
 
29
- const commodityOptionsTitle: TableTitle[] = [{
30
- prop: 'PRDocType',
31
- label: '单据类型'
31
+ const commodityOptionsTitle: TableTitle<Book>[] = [{
32
+ prop: 'sn',
33
+ label: '编码'
32
34
  }, {
33
- prop: 'DocNo',
34
- label: '请购单号'
35
+ prop: 'name',
36
+ label: '书名'
35
37
  }, {
36
- prop: 'ApprovedQtyPU',
37
- label: '名称'
38
-
38
+ prop: 'author',
39
+ label: '作者'
39
40
  }, {
40
- prop: 'ACCode',
41
- label: '货币'
41
+ // prop: 'address',
42
+ // label: '发行地'
43
+ // }, {
44
+ prop: 'date',
45
+ label: '入库时间'
42
46
  }]
43
47
 
44
48
  const code = ref<string | number | Array<string | number>>([])
45
49
 
46
- const total = ref(0)
47
- const options = ref<any[]>([])
48
- const mockData: any[] = []
49
- for (let i = 0; i < 1000; i++) {
50
- mockData.push({
51
- PRDocType: '测试数据' + (i + 1),
52
- DocNo: i + 1,
53
- ApprovedQtyPU: 'ApprovedQtyPU' + (i + 1),
54
- ACCode: 'ACCode'
55
- })
56
- }
57
- const getDataList = (page: Page = new Page(), str: string = '') => {
58
- setTimeout(() => {
59
- options.value = mockData.filter(item => item.PRDocType.includes(str)).slice(0, page.pageSize)
60
- total.value = mockData.length
50
+ const total = ref<number>(0)
51
+ const options = ref<BookList>([])
52
+ const getDataList = async (page: Page = new Page(), str: string = '') => {
53
+ const res = await getBookList({
54
+ keyword: str,
55
+ page: page.currentPage,
56
+ pageSize: page.pageSize
61
57
  })
58
+ options.value = res.data?.rows ?? []
59
+ total.value = res.data?.total ?? 0
62
60
  }
63
61
 
64
62
  setTimeout(() => {
65
- code.value = [1, 2]
63
+ code.value = ['sn2311080016', 'sn2311090017']
66
64
  }, 100)
67
65
 
68
66
  const selected = (value: string | number | Array<number | string>) => {
@@ -70,25 +68,20 @@ const selected = (value: string | number | Array<number | string>) => {
70
68
  }
71
69
 
72
70
  const toPage = (page: Page, str: any) => {
73
- getDataList(page, str)
71
+ remoteMethod(str, page)
74
72
  }
75
73
  const selectMultiple = (value: string | number | Array<number | string>) => {
76
74
  code.value = value
77
75
  }
78
76
 
79
77
  const remoteMethod = async (query: string, page: Page = new Page()) => {
80
- await getData(query, page)
81
- }
82
-
83
- const getData = async (query: string, page: any) => {
84
- return new Promise<void>((resolve) => {
85
- setTimeout(() => {
86
- const start = (page.currentPage - 1) * page.pageSize
87
- options.value = mockData.filter(item => item.PRDocType.includes(query)).slice(start, start + page.pageSize)
88
- total.value = mockData.length
89
- resolve()
90
- }, 500)
78
+ const res = await getBookList({
79
+ keyword: query,
80
+ page: page.currentPage,
81
+ pageSize: page.pageSize
91
82
  })
83
+ options.value = res.data?.rows ?? []
84
+ total.value = res.data?.total ?? 0
92
85
  }
93
86
 
94
87
  onMounted(() => {
@@ -7,7 +7,7 @@
7
7
  v-model="code"
8
8
  :tableTitle="commodityOptionsTitle"
9
9
  :options="options"
10
- :keywords="{ label: 'ApprovedQtyPU', value: 'DocNo' }"
10
+ :keywords="{ label: 'name', value: 'sn' }"
11
11
  :total="total"
12
12
  scrollbarAlwaysOn
13
13
  filterable
@@ -25,54 +25,46 @@
25
25
  <script setup lang="ts">
26
26
  import { ref, onMounted } from 'vue'
27
27
  import { Page } from './../../typings/class'
28
+ import { Book, BookList } from '../../../mock/mockData/book'
29
+ import { getBookList } from '../../../mock'
28
30
 
29
- const commodityOptionsTitle: TableTitle[] = [{
30
- prop: 'PRDocType',
31
- label: '单据类型'
31
+ const commodityOptionsTitle: TableTitle<Book>[] = [{
32
+ prop: 'sn',
33
+ label: '编码'
32
34
  }, {
33
- prop: 'DocNo',
34
- label: '请购单号'
35
+ prop: 'name',
36
+ label: '书名'
35
37
  }, {
36
- prop: 'ApprovedQtyPU',
37
- label: '名称'
38
-
38
+ prop: 'author',
39
+ label: '作者'
39
40
  }, {
40
- prop: 'ACCode',
41
- label: '货币'
41
+ // prop: 'address',
42
+ // label: '发行地'
43
+ // }, {
44
+ prop: 'date',
45
+ label: '入库时间'
42
46
  }]
43
47
 
44
- const code = ref<string | number | Array<string | number>>([1, '2444'])
48
+ const code = ref<string | number | Array<string | number>>(['sn2310240001', 'sn2310250002'])
45
49
 
46
- const total = ref(0)
47
- const options = ref<any[]>([])
48
- const mockData: any[] = []
49
- for (let i = 0; i < 1000; i++) {
50
- mockData.push({
51
- PRDocType: '测试数据' + (i + 1),
52
- DocNo: i + 1,
53
- ApprovedQtyPU: 'ApprovedQtyPU' + (i + 1),
54
- ACCode: 'ACCode'
55
- })
56
- }
57
- const getDataList = (page: Page = new Page(), str: string = '') => {
58
- setTimeout(() => {
59
- options.value = mockData.filter(item => item.PRDocType.includes(str)).slice(0, page.pageSize)
60
- total.value = mockData.length
50
+ const total = ref<number>(0)
51
+ const options = ref<BookList>([])
52
+
53
+ const getDataList = async (page: Page = new Page(), str: string = '') => {
54
+ const res = await getBookList({
55
+ keyword: str,
56
+ page: page.currentPage,
57
+ pageSize: page.pageSize
61
58
  })
59
+ options.value = res.data?.rows ?? []
60
+ total.value = res.data?.total ?? 0
62
61
  }
63
62
 
64
63
  setTimeout(() => {
65
- options.value = [{
66
- PRDocType: 'xxxPRDocType1',
67
- DocNo: 1,
68
- ApprovedQtyPU: 'xxxApprovedQtyPU1',
69
- ACCode: 'xxxACCode1'
70
- }, {
71
- PRDocType: 'xxxPRDocType2',
72
- DocNo: 2,
73
- ApprovedQtyPU: 'xxxApprovedQtyPU2',
74
- ACCode: 'xxxACCode2'
75
- }]
64
+ options.value = [
65
+ { id: 4, name: '西游记', date: '2023-10-27 14:22:45', author: '吴承恩', address: '中国 江苏', sn: 'sn2310270004' },
66
+ { id: 5, name: '水浒传', date: '2023-10-28 18:33:02', author: '施耐庵', address: '中国 山东', sn: 'sn2310280005' }
67
+ ]
76
68
  }, 100)
77
69
 
78
70
  const selected = (value: string | number | Array<number | string>) => {
@@ -80,25 +72,20 @@ const selected = (value: string | number | Array<number | string>) => {
80
72
  }
81
73
 
82
74
  const toPage = (page: Page, str: any) => {
83
- getDataList(page, str)
75
+ remoteMethod(str, page)
84
76
  }
85
77
  const selectMultiple = (value: string | number | Array<number | string>) => {
86
78
  code.value = value
87
79
  }
88
80
 
89
81
  const remoteMethod = async (query: string, page: Page = new Page()) => {
90
- await getData(query, page)
91
- }
92
-
93
- const getData = async (query: string, page: any) => {
94
- return new Promise<void>((resolve) => {
95
- setTimeout(() => {
96
- const start = (page.currentPage - 1) * page.pageSize
97
- options.value = mockData.filter(item => item.PRDocType.includes(query)).slice(start, start + page.pageSize)
98
- total.value = mockData.length
99
- resolve()
100
- }, 500)
82
+ const res = await getBookList({
83
+ keyword: query,
84
+ page: page.currentPage,
85
+ pageSize: page.pageSize
101
86
  })
87
+ options.value = res.data?.rows ?? []
88
+ total.value = res.data?.total ?? 0
102
89
  }
103
90
 
104
91
  onMounted(() => {