sh-view 2.5.6 → 2.5.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sh-view",
3
- "version": "2.5.6",
3
+ "version": "2.5.7",
4
4
  "description": "基于vxe-table二次封装",
5
5
  "main": "packages/index.js",
6
6
  "scripts": {
@@ -1,28 +1,36 @@
1
- <template>
2
- <span class="vxe-render--inner" :class="{ 'form-render': rform, 'td-render': !rform }">
3
- <template v-if="redit || isEditAll">
4
- <sh-code-editor v-model="renderValue" v-bind="rprops" @change="vxeInputChange" @blur="vxeBlurCallback"></sh-code-editor>
5
- </template>
6
- <template v-else>
7
- <span>{{ renderText }}</span>
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: 'VxeRenderCode',
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>
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
+ <sh-code-editor v-model="renderValue" v-bind="rprops" @change="vxeInputChange" @blur="vxeBlurCallback"></sh-code-editor>
9
+ <span v-if="rprops.suffixText && rform" class="suffix">
10
+ <vxe-button v-if="suffixButton" v-bind="psButtonConfig" @click="vxeInputSuffixClick">{{ rprops.suffixText }}</vxe-button>
11
+ <span v-else @click="vxeInputSuffixClick">{{ rprops.suffixText }}</span>
12
+ </span>
13
+ </template>
14
+ <template v-else>
15
+ <span>{{ renderText }}</span>
16
+ </template>
17
+ </span>
18
+ </template>
19
+
20
+ <script>
21
+ import { defineComponent, getCurrentInstance } from 'vue'
22
+ import cellProps from '../mixin/cell-props'
23
+ import cellHooks from '../mixin/cell-hooks'
24
+ export default defineComponent({
25
+ name: 'VxeRenderCode',
26
+ props: cellProps,
27
+ setup(props, context) {
28
+ const { proxy } = getCurrentInstance()
29
+ const useCell = cellHooks(props, context, proxy)
30
+
31
+ return {
32
+ ...useCell
33
+ }
34
+ }
35
+ })
36
+ </script>
@@ -1,83 +1,53 @@
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>
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
+
38
+ // 输入框数字加减控制
39
+ const vxeControlClick = bol => {
40
+ const { step = 1, min, max } = props.rprops
41
+ let value = bol ? $vUtils.add(useCell.renderValue.value, step) : $vUtils.subtract(useCell.renderValue.value, step)
42
+ if ((min !== undefined && value < min) || (max !== undefined && value > max)) return
43
+ useCell.setRenderValue(value)
44
+ }
45
+
46
+ return {
47
+ ...useCell,
48
+ controlButton,
49
+ vxeControlClick
50
+ }
51
+ }
52
+ })
53
+ </script>
@@ -1,44 +1,52 @@
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>
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
+ <vxe-select v-model="renderValue" v-bind="rprops" :size="rsize" @change="vxeChangeCallBack" />
9
+ <span v-if="rprops.suffixText && rform" class="suffix">
10
+ <vxe-button v-if="suffixButton" v-bind="psButtonConfig" @click="vxeInputSuffixClick">{{ rprops.suffixText }}</vxe-button>
11
+ <span v-else @click="vxeInputSuffixClick">{{ rprops.suffixText }}</span>
12
+ </span>
13
+ </template>
14
+ <template v-else-if="!redit && showType">
15
+ <template v-for="showTag in showTags" :key="showTag.value">
16
+ <sh-tag :color="showTag.tagColor || rprops.tagColor" :type="showTag.tagType || rprops.tagType">{{ showTag.label }}</sh-tag>
17
+ </template>
18
+ </template>
19
+ <span v-else v-html="renderText"></span>
20
+ </span>
21
+ </template>
22
+
23
+ <script>
24
+ import { computed, defineComponent, getCurrentInstance } from 'vue'
25
+ import cellProps from '../mixin/cell-props'
26
+ import cellHooks from '../mixin/cell-hooks'
27
+ export default defineComponent({
28
+ name: 'VxeRenderSelect',
29
+ props: cellProps,
30
+ setup(props, context) {
31
+ const { proxy } = getCurrentInstance()
32
+ const useCell = cellHooks(props, context, proxy)
33
+
34
+ const showType = computed(() => props.rprops.showType === 'tag')
35
+
36
+ const showTags = computed(() => {
37
+ const renderValue = useCell.renderValue.value
38
+ const { options = [], multiple } = props.rprops
39
+ if (multiple && Array.isArray(renderValue)) {
40
+ return options.filter(option => renderValue.includes(option.value))
41
+ }
42
+ return options.filter(option => String(option.value) === String(renderValue))
43
+ })
44
+
45
+ return {
46
+ ...useCell,
47
+ showType,
48
+ showTags
49
+ }
50
+ }
51
+ })
52
+ </script>
@@ -1,7 +1,15 @@
1
1
  <template>
2
2
  <span class="vxe-render--inner" :class="{ 'form-render': rform, 'td-render': !rform }">
3
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>
4
8
  <sh-tree v-model="renderValue" v-bind="rprops" :field="rkey" :value-data="rdata" :size="rsize" is-select @change="vxeTreeCallback"></sh-tree>
9
+ <span v-if="rprops.suffixText && rform" class="suffix">
10
+ <vxe-button v-if="suffixButton" v-bind="psButtonConfig" @click="vxeInputSuffixClick">{{ rprops.suffixText }}</vxe-button>
11
+ <span v-else @click="vxeInputSuffixClick">{{ rprops.suffixText }}</span>
12
+ </span>
5
13
  </template>
6
14
  <template v-else>
7
15
  <span v-html="renderText"></span>
@@ -45,6 +45,11 @@ export default function (props, context, proxy) {
45
45
  let endIndex = cnGroups.findIndex(cn => cn.fullText === billStart)
46
46
  return cnGroups.slice(startIndex, endIndex)
47
47
  })
48
+ const psButtonConfig = computed(() => {
49
+ return { disabled: props.rprops.disabled, size: props.rsize, status: 'theme' }
50
+ })
51
+ const prefixButton = computed(() => props.rprops.prefixType.toLowerCase() === 'button')
52
+ const suffixButton = computed(() => props.rprops.suffixType.toLowerCase() === 'button')
48
53
 
49
54
  // 初始化数据
50
55
  const initData = () => {
@@ -52,6 +57,22 @@ export default function (props, context, proxy) {
52
57
  formatValueFun(keyValue)
53
58
  }
54
59
 
60
+ // 输入框前缀点击事件
61
+ const vxeInputPrefixClick = () => {
62
+ if (props.rprops.disabled) return
63
+ if (rform.value) {
64
+ let { $form } = props.rparams
65
+ $form.context.emit('prefix-click', props.rparams)
66
+ }
67
+ }
68
+ // 输入框后缀点击事件
69
+ const vxeInputSuffixClick = () => {
70
+ if (props.rprops.disabled) return
71
+ if (rform.value) {
72
+ let { $form } = props.rparams
73
+ $form.context.emit('suffix-click', props.rparams)
74
+ }
75
+ }
55
76
  // 输入框变化
56
77
  const vxeInputChange = async ({ value, $event }) => {
57
78
  // 此操作火狐浏览器(bug(vxe):编辑后不触发渲染器的blur问题)触发edit-closed,故在edit-close重新赋值
@@ -154,6 +175,11 @@ export default function (props, context, proxy) {
154
175
  isEditAll,
155
176
  moneyUnitText,
156
177
  billGroups,
178
+ psButtonConfig,
179
+ prefixButton,
180
+ suffixButton,
181
+ vxeInputPrefixClick,
182
+ vxeInputSuffixClick,
157
183
  vxeInputChange,
158
184
  vxeChangeCallBack,
159
185
  vxeRadioCallBack,