cyc
9
.env.production
Normal file
@ -0,0 +1,9 @@
|
||||
NODE_ENV=prod
|
||||
|
||||
# VUE_APP_BASE_URL=/reading_1/
|
||||
# VUE_APP_BASE_URL=/reading/
|
||||
# BUILD_DIR = "aoxiang"
|
||||
# VUE_APP_BASE_URL=/dist/
|
||||
# VUE_APP_NAME=caoyuchun
|
||||
# VUE_APP_EMAIL=caoyuchun2003@qq.com
|
||||
# // base: process.env.NODE_ENV == "sub"? process.env.VUE_APP_BASE_URL:"",
|
||||
2
.env.sub
@ -1,6 +1,6 @@
|
||||
# NODE_ENV=sub
|
||||
# VUE_APP_BASE_URL=/reading_1/
|
||||
VUE_APP_BASE_URL=/reading/
|
||||
|
||||
BUILD_DIR = "aoxiang"
|
||||
# VUE_APP_BASE_URL=/dist/
|
||||
# VUE_APP_NAME=caoyuchun
|
||||
|
||||
3
.gitignore
vendored
@ -2,7 +2,8 @@
|
||||
node_modules
|
||||
/dist
|
||||
dist.zip
|
||||
|
||||
aoxiang.zip
|
||||
aoxiang
|
||||
# local env files
|
||||
.env.local
|
||||
.env.*.local
|
||||
|
||||
142
package-lock.json
generated
@ -11,9 +11,12 @@
|
||||
"axios": "^1.7.2",
|
||||
"core-js": "^3.6.5",
|
||||
"crypto-js": "^4.2.0",
|
||||
"echarts": "^5.6.0",
|
||||
"element-ui": "^2.15.14",
|
||||
"jquery": "^3.7.1",
|
||||
"js-base64": "^3.7.7",
|
||||
"mind-elixir": "^4.0.5",
|
||||
"vant": "^2.13.2",
|
||||
"vue": "^2.6.11",
|
||||
"vue-router": "^3.2.0",
|
||||
"vuex": "^3.4.0",
|
||||
@ -1782,7 +1785,6 @@
|
||||
"version": "7.24.7",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/@babel/runtime/-/runtime-7.24.7.tgz",
|
||||
"integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"regenerator-runtime": "^0.14.0"
|
||||
},
|
||||
@ -2300,11 +2302,20 @@
|
||||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/@vant/icons": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/@vant/icons/-/icons-3.0.2.tgz",
|
||||
"integrity": "sha512-4OlRVMd0uiDtD9hgSISZW8hB95vU0fFtc41tQchRIyiXkR0tS+DydZOLb8/bQkithrNWhW7Uud38MbKjlJ9lJw=="
|
||||
},
|
||||
"node_modules/@vant/popperjs": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/@vant/popperjs/-/popperjs-1.3.0.tgz",
|
||||
"integrity": "sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw=="
|
||||
},
|
||||
"node_modules/@vue/babel-helper-vue-jsx-merge-props": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.4.0.tgz",
|
||||
"integrity": "sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA==",
|
||||
"dev": true
|
||||
"integrity": "sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA=="
|
||||
},
|
||||
"node_modules/@vue/babel-helper-vue-transform-on": {
|
||||
"version": "1.2.2",
|
||||
@ -6314,6 +6325,20 @@
|
||||
"safer-buffer": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/echarts": {
|
||||
"version": "5.6.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/echarts/-/echarts-5.6.0.tgz",
|
||||
"integrity": "sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==",
|
||||
"dependencies": {
|
||||
"tslib": "2.3.0",
|
||||
"zrender": "5.6.1"
|
||||
}
|
||||
},
|
||||
"node_modules/echarts/node_modules/tslib": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/tslib/-/tslib-2.3.0.tgz",
|
||||
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
|
||||
},
|
||||
"node_modules/ee-first": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/ee-first/-/ee-first-1.1.1.tgz",
|
||||
@ -9447,6 +9472,11 @@
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/jquery/-/jquery-3.7.1.tgz",
|
||||
"integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg=="
|
||||
},
|
||||
"node_modules/js-base64": {
|
||||
"version": "3.7.7",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/js-base64/-/js-base64-3.7.7.tgz",
|
||||
"integrity": "sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw=="
|
||||
},
|
||||
"node_modules/js-message": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/js-message/-/js-message-1.0.7.tgz",
|
||||
@ -12299,8 +12329,7 @@
|
||||
"node_modules/regenerator-runtime": {
|
||||
"version": "0.14.1",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
|
||||
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
|
||||
"dev": true
|
||||
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
|
||||
},
|
||||
"node_modules/regenerator-transform": {
|
||||
"version": "0.15.2",
|
||||
@ -14970,6 +14999,21 @@
|
||||
"spdx-expression-parse": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/vant": {
|
||||
"version": "2.13.2",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/vant/-/vant-2.13.2.tgz",
|
||||
"integrity": "sha512-anZbbLqXCq+rUJk10D67mn+V/1/i9tfOTdoR+64B0e+0BzV3KFgpHBF76noLa+yX9i/L+8DeL560WMk0GEN38g==",
|
||||
"dependencies": {
|
||||
"@babel/runtime": "7.x",
|
||||
"@vant/icons": "^3.0.2",
|
||||
"@vant/popperjs": "^1.1.0",
|
||||
"@vue/babel-helper-vue-jsx-merge-props": "^1.0.0",
|
||||
"vue-lazyload": "1.2.3"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"vue": ">= 2.6.0"
|
||||
}
|
||||
},
|
||||
"node_modules/vary": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/vary/-/vary-1.1.2.tgz",
|
||||
@ -15068,6 +15112,11 @@
|
||||
"integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/vue-lazyload": {
|
||||
"version": "1.2.3",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/vue-lazyload/-/vue-lazyload-1.2.3.tgz",
|
||||
"integrity": "sha512-DC0ZwxanbRhx79tlA3zY5OYJkH8FYp3WBAnAJbrcuoS8eye1P73rcgAZhyxFSPUluJUTelMB+i/+VkNU/qVm7g=="
|
||||
},
|
||||
"node_modules/vue-loader": {
|
||||
"version": "15.11.1",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/vue-loader/-/vue-loader-15.11.1.tgz",
|
||||
@ -16471,6 +16520,19 @@
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/yallist/-/yallist-2.1.2.tgz",
|
||||
"integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/zrender": {
|
||||
"version": "5.6.1",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/zrender/-/zrender-5.6.1.tgz",
|
||||
"integrity": "sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag==",
|
||||
"dependencies": {
|
||||
"tslib": "2.3.0"
|
||||
}
|
||||
},
|
||||
"node_modules/zrender/node_modules/tslib": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/tslib/-/tslib-2.3.0.tgz",
|
||||
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
@ -17669,7 +17731,6 @@
|
||||
"version": "7.24.7",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/@babel/runtime/-/runtime-7.24.7.tgz",
|
||||
"integrity": "sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"regenerator-runtime": "^0.14.0"
|
||||
}
|
||||
@ -18126,11 +18187,20 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"@vant/icons": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/@vant/icons/-/icons-3.0.2.tgz",
|
||||
"integrity": "sha512-4OlRVMd0uiDtD9hgSISZW8hB95vU0fFtc41tQchRIyiXkR0tS+DydZOLb8/bQkithrNWhW7Uud38MbKjlJ9lJw=="
|
||||
},
|
||||
"@vant/popperjs": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/@vant/popperjs/-/popperjs-1.3.0.tgz",
|
||||
"integrity": "sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw=="
|
||||
},
|
||||
"@vue/babel-helper-vue-jsx-merge-props": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.4.0.tgz",
|
||||
"integrity": "sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA==",
|
||||
"dev": true
|
||||
"integrity": "sha512-JkqXfCkUDp4PIlFdDQ0TdXoIejMtTHP67/pvxlgeY+u5k3LEdKuWZ3LK6xkxo52uDoABIVyRwqVkfLQJhk7VBA=="
|
||||
},
|
||||
"@vue/babel-helper-vue-transform-on": {
|
||||
"version": "1.2.2",
|
||||
@ -21311,6 +21381,22 @@
|
||||
"safer-buffer": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"echarts": {
|
||||
"version": "5.6.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/echarts/-/echarts-5.6.0.tgz",
|
||||
"integrity": "sha512-oTbVTsXfKuEhxftHqL5xprgLoc0k7uScAwtryCgWF6hPYFLRwOUHiFmHGCBKP5NPFNkDVopOieyUqYGH8Fa3kA==",
|
||||
"requires": {
|
||||
"tslib": "2.3.0",
|
||||
"zrender": "5.6.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"tslib": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/tslib/-/tslib-2.3.0.tgz",
|
||||
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
|
||||
}
|
||||
}
|
||||
},
|
||||
"ee-first": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/ee-first/-/ee-first-1.1.1.tgz",
|
||||
@ -23706,6 +23792,11 @@
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/jquery/-/jquery-3.7.1.tgz",
|
||||
"integrity": "sha512-m4avr8yL8kmFN8psrbFFFmB/If14iN5o9nw/NgnnM+kybDJpRsAynV2BsfpTYrTRysYUdADVD7CkUUizgkpLfg=="
|
||||
},
|
||||
"js-base64": {
|
||||
"version": "3.7.7",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/js-base64/-/js-base64-3.7.7.tgz",
|
||||
"integrity": "sha512-7rCnleh0z2CkXhH67J8K1Ytz0b2Y+yxTPL+/KOJoa20hfnVQ/3/T6W/KflYI4bRHRagNeXeU2bkNGI3v1oS/lw=="
|
||||
},
|
||||
"js-message": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/js-message/-/js-message-1.0.7.tgz",
|
||||
@ -26060,8 +26151,7 @@
|
||||
"regenerator-runtime": {
|
||||
"version": "0.14.1",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz",
|
||||
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==",
|
||||
"dev": true
|
||||
"integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw=="
|
||||
},
|
||||
"regenerator-transform": {
|
||||
"version": "0.15.2",
|
||||
@ -28224,6 +28314,18 @@
|
||||
"spdx-expression-parse": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"vant": {
|
||||
"version": "2.13.2",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/vant/-/vant-2.13.2.tgz",
|
||||
"integrity": "sha512-anZbbLqXCq+rUJk10D67mn+V/1/i9tfOTdoR+64B0e+0BzV3KFgpHBF76noLa+yX9i/L+8DeL560WMk0GEN38g==",
|
||||
"requires": {
|
||||
"@babel/runtime": "7.x",
|
||||
"@vant/icons": "^3.0.2",
|
||||
"@vant/popperjs": "^1.1.0",
|
||||
"@vue/babel-helper-vue-jsx-merge-props": "^1.0.0",
|
||||
"vue-lazyload": "1.2.3"
|
||||
}
|
||||
},
|
||||
"vary": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/vary/-/vary-1.1.2.tgz",
|
||||
@ -28326,6 +28428,11 @@
|
||||
"integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
|
||||
"dev": true
|
||||
},
|
||||
"vue-lazyload": {
|
||||
"version": "1.2.3",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/vue-lazyload/-/vue-lazyload-1.2.3.tgz",
|
||||
"integrity": "sha512-DC0ZwxanbRhx79tlA3zY5OYJkH8FYp3WBAnAJbrcuoS8eye1P73rcgAZhyxFSPUluJUTelMB+i/+VkNU/qVm7g=="
|
||||
},
|
||||
"vue-loader": {
|
||||
"version": "15.11.1",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/vue-loader/-/vue-loader-15.11.1.tgz",
|
||||
@ -29415,6 +29522,21 @@
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"zrender": {
|
||||
"version": "5.6.1",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/zrender/-/zrender-5.6.1.tgz",
|
||||
"integrity": "sha512-OFXkDJKcrlx5su2XbzJvj/34Q3m6PvyCZkVPHGYpcCJ52ek4U/ymZyfuV1nKE23AyBJ51E/6Yr0mhZ7xGTO4ag==",
|
||||
"requires": {
|
||||
"tslib": "2.3.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"tslib": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://mirrors.cloud.tencent.com/npm/tslib/-/tslib-2.3.0.tgz",
|
||||
"integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg=="
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,7 +3,8 @@
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"serve": "vue-cli-service serve",
|
||||
"dev": "vue-cli-service serve --mode development",
|
||||
"prod": "vue-cli-service serve --mode production",
|
||||
"serve-aoxiang": "vue-cli-service serve --mode sub",
|
||||
"serve-zyx": "vue-cli-service serve --mode sub",
|
||||
"build": "vue-cli-service build",
|
||||
@ -14,6 +15,7 @@
|
||||
"axios": "^1.7.2",
|
||||
"core-js": "^3.6.5",
|
||||
"crypto-js": "^4.2.0",
|
||||
"echarts": "^5.6.0",
|
||||
"element-ui": "^2.15.14",
|
||||
"jquery": "^3.7.1",
|
||||
"js-base64": "^3.7.7",
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
//
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
//
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
//
|
||||
@ -26,6 +26,7 @@ var script = {
|
||||
}
|
||||
},
|
||||
ruleIndex: Number,
|
||||
currentRuleIndex: Number,
|
||||
//页面类型,取值h5、pc、pad
|
||||
pageType: {
|
||||
type: String,
|
||||
@ -76,6 +77,15 @@ var script = {
|
||||
}
|
||||
});
|
||||
},
|
||||
watch: {
|
||||
currentRuleIndex: {
|
||||
handler(newVal, oldVal) {
|
||||
if (newVal === -1) {
|
||||
this.showBtn = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.blockData = this.pBlockData;
|
||||
},
|
||||
@ -207,7 +217,7 @@ __vue_render__._withStripped = true;
|
||||
/* style */
|
||||
const __vue_inject_styles__ = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__ = "data-v-b8742ca0";
|
||||
const __vue_scope_id__ = "data-v-66bda01b";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__ = undefined;
|
||||
/* functional template */
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
//
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
import Vue from 'vue';
|
||||
@ -1706,7 +1706,23 @@ var script = {
|
||||
if (cIndex !== undefined) {
|
||||
this.currentIndex = cIndex;
|
||||
}
|
||||
if (this.blockData.clickEffect === 'dian-ji-fang-da') ; else if (this.blockData.clickEffect === 'dian-ji-tiao-zhuan') {
|
||||
if (this.blockData.clickEffect === 'dian-ji-fang-da') {
|
||||
if (this.blockData.showEffect === 'lun-bo') {
|
||||
let imgList = [];
|
||||
this.blockData.imageList.map(item => {
|
||||
imgList.push({
|
||||
url: item.uploadFileUrl?.indexOf('./') != -1 ? this.resourceBasisPath + item.uploadFileUrl.split('./')[1] : item.uploadFileUrl,
|
||||
title: item.title,
|
||||
description: item.content
|
||||
});
|
||||
});
|
||||
this.$hevueImgPreview({
|
||||
multiple: true,
|
||||
nowImgIndex: this.carouselActiveIndex,
|
||||
imgList
|
||||
});
|
||||
}
|
||||
} else if (this.blockData.clickEffect === 'dian-ji-tiao-zhuan') {
|
||||
//点击跳转
|
||||
// window.href = href
|
||||
if (linkId) {
|
||||
|
||||
@ -1,40 +1,27 @@
|
||||
|
||||
|
||||
/*# sourceMappingURL=fifth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=first.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=sixth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=fourth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=second.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=seventh.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=eighth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=second.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=fourth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=fifth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=seventh.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=third.vue.map */
|
||||
|
||||
.xml-image-lun-bo .el-carousel__item {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=sixth.vue.map */
|
||||
|
||||
|
||||
.xml-text-h5[data-v-1b4a8a63] {
|
||||
}
|
||||
.xml-text-pc[data-v-1b4a8a63] {
|
||||
}
|
||||
.xml-text-h5[data-v-1b4a8a63] {
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=first.vue.map */
|
||||
.xml-text-h5 .inline-audio-wrap,
|
||||
.xml-text-h5 .inline-link-wrap {
|
||||
align-items: center;
|
||||
@ -106,6 +93,19 @@
|
||||
|
||||
/*# sourceMappingURL=XmlText.vue.map */
|
||||
|
||||
.xml-text-h5[data-v-ec02be9c] {
|
||||
}
|
||||
.xml-text-pc[data-v-ec02be9c] {
|
||||
}
|
||||
.xml-text-h5[data-v-ec02be9c] {
|
||||
}
|
||||
|
||||
|
||||
.xml-image-lun-bo .el-carousel__item {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*# sourceMappingURL=XmlTextDialog.vue.map */
|
||||
|
||||
@ -706,6 +706,8 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
import Vue from 'vue';
|
||||
@ -1706,7 +1706,23 @@ var script$c = {
|
||||
if (cIndex !== undefined) {
|
||||
this.currentIndex = cIndex;
|
||||
}
|
||||
if (this.blockData.clickEffect === 'dian-ji-fang-da') ; else if (this.blockData.clickEffect === 'dian-ji-tiao-zhuan') {
|
||||
if (this.blockData.clickEffect === 'dian-ji-fang-da') {
|
||||
if (this.blockData.showEffect === 'lun-bo') {
|
||||
let imgList = [];
|
||||
this.blockData.imageList.map(item => {
|
||||
imgList.push({
|
||||
url: item.uploadFileUrl?.indexOf('./') != -1 ? this.resourceBasisPath + item.uploadFileUrl.split('./')[1] : item.uploadFileUrl,
|
||||
title: item.title,
|
||||
description: item.content
|
||||
});
|
||||
});
|
||||
this.$hevueImgPreview({
|
||||
multiple: true,
|
||||
nowImgIndex: this.carouselActiveIndex,
|
||||
imgList
|
||||
});
|
||||
}
|
||||
} else if (this.blockData.clickEffect === 'dian-ji-tiao-zhuan') {
|
||||
//点击跳转
|
||||
// window.href = href
|
||||
if (linkId) {
|
||||
@ -17152,7 +17168,8 @@ var script$8 = {
|
||||
}
|
||||
this.loadingInstance = this.$loading({
|
||||
lock: true,
|
||||
text: 'Loading'
|
||||
text: 'Loading',
|
||||
background: 'rgba(0, 0, 0, 0)'
|
||||
});
|
||||
this.fileData.resourcesName = file.name;
|
||||
if (_image.indexOf(fileExt) !== -1) {
|
||||
@ -17329,7 +17346,8 @@ var script$8 = {
|
||||
addRecorder() {
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: 'Loading'
|
||||
text: 'Loading',
|
||||
background: 'rgba(0, 0, 0, 0)'
|
||||
});
|
||||
let formData = new FormData();
|
||||
formData.append('file', this.recordedBlob, new Date().getTime() + '.mp3');
|
||||
@ -30803,7 +30821,7 @@ var VueToast = createComponent$1v({
|
||||
}
|
||||
});
|
||||
|
||||
var defaultOptions$1 = {
|
||||
var defaultOptions$2 = {
|
||||
icon: '',
|
||||
type: 'text',
|
||||
// @deprecated
|
||||
@ -30829,7 +30847,7 @@ var defaultOptions$1 = {
|
||||
var defaultOptionsMap = {};
|
||||
var queue = [];
|
||||
var multiple = false;
|
||||
var currentOptions = _extends$1({}, defaultOptions$1);
|
||||
var currentOptions = _extends$1({}, defaultOptions$2);
|
||||
function parseOptions$1(message) {
|
||||
if (isObject(message)) {
|
||||
return message;
|
||||
@ -30940,7 +30958,7 @@ Toast.resetDefaultOptions = function (type) {
|
||||
if (typeof type === 'string') {
|
||||
defaultOptionsMap[type] = null;
|
||||
} else {
|
||||
currentOptions = _extends$1({}, defaultOptions$1);
|
||||
currentOptions = _extends$1({}, defaultOptions$2);
|
||||
defaultOptionsMap = {};
|
||||
}
|
||||
};
|
||||
@ -39956,7 +39974,7 @@ function Notify(options) {
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
function defaultOptions() {
|
||||
function defaultOptions$1() {
|
||||
return {
|
||||
type: 'danger',
|
||||
value: true,
|
||||
@ -39975,12 +39993,12 @@ Notify.clear = function () {
|
||||
instance.value = false;
|
||||
}
|
||||
};
|
||||
Notify.currentOptions = defaultOptions();
|
||||
Notify.currentOptions = defaultOptions$1();
|
||||
Notify.setDefaultOptions = function (options) {
|
||||
_extends$1(Notify.currentOptions, options);
|
||||
};
|
||||
Notify.resetDefaultOptions = function () {
|
||||
Notify.currentOptions = defaultOptions();
|
||||
Notify.currentOptions = defaultOptions$1();
|
||||
};
|
||||
Notify.install = function () {
|
||||
Vue.use(VanNotify);
|
||||
@ -50221,6 +50239,121 @@ var n = function () {
|
||||
}, e;
|
||||
}();
|
||||
|
||||
function getTextNodeList(dom) {
|
||||
const nodeList = [...dom.childNodes];
|
||||
const textNodes = [];
|
||||
while (nodeList.length) {
|
||||
const node = nodeList.shift();
|
||||
if (node.nodeType === node.TEXT_NODE) {
|
||||
node.wholeText && textNodes.push(node);
|
||||
} else {
|
||||
nodeList.unshift(...node.childNodes);
|
||||
}
|
||||
}
|
||||
return textNodes;
|
||||
}
|
||||
function getTextInfoList(textNodes) {
|
||||
let length = 0;
|
||||
const textList = textNodes.map(node => {
|
||||
let startIdx = length,
|
||||
endIdx = length + node.wholeText.length;
|
||||
length = endIdx;
|
||||
return {
|
||||
text: node.wholeText,
|
||||
startIdx,
|
||||
endIdx
|
||||
};
|
||||
});
|
||||
return textList;
|
||||
}
|
||||
function getMatchList(content, keyword) {
|
||||
const characters = [...'\\[](){}?.+*^$:|'].reduce((r, c) => (r[c] = true, r), {});
|
||||
keyword = keyword.split('').map(s => characters[s] ? `\\${s}` : s).join('[\\s\\n]*');
|
||||
const reg = new RegExp(keyword, 'gmi');
|
||||
const matchList = [];
|
||||
let match = reg.exec(content);
|
||||
while (match) {
|
||||
matchList.push(match);
|
||||
match = reg.exec(content);
|
||||
}
|
||||
return matchList;
|
||||
}
|
||||
function replaceMatchResult(textNodes, textList, matchList, options) {
|
||||
let {
|
||||
flag,
|
||||
datasets,
|
||||
g
|
||||
} = options;
|
||||
// 对于每一个匹配结果,可能分散在多个标签中,找出这些标签,截取匹配片段并用font标签替换出
|
||||
if (!g) {
|
||||
matchList = [matchList[0]];
|
||||
}
|
||||
for (let i = matchList.length - 1; i >= 0; i--) {
|
||||
const match = matchList[i];
|
||||
const matchStart = match.index,
|
||||
matchEnd = matchStart + match[0].length; // 匹配结果在拼接字符串中的起止索引
|
||||
// 遍历文本信息列表,查找匹配的文本节点
|
||||
let groupStart = true;
|
||||
for (let textIdx = 0; textIdx < textList.length; textIdx++) {
|
||||
const {
|
||||
text,
|
||||
startIdx,
|
||||
endIdx
|
||||
} = textList[textIdx]; // 文本内容、文本在拼接串中开始、结束索引
|
||||
if (endIdx < matchStart) continue; // 匹配的文本节点还在后面
|
||||
if (startIdx >= matchEnd) break; // 匹配文本节点已经处理完了
|
||||
let textNode = textNodes[textIdx]; // 这个节点中的部分或全部内容匹配到了关键词,将匹配部分截取出来进行替换
|
||||
const nodeMatchStartIdx = Math.max(0, matchStart - startIdx); // 匹配内容在文本节点内容中的开始索引
|
||||
const nodeMatchLength = Math.min(endIdx, matchEnd) - startIdx - nodeMatchStartIdx; // 文本节点内容匹配关键词的长度
|
||||
if (nodeMatchStartIdx > 0) textNode = textNode.splitText(nodeMatchStartIdx); // textNode取后半部分
|
||||
if (nodeMatchLength < textNode.wholeText.length) textNode.splitText(nodeMatchLength);
|
||||
const font = document.createElement('font');
|
||||
font.setAttribute(flag, i + 1);
|
||||
groupStart ? font.classList.add(flag) : font.classList.add(flag + '-rest');
|
||||
if (datasets.length && Array.isArray(datasets)) {
|
||||
datasets.forEach(({
|
||||
key,
|
||||
value
|
||||
}) => {
|
||||
font.dataset[key] = value;
|
||||
});
|
||||
}
|
||||
font.innerText = text.substr(nodeMatchStartIdx, nodeMatchLength);
|
||||
textNode.parentNode.replaceChild(font, textNode);
|
||||
groupStart = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
const defaultOptions = {
|
||||
flag: 'xml-graph-link',
|
||||
datasets: [],
|
||||
g: false
|
||||
};
|
||||
function replaceKeywordsInHTML(html, keyword, options = defaultOptions) {
|
||||
options = {
|
||||
...defaultOptions,
|
||||
...options
|
||||
};
|
||||
let matchCount = 0,
|
||||
replacedHtml = '';
|
||||
if (!html || !keyword) {
|
||||
replacedHtml = html;
|
||||
return [replacedHtml, matchCount];
|
||||
}
|
||||
const div = document.createElement('div');
|
||||
div.innerHTML = html;
|
||||
const textNodes = getTextNodeList(div);
|
||||
const textList = getTextInfoList(textNodes);
|
||||
const content = textList.map(({
|
||||
text
|
||||
}) => text).join('');
|
||||
const matchList = getMatchList(content, keyword);
|
||||
matchCount = matchList.length;
|
||||
replaceMatchResult(textNodes, textList, matchList, options);
|
||||
replacedHtml = div.innerHTML;
|
||||
return [replacedHtml, matchCount];
|
||||
}
|
||||
|
||||
//
|
||||
var script$7 = {
|
||||
name: 'XmlTextRender',
|
||||
@ -50386,6 +50519,10 @@ var script$7 = {
|
||||
from: 'getSysEvn',
|
||||
default: () => () => {}
|
||||
}
|
||||
// callFnReplaceKeywordsInHTML: {
|
||||
// from: 'replaceKeywordsInHTML',
|
||||
// default: () => () => () => []
|
||||
// }
|
||||
},
|
||||
computed: {
|
||||
feedback() {
|
||||
@ -50393,6 +50530,7 @@ var script$7 = {
|
||||
ruleIndex: this.ruleIndex,
|
||||
dataName: this.blockDataName,
|
||||
data: this.pBlockData,
|
||||
graphLinks: this.currentRule.data?.graphLinks || [],
|
||||
dataIndex: this.dataIndex,
|
||||
blockId: this.blockId
|
||||
};
|
||||
@ -50428,6 +50566,40 @@ var script$7 = {
|
||||
},
|
||||
resourceBasisPath() {
|
||||
return this.getResourceBasisPath();
|
||||
},
|
||||
richContent() {
|
||||
let formated = this.formatImg(this.pBlockData.html);
|
||||
let links = this.currentRule.data?.graphLinks || [];
|
||||
if (!links.length) {
|
||||
return formated;
|
||||
}
|
||||
let copy = formated;
|
||||
let tempWrapDom = document.createElement('div');
|
||||
tempWrapDom.innerHTML = copy;
|
||||
let content = '';
|
||||
Array.from(tempWrapDom.childNodes).forEach(child => {
|
||||
if (child.dataset.graphKey && child.tagName === 'P') {
|
||||
let pCopy = child.outerHTML + '';
|
||||
for (let i = 0, len = links.length; i < len; i++) {
|
||||
let item = links[i];
|
||||
if (item.targets.includes(child.dataset.graphKey)) {
|
||||
pCopy = replaceKeywordsInHTML(pCopy, item.name, {
|
||||
flag: 'xml-graph-link',
|
||||
datasets: [{
|
||||
key: 'graphLinkId',
|
||||
value: item.id
|
||||
}]
|
||||
})[0];
|
||||
}
|
||||
}
|
||||
content += pCopy;
|
||||
} else {
|
||||
content += child.outerHTML;
|
||||
}
|
||||
});
|
||||
copy = '';
|
||||
tempWrapDom = null;
|
||||
return content;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@ -50474,7 +50646,7 @@ var script$7 = {
|
||||
let mceMagicLinkRegistered = window.customElements?.get('magic-link');
|
||||
if (!mceMagicLinkRegistered) {
|
||||
window.customElements.whenDefined('magic-link').then(res => {
|
||||
console.log('%c%s', 'font-size:2em;background: #00965E;color: #FFF', '富文本组件MCE注册完成', res);
|
||||
// console.log('%c%s', 'font-size:2em;background: #00965E;color: #FFF', '富文本组件MCE注册完成', res)
|
||||
});
|
||||
window.customElements.define('magic-link', MagicLink);
|
||||
}
|
||||
@ -51580,7 +51752,7 @@ var __vue_render__$7 = function () {
|
||||
: _c("div", {
|
||||
staticClass: "richtext-reset-wrapper--view",
|
||||
attrs: { id: _vm.markRootId },
|
||||
domProps: { innerHTML: _vm._s(_vm.formatImg(_vm.pBlockData.html)) },
|
||||
domProps: { innerHTML: _vm._s(_vm.richContent) },
|
||||
}),
|
||||
_vm._v(" "),
|
||||
_vm._t("mater-lib-dialog"),
|
||||
@ -52154,7 +52326,7 @@ __vue_render__$7._withStripped = true;
|
||||
/* style */
|
||||
const __vue_inject_styles__$7 = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__$7 = "data-v-1b4a8a63";
|
||||
const __vue_scope_id__$7 = "data-v-ec02be9c";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__$7 = undefined;
|
||||
/* functional template */
|
||||
|
||||
@ -1 +1 @@
|
||||
.xml-image-lun-bo .el-carousel__item{text-align:center}.xml-text-h5 .inline-audio-wrap,.xml-text-h5 .inline-link-wrap{align-items:center}.xml-text-h5 .inline-audio-wrap span,.xml-text-h5 .inline-link-wrap span{display:inline-block}.xml-text-h5 .inline-audio-box{width:20px;height:20px;box-sizing:border-box;position:relative;margin-left:6px}.xml-text-h5 .inline-audio-box .wifi-symbol{width:20px;height:20px;box-sizing:border-box;overflow:hidden;transform:rotate(135deg);position:relative}.xml-text-h5 .inline-audio-box .wifi-symbol .wifi-circle{border:3px solid #418eed;border-radius:50%;position:absolute}.xml-text-h5 .inline-audio-box .wifi-symbol .wifi-circle.first{width:3px;height:3px;background:#0076bc;top:14px;left:14px}.xml-text-h5 .inline-audio-box .wifi-symbol .wifi-circle.second{width:15px;height:15px;top:10px;left:10px}.xml-text-h5 .inline-audio-box .wifi-symbol .wifi-circle.third{width:24px;height:24px;top:6px;left:6px}.xml-text-h5 .inline-audio-box .wifi-symbol.playing .second{animation:fadeInOut 1s infinite .2s}.xml-text-h5 .inline-audio-box .wifi-symbol.playing .third{animation:fadeInOut 1s infinite .4s}@keyframes fadeInOut{0%{opacity:0}100%{opacity:1}}.virtual-input .el-textarea__inner{min-height:0!important;height:0!important;padding:0!important;margin:0!important;border:none!important}.el-image__inner[data-v-4910c4a4]{width:100%!important}.xml-image-ping-pu-h5[data-v-4910c4a4]{display:flex;flex-direction:column;align-items:center}.xml-image-hua-lang[data-v-4910c4a4]{display:flex;flex-direction:column;align-items:center}
|
||||
.xml-text-h5 .inline-audio-wrap,.xml-text-h5 .inline-link-wrap{align-items:center}.xml-text-h5 .inline-audio-wrap span,.xml-text-h5 .inline-link-wrap span{display:inline-block}.xml-text-h5 .inline-audio-box{width:20px;height:20px;box-sizing:border-box;position:relative;margin-left:6px}.xml-text-h5 .inline-audio-box .wifi-symbol{width:20px;height:20px;box-sizing:border-box;overflow:hidden;transform:rotate(135deg);position:relative}.xml-text-h5 .inline-audio-box .wifi-symbol .wifi-circle{border:3px solid #418eed;border-radius:50%;position:absolute}.xml-text-h5 .inline-audio-box .wifi-symbol .wifi-circle.first{width:3px;height:3px;background:#0076bc;top:14px;left:14px}.xml-text-h5 .inline-audio-box .wifi-symbol .wifi-circle.second{width:15px;height:15px;top:10px;left:10px}.xml-text-h5 .inline-audio-box .wifi-symbol .wifi-circle.third{width:24px;height:24px;top:6px;left:6px}.xml-text-h5 .inline-audio-box .wifi-symbol.playing .second{animation:fadeInOut 1s infinite .2s}.xml-text-h5 .inline-audio-box .wifi-symbol.playing .third{animation:fadeInOut 1s infinite .4s}@keyframes fadeInOut{0%{opacity:0}100%{opacity:1}}.virtual-input .el-textarea__inner{min-height:0!important;height:0!important;padding:0!important;margin:0!important;border:none!important}.xml-image-lun-bo .el-carousel__item{text-align:center}.el-image__inner[data-v-4910c4a4]{width:100%!important}.xml-image-ping-pu-h5[data-v-4910c4a4]{display:flex;flex-direction:column;align-items:center}.xml-image-hua-lang[data-v-4910c4a4]{display:flex;flex-direction:column;align-items:center}
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
import Vue from 'vue';
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
var playIcon = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAAAXNSR0IArs4c6QAABxBJREFUeF7dW2tsFFUU/s5sCygo7W4JwfggkZAYNNYnqBB31iI2jYnERwyiRuILFcJuwZQEAgYfDbSzii8CYqDlYRQhUQNIS3cFkRbERxXTYMCCgGI7U0ssXbbbOWa2bu1ruzOzM8suN9lfe+53vvPdc2fu4wwhBc1ddjYPjnA+VM4XBMdogHPAyGFoP2onQgsxt6is/g1QI1RuRFZWY9Cb22g3PbLLgcevFLKqFjKRm4AbTPth3gjQtmHZqNox13XWNE6cjpYK4C5TJhOpj4BQCNA4i8kqALZAVVcH5o86ZBW2JQKIkjID4BkAiqwilgBntVVCJCWA6FeKAC4BY3KKAu/lhsGlWWGhtLrE2WrWvykBCt5Uru5ktQRMs806tqofAT8xqDTgc24yg2lYgHvKW0SV1FUAxptxaFsfxocRYdiivd7hfxjxYUgAj7/5cWaqMOIgxbYNTFgc9Lq26PWrWwBRkr9I4UNOL/8B7ZhoUdDrfE0PiC4BREmuAlCgBzBdbJjopaDX+W4iPgkFEP3yWjBmJQJKy/+ZnwwU5w06ZQcVwF3etJRIWJKWwekkRcC0Gp9rVzzzuAJ4pObpDNqq0086m9ULwtB7d88bcWYgkgMK4Fl+5lrOzv4SzNemc2T6uVFlwOd8QrcAbkneSsB0/Q7S35KI59Z4897uy7RfBrjLlZlEXJn+IRlkyDjtECJTqr2jj/Xs2UuAwpU8NBRp+Qbgmw3CZ4r5moDP9WxcATySUsLgNzIlGlM8mYoCxc7tsb7dGVBQqozsHML1AK42BZwhnYiwrsbreqqfAJ5yZTYTv5chcSRDs41JuD523NadAaJf3mv3vn786CxMGJOF+lMdONrUmUwQSfallwM+5woNJCqAWCZPg4CdSaIO2n1J0QjcPX5It82+o2FU1oVw5EzETrfxsA8EfK6J3QLYveTtG3yMVaiDUVnXjs0HQykXgRl3BItdtV0ZICkBgN12sfj8xVwMHxJ/2/Hd7x3YUBvCDyc77KLQD5dApTU+50IqXClfHorA9JlaIsbavF814/JEZtH/Nx5oj06LcIR12Sdp1BDwua4jtyTfR8COJMHids+/MhvSw5fphm/4MxKdFvuP2Z8NHecdTnJLTc8ThPd1MzRoaFSAGPy2H0KorA3h73bVoEcD5qp6K3kk5Q3WjrZtamYF0OicUDqj2bC7IWwLO2I8ogmwmcGP2uIBQDICxDjtPHwey3e1WU6RmUpI9Ct7wWzbxYYVAmiRf3wohFV7zlkqAhGVkSjJPwOYYClyDzCrBNAgZ1W0olG2bgVJhA9I9MunwLgiEwQoq2rD9p/PW0aVgC1aBmh5dYllqH2ArMyA13f8g2prH4jVmgAtAHIyQYAn1rXiZIt1U4BBn5MoKd8DnJ/uAqyvbcf6/e3W0iSqII9f2cbMD1iL/D9aslNAWxRX2BF811b4LfL4ZT8z5qWjANomSQu+/qQ9W2Zm9RVNgKeZsSadBIioXaO+oc7ilO8bpMNRQGJZ0y0QhG/TRYCDx7tG/fBpe0a9R5yhYVnOHOo6Cle0N4Etr8JxoxxYPXNkQn3PRxjag+6j1B2OVAd8rqn/HYjI+wDcmZClSYPPXsjFiKHxD0Rqf+sadW0rnKqmzf9g8ailUVYX6kisLczRwD85lPojMXTypMCCvLquDFjRPBEOqrVT/YEORbXgf/3LuoWNbv6EuoDXNUmz73ksXgtG9KTUrqatCW68KgtfHQlbuqkxyjeW/r0EsHsaGCVppz3DcVvQlxN983VnwDSp1RlGR50NJa52xmIG+9OAz/VQrGOvR7PH3zKHWV1pBjVj+pDwYMCb21350u/dJPpl258FF0osIhys8bpu7+m/f4GEX3mMmDdcKJJ2+mWB7g/Oc2r1jt1twNWJW5K3E7SS94unaYXVQV/ewr4RDSiA6FfuAngXGJdeFBIQ9nBr/T3BpWK/pWbc9alban6JQP2KijJQEAUseALFuT8OxH3QQkmxXF4LytAq0f+iJVW4u2Z+7p54A5ewVNYtNX9HoJsycOTBRDODXufGwbgnFEDrLEpySq5rrRSZGWXBYteCRJi6BNBAMunNQKB3anzOOYmC77UU1mMsSspygBOqqgfLLhsCXq3xuRbrxdedATFAUZK9AJYBGK7XSYrsDH8tYjgDukVY0TyRBVpGhKkpCm5wNya/FzItQIxNdAstCM/Yebc4WOTazQ4ErO67vDUyKIanQF/wKf62MQ713HOpFMKKwGNxJC1ADEgTIhvhh1RWC23aR7SCeBN3CpuC851fGxnlpNcBRp25pdZxAqmFAHuYo+V3Zi9fTwHYycD+LIGqquc5TxjlksjesgwYzJF7RZMbAtyCIFzDTGMBHgtgLAgtYGh3EtqviUCNKtTjADc6OtVfdi8YrRVv29r+BTKBrQtOiFe6AAAAAElFTkSuQmCC";
|
||||
@ -816,10 +816,17 @@ var script$1 = {
|
||||
time
|
||||
}, data) {
|
||||
// console.log({event, time, data});
|
||||
// this.$EventBus.$emit('audioTimeUpdate', { event, time, data })
|
||||
this.$EventBus.$emit('audioTimeUpdate', {
|
||||
event,
|
||||
time,
|
||||
data
|
||||
data: {
|
||||
...data,
|
||||
chapterId: this.currentRule.chapterId,
|
||||
xmlCompRef: this.currentRule.xmlCompRef,
|
||||
duration: this.$refs.xmlAudioPlay.totalDuration,
|
||||
time
|
||||
}
|
||||
});
|
||||
},
|
||||
resetTimeUpdate(data) {
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
/*# sourceMappingURL=second.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=isosceles.vue.map */
|
||||
/*# sourceMappingURL=eleven.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=first.vue.map */
|
||||
@ -12,115 +12,115 @@
|
||||
/*# sourceMappingURL=eighth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=seventh.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=quadrangle.vue.map */
|
||||
/*# sourceMappingURL=Greentheme3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=third.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=ninth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=wave.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme4.vue.map */
|
||||
/*# sourceMappingURL=isosceles.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=fourteen.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=twelve.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=fifteen.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=ninth.vue.map */
|
||||
/*# sourceMappingURL=quadrangle.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme1.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=tenth.vue.map */
|
||||
/*# sourceMappingURL=seventh.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme2.vue.map */
|
||||
/*# sourceMappingURL=twelve.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme5.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=eleven.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=SanQintheme2.vue.map */
|
||||
/*# sourceMappingURL=fourteen.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=thirteen.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme5.vue.map */
|
||||
/*# sourceMappingURL=tenth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme2.vue.map */
|
||||
/*# sourceMappingURL=Greentheme4.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Thirtyseven3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme3.vue.map */
|
||||
/*# sourceMappingURL=fifteen.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme1.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme4.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme6.vue.map */
|
||||
/*# sourceMappingURL=Greentheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Thirtyseven.vue.map */
|
||||
/*# sourceMappingURL=Greentheme5.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=sixteen.vue.map */
|
||||
/*# sourceMappingURL=Redtheme5.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=SanQintheme3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=SanQintheme1.vue.map */
|
||||
/*# sourceMappingURL=Yellowtheme3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Thirtyfive.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=SanQintheme3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=sixteen.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme5.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme6.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme4.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Thirtyseven2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Thirtyseven3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=SanQintheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Thirtysix.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Thirtyeight.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Thirtyseven2.vue.map */
|
||||
/*# sourceMappingURL=SanQintheme1.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Forty.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme5.vue.map */
|
||||
/*# sourceMappingURL=Thirtyseven.vue.map */
|
||||
.xml-text-h5 .inline-audio-wrap,
|
||||
.xml-text-h5 .inline-link-wrap {
|
||||
align-items: center;
|
||||
@ -192,11 +192,11 @@
|
||||
|
||||
/*# sourceMappingURL=XmlText.vue.map */
|
||||
|
||||
.xml-text-h5[data-v-1b4a8a63] {
|
||||
.xml-text-h5[data-v-ec02be9c] {
|
||||
}
|
||||
.xml-text-pc[data-v-1b4a8a63] {
|
||||
.xml-text-pc[data-v-ec02be9c] {
|
||||
}
|
||||
.xml-text-h5[data-v-1b4a8a63] {
|
||||
.xml-text-h5[data-v-ec02be9c] {
|
||||
}
|
||||
|
||||
|
||||
@ -798,6 +798,8 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
import crypto from 'crypto';
|
||||
@ -15257,7 +15257,8 @@ var script$G = {
|
||||
}
|
||||
this.loadingInstance = this.$loading({
|
||||
lock: true,
|
||||
text: 'Loading'
|
||||
text: 'Loading',
|
||||
background: 'rgba(0, 0, 0, 0)'
|
||||
});
|
||||
this.fileData.resourcesName = file.name;
|
||||
if (_image.indexOf(fileExt) !== -1) {
|
||||
@ -15434,7 +15435,8 @@ var script$G = {
|
||||
addRecorder() {
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: 'Loading'
|
||||
text: 'Loading',
|
||||
background: 'rgba(0, 0, 0, 0)'
|
||||
});
|
||||
let formData = new FormData();
|
||||
formData.append('file', this.recordedBlob, new Date().getTime() + '.mp3');
|
||||
@ -28908,7 +28910,7 @@ var VueToast = createComponent$1v({
|
||||
}
|
||||
});
|
||||
|
||||
var defaultOptions$1 = {
|
||||
var defaultOptions$2 = {
|
||||
icon: '',
|
||||
type: 'text',
|
||||
// @deprecated
|
||||
@ -28934,7 +28936,7 @@ var defaultOptions$1 = {
|
||||
var defaultOptionsMap = {};
|
||||
var queue = [];
|
||||
var multiple = false;
|
||||
var currentOptions = _extends$1({}, defaultOptions$1);
|
||||
var currentOptions = _extends$1({}, defaultOptions$2);
|
||||
function parseOptions$1(message) {
|
||||
if (isObject(message)) {
|
||||
return message;
|
||||
@ -29045,7 +29047,7 @@ Toast.resetDefaultOptions = function (type) {
|
||||
if (typeof type === 'string') {
|
||||
defaultOptionsMap[type] = null;
|
||||
} else {
|
||||
currentOptions = _extends$1({}, defaultOptions$1);
|
||||
currentOptions = _extends$1({}, defaultOptions$2);
|
||||
defaultOptionsMap = {};
|
||||
}
|
||||
};
|
||||
@ -38061,7 +38063,7 @@ function Notify(options) {
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
function defaultOptions() {
|
||||
function defaultOptions$1() {
|
||||
return {
|
||||
type: 'danger',
|
||||
value: true,
|
||||
@ -38080,12 +38082,12 @@ Notify.clear = function () {
|
||||
instance.value = false;
|
||||
}
|
||||
};
|
||||
Notify.currentOptions = defaultOptions();
|
||||
Notify.currentOptions = defaultOptions$1();
|
||||
Notify.setDefaultOptions = function (options) {
|
||||
_extends$1(Notify.currentOptions, options);
|
||||
};
|
||||
Notify.resetDefaultOptions = function () {
|
||||
Notify.currentOptions = defaultOptions();
|
||||
Notify.currentOptions = defaultOptions$1();
|
||||
};
|
||||
Notify.install = function () {
|
||||
Vue.use(VanNotify);
|
||||
@ -48326,6 +48328,121 @@ var n = function () {
|
||||
}, e;
|
||||
}();
|
||||
|
||||
function getTextNodeList(dom) {
|
||||
const nodeList = [...dom.childNodes];
|
||||
const textNodes = [];
|
||||
while (nodeList.length) {
|
||||
const node = nodeList.shift();
|
||||
if (node.nodeType === node.TEXT_NODE) {
|
||||
node.wholeText && textNodes.push(node);
|
||||
} else {
|
||||
nodeList.unshift(...node.childNodes);
|
||||
}
|
||||
}
|
||||
return textNodes;
|
||||
}
|
||||
function getTextInfoList(textNodes) {
|
||||
let length = 0;
|
||||
const textList = textNodes.map(node => {
|
||||
let startIdx = length,
|
||||
endIdx = length + node.wholeText.length;
|
||||
length = endIdx;
|
||||
return {
|
||||
text: node.wholeText,
|
||||
startIdx,
|
||||
endIdx
|
||||
};
|
||||
});
|
||||
return textList;
|
||||
}
|
||||
function getMatchList(content, keyword) {
|
||||
const characters = [...'\\[](){}?.+*^$:|'].reduce((r, c) => (r[c] = true, r), {});
|
||||
keyword = keyword.split('').map(s => characters[s] ? `\\${s}` : s).join('[\\s\\n]*');
|
||||
const reg = new RegExp(keyword, 'gmi');
|
||||
const matchList = [];
|
||||
let match = reg.exec(content);
|
||||
while (match) {
|
||||
matchList.push(match);
|
||||
match = reg.exec(content);
|
||||
}
|
||||
return matchList;
|
||||
}
|
||||
function replaceMatchResult(textNodes, textList, matchList, options) {
|
||||
let {
|
||||
flag,
|
||||
datasets,
|
||||
g
|
||||
} = options;
|
||||
// 对于每一个匹配结果,可能分散在多个标签中,找出这些标签,截取匹配片段并用font标签替换出
|
||||
if (!g) {
|
||||
matchList = [matchList[0]];
|
||||
}
|
||||
for (let i = matchList.length - 1; i >= 0; i--) {
|
||||
const match = matchList[i];
|
||||
const matchStart = match.index,
|
||||
matchEnd = matchStart + match[0].length; // 匹配结果在拼接字符串中的起止索引
|
||||
// 遍历文本信息列表,查找匹配的文本节点
|
||||
let groupStart = true;
|
||||
for (let textIdx = 0; textIdx < textList.length; textIdx++) {
|
||||
const {
|
||||
text,
|
||||
startIdx,
|
||||
endIdx
|
||||
} = textList[textIdx]; // 文本内容、文本在拼接串中开始、结束索引
|
||||
if (endIdx < matchStart) continue; // 匹配的文本节点还在后面
|
||||
if (startIdx >= matchEnd) break; // 匹配文本节点已经处理完了
|
||||
let textNode = textNodes[textIdx]; // 这个节点中的部分或全部内容匹配到了关键词,将匹配部分截取出来进行替换
|
||||
const nodeMatchStartIdx = Math.max(0, matchStart - startIdx); // 匹配内容在文本节点内容中的开始索引
|
||||
const nodeMatchLength = Math.min(endIdx, matchEnd) - startIdx - nodeMatchStartIdx; // 文本节点内容匹配关键词的长度
|
||||
if (nodeMatchStartIdx > 0) textNode = textNode.splitText(nodeMatchStartIdx); // textNode取后半部分
|
||||
if (nodeMatchLength < textNode.wholeText.length) textNode.splitText(nodeMatchLength);
|
||||
const font = document.createElement('font');
|
||||
font.setAttribute(flag, i + 1);
|
||||
groupStart ? font.classList.add(flag) : font.classList.add(flag + '-rest');
|
||||
if (datasets.length && Array.isArray(datasets)) {
|
||||
datasets.forEach(({
|
||||
key,
|
||||
value
|
||||
}) => {
|
||||
font.dataset[key] = value;
|
||||
});
|
||||
}
|
||||
font.innerText = text.substr(nodeMatchStartIdx, nodeMatchLength);
|
||||
textNode.parentNode.replaceChild(font, textNode);
|
||||
groupStart = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
const defaultOptions = {
|
||||
flag: 'xml-graph-link',
|
||||
datasets: [],
|
||||
g: false
|
||||
};
|
||||
function replaceKeywordsInHTML(html, keyword, options = defaultOptions) {
|
||||
options = {
|
||||
...defaultOptions,
|
||||
...options
|
||||
};
|
||||
let matchCount = 0,
|
||||
replacedHtml = '';
|
||||
if (!html || !keyword) {
|
||||
replacedHtml = html;
|
||||
return [replacedHtml, matchCount];
|
||||
}
|
||||
const div = document.createElement('div');
|
||||
div.innerHTML = html;
|
||||
const textNodes = getTextNodeList(div);
|
||||
const textList = getTextInfoList(textNodes);
|
||||
const content = textList.map(({
|
||||
text
|
||||
}) => text).join('');
|
||||
const matchList = getMatchList(content, keyword);
|
||||
matchCount = matchList.length;
|
||||
replaceMatchResult(textNodes, textList, matchList, options);
|
||||
replacedHtml = div.innerHTML;
|
||||
return [replacedHtml, matchCount];
|
||||
}
|
||||
|
||||
//
|
||||
var script$F = {
|
||||
name: 'XmlTextRender',
|
||||
@ -48491,6 +48608,10 @@ var script$F = {
|
||||
from: 'getSysEvn',
|
||||
default: () => () => {}
|
||||
}
|
||||
// callFnReplaceKeywordsInHTML: {
|
||||
// from: 'replaceKeywordsInHTML',
|
||||
// default: () => () => () => []
|
||||
// }
|
||||
},
|
||||
computed: {
|
||||
feedback() {
|
||||
@ -48498,6 +48619,7 @@ var script$F = {
|
||||
ruleIndex: this.ruleIndex,
|
||||
dataName: this.blockDataName,
|
||||
data: this.pBlockData,
|
||||
graphLinks: this.currentRule.data?.graphLinks || [],
|
||||
dataIndex: this.dataIndex,
|
||||
blockId: this.blockId
|
||||
};
|
||||
@ -48533,6 +48655,40 @@ var script$F = {
|
||||
},
|
||||
resourceBasisPath() {
|
||||
return this.getResourceBasisPath();
|
||||
},
|
||||
richContent() {
|
||||
let formated = this.formatImg(this.pBlockData.html);
|
||||
let links = this.currentRule.data?.graphLinks || [];
|
||||
if (!links.length) {
|
||||
return formated;
|
||||
}
|
||||
let copy = formated;
|
||||
let tempWrapDom = document.createElement('div');
|
||||
tempWrapDom.innerHTML = copy;
|
||||
let content = '';
|
||||
Array.from(tempWrapDom.childNodes).forEach(child => {
|
||||
if (child.dataset.graphKey && child.tagName === 'P') {
|
||||
let pCopy = child.outerHTML + '';
|
||||
for (let i = 0, len = links.length; i < len; i++) {
|
||||
let item = links[i];
|
||||
if (item.targets.includes(child.dataset.graphKey)) {
|
||||
pCopy = replaceKeywordsInHTML(pCopy, item.name, {
|
||||
flag: 'xml-graph-link',
|
||||
datasets: [{
|
||||
key: 'graphLinkId',
|
||||
value: item.id
|
||||
}]
|
||||
})[0];
|
||||
}
|
||||
}
|
||||
content += pCopy;
|
||||
} else {
|
||||
content += child.outerHTML;
|
||||
}
|
||||
});
|
||||
copy = '';
|
||||
tempWrapDom = null;
|
||||
return content;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@ -48579,7 +48735,7 @@ var script$F = {
|
||||
let mceMagicLinkRegistered = window.customElements?.get('magic-link');
|
||||
if (!mceMagicLinkRegistered) {
|
||||
window.customElements.whenDefined('magic-link').then(res => {
|
||||
console.log('%c%s', 'font-size:2em;background: #00965E;color: #FFF', '富文本组件MCE注册完成', res);
|
||||
// console.log('%c%s', 'font-size:2em;background: #00965E;color: #FFF', '富文本组件MCE注册完成', res)
|
||||
});
|
||||
window.customElements.define('magic-link', MagicLink);
|
||||
}
|
||||
@ -49685,7 +49841,7 @@ var __vue_render__$F = function () {
|
||||
: _c("div", {
|
||||
staticClass: "richtext-reset-wrapper--view",
|
||||
attrs: { id: _vm.markRootId },
|
||||
domProps: { innerHTML: _vm._s(_vm.formatImg(_vm.pBlockData.html)) },
|
||||
domProps: { innerHTML: _vm._s(_vm.richContent) },
|
||||
}),
|
||||
_vm._v(" "),
|
||||
_vm._t("mater-lib-dialog"),
|
||||
@ -50259,7 +50415,7 @@ __vue_render__$F._withStripped = true;
|
||||
/* style */
|
||||
const __vue_inject_styles__$F = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__$F = "data-v-1b4a8a63";
|
||||
const __vue_scope_id__$F = "data-v-ec02be9c";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__$F = undefined;
|
||||
/* functional template */
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
|
||||
.xml-question-container-h5[data-v-6fc40934] {
|
||||
.xml-question-container-h5[data-v-33d3f358] {
|
||||
}
|
||||
.xml-question-container-pc[data-v-6fc40934] {
|
||||
.xml-question-container-pc[data-v-33d3f358] {
|
||||
}
|
||||
.xml-question-container-pad[data-v-6fc40934] {
|
||||
.xml-question-container-pad[data-v-33d3f358] {
|
||||
}
|
||||
|
||||
|
||||
@ -12,10 +12,10 @@
|
||||
|
||||
|
||||
/*# sourceMappingURL=QuestionItem.vue.map */
|
||||
.content[data-v-b67ffd48] {
|
||||
.content[data-v-175142a4] {
|
||||
width: 100%;
|
||||
}
|
||||
.content .stem-content[data-v-b67ffd48] {
|
||||
.content .stem-content[data-v-175142a4] {
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 5px 14px;
|
||||
@ -24,12 +24,12 @@
|
||||
border-radius: 6px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.content .stem-content.no-border[data-v-b67ffd48] {
|
||||
.content .stem-content.no-border[data-v-175142a4] {
|
||||
padding: 0;
|
||||
border: none;
|
||||
cursor: default;
|
||||
}
|
||||
.content .stem-content .placeholder[data-v-b67ffd48] {
|
||||
.content .stem-content .placeholder[data-v-175142a4] {
|
||||
color: #c0c4cc;
|
||||
font-size: 14px;
|
||||
cursor: pointer;
|
||||
@ -37,50 +37,31 @@
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=common.vue.map */
|
||||
.option-item + .option-item[data-v-68e077b4] {
|
||||
margin-top: 16px;
|
||||
.content[data-v-5a1894ea] {
|
||||
width: 100%;
|
||||
}
|
||||
.option-item[data-v-68e077b4] {
|
||||
display: flex;
|
||||
background: #fbfbfb;
|
||||
.content .stem-content[data-v-5a1894ea] {
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 5px 14px;
|
||||
height: auto;
|
||||
border: 1px solid #e7e7e7;
|
||||
border-radius: 6px;
|
||||
padding-left: 16px;
|
||||
cursor: pointer;
|
||||
transition: all ease 0.3s;
|
||||
border: 1px solid #fbfbfb;
|
||||
}
|
||||
.option-item .questionSeq[data-v-68e077b4] {
|
||||
padding: 8px 0;
|
||||
}
|
||||
.option-item.isActive[data-v-68e077b4] {
|
||||
border-color: #2e9adb;
|
||||
}
|
||||
.option-item.isTrue[data-v-68e077b4] {
|
||||
border: 1px solid #70b603;
|
||||
}
|
||||
.option-item.isTrue[data-v-68e077b4] .el-radio__input.is-checked .el-radio__inner {
|
||||
border-color: #70b603;
|
||||
background: #70b603;
|
||||
}
|
||||
.option-item.isFalse[data-v-68e077b4] {
|
||||
border: 1px solid #d9001b;
|
||||
}
|
||||
.option-item.isFalse[data-v-68e077b4] .el-radio__input.is-checked .el-radio__inner {
|
||||
border-color: #d9001b;
|
||||
background: #d9001b;
|
||||
}
|
||||
.option-item[data-v-68e077b4]:hover {
|
||||
background: #ddd;
|
||||
}
|
||||
.option-item[data-v-68e077b4] .content {
|
||||
cursor: pointer;
|
||||
}
|
||||
.option-item[data-v-68e077b4] .stem-content.no-border {
|
||||
padding: 8px 14px !important;
|
||||
.content .stem-content.no-border[data-v-5a1894ea] {
|
||||
padding: 0;
|
||||
border: none;
|
||||
cursor: default;
|
||||
}
|
||||
.content .stem-content .placeholder[data-v-5a1894ea] {
|
||||
color: #c0c4cc;
|
||||
font-size: 14px;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=radio.vue.map */
|
||||
/*# sourceMappingURL=common.vue.map */
|
||||
.option-item + .option-item[data-v-4605914c] {
|
||||
margin-top: 16px;
|
||||
}
|
||||
@ -125,31 +106,50 @@
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=radio.vue.map */
|
||||
.content[data-v-5a1894ea] {
|
||||
width: 100%;
|
||||
.option-item + .option-item[data-v-6801edfc] {
|
||||
margin-top: 16px;
|
||||
}
|
||||
.content .stem-content[data-v-5a1894ea] {
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
padding: 5px 14px;
|
||||
height: auto;
|
||||
border: 1px solid #e7e7e7;
|
||||
.option-item[data-v-6801edfc] {
|
||||
display: flex;
|
||||
background: #fbfbfb;
|
||||
border-radius: 6px;
|
||||
padding-left: 16px;
|
||||
cursor: pointer;
|
||||
transition: all ease 0.3s;
|
||||
border: 1px solid #fbfbfb;
|
||||
}
|
||||
.option-item.isActive[data-v-6801edfc] {
|
||||
border-color: #2e9adb;
|
||||
}
|
||||
.option-item .questionSeq[data-v-6801edfc] {
|
||||
padding: 8px 0;
|
||||
}
|
||||
.option-item.isTrue[data-v-6801edfc] {
|
||||
border: 1px solid #70b603;
|
||||
}
|
||||
.option-item.isTrue[data-v-6801edfc] .el-checkbox__input.is-checked .el-checkbox__inner {
|
||||
border-color: #70b603;
|
||||
background: #70b603;
|
||||
}
|
||||
.option-item.isFalse[data-v-6801edfc] {
|
||||
border: 1px solid #d9001b;
|
||||
}
|
||||
.option-item.isFalse[data-v-6801edfc] .el-checkbox__input.is-checked .el-checkbox__inner {
|
||||
border-color: #d9001b;
|
||||
background: #d9001b;
|
||||
}
|
||||
.option-item[data-v-6801edfc]:hover {
|
||||
background: #ddd;
|
||||
}
|
||||
.option-item[data-v-6801edfc] .content {
|
||||
cursor: pointer;
|
||||
}
|
||||
.content .stem-content.no-border[data-v-5a1894ea] {
|
||||
padding: 0;
|
||||
border: none;
|
||||
cursor: default;
|
||||
}
|
||||
.content .stem-content .placeholder[data-v-5a1894ea] {
|
||||
color: #c0c4cc;
|
||||
font-size: 14px;
|
||||
.option-item[data-v-6801edfc] .stem-content.no-border {
|
||||
padding: 8px 14px !important;
|
||||
cursor: pointer;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=common.vue.map */
|
||||
/*# sourceMappingURL=checkbox.vue.map */
|
||||
.option-item + .option-item[data-v-9f3637dc] {
|
||||
margin-top: 16px;
|
||||
}
|
||||
@ -194,10 +194,10 @@
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=checkbox.vue.map */
|
||||
.option-item + .option-item[data-v-5c9a1da5] {
|
||||
.option-item + .option-item[data-v-5cd637ec] {
|
||||
margin-top: 16px;
|
||||
}
|
||||
.option-item[data-v-5c9a1da5] {
|
||||
.option-item[data-v-5cd637ec] {
|
||||
display: flex;
|
||||
background: #fbfbfb;
|
||||
border-radius: 6px;
|
||||
@ -206,38 +206,38 @@
|
||||
transition: all ease 0.3s;
|
||||
border: 1px solid #fbfbfb;
|
||||
}
|
||||
.option-item.isActive[data-v-5c9a1da5] {
|
||||
border-color: #2e9adb;
|
||||
}
|
||||
.option-item .questionSeq[data-v-5c9a1da5] {
|
||||
.option-item .questionSeq[data-v-5cd637ec] {
|
||||
padding: 8px 0;
|
||||
}
|
||||
.option-item.isTrue[data-v-5c9a1da5] {
|
||||
.option-item.isActive[data-v-5cd637ec] {
|
||||
border-color: #2e9adb;
|
||||
}
|
||||
.option-item.isTrue[data-v-5cd637ec] {
|
||||
border: 1px solid #70b603;
|
||||
}
|
||||
.option-item.isTrue[data-v-5c9a1da5] .el-checkbox__input.is-checked .el-checkbox__inner {
|
||||
.option-item.isTrue[data-v-5cd637ec] .el-radio__input.is-checked .el-radio__inner {
|
||||
border-color: #70b603;
|
||||
background: #70b603;
|
||||
}
|
||||
.option-item.isFalse[data-v-5c9a1da5] {
|
||||
.option-item.isFalse[data-v-5cd637ec] {
|
||||
border: 1px solid #d9001b;
|
||||
}
|
||||
.option-item.isFalse[data-v-5c9a1da5] .el-checkbox__input.is-checked .el-checkbox__inner {
|
||||
.option-item.isFalse[data-v-5cd637ec] .el-radio__input.is-checked .el-radio__inner {
|
||||
border-color: #d9001b;
|
||||
background: #d9001b;
|
||||
}
|
||||
.option-item[data-v-5c9a1da5]:hover {
|
||||
.option-item[data-v-5cd637ec]:hover {
|
||||
background: #ddd;
|
||||
}
|
||||
.option-item[data-v-5c9a1da5] .content {
|
||||
.option-item[data-v-5cd637ec] .content {
|
||||
cursor: pointer;
|
||||
}
|
||||
.option-item[data-v-5c9a1da5] .stem-content.no-border {
|
||||
.option-item[data-v-5cd637ec] .stem-content.no-border {
|
||||
padding: 8px 14px !important;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=checkbox.vue.map */
|
||||
/*# sourceMappingURL=radio.vue.map */
|
||||
.line-content[data-v-a868932e] {
|
||||
width: 100%;
|
||||
position: relative;
|
||||
@ -323,37 +323,6 @@
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=view-line-answer.vue.map */
|
||||
.image-file[data-v-070c50ee] {
|
||||
width: 218px;
|
||||
object-fit: scale-down;
|
||||
}
|
||||
.video-file[data-v-070c50ee] {
|
||||
width: 408px;
|
||||
}
|
||||
.file-render[data-v-070c50ee] {
|
||||
width: 100%;
|
||||
}
|
||||
.file-info[data-v-070c50ee] {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
.file-info.videoHandler[data-v-070c50ee] {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
.file-info.videoHandler .fileName[data-v-070c50ee] {
|
||||
font-size: 18px;
|
||||
color: #333333;
|
||||
margin-bottom: 19px;
|
||||
}
|
||||
.file-info.videoHandler .fileInfo[data-v-070c50ee] {
|
||||
font-size: 14px;
|
||||
color: #666666;
|
||||
margin-bottom: 19px;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=index.vue.map */
|
||||
.image-file[data-v-111cf251] {
|
||||
width: 218px;
|
||||
object-fit: scale-down;
|
||||
@ -385,124 +354,37 @@
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=index.vue.map */
|
||||
.audio .audio-icon[data-v-706e281e] {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
margin-right: 20px;
|
||||
.image-file[data-v-070c50ee] {
|
||||
width: 218px;
|
||||
object-fit: scale-down;
|
||||
}
|
||||
.audio .audio-icon img[data-v-706e281e] {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: block;
|
||||
.video-file[data-v-070c50ee] {
|
||||
width: 408px;
|
||||
}
|
||||
.audio .audio-controls[data-v-706e281e] {
|
||||
.file-render[data-v-070c50ee] {
|
||||
width: 100%;
|
||||
max-width: 200px;
|
||||
}
|
||||
.file-info[data-v-070c50ee] {
|
||||
flex: 1;
|
||||
height: 36px;
|
||||
min-width: 0;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--progress[data-v-706e281e], .audio .audio-controls .audio-controls--handler[data-v-706e281e] {
|
||||
width: 100%;
|
||||
.file-info.videoHandler[data-v-070c50ee] {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--handler[data-v-706e281e] {
|
||||
line-height: 1;
|
||||
.file-info.videoHandler .fileName[data-v-070c50ee] {
|
||||
font-size: 18px;
|
||||
color: #333333;
|
||||
margin-bottom: 19px;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--handler .play[data-v-706e281e] {
|
||||
font-size: 24px;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--handler .play .play-handler[data-v-706e281e] {
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
display: block;
|
||||
cursor: pointer;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--handler .current-time[data-v-706e281e], .audio .audio-controls .audio-controls--handler .total-time[data-v-706e281e] {
|
||||
font-size: 12px;
|
||||
color: #333;
|
||||
}
|
||||
.play-handler.mobile[data-v-706e281e] {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
.audio-component[data-v-706e281e] {
|
||||
display: none;
|
||||
}
|
||||
[data-v-706e281e] .el-slider__runway {
|
||||
margin: 0 0 4px 0;
|
||||
background: #e3e3e3;
|
||||
height: 4px;
|
||||
}
|
||||
[data-v-706e281e] .el-slider__bar {
|
||||
height: 4px;
|
||||
}
|
||||
[data-v-706e281e] .el-slider__button {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
}
|
||||
[data-v-706e281e] .el-slider__button-wrapper {
|
||||
top: -15px;
|
||||
.file-info.videoHandler .fileInfo[data-v-070c50ee] {
|
||||
font-size: 14px;
|
||||
color: #666666;
|
||||
margin-bottom: 19px;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=audio-play-new.vue.map */
|
||||
.audio .audio-icon[data-v-43ef9f54] {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
.audio .audio-icon img[data-v-43ef9f54] {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: block;
|
||||
}
|
||||
.audio .audio-controls[data-v-43ef9f54] {
|
||||
width: 100%;
|
||||
max-width: 200px;
|
||||
flex: 1;
|
||||
height: 36px;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--progress[data-v-43ef9f54], .audio .audio-controls .audio-controls--handler[data-v-43ef9f54] {
|
||||
width: 100%;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--handler[data-v-43ef9f54] {
|
||||
line-height: 1;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--handler .play[data-v-43ef9f54] {
|
||||
font-size: 24px;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--handler .play .play-handler[data-v-43ef9f54] {
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
display: block;
|
||||
cursor: pointer;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--handler .current-time[data-v-43ef9f54], .audio .audio-controls .audio-controls--handler .total-time[data-v-43ef9f54] {
|
||||
font-size: 12px;
|
||||
color: #333;
|
||||
}
|
||||
.play-handler.mobile[data-v-43ef9f54] {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
.audio-component[data-v-43ef9f54] {
|
||||
display: none;
|
||||
}
|
||||
[data-v-43ef9f54] .el-slider__runway {
|
||||
margin: 0 0 4px 0;
|
||||
background: #e3e3e3;
|
||||
height: 4px;
|
||||
}
|
||||
[data-v-43ef9f54] .el-slider__bar {
|
||||
height: 4px;
|
||||
}
|
||||
[data-v-43ef9f54] .el-slider__button {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
}
|
||||
[data-v-43ef9f54] .el-slider__button-wrapper {
|
||||
top: -15px;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=audio-play-new.vue.map */
|
||||
/*# sourceMappingURL=index.vue.map */
|
||||
[data-v-33a4cdd5] .el-dialog__header {
|
||||
padding: 10px;
|
||||
}
|
||||
@ -577,3 +459,121 @@
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=video-play.vue.map */
|
||||
.audio .audio-icon[data-v-43ef9f54] {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
.audio .audio-icon img[data-v-43ef9f54] {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: block;
|
||||
}
|
||||
.audio .audio-controls[data-v-43ef9f54] {
|
||||
width: 100%;
|
||||
max-width: 200px;
|
||||
flex: 1;
|
||||
height: 36px;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--progress[data-v-43ef9f54], .audio .audio-controls .audio-controls--handler[data-v-43ef9f54] {
|
||||
width: 100%;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--handler[data-v-43ef9f54] {
|
||||
line-height: 1;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--handler .play[data-v-43ef9f54] {
|
||||
font-size: 24px;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--handler .play .play-handler[data-v-43ef9f54] {
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
display: block;
|
||||
cursor: pointer;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--handler .current-time[data-v-43ef9f54], .audio .audio-controls .audio-controls--handler .total-time[data-v-43ef9f54] {
|
||||
font-size: 12px;
|
||||
color: #333;
|
||||
}
|
||||
.play-handler.mobile[data-v-43ef9f54] {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
.audio-component[data-v-43ef9f54] {
|
||||
display: none;
|
||||
}
|
||||
[data-v-43ef9f54] .el-slider__runway {
|
||||
margin: 0 0 4px 0;
|
||||
background: #e3e3e3;
|
||||
height: 4px;
|
||||
}
|
||||
[data-v-43ef9f54] .el-slider__bar {
|
||||
height: 4px;
|
||||
}
|
||||
[data-v-43ef9f54] .el-slider__button {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
}
|
||||
[data-v-43ef9f54] .el-slider__button-wrapper {
|
||||
top: -15px;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=audio-play-new.vue.map */
|
||||
.audio .audio-icon[data-v-706e281e] {
|
||||
width: 36px;
|
||||
height: 36px;
|
||||
margin-right: 20px;
|
||||
}
|
||||
.audio .audio-icon img[data-v-706e281e] {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
display: block;
|
||||
}
|
||||
.audio .audio-controls[data-v-706e281e] {
|
||||
width: 100%;
|
||||
max-width: 200px;
|
||||
flex: 1;
|
||||
height: 36px;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--progress[data-v-706e281e], .audio .audio-controls .audio-controls--handler[data-v-706e281e] {
|
||||
width: 100%;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--handler[data-v-706e281e] {
|
||||
line-height: 1;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--handler .play[data-v-706e281e] {
|
||||
font-size: 24px;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--handler .play .play-handler[data-v-706e281e] {
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
display: block;
|
||||
cursor: pointer;
|
||||
}
|
||||
.audio .audio-controls .audio-controls--handler .current-time[data-v-706e281e], .audio .audio-controls .audio-controls--handler .total-time[data-v-706e281e] {
|
||||
font-size: 12px;
|
||||
color: #333;
|
||||
}
|
||||
.play-handler.mobile[data-v-706e281e] {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
}
|
||||
.audio-component[data-v-706e281e] {
|
||||
display: none;
|
||||
}
|
||||
[data-v-706e281e] .el-slider__runway {
|
||||
margin: 0 0 4px 0;
|
||||
background: #e3e3e3;
|
||||
height: 4px;
|
||||
}
|
||||
[data-v-706e281e] .el-slider__bar {
|
||||
height: 4px;
|
||||
}
|
||||
[data-v-706e281e] .el-slider__button {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
}
|
||||
[data-v-706e281e] .el-slider__button-wrapper {
|
||||
top: -15px;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=audio-play-new.vue.map */
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
import crypto from 'crypto';
|
||||
@ -20932,8 +20932,8 @@ const checkType = ['MultipleSelect'];
|
||||
const showOptionsType = ['1', '2', '4', '5'];
|
||||
const showJudgeAnswerType = ['Judgement'];
|
||||
const showSortType = ['7'];
|
||||
const showRichTextAnswerType = ['Filling', 'AskAnswer'];
|
||||
const isclozeType = ['10', '11', '12'];
|
||||
const showRichTextAnswerType = ['AskAnswer', 'Filling'];
|
||||
const isclozeType = ['Filling'];
|
||||
const isRadio = type => {
|
||||
return radioType.includes(type);
|
||||
};
|
||||
@ -21767,7 +21767,7 @@ var script$4 = {
|
||||
},
|
||||
showImage(e) {
|
||||
if (e.target.tagName == 'IMG') {
|
||||
this.$hevueImgPreview({
|
||||
this.$xmlImgPreview({
|
||||
multiple: true,
|
||||
nowImgIndex: 0,
|
||||
imgList: [{
|
||||
@ -21857,7 +21857,7 @@ __vue_render__$4._withStripped = true;
|
||||
/* style */
|
||||
const __vue_inject_styles__$4 = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__$4 = "data-v-b67ffd48";
|
||||
const __vue_scope_id__$4 = "data-v-175142a4";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__$4 = undefined;
|
||||
/* functional template */
|
||||
@ -21890,6 +21890,10 @@ var script$3 = {
|
||||
BcViewCommon: __vue_component__$4
|
||||
},
|
||||
props: {
|
||||
questionType: {
|
||||
type: String,
|
||||
default: ''
|
||||
},
|
||||
option: {
|
||||
type: [String, Array],
|
||||
default: ''
|
||||
@ -21990,7 +21994,6 @@ var script$3 = {
|
||||
}
|
||||
},
|
||||
submitAnswer() {
|
||||
console.log('🚀 ~ file: radio.vue:258 ~ submitAnswer ~ this.selectData:', this.selectData);
|
||||
if (!this.selectData && this.isSubmit) {
|
||||
this.$message.error('请选择答案');
|
||||
return;
|
||||
@ -22005,7 +22008,10 @@ var script$3 = {
|
||||
// }
|
||||
|
||||
this.isAnswer = true;
|
||||
this.$emit('showAnalysis', this.answerIsTrue);
|
||||
this.$emit('showAnalysis', {
|
||||
answerIsTrue: this.answerIsTrue,
|
||||
userAnswer: this.selectData
|
||||
});
|
||||
},
|
||||
afresh() {
|
||||
this.selectData = '';
|
||||
@ -22029,7 +22035,10 @@ var __vue_render__$3 = function () {
|
||||
return _c("div", [
|
||||
_c(
|
||||
"div",
|
||||
{ staticClass: "xml-checkbox-box" },
|
||||
{
|
||||
staticClass: "xml-checkbox-box",
|
||||
class: _vm.optionsList.length == 2 ? "xml-arrange-in-a-row" : "",
|
||||
},
|
||||
_vm._l(_vm.optionsList, function (item, index) {
|
||||
return _c(
|
||||
"div",
|
||||
@ -22164,7 +22173,7 @@ __vue_render__$3._withStripped = true;
|
||||
/* style */
|
||||
const __vue_inject_styles__$3 = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__$3 = "data-v-68e077b4";
|
||||
const __vue_scope_id__$3 = "data-v-5cd637ec";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__$3 = undefined;
|
||||
/* functional template */
|
||||
@ -22285,11 +22294,15 @@ var script$2 = {
|
||||
this.$message.error('请选择答案');
|
||||
return;
|
||||
}
|
||||
|
||||
// let answerIsTrue = this.standardAnswer.map((i) => i.title).join('、') === this.selectData.join('、')
|
||||
let answerIsTrue = false;
|
||||
this.selectData.map(item => {
|
||||
answerIsTrue = this.standardAnswer.indexOf(item) != -1 && this.standardAnswer.split(',')?.length == this.selectData.length;
|
||||
});
|
||||
this.isAnswer = true;
|
||||
this.$emit('showAnalysis', answerIsTrue);
|
||||
this.$emit('showAnalysis', {
|
||||
answerIsTrue,
|
||||
userAnswer: this.selectData.join('、')
|
||||
});
|
||||
},
|
||||
afresh() {
|
||||
this.selectData = [];
|
||||
@ -22469,7 +22482,7 @@ __vue_render__$2._withStripped = true;
|
||||
/* style */
|
||||
const __vue_inject_styles__$2 = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__$2 = "data-v-5c9a1da5";
|
||||
const __vue_scope_id__$2 = "data-v-6801edfc";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__$2 = undefined;
|
||||
/* functional template */
|
||||
@ -22521,6 +22534,7 @@ var script$1 = {
|
||||
}
|
||||
},
|
||||
isAnswer: false,
|
||||
JudgementList: ['错误', '正确'],
|
||||
serialNumber: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
|
||||
};
|
||||
},
|
||||
@ -22562,7 +22576,7 @@ var script$1 = {
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
console.log(this.question);
|
||||
// console.log(this.question)
|
||||
},
|
||||
computed: {
|
||||
isShowAnalysis() {
|
||||
@ -22575,33 +22589,30 @@ var script$1 = {
|
||||
return this.isAnswer && this.canShowKnowledge === 'true';
|
||||
},
|
||||
isRadio() {
|
||||
return isRadio(String(this.question.questionType));
|
||||
return isRadio(this.question.type);
|
||||
},
|
||||
isCheck() {
|
||||
return isCheck(String(this.question.questionType));
|
||||
return isCheck(this.question.type);
|
||||
},
|
||||
showJudgeAnswer() {
|
||||
return showJudgeAnswer(String(this.question.questionType));
|
||||
return showJudgeAnswer(this.question.type);
|
||||
},
|
||||
showRichTextAnswer() {
|
||||
return showRichTextAnswer(String(this.question.questionType));
|
||||
return showRichTextAnswer(this.question.type);
|
||||
},
|
||||
showOptions() {
|
||||
return showOptions(String(this.question.questionType));
|
||||
return showOptions(this.question.type);
|
||||
},
|
||||
showSort() {
|
||||
return showSort(String(this.question.questionType));
|
||||
return showSort(this.question.type);
|
||||
},
|
||||
isCloze() {
|
||||
return isCloze(String(this.question.questionType));
|
||||
return isCloze(this.question.type);
|
||||
},
|
||||
clozeLength() {
|
||||
let fillInTheBlanksSpan = this.question.stem.content.match(/fillInTheBlanksSpan/g);
|
||||
let fillInTheBlanks = this.question.stem.content.match(/\((.+?)\)/g);
|
||||
console.log(fillInTheBlanks, fillInTheBlanksSpan, 'fillInTheBlanksSpanfillInTheBlanksSpanfillInTheBlanksSpan');
|
||||
let fillInTheBlanksSpan = this.question.description.match(/______/g);
|
||||
let sortString = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
||||
// let data = fillInTheBlanksSpan ? fillInTheBlanksSpan.length : fillInTheBlanks.length
|
||||
let data = this.question.standardAnswer.length;
|
||||
let data = fillInTheBlanksSpan.length || 0;
|
||||
let list = [];
|
||||
for (let i = 0; i < data; i++) {
|
||||
list.push({
|
||||
@ -22637,9 +22648,9 @@ var script$1 = {
|
||||
if (!this.showRichTextAnswer) {
|
||||
this.isAnswer = true;
|
||||
let params = {
|
||||
...answer,
|
||||
pass: answer,
|
||||
questionId: this.question.id,
|
||||
questionName: JSON.stringify(this.question.stem)
|
||||
question: this.question
|
||||
};
|
||||
this.$emit('submitAnswer', params);
|
||||
} else {
|
||||
@ -22648,7 +22659,7 @@ var script$1 = {
|
||||
},
|
||||
showAnalysis2(answer) {
|
||||
if (answer.questionType == 'shortSnswer' && this.isSubmit) {
|
||||
if (!answer.userAnswer) {
|
||||
if (!answer.userAnswer && this.question.description.indexOf('[/答题模板]') == -1) {
|
||||
this.$message.error('请先输入答案');
|
||||
return;
|
||||
}
|
||||
@ -22662,9 +22673,9 @@ var script$1 = {
|
||||
}
|
||||
this.isAnswer = true;
|
||||
let params = {
|
||||
...answer,
|
||||
pass: answer,
|
||||
questionId: this.question.id,
|
||||
questionName: JSON.stringify(this.question.stem)
|
||||
question: this.question
|
||||
};
|
||||
this.$emit('submitAnswer', params);
|
||||
},
|
||||
@ -22737,6 +22748,38 @@ var script$1 = {
|
||||
e = e.replace(/ /gi, ''); //去除空格
|
||||
return e;
|
||||
}
|
||||
},
|
||||
// 格式化表格
|
||||
formatTable(content) {
|
||||
if (content) {
|
||||
const regex = /\[答题模板\]([\s\S]*?)\[\/答题模板\]/;
|
||||
const match = content.match(regex);
|
||||
if (match?.length > 0) {
|
||||
return this.processTemplate(match ? match[1] : '');
|
||||
} else {
|
||||
return content;
|
||||
}
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
},
|
||||
processTemplate(content) {
|
||||
if (content) {
|
||||
// 先替换表格标签,添加class和外层div
|
||||
// let processedContent = content.replace(/<table>/g, '<div class="xml-input-question-answer-table"><table>')
|
||||
// // 添加div的闭合标签
|
||||
// processedContent = processedContent.replace(/<\/table>/g, '</table></div>')
|
||||
// 只保留table内的内容
|
||||
// 匹配所有 table 标签及其内容(含属性)
|
||||
const tableRegex = /<table[^>]*>[\s\S]*?<\/table>/gi;
|
||||
// 获取所有匹配的 table 内容
|
||||
const tables = content.match(tableRegex) || [];
|
||||
let processedContent = '<div class="xml-input-question-answer-table">' + tables[0] + '</div>';
|
||||
// 处理输入框
|
||||
return processedContent.replace(/______/g, '<input type="text" placeholder="请输入">');
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
@ -22786,7 +22829,7 @@ var __vue_render__$1 = function () {
|
||||
staticClass: "xml-question-title",
|
||||
staticStyle: { flex: "1", "min-width": "0" },
|
||||
attrs: {
|
||||
content: _vm.question.description,
|
||||
content: _vm.formatTable(_vm.question.description),
|
||||
border: false,
|
||||
fileInfo: _vm.question.stem.fileInfo,
|
||||
resourceBasisPath: _vm.resourceBasisPath,
|
||||
@ -22813,6 +22856,7 @@ var __vue_render__$1 = function () {
|
||||
resourceBasisPath: _vm.resourceBasisPath,
|
||||
isSubmit: _vm.isSubmit,
|
||||
pageType: _vm.pageType,
|
||||
questionType: _vm.question.type,
|
||||
},
|
||||
on: { showAnalysis: _vm.showAnalysis, afresh: _vm.afresh },
|
||||
}),
|
||||
@ -22850,7 +22894,8 @@ var __vue_render__$1 = function () {
|
||||
staticStyle: { display: "flex", "flex-direction": "column" },
|
||||
},
|
||||
[
|
||||
_c("el-input", {
|
||||
_vm.question.description.indexOf("[/答题模板]") == -1
|
||||
? _c("el-input", {
|
||||
attrs: {
|
||||
type: "textarea",
|
||||
placeholder: "请输入您的回答",
|
||||
@ -22863,7 +22908,8 @@ var __vue_render__$1 = function () {
|
||||
},
|
||||
expression: "inputAnswer",
|
||||
},
|
||||
}),
|
||||
})
|
||||
: _vm._e(),
|
||||
_vm._v(" "),
|
||||
!_vm.isAnswer & _vm.isSubmit
|
||||
? _c(
|
||||
@ -23014,7 +23060,7 @@ var __vue_render__$1 = function () {
|
||||
"div",
|
||||
{ staticClass: "question-label" },
|
||||
[
|
||||
_vm._v("正确答案:\n "),
|
||||
_vm._v("\n 正确答案:\n "),
|
||||
_vm.question.type == "SingleSelect"
|
||||
? [
|
||||
_c("span", [
|
||||
@ -23027,6 +23073,18 @@ var __vue_render__$1 = function () {
|
||||
),
|
||||
]),
|
||||
]
|
||||
: _vm.question.type == "Judgement"
|
||||
? [
|
||||
_c("span", [
|
||||
_vm._v(
|
||||
_vm._s(
|
||||
_vm.JudgementList[
|
||||
_vm.question.answer - 1
|
||||
]
|
||||
)
|
||||
),
|
||||
]),
|
||||
]
|
||||
: _vm._l(
|
||||
_vm.question.answer.split(","),
|
||||
function (item, index) {
|
||||
@ -23150,7 +23208,7 @@ __vue_render__$1._withStripped = true;
|
||||
/* style */
|
||||
const __vue_inject_styles__$1 = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__$1 = "data-v-674e9ab4";
|
||||
const __vue_scope_id__$1 = "data-v-58c6546e";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__$1 = undefined;
|
||||
/* functional template */
|
||||
@ -23270,9 +23328,13 @@ var script = {
|
||||
this.$emit('setanalysis', item);
|
||||
},
|
||||
submitAnswer(val) {
|
||||
if (!this.$route.query.templateId) {
|
||||
this.mode === 'preview' && this.$emit('submitAnswer', val);
|
||||
}
|
||||
// if (!this.$route.query.templateId) {
|
||||
this.mode === 'preview' && this.$emit('submitAnswer', {
|
||||
...val,
|
||||
chapterId: this.currentRule.chapterId,
|
||||
xmlCompRef: this.currentRule.xmlCompRef
|
||||
});
|
||||
// }
|
||||
},
|
||||
changeAnswer() {
|
||||
for (let i = 0; i < this.questionSetList.length; i++) {
|
||||
@ -23324,6 +23386,8 @@ var __vue_render__ = function () {
|
||||
"div",
|
||||
{ staticClass: "question-item" },
|
||||
[
|
||||
_vm.questionSetList[0] &&
|
||||
_vm.questionSetList[0].stem &&
|
||||
_vm.questionSetList[0].stem.content
|
||||
? _vm._l(_vm.questionSetList, function (item, index) {
|
||||
return _c("XmlQuestionItem", {
|
||||
@ -23394,7 +23458,7 @@ __vue_render__._withStripped = true;
|
||||
/* style */
|
||||
const __vue_inject_styles__ = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__ = "data-v-6fc40934";
|
||||
const __vue_scope_id__ = "data-v-33d3f358";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__ = undefined;
|
||||
/* functional template */
|
||||
|
||||
@ -1,111 +1,9 @@
|
||||
|
||||
|
||||
/*# sourceMappingURL=render.vue.map */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.preview-container-h5[data-v-7a006dee] {
|
||||
padding-top: 15px;
|
||||
}
|
||||
.preview-container-pc[data-v-7a006dee] {
|
||||
padding-top: 15px;
|
||||
}
|
||||
.preview-container-pad[data-v-7a006dee] {
|
||||
padding-top: 15px;
|
||||
}
|
||||
.preview-container[data-v-7a006dee] .el-dialog__wrapper.preview-box-dialog {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
.preview-container[data-v-7a006dee] .el-dialog__wrapper.preview-box-dialog .el-dialog:not(.is-fullscreen) {
|
||||
margin-top: 0 !important;
|
||||
}
|
||||
.preview-container[data-v-7a006dee] .el-dialog__wrapper.preview-box-dialog .el-dialog__header {
|
||||
padding: 0;
|
||||
.read-the-docs[data-v-a8861796] {
|
||||
color: #888;
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=PreviewLooseLeaf.vue.map */
|
||||
|
||||
.read-the-docs[data-v-be1c9976] {
|
||||
color: #888;
|
||||
}
|
||||
|
||||
@ -1 +1 @@
|
||||
.preview-container-h5[data-v-7a006dee]{padding-top:15px}.preview-container-pc[data-v-7a006dee]{padding-top:15px}.preview-container-pad[data-v-7a006dee]{padding-top:15px}.preview-container[data-v-7a006dee] .el-dialog__wrapper.preview-box-dialog{display:flex;align-items:center}.preview-container[data-v-7a006dee] .el-dialog__wrapper.preview-box-dialog .el-dialog:not(.is-fullscreen){margin-top:0!important}.preview-container[data-v-7a006dee] .el-dialog__wrapper.preview-box-dialog .el-dialog__header{padding:0}
|
||||
.read-the-docs[data-v-a8861796]{color:#888}.read-the-docs[data-v-be1c9976]{color:#888}
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
var epub = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAoCAMAAAChHKjRAAAAAXNSR0IArs4c6QAAAjdQTFRFAAAAiXb/kG/0inD6inX6jW72jXL2eGLpe2fuinL2i3H3iHf6i3L5dmTvjHH3inP4inH2i3L2d2TuhW7vjHH5d2TqjnH5fWnyd2bskHb5jXX1jHH2i3H3i3H4i3H4d2Xsd2Xqi3H4cmLoi3L4inH3i3L3inL3i3L3jHL3hG3zi3L3jHL4jnT5i3L3i3L3jHH2bFPvbl/nb2DncF/ncVP1cWHncWHocWHpclP2cmLpc2Lpc2Lqc2Ppc2PqdGPpdGPqd1r1d1z0d2TreFv2eFz0eFz1eGDxeGbseVv1eVz1el31el32el71el72e133e1/2e2TxfGD1fGXxfWD3fWH2fmjxf2T2f2rwgGX3gGnygWX2gWb2gWb3gWrzgWzzgmb3gmf2gmzyg23zhGj3hGn2hGr2hGr3hG3zhWr3hWv2hWv3hWz3hW7zhW70hmz3h233h273iG34iG/3iW34iW74iW/3iXD3iXH2inD4inH3inP2i3D4i3H3i3H4i3L3i3L4i3P4jHL3jHL4jHP3jHP4jHT2jHT3jHrxjHryjXP4jXT3jXT5jXX3jXvyjnT5jnX4j3T5j3T6j3b3lYH2l4H4mIL4mYP4movynY/xpJL3pJfzpZL5pZjzqJX5q5n5r576saD6uaz3va/7zMT5zcP7z8X70Mb70sj708n708r71c381c761s382ND72db4393549z+4+H55+b66OL96+b+6+r67+v+8/L99PD/9vT+///9///+////0H5GmAAAADB0Uk5TAA0XMjI6OkZNVVpefX+HjJCRkpSeoausra2vs7W2t7i5v8TN1tbd3t/o6+7v8PH8u0jmrQAAAapJREFUOMtjYGBgYBZQ1sMAOpoKHAwIwF+HDfSlG9nzElADVGRuZScEVcNWiVORvY29KESRZDluRfb2VhJgRSp1OBQlgRTZW8uDFKnjUpRrZgtSZamER1Fji5MhSJG9qTgDgxoORXXd5e5mYGDMjltRXV9nTiIIxAkjKeoq8veFg5DK5rqWvgl9QDBRCklRacG8BfOhYMHs/Bq4hBySIu9Fe5DAXH+4hDRCUaXnqj3b12+EgE3rJidjVeS1ZM9ig4AgMAh1S+3HpWiFX2EJGBRXN9fhUrQyBFt0oylaahIWBQZ5bbgVrW2eMhUMyrLacCqCgx2TUnAr2gUFW1szcCpaHd7RCwLtkVlduB1uEREDAvGFXXWUBcFy5+x8MMgrwh2Yyxyy8sCgKDqtB6sijzV7dm7eAgHbNkxLwKaoznvhbqSkMjMYq6La2BlzZkHBnOmZ9VgVtVX4OLpCgUtgUzNWRXV1zS1w0Ig9CHADaZyZEwnIMGgQViTLoEpYkQiDWBUhNTXcDKwEDdJnZGAQJKCmgQtUQvHhVaPNCSkRWQSVdfWwAi1FHiagAgAPu3js6FbZbgAAAABJRU5ErkJggg==";
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
var singleGroupMixin = {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
var singleGroupMixin = {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
var singleGroupMixin = {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
var singleGroupMixin = {
|
||||
@ -309,6 +309,18 @@ var __vue_render__ = function () {
|
||||
],
|
||||
1
|
||||
),
|
||||
_vm._v(" "),
|
||||
_vm.groupData[_vm.imageBlockDataName].imageCaption &&
|
||||
_vm.groupData[_vm.imageBlockDataName].showEffect === "hua-lang"
|
||||
? _c("div", {
|
||||
staticClass: "xml-group-action-image-caption",
|
||||
domProps: {
|
||||
innerHTML: _vm._s(
|
||||
_vm.groupData[_vm.imageBlockDataName].imageCaption
|
||||
),
|
||||
},
|
||||
})
|
||||
: _vm._e(),
|
||||
],
|
||||
1
|
||||
)
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
var singleGroupMixin = {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
var singleGroupMixin = {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
var singleGroupMixin = {
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
var singleGroupMixin = {
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
|
||||
.xml-single-text-group-h5[data-v-db5a69b0] {
|
||||
.xml-single-text-group-h5[data-v-345e24df] {
|
||||
}
|
||||
.xml-single-text-group-pc[data-v-db5a69b0] {
|
||||
.xml-single-text-group-pc[data-v-345e24df] {
|
||||
}
|
||||
.xml-single-text-group-pad[data-v-db5a69b0] {
|
||||
.xml-single-text-group-pad[data-v-345e24df] {
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
var singleGroupMixin = {
|
||||
@ -124,6 +124,7 @@ var script = {
|
||||
default: ''
|
||||
},
|
||||
ruleIndex: Number,
|
||||
currentRuleIndex: Number,
|
||||
//当前所处组的规则
|
||||
currentRule: {
|
||||
type: Object,
|
||||
@ -360,7 +361,7 @@ __vue_render__._withStripped = true;
|
||||
/* style */
|
||||
const __vue_inject_styles__ = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__ = "data-v-db5a69b0";
|
||||
const __vue_scope_id__ = "data-v-345e24df";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__ = undefined;
|
||||
/* functional template */
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
var singleGroupMixin = {
|
||||
|
||||
@ -1,33 +1,45 @@
|
||||
|
||||
|
||||
/*# sourceMappingURL=fifth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=seventh.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greytheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=fourth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=first.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greytheme1.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=second.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=ninth.vue.map */
|
||||
/*# sourceMappingURL=Greytheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greytheme5.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=fourth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=eighth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=fifth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=third.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greytheme4.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=third.vue.map */
|
||||
/*# sourceMappingURL=seventh.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=tenth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=ninth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greytheme1.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=eleventh.vue.map */
|
||||
@ -36,43 +48,40 @@
|
||||
/*# sourceMappingURL=sixth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=tenth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme1.vue.map */
|
||||
/*# sourceMappingURL=Yellowtheme3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greytheme3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme2.vue.map */
|
||||
/*# sourceMappingURL=Greytheme6.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greytheme5.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme1.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=eighth.vue.map */
|
||||
/*# sourceMappingURL=Redtheme3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme4.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme3.vue.map */
|
||||
/*# sourceMappingURL=Redtheme1.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Bluetheme4.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme1.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme4.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greytheme6.vue.map */
|
||||
/*# sourceMappingURL=Greentheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme2.vue.map */
|
||||
/*# sourceMappingURL=Bluetheme1.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme3.vue.map */
|
||||
/*# sourceMappingURL=Yellowtheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Bluetheme2.vue.map */
|
||||
@ -81,28 +90,19 @@
|
||||
/*# sourceMappingURL=Greentheme1.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme3.vue.map */
|
||||
/*# sourceMappingURL=Greentheme3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme4.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Bluetheme4.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Bluetheme1.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Bluetheme3.vue.map */
|
||||
|
||||
.xml-text-h5[data-v-1b4a8a63] {
|
||||
.xml-text-h5[data-v-ec02be9c] {
|
||||
}
|
||||
.xml-text-pc[data-v-1b4a8a63] {
|
||||
.xml-text-pc[data-v-ec02be9c] {
|
||||
}
|
||||
.xml-text-h5[data-v-1b4a8a63] {
|
||||
.xml-text-h5[data-v-ec02be9c] {
|
||||
}
|
||||
|
||||
.xml-text-h5 .inline-audio-wrap,
|
||||
@ -774,6 +774,8 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
import crypto from 'crypto';
|
||||
@ -15257,7 +15257,8 @@ var script$y = {
|
||||
}
|
||||
this.loadingInstance = this.$loading({
|
||||
lock: true,
|
||||
text: 'Loading'
|
||||
text: 'Loading',
|
||||
background: 'rgba(0, 0, 0, 0)'
|
||||
});
|
||||
this.fileData.resourcesName = file.name;
|
||||
if (_image.indexOf(fileExt) !== -1) {
|
||||
@ -15434,7 +15435,8 @@ var script$y = {
|
||||
addRecorder() {
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: 'Loading'
|
||||
text: 'Loading',
|
||||
background: 'rgba(0, 0, 0, 0)'
|
||||
});
|
||||
let formData = new FormData();
|
||||
formData.append('file', this.recordedBlob, new Date().getTime() + '.mp3');
|
||||
@ -28908,7 +28910,7 @@ var VueToast = createComponent$1v({
|
||||
}
|
||||
});
|
||||
|
||||
var defaultOptions$1 = {
|
||||
var defaultOptions$2 = {
|
||||
icon: '',
|
||||
type: 'text',
|
||||
// @deprecated
|
||||
@ -28934,7 +28936,7 @@ var defaultOptions$1 = {
|
||||
var defaultOptionsMap = {};
|
||||
var queue = [];
|
||||
var multiple = false;
|
||||
var currentOptions = _extends$1({}, defaultOptions$1);
|
||||
var currentOptions = _extends$1({}, defaultOptions$2);
|
||||
function parseOptions$1(message) {
|
||||
if (isObject(message)) {
|
||||
return message;
|
||||
@ -29045,7 +29047,7 @@ Toast.resetDefaultOptions = function (type) {
|
||||
if (typeof type === 'string') {
|
||||
defaultOptionsMap[type] = null;
|
||||
} else {
|
||||
currentOptions = _extends$1({}, defaultOptions$1);
|
||||
currentOptions = _extends$1({}, defaultOptions$2);
|
||||
defaultOptionsMap = {};
|
||||
}
|
||||
};
|
||||
@ -38061,7 +38063,7 @@ function Notify(options) {
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
function defaultOptions() {
|
||||
function defaultOptions$1() {
|
||||
return {
|
||||
type: 'danger',
|
||||
value: true,
|
||||
@ -38080,12 +38082,12 @@ Notify.clear = function () {
|
||||
instance.value = false;
|
||||
}
|
||||
};
|
||||
Notify.currentOptions = defaultOptions();
|
||||
Notify.currentOptions = defaultOptions$1();
|
||||
Notify.setDefaultOptions = function (options) {
|
||||
_extends$1(Notify.currentOptions, options);
|
||||
};
|
||||
Notify.resetDefaultOptions = function () {
|
||||
Notify.currentOptions = defaultOptions();
|
||||
Notify.currentOptions = defaultOptions$1();
|
||||
};
|
||||
Notify.install = function () {
|
||||
Vue.use(VanNotify);
|
||||
@ -48326,6 +48328,121 @@ var n = function () {
|
||||
}, e;
|
||||
}();
|
||||
|
||||
function getTextNodeList(dom) {
|
||||
const nodeList = [...dom.childNodes];
|
||||
const textNodes = [];
|
||||
while (nodeList.length) {
|
||||
const node = nodeList.shift();
|
||||
if (node.nodeType === node.TEXT_NODE) {
|
||||
node.wholeText && textNodes.push(node);
|
||||
} else {
|
||||
nodeList.unshift(...node.childNodes);
|
||||
}
|
||||
}
|
||||
return textNodes;
|
||||
}
|
||||
function getTextInfoList(textNodes) {
|
||||
let length = 0;
|
||||
const textList = textNodes.map(node => {
|
||||
let startIdx = length,
|
||||
endIdx = length + node.wholeText.length;
|
||||
length = endIdx;
|
||||
return {
|
||||
text: node.wholeText,
|
||||
startIdx,
|
||||
endIdx
|
||||
};
|
||||
});
|
||||
return textList;
|
||||
}
|
||||
function getMatchList(content, keyword) {
|
||||
const characters = [...'\\[](){}?.+*^$:|'].reduce((r, c) => (r[c] = true, r), {});
|
||||
keyword = keyword.split('').map(s => characters[s] ? `\\${s}` : s).join('[\\s\\n]*');
|
||||
const reg = new RegExp(keyword, 'gmi');
|
||||
const matchList = [];
|
||||
let match = reg.exec(content);
|
||||
while (match) {
|
||||
matchList.push(match);
|
||||
match = reg.exec(content);
|
||||
}
|
||||
return matchList;
|
||||
}
|
||||
function replaceMatchResult(textNodes, textList, matchList, options) {
|
||||
let {
|
||||
flag,
|
||||
datasets,
|
||||
g
|
||||
} = options;
|
||||
// 对于每一个匹配结果,可能分散在多个标签中,找出这些标签,截取匹配片段并用font标签替换出
|
||||
if (!g) {
|
||||
matchList = [matchList[0]];
|
||||
}
|
||||
for (let i = matchList.length - 1; i >= 0; i--) {
|
||||
const match = matchList[i];
|
||||
const matchStart = match.index,
|
||||
matchEnd = matchStart + match[0].length; // 匹配结果在拼接字符串中的起止索引
|
||||
// 遍历文本信息列表,查找匹配的文本节点
|
||||
let groupStart = true;
|
||||
for (let textIdx = 0; textIdx < textList.length; textIdx++) {
|
||||
const {
|
||||
text,
|
||||
startIdx,
|
||||
endIdx
|
||||
} = textList[textIdx]; // 文本内容、文本在拼接串中开始、结束索引
|
||||
if (endIdx < matchStart) continue; // 匹配的文本节点还在后面
|
||||
if (startIdx >= matchEnd) break; // 匹配文本节点已经处理完了
|
||||
let textNode = textNodes[textIdx]; // 这个节点中的部分或全部内容匹配到了关键词,将匹配部分截取出来进行替换
|
||||
const nodeMatchStartIdx = Math.max(0, matchStart - startIdx); // 匹配内容在文本节点内容中的开始索引
|
||||
const nodeMatchLength = Math.min(endIdx, matchEnd) - startIdx - nodeMatchStartIdx; // 文本节点内容匹配关键词的长度
|
||||
if (nodeMatchStartIdx > 0) textNode = textNode.splitText(nodeMatchStartIdx); // textNode取后半部分
|
||||
if (nodeMatchLength < textNode.wholeText.length) textNode.splitText(nodeMatchLength);
|
||||
const font = document.createElement('font');
|
||||
font.setAttribute(flag, i + 1);
|
||||
groupStart ? font.classList.add(flag) : font.classList.add(flag + '-rest');
|
||||
if (datasets.length && Array.isArray(datasets)) {
|
||||
datasets.forEach(({
|
||||
key,
|
||||
value
|
||||
}) => {
|
||||
font.dataset[key] = value;
|
||||
});
|
||||
}
|
||||
font.innerText = text.substr(nodeMatchStartIdx, nodeMatchLength);
|
||||
textNode.parentNode.replaceChild(font, textNode);
|
||||
groupStart = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
const defaultOptions = {
|
||||
flag: 'xml-graph-link',
|
||||
datasets: [],
|
||||
g: false
|
||||
};
|
||||
function replaceKeywordsInHTML(html, keyword, options = defaultOptions) {
|
||||
options = {
|
||||
...defaultOptions,
|
||||
...options
|
||||
};
|
||||
let matchCount = 0,
|
||||
replacedHtml = '';
|
||||
if (!html || !keyword) {
|
||||
replacedHtml = html;
|
||||
return [replacedHtml, matchCount];
|
||||
}
|
||||
const div = document.createElement('div');
|
||||
div.innerHTML = html;
|
||||
const textNodes = getTextNodeList(div);
|
||||
const textList = getTextInfoList(textNodes);
|
||||
const content = textList.map(({
|
||||
text
|
||||
}) => text).join('');
|
||||
const matchList = getMatchList(content, keyword);
|
||||
matchCount = matchList.length;
|
||||
replaceMatchResult(textNodes, textList, matchList, options);
|
||||
replacedHtml = div.innerHTML;
|
||||
return [replacedHtml, matchCount];
|
||||
}
|
||||
|
||||
//
|
||||
var script$x = {
|
||||
name: 'XmlTextRender',
|
||||
@ -48491,6 +48608,10 @@ var script$x = {
|
||||
from: 'getSysEvn',
|
||||
default: () => () => {}
|
||||
}
|
||||
// callFnReplaceKeywordsInHTML: {
|
||||
// from: 'replaceKeywordsInHTML',
|
||||
// default: () => () => () => []
|
||||
// }
|
||||
},
|
||||
computed: {
|
||||
feedback() {
|
||||
@ -48498,6 +48619,7 @@ var script$x = {
|
||||
ruleIndex: this.ruleIndex,
|
||||
dataName: this.blockDataName,
|
||||
data: this.pBlockData,
|
||||
graphLinks: this.currentRule.data?.graphLinks || [],
|
||||
dataIndex: this.dataIndex,
|
||||
blockId: this.blockId
|
||||
};
|
||||
@ -48533,6 +48655,40 @@ var script$x = {
|
||||
},
|
||||
resourceBasisPath() {
|
||||
return this.getResourceBasisPath();
|
||||
},
|
||||
richContent() {
|
||||
let formated = this.formatImg(this.pBlockData.html);
|
||||
let links = this.currentRule.data?.graphLinks || [];
|
||||
if (!links.length) {
|
||||
return formated;
|
||||
}
|
||||
let copy = formated;
|
||||
let tempWrapDom = document.createElement('div');
|
||||
tempWrapDom.innerHTML = copy;
|
||||
let content = '';
|
||||
Array.from(tempWrapDom.childNodes).forEach(child => {
|
||||
if (child.dataset.graphKey && child.tagName === 'P') {
|
||||
let pCopy = child.outerHTML + '';
|
||||
for (let i = 0, len = links.length; i < len; i++) {
|
||||
let item = links[i];
|
||||
if (item.targets.includes(child.dataset.graphKey)) {
|
||||
pCopy = replaceKeywordsInHTML(pCopy, item.name, {
|
||||
flag: 'xml-graph-link',
|
||||
datasets: [{
|
||||
key: 'graphLinkId',
|
||||
value: item.id
|
||||
}]
|
||||
})[0];
|
||||
}
|
||||
}
|
||||
content += pCopy;
|
||||
} else {
|
||||
content += child.outerHTML;
|
||||
}
|
||||
});
|
||||
copy = '';
|
||||
tempWrapDom = null;
|
||||
return content;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@ -48579,7 +48735,7 @@ var script$x = {
|
||||
let mceMagicLinkRegistered = window.customElements?.get('magic-link');
|
||||
if (!mceMagicLinkRegistered) {
|
||||
window.customElements.whenDefined('magic-link').then(res => {
|
||||
console.log('%c%s', 'font-size:2em;background: #00965E;color: #FFF', '富文本组件MCE注册完成', res);
|
||||
// console.log('%c%s', 'font-size:2em;background: #00965E;color: #FFF', '富文本组件MCE注册完成', res)
|
||||
});
|
||||
window.customElements.define('magic-link', MagicLink);
|
||||
}
|
||||
@ -49685,7 +49841,7 @@ var __vue_render__$x = function () {
|
||||
: _c("div", {
|
||||
staticClass: "richtext-reset-wrapper--view",
|
||||
attrs: { id: _vm.markRootId },
|
||||
domProps: { innerHTML: _vm._s(_vm.formatImg(_vm.pBlockData.html)) },
|
||||
domProps: { innerHTML: _vm._s(_vm.richContent) },
|
||||
}),
|
||||
_vm._v(" "),
|
||||
_vm._t("mater-lib-dialog"),
|
||||
@ -50259,7 +50415,7 @@ __vue_render__$x._withStripped = true;
|
||||
/* style */
|
||||
const __vue_inject_styles__$x = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__$x = "data-v-1b4a8a63";
|
||||
const __vue_scope_id__$x = "data-v-ec02be9c";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__$x = undefined;
|
||||
/* functional template */
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
//
|
||||
|
||||
@ -1,12 +1,4 @@
|
||||
|
||||
.xml-text-h5[data-v-1b4a8a63] {
|
||||
}
|
||||
.xml-text-pc[data-v-1b4a8a63] {
|
||||
}
|
||||
.xml-text-h5[data-v-1b4a8a63] {
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*# sourceMappingURL=XmlTextDialog.vue.map */
|
||||
.xml-text-h5 .inline-audio-wrap,
|
||||
@ -80,6 +72,16 @@
|
||||
|
||||
/*# sourceMappingURL=XmlText.vue.map */
|
||||
|
||||
.xml-text-h5[data-v-ec02be9c] {
|
||||
}
|
||||
.xml-text-pc[data-v-ec02be9c] {
|
||||
}
|
||||
.xml-text-h5[data-v-ec02be9c] {
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
import crypto from 'crypto';
|
||||
@ -15257,7 +15257,8 @@ var script$1 = {
|
||||
}
|
||||
this.loadingInstance = this.$loading({
|
||||
lock: true,
|
||||
text: 'Loading'
|
||||
text: 'Loading',
|
||||
background: 'rgba(0, 0, 0, 0)'
|
||||
});
|
||||
this.fileData.resourcesName = file.name;
|
||||
if (_image.indexOf(fileExt) !== -1) {
|
||||
@ -15434,7 +15435,8 @@ var script$1 = {
|
||||
addRecorder() {
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: 'Loading'
|
||||
text: 'Loading',
|
||||
background: 'rgba(0, 0, 0, 0)'
|
||||
});
|
||||
let formData = new FormData();
|
||||
formData.append('file', this.recordedBlob, new Date().getTime() + '.mp3');
|
||||
@ -28908,7 +28910,7 @@ var VueToast = createComponent$1v({
|
||||
}
|
||||
});
|
||||
|
||||
var defaultOptions$1 = {
|
||||
var defaultOptions$2 = {
|
||||
icon: '',
|
||||
type: 'text',
|
||||
// @deprecated
|
||||
@ -28934,7 +28936,7 @@ var defaultOptions$1 = {
|
||||
var defaultOptionsMap = {};
|
||||
var queue = [];
|
||||
var multiple = false;
|
||||
var currentOptions = _extends$1({}, defaultOptions$1);
|
||||
var currentOptions = _extends$1({}, defaultOptions$2);
|
||||
function parseOptions$1(message) {
|
||||
if (isObject(message)) {
|
||||
return message;
|
||||
@ -29045,7 +29047,7 @@ Toast.resetDefaultOptions = function (type) {
|
||||
if (typeof type === 'string') {
|
||||
defaultOptionsMap[type] = null;
|
||||
} else {
|
||||
currentOptions = _extends$1({}, defaultOptions$1);
|
||||
currentOptions = _extends$1({}, defaultOptions$2);
|
||||
defaultOptionsMap = {};
|
||||
}
|
||||
};
|
||||
@ -38061,7 +38063,7 @@ function Notify(options) {
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
function defaultOptions() {
|
||||
function defaultOptions$1() {
|
||||
return {
|
||||
type: 'danger',
|
||||
value: true,
|
||||
@ -38080,12 +38082,12 @@ Notify.clear = function () {
|
||||
instance.value = false;
|
||||
}
|
||||
};
|
||||
Notify.currentOptions = defaultOptions();
|
||||
Notify.currentOptions = defaultOptions$1();
|
||||
Notify.setDefaultOptions = function (options) {
|
||||
_extends$1(Notify.currentOptions, options);
|
||||
};
|
||||
Notify.resetDefaultOptions = function () {
|
||||
Notify.currentOptions = defaultOptions();
|
||||
Notify.currentOptions = defaultOptions$1();
|
||||
};
|
||||
Notify.install = function () {
|
||||
Vue.use(VanNotify);
|
||||
@ -48326,6 +48328,121 @@ var n = function () {
|
||||
}, e;
|
||||
}();
|
||||
|
||||
function getTextNodeList(dom) {
|
||||
const nodeList = [...dom.childNodes];
|
||||
const textNodes = [];
|
||||
while (nodeList.length) {
|
||||
const node = nodeList.shift();
|
||||
if (node.nodeType === node.TEXT_NODE) {
|
||||
node.wholeText && textNodes.push(node);
|
||||
} else {
|
||||
nodeList.unshift(...node.childNodes);
|
||||
}
|
||||
}
|
||||
return textNodes;
|
||||
}
|
||||
function getTextInfoList(textNodes) {
|
||||
let length = 0;
|
||||
const textList = textNodes.map(node => {
|
||||
let startIdx = length,
|
||||
endIdx = length + node.wholeText.length;
|
||||
length = endIdx;
|
||||
return {
|
||||
text: node.wholeText,
|
||||
startIdx,
|
||||
endIdx
|
||||
};
|
||||
});
|
||||
return textList;
|
||||
}
|
||||
function getMatchList(content, keyword) {
|
||||
const characters = [...'\\[](){}?.+*^$:|'].reduce((r, c) => (r[c] = true, r), {});
|
||||
keyword = keyword.split('').map(s => characters[s] ? `\\${s}` : s).join('[\\s\\n]*');
|
||||
const reg = new RegExp(keyword, 'gmi');
|
||||
const matchList = [];
|
||||
let match = reg.exec(content);
|
||||
while (match) {
|
||||
matchList.push(match);
|
||||
match = reg.exec(content);
|
||||
}
|
||||
return matchList;
|
||||
}
|
||||
function replaceMatchResult(textNodes, textList, matchList, options) {
|
||||
let {
|
||||
flag,
|
||||
datasets,
|
||||
g
|
||||
} = options;
|
||||
// 对于每一个匹配结果,可能分散在多个标签中,找出这些标签,截取匹配片段并用font标签替换出
|
||||
if (!g) {
|
||||
matchList = [matchList[0]];
|
||||
}
|
||||
for (let i = matchList.length - 1; i >= 0; i--) {
|
||||
const match = matchList[i];
|
||||
const matchStart = match.index,
|
||||
matchEnd = matchStart + match[0].length; // 匹配结果在拼接字符串中的起止索引
|
||||
// 遍历文本信息列表,查找匹配的文本节点
|
||||
let groupStart = true;
|
||||
for (let textIdx = 0; textIdx < textList.length; textIdx++) {
|
||||
const {
|
||||
text,
|
||||
startIdx,
|
||||
endIdx
|
||||
} = textList[textIdx]; // 文本内容、文本在拼接串中开始、结束索引
|
||||
if (endIdx < matchStart) continue; // 匹配的文本节点还在后面
|
||||
if (startIdx >= matchEnd) break; // 匹配文本节点已经处理完了
|
||||
let textNode = textNodes[textIdx]; // 这个节点中的部分或全部内容匹配到了关键词,将匹配部分截取出来进行替换
|
||||
const nodeMatchStartIdx = Math.max(0, matchStart - startIdx); // 匹配内容在文本节点内容中的开始索引
|
||||
const nodeMatchLength = Math.min(endIdx, matchEnd) - startIdx - nodeMatchStartIdx; // 文本节点内容匹配关键词的长度
|
||||
if (nodeMatchStartIdx > 0) textNode = textNode.splitText(nodeMatchStartIdx); // textNode取后半部分
|
||||
if (nodeMatchLength < textNode.wholeText.length) textNode.splitText(nodeMatchLength);
|
||||
const font = document.createElement('font');
|
||||
font.setAttribute(flag, i + 1);
|
||||
groupStart ? font.classList.add(flag) : font.classList.add(flag + '-rest');
|
||||
if (datasets.length && Array.isArray(datasets)) {
|
||||
datasets.forEach(({
|
||||
key,
|
||||
value
|
||||
}) => {
|
||||
font.dataset[key] = value;
|
||||
});
|
||||
}
|
||||
font.innerText = text.substr(nodeMatchStartIdx, nodeMatchLength);
|
||||
textNode.parentNode.replaceChild(font, textNode);
|
||||
groupStart = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
const defaultOptions = {
|
||||
flag: 'xml-graph-link',
|
||||
datasets: [],
|
||||
g: false
|
||||
};
|
||||
function replaceKeywordsInHTML(html, keyword, options = defaultOptions) {
|
||||
options = {
|
||||
...defaultOptions,
|
||||
...options
|
||||
};
|
||||
let matchCount = 0,
|
||||
replacedHtml = '';
|
||||
if (!html || !keyword) {
|
||||
replacedHtml = html;
|
||||
return [replacedHtml, matchCount];
|
||||
}
|
||||
const div = document.createElement('div');
|
||||
div.innerHTML = html;
|
||||
const textNodes = getTextNodeList(div);
|
||||
const textList = getTextInfoList(textNodes);
|
||||
const content = textList.map(({
|
||||
text
|
||||
}) => text).join('');
|
||||
const matchList = getMatchList(content, keyword);
|
||||
matchCount = matchList.length;
|
||||
replaceMatchResult(textNodes, textList, matchList, options);
|
||||
replacedHtml = div.innerHTML;
|
||||
return [replacedHtml, matchCount];
|
||||
}
|
||||
|
||||
//
|
||||
var script = {
|
||||
name: 'XmlTextRender',
|
||||
@ -48491,6 +48608,10 @@ var script = {
|
||||
from: 'getSysEvn',
|
||||
default: () => () => {}
|
||||
}
|
||||
// callFnReplaceKeywordsInHTML: {
|
||||
// from: 'replaceKeywordsInHTML',
|
||||
// default: () => () => () => []
|
||||
// }
|
||||
},
|
||||
computed: {
|
||||
feedback() {
|
||||
@ -48498,6 +48619,7 @@ var script = {
|
||||
ruleIndex: this.ruleIndex,
|
||||
dataName: this.blockDataName,
|
||||
data: this.pBlockData,
|
||||
graphLinks: this.currentRule.data?.graphLinks || [],
|
||||
dataIndex: this.dataIndex,
|
||||
blockId: this.blockId
|
||||
};
|
||||
@ -48533,6 +48655,40 @@ var script = {
|
||||
},
|
||||
resourceBasisPath() {
|
||||
return this.getResourceBasisPath();
|
||||
},
|
||||
richContent() {
|
||||
let formated = this.formatImg(this.pBlockData.html);
|
||||
let links = this.currentRule.data?.graphLinks || [];
|
||||
if (!links.length) {
|
||||
return formated;
|
||||
}
|
||||
let copy = formated;
|
||||
let tempWrapDom = document.createElement('div');
|
||||
tempWrapDom.innerHTML = copy;
|
||||
let content = '';
|
||||
Array.from(tempWrapDom.childNodes).forEach(child => {
|
||||
if (child.dataset.graphKey && child.tagName === 'P') {
|
||||
let pCopy = child.outerHTML + '';
|
||||
for (let i = 0, len = links.length; i < len; i++) {
|
||||
let item = links[i];
|
||||
if (item.targets.includes(child.dataset.graphKey)) {
|
||||
pCopy = replaceKeywordsInHTML(pCopy, item.name, {
|
||||
flag: 'xml-graph-link',
|
||||
datasets: [{
|
||||
key: 'graphLinkId',
|
||||
value: item.id
|
||||
}]
|
||||
})[0];
|
||||
}
|
||||
}
|
||||
content += pCopy;
|
||||
} else {
|
||||
content += child.outerHTML;
|
||||
}
|
||||
});
|
||||
copy = '';
|
||||
tempWrapDom = null;
|
||||
return content;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@ -48579,7 +48735,7 @@ var script = {
|
||||
let mceMagicLinkRegistered = window.customElements?.get('magic-link');
|
||||
if (!mceMagicLinkRegistered) {
|
||||
window.customElements.whenDefined('magic-link').then(res => {
|
||||
console.log('%c%s', 'font-size:2em;background: #00965E;color: #FFF', '富文本组件MCE注册完成', res);
|
||||
// console.log('%c%s', 'font-size:2em;background: #00965E;color: #FFF', '富文本组件MCE注册完成', res)
|
||||
});
|
||||
window.customElements.define('magic-link', MagicLink);
|
||||
}
|
||||
@ -49685,7 +49841,7 @@ var __vue_render__ = function () {
|
||||
: _c("div", {
|
||||
staticClass: "richtext-reset-wrapper--view",
|
||||
attrs: { id: _vm.markRootId },
|
||||
domProps: { innerHTML: _vm._s(_vm.formatImg(_vm.pBlockData.html)) },
|
||||
domProps: { innerHTML: _vm._s(_vm.richContent) },
|
||||
}),
|
||||
_vm._v(" "),
|
||||
_vm._t("mater-lib-dialog"),
|
||||
@ -50259,7 +50415,7 @@ __vue_render__._withStripped = true;
|
||||
/* style */
|
||||
const __vue_inject_styles__ = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__ = "data-v-1b4a8a63";
|
||||
const __vue_scope_id__ = "data-v-ec02be9c";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__ = undefined;
|
||||
/* functional template */
|
||||
|
||||
@ -1,30 +1,30 @@
|
||||
|
||||
|
||||
/*# sourceMappingURL=third.vue.map */
|
||||
/*# sourceMappingURL=first.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=sixteen.vue.map */
|
||||
/*# sourceMappingURL=semicircle.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=sixth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=hexagon.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=rotundity.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=fourteen.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=second.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=fifth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=first.vue.map */
|
||||
/*# sourceMappingURL=thirteenth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=third.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=triangle.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=seventeen.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=hexagon.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=rectangle.vue.map */
|
||||
@ -33,28 +33,34 @@
|
||||
/*# sourceMappingURL=square.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=eighteen2.vue.map */
|
||||
/*# sourceMappingURL=second.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=fifteen.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=seventeen.vue.map */
|
||||
/*# sourceMappingURL=sixteen.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=triangle.vue.map */
|
||||
/*# sourceMappingURL=Yellowtheme1.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=thirteenth.vue.map */
|
||||
/*# sourceMappingURL=rotundity.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme1.vue.map */
|
||||
/*# sourceMappingURL=nineteen.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=semicircle.vue.map */
|
||||
/*# sourceMappingURL=Greentheme4.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=eighteen2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=fourteen.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=eighteen.vue.map */
|
||||
@ -63,67 +69,61 @@
|
||||
/*# sourceMappingURL=twelfth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme5.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme5.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme4.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme1.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=nineteen.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme6.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=SanQintheme3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme4.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=SanQintheme1.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Twentythree.vue.map */
|
||||
/*# sourceMappingURL=Greentheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Knowledge.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Twentytwo.vue.map */
|
||||
/*# sourceMappingURL=Twentythree.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme6.vue.map */
|
||||
/*# sourceMappingURL=Yellowtheme5.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=SanQintheme2.vue.map */
|
||||
/*# sourceMappingURL=Greentheme5.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme1.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=SanQintheme3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme6.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme4.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Twentyfive.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=twenty.vue.map */
|
||||
/*# sourceMappingURL=SanQintheme1.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme6.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Twentyfour.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Twentyone.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Twentyfour.vue.map */
|
||||
/*# sourceMappingURL=twenty.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Twentytwo.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=SanQintheme2.vue.map */
|
||||
.xml-text-h5 .inline-audio-wrap,
|
||||
.xml-text-h5 .inline-link-wrap {
|
||||
align-items: center;
|
||||
@ -195,11 +195,11 @@
|
||||
|
||||
/*# sourceMappingURL=XmlText.vue.map */
|
||||
|
||||
.xml-text-h5[data-v-1b4a8a63] {
|
||||
.xml-text-h5[data-v-ec02be9c] {
|
||||
}
|
||||
.xml-text-pc[data-v-1b4a8a63] {
|
||||
.xml-text-pc[data-v-ec02be9c] {
|
||||
}
|
||||
.xml-text-h5[data-v-1b4a8a63] {
|
||||
.xml-text-h5[data-v-ec02be9c] {
|
||||
}
|
||||
|
||||
|
||||
@ -801,6 +801,8 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
import crypto from 'crypto';
|
||||
@ -15257,7 +15257,8 @@ var script$H = {
|
||||
}
|
||||
this.loadingInstance = this.$loading({
|
||||
lock: true,
|
||||
text: 'Loading'
|
||||
text: 'Loading',
|
||||
background: 'rgba(0, 0, 0, 0)'
|
||||
});
|
||||
this.fileData.resourcesName = file.name;
|
||||
if (_image.indexOf(fileExt) !== -1) {
|
||||
@ -15434,7 +15435,8 @@ var script$H = {
|
||||
addRecorder() {
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: 'Loading'
|
||||
text: 'Loading',
|
||||
background: 'rgba(0, 0, 0, 0)'
|
||||
});
|
||||
let formData = new FormData();
|
||||
formData.append('file', this.recordedBlob, new Date().getTime() + '.mp3');
|
||||
@ -28908,7 +28910,7 @@ var VueToast = createComponent$1v({
|
||||
}
|
||||
});
|
||||
|
||||
var defaultOptions$1 = {
|
||||
var defaultOptions$2 = {
|
||||
icon: '',
|
||||
type: 'text',
|
||||
// @deprecated
|
||||
@ -28934,7 +28936,7 @@ var defaultOptions$1 = {
|
||||
var defaultOptionsMap = {};
|
||||
var queue = [];
|
||||
var multiple = false;
|
||||
var currentOptions = _extends$1({}, defaultOptions$1);
|
||||
var currentOptions = _extends$1({}, defaultOptions$2);
|
||||
function parseOptions$1(message) {
|
||||
if (isObject(message)) {
|
||||
return message;
|
||||
@ -29045,7 +29047,7 @@ Toast.resetDefaultOptions = function (type) {
|
||||
if (typeof type === 'string') {
|
||||
defaultOptionsMap[type] = null;
|
||||
} else {
|
||||
currentOptions = _extends$1({}, defaultOptions$1);
|
||||
currentOptions = _extends$1({}, defaultOptions$2);
|
||||
defaultOptionsMap = {};
|
||||
}
|
||||
};
|
||||
@ -38061,7 +38063,7 @@ function Notify(options) {
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
function defaultOptions() {
|
||||
function defaultOptions$1() {
|
||||
return {
|
||||
type: 'danger',
|
||||
value: true,
|
||||
@ -38080,12 +38082,12 @@ Notify.clear = function () {
|
||||
instance.value = false;
|
||||
}
|
||||
};
|
||||
Notify.currentOptions = defaultOptions();
|
||||
Notify.currentOptions = defaultOptions$1();
|
||||
Notify.setDefaultOptions = function (options) {
|
||||
_extends$1(Notify.currentOptions, options);
|
||||
};
|
||||
Notify.resetDefaultOptions = function () {
|
||||
Notify.currentOptions = defaultOptions();
|
||||
Notify.currentOptions = defaultOptions$1();
|
||||
};
|
||||
Notify.install = function () {
|
||||
Vue.use(VanNotify);
|
||||
@ -48326,6 +48328,121 @@ var n = function () {
|
||||
}, e;
|
||||
}();
|
||||
|
||||
function getTextNodeList(dom) {
|
||||
const nodeList = [...dom.childNodes];
|
||||
const textNodes = [];
|
||||
while (nodeList.length) {
|
||||
const node = nodeList.shift();
|
||||
if (node.nodeType === node.TEXT_NODE) {
|
||||
node.wholeText && textNodes.push(node);
|
||||
} else {
|
||||
nodeList.unshift(...node.childNodes);
|
||||
}
|
||||
}
|
||||
return textNodes;
|
||||
}
|
||||
function getTextInfoList(textNodes) {
|
||||
let length = 0;
|
||||
const textList = textNodes.map(node => {
|
||||
let startIdx = length,
|
||||
endIdx = length + node.wholeText.length;
|
||||
length = endIdx;
|
||||
return {
|
||||
text: node.wholeText,
|
||||
startIdx,
|
||||
endIdx
|
||||
};
|
||||
});
|
||||
return textList;
|
||||
}
|
||||
function getMatchList(content, keyword) {
|
||||
const characters = [...'\\[](){}?.+*^$:|'].reduce((r, c) => (r[c] = true, r), {});
|
||||
keyword = keyword.split('').map(s => characters[s] ? `\\${s}` : s).join('[\\s\\n]*');
|
||||
const reg = new RegExp(keyword, 'gmi');
|
||||
const matchList = [];
|
||||
let match = reg.exec(content);
|
||||
while (match) {
|
||||
matchList.push(match);
|
||||
match = reg.exec(content);
|
||||
}
|
||||
return matchList;
|
||||
}
|
||||
function replaceMatchResult(textNodes, textList, matchList, options) {
|
||||
let {
|
||||
flag,
|
||||
datasets,
|
||||
g
|
||||
} = options;
|
||||
// 对于每一个匹配结果,可能分散在多个标签中,找出这些标签,截取匹配片段并用font标签替换出
|
||||
if (!g) {
|
||||
matchList = [matchList[0]];
|
||||
}
|
||||
for (let i = matchList.length - 1; i >= 0; i--) {
|
||||
const match = matchList[i];
|
||||
const matchStart = match.index,
|
||||
matchEnd = matchStart + match[0].length; // 匹配结果在拼接字符串中的起止索引
|
||||
// 遍历文本信息列表,查找匹配的文本节点
|
||||
let groupStart = true;
|
||||
for (let textIdx = 0; textIdx < textList.length; textIdx++) {
|
||||
const {
|
||||
text,
|
||||
startIdx,
|
||||
endIdx
|
||||
} = textList[textIdx]; // 文本内容、文本在拼接串中开始、结束索引
|
||||
if (endIdx < matchStart) continue; // 匹配的文本节点还在后面
|
||||
if (startIdx >= matchEnd) break; // 匹配文本节点已经处理完了
|
||||
let textNode = textNodes[textIdx]; // 这个节点中的部分或全部内容匹配到了关键词,将匹配部分截取出来进行替换
|
||||
const nodeMatchStartIdx = Math.max(0, matchStart - startIdx); // 匹配内容在文本节点内容中的开始索引
|
||||
const nodeMatchLength = Math.min(endIdx, matchEnd) - startIdx - nodeMatchStartIdx; // 文本节点内容匹配关键词的长度
|
||||
if (nodeMatchStartIdx > 0) textNode = textNode.splitText(nodeMatchStartIdx); // textNode取后半部分
|
||||
if (nodeMatchLength < textNode.wholeText.length) textNode.splitText(nodeMatchLength);
|
||||
const font = document.createElement('font');
|
||||
font.setAttribute(flag, i + 1);
|
||||
groupStart ? font.classList.add(flag) : font.classList.add(flag + '-rest');
|
||||
if (datasets.length && Array.isArray(datasets)) {
|
||||
datasets.forEach(({
|
||||
key,
|
||||
value
|
||||
}) => {
|
||||
font.dataset[key] = value;
|
||||
});
|
||||
}
|
||||
font.innerText = text.substr(nodeMatchStartIdx, nodeMatchLength);
|
||||
textNode.parentNode.replaceChild(font, textNode);
|
||||
groupStart = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
const defaultOptions = {
|
||||
flag: 'xml-graph-link',
|
||||
datasets: [],
|
||||
g: false
|
||||
};
|
||||
function replaceKeywordsInHTML(html, keyword, options = defaultOptions) {
|
||||
options = {
|
||||
...defaultOptions,
|
||||
...options
|
||||
};
|
||||
let matchCount = 0,
|
||||
replacedHtml = '';
|
||||
if (!html || !keyword) {
|
||||
replacedHtml = html;
|
||||
return [replacedHtml, matchCount];
|
||||
}
|
||||
const div = document.createElement('div');
|
||||
div.innerHTML = html;
|
||||
const textNodes = getTextNodeList(div);
|
||||
const textList = getTextInfoList(textNodes);
|
||||
const content = textList.map(({
|
||||
text
|
||||
}) => text).join('');
|
||||
const matchList = getMatchList(content, keyword);
|
||||
matchCount = matchList.length;
|
||||
replaceMatchResult(textNodes, textList, matchList, options);
|
||||
replacedHtml = div.innerHTML;
|
||||
return [replacedHtml, matchCount];
|
||||
}
|
||||
|
||||
//
|
||||
var script$G = {
|
||||
name: 'XmlTextRender',
|
||||
@ -48491,6 +48608,10 @@ var script$G = {
|
||||
from: 'getSysEvn',
|
||||
default: () => () => {}
|
||||
}
|
||||
// callFnReplaceKeywordsInHTML: {
|
||||
// from: 'replaceKeywordsInHTML',
|
||||
// default: () => () => () => []
|
||||
// }
|
||||
},
|
||||
computed: {
|
||||
feedback() {
|
||||
@ -48498,6 +48619,7 @@ var script$G = {
|
||||
ruleIndex: this.ruleIndex,
|
||||
dataName: this.blockDataName,
|
||||
data: this.pBlockData,
|
||||
graphLinks: this.currentRule.data?.graphLinks || [],
|
||||
dataIndex: this.dataIndex,
|
||||
blockId: this.blockId
|
||||
};
|
||||
@ -48533,6 +48655,40 @@ var script$G = {
|
||||
},
|
||||
resourceBasisPath() {
|
||||
return this.getResourceBasisPath();
|
||||
},
|
||||
richContent() {
|
||||
let formated = this.formatImg(this.pBlockData.html);
|
||||
let links = this.currentRule.data?.graphLinks || [];
|
||||
if (!links.length) {
|
||||
return formated;
|
||||
}
|
||||
let copy = formated;
|
||||
let tempWrapDom = document.createElement('div');
|
||||
tempWrapDom.innerHTML = copy;
|
||||
let content = '';
|
||||
Array.from(tempWrapDom.childNodes).forEach(child => {
|
||||
if (child.dataset.graphKey && child.tagName === 'P') {
|
||||
let pCopy = child.outerHTML + '';
|
||||
for (let i = 0, len = links.length; i < len; i++) {
|
||||
let item = links[i];
|
||||
if (item.targets.includes(child.dataset.graphKey)) {
|
||||
pCopy = replaceKeywordsInHTML(pCopy, item.name, {
|
||||
flag: 'xml-graph-link',
|
||||
datasets: [{
|
||||
key: 'graphLinkId',
|
||||
value: item.id
|
||||
}]
|
||||
})[0];
|
||||
}
|
||||
}
|
||||
content += pCopy;
|
||||
} else {
|
||||
content += child.outerHTML;
|
||||
}
|
||||
});
|
||||
copy = '';
|
||||
tempWrapDom = null;
|
||||
return content;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@ -48579,7 +48735,7 @@ var script$G = {
|
||||
let mceMagicLinkRegistered = window.customElements?.get('magic-link');
|
||||
if (!mceMagicLinkRegistered) {
|
||||
window.customElements.whenDefined('magic-link').then(res => {
|
||||
console.log('%c%s', 'font-size:2em;background: #00965E;color: #FFF', '富文本组件MCE注册完成', res);
|
||||
// console.log('%c%s', 'font-size:2em;background: #00965E;color: #FFF', '富文本组件MCE注册完成', res)
|
||||
});
|
||||
window.customElements.define('magic-link', MagicLink);
|
||||
}
|
||||
@ -49685,7 +49841,7 @@ var __vue_render__$G = function () {
|
||||
: _c("div", {
|
||||
staticClass: "richtext-reset-wrapper--view",
|
||||
attrs: { id: _vm.markRootId },
|
||||
domProps: { innerHTML: _vm._s(_vm.formatImg(_vm.pBlockData.html)) },
|
||||
domProps: { innerHTML: _vm._s(_vm.richContent) },
|
||||
}),
|
||||
_vm._v(" "),
|
||||
_vm._t("mater-lib-dialog"),
|
||||
@ -50259,7 +50415,7 @@ __vue_render__$G._withStripped = true;
|
||||
/* style */
|
||||
const __vue_inject_styles__$G = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__$G = "data-v-1b4a8a63";
|
||||
const __vue_scope_id__$G = "data-v-ec02be9c";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__$G = undefined;
|
||||
/* functional template */
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
/*# sourceMappingURL=semicircle.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme5.vue.map */
|
||||
/*# sourceMappingURL=Yellowtheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=first.vue.map */
|
||||
@ -18,12 +18,6 @@
|
||||
/*# sourceMappingURL=Yellowtheme4.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=thirteenth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Yellowtheme6.vue.map */
|
||||
.title-text[data-v-14dffda4] {
|
||||
background-color: var(--background-color) !important;
|
||||
@ -36,43 +30,22 @@
|
||||
/*# sourceMappingURL=third.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=twelfth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme1.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme6.vue.map */
|
||||
/*# sourceMappingURL=twelfth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=rectangle.vue.map */
|
||||
/*# sourceMappingURL=thirteenth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=fourteen.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Knowledge.vue.map */
|
||||
/*# sourceMappingURL=Greentheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme3.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=fifth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=sixteen.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=fifteen.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme4.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=seventeen.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=hexagon.vue.map */
|
||||
/*# sourceMappingURL=rectangle.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme3.vue.map */
|
||||
@ -81,99 +54,126 @@
|
||||
/*# sourceMappingURL=nineteen.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Thirtyfour.vue.map */
|
||||
/*# sourceMappingURL=Greentheme6.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme2.vue.map */
|
||||
/*# sourceMappingURL=Yellowtheme5.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Thirtysix.vue.map */
|
||||
/*# sourceMappingURL=fifteen.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme4.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Thirtyfive.vue.map */
|
||||
/*# sourceMappingURL=fifth.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Greentheme2.vue.map */
|
||||
/*# sourceMappingURL=hexagon.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme4.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme1.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=fourteen.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=seventeen.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Thirtytwo.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Knowledge.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Thirtythree.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Thirtyone.vue.map */
|
||||
/*# sourceMappingURL=sixteen.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Thirtysix.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=triangle.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=BuleRectangle.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Redtheme2.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Thirtyfour.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=titleQuestion.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Thirtyone.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Thirtyfive.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Thirtyseven.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=titleLogging.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=titleLight.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=titleQuestion.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=titleCrane.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=BuleRectangle.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Sevenpagetwo.vue.map */
|
||||
/*# sourceMappingURL=Sevenpagefour.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Thirtynine.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=BuleRectangleTwo.vue.map */
|
||||
/*# sourceMappingURL=titleTearcher.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Thirtyeight.vue.map */
|
||||
/*# sourceMappingURL=titleCrane.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Fortyone.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Sevenpagefour.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Sevenpagethree.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Forty.vue.map */
|
||||
/*# sourceMappingURL=Sevenpagetwo.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Sevenpagefive.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=titleTearcher.vue.map */
|
||||
/*# sourceMappingURL=Sevenpagethree.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=titleText.vue.map */
|
||||
/*# sourceMappingURL=Thirtyeight.vue.map */
|
||||
.title-bgimg[data-v-16943e38] {
|
||||
background-image: url(../style/title-text-bgimg.png);
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=Sevenpageone.vue.map */
|
||||
|
||||
.xml-text-h5[data-v-1b4a8a63] {
|
||||
|
||||
/*# sourceMappingURL=titleText.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Forty.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=BuleRectangleTwo.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=titleLight.vue.map */
|
||||
|
||||
|
||||
/*# sourceMappingURL=Fortyone.vue.map */
|
||||
|
||||
.xml-text-h5[data-v-ec02be9c] {
|
||||
}
|
||||
.xml-text-pc[data-v-1b4a8a63] {
|
||||
.xml-text-pc[data-v-ec02be9c] {
|
||||
}
|
||||
.xml-text-h5[data-v-1b4a8a63] {
|
||||
.xml-text-h5[data-v-ec02be9c] {
|
||||
}
|
||||
|
||||
.xml-text-h5 .inline-audio-wrap,
|
||||
@ -845,6 +845,8 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
import crypto from 'crypto';
|
||||
@ -15257,7 +15257,8 @@ var script$T = {
|
||||
}
|
||||
this.loadingInstance = this.$loading({
|
||||
lock: true,
|
||||
text: 'Loading'
|
||||
text: 'Loading',
|
||||
background: 'rgba(0, 0, 0, 0)'
|
||||
});
|
||||
this.fileData.resourcesName = file.name;
|
||||
if (_image.indexOf(fileExt) !== -1) {
|
||||
@ -15434,7 +15435,8 @@ var script$T = {
|
||||
addRecorder() {
|
||||
const loading = this.$loading({
|
||||
lock: true,
|
||||
text: 'Loading'
|
||||
text: 'Loading',
|
||||
background: 'rgba(0, 0, 0, 0)'
|
||||
});
|
||||
let formData = new FormData();
|
||||
formData.append('file', this.recordedBlob, new Date().getTime() + '.mp3');
|
||||
@ -28908,7 +28910,7 @@ var VueToast = createComponent$1v({
|
||||
}
|
||||
});
|
||||
|
||||
var defaultOptions$1 = {
|
||||
var defaultOptions$2 = {
|
||||
icon: '',
|
||||
type: 'text',
|
||||
// @deprecated
|
||||
@ -28934,7 +28936,7 @@ var defaultOptions$1 = {
|
||||
var defaultOptionsMap = {};
|
||||
var queue = [];
|
||||
var multiple = false;
|
||||
var currentOptions = _extends$1({}, defaultOptions$1);
|
||||
var currentOptions = _extends$1({}, defaultOptions$2);
|
||||
function parseOptions$1(message) {
|
||||
if (isObject(message)) {
|
||||
return message;
|
||||
@ -29045,7 +29047,7 @@ Toast.resetDefaultOptions = function (type) {
|
||||
if (typeof type === 'string') {
|
||||
defaultOptionsMap[type] = null;
|
||||
} else {
|
||||
currentOptions = _extends$1({}, defaultOptions$1);
|
||||
currentOptions = _extends$1({}, defaultOptions$2);
|
||||
defaultOptionsMap = {};
|
||||
}
|
||||
};
|
||||
@ -38061,7 +38063,7 @@ function Notify(options) {
|
||||
}
|
||||
return instance;
|
||||
}
|
||||
function defaultOptions() {
|
||||
function defaultOptions$1() {
|
||||
return {
|
||||
type: 'danger',
|
||||
value: true,
|
||||
@ -38080,12 +38082,12 @@ Notify.clear = function () {
|
||||
instance.value = false;
|
||||
}
|
||||
};
|
||||
Notify.currentOptions = defaultOptions();
|
||||
Notify.currentOptions = defaultOptions$1();
|
||||
Notify.setDefaultOptions = function (options) {
|
||||
_extends$1(Notify.currentOptions, options);
|
||||
};
|
||||
Notify.resetDefaultOptions = function () {
|
||||
Notify.currentOptions = defaultOptions();
|
||||
Notify.currentOptions = defaultOptions$1();
|
||||
};
|
||||
Notify.install = function () {
|
||||
Vue.use(VanNotify);
|
||||
@ -48326,6 +48328,121 @@ var n = function () {
|
||||
}, e;
|
||||
}();
|
||||
|
||||
function getTextNodeList(dom) {
|
||||
const nodeList = [...dom.childNodes];
|
||||
const textNodes = [];
|
||||
while (nodeList.length) {
|
||||
const node = nodeList.shift();
|
||||
if (node.nodeType === node.TEXT_NODE) {
|
||||
node.wholeText && textNodes.push(node);
|
||||
} else {
|
||||
nodeList.unshift(...node.childNodes);
|
||||
}
|
||||
}
|
||||
return textNodes;
|
||||
}
|
||||
function getTextInfoList(textNodes) {
|
||||
let length = 0;
|
||||
const textList = textNodes.map(node => {
|
||||
let startIdx = length,
|
||||
endIdx = length + node.wholeText.length;
|
||||
length = endIdx;
|
||||
return {
|
||||
text: node.wholeText,
|
||||
startIdx,
|
||||
endIdx
|
||||
};
|
||||
});
|
||||
return textList;
|
||||
}
|
||||
function getMatchList(content, keyword) {
|
||||
const characters = [...'\\[](){}?.+*^$:|'].reduce((r, c) => (r[c] = true, r), {});
|
||||
keyword = keyword.split('').map(s => characters[s] ? `\\${s}` : s).join('[\\s\\n]*');
|
||||
const reg = new RegExp(keyword, 'gmi');
|
||||
const matchList = [];
|
||||
let match = reg.exec(content);
|
||||
while (match) {
|
||||
matchList.push(match);
|
||||
match = reg.exec(content);
|
||||
}
|
||||
return matchList;
|
||||
}
|
||||
function replaceMatchResult(textNodes, textList, matchList, options) {
|
||||
let {
|
||||
flag,
|
||||
datasets,
|
||||
g
|
||||
} = options;
|
||||
// 对于每一个匹配结果,可能分散在多个标签中,找出这些标签,截取匹配片段并用font标签替换出
|
||||
if (!g) {
|
||||
matchList = [matchList[0]];
|
||||
}
|
||||
for (let i = matchList.length - 1; i >= 0; i--) {
|
||||
const match = matchList[i];
|
||||
const matchStart = match.index,
|
||||
matchEnd = matchStart + match[0].length; // 匹配结果在拼接字符串中的起止索引
|
||||
// 遍历文本信息列表,查找匹配的文本节点
|
||||
let groupStart = true;
|
||||
for (let textIdx = 0; textIdx < textList.length; textIdx++) {
|
||||
const {
|
||||
text,
|
||||
startIdx,
|
||||
endIdx
|
||||
} = textList[textIdx]; // 文本内容、文本在拼接串中开始、结束索引
|
||||
if (endIdx < matchStart) continue; // 匹配的文本节点还在后面
|
||||
if (startIdx >= matchEnd) break; // 匹配文本节点已经处理完了
|
||||
let textNode = textNodes[textIdx]; // 这个节点中的部分或全部内容匹配到了关键词,将匹配部分截取出来进行替换
|
||||
const nodeMatchStartIdx = Math.max(0, matchStart - startIdx); // 匹配内容在文本节点内容中的开始索引
|
||||
const nodeMatchLength = Math.min(endIdx, matchEnd) - startIdx - nodeMatchStartIdx; // 文本节点内容匹配关键词的长度
|
||||
if (nodeMatchStartIdx > 0) textNode = textNode.splitText(nodeMatchStartIdx); // textNode取后半部分
|
||||
if (nodeMatchLength < textNode.wholeText.length) textNode.splitText(nodeMatchLength);
|
||||
const font = document.createElement('font');
|
||||
font.setAttribute(flag, i + 1);
|
||||
groupStart ? font.classList.add(flag) : font.classList.add(flag + '-rest');
|
||||
if (datasets.length && Array.isArray(datasets)) {
|
||||
datasets.forEach(({
|
||||
key,
|
||||
value
|
||||
}) => {
|
||||
font.dataset[key] = value;
|
||||
});
|
||||
}
|
||||
font.innerText = text.substr(nodeMatchStartIdx, nodeMatchLength);
|
||||
textNode.parentNode.replaceChild(font, textNode);
|
||||
groupStart = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
const defaultOptions = {
|
||||
flag: 'xml-graph-link',
|
||||
datasets: [],
|
||||
g: false
|
||||
};
|
||||
function replaceKeywordsInHTML(html, keyword, options = defaultOptions) {
|
||||
options = {
|
||||
...defaultOptions,
|
||||
...options
|
||||
};
|
||||
let matchCount = 0,
|
||||
replacedHtml = '';
|
||||
if (!html || !keyword) {
|
||||
replacedHtml = html;
|
||||
return [replacedHtml, matchCount];
|
||||
}
|
||||
const div = document.createElement('div');
|
||||
div.innerHTML = html;
|
||||
const textNodes = getTextNodeList(div);
|
||||
const textList = getTextInfoList(textNodes);
|
||||
const content = textList.map(({
|
||||
text
|
||||
}) => text).join('');
|
||||
const matchList = getMatchList(content, keyword);
|
||||
matchCount = matchList.length;
|
||||
replaceMatchResult(textNodes, textList, matchList, options);
|
||||
replacedHtml = div.innerHTML;
|
||||
return [replacedHtml, matchCount];
|
||||
}
|
||||
|
||||
//
|
||||
var script$S = {
|
||||
name: 'XmlTextRender',
|
||||
@ -48491,6 +48608,10 @@ var script$S = {
|
||||
from: 'getSysEvn',
|
||||
default: () => () => {}
|
||||
}
|
||||
// callFnReplaceKeywordsInHTML: {
|
||||
// from: 'replaceKeywordsInHTML',
|
||||
// default: () => () => () => []
|
||||
// }
|
||||
},
|
||||
computed: {
|
||||
feedback() {
|
||||
@ -48498,6 +48619,7 @@ var script$S = {
|
||||
ruleIndex: this.ruleIndex,
|
||||
dataName: this.blockDataName,
|
||||
data: this.pBlockData,
|
||||
graphLinks: this.currentRule.data?.graphLinks || [],
|
||||
dataIndex: this.dataIndex,
|
||||
blockId: this.blockId
|
||||
};
|
||||
@ -48533,6 +48655,40 @@ var script$S = {
|
||||
},
|
||||
resourceBasisPath() {
|
||||
return this.getResourceBasisPath();
|
||||
},
|
||||
richContent() {
|
||||
let formated = this.formatImg(this.pBlockData.html);
|
||||
let links = this.currentRule.data?.graphLinks || [];
|
||||
if (!links.length) {
|
||||
return formated;
|
||||
}
|
||||
let copy = formated;
|
||||
let tempWrapDom = document.createElement('div');
|
||||
tempWrapDom.innerHTML = copy;
|
||||
let content = '';
|
||||
Array.from(tempWrapDom.childNodes).forEach(child => {
|
||||
if (child.dataset.graphKey && child.tagName === 'P') {
|
||||
let pCopy = child.outerHTML + '';
|
||||
for (let i = 0, len = links.length; i < len; i++) {
|
||||
let item = links[i];
|
||||
if (item.targets.includes(child.dataset.graphKey)) {
|
||||
pCopy = replaceKeywordsInHTML(pCopy, item.name, {
|
||||
flag: 'xml-graph-link',
|
||||
datasets: [{
|
||||
key: 'graphLinkId',
|
||||
value: item.id
|
||||
}]
|
||||
})[0];
|
||||
}
|
||||
}
|
||||
content += pCopy;
|
||||
} else {
|
||||
content += child.outerHTML;
|
||||
}
|
||||
});
|
||||
copy = '';
|
||||
tempWrapDom = null;
|
||||
return content;
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
@ -48579,7 +48735,7 @@ var script$S = {
|
||||
let mceMagicLinkRegistered = window.customElements?.get('magic-link');
|
||||
if (!mceMagicLinkRegistered) {
|
||||
window.customElements.whenDefined('magic-link').then(res => {
|
||||
console.log('%c%s', 'font-size:2em;background: #00965E;color: #FFF', '富文本组件MCE注册完成', res);
|
||||
// console.log('%c%s', 'font-size:2em;background: #00965E;color: #FFF', '富文本组件MCE注册完成', res)
|
||||
});
|
||||
window.customElements.define('magic-link', MagicLink);
|
||||
}
|
||||
@ -49685,7 +49841,7 @@ var __vue_render__$S = function () {
|
||||
: _c("div", {
|
||||
staticClass: "richtext-reset-wrapper--view",
|
||||
attrs: { id: _vm.markRootId },
|
||||
domProps: { innerHTML: _vm._s(_vm.formatImg(_vm.pBlockData.html)) },
|
||||
domProps: { innerHTML: _vm._s(_vm.richContent) },
|
||||
}),
|
||||
_vm._v(" "),
|
||||
_vm._t("mater-lib-dialog"),
|
||||
@ -50259,7 +50415,7 @@ __vue_render__$S._withStripped = true;
|
||||
/* style */
|
||||
const __vue_inject_styles__$S = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__$S = "data-v-1b4a8a63";
|
||||
const __vue_scope_id__$S = "data-v-ec02be9c";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__$S = undefined;
|
||||
/* functional template */
|
||||
|
||||
@ -1,3 +1,11 @@
|
||||
|
||||
.xml-video-container-h5[data-v-6fcfaafb] {
|
||||
}
|
||||
.xml-video-container-pc[data-v-6fcfaafb] {
|
||||
}
|
||||
.xml-video-container-pad[data-v-6fcfaafb] {
|
||||
}
|
||||
|
||||
.xml-video-container-pdf[data-v-4645f3e6] {
|
||||
position: relative;
|
||||
display: flex;
|
||||
@ -24,10 +32,3 @@
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=XmlVideoImg.vue.map */
|
||||
|
||||
.xml-video-container-h5[data-v-082d5e49] {
|
||||
}
|
||||
.xml-video-container-pc[data-v-082d5e49] {
|
||||
}
|
||||
.xml-video-container-pad[data-v-082d5e49] {
|
||||
}
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* XmlDigitalTeaching v0.0.1
|
||||
* Copyright ©Wed Jan 08 2025 14:03:44 GMT+0800 (中国标准时间) smile
|
||||
* Copyright ©Fri Mar 07 2025 11:35:13 GMT+0800 (中国标准时间) smile
|
||||
* Released under the ISC License.
|
||||
*/
|
||||
//
|
||||
@ -14524,13 +14524,20 @@ var script$1 = {
|
||||
},
|
||||
timeUpdate({
|
||||
event,
|
||||
time
|
||||
time,
|
||||
duration
|
||||
}, data) {
|
||||
// console.log({event, time, data});
|
||||
this.$EventBus.$emit('videoTimeUpdate', {
|
||||
event,
|
||||
time,
|
||||
data
|
||||
data: {
|
||||
...data,
|
||||
chapterId: this.currentRule.chapterId,
|
||||
xmlCompRef: this.currentRule.xmlCompRef,
|
||||
duration: event.cache_.duration,
|
||||
time
|
||||
}
|
||||
});
|
||||
},
|
||||
resetTimeUpdate(data) {
|
||||
@ -14768,7 +14775,7 @@ __vue_render__$1._withStripped = true;
|
||||
/* style */
|
||||
const __vue_inject_styles__$1 = undefined;
|
||||
/* scoped */
|
||||
const __vue_scope_id__$1 = "data-v-082d5e49";
|
||||
const __vue_scope_id__$1 = "data-v-6fcfaafb";
|
||||
/* module identifier */
|
||||
const __vue_module_identifier__$1 = undefined;
|
||||
/* functional template */
|
||||
|
||||
|
After Width: | Height: | Size: 966 B |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 3.4 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 3.9 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 5.8 KiB |
|
After Width: | Height: | Size: 438 B |
|
After Width: | Height: | Size: 734 B |
|
After Width: | Height: | Size: 757 B |
|
After Width: | Height: | Size: 796 B |
|
After Width: | Height: | Size: 1.6 KiB |
@ -273,19 +273,6 @@ export default {
|
||||
|
||||
// console.log(this.bookId)
|
||||
|
||||
var locationData = await bookApi.userAction.getReadLocation({bookId:this.bookId})
|
||||
// this.location = locationData.location
|
||||
|
||||
var abc = await bookApi.bookinfo.request_info({bookId: this.bookId})
|
||||
|
||||
// abc.isBuy = 1
|
||||
if (abc.isBuy == 0) {
|
||||
this.isTrial = true
|
||||
}
|
||||
else {
|
||||
this.isTrial = false
|
||||
}
|
||||
|
||||
var res = await bookApi.bookinfo.json({bookId:this.bookId})
|
||||
|
||||
// res = JSON.stringify(res)
|
||||
@ -320,14 +307,30 @@ export default {
|
||||
|
||||
}
|
||||
|
||||
this.show = true
|
||||
this.fullscreenLoading = false
|
||||
|
||||
|
||||
var locationData = await bookApi.userAction.getReadLocation({bookId:this.bookId})
|
||||
// this.location = locationData.location
|
||||
|
||||
var abc = await bookApi.bookinfo.request_info({bookId: this.bookId})
|
||||
|
||||
// abc.isBuy = 1
|
||||
if (abc.isBuy == 0) {
|
||||
this.isTrial = true
|
||||
}
|
||||
else {
|
||||
this.isTrial = false
|
||||
}
|
||||
|
||||
|
||||
this.trialChapterList = await bookApi.bookinfo.unlock({bookId:this.bookId})
|
||||
if (this.trialChapterList.length>=0){
|
||||
this.isTrialIndex = 0;
|
||||
}
|
||||
|
||||
this.show = true
|
||||
this.fullscreenLoading = false
|
||||
this.digitalTeaching = true
|
||||
|
||||
|
||||
this.data.resources.list = await bookApi.resource.list({bookId:this.bookId})
|
||||
|
||||
@ -340,7 +343,7 @@ export default {
|
||||
|
||||
//
|
||||
this.userInfo = await bookApi.user.info()
|
||||
|
||||
this.digitalTeaching = true
|
||||
|
||||
try {
|
||||
this.classList = await bookApi.user.classList({bookId:this.bookId})
|
||||
|
||||
@ -1,10 +1,11 @@
|
||||
<template>
|
||||
<div class="about" style="background-color: aqua; display: flex; " >
|
||||
<!-- <div id="about" style="width: 500px; height: 800px;"></div> -->
|
||||
<h1>This is an about page</h1>
|
||||
<!-- <h1>This is an about page</h1> -->
|
||||
<!-- <MindElixirDialog :visible.sync="show" /> -->
|
||||
|
||||
<iframe src="https://emoawps.pumc.edu.cn/weboffice/office/w/1843558171183095810?_w_appid=KWIZITBBNCZUKHHU&_w_third_appid=KWIZITBBNCZUKHHU&_w_third_file_id=1843558171183095810&route_key=&wpsPreview=1110110&simple&hidecmb&readonly"></iframe>
|
||||
<p v-html="content"></p>
|
||||
<!-- <iframe src="https://emoawps.pumc.edu.cn/weboffice/office/w/1843558171183095810?_w_appid=KWIZITBBNCZUKHHU&_w_third_appid=KWIZITBBNCZUKHHU&_w_third_file_id=1843558171183095810&route_key=&wpsPreview=1110110&simple&hidecmb&readonly"></iframe> -->
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -18,8 +19,8 @@ export default {
|
||||
},
|
||||
data(){
|
||||
return {
|
||||
show:true
|
||||
|
||||
show:true,
|
||||
content:'<p style=\"text-indent: 2em;\"><span style=\"font-family: 黑体, SimHei; font-size: 18px;\">杜玉林</span><span style=\"font-family: 宋体, SimSun;\">,男,副教授职称。现任职于石家庄铁路职业技术学院,国家级课程思政教学团队成员。主讲道路工程施工、桥梁工程施工、施工组织设计等课程,担任主编、副主编出版教材3部,公开发表论文多篇。</span></p><p style=\"text-indent: 2em;\"><span style=\"font-family: 黑体, SimHei; font-size: 18px;\">杜立峰</span><span style=\"font-family: 宋体, SimSun;\">,男,教授职称,现任职于石家庄铁路职业技术学院,河北省“三三三人才工程”人选,国家级课程思政教学团队成员。</span></p><p><br/></p>>'
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
@ -3,6 +3,17 @@ console.log(process.env.BUILD_DIR)
|
||||
console.log("cycccccccc")
|
||||
|
||||
|
||||
//
|
||||
var targetServer = "https://xinsiketang.com"
|
||||
|
||||
if(process.env.NODE_ENV === 'prod'){
|
||||
targetServer = "https://xinsiketang.com"
|
||||
}else{
|
||||
targetServer = "https://local.xinsiketang.com"
|
||||
}
|
||||
|
||||
console.log("targetServer",targetServer)
|
||||
|
||||
module.exports = {
|
||||
lintOnSave: false,
|
||||
publicPath: './', // 设置公共路径为相对路径
|
||||
@ -16,7 +27,7 @@ module.exports = {
|
||||
// allowedHosts: "all",
|
||||
proxy: {
|
||||
'/api/app_dev.php': {
|
||||
target: 'https://local.xinsiketang.com',
|
||||
target: targetServer,
|
||||
changeOrigin: true,
|
||||
pathRewrite: {
|
||||
'^/api/app_dev.php': '/app_dev.php'
|
||||
@ -34,7 +45,7 @@ module.exports = {
|
||||
}
|
||||
},
|
||||
'/api': {
|
||||
target: 'https://local.xinsiketang.com',
|
||||
target: targetServer,
|
||||
changeOrigin: true,
|
||||
// pathRewrite: {
|
||||
// '^/api': '/api'
|
||||
@ -93,7 +104,7 @@ module.exports = {
|
||||
},
|
||||
|
||||
configureWebpack:(config)=>{
|
||||
config.devtool = 'source-map';
|
||||
// config.devtool = 'source-map';
|
||||
// config.stats = 'errors-warings'
|
||||
// config.plugins.push(
|
||||
// new webpack.ProgressPlugin({
|
||||
|
||||