Commit 4340345d authored by limingzhe's avatar limingzhe

feat: 子模版隐藏

parent 6cd8b41d
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
</div> </div>
<iframe #iframe id="iframe" [src]="safeUrl" style="width: 95vw; height: 70vh; border: 1px solid #ccc; padding: 5px;" frameborder="0"> <iframe *ngIf="isShowFrame" #iframe id="iframe" [src]="safeUrl" style="width: 98%; height: 70vh; border: 1px solid #ccc; padding: 5px;" frameborder="0">
</iframe> </iframe>
......
...@@ -29,6 +29,7 @@ export class SubTemplateComponent implements OnDestroy, OnChanges { ...@@ -29,6 +29,7 @@ export class SubTemplateComponent implements OnDestroy, OnChanges {
if (this.uploadUrl) { if (this.uploadUrl) {
this._item = v; this._item = v;
console.log(' __ refreshSafeUrl 3')
this.refreshSafeUrl(); this.refreshSafeUrl();
} }
this._data = v; this._data = v;
...@@ -41,6 +42,9 @@ export class SubTemplateComponent implements OnDestroy, OnChanges { ...@@ -41,6 +42,9 @@ export class SubTemplateComponent implements OnDestroy, OnChanges {
_item; _item;
_data; _data;
isShowFrame = true;
@Input() @Input()
key = ''; key = '';
...@@ -52,10 +56,17 @@ export class SubTemplateComponent implements OnDestroy, OnChanges { ...@@ -52,10 +56,17 @@ export class SubTemplateComponent implements OnDestroy, OnChanges {
constructor(private el:ElementRef, private appRef: ApplicationRef, private nzMessageService: NzMessageService, private sanitizer: DomSanitizer) { constructor(private el:ElementRef, private appRef: ApplicationRef, private nzMessageService: NzMessageService, private sanitizer: DomSanitizer) {
console.log(' in constructor 1111:', window['air']);
this.uploadUrl = (<any> window).courseware.uploadUrl(); this.uploadUrl = (<any> window).courseware.uploadUrl();
this.uploadData = (<any> window).courseware.uploadData(); this.uploadData = (<any> window).courseware.uploadData();
window['air'].getUploadCallback = (url, data) => { window['air'].getUploadCallback = (url, data) => {
console.log(' in getUploadCallback , url: ', url)
this.uploadUrl = url; this.uploadUrl = url;
this.uploadData = data; this.uploadData = data;
...@@ -64,6 +75,12 @@ export class SubTemplateComponent implements OnDestroy, OnChanges { ...@@ -64,6 +75,12 @@ export class SubTemplateComponent implements OnDestroy, OnChanges {
this.setUploadUrl(); this.setUploadUrl();
if (!window['hw_test_count']) {
window['hw_test_count'] = 0
}
window['hw_test_count'] += 1;
console.log('window_count:', window['hw_test_count'])
} }
...@@ -71,17 +88,30 @@ export class SubTemplateComponent implements OnDestroy, OnChanges { ...@@ -71,17 +88,30 @@ export class SubTemplateComponent implements OnDestroy, OnChanges {
if (!this.uploadUrl) { if (!this.uploadUrl) {
console.log('this.uploadUrl -- 1 : ', this.uploadUrl)
this.uploadUrl = (<any> window).courseware.uploadUrl(); this.uploadUrl = (<any> window).courseware.uploadUrl();
this.uploadData = (<any> window).courseware.uploadData(); this.uploadData = (<any> window).courseware.uploadData();
console.log('this.uploadUrl -- 2 : ', this.uploadUrl)
console.log('(<any> window).courseware: ', (<any> window).courseware);
console.log('window_count:', window['hw_test_count'])
// console.log('this.iframe cWindow: ', this.iframe.nativeElement.contentWindow)
setTimeout(() => { setTimeout(() => {
this.setUploadUrl(); this.setUploadUrl();
}, 500); }, 500);
} else { } else {
console.log('this.uploadUrl -- 3 : ', this.uploadUrl)
if (this._data) { if (this._data) {
this._item = this._data; this._item = this._data;
console.log(' __ refreshSafeUrl 4')
this.refreshSafeUrl() this.refreshSafeUrl()
} }
...@@ -93,7 +123,11 @@ export class SubTemplateComponent implements OnDestroy, OnChanges { ...@@ -93,7 +123,11 @@ export class SubTemplateComponent implements OnDestroy, OnChanges {
if (!formUrl) { if (!formUrl) {
formUrl = this._item.formUrl || ''; formUrl = this._item.formUrl || '';
} }
console.log(' in refreshSafeUrl formUrl:', formUrl)
this.safeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(formUrl); this.safeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(formUrl);
console.log(' in refreshSafeUrl safeUrl:', this.safeUrl)
} }
...@@ -101,16 +135,19 @@ export class SubTemplateComponent implements OnDestroy, OnChanges { ...@@ -101,16 +135,19 @@ export class SubTemplateComponent implements OnDestroy, OnChanges {
} }
isInit = false;
ngOnInit(): void { ngOnInit(): void {
this.initListener();
console.log('')
console.log(' in ngOnInit ')
if (!this._item) { if (!this._item) {
this._item = {}; this._item = {};
} }
this.refreshSafeUrl();
console.log(' __ refreshSafeUrl 1')
this.initListener();
...@@ -133,6 +170,7 @@ export class SubTemplateComponent implements OnDestroy, OnChanges { ...@@ -133,6 +170,7 @@ export class SubTemplateComponent implements OnDestroy, OnChanges {
deleteSubTemplate() { deleteSubTemplate() {
console.log('in deleteFunc'); console.log('in deleteFunc');
this.refreshSafeUrl('');
this.deleteFunc.emit({}); this.deleteFunc.emit({});
} }
...@@ -148,10 +186,15 @@ export class SubTemplateComponent implements OnDestroy, OnChanges { ...@@ -148,10 +186,15 @@ export class SubTemplateComponent implements OnDestroy, OnChanges {
this._item.formUrl = formUrl; this._item.formUrl = formUrl;
this._item.template = template; this._item.template = template;
console.log('formUrl: ', formUrl)
console.log(' __ refreshSafeUrl 2')
this.refreshSafeUrl(); this.refreshSafeUrl();
this.closePanel(); this.closePanel();
this.sendData(); this.sendData();
console.log('this.safeUrl 2 : ', this.safeUrl)
// const key = this.getQueryVariable(formUrl, 'key'); // const key = this.getQueryVariable(formUrl, 'key');
// console.log("key: ", key); // console.log("key: ", key);
// console.log("url: ", this._item['safeUrl']); // console.log("url: ", this._item['safeUrl']);
...@@ -177,19 +220,28 @@ export class SubTemplateComponent implements OnDestroy, OnChanges { ...@@ -177,19 +220,28 @@ export class SubTemplateComponent implements OnDestroy, OnChanges {
initListener() { initListener() {
console.log(this.el.nativeElement);
const iframeContent = this.el.nativeElement.querySelector('#iframe').contentWindow;
const msgFunc = (e) => {
window.addEventListener('message', (e) => {
let msgData = e.data; console.log('!!!e : ', e);
if (!this.iframe || !this.iframe.nativeElement || !this.iframe.nativeElement.contentWindow) {
console.log('this.iframe not exist');
window.removeEventListener('message', msgFunc);
return;
}
let msgData = e.data;
if (msgData.action === "getData") { if (msgData.action === "getData") {
console.log("getData e: ", e); console.log("getData e: ", e);
if (this.iframe) {
console.log('ifram exist: ', this.iframe);
}
if (!msgData.urlParams) { if (!msgData.urlParams) {
console.log(' !msgData.urlParams: ' , msgData) console.log(' !msgData.urlParams: ' , msgData)
return; return;
...@@ -202,14 +254,14 @@ export class SubTemplateComponent implements OnDestroy, OnChanges { ...@@ -202,14 +254,14 @@ export class SubTemplateComponent implements OnDestroy, OnChanges {
} }
if ( !iframeContent ) { if ( !this.iframe.nativeElement ) {
return; return;
} }
const data = { msg: 'success', data: JSON.stringify(this._item.data)}; const data = { msg: 'success', data: JSON.stringify(this._item.data)};
iframeContent.postMessage( { action: 'getData', data: JSON.stringify(data) }, '*'); // iframeContent.postMessage( { action: 'getData', data: JSON.stringify(data) }, '*');
// this.iframe.nativeElement.contentWindow.postMessage( { action: 'getData', data: JSON.stringify(data) }, '*'); this.iframe.nativeElement.contentWindow.postMessage( { action: 'getData', data: JSON.stringify(data) }, '*');
} }
...@@ -228,6 +280,12 @@ export class SubTemplateComponent implements OnDestroy, OnChanges { ...@@ -228,6 +280,12 @@ export class SubTemplateComponent implements OnDestroy, OnChanges {
} }
console.log("setData e: ", e); console.log("setData e: ", e);
if (this.iframe) {
console.log('ifram exist: ', this.iframe);
}
if (typeof(msgData.data) === "string") { if (typeof(msgData.data) === "string") {
console.log('msgData is string'); console.log('msgData is string');
msgData.data = JSON.parse(msgData.data); msgData.data = JSON.parse(msgData.data);
...@@ -242,17 +300,27 @@ export class SubTemplateComponent implements OnDestroy, OnChanges { ...@@ -242,17 +300,27 @@ export class SubTemplateComponent implements OnDestroy, OnChanges {
console.log( ' in getUpload') console.log( ' in getUpload')
if (this.iframe) {
console.log('ifram exist: ', this.iframe);
}
// const iframeContent = this.el.nativeElement.querySelector('#iframe').contentWindow;
iframeContent.postMessage({ this.iframe.nativeElement.contentWindow.postMessage({
action: 'getUpload', action: 'getUpload',
uploadUrl: this.uploadUrl, uploadUrl: this.uploadUrl,
uploadData: this.uploadData uploadData: this.uploadData
}, '*'); }, '*');
} }
}
if (this.iframe?.nativeElement?.contentWindow) {
this.iframe.nativeElement.contentWindow.addEventListener('message', msgFunc);
}); }
} }
async getAllTemplateData() { async getAllTemplateData() {
...@@ -277,7 +345,6 @@ export class SubTemplateComponent implements OnDestroy, OnChanges { ...@@ -277,7 +345,6 @@ export class SubTemplateComponent implements OnDestroy, OnChanges {
] ]
resolve(data); resolve(data);
return return
if (data) { if (data) {
console.log('data~~~:', data); console.log('data~~~:', data);
resolve(JSON.parse(data)); resolve(JSON.parse(data));
...@@ -338,8 +405,8 @@ export class SubTemplateComponent implements OnDestroy, OnChanges { ...@@ -338,8 +405,8 @@ export class SubTemplateComponent implements OnDestroy, OnChanges {
} }
ngOnDestroy() { ngOnDestroy() {
this.isShowFrame = false;
} }
} }
...@@ -49,14 +49,18 @@ export class UploadImageWithPreviewComponent implements OnDestroy, OnChanges { ...@@ -49,14 +49,18 @@ export class UploadImageWithPreviewComponent implements OnDestroy, OnChanges {
setUploadUrl() { setUploadUrl() {
if (!this.uploadUrl) { if (!this.uploadUrl) {
console.log('this.uploadUrl -=- 1 : ', this.uploadUrl)
this.uploadUrl = (<any> window).courseware.uploadUrl(); this.uploadUrl = (<any> window).courseware.uploadUrl();
this.uploadData = (<any> window).courseware.uploadData(); this.uploadData = (<any> window).courseware.uploadData();
console.log('this.uploadUrl -=- 2 : ', this.uploadUrl)
setTimeout(() => { setTimeout(() => {
this.setUploadUrl(); this.setUploadUrl();
}, 500); }, 500);
} }
console.log('this.uploadUrl -=- 3 : ', this.uploadUrl)
} }
......
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
</div> </div>
<div *ngIf="item.templateArr" > <!-- <div *ngIf="item.templateArr" >
<div *ngFor="let template of item.templateArr; let i = index" style="margin-bottom: 10px;"> <div *ngFor="let template of item.templateArr; let i = index" style="margin-bottom: 10px;">
<app-sub-template <app-sub-template
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
<button nz-button nzType="primary" (click)="addSubTemplate()" style="border-radius: 0.5rem; border: 1px solid #ddd; margin-top: 15px;"> <button nz-button nzType="primary" (click)="addSubTemplate()" style="border-radius: 0.5rem; border: 1px solid #ddd; margin-top: 15px;">
<i nz-icon nzType="plus" nzTheme="outline"></i> <i nz-icon nzType="plus" nzTheme="outline"></i>
添加子模板 添加子模板
</button> </button> -->
<!-- <!--
......
...@@ -98,7 +98,7 @@ export class FormComponent implements OnInit, OnChanges, OnDestroy { ...@@ -98,7 +98,7 @@ export class FormComponent implements OnInit, OnChanges, OnDestroy {
} }
onDeleteTemplate(e, index) { onDeleteTemplate(e, index) {
this.item.templateArr[index] = {};
this.item.templateArr.splice(index, 1); this.item.templateArr.splice(index, 1);
this.save(); this.save();
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment