askbot-dragon 0.7.92 → 0.7.95

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.
@@ -6,31 +6,32 @@
6
6
  </div>
7
7
  <div class="title-link"></div>
8
8
  <div class="pcFormClass" v-if="isCompany">
9
- <div v-for="(item) in formShow.form.formFieldRelation"
10
- :key="item.formField.id"
11
- :class="{notClick:disableds === true}"
12
- >
13
- <div v-if="item.formField.type!=='CHAT_RECORD'&&item.formField.type!=='CHANNEL'&&item.display&&item.fieldId!=='workorder_name'" class="field-item">
14
- <div v-if="item.display&&item.fieldId!=='workorder_name'&&item.formField.type!=='EXPLANATION'&&item.formField.type!=='EXPLAIN'" class="field-item-name">
9
+ <div v-for="(item) in formFieldRelation"
10
+ :key="item.fieldId"
11
+ :class="{notClick:disableds === true}"
12
+ >
13
+ <div class="field-item">
14
+ <div v-if="item.fieldId !== 'workorder_name' && item.formField.type !== 'EXPLANATION' && item.formField.type !== 'EXPLAIN' " class="field-item-name">
15
15
  <span v-if="item.fieldId!=='workorder_description'&&item.fieldId!=='workorder_clientId'">{{item.formField.name}}</span>
16
16
  <span v-if="item.fieldId==='workorder_description'">问题描述</span>
17
17
  <span v-if="item.fieldId==='workorder_clientId'">报单人</span>
18
- <span style="color: red;padding-left: 5px" v-if="item.required===true">*</span>
18
+ <span style="color: red;padding-left: 5px" v-if="item.required || isRequiredFn(item.formField)">*</span>
19
19
  </div>
20
- <el-input v-model=item.value
20
+ <!-- item.value -->
21
+ <el-input v-model="item.value"
21
22
  :placeholder="item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请输入'"
22
23
  :maxlength="item.formField.extInfo&&item.formField.extInfo.maxNum?item.formField.extInfo.maxNum*1:1000"
23
24
  v-if="item.formField.type==='INPUT'&&item.fieldId!=='workorder_name'"
24
25
  ></el-input>
25
- <div v-if="item.formField.type==='EXPLANATION'">
26
+ <template v-else-if="item.formField.type==='EXPLANATION'">
26
27
  <div class="explanation">
27
28
  <p class="explanation-p">
28
29
  <span class="el-icon-info"></span>
29
30
  {{item.formField.extInfo.descriptionText}}
30
31
  </p>
31
32
  </div>
32
- </div>
33
- <div v-if="item.formField.type==='EXPLAIN'">
33
+ </template>
34
+ <template v-else-if="item.formField.type==='EXPLAIN'">
34
35
  <div class="explanation">
35
36
  <p class="explanation-p">
36
37
  <span class="el-icon-info"></span>
@@ -38,31 +39,31 @@
38
39
  <span v-else>{{item.value}}</span>
39
40
  </p>
40
41
  </div>
41
- </div>
42
- <el-input type="textarea" :rows="2" v-model=item.value
42
+ </template>
43
+ <el-input type="textarea" :rows="2" v-model="item.value"
43
44
  :placeholder="item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请输入'"
44
45
  :maxlength="item.formField.extInfo&&item.formField.extInfo.maxNum?item.formField.extInfo.maxNum*1:1000"
45
- v-if="item.formField.type==='TEXTAREA'&& item.display&&item.fieldId!=='workorder_description'"
46
+ v-if="item.formField.type==='TEXTAREA'&& item.fieldId!=='workorder_description'"
46
47
  ></el-input>
47
48
  <ckeditor
48
49
  :editor="ckeditor.editor"
49
50
  v-model="item.value"
50
51
  :config="ckeditor.editorConfig"
51
- v-else-if="item.display&&item.fieldId==='workorder_description'"
52
+ v-else-if="item.fieldId==='workorder_description'"
52
53
  ></ckeditor>
53
54
  <el-date-picker
54
55
  v-model=item.value
55
56
  type="date"
56
57
  :placeholder="item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请选择日期'"
57
58
  style="width: 100%"
58
- v-if="item.formField.type==='DATE_PICKER'"
59
+ v-else-if="item.formField.type==='DATE_PICKER'"
59
60
  >
60
61
  </el-date-picker>
61
62
  <el-time-picker
62
63
  v-model=item.value
63
64
  :placeholder="item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请选择时间'"
64
65
  style="width: 100%"
65
- v-if="item.formField.type==='TIME_PICKER' && !item.formField.extInfo.mold"
66
+ v-else-if="item.formField.type==='TIME_PICKER' && (!item.formField.extInfo.mold || item.formField.extInfo.mold == 'TIME' || getMoldTime(item.formField) == 'TIME')"
66
67
  >
67
68
  </el-time-picker>
68
69
  <el-date-picker
@@ -70,7 +71,7 @@
70
71
  type="date"
71
72
  style="width: 100%"
72
73
  :placeholder="item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请选择日期'"
73
- v-if="item.formField.type==='TIME_PICKER' &&item.formField.extInfo.mold==='DATA'"
74
+ v-else-if="item.formField.type==='TIME_PICKER' && (item.formField.extInfo.mold==='DATA' || item.formField.extInfo.mold==='DATE' || getMoldTime(item.formField) == 'DATE')"
74
75
  >
75
76
  </el-date-picker>
76
77
  <el-date-picker
@@ -79,20 +80,20 @@
79
80
  clearable
80
81
  style="width: 100%"
81
82
  type="datetime"
82
- v-if="item.formField.type==='TIME_PICKER' &&item.formField.extInfo.mold==='DATA_TIME'"
83
+ v-else-if="item.formField.type==='TIME_PICKER' && (item.formField.extInfo.mold==='DATA_TIME' || item.formField.extInfo.mold==='DATE_TIME' || getMoldTime(item.formField) == 'DATE_TIME')"
83
84
  >
84
85
  </el-date-picker>
85
- <div v-if="item.formField.type==='RADIO' &&item.formField.extInfo.options">
86
+ <div v-else-if="item.formField.type==='RADIO' &&item.formField.extInfo.options">
86
87
  <el-radio-group v-model=item.value style="text-align:left">
87
88
  <el-radio v-for="(items,index) in item.formField.extInfo.options" :label=items.value :key="index">{{items.label}}</el-radio>
88
89
  </el-radio-group>
89
90
  </div>
90
- <div v-if="item.formField.type==='RADIO' &&item.formField.extInfo.option">
91
+ <div v-else-if="item.formField.type==='RADIO' &&item.formField.extInfo.option">
91
92
  <el-radio-group v-model=item.value style="text-align:left">
92
93
  <el-radio v-for="(items,index) in item.formField.extInfo.option" :label=items.value :key="index">{{items.label}}</el-radio>
93
94
  </el-radio-group>
94
95
  </div>
95
- <div v-if="item.formField.type==='CHECKBOX' && item.formField.extInfo.option">
96
+ <div v-else-if="item.formField.type==='CHECKBOX' && item.formField.extInfo.option">
96
97
  <el-checkbox-group v-model=item.value style="text-align:left">
97
98
  <el-checkbox
98
99
  v-for="(items,index) in item.formField.extInfo.option"
@@ -101,7 +102,7 @@
101
102
  >{{items.label}}</el-checkbox>
102
103
  </el-checkbox-group>
103
104
  </div>
104
- <div v-if="item.formField.type==='CHECKBOX' && item.formField.extInfo.options">
105
+ <div v-else-if="item.formField.type==='CHECKBOX' && item.formField.extInfo.options">
105
106
  <el-checkbox-group v-model=item.value style="text-align:left">
106
107
  <el-checkbox
107
108
  v-for="(items,index) in item.formField.extInfo.options"
@@ -110,87 +111,127 @@
110
111
  >{{items.label}}</el-checkbox>
111
112
  </el-checkbox-group>
112
113
  </div>
113
- <div v-if="item.formField.type==='SELECT' || item.formField.type==='OPTION'" >
114
- <el-select
115
- v-model=item.value
116
- :placeholder="item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请选择'"
117
- style="width: 100%"
118
- filterable
119
- v-if="item.formField.extInfo && item.formField.extInfo.option"
120
- >
121
- <el-option
122
- v-for="(items,index) in item.formField.extInfo.option"
123
- :key="index"
124
- :label="items.label"
125
- :value="items.value">
126
- </el-option>
127
- </el-select>
114
+ <div v-else-if="item.formField.type==='SELECT' || item.formField.type==='OPTION'" >
128
115
  <el-select
129
- v-model=item.value
130
- :placeholder="item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请选择'"
131
- style="width: 100%"
132
- filterable
133
- v-else-if="item.formField.extInfo && item.formField.extInfo.options"
116
+ v-model=item.value
117
+ :placeholder="item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请选择'"
118
+ style="width: 100%"
119
+ filterable
120
+ v-if="item.fieldId==='workorder_clientId' || item.fieldId === 'workorder_statusId' || item.fieldId === 'workorder_priority'"
134
121
  >
135
122
  <el-option
136
- v-for="(items,index) in item.formField.extInfo.options"
137
- :key="index"
138
- :label="items.label"
139
- :value="items.value">
123
+ v-for="(items,index) in item.formField.extInfo.option?item.formField.extInfo.option:item.formField.extInfo.options"
124
+ :key="index"
125
+ :label="items.label"
126
+ :value="items.value">
140
127
  </el-option>
141
128
  </el-select>
129
+ <div class="cascader-input" v-else @click="openDrawer(item,'select')">
130
+ <template v-if="item.value && (!Array.isArray(item.value) || (Array.isArray(item.value) && item.value.length))">
131
+ <template v-if="Array.isArray(item.value)">
132
+ <span v-for="(select,selectIndex) in item.value" :key="selectIndex">
133
+ {{selectIndex==0?select:','+select}}
134
+ </span>
135
+ </template>
136
+ <template v-else>{{item.value}}</template>
137
+ </template>
138
+ <span v-else>{{item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请选择'}}</span>
139
+ </div>
142
140
  </div>
143
- <div v-if="item.formField.type==='CASCADER'">
144
- <el-cascader
141
+ <template v-else-if="item.formField.type==='CASCADER'">
142
+ <div class="cascader-input" @click="openDrawer(item,'pc_cascader')">
143
+ <template v-if="extInfoFieldValue[item.fieldId] && (Array.isArray(extInfoFieldValue[item.fieldId]) && extInfoFieldValue[item.fieldId].length > 0)">
144
+ <span v-for="(cas,casIndex) in extInfoFieldValue[item.fieldId]" :key="casIndex">
145
+ {{casIndex==0?cas.label:'/'+cas.label}}
146
+ </span>
147
+ </template>
148
+ <span v-else>{{item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请选择'}}</span>
149
+ </div>
150
+ <!-- <el-cascader
145
151
  v-model=item.value
146
152
  :options=item.formField.extInfo.cascade
147
153
  style="width: 100%;"
148
154
  :placeholder="item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请选择'"
149
155
  v-if="item.formField.extInfo.cascade"
156
+ ></el-cascader>
157
+ <el-cascader
158
+ v-model=item.value
159
+ :options="item.formField.extInfo.cascadeDown.options"
160
+ style="width: 100%;"
161
+ :placeholder="item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请选择时间'"
162
+ v-else-if="Object.prototype.toString.call(item.formField.extInfo.cascadeDown) === '[object Object]'"
150
163
  ></el-cascader>
151
164
  <el-cascader
152
165
  v-model=item.value
153
166
  :options=setOptions(item.formField.extInfo)
154
167
  style="width: 100%;"
155
168
  :placeholder="item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请选择'"
156
- v-else-if="item.formField.extInfo.cascadeDown"
157
- ></el-cascader>
158
- </div>
159
- <div v-if="item.formField.type==='FILE'">
160
- <div @click="checkUpload(item.fieldId,item.formField.extInfo.limitNum)" @mouseover="checkUpload(item.fieldId,item.formField.extInfo.limitNum)" style="flex: 0.75;display:flex;align-items: center;">
169
+ v-else-if="item.formField.extInfo.cascadeDown.length != 0"
170
+ ></el-cascader>-->
171
+ </template>
172
+ <div v-else-if="item.formField.type==='FILE' || item.formField.type === 'IMAGE' || item.formField.type === 'ATTACHMENT' || item.formField.type === 'VIDEO'">
173
+ <div @click="checkUpload(item.fieldId,item.formField.extInfo)" @mouseover="checkUpload(item.fieldId,item.formField.extInfo)" style="flex: 0.75;display:flex;align-items: center;">
161
174
  <el-upload
162
175
  class="upload-demo"
163
176
  ref="upload"
164
- list-type="picture-card"
165
- accept="image/*"
177
+ :list-type="item.formField.type === 'IMAGE'?'picture-card':''"
178
+ :accept="acceptFieldType(item.formField.type)"
166
179
  name="file"
167
180
  action="/open/media/file/upload"
168
181
  :multiple="item.formField.extInfo&&item.formField.extInfo.limitNum&&item.formField.extInfo.limitNum>1?true:false"
169
- :file-list="fileListList[item.fieldId]"
170
- :limit=item.formField.extInfo.limitNum?Number(item.formField.extInfo.limitNum):1
171
- :before-upload="beforeAvatarUpload"
182
+ :file-list="extInfoFieldValue[item.fieldId]"
183
+ :limit="item.formField.extInfo.limitNum?Number(item.formField.extInfo.limitNum):(item.formField.extInfo.limit ? Number(item.formField.extInfo.limit) : 1)"
184
+ :before-upload="(file=>{return beforeAvatarUpload(file,item.formField.type)})"
172
185
  :on-exceed="exceedUpload"
173
186
  :on-remove="handleRemove"
174
187
  :http-request="aliyunOssRequest"
175
188
  :on-change="handleEditChange"
176
189
  :on-success="successUpload"
177
190
  >
178
- <i class="el-icon-plus"></i>
191
+ <i class="el-icon-plus"></i>
192
+ <!-- <el-button size="small" type="primary" v-else class="uploadBtn">点击上传</el-button>-->
179
193
  </el-upload>
180
194
  </div>
181
195
  </div>
196
+ <div v-else-if="item.formField.type == 'REF_TEMPLATE' || item.formField.type == 'REF'">
197
+ <el-select
198
+ v-model=item.value
199
+ :placeholder="item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请选择'"
200
+ style="width: 100%"
201
+ filterable
202
+ :multiple="item.formField.extInfo && item.formField.extInfo.selectType == '多选'"
203
+ @visible-change="(visible) =>{ return refTemplateVisibleChange(visible,item) }"
204
+ collapse-tags
205
+ @change="changeRefData($event,item)"
206
+ >
207
+ <template v-for="(items,index) in refTemplateList[item.fieldId]">
208
+ <el-option
209
+ v-if="refTemplateList[item.fieldId]"
210
+ :key="index"
211
+ :label="items.name"
212
+ :value="items.id">
213
+ </el-option>
214
+ </template>
215
+ <div
216
+ @click="lodeMore(item)"
217
+ v-if="dataQuery[item.fieldId] && dataQuery[item.fieldId].hasNextPage"
218
+ style="width:100%;height:30px;display:flex;align-items: center;justify-content: center;color:#606266">
219
+ 加载更多
220
+ </div>
221
+ </el-select>
222
+ </div>
182
223
  </div>
183
224
  </div>
184
225
  </div>
185
226
  <div class="mobileFormClass" v-else style="padding: 10px 0;" :class="{notClick:disableds === true}">
186
- <div v-for="(item,index) in formFieldRelation"
187
- :key="item.formField.id"
227
+ <div v-for="(item) in formFieldRelation"
228
+ :key="item.fieldId"
188
229
  class="form-field-item"
189
- >
230
+ >
190
231
  <div v-if="item.formField.type==='INPUT'" class="form-field-item-value">
191
232
  <van-field v-model=item.value
192
233
  :label=item.formField.name
193
- :required="item.required===true"
234
+ :required="item.required || isRequiredFn(item.formField)"
194
235
  :disabled="disableds"
195
236
  :placeholder="item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请输入'"
196
237
  :maxlength="item.formField.extInfo&&item.formField.extInfo.maxNum?item.formField.extInfo.maxNum*1:1000"
@@ -212,7 +253,7 @@
212
253
  <div v-else-if="item.formField.type==='TEXTAREA'" class="form-field-item-value">
213
254
  <van-field v-model=item.value
214
255
  :label=item.formField.name
215
- :required="item.required===true"
256
+ :required="item.required || isRequiredFn(item.formField)"
216
257
  type="textarea"
217
258
  :disabled="disableds"
218
259
  :placeholder="item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请输入'"
@@ -220,8 +261,8 @@
220
261
  v-if="item.fieldId!=='workorder_description'"
221
262
  />
222
263
  <div v-if="item.fieldId==='workorder_description'" class="workorder_description">
223
- <div class="field-name" :class="item.required?'required-name':''">
224
- <span v-if="item.required" style="color: red">*</span>
264
+ <div class="field-name" :class="item.required || isRequiredFn(item.formField)?'required-name':''">
265
+ <span v-if="item.required || isRequiredFn(item.formField)" style="color: red">*</span>
225
266
  {{item.formField.name}}
226
267
  </div>
227
268
  <ckeditor
@@ -240,67 +281,93 @@
240
281
  :value=dateValue[item.fieldId]
241
282
  :label=item.formField.name
242
283
  :placeholder="item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请选择日期'"
243
- :required="item.required===true"
284
+ :required="item.required || isRequiredFn(item.formField)"
244
285
  @click="dateClick(item.fieldId)"
245
286
  :disabled="disableds"
246
287
  right-icon="van-icon van-icon-arrow van-cell__right-icon"
247
288
  />
248
289
  <van-calendar
249
290
  v-model="showCalendar"
250
- @confirm="onConfirmCalendar($event,dateId)"
291
+ @confirm="onConfirmCalendar($event,item)"
251
292
  />
252
293
  </div>
253
- <div v-else-if="item.formField.type==='TIME_PICKER'&&(!item.formField.extInfo.mold||item.formField.extInfo.mold==='DATA_TIME')" class="form-field-item-value">
294
+ <div v-else-if="item.formField.type==='TIME_PICKER'&&(!item.formField.extInfo.mold||item.formField.extInfo.mold==='DATA_TIME' || item.formField.extInfo.mold==='DATE_TIME' || getMoldTime(item.formField) == 'DATE_TIME')" class="form-field-item-value">
254
295
  <van-field
255
296
  readonly
256
297
  clickable
257
298
  name="datetimePicker"
258
- :required="item.required===true"
259
- :value=timeValue[item.fieldId]
299
+ :required="item.required || isRequiredFn(item.formField)"
300
+ :value=extInfoFieldValue[item.fieldId]
260
301
  :label=item.formField.name
261
- :placeholder="item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请选择时间'"
262
- @click="timeClick(item.fieldId,item)"
302
+ :placeholder="item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请选择'"
303
+ @click="timeClick(item.fieldId,item,'DATE_TIME')"
263
304
  :disabled="disableds"
264
305
  right-icon="van-icon van-icon-arrow van-cell__right-icon"
265
306
 
266
307
  />
267
- <van-popup v-model="showTimePicker" position="bottom">
308
+ <van-popup v-model="dateTimePicker" position="bottom">
268
309
  <van-datetime-picker
269
310
  v-model="currentDate"
270
311
  type="datetime"
271
- @confirm="onConfirm($event,timeId,item)"
272
- @cancel="showTimePicker = false"
312
+ @confirm="onConfirm($event,item.fieldId,item,'DATE_TIME')"
313
+ @cancel="dateTimePicker = false"
273
314
  :min-date="minDate"
274
315
  :formatter="formatter"
275
316
  :max-date="maxDate"
276
317
  />
277
318
  </van-popup>
278
319
  </div>
279
- <div v-else-if="item.formField.type==='TIME_PICKER'&&item.formField.extInfo.mold==='DATA'" class="form-field-item-value">
320
+ <div v-else-if="item.formField.type==='TIME_PICKER'&&(!item.formField.extInfo.mold || item.formField.extInfo.mold==='TIME' || getMoldTime(item.formField) == 'TIME')" class="form-field-item-value">
321
+ <van-field
322
+ readonly
323
+ clickable
324
+ name="datetimePicker"
325
+ :required="item.required || isRequiredFn(item.formField)"
326
+ :value=extInfoFieldValue[item.fieldId]
327
+ :label=item.formField.name
328
+ :placeholder="item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请选择'"
329
+ @click="timeClick(item.fieldId,item,'TIME')"
330
+ :disabled="disableds"
331
+ right-icon="van-icon van-icon-arrow van-cell__right-icon"
332
+
333
+ />
334
+ <van-popup v-model="timePicker" position="bottom">
335
+ <van-datetime-picker
336
+ v-model="currentTime"
337
+ type="time"
338
+ title="选择时间"
339
+ :min-hour="0"
340
+ :max-hour="23"
341
+ @confirm="onConfirm($event,item.fieldId,item,'TIME')"
342
+ @cancel="timePicker = false"
343
+ />
344
+ </van-popup>
345
+ </div>
346
+ <div v-else-if="item.formField.type==='TIME_PICKER'&&(item.formField.extInfo.mold==='DATA' || item.formField.extInfo.mold==='DATE' || getMoldTime(item.formField) == 'DATE')" class="form-field-item-value">
280
347
  <van-field
281
348
  readonly
282
349
  clickable
283
350
  name="datetimePicker"
284
- :required="item.required===true"
285
- :value=timeValue[item.fieldId]
351
+ :required="item.required || isRequiredFn(item.formField)"
352
+ :value=extInfoFieldValue[item.fieldId]
286
353
  :label=item.formField.name
287
- :placeholder="item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请选择日期'"
288
- @click="timeClick(item.fieldId,item)"
354
+ :placeholder="item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请选择'"
355
+ @click="timeClick(item.fieldId,item,'DATE')"
289
356
  :disabled="disableds"
290
357
  right-icon="van-icon van-icon-arrow van-cell__right-icon"
291
358
 
292
359
  />
293
- <van-calendar v-model="showTimePickerd" :show-confirm="false" @confirm="onConfirm($event,timeId,item)" @cancel="showTimePickerd = false"/>
360
+ <van-calendar v-model="datePicker" :show-confirm="false" @confirm="onConfirm($event,item.fieldId,item,'DATE')" @cancel="datePicker = false"/>
294
361
  </div>
295
362
  <div v-else-if="item.formField.type==='RADIO'" class="form-field-item-other">
296
- <van-field name="radio" :label="item.formField.name" :required="item.required===true" :disabled="disableds" v-if="item.formField.extInfo.option">
363
+ <van-field name="radio" :label="item.formField.name" :required="item.required || isRequiredFn(item.formField)" :disabled="disableds" v-if="item.formField.extInfo.option">
297
364
  <template #input style="display: flex;align-items: center">
298
365
  <van-radio-group v-model=item.value direction="horizontal" :disabled="disableds">
299
366
  <van-radio v-for="(items,index) in item.formField.extInfo.option" :name=items.value :key="index">{{items.label}}</van-radio>
300
367
  </van-radio-group>
301
368
  </template>
302
369
  </van-field>
303
- <van-field name="radio" :label="item.formField.name" :required="item.required===true" :disabled="disableds" v-if="item.formField.extInfo.options">
370
+ <van-field name="radio" :label="item.formField.name" :required="item.required || isRequiredFn(item.formField)" :disabled="disableds" v-if="item.formField.extInfo.options">
304
371
  <template #input style="display: flex;align-items: center" >
305
372
  <van-radio-group v-model=item.value direction="horizontal" :disabled="disableds">
306
373
  <van-radio v-for="(items,index) in item.formField.extInfo.options" :name=items.value :key="index">{{items.label}}</van-radio>
@@ -309,7 +376,7 @@
309
376
  </van-field>
310
377
  </div>
311
378
  <div v-else-if="item.formField.type==='CHECKBOX'" class="form-field-item-other">
312
- <van-field name="checkbox" :label=item.formField.name :required="item.required===true" :disabled="disableds" v-if="item.formField.extInfo.option">
379
+ <van-field name="checkbox" :label=item.formField.name :required="item.required || isRequiredFn(item.formField)" :disabled="disableds" v-if="item.formField.extInfo.option">
313
380
  <template #input style="display: flex;align-items: center" >
314
381
  <van-checkbox-group v-model=item.value ref="checkboxGroup" direction="horizontal" :disabled="disableds">
315
382
  <van-checkbox
@@ -322,7 +389,7 @@
322
389
  </van-checkbox-group>
323
390
  </template>
324
391
  </van-field>
325
- <van-field name="checkbox" :label=item.formField.name :required="item.required===true" :disabled="disableds" v-if="item.formField.extInfo.options">
392
+ <van-field name="checkbox" :label=item.formField.name :required="item.required || isRequiredFn(item.formField)" :disabled="disableds" v-if="item.formField.extInfo.options">
326
393
  <template #input style="display: flex;align-items: center" >
327
394
  <van-checkbox-group v-model=item.value ref="checkboxGroup" direction="horizontal" :disabled="disableds">
328
395
  <van-checkbox
@@ -337,86 +404,127 @@
337
404
  </van-field>
338
405
  </div>
339
406
  <div v-else-if="item.formField.type==='SELECT' || item.formField.type==='OPTION'" class="form-field-item-value">
340
- <van-field
407
+ <template v-if="item.fieldId==='workorder_clientId' || item.fieldId === 'workorder_statusId' || item.fieldId === 'workorder_priority'">
408
+ <van-field
409
+ readonly
410
+ clickable
411
+ name="picker"
412
+ :value=selectValues[item.fieldId]
413
+ :label="item.fieldId==='workorder_clientId'?'报单人':item.formField.name"
414
+ :placeholder="item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请选择'"
415
+ @click="selectClick(item.fieldId,'client',item)"
416
+ :required="item.required || isRequiredFn(item.formField)"
417
+ :disabled="disableds"
418
+ @click-right-icon.stop="SelectClear(item.fieldId)"
419
+ :right-icon="selectValues[item.fieldId]? 'close' : 'van-icon van-icon-arrow van-cell__right-icon'"
420
+ />
421
+ <van-popup v-model="showPicker" position="bottom">
422
+ <van-picker
423
+ show-toolbar
424
+ :columns=selectValue
425
+ @confirm="onConfirmSelect($event,item)"
426
+ @cancel="showPicker = false"
427
+ :key="selectKey"
428
+
429
+ />
430
+ </van-popup>
431
+ </template>
432
+ <template v-else>
433
+ <van-field
434
+ readonly
435
+ clickable
436
+ name="picker"
437
+ :value="Array.isArray(item.value)?item.value.join(','):item.value"
438
+ :label=item.formField.name
439
+ :placeholder="item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请选择'"
440
+ @click="selectClick(item.fieldId,'select',item)"
441
+ :required="item.required || isRequiredFn(item.formField)"
442
+ :disabled="disableds"
443
+ @click-right-icon.stop="SelectClear(item.fieldId)"
444
+ :right-icon="item.value || (Array.isArray(item.value) && item.value.length > 0)? 'close' : 'van-icon van-icon-arrow van-cell__right-icon'"
445
+ />
446
+ <van-popup v-model="selectPicker" position="bottom" :style="{ height: '300px' }">
447
+ <select-popup
448
+ :options="item.formField.extInfo.option?item.formField.extInfo.option:item.formField.extInfo.options"
449
+ :defaultValue="defaultValue"
450
+ @onConfim="confirmSelect"
451
+ @onclose= "selectPicker = false"
452
+ :multiple="item.formField.extInfo && item.formField.extInfo.selectType ==='多选'?true:false"
453
+ ref="selectPopup"
454
+ :props="{
455
+ value:'value',
456
+ label:'label'
457
+ }"
458
+ ></select-popup>
459
+ </van-popup>
460
+ </template>
461
+ </div>
462
+ <div v-if="item.formField.type === 'REF_TEMPLATE' || item.formField.type === 'REF'" class="form-field-item-value">
463
+ <van-field
341
464
  readonly
342
465
  clickable
466
+ :value="Array.isArray(extInfoFieldValue[item.fieldId])?extInfoFieldValue[item.fieldId].join(','):extInfoFieldValue[item.fieldId]"
467
+ :label="item.formField.name"
343
468
  name="picker"
344
- :value=selectValues[item.fieldId]
345
- :label=item.formField.name
346
469
  :placeholder="item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请选择'"
347
- @click="selectClick(item.fieldId)"
348
- :required="item.required===true"
349
- :disabled="disableds"
470
+ @click="selectClick(item.fieldId,'ref',item)"
350
471
  @click-right-icon.stop="SelectClear(item.fieldId)"
351
- v-if="item.fieldId!=='workorder_clientId'"
352
- :right-icon="selectValues[item.fieldId]? 'close' : 'van-icon van-icon-arrow van-cell__right-icon'"
353
- />
354
- <van-field
355
- readonly
356
- clickable
357
- name="picker"
358
- :value=selectValues[item.fieldId]
359
- label='报单人'
360
- :placeholder="item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请选择'"
361
- @click="selectClick(item.fieldId)"
362
- :required="item.required===true"
472
+ :required="item.required || isRequiredFn(item.formField)"
363
473
  :disabled="disableds"
364
- @click-right-icon.stop="SelectClear(item.fieldId)"
365
- v-if="item.fieldId==='workorder_clientId'"
366
- :right-icon="selectValues[item.fieldId]? 'close' : 'van-icon van-icon-arrow van-cell__right-icon'"
367
- />
368
- <van-popup v-model="showPicker" position="bottom">
369
- <van-picker
370
- show-toolbar
371
- :columns=selectValue
372
- @confirm="onConfirmSelect($event,selectId)"
373
- @cancel="showPicker = false"
374
- :key="selectKey"
375
-
474
+ :right-icon="extInfoFieldValue[item.fieldId]? 'close' : 'van-icon van-icon-arrow van-cell__right-icon'"
376
475
  />
377
- </van-popup>
378
- </div>
476
+ <van-popup v-model="refShowPicker" position="bottom" :style="{ height: '300px' }">
477
+ <select-popup
478
+ :options="refTemplateList[selectDetail.fieldId]"
479
+ :defaultValue="refDefaultValue[selectDetail.fieldId]"
480
+ @onConfim="confirmRefSelect"
481
+ @onclose= "refShowPicker = false"
482
+ :multiple="selectDetail.formField && selectDetail.formField.extInfo && selectDetail.formField.extInfo.selectType ==='多选'?true:false"
483
+ ref="selectPopup"
484
+ :props="{
485
+ value:'id',
486
+ label:'name'
487
+ }"
488
+ >
489
+ </select-popup>
490
+ </van-popup>
491
+ </div>
379
492
  <div v-else-if="item.formField.type==='CASCADER'" class="form-field-item-value">
380
493
  <van-field
381
494
  readonly
382
495
  clickable
383
496
  name="area"
384
- :value=cascadeValue[item.fieldId]
497
+ :value="extInfoFieldValue[item.fieldId] && Array.isArray(extInfoFieldValue[item.fieldId])?extInfoFieldValue[item.fieldId].map(e=>e.label).join(','):''"
385
498
  :label=item.formField.name
386
499
  :placeholder="item.formField.extInfo&&item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:'请选择'"
387
- @click="pickerClick(item.fieldId)"
388
- :required="item.required===true"
500
+ @click="openDrawer(item,'cascader')"
501
+ :required="item.required || isRequiredFn(item.formField)"
389
502
  :disabled="disableds"
390
503
  right-icon="van-icon van-icon-arrow van-cell__right-icon"
391
504
  />
392
505
 
393
- <van-popup v-model="showArea" position="bottom">
394
- <van-picker v-if="pageShow"
395
- show-toolbar
396
- :columns="column"
397
- @cancel="onCancel"
398
- @confirm="onConfirms($event,pickerId,index)"
399
- @change="onChange"
400
- :item-height="45"
401
- :key="keyValue"
402
- />
506
+ <van-popup v-model="showArea" position="bottom" :style="{ height: '400px' }">
507
+ <tree ref="drawerTree"
508
+ :dataOptions="item.formField"
509
+ @saveData="saveData"
510
+ @cancelBtn="showArea = false"
511
+ ></tree>
403
512
  </van-popup>
404
513
  </div>
405
- <div v-else-if="item.formField.type === 'FILE'" class="form-field-item-value">
406
- <div @click="checkUpload(item.fieldId,item.formField.extInfo.limitNum)" class="form-field-item-file">
407
- <div class="fileName"><span style="color: red" v-if="item.required">*</span>{{item.formField.name}}</div>
514
+ <div v-else-if="item.formField.type === 'FILE' || item.formField.type === 'IMAGE' || item.formField.type === 'ATTACHMENT' || item.formField.type === 'VIDEO'" class="form-field-item-value">
515
+ <div @click="checkUpload(item.fieldId,item.formField.extInfo)" class="form-field-item-file">
516
+ <div class="fileName"><span style="color: red" v-if="item.required || isRequiredFn(item.formField)">*</span>{{item.formField.name}}</div>
408
517
  <van-uploader
409
- v-model="fileListList[item.fieldId]"
410
- :before-read="beforeRead"
411
- :max-count='item.formField.extInfo&&item.formField.extInfo.limitNum?item.formField.extInfo.limitNum:1'
518
+ v-model="extInfoFieldValue[item.fieldId]"
519
+ :before-read="(file=>{return beforeRead(file,item.formField.type)})"
520
+ :max-count='item.formField.extInfo&&item.formField.extInfo.limitNum ? item.formField.extInfo.limitNum : (item.formField.extInfo.limit ? item.formField.extInfo.limit : 1)'
412
521
  :after-read="afterRead"
413
- accept="image/*"
522
+ :accept="acceptFieldType(item.formField.type)"
414
523
  :multiple="item.formField.extInfo&&item.formField.extInfo.limitNum&&item.formField.extInfo.limitNum>1?true:false"
415
524
  >
416
525
  <div class="vant-upload--picture-card">
417
526
  <i class="el-icon-plus"></i>
418
527
  </div>
419
-
420
528
  </van-uploader>
421
529
  </div>
422
530
  </div>
@@ -444,18 +552,54 @@
444
552
  <el-dialog :visible.sync="dialogVisible">
445
553
  <img width="100%" :src="dialogImageUrl" alt="">
446
554
  </el-dialog>
447
-
555
+ <el-drawer
556
+ :withHeader="false"
557
+ :visible.sync="drawer"
558
+ size="400px"
559
+ direction="btt">
560
+ <div class="drawer-container">
561
+ <tree ref="drawerTree"
562
+ :dataOptions="detailField.formField"
563
+ @saveData="saveData"
564
+ @cancelBtn="drawer = false"
565
+ ></tree>
566
+ </div>
567
+ </el-drawer>
568
+ <el-drawer
569
+ :withHeader="false"
570
+ :visible.sync="selectPopUp"
571
+ size="40%"
572
+ direction="btt"
573
+ >
574
+ <select-popup
575
+ :options="options"
576
+ :defaultValue="defaultValue"
577
+ @onConfim="confirmSelect"
578
+ @onclose= "selectPopUp = false"
579
+ :multiple="detailField.formField.extInfo && detailField.formField.extInfo.selectType ==='多选'?true:false"
580
+ ref="selectPopup"
581
+ :props="{
582
+ value:'label',
583
+ label:'value'
584
+ }"
585
+ ></select-popup>
586
+ </el-drawer>
448
587
  </div>
449
588
  </template>
450
589
 
451
590
  <script>
452
591
  /* eslint-disable */
592
+ import { forMatTime } from "./utils/format_date";
593
+
453
594
  let that
454
595
  import {multipartUpload,ossFileUrl} from "./utils/AliyunIssUtil";
455
596
  import {MyCustomUploadAdapterPlugin} from "./utils/ckeditor";
456
597
  import MyimageUpload from './utils/plugin-image'
457
598
  import CKEDITOR from 'ckeditor'
458
599
 
600
+ import myPopup from "./myPopup.vue";
601
+ import Tree from '../components/tree'
602
+ import selectPopup from '../components/popup'
459
603
  export default {
460
604
  name: "formTemplate",
461
605
  data() {
@@ -464,11 +608,14 @@ export default {
464
608
  isCompany: false,
465
609
  checkboxGroup: [],
466
610
  currentDate: new Date(),
611
+ currentTime:"",
612
+ timePicker:false,
467
613
  timeValue: [],
468
614
  dateValue: [],
469
615
  showPicker: false,
470
- showTimePicker: false,
471
- showTimePickerd:false,
616
+ selectPicker:false,
617
+ dateTimePicker: false,
618
+ datePicker:false,
472
619
  showCalendar: false,
473
620
  radio: [],
474
621
  selectValue: [],
@@ -512,13 +659,12 @@ export default {
512
659
  copyForm: [],
513
660
  cascaderId:0,
514
661
  formShow:[],
515
-
516
662
  uploadAvatarParams: {
517
663
  token: "8c98087dfd2d48f856d8c95c09115def",
518
664
  },
519
665
  fileListList:[],
520
666
  keyValue:'',
521
- selectKey:'shuijiao',
667
+ selectKey:'',
522
668
  filedId:'',
523
669
  disabled:false,
524
670
  dialogVisible:false,
@@ -547,7 +693,21 @@ export default {
547
693
  ]
548
694
  },
549
695
  },
550
-
696
+ refShowPicker:false,
697
+ refTemplateList:{},
698
+ refList:{},
699
+ dataQuery:{},
700
+ drawer:false,
701
+ detailField:{
702
+ formField:{}
703
+ },
704
+ extInfoFieldValue:[],
705
+ selectPopUp:false,
706
+ options:[],
707
+ defaultValue:[],
708
+ timeDetailData:{},
709
+ selectDetail:{},
710
+ refDefaultValue:{}
551
711
  }
552
712
  },
553
713
  props: {
@@ -589,16 +749,68 @@ export default {
589
749
  acceptType:function () {
590
750
  return '.jpg,.jpeg,.png,.gif,.JPG,.JPEG,.PBG,.GIF'
591
751
  },
592
- formFieldRelation:function (){
752
+ formFieldRelation:function () {
593
753
  let arr = [];
594
- this.formShow.form.formFieldRelation.forEach(item=> {
595
- if (item.fieldId!=='workorder_name'&&item.display) {
754
+ let formList = []
755
+ formList = this.formShow.form && this.formShow.form.formFieldRelation
756
+ formList.forEach(item=> {
757
+ if (item.fieldId !=='workorder_name' && item.display && item.formField.type!=='CHAT_RECORD' && item.formField.type!=='CHANNEL') {
596
758
  arr.push(item);
597
759
  }
598
760
  })
599
- return arr;
761
+ arr.forEach(item=>{
762
+ this.$set(item,'relationDisplay',this.relationSet(item.formField,'dependentFieldId'))
763
+ if(item.formField.type === 'CHECKBOX'){
764
+ if(!item.value){
765
+ item.value = []
766
+ }
767
+ if(item.formField.defaultValue && (!item.value || !item.value.length)){
768
+ item.value = item.formField.defaultValue
769
+ }
770
+ }
771
+ if (item.formField.type === 'EXPLAIN'){
772
+ if (!item.value){
773
+ item.value = item.formField.extInfo.placeholder?item.formField.extInfo.placeholder:''
774
+ }
775
+ }
776
+ if (!item.relationDisplay){
777
+ item.value = []
778
+ this.extInfoFieldValue[item.fieldId] = []
779
+ this.selectValues[item.fieldId] = []
780
+ this.extInfoFieldValue[item.fieldId] = []
781
+ if (item.formField.extInfo.extInfoFieldValue){
782
+ item.formField.extInfo.extInfoFieldValue = ''
783
+ }
784
+ }
785
+ })
786
+ let newArr = arr.filter(item=>item.relationDisplay)
787
+ console.debug('arr',arr,newArr)
788
+ return newArr;
789
+ },
790
+ acceptFieldType(){
791
+ return (type)=>{
792
+ console.debug('type',type)
793
+ if (type == 'FILE'){
794
+ return '*'
795
+ } else if( type == 'IMAGE') {
796
+ return 'image/*'
797
+ } else if(type == 'VIDEO') {
798
+ return 'video/*'
799
+ } else {
800
+ return '*'
801
+ }
802
+ }
803
+ },
804
+ isRequiredFn(){
805
+ return function(field) {
806
+ return this.relationSet(field,'requiredDependentFieldId')
807
+ }
600
808
  }
601
-
809
+ },
810
+ components:{
811
+ myPopup,
812
+ Tree,
813
+ selectPopup
602
814
  },
603
815
  mounted() {
604
816
  this.isMobile()
@@ -626,6 +838,30 @@ export default {
626
838
  that.defaultClick()
627
839
  },
628
840
  methods: {
841
+ getMoldTime(){
842
+ let otherTime = {}
843
+ this.formList.form && this.formList.form.formFieldRelation.forEach(item=>{
844
+ if ((item.formField.type==='TIME_PICKER' || item.formField.type==='TIME_PICKER_RANGE') && item.formField.extInfo.mold==='OTHER'){
845
+ let pattern = item.formField.extInfo.pattern
846
+ let yearVal = pattern.indexOf('YEAR')!==-1
847
+ let monthVal = pattern.indexOf('MONTH')!==-1
848
+ let dayVal = pattern.indexOf('DAY')!==-1
849
+ let hourVal = pattern.indexOf('HOUR')!==-1
850
+ let minuteVal = pattern.indexOf('MINUTE')!==-1
851
+ let secondVal = pattern.indexOf('SECOND')!==-1
852
+ if ((yearVal||monthVal||dayVal)&&(!hourVal&&!minuteVal&&!secondVal)){
853
+ otherTime[item.fieldId]='DATE'
854
+ }
855
+ else if ((yearVal||monthVal||dayVal)&&(hourVal||minuteVal||secondVal)){
856
+ otherTime[item.fieldId]='DATE_TIME'
857
+ }
858
+ else if ((hourVal||minuteVal||secondVal)&&(!yearVal&&!monthVal&&!dayVal)){
859
+ otherTime[item.fieldId]='TIME'
860
+ }
861
+ }
862
+ })
863
+ return otherTime
864
+ },
629
865
  setOptions(extInfo){
630
866
  let options = []
631
867
  console.debug('cascadeDown',extInfo)
@@ -639,43 +875,89 @@ export default {
639
875
  return options
640
876
  },
641
877
  onReady(){
642
-
643
-
878
+
879
+
644
880
  },
645
- beforeRead(file){
881
+ beforeRead(file,type){
646
882
  console.debug('file',file)
647
883
  console.debug('fileType',!Array.isArray(file))
648
884
  if (!Array.isArray(file)){
649
- const isLte2M = file.size / 1024 / 1024 <= 8;
650
- const isSupportedFormat =file.type.indexOf('image')!==-1
651
- if (!isSupportedFormat){
652
- this.$message.error("只能上传图片格式");
653
- return false
885
+ if (type === 'IMAGE'){
886
+ const isLte2M = file.size / 1024 / 1024 <= 8;
887
+ const isSupportedFormat =file.type.indexOf('image')!==-1
888
+ if (!isSupportedFormat){
889
+ this.$message.error("只能上传图片格式");
890
+ return false
891
+ }
892
+ if (!isLte2M&&isSupportedFormat) {
893
+ this.$message.error("上传图片大小不能超过 8MB!");
894
+ return false
895
+ }
896
+ return true
654
897
  }
655
- if (!isLte2M&&isSupportedFormat) {
656
- this.$message.error("上传图片大小不能超过 8MB!");
657
- return false
898
+ else if (type === 'VIDEO'){
899
+ const isLte2M = file.size / 1024 / 1024 <= 100;
900
+ const isSupportedFormat =file.type.indexOf('video')!==-1
901
+ if (!isSupportedFormat){
902
+ this.$message.error("只能上传视频格式");
903
+ return false
904
+ }
905
+ if (!isLte2M&&isSupportedFormat) {
906
+ this.$message.error("上传视频大小不能超过100MB!");
907
+ return false
908
+ }
909
+ return true
910
+ }
911
+ else if (type === 'FILE' || type === 'ATTACHMENT'){
912
+ const isLte2M = file.size / 1024 / 1024 <= 100;
913
+ if (!isLte2M) {
914
+ this.$message.error("上传附件大小不能超过100MB!");
915
+ return false
916
+ }
917
+ return true
658
918
  }
659
- return true
660
919
  }
661
920
  else{
662
921
  let length = 0
663
- if (this.fileListList[this.filedId]){
664
- length = this.fileListList[this.filedId].length
922
+ if (this.extInfoFieldValue[this.filedId]){
923
+ length = this.extInfoFieldValue[this.filedId].length
665
924
  }
666
925
  if (file.length<=this.limitNum-length){
667
926
  for (let i=0;i<file.length;i++){
668
- const isLte2M = file[i].size / 1024 / 1024 <= 8;
669
- const isSupportedFormat =file[i].type.indexOf('image')!==-1
670
- if (!isSupportedFormat){
671
- this.$message.error("只能上传图片格式");
672
- return false
927
+ if (type === 'IMAGE'){
928
+ const isLte2M = file.size / 1024 / 1024 <= 8;
929
+ const isSupportedFormat =file.type.indexOf('image')!==-1
930
+ if (!isSupportedFormat){
931
+ this.$message.error("只能上传图片格式");
932
+ return false
933
+ }
934
+ if (!isLte2M&&isSupportedFormat) {
935
+ this.$message.error("上传图片大小不能超过 8MB!");
936
+ return false
937
+ }
938
+ return true
673
939
  }
674
- if (!isLte2M&&isSupportedFormat) {
675
- this.$message.error("上传图片大小不能超过 8MB!");
676
- return false
940
+ else if (type === 'VIDEO'){
941
+ const isLte2M = file.size / 1024 / 1024 <= 100;
942
+ const isSupportedFormat =file.type.indexOf('video')!==-1
943
+ if (!isSupportedFormat){
944
+ this.$message.error("只能上传视频格式");
945
+ return false
946
+ }
947
+ if (!isLte2M&&isSupportedFormat) {
948
+ this.$message.error("上传视频大小不能超过100MB!");
949
+ return false
950
+ }
951
+ return true
952
+ }
953
+ else if (type === 'FILE' || type === 'ATTACHMENT'){
954
+ const isLte2M = file.size / 1024 / 1024 <= 100;
955
+ if (!isLte2M) {
956
+ this.$message.error("上传附件大小不能超过100MB!");
957
+ return false
958
+ }
959
+ return true
677
960
  }
678
- return true
679
961
  }
680
962
  }
681
963
  else {
@@ -683,7 +965,7 @@ export default {
683
965
  if (this.limitNum){
684
966
  num = this.limitNum
685
967
  }
686
- let messageText = '仅支持上传'+num+'张图片'
968
+ let messageText = '仅支持上传'+num+''
687
969
  this.$message.error(messageText);
688
970
  return false
689
971
  }
@@ -742,12 +1024,12 @@ export default {
742
1024
  imageInfo.url = ossFileUrl(this.ossConfig, res.name)
743
1025
  imageInfo.status='success'
744
1026
  imageInfo.name=res.name
745
- for (let j=0;j<this.fileListList[this.filedId].length;j++){
746
- if (this.fileListList[this.filedId][j].content&&this.fileListList[this.filedId][j].content===content){
747
- this.fileListList[this.filedId][j].name=res.name
748
- this.fileListList[this.filedId][j].status='success'
749
- this.fileListList[this.filedId][j].url=imageInfo.url
750
- delete this.fileListList[this.filedId][j].content
1027
+ for (let j=0;j<this.extInfoFieldValue[this.filedId].length;j++){
1028
+ if (this.extInfoFieldValue[this.filedId][j].content&&this.extInfoFieldValue[this.filedId][j].content===content){
1029
+ this.extInfoFieldValue[this.filedId][j].name=res.name
1030
+ this.extInfoFieldValue[this.filedId][j].status='success'
1031
+ this.extInfoFieldValue[this.filedId][j].url=imageInfo.url
1032
+ delete this.extInfoFieldValue[this.filedId][j].content
751
1033
  }
752
1034
  }
753
1035
  this.fileUpload=false
@@ -770,88 +1052,80 @@ export default {
770
1052
  },
771
1053
  //初始化默认值
772
1054
  defaultClick() {
773
- for (let i = 0; i < this.formList.form.formFieldRelation.length; i++)
774
- {
775
- if(this.formList.form.formFieldRelation[i].formField.type ==='SELECT'||this.formList.form.formFieldRelation[i].formField.type ==='CHECKBOX' ||this.formList.form.formFieldRelation[i].formField.type==='RADIO' ||this.formList.form.formFieldRelation[i].formField.type==='OPTION')
776
- {
777
- if(this.formList.form.formFieldRelation[i].formField.extInfo && !this.formList.form.formFieldRelation[i].formField.extInfo.option)
778
- {
779
- if(this.formList.form.formFieldRelation[i].formField.extInfo.exinfo)
780
- {
781
- for (let j=0;j<this.formList.form.formFieldRelation[i].formField.extInfo.exinfo.length;j++)
782
- {
783
- this.$set(this.formList.form.formFieldRelation[i].formField.extInfo.exinfo[j],'label',this.formList.form.formFieldRelation[i].formField.extInfo.exinfo[j].value)
1055
+ for (let i = 0; i < this.formList.form.formFieldRelation.length; i++){
1056
+ let type = this.formList.form.formFieldRelation[i].formField.type
1057
+ let extInfo = this.formList.form.formFieldRelation[i].formField.extInfo
1058
+ if(type ==='SELECT' || type === 'CHECKBOX' || type === 'RADIO' || type === 'OPTION') {
1059
+ if(extInfo && !extInfo.option){
1060
+ if(extInfo.exinfo){
1061
+ for (let j=0; j < extInfo.exinfo.length; j++){
1062
+ this.$set(extInfo.exinfo[j],'label',extInfo.exinfo[j].value)
784
1063
  }
785
- this.$set(this.formList.form.formFieldRelation[i].formField.extInfo,'option',this.formList.form.formFieldRelation[i].formField.extInfo.exinfo)
1064
+ this.$set(extInfo,'option',extInfo.exinfo)
786
1065
  }
787
- if (this.formList.form.formFieldRelation[i].formField.extInfo.option){
788
- if (this.formList.form.formFieldRelation[i].formField.type === 'RADIO') {
789
- for (let j = 0; j < this.formList.form.formFieldRelation[i].formField.extInfo.option.length; j++) {
790
- if(!this.formList.form.formFieldRelation[i].formField.extInfo.option[j].value)
791
- {
792
- this.formList.form.formFieldRelation[i].formField.extInfo.option[j].value=this.formList.form.formFieldRelation[i].formField.extInfo.option[j].label
1066
+ if (extInfo.option){
1067
+ if (type === 'RADIO') {
1068
+ for (let j = 0; j < extInfo.option.length; j++) {
1069
+ if(!extInfo.option[j].value) {
1070
+ extInfo.option[j].value=extInfo.option[j].label
793
1071
  }
794
1072
  }
795
- if(!this.formList.form.formFieldRelation[i].value)
796
- {
797
- for (let j = 0; j < this.formList.form.formFieldRelation[i].formField.extInfo.option.length; j++) {
798
- if (this.formList.form.formFieldRelation[i].formField.extInfo.option[j]._default === 'true') {
799
- this.formList.form.formFieldRelation[i].value = this.formList.form.formFieldRelation[i].formField.extInfo.option[j].value
1073
+ if(!this.formList.form.formFieldRelation[i].value){
1074
+ for (let j = 0; j < extInfo.option.length; j++) {
1075
+ if (extInfo.option[j]._default === 'true') {
1076
+ this.formList.form.formFieldRelation[i].value = extInfo.option[j].value
800
1077
  }
801
1078
  }
802
1079
  }
803
1080
  }
804
- if (this.formList.form.formFieldRelation[i].formField.type === 'CHECKBOX') {
805
- for (let j = 0; j < this.formList.form.formFieldRelation[i].formField.extInfo.option.length; j++) {
806
- if (!this.formList.form.formFieldRelation[i].formField.extInfo.option[j].value) {
807
- this.formList.form.formFieldRelation[i].formField.extInfo.option[j].value = this.formList.form.formFieldRelation[i].formField.extInfo.option[j].label
1081
+ if (type === 'CHECKBOX') {
1082
+ for (let j = 0; j < extInfo.option.length; j++) {
1083
+ if (!extInfo.option[j].value) {
1084
+ extInfo.option[j].value = extInfo.option[j].label
808
1085
  }
809
1086
  }
810
-
811
- if (!this.formList.form.formFieldRelation[i].value||this.formList.form.formFieldRelation[i].value.length === 0)
812
- {
813
- this.formList.form.formFieldRelation[i].value=[]
814
- for (let j = 0; j < this.formList.form.formFieldRelation[i].formField.extInfo.option.length; j++) {
815
- if (this.formList.form.formFieldRelation[i].formField.extInfo.option[j]._default === 'true') {
816
- this.formList.form.formFieldRelation[i].value[0] = this.formList.form.formFieldRelation[i].formField.extInfo.option[j].value
1087
+ if (!this.formList.form.formFieldRelation[i].value || this.formList.form.formFieldRelation[i].value.length === 0){
1088
+ this.formList.form.formFieldRelation[i].value = []
1089
+ for (let j = 0; j < extInfo.option.length; j++) {
1090
+ if (extInfo.option[j]._default === 'true') {
1091
+ this.formList.form.formFieldRelation[i].value[0] = extInfo.option[j].value
817
1092
  }
818
1093
  }
819
1094
  }
820
1095
  }
821
1096
  }
822
-
823
1097
  }
824
1098
  else {
825
- if (this.formList.form.formFieldRelation[i].formField.extInfo && this.formList.form.formFieldRelation[i].formField.extInfo.options){
826
- if (this.formList.form.formFieldRelation[i].formField.type === 'RADIO') {
827
- for (let j = 0; j < this.formList.form.formFieldRelation[i].formField.extInfo.options.length; j++) {
828
- if(!this.formList.form.formFieldRelation[i].formField.extInfo.options[j].value)
1099
+ if (extInfo && extInfo.options) {
1100
+ if (type === 'RADIO') {
1101
+ for (let j = 0; j < extInfo.options.length; j++) {
1102
+ if(!extInfo.options[j].value)
829
1103
  {
830
- this.formList.form.formFieldRelation[i].formField.extInfo.options[j].value=this.formList.form.formFieldRelation[i].formField.extInfo.options[j].label
1104
+ extInfo.options[j].value=extInfo.options[j].label
831
1105
  }
832
1106
  }
833
1107
  if(!this.formList.form.formFieldRelation[i].value)
834
1108
  {
835
- for (let j = 0; j < this.formList.form.formFieldRelation[i].formField.extInfo.option.length; j++) {
836
- if (this.formList.form.formFieldRelation[i].formField.extInfo.options[j]._default === 'true') {
837
- this.formList.form.formFieldRelation[i].value = this.formList.form.formFieldRelation[i].formField.extInfo.options[j].value
1109
+ for (let j = 0; j < extInfo.option.length; j++) {
1110
+ if (extInfo.options[j]._default === 'true') {
1111
+ this.formList.form.formFieldRelation[i].value = extInfo.options[j].value
838
1112
  }
839
1113
  }
840
1114
  }
841
1115
  }
842
- if (this.formList.form.formFieldRelation[i].formField.type === 'CHECKBOX') {
843
- for (let j = 0; j < this.formList.form.formFieldRelation[i].formField.extInfo.options.length; j++) {
844
- if (this.formList.form.formFieldRelation[i].formField.extInfo.options[j].value === '') {
845
- this.formList.form.formFieldRelation[i].formField.extInfo.options[j].value = this.formList.form.formFieldRelation[i].formField.extInfo.options[j].label
1116
+ if (type === 'CHECKBOX') {
1117
+ for (let j = 0; j < extInfo.options.length; j++) {
1118
+ if (extInfo.options[j].value === '') {
1119
+ extInfo.options[j].value = extInfo.options[j].label
846
1120
  }
847
1121
  }
848
1122
 
849
- if (this.formList.form.formFieldRelation[i].value === null||this.formList.form.formFieldRelation[i].value.length === 0)
1123
+ if (!this.formList.form.formFieldRelation[i].value ||this.formList.form.formFieldRelation[i].value.length === 0)
850
1124
  {
851
1125
  this.formList.form.formFieldRelation[i].value=[]
852
- for (let j = 0; j < this.formList.form.formFieldRelation[i].formField.extInfo.options.length; j++) {
853
- if (this.formList.form.formFieldRelation[i].formField.extInfo.options[j]._default === 'true') {
854
- this.formList.form.formFieldRelation[i].value[0] = this.formList.form.formFieldRelation[i].formField.extInfo.options[j].value
1126
+ for (let j = 0; j < extInfo.options.length; j++) {
1127
+ if (extInfo.options[j]._default === 'true') {
1128
+ this.formList.form.formFieldRelation[i].value[0] = extInfo.options[j].value
855
1129
  }
856
1130
  }
857
1131
  }
@@ -860,8 +1134,8 @@ export default {
860
1134
  }
861
1135
 
862
1136
  }
863
- if (this.formList.form.formFieldRelation[i].formField.type ==='FILE'){
864
- if (this.formList.form.formFieldRelation[i].value!==undefined){
1137
+ if (type ==='FILE' || type == 'ATTACHMENT' || type == 'IMAGE' || type == 'VIDEO'){
1138
+ if (this.formList.form.formFieldRelation[i].value){
865
1139
  if (this.formList.form.formFieldRelation[i].value===null||this.formList.form.formFieldRelation[i].value===''){
866
1140
  this.formList.form.formFieldRelation[i].value=[]
867
1141
  }
@@ -877,130 +1151,123 @@ export default {
877
1151
  valueList[file].url = this.formList.form.formFieldRelation[i].value[file]
878
1152
  }
879
1153
  if (type === 'object'&&JSON.stringify(this.formList.form.formFieldRelation[i].value[file])!=='{}') {
880
- this.fileListList[this.formList.form.formFieldRelation[i].fieldId]=this.formList.form.formFieldRelation[i].value
1154
+ this.extInfoFieldValue[this.formList.form.formFieldRelation[i].fieldId]=this.formList.form.formFieldRelation[i].value
881
1155
  }
882
1156
  else {
883
- this.fileListList[this.formList.form.formFieldRelation[i].fieldId]=[]
1157
+ this.extInfoFieldValue[this.formList.form.formFieldRelation[i].fieldId]=[]
884
1158
  }
885
1159
  }
886
1160
  if (bool){
887
- this.fileListList[this.formList.form.formFieldRelation[i].fieldId]=valueList
1161
+ this.extInfoFieldValue[this.formList.form.formFieldRelation[i].fieldId]=valueList
888
1162
  }
889
1163
  }
890
1164
  }
891
1165
  }
892
-
893
-
894
-
895
1166
  }
896
-
1167
+ if (type === 'REF' || type === 'REF_TEMPLATE'){
1168
+ if (this.formList.form.formFieldRelation[i].formField.extInfo.extInfoFieldValue){
1169
+ let name = this.formList.form.formFieldRelation[i].formField.extInfo.extInfoFieldValue.map(item=>{
1170
+ return item.name
1171
+ })
1172
+ this.extInfoFieldValue[this.formList.form.formFieldRelation[i].fieldId] = name
1173
+ }
1174
+ }
897
1175
  }
898
- let test = []
899
1176
  for (let i = 0; i < this.formList.form.formFieldRelation.length; i++) {
900
- if (this.formList.form.formFieldRelation[i].formField.type === 'CASCADER') {
901
- test.push(this.formList.form.formFieldRelation[i])
902
- let cascader=''
903
- if(this.formList.form.formFieldRelation[i].value)
904
- {
905
- if(this.formList.form.formFieldRelation[i].value.length > 0)
906
- {
907
- for (let j = 0; j < this.formList.form.formFieldRelation[i].value.length; j++) {
908
- if (this.formList.form.formFieldRelation[i].value[j]) {
909
- cascader += this.formList.form.formFieldRelation[i].value[j] + '/'
910
- }
911
- }
912
- cascader = cascader.substr(0, cascader.length - 1)
913
-
914
- }
915
- this.cascadeValue[this.formList.form.formFieldRelation[i].fieldId]=cascader
1177
+ let type = this.formList.form.formFieldRelation[i].formField.type
1178
+ let extInfo = this.formList.form.formFieldRelation[i].formField.extInfo
1179
+ if (type === 'CASCADER') {
1180
+ let fieldValue = this.formList.form.formFieldRelation[i].formField.extInfo.extInfoFieldValue?
1181
+ this.formList.form.formFieldRelation[i].formField.extInfo.extInfoFieldValue:
1182
+ (this.formList.form.formFieldRelation[i].formField.extInfo.fieldValue?
1183
+ this.formList.form.formFieldRelation[i].formField.extInfo.fieldValue:[])
1184
+ if (!this.extInfoFieldValue[this.formList.form.formFieldRelation[i].fieldId]){
1185
+ this.extInfoFieldValue[this.formList.form.formFieldRelation[i].fieldId] = fieldValue
916
1186
  }
917
- else
918
- {
919
- this.formList.form.formFieldRelation[i].value=[]
1187
+ if (this.formList.form.formFieldRelation[i].value){
1188
+ this.formList.form.formFieldRelation[i].value = this.formList.form.formFieldRelation[i].formField.defaultValue?
1189
+ this.formList.form.formFieldRelation[i].formField.defaultValue:[];
920
1190
  }
921
- }
922
- if (this.formList.form.formFieldRelation[i].formField.type === 'DATE_PICKER')
923
- {
924
- if(this.formList.form.formFieldRelation[i].value!==null && this.formList.form.formFieldRelation[i].value!=='' )
925
- {
926
1191
 
1192
+ }
1193
+ if (type === 'DATE_PICKER') {
1194
+ if(this.formList.form.formFieldRelation[i].value!==null && this.formList.form.formFieldRelation[i].value!=='' ) {
927
1195
  this.dateValue[this.formList.form.formFieldRelation[i].fieldId]=this.formatDate(this.formList.form.formFieldRelation[i].value)
928
1196
  }
929
1197
  }
930
- if (this.formList.form.formFieldRelation[i].formField.type === 'TIME_PICKER')
931
- {
1198
+ if (type === 'TIME_PICKER') {
932
1199
  if(this.formList.form.formFieldRelation[i].value!==''&& this.formList.form.formFieldRelation[i].value!==null)
933
1200
  {
934
1201
  const dateTime = new Date(this.formList.form.formFieldRelation[i].value)
935
- this.timeValue[this.formList.form.formFieldRelation[i].fieldId]=this.addZero(dateTime.getHours()) + ':' + this.addZero(dateTime.getMinutes())
936
-
1202
+ if (!this.formList.form.formFieldRelation[i].formField.extInfo.mold ||
1203
+ this.formList.form.formFieldRelation[i].formField.extInfo.mold == 'TIME' ||
1204
+ this.getMoldTime(this.formList.form.formFieldRelation[i].formField.formField) == 'TIME'){
1205
+ this.extInfoFieldValue[this.formList.form.formFieldRelation[i].fieldId]=dateTime.Format('hh:mm')
1206
+ }
1207
+ else if (this.formList.form.formFieldRelation[i].formField.extInfo.mold == 'DATA_TIME' ||
1208
+ this.formList.form.formFieldRelation[i].formField.extInfo.mold == 'DATE_TIME' ||
1209
+ this.getMoldTime(this.formList.form.formFieldRelation[i].formField.formField) == 'DATE_TIME'){
1210
+ this.extInfoFieldValue[this.formList.form.formFieldRelation[i].fieldId] = dateTime.Format('yyyy-MM-dd hh:mm')
1211
+ }
1212
+ else if (this.formList.form.formFieldRelation[i].formField.extInfo.mold == 'DATA' ||
1213
+ this.formList.form.formFieldRelation[i].formField.extInfo.mold == 'DATE' ||
1214
+ this.getMoldTime(this.formList.form.formFieldRelation[i].formField.formField) == 'DATE'){
1215
+ this.extInfoFieldValue[this.formList.form.formFieldRelation[i].fieldId] = dateTime.Format('yyyy-MM-dd')
1216
+ }
937
1217
  }
938
1218
  }
939
- if (this.formList.form.formFieldRelation[i].formField.type === 'SELECT' || this.formList.form.formFieldRelation[i].formField.type === 'OPTION') {
940
- if (this.formList.form.formFieldRelation[i].formField.extInfo && this.formList.form.formFieldRelation[i].formField.extInfo.option){
941
- for (let j = 0; j < this.formList.form.formFieldRelation[i].formField.extInfo.option.length; j++) {
942
- if (this.formList.form.formFieldRelation[i].formField.extInfo.option[j].value === '') {
943
- this.formList.form.formFieldRelation[i].formField.extInfo.option[j].value = this.formList.form.formFieldRelation[i].formField.extInfo.option[j].label
1219
+ if (type === 'SELECT' || type === 'OPTION') {
1220
+ if (extInfo && extInfo.option){
1221
+ for (let j = 0; j < extInfo.option.length; j++) {
1222
+ if (extInfo.option[j].value === '') {
1223
+ extInfo.option[j].value = extInfo.option[j].label
944
1224
  }
945
1225
  }
946
- if(this.formList.form.formFieldRelation[i].value)
947
- {
948
- for (let j=0;j<this.formList.form.formFieldRelation[i].formField.extInfo.option.length;j++)
949
- {
950
- if (this.formList.form.formFieldRelation[i].value === this.formList.form.formFieldRelation[i].formField.extInfo.option[j].value)
951
- {
952
- this.selectValues[this.formList.form.formFieldRelation[i].fieldId] =this.formList.form.formFieldRelation[i].formField.extInfo.option[j].label
1226
+ if(this.formList.form.formFieldRelation[i].value) {
1227
+ for (let j = 0; j < extInfo.option.length; j++) {
1228
+ if (this.formList.form.formFieldRelation[i].value === extInfo.option[j].value) {
1229
+ this.selectValues[this.formList.form.formFieldRelation[i].fieldId] = extInfo.option[j].label
953
1230
  }
954
1231
  }
955
- /*this.selectValues[this.formList.form.formFieldRelation[i].fieldId] = this.formList.form.formFieldRelation[i].value*/
956
-
957
- }
958
- else
959
- {
960
- for (let j = 0; j < this.formList.form.formFieldRelation[i].formField.extInfo.option.length; j++) {
961
- if (this.formList.form.formFieldRelation[i].formField.extInfo.option[j]._default === 'true') {
962
- this.selectValues[this.formList.form.formFieldRelation[i].fieldId] = this.formList.form.formFieldRelation[i].formField.extInfo.option[j].label
963
- this.formList.form.formFieldRelation[i].value=this.formList.form.formFieldRelation[i].formField.extInfo.option[j].value
1232
+ } else {
1233
+ for (let j = 0; j < extInfo.option.length; j++) {
1234
+ if (extInfo.option[j]._default === 'true') {
1235
+ this.selectValues[this.formList.form.formFieldRelation[i].fieldId] = extInfo.option[j].label
1236
+ this.formList.form.formFieldRelation[i].value=extInfo.option[j].value
964
1237
  }
965
1238
  }
966
1239
  }
967
- }
968
- else {
969
- if(this.formList.form.formFieldRelation[i].formField.extInfo && this.formList.form.formFieldRelation[i].formField.extInfo.option) {
970
- for (let j = 0; j < this.formList.form.formFieldRelation[i].formField.extInfo.options.length; j++) {
971
- if (this.formList.form.formFieldRelation[i].formField.extInfo.options[j].value === '') {
972
- this.formList.form.formFieldRelation[i].formField.extInfo.options[j].value = this.formList.form.formFieldRelation[i].formField.extInfo.options[j].label
1240
+ } else {
1241
+ if(extInfo && extInfo.option) {
1242
+ for (let j = 0; j < extInfo.options.length; j++) {
1243
+ if (extInfo.options[j].value === '') {
1244
+ extInfo.options[j].value = extInfo.options[j].label
973
1245
  }
974
1246
  }
975
1247
  }
976
- if(this.formList.form.formFieldRelation[i].value && this.formList.form.formFieldRelation[i].formField.extInfo && this.formList.form.formFieldRelation[i].formField.extInfo.option)
977
- {
978
- for (let j=0;j<this.formList.form.formFieldRelation[i].formField.extInfo.options.length;j++)
979
- {
980
- if (this.formList.form.formFieldRelation[i].value === this.formList.form.formFieldRelation[i].formField.extInfo.options[j].value)
981
- {
982
- this.selectValues[this.formList.form.formFieldRelation[i].fieldId] =this.formList.form.formFieldRelation[i].formField.extInfo.options[j].label
983
- }
1248
+ if(this.formList.form.formFieldRelation[i].value && extInfo && extInfo.option) {
1249
+ for (let j=0;j<extInfo.options.length;j++) {
1250
+ if (this.formList.form.formFieldRelation[i].value === extInfo.options[j].value) {
1251
+ this.selectValues[this.formList.form.formFieldRelation[i].fieldId] =extInfo.options[j].label
984
1252
  }
985
- /*this.selectValues[this.formList.form.formFieldRelation[i].fieldId] = this.formList.form.formFieldRelation[i].value*/
986
-
987
1253
  }
988
- else
989
- {
990
- if(this.formList.form.formFieldRelation[i].formField.extInfo && this.formList.form.formFieldRelation[i].formField.extInfo.option) {
991
- for (let j = 0; j < this.formList.form.formFieldRelation[i].formField.extInfo.options.length; j++) {
992
- if (this.formList.form.formFieldRelation[i].formField.extInfo.options[j]._default === 'true') {
993
- this.selectValues[this.formList.form.formFieldRelation[i].fieldId] = this.formList.form.formFieldRelation[i].formField.extInfo.options[j].label
994
- this.formList.form.formFieldRelation[i].value=this.formList.form.formFieldRelation[i].formField.extInfo.options[j].value
995
- }
1254
+ } else {
1255
+ if(extInfo && extInfo.option) {
1256
+ for (let j = 0; j < extInfo.options.length; j++) {
1257
+ if (extInfo.options[j]._default === 'true') {
1258
+ this.selectValues[this.formList.form.formFieldRelation[i].fieldId] = extInfo.options[j].label
1259
+ this.formList.form.formFieldRelation[i].value=extInfo.options[j].value
996
1260
  }
997
1261
  }
998
1262
  }
1263
+ }
999
1264
  }
1000
-
1001
1265
  }
1002
1266
  }
1003
- this.formShow=this.formList
1267
+ if (this.formList.extInfo && this.formList.extInfo.extInfoFieldValue){
1268
+ this.extInfoFieldValue = this.formList.extInfo.extInfoFieldValue
1269
+ }
1270
+ this.formShow = this.formList
1004
1271
  },
1005
1272
  addZero(i) {
1006
1273
  if (i < 10) {
@@ -1037,23 +1304,41 @@ export default {
1037
1304
  this.isPhone=this.propIsPhone;
1038
1305
  this.isCompany=this.propIsCompany;
1039
1306
  }
1307
+
1040
1308
  },
1041
1309
  //时间的选择器
1042
- onConfirm(value, id,item) {
1043
- for (let i = 0; i < this.formShow.form.formFieldRelation.length; i++) {
1310
+ onConfirm(value, id,item,type) {
1311
+ console.debug('value',value)
1312
+ if (type == 'DATE'){
1313
+ this.datePicker = false
1314
+ this.timeDetailData.value = value;
1315
+ this.extInfoFieldValue[id] =this.formatDate(value);
1316
+ }
1317
+ else if (type == 'TIME'){
1318
+ this.timePicker = false;
1319
+ this.extInfoFieldValue[id] = value;
1320
+ console.debug('timeDetailData',this.timeDetailData)
1321
+ this.timeDetailData.value = forMatTime(value)
1322
+ }
1323
+ else if (type == 'DATE_TIME'){
1324
+ this.dateTimePicker = false;
1325
+ this.timeDetailData.value = value
1326
+ this.extInfoFieldValue[id] =this.formatDate(value) +" "+ this.addZero(value.getHours()) + ':' + this.addZero(value.getMinutes())
1327
+ }
1328
+ /*for (let i = 0; i < this.formShow.form.formFieldRelation.length; i++) {
1044
1329
  if (this.formShow.form.formFieldRelation[i].fieldId=== id) {
1045
1330
  this.formShow.form.formFieldRelation[i].value = value
1046
1331
  if (!item.formField.extInfo.mold||item.formField.extInfo.mold==='DATA_TIME'){
1047
1332
  this.timeValue[id] =this.formatDate(value) +" "+ this.addZero(value.getHours()) + ':' + this.addZero(value.getMinutes())
1048
- this.showTimePicker = false;
1333
+ this.dateTimePicker = false;
1049
1334
  }
1050
1335
  else {
1051
1336
  this.timeValue[id] =this.formatDate(value)
1052
- this.showTimePickerd = false;
1337
+ this.datePicker = false;
1053
1338
  }
1054
1339
  break
1055
1340
  }
1056
- }
1341
+ }*/
1057
1342
  },
1058
1343
  //转换日期的函数
1059
1344
  formatDate(date) {
@@ -1061,22 +1346,36 @@ export default {
1061
1346
  return `${dateTime.getFullYear()}-${dateTime.getMonth() + 1}-${dateTime.getDate()}`;
1062
1347
  },
1063
1348
  //日期的选择器
1064
- onConfirmCalendar(date, id) {
1065
- for (let i = 0; i < this.formShow.form.formFieldRelation.length; i++) {
1349
+ onConfirmCalendar(date, item) {
1350
+ fieldId
1351
+ this.dateValue[item.fieldId] = this.formatDate(date);
1352
+ item.value = date;
1353
+ this.showCalendar = false;
1354
+ /* for (let i = 0; i < this.formShow.form.formFieldRelation.length; i++) {
1066
1355
  if (this.formShow.form.formFieldRelation[i].fieldId === id) {
1067
1356
  this.dateValue[id] = this.formatDate(date)
1068
1357
  this.formShow.form.formFieldRelation[i].value = date
1069
1358
  this.showCalendar = false;
1070
1359
  break
1071
1360
  }
1072
- }
1361
+ }*/
1073
1362
  },
1074
1363
  //下拉的选择器
1075
- onConfirmSelect(value, id) {
1364
+ onConfirmSelect(value, item) {
1365
+ console.log('value',value,this.selectDetail)
1366
+ if (!value){
1367
+ return
1368
+ }
1369
+ this.selectValues[this.selectDetail.fieldId] = value;
1076
1370
  for (let i = 0; i < this.formShow.form.formFieldRelation.length; i++) {
1077
- if (this.formShow.form.formFieldRelation[i].fieldId === id) {
1078
- this.selectValues[this.formShow.form.formFieldRelation[i].fieldId] = value
1079
- if (this.formShow.form.formFieldRelation[i].formField.extInfo.option){
1371
+ if (this.formShow.form.formFieldRelation[i].fieldId === this.selectDetail.fieldId) {
1372
+ let options = this.formShow.form.formFieldRelation[i].formField.extInfo.option?this.formShow.form.formFieldRelation[i].formField.extInfo.option:this.formShow.form.formFieldRelation[i].formField.extInfo.options;
1373
+ for (let j=0;j<options.length;j++){
1374
+ if (value == options[j].label){
1375
+ this.selectDetail.value = options[j].value
1376
+ }
1377
+ }
1378
+ /*if (this.formShow.form.formFieldRelation[i].formField.extInfo.option){
1080
1379
  for (let j = 0; j < this.formShow.form.formFieldRelation[i].formField.extInfo.option.length; j++) {
1081
1380
  if(value ===this.formShow.form.formFieldRelation[i].formField.extInfo.option[j].label)
1082
1381
  {
@@ -1091,41 +1390,12 @@ export default {
1091
1390
  this.formShow.form.formFieldRelation[i].value = this.formShow.form.formFieldRelation[i].formField.extInfo.options[j].value
1092
1391
  }
1093
1392
  }
1094
- }
1095
-
1393
+ }*/
1096
1394
  this.showPicker = false;
1097
1395
  break
1098
1396
  }
1099
1397
  }
1100
1398
  },
1101
- //时间日期的选择器
1102
- /* onConfirmDateTime(date,id){
1103
- for (let i=0;i<this.formList.form.formFieldRelation.length;i++)
1104
- {
1105
-
1106
- if(this.formList.form.formFieldRelation[i].formField.id===id)
1107
- {
1108
- this.dateTimeValue[id]=this.addZero(date.getFullYear())+'-'+this.addZero(date.getMonth())+'-'+this.addZero(date.getDate())+' '+this.addZero(date.getHours())+':'+this.addZero(date.getMinutes())
1109
- this.formList.form.formFieldRelation[i].value[0]=date
1110
- this.showDateTimePicker = false;
1111
- break
1112
- }
1113
- }
1114
-
1115
- },
1116
- onConfirmDateTime1(date,id){
1117
- for (let i=0;i<this.formList.form.formFieldRelation.length;i++)
1118
- {
1119
- if(this.formList.form.formFieldRelation[i].formField.id===id)
1120
- {
1121
-
1122
- this.dateTimeValue1[id]=this.addZero(date.getFullYear())+'-'+this.addZero(date.getMonth())+'-'+this.addZero(date.getDate())+' '+this.addZero(date.getHours())+':'+this.addZero(date.getMinutes())
1123
- this.formList.form.formFieldRelation[i].value[1]=date
1124
- this.showDateTimePicker1 = false;
1125
- break
1126
- }
1127
- }
1128
- },*/
1129
1399
  //提交按钮事件
1130
1400
  submitClick() {
1131
1401
 
@@ -1144,48 +1414,55 @@ export default {
1144
1414
  cascader = this.formShow.form.formFieldRelation[i].formField.extInfo.cascadeDown[0].options
1145
1415
  }
1146
1416
  cascader.forEach(item=>{
1147
- if(item.children!==undefined)
1148
- {
1149
- if(item.children.length===0)
1417
+ if(item.children!==undefined){
1418
+ if(item.children.length===0) {
1150
1419
  delete item.children
1151
- else {
1420
+ } else {
1152
1421
  item.children.forEach(items=>{
1153
- if(items.children)
1154
- {
1155
- if(items.children.length===0)
1422
+ if(items.children){
1423
+ if(items.children.length===0) {
1156
1424
  delete items.children
1425
+ }
1157
1426
  }
1158
1427
  })
1159
1428
  }
1160
1429
  }
1161
1430
  })
1162
1431
  }
1163
- if (this.fileListList[this.formShow.form.formFieldRelation[i].fieldId]!==undefined){
1432
+ if (this.extInfoFieldValue[this.formShow.form.formFieldRelation[i].fieldId] &&
1433
+ (this.formShow.form.formFieldRelation[i].formField.type == 'FILE' ||
1434
+ this.formShow.form.formFieldRelation[i].formField.type == 'IMAGE' ||
1435
+ this.formShow.form.formFieldRelation[i].formField.type == 'VIDEO' ||
1436
+ this.formShow.form.formFieldRelation[i].formField.type == 'ATTACHMENT')) {
1164
1437
  let value=[]
1165
-
1166
- this.fileListList[this.formShow.form.formFieldRelation[i].fieldId].forEach(item=>{
1167
- let file={}
1168
- file.name=item.name
1169
- file.url=item.url
1438
+ this.extInfoFieldValue[this.formShow.form.formFieldRelation[i].fieldId].forEach(item=>{
1439
+ let file = {}
1440
+ file.name = item.name
1441
+ file.url = item.url
1170
1442
  value.push(file)
1171
1443
  })
1172
- this.formShow.form.formFieldRelation[i].value=value
1444
+ this.formShow.form.formFieldRelation[i].value = value.map(item=>{
1445
+ return item.name
1446
+ })
1173
1447
  }
1174
-
1175
- if(this.formShow.form.formFieldRelation[i].display===true && this.formShow.form.formFieldRelation[i].required === true&&this.formShow.form.formFieldRelation[i].fieldId!=='workorder_name'&& this.formShow.form.formFieldRelation[i].formField.type !== 'EXPLANATION')
1176
- {
1448
+ if(this.formShow.form.formFieldRelation[i].display &&
1449
+ (this.formShow.form.formFieldRelation[i].required || this.isRequiredFn(this.formShow.form.formFieldRelation[i].formField)) &&
1450
+ this.formShow.form.formFieldRelation[i].fieldId!=='workorder_name'&&
1451
+ this.formShow.form.formFieldRelation[i].formField.type !== 'EXPLANATION') {
1177
1452
  let value = this.formShow.form.formFieldRelation[i].value && this.formShow.form.formFieldRelation[i].value.includes('\n')?this.formShow.form.formFieldRelation[i].value:'';
1178
1453
  let strVal = '';
1179
- if (value){
1454
+ if(value){
1180
1455
  strVal = value.replace(/\n/g,'');
1181
1456
  }
1182
1457
  let bool = this.formShow.form.formFieldRelation[i].value && this.formShow.form.formFieldRelation[i].value.includes('\n') && !strVal
1183
- if(!this.formShow.form.formFieldRelation[i].value || bool || (this.formShow.form.formFieldRelation[i].value && this.formShow.form.formFieldRelation[i].value.length===0))
1184
- {
1458
+ if(!this.formShow.form.formFieldRelation[i].value || bool || (this.formShow.form.formFieldRelation[i].value&&this.formShow.form.formFieldRelation[i].value.length===0)) {
1185
1459
  this.$message.error('请完善'+ this.formShow.form.formFieldRelation[i].formField.name)
1186
1460
  return
1187
1461
  }
1188
1462
  }
1463
+ }
1464
+ this.formShow.extInfo = {
1465
+ extInfoFieldValue : this.extInfoFieldValue
1189
1466
  }
1190
1467
  this.$emit('submitClick',this.formShow)
1191
1468
  this.disableds = true
@@ -1206,28 +1483,30 @@ export default {
1206
1483
 
1207
1484
  },
1208
1485
  //时间的点击事件
1209
- timeClick(id,item) {
1210
- if(this.disableds === false){
1211
- for (let i = 0; i < this.formShow.form.formFieldRelation.length; i++) {
1212
- if (this.formShow.form.formFieldRelation[i].fieldId === id) {
1213
- this.timeId = id
1214
- if (!item.formField.extInfo.mold||item.formField.extInfo.mold==='DATA_TIME'){
1215
- this.showTimePicker = true
1216
- }
1217
- else {
1218
- this.showTimePickerd= true
1219
- }
1220
-
1221
- break
1222
- }
1223
-
1224
- }
1486
+ timeClick(id,item,type) {
1487
+ if (this.disableds){
1488
+ return
1489
+ }
1490
+ this.timeDetailData = item
1491
+ if (type == 'DATE'){
1492
+ this.datePicker = true
1493
+ }
1494
+ else if (type == 'TIME'){
1495
+ this.timePicker = true
1496
+ }
1497
+ else if (type == 'DATE_TIME'){
1498
+ this.dateTimePicker = true
1225
1499
  }
1226
-
1227
1500
  },
1228
1501
  //下拉的点击事件
1229
- selectClick(id) {
1230
- if(this.disableds === false){
1502
+ selectClick(id,type,item) {
1503
+ console.debug('111',item)
1504
+ if (this.disableds){
1505
+ return
1506
+ }
1507
+ this.selectDetail = item;
1508
+ this.defaultValue = ''
1509
+ if(type == 'client') {
1231
1510
  let selectOption
1232
1511
  this.selectValue=[]
1233
1512
  for (let i = 0; i < this.formShow.form.formFieldRelation.length; i++) {
@@ -1244,8 +1523,16 @@ export default {
1244
1523
  }
1245
1524
  this.selectId = id
1246
1525
  this.showPicker = true
1526
+ } else if (type == 'ref'){
1527
+ this.refShowPicker = true;
1528
+ this.refTemplateVisibleChange(true,item);
1529
+ this.refDefaultValue[item.fieldId] = item.value?[item.value]:[]
1530
+ } else if (type == 'select'){
1531
+ this.selectPicker = true;
1532
+ }
1533
+ if (item){
1534
+ this.detailField = item;
1247
1535
  }
1248
-
1249
1536
  },
1250
1537
  SelectClear(fieldId) {
1251
1538
  if(this.disableds === false){
@@ -1309,7 +1596,6 @@ export default {
1309
1596
 
1310
1597
 
1311
1598
  },
1312
-
1313
1599
  onChange(picker, values,index) {
1314
1600
  // 这里我有可能渲染的有问题,导致回调每次都修改了当前列,其他值没有修改,当前列??(当前列什么鬼呀,什么垃圾啊???) 解释一下 ↓↓
1315
1601
  // 因为vant的 van-picker 回调只会返回你修改的那一列,比如现在为 [北京,北京,东城区],你修改了省为[天津市,天津市,和平区],但是vant的change回调会得到[天津市,北京,东城区],后面两个在回调中没有修改,不知道我的渲染方法有问题还是什么问题。
@@ -1477,27 +1763,27 @@ export default {
1477
1763
  imgInfo.name = data.file.name
1478
1764
  imgInfo.uid = data.file.uid
1479
1765
  }
1480
- if (!this.fileListList[this.filedId])
1766
+ if (!this.extInfoFieldValue[this.filedId])
1481
1767
  {
1482
- this.fileListList[this.filedId] = []
1768
+ this.extInfoFieldValue[this.filedId] = []
1483
1769
  }
1484
- this.fileListList[this.filedId].push(imgInfo)
1770
+ this.extInfoFieldValue[this.filedId].push(imgInfo)
1485
1771
  this.loading.close()
1486
1772
  }).catch((err) => {
1487
1773
  console.debug("upload err", err);
1488
1774
  });
1489
1775
  },
1490
1776
  successUpload(response,file,fileList){
1491
- if (!this.fileListList[this.filedId]){
1492
- this.fileListList[this.filedId] = []
1777
+ if (!this.extInfoFieldValue[this.filedId]){
1778
+ this.extInfoFieldValue[this.filedId] = []
1493
1779
  }
1494
1780
  for (let i=0;i<fileList.length;i++){
1495
- if (!this.fileListList[this.filedId][i]){
1496
- this.fileListList[this.filedId][i]={}
1781
+ if (!this.extInfoFieldValue[this.filedId][i]){
1782
+ this.extInfoFieldValue[this.filedId][i]={}
1497
1783
  }
1498
- this.fileListList[this.filedId][i].url=fileList[i].url
1499
- this.fileListList[this.filedId][i].name=fileList[i].name
1500
- this.fileListList[this.filedId][i].status=fileList[i].status
1784
+ this.extInfoFieldValue[this.filedId][i].url=fileList[i].url
1785
+ this.extInfoFieldValue[this.filedId][i].name=fileList[i].name
1786
+ this.extInfoFieldValue[this.filedId][i].status=fileList[i].status
1501
1787
  }
1502
1788
  },
1503
1789
  uploadProgress(){
@@ -1509,44 +1795,26 @@ export default {
1509
1795
  });
1510
1796
  },
1511
1797
  handleRemove(file) {
1512
- if (this.fileListList[this.filedId]){
1513
- for (let i=0;i<this.fileListList[this.filedId].length;i++)
1798
+ if (this.extInfoFieldValue[this.filedId]){
1799
+ for (let i=0;i<this.extInfoFieldValue[this.filedId].length;i++)
1514
1800
  {
1515
- if (this.fileListList[this.filedId][i].uid){
1516
- if (this.fileListList[this.filedId][i].uid===file.uid){
1517
- this.fileListList[this.filedId].splice(i,1)
1801
+ if (this.extInfoFieldValue[this.filedId][i].uid){
1802
+ if (this.extInfoFieldValue[this.filedId][i].uid===file.uid){
1803
+ this.extInfoFieldValue[this.filedId].splice(i,1)
1518
1804
  return
1519
1805
  }
1520
1806
  }
1521
- else if (this.fileListList[this.filedId][i].url===file.url){
1522
- this.fileListList[this.filedId].splice(i,1)
1807
+ else if (this.extInfoFieldValue[this.filedId][i].url===file.url){
1808
+ this.extInfoFieldValue[this.filedId].splice(i,1)
1523
1809
  return
1524
1810
  }
1525
1811
  }
1526
1812
 
1527
1813
  }
1528
- /*let value=[]
1529
- for (let i=0;i<fileList.length;i++){
1530
- value[i]={}
1531
- value[i].name=fileList[i].name
1532
- if(fileList[i].response){
1533
- value[i].url=fileList[i].response.data
1534
- }
1535
- else {
1536
- value[i].url=fileList[i].url
1537
- }
1538
- }
1539
- for (let i=0;i<this.formShow.form.formFieldRelation.length;i++){
1540
- if (this.formShow.form.formFieldRelation[i].fieldId===this.filedId){
1541
- this.fileListList[this.filedId]=value
1542
- }
1543
- }*/
1544
- /*this.fileListList = [...this.fileListList]*/
1545
1814
  },
1546
1815
  handleEditChange(file,fileList){
1547
1816
  this.hideUploadEdit=fileList.length >= this.limitNum
1548
1817
  },
1549
-
1550
1818
  onUploadProgress: function (progress, point, file, videoData) {
1551
1819
  console.debug("upload video progress", progress, point);
1552
1820
  if (progress === 1) {
@@ -1559,64 +1827,266 @@ export default {
1559
1827
 
1560
1828
  }
1561
1829
  },
1562
- checkUpload(id,limitNum){
1830
+ checkUpload(id,extInfo){
1563
1831
  this.filedId=id
1564
- this.limitNum = limitNum
1832
+ this.limitNum = extInfo.limitNum?extInfo.limitNum:(extInfo.limit?extInfo.limit:1)
1565
1833
 
1566
1834
  },
1567
- beforeAvatarUpload(file){
1568
- const isLte2M = file.size / 1024 / 1024 <= 8;
1569
- const isSupportedFormat =file.type.indexOf('image')!==-1
1570
- if (!isSupportedFormat){
1571
- this.$message.error("只能上传图片格式");
1572
- return false
1573
- }
1574
- if (!isLte2M) {
1575
- this.$message.error("上传图片大小不能超过 8MB!");
1576
- return false
1577
- }
1578
- return true
1835
+ beforeAvatarUpload(file,type){
1836
+ if (type === 'IMAGE'){
1837
+ const isLte2M = file.size / 1024 / 1024 <= 8;
1838
+ const isSupportedFormat =file.type.indexOf('image')!==-1
1839
+ if (!isSupportedFormat){
1840
+ this.$message.error("只能上传图片格式");
1841
+ return false
1842
+ }
1843
+ if (!isLte2M) {
1844
+ this.$message.error("上传图片大小不能超过 8MB!");
1845
+ return false
1846
+ }
1847
+ return true
1848
+ }
1849
+ else if (type === 'VIDEO'){
1850
+ const isLte2M = file.size / 1024 / 1024 <= 100;
1851
+ const isSupportedFormat =file.type.indexOf('video')!==-1
1852
+ if (!isSupportedFormat){
1853
+ this.$message.error("只能上传视频格式");
1854
+ return false
1855
+ }
1856
+ if (!isLte2M&&isSupportedFormat) {
1857
+ this.$message.error("上传视频大小不能超过100MB!");
1858
+ return false
1859
+ }
1860
+ return true
1861
+ }
1862
+ else if (type === 'FILE' || type === 'ATTACHMENT'){
1863
+ const isLte2M = file.size / 1024 / 1024 <= 100;
1864
+ if (!isLte2M) {
1865
+ this.$message.error("上传附件大小不能超过100MB!");
1866
+ return false
1867
+ }
1868
+ return true
1869
+ }
1870
+
1579
1871
  },
1580
1872
  exceedUpload(){
1581
- this.$message.warning('上传文件数量达到上限')
1873
+ this.$message({
1874
+ message:"上传文件数量达到上限",
1875
+ duration:2000,
1876
+ type:'warning'
1877
+ })
1582
1878
  },
1583
1879
 
1584
1880
  handlePictureCardPreview(file) {
1585
1881
  this.videoFlag = true;
1586
1882
  this.videoUploadPercent = file.percentage.toFixed(0);
1587
1883
  },
1588
- },
1589
- //时间日期范围的点击事件
1590
- /* dateTimeClick(id){
1591
- for (let i=0;i<this.formList.form.formFieldRelation.length;i++)
1592
- {
1593
- if(this.formList.form.formFieldRelation[i].formField.id===id)
1594
- {
1595
- this.dateTimeId=id
1596
- this.showDateTimePicker = true
1597
- break
1884
+ refTemplateVisibleChange(visible,field) {
1885
+ console.debug('field1111',field)
1886
+ let fields = field.formField.type === 'REF' ? field.formField.extInfo.ref.field : field.formField.extInfo.ref.vars
1887
+ if (visible) {
1888
+ if (
1889
+ !this.refTemplateList[field.fieldId] || this.dataQuery[field.fieldId].hasNextPage
1890
+ ) {
1891
+ this.$set(this.refTemplateList, field.fieldId, [])
1892
+ !this.dataQuery[field.fieldId] && this.$set(this.dataQuery,field.fieldId, {
1893
+ filterId: '',
1894
+ keywords: '',
1895
+ pageInfo: {
1896
+ pageNo: 1,
1897
+ pageSize: 20
1898
+ },
1899
+ sortInfos: [],
1900
+ templateId: ''
1901
+ })
1902
+ let param = {
1903
+ templateId:field.formField.extInfo.ref.source,
1904
+ fieldId:fields,
1905
+ field:field,
1906
+ dataQuery:this.dataQuery
1907
+ }
1908
+ this.$emit('getTemplateList',param)
1598
1909
  }
1599
1910
  }
1600
1911
  },
1601
- dateTimeClick1(id){
1602
- if(this.dateTimeValue.length === 0)
1603
- {
1604
- this.$message.error('请先选择开始日期时间')
1912
+ changeRefData(value, item) {
1913
+ console.log(value);
1914
+ console.debug('value', value, item, this.refTemplateList[item.fieldId])
1915
+ let arr = []
1916
+ if (this.refTemplateList[item.fieldId]) {
1917
+ this.refTemplateList[item.fieldId].forEach(data => {
1918
+ if(typeof value == 'string' || typeof value == 'number') {
1919
+ if(value == data.id) {
1920
+ let obj = {
1921
+ name: data.name,
1922
+ id: data.id
1923
+ }
1924
+ arr.push(data)
1925
+ }
1926
+ } else {
1927
+ if (value.indexOf(data.id) !== -1) {
1928
+ let obj = {
1929
+ name: data.name,
1930
+ id: data.id
1931
+ }
1932
+ arr.push(data)
1933
+ }
1934
+ }
1935
+ })
1605
1936
  }
1606
- else
1607
- {
1608
- for (let i=0;i<this.formList.form.formFieldRelation.length;i++)
1609
- {
1610
- if(this.formList.form.formFieldRelation[i].formField.id===id)
1611
- {
1612
- this.dateTimeId=id
1613
- this.showDateTimePicker1 = true
1614
- break
1937
+ this.extInfoFieldValue[item.fieldId] = arr
1938
+ },
1939
+ lodeMore(item) {
1940
+ this.dataQuery[item.fieldId].pageInfo.pageNo += 1
1941
+ this.refTemplateVisibleChange(true,item)
1942
+ },
1943
+ //打开级联/下拉抽屉选择
1944
+ openDrawer(field,type){
1945
+ this.detailField = field;
1946
+ if (type == 'cascader' || type === 'pc_cascader'){
1947
+ if (type == 'cascader'){
1948
+ this.showArea = true;
1949
+ }
1950
+ else {
1951
+ this.drawer = true;
1952
+ }
1953
+ this.$nextTick(()=>{
1954
+ let arr = this.extInfoFieldValue[field.fieldId]?this.extInfoFieldValue[field.fieldId]:[]
1955
+ let drawerTree = this.$refs.drawerTree
1956
+ if (drawerTree) {
1957
+ if (Array.isArray(drawerTree)) {
1958
+ drawerTree.forEach(item => {
1959
+ item.$refs.dataTree.setCheckedNodes(arr);
1960
+ item.checked = this.extInfoFieldValue[field.fieldId] && this.extInfoFieldValue[field.fieldId][0] ? this.extInfoFieldValue[field.fieldId][0].value : '';
1961
+ })
1962
+ } else {
1963
+ drawerTree.$refs.dataTree.setCheckedNodes(arr);
1964
+ drawerTree.checked = this.extInfoFieldValue[field.fieldId] && this.extInfoFieldValue[field.fieldId][0] ? this.extInfoFieldValue[field.fieldId][0].value : '';
1965
+ }
1615
1966
  }
1967
+ })
1968
+ }
1969
+ else if (type === 'select'){
1970
+ this.options = field.formField.extInfo.option?field.formField.extInfo.option:field.formField.extInfo.options;
1971
+ this.selectPopUp = true;
1972
+ if (!this.detailField.value){
1973
+ return
1974
+ }
1975
+ if (Array.isArray(this.detailField.value)){
1976
+ this.defaultValue = this.detailField.value
1616
1977
  }
1978
+ else {
1979
+ this.defaultValue = [this.detailField.value]
1980
+ }
1981
+ console.debug('selectPopUp',this.selectPopUp,this.options)
1982
+ }
1983
+ },
1984
+ //保存级联数据
1985
+ saveData(checkList,checkDatas){
1986
+ this.$set(this.detailField,'value',checkList);
1987
+ this.extInfoFieldValue[this.detailField.fieldId] = checkDatas;
1988
+ this.$set(this.detailField.formField.extInfo,'extInfoFieldValue',checkDatas);
1989
+ console.debug('checkDatas',this.detailField.formField.extInfo,checkList)
1990
+ this.$forceUpdate();
1991
+ this.showArea = false;
1992
+ this.drawer = false;
1993
+ },
1994
+ //保存所选下拉值
1995
+ confirmSelect(option, list){
1996
+ console.debug('option',option,list)
1997
+ this.detailField.value = list;
1998
+ this.selectPopUp = false
1999
+ this.selectPicker = false
2000
+ },
2001
+ //保存ref类型值
2002
+ confirmRefSelect(option, list){
2003
+ console.debug('options',option,list)
2004
+ if (!option || !list){
2005
+ this.refShowPicker = false;
2006
+ return
2007
+ }
2008
+ this.detailField.value = list;
2009
+ let val = ''
2010
+ if (Array.isArray(option)){
2011
+ val = option.map(item=>{
2012
+ return item.id
2013
+ })
2014
+ this.extInfoFieldValue[this.detailField.fieldId] = option
2015
+ }
2016
+ else {
2017
+ val = option.id
2018
+ this.extInfoFieldValue[this.detailField.fieldId] = [option]
1617
2019
  }
2020
+ this.refShowPicker = false;
2021
+ },
2022
+ // 一个重复的方法 兼容 状态优先级 的关联控件,
2023
+ relationSet(field,list) {
2024
+ let flag = false
2025
+ console.debug('field',field,field.extInfo && field.extInfo[list])
2026
+ // 如果在extInfo下有该字段,表示已被关联,否则根据 类型去判断 retrun true 或者false
2027
+ if(field.extInfo && field.extInfo[list] && Object.keys(field.extInfo[list]).length !== 0) {
2028
+ for (const key in field.extInfo[list]) {
2029
+ const element = field.extInfo[list][key];
2030
+ let orderFieldValue = ""
2031
+ for (let i=0;i<this.formShow.form.formFieldRelation.length;i++){
2032
+ if (key === this.formShow.form.formFieldRelation[i].fieldId || key === this.formShow.form.formFieldRelation[i].formField.workOrderFieldId){
2033
+ orderFieldValue = this.formShow.form.formFieldRelation[i].value
2034
+ break
2035
+ }
2036
+ }
2037
+ console.debug('orderFieldValue',orderFieldValue)
2038
+ if(orderFieldValue) {
2039
+ if(Array.isArray(orderFieldValue)) {
2040
+ if(Array.isArray(element)) {
2041
+ for (let index = 0; index < element.length; index++) {
2042
+ flag = orderFieldValue.some(item =>{ return item == element[index] })
2043
+ if(flag) {
2044
+ return flag
2045
+ }
2046
+ }
2047
+ } else {
2048
+ flag = orderFieldValue.some(item =>{ return item == element })
2049
+ if(flag) {
2050
+ return flag
2051
+ }
2052
+ }
2053
+ } else {
2054
+ if(Array.isArray(element)) {
2055
+ for (let index = 0; index < element.length; index++) {
2056
+ flag = element[index] == orderFieldValue
2057
+ if(flag) {
2058
+ return flag
2059
+ }
2060
+ }
2061
+ } else {
2062
+ flag = element == orderFieldValue
2063
+ if(flag) {
2064
+ return flag
2065
+ }
2066
+ }
1618
2067
 
1619
- },*/
2068
+ }
2069
+ }
2070
+ else if(list == 'dependentFieldId') {
2071
+ return flag = false
2072
+ }
2073
+ }
2074
+ } else if(list == 'dependentFieldId') {
2075
+ return flag = true
2076
+ } else if(list == 'requiredDependentFieldId') {
2077
+ return flag = false
2078
+ }
2079
+ return flag
2080
+ },
2081
+ },
2082
+ watch:{
2083
+ formFieldValus:{
2084
+ handler(value){
2085
+ console.log(value);
2086
+ },
2087
+ deep:true
2088
+ }
2089
+ }
1620
2090
 
1621
2091
 
1622
2092
 
@@ -1684,6 +2154,34 @@ export default {
1684
2154
  border-bottom-left-radius: 9px!important;
1685
2155
  border-bottom-right-radius: 9px!important;
1686
2156
  }
2157
+ .cascader-class{
2158
+ padding: 10px 16px;
2159
+ }
2160
+ .cascader-input{
2161
+ -webkit-appearance: none;
2162
+ background-image: none;
2163
+ border: 1px solid #E0E6F7;
2164
+ -webkit-box-sizing: border-box;
2165
+ box-sizing: border-box;
2166
+ color: #606266;
2167
+ display: inline-block;
2168
+ height: 40px;
2169
+ line-height: 40px;
2170
+ outline: 0;
2171
+ padding: 0 15px;
2172
+ -webkit-transition: border-color .2s cubic-bezier(.645,.045,.355,1);
2173
+ transition: border-color .2s cubic-bezier(.645,.045,.355,1);
2174
+ width: 100%;
2175
+ background-color: transparent!important;
2176
+ border-radius: 9px!important;
2177
+ cursor: pointer;
2178
+ font-size: 14px;
2179
+ }
2180
+ .cascader-name{
2181
+ color: #A9B3C6;
2182
+ font-size: 1em;
2183
+ padding-bottom: 8px;
2184
+ }
1687
2185
  }
1688
2186
  .pcFormClass{
1689
2187
  width: 400px;
@@ -1707,6 +2205,31 @@ export default {
1707
2205
  border-radius: 9px!important;
1708
2206
  padding: 9px 15px!important;
1709
2207
  }
2208
+ .upload-demo{
2209
+ background-color: #FFFFFF;
2210
+ border: 1px solid #E0E6F7;
2211
+ border-radius: 10px;
2212
+ width: 74px;
2213
+ height: 74px;
2214
+ vertical-align: top;
2215
+ cursor: pointer;
2216
+ text-align: center;
2217
+ font-size:28px;
2218
+ color:#366AFF;
2219
+ display: -webkit-box;
2220
+ align-items: center;
2221
+ justify-content: center;
2222
+ i{
2223
+ color: #366AFF;
2224
+ }
2225
+ /deep/.el-upload{
2226
+ height: 100%;
2227
+ width: 100%;
2228
+ display: flex;
2229
+ align-items: center;
2230
+ justify-content: center;
2231
+ }
2232
+ }
1710
2233
  /deep/.el-upload--picture-card{
1711
2234
  background-color: #FFFFFF;
1712
2235
  border: 1px solid #E0E6F7;
@@ -1774,6 +2297,7 @@ export default {
1774
2297
  .remPhoneClassForm{
1775
2298
  .mobileFormClass{
1776
2299
  width: calc(100vw - 110px);
2300
+ background-color: white;
1777
2301
  .form-field-item{
1778
2302
  .form-field-item-value{
1779
2303
  /deep/.van-cell{
@@ -1790,7 +2314,7 @@ export default {
1790
2314
  color: #999999!important;
1791
2315
  }
1792
2316
  .form-field-item-file{
1793
- padding: 8px;
2317
+ padding: 10px 16px;
1794
2318
  .fileName{
1795
2319
  padding-bottom: 8px;
1796
2320
  color: #A9B3C6;
@@ -2000,5 +2524,8 @@ export default {
2000
2524
  height: 14px !important;
2001
2525
  }
2002
2526
  }
2003
-
2527
+ .drawer-container{
2528
+ height: 100%;
2529
+ overflow: hidden;
2530
+ }
2004
2531
  </style>