allweboffice-kd-plugin-demo/index.js
2025-02-19 11:45:40 +08:00

148 lines
6.4 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* 自定义控件书写模板
*/
(function (KDApi, $) {
// 构造函数变量名随意与最后一句代码的KDApi.register的第二个参数一致即可
function HelloWorld(model) {
this._setModel(model)
}
// 原型中封装生命周期函数,固定格式
HelloWorld.prototype = {
_setModel: function (model) {
this.model = model
},
init: function (props) {
initFunc(this.model, props)
},
update: function (props) {
updateFunc(this.model, props)
},
destoryed: function () {
close()
}
}
var initFunc = function (model, props) {
console.warn(props)
console.warn('init')
// KDApi.loadFile可以通过路径加载js或css文件并且在html文件头生成script或者link标签第一个参数是路径第二个参数是model第三个参数是加载完成后执行的回调函数
KDApi.loadFile('./css/style.css', model, function () {
// 通过路径去获取html字符串第一个参数是路径第二个参数是model第三个参数是HTML模板中变量的值
KDApi.getTemplateStringByFilePath('./html/violet-test.html', model, {
//text: ''
}).then(function (result) {
model.dom.innerHTML = result
})
})
KDApi.loadFile('./js/allWebPlugin.Common.v2.0.0.30.js', model, function () {
// 通过路径去获取html字符串第一个参数是路径第二个参数是model第三个参数是HTML模板中变量的值
KDApi.getTemplateStringByFilePath('./html/violet-test.html', model, {
//text: ''
}).then(function (result) {
model.dom.innerHTML = result
KDApi.loadFile('./js/allWebPlugin.UI.v2.0.0.30.js', model, function () {
// 通过路径去获取html字符串第一个参数是路径第二个参数是model第三个参数是HTML模板中变量的值
KDApi.getTemplateStringByFilePath('./html/violet-test.html', model, {
//text: ''
}).then(function (result) {
model.dom.innerHTML = result
KDApi.loadFile('./js/allWebPlugin.Main.v2.0.0.30.js', model, function () {
// 通过路径去获取html字符串第一个参数是路径第二个参数是model第三个参数是HTML模板中变量的值
KDApi.getTemplateStringByFilePath('./html/violet-test.html', model, {
//text: ''
}).then(function (result) {
model.dom.innerHTML = result
initOffice()
openFile(model, props)
initEvent(model, props)
})
})
})
})
})
})
}
var initEvent = function (model, props) {
const ele = document.getElementById('violet-pra-btn')
ele.onclick = function () {
model.invoke('click', 0)
}
const closeEle = document.getElementById('violet-close-btn')
closeEle.onclick = function () {
close()
model.invoke('click', 2)
}
}
var updateFunc = function (model, props) {
textFromProps = props.data.textKey001 + ''
const ele = document.getElementById('violet-pra-btn')
ele.innerText = textFromProps
}
var initOffice = function (model, props) {
var installPackageUrl = "http://127.0.0.1:6651/install/allwebPlugin_x86_v2.0.1.16_20240806.exe";
var installPackageVersion = "2.0.0.30";
console.warn('initOffice')
console.warn(awp_IsInstall(installPackageVersion, installPackageUrl))
if (awp_IsInstall(installPackageVersion, installPackageUrl)) {
awp_CreatePlugin("allWebOfficeAx", "{6888ECA8-57D0-6E0E-9B9B-F1FF9B2DBD86}");
allWebOfficeAx.GetDisplayStyle().ShowOpenProgress = true;
}
}
var openFile = function (model, props) {
var pluginUtilityObj = awp_getPluginUtility();
var httpclientObj = awp_getHttpClient();
httpclientObj.Clear();
//https://www.gov.cn/gzdt/att/att/site1/20100917/0019b90463ff0dfd641102.pdf
//https://local.zsignyun.com:6652/test2.docx
console.warn(props)
var url = "https://srm-dev.cmoc.cloud:8022/ierp/attachment/download.do?path=/1d969f1a75006800&kd_cs_ticket=KKFDWRkv8aTFjgbz574ddO5Jj0gudMX3&access_token=2117884374501299200_v7LFmgmezCNo6qxtuNS2xYPo7W1fquIeRE7ODdVLkez3YFMfplpgNEdBxjW6MOIwKLXxocwBt7GNH2qlsDPt4STblUEpoavI6A9E09";
if (props?.data?.fileurl) {
url = props.data.fileurl
}
if (httpclientObj.Open(0, url, false)) {
httpclientObj.Send().then(function (data) {
if (httpclientObj.GetStatus() == 200) {
var varTempPath = pluginUtilityObj.GetTempPath();
var varFile = pluginUtilityObj.GetTempFileName(varTempPath, "zso") + ".docx";
httpclientObj.ResponseSaveToFile(varFile);
allWebOfficeAx.Open(varFile);
allWebOfficeAx.DeleteAfterClose = true;
}
else {
var httpStatus = httpclientObj.GetStatus();
if (httpclientObj.GetStatus() == 0) {
alert("LoadFile test2.docx Error:" + httpclientObj.GetErrorText());
} else {
alert("LoadFile test2.docx Status:" + httpStatus + ",请确保安装目录下web/doc目录存在test2.docx");
}
}
httpclientObj.Close();
});
}
}
var close = function () {
allWebOfficeAx.Close_Asyn(0).then(function (data) {
awp_DestroyPlugin('allWebOfficeAx')
});
}
// 你只需知道第一个参数是你接下来要新增控件方案时填的方案id第二个参数是上面声明的构造函数
KDApi.register('violet-test', HelloWorld)
})(window.KDApi, jQuery) // 这里的jQuery不是必须要传进去的可移除要用到的时候才传PC端系统默认会有jQuery对象版本是1.12.4