sh-view 2.6.1 → 2.6.3

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 (28) hide show
  1. package/package.json +1 -1
  2. package/packages/components/global-components/sh-form/form.vue +110 -110
  3. package/packages/components/global-components/sh-form/js/useForm.js +3 -0
  4. package/packages/components/global-components/sh-form/query.vue +70 -70
  5. package/packages/components/global-components/sh-table/components/sh-column.vue +69 -69
  6. package/packages/components/global-components/sh-table/grid.vue +160 -160
  7. package/packages/components/global-components/sh-table/table.vue +218 -218
  8. package/packages/components/other-components/sh-cron-modal/mixin/cron-hooks.js +179 -179
  9. package/packages/components/other-components/sh-cron-modal/tabs/cron-day-box.vue +101 -101
  10. package/packages/components/other-components/sh-cron-modal/tabs/cron-hour-box.vue +68 -68
  11. package/packages/components/other-components/sh-cron-modal/tabs/cron-minute-box.vue +68 -68
  12. package/packages/components/other-components/sh-cron-modal/tabs/cron-month-box.vue +68 -68
  13. package/packages/components/other-components/sh-cron-modal/tabs/cron-second-box.vue +68 -68
  14. package/packages/components/other-components/sh-cron-modal/tabs/cron-week-box.vue +126 -126
  15. package/packages/components/other-components/sh-cron-modal/tabs/cron-year-box.vue +59 -59
  16. package/packages/components/other-components/sh-preview/components/sh-excel.vue +929 -929
  17. package/packages/components/other-components/sh-preview/components/sh-word.vue +78 -78
  18. package/packages/vxeTable/render/cell/vxe-render-code.vue +36 -36
  19. package/packages/vxeTable/render/cell/vxe-render-goption.vue +104 -104
  20. package/packages/vxeTable/render/cell/vxe-render-href.vue +21 -21
  21. package/packages/vxeTable/render/cell/vxe-render-input.vue +53 -53
  22. package/packages/vxeTable/render/cell/vxe-render-select.vue +52 -52
  23. package/packages/vxeTable/render/cell/vxe-render-table.vue +51 -51
  24. package/packages/vxeTable/render/cell/vxe-render-tree.vue +63 -63
  25. package/packages/vxeTable/render/filters/vxe-filter-input.vue +25 -25
  26. package/packages/vxeTable/render/footer/vxe-footer-input.vue +23 -23
  27. package/packages/vxeTable/render/footer/vxe-footer-money.vue +30 -30
  28. package/packages/vxeTable/render/header/vxe-header-money.vue +31 -31
@@ -1,52 +1,52 @@
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
+ <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,51 +1,51 @@
1
- <template>
2
- <span class="vxe-render--inner" style="display: inline-grid; width: 100%">
3
- <sh-table
4
- ref="shTableRef"
5
- :disabled="!redit && !isEditAll"
6
- v-bind="rprops"
7
- :size="rsize"
8
- :data-sourse="renderValue"
9
- @edit-closed="vxeInputCallback"
10
- @toolbaroption="onToolbaroption"></sh-table>
11
- </span>
12
- </template>
13
-
14
- <script>
15
- import { defineComponent, getCurrentInstance, ref } from 'vue'
16
- import cellProps from '../mixin/cell-props'
17
- import cellHooks from '../mixin/cell-hooks'
18
- export default defineComponent({
19
- name: 'VxeRenderTable',
20
- props: cellProps,
21
- setup(props, context) {
22
- const { proxy } = getCurrentInstance()
23
- const useCell = cellHooks(props, context, proxy)
24
- const shTableRef = ref()
25
-
26
- const fullData = () => {
27
- return shTableRef.value.getFullData()
28
- }
29
-
30
- // 输入框回调
31
- const vxeInputCallback = ({ $table, row }) => {
32
- driveBackData()
33
- }
34
- // 新增、删除行回调
35
- const onToolbaroption = (code, data, $table) => {
36
- driveBackData()
37
- }
38
- // 回填数据
39
- const driveBackData = value => {
40
- useCell.setRenderValue(fullData(), true)
41
- }
42
-
43
- return {
44
- ...useCell,
45
- shTableRef,
46
- vxeInputCallback,
47
- onToolbaroption
48
- }
49
- }
50
- })
51
- </script>
1
+ <template>
2
+ <span class="vxe-render--inner" style="display: inline-grid; width: 100%">
3
+ <sh-table
4
+ ref="shTableRef"
5
+ :disabled="!redit && !isEditAll"
6
+ v-bind="rprops"
7
+ :size="rsize"
8
+ :data-sourse="renderValue"
9
+ @edit-closed="vxeInputCallback"
10
+ @toolbaroption="onToolbaroption"></sh-table>
11
+ </span>
12
+ </template>
13
+
14
+ <script>
15
+ import { defineComponent, getCurrentInstance, ref } from 'vue'
16
+ import cellProps from '../mixin/cell-props'
17
+ import cellHooks from '../mixin/cell-hooks'
18
+ export default defineComponent({
19
+ name: 'VxeRenderTable',
20
+ props: cellProps,
21
+ setup(props, context) {
22
+ const { proxy } = getCurrentInstance()
23
+ const useCell = cellHooks(props, context, proxy)
24
+ const shTableRef = ref()
25
+
26
+ const fullData = () => {
27
+ return shTableRef.value.getFullData()
28
+ }
29
+
30
+ // 输入框回调
31
+ const vxeInputCallback = ({ $table, row }) => {
32
+ driveBackData()
33
+ }
34
+ // 新增、删除行回调
35
+ const onToolbaroption = (code, data, $table) => {
36
+ driveBackData()
37
+ }
38
+ // 回填数据
39
+ const driveBackData = value => {
40
+ useCell.setRenderValue(fullData(), true)
41
+ }
42
+
43
+ return {
44
+ ...useCell,
45
+ shTableRef,
46
+ vxeInputCallback,
47
+ onToolbaroption
48
+ }
49
+ }
50
+ })
51
+ </script>
@@ -1,63 +1,63 @@
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-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>
13
- </template>
14
- <template v-else>
15
- <span v-html="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: 'VxeRenderTree',
26
- props: cellProps,
27
- setup(props, context) {
28
- const { proxy } = getCurrentInstance()
29
- const { $vUtils } = proxy
30
- const useCell = cellHooks(props, context, proxy)
31
-
32
- // 输入框回调
33
- const vxeTreeCallback = (selectedKeys, selectedRows) => {
34
- let { valueKeys, multiple } = props.rprops
35
- if (!multiple) {
36
- selectedKeys = selectedKeys[0] || ''
37
- }
38
- if (valueKeys && selectedRows && selectedRows.length > 0) {
39
- let prefixKey = props.rkey.endsWith('Id') ? String(props.rkey).replace('Id', '') : props.rkey
40
- let valueks = Array.isArray(valueKeys) ? valueKeys : valueKeys.split(',')
41
- valueks.forEach(key => {
42
- let keySplits = key.split('=')
43
- let fromDefaultKey = String(keySplits[0]).replace(/@/gi, '').toLowerCase()
44
- let fromKey = keySplits[1] || String(keySplits[0]).replace(/@/gi, prefixKey)
45
- let fromvalue = null
46
- if (multiple) {
47
- fromvalue = selectedRows.map(item => $vUtils.get(item, fromKey) || $vUtils.get(item, fromDefaultKey))
48
- } else {
49
- fromvalue = $vUtils.get(selectedRows[0], fromKey) || $vUtils.get(selectedRows[0], fromDefaultKey)
50
- }
51
- $vUtils.set(props.rdata, fromKey, fromvalue)
52
- })
53
- }
54
- useCell.setRenderValue(selectedKeys, true)
55
- }
56
-
57
- return {
58
- ...useCell,
59
- vxeTreeCallback
60
- }
61
- }
62
- })
63
- </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-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>
13
+ </template>
14
+ <template v-else>
15
+ <span v-html="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: 'VxeRenderTree',
26
+ props: cellProps,
27
+ setup(props, context) {
28
+ const { proxy } = getCurrentInstance()
29
+ const { $vUtils } = proxy
30
+ const useCell = cellHooks(props, context, proxy)
31
+
32
+ // 输入框回调
33
+ const vxeTreeCallback = (selectedKeys, selectedRows) => {
34
+ let { valueKeys, multiple } = props.rprops
35
+ if (!multiple) {
36
+ selectedKeys = selectedKeys[0] || ''
37
+ }
38
+ if (valueKeys && selectedRows && selectedRows.length > 0) {
39
+ let prefixKey = props.rkey.endsWith('Id') ? String(props.rkey).replace('Id', '') : props.rkey
40
+ let valueks = Array.isArray(valueKeys) ? valueKeys : valueKeys.split(',')
41
+ valueks.forEach(key => {
42
+ let keySplits = key.split('=')
43
+ let fromDefaultKey = String(keySplits[0]).replace(/@/gi, '').toLowerCase()
44
+ let fromKey = keySplits[1] || String(keySplits[0]).replace(/@/gi, prefixKey)
45
+ let fromvalue = null
46
+ if (multiple) {
47
+ fromvalue = selectedRows.map(item => $vUtils.get(item, fromKey) || $vUtils.get(item, fromDefaultKey))
48
+ } else {
49
+ fromvalue = $vUtils.get(selectedRows[0], fromKey) || $vUtils.get(selectedRows[0], fromDefaultKey)
50
+ }
51
+ $vUtils.set(props.rdata, fromKey, fromvalue)
52
+ })
53
+ }
54
+ useCell.setRenderValue(selectedKeys, true)
55
+ }
56
+
57
+ return {
58
+ ...useCell,
59
+ vxeTreeCallback
60
+ }
61
+ }
62
+ })
63
+ </script>
@@ -1,25 +1,25 @@
1
- <template>
2
- <div class="vxe-filter--wrap">
3
- <span class="vxe-filter--inner">
4
- <vxe-input v-model="renderValue.data" v-bind="rprops" :disabled="false" @input="vxeFilterCallback" />
5
- </span>
6
- </div>
7
- </template>
8
-
9
- <script>
10
- import { defineComponent, getCurrentInstance } from 'vue'
11
- import cellProps from '../mixin/cell-props'
12
- import filterHooks from '../mixin/filter-hooks'
13
- export default defineComponent({
14
- name: 'VxeFilterInput',
15
- props: cellProps,
16
- setup(props, context) {
17
- const { proxy } = getCurrentInstance()
18
- const useFilter = filterHooks(props, context, proxy)
19
-
20
- return {
21
- ...useFilter
22
- }
23
- }
24
- })
25
- </script>
1
+ <template>
2
+ <div class="vxe-filter--wrap">
3
+ <span class="vxe-filter--inner">
4
+ <vxe-input v-model="renderValue.data" v-bind="rprops" :disabled="false" @input="vxeFilterCallback" />
5
+ </span>
6
+ </div>
7
+ </template>
8
+
9
+ <script>
10
+ import { defineComponent, getCurrentInstance } from 'vue'
11
+ import cellProps from '../mixin/cell-props'
12
+ import filterHooks from '../mixin/filter-hooks'
13
+ export default defineComponent({
14
+ name: 'VxeFilterInput',
15
+ props: cellProps,
16
+ setup(props, context) {
17
+ const { proxy } = getCurrentInstance()
18
+ const useFilter = filterHooks(props, context, proxy)
19
+
20
+ return {
21
+ ...useFilter
22
+ }
23
+ }
24
+ })
25
+ </script>
@@ -1,23 +1,23 @@
1
- <template>
2
- <span>{{ getFooterData() }}</span>
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: 'VxeFooterInput',
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>
22
-
23
- <style scoped></style>
1
+ <template>
2
+ <span>{{ getFooterData() }}</span>
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: 'VxeFooterInput',
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>
22
+
23
+ <style scoped></style>
@@ -1,30 +1,30 @@
1
- <template>
2
- <div v-if="rprops.bill" class="header-bill-box">
3
- <template v-for="(bil, bilindex) in billGroups" :key="bilindex">
4
- <span class="cell-bill-number" :class="getBillClass(bil)">{{ getBillValue(bilindex, true) }}</span>
5
- </template>
6
- </div>
7
- <template v-else>
8
- <span class="blue">{{ getFooterData() }}</span>
9
- </template>
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: 'VxeFooterMoney',
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>
29
-
30
- <style scoped></style>
1
+ <template>
2
+ <div v-if="rprops.bill" class="header-bill-box">
3
+ <template v-for="(bil, bilindex) in billGroups" :key="bilindex">
4
+ <span class="cell-bill-number" :class="getBillClass(bil)">{{ getBillValue(bilindex, true) }}</span>
5
+ </template>
6
+ </div>
7
+ <template v-else>
8
+ <span class="blue">{{ getFooterData() }}</span>
9
+ </template>
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: 'VxeFooterMoney',
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>
29
+
30
+ <style scoped></style>
@@ -1,31 +1,31 @@
1
- <template>
2
- <span>
3
- {{ rparams.column.title }}
4
- <span v-if="moneyUnitText" class="header-money-unit-text">({{ moneyUnitText }})</span>
5
- </span>
6
- <div v-if="rprops.bill" class="header-bill-box">
7
- <template v-for="(bil, bilindex) in billGroups" :key="bilindex">
8
- <span class="cell-bill-number" :class="getBillClass(bil)">{{ bil.shortText }}</span>
9
- </template>
10
- </div>
11
- </template>
12
-
13
- <script>
14
- import { defineComponent, getCurrentInstance } from 'vue'
15
- import cellProps from '../mixin/cell-props'
16
- import cellHooks from '../mixin/cell-hooks'
17
- export default defineComponent({
18
- name: 'VxeHeaderMoney',
19
- props: cellProps,
20
- setup(props, context) {
21
- const { proxy } = getCurrentInstance()
22
- const useCell = cellHooks(props, context, proxy)
23
-
24
- return {
25
- ...useCell
26
- }
27
- }
28
- })
29
- </script>
30
-
31
- <style scoped></style>
1
+ <template>
2
+ <span>
3
+ {{ rparams.column.title }}
4
+ <span v-if="moneyUnitText" class="header-money-unit-text">({{ moneyUnitText }})</span>
5
+ </span>
6
+ <div v-if="rprops.bill" class="header-bill-box">
7
+ <template v-for="(bil, bilindex) in billGroups" :key="bilindex">
8
+ <span class="cell-bill-number" :class="getBillClass(bil)">{{ bil.shortText }}</span>
9
+ </template>
10
+ </div>
11
+ </template>
12
+
13
+ <script>
14
+ import { defineComponent, getCurrentInstance } from 'vue'
15
+ import cellProps from '../mixin/cell-props'
16
+ import cellHooks from '../mixin/cell-hooks'
17
+ export default defineComponent({
18
+ name: 'VxeHeaderMoney',
19
+ props: cellProps,
20
+ setup(props, context) {
21
+ const { proxy } = getCurrentInstance()
22
+ const useCell = cellHooks(props, context, proxy)
23
+
24
+ return {
25
+ ...useCell
26
+ }
27
+ }
28
+ })
29
+ </script>
30
+
31
+ <style scoped></style>