cnhis-design-vue 2.1.32 → 2.1.34

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 (100) hide show
  1. package/CHANGELOG.md +36 -2
  2. package/es/affix/index.js +8 -8
  3. package/es/age/index.js +10 -10
  4. package/es/alert/index.js +8 -8
  5. package/es/anchor/index.js +8 -8
  6. package/es/auto-complete/index.js +8 -8
  7. package/es/avatar/index.js +8 -8
  8. package/es/back-top/index.js +8 -8
  9. package/es/badge/index.js +8 -8
  10. package/es/base/index.js +8 -8
  11. package/es/big-table/index.js +186 -111
  12. package/es/breadcrumb/index.js +8 -8
  13. package/es/button/index.js +22 -22
  14. package/es/calendar/index.js +8 -8
  15. package/es/captcha/index.js +3 -3
  16. package/es/card/index.js +8 -8
  17. package/es/carousel/index.js +8 -8
  18. package/es/cascader/index.js +8 -8
  19. package/es/checkbox/index.js +9 -9
  20. package/es/col/index.js +8 -8
  21. package/es/collapse/index.js +8 -8
  22. package/es/color-picker/index.js +1 -1
  23. package/es/comment/index.js +8 -8
  24. package/es/config-provider/index.js +8 -8
  25. package/es/date-picker/index.js +8 -8
  26. package/es/descriptions/index.js +8 -8
  27. package/es/divider/index.js +8 -8
  28. package/es/drag-layout/index.js +3 -3
  29. package/es/drawer/index.js +8 -8
  30. package/es/dropdown/index.js +8 -8
  31. package/es/editor/index.js +1 -1
  32. package/es/empty/index.js +8 -8
  33. package/es/fabric-chart/index.js +11 -11
  34. package/es/form/index.js +8 -8
  35. package/es/form-model/index.js +8 -8
  36. package/es/form-table/index.js +87 -85
  37. package/es/form-table/style.css +1 -1
  38. package/es/index/index.js +580 -499
  39. package/es/index/style.css +1 -1
  40. package/es/input/index.js +9 -9
  41. package/es/input-number/index.js +8 -8
  42. package/es/layout/index.js +8 -8
  43. package/es/list/index.js +8 -8
  44. package/es/locale-provider/index.js +8 -8
  45. package/es/map/index.js +9 -9
  46. package/es/mentions/index.js +8 -8
  47. package/es/menu/index.js +8 -8
  48. package/es/message/index.js +8 -8
  49. package/es/multi-chat/index.js +75 -75
  50. package/es/multi-chat-client/index.js +69 -69
  51. package/es/multi-chat-history/index.js +4 -4
  52. package/es/multi-chat-record/index.js +14 -14
  53. package/es/multi-chat-setting/index.js +22 -22
  54. package/es/multi-chat-sip/index.js +1 -1
  55. package/es/notification/index.js +8 -8
  56. package/es/page-header/index.js +8 -8
  57. package/es/pagination/index.js +8 -8
  58. package/es/popconfirm/index.js +8 -8
  59. package/es/popover/index.js +8 -8
  60. package/es/progress/index.js +8 -8
  61. package/es/radio/index.js +9 -9
  62. package/es/rate/index.js +8 -8
  63. package/es/result/index.js +8 -8
  64. package/es/row/index.js +8 -8
  65. package/es/scale-view/index.js +33 -33
  66. package/es/select/index.js +11 -11
  67. package/es/select-label/index.js +11 -11
  68. package/es/select-person/index.js +2 -2
  69. package/es/shortcut-setter/index.js +15 -15
  70. package/es/skeleton/index.js +8 -8
  71. package/es/slider/index.js +8 -8
  72. package/es/space/index.js +8 -8
  73. package/es/spin/index.js +8 -8
  74. package/es/statistic/index.js +8 -8
  75. package/es/steps/index.js +8 -8
  76. package/es/switch/index.js +8 -8
  77. package/es/table-filter/index.js +84 -80
  78. package/es/table-filter/style.css +1 -1
  79. package/es/tabs/index.js +8 -8
  80. package/es/tag/index.js +9 -9
  81. package/es/time-picker/index.js +8 -8
  82. package/es/timeline/index.js +8 -8
  83. package/es/tooltip/index.js +8 -8
  84. package/es/transfer/index.js +8 -8
  85. package/es/tree/index.js +8 -8
  86. package/es/tree-select/index.js +8 -8
  87. package/es/upload/index.js +8 -8
  88. package/es/verification-code/index.js +2 -2
  89. package/lib/cui.common.js +556 -474
  90. package/lib/cui.umd.js +556 -474
  91. package/lib/cui.umd.min.js +20 -20
  92. package/package.json +2 -2
  93. package/packages/big-table/src/utils/tableParse.js +70 -30
  94. package/packages/fabric-chart/src/const/defaultVaule.js +59 -59
  95. package/packages/fabric-chart/src/fabric-chart2/FabricTop.vue +172 -172
  96. package/packages/form-table/src/components/table-component/table-month-picker/table-month-picker.vue +3 -1
  97. package/packages/scale-view/scaleView.vue +2010 -2010
  98. package/packages/shortcut-setter/src/ShortcutSetterItem.vue +3 -2
  99. package/packages/table-filter/src/components/out-quick-search/out-quick-search.vue +5 -1
  100. package/packages/table-filter/src/quick-search/QuickSearch.vue +4 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cnhis-design-vue",
3
- "version": "2.1.32",
3
+ "version": "2.1.34",
4
4
  "description": "前端业务UI库",
5
5
  "keyword": "cnhis-design-vue vue cnhis",
6
6
  "homepage": "http://dv.cnhis.com/",
@@ -104,4 +104,4 @@
104
104
  "commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
105
105
  }
106
106
  }
107
- }
107
+ }
@@ -59,38 +59,25 @@ export function parseCombinationValue(value, setting) {
59
59
 
60
60
  // 格式化renderItem
61
61
  export function formatFieldText(row, field, fieldList, fieldListOriginal, isTimeAxisRenderNew, isTimeAxisExpand) {
62
- // 轨迹组件需要重新处理 时间显示
63
- if (isTimeAxisRenderNew && field.fieldType.includes('DATE')) {
64
- let key = field.columnName;
65
- if (!isTimeAxisExpand) {
66
- key = field.columnName + '_fold';
67
- }
68
- let text = row[key];
69
- return text;
70
- }
71
- const formatText = text => (text ? text : String(text) === '0' ? '0' : '');
72
- const haveValue = val => {
73
- return val !== undefined && val !== '';
74
- };
75
62
  const findField = (columnName, fieldList) => {
76
63
  return fieldList.find(item => item.columnName === columnName);
77
64
  };
78
- let html = formatText(row[field.columnName]);
79
65
 
80
- // 主字段没有值,则不展示
81
- if (!haveValue(html)) {
82
- return '';
83
- }
66
+ const haveValue = val => val !== undefined && val !== '';
84
67
 
85
- const { mergedFeildExpression } = field.settingObj;
86
- if (mergedFeildExpression) {
68
+ const formatText = text => (text ? text : String(text) === '0' ? '0' : '');
69
+
70
+ const parseMergedFeildExpression = function(mergedFeildExpression, config) {
71
+ const { row, fieldListOriginal, html } = config;
87
72
  let passList = [];
88
73
 
89
74
  // 合并字段
75
+ // 自定义合并规则,当主字段为空则不合并,任一拼接字段为空,则不合并所有拼接字段。
90
76
  const regexp = /#{(.+?)\}/g;
91
77
  let formatHtml = mergedFeildExpression.replace(regexp, (match, p1) => {
92
78
  let findFieldItem = findField(p1, fieldListOriginal);
93
- passList.push(haveValue(row[p1]) && findFieldItem);
79
+ let hasVal = haveValue(row[p1]) && findFieldItem;
80
+ passList.push(hasVal);
94
81
  // 格式化匹配到的合并字段对应的数据项
95
82
  if (findFieldItem && this?.formatData) {
96
83
  let cloneRow = JSON.parse(JSON.stringify(row));
@@ -106,13 +93,28 @@ export function formatFieldText(row, field, fieldList, fieldListOriginal, isTime
106
93
  });
107
94
 
108
95
  let pass = passList.every(b => b);
109
- /* 如果任意次字段值为空 || 无字段权限
110
- => 只展示主字段的值 */
96
+ // 如果任意次字段值为空 || 无字段权限 => 只展示主字段的值
111
97
  if (!pass) {
112
- return html;
98
+ return { pass: false, formatHtml: html };
113
99
  }
100
+ return { pass: true, formatHtml };
101
+ };
102
+
103
+ // 分隔合并规则,当主字段为空则不合并,某拼接字段为空则不合并该拼接字段,允许输入空格。
104
+ const parseMergedSeparator = function(html, config) {
105
+ let { field, row } = config;
106
+ let { mergedFeild, mergedSeparator } = field.settingObj;
107
+ mergedSeparator = mergedSeparator ?? '';
108
+ mergedFeild = mergedFeild.split(',');
109
+ if (!mergedFeild.length) return html;
110
+ mergedFeild.unshift(field.columnName);
111
+ let feildRes = mergedFeild.map(v => row[v]).filter(v => !!v || v === 0);
112
+ return feildRes.join(mergedSeparator);
113
+ };
114
114
 
115
- // 赋值原字段样式
115
+ // 赋值原字段样式
116
+ const getOriginStyle = (formatHtml, config) => {
117
+ let { field, row, fieldList } = config;
116
118
  let originColumnNameColorList = findField(field.columnName, fieldList)?.colorAndIcon || [];
117
119
  let findC = originColumnNameColorList.find(c =>
118
120
  vexutils.parseCondition(
@@ -129,16 +131,54 @@ export function formatFieldText(row, field, fieldList, fieldListOriginal, isTime
129
131
  );
130
132
 
131
133
  let originColumnNameColor = findC?.color || 'inherit';
132
- const regexp2 = /color(:|;)(.+?)(;|")/g;
133
- formatHtml = formatHtml.replace(regexp2, (match, p1, p2, p3 = '') => {
134
- return p3;
135
- });
134
+ // const regexp2 = /color(:|;)(.+?)(;|")/g;
135
+ // formatHtml = formatHtml.replace(regexp2, (match, p1, p2, p3 = '') => {
136
+ // return p3;
137
+ // });
136
138
 
137
139
  formatHtml = `<span style="color: ${originColumnNameColor};">${formatHtml}</span>`;
138
140
  return formatHtml;
141
+ };
142
+
143
+ // 轨迹组件需要重新处理 时间显示
144
+ if (isTimeAxisRenderNew && field.fieldType.includes('DATE')) {
145
+ let key = field.columnName;
146
+ if (!isTimeAxisExpand) {
147
+ key = field.columnName + '_fold';
148
+ }
149
+ let text = row[key];
150
+ return text;
151
+ }
152
+
153
+ let html = formatText(row[field.columnName]);
154
+
155
+ // 主字段没有值,则不展示
156
+ if (!haveValue(html)) {
157
+ return '';
158
+ }
159
+
160
+ // 合并策略
161
+ // mergedType 字符串 0-分隔符合并 1-自定义合并
162
+ // mergedSeparator 分隔合并规则,当主字段为空则不合并,某拼接字段为空则不合并该拼接字段,允许输入空格。
163
+ // mergedFeildExpression 自定义合并规则,当主字段为空则不合并,任一拼接字段为空,则不合并所有拼接字段。
164
+ const { mergedType, mergedSeparator, mergedFeild, mergedFeildExpression } = field.settingObj;
165
+ // 原来的规则只有mergedFeildExpression, mergedType/mergedSeparator是新加的
166
+ if (!mergedType && !mergedFeildExpression) return html;
167
+ if (mergedType === '1' && !mergedFeildExpression) return html;
168
+ if (mergedType === '0' && (!mergedFeild || !mergedSeparator)) return html;
169
+ let formatHtml = html;
170
+ if (mergedType === '0') {
171
+ formatHtml = parseMergedSeparator(html, { field, row });
172
+ } else if (mergedFeildExpression) {
173
+ let obj = parseMergedFeildExpression(mergedFeildExpression, { row, fieldListOriginal, html });
174
+ formatHtml = obj.formatHtml;
175
+ if (!obj.pass) return formatHtml;
176
+ }
177
+ if (mergedType || mergedFeildExpression) {
178
+ return getOriginStyle(formatHtml, { field, row, fieldList });
139
179
  }
140
180
 
141
- return html;
181
+ return formatHtml;
142
182
  }
143
183
 
144
184
  // imgs => imgArr
@@ -1,59 +1,59 @@
1
- const data = {
2
- style: {
3
- evented: false,
4
- selectable: false
5
- },
6
- rectStyle: {
7
- fill: 'transparent',
8
- stroke: '#999',
9
- strokeWidth: 1
10
- },
11
- textStyle: {
12
- fontFamily: '微软雅黑',
13
- fontSize: 12,
14
- fill: '#000',
15
- lineHeight: 1
16
- },
17
- borderStyle: {
18
- stroke: '#999',
19
- strokeWidth: 1,
20
- selectable: false,
21
- evented: false
22
- },
23
- // 折线图中的点
24
- pointStyle: {
25
- fill: '#ffffff', // 填充色
26
- stroke: '#000000', // 描边色
27
- originX: 'center',
28
- originY: 'center'
29
- },
30
- // 折线图中的线
31
- lineStyle: {
32
- stroke: '#000', // 描边色
33
- strokeWidth: 1, // 描边宽度
34
- originX: 'center',
35
- originY: 'center'
36
- },
37
- topSpaceHeight: 10, // templateData.top.spaceHeight
38
- topSpaceGridNumber: 3, // templateData.top.xScalevalue.spaceGridNumber
39
- leftSpaceGridNumber: 2, // templateData.left.leftYScalevalue.spaceGridNumber
40
- rightSpaceGridNumber: 2, // templateData.right.rightYScalevalue.spaceGridNumber
41
- topTotal: {
42
- title: '总量',
43
- width: 0,
44
- style: {
45
- fontFamily: '微软雅黑',
46
- fontSize: 12,
47
- fill: '#000',
48
- lineHeight: 1
49
- }
50
- },
51
- criticalStyle: { // 危急值样式
52
- stroke: 'purple', // 颜色 默认 #999
53
- strokeWidth: 1, // 线宽 默认 1
54
- strokeDashArray: [0, 0] // 实线设置 默认[0, 0]
55
- },
56
- bottomNumberLeftSpace: 10 // 底部标记的序号与标记之间的距离
57
- };
58
-
59
- export default data;
1
+ const data = {
2
+ style: {
3
+ evented: false,
4
+ selectable: false
5
+ },
6
+ rectStyle: {
7
+ fill: 'transparent',
8
+ stroke: '#999',
9
+ strokeWidth: 1
10
+ },
11
+ textStyle: {
12
+ fontFamily: '微软雅黑',
13
+ fontSize: 12,
14
+ fill: '#000',
15
+ lineHeight: 1
16
+ },
17
+ borderStyle: {
18
+ stroke: '#999',
19
+ strokeWidth: 1,
20
+ selectable: false,
21
+ evented: false
22
+ },
23
+ // 折线图中的点
24
+ pointStyle: {
25
+ fill: '#ffffff', // 填充色
26
+ stroke: '#000000', // 描边色
27
+ originX: 'center',
28
+ originY: 'center'
29
+ },
30
+ // 折线图中的线
31
+ lineStyle: {
32
+ stroke: '#000', // 描边色
33
+ strokeWidth: 1, // 描边宽度
34
+ originX: 'center',
35
+ originY: 'center'
36
+ },
37
+ topSpaceHeight: 10, // templateData.top.spaceHeight
38
+ topSpaceGridNumber: 3, // templateData.top.xScalevalue.spaceGridNumber
39
+ leftSpaceGridNumber: 2, // templateData.left.leftYScalevalue.spaceGridNumber
40
+ rightSpaceGridNumber: 2, // templateData.right.rightYScalevalue.spaceGridNumber
41
+ topTotal: {
42
+ title: '总量',
43
+ width: 0,
44
+ style: {
45
+ fontFamily: '微软雅黑',
46
+ fontSize: 12,
47
+ fill: '#000',
48
+ lineHeight: 1
49
+ }
50
+ },
51
+ criticalStyle: { // 危急值样式
52
+ stroke: 'purple', // 颜色 默认 #999
53
+ strokeWidth: 1, // 线宽 默认 1
54
+ strokeDashArray: [0, 0] // 实线设置 默认[0, 0]
55
+ },
56
+ bottomNumberLeftSpace: 10 // 底部标记的序号与标记之间的距离
57
+ };
58
+
59
+ export default data;
@@ -1,172 +1,172 @@
1
- <script>
2
- import fabricCommon from '../mixins/fabricCommon';
3
- import draw from '../mixins/draw';
4
- import defaultVaule from '../const/defaultVaule';
5
-
6
- export default {
7
- name: 'fabric-top2',
8
- mixins: [fabricCommon, draw],
9
- props: {
10
- templateData: {
11
- type: Object,
12
- required: true
13
- }
14
- },
15
- data() {
16
- return {};
17
- },
18
- mounted() {
19
- this.$nextTick(() => {
20
- this.init();
21
- });
22
- },
23
- computed: {
24
- girdLineStyle() {
25
- return Object.assign({}, defaultVaule.borderStyle, this.templateData.borderStyle || {});
26
- }
27
- },
28
- methods: {
29
- init() {
30
- this.drawTop(this.templateData.top);
31
- this.canvas.renderAll();
32
- },
33
- drawTop(top) {
34
- let list = [];
35
- // 日期
36
- this.drawTopDate(top, list);
37
- // 上午/下午
38
- this.drawTopDay(top, list);
39
- // 时间刻度
40
- this.drawTopTime(top, list);
41
- const group = list.length > 0 ? new this.fabric.Group([...list], { ...defaultVaule.style }) : null;
42
- group && group.sendToBack(); // 向下跳底层
43
- group && this.canvas.add(group);
44
- },
45
- drawTopTime(top, list) {
46
- const { originX, originY, xCellWidth, table } = this.propItems;
47
- const dateHeight = top.date?.height || 0;
48
- const dayHeight = top.dayHeight || 0;
49
- const height = originY - dateHeight - dayHeight;
50
- const titleHeight = dayHeight + height;
51
- // 标题
52
- const title = this.drawTextGroup(
53
- {
54
- width: originX,
55
- height: titleHeight,
56
- ...defaultVaule.rectStyle
57
- },
58
- {
59
- text: String(top.xScalevalue.title),
60
- ...defaultVaule.textStyle,
61
- ...top.textGroupStyle
62
- },
63
- {
64
- left: 0,
65
- top: dateHeight
66
- }
67
- );
68
- list.push(title);
69
-
70
- // 时间列表
71
- let timeList = [];
72
- for (let j = 0; j < table.mainXCell; j++) {
73
- timeList.push(top.xScalevalue.list);
74
- }
75
- timeList.flat().forEach((v, i) => {
76
- const left = originX + i * xCellWidth;
77
- const textGroup = this.drawTextGroup(
78
- {
79
- width: xCellWidth,
80
- height
81
- },
82
- {
83
- text: String(v),
84
- ...defaultVaule.textStyle,
85
- ...top.textGroupStyle
86
- },
87
- {
88
- left,
89
- top: dateHeight + dayHeight
90
- }
91
- );
92
- list.push(textGroup);
93
- });
94
- },
95
- drawTopDay(top, list) {
96
- if (!top.dayHeight) return false;
97
- const { originX, xCellWidth, gridXNumber, table } = this.propItems;
98
- const height = top.dayHeight;
99
- // 上午下午列表
100
- const width = xCellWidth * table.subSecondXCell;
101
- const dayList = gridXNumber / table.subSecondXCell;
102
- for (let i = 0; i < dayList; i++) {
103
- const left = originX + i * width;
104
- const value = i % 2 === 0 ? '上午' : '下午';
105
- const textGroup = this.drawTextGroup(
106
- {
107
- width,
108
- height
109
- },
110
- {
111
- text: String(value),
112
- ...defaultVaule.textStyle,
113
- ...top.textGroupStyle
114
- },
115
- {
116
- left,
117
- top: top.date.height || 0
118
- }
119
- );
120
- list.push(textGroup);
121
- }
122
- },
123
- drawTopDate(top, list) {
124
- if (!top.date.height) return false;
125
- const { originX, xCellWidth, table } = this.propItems;
126
- const height = top.date.height;
127
- // 标题
128
- const title = this.drawTextGroup(
129
- {
130
- width: originX,
131
- height,
132
- ...defaultVaule.rectStyle
133
- },
134
- {
135
- text: String(top.date.title),
136
- ...defaultVaule.textStyle,
137
- ...top.textGroupStyle
138
- },
139
- {
140
- left: 0,
141
- top: 0
142
- }
143
- );
144
- list.push(title);
145
- // 日期列表
146
- const width = xCellWidth * table.subXCell;
147
- top.date.list.forEach((v, i) => {
148
- const left = originX + i * width;
149
- const textGroup = this.drawTextGroup(
150
- {
151
- width,
152
- height
153
- },
154
- {
155
- text: String(v),
156
- ...defaultVaule.textStyle,
157
- ...top.textGroupStyle
158
- },
159
- {
160
- left,
161
- top: 0
162
- }
163
- );
164
- list.push(textGroup);
165
- });
166
- }
167
- },
168
- render(h) {
169
- return this.$slots.default ? h('div', this.$slots.default) : undefined;
170
- }
171
- };
172
- </script>
1
+ <script>
2
+ import fabricCommon from '../mixins/fabricCommon';
3
+ import draw from '../mixins/draw';
4
+ import defaultVaule from '../const/defaultVaule';
5
+
6
+ export default {
7
+ name: 'fabric-top2',
8
+ mixins: [fabricCommon, draw],
9
+ props: {
10
+ templateData: {
11
+ type: Object,
12
+ required: true
13
+ }
14
+ },
15
+ data() {
16
+ return {};
17
+ },
18
+ mounted() {
19
+ this.$nextTick(() => {
20
+ this.init();
21
+ });
22
+ },
23
+ computed: {
24
+ girdLineStyle() {
25
+ return Object.assign({}, defaultVaule.borderStyle, this.templateData.borderStyle || {});
26
+ }
27
+ },
28
+ methods: {
29
+ init() {
30
+ this.drawTop(this.templateData.top);
31
+ this.canvas.renderAll();
32
+ },
33
+ drawTop(top) {
34
+ let list = [];
35
+ // 日期
36
+ this.drawTopDate(top, list);
37
+ // 上午/下午
38
+ this.drawTopDay(top, list);
39
+ // 时间刻度
40
+ this.drawTopTime(top, list);
41
+ const group = list.length > 0 ? new this.fabric.Group([...list], { ...defaultVaule.style }) : null;
42
+ group && group.sendToBack(); // 向下跳底层
43
+ group && this.canvas.add(group);
44
+ },
45
+ drawTopTime(top, list) {
46
+ const { originX, originY, xCellWidth, table } = this.propItems;
47
+ const dateHeight = top.date?.height || 0;
48
+ const dayHeight = top.dayHeight || 0;
49
+ const height = originY - dateHeight - dayHeight;
50
+ const titleHeight = dayHeight + height;
51
+ // 标题
52
+ const title = this.drawTextGroup(
53
+ {
54
+ width: originX,
55
+ height: titleHeight,
56
+ ...defaultVaule.rectStyle
57
+ },
58
+ {
59
+ text: String(top.xScalevalue.title),
60
+ ...defaultVaule.textStyle,
61
+ ...top.textGroupStyle
62
+ },
63
+ {
64
+ left: 0,
65
+ top: dateHeight
66
+ }
67
+ );
68
+ list.push(title);
69
+
70
+ // 时间列表
71
+ let timeList = [];
72
+ for (let j = 0; j < table.mainXCell; j++) {
73
+ timeList.push(top.xScalevalue.list);
74
+ }
75
+ timeList.flat().forEach((v, i) => {
76
+ const left = originX + i * xCellWidth;
77
+ const textGroup = this.drawTextGroup(
78
+ {
79
+ width: xCellWidth,
80
+ height
81
+ },
82
+ {
83
+ text: String(v),
84
+ ...defaultVaule.textStyle,
85
+ ...top.textGroupStyle
86
+ },
87
+ {
88
+ left,
89
+ top: dateHeight + dayHeight
90
+ }
91
+ );
92
+ list.push(textGroup);
93
+ });
94
+ },
95
+ drawTopDay(top, list) {
96
+ if (!top.dayHeight) return false;
97
+ const { originX, xCellWidth, gridXNumber, table } = this.propItems;
98
+ const height = top.dayHeight;
99
+ // 上午下午列表
100
+ const width = xCellWidth * table.subSecondXCell;
101
+ const dayList = gridXNumber / table.subSecondXCell;
102
+ for (let i = 0; i < dayList; i++) {
103
+ const left = originX + i * width;
104
+ const value = i % 2 === 0 ? '上午' : '下午';
105
+ const textGroup = this.drawTextGroup(
106
+ {
107
+ width,
108
+ height
109
+ },
110
+ {
111
+ text: String(value),
112
+ ...defaultVaule.textStyle,
113
+ ...top.textGroupStyle
114
+ },
115
+ {
116
+ left,
117
+ top: top.date.height || 0
118
+ }
119
+ );
120
+ list.push(textGroup);
121
+ }
122
+ },
123
+ drawTopDate(top, list) {
124
+ if (!top.date.height) return false;
125
+ const { originX, xCellWidth, table } = this.propItems;
126
+ const height = top.date.height;
127
+ // 标题
128
+ const title = this.drawTextGroup(
129
+ {
130
+ width: originX,
131
+ height,
132
+ ...defaultVaule.rectStyle
133
+ },
134
+ {
135
+ text: String(top.date.title),
136
+ ...defaultVaule.textStyle,
137
+ ...top.textGroupStyle
138
+ },
139
+ {
140
+ left: 0,
141
+ top: 0
142
+ }
143
+ );
144
+ list.push(title);
145
+ // 日期列表
146
+ const width = xCellWidth * table.subXCell;
147
+ top.date.list.forEach((v, i) => {
148
+ const left = originX + i * width;
149
+ const textGroup = this.drawTextGroup(
150
+ {
151
+ width,
152
+ height
153
+ },
154
+ {
155
+ text: String(v),
156
+ ...defaultVaule.textStyle,
157
+ ...top.textGroupStyle
158
+ },
159
+ {
160
+ left,
161
+ top: 0
162
+ }
163
+ );
164
+ list.push(textGroup);
165
+ });
166
+ }
167
+ },
168
+ render(h) {
169
+ return this.$slots.default ? h('div', this.$slots.default) : undefined;
170
+ }
171
+ };
172
+ </script>
@@ -1,5 +1,7 @@
1
1
  <template>
2
- <a-month-picker
2
+ <a-date-picker
3
+ mode="month"
4
+ format="YYYY-MM"
3
5
  v-if="!isDetail || row[item.val_key]"
4
6
  v-model="row[item.val_key]"
5
7
  :ref="'monthPicker-' + item.val_key"