br-dionysus 1.6.6 → 1.6.7
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/README.md +90 -52
- package/attributes.json +1 -1
- package/dist/br-dionysus.es.js +4659 -4595
- package/dist/br-dionysus.umd.js +8 -8
- package/dist/index.css +1 -1
- package/dist/packages/MTable/src/MTable.vue.d.ts +21 -0
- package/dist/packages/MTable/src/token.d.ts +10 -1
- package/docs/assets/README-BIIm2ID5.css +1 -0
- package/docs/assets/README-BVC502ud.js +1 -0
- package/docs/assets/README-BaVHXTcr.js +1 -0
- package/docs/assets/README-BkoXPzeT.js +1 -0
- package/docs/assets/README-BpY9wwJ5.js +1 -0
- package/docs/assets/README-BxVIiLkB.css +1 -0
- package/docs/assets/README-C8q4oePg.css +1 -0
- package/docs/assets/README-C9E9QEak.js +1 -0
- package/docs/assets/README-CJnIKztR.css +1 -0
- package/docs/assets/README-CPi9K5cm.css +1 -0
- package/docs/assets/README-CVikrcuu.js +1 -0
- package/docs/assets/README-CwxKEz5n.js +1 -0
- package/docs/assets/README-D-sCcuuV.js +1 -0
- package/docs/assets/README-D1NyMPDh.css +1 -0
- package/docs/assets/README-D8dRnWkj.css +1 -0
- package/docs/assets/README-DC5fWcO7.css +1 -0
- package/docs/assets/README-DFookNbq.js +1 -0
- package/docs/assets/README-DJM0QNOa.css +1 -0
- package/docs/assets/README-DJsWJjpr.js +2 -0
- package/docs/assets/README-DZH0ZBFE.js +1 -0
- package/docs/assets/README-DuLXE9ma.css +1 -0
- package/docs/assets/README-DxdjMTiZ.js +1 -0
- package/docs/assets/README-DxzXrur_.js +1 -0
- package/docs/assets/README-ZSEyYWl3.css +1 -0
- package/docs/assets/empty-BHv0FmNK.png +0 -0
- package/docs/assets/index-B3d27dSP.js +66 -0
- package/docs/assets/index-BeGJML3j.css +1 -0
- package/docs/index.html +14 -0
- package/docs/packages/Hook/usePackageConfig/README.md +35 -0
- package/docs/packages/Hook/usePackageConfig/demo.vue +28 -0
- package/docs/packages/Hook/usePackageConfig/usePackageConfig.ts +39 -0
- package/docs/packages/Hook/useRemainingSpace/README.md +26 -0
- package/docs/packages/Hook/useRemainingSpace/useRemainingSpace.ts +148 -0
- package/docs/packages/Hook/useTableConfig/README.md +50 -0
- package/docs/packages/Hook/useTableConfig/demo.vue +134 -0
- package/docs/packages/Hook/useTableConfig/useTableConfig.ts +173 -0
- package/docs/packages/Hook/useZIndex/README.md +6 -0
- package/docs/packages/Hook/useZIndex/useGlobalZIndex.ts +34 -0
- package/docs/packages/MDialog/docs/README.md +26 -0
- package/docs/packages/MDialog/docs/demo.vue +72 -0
- package/docs/packages/MDialog/index.ts +10 -0
- package/docs/packages/MDialog/src/MDialog.vue +150 -0
- package/docs/packages/MInline/docs/README.md +26 -0
- package/docs/packages/MInline/docs/demo.vue +138 -0
- package/docs/packages/MInline/index.ts +10 -0
- package/docs/packages/MInline/src/MInline.vue +284 -0
- package/docs/packages/MInputNumber/docs/README.md +35 -0
- package/docs/packages/MInputNumber/docs/demo.vue +17 -0
- package/docs/packages/MInputNumber/index.ts +10 -0
- package/docs/packages/MInputNumber/src/MInputNumber.vue +268 -0
- package/docs/packages/MSelect/docs/README.md +20 -0
- package/docs/packages/MSelect/docs/demo.vue +36 -0
- package/docs/packages/MSelect/index.ts +17 -0
- package/docs/packages/MSelect/src/MOption.vue +43 -0
- package/docs/packages/MSelect/src/MSelect.vue +57 -0
- package/docs/packages/MSelect/src/token.ts +8 -0
- package/docs/packages/MSelectTable/docs/README.md +88 -0
- package/docs/packages/MSelectTable/docs/demo.vue +196 -0
- package/docs/packages/MSelectTable/index.ts +10 -0
- package/docs/packages/MSelectTable/src/MSelectTable.vue +493 -0
- package/docs/packages/MSelectTableV1/docs/README.md +49 -0
- package/docs/packages/MSelectTableV1/docs/demo.vue +77 -0
- package/docs/packages/MSelectTableV1/index.ts +10 -0
- package/docs/packages/MSelectTableV1/src/MSelectTableV1.vue +460 -0
- package/docs/packages/MSelectV2/docs/README.md +31 -0
- package/docs/packages/MSelectV2/docs/demo.vue +36 -0
- package/docs/packages/MSelectV2/index.ts +10 -0
- package/docs/packages/MSelectV2/src/MSelectV2.vue +116 -0
- package/docs/packages/MTable/docs/README.md +40 -0
- package/docs/packages/MTable/docs/demo.vue +93 -0
- package/docs/packages/MTable/index.ts +10 -0
- package/docs/packages/MTable/src/MTable.vue +228 -0
- package/docs/packages/MTable/src/token.ts +9 -0
- package/docs/packages/MTableColumn/docs/README.md +22 -0
- package/docs/packages/MTableColumn/docs/demo.vue +110 -0
- package/docs/packages/MTableColumn/index.ts +10 -0
- package/docs/packages/MTableColumn/src/MTableColumn.vue +345 -0
- package/docs/packages/MTableColumnSet/docs/README.md +31 -0
- package/docs/packages/MTableColumnSet/docs/demo.vue +36 -0
- package/docs/packages/MTableColumnSet/index.ts +10 -0
- package/docs/packages/MTableColumnSet/src/MTableColumnSet.vue +310 -0
- package/docs/packages/README.md +10 -0
- package/docs/packages/SkinConfig/docs/README.md +42 -0
- package/docs/packages/SkinConfig/docs/demo.vue +680 -0
- package/docs/packages/SkinConfig/index.ts +10 -0
- package/docs/packages/SkinConfig/src/SkinConfig.vue +478 -0
- package/docs/packages/SkinConfig/src/useSkin.ts +230 -0
- package/docs/packages/TabPage/docs/README.md +10 -0
- package/docs/packages/TabPage/docs/demo.vue +96 -0
- package/docs/packages/TabPage/index.ts +10 -0
- package/docs/packages/TabPage/src/TabPage.vue +566 -0
- package/docs/packages/Tool/moneyFormat/README.md +15 -0
- package/docs/packages/Tool/moneyFormat/moneyFormat.ts +69 -0
- package/docs/packages/index.ts +61 -0
- package/docs/packages/list.json +80 -0
- package/docs/packages/typings/class.ts +22 -0
- package/docs/packages/typings/enum.ts +9 -0
- package/docs/packages/typings/global.d.ts +69 -0
- package/docs/packages/typings/interface.ts +6 -0
- package/package.json +1 -1
- package/packages/MTable/docs/README.md +22 -17
- package/packages/MTable/docs/demo.vue +15 -1
- package/packages/MTable/src/MTable.vue +54 -6
- package/packages/MTable/src/token.ts +11 -2
- package/packages/MTableColumn/docs/README.md +8 -8
- package/packages/MTableColumn/src/MTableColumn.vue +72 -6
- package/tags.json +1 -1
- package/web-types.json +1 -1
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<el-option v-bind="attrs">
|
|
3
|
+
<div
|
|
4
|
+
class="u-group"
|
|
5
|
+
v-if="selectData?.checkboxMode"
|
|
6
|
+
>
|
|
7
|
+
<el-checkbox
|
|
8
|
+
class="u-checkbox"
|
|
9
|
+
v-model="checkboxValue"
|
|
10
|
+
:disabled="attrs.disabled"
|
|
11
|
+
/>
|
|
12
|
+
<slot>
|
|
13
|
+
<span>{{ attrs.label }}</span>
|
|
14
|
+
</slot>
|
|
15
|
+
</div>
|
|
16
|
+
</el-option>
|
|
17
|
+
</template>
|
|
18
|
+
|
|
19
|
+
<script setup lang="ts">
|
|
20
|
+
import { inject, useAttrs, computed } from 'vue'
|
|
21
|
+
import { selectKey } from 'packages/MSelect/src/token'
|
|
22
|
+
|
|
23
|
+
const attrs = useAttrs()
|
|
24
|
+
|
|
25
|
+
const selectData = inject(selectKey)
|
|
26
|
+
const checkboxValue = computed(() => {
|
|
27
|
+
if (selectData?.multiple && Array.isArray(selectData?.modelValue?.value)) return selectData?.modelValue?.value?.includes(attrs.value as string | number)
|
|
28
|
+
return selectData?.modelValue.value === attrs.value
|
|
29
|
+
})
|
|
30
|
+
</script>
|
|
31
|
+
|
|
32
|
+
<style scoped lang="scss">
|
|
33
|
+
.u-group {
|
|
34
|
+
display: flex;
|
|
35
|
+
align-items: center;
|
|
36
|
+
|
|
37
|
+
.u-checkbox {
|
|
38
|
+
padding-right: 4px;
|
|
39
|
+
pointer-events: none;
|
|
40
|
+
margin-right: 0;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
</style>
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<el-select
|
|
3
|
+
v-bind="attrs"
|
|
4
|
+
:multiple="props.multiple"
|
|
5
|
+
>
|
|
6
|
+
<slot></slot>
|
|
7
|
+
<template
|
|
8
|
+
v-for="(slot, name) in $slots"
|
|
9
|
+
#[name]="slotData"
|
|
10
|
+
>
|
|
11
|
+
<slot
|
|
12
|
+
:name="name"
|
|
13
|
+
v-bind="slotData"
|
|
14
|
+
></slot>
|
|
15
|
+
</template>
|
|
16
|
+
</el-select>
|
|
17
|
+
</template>
|
|
18
|
+
|
|
19
|
+
<script setup lang="ts">
|
|
20
|
+
import { provide, useAttrs, ref, watch } from 'vue'
|
|
21
|
+
import { selectKey } from 'packages/MSelect/src/token'
|
|
22
|
+
|
|
23
|
+
const props = withDefaults(defineProps<{
|
|
24
|
+
/** 是否为checkbox模式 */
|
|
25
|
+
checkboxMode?: boolean,
|
|
26
|
+
/** 多选 */
|
|
27
|
+
multiple?: boolean
|
|
28
|
+
// /** 是否显示全选 */
|
|
29
|
+
// showAll?: boolean
|
|
30
|
+
}>(), {
|
|
31
|
+
checkboxMode: false,
|
|
32
|
+
multiple: false
|
|
33
|
+
// showAll: false
|
|
34
|
+
})
|
|
35
|
+
|
|
36
|
+
const attrs = useAttrs()
|
|
37
|
+
|
|
38
|
+
const modelValue = ref<string | number>(attrs.modelValue as string | number)
|
|
39
|
+
watch(
|
|
40
|
+
() => attrs.modelValue,
|
|
41
|
+
() => {
|
|
42
|
+
modelValue.value = attrs.modelValue as string | number
|
|
43
|
+
}
|
|
44
|
+
)
|
|
45
|
+
|
|
46
|
+
provide(selectKey, {
|
|
47
|
+
checkboxMode: props.checkboxMode,
|
|
48
|
+
modelValue,
|
|
49
|
+
multiple: props.multiple as boolean
|
|
50
|
+
})
|
|
51
|
+
</script>
|
|
52
|
+
|
|
53
|
+
<style lang="scss" scoped>
|
|
54
|
+
</style>
|
|
55
|
+
|
|
56
|
+
<style lang="scss">
|
|
57
|
+
</style>
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import demo from './demo.vue'
|
|
3
|
+
</script>
|
|
4
|
+
|
|
5
|
+
下拉表格选择器
|
|
6
|
+
=================
|
|
7
|
+
|
|
8
|
+
### 1) 基础用法
|
|
9
|
+
|
|
10
|
+
<Preview comp-name="MSelectTable" demo-name="demo">
|
|
11
|
+
<demo />
|
|
12
|
+
</Preview>
|
|
13
|
+
|
|
14
|
+
### 2) Attributes
|
|
15
|
+
|
|
16
|
+
| 参数 | 说明 | 类型 | 可选 | 是否必填 | 默认值 |
|
|
17
|
+
|-------------------|----------------------------------------------------------|-------------------------------------|---------------------------|:----:|---------------------------------|
|
|
18
|
+
| value / v-model | 绑定值 | number,string, Array<number,string> | - | 否 | '' |
|
|
19
|
+
| name | 显示值,有值时覆盖所有显示逻辑,直接显示name | number,string, Array<number,string> | - | 否 | '' |
|
|
20
|
+
| placeholder | 占位符 | string | - | 否 | 请选择 |
|
|
21
|
+
| disabled | 是否禁用 | boolean | - | 否 | false |
|
|
22
|
+
| size | 大小 | enum | large \| default \| small | 否 | default |
|
|
23
|
+
| options | 下拉表的 表内数据,详情见Option接口 | Option[] | - | 否 | [] |
|
|
24
|
+
| total | 总数量 当有值时,出现分页器 | number | null | 否 | null |
|
|
25
|
+
| filterMethod | 自定义搜索方法 (使用时必须传递filterable) | Function | null | 否 | null |
|
|
26
|
+
| filterable | 是否开启筛选 (如果开启但没有传递自定义搜索方法 效果为筛选当前页数据的 keywords[label]) | boolean | - | 否 | false |
|
|
27
|
+
| remote | 是否使用远程搜索 | boolean | - | 否 | false |
|
|
28
|
+
| remoteMethod | 自定义远程搜索方法 (使用时必须传递filterable和remote) | Function | - | 否 | {} |
|
|
29
|
+
| tableTitle | 下拉表的 表头定义,详情见TableTitle接口 | TableTitle[] | - | 否 | [] |
|
|
30
|
+
| multiple | 是否开启多选 | boolean | - | 否 | false |
|
|
31
|
+
| keywords | 关键字配置(value-key 配置)映射关键字 | Option | - | 否 | {label: 'label' ,value:'value'} |
|
|
32
|
+
| reserveSelection | 是否打开翻页多选 需要是多选才有效 | boolean | - | 否 | false |
|
|
33
|
+
| tableHeight | 表格高度 | string | number | 否 | 200 |
|
|
34
|
+
| isAffirmBtn | 是否有确认按钮 当使用此按钮时 selected事件无效 需使用selectMultiple事件 | boolean | - | 否 | false |
|
|
35
|
+
| scrollbarAlwaysOn | 是否常态显示滚动条 | boolean | - | 否 | false |
|
|
36
|
+
| allowCreate | 是否能够创建条目 | boolean | - | 否 | false |
|
|
37
|
+
| popupWidth | 弹窗的宽度 | string,number | - | 否 | 500 |
|
|
38
|
+
| border | 表格边框 | boolean | - | 否 | false |
|
|
39
|
+
|
|
40
|
+
#### Options(选项接口)
|
|
41
|
+
|
|
42
|
+
| 参数 | 说明 | 类型 | 可选值 | 是否必填 |
|
|
43
|
+
|---------------------|:---------------------:|:-----------------:|:---:|:----:|
|
|
44
|
+
| label | 选项的标签,若不设置则默认与value相同 | string | - | 是 |
|
|
45
|
+
| value | 选项的值 | string \| number | - | 是 |
|
|
46
|
+
| disabled | 是否禁用该选项 | boolean | - | 否 |
|
|
47
|
+
| \[propName: string] | 额外字段 | string \| number | - | 否 |
|
|
48
|
+
|
|
49
|
+
#### Page (分页对象)
|
|
50
|
+
|
|
51
|
+
| 参数 | 说明 | 类型 |
|
|
52
|
+
|------------------|---------|----------|
|
|
53
|
+
| total | 总数 | number |
|
|
54
|
+
| pageSize | 分页大小 | number |
|
|
55
|
+
| currentPage | 页码 | number |
|
|
56
|
+
| pageSizesOptions | 分页大小可选项 | number[] |
|
|
57
|
+
|
|
58
|
+
### 3) events
|
|
59
|
+
|
|
60
|
+
| 事件名 | 说明 | 回调参数 |
|
|
61
|
+
|----------------|------------------------------|---------------------------------------------------------------|
|
|
62
|
+
| selected | 单选或多选之后的回调 | 根据多选和单选的模式不同 返回的也有所区别 单选为 (value,row) 多选为(values[],rows[]) |
|
|
63
|
+
| toPage | 当没有使用filterMethod时候才会有回调否则没有 | page 表格分页 |
|
|
64
|
+
| selectMultiple | 多选确认按钮时的回调 配合isAffirmBtn使用 | (values: Array<string \| number>, rows: Option[]) |
|
|
65
|
+
| clear | 用户点击清空按钮时触发 | - |
|
|
66
|
+
| removeTag | 多选模式下移除tag时触发 | (tag: any) |
|
|
67
|
+
|
|
68
|
+
### 4) Methods
|
|
69
|
+
|
|
70
|
+
| 方法名 | 说明 |
|
|
71
|
+
|----------------------|--------------------------------------------------------------------------|
|
|
72
|
+
| defaultBackFillValue | 手动重载反填 使用场景 当前开启多选 并且开启翻页多选的时候 这个时候需要默认反填上值的话 需要赋值之后 延迟调用此方法 其余场景 为默认反填 |
|
|
73
|
+
| clear | 清空已选择 |
|
|
74
|
+
| focus | 聚焦下拉框 |
|
|
75
|
+
|
|
76
|
+
#### filterMethod
|
|
77
|
+
|
|
78
|
+
| 返回值 | 类型 | 说明 |
|
|
79
|
+
|-------------|--------|--------|
|
|
80
|
+
| searchValue | string | 返回输入的值 |
|
|
81
|
+
| Page | Page | 整个分页类 |
|
|
82
|
+
|
|
83
|
+
#### remoteMethod
|
|
84
|
+
|
|
85
|
+
| 返回值 | 类型 | 说明 |
|
|
86
|
+
|-------------|--------|--------|
|
|
87
|
+
| searchValue | string | 返回输入的值 |
|
|
88
|
+
| Page | Page | 整个分页类 |
|
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div>
|
|
3
|
+
<p>多选</p>
|
|
4
|
+
<p>第一个选择器的值: {{ code }}</p>
|
|
5
|
+
<m-select-table
|
|
6
|
+
class="u-select"
|
|
7
|
+
ref="selectRef"
|
|
8
|
+
v-model="code"
|
|
9
|
+
placeholder="请选择单号"
|
|
10
|
+
:tableTitle="commodityOptionsTitle"
|
|
11
|
+
:options="options"
|
|
12
|
+
:keywords="{ label: 'ApprovedQtyPU', value: 'DocNo' }"
|
|
13
|
+
@selected="selected"
|
|
14
|
+
@selectMultiple="selectMultiple"
|
|
15
|
+
tableHeight="200"
|
|
16
|
+
@toPage="toPage"
|
|
17
|
+
:total="total"
|
|
18
|
+
scrollbarAlwaysOn
|
|
19
|
+
filterable
|
|
20
|
+
remote
|
|
21
|
+
multiple
|
|
22
|
+
allowCreate
|
|
23
|
+
border
|
|
24
|
+
:remoteMethod="remoteMethod"
|
|
25
|
+
></m-select-table>
|
|
26
|
+
<p>多选单绑定的value为字符串类型</p>
|
|
27
|
+
<p>第二个选择器的值: {{ code2 }}</p>
|
|
28
|
+
<m-select-table
|
|
29
|
+
class="u-select"
|
|
30
|
+
ref="selectRef"
|
|
31
|
+
v-model="code2"
|
|
32
|
+
:name="code2Name"
|
|
33
|
+
placeholder="请选择单号"
|
|
34
|
+
:tableTitle="commodityOptionsTitle"
|
|
35
|
+
:options="options"
|
|
36
|
+
:keywords="{ label: 'ApprovedQtyPU', value: 'DocNo' }"
|
|
37
|
+
@selected="selected"
|
|
38
|
+
@selectMultiple="selectMultiple"
|
|
39
|
+
tableHeight="200"
|
|
40
|
+
@toPage="toPage"
|
|
41
|
+
:total="total"
|
|
42
|
+
scrollbarAlwaysOn
|
|
43
|
+
filterable
|
|
44
|
+
remote
|
|
45
|
+
multiple
|
|
46
|
+
border
|
|
47
|
+
:remoteMethod="remoteMethod"
|
|
48
|
+
></m-select-table>
|
|
49
|
+
<p>单选</p>
|
|
50
|
+
<p>第三个择器的值: {{ code3 }}</p>
|
|
51
|
+
<m-select-table
|
|
52
|
+
class="u-select"
|
|
53
|
+
ref="selectRef"
|
|
54
|
+
v-model="code3"
|
|
55
|
+
placeholder="请选择单号"
|
|
56
|
+
:tableTitle="commodityOptionsTitle"
|
|
57
|
+
:options="options"
|
|
58
|
+
:keywords="{ label: 'ApprovedQtyPU', value: 'DocNo' }"
|
|
59
|
+
@selected="selected"
|
|
60
|
+
@selectMultiple="selectMultiple"
|
|
61
|
+
tableHeight="200"
|
|
62
|
+
@toPage="toPage"
|
|
63
|
+
:total="total"
|
|
64
|
+
scrollbarAlwaysOn
|
|
65
|
+
filterable
|
|
66
|
+
remote
|
|
67
|
+
allowCreate
|
|
68
|
+
:remoteMethod="remoteMethod"
|
|
69
|
+
:popupWidth="800"
|
|
70
|
+
></m-select-table>
|
|
71
|
+
<!--<el-select-->
|
|
72
|
+
<!-- v-model="code2"-->
|
|
73
|
+
<!-- multiple-->
|
|
74
|
+
<!-->-->
|
|
75
|
+
<!-- <el-option-->
|
|
76
|
+
<!-- v-for="item in options"-->
|
|
77
|
+
<!-- :key="item.DocNo"-->
|
|
78
|
+
<!-- :label="item.ApprovedQtyPU"-->
|
|
79
|
+
<!-- :value="item.DocNo"-->
|
|
80
|
+
<!-- ></el-option>-->
|
|
81
|
+
<!--</el-select>-->
|
|
82
|
+
</div>
|
|
83
|
+
</template>
|
|
84
|
+
|
|
85
|
+
<script setup lang="ts">
|
|
86
|
+
import { ref, onMounted } from 'vue'
|
|
87
|
+
import { Page } from 'packages/typings/class'
|
|
88
|
+
|
|
89
|
+
const commodityOptionsTitle: TableTitle[] = [{
|
|
90
|
+
prop: 'PRDocType',
|
|
91
|
+
label: '单据类型'
|
|
92
|
+
// minWidth: 200
|
|
93
|
+
}, {
|
|
94
|
+
prop: 'DocNo',
|
|
95
|
+
label: '请购单号'
|
|
96
|
+
// minWidth: 200
|
|
97
|
+
}, {
|
|
98
|
+
prop: 'ApprovedQtyPU',
|
|
99
|
+
// minWidth: 300,
|
|
100
|
+
label: '名称'
|
|
101
|
+
|
|
102
|
+
}, {
|
|
103
|
+
prop: 'ACCode',
|
|
104
|
+
label: '货币'
|
|
105
|
+
// minWidth: 200
|
|
106
|
+
}]
|
|
107
|
+
const selectRef: any = ref<HTMLElement | null>(null)
|
|
108
|
+
|
|
109
|
+
const code = ref<string | number | Array<string | number>>([])
|
|
110
|
+
const code2 = ref<string | number | Array<string | number>>('')
|
|
111
|
+
const code2Name = ref<string | number | Array<string | number>>([])
|
|
112
|
+
const code3 = ref<string | number | Array<string | number>>('')
|
|
113
|
+
|
|
114
|
+
const total = ref(0)
|
|
115
|
+
const options = ref<any[]>([])
|
|
116
|
+
const mockData: any[] = []
|
|
117
|
+
for (let i = 0; i < 1000; i++) {
|
|
118
|
+
mockData.push({
|
|
119
|
+
PRDocType: '测试数据' + (i + 1),
|
|
120
|
+
DocNo: i + 1,
|
|
121
|
+
ApprovedQtyPU: 'ApprovedQtyPU' + (i + 1),
|
|
122
|
+
ACCode: 'ACCode'
|
|
123
|
+
})
|
|
124
|
+
}
|
|
125
|
+
const getDataList = (page: Page = new Page(), str: string = '') => {
|
|
126
|
+
setTimeout(() => {
|
|
127
|
+
options.value = mockData.filter(item => item.PRDocType.includes(str)).slice(0, page.pageSize)
|
|
128
|
+
total.value = mockData.length
|
|
129
|
+
})
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
setTimeout(() => {
|
|
133
|
+
options.value = [{
|
|
134
|
+
PRDocType: 'xxxPRDocType1',
|
|
135
|
+
DocNo: 1,
|
|
136
|
+
ApprovedQtyPU: 'xxxApprovedQtyPU1',
|
|
137
|
+
ACCode: 'xxxACCode1'
|
|
138
|
+
}, {
|
|
139
|
+
PRDocType: 'xxxPRDocType2',
|
|
140
|
+
DocNo: 2,
|
|
141
|
+
ApprovedQtyPU: 'xxxApprovedQtyPU2',
|
|
142
|
+
ACCode: 'xxxACCode2'
|
|
143
|
+
}]
|
|
144
|
+
code.value = [1, 2]
|
|
145
|
+
code2.value = ''
|
|
146
|
+
code2Name.value = ['xxxApprovedQtyPU2', 'xxxApprovedQtyPU3', 'xxxApprovedQtyPU4']
|
|
147
|
+
code3.value = 1
|
|
148
|
+
|
|
149
|
+
// setTimeout(() => {
|
|
150
|
+
// options.value = []
|
|
151
|
+
// }, 2500)
|
|
152
|
+
}, 1000)
|
|
153
|
+
|
|
154
|
+
const selected = (value: string | number | Array<number | string>) => {
|
|
155
|
+
// console.log(value)
|
|
156
|
+
// code.value = value
|
|
157
|
+
// console.log('selected',value)
|
|
158
|
+
// // console.log('selected', row)
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
const toPage = (page: Page, str: any) => {
|
|
162
|
+
getDataList(page, str)
|
|
163
|
+
}
|
|
164
|
+
const selectMultiple = (value: string | number | Array<number | string>) => {
|
|
165
|
+
code.value = value
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
const remoteMethod = async (query: string, page: Page = new Page()) => {
|
|
169
|
+
await getData(query, page)
|
|
170
|
+
}
|
|
171
|
+
const getData = async (query: string, page: any) => {
|
|
172
|
+
return new Promise<void>((resolve) => {
|
|
173
|
+
setTimeout(() => {
|
|
174
|
+
const start = (page.currentPage - 1) * page.pageSize
|
|
175
|
+
options.value = mockData.filter(item => item.PRDocType.includes(query)).slice(start, start + page.pageSize)
|
|
176
|
+
total.value = mockData.length
|
|
177
|
+
resolve()
|
|
178
|
+
}, 500)
|
|
179
|
+
})
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
onMounted(() => {
|
|
183
|
+
getDataList()
|
|
184
|
+
})
|
|
185
|
+
// const filterMethod = (searchValue: string, page: Page) => {
|
|
186
|
+
// // 手动过滤的得 保留一份原始数据
|
|
187
|
+
// const arr = JSON.parse(JSON.stringify(options.value))
|
|
188
|
+
// options.value = arr.filter((item: any) => item.ApprovedQtyPU.toString().includes(searchValue))
|
|
189
|
+
// }
|
|
190
|
+
</script>
|
|
191
|
+
|
|
192
|
+
<style>
|
|
193
|
+
.u-select {
|
|
194
|
+
width: 240px;
|
|
195
|
+
}
|
|
196
|
+
</style>
|