1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
<div class="model-content">
<div class="card-config">
<div class="card-item" style="padding: 0.5vw;" >
<div class="card-item-content border" style="min-width: 1280px">
<div class="card-item-content">
<div class="title" >
题目素材
</div>
<div class="section" >
<div class="section-content">
<div style="display: flex; margin-bottom: 10px;">
<div style="flex:1; text-align: right; margin-right: 10px;">
<span>显示选项</span><span> :</span>
</div>
<div style="flex:3">
<nz-radio-group [(ngModel)]="contentObj.mainQuestion.type" (ngModelChange)="saveItem()" >
<label nz-radio [nzValue]="'Text'">文字</label>
<label nz-radio [nzValue]="'Image'">图片</label>
<label nz-radio [nzValue]="'LongAudio'">长音频</label>
</nz-radio-group>
</div>
<div style="flex:8">
<div *ngIf="contentObj.mainQuestion.type=='Image'">
<app-upload-image-with-preview style="width: 100%;" [picUrl]="contentObj.mainQuestion.image_url" (imageUploaded)="onImageUploadSuccessByItem($event, contentObj.mainQuestion, 'image_url')"></app-upload-image-with-preview>
</div>
<div *ngIf="contentObj.mainQuestion.type=='Text'">
<textarea type="text" nz-input placeholder="" [(ngModel)]="contentObj.mainQuestion.text" (blur)="saveItem()" ></textarea>
</div>
<div *ngIf="contentObj.mainQuestion.type=='LongAudio'">
<app-audio-recorder [audioUrl]="contentObj.mainQuestion.longAudio_url" (audioUploaded)="onAudioUploadSuccessByItem($event, contentObj.mainQuestion, 'longAudio_url')" ></app-audio-recorder>
</div>
</div>
</div>
</div>
</div>
<div class="section" >
<div class="section-content">
<div style="display: flex; margin-bottom: 10px;">
<div style="flex:1; text-align: right; margin-right: 10px;">
<span>短音频</span><span> :</span>
</div>
<div style="flex:3">
<app-audio-recorder [audioUrl]="contentObj.mainQuestion.shortAudio_url" (audioUploaded)="onAudioUploadSuccessByItem($event, contentObj.mainQuestion, 'shortAudio_url')" ></app-audio-recorder>
</div>
<div style="flex:8"></div>
</div>
</div>
</div>
<!-- 上层卡片 -->
<div class="title" >
上层卡片
</div>
<div class="section">
<div class="section-content">
<div *ngFor="let it of item.contentObj.textUp; let i = index" class="card-item" >
<div style="display: flex;">
<div style="flex:1; text-align: right; margin-right: 10px;">
<span>{{i+1}}</span><span> :</span>
</div>
<div style="flex:3">
<input type="text" nz-input placeholder="" [(ngModel)]="it.text" (blur)="saveItem()"/>
</div>
<div style="flex:8" style="margin-left: 20px;">
<span>对应下层卡片</span><span> : </span>
<nz-checkbox-group [(ngModel)]="it.checkOptions" (ngModelChange)="save()"></nz-checkbox-group>
</div>
<div style="flex:4">
<div style="float:right; text-align: left; padding-left: 20px;">
<button style="vertical-align:baseline;" nz-button nzType="default" (click)="handleMoveItemUp(item.contentObj.textUp, i)" [disabled]="i==0">
<i nz-icon nzType="up" nzTheme="outline" style="float: left; margin-top: 4px;"></i>
<span style="float: right;">上移</span>
</button>
<button style="margin-left: 10px; vertical-align:baseline;" nz-button nzType="default" (click)="handleMoveItemDown(item.contentObj.textUp, i)" [disabled]="i==item.contentObj.textUp.length-1">
<i nz-icon nzType="down" nzTheme="outline" style="float: left; margin-top: 4px;"></i>
<span style="float: right;">下移</span>
</button>
<button style="margin-left: 10px; vertical-align:baseline;" nz-button nzType="danger" (click)="deleteItem(item.contentObj.textUp, i)" >
<span>删除</span>
</button>
</div>
</div>
</div>
</div>
<div class="card-item" style="padding: 0.5vw; text-align: right;" >
<button nz-button nzType="primary" (click)="addItem(item.contentObj.textUp, 'card')">
<i nz-icon nzType="plus-circle" nzTheme="outline"></i>
新建卡片
</button>
</div>
</div>
</div>
<!-- 下层卡片 -->
<div class="title" >
下层卡片
</div>
<div class="section" >
<div class="section-content">
<div *ngFor="let it of item.contentObj.textDown; let i = index" class="card-item" >
<div style="display: flex;">
<div style="flex:1; text-align: right; margin-right: 10px;">
<span>{{i+1}}</span><span> :</span>
</div>
<div style="flex:3">
<input type="text" nz-input placeholder="" [(ngModel)]="it.text" (blur)="saveItem()"/>
</div>
<div style="flex:8">
</div>
<div style="flex:4">
<div style="float:right; text-align: left; padding-left: 20px;">
<button style="vertical-align:baseline;" nz-button nzType="default" (click)="handleMoveItemUp(item.contentObj.textDown, i)" [disabled]="i==0">
<i nz-icon nzType="up" nzTheme="outline" style="float: left; margin-top: 4px;"></i>
<span style="float: right;">上移</span>
</button>
<button style="margin-left: 10px; vertical-align:baseline;" nz-button nzType="default" (click)="handleMoveItemDown(item.contentObj.textDown, i)" [disabled]="i==item.contentObj.textDown.length-1">
<i nz-icon nzType="down" nzTheme="outline" style="float: left; margin-top: 4px;"></i>
<span style="float: right;">下移</span>
</button>
<button style="margin-left: 10px; vertical-align:baseline;" nz-button nzType="danger" (click)="deleteItem(item.contentObj.textDown, i)" >
<span>删除</span>
</button>
</div>
</div>
</div>
</div>
<div class="card-item" style="padding: 0.5vw; text-align: right;" >
<button nz-button nzType="primary" (click)="addItem(item.contentObj.textDown, 'card')">
<i nz-icon nzType="plus-circle" nzTheme="outline"></i>
新建卡片
</button>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>