|
- <!DOCTYPE html>
- <html lang="en">
-
- <head>
- <title>自定义书签</title>
- <meta charset="UTF-8">
- <script type="text/javascript" src='js/main.js'></script>
- <script type="text/javascript" src="otherslib/lib/vue.min.js"></script>
- <style type="text/css">
- * {
- box-sizing: border-box;
- }
-
- /*清除浮动*/
- .clear:after {
- content: "";
- display: block;
- clear: both;
- }
-
- html,
- body,
- #bookmark {
- margin: 0;
- padding: 0;
- width: 100%;
- height: 100%;
- }
-
- .row {
- width: 100%;
- border-top: 2px solid #e7e7e7;
- }
-
- .row>div {
- height: 100%;
- }
-
- #bk_select {
- width: 100%;
- padding-left: 5%;
- }
-
- .def_control {
- height: 65%;
- width: 100%;
- font-size: 18px;
- }
-
- .btn_box {
- width: 12%;
- float: left;
- line-height: 3.3em;
- margin-left: 2%;
- }
-
- .btn_box:last-of-type {
- float: right;
- margin-right: 2%;
- }
- </style>
- </head>
-
- <body>
-
- <div id="bookmark">
- <div class="row" style="height:20%;padding-top: 3%;">
- <div id="bk_select">
- <span>书签名称:</span>
- <select class="def_control" style="width: 80%;" v-model="bookItem" @change="vm.getBookMark()">
- <option value="-1">请选择书签</option>
- <option v-for="(item,index) in bookmarks" :value="index" :key="index">{{item.bookmarkname}}</option>
- </select>
- </div>
- </div>
- <div class="row" style="height: 65%;padding-top: 3%;">
- <p id="showResult">请先从上方的下拉列表中选择指定书签后,再进行添加或删除操作!</p>
- </div>
- <div class="row clear" style="height: 15%;">
- <div class="btn_box">
- <button class="def_control" type="button" disabled="disabled" id="add" @click="vm.addBookMark()">添加</button>
- </div>
- <div class="btn_box">
- <button class="def_control" type="button" disabled="disabled" id="del" @click="vm.delBookMark()">删除</button>
- </div>
- <div class="btn_box">
- <button class="def_control" type="button" @click="vm.cancel()">取消</button>
- </div>
- </div>
- </div>
-
- </body>
-
- </html>
- <script>
- var vm = new Vue({
- el: "#bookmark",
- data: {
- bookmarks: [], // 书签下拉框数据
- bookItem: -1, // 选中的书签下标
- bookmarksign: "", // 书签对象
- bookmarkname: "", // 书签名称
- },
- methods: {
- cancel: function () { // 取消按钮
- window.close();
- wps.OAAssist.ShellExecute("ksowebstartupwps://"); // 将WPS程序置前
- },
- getAllBookMark: function () { // 加载下拉框数据
- var doc = wps.WpsApplication().ActiveDocument;
- var bookmarkData = GetDocParamsValue(doc, "bookmarkData");
- if (typeof (bookmarkData) == undefined || bookmarkData == null || bookmarkData == "") {
- // alert("未传入有效的书签数据,下拉框加载失败!");
- // return;
- bookmarkData=[{
- bookmarksign:'bookmark1',
- bookmarkname:"我是测试书签1"
- },{
- bookmarksign:'bookmark2',
- bookmarkname:"我是测试书签2"
- }]
- }
- this.bookmarks = bookmarkData; // 书签列表赋值
- console.log("数据:" + vm.bookmarks);
- },
- getBookMark: function () { // 获取选中书签的信息并保存在vue中
- // var _this = this;
- var bookmarkindex = vm.bookItem; // 获取选中下拉框的坐标
- if (bookmarkindex == -1) {
- $("#showResult").html("请先从上方的下拉列表中选择指定书签后,再进行添加或删除操作!");
- $("#add").attr('disabled', true);
- $("#del").attr('disabled', true);
- return;
- }
- vm.bookmarksign = vm.bookmarks[bookmarkindex].bookmarksign; // 选中书签对象的书签名
- vm.bookmarkname = vm.bookmarks[bookmarkindex].bookmarkname; // 选中书签对象的内容
- $("#showResult").html(""); // 隐藏文本
- if (vm.bookmarksign != "" || vm.bookmarkname != "") { // 打开添加及删除按钮
- $("#add").attr('disabled', false);
- $("#del").attr('disabled', false);
- }
- },
- addBookMark: function () { // 添加书签到文档中
- if (vm.bookmarksign == "" || vm.bookmarkname == "") {
- alert("书签不存在,操作失败");
- return;
- }
- // 插入文字型窗体域
- var wpsApp = wps.WpsApplication();
- var doc = wpsApp.ActiveDocument;
- var selection = wpsApp.ActiveWindow.Selection;
- var range = selection.Range;
- var fields = doc.FormFields;
- fields.Shaded = true; // 显示底纹
-
- var formField = fields.Add(range, wps.Enum&&wps.Enum.wdFieldFormTextInput||70);//枚举值兼容性写法,70为枚举表中wps.Enum.wdFieldFormTextInput的值
- formField.Name = vm.bookmarksign; // 书签名称设置
- formField.Result = vm.bookmarkname; // 窗体域的显示结果设置
- //选中,主动触发刷新
- wps.WpsApplication().ActiveDocument.Range(selection.Start,selection.Start).Select()
- // 添加成功给予提示
- $("#showResult").html("书签【" + vm.bookmarksign + "】添加成功!");
- },
- delBookMark: function () { // 删除书签
- if (vm.bookmarksign == "") {
- alert("书签标记不存在,操作失误");
- return;
- }
- // 删除指定窗体域
- var doc = wps.WpsApplication().ActiveDocument;
- var fields = doc.FormFields;
- var flag = false;
- if (fields.Count > 0) {
- for (var i = 1; i <= fields.Count; i++) {
- var formField = fields.Item(i);
- if (formField.Name == vm.bookmarksign) {
- flag = true;
- formField.Delete();
- //选中,主动触发刷新
- wps.WpsApplication().ActiveDocument.Range(selection.Start,selection.Start).Select()
- }
- }
- }
- if (flag) {
- $("#showResult").html("书签【" + vm.bookmarksign + "】删除成功!");
- } else {
- alert("此书签不存在,请重新选择要删除的书签!");
- }
- }
- },
- created: function () {
- this.getAllBookMark();
- }
- });
- </script>
|