@tongfun/tf-widget 0.1.5 → 0.1.9
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/.browserslistrc +3 -3
- package/.editorconfig +5 -5
- package/.eslintrc.js +17 -17
- package/README.md +39 -24
- package/dist/css/chunk-9c7a8e06.920744ef.css +1 -0
- package/dist/css/chunk-vendors.de967301.css +1 -0
- package/dist/css/index.9f1afeaf.css +1 -0
- package/dist/fonts/element-icons.535877f5.woff +0 -0
- package/dist/fonts/element-icons.732389de.ttf +0 -0
- package/dist/js/chunk-9c7a8e06.ffff58b5.js +1 -0
- package/dist/js/chunk-vendors.45086d09.js +39 -0
- package/dist/js/index.a3b16e45.js +1 -0
- package/lib/tf-widget.common.js +1294 -240
- package/lib/tf-widget.css +1 -1
- package/lib/tf-widget.umd.js +1294 -240
- package/lib/tf-widget.umd.min.js +3 -3
- package/package/t-data-list/index.js +6 -0
- package/package/t-data-list/main.vue +192 -0
- package/package/t-data-list/src/condition-input/basic.vue +31 -0
- package/package/t-data-list/src/condition-input/date.vue +106 -0
- package/package/t-data-list/src/condition-input/index.vue +100 -0
- package/package/t-data-list/src/condition-input/input.vue +31 -0
- package/package/t-data-list/src/condition-input/number.vue +115 -0
- package/package/t-data-list/src/condition-input/select.vue +86 -0
- package/package/t-data-list/src/js/fieldTypeEnum.js +10 -0
- package/package/t-data-list/src/js/operatorEnum.js +109 -0
- package/package/t-data-list/src/js/qureyParamsEnum.js +4 -0
- package/package/t-data-list/src/js/util.js +34 -0
- package/package/t-data-list/src/mixins/button-controll-mixin.js +77 -0
- package/package/t-data-list/src/pushdown/push-down.vue +158 -0
- package/package/t-data-list/src/t-list-search.vue +32 -0
- package/package/t-data-list/src/t-plan/condition-always-item.vue +143 -0
- package/package/t-data-list/src/t-plan/condition-mult-item.vue +222 -0
- package/package/t-data-list/src/t-plan/index.vue +190 -0
- package/package/t-data-list/src/t-plan/plan-content.vue +396 -0
- package/package/t-data-list/src/t-table/index.vue +120 -0
- package/package/t-data-list/src/t-table/table-group-item-edit.vue +238 -0
- package/package/t-data-list/src/t-table/table-group-item.vue +87 -0
- package/package/t-data-list/src/t-table/table-group.vue +179 -0
- package/package/t-data-list/src/t-table/table-records-header-popover.vue +250 -0
- package/package/t-data-list/src/t-table/table-records-selected.vue +159 -0
- package/package/t-data-list/src/t-table/table-records.vue +324 -0
- package/package/t-input/children/address.vue +101 -0
- package/package/t-input/children/basic-display.vue +41 -0
- package/package/t-input/children/basic.vue +251 -0
- package/package/t-input/children/date.vue +89 -0
- package/package/t-input/children/group-components/group-dialog.vue +350 -0
- package/package/t-input/children/group.vue +126 -0
- package/package/t-input/children/input.vue +72 -0
- package/package/t-input/children/number.vue +74 -0
- package/package/t-input/children/select.vue +89 -0
- package/package/t-input/children/tfile/fiile-enclosure.vue +233 -0
- package/package/t-input/children/tfile/file-img/comp.png +0 -0
- package/package/t-input/children/tfile/file-img/excel.png +0 -0
- package/package/t-input/children/tfile/file-img/img.png +0 -0
- package/package/t-input/children/tfile/file-img/pdf.png +0 -0
- package/package/t-input/children/tfile/file-img/word.png +0 -0
- package/package/t-input/index.js +7 -0
- package/package/t-input/index.vue +337 -0
- package/package/t-input/tInputCache.js +24 -0
- package/package/tf-layout/README.md +69 -0
- package/package/tf-layout/index.js +8 -0
- package/package/tf-layout/src/components/tf-labelbar.vue +376 -0
- package/package/tf-layout/src/components/tf-menu.vue +180 -0
- package/package/tf-layout/src/components/tf-right-menu.vue +89 -0
- package/package/tf-layout/src/components/tf-rotate-box.vue +50 -0
- package/package/tf-layout/src/tf-layout.vue +115 -0
- package/package/tf-widget/src/assets/common-input.less +11 -0
- package/package/tf-widget/src/children/basic-data/basic-data.vue +2 -1
- package/package/tf-widget/src/children/date-time.vue +1 -1
- package/package/tf-widget/src/children/date.vue +1 -0
- package/package/tf-widget/src/children/decimal.vue +20 -1
- package/package/tf-widget/src/children/integer.vue +31 -12
- package/package/tf-widget/src/children/single-line-text.vue +15 -7
- package/package/tf-widget/src/children/small-pictures.vue +5 -1
- package/package/tf-widget/src/children/text-area.vue +5 -4
- package/package/tf-widget/src/children/tf-select.vue +16 -7
- package/package.json +4 -2
- package/postinstall.js +10 -10
- package/src/api/file-enclosure.js +26 -0
- package/src/api/push-down.js +19 -0
- package/src/api/tableV3.js +186 -0
- package/src/index.js +11 -3
- package/src/mixins/t-data-query-mixin.js +289 -0
- package/src/utils/request.js +4 -1
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div
|
|
3
|
+
v-show="showMenu"
|
|
4
|
+
class="tf-right-menu"
|
|
5
|
+
:style="{ top: top + 'px', left: left + 'px' }"
|
|
6
|
+
>
|
|
7
|
+
<p @click="rightMenuClick('closeLeft')">
|
|
8
|
+
<i class="el-icon-back" /> 关闭左侧
|
|
9
|
+
</p>
|
|
10
|
+
<p @click="rightMenuClick('closeRight')">
|
|
11
|
+
<i class="el-icon-right" /> 关闭右侧
|
|
12
|
+
</p>
|
|
13
|
+
<p @click="rightMenuClick('closeOther')">
|
|
14
|
+
<i class="el-icon-circle-close" /> 关闭其他
|
|
15
|
+
</p>
|
|
16
|
+
<p @click="rightMenuClick('closeAll')">
|
|
17
|
+
<i class="el-icon-circle-close" /> 全部关闭
|
|
18
|
+
</p>
|
|
19
|
+
</div>
|
|
20
|
+
</template>
|
|
21
|
+
|
|
22
|
+
<script>
|
|
23
|
+
export default {
|
|
24
|
+
props: {
|
|
25
|
+
top: {
|
|
26
|
+
default: 0,
|
|
27
|
+
type: Number
|
|
28
|
+
},
|
|
29
|
+
left: {
|
|
30
|
+
default: 0,
|
|
31
|
+
type: Number
|
|
32
|
+
},
|
|
33
|
+
showMenu: {
|
|
34
|
+
type: Boolean,
|
|
35
|
+
default: false
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
methods: {
|
|
39
|
+
/**
|
|
40
|
+
* @description 右键点击事件
|
|
41
|
+
*/
|
|
42
|
+
rightMenuClick (params) {
|
|
43
|
+
this.$emit('rightMenuClick', params)
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
</script>
|
|
48
|
+
|
|
49
|
+
<style lang="less" scoped>
|
|
50
|
+
.tf-right-menu {
|
|
51
|
+
position: fixed;
|
|
52
|
+
z-index: 9999;
|
|
53
|
+
width: 120px;
|
|
54
|
+
height: 166px;
|
|
55
|
+
background: white;
|
|
56
|
+
box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);
|
|
57
|
+
border-radius: 4px;
|
|
58
|
+
box-sizing: border-box;
|
|
59
|
+
padding: 10px 0;
|
|
60
|
+
p {
|
|
61
|
+
cursor: pointer;
|
|
62
|
+
height: 36px;
|
|
63
|
+
margin: 0;
|
|
64
|
+
font-size: 14px;
|
|
65
|
+
display: flex;
|
|
66
|
+
align-items: center;
|
|
67
|
+
justify-content: space-between;
|
|
68
|
+
box-sizing: border-box;
|
|
69
|
+
padding: 0 20px;
|
|
70
|
+
color: #606266;
|
|
71
|
+
&:hover {
|
|
72
|
+
background: #ecf5ff;
|
|
73
|
+
color: #46a6ff;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
&::before {
|
|
77
|
+
content: "";
|
|
78
|
+
position: absolute;
|
|
79
|
+
width: 12px;
|
|
80
|
+
height: 6px;
|
|
81
|
+
top: -6px;
|
|
82
|
+
right: 10px;
|
|
83
|
+
background: white;
|
|
84
|
+
clip-path: polygon(50% 0px, 100% 100%, 0px 100%);
|
|
85
|
+
box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);
|
|
86
|
+
border-radius: 1px;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
</style>
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="tf-rotate-box">
|
|
3
|
+
<span class="close">
|
|
4
|
+
<i />
|
|
5
|
+
<i />
|
|
6
|
+
<i />
|
|
7
|
+
<i />
|
|
8
|
+
</span>
|
|
9
|
+
</div>
|
|
10
|
+
</template>
|
|
11
|
+
|
|
12
|
+
<script>
|
|
13
|
+
export default {}
|
|
14
|
+
</script>
|
|
15
|
+
|
|
16
|
+
<style lang="less" scoped>
|
|
17
|
+
.tf-rotate-box {
|
|
18
|
+
display: flex;
|
|
19
|
+
align-items: center;
|
|
20
|
+
justify-content: center;
|
|
21
|
+
.close {
|
|
22
|
+
width: 14px;
|
|
23
|
+
height: 14px;
|
|
24
|
+
display: flex;
|
|
25
|
+
flex-wrap: wrap;
|
|
26
|
+
align-items: center;
|
|
27
|
+
justify-content: center;
|
|
28
|
+
gap: 2px 2px;
|
|
29
|
+
transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), border 0s,
|
|
30
|
+
color 0.1s, font-size 0s;
|
|
31
|
+
&:hover {
|
|
32
|
+
transform: rotate(90deg);
|
|
33
|
+
transform-origin: 50% 50%;
|
|
34
|
+
i {
|
|
35
|
+
background: #07579a;
|
|
36
|
+
&:nth-child(1) {
|
|
37
|
+
transform: rotate(45deg);
|
|
38
|
+
transform-origin: 50% 50%;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
i {
|
|
43
|
+
margin: 0;
|
|
44
|
+
height: 6px;
|
|
45
|
+
width: 6px;
|
|
46
|
+
background: #9a9a9a;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
</style>
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div class="tf-layout">
|
|
3
|
+
<TfMenu
|
|
4
|
+
:menus-info="menusInfo"
|
|
5
|
+
:menu-state="menuState"
|
|
6
|
+
/>
|
|
7
|
+
<div class="tf-layout-subject">
|
|
8
|
+
<TfLaberBar
|
|
9
|
+
@setCache="setCache"
|
|
10
|
+
@changeMenuState="changeMenuState"
|
|
11
|
+
@deleteCache="deleteCache"
|
|
12
|
+
/>
|
|
13
|
+
<div class="tf-layout-subject-content">
|
|
14
|
+
<keep-alive :include="secondCacheArray">
|
|
15
|
+
<router-view />
|
|
16
|
+
</keep-alive>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
</div>
|
|
20
|
+
</template>
|
|
21
|
+
|
|
22
|
+
<script>
|
|
23
|
+
import TfMenu from './components/tf-menu'
|
|
24
|
+
import TfLaberBar from './components/tf-labelbar'
|
|
25
|
+
export default {
|
|
26
|
+
name: 'TfLayout',
|
|
27
|
+
components: {
|
|
28
|
+
TfMenu,
|
|
29
|
+
TfLaberBar
|
|
30
|
+
},
|
|
31
|
+
props: {
|
|
32
|
+
menusInfo: {
|
|
33
|
+
type: Array,
|
|
34
|
+
default: function () {
|
|
35
|
+
return []
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
data () {
|
|
40
|
+
return {
|
|
41
|
+
menuState: false,
|
|
42
|
+
cacheMap: new Map(),
|
|
43
|
+
secondCacheArray: [],
|
|
44
|
+
thirdCacheArr: []
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
methods: {
|
|
48
|
+
changeMenuState(state) {
|
|
49
|
+
this.menuState = state
|
|
50
|
+
},
|
|
51
|
+
setCache (value) {
|
|
52
|
+
this.cacheMap.set(value[2] || value[1], value[1])
|
|
53
|
+
this.initCacheArr()
|
|
54
|
+
},
|
|
55
|
+
initCacheArr () {
|
|
56
|
+
this.secondCacheArray.push(
|
|
57
|
+
...this.arrayDiff([...this.cacheMap.values()], this.secondCacheArray)
|
|
58
|
+
)
|
|
59
|
+
this.thirdCacheArr.push(
|
|
60
|
+
...this.arrayDiff([...this.cacheMap.keys()], this.thirdCacheArr)
|
|
61
|
+
)
|
|
62
|
+
this.$emit('setSecondCache', this.secondCacheArray)
|
|
63
|
+
this.$emit('setThirdCache', this.thirdCacheArr)
|
|
64
|
+
},
|
|
65
|
+
arrayDiff (arr, arrRaw) {
|
|
66
|
+
if (Array.isArray(arr)) {
|
|
67
|
+
return arr.filter((i) => {
|
|
68
|
+
return arrRaw.indexOf(i) < 0
|
|
69
|
+
})
|
|
70
|
+
}
|
|
71
|
+
return []
|
|
72
|
+
},
|
|
73
|
+
deleteCache (value) {
|
|
74
|
+
if (Array.isArray(value)) {
|
|
75
|
+
value.forEach((item) => {
|
|
76
|
+
this.cacheMap.delete(item[2] || item[1])
|
|
77
|
+
this.thirdCacheArr.splice(
|
|
78
|
+
this.thirdCacheArr.indexOf(item[2] || item[1]),
|
|
79
|
+
1
|
|
80
|
+
)
|
|
81
|
+
if ([...this.cacheMap.values()].indexOf(item[1]) === -1) {
|
|
82
|
+
this.secondCacheArray.splice(
|
|
83
|
+
this.secondCacheArray.indexOf(item[2]),
|
|
84
|
+
1
|
|
85
|
+
)
|
|
86
|
+
}
|
|
87
|
+
})
|
|
88
|
+
this.$emit('setSecondCache', this.secondCacheArray)
|
|
89
|
+
this.$emit('setThirdCache', this.thirdCacheArr)
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
</script>
|
|
95
|
+
|
|
96
|
+
<style lang="less" scoped>
|
|
97
|
+
.tf-layout {
|
|
98
|
+
height: 100vh;
|
|
99
|
+
width: 100vw;
|
|
100
|
+
display: flex;
|
|
101
|
+
.tf-layout-subject {
|
|
102
|
+
flex: 1;
|
|
103
|
+
height: 94.82vh;
|
|
104
|
+
width: 100%;
|
|
105
|
+
overflow: hidden;
|
|
106
|
+
.tf-layout-subject-content {
|
|
107
|
+
width: 100%;
|
|
108
|
+
height: calc(100% - 35px);
|
|
109
|
+
background: rgb(241, 241, 241);
|
|
110
|
+
box-sizing: border-box;
|
|
111
|
+
padding: 5px 0 0 0;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
</style>
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// 颜色定义
|
|
2
|
+
@disabledBgColor: #f0f0f5;
|
|
3
|
+
|
|
4
|
+
::v-deep .el-input__inner[disabled = 'disabled']{
|
|
5
|
+
background: @disabledBgColor;
|
|
6
|
+
border-color: @disabledBgColor;
|
|
7
|
+
}
|
|
8
|
+
::v-deep .el-textarea__inner[disabled = 'disabled']{
|
|
9
|
+
background: @disabledBgColor;
|
|
10
|
+
border-color: @disabledBgColor;
|
|
11
|
+
}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
@select="handleSelect"
|
|
13
13
|
@keydown.delete.native="handleDeleteKeyDown"
|
|
14
14
|
>
|
|
15
|
-
<i slot="suffix" class="el-icon-search" style="cursor: pointer" @click="showDialog" />
|
|
15
|
+
<i slot="suffix" :class=" disabled ? 'el-icon-lock' : 'el-icon-search' " style="cursor: pointer" @click="showDialog" />
|
|
16
16
|
<template slot-scope="{item}">
|
|
17
17
|
<div>{{ item[displayField] + ' ' + '[' + item.head__code + ']' }}</div>
|
|
18
18
|
</template>
|
|
@@ -316,6 +316,7 @@ export default {
|
|
|
316
316
|
|
|
317
317
|
<style lang='less' scoped>
|
|
318
318
|
@import "@/assets/styles/common-table.less";
|
|
319
|
+
@import '../../assets/common-input.less';
|
|
319
320
|
.el-autocomplete{
|
|
320
321
|
display:block;
|
|
321
322
|
::v-deep .el-input__inner{
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
@change="handleInput"
|
|
11
11
|
v-on="$listeners"
|
|
12
12
|
/>
|
|
13
|
+
<!-- <i v-if="disabled" class="el-icon-lock" /> -->
|
|
13
14
|
</div>
|
|
14
15
|
</template>
|
|
15
16
|
<script>
|
|
@@ -45,7 +46,8 @@ export default {
|
|
|
45
46
|
},
|
|
46
47
|
data () {
|
|
47
48
|
return {
|
|
48
|
-
|
|
49
|
+
// refName: Math.random().toString().slice(3, 9),
|
|
50
|
+
// inputWidth: '0'
|
|
49
51
|
}
|
|
50
52
|
},
|
|
51
53
|
watch: {
|
|
@@ -66,6 +68,11 @@ export default {
|
|
|
66
68
|
}
|
|
67
69
|
this.$emit('input', undefined)
|
|
68
70
|
},
|
|
71
|
+
|
|
72
|
+
// mounted () {
|
|
73
|
+
// this.inputWidth = this.$refs[this.refName].$children[0].$el.clientWidth + 'px'
|
|
74
|
+
// },
|
|
75
|
+
|
|
69
76
|
methods: {
|
|
70
77
|
handleInput (value) {
|
|
71
78
|
this.$emit('input', value)
|
|
@@ -76,8 +83,12 @@ export default {
|
|
|
76
83
|
</script>
|
|
77
84
|
|
|
78
85
|
<style lang="less" scoped>
|
|
86
|
+
@import '../assets/common-input.less';
|
|
79
87
|
.decimal{
|
|
80
88
|
width: 100%;
|
|
89
|
+
display: flex;
|
|
90
|
+
align-items: center;
|
|
91
|
+
position: relative;
|
|
81
92
|
::v-deep .el-input{
|
|
82
93
|
height: 100%;
|
|
83
94
|
//margin-top: -0.55vh;
|
|
@@ -92,5 +103,13 @@ export default {
|
|
|
92
103
|
border-radius: 0;
|
|
93
104
|
text-align: left;
|
|
94
105
|
}
|
|
106
|
+
// .el-icon-lock{
|
|
107
|
+
// position: absolute;
|
|
108
|
+
// left: calc(var(--inputWidth) - 25px);
|
|
109
|
+
// }
|
|
110
|
+
// .el-icon-lock::before{
|
|
111
|
+
// color: #C0C4CC;
|
|
112
|
+
// font-size: 14px;
|
|
113
|
+
// }
|
|
95
114
|
}
|
|
96
115
|
</style>
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
@change="handleInput"
|
|
12
12
|
v-on="$listeners"
|
|
13
13
|
/>
|
|
14
|
+
<!-- <i v-if="disabled" class="el-icon-lock" /> -->
|
|
14
15
|
</div>
|
|
15
16
|
</template>
|
|
16
17
|
<script>
|
|
@@ -38,7 +39,8 @@ export default {
|
|
|
38
39
|
},
|
|
39
40
|
data () {
|
|
40
41
|
return {
|
|
41
|
-
|
|
42
|
+
// refName: Math.random().toString().slice(3, 9),
|
|
43
|
+
// inputWidth: '0'
|
|
42
44
|
}
|
|
43
45
|
},
|
|
44
46
|
watch: {
|
|
@@ -59,6 +61,11 @@ export default {
|
|
|
59
61
|
}
|
|
60
62
|
this.$emit('input', undefined)
|
|
61
63
|
},
|
|
64
|
+
|
|
65
|
+
// mounted () {
|
|
66
|
+
// this.inputWidth = this.$refs[this.refName].$children[0].$el.clientWidth + 'px'
|
|
67
|
+
// },
|
|
68
|
+
|
|
62
69
|
methods: {
|
|
63
70
|
handleInput (value) {
|
|
64
71
|
this.$emit('input', value)
|
|
@@ -69,17 +76,29 @@ export default {
|
|
|
69
76
|
</script>
|
|
70
77
|
|
|
71
78
|
<style lang="less" scoped>
|
|
72
|
-
|
|
79
|
+
@import '../assets/common-input.less';
|
|
80
|
+
.integer{
|
|
81
|
+
width: 100%;
|
|
82
|
+
display: flex;
|
|
83
|
+
align-items: center;
|
|
84
|
+
position: relative;
|
|
85
|
+
::v-deep .el-input-number{
|
|
73
86
|
width: 100%;
|
|
74
|
-
::v-deep .el-input-number{
|
|
75
|
-
width: 100%;
|
|
76
|
-
}
|
|
77
|
-
::v-deep .el-input__inner{
|
|
78
|
-
width: 100%;
|
|
79
|
-
border: none;
|
|
80
|
-
border-bottom: 1px solid #DCDCDC;
|
|
81
|
-
border-radius: 0;
|
|
82
|
-
text-align: left;
|
|
83
|
-
}
|
|
84
87
|
}
|
|
88
|
+
::v-deep .el-input__inner{
|
|
89
|
+
width: 100%;
|
|
90
|
+
border: none;
|
|
91
|
+
border-bottom: 1px solid #DCDCDC;
|
|
92
|
+
border-radius: 0;
|
|
93
|
+
text-align: left;
|
|
94
|
+
}
|
|
95
|
+
// .el-icon-lock{
|
|
96
|
+
// position: absolute;
|
|
97
|
+
// left: calc(var(--inputWidth) - 25px);
|
|
98
|
+
// }
|
|
99
|
+
// .el-icon-lock::before{
|
|
100
|
+
// color: #C0C4CC;
|
|
101
|
+
// font-size: 14px;
|
|
102
|
+
// }
|
|
103
|
+
}
|
|
85
104
|
</style>
|
|
@@ -3,9 +3,12 @@
|
|
|
3
3
|
:value="value"
|
|
4
4
|
:disabled="JSON.parse(disabled) "
|
|
5
5
|
:placeholder="placeholder"
|
|
6
|
+
:clearable="clearable"
|
|
6
7
|
@input="handleInput"
|
|
7
8
|
v-on="$listeners"
|
|
8
|
-
|
|
9
|
+
>
|
|
10
|
+
<i v-if="disabled" class="el-icon-lock el-input__icon" slot="suffix" />
|
|
11
|
+
</el-input>
|
|
9
12
|
</template>
|
|
10
13
|
<script>
|
|
11
14
|
export default {
|
|
@@ -28,6 +31,10 @@ export default {
|
|
|
28
31
|
defaultValue: {
|
|
29
32
|
type: String,
|
|
30
33
|
default: ''
|
|
34
|
+
},
|
|
35
|
+
clearable: {
|
|
36
|
+
type: Boolean,
|
|
37
|
+
default: true
|
|
31
38
|
}
|
|
32
39
|
},
|
|
33
40
|
data () {
|
|
@@ -65,10 +72,11 @@ export default {
|
|
|
65
72
|
</script>
|
|
66
73
|
|
|
67
74
|
<style lang="less" scoped>
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
75
|
+
@import '../assets/common-input.less';
|
|
76
|
+
::v-deep .el-input__inner{
|
|
77
|
+
width: 100%;
|
|
78
|
+
border: none;
|
|
79
|
+
border-bottom: 1px solid #DCDCDC;
|
|
80
|
+
border-radius: 0;
|
|
81
|
+
}
|
|
74
82
|
</style>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="small-picture">
|
|
3
|
-
<el-button size="mini" @click="handleClickUploadPicture">点击上传图片</el-button>
|
|
3
|
+
<el-button size="mini" @click="handleClickUploadPicture" :disabled="disabled">点击上传图片</el-button>
|
|
4
4
|
<el-dialog
|
|
5
5
|
title="图片上传"
|
|
6
6
|
:visible.sync="dialogVisible"
|
|
@@ -40,6 +40,10 @@ export default {
|
|
|
40
40
|
value: {
|
|
41
41
|
type: String,
|
|
42
42
|
default: null
|
|
43
|
+
},
|
|
44
|
+
disabled: {
|
|
45
|
+
type: [Boolean, Object, String],
|
|
46
|
+
default: null
|
|
43
47
|
}
|
|
44
48
|
},
|
|
45
49
|
data () {
|
|
@@ -66,8 +66,9 @@ export default {
|
|
|
66
66
|
</script>
|
|
67
67
|
|
|
68
68
|
<style lang="less" scoped>
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
69
|
+
@import '../assets/common-input.less';
|
|
70
|
+
::v-deep .el-textarea__inner{
|
|
71
|
+
width: 100%;
|
|
72
|
+
height: 100%;
|
|
73
|
+
}
|
|
73
74
|
</style>
|
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="tf-select">
|
|
3
|
-
<el-select :value="selectId" filterable clearable :placeholder="placeholder" :disabled="JSON.parse(disabled)" style="display:block" @input="change" @change="$emit('change', $event)">
|
|
3
|
+
<el-select v-if="!disabled" :value="selectId" filterable clearable :placeholder="placeholder" :disabled="JSON.parse(disabled)" style="display:block" @input="change" @change="$emit('change', $event)">
|
|
4
4
|
<el-option v-for="item in options" :key="item.id" :label="item.name" :value="item.id" />
|
|
5
5
|
</el-select>
|
|
6
|
+
<el-input
|
|
7
|
+
v-else
|
|
8
|
+
:value="value ? value.name : ''"
|
|
9
|
+
:disabled="true"
|
|
10
|
+
:placeholder="placeholder"
|
|
11
|
+
>
|
|
12
|
+
<i class="el-icon-lock el-input__icon" slot="suffix" />
|
|
13
|
+
</el-input>
|
|
6
14
|
</div>
|
|
7
15
|
</template>
|
|
8
16
|
<script>
|
|
@@ -95,10 +103,11 @@ export default {
|
|
|
95
103
|
</script>
|
|
96
104
|
|
|
97
105
|
<style lang="less" scoped>
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
106
|
+
@import '../assets/common-input.less';
|
|
107
|
+
::v-deep .el-input__inner{
|
|
108
|
+
width: 100%;
|
|
109
|
+
border: none;
|
|
110
|
+
border-bottom: 1px solid #DCDCDC;
|
|
111
|
+
border-radius: 0;
|
|
112
|
+
}
|
|
104
113
|
</style>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tongfun/tf-widget",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.9",
|
|
4
4
|
"description": "tf-widget",
|
|
5
5
|
"main": "lib/tf-widget.umd.js",
|
|
6
6
|
"private": false,
|
|
@@ -20,8 +20,10 @@
|
|
|
20
20
|
"js-base64": "^3.6.0",
|
|
21
21
|
"less": "^4.1.0",
|
|
22
22
|
"less-loader": "^7.2.1",
|
|
23
|
+
"sortablejs": "^1.13.0",
|
|
23
24
|
"vue": "^2.6.11",
|
|
24
|
-
"
|
|
25
|
+
"vue2-datepicker": "^3.10.4",
|
|
26
|
+
"vuedraggable": "^2.24.3"
|
|
25
27
|
},
|
|
26
28
|
"devDependencies": {
|
|
27
29
|
"@vue/cli-plugin-babel": "~4.5.0",
|
package/postinstall.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
const BANNER = '\u001B[96mThank you for using tf-widget for polyfilling JavaScript standard library!\u001B[0m\n\n' +
|
|
3
|
-
'\u001B[96mWe need the best of you! Come and join us\n\n' +
|
|
4
|
-
'\u001B[96mWe are waiting for you\n'
|
|
5
|
-
|
|
6
|
-
function showBanner () {
|
|
7
|
-
console.log(BANNER)
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
showBanner()
|
|
1
|
+
|
|
2
|
+
const BANNER = '\u001B[96mThank you for using tf-widget for polyfilling JavaScript standard library!\u001B[0m\n\n' +
|
|
3
|
+
'\u001B[96mWe need the best of you! Come and join us\n\n' +
|
|
4
|
+
'\u001B[96mWe are waiting for you\n'
|
|
5
|
+
|
|
6
|
+
function showBanner () {
|
|
7
|
+
console.log(BANNER)
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
showBanner()
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import request from '@/utils/request.js'
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 删除附件
|
|
5
|
+
* @param {id} 删除附件的id
|
|
6
|
+
*/
|
|
7
|
+
export function delAttachment (id) {
|
|
8
|
+
return request({
|
|
9
|
+
url: `/api/file/attachment/?ids[]=${id}`,
|
|
10
|
+
method: 'delete'
|
|
11
|
+
})
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* 下载附件
|
|
16
|
+
* @param {id} 下载附件的id
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
// 根据id下载附件
|
|
20
|
+
export function download (id) {
|
|
21
|
+
return request({
|
|
22
|
+
url: `/api/file/attachment/download/${id}`,
|
|
23
|
+
method: 'get',
|
|
24
|
+
responseType: 'arraybuffer'
|
|
25
|
+
})
|
|
26
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import request from '@/utils/request'
|
|
2
|
+
|
|
3
|
+
// 查询所有下推的单据
|
|
4
|
+
export function findBillExchangeRouterVO (params) {
|
|
5
|
+
return request({
|
|
6
|
+
url: '/api/report/billExchange/findBillExchangeRouterVO',
|
|
7
|
+
method: 'get',
|
|
8
|
+
params
|
|
9
|
+
})
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
// 下推时获取数据
|
|
13
|
+
export function getDataWhenAdd (params) {
|
|
14
|
+
return request({
|
|
15
|
+
url: '/api/report/billExchange/doExchange',
|
|
16
|
+
method: 'Get',
|
|
17
|
+
params
|
|
18
|
+
})
|
|
19
|
+
}
|