Я пытаюсь добавить текущую дату и время в область холста. Мы можем добавить текущую дату и время, используя объект. Но значение даты и времени не обновляется непрерывно. Пожалуйста, предложите мне, как добавить текущую дату и время на холст, когда мы нажимаем на кнопку.
Добавлен полный код, чтобы добавить время на холст, используя fabri c. Тот же код написан для добавления даты в область холста.
//This file has a method to addTimeText which is called on the button click and moment package to get the updated time value
import { fabric } from 'fabric';
import moment from "moment";
export default {
methods: {
addTimeText() {
let isMouseDown = false;
let object = null;
this.getFabric().on('mouse:down', ({e}) => {
isMouseDown = true;
const pointer = this.getFabric().getPointer(e);
object = new fabric.TruTime('', {
top: pointer.y,
left: pointer.x,
width: 250,
});
object.on('editing:exited', () => {
this.afterAdding(object);
});
this.getFabric().add(object);
this.getFabric().setActiveObject(object).requestRenderAll();
object.enterEditing();
});
},
}
}
//new file has content related to the above JS file
import Helper from "./helper";
import FabricJS from "fabric";
import { fabric } from "fabric";
import moment from "moment";
fabric.TruTime = FabricJS.fabric.util.createClass(fabric.Textbox,
{
type : "tru-text",
initialize: function(text, options) {
options = options || {};
if (!options.uuid) {
options = Helper.setDefaultProperties(
{
...options, fill: "#000",
backgroundColor : "transparent",
fontFamily : "Open Sans",
fontWeight : 400,
fontFiles : [
// "assets/fonts/Roboto/Roboto.css",
// "assets/fonts/Roboto/Roboto-Black.ttf",
// "assets/fonts/Roboto/Roboto-BlackItalic.ttf",
// "assets/fonts/Roboto/Roboto-Bold.ttf",
// "assets/fonts/Roboto/Roboto-BoldItalic.ttf",
// "assets/fonts/Roboto/Roboto-Italic.ttf",
// "assets/fonts/Roboto/Roboto-Light.ttf",
// "assets/fonts/Roboto/Roboto-LightItalic.ttf",
// "assets/fonts/Roboto/Roboto-Medium.ttf",
// "assets/fonts/Roboto/Roboto-MediumItalic.ttf",
// "assets/fonts/Roboto/Roboto-Regular.ttf",
// "assets/fonts/Roboto/Roboto-Thin.ttf",
// "assets/fonts/Roboto/Roboto-ThinItalic.ttf"
]
});
}
this.callSuper("initialize", text, options);
},
hasTag(value) {
return [
this.type,
"font",
"paragraph",
"background",
"position"].includes(value);
},
updateCurrentTime() {
this.currentTime = moment().format('LTS');
return this.currentTime;
},
toObject: function() {
const svg = Helper.svg(this);
const encodedSvg = btoa(svg);
return fabric.util.object.extend(this.callSuper("toObject"),
{
uuid: this.uuid,
svg : encodedSvg,
text: this.updateCurrentTime()
});
}
});
fabric.TruTime.async = true;
setInterval(() => object.text = this.updateCurrentTime(), 1000);
fabric.TruTime.fromObject = (object, callback) => {
const truTime = new fabric.TruText(object.text, object);
callback && callback(truTime);
};