centaline-data-driven 1.6.72 → 1.6.73

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.
@@ -1,196 +1,106 @@
1
1
  <template>
2
- <div ref="formRef" v-loading="loading"
3
- :style="{ width: pageWidth ? pageWidth + 'px' : '100%', margin: 'auto', 'min-height': minHeight }">
4
- <div style="display: flex; width: 100%;">
5
- <div style="flex: 1; min-width: 0;padding: 10px;" ref="leftContainerRef">
6
- <div ref="fieldsRef" v-if="model !== null && !loading" class="ct-form"
7
- :class="{ 'domDisabled': model.pageDisabled }" :key="formKey">
8
- <div ref="topTipRef" v-if="model.tip" class="tip-absolute">
9
- <span v-html="model.tip"></span>
2
+ <div ref="formRef" v-loading="loading" :style="{ width: pageWidth ? (showViewerFile?pageWidth+650:pageWidth) + 'px' : '100%', margin: 'auto', 'min-height': minHeight
3
+ ,display: showViewerFile ? 'flex' : 'block',alignItems: 'flex-start'}">
4
+ <div ref="leftContainerRef" :style="{flex: showViewerFile ? '1 1 0' : null, width: showViewerFile ? (leftContainerWidth - 4) + 'px' : (pageWidth ? (pageWidth - 20) + 'px' : '100%'), padding: '10px'}">
5
+ <div ref="fieldsRef" v-if="model !== null && !loading" class="ct-form" :class="{ 'domDisabled': model.pageDisabled }" :key="formKey">
6
+ <div ref="topTipRef" v-if="model.tip" class="tip-absolute">
7
+ <span v-html="model.tip"></span>
8
+ </div>
9
+ <div v-if="(!this.model.isHorizontalLayout || this.flagScroll) && model.tip" :style="{ 'height': (model.tip ? 30 : 0) + 'px' }"></div>
10
+
11
+ <!--可根据场景判断显示el-card还是el-main-->
12
+ <component :is="model.showTitle ? 'el-main' : 'el-card'">
13
+ <div slot="header" class="clearfix" v-if="typeof model.title !== 'undefined' && model.flagShowTitle">
14
+ <span style="font-weight:bold">{{ model.title }}</span>
10
15
  </div>
11
- <div v-if="(!this.model.isHorizontalLayout || this.flagScroll) && model.tip"
12
- :style="{ 'height': (model.tip ? 30 : 0) + 'px' }"></div>
13
16
 
14
- <!--可根据场景判断显示el-card还是el-main-->
15
- <component :is="model.showTitle ? 'el-main' : 'el-card'">
16
- <div slot="header" class="clearfix" v-if="typeof model.title !== 'undefined' && model.flagShowTitle">
17
- <span style="font-weight:bold">{{ model.title }}</span>
18
- </div>
17
+ <!--relationParentFormFields-->
18
+ <el-row v-if="relationParentFormFields.length > 0">
19
+ <template v-for="(col, index) in relationParentFormFields">
20
+ <el-col :key="index" v-if="col.show !== false" :span="col.colspan" style="padding:5px">
21
+ <component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model"
22
+ v-bind="col.bindPara" :fileData="getFileData(col)" :from="'form'" :documentHeight="documentHeight"
23
+ :documentWidth="documentWidth" @click="fieldClickHandler(col, $event)"
24
+ @change="changeHandler(col, $event)" @enter="enterHandler(col, $event)"
25
+ @input="inputHandler(col, $event)" @importComplete="importComplete" @blur="blurHandler(col, $event)"
26
+ @popupSearchList="popupSearchListHandler"
27
+ @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
28
+ @popupLocation="popupLocationHandler" @tableButtonClick="clickHandler"></component>
29
+ </el-col>
30
+ </template>
31
+ </el-row>
19
32
 
20
- <!--relationParentFormFields-->
21
- <el-row v-if="relationParentFormFields.length > 0">
22
- <template v-for="(col, index) in relationParentFormFields">
33
+ <!--头部元素-->
34
+ <el-row v-if="collapseFieldsRow.length > 0">
35
+ <template v-for="(col, index) in collapseFieldsRow[0]">
36
+ <template v-if="col.show !== false && col.lineFeed">
37
+ <div style="float: left;width: 100%;"></div>
23
38
  <el-col :key="index" v-if="col.show !== false" :span="col.colspan" style="padding:5px">
24
39
  <component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model"
25
40
  v-bind="col.bindPara" :fileData="getFileData(col)" :from="'form'" :documentHeight="documentHeight"
26
41
  :documentWidth="documentWidth" @click="fieldClickHandler(col, $event)"
27
42
  @change="changeHandler(col, $event)" @enter="enterHandler(col, $event)"
28
- @input="inputHandler(col, $event)" @importComplete="importComplete" @blur="blurHandler(col, $event)"
29
- @popupSearchList="popupSearchListHandler"
43
+ @input="inputHandler(col, $event)" @importComplete="importComplete"
44
+ @blur="blurHandler(col, $event)" @popupSearchList="popupSearchListHandler"
30
45
  @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
31
46
  @popupLocation="popupLocationHandler" @tableButtonClick="clickHandler"></component>
32
47
  </el-col>
33
48
  </template>
34
- </el-row>
35
-
36
- <!--头部元素-->
37
- <el-row v-if="collapseFieldsRow.length > 0">
38
- <template v-for="(col, index) in collapseFieldsRow[0]">
39
- <template v-if="col.show !== false && col.lineFeed">
40
- <div style="float: left;width: 100%;"></div>
41
- <el-col :key="index" v-if="col.show !== false" :span="col.colspan" style="padding:5px">
42
- <component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model"
43
- v-bind="col.bindPara" :fileData="getFileData(col)" :from="'form'" :documentHeight="documentHeight"
44
- :documentWidth="documentWidth" @click="fieldClickHandler(col, $event)"
45
- @change="changeHandler(col, $event)" @enter="enterHandler(col, $event)"
46
- @input="inputHandler(col, $event)" @importComplete="importComplete"
47
- @blur="blurHandler(col, $event)" @popupSearchList="popupSearchListHandler"
48
- @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
49
- @popupLocation="popupLocationHandler" @tableButtonClick="clickHandler"></component>
50
- </el-col>
51
- </template>
52
- <template v-else>
53
- <el-col :key="index" v-if="col.show !== false" :span="col.colspan" style="padding:5px">
54
- <component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model"
55
- v-bind="col.bindPara" :fileData="getFileData(col)" :from="'form'" :documentHeight="documentHeight"
56
- :documentWidth="documentWidth" @click="fieldClickHandler(col, $event)"
57
- @change="changeHandler(col, $event)" @enter="enterHandler(col, $event)"
58
- @input="inputHandler(col, $event)" @importComplete="importComplete"
59
- @blur="blurHandler(col, $event)" @popupSearchList="popupSearchListHandler"
60
- @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
61
- @popupLocation="popupLocationHandler" @tableButtonClick="clickHandler"></component>
62
- </el-col>
63
- </template>
49
+ <template v-else>
50
+ <el-col :key="index" v-if="col.show !== false" :span="col.colspan" style="padding:5px">
51
+ <component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model"
52
+ v-bind="col.bindPara" :fileData="getFileData(col)" :from="'form'" :documentHeight="documentHeight"
53
+ :documentWidth="documentWidth" @click="fieldClickHandler(col, $event)"
54
+ @change="changeHandler(col, $event)" @enter="enterHandler(col, $event)"
55
+ @input="inputHandler(col, $event)" @importComplete="importComplete"
56
+ @blur="blurHandler(col, $event)" @popupSearchList="popupSearchListHandler"
57
+ @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
58
+ @popupLocation="popupLocationHandler" @tableButtonClick="clickHandler"></component>
59
+ </el-col>
64
60
  </template>
65
- </el-row>
61
+ </template>
62
+ </el-row>
66
63
 
67
- <!--tabs-->
68
- <el-tabs ref="tabsRef" v-if="model.isHorizontalLayout" v-model="activeName" @tab-click="tabClickHandler">
69
- <el-tab-pane :name="index.toString()" :lazy="item.lazyLoad" v-for="(item, index) in collapse"
70
- v-if="item.show !== false" :key="index">
71
- <template slot="label">
72
- <span v-html="item.label"></span>
73
- </template>
74
- <el-row>
75
- <template v-for="(col, index) in collapseFieldsRow[index + 1]">
76
- <template v-if="col.show !== false && col.lineFeed">
77
- <div style="display: flex; flex: 0 0 100%;"></div>
78
- <el-col :key="index" :span="col.colspan" v-if="col.show !== false" style="padding:5px">
79
- <component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model"
80
- v-bind="col.bindPara" :fileData="getFileData(col)" :from="'form'"
81
- :documentHeight="documentHeight" :documentWidth="documentWidth"
82
- @click="fieldClickHandler(col, $event)" @change="changeHandler(col, $event)"
83
- @enter="enterHandler(col, $event)" @input="inputHandler(col, $event)"
84
- @importComplete="importComplete" @blur="blurHandler(col, $event)"
85
- @popupSearchList="popupSearchListHandler"
86
- @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
87
- @popupLocation="popupLocationHandler" @tableButtonClick="clickHandler"></component>
88
- </el-col>
89
- </template>
90
- <template v-else>
91
- <el-col :key="index" :span="col.colspan" v-if="col.show !== false" style="padding:5px">
92
- <component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model"
93
- v-bind="col.bindPara" :fileData="getFileData(col)" :from="'form'"
94
- :documentHeight="documentHeight" :documentWidth="documentWidth"
95
- @click="fieldClickHandler(col, $event)" @change="changeHandler(col, $event)"
96
- @enter="enterHandler(col, $event)" @input="inputHandler(col, $event)"
97
- @importComplete="importComplete" @blur="blurHandler(col, $event)"
98
- @popupSearchList="popupSearchListHandler"
99
- @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
100
- @popupLocation="popupLocationHandler" @tableButtonClick="clickHandler"></component>
101
- </el-col>
102
- </template>
64
+ <!--tabs-->
65
+ <el-tabs ref="tabsRef" v-if="model.isHorizontalLayout" v-model="activeName" @tab-click="tabClickHandler">
66
+ <el-tab-pane :name="index.toString()" :lazy="item.lazyLoad" v-for="(item, index) in collapse"
67
+ v-if="item.show !== false" :key="index">
68
+ <template slot="label">
69
+ <span v-html="item.label"></span>
70
+ </template>
71
+ <el-row>
72
+ <template v-for="(col, index) in collapseFieldsRow[index + 1]">
73
+ <template v-if="col.show !== false && col.lineFeed">
74
+ <div style="display: flex; flex: 0 0 100%;"></div>
75
+ <el-col :key="index" :span="col.colspan" v-if="col.show !== false" style="padding:5px">
76
+ <component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model"
77
+ v-bind="col.bindPara" :fileData="getFileData(col)" :from="'form'"
78
+ :documentHeight="documentHeight" :documentWidth="documentWidth"
79
+ @click="fieldClickHandler(col, $event)" @change="changeHandler(col, $event)"
80
+ @enter="enterHandler(col, $event)" @input="inputHandler(col, $event)"
81
+ @importComplete="importComplete" @blur="blurHandler(col, $event)"
82
+ @popupSearchList="popupSearchListHandler"
83
+ @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
84
+ @popupLocation="popupLocationHandler" @tableButtonClick="clickHandler"></component>
85
+ </el-col>
103
86
  </template>
104
- </el-row>
105
- </el-tab-pane>
106
- <template v-if="model.flagFixedTabOnHorizontalLayout">
107
- <!--尾部元素-->
108
- <el-row ref="independentRef" v-if="independentItem.length > 0" style="margin-top: 20px;">
109
- <template v-for="(col, index) in independentItem">
110
- <template v-if="col.show !== false && col.lineFeed">
111
- <div style="display: flex; flex: 0 0 100%;"></div>
112
- <el-col :key="index" v-if="col.show !== false" :span="col.colspan" style="padding:5px">
113
- <component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model"
114
- v-bind="col.bindPara" :fileData="getFileData(col)" :from="'form'"
115
- :documentHeight="documentHeight" :documentWidth="documentWidth"
116
- @click="fieldClickHandler(col, $event)" @change="changeHandler(col, $event)"
117
- @enter="enterHandler(col, $event)" @input="inputHandler(col, $event)"
118
- @importComplete="importComplete" @blur="blurHandler(col, $event)"
119
- @popupSearchList="popupSearchListHandler"
120
- @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
121
- @popupLocation="popupLocationHandler" @tableButtonClick="clickHandler"></component>
122
- </el-col>
123
- </template>
124
- <template v-else>
125
- <el-col :key="index" v-if="col.show !== false" :span="col.colspan" style="padding:5px">
126
- <component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model"
127
- v-bind="col.bindPara" :fileData="getFileData(col)" :from="'form'"
128
- :documentHeight="documentHeight" :documentWidth="documentWidth"
129
- @click="fieldClickHandler(col, $event)" @change="changeHandler(col, $event)"
130
- @enter="enterHandler(col, $event)" @input="inputHandler(col, $event)"
131
- @importComplete="importComplete" @blur="blurHandler(col, $event)"
132
- @popupSearchList="popupSearchListHandler"
133
- @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
134
- @popupLocation="popupLocationHandler" @tableButtonClick="clickHandler"></component>
135
- </el-col>
136
- </template>
87
+ <template v-else>
88
+ <el-col :key="index" :span="col.colspan" v-if="col.show !== false" style="padding:5px">
89
+ <component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model"
90
+ v-bind="col.bindPara" :fileData="getFileData(col)" :from="'form'"
91
+ :documentHeight="documentHeight" :documentWidth="documentWidth"
92
+ @click="fieldClickHandler(col, $event)" @change="changeHandler(col, $event)"
93
+ @enter="enterHandler(col, $event)" @input="inputHandler(col, $event)"
94
+ @importComplete="importComplete" @blur="blurHandler(col, $event)"
95
+ @popupSearchList="popupSearchListHandler"
96
+ @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
97
+ @popupLocation="popupLocationHandler" @tableButtonClick="clickHandler"></component>
98
+ </el-col>
137
99
  </template>
138
- </el-row>
139
- <el-row ref="linksRef" v-if="model.links.findIndex((v) => { return v.show }) > -1"
140
- style="margin-top: 8px;">
141
- <el-col :span="24" style="text-align:left">
142
- <component v-for="(btn, index) in model.links" :key="index" :is="btn.is" :vmodel="btn"
143
- @click="clickHandler" v-if="btn.show"></component>
144
- </el-col>
145
- </el-row>
146
- </template>
147
- </el-tabs>
148
-
149
- <!--分组-->
150
- <el-collapse v-else v-model="collapseActiveNames" @change="collapseHandleChange"
151
- :class="model.flagHideSaveLine ? 'el-collapse-saveLine' : ''">
152
- <el-collapse-item v-for="(item, index) in collapse" v-if="item.show !== false" :key="index"
153
- :title="item.label" :name="index" :disabled="item.lock"
154
- :class="item.lock ? 'ct-collapse-item-title' : ''">
155
- <template slot="title">
156
- <i class="sign"></i>
157
- <span :class="[item.labelClass]">{{ item.label }}</span>
158
100
  </template>
159
- <el-row>
160
- <template v-for="(col, index) in collapseFieldsRow[index + 1]">
161
- <template v-if="col.show !== false && col.lineFeed">
162
- <div style="display: flex; flex: 0 0 100%;"></div>
163
- <el-col :key="index" :span="col.colspan" v-if="col.show !== false" style="padding:5px">
164
- <component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model"
165
- v-bind="col.bindPara" :fileData="getFileData(col)" :from="'form'"
166
- :documentHeight="documentHeight" :documentWidth="documentWidth"
167
- @click="fieldClickHandler(col, $event)" @change="changeHandler(col, $event)"
168
- @enter="enterHandler(col, $event)" @input="inputHandler(col, $event)"
169
- @importComplete="importComplete" @blur="blurHandler(col, $event)"
170
- @popupSearchList="popupSearchListHandler"
171
- @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
172
- @popupLocation="popupLocationHandler" @tableButtonClick="clickHandler"></component>
173
- </el-col>
174
- </template>
175
- <template v-else>
176
- <el-col :key="index" :span="col.colspan" v-if="col.show !== false" style="padding:5px">
177
- <component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model"
178
- v-bind="col.bindPara" :fileData="getFileData(col)" :from="'form'"
179
- :documentHeight="documentHeight" :documentWidth="documentWidth"
180
- @click="fieldClickHandler(col, $event)" @change="changeHandler(col, $event)"
181
- @enter="enterHandler(col, $event)" @input="inputHandler(col, $event)"
182
- @importComplete="importComplete" @blur="blurHandler(col, $event)"
183
- @popupSearchList="popupSearchListHandler"
184
- @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
185
- @popupLocation="popupLocationHandler" @tableButtonClick="clickHandler"></component>
186
- </el-col>
187
- </template>
188
- </template>
189
- </el-row>
190
- </el-collapse-item>
191
- </el-collapse>
192
-
193
- <template v-if="!model.flagFixedTabOnHorizontalLayout">
101
+ </el-row>
102
+ </el-tab-pane>
103
+ <template v-if="model.flagFixedTabOnHorizontalLayout">
194
104
  <!--尾部元素-->
195
105
  <el-row ref="independentRef" v-if="independentItem.length > 0" style="margin-top: 20px;">
196
106
  <template v-for="(col, index) in independentItem">
@@ -231,47 +141,123 @@
231
141
  </el-col>
232
142
  </el-row>
233
143
  </template>
234
- </component>
144
+ </el-tabs>
235
145
 
236
- <div
237
- v-if="model.bottomTip || (model.buttons.length > 0 && model.buttons.findIndex((v) => { return v.show }) > -1)"
238
- :style="{ 'height': (model.bottomTip ? 34 : 0) + (model.buttons.length > 0 && model.buttons.findIndex((v) => { return v.show }) > -1 ? 34 : 0) + 'px' }">
239
- </div>
240
- </div>
241
- <div ref="bottomTipRef" v-if="model && !loading && model.bottomTip"
242
- :class="(model.buttons.length > 0 && model.buttons.findIndex((v) => { return v.show }) > -1 ? 'tip-bottom-absolute40' : 'tip-bottom-absolute')">
243
- <span v-html="model.bottomTip"></span>
244
- </div>
245
- <div ref="buttonsRef"
246
- v-if="model && !loading && model.buttons.length > 0 && model.buttons.findIndex((v) => { return v.show }) > -1"
247
- :class="isScroll ? 'ccai button-absolute' : 'button-absolute'"
248
- :style="{
249
- 'max-width': leftContainerWidth && showViewerFile ? (leftContainerWidth -4) + 'px' : pageWidth ? (pageWidth - 20) + 'px' : '100%',
250
- 'right': showViewerFile ? 'auto' : '0px'
251
- }">
252
- <el-col :span="24"
253
- style="display: flex;align-items: center;justify-content: center;height: 40px ;padding-bottom: 1px;padding-left: 5px;padding-right: 5px;"
254
- class="btnPadBom">
255
- <component v-for="(btn, index) in model.buttons" :key="index" :is="btn.is" :vmodel="btn"
256
- @click="clickHandler" v-if="btn.show" :style="{ 'float': btn.isCheckbox ? btn.alignCss : '' }">
257
- </component>
258
- </el-col>
259
- </div>
260
- </div>
261
- <div
262
- :style="{ flex: ' 0 0 ' + 650 + 'px', position: 'sticky', top: '0', 'box-shadow': '-10px 0 5px -9px rgba(0, 0, 0, 0.3)' }"
263
- v-if="showViewerFile">
264
- <div
265
- :style="{ position: 'sticky', top: '0', height: dialogHeight + 'px', overflow: 'hidden', 'border-bottom-right-radius': '4px' }">
266
- <viewer-file :MediaAlbum="media.MediaAlbum" :groupIndex="media.groupIndex" :index="media.index"
267
- :key="media.random" :flagLeft="media.flagLeft" @closeViewerFile="ViewerFileToggle(false)"
268
- @ViewerFilechangeIndex="ViewerFilechangeIndex">
269
- </viewer-file>
146
+ <!--分组-->
147
+ <el-collapse v-else v-model="collapseActiveNames" @change="collapseHandleChange"
148
+ :class="model.flagHideSaveLine ? 'el-collapse-saveLine' : ''">
149
+ <el-collapse-item v-for="(item, index) in collapse" v-if="item.show !== false" :key="index"
150
+ :title="item.label" :name="index" :disabled="item.lock"
151
+ :class="item.lock ? 'ct-collapse-item-title' : ''">
152
+ <template slot="title">
153
+ <i class="sign"></i>
154
+ <span :class="[item.labelClass]">{{ item.label }}</span>
155
+ </template>
156
+ <el-row>
157
+ <template v-for="(col, index) in collapseFieldsRow[index + 1]">
158
+ <template v-if="col.show !== false && col.lineFeed">
159
+ <div style="display: flex; flex: 0 0 100%;"></div>
160
+ <el-col :key="index" :span="col.colspan" v-if="col.show !== false" style="padding:5px">
161
+ <component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model"
162
+ v-bind="col.bindPara" :fileData="getFileData(col)" :from="'form'"
163
+ :documentHeight="documentHeight" :documentWidth="documentWidth"
164
+ @click="fieldClickHandler(col, $event)" @change="changeHandler(col, $event)"
165
+ @enter="enterHandler(col, $event)" @input="inputHandler(col, $event)"
166
+ @importComplete="importComplete" @blur="blurHandler(col, $event)"
167
+ @popupSearchList="popupSearchListHandler"
168
+ @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
169
+ @popupLocation="popupLocationHandler" @tableButtonClick="clickHandler"></component>
170
+ </el-col>
171
+ </template>
172
+ <template v-else>
173
+ <el-col :key="index" :span="col.colspan" v-if="col.show !== false" style="padding:5px">
174
+ <component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model"
175
+ v-bind="col.bindPara" :fileData="getFileData(col)" :from="'form'"
176
+ :documentHeight="documentHeight" :documentWidth="documentWidth"
177
+ @click="fieldClickHandler(col, $event)" @change="changeHandler(col, $event)"
178
+ @enter="enterHandler(col, $event)" @input="inputHandler(col, $event)"
179
+ @importComplete="importComplete" @blur="blurHandler(col, $event)"
180
+ @popupSearchList="popupSearchListHandler"
181
+ @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
182
+ @popupLocation="popupLocationHandler" @tableButtonClick="clickHandler"></component>
183
+ </el-col>
184
+ </template>
185
+ </template>
186
+ </el-row>
187
+ </el-collapse-item>
188
+ </el-collapse>
189
+
190
+ <template v-if="!model.flagFixedTabOnHorizontalLayout">
191
+ <!--尾部元素-->
192
+ <el-row ref="independentRef" v-if="independentItem.length > 0" style="margin-top: 20px;">
193
+ <template v-for="(col, index) in independentItem">
194
+ <template v-if="col.show !== false && col.lineFeed">
195
+ <div style="display: flex; flex: 0 0 100%;"></div>
196
+ <el-col :key="index" v-if="col.show !== false" :span="col.colspan" style="padding:5px">
197
+ <component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model"
198
+ v-bind="col.bindPara" :fileData="getFileData(col)" :from="'form'"
199
+ :documentHeight="documentHeight" :documentWidth="documentWidth"
200
+ @click="fieldClickHandler(col, $event)" @change="changeHandler(col, $event)"
201
+ @enter="enterHandler(col, $event)" @input="inputHandler(col, $event)"
202
+ @importComplete="importComplete" @blur="blurHandler(col, $event)"
203
+ @popupSearchList="popupSearchListHandler"
204
+ @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
205
+ @popupLocation="popupLocationHandler" @tableButtonClick="clickHandler"></component>
206
+ </el-col>
207
+ </template>
208
+ <template v-else>
209
+ <el-col :key="index" v-if="col.show !== false" :span="col.colspan" style="padding:5px">
210
+ <component ref="Fields" :is="col.is" :vmodel="col" :api="model.optionApi" :parentModel="model"
211
+ v-bind="col.bindPara" :fileData="getFileData(col)" :from="'form'"
212
+ :documentHeight="documentHeight" :documentWidth="documentWidth"
213
+ @click="fieldClickHandler(col, $event)" @change="changeHandler(col, $event)"
214
+ @enter="enterHandler(col, $event)" @input="inputHandler(col, $event)"
215
+ @importComplete="importComplete" @blur="blurHandler(col, $event)"
216
+ @popupSearchList="popupSearchListHandler"
217
+ @flagNotificationParentAfterContentChanged="flagNotificationParentAfterContentChanged"
218
+ @popupLocation="popupLocationHandler" @tableButtonClick="clickHandler"></component>
219
+ </el-col>
220
+ </template>
221
+ </template>
222
+ </el-row>
223
+ <el-row ref="linksRef" v-if="model.links.findIndex((v) => { return v.show }) > -1"
224
+ style="margin-top: 8px;">
225
+ <el-col :span="24" style="text-align:left">
226
+ <component v-for="(btn, index) in model.links" :key="index" :is="btn.is" :vmodel="btn"
227
+ @click="clickHandler" v-if="btn.show"></component>
228
+ </el-col>
229
+ </el-row>
230
+ </template>
231
+ </component>
270
232
 
233
+ <div v-if="model.bottomTip || (model.buttons.length > 0 && model.buttons.findIndex((v) => { return v.show }) > -1)"
234
+ :style="{ 'height': (model.bottomTip ? 34 : 0) + (model.buttons.length > 0 && model.buttons.findIndex((v) => { return v.show }) > -1 ? 34 : 0) + 'px' }">
271
235
  </div>
272
236
  </div>
237
+
238
+ <div ref="bottomTipRef" v-if="model && !loading && model.bottomTip"
239
+ :style="{'width': pageWidth ? (pageWidth - 20) + 'px' : (showViewerFile ? leftContainerWidth + 'px' :'100%'),'right': showViewerFile ? 'auto' : '0px'}"
240
+ :class="(model.buttons.length > 0 && model.buttons.findIndex((v) => { return v.show }) > -1 ? 'tip-bottom-absolute40' : 'tip-bottom-absolute')">
241
+ <span v-html="model.bottomTip"></span>
242
+ </div>
243
+ <div ref="buttonsRef" v-if="model && !loading && model.buttons.length > 0 && model.buttons.findIndex((v) => { return v.show }) > -1"
244
+ :class="{'ccai button-absolute':isScroll, 'button-absolute':!isScroll, 'domDisabled': model.pageDisabled}"
245
+ :style="{'max-width': pageWidth ? (pageWidth - 20) + 'px' : (showViewerFile ? leftContainerWidth + 'px' :'100%'),'right': showViewerFile ? 'auto' : '0px'}">
246
+ <el-col :span="24" style="display: flex;align-items: center;justify-content: center;height: 40px ;padding-bottom: 1px;padding-left: 5px;padding-right: 5px;" class="btnPadBom">
247
+ <component v-for="(btn, index) in model.buttons" :key="index" :is="btn.is" :vmodel="btn"
248
+ @click="clickHandler" v-if="btn.show" :style="{ 'float': btn.isCheckbox ? btn.alignCss : '' }">
249
+ </component>
250
+ </el-col>
251
+ </div>
252
+ </div>
253
+ <div v-if="showViewerFile" :style="{flex: ' 0 0 ' + 650 + 'px', 'align-self': 'flex-start', position: 'sticky', top: '0', 'box-shadow': '-10px 0 5px -9px rgba(0, 0, 0, 0.3)' }">
254
+ <div :style="{height: dialogHeight + 'px', overflow: 'hidden', 'border-bottom-right-radius': '4px' }">
255
+ <viewer-file :MediaAlbum="media.MediaAlbum" :groupIndex="media.groupIndex" :index="media.index"
256
+ :key="media.random" :flagLeft="media.flagLeft" @closeViewerFile="ViewerFileToggle(false)"
257
+ @ViewerFilechangeIndex="ViewerFilechangeIndex">
258
+ </viewer-file>
259
+ </div>
273
260
  </div>
274
-
275
261
  <div style="min-height:200px" v-if="loading"></div>
276
262
  <iframe :src="downloadUrl" style="height:0px;width:0px;border-width: 0px;display: none;"> </iframe>
277
263
  </div>
@@ -280,7 +266,6 @@
280
266
  import dynamicElement from '../../mixins/dynamicElement'
281
267
  import dynamicFormListTalbe from './dynamicFormListTable'
282
268
  import dynamicViewerFile from '../../dynamicViewerFile/src/dynamicViewerFile.vue'
283
-
284
269
  import { setTimeout } from 'timers';
285
270
  export default {
286
271
  name: 'ct-form',
@@ -376,6 +361,7 @@ export default {
376
361
  this.setCss();
377
362
  this.$nextTick(() => {
378
363
  this.tipWidth = this.$el.clientWidth;
364
+ this.updateLeftWidth();
379
365
  })
380
366
  },
381
367
  updated() {
@@ -422,10 +408,12 @@ export default {
422
408
  this.$nextTick(() => {
423
409
  if (this.$el) {
424
410
  let parentDom = this.$el.parentElement;
425
- if (parentDom && parentDom.scrollHeight > parentDom.clientHeight
426
- && this.model && (!this.model.isHorizontalLayout || this.flagScroll)) {
411
+ if (parentDom && parentDom.scrollHeight > parentDom.clientHeight && this.model ) {
427
412
  this.isScroll = true;
428
413
  }
414
+ else{
415
+ this.isScroll = false;
416
+ }
429
417
  }
430
418
  });
431
419
  },
@@ -814,7 +802,7 @@ export default {
814
802
  }
815
803
  self.$emit('submit', { formData: self.model, responseData: data });
816
804
  }
817
- if (self.parentModel) {
805
+ if (self.parentModel && self.parentModel.$vue && self.parentModel.$vue.closeTabThen) {
818
806
  self.parentModel.$vue.closeTabThen(data);
819
807
  }
820
808
  }
@@ -1722,8 +1710,6 @@ export default {
1722
1710
  }
1723
1711
  },
1724
1712
  tabClickHandler() {
1725
- this.$nextTick(() => {
1726
- });
1727
1713
  },
1728
1714
  refreshPage() {
1729
1715
  this.$nextTick(() => {
@@ -1192,9 +1192,9 @@ export default {
1192
1192
  submitData.columnGroupId=columnGroupId;
1193
1193
  }
1194
1194
 
1195
- this.routerClickHandler(field, submitData, action);
1195
+ this.routerClickHandler(field, submitData, action, rowindex);
1196
1196
  },
1197
- routerClickHandler(field, submitData, action) {
1197
+ routerClickHandler(field, submitData, action, rowindex) {
1198
1198
  let self = this;
1199
1199
  action = action || field.action;
1200
1200
  var clickAcion = function () {
@@ -1710,6 +1710,9 @@ export default {
1710
1710
  }
1711
1711
  else {
1712
1712
  self.operationLoading = true;
1713
+ if(rowindex!=undefined && rowindex!=null && self.$refs["router"+ field.id + rowindex] && self.$refs["router"+ field.id + rowindex][0]){
1714
+ self.$refs["router"+ field.id + rowindex][0].disabled=true;
1715
+ }
1713
1716
  field.doAction(submitData, (data) => {
1714
1717
  self.operationLoading = false;
1715
1718
  if (field.isCallTel) {
@@ -1753,6 +1756,9 @@ export default {
1753
1756
  }
1754
1757
 
1755
1758
  }
1759
+ if(rowindex!=undefined && rowindex!=null && self.$refs["router"+ field.id + rowindex] && self.$refs["router"+ field.id + rowindex][0]){
1760
+ self.$refs["router"+ field.id + rowindex][0].disabled=false;
1761
+ }
1756
1762
  });
1757
1763
  }
1758
1764
  }
@@ -90,7 +90,10 @@ const Dtd = function (source, dateType) {
90
90
  },
91
91
  //'value-format': 'yyyy-MM-dd',
92
92
  align: 'left'
93
- }
93
+ },
94
+ get selectItems1() {
95
+ return source.selectItems1;
96
+ },
94
97
  };
95
98
  rtn = base.copy(Base(data), rtn);
96
99
  rtn = base.copy(rtn, valid.Init(rtn));
@@ -694,7 +694,7 @@ const SearchTable = function (data, callBack, searchModel, flagSearch, defaultSe
694
694
  rtn.dataDictionary[row[rtn.primaryKey]][vkey] = row[vkey];
695
695
  }
696
696
  for (var vkey in rtn.dataDictionary[row[rtn.primaryKey]]) {
697
- rtn.dataDictionary[row[rtn.primaryKey]][vkey] = row[vkey] || '';
697
+ rtn.dataDictionary[row[rtn.primaryKey]][vkey] = row[vkey]!=undefined && row[vkey]!=null ? row[vkey] : '' ;
698
698
  }
699
699
  });
700
700
  if (rtn.cellLayout) {
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <div :class="isOperationalColumn?'subdiv_allinline':''" v-if="isShowLabel" @click="isOperationalColumn?clickHandler($event):null">
2
+ <div :class="{'subdiv_allinline':isOperationalColumn, 'domDisabled': disabled}" v-if="isShowLabel" @click="isOperationalColumn?clickHandler($event):null">
3
3
  <div v-if="isShowVoice" style="line-height: 16px;padding-top: 3px;">
4
4
  <video ref="video" v-if="rowData[router.submitFormField] && (!router.rightField || rowData[router.rightField] == 1)"
5
5
  :src="rowData[router.submitFormField]" controls="true" controlslist="nodownload"
@@ -88,6 +88,7 @@
88
88
  data() {
89
89
  return {
90
90
  visible:false,
91
+ disabled:false,
91
92
  listenSeconds:-1,
92
93
  option: {
93
94
  isHidden: true,//是否开启操作栏隐藏设置,默认开启