@ebiz/designer-components 0.1.101 → 0.1.103
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.
package/package.json
CHANGED
|
@@ -888,7 +888,7 @@ defineExpose({
|
|
|
888
888
|
|
|
889
889
|
.time-slots-grid {
|
|
890
890
|
display: grid;
|
|
891
|
-
grid-template-columns: repeat(auto-fill, minmax(
|
|
891
|
+
grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
|
|
892
892
|
gap: 12px;
|
|
893
893
|
}
|
|
894
894
|
|
|
@@ -896,11 +896,10 @@ defineExpose({
|
|
|
896
896
|
background: #f6ffed;
|
|
897
897
|
border: 1px solid #52c41a;
|
|
898
898
|
border-radius: 8px;
|
|
899
|
-
padding: 12px;
|
|
900
899
|
text-align: center;
|
|
901
900
|
cursor: pointer;
|
|
902
901
|
transition: all 0.2s ease;
|
|
903
|
-
min-height:
|
|
902
|
+
min-height: 60px;
|
|
904
903
|
display: flex;
|
|
905
904
|
flex-direction: column;
|
|
906
905
|
justify-content: center;
|
|
@@ -1133,7 +1132,6 @@ defineExpose({
|
|
|
1133
1132
|
}
|
|
1134
1133
|
|
|
1135
1134
|
.time-slot {
|
|
1136
|
-
padding: 8px;
|
|
1137
1135
|
min-height: 60px;
|
|
1138
1136
|
}
|
|
1139
1137
|
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
<ebiz-s-form-item
|
|
43
43
|
label="访谈时间"
|
|
44
44
|
name="interview_time"
|
|
45
|
-
type="
|
|
45
|
+
type="datetime"
|
|
46
46
|
:multiple="false"
|
|
47
47
|
v-model="state.interviewFormData.interview_time"
|
|
48
48
|
:options="[]"
|
|
@@ -102,17 +102,26 @@
|
|
|
102
102
|
style="display: flex; flex-direction: column; align-items: center"
|
|
103
103
|
class="component-base-style"
|
|
104
104
|
>
|
|
105
|
-
<span style="display: inline-block; white-space: nowrap" class="component-base-style"
|
|
105
|
+
<span style="display: inline-block; white-space: nowrap; font-size: 12px;" class="component-base-style"
|
|
106
106
|
>有问题</span
|
|
107
107
|
>
|
|
108
108
|
<ebiz-switch
|
|
109
|
-
size="
|
|
109
|
+
size="small"
|
|
110
110
|
theme="primary"
|
|
111
111
|
class="component-base-style"
|
|
112
112
|
:modelValue="item.need_follow"
|
|
113
113
|
@change="(...eventArgs) => syncVal(eventArgs, item, 'need_follow')"
|
|
114
114
|
></ebiz-switch>
|
|
115
115
|
</div>
|
|
116
|
+
<div v-if="item.need_follow">
|
|
117
|
+
<ebiz-tdesign-button
|
|
118
|
+
theme="primary"
|
|
119
|
+
size="small"
|
|
120
|
+
content="跟进人"
|
|
121
|
+
class="component-base-style"
|
|
122
|
+
@click="openFollowListDialog(item,index)"
|
|
123
|
+
></ebiz-tdesign-button>
|
|
124
|
+
</div>
|
|
116
125
|
</div>
|
|
117
126
|
</div></div></template
|
|
118
127
|
></t-form>
|
|
@@ -161,6 +170,7 @@
|
|
|
161
170
|
</ebiz-s-data></ebiz-tab-panel></ebiz-tabs></template
|
|
162
171
|
></ebiz-dialog>
|
|
163
172
|
<ebiz-dialog
|
|
173
|
+
:zIndex="5000"
|
|
164
174
|
width="700"
|
|
165
175
|
header="问题列表"
|
|
166
176
|
body="对话框内容"
|
|
@@ -191,6 +201,38 @@
|
|
|
191
201
|
</div></template
|
|
192
202
|
></ebiz-dialog
|
|
193
203
|
>
|
|
204
|
+
|
|
205
|
+
<ebiz-dialog
|
|
206
|
+
:zIndex="5500"
|
|
207
|
+
width="500"
|
|
208
|
+
header="跟进人"
|
|
209
|
+
body="对话框内容"
|
|
210
|
+
mode="modal"
|
|
211
|
+
placement="center"
|
|
212
|
+
confirmBtn="确认"
|
|
213
|
+
cancelBtn="取消"
|
|
214
|
+
:footer="true"
|
|
215
|
+
class="component-base-style"
|
|
216
|
+
v-model:visible="state.showFollow">
|
|
217
|
+
<template #default>
|
|
218
|
+
<ebiz-employee-selector
|
|
219
|
+
:single="false"
|
|
220
|
+
defaultTab="organization"
|
|
221
|
+
content="请选择跟进人"
|
|
222
|
+
class="component-base-style"
|
|
223
|
+
v-model="state.follow_employee_list">
|
|
224
|
+
</ebiz-employee-selector>
|
|
225
|
+
</template>
|
|
226
|
+
<template #footer>
|
|
227
|
+
<ebiz-tdesign-button
|
|
228
|
+
content="确定"
|
|
229
|
+
theme="primary"
|
|
230
|
+
size="medium"
|
|
231
|
+
class="component-base-style"
|
|
232
|
+
@click="saveQuestionFollow"
|
|
233
|
+
></ebiz-tdesign-button>
|
|
234
|
+
</template>
|
|
235
|
+
</ebiz-dialog>
|
|
194
236
|
</div>
|
|
195
237
|
</template>
|
|
196
238
|
|
|
@@ -209,6 +251,7 @@ import EbizSFormItem from './senior/EbizSForm/item.vue'
|
|
|
209
251
|
import EbizTag from './TdesignTag.vue'
|
|
210
252
|
import * as vue from 'vue'
|
|
211
253
|
import dataService from '../apiService/simpleDataService';
|
|
254
|
+
import EbizEmployeeSelector from './EbizEmployeeSelector.vue'
|
|
212
255
|
|
|
213
256
|
|
|
214
257
|
const props = defineProps({
|
|
@@ -247,9 +290,10 @@ const state = vue.reactive({
|
|
|
247
290
|
cell: (h,{ row }) => {
|
|
248
291
|
return (
|
|
249
292
|
<EbizTdesignButton
|
|
293
|
+
variant="text"
|
|
250
294
|
theme="primary"
|
|
251
295
|
size="medium"
|
|
252
|
-
content="
|
|
296
|
+
content="访谈情况"
|
|
253
297
|
ghost={false}
|
|
254
298
|
class="component-base-style"
|
|
255
299
|
loading={state.loading}
|
|
@@ -275,7 +319,10 @@ const state = vue.reactive({
|
|
|
275
319
|
gridParams: vue.computed(() => ({ employee: employeeId.value })),
|
|
276
320
|
loading: false,
|
|
277
321
|
nowQuestions: [],
|
|
278
|
-
questionShow: false
|
|
322
|
+
questionShow: false,
|
|
323
|
+
showFollow: false,
|
|
324
|
+
follow_employee_list: [],
|
|
325
|
+
selected_qs_index: 0
|
|
279
326
|
})
|
|
280
327
|
function calcTime(timeStr = 0, type = null, dontFill = false) {
|
|
281
328
|
if (!timeStr) return '-';
|
|
@@ -356,7 +403,9 @@ function calcQuestion(type_id) {
|
|
|
356
403
|
})
|
|
357
404
|
}
|
|
358
405
|
async function formatData(event) {
|
|
359
|
-
|
|
406
|
+
console.log('questionList',state.questionList)
|
|
407
|
+
let {userId} = JSON.parse(localStorage.getItem('user') || '{}')
|
|
408
|
+
let valid = await form.value.validate()
|
|
360
409
|
if (valid !== true) return false
|
|
361
410
|
state.interviewFormData.content = state.questionList.map((i) => {
|
|
362
411
|
return {
|
|
@@ -365,11 +414,42 @@ async function formatData(event) {
|
|
|
365
414
|
answer: i.answer
|
|
366
415
|
}
|
|
367
416
|
})
|
|
417
|
+
|
|
418
|
+
const interview_records=state.questionList.map((item)=>{
|
|
419
|
+
return {
|
|
420
|
+
question_id: item.id,
|
|
421
|
+
employee: props.employeeId,
|
|
422
|
+
content: item.answer,
|
|
423
|
+
is_follow_task: Number(item.need_follow),
|
|
424
|
+
need_follow: item.need_follow,
|
|
425
|
+
follow_status: 'ing'
|
|
426
|
+
}
|
|
427
|
+
})
|
|
428
|
+
|
|
429
|
+
const taskList=state.questionList.filter((item)=>item.need_follow).map((item)=>{
|
|
430
|
+
return {
|
|
431
|
+
source: 'follow_task',
|
|
432
|
+
question_id: item.id,
|
|
433
|
+
title: item?.type_id_info?.name + '跟进',
|
|
434
|
+
duty_employee_list: item?.duty_employee_list||[],
|
|
435
|
+
follow_employee_list: item.follow_employee_list,
|
|
436
|
+
remark: item.name + `<div style='color: blue; font-size: 12px; background-color: #f5f5f5; padding: 4px 8px; border-radius: 3px;'>` + item?.answer + '</div>',
|
|
437
|
+
status: 'wait_feedback',
|
|
438
|
+
create_by: userId,
|
|
439
|
+
create_at: Date.now()
|
|
440
|
+
}
|
|
441
|
+
})
|
|
442
|
+
|
|
368
443
|
dataService.fetch({
|
|
369
|
-
saveData:
|
|
444
|
+
saveData: {
|
|
445
|
+
...state.interviewFormData,
|
|
446
|
+
employee_interview_question_answer_record: interview_records,
|
|
447
|
+
taskList: taskList
|
|
448
|
+
}
|
|
370
449
|
},{
|
|
371
450
|
key: 'interview_record_save'
|
|
372
451
|
}).then(closeTalkSave)
|
|
452
|
+
|
|
373
453
|
}
|
|
374
454
|
function submitSuccess(event) {
|
|
375
455
|
emit('api_success')
|
|
@@ -399,5 +479,15 @@ function closeQuestion(event) {
|
|
|
399
479
|
state.questionShow = false
|
|
400
480
|
}
|
|
401
481
|
|
|
482
|
+
const openFollowListDialog=(item,index)=>{
|
|
483
|
+
state.selected_qs_index=index
|
|
484
|
+
state.showFollow=true
|
|
485
|
+
state.follow_employee_list=item?.follow_employee_list||[]
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
const saveQuestionFollow=()=>{
|
|
489
|
+
state.questionList[state.selected_qs_index].follow_employee_list=state.follow_employee_list
|
|
490
|
+
state.showFollow=false
|
|
491
|
+
}
|
|
402
492
|
</script>
|
|
403
493
|
<style scoped></style>
|