ocpview-plus 1.3.14 → 1.3.16

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 (213) hide show
  1. package/README.md +55 -43
  2. package/dist/ocpviewplus.min.esm.js +574 -482
  3. package/dist/ocpviewplus.min.js +9 -9
  4. package/dist/style.css +1 -1
  5. package/dist/styles/efviewplus.css +1 -1
  6. package/package.json +146 -146
  7. package/src/components/base/ContractPrintMixins.js +30 -30
  8. package/src/components/base/controlbase.vue +190 -190
  9. package/src/components/base/controlbox.vue +102 -102
  10. package/src/components/base/index.js +2 -2
  11. package/src/components/base/load.js +19 -19
  12. package/src/components/base/probase.js +220 -220
  13. package/src/components/base/size.js +78 -78
  14. package/src/components/billbox/billbox.vue +67 -67
  15. package/src/components/billbox/index.js +1 -1
  16. package/src/components/cascaderbox/cascaderbox.vue +184 -184
  17. package/src/components/cascaderbox/index.js +2 -2
  18. package/src/components/checkbox/checkbox.vue +75 -75
  19. package/src/components/checkbox/checkgroupbox.vue +103 -103
  20. package/src/components/checkbox/index.js +2 -2
  21. package/src/components/colorbox/colorbox.vue +43 -43
  22. package/src/components/colorbox/index.js +1 -1
  23. package/src/components/combobox/combobox.vue +219 -219
  24. package/src/components/combobox/index.js +1 -1
  25. package/src/components/conditionbox/conditionbase.vue +194 -194
  26. package/src/components/conditionbox/conditionbox.vue +62 -62
  27. package/src/components/conditionbox/conditionfilterbox.vue +479 -479
  28. package/src/components/conditionbox/conditionselectorbox.vue +237 -237
  29. package/src/components/conditionbox/index.js +4 -4
  30. package/src/components/conditionbox/queryconditionbox.vue +25 -25
  31. package/src/components/conditionbox/queryconditionboxbase.vue +123 -123
  32. package/src/components/conditionbox/searchconditionbox.vue +113 -113
  33. package/src/components/conditionbox/searchgrid.vue +391 -391
  34. package/src/components/datebox/DateBoxV1.vue +22 -22
  35. package/src/components/datebox/datebox.vue +129 -129
  36. package/src/components/datebox/daterangebox.vue +154 -154
  37. package/src/components/datebox/index.js +5 -5
  38. package/src/components/form/baseform.vue +676 -676
  39. package/src/components/form/detailsbox.vue +487 -487
  40. package/src/components/form/formbox.vue +28 -28
  41. package/src/components/form/formcardbox.vue +267 -267
  42. package/src/components/form/formcardbox2.vue +228 -228
  43. package/src/components/form/formcardgroupbox.vue +251 -251
  44. package/src/components/form/formcompro.js +18 -18
  45. package/src/components/form/formdetail.vue +128 -128
  46. package/src/components/form/formdetailtwo.vue +302 -302
  47. package/src/components/form/index.js +9 -9
  48. package/src/components/form/toolanchor.js +45 -45
  49. package/src/components/form/workform.vue +167 -167
  50. package/src/components/grid/basegrid.vue +1062 -1062
  51. package/src/components/grid/editgrid.vue +51 -51
  52. package/src/components/grid/editgridbase.vue +1062 -1062
  53. package/src/components/grid/editgridcard.vue +193 -193
  54. package/src/components/grid/expandrow.vue +137 -137
  55. package/src/components/grid/index.js +5 -5
  56. package/src/components/grid/viewgrid.vue +121 -121
  57. package/src/components/grid/viewgridbase.vue +1286 -1286
  58. package/src/components/icon/common-icon.vue +53 -53
  59. package/src/components/icon/eicon.vue +28 -28
  60. package/src/components/icon/icons.vue +42 -42
  61. package/src/components/icon/index.js +1 -1
  62. package/src/components/label/index.js +2 -2
  63. package/src/components/label/showtext.vue +94 -94
  64. package/src/components/load/loadcartoon.vue +227 -227
  65. package/src/components/map/index.js +1 -1
  66. package/src/components/map/mapbox.vue +348 -348
  67. package/src/components/masterplate/RewriteBillListDetails/BillInfoPanel.vue +184 -184
  68. package/src/components/masterplate/RewriteBillListDetails/BillInfoPanelEditTable.vue +838 -838
  69. package/src/components/masterplate/RewriteBillListDetails/BillInfoPanelEditTableControlbox.vue +126 -126
  70. package/src/components/masterplate/RewriteBillListDetails/BillInfoPanelEditTableControlboxNumberbox.vue +27 -27
  71. package/src/components/masterplate/RewriteBillListDetails/BillListPanel.vue +126 -126
  72. package/src/components/masterplate/RewriteBillListDetails/BillListPanelQueryBar.vue +280 -280
  73. package/src/components/masterplate/RewriteBillListDetails/BillListPanelTable.vue +346 -346
  74. package/src/components/masterplate/RewriteBillListDetails/index.vue +325 -325
  75. package/src/components/masterplate/RewriteBillListDetails/mixins/useVxeGridEditTypeKeydownEventHook.js +251 -251
  76. package/src/components/masterplate/RewriteListdetails/BillListPanelV2.vue +115 -115
  77. package/src/components/masterplate/RewriteListdetails/BillListPanelV2QueryBar.vue +24 -24
  78. package/src/components/masterplate/RewriteListdetails/BillListPanelV3.vue +121 -121
  79. package/src/components/masterplate/RewriteListdetails/BillListPanelV3QueryBar.vue +275 -275
  80. package/src/components/masterplate/RewriteListdetails/indexV2.vue +320 -320
  81. package/src/components/masterplate/RewriteListdetails/indexV3.vue +331 -331
  82. package/src/components/masterplate/appendix.vue +586 -586
  83. package/src/components/masterplate/approval.vue +863 -863
  84. package/src/components/masterplate/base.vue +1028 -1028
  85. package/src/components/masterplate/billasyncimport.vue +614 -614
  86. package/src/components/masterplate/billconditionbox.vue +223 -223
  87. package/src/components/masterplate/billconditionsbox.vue +427 -427
  88. package/src/components/masterplate/billdetailform.vue +1028 -1028
  89. package/src/components/masterplate/billimport.vue +301 -301
  90. package/src/components/masterplate/billquerygrid.vue +391 -391
  91. package/src/components/masterplate/billsinglegrid.vue +234 -234
  92. package/src/components/masterplate/birtreport.vue +185 -185
  93. package/src/components/masterplate/contractappendix.vue +688 -688
  94. package/src/components/masterplate/detailbtntoolbar.vue +311 -311
  95. package/src/components/masterplate/detailsbox.vue +386 -386
  96. package/src/components/masterplate/editgridcard.vue +292 -292
  97. package/src/components/masterplate/editgridcard2.vue +127 -127
  98. package/src/components/masterplate/formcard.vue +105 -105
  99. package/src/components/masterplate/formcardgroupbox.vue +167 -167
  100. package/src/components/masterplate/formdetailtwo.vue +366 -366
  101. package/src/components/masterplate/gridcolset.vue +226 -226
  102. package/src/components/masterplate/index.js +54 -54
  103. package/src/components/masterplate/layouttemplate.vue +51 -51
  104. package/src/components/masterplate/leftlistrightdetails.vue +581 -581
  105. package/src/components/masterplate/leftlistrightlist.vue +464 -464
  106. package/src/components/masterplate/lefttreerightdetails.vue +636 -636
  107. package/src/components/masterplate/levelreport.vue +510 -510
  108. package/src/components/masterplate/listbtntoolbar.vue +276 -276
  109. package/src/components/masterplate/listdetails.vue +768 -768
  110. package/src/components/masterplate/operlog.vue +272 -272
  111. package/src/components/masterplate/options.vue +110 -110
  112. package/src/components/masterplate/page.vue +102 -102
  113. package/src/components/masterplate/promptmessage.vue +73 -73
  114. package/src/components/masterplate/querybar.vue +490 -490
  115. package/src/components/masterplate/report.vue +357 -357
  116. package/src/components/masterplate/rowbtntoolbar.vue +126 -126
  117. package/src/components/masterplate/simpletree.vue +137 -137
  118. package/src/components/masterplate/simpleviewgrid.vue +144 -144
  119. package/src/components/mychart/bar/bar.vue +201 -201
  120. package/src/components/mychart/basechart.vue +190 -190
  121. package/src/components/mychart/complexmychart/barline.vue +153 -153
  122. package/src/components/mychart/gauge/gauge.vue +82 -82
  123. package/src/components/mychart/index.js +8 -8
  124. package/src/components/mychart/line/line.vue +201 -201
  125. package/src/components/mychart/liquidfill/liquidfill.vue +108 -108
  126. package/src/components/mychart/pie/pie.vue +95 -95
  127. package/src/components/mychart/radar/radar.vue +121 -121
  128. package/src/components/mychart/scatter/scatter.vue +75 -75
  129. package/src/components/numberbox/NumberBoxV1.vue +39 -39
  130. package/src/components/numberbox/append.js +11 -11
  131. package/src/components/numberbox/index.js +4 -4
  132. package/src/components/numberbox/numberbox.vue +302 -302
  133. package/src/components/numberbox/numberrangebox.vue +422 -422
  134. package/src/components/picturebox/filebox.vue +369 -369
  135. package/src/components/picturebox/index.js +2 -2
  136. package/src/components/picturebox/picturebox.vue +541 -541
  137. package/src/components/picturebox/uploadbox.vue +164 -164
  138. package/src/components/poptagbox/index.js +1 -1
  139. package/src/components/poptagbox/poptagbox.vue +388 -388
  140. package/src/components/poptextbox/index.js +1 -1
  141. package/src/components/poptextbox/poptextbox.vue +624 -624
  142. package/src/components/radiobox/index.js +1 -1
  143. package/src/components/radiobox/radiogroupbox.vue +75 -75
  144. package/src/components/richtextbox/editor.vue +150 -150
  145. package/src/components/richtextbox/index.js +1 -1
  146. package/src/components/richtextbox/richtextbox.vue +448 -448
  147. package/src/components/textbox/index.js +1 -1
  148. package/src/components/textbox/textbox.vue +97 -97
  149. package/src/components/timebox/index.js +1 -1
  150. package/src/components/timebox/timebox.vue +75 -75
  151. package/src/components/toolbar/ebutton.vue +169 -169
  152. package/src/components/toolbar/index.js +3 -3
  153. package/src/components/toolbar/toolbar.vue +445 -445
  154. package/src/components/tree/CompatTree.vue +297 -297
  155. package/src/components/tree/basetree.vue +1098 -1098
  156. package/src/components/tree/index.js +2 -2
  157. package/src/components/tree/treedata.vue +53 -53
  158. package/src/components/tree/treedatabase.vue +189 -189
  159. package/src/components/upload/billimport.vue +233 -233
  160. package/src/components/upload/index.js +1 -1
  161. package/src/components/videobox/index.js +1 -1
  162. package/src/components/videobox/uploadbox.vue +148 -148
  163. package/src/components/videobox/videobox.vue +503 -503
  164. package/src/components/wrichtextbox/editor.vue +219 -219
  165. package/src/components/wrichtextbox/index.js +1 -1
  166. package/src/components/wrichtextbox/wrichtextbox.vue +62 -62
  167. package/src/index.js +231 -231
  168. package/src/locale/format.js +51 -51
  169. package/src/locale/index.js +63 -63
  170. package/src/locale/lang/zh-CN.js +123 -123
  171. package/src/locale/lang/zh-TW.js +114 -114
  172. package/src/locale/lang/zh-UG.js +115 -115
  173. package/src/locale/lang.js +15 -15
  174. package/src/method/case/case.js +1274 -1274
  175. package/src/method/config/queryconfig.js +24 -24
  176. package/src/method/const/const.js +815 -815
  177. package/src/method/index.js +7 -7
  178. package/src/plugins/theme/theme-variable.css +114 -114
  179. package/src/plugins/vxeTable/index.js +241 -241
  180. package/src/plugins/vxeTable/renderer/components/TableFilterInput.vue +51 -51
  181. package/src/plugins/vxeTable/renderer/filter.js +32 -32
  182. package/src/static/excel/exportexcel.js +626 -626
  183. package/src/static/iview/coustom.js +462 -462
  184. package/src/store/index.js +18 -18
  185. package/src/store/modules/app.js +53 -53
  186. package/src/styles/README.md +3 -3
  187. package/src/styles/common.less +80 -80
  188. package/src/styles/components/anchor.less +74 -74
  189. package/src/styles/components/approval.less +135 -135
  190. package/src/styles/components/button.less +208 -208
  191. package/src/styles/components/card.less +51 -51
  192. package/src/styles/components/content.less +38 -38
  193. package/src/styles/components/font.less +313 -313
  194. package/src/styles/components/form.less +71 -71
  195. package/src/styles/components/iconfont/fonts/iconfont.less +1384 -1384
  196. package/src/styles/components/iconfont/fonts/iconfont.svg +703 -703
  197. package/src/styles/components/index.less +16 -16
  198. package/src/styles/components/input.less +290 -290
  199. package/src/styles/components/modal.less +203 -203
  200. package/src/styles/components/page.less +340 -340
  201. package/src/styles/components/select.less +361 -361
  202. package/src/styles/components/steps.less +367 -367
  203. package/src/styles/components/table.less +544 -544
  204. package/src/styles/components/tabs.less +249 -249
  205. package/src/styles/components/upload.less +82 -82
  206. package/src/styles/custom.less +67 -67
  207. package/src/styles/index.less +6 -6
  208. package/src/styles/pack.less +6 -6
  209. package/src/utils/EfuMessenger.js +155 -155
  210. package/src/utils/assist.js +353 -353
  211. package/src/utils/index.js +1 -1
  212. package/src/utils/random_str.js +10 -10
  213. package/src/components/masterplate/detailgridbox.vue +0 -386
@@ -1,293 +1,293 @@
1
- <template>
2
- <Card ref="card" :bordered="false" :padding="0" dis-hover>
3
- <template v-if="myConfig.modetype === '1'">
4
- <p v-if="showTitle" @click="toggle" style="cursor:pointer;" >
5
- <Row type="flex" justify="start" align="middle" style="margin-top:14px;margin-bottom:14px">
6
- <Icon custom='iconfont icon-custom-pack' color="#f3b352" v-show="showGrid" size="14" />
7
- <Icon v-show="!showGrid" color="#f3b352" custom='iconfont icon-custom-spread' size="14"/> <span style="margin-left:10px;font-size: 14px;font-weight:bold" v-text="myConfig.title" />
8
- </Row>
9
- </p>
10
- <Divider style="margin-left:24px;margin-top:0px;margin-bottom:10px;"/>
11
- </template>
12
- <template v-if="myConfig.modetype === '2'">
13
- <div v-if="showTitle" style="margin-bottom:10px;">
14
- <span class="efuture-title-verticalline"/><span style="font-size: 14px;font-weight:bold" v-text="myConfig.title" />
15
- </div>
16
- </template>
17
- <div class="table-wrapper" :class="{'is--maximize':showZoom && isFull}" :style="divStyle">
18
- <div v-if="$slots.header">
19
- <slot name="header"></slot>
20
- </div>
21
- <Row class-name="row-box" v-else v-show="showGrid" type="flex" justify="start" align="middle" :gutter="0" style="margin-bottom: 10px;">
22
- <Col v-if="showAddBtn">
23
- <Button :style="btnStyle" customIcon="iconfont icon-custom-rowadd3" type="text" :disabled="myConfig.readOnly" @click="addRow" >添加</Button>
24
- </Col>
25
- <Col v-if="showAddBtn && showDelBatchBtn">
26
- <Divider type="vertical" style="margin: 0 6px 0 6px;"/>
27
- </Col>
28
- <Col v-if="showDelBatchBtn">
29
- <Button :style="btnStyle" customIcon="iconfont icon-custom-rowdel3" type="text" :disabled="myConfig.readOnly" @click="delBatchRow">删除</Button>
30
- </Col>
31
- <Col class="col-align" v-if="showZoom">
32
- <Button type="ghost" shape="circle" :title="isFull ? '还原' : '全屏'" :customIcon="[isFull ? 'iconfont icon-custom-minimize' : 'iconfont icon-custom-fullscreen']" @click="setZoom"></Button>
33
- </Col>
34
- </Row>
35
- <Row v-show="showGrid" >
36
- <Table ref="table" :row-class-name="rowClassName" :loading="loading" :size="myConfig.tableSize" :stripe="myConfig.showStripe" :border="myConfig.showBorder" :height="tableHeight" :maxHeight="tableMaxHeight" :show-header="myConfig.showHeader" @on-selection-change="OnSelectionChange" :columns="tableColumns" :data="data" @on-column-width-resize="onColumnWidthResize" @on-row-click="rowClick" :show-summary="myConfig.showSummary" :summary-method="handleSummary">
37
- <template v-for="config in soltTableColumns" v-slot:[config.key]="{ index }" :key="'show_' + config.key">
38
- <div @click="EditCell(index,config)" :class="config.cellClassName" :cell-row="index" :cell-col="config.key">
39
- <ControlBox v-if="editIndex === index && editKey=== config.key" :ref="'cell_'+ index + '_' + config.key" :autofocus="true" :config="getCellConfig(index,config)" :valueData="getCurRow(index)" @inputValue="input" :editIndex="index" @doAction="doAction"></ControlBox>
40
- <ShowText v-else :label="formatValue(index,config)" :contentAlign="config.contentAlign" :class="IsCellError(index,config)" :config="config" :rowIndex="index"></ShowText>
41
- </div>
42
- </template>
43
- </Table>
44
- <div ref="page" v-if="myConfig.showPage" style="background:#eee;padding-top:5px;width:100%" >
45
- <Card :bordered="false" :padding="0" :dis-hover="true" style="border-radius:0px">
46
- <Row type="flex" justify="end" style="padding:5px;padding-right:10px">
47
- <Page :total="myConfig.pageConfig.total_results" :size="myConfig.pageSize" :current="myConfig.pageConfig.page_no" :page-size="myConfig.pageConfig.page_size" :page-size-opts="myConfig.pageConfig.pageSizeList" @on-page-size-change="changePageSize" @on-change="changePage" :show-total="myConfig.pageShowTotal" :show-elevator="myConfig.pageShowElevator" :show-sizer="myConfig.pageShowSizer"></Page>
48
- </Row>
49
- </Card>
50
- </div>
51
- </Row>
52
- <p v-show="showGrid && showEffectValue" @click="toggleEffect" style="cursor:pointer;background-color:#FFF2DE;height:36px;line-height:36px;border: 1px solid #F3B352;margin-top: 10px;" >
53
- <Icon custom='iconfont icon-custom-help' size="20" style="margin-left: 10px;" color="#D5882E" /> <span style="margin-left: 4px;color:#D5882E">参考数据</span>
54
- </p>
55
- <Row v-show="showGrid && showEffectValue && showEffectGrid" class="efuture-effect-grid" style="margin-top: 10px;">
56
- <Table ref="effect_table" :row-class-name="rowClassName" :loading="loading" :size="myConfig.tableSize" :border="myConfig.showBorder" :stripe="myConfig.showStripe" :maxHeight="tableMaxHeight" :columns="tableColumns" :data="curlEffectData" @on-column-width-resize="onColumnWidthResize" >
57
- <template v-for="config in soltTableColumns" v-slot:[config.key]="{ row, index }" :key="'show_effect' + config.key">
58
- <ShowText :label="effectFormatValue(index,config,row)" :contentAlign="config.contentAlign" :class="config.cellClassName" :config="config" :rowIndex="index"></ShowText>
59
- </template>
60
- </Table>
61
- </Row>
62
- </div>
63
- <Modal v-if="!editRowFlag" v-model="showEditRowForm" width="90%" title="编辑" @on-ok="editRow">
64
- <div>
65
- <ExpandRow ref="rowForm" :config="myConfig" :dictData="dictData" />
66
- </div>
67
- </Modal>
68
- </Card>
69
- </template>
70
- <script>
71
- import { resolveComponent } from 'vue';
72
- import Base from '@/components/grid/editgridbase.vue';
73
- export default {
74
- name: 'meditgridcard',
75
- extends: Base,
76
- data () {
77
- return {
78
- myConfig:{
79
- title:'',
80
- modetype:'1',
81
- operFixedFlag:false,
82
- showCheckBox:true,
83
- showPage:false,
84
- showAppendixCol:false,
85
- appedixLable:'附件'
86
- },
87
- btnStyle:'padding-left:0px;padding-right:0px',
88
- divStyle:'padding-left:24px',
89
- showAddBtn:true,
90
- showZoom: false,
91
- isFull: false,
92
- showDelBatchBtn:true,
93
- showGrid:true,
94
- showTitle:true,
95
- showEffectValue:false,
96
- showEffectGrid:true,
97
- actionAppendixConfig:{
98
- label:'附件',
99
- key:'actionappendix',
100
- align: 'center',
101
- fixed: 'right',
102
- render:this.actionAppendixRender,
103
- width:45
104
- },
105
- curlEffectData:[],
106
- effectData:[]
107
- };
108
- },
109
- computed: {
110
- tableHeight() {
111
- if(this.isFull) {
112
- return this.clientHeight - this.$refs.table.$el.offsetTop;
113
- } else {
114
- if (!this.myConfig.dynamicHeight) {
115
- let currentHeight = this.currentHeight;
116
- if (this.extraHeight) {
117
- currentHeight = currentHeight - Number(this.extraHeight);
118
- }
119
- if (this.outsideHeight) {
120
- currentHeight = currentHeight - Number(this.outsideHeight);
121
- }
122
- if (this.myConfig.showSummary) {
123
- currentHeight = currentHeight - 50;
124
- }
125
- return currentHeight;
126
- } else {
127
- return null;
128
- }
129
-
130
- }
131
- },
132
- tableMaxHeight() {
133
- if(this.isFull) {
134
- return this.clientHeight - this.$refs.table.$el.offsetTop;
135
- } else {
136
- if (this.myConfig.dynamicHeight) {
137
- let currentHeight = this.currentHeight - this.extraHeight - this.outsideHeight;
138
- if (this.myConfig.showSummary) {
139
- currentHeight = currentHeight - 50;
140
- }
141
- return currentHeight;
142
- } else {
143
- return null;
144
- }
145
- }
146
- }
147
- },
148
- methods: {
149
- customInit2() {
150
- if (this.myConfig.showTitle !== undefined) {
151
- this.showTitle = this.myConfig.showTitle;
152
- }
153
- this.myConfig.items.forEach(el => {
154
- if (el.resizable === undefined) {
155
- el.resizable = true;
156
- }
157
- if (!el.width && !el.minWidth) {
158
- el.minWidth = 60;
159
- }
160
- });
161
- if (this.myConfig.showAppendixCol) {
162
- this.actionAppendixConfig.label = this.myConfig.appedixLable;
163
- this.myConfig.items.push(this.actionAppendixConfig);
164
- }
165
-
166
- if (this.myConfig.showEffectValue !== undefined) {
167
- this.showEffectValue = this.myConfig.showEffectValue;
168
- }
169
- if (this.showEffectValue) {
170
- this.myConfig.dynamicHeight = true;
171
- }
172
- if (this.myConfig.modetype === '1') {
173
- this.btnStyle = 'padding-left:0px;padding-right:0px';
174
- this.divStyle = 'padding-left:24px';
175
- } else {
176
- this.btnStyle = '';
177
- this.divStyle = 'padding-left:2px';
178
- }
179
- },
180
- toggle () {
181
- this.showGrid = !this.showGrid;
182
- },
183
- toggleEffect () {
184
- this.showEffectGrid = !this.showEffectGrid;
185
- },
186
- setShowEffectGrid(value) {
187
- this.showEffectGrid = value;
188
- },
189
- setShowGrid(value) {
190
- this.showGrid = value;
191
- },
192
- setShowZoom(value) {
193
- this.showZoom = value;
194
- },
195
- setZoom() {
196
- this.isFull = !this.isFull;
197
- },
198
- rowClick(e) {
199
- if (this.showEffectValue) {
200
- this.curlEffectData = [];
201
- let key = '';
202
- if (this.myConfig.effectKey) {
203
- key = this.myConfig.effectKey;
204
- }
205
- if (key) {
206
- let index = this.effectData.findIndex(el => e[key] === el[key]);
207
- if (index > -1) {
208
- this.curlEffectData.push(this.$Method.copy(this.effectData[index]));
209
- }
210
- }
211
- }
212
- },
213
- setEffectData(obj) {
214
- this.effectData = [];
215
- this.effectData = this.$Method.copy(obj);
216
- this.curlEffectData = [];
217
- if (this.myConfig.showEffectValue) {
218
- if (obj.length === 0) {
219
- this.showEffectValue = false;
220
- } else {
221
- this.showEffectValue = true;
222
- }
223
- }
224
- },
225
- actionAppendixRender(h, params) {
226
- return h('div', [
227
- h(resolveComponent('Button'), {
228
- type: 'text',
229
- size: 'small',
230
- customIcon:'iconfont icon-custom-anniu-fujian',
231
- onClick:(e) =>{
232
- let tmp = {};
233
- tmp.rowinfo = params;
234
- tmp.name = 'actionappendix';
235
- tmp.readOnly = this.myConfig.readOnly;
236
- this.$emit('doAction',tmp);
237
- }
238
- })
239
- ]);
240
- },
241
- effectFormatValue(index, column) {
242
- let value = '';
243
- let row = this.$Method.copy(this.curlEffectData[index]);
244
- if (column.name) {
245
- value = row[column.name];
246
- }
247
- let config = column;
248
- let valueFormat = this.$Method.formatValue(value, row, config);
249
- let obj = {};
250
- obj.value = value;
251
- obj.row = row;
252
- obj.config = config;
253
- obj.valueFormat = valueFormat;
254
- if (column.formatValue) {
255
- return column.formatValue(obj);
256
- } else if (this.myConfig.formatValue) {
257
- return this.myConfig.formatValue(obj);
258
- } else {
259
- return valueFormat;
260
- }
261
- },
262
- },
263
- mounted() {
264
- if (this.$refs.card && this.$refs.card.$el) {
265
- this.$refs.card.$el.onmouseleave = () => {
266
- // this.handleOut();
267
- };
268
- }
269
- }
270
- };
271
- </script>
272
- <style lang="less" scoped>
273
- .table-wrapper{
274
- transition: all .2s;
275
- .row-box{
276
- display: flex;
277
- }
278
- .col-align{
279
- flex:1;
280
- text-align: right;
281
- }
282
- }
283
- .is--maximize{
284
- padding:0.5em 1.5em;
285
- position: fixed;
286
- left: 0;
287
- top: 0;
288
- z-index: 999;
289
- width: 100%;
290
- height: 100%;
291
- background-color: #fff;
292
- }
1
+ <template>
2
+ <Card ref="card" :bordered="false" :padding="0" dis-hover>
3
+ <template v-if="myConfig.modetype === '1'">
4
+ <p v-if="showTitle" @click="toggle" style="cursor:pointer;" >
5
+ <Row type="flex" justify="start" align="middle" style="margin-top:14px;margin-bottom:14px">
6
+ <Icon custom='iconfont icon-custom-pack' color="#f3b352" v-show="showGrid" size="14" />
7
+ <Icon v-show="!showGrid" color="#f3b352" custom='iconfont icon-custom-spread' size="14"/> <span style="margin-left:10px;font-size: 14px;font-weight:bold" v-text="myConfig.title" />
8
+ </Row>
9
+ </p>
10
+ <Divider style="margin-left:24px;margin-top:0px;margin-bottom:10px;"/>
11
+ </template>
12
+ <template v-if="myConfig.modetype === '2'">
13
+ <div v-if="showTitle" style="margin-bottom:10px;">
14
+ <span class="efuture-title-verticalline"/><span style="font-size: 14px;font-weight:bold" v-text="myConfig.title" />
15
+ </div>
16
+ </template>
17
+ <div class="table-wrapper" :class="{'is--maximize':showZoom && isFull}" :style="divStyle">
18
+ <div v-if="$slots.header">
19
+ <slot name="header"></slot>
20
+ </div>
21
+ <Row class-name="row-box" v-else v-show="showGrid" type="flex" justify="start" align="middle" :gutter="0" style="margin-bottom: 10px;">
22
+ <Col v-if="showAddBtn">
23
+ <Button :style="btnStyle" customIcon="iconfont icon-custom-rowadd3" type="text" :disabled="myConfig.readOnly" @click="addRow" >添加</Button>
24
+ </Col>
25
+ <Col v-if="showAddBtn && showDelBatchBtn">
26
+ <Divider type="vertical" style="margin: 0 6px 0 6px;"/>
27
+ </Col>
28
+ <Col v-if="showDelBatchBtn">
29
+ <Button :style="btnStyle" customIcon="iconfont icon-custom-rowdel3" type="text" :disabled="myConfig.readOnly" @click="delBatchRow">删除</Button>
30
+ </Col>
31
+ <Col class="col-align" v-if="showZoom">
32
+ <Button type="ghost" shape="circle" :title="isFull ? '还原' : '全屏'" :customIcon="[isFull ? 'iconfont icon-custom-minimize' : 'iconfont icon-custom-fullscreen']" @click="setZoom"></Button>
33
+ </Col>
34
+ </Row>
35
+ <Row v-show="showGrid" >
36
+ <Table ref="table" :row-class-name="rowClassName" :loading="loading" :size="myConfig.tableSize" :stripe="myConfig.showStripe" :border="myConfig.showBorder" :height="tableHeight" :maxHeight="tableMaxHeight" :show-header="myConfig.showHeader" @on-selection-change="OnSelectionChange" :columns="tableColumns" :data="data" @on-column-width-resize="onColumnWidthResize" @on-row-click="rowClick" :show-summary="myConfig.showSummary" :summary-method="handleSummary">
37
+ <template v-for="config in soltTableColumns" v-slot:[config.key]="{ index }" :key="'show_' + config.key">
38
+ <div @click="EditCell(index,config)" :class="config.cellClassName" :cell-row="index" :cell-col="config.key">
39
+ <ControlBox v-if="editIndex === index && editKey=== config.key" :ref="'cell_'+ index + '_' + config.key" :autofocus="true" :config="getCellConfig(index,config)" :valueData="getCurRow(index)" @inputValue="input" :editIndex="index" @doAction="doAction"></ControlBox>
40
+ <ShowText v-else :label="formatValue(index,config)" :contentAlign="config.contentAlign" :class="IsCellError(index,config)" :config="config" :rowIndex="index"></ShowText>
41
+ </div>
42
+ </template>
43
+ </Table>
44
+ <div ref="page" v-if="myConfig.showPage" style="background:#eee;padding-top:5px;width:100%" >
45
+ <Card :bordered="false" :padding="0" :dis-hover="true" style="border-radius:0px">
46
+ <Row type="flex" justify="end" style="padding:5px;padding-right:10px">
47
+ <Page :total="myConfig.pageConfig.total_results" :size="myConfig.pageSize" :current="myConfig.pageConfig.page_no" :page-size="myConfig.pageConfig.page_size" :page-size-opts="myConfig.pageConfig.pageSizeList" @on-page-size-change="changePageSize" @on-change="changePage" :show-total="myConfig.pageShowTotal" :show-elevator="myConfig.pageShowElevator" :show-sizer="myConfig.pageShowSizer"></Page>
48
+ </Row>
49
+ </Card>
50
+ </div>
51
+ </Row>
52
+ <p v-show="showGrid && showEffectValue" @click="toggleEffect" style="cursor:pointer;background-color:#FFF2DE;height:36px;line-height:36px;border: 1px solid #F3B352;margin-top: 10px;" >
53
+ <Icon custom='iconfont icon-custom-help' size="20" style="margin-left: 10px;" color="#D5882E" /> <span style="margin-left: 4px;color:#D5882E">参考数据</span>
54
+ </p>
55
+ <Row v-show="showGrid && showEffectValue && showEffectGrid" class="efuture-effect-grid" style="margin-top: 10px;">
56
+ <Table ref="effect_table" :row-class-name="rowClassName" :loading="loading" :size="myConfig.tableSize" :border="myConfig.showBorder" :stripe="myConfig.showStripe" :maxHeight="tableMaxHeight" :columns="tableColumns" :data="curlEffectData" @on-column-width-resize="onColumnWidthResize" >
57
+ <template v-for="config in soltTableColumns" v-slot:[config.key]="{ row, index }" :key="'show_effect' + config.key">
58
+ <ShowText :label="effectFormatValue(index,config,row)" :contentAlign="config.contentAlign" :class="config.cellClassName" :config="config" :rowIndex="index"></ShowText>
59
+ </template>
60
+ </Table>
61
+ </Row>
62
+ </div>
63
+ <Modal v-if="!editRowFlag" v-model="showEditRowForm" width="90%" title="编辑" @on-ok="editRow">
64
+ <div>
65
+ <ExpandRow ref="rowForm" :config="myConfig" :dictData="dictData" />
66
+ </div>
67
+ </Modal>
68
+ </Card>
69
+ </template>
70
+ <script>
71
+ import { resolveComponent } from 'vue';
72
+ import Base from '@/components/grid/editgridbase.vue';
73
+ export default {
74
+ name: 'meditgridcard',
75
+ extends: Base,
76
+ data () {
77
+ return {
78
+ myConfig:{
79
+ title:'',
80
+ modetype:'1',
81
+ operFixedFlag:false,
82
+ showCheckBox:true,
83
+ showPage:false,
84
+ showAppendixCol:false,
85
+ appedixLable:'附件'
86
+ },
87
+ btnStyle:'padding-left:0px;padding-right:0px',
88
+ divStyle:'padding-left:24px',
89
+ showAddBtn:true,
90
+ showZoom: false,
91
+ isFull: false,
92
+ showDelBatchBtn:true,
93
+ showGrid:true,
94
+ showTitle:true,
95
+ showEffectValue:false,
96
+ showEffectGrid:true,
97
+ actionAppendixConfig:{
98
+ label:'附件',
99
+ key:'actionappendix',
100
+ align: 'center',
101
+ fixed: 'right',
102
+ render:this.actionAppendixRender,
103
+ width:45
104
+ },
105
+ curlEffectData:[],
106
+ effectData:[]
107
+ };
108
+ },
109
+ computed: {
110
+ tableHeight() {
111
+ if(this.isFull) {
112
+ return this.clientHeight - this.$refs.table.$el.offsetTop;
113
+ } else {
114
+ if (!this.myConfig.dynamicHeight) {
115
+ let currentHeight = this.currentHeight;
116
+ if (this.extraHeight) {
117
+ currentHeight = currentHeight - Number(this.extraHeight);
118
+ }
119
+ if (this.outsideHeight) {
120
+ currentHeight = currentHeight - Number(this.outsideHeight);
121
+ }
122
+ if (this.myConfig.showSummary) {
123
+ currentHeight = currentHeight - 50;
124
+ }
125
+ return currentHeight;
126
+ } else {
127
+ return null;
128
+ }
129
+
130
+ }
131
+ },
132
+ tableMaxHeight() {
133
+ if(this.isFull) {
134
+ return this.clientHeight - this.$refs.table.$el.offsetTop;
135
+ } else {
136
+ if (this.myConfig.dynamicHeight) {
137
+ let currentHeight = this.currentHeight - this.extraHeight - this.outsideHeight;
138
+ if (this.myConfig.showSummary) {
139
+ currentHeight = currentHeight - 50;
140
+ }
141
+ return currentHeight;
142
+ } else {
143
+ return null;
144
+ }
145
+ }
146
+ }
147
+ },
148
+ methods: {
149
+ customInit2() {
150
+ if (this.myConfig.showTitle !== undefined) {
151
+ this.showTitle = this.myConfig.showTitle;
152
+ }
153
+ this.myConfig.items.forEach(el => {
154
+ if (el.resizable === undefined) {
155
+ el.resizable = true;
156
+ }
157
+ if (!el.width && !el.minWidth) {
158
+ el.minWidth = 60;
159
+ }
160
+ });
161
+ if (this.myConfig.showAppendixCol) {
162
+ this.actionAppendixConfig.label = this.myConfig.appedixLable;
163
+ this.myConfig.items.push(this.actionAppendixConfig);
164
+ }
165
+
166
+ if (this.myConfig.showEffectValue !== undefined) {
167
+ this.showEffectValue = this.myConfig.showEffectValue;
168
+ }
169
+ if (this.showEffectValue) {
170
+ this.myConfig.dynamicHeight = true;
171
+ }
172
+ if (this.myConfig.modetype === '1') {
173
+ this.btnStyle = 'padding-left:0px;padding-right:0px';
174
+ this.divStyle = 'padding-left:24px';
175
+ } else {
176
+ this.btnStyle = '';
177
+ this.divStyle = 'padding-left:2px';
178
+ }
179
+ },
180
+ toggle () {
181
+ this.showGrid = !this.showGrid;
182
+ },
183
+ toggleEffect () {
184
+ this.showEffectGrid = !this.showEffectGrid;
185
+ },
186
+ setShowEffectGrid(value) {
187
+ this.showEffectGrid = value;
188
+ },
189
+ setShowGrid(value) {
190
+ this.showGrid = value;
191
+ },
192
+ setShowZoom(value) {
193
+ this.showZoom = value;
194
+ },
195
+ setZoom() {
196
+ this.isFull = !this.isFull;
197
+ },
198
+ rowClick(e) {
199
+ if (this.showEffectValue) {
200
+ this.curlEffectData = [];
201
+ let key = '';
202
+ if (this.myConfig.effectKey) {
203
+ key = this.myConfig.effectKey;
204
+ }
205
+ if (key) {
206
+ let index = this.effectData.findIndex(el => e[key] === el[key]);
207
+ if (index > -1) {
208
+ this.curlEffectData.push(this.$Method.copy(this.effectData[index]));
209
+ }
210
+ }
211
+ }
212
+ },
213
+ setEffectData(obj) {
214
+ this.effectData = [];
215
+ this.effectData = this.$Method.copy(obj);
216
+ this.curlEffectData = [];
217
+ if (this.myConfig.showEffectValue) {
218
+ if (obj.length === 0) {
219
+ this.showEffectValue = false;
220
+ } else {
221
+ this.showEffectValue = true;
222
+ }
223
+ }
224
+ },
225
+ actionAppendixRender(h, params) {
226
+ return h('div', [
227
+ h(resolveComponent('Button'), {
228
+ type: 'text',
229
+ size: 'small',
230
+ customIcon:'iconfont icon-custom-anniu-fujian',
231
+ onClick:(e) =>{
232
+ let tmp = {};
233
+ tmp.rowinfo = params;
234
+ tmp.name = 'actionappendix';
235
+ tmp.readOnly = this.myConfig.readOnly;
236
+ this.$emit('doAction',tmp);
237
+ }
238
+ })
239
+ ]);
240
+ },
241
+ effectFormatValue(index, column) {
242
+ let value = '';
243
+ let row = this.$Method.copy(this.curlEffectData[index]);
244
+ if (column.name) {
245
+ value = row[column.name];
246
+ }
247
+ let config = column;
248
+ let valueFormat = this.$Method.formatValue(value, row, config);
249
+ let obj = {};
250
+ obj.value = value;
251
+ obj.row = row;
252
+ obj.config = config;
253
+ obj.valueFormat = valueFormat;
254
+ if (column.formatValue) {
255
+ return column.formatValue(obj);
256
+ } else if (this.myConfig.formatValue) {
257
+ return this.myConfig.formatValue(obj);
258
+ } else {
259
+ return valueFormat;
260
+ }
261
+ },
262
+ },
263
+ mounted() {
264
+ if (this.$refs.card && this.$refs.card.$el) {
265
+ this.$refs.card.$el.onmouseleave = () => {
266
+ // this.handleOut();
267
+ };
268
+ }
269
+ }
270
+ };
271
+ </script>
272
+ <style lang="less" scoped>
273
+ .table-wrapper{
274
+ transition: all .2s;
275
+ .row-box{
276
+ display: flex;
277
+ }
278
+ .col-align{
279
+ flex:1;
280
+ text-align: right;
281
+ }
282
+ }
283
+ .is--maximize{
284
+ padding:0.5em 1.5em;
285
+ position: fixed;
286
+ left: 0;
287
+ top: 0;
288
+ z-index: 999;
289
+ width: 100%;
290
+ height: 100%;
291
+ background-color: #fff;
292
+ }
293
293
  </style>