sh-view 2.0.8 → 2.2.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 (129) hide show
  1. package/package.json +9 -13
  2. package/packages/components/global-components/sh-alert/index.vue +175 -173
  3. package/packages/components/global-components/sh-badge/index.vue +57 -43
  4. package/packages/components/global-components/sh-card/index.vue +24 -16
  5. package/packages/components/global-components/sh-code-editor/index.vue +250 -260
  6. package/packages/components/global-components/sh-col/index.vue +44 -36
  7. package/packages/components/global-components/sh-corner/index.vue +230 -228
  8. package/packages/components/global-components/sh-count-to/index.vue +60 -51
  9. package/packages/components/global-components/sh-drawer/index.vue +216 -183
  10. package/packages/components/global-components/sh-drawer/scrollbar.js +44 -42
  11. package/packages/components/global-components/sh-empty/index.vue +0 -1
  12. package/packages/components/global-components/sh-form/form.vue +110 -0
  13. package/packages/components/global-components/sh-form/js/props.js +76 -63
  14. package/packages/components/global-components/sh-form/js/useForm.js +236 -0
  15. package/packages/components/global-components/sh-form/query.vue +70 -0
  16. package/packages/components/global-components/sh-header/index.vue +35 -50
  17. package/packages/components/global-components/sh-icon/css/index.scss +44 -0
  18. package/packages/components/global-components/sh-icon/index.vue +24 -11
  19. package/packages/components/global-components/sh-image/index.vue +47 -38
  20. package/packages/components/global-components/sh-list/index.vue +42 -37
  21. package/packages/components/global-components/sh-loading/index.vue +12 -8
  22. package/packages/components/global-components/sh-modal/index.vue +49 -40
  23. package/packages/components/global-components/sh-noticebar/index.vue +68 -54
  24. package/packages/components/global-components/sh-poptip/index.vue +247 -130
  25. package/packages/components/global-components/sh-progress/index.vue +71 -69
  26. package/packages/components/global-components/sh-pull-refresh/index.vue +156 -157
  27. package/packages/components/global-components/sh-result/index.vue +37 -28
  28. package/packages/components/global-components/sh-row/index.vue +21 -18
  29. package/packages/components/global-components/sh-split/index.vue +115 -109
  30. package/packages/components/global-components/sh-table/components/importModal.vue +95 -86
  31. package/packages/components/global-components/sh-table/components/sh-column.vue +54 -0
  32. package/packages/components/global-components/sh-table/{index.vue → grid.vue} +34 -145
  33. package/packages/components/global-components/sh-table/js/tableMethods.js +175 -0
  34. package/packages/components/global-components/sh-table/js/useTable.js +592 -0
  35. package/packages/components/global-components/sh-table/table.vue +269 -0
  36. package/packages/components/global-components/sh-tabs/index.vue +118 -93
  37. package/packages/components/global-components/sh-tag/index.vue +52 -51
  38. package/packages/components/global-components/sh-toolbar/index.vue +53 -47
  39. package/packages/components/global-components/sh-tree/components/table-tree.vue +152 -139
  40. package/packages/components/global-components/sh-tree/index.vue +218 -195
  41. package/packages/components/global-components/sh-tree/mixin/treeProps.js +118 -120
  42. package/packages/components/global-components/sh-upload/index.vue +308 -51
  43. package/packages/components/global-components/sh-water-fall/index.vue +4 -11
  44. package/packages/components/index.js +5 -3
  45. package/packages/components/other-components/sh-cron-modal/components/cron-content.vue +294 -287
  46. package/packages/components/other-components/sh-cron-modal/css/index.scss +0 -5
  47. package/packages/components/other-components/sh-cron-modal/index.vue +81 -67
  48. package/packages/components/other-components/sh-cron-modal/mixin/cron-emits.js +1 -0
  49. package/packages/components/other-components/sh-cron-modal/mixin/cron-hooks.js +179 -0
  50. package/packages/components/other-components/sh-cron-modal/mixin/cron-props.js +9 -0
  51. package/packages/components/other-components/sh-cron-modal/tabs/cron-day-box.vue +101 -92
  52. package/packages/components/other-components/sh-cron-modal/tabs/cron-hour-box.vue +68 -56
  53. package/packages/components/other-components/sh-cron-modal/tabs/cron-minute-box.vue +68 -56
  54. package/packages/components/other-components/sh-cron-modal/tabs/cron-month-box.vue +68 -56
  55. package/packages/components/other-components/sh-cron-modal/tabs/cron-second-box.vue +68 -56
  56. package/packages/components/other-components/sh-cron-modal/tabs/cron-week-box.vue +126 -115
  57. package/packages/components/other-components/sh-cron-modal/tabs/cron-year-box.vue +59 -46
  58. package/packages/components/other-components/sh-menu/index.vue +75 -60
  59. package/packages/components/other-components/sh-menu/menu-group-content.vue +71 -59
  60. package/packages/components/other-components/sh-menu/menu-item-content.vue +71 -61
  61. package/packages/components/other-components/sh-menu-card/index.vue +81 -59
  62. package/packages/components/other-components/sh-menu-card/menu-box.vue +87 -68
  63. package/packages/components/other-components/sh-preview/components/sh-excel.vue +182 -0
  64. package/packages/components/other-components/sh-preview/components/sh-word.vue +73 -0
  65. package/packages/components/other-components/sh-preview/index.vue +86 -85
  66. package/packages/components/other-components/sh-preview/js/data-hook.js +37 -0
  67. package/packages/components/other-components/sh-preview/js/data-props.js +11 -0
  68. package/packages/components/other-components/sh-system-tip/index.vue +115 -113
  69. package/packages/css/index.js +4 -4
  70. package/packages/{assets/css → css}/main.scss +2 -50
  71. package/packages/{assets/css → css}/theme.scss +35 -16
  72. package/packages/directive/module/prevent-click.js +1 -1
  73. package/packages/directive/module/resize.js +11 -154
  74. package/packages/index.js +39 -39
  75. package/packages/mixin/index.js +86 -87
  76. package/packages/vxeTable/css/index.scss +3 -0
  77. package/packages/vxeTable/render/cell/vxe-render-checkbox.vue +14 -5
  78. package/packages/vxeTable/render/cell/vxe-render-checkgroup.vue +43 -36
  79. package/packages/vxeTable/render/cell/vxe-render-code.vue +14 -5
  80. package/packages/vxeTable/render/cell/vxe-render-goption.vue +34 -24
  81. package/packages/vxeTable/render/cell/vxe-render-href.vue +21 -11
  82. package/packages/vxeTable/render/cell/vxe-render-img.vue +16 -10
  83. package/packages/vxeTable/render/cell/vxe-render-input.vue +83 -67
  84. package/packages/vxeTable/render/cell/vxe-render-money.vue +14 -6
  85. package/packages/vxeTable/render/cell/vxe-render-progress.vue +28 -19
  86. package/packages/vxeTable/render/cell/vxe-render-radio.vue +14 -5
  87. package/packages/vxeTable/render/cell/vxe-render-radiogroup.vue +43 -36
  88. package/packages/vxeTable/render/cell/vxe-render-select.vue +44 -36
  89. package/packages/vxeTable/render/cell/vxe-render-switch.vue +14 -5
  90. package/packages/vxeTable/render/cell/vxe-render-table.vue +51 -78
  91. package/packages/vxeTable/render/cell/vxe-render-textarea.vue +14 -5
  92. package/packages/vxeTable/render/cell/vxe-render-time.vue +23 -13
  93. package/packages/vxeTable/render/cell/vxe-render-tree.vue +23 -27
  94. package/packages/vxeTable/render/cell/vxe-render-upload.vue +11 -7
  95. package/packages/vxeTable/render/filters/vxe-filter-input.vue +25 -43
  96. package/packages/vxeTable/render/footer/vxe-footer-input.vue +23 -13
  97. package/packages/vxeTable/render/footer/vxe-footer-money.vue +30 -20
  98. package/packages/vxeTable/render/globalRenders.jsx +1 -1
  99. package/packages/vxeTable/render/header/vxe-header-money.vue +31 -21
  100. package/packages/vxeTable/render/mixin/cell-hooks.js +162 -0
  101. package/packages/vxeTable/render/mixin/cell-props.js +23 -0
  102. package/packages/vxeTable/render/mixin/filter-hooks.js +28 -0
  103. package/packages/components/global-components/sh-form/components/form-item.vue +0 -25
  104. package/packages/components/global-components/sh-form/css/index.scss +0 -55
  105. package/packages/components/global-components/sh-form/index.vue +0 -114
  106. package/packages/components/global-components/sh-form/js/methods.js +0 -146
  107. package/packages/components/global-components/sh-form/mixin/defaultData.js +0 -32
  108. package/packages/components/global-components/sh-icon/css/default/index.scss +0 -27
  109. package/packages/components/global-components/sh-icon/css/font/index.scss +0 -16
  110. package/packages/components/global-components/sh-icon/icon-default.vue +0 -32
  111. package/packages/components/global-components/sh-icon/icon-font.vue +0 -32
  112. package/packages/components/global-components/sh-poptip/popper.js +0 -115
  113. package/packages/components/global-components/sh-query/index.vue +0 -317
  114. package/packages/components/global-components/sh-table/js/methods.js +0 -549
  115. package/packages/components/global-components/sh-table/mixin/defaultData.js +0 -94
  116. package/packages/components/global-components/sh-upload/js/mixin.js +0 -257
  117. package/packages/components/other-components/sh-cron-modal/mixin/cron-box.js +0 -169
  118. package/packages/vxeTable/render/mixin/cell-mixin.js +0 -206
  119. /package/packages/components/global-components/sh-icon/css/default/{fonts/ionicons.svg → ionicons.svg} +0 -0
  120. /package/packages/components/global-components/sh-icon/css/default/{fonts/ionicons.ttf → ionicons.ttf} +0 -0
  121. /package/packages/components/global-components/sh-icon/css/default/{fonts/ionicons.woff → ionicons.woff} +0 -0
  122. /package/packages/components/global-components/sh-icon/css/default/{fonts/ionicons.woff2 → ionicons.woff2} +0 -0
  123. /package/packages/components/global-components/sh-icon/css/font/{fonts/iconfont.js → iconfont.js} +0 -0
  124. /package/packages/components/global-components/sh-icon/css/font/{fonts/iconfont.json → iconfont.json} +0 -0
  125. /package/packages/components/global-components/sh-icon/css/font/{fonts/iconfont.ttf → iconfont.ttf} +0 -0
  126. /package/packages/components/global-components/sh-icon/css/font/{fonts/iconfont.woff → iconfont.woff} +0 -0
  127. /package/packages/components/global-components/sh-icon/css/font/{fonts/iconfont.woff2 → iconfont.woff2} +0 -0
  128. /package/packages/{assets/css → css}/animated.scss +0 -0
  129. /package/packages/{assets/css → css}/loader.scss +0 -0
@@ -1,11 +1,21 @@
1
- <template>
2
- <a class="vxe-cell-href-a" :href="rdata[rkey]" :target="rprops.target" v-html="renderText"></a>
3
- </template>
4
-
5
- <script>
6
- import mixin from '../mixin/cell-mixin'
7
- export default {
8
- name: 'VxeRenderImg',
9
- mixins: [mixin]
10
- }
11
- </script>
1
+ <template>
2
+ <a class="vxe-cell-href-a" :href="rdata[rkey]" :target="rprops.target" v-html="renderText"></a>
3
+ </template>
4
+
5
+ <script>
6
+ import { defineComponent, getCurrentInstance } from 'vue'
7
+ import cellProps from '../mixin/cell-props'
8
+ import cellHooks from '../mixin/cell-hooks'
9
+ export default defineComponent({
10
+ name: 'VxeRenderImg',
11
+ props: cellProps,
12
+ setup(props, context) {
13
+ const { proxy } = getCurrentInstance()
14
+ const useCell = cellHooks(props, context, proxy)
15
+
16
+ return {
17
+ ...useCell
18
+ }
19
+ }
20
+ })
21
+ </script>
@@ -5,17 +5,23 @@
5
5
  </template>
6
6
 
7
7
  <script>
8
- import mixin from '../mixin/cell-mixin'
9
- export default {
8
+ import { computed, defineComponent, getCurrentInstance } from 'vue'
9
+ import cellProps from '../mixin/cell-props'
10
+ export default defineComponent({
10
11
  name: 'VxeRenderImg',
11
- mixins: [mixin],
12
- computed: {
13
- imgSrc() {
14
- return this.$vUtils.get(this.rdata, this.rkey)
15
- },
16
- imgHeight() {
17
- return this.rprops.square ? this.rprops.width : this.rprops.height
12
+ props: cellProps,
13
+ setup(props, context) {
14
+ const { proxy } = getCurrentInstance()
15
+ const { $vUtils } = proxy
16
+ const imgSrc = computed(() => $vUtils.get(props.rdata, props.rkey))
17
+ const imgHeight = computed(() => {
18
+ return props.rprops.square ? props.rprops.width : props.rprops.height
19
+ })
20
+
21
+ return {
22
+ imgSrc,
23
+ imgHeight
18
24
  }
19
25
  }
20
- }
26
+ })
21
27
  </script>
@@ -1,67 +1,83 @@
1
- <template>
2
- <span class="vxe-render--inner" :class="{ 'form-render': rform, 'td-render': !rform }">
3
- <template v-if="redit || isEditAll">
4
- <span v-if="rprops.prefixText && rform" class="prefix">
5
- <vxe-button v-if="prefixButton" v-bind="psButtonConfig" @click="vxeInputPrefixClick">{{ rprops.prefixText }}</vxe-button>
6
- <span v-else @click="vxeInputPrefixClick">{{ rprops.prefixText }}</span>
7
- </span>
8
- <span v-else-if="controlButton" class="control-btn before" @click="vxeControlClick(false)">-</span>
9
- <vxe-input v-model="renderValue" v-bind="rprops" :size="rsize" @change="vxeInputChange" @blur="vxeBlurCallback" @clear="vxeBlurCallback"></vxe-input>
10
- <span v-if="rprops.suffixText && rform" class="suffix">
11
- <vxe-button v-if="suffixButton" v-bind="psButtonConfig" @click="vxeInputSuffixClick">{{ rprops.suffixText }}</vxe-button>
12
- <span v-else @click="vxeInputSuffixClick">{{ rprops.suffixText }}</span>
13
- </span>
14
- <span v-else-if="controlButton" class="control-btn after" @click="vxeControlClick(true)">+</span>
15
- <span style="display: none" v-html="renderText"></span>
16
- </template>
17
- <template v-else>
18
- <span v-if="rprops.prefixText && renderText" class="prefix">{{ rprops.prefixText }}</span>
19
- <span v-html="renderText"></span>
20
- <span v-if="rprops.suffixText && renderText" class="suffix">{{ rprops.suffixText }}</span>
21
- </template>
22
- </span>
23
- </template>
24
-
25
- <script>
26
- import mixin from '../mixin/cell-mixin'
27
- export default {
28
- name: 'VxeRenderInput',
29
- mixins: [mixin],
30
- computed: {
31
- controlButton() {
32
- return this.rprops.control && ['number', 'float', 'integer'].includes(this.rprops.type)
33
- },
34
- psButtonConfig() {
35
- return {
36
- disabled: this.rprops.disabled,
37
- size: this.rsize,
38
- status: 'theme'
39
- }
40
- },
41
- prefixButton() {
42
- return this.rprops.prefixType.toLowerCase() === 'button'
43
- },
44
- suffixButton() {
45
- return this.rprops.suffixType.toLowerCase() === 'button'
46
- }
47
- },
48
- methods: {
49
- // 输入框前缀点击事件
50
- vxeInputPrefixClick() {
51
- if (this.rprops.disabled) return
52
- if (this.rform) {
53
- let { $form } = this.rparams
54
- $form.context.emit('prefix-click', this.rparams, this)
55
- }
56
- },
57
- // 输入框后缀点击事件
58
- vxeInputSuffixClick() {
59
- if (this.rprops.disabled) return
60
- if (this.rform) {
61
- let { $form } = this.rparams
62
- $form.context.emit('suffix-click', this.rparams, this)
63
- }
64
- }
65
- }
66
- }
67
- </script>
1
+ <template>
2
+ <span class="vxe-render--inner" :class="{ 'form-render': rform, 'td-render': !rform, 'flex-render': controlButton }">
3
+ <template v-if="redit || isEditAll">
4
+ <span v-if="rprops.prefixText && rform" class="prefix">
5
+ <vxe-button v-if="prefixButton" v-bind="psButtonConfig" @click="vxeInputPrefixClick">{{ rprops.prefixText }}</vxe-button>
6
+ <span v-else @click="vxeInputPrefixClick">{{ rprops.prefixText }}</span>
7
+ </span>
8
+ <span v-else-if="controlButton" class="control-btn before" @click="vxeControlClick(false)">-</span>
9
+ <vxe-input v-model="renderValue" v-bind="rprops" :size="rsize" @change="vxeInputChange" @blur="vxeBlurCallback" @clear="vxeBlurCallback"></vxe-input>
10
+ <span v-if="rprops.suffixText && rform" class="suffix">
11
+ <vxe-button v-if="suffixButton" v-bind="psButtonConfig" @click="vxeInputSuffixClick">{{ rprops.suffixText }}</vxe-button>
12
+ <span v-else @click="vxeInputSuffixClick">{{ rprops.suffixText }}</span>
13
+ </span>
14
+ <span v-else-if="controlButton" class="control-btn after" @click="vxeControlClick(true)">+</span>
15
+ </template>
16
+ <template v-else>
17
+ <span v-if="rprops.prefixText && renderText" class="prefix">{{ rprops.prefixText }}</span>
18
+ <span v-html="renderText"></span>
19
+ <span v-if="rprops.suffixText && renderText" class="suffix">{{ rprops.suffixText }}</span>
20
+ </template>
21
+ </span>
22
+ </template>
23
+
24
+ <script>
25
+ import { computed, defineComponent, getCurrentInstance } from 'vue'
26
+ import cellProps from '../mixin/cell-props'
27
+ import cellHooks from '../mixin/cell-hooks'
28
+ export default defineComponent({
29
+ name: 'VxeRenderInput',
30
+ props: cellProps,
31
+ setup(props, context) {
32
+ const { proxy } = getCurrentInstance()
33
+ const { $vUtils } = proxy
34
+ const useCell = cellHooks(props, context, proxy)
35
+
36
+ const controlButton = computed(() => props.rprops.control && ['number', 'float', 'integer'].includes(props.rprops.type))
37
+ const psButtonConfig = computed(() => {
38
+ return {
39
+ disabled: props.rprops.disabled,
40
+ size: props.rsize,
41
+ status: 'theme'
42
+ }
43
+ })
44
+ const prefixButton = computed(() => props.rprops.prefixType.toLowerCase() === 'button')
45
+ const suffixButton = computed(() => props.rprops.suffixType.toLowerCase() === 'button')
46
+
47
+ // 输入框前缀点击事件
48
+ const vxeInputPrefixClick = () => {
49
+ if (props.rprops.disabled) return
50
+ if (useCell.rform.value) {
51
+ let { $form } = props.rparams
52
+ $form.context.emit('prefix-click', props.rparams)
53
+ }
54
+ }
55
+ // 输入框后缀点击事件
56
+ const vxeInputSuffixClick = () => {
57
+ if (props.rprops.disabled) return
58
+ if (useCell.rform.value) {
59
+ let { $form } = props.rparams
60
+ $form.context.emit('suffix-click', props.rparams)
61
+ }
62
+ }
63
+ // 输入框数字加减控制
64
+ const vxeControlClick = bol => {
65
+ const { step = 1, min, max } = props.rprops
66
+ let value = bol ? $vUtils.add(useCell.renderValue.value, step) : $vUtils.subtract(useCell.renderValue.value, step)
67
+ if ((min !== undefined && value < min) || (max !== undefined && value > max)) return
68
+ useCell.setRenderValue(value)
69
+ }
70
+
71
+ return {
72
+ ...useCell,
73
+ controlButton,
74
+ psButtonConfig,
75
+ prefixButton,
76
+ suffixButton,
77
+ vxeInputPrefixClick,
78
+ vxeInputSuffixClick,
79
+ vxeControlClick
80
+ }
81
+ }
82
+ })
83
+ </script>
@@ -2,13 +2,11 @@
2
2
  <span class="vxe-render--inner" :class="{ 'form-render': rform, 'td-render': !rform, 'td-all': rprops.bill }">
3
3
  <template v-if="redit || isEditAll">
4
4
  <vxe-input v-model="renderValue" type="number" v-bind="rprops" :size="rsize" @change="vxeInputChange" @blur="vxeBlurCallback" @clear="vxeBlurCallback" />
5
- <span style="display: none" v-html="renderText"></span>
6
5
  </template>
7
6
  <template v-else-if="rprops.bill">
8
7
  <template v-for="(bil, bilindex) in billGroups" :key="bilindex">
9
8
  <span class="cell-bill-number" :class="getBillClass(bil)">{{ getBillValue(bilindex) }}</span>
10
9
  </template>
11
- <span style="display: none" v-html="renderText"></span>
12
10
  </template>
13
11
  <template v-else>
14
12
  <span class="blue" v-html="renderText"></span>
@@ -17,9 +15,19 @@
17
15
  </template>
18
16
 
19
17
  <script>
20
- import mixin from '../mixin/cell-mixin'
21
- export default {
18
+ import { computed, defineComponent, getCurrentInstance } from 'vue'
19
+ import cellProps from '../mixin/cell-props'
20
+ import cellHooks from '../mixin/cell-hooks'
21
+ export default defineComponent({
22
22
  name: 'VxeRenderMoney',
23
- mixins: [mixin]
24
- }
23
+ props: cellProps,
24
+ setup(props, context) {
25
+ const { proxy } = getCurrentInstance()
26
+ const useCell = cellHooks(props, context, proxy)
27
+
28
+ return {
29
+ ...useCell
30
+ }
31
+ }
32
+ })
25
33
  </script>
@@ -1,19 +1,28 @@
1
- <template>
2
- <span class="vxe-render--inner" :class="{ 'form-render': rform, 'td-render': !rform }">
3
- <template v-if="redit || isEditAll">
4
- <vxe-input v-model="renderValue" type="number" v-bind="rprops" :size="rsize" @change="vxeInputChange" @blur="vxeBlurCallback" @clear="vxeBlurCallback" />
5
- <span style="display: none" v-html="renderText"></span>
6
- </template>
7
- <template v-else>
8
- <sh-progress :percent="renderText" v-bind="rprops" />
9
- </template>
10
- </span>
11
- </template>
12
-
13
- <script>
14
- import mixin from '../mixin/cell-mixin'
15
- export default {
16
- name: 'VxeRenderPropgress',
17
- mixins: [mixin]
18
- }
19
- </script>
1
+ <template>
2
+ <span class="vxe-render--inner" :class="{ 'form-render': rform, 'td-render': !rform }">
3
+ <template v-if="redit || isEditAll">
4
+ <vxe-input v-model="renderValue" type="number" v-bind="rprops" :size="rsize" @change="vxeInputChange" @blur="vxeBlurCallback" @clear="vxeBlurCallback" />
5
+ </template>
6
+ <template v-else>
7
+ <sh-progress :percent="renderText" v-bind="rprops" />
8
+ </template>
9
+ </span>
10
+ </template>
11
+
12
+ <script>
13
+ import { defineComponent, getCurrentInstance } from 'vue'
14
+ import cellProps from '../mixin/cell-props'
15
+ import cellHooks from '../mixin/cell-hooks'
16
+ export default defineComponent({
17
+ name: 'VxeRenderPropgress',
18
+ props: cellProps,
19
+ setup(props, context) {
20
+ const { proxy } = getCurrentInstance()
21
+ const useCell = cellHooks(props, context, proxy)
22
+
23
+ return {
24
+ ...useCell
25
+ }
26
+ }
27
+ })
28
+ </script>
@@ -2,7 +2,6 @@
2
2
  <span class="vxe-render--inner" :class="{ 'vxe-render--inner--readonly': !redit, 'form-render': rform, 'td-render': !rform }">
3
3
  <template v-if="redit || isEditAll">
4
4
  <vxe-radio v-model="renderValue" v-bind="rprops" :size="rsize" @change="vxeRadioCallBack" />
5
- <span style="display: none" v-html="renderText"></span>
6
5
  </template>
7
6
  <template v-else>
8
7
  <vxe-radio :model-value="renderText" :disabled="true" v-bind="rprops" :size="rsize" />
@@ -11,9 +10,19 @@
11
10
  </template>
12
11
 
13
12
  <script>
14
- import mixin from '../mixin/cell-mixin'
15
- export default {
13
+ import { defineComponent, getCurrentInstance } from 'vue'
14
+ import cellProps from '../mixin/cell-props'
15
+ import cellHooks from '../mixin/cell-hooks'
16
+ export default defineComponent({
16
17
  name: 'VxeRenderRadio',
17
- mixins: [mixin]
18
- }
18
+ props: cellProps,
19
+ setup(props, context) {
20
+ const { proxy } = getCurrentInstance()
21
+ const useCell = cellHooks(props, context, proxy)
22
+
23
+ return {
24
+ ...useCell
25
+ }
26
+ }
27
+ })
19
28
  </script>
@@ -1,36 +1,43 @@
1
- <template>
2
- <span class="vxe-render--inner" :class="{ 'form-render': rform, 'td-render': !rform }">
3
- <template v-if="redit || isEditAll">
4
- <vxe-radio-group v-model="renderValue" v-bind="rprops" :size="rsize" @change="vxeRadioCallBack">
5
- <vxe-radio v-for="checkitem in rprops.options" :key="checkitem.value" :label="checkitem.value" :content="checkitem.label" />
6
- </vxe-radio-group>
7
- <span style="display: none" v-html="renderText"></span>
8
- </template>
9
- <template v-else-if="!redit && showType">
10
- <div v-for="roption in rprops.options" :key="roption">
11
- <sh-tag v-if="roptionShow(roption)" :color="roption.tagColor || rprops.tagColor" :type="roption.tagType || rprops.tagType">{{ roption.label }}</sh-tag>
12
- </div>
13
- </template>
14
- <template v-else>
15
- <span v-html="renderText"></span>
16
- </template>
17
- </span>
18
- </template>
19
-
20
- <script>
21
- import mixin from '../mixin/cell-mixin'
22
- export default {
23
- name: 'VxeRenderRadiogroup',
24
- mixins: [mixin],
25
- computed: {
26
- showType() {
27
- return this.rprops.showType === 'tag'
28
- }
29
- },
30
- methods: {
31
- roptionShow(roption) {
32
- return this.renderText.split(this.rprops.split).includes(roption.label)
33
- }
34
- }
35
- }
36
- </script>
1
+ <template>
2
+ <span class="vxe-render--inner" :class="{ 'form-render': rform, 'td-render': !rform }">
3
+ <template v-if="redit || isEditAll">
4
+ <vxe-radio-group v-model="renderValue" v-bind="rprops" :size="rsize" @change="vxeRadioCallBack">
5
+ <vxe-radio v-for="checkitem in rprops.options" :key="checkitem.value" :label="checkitem.value" :content="checkitem.label" />
6
+ </vxe-radio-group>
7
+ </template>
8
+ <template v-else-if="!redit && showType">
9
+ <div v-for="roption in rprops.options" :key="roption">
10
+ <sh-tag v-if="roptionShow(roption)" :color="roption.tagColor || rprops.tagColor" :type="roption.tagType || rprops.tagType">{{ roption.label }}</sh-tag>
11
+ </div>
12
+ </template>
13
+ <template v-else>
14
+ <span v-html="renderText"></span>
15
+ </template>
16
+ </span>
17
+ </template>
18
+
19
+ <script>
20
+ import { computed, defineComponent, getCurrentInstance } from 'vue'
21
+ import cellProps from '../mixin/cell-props'
22
+ import cellHooks from '../mixin/cell-hooks'
23
+ export default defineComponent({
24
+ name: 'VxeRenderRadiogroup',
25
+ props: cellProps,
26
+ setup(props, context) {
27
+ const { proxy } = getCurrentInstance()
28
+ const useCell = cellHooks(props, context, proxy)
29
+
30
+ const showType = computed(() => props.rprops.showType === 'tag')
31
+
32
+ const roptionShow = roption => {
33
+ return useCell.renderText.value.split(props.rprops.split).includes(roption.label)
34
+ }
35
+
36
+ return {
37
+ ...useCell,
38
+ showType,
39
+ roptionShow
40
+ }
41
+ }
42
+ })
43
+ </script>
@@ -1,36 +1,44 @@
1
- <template>
2
- <span class="vxe-render--inner" :class="{ 'form-render': rform, 'td-render': !rform }">
3
- <template v-if="redit || isEditAll">
4
- <vxe-select v-model="renderValue" v-bind="rprops" :size="rsize" @change="vxeChangeCallBack" />
5
- <span style="display: none" v-html="renderText"></span>
6
- </template>
7
- <template v-else-if="!redit && showType">
8
- <template v-for="showTag in showTags" :key="showTag.value">
9
- <sh-tag :color="showTag.tagColor || rprops.tagColor" :type="showTag.tagType || rprops.tagType">{{ showTag.label }}</sh-tag>
10
- </template>
11
- <span style="display: none" v-html="renderText"></span>
12
- </template>
13
- <span v-else v-html="renderText"></span>
14
- </span>
15
- </template>
16
-
17
- <script>
18
- import mixin from '../mixin/cell-mixin'
19
- export default {
20
- name: 'VxeRenderSelect',
21
- mixins: [mixin],
22
- computed: {
23
- showType() {
24
- return this.rprops.showType === 'tag'
25
- },
26
- showTags() {
27
- const { renderValue, rprops } = this
28
- const { options = [], multiple } = rprops
29
- if (multiple && Array.isArray(renderValue)) {
30
- return options.filter(option => renderValue.includes(option.value))
31
- }
32
- return options.filter(option => String(option.value) === String(renderValue))
33
- }
34
- }
35
- }
36
- </script>
1
+ <template>
2
+ <span class="vxe-render--inner" :class="{ 'form-render': rform, 'td-render': !rform }">
3
+ <template v-if="redit || isEditAll">
4
+ <vxe-select v-model="renderValue" v-bind="rprops" :size="rsize" @change="vxeChangeCallBack" />
5
+ </template>
6
+ <template v-else-if="!redit && showType">
7
+ <template v-for="showTag in showTags" :key="showTag.value">
8
+ <sh-tag :color="showTag.tagColor || rprops.tagColor" :type="showTag.tagType || rprops.tagType">{{ showTag.label }}</sh-tag>
9
+ </template>
10
+ </template>
11
+ <span v-else v-html="renderText"></span>
12
+ </span>
13
+ </template>
14
+
15
+ <script>
16
+ import { computed, defineComponent, getCurrentInstance } from 'vue'
17
+ import cellProps from '../mixin/cell-props'
18
+ import cellHooks from '../mixin/cell-hooks'
19
+ export default defineComponent({
20
+ name: 'VxeRenderSelect',
21
+ props: cellProps,
22
+ setup(props, context) {
23
+ const { proxy } = getCurrentInstance()
24
+ const useCell = cellHooks(props, context, proxy)
25
+
26
+ const showType = computed(() => props.rprops.showType === 'tag')
27
+
28
+ const showTags = computed(() => {
29
+ const renderValue = useCell.renderValue.value
30
+ const { options = [], multiple } = props.rprops
31
+ if (multiple && Array.isArray(renderValue)) {
32
+ return options.filter(option => renderValue.includes(option.value))
33
+ }
34
+ return options.filter(option => String(option.value) === String(renderValue))
35
+ })
36
+
37
+ return {
38
+ ...useCell,
39
+ showType,
40
+ showTags
41
+ }
42
+ }
43
+ })
44
+ </script>
@@ -2,7 +2,6 @@
2
2
  <span class="vxe-render--inner" :class="{ 'vxe-render--inner--readonly': !redit, 'form-render': rform, 'td-render': !rform }">
3
3
  <template v-if="redit || isEditAll">
4
4
  <vxe-switch v-model="renderValue" v-bind="rprops" :size="rsize" @change="vxeChangeCallBack" />
5
- <span style="display: none" v-html="renderText"></span>
6
5
  </template>
7
6
  <template v-else>
8
7
  <span v-html="renderText"></span>
@@ -11,9 +10,19 @@
11
10
  </template>
12
11
 
13
12
  <script>
14
- import mixin from '../mixin/cell-mixin'
15
- export default {
13
+ import { defineComponent, getCurrentInstance } from 'vue'
14
+ import cellProps from '../mixin/cell-props'
15
+ import cellHooks from '../mixin/cell-hooks'
16
+ export default defineComponent({
16
17
  name: 'VxeRenderSwitch',
17
- mixins: [mixin]
18
- }
18
+ props: cellProps,
19
+ setup(props, context) {
20
+ const { proxy } = getCurrentInstance()
21
+ const useCell = cellHooks(props, context, proxy)
22
+
23
+ return {
24
+ ...useCell
25
+ }
26
+ }
27
+ })
19
28
  </script>