代码迁移
This commit is contained in:
88
src/DZ/XJ/BatchLoadObjModel/index.js
Normal file
88
src/DZ/XJ/BatchLoadObjModel/index.js
Normal file
@ -0,0 +1,88 @@
|
||||
import { getHost, getToken } from "../../../on";
|
||||
import BaseLoadObjModel from '../../../Obj/Base/LoadObjModel'
|
||||
import LoadObjModel from '../LoadObjModel'
|
||||
export default class BatchLoadObjModel {
|
||||
constructor(sdk, options = {}) {
|
||||
this.sdk = sdk
|
||||
this.options = { ...options }
|
||||
this.options.show = (options.show || options.show === false) ? options.show : true
|
||||
this.options.host = this.options.host || getHost()
|
||||
this.objModelObject = []
|
||||
this._loaded = false
|
||||
this._loadEvent = void 0
|
||||
this.on()
|
||||
}
|
||||
|
||||
get show() {
|
||||
return this.options.show
|
||||
}
|
||||
|
||||
set show(v) {
|
||||
if (typeof v === "boolean") {
|
||||
this.options.show = v
|
||||
for (let i = 0; i < this.objModelObject.length; i++) {
|
||||
this.objModelObject[i].load(() => {
|
||||
this.objModelObject[i].show = v
|
||||
})
|
||||
}
|
||||
} else {
|
||||
console.error("参数必须为boolean")
|
||||
}
|
||||
}
|
||||
|
||||
async on() {
|
||||
let url = ""
|
||||
if (this.options.host.endsWith("yjearth4.0"))
|
||||
url = this.options.host + '/api/v1/source/obj'
|
||||
else
|
||||
url = this.options.host + '/yjearth4.0/api/v1/source/obj'
|
||||
if (this.options.code) {
|
||||
url = url + '?code=' + this.options.code
|
||||
}
|
||||
const res = await fetch(url, {
|
||||
method: 'get',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
"token": getToken(),
|
||||
"Authorization": "Bearer " + getToken(),
|
||||
}
|
||||
});
|
||||
if (res.ok) {
|
||||
this.objModelObject = []
|
||||
this.list = (await res.json()).data;
|
||||
if (this.options.count) {
|
||||
this.list = this.list.splice(0, this.options.count)
|
||||
}
|
||||
for (let i = 0; i < this.list.length; i++) {
|
||||
let options = JSON.parse(this.list[i].detail)
|
||||
options.host = this.options.host
|
||||
if (this.options.show || this.options.show === false) {
|
||||
options.show = this.options.show
|
||||
}
|
||||
let object = new LoadObjModel(this.sdk, options);
|
||||
this.objModelObject.push(object)
|
||||
}
|
||||
this._loaded = true
|
||||
if (this._loadEvent) {
|
||||
this._loadEvent()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
remove() {
|
||||
for (let i = 0; i < this.objModelObject.length; i++) {
|
||||
this.objModelObject[i].load(() => {
|
||||
this.objModelObject[i].remove()
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
load(callback) {
|
||||
if (this._loaded) {
|
||||
callback();
|
||||
}
|
||||
else {
|
||||
this._loadEvent = callback
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user