@tongfun/tf-widget 0.1.29 → 0.1.30

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 (81) hide show
  1. package/README.md +4 -0
  2. package/lib/tf-widget.common.js +264 -226
  3. package/lib/tf-widget.css +1 -1
  4. package/lib/tf-widget.umd.js +264 -226
  5. package/lib/tf-widget.umd.min.js +4 -4
  6. package/package.json +1 -1
  7. package/package/svg-icon/index.js +0 -8
  8. package/package/svg-icon/src/SvgIcon.vue +0 -59
  9. package/package/t-data-list/index.js +0 -6
  10. package/package/t-data-list/main.vue +0 -193
  11. package/package/t-data-list/src/condition-input/basic.vue +0 -31
  12. package/package/t-data-list/src/condition-input/date.vue +0 -106
  13. package/package/t-data-list/src/condition-input/index.vue +0 -100
  14. package/package/t-data-list/src/condition-input/input.vue +0 -31
  15. package/package/t-data-list/src/condition-input/number.vue +0 -115
  16. package/package/t-data-list/src/condition-input/select.vue +0 -86
  17. package/package/t-data-list/src/js/fieldTypeEnum.js +0 -10
  18. package/package/t-data-list/src/js/operatorEnum.js +0 -108
  19. package/package/t-data-list/src/js/qureyParamsEnum.js +0 -4
  20. package/package/t-data-list/src/js/util.js +0 -34
  21. package/package/t-data-list/src/mixins/button-controll-mixin.js +0 -93
  22. package/package/t-data-list/src/pushdown/push-down.vue +0 -158
  23. package/package/t-data-list/src/t-list-search.vue +0 -36
  24. package/package/t-data-list/src/t-plan/condition-always-item.vue +0 -143
  25. package/package/t-data-list/src/t-plan/condition-mult-item.vue +0 -222
  26. package/package/t-data-list/src/t-plan/index.vue +0 -195
  27. package/package/t-data-list/src/t-plan/plan-content.vue +0 -389
  28. package/package/t-data-list/src/t-table/index.vue +0 -129
  29. package/package/t-data-list/src/t-table/table-group-item-edit.vue +0 -238
  30. package/package/t-data-list/src/t-table/table-group-item.vue +0 -87
  31. package/package/t-data-list/src/t-table/table-group.vue +0 -180
  32. package/package/t-data-list/src/t-table/table-records-header-popover.vue +0 -246
  33. package/package/t-data-list/src/t-table/table-records-selected.vue +0 -159
  34. package/package/t-data-list/src/t-table/table-records.vue +0 -336
  35. package/package/t-input/children/address.vue +0 -101
  36. package/package/t-input/children/basic-display.vue +0 -41
  37. package/package/t-input/children/basic.vue +0 -261
  38. package/package/t-input/children/date.vue +0 -84
  39. package/package/t-input/children/group-components/group-dialog.vue +0 -344
  40. package/package/t-input/children/group.vue +0 -126
  41. package/package/t-input/children/input.vue +0 -67
  42. package/package/t-input/children/number.vue +0 -71
  43. package/package/t-input/children/select.vue +0 -86
  44. package/package/t-input/children/tfile/fiile-enclosure.vue +0 -233
  45. package/package/t-input/children/tfile/file-img/comp.png +0 -0
  46. package/package/t-input/children/tfile/file-img/excel.png +0 -0
  47. package/package/t-input/children/tfile/file-img/img.png +0 -0
  48. package/package/t-input/children/tfile/file-img/pdf.png +0 -0
  49. package/package/t-input/children/tfile/file-img/word.png +0 -0
  50. package/package/t-input/index.js +0 -7
  51. package/package/t-input/index.vue +0 -337
  52. package/package/t-input/tInputCache.js +0 -24
  53. package/package/tf-icon-picker/README.md +0 -8
  54. package/package/tf-icon-picker/index.js +0 -8
  55. package/package/tf-icon-picker/src/tf-icon-picker.vue +0 -266
  56. package/package/tf-layout/README.md +0 -115
  57. package/package/tf-layout/index.js +0 -8
  58. package/package/tf-layout/src/components/tf-labelbar.vue +0 -394
  59. package/package/tf-layout/src/components/tf-menu.vue +0 -180
  60. package/package/tf-layout/src/components/tf-right-menu.vue +0 -89
  61. package/package/tf-layout/src/components/tf-rotate-box.vue +0 -50
  62. package/package/tf-layout/src/tf-layout.vue +0 -140
  63. package/package/tf-widget/index.js +0 -8
  64. package/package/tf-widget/src/assets/common-input.less +0 -11
  65. package/package/tf-widget/src/children/basic-data/basic-data.vue +0 -366
  66. package/package/tf-widget/src/children/basic-data/dependcy/basic-data-selector.vue +0 -1087
  67. package/package/tf-widget/src/children/basic-data/dependcy/common-table.vue +0 -750
  68. package/package/tf-widget/src/children/basic-data/dependcy/condition-filter.vue +0 -519
  69. package/package/tf-widget/src/children/basic-data/dependcy/pagination.vue +0 -93
  70. package/package/tf-widget/src/children/basic-data/dependcy/table-control.vue +0 -240
  71. package/package/tf-widget/src/children/basic-data/dependcy/view-picture.vue +0 -108
  72. package/package/tf-widget/src/children/date-time.vue +0 -103
  73. package/package/tf-widget/src/children/date.vue +0 -103
  74. package/package/tf-widget/src/children/decimal.vue +0 -115
  75. package/package/tf-widget/src/children/integer.vue +0 -104
  76. package/package/tf-widget/src/children/property.vue +0 -59
  77. package/package/tf-widget/src/children/single-line-text.vue +0 -82
  78. package/package/tf-widget/src/children/small-pictures.vue +0 -223
  79. package/package/tf-widget/src/children/text-area.vue +0 -74
  80. package/package/tf-widget/src/children/tf-select.vue +0 -113
  81. package/package/tf-widget/src/tf-widget.vue +0 -175
@@ -1,246 +0,0 @@
1
- <template>
2
- <!-- 排序的提示插件 -->
3
- <div>
4
- <el-popover
5
- :value="item.isShowFilter"
6
- width="200"
7
- trigger="manual"
8
- placement="bottom"
9
- >
10
- <!-- 单选内容 -->
11
- <div v-if="getFieldType !=='enum' && item.isShowFilter" v-clickoutside="handleClickOut" class="radio-context">
12
- <div class="context-list">
13
- <div
14
- v-for="radioItem in getOperatorEnumList"
15
- :key="radioItem.value"
16
- :class="{'list-item':true, 'list-item-active':radioItem.value === tableFilterData[item.field].operator}"
17
- @click="handleFilterRadioClick(radioItem)"
18
- >
19
- <div class="list-text">{{ radioItem.label }}</div>
20
- <div class="list-icon">
21
- <i v-show="radioItem.value === tableFilterData[item.field].operator" class="el-icon-check" />
22
- </div>
23
- </div>
24
- </div>
25
- <div class="context-list header-input">
26
- <ConditionInput
27
- v-show="item.selectItem && !item.selectItem.over"
28
- v-model="tableFilterData[item.field].value"
29
- :type="getFieldType"
30
- :field="item.field"
31
- :table-head="true"
32
- :multi="item.selectItem && item.selectItem.multi"
33
- :range="item.selectItem && item.selectItem.range"
34
- />
35
- </div>
36
- <div class="context-list">
37
- <el-button size="mini" @click="handleCancelConditionChange">取消</el-button>
38
- <el-button size="mini" @click="handleResetConditionChange">重置</el-button>
39
- <el-button type="primary" size="mini" @click="handleConditionChange">确定</el-button>
40
- </div>
41
- </div>
42
- <!-- 多选内容 -->
43
- <!-- 页面中添加v-if item.isShowFilter来判断防止页面卡顿 -->
44
- <div v-else-if="item.isShowFilter" v-clickoutside="handleClickOut" class="menu-context">
45
- <div class="context-list">
46
- <div
47
- v-for="option in item.options"
48
- :key="option.enumId"
49
- :class="{'list-item':true, 'list-item-active':tableFilterData[item.field].value.includes(option.enumId)}"
50
- @click="handleFilterRadioClick(option.enumId)"
51
- >
52
- <div class="list-text">{{ option.name }}</div>
53
- <div class="list-icon">
54
- <i v-show="tableFilterData[item.field].value.includes(option.enumId)" class="el-icon-check" />
55
- </div>
56
- </div>
57
- </div>
58
- <div class="context-list">
59
- <el-button size="mini" @click="handleCancelConditionChange">取消</el-button>
60
- <el-button size="mini" @click="handleResetConditionChange">清除</el-button>
61
- <el-button type="primary" size="mini" @click="handleConditionChange">确定</el-button>
62
- </div>
63
- </div>
64
- <SvgIcon
65
- slot="reference"
66
- class="filter-icon"
67
- icon-class="filter"
68
- style=""
69
- @mouseup.stop="handleFilterClick"
70
- />
71
- </el-popover>
72
- </div>
73
- </template>
74
- <script>
75
- import ConditionInput from '../condition-input'
76
- import getOperatorOption from '../js/operatorEnum'
77
- import fieldTypeEnum from '../js/fieldTypeEnum'
78
- import { getEnumOptions } from '@/api/tableV3.js'
79
- import Clickoutside from 'element-ui/src/utils/clickoutside'
80
-
81
- export default {
82
- components: {
83
- ConditionInput
84
- },
85
- inject: ['target', 'enumOptionCache'],
86
- directives: { Clickoutside },
87
- props: {
88
- item: {
89
- type: Object,
90
- default: () => {}
91
- },
92
- tableFilterData: {
93
- type: Object,
94
- default: () => {}
95
- },
96
- uploadDataMap: {
97
- type: Object,
98
- default: () => {}
99
- }
100
- },
101
- computed: {
102
- // 获取枚举列表
103
- getOperatorEnumList () {
104
- return getOperatorOption(fieldTypeEnum[this.item.componentValueType])
105
- },
106
- // 获取类型
107
- getFieldType () {
108
- return fieldTypeEnum[this.item.componentValueType]
109
- }
110
- },
111
- created () {
112
- this.getFieldType === 'enum' && this.getOptions()
113
- },
114
- methods: {
115
- handleClickOut (...e) {
116
- if (this.item.isShowFilter === true) {
117
- this.item.isShowFilter = false
118
- }
119
- },
120
- async getOptions () {
121
- if (this.enumOptionCache[this.item.field]) {
122
- this.item.options = this.enumOptionCache[this.item.field]
123
- return
124
- }
125
- const res = await getEnumOptions(this.target, this.item.field)
126
- if (res.code !== 0) {
127
- return this.$message.error(res.msg)
128
- }
129
-
130
- this.item.options = res.data
131
- this.enumOptionCache[this.item.field] = res.data
132
- },
133
-
134
- // 单击一条数据
135
- handleFilterRadioClick (radioItem) {
136
- if (this.getFieldType === 'enum') {
137
- this.tableFilterData[this.item.field].operator = 'ENUM_IN'
138
- this.tableFilterData[this.item.field].value.includes(',') && (this.tableFilterData[this.item.field].value = this.tableFilterData[this.item.field].value.split(','))
139
- const set = new Set(this.tableFilterData[this.item.field].value)
140
- set.has(radioItem) ? set.delete(radioItem) : set.add(radioItem)
141
- this.tableFilterData[this.item.field].value = Array.from(set)
142
- return
143
- }
144
- this.$set(this.item, 'selectItem', radioItem)
145
- this.tableFilterData[this.item.field].operator = radioItem.value
146
- },
147
-
148
- // 取消过滤条件查询(数据还在,但是不参与正式的查询)
149
- handleCancelConditionChange () {
150
- this.item.isShowFilter = false
151
- },
152
-
153
- // 重置过滤条件
154
- handleResetConditionChange () {
155
- // 清空当前页面的内容
156
- Object.keys(this.tableFilterData[this.item.field]).forEach(e => {
157
- if (e === 'field') {
158
- return
159
- }
160
- this.tableFilterData[this.item.field][e] = ''
161
- })
162
- // 删除对象中的相关属性
163
- delete this.uploadDataMap[this.item.field]
164
- delete this.item.selectItem
165
- this.$set(this.item, 'isShowIcon', false)
166
- this.sendUploadData()
167
-
168
- this.item.isShowFilter = false
169
- },
170
- // 提交过滤条件进行查询
171
- handleConditionChange () {
172
- if (this.getFieldType === 'enum') {
173
- if (!this.tableFilterData[this.item.field].operator) {
174
- return this.$message.error(`请选择${this.item.title}的条件`)
175
- }
176
- } else {
177
- if (!this.tableFilterData[this.item.field].operator) {
178
- return this.$message.error(`请选择${this.item.title}的条件`)
179
- }
180
- if (!this.item.selectItem.over && !this.tableFilterData[this.item.field].value) {
181
- return this.$message.error(`请输入${this.item.title}的值`)
182
- }
183
- }
184
- if (this.tableFilterData[this.item.field].value instanceof Array) {
185
- this.tableFilterData[this.item.field].value = this.tableFilterData[this.item.field].value.join(',')
186
- }
187
- this.$set(this.uploadDataMap, this.item.field, JSON.parse(JSON.stringify(this.tableFilterData[this.item.field])))
188
- // this.uploadDataMap[item.field] = data
189
- this.sendUploadData()
190
- this.$set(this.item, 'isShowIcon', true)
191
- this.item.isShowFilter = false
192
- },
193
- // 发送事件
194
- sendUploadData () {
195
- const uploadData = []
196
- Object.values(this.uploadDataMap).forEach(e => {
197
- uploadData.push(e)
198
- })
199
- this.$emit('condition-change', uploadData)// 向上发送数据
200
- },
201
- // 控制过滤条件的显示的隐藏
202
- handleFilterClick () {
203
- this.$emit('filter-click', this.item.isShowFilter)
204
- this.$set(this.item, 'isShowFilter', !this.item.isShowFilter)
205
- }
206
- }
207
- }
208
- </script>
209
- <style lang="less" scoped>
210
- .el-popover{
211
- .context-list{
212
- .list-item{
213
- display: flex;
214
- margin: 1px 0;
215
- padding: 2px 8px;
216
- justify-content: space-between;
217
- &:hover{
218
- background-color: rgb(231, 235, 253);
219
- }
220
- }
221
- .list-item-active{
222
- color: rgb(59, 104, 252);
223
- background-color: rgb(231, 235, 253);
224
- }
225
- /deep/.el-input .el-input__inner{
226
- height: 30px;
227
- }
228
- &:last-child{
229
- margin-top: 4px;
230
- width: 100%;
231
- display: flex;
232
- justify-content: space-between;
233
- }
234
- }
235
- .header-input{
236
- margin-top:5px;
237
- }
238
- .filter-icon{
239
- outline: none;
240
- width: 15px;
241
- height: 15px;
242
- cursor: pointer;
243
- }
244
- }
245
-
246
- </style>
@@ -1,159 +0,0 @@
1
- <template>
2
- <div class="main">
3
- <div :class="{'tips':true,'selected':visible.context}">
4
- <transition name="fade">
5
- <div v-show="selectData.length>0" class="select" @click.stop="handleClick">
6
- <div class="title">已选</div>
7
- <div class="num">{{ selectData.length > 99 ? "99+" : selectData.length }} </div>
8
- </div>
9
- </transition>
10
-
11
- <transition name="fade">
12
- <div v-show="visible.context && selectData.length > 0" class="context">
13
- <el-scrollbar>
14
- <div v-for="(item, index) in selectData" :key="index" class="context-item">
15
- <div class="title">
16
- {{ item[showField] }}
17
- </div>
18
- <i class="el-icon-delete hidden" @click="handleDel(item)" />
19
- </div>
20
- </el-scrollbar>
21
- <div>
22
- <el-button type="primary" size="mini" @click="handleClear">清空</el-button>
23
- </div>
24
- </div>
25
-
26
- </transition>
27
- </div>
28
- </div>
29
- </template>
30
- <script>
31
- export default {
32
- props: {
33
- selectData: {
34
- type: Array,
35
- default: () => {
36
- return []
37
- }
38
- },
39
- showField: {
40
- type: String,
41
- default: 'name'
42
- }
43
- },
44
- data () {
45
- return {
46
- visible: {
47
- context: false// 内容盒子展示
48
- }
49
- }
50
- },
51
- methods: {
52
- handleClick () {
53
- this.visible.context = !this.visible.context
54
- },
55
- handleDel (value) {
56
- this.$emit('del', value)
57
- },
58
- handleClear () {
59
- this.$emit('clear')
60
- }
61
- }
62
- }
63
- </script>
64
- <style lang="less" scoped>
65
- @contextHeight:40vh;
66
- .main{
67
- position: relative;
68
- .tips{
69
- top: 40px;
70
- left: -40px;
71
- position: absolute;
72
- display: flex;
73
- transition: all .6s ease-in-out;
74
- .select{
75
- cursor: pointer;
76
- padding: 5px;
77
- display: flex;
78
- flex-direction: column;
79
- background-color: #fff;
80
- border: 1px solid rgb(228, 226, 226);
81
- border-right: 0;
82
- height: 80px;
83
- align-items: center;
84
- .title{
85
- margin: 10px 0;
86
- writing-mode: vertical-lr;
87
- }
88
- .num{
89
- width: 30px;
90
- height: 30px;
91
- color: #fff;
92
- background-color: rgb(121, 156, 255);
93
- border-radius: 15px;
94
- display: flex;
95
- justify-content: center;
96
- align-items: center;
97
- }
98
- }
99
- .context{
100
- width: 20vw;
101
- border: 2px solid rgb(228, 226, 226);
102
- height: calc(40px+@contextHeight);
103
- background-color: #fff;
104
- >:nth-child(2){
105
- height: 40px;
106
- display: flex;
107
- padding-right: 10px;
108
- justify-content: flex-end;
109
- align-items: center;
110
- .el-button {
111
- background-color: #085699;
112
- border:none;
113
- }
114
- }
115
- >:nth-child(1){
116
- height: @contextHeight;
117
- }
118
- .context-item{
119
- .title{
120
- width:100%;
121
- margin-left:20px;
122
- box-sizing: border-box;
123
- padding: 5px;
124
- white-space: nowrap;
125
- overflow: hidden;
126
- text-overflow: ellipsis;
127
- }
128
- cursor: pointer;
129
- height: 25px;
130
- margin: 0 0 2px 0;
131
- background-color: rgb(255, 255, 255);
132
- display: flex;
133
- justify-content: space-between;
134
- align-items: center;
135
- .hidden{
136
- display: none;
137
- margin-right: 10px;
138
- }
139
- &:hover .hidden{
140
- display: inline-block;
141
- }
142
- }
143
- }
144
- }
145
- .selected{
146
- left: calc(-40px - 20vw);
147
- }
148
- }
149
-
150
- /deep/.el-scrollbar__wrap{
151
- overflow-x: auto;
152
- }
153
- .fade-enter-active, .fade-leave-active {
154
- transition: opacity .5s;
155
- }
156
- .fade-enter, .fade-leave-to /* .fade-leave-active below version 2.1.8 */ {
157
- opacity: 0;
158
- }
159
- </style>