214 lines
6.0 KiB
JavaScript
214 lines
6.0 KiB
JavaScript
import ArtImage from "./artImage";
|
|
import { artStatus } from "./artEnum";
|
|
import {
|
|
EditTask,
|
|
EditType,
|
|
Operator,
|
|
Query,
|
|
QueryTask,
|
|
} from "@airkoon/cellsys/cellsysUtil";
|
|
import { artApi } from "./artApi";
|
|
import ArtRepairFile from "./artRepairFile";
|
|
import ConditionReport from "./conditionReport";
|
|
|
|
class CellsysArt {
|
|
constructor(params = {}) {
|
|
this.id = params.id;
|
|
this.oldName = params.old_name; //不带书名号
|
|
this.recordNumber = params.record_number;
|
|
this.artworkName = params.artwork_name;
|
|
this.author = params.author;
|
|
this.createPeriod = params.create_period;
|
|
this.actualNumber = params.actual_number || 1;
|
|
this.materialId = params.material_id;
|
|
this.materialName = params.material_name;
|
|
this.countryId = params.country_id;
|
|
this.countryName = params.country_name;
|
|
this.length = params.length;
|
|
this.width = params.width;
|
|
this.height = params.height;
|
|
this.categoryOne = params.category_one;
|
|
this.categoryOneName = params.category_one_name;
|
|
this.categoryTwo = params.category_two;
|
|
this.categoryTwoName = params.category_two_name;
|
|
this.categoryThree = params.category_three;
|
|
this.categoryThreeName = params.category_three_name;
|
|
this.originalRegistrationNumber = params.original_registration_number;
|
|
this.remark = params.remark;
|
|
this.creator = params.creator;
|
|
this.updater = params.updater;
|
|
this.status = params.status;
|
|
this.artworkImages = [];
|
|
if (params.images) {
|
|
this.artworkImages = params.images.map((url) => {
|
|
return new ArtImage(url);
|
|
});
|
|
}
|
|
this.tags = [];
|
|
if (params.tag_name) {
|
|
this.tags = params.tag_name.map((name) => {
|
|
return { name: name };
|
|
});
|
|
}
|
|
}
|
|
get oldNameFormat() {
|
|
//带书名号
|
|
return `《${this.oldName}》`;
|
|
}
|
|
//封面图
|
|
get coverImageUrl() {
|
|
if (this.artworkImages.length > 0) {
|
|
return this.artworkImages[0].compressionUrl;
|
|
}
|
|
}
|
|
|
|
get statusMsg() {
|
|
return artStatus[this.status];
|
|
}
|
|
|
|
get artworkImagesUrl() {
|
|
if (this.artworkImages.length > 0) {
|
|
return this.artworkImages.map((artImage) => {
|
|
return artImage.url;
|
|
});
|
|
}
|
|
}
|
|
|
|
get statusMsg() {
|
|
return artStatus[this.status];
|
|
}
|
|
|
|
//查看艺术品详情
|
|
getDetails() {
|
|
let editTask = new EditTask(artApi.artworkDetails);
|
|
editTask.addParam("_id", this.id);
|
|
return new Promise((resolve, reject) => {
|
|
editTask
|
|
.execute()
|
|
.then((res) => {
|
|
if (res.data) {
|
|
let cellsysArt = new CellsysArt(res.data);
|
|
//todo 详情字段填充
|
|
resolve(cellsysArt);
|
|
}
|
|
})
|
|
.catch((err) => {
|
|
reject(err);
|
|
});
|
|
});
|
|
}
|
|
|
|
//编辑艺术品档案
|
|
updateArtwork(params = {}) {
|
|
let editTask = new EditTask(artApi.artArtworkRecordUpdate);
|
|
editTask.addParam("_id", params.id);
|
|
editTask.addParam("_oldname", params.oldName);
|
|
editTask.addParam("_author", params.author);
|
|
editTask.addParam("_create_period", params.createPeriod);
|
|
editTask.addParam("_length", params.length);
|
|
editTask.addParam("_width", params.width);
|
|
editTask.addParam("_height", params.height);
|
|
if (params.material) {
|
|
editTask.addParam("_material", params.material.dict_code);
|
|
}
|
|
editTask.addParam(
|
|
"_original_registration_number",
|
|
params.originalRegistrationNumber
|
|
);
|
|
editTask.addParam("_remark", params.remarks);
|
|
editTask.addParam("_images", params.images);
|
|
return new Promise((resolve, reject) => {
|
|
editTask
|
|
.execute()
|
|
.then((res) => {
|
|
if (res.data) {
|
|
let cellsysArt = new CellsysArt(res.data);
|
|
resolve(cellsysArt);
|
|
}
|
|
})
|
|
.catch((err) => {
|
|
reject(err);
|
|
});
|
|
});
|
|
}
|
|
|
|
//删除艺术品档案
|
|
removeArtwork(params = {}) {
|
|
let editTask = new EditTask(artApi.artArtworkRecordDelete);
|
|
editTask.addParam("_id", this.id);
|
|
editTask.addParam("_password", params.password);
|
|
return new Promise((resolve, reject) => {
|
|
editTask
|
|
.execute()
|
|
.then((res) => {
|
|
resolve(res);
|
|
})
|
|
.catch((err) => {
|
|
reject(err);
|
|
});
|
|
});
|
|
}
|
|
|
|
//创建修复档案
|
|
createRepairFile(params = {}) {
|
|
let { name, description, conditionCheckId } = params;
|
|
let editTask = new EditTask(artApi.repairRecordInsert);
|
|
editTask.addParam("_artwork_record_id", this.id);
|
|
editTask.addParam("_description", description);
|
|
editTask.addParam("_name", name);
|
|
editTask.addParam("_condition_check_id", conditionCheckId);
|
|
return new Promise((resolve, reject) => {
|
|
editTask
|
|
.execute()
|
|
.then((res) => {
|
|
if (res.data) {
|
|
let artRepairFile = new ArtRepairFile(res.data);
|
|
resolve(artRepairFile);
|
|
}
|
|
})
|
|
.catch((err) => {
|
|
reject(err);
|
|
});
|
|
});
|
|
}
|
|
|
|
//查询修复状况检查记录
|
|
queryConditionRecords(params = {}) {
|
|
let query = new Query();
|
|
query.addFilter("artwork_record_id", Operator.Equals, this.id); //病害报告模板
|
|
let { filter, pageInfo } = params;
|
|
if (filter) {
|
|
filter.forEach((item) => {
|
|
query.addFilter(item["name"], item["operator"], item["value"]);
|
|
});
|
|
}
|
|
let queryTask = new QueryTask(artApi.viewConditionCheck, !!pageInfo);
|
|
return new Promise((resolve, reject) => {
|
|
queryTask
|
|
.execute(query)
|
|
.then((res) => {
|
|
if (pageInfo) {
|
|
if (res.data) {
|
|
res.data = res.data.map((item) => {
|
|
return new ConditionReport(item);
|
|
});
|
|
resolve(res);
|
|
} else {
|
|
reject(new Error("状况检查记录数据格式异常!"));
|
|
}
|
|
} else {
|
|
let resArr = res.map((item) => {
|
|
return new ConditionReport(item);
|
|
});
|
|
resolve(resArr);
|
|
}
|
|
})
|
|
.catch((err) => {
|
|
reject(err);
|
|
});
|
|
});
|
|
}
|
|
}
|
|
|
|
export default CellsysArt;
|